├── .gitignore ├── data ├── screenshot@2x.png ├── screenshot-menu@2x.png ├── screenshot-menu-dark@2x.png ├── screenshot-many-browsers.png ├── gresource.xml ├── launcher.desktop.in ├── styles │ ├── non-native.css │ ├── odin.css │ ├── global.css │ └── hera.css ├── meson.build └── gschema.xml ├── po ├── extra │ ├── POTFILES │ ├── LINGUAS │ └── meson.build ├── LINGUAS ├── meson.build ├── POTFILES ├── README.md ├── lt.po ├── com.github.cassidyjames.ephemeral.pot ├── pl.po ├── de.po ├── ca.po ├── tr.po ├── ru.po ├── pt_BR.po ├── es.po ├── nl.po ├── it.po └── fr.po ├── .github ├── PULL_REQUEST_TEMPLATE │ └── release.md └── workflows │ ├── lint.yml │ ├── compress-images.yml │ ├── gettext.yml │ └── release.yml ├── .editorconfig ├── .travis.yml ├── meson └── post_install.py ├── src ├── WebContext.vala ├── Dialogs │ ├── PreferencesDialog.vala │ ├── ProtocolDialog.vala │ ├── CustomSearchDialog.vala │ └── ScriptDialog.vala ├── Views │ ├── ErrorView.vala │ └── WelcomeView.vala ├── InfoBars │ ├── CloseWhenOpeningExternallyInfoBar.vala │ ├── NetworkInfoBar.vala │ ├── DefaultInfoBar.vala │ ├── NativeInfoBar.vala │ └── PaidInfoBar.vala ├── Widgets │ ├── FindBar.vala │ ├── WebView.vala │ └── BrowserButton.vala └── Application.vala ├── meson.build └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | Application 3 | build/ 4 | -------------------------------------------------------------------------------- /data/screenshot@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cassidyjames/ephemeral/HEAD/data/screenshot@2x.png -------------------------------------------------------------------------------- /po/extra/POTFILES: -------------------------------------------------------------------------------- 1 | data/launcher.desktop.in 2 | data/com.github.cassidyjames.ephemeral.appdata.xml.in 3 | -------------------------------------------------------------------------------- /data/screenshot-menu@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cassidyjames/ephemeral/HEAD/data/screenshot-menu@2x.png -------------------------------------------------------------------------------- /po/LINGUAS: -------------------------------------------------------------------------------- 1 | ca 2 | de 3 | es 4 | fr 5 | it 6 | lt 7 | nl 8 | pl 9 | pt 10 | pt_BR 11 | ru 12 | tr 13 | uk 14 | -------------------------------------------------------------------------------- /data/screenshot-menu-dark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cassidyjames/ephemeral/HEAD/data/screenshot-menu-dark@2x.png -------------------------------------------------------------------------------- /data/screenshot-many-browsers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cassidyjames/ephemeral/HEAD/data/screenshot-many-browsers.png -------------------------------------------------------------------------------- /po/extra/LINGUAS: -------------------------------------------------------------------------------- 1 | ca 2 | de 3 | es 4 | fr 5 | it 6 | lt 7 | nl 8 | pl 9 | pt 10 | pt_BR 11 | ru 12 | tr 13 | uk 14 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE/release.md: -------------------------------------------------------------------------------- 1 | - [ ] Release version, description, and date in AppData.xml 2 | - [ ] Bumped version in meson 3 | - [ ] Updated screenshots 4 | -------------------------------------------------------------------------------- /po/extra/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext('extra', 2 | args: [ 3 | '--directory=' + meson.source_root(), 4 | '--from-code=UTF-8' 5 | ], 6 | preset: 'glib', 7 | install: false 8 | ) 9 | -------------------------------------------------------------------------------- /po/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext(meson.project_name(), 2 | args: [ 3 | '--directory=' + meson.source_root(), 4 | '--from-code=UTF-8' 5 | ], 6 | preset: 'glib' 7 | ) 8 | 9 | subdir('extra') 10 | -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- 1 | name: Lint 2 | 3 | on: [pull_request, push] 4 | 5 | jobs: 6 | lint: 7 | 8 | runs-on: ubuntu-latest 9 | 10 | steps: 11 | - uses: actions/checkout@v1 12 | - uses: elementary/actions/vala-lint@master 13 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig 2 | root = true 3 | 4 | # elementary defaults 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | indent_size = tab 9 | indent_style = space 10 | insert_final_newline = true 11 | max_line_length = 80 12 | tab_width = 4 13 | 14 | [{*.xml,*.xml.in,*.yml,*.css}] 15 | tab_width = 2 16 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | language: node_js 4 | 5 | node_js: 6 | - 10.17.0 7 | 8 | sudo: required 9 | 10 | services: 11 | - docker 12 | 13 | addons: 14 | apt: 15 | sources: 16 | - ubuntu-toolchain-r-test 17 | packages: 18 | - libstdc++-5-dev 19 | 20 | install: 21 | - npm i -g @elementaryos/houston 22 | 23 | script: 24 | - houston ci 25 | -------------------------------------------------------------------------------- /.github/workflows/compress-images.yml: -------------------------------------------------------------------------------- 1 | name: Compress images 2 | on: pull_request 3 | jobs: 4 | build: 5 | name: calibreapp/image-actions 6 | runs-on: ubuntu-latest 7 | steps: 8 | - uses: actions/checkout@master 9 | - name: calibreapp/image-actions 10 | uses: docker://calibreapp/github-image-actions 11 | env: 12 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 13 | -------------------------------------------------------------------------------- /data/gresource.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | styles/global.css 5 | styles/hera.css 6 | styles/odin.css 7 | styles/non-native.css 8 | 9 | 10 | -------------------------------------------------------------------------------- /.github/workflows/gettext.yml: -------------------------------------------------------------------------------- 1 | name: Gettext updates 2 | on: 3 | push: 4 | branches: main 5 | jobs: 6 | gettext_template: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: actions/checkout@v1 10 | - uses: elementary/actions/gettext-template@master 11 | env: 12 | GIT_USER_TOKEN: "${{ secrets.GIT_USER_TOKEN }}" 13 | GIT_USER_NAME: "cassidyjames" 14 | GIT_USER_EMAIL: "c@ssidyjam.es" 15 | with: 16 | translation_branch: 'main' 17 | -------------------------------------------------------------------------------- /po/POTFILES: -------------------------------------------------------------------------------- 1 | src/Application.vala 2 | src/MainWindow.vala 3 | src/Dialogs/CustomSearchDialog.vala 4 | src/Dialogs/PreferencesDialog.vala 5 | src/Dialogs/ProtocolDialog.vala 6 | src/Dialogs/ScriptDialog.vala 7 | src/InfoBars/DefaultInfoBar.vala 8 | src/InfoBars/NativeInfoBar.vala 9 | src/InfoBars/NetworkInfoBar.vala 10 | src/InfoBars/PaidInfoBar.vala 11 | src/Views/ErrorView.vala 12 | src/Views/WelcomeView.vala 13 | src/Widgets/BrowserButton.vala 14 | src/Widgets/UrlEntry.vala 15 | src/Widgets/WebView.vala 16 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | on: 3 | pull_request: 4 | branches: main 5 | types: closed 6 | jobs: 7 | release: 8 | runs-on: ubuntu-latest 9 | if: github.event.pull_request.merged == true && true == contains(join(github.event.pull_request.labels.*.name), 'Release') 10 | steps: 11 | - uses: actions/checkout@v1 12 | - uses: elementary/actions/release@master 13 | env: 14 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 15 | with: 16 | release_branch: 'hera' 17 | -------------------------------------------------------------------------------- /data/launcher.desktop.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Ephemeral 3 | GenericName=Private browser 4 | Comment=Browse the web in private 5 | Categories=Network;WebBrowser;Security;GTK; 6 | Exec=com.github.cassidyjames.ephemeral %U 7 | Icon=com.github.cassidyjames.ephemeral 8 | Terminal=false 9 | Type=Application 10 | X-GNOME-Gettext-Domain=com.github.cassidyjames.ephemeral 11 | Keywords=WWW;web;browser;internet;private;incognito;focus;temporary;cookies; 12 | MimeType=x-scheme-handler/http;x-scheme-handler/https;text/html;application/xhtml+xml;application/x-extension-htm;application/x-extension-html;application/x-extension-shtml;application/x-extension-xht;application/x-extension-mhtml; 13 | Actions=New; 14 | 15 | [Desktop Action New] 16 | Name=New Window 17 | Exec=com.github.cassidyjames.ephemeral 18 | -------------------------------------------------------------------------------- /meson/post_install.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import os 4 | import subprocess 5 | 6 | prefix = os.environ.get('MESON_INSTALL_PREFIX', '/usr/local') 7 | datadir = os.path.join(prefix, 'share') 8 | schemadir = os.path.join(os.environ['MESON_INSTALL_PREFIX'], 'share', 'glib-2.0', 'schemas') 9 | 10 | # Packaging tools define DESTDIR and this isn't needed for them 11 | if 'DESTDIR' not in os.environ: 12 | print('Updating icon cache...') 13 | icon_cache_dir = os.path.join(datadir, 'icons', 'hicolor') 14 | if not os.path.exists(icon_cache_dir): 15 | os.makedirs(icon_cache_dir) 16 | subprocess.call(['gtk-update-icon-cache', '-qtf', icon_cache_dir]) 17 | 18 | print('Updating desktop database...') 19 | desktop_database_dir = os.path.join(datadir, 'applications') 20 | if not os.path.exists(desktop_database_dir): 21 | os.makedirs(desktop_database_dir) 22 | subprocess.call(['update-desktop-database', '-q', desktop_database_dir]) 23 | 24 | print('Compiling gsettings schemas...') 25 | subprocess.call(['glib-compile-schemas', schemadir]) 26 | -------------------------------------------------------------------------------- /data/styles/non-native.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2020 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: Cassidy James Blaede 20 | */ 21 | 22 | .titlebar button { 23 | -gtk-icon-style: symbolic; 24 | } 25 | 26 | actionbar > separator, 27 | toolbar > separator, 28 | .titlebar > separator { 29 | border: none; 30 | margin: 0 18px; 31 | opacity: 0; 32 | } 33 | 34 | separator.titlebutton { 35 | border: none; 36 | margin: 0 3px; 37 | opacity: 0; 38 | } 39 | -------------------------------------------------------------------------------- /data/meson.build: -------------------------------------------------------------------------------- 1 | icon_sizes = ['16', '24', '32', '48', '64', '128'] 2 | 3 | foreach i : icon_sizes 4 | install_data( 5 | join_paths('icons', i + '.svg'), 6 | install_dir: join_paths(get_option('datadir'), 'icons', 'hicolor', i + 'x' + i, 'apps'), 7 | rename: meson.project_name() + '.svg' 8 | ) 9 | install_data( 10 | join_paths('icons', i + '.svg'), 11 | install_dir: join_paths(get_option('datadir'), 'icons', 'hicolor', i + 'x' + i + '@2', 'apps'), 12 | rename: meson.project_name() + '.svg' 13 | ) 14 | endforeach 15 | 16 | install_data( 17 | 'gschema.xml', 18 | install_dir: join_paths(get_option('datadir'), 'glib-2.0', 'schemas'), 19 | rename: meson.project_name() + '.gschema.xml' 20 | ) 21 | 22 | i18n.merge_file( 23 | input: 'launcher.desktop.in', 24 | output: meson.project_name() + '.desktop', 25 | po_dir: join_paths(meson.source_root(), 'po', 'extra'), 26 | type: 'desktop', 27 | install: true, 28 | install_dir: join_paths(get_option('datadir'), 'applications') 29 | ) 30 | 31 | i18n.merge_file( 32 | input: meson.project_name() + '.appdata.xml.in', 33 | output: meson.project_name() + '.appdata.xml', 34 | po_dir: join_paths(meson.source_root(), 'po', 'extra'), 35 | type: 'xml', 36 | install: true, 37 | install_dir: join_paths(get_option('datadir'), 'metainfo') 38 | ) 39 | -------------------------------------------------------------------------------- /po/README.md: -------------------------------------------------------------------------------- 1 | # Translating Ephemeral 2 | 3 | Anyone may propose translations for Ephemeral. You can do so by editing the relevant `.po` file for your language above. Translation tools (like POEdit) can help automate this process. When your translation is ready, propose it as a pull request against this project and it will be reviewed. If it looks sane and builds correctly, it will be merged in, and your GitHub account will be credited for the translation in the next release's release notes. 4 | 5 | ## Adding New Languages 6 | 7 | If your language does not appear above, you'll need to add it. 8 | 9 | 1. Add the language code to the `LINGUAS` file 10 | 2. Create a `.po` file for your language from the `.pot` file 11 | 3. Create a pull request with your translations 12 | 13 | Translation tools (like POEdit) can help automate this process, but require you to clone this repository locally. 14 | 15 | ## Style Guidelines 16 | 17 | When translating you may encounter a situation where you have to decide between several ways of saying the same thing. In these situations we refer to the Ubuntu [general translator guide](https://help.launchpad.net/Translations/Guide), and for language specific issues we follow Ubuntu's [team translation guidelines](https://translations.launchpad.net/+groups/ubuntu-translators). Following these guides ensure uniform translations, while also allowing anyone to contribute. 18 | -------------------------------------------------------------------------------- /src/WebContext.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2021 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: Cassidy James Blaede 20 | */ 21 | 22 | public class Ephemeral.WebContext : WebKit.WebContext { 23 | public WebContext () { 24 | Object ( 25 | // This causes a known visual regression with navigation gestures. 26 | // See: https://bugs.webkit.org/show_bug.cgi?id=205651 27 | process_swap_on_cross_site_navigation_enabled: true, 28 | website_data_manager: new WebKit.WebsiteDataManager.ephemeral () 29 | ); 30 | 31 | set_process_model (WebKit.ProcessModel.MULTIPLE_SECONDARY_PROCESSES); 32 | set_sandbox_enabled (true); 33 | 34 | get_cookie_manager ().set_accept_policy ( 35 | WebKit.CookieAcceptPolicy.NO_THIRD_PARTY 36 | ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/Dialogs/PreferencesDialog.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2021 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: Cassidy James Blaede 20 | */ 21 | 22 | public class Ephemeral.PreferencesDialog : Granite.MessageDialog { 23 | public PreferencesDialog () { 24 | Object ( 25 | image_icon: new ThemedIcon ("document-open-recent"), 26 | primary_text: _("Reset Preferences?"), 27 | secondary_text: _("All added website suggestions will be removed. Any dismissed or remembered alerts, warnings, etc. will be displayed again the next time Ephemeral is opened."), 28 | title: _("Reset Preferences?") 29 | ); 30 | } 31 | 32 | construct { 33 | var cancel = add_button (_("Never Mind"), Gtk.ResponseType.CANCEL) as Gtk.Button; 34 | cancel.clicked.connect (() => { destroy (); }); 35 | 36 | var accept = add_button (_("Reset Preferences"), Gtk.ResponseType.OK) as Gtk.Button; 37 | accept.get_style_context ().add_class (Gtk.STYLE_CLASS_DESTRUCTIVE_ACTION); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/Views/ErrorView.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2021 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: Cassidy James Blaede 20 | */ 21 | 22 | public class Ephemeral.ErrorView : Gtk.Grid { 23 | public ErrorView () { 24 | Object (); 25 | } 26 | 27 | construct { 28 | var title = new Gtk.Label (_("Whoops")); 29 | title.get_style_context ().add_class (Granite.STYLE_CLASS_H1_LABEL); 30 | 31 | var subtitle = new Gtk.Label (_("Could not display the page.")); 32 | 33 | var subtitle_context = subtitle.get_style_context (); 34 | subtitle_context.add_class (Granite.STYLE_CLASS_H2_LABEL); 35 | 36 | var alignment_grid = new Gtk.Grid (); 37 | alignment_grid.halign = Gtk.Align.CENTER; 38 | alignment_grid.hexpand = true; 39 | alignment_grid.margin_bottom = 200; // Roughly visually centered 40 | alignment_grid.orientation = Gtk.Orientation.VERTICAL; 41 | alignment_grid.valign = Gtk.Align.CENTER; 42 | alignment_grid.vexpand = true; 43 | 44 | alignment_grid.add (title); 45 | alignment_grid.add (subtitle); 46 | 47 | get_style_context ().add_class (Granite.STYLE_CLASS_WELCOME); 48 | add (alignment_grid); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /meson.build: -------------------------------------------------------------------------------- 1 | project( 2 | 'com.github.cassidyjames.ephemeral', 3 | 'vala', 'c', 4 | version: '7.1.0' 5 | ) 6 | 7 | gnome = import('gnome') 8 | i18n = import('i18n') 9 | 10 | add_global_arguments('-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()), language:'c') 11 | add_project_arguments(['--vapidir', join_paths(meson.current_source_dir(), 'vapi')], language: 'vala') 12 | 13 | asresources = gnome.compile_resources ( 14 | 'as-resources', join_paths ('data', 'gresource.xml'), 15 | source_dir: 'data', 16 | c_name: 'as' 17 | ) 18 | 19 | executable( 20 | meson.project_name(), 21 | join_paths('src', 'Application.vala'), 22 | join_paths('src', 'MainWindow.vala'), 23 | join_paths('src', 'WebContext.vala'), 24 | join_paths('src', 'Dialogs', 'CustomSearchDialog.vala'), 25 | join_paths('src', 'Dialogs', 'PreferencesDialog.vala'), 26 | join_paths('src', 'Dialogs', 'ProtocolDialog.vala'), 27 | join_paths('src', 'Dialogs', 'ScriptDialog.vala'), 28 | join_paths('src', 'InfoBars', 'CloseWhenOpeningExternallyInfoBar.vala'), 29 | join_paths('src', 'InfoBars', 'DefaultInfoBar.vala'), 30 | join_paths('src', 'InfoBars', 'NativeInfoBar.vala'), 31 | join_paths('src', 'InfoBars', 'NetworkInfoBar.vala'), 32 | join_paths('src', 'InfoBars', 'PaidInfoBar.vala'), 33 | join_paths('src', 'Views', 'ErrorView.vala'), 34 | join_paths('src', 'Views', 'WelcomeView.vala'), 35 | join_paths('src', 'Widgets', 'BrowserButton.vala'), 36 | join_paths('src', 'Widgets', 'FindBar.vala'), 37 | join_paths('src', 'Widgets', 'UrlEntry.vala'), 38 | join_paths('src', 'Widgets', 'WebView.vala'), 39 | asresources, 40 | dependencies: [ 41 | dependency('granite', version: '>=5.5'), 42 | dependency('gtk+-3.0'), 43 | dependency('libdazzle-1.0'), 44 | dependency('javascriptcoregtk-4.0'), 45 | dependency('libsoup-2.4'), 46 | dependency('webkit2gtk-4.0'), 47 | ], 48 | install: true 49 | ) 50 | 51 | subdir('data') 52 | subdir('po') 53 | 54 | meson.add_install_script(join_paths('meson', 'post_install.py')) 55 | -------------------------------------------------------------------------------- /src/Dialogs/ProtocolDialog.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2021 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: Cassidy James Blaede 20 | */ 21 | 22 | public class Ephemeral.ProtocolDialog : Granite.MessageDialog { 23 | public string? protocol { get; construct set; } 24 | 25 | public ProtocolDialog (string? _protocol = null) { 26 | Object ( 27 | image_icon: new ThemedIcon ("dialog-warning"), 28 | primary_text: _("Open Link Externally?"), 29 | protocol: _protocol, 30 | title: _("Open Link Externally?") 31 | ); 32 | } 33 | 34 | construct { 35 | string explanation; 36 | if (protocol != null) { 37 | explanation = _("This page is trying to open an app for %s links.").printf (protocol); 38 | } else { 39 | explanation = _("This page is trying to open an app."); 40 | } 41 | 42 | string implication = _("Your data may not be kept private by the opened app."); 43 | 44 | secondary_text = "%s %s".printf (explanation, implication); 45 | secondary_label.use_markup = true; 46 | 47 | var cancel = add_button (_("Don’t Open"), Gtk.ResponseType.CANCEL) as Gtk.Button; 48 | cancel.clicked.connect (() => { destroy (); }); 49 | 50 | var accept = add_button (_("Open Anyway"), Gtk.ResponseType.OK) as Gtk.Button; 51 | accept.get_style_context ().add_class (Gtk.STYLE_CLASS_DESTRUCTIVE_ACTION); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /data/styles/odin.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2020 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: Cassidy James Blaede 20 | */ 21 | 22 | @define-color color_primary mix(@GRAPE_900, @BLUEBERRY_900, 0.33); 23 | @define-color color_accent @GRAPE_500; 24 | 25 | .titlebar { 26 | background-image: 27 | linear-gradient( 28 | to bottom, 29 | alpha(@highlight_color, 0.2), 30 | rgba(255, 255, 255, 0) 31 | ), 32 | linear-gradient(120deg, @BLUEBERRY_700, @GRAPE_700 67%); 33 | } 34 | 35 | .titlebar .image-button, 36 | .titlebar .titlebutton { 37 | background: transparent; 38 | color: white; 39 | text-shadow: none; 40 | -gtk-icon-shadow: none; 41 | } 42 | 43 | .titlebar .image-button.raised, 44 | .titlebar .linked .image-button { 45 | background: rgba(255, 255, 255, 0.125); 46 | } 47 | 48 | .titlebar entry, 49 | .titlebar entry image { 50 | color: white; 51 | } 52 | 53 | .titlebar entry { 54 | background-color: rgba(0, 0, 0, 0.25); 55 | } 56 | 57 | .titlebar .image-button:disabled { 58 | opacity: 0.5; 59 | } 60 | 61 | .titlebar .linked .image-button:first-child { 62 | border-top-left-radius: 9999px; 63 | border-bottom-left-radius: 9999px; 64 | padding-left: 0.5rem; 65 | } 66 | 67 | .titlebar .linked .image-button:last-child { 68 | border-top-right-radius: 9999px; 69 | border-bottom-right-radius: 9999px; 70 | padding-right: 0.25rem; 71 | } 72 | 73 | .titlebar .linked.navigation .image-button:last-child { 74 | padding-right: 0.5rem; 75 | } 76 | -------------------------------------------------------------------------------- /data/styles/global.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2020 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: Cassidy James Blaede 20 | */ 21 | 22 | @define-color BLUEBERRY_900 #002e99; 23 | @define-color GRAPE_900 #452981; 24 | 25 | @define-color textColorPrimary alpha(white, 0.9); 26 | 27 | .browser-button .raised:last-child { 28 | padding: 0; 29 | } 30 | 31 | .welcome { 32 | background-image: linear-gradient(120deg, @BLUEBERRY_900, @GRAPE_900 67%); 33 | color: white; 34 | } 35 | 36 | .welcome * { 37 | color: inherit; 38 | } 39 | 40 | .h1 { 41 | color: inherit; 42 | font-family: Inter, Raleway, "Open Sans", sans-serif; 43 | font-size: 24pt; 44 | font-weight: 900; 45 | } 46 | 47 | .h2 { 48 | font-size: 18pt; 49 | font-weight: 300; 50 | } 51 | 52 | dzlsuggestionpopover row { 53 | padding: 5px; 54 | } 55 | 56 | dzlsuggestionpopover row image { 57 | -gtk-icon-palette: warning #fff; 58 | } 59 | 60 | .overlay-bar { 61 | padding: 3px 6px; 62 | transition: opacity 200ms ease; 63 | } 64 | 65 | .hidden .overlay-bar { 66 | opacity: 0; 67 | } 68 | 69 | popover radio { 70 | margin-left: 6px; 71 | } 72 | 73 | label.primary { 74 | font-weight: 700; 75 | font-size: 1.2em; 76 | } 77 | 78 | .color-button radio, 79 | .color-button radio:checked { 80 | padding: 1.25em; 81 | -gtk-icon-shadow: none; 82 | } 83 | 84 | .color-light radio { 85 | background: #fafafa; 86 | color: #333; 87 | } 88 | 89 | .color-dark radio { 90 | background: #333; 91 | color: #fafafa; 92 | } 93 | -------------------------------------------------------------------------------- /src/Views/WelcomeView.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2021 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: Cassidy James Blaede 20 | */ 21 | 22 | public class Ephemeral.WelcomeView : Gtk.Grid { 23 | public WelcomeView () { 24 | Object (); 25 | } 26 | 27 | construct { 28 | var title = new Gtk.Label ("Ephemeral"); 29 | title.get_style_context ().add_class (Granite.STYLE_CLASS_H1_LABEL); 30 | 31 | var subtitle = new Gtk.Label (_("The always-incognito web browser")); 32 | 33 | string tracking_disclaimer = _("Remember, Ephemeral and any browser’s incognito or private mode can only do so much: they mitigate some tracking and don’t store data on your device, but they won’t stop your ISP, government, or determined websites from tracking you."); 34 | string vpn_suggestion = _("For the best protection, always use a VPN."); 35 | 36 | var copy = new Gtk.Label ("%s\n\n%s".printf (tracking_disclaimer, vpn_suggestion)); 37 | copy.margin = 24; 38 | copy.max_width_chars = 70; 39 | copy.use_markup = true; 40 | copy.wrap = true; 41 | copy.get_style_context ().add_class (Gtk.STYLE_CLASS_DIM_LABEL); 42 | 43 | subtitle.get_style_context ().add_class (Granite.STYLE_CLASS_H2_LABEL); 44 | 45 | var alignment_grid = new Gtk.Grid (); 46 | alignment_grid.halign = Gtk.Align.CENTER; 47 | alignment_grid.hexpand = true; 48 | alignment_grid.margin_bottom = 200; // Roughly visually centered 49 | alignment_grid.orientation = Gtk.Orientation.VERTICAL; 50 | alignment_grid.valign = Gtk.Align.CENTER; 51 | alignment_grid.vexpand = true; 52 | 53 | alignment_grid.add (title); 54 | alignment_grid.add (subtitle); 55 | alignment_grid.add (copy); 56 | 57 | get_style_context ().add_class (Granite.STYLE_CLASS_WELCOME); 58 | add (alignment_grid); 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/Dialogs/CustomSearchDialog.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2021 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: Cassidy James Blaede 20 | */ 21 | 22 | public class Ephemeral.CustomSearchDialog : Granite.MessageDialog { 23 | public CustomSearchDialog () { 24 | Object ( 25 | image_icon: new ThemedIcon ("system-search"), 26 | primary_text: _("Set a Custom Search Engine"), 27 | secondary_text: _("Searches from the URL entry will be sent to this custom URL. %s will be replaced with the search query."), 28 | title: _("Set a Custom Search Engine") 29 | ); 30 | } 31 | 32 | construct { 33 | secondary_label.use_markup = true; 34 | 35 | var cancel = add_button (_("Never Mind"), Gtk.ResponseType.CANCEL) as Gtk.Button; 36 | cancel.clicked.connect (() => { destroy (); }); 37 | 38 | var accept = add_button (_("Set Search Engine"), Gtk.ResponseType.OK) as Gtk.Button; 39 | accept.get_style_context ().add_class (Gtk.STYLE_CLASS_SUGGESTED_ACTION); 40 | 41 | var search_entry = new Gtk.Entry () { 42 | activates_default = true, 43 | text = Application.settings.get_string ("search-engine") 44 | }; 45 | search_entry.bind_property ("text", accept, "sensitive", BindingFlags.SYNC_CREATE, 46 | (binding, srcval, ref targetval) => { 47 | string text = (string) srcval; 48 | targetval.set_boolean ( 49 | text.contains ("%s") && 50 | text.contains (".") && ( 51 | text.has_prefix ("http://") || 52 | text.has_prefix ("https://") 53 | ) 54 | ); 55 | return true; 56 | } 57 | ); 58 | 59 | custom_bin.add (search_entry); 60 | custom_bin.show_all (); 61 | 62 | set_default_response (Gtk.ResponseType.OK); 63 | 64 | accept.clicked.connect (() => { 65 | Application.settings.set_string ("search-engine", search_entry.text); 66 | }); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Ethical Design](https://img.shields.io/badge/Ethical_Design-_▲_❤_-blue.svg)](https://ind.ie/ethical-design) 2 | [![Lint](https://github.com/cassidyjames/ephemeral/workflows/Lint/badge.svg)](https://github.com/cassidyjames/ephemeral/actions?query=workflow%3A%22Lint%22) 3 | [![Gettext updates](https://github.com/cassidyjames/ephemeral/workflows/Gettext%20updates/badge.svg)](https://github.com/cassidyjames/ephemeral/actions?query=workflow%3A%22Gettext+updates%22) 4 | [![Build Status](https://travis-ci.com/cassidyjames/ephemeral.svg?branch=master)](https://travis-ci.com/cassidyjames/ephemeral) 5 | 6 |

7 | Icon 8 |

9 |

Ephemeral

10 |

11 | Get it on AppCenter 12 |

13 | 14 | 15 | 16 | | ![Screenshot](data/screenshot@2x.png) | ![Screenshot](data/screenshot-many-browsers.png) | 17 | |--------------------------------------------|-----------------------------------------------------| 18 | | ![Screenshot](data/screenshot-menu@2x.png) | ![Screenshot](data/screenshot-menu-dark@2x.png) | 19 | 20 | ## The always-incognito web browser 21 | 22 | Browse the Internet in private without leaving a trace of history on your computer. Ephemeral is a stripped down private browser that's perfect for avoiding persistent cookies or web trackers. Close the window and all traces of your browsing are removed from your device. 23 | 24 | ## Made for [elementary OS] 25 | 26 | Ephemeral is designed and developed on and for [elementary OS]. Purchasing through AppCenter directly supports the development and ensures instant updates straight from me. [Get it on AppCenter][AppCenter] for the best experience. 27 | 28 | [![Get it on AppCenter](https://appcenter.elementary.io/badge.svg)][AppCenter] 29 | 30 | Versions of Ephemeral may have been built and made available elsewhere by third-parties. These builds may have modifications or changes and **are not provided nor supported by me**. The only supported version is distributed via [AppCenter] on elementary OS. 31 | 32 | ## Developing and Building 33 | 34 | Development is targeted at [elementary OS] Juno. If you want to hack on and build Ephemeral yourself, you'll need the following dependencies: 35 | 36 | * libgranite-dev (>=5.5) 37 | * libgtk-3-dev 38 | * libwebkit2gtk-4.0-dev 39 | * libdazzle-1.0-dev 40 | * meson 41 | * valac 42 | 43 | You can install them on elementary OS Juno with: 44 | 45 | ```shell 46 | sudo apt install elementary-sdk libwebkit2gtk-4.0-dev libdazzle-1.0-dev 47 | ``` 48 | 49 | Run `meson build` to configure the build environment and run `ninja` to build: 50 | 51 | ```shell 52 | meson build --prefix=/usr 53 | cd build 54 | ninja 55 | ``` 56 | 57 | To install, use `ninja install`, then execute with `com.github.cassidyjames.ephemeral`: 58 | 59 | ```shell 60 | sudo ninja install 61 | com.github.cassidyjames.ephemeral 62 | ``` 63 | 64 | [elementary OS]: https://elementary.io 65 | [AppCenter]: https://appcenter.elementary.io/com.github.cassidyjames.ephemeral 66 | -------------------------------------------------------------------------------- /src/InfoBars/CloseWhenOpeningExternallyInfoBar.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2021 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: Cassidy James Blaede 20 | */ 21 | 22 | public class Ephemeral.CloseWhenOpeningExternallyInfoBar : Gtk.InfoBar { 23 | public CloseWhenOpeningExternallyInfoBar () { 24 | Object ( 25 | message_type: Gtk.MessageType.INFO, 26 | show_close_button: true 27 | ); 28 | } 29 | 30 | construct { 31 | string title = _("Close When Opening Externally?"); 32 | string details = _("You frequently close Ephemeral after opening a page externally. You can set Ephemeral to automatically close instead."); 33 | 34 | var default_label = new Gtk.Label ("%s %s".printf (title, details)); 35 | default_label.use_markup = true; 36 | default_label.wrap = true; 37 | 38 | var never_button = new Gtk.Button.with_label (_("Never Ask Again")); 39 | never_button.halign = Gtk.Align.END; 40 | never_button.get_style_context ().add_class (Gtk.STYLE_CLASS_FLAT); 41 | 42 | get_content_area ().add (default_label); 43 | add_action_widget (never_button, Gtk.ResponseType.REJECT); 44 | add_button (_("Turn On"), Gtk.ResponseType.ACCEPT); 45 | 46 | try_set_revealed (); 47 | 48 | response.connect ((response_id) => { 49 | switch (response_id) { 50 | case Gtk.ResponseType.ACCEPT: 51 | Application.settings.set_boolean ("close-when-opening-externally", true); 52 | try_set_revealed (); 53 | break; 54 | case Gtk.ResponseType.REJECT: 55 | Application.settings.set_boolean ("suggest-close-when-opening-externally", false); 56 | case Gtk.ResponseType.CLOSE: 57 | revealed = false; 58 | break; 59 | default: 60 | assert_not_reached (); 61 | } 62 | }); 63 | } 64 | 65 | public void try_set_revealed (bool? reveal = true) { 66 | revealed = 67 | reveal && 68 | !Application.settings.get_boolean ("close-when-opening-externally") && 69 | Application.settings.get_boolean ("suggest-close-when-opening-externally") && 70 | Application.settings.get_int ("manual-closes-after-opening-externally") > 3; 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /src/InfoBars/NetworkInfoBar.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2021 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: Cassidy James Blaede 20 | */ 21 | 22 | public class Ephemeral.NetworkInfoBar : Gtk.InfoBar { 23 | public NetworkInfoBar () { 24 | Object ( 25 | message_type: Gtk.MessageType.WARNING, 26 | show_close_button: true 27 | ); 28 | } 29 | 30 | construct { 31 | string title = _("Network Not Available."); 32 | string details = _("Connect to the Internet to browse the Web."); 33 | 34 | var default_label = new Gtk.Label ("%s %s".printf (title, details)) { 35 | use_markup = true, 36 | wrap = true 37 | }; 38 | 39 | var never_button = new Gtk.Button.with_label (_("Never Warn Again")) { 40 | halign = Gtk.Align.END 41 | }; 42 | never_button.get_style_context ().add_class (Gtk.STYLE_CLASS_FLAT); 43 | 44 | get_content_area ().add (default_label); 45 | add_action_widget (never_button, Gtk.ResponseType.REJECT); 46 | // TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 47 | add_button (_("Network Settings…"), Gtk.ResponseType.ACCEPT); 48 | 49 | try_set_revealed (); 50 | 51 | response.connect ((response_id) => { 52 | switch (response_id) { 53 | case Gtk.ResponseType.ACCEPT: 54 | try { 55 | AppInfo.launch_default_for_uri ("settings://network", null); 56 | } catch (GLib.Error e) { 57 | critical (e.message); 58 | } 59 | break; 60 | case Gtk.ResponseType.REJECT: 61 | Application.settings.set_boolean ("warn-network", false); 62 | case Gtk.ResponseType.CLOSE: 63 | revealed = false; 64 | break; 65 | default: 66 | assert_not_reached (); 67 | } 68 | }); 69 | 70 | var network_monitor = NetworkMonitor.get_default (); 71 | network_monitor.network_changed.connect (() => { 72 | try_set_revealed (); 73 | }); 74 | } 75 | 76 | private void try_set_revealed (bool? reveal = true) { 77 | var network_available = NetworkMonitor.get_default ().get_network_available (); 78 | 79 | revealed = 80 | reveal && 81 | Application.settings.get_boolean ("warn-network") && 82 | !network_available; 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /src/InfoBars/DefaultInfoBar.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2021 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: Cassidy James Blaede 20 | */ 21 | 22 | public class Ephemeral.DefaultInfoBar : Gtk.InfoBar { 23 | public DefaultInfoBar () { 24 | Object ( 25 | message_type: Gtk.MessageType.QUESTION, 26 | show_close_button: true 27 | ); 28 | } 29 | 30 | construct { 31 | string habit = _("Make privacy a habit."); 32 | string ask_default = _("Set Ephemeral as your default browser?"); 33 | 34 | // TRANSLATORS: Where you change default apps on elementary OS. Be very careful with the markup! 35 | string change = _("You can always change this later in System SettingsApplications."); 36 | 37 | var default_label = new Gtk.Label ("%s %s\n%s".printf ( 38 | habit, ask_default, change 39 | )); 40 | default_label.use_markup = true; 41 | default_label.wrap = true; 42 | 43 | var default_app_info = GLib.AppInfo.get_default_for_type (Application.CONTENT_TYPES[0], false); 44 | var app_info = new GLib.DesktopAppInfo (GLib.Application.get_default ().application_id + ".desktop"); 45 | 46 | var never_button = new Gtk.Button.with_label (_("Never Ask Again")); 47 | never_button.halign = Gtk.Align.END; 48 | never_button.get_style_context ().add_class (Gtk.STYLE_CLASS_FLAT); 49 | 50 | get_content_area ().add (default_label); 51 | add_action_widget (never_button, Gtk.ResponseType.REJECT); 52 | add_button (_("Set as Default"), Gtk.ResponseType.ACCEPT); 53 | 54 | revealed = 55 | !default_app_info.equal (app_info) && 56 | Application.settings.get_boolean ("ask-default") && 57 | Application.instance.ask_default_for_session; 58 | 59 | response.connect ((response_id) => { 60 | switch (response_id) { 61 | case Gtk.ResponseType.ACCEPT: 62 | try { 63 | for (int i = 0; i < Application.CONTENT_TYPES.length; i++) { 64 | app_info.set_as_default_for_type (Application.CONTENT_TYPES[i]); 65 | } 66 | } catch (GLib.Error e) { 67 | critical (e.message); 68 | } 69 | revealed = false; 70 | break; 71 | case Gtk.ResponseType.REJECT: 72 | Application.settings.set_boolean ("ask-default", false); 73 | case Gtk.ResponseType.CLOSE: 74 | Application.instance.ask_default_for_session = false; 75 | revealed = false; 76 | break; 77 | default: 78 | assert_not_reached (); 79 | } 80 | }); 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /src/Dialogs/ScriptDialog.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2021 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: David Hewitt 20 | */ 21 | 22 | public class Ephemeral.ScriptDialog : Granite.MessageDialog { 23 | public WebKit.ScriptDialog dialog_info { get; construct; } 24 | 25 | public ScriptDialog (WebKit.ScriptDialog dialog) { 26 | Object ( 27 | dialog_info: dialog, 28 | primary_text: _("Message From Page"), 29 | secondary_text: dialog.get_message (), 30 | title: _("Message From Page") 31 | ); 32 | } 33 | 34 | construct { 35 | 36 | switch (dialog_info.get_dialog_type ()) { 37 | case WebKit.ScriptDialogType.ALERT: 38 | image_icon = new ThemedIcon ("dialog-information"); 39 | 40 | var cancel_button = add_button (_("Close"), Gtk.ResponseType.CANCEL) as Gtk.Button; 41 | cancel_button.clicked.connect (() => { destroy (); }); 42 | 43 | break; 44 | case WebKit.ScriptDialogType.CONFIRM: 45 | case WebKit.ScriptDialogType.BEFORE_UNLOAD_CONFIRM: 46 | image_icon = new ThemedIcon ("dialog-question"); 47 | 48 | var cancel_button = add_button (_("Close"), Gtk.ResponseType.CANCEL) as Gtk.Button; 49 | 50 | var ok_button = add_button (_("Confirm"), Gtk.ResponseType.OK) as Gtk.Button; 51 | ok_button.get_style_context ().add_class (Gtk.STYLE_CLASS_SUGGESTED_ACTION); 52 | 53 | cancel_button.clicked.connect (() => { destroy (); }); 54 | ok_button.clicked.connect (() => { 55 | dialog_info.confirm_set_confirmed (true); 56 | destroy (); 57 | }); 58 | 59 | break; 60 | case WebKit.ScriptDialogType.PROMPT: 61 | image_icon = new ThemedIcon ("dialog-question"); 62 | 63 | var prompt_entry = new Gtk.Entry () { 64 | activates_default = true, 65 | text = dialog_info.prompt_get_default_text () 66 | }; 67 | prompt_entry.show (); 68 | 69 | custom_bin.add (prompt_entry); 70 | 71 | var cancel_button = add_button (_("Close"), Gtk.ResponseType.CANCEL) as Gtk.Button; 72 | 73 | var ok_button = add_button (_("Confirm"), Gtk.ResponseType.OK) as Gtk.Button; 74 | ok_button.grab_default (); 75 | ok_button.get_style_context ().add_class (Gtk.STYLE_CLASS_SUGGESTED_ACTION); 76 | 77 | cancel_button.clicked.connect (() => { destroy (); }); 78 | ok_button.clicked.connect (() => { 79 | dialog_info.prompt_set_text (prompt_entry.text); 80 | destroy (); 81 | }); 82 | 83 | break; 84 | default: 85 | break; 86 | } 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /src/InfoBars/NativeInfoBar.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2021 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: Cassidy James Blaede 20 | */ 21 | 22 | public class Ephemeral.NativeInfoBar : Gtk.InfoBar { 23 | public NativeInfoBar () { 24 | Object ( 25 | message_type: Gtk.MessageType.INFO, 26 | show_close_button: true 27 | ); 28 | } 29 | 30 | construct { 31 | string designed_for_elementary = _("Ephemeral is a paid app designed for elementary OS."); 32 | string disclaimer = _("Some features may not work properly when running on another OS or desktop environment."); 33 | string fund = _("Ephemeral is also typically funded by elementary AppCenter purchases. Consider donating if you find value in using Ephemeral on other platforms."); 34 | 35 | var default_label = new Gtk.Label ("%s %s\n%s".printf ( 36 | designed_for_elementary, disclaimer, fund 37 | )) { 38 | use_markup = true, 39 | wrap = true 40 | }; 41 | 42 | var dismiss_button = new Gtk.Button.with_label (_("Dismiss")) { 43 | halign = Gtk.Align.END 44 | }; 45 | dismiss_button.get_style_context ().add_class (Gtk.STYLE_CLASS_FLAT); 46 | 47 | // TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 48 | var donate_button = new Gtk.Button.with_label (_("Donate…")) { 49 | tooltip_text = Application.DONATE_URL 50 | }; 51 | 52 | get_content_area ().add (default_label); 53 | add_action_widget (dismiss_button, Gtk.ResponseType.REJECT); 54 | add_action_widget (donate_button, Gtk.ResponseType.ACCEPT); 55 | 56 | int64 now = new DateTime.now_utc ().to_unix (); 57 | 58 | revealed = 59 | ! Application.native () && 60 | (Application.settings.get_int64 ("last-native-response") < now - Application.NOTICE_SECS) && 61 | Application.instance.warn_native_for_session; 62 | 63 | response.connect ((response_id) => { 64 | switch (response_id) { 65 | case Gtk.ResponseType.ACCEPT: 66 | try { 67 | Gtk.show_uri (get_screen (), Application.DONATE_URL, Gtk.get_current_event_time ()); 68 | } catch (GLib.Error e) { 69 | critical (e.message); 70 | } 71 | case Gtk.ResponseType.REJECT: 72 | now = new DateTime.now_utc ().to_unix (); 73 | Application.settings.set_int64 ("last-native-response", now); 74 | case Gtk.ResponseType.CLOSE: 75 | Application.instance.warn_native_for_session = false; 76 | revealed = false; 77 | break; 78 | default: 79 | assert_not_reached (); 80 | } 81 | }); 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /src/Widgets/FindBar.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2021 Cassidy James Blaede (https://cassidyjames.com) 3 | 2018 Christian Dywan 4 | * 5 | * This program is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public 16 | * License along with this program; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 | * Boston, MA 02110-1301 USA 19 | * 20 | * Authored by: Cassidy James Blaede 21 | */ 22 | 23 | public class Ephemeral.FindBar : Gtk.Revealer { 24 | // Parts adapted from Midori: 25 | // https://github.com/midori-browser/core/blob/435ef6d48c4b4ff07c00ea028edd89a3ea2d5386/core/browser.vala 26 | public WebView web_view { get; construct set; } 27 | public Gtk.SearchEntry entry; 28 | 29 | public FindBar (WebView _web_view) { 30 | Object ( 31 | web_view: _web_view 32 | ); 33 | } 34 | 35 | construct { 36 | transition_type = Gtk.RevealerTransitionType.SLIDE_UP; 37 | get_style_context ().add_class ("search-bar"); 38 | 39 | var label = new Gtk.Label (_("Find in page:")); 40 | 41 | entry = new Gtk.SearchEntry (); 42 | 43 | var find_grid = new Gtk.Grid (); 44 | 45 | find_grid.add (entry); 46 | 47 | var toolbar = new Gtk.Grid (); 48 | toolbar.border_width = 3; 49 | toolbar.column_spacing = 5; 50 | toolbar.halign = Gtk.Align.CENTER; 51 | 52 | toolbar.add (label); 53 | toolbar.add (find_grid); 54 | 55 | add (toolbar); 56 | 57 | entry.key_press_event.connect (on_key_press); 58 | 59 | entry.activate.connect ((event) => { 60 | find_text (); 61 | }); 62 | 63 | entry.search_changed.connect (() => { 64 | find_text (); 65 | }); 66 | 67 | entry.next_match.connect (() => { 68 | find_text (); 69 | }); 70 | 71 | entry.previous_match.connect (() => { 72 | find_text (true); 73 | }); 74 | } 75 | 76 | private void find_text (bool? backwards = false) { 77 | uint options = WebKit.FindOptions.WRAP_AROUND; 78 | 79 | // Smart case: case sensitive if starting with an uppercase character 80 | if (entry.text[0].islower ()) { 81 | options |= WebKit.FindOptions.CASE_INSENSITIVE; 82 | } 83 | 84 | if (backwards) { 85 | options |= WebKit.FindOptions.BACKWARDS; 86 | } 87 | 88 | web_view.get_find_controller ().search (entry.text, options, int.MAX); 89 | } 90 | 91 | private bool on_key_press (Gdk.EventKey event) { 92 | string key = Gdk.keyval_name (event.keyval); 93 | if (Gdk.ModifierType.SHIFT_MASK in event.state) { 94 | key = "" + key; 95 | } 96 | 97 | switch (key) { 98 | case "Down": 99 | find_text (); 100 | return true; 101 | case "Up": 102 | case "Return": 103 | find_text (true); 104 | return true; 105 | case "Escape": 106 | reveal_child = false; 107 | web_view.grab_focus (); 108 | return true; 109 | default: 110 | return false; 111 | } 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /src/Widgets/WebView.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2021 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: Cassidy James Blaede 20 | */ 21 | 22 | public class Ephemeral.WebView : WebKit.WebView { 23 | public WebView () { 24 | Object ( 25 | expand: true, 26 | height_request: 200 27 | ); 28 | } 29 | 30 | construct { 31 | var webkit_settings = new WebKit.Settings () { 32 | allow_file_access_from_file_urls = true, 33 | default_font_family = Gtk.Settings.get_default ().gtk_font_name, 34 | enable_back_forward_navigation_gestures = true, 35 | enable_developer_extras = true, 36 | enable_java = false, 37 | enable_mediasource = true, 38 | enable_plugins = false, 39 | enable_smooth_scrolling = true 40 | }; 41 | 42 | settings = webkit_settings; 43 | web_context = new Ephemeral.WebContext (); 44 | 45 | context_menu.connect (on_context_menu); 46 | script_dialog.connect (on_script_dialog); 47 | 48 | button_release_event.connect ((event) => { 49 | if (event.button == 8) { 50 | go_back (); 51 | return true; 52 | } else if (event.button == 9) { 53 | go_forward (); 54 | return true; 55 | } 56 | 57 | return false; 58 | }); 59 | 60 | Application.settings.bind ( 61 | "enable-javascript", 62 | webkit_settings, 63 | "enable-javascript", 64 | SettingsBindFlags.DEFAULT 65 | ); 66 | webkit_settings.notify["enable-javascript"].connect (reload); 67 | } 68 | 69 | private bool on_context_menu ( 70 | WebKit.ContextMenu context_menu, 71 | Gdk.Event event, 72 | WebKit.HitTestResult hit_test_result 73 | ) { 74 | if (hit_test_result.context_is_link ()) { 75 | debug ("Intercepting and rebuilding context menu since it’s a link"); 76 | context_menu.remove_all (); 77 | 78 | var new_window_action = new SimpleAction ("new-window", null); 79 | var new_window_item = new WebKit.ContextMenuItem.from_gaction ( 80 | new_window_action, 81 | _("Open Link in New _Window"), 82 | null 83 | ); 84 | 85 | context_menu.append (new_window_item); 86 | context_menu.append ( 87 | new WebKit.ContextMenuItem.from_stock_action ( 88 | WebKit.ContextMenuAction.COPY_LINK_TO_CLIPBOARD 89 | ) 90 | ); 91 | 92 | new_window_action.activate.connect (() => { 93 | Application.new_window (hit_test_result.link_uri); 94 | }); 95 | 96 | } else { 97 | debug ("Leaving context menu as-is"); 98 | } 99 | 100 | return false; 101 | } 102 | 103 | private bool on_script_dialog (WebKit.ScriptDialog dialog) { 104 | var message_dialog = new ScriptDialog (dialog); 105 | message_dialog.show (); 106 | 107 | return true; 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /data/gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | true 6 | Ask to be default 7 | Whether or not Ephemeral should ask to be the default web browser (if it isn't already) 8 | 9 | 10 | 11 | false 12 | Close when opening externally 13 | Whether or not the current Ephemeral window should be closed when opening a link in an external browser 14 | 15 | 16 | 17 | true 18 | Enable JavaScript 19 | Whether or not JavaScript executes within pages 20 | 21 | 22 | 23 | [] 24 | User-added websites to always open externally 25 | List of websites added by the user to always open in the default external browser. Should contain the bare host (i.e. subdomain.example.com). 26 | 27 | 28 | 29 | [] 30 | User-added favorite websites 31 | List of favorite websites added by the user, i.e. to be used in autocomplete suggestions. Should contain bare hosts (i.e. subdomain.example.com) to be more easily completable by the user. 32 | 33 | 34 | 35 | 36 | -9223372036854775808 37 | Last native response 38 | The last time (Unix timestamp in UTC) the user responded to the notice about running Ephemeral somewhere other than elementary OS 39 | 40 | 41 | 42 | 43 | -9223372036854775808 44 | Last paid response 45 | The last time (Unix timestamp in UTC) the user responded to the notice about Ephemeral being a paid app 46 | 47 | 48 | 49 | "" 50 | Last used browser 51 | The id of the last-used browser (the browser selected in the menu) 52 | 53 | 54 | 55 | 0 56 | Manual closes after opening externally 57 | Number of times the user manually closed Ephemeral shortly after opening a page externally 58 | 59 | 60 | 61 | "https://duckduckgo.com/?q=%s&kp=1&t=elementary" 62 | Search engine 63 | A search string using "%s" as a placeholder for a query 64 | 65 | 66 | 67 | true 68 | Suggest "Close when opening externally" 69 | Whether or not Ephemeral should suggest to turn on the "Close when opening externally" setting if the user is manually doing it a lot 70 | 71 | 72 | 73 | true 74 | Warn on no network connection 75 | Whether or not Ephemeral should warn when there is no network available connection 76 | 77 | 78 | 79 | 1.0 80 | Zoom level 81 | The last-used zoom level for web pages 82 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /src/InfoBars/PaidInfoBar.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2021 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: Cassidy James Blaede 20 | */ 21 | 22 | public class Ephemeral.PaidInfoBar : Gtk.InfoBar { 23 | public PaidInfoBar () { 24 | Object ( 25 | message_type: Gtk.MessageType.INFO, 26 | show_close_button: true 27 | ); 28 | } 29 | 30 | construct { 31 | // TRANSLATORS: This is an emphasized part at the beginning of a complete sentence, no terminating punctuation 32 | string title = _("Ephemeral is a paid app"); 33 | // TRANSLATORS: This continues the previous string, with terminating punctuation 34 | string details = _("funded by AppCenter purchases."); 35 | string consider_purchasing = _("Consider purchasing or funding if you find value in using Ephemeral."); 36 | 37 | var default_label = new Gtk.Label ("%s %s\n%s".printf ( 38 | title, details, consider_purchasing 39 | )) { 40 | use_markup = true, 41 | wrap = true 42 | }; 43 | 44 | var dismiss_button = new Gtk.Button.with_label (_("Dismiss")) { 45 | halign = Gtk.Align.END 46 | }; 47 | dismiss_button.get_style_context ().add_class (Gtk.STYLE_CLASS_FLAT); 48 | 49 | get_content_area ().add (default_label); 50 | add_action_widget (dismiss_button, Gtk.ResponseType.REJECT); 51 | // TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 52 | add_button (_("Purchase or Fund…"), Gtk.ResponseType.ACCEPT); 53 | 54 | int64 now = new DateTime.now_utc ().to_unix (); 55 | 56 | revealed = 57 | Application.native () && 58 | ! paid () && 59 | (Application.settings.get_int64 ("last-paid-response") < now - Application.NOTICE_SECS) && 60 | Application.instance.warn_paid_for_session; 61 | 62 | response.connect ((response_id) => { 63 | switch (response_id) { 64 | case Gtk.ResponseType.ACCEPT: 65 | try { 66 | Gtk.show_uri ( 67 | get_screen (), 68 | "appstream://" + Application.instance.application_id, 69 | Gtk.get_current_event_time () 70 | ); 71 | } catch (GLib.Error e) { 72 | critical (e.message); 73 | } 74 | case Gtk.ResponseType.REJECT: 75 | now = new DateTime.now_utc ().to_unix (); 76 | Application.settings.set_int64 ("last-paid-response", now); 77 | case Gtk.ResponseType.CLOSE: 78 | Application.instance.warn_paid_for_session = false; 79 | revealed = false; 80 | break; 81 | default: 82 | assert_not_reached (); 83 | } 84 | }); 85 | } 86 | 87 | private bool paid () { 88 | var appcenter_settings_schema = SettingsSchemaSource.get_default ().lookup ( 89 | "io.elementary.appcenter.settings", 90 | false 91 | ); 92 | if (appcenter_settings_schema != null) { 93 | if (appcenter_settings_schema.has_key ("paid-apps")) { 94 | var appcenter_settings = new GLib.Settings ("io.elementary.appcenter.settings"); 95 | return strv_contains (appcenter_settings.get_strv ("paid-apps"), Application.instance.application_id); 96 | } 97 | } 98 | 99 | return false; 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /data/styles/hera.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2020 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: Cassidy James Blaede 20 | */ 21 | 22 | /* elementary DARK STYLESHEET */ 23 | @define-color bg_highlight_color shade(@bg_color, 1.4); 24 | @define-color fg_color @SILVER_300; 25 | @define-color inset_dark_color alpha(@BLACK_900, 0.03); 26 | @define-color menu_separator alpha(@BLACK_900, 0.25); 27 | @define-color menu_separator_shadow alpha(white, 0.05); 28 | @define-color placeholder_text_color shade(@text_color, 0.8); 29 | @define-color text_color @SILVER_100; 30 | @define-color text_shadow_color alpha(@BLACK_900, 0.4); 31 | @define-color titlebar_color shade(@base_color, 0.9); 32 | @define-color title_color shade(@text_color, 0.9); 33 | @define-color title_shadow_color alpha(@BLACK_900, 0.6); 34 | @define-color decoration_border_color alpha(black, 0.75); 35 | @define-color internal_element_prelight mix(@text_color, @base_color, 0.4); 36 | @define-color internal_element_insensitive mix(@internal_element_color, @base_color, 0.7); 37 | @define-color view_symbolic_color shade(@internal_element_color, 0.8); 38 | @define-color success_color @LIME_300; 39 | 40 | /* CUSTOM EPHEMERAL STYLES */ 41 | @define-color base_color mix(@GRAPE_900, @BLUEBERRY_900, 0.125); 42 | @define-color colorPrimary mix(@GRAPE_700, @BLUEBERRY_700, 0.33); 43 | @define-color colorAccent @GRAPE_500; 44 | @define-color accent_color_100 @GRAPE_100; 45 | @define-color accent_color_300 @GRAPE_300; 46 | @define-color accent_color_500 @GRAPE_500; 47 | @define-color accent_color_700 @GRAPE_700; 48 | @define-color accent_color_900 @GRAPE_900; 49 | @define-color textColorPrimary alpha(white, 0.9); 50 | @define-color textColorPrimaryShadow alpha(shade(@colorPrimary, 0.6), 0.4); 51 | 52 | .titlebar:not(.default-decoration) { 53 | background-image: 54 | linear-gradient( 55 | to bottom, 56 | alpha(white, 0.1), 57 | alpha(black, 0.1) 58 | ), 59 | linear-gradient(120deg, @BLUEBERRY_700, @GRAPE_700 67%); 60 | color: @textColorPrimary; 61 | } 62 | 63 | .titlebar button:not(.back):not(.forward):not(.refresh):not(.stop) { 64 | -gtk-icon-style: regular; 65 | } 66 | 67 | .titlebar button.raised { 68 | background-image: linear-gradient( 69 | to bottom, 70 | alpha(white, 0.1), 71 | alpha(black, 0.1) 72 | ); 73 | border-color: shade(@colorPrimary, 0.75); 74 | color: @textColorPrimary; 75 | text-shadow: 0 1px @textColorPrimaryShadow; 76 | box-shadow: 77 | inset 0 0 0 1px alpha(shade(@colorPrimary, 1.4), 0.05), 78 | inset 0 1px 0 0 alpha(shade(@colorPrimary, 1.4), 0.45), 79 | inset 0 -1px 0 0 alpha(shade(@colorPrimary, 1.4), 0.15), 80 | 0 1px 0 0 alpha(shade(@colorPrimary, 1.4), 0.3); 81 | -gtk-icon-shadow: 0 1px @textColorPrimaryShadow; 82 | } 83 | 84 | .titlebar button.raised:active, 85 | .titlebar button.raised:checked { 86 | background-color: alpha(#000, 0.05); 87 | background-image: none; 88 | border-color: alpha(#000, 0.27); 89 | box-shadow: 90 | inset 0 0 0 1px alpha(#000, 0.05), 91 | 0 1px 0 0 alpha(@bg_highlight_color, 0.3); 92 | } 93 | 94 | .titlebar entry { 95 | background: alpha(@GRAPE_900, 0.5); 96 | color: @textColorPrimary; 97 | text-shadow: none; 98 | } 99 | 100 | .titlebar entry image { 101 | color: @textColorPrimary; 102 | } 103 | 104 | .titlebar entry image:hover { 105 | color: alpha(@textColorPrimary, 0.75); 106 | } 107 | 108 | infobar revealer > box { 109 | background-image: 110 | -gtk-icontheme("dialog-information-symbolic"), 111 | linear-gradient(60deg, @BLUEBERRY_500, @GRAPE_500 67%); 112 | background-size: 16px, cover; 113 | background-repeat: no-repeat; 114 | background-position: 9px 1em, center; 115 | border-color: shade(@colorPrimary, 0.9); 116 | box-shadow: 117 | inset 0 1px 0 0 alpha(@colorPrimary, 0.3), 118 | inset 0 -1px 0 0 alpha(#fff, 0.3); 119 | color: white; 120 | } 121 | 122 | infobar.question revealer > box { 123 | background-image: 124 | -gtk-icontheme("dialog-question-symbolic"), 125 | linear-gradient(60deg, @BLUEBERRY_500, @GRAPE_500 67%); 126 | -gtk-icon-palette: error #fff; 127 | } 128 | 129 | infobar.warning revealer > box { 130 | background-image: 131 | -gtk-icontheme("dialog-warning-symbolic"), 132 | linear-gradient(60deg, @BLUEBERRY_500, @GRAPE_500 67%); 133 | -gtk-icon-palette: error #fff; 134 | } 135 | 136 | infobar label, 137 | infobar button { 138 | color: white; 139 | } 140 | 141 | infobar button { 142 | border-color: alpha (#000, 0.3); 143 | box-shadow: 144 | inset 0 0 0 1px alpha (#fff, 0.05), 145 | inset 0 1px 0 0 alpha (#fff, 0.45), 146 | inset 0 -1px 0 0 alpha (#fff, 0.15); 147 | } 148 | 149 | infobar button:active { 150 | background-color: alpha (#000, 0.05); 151 | background-image: none; 152 | border-color: alpha (#000, 0.27); 153 | box-shadow: 154 | inset 0 0 0 1px alpha (#000, 0.05), 155 | 0 1px 0 0 alpha (#fff, 0.3); 156 | } 157 | 158 | infobar button.flat:not(:active) { 159 | border-color: transparent; 160 | box-shadow: none; 161 | } 162 | 163 | checkbutton.menuitem { 164 | padding: 6px 12px; 165 | } 166 | 167 | checkbutton.menuitem check { 168 | margin-left: 1px; 169 | margin-right: 1px; 170 | } 171 | 172 | .app-notification { 173 | border: 1px solid rgba(0, 0, 0, 0.25); 174 | box-shadow: 0 0.25em 0.25em rgba(0, 0, 0, 0.25); 175 | margin: 1em; 176 | } 177 | 178 | selection { 179 | background-color: alpha (@accent_color_500, 0.3); 180 | color: mix (@text_color, @accent_color_100, 0.75); 181 | text-shadow: none; 182 | } 183 | -------------------------------------------------------------------------------- /src/Application.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2021 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: Cassidy James Blaede 20 | */ 21 | 22 | public class Ephemeral.Application : Gtk.Application { 23 | public const string[] CONTENT_TYPES = { 24 | "x-scheme-handler/http", 25 | "x-scheme-handler/https", 26 | "text/html", 27 | "application/x-extension-htm", 28 | "application/x-extension-html", 29 | "application/x-extension-shtml", 30 | "application/xhtml+xml", 31 | "application/x-extension-xht" 32 | }; 33 | 34 | // Once a month 35 | public const int64 NOTICE_SECS = 60 * 60 * 24 * 30; 36 | public const string DONATE_URL = "https://cassidyjames.com/pay"; 37 | public const string STARTPAGE = "https://www.startpage.com/do/search?q=%s&prfh=enable_stay_controlEEE0N1N"; 38 | public const string DDG = "https://duckduckgo.com/?q=%s&kp=1&t=elementary"; 39 | 40 | public static GLib.Settings settings; 41 | public Gtk.IconSize icon_size = Gtk.IconSize.LARGE_TOOLBAR; 42 | public int icon_pixel_size = 24; 43 | 44 | public bool ask_default_for_session = true; 45 | public bool warn_native_for_session = true; 46 | public bool warn_paid_for_session = true; 47 | public int64 last_external_open = int64.MIN; 48 | 49 | private bool opening_link = false; 50 | 51 | public Application () { 52 | Object ( 53 | application_id: "com.github.cassidyjames.ephemeral", 54 | flags: ApplicationFlags.HANDLES_OPEN 55 | ); 56 | } 57 | 58 | public static Application _instance = null; 59 | public static Application instance { 60 | get { 61 | if (_instance == null) { 62 | _instance = new Application (); 63 | } 64 | return _instance; 65 | } 66 | } 67 | 68 | static construct { 69 | settings = new Settings (Application.instance.application_id); 70 | } 71 | 72 | protected override void activate () { 73 | var provider = new Gtk.CssProvider (); 74 | provider.load_from_resource ("/com/github/cassidyjames/ephemeral/styles/global.css"); 75 | Gtk.StyleContext.add_provider_for_screen ( 76 | Gdk.Screen.get_default (), 77 | provider, 78 | Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION 79 | ); 80 | 81 | switch (stylesheet ()) { 82 | case -1: 83 | Application.instance.icon_size = Gtk.IconSize.SMALL_TOOLBAR; 84 | Application.instance.icon_pixel_size = 16; 85 | 86 | var non_native_provider = new Gtk.CssProvider (); 87 | non_native_provider.load_from_resource ("/com/github/cassidyjames/ephemeral/styles/non-native.css"); 88 | Gtk.StyleContext.add_provider_for_screen ( 89 | Gdk.Screen.get_default (), 90 | non_native_provider, 91 | Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION 92 | ); 93 | break; 94 | case 5: 95 | var hera_provider = new Gtk.CssProvider (); 96 | hera_provider.load_from_resource ("/com/github/cassidyjames/ephemeral/styles/hera.css"); 97 | Gtk.StyleContext.add_provider_for_screen ( 98 | Gdk.Screen.get_default (), 99 | hera_provider, 100 | Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION 101 | ); 102 | break; 103 | case 6: 104 | var odin_provider = new Gtk.CssProvider (); 105 | odin_provider.load_from_resource ("/com/github/cassidyjames/ephemeral/styles/odin.css"); 106 | Gtk.StyleContext.add_provider_for_screen ( 107 | Gdk.Screen.get_default (), 108 | odin_provider, 109 | Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION 110 | ); 111 | break; 112 | default: 113 | break; 114 | } 115 | 116 | if (!opening_link) { 117 | var app_window = new MainWindow (this); 118 | app_window.show_all (); 119 | } 120 | 121 | var quit_action = new SimpleAction ("quit", null); 122 | add_action (quit_action); 123 | set_accels_for_action ("app.quit", {"Q"}); 124 | 125 | quit_action.activate.connect (() => { 126 | quit (); 127 | }); 128 | } 129 | 130 | public override void open (File[] files, string hint) { 131 | opening_link = true; 132 | activate (); 133 | opening_link = false; 134 | 135 | foreach (var file in files) { 136 | // TODO: check if local file first, fix protocol handling 137 | var uri = file.get_uri (); 138 | var uris = new List (); 139 | uris.append (uri); 140 | string? domain = new Soup.URI (file.get_uri ()).get_host (); 141 | 142 | if (domain in settings.get_strv ("external-websites")) { 143 | foreach (AppInfo app_info in AppInfo.get_all ()) { 144 | if (app_info.get_id () == settings.get_string ("last-used-browser")) { 145 | try { 146 | app_info.launch_uris (uris, null); 147 | } catch (Error e) { 148 | critical (e.message); 149 | } 150 | } 151 | } 152 | } else { 153 | var app_window = new MainWindow (this, uri); 154 | app_window.show_all (); 155 | } 156 | } 157 | } 158 | 159 | public static int main (string[] args) { 160 | var app = new Application (); 161 | return app.run (args); 162 | } 163 | 164 | public static int stylesheet () { 165 | var full_stylesheet = Gtk.Settings.get_default ().gtk_theme_name; 166 | 167 | if (full_stylesheet.has_prefix ("elementary")) { 168 | // Juno/Hera 169 | return 5; 170 | } else if (full_stylesheet.has_prefix ("io.elementary.stylesheet")) { 171 | // Odin 172 | return 6; 173 | } 174 | 175 | return -1; 176 | } 177 | 178 | public static bool native () { 179 | string os = ""; 180 | var file = File.new_for_path ("/etc/os-release"); 181 | try { 182 | var map = new Gee.HashMap (); 183 | var stream = new DataInputStream (file.read ()); 184 | string line; 185 | // Read lines until end of file (null) is reached 186 | while ((line = stream.read_line (null)) != null) { 187 | var component = line.split ("=", 2); 188 | if (component.length == 2) { 189 | map[component[0]] = component[1].replace ("\"", ""); 190 | } 191 | } 192 | 193 | os = map["ID"]; 194 | } catch (GLib.Error e) { 195 | critical ("Couldn't read /etc/os-release: %s", e.message); 196 | } 197 | 198 | string session = Environment.get_variable ("DESKTOP_SESSION"); 199 | 200 | return ( 201 | os == "elementary" && 202 | session == "pantheon" && 203 | (stylesheet () > 0 ) 204 | ); 205 | } 206 | 207 | public static void new_window (string? uri = null) { 208 | var app_info = new DesktopAppInfo (Ephemeral.Application.instance.application_id + ".desktop"); 209 | var uris = new List (); 210 | uris.append (uri); 211 | 212 | try { 213 | app_info.launch_uris (uris, null); 214 | } catch (GLib.Error e) { 215 | critical (e.message); 216 | } 217 | } 218 | } 219 | -------------------------------------------------------------------------------- /src/Widgets/BrowserButton.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019–2021 Cassidy James Blaede (https://cassidyjames.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: Cassidy James Blaede 20 | */ 21 | 22 | public class Ephemeral.BrowserButton : Gtk.Grid { 23 | public Gtk.CheckButton external_check { get; set;} 24 | 25 | public Gtk.Window main_window { get; construct set; } 26 | public WebView web_view { get; construct set; } 27 | 28 | private Gtk.Button open_button { get; set; } 29 | private List external_apps = AppInfo.get_all_for_type (Application.CONTENT_TYPES[0]); 30 | 31 | public BrowserButton (Gtk.Window _main_window, WebView _web_view) { 32 | Object ( 33 | main_window: _main_window, 34 | web_view: _web_view 35 | ); 36 | } 37 | 38 | construct { 39 | // Prune Ephemeral from the list of apps 40 | foreach (AppInfo app_info in external_apps) { 41 | if (app_info.get_id () == GLib.Application.get_default ().application_id + ".desktop") { 42 | external_apps.remove (app_info); 43 | } 44 | } 45 | 46 | unowned Gtk.StyleContext context = get_style_context (); 47 | context.add_class (Gtk.STYLE_CLASS_LINKED); 48 | context.add_class ("browser-button"); 49 | 50 | var list_button = new Gtk.MenuButton (); 51 | list_button.image = new Gtk.Image.from_icon_name ("pan-down-symbolic", Gtk.IconSize.BUTTON); 52 | // TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in another menu 53 | list_button.tooltip_text = _("Open page in…"); 54 | list_button.get_style_context ().add_class (Gtk.STYLE_CLASS_RAISED); 55 | 56 | open_button = new Gtk.Button (); 57 | open_button.get_style_context ().add_class (Gtk.STYLE_CLASS_RAISED); 58 | 59 | var list_popover = new Gtk.Popover (list_button); 60 | list_button.popover = list_popover; 61 | 62 | var list_grid = new Gtk.Grid (); 63 | list_grid.orientation = Gtk.Orientation.VERTICAL; 64 | 65 | external_check = new Gtk.CheckButton.with_label (_("Automatically Open This Site Externally")) { 66 | active = new Soup.URI (web_view.get_uri ()).get_host () in Application.settings.get_strv ("external-websites") 67 | }; 68 | 69 | unowned Gtk.StyleContext external_check_context = external_check.get_style_context (); 70 | external_check_context.add_class (Gtk.STYLE_CLASS_MENUITEM); 71 | external_check_context.add_class (Gtk.STYLE_CLASS_FLAT); 72 | 73 | var close_check = new Gtk.CheckButton.with_label (_("Close Window When Opening Externally")); 74 | close_check.margin_bottom = 3; 75 | 76 | unowned Gtk.StyleContext close_check_context = close_check.get_style_context (); 77 | close_check_context.add_class (Gtk.STYLE_CLASS_MENUITEM); 78 | close_check_context.add_class (Gtk.STYLE_CLASS_FLAT); 79 | 80 | list_popover.add (list_grid); 81 | 82 | foreach (AppInfo app_info in external_apps) { 83 | var browser_icon = new Gtk.Image.from_gicon (app_info.get_icon (), Gtk.IconSize.MENU); 84 | browser_icon.pixel_size = 16; 85 | 86 | var browser_grid = new Gtk.Grid (); 87 | browser_grid.margin = 3; 88 | browser_grid.column_spacing = 3; 89 | browser_grid.add (browser_icon); 90 | browser_grid.add (new Gtk.Label (app_info.get_name ())); 91 | 92 | var browser_item = new Gtk.Button (); 93 | browser_item.add (browser_grid); 94 | 95 | unowned Gtk.StyleContext browser_item_context = browser_item.get_style_context (); 96 | browser_item_context.add_class (Gtk.STYLE_CLASS_MENUITEM); 97 | browser_item_context.add_class (Gtk.STYLE_CLASS_FLAT); 98 | 99 | list_grid.add (browser_item); 100 | browser_item.visible = true; 101 | 102 | browser_grid.show_all (); 103 | 104 | browser_item.clicked.connect (() => { 105 | Application.settings.set_string ("last-used-browser", app_info.get_id ()); 106 | try_opening (app_info, web_view.get_uri ()); 107 | list_popover.popdown (); 108 | }); 109 | } 110 | 111 | var separator = new Gtk.Separator (Gtk.Orientation.HORIZONTAL); 112 | separator.margin_top = separator.margin_bottom = 3; 113 | 114 | list_grid.add (separator); 115 | list_grid.add (external_check); 116 | list_grid.add (close_check); 117 | list_grid.show_all (); 118 | 119 | setup_preferred_browser (); 120 | 121 | attach (open_button, 0, 0); 122 | attach (list_button, 1, 0); 123 | 124 | Application.settings.changed["last-used-browser"].connect (() => { 125 | setup_preferred_browser (); 126 | }); 127 | 128 | external_check.toggled.connect (() => { 129 | string domain = new Soup.URI (web_view.get_uri ()).get_host (); 130 | var external_websites = Application.settings.get_strv ("external-websites"); 131 | 132 | if (external_check.active) { 133 | if (! (domain in external_websites)) { 134 | external_websites += domain; 135 | } 136 | } else { 137 | if (domain in external_websites) { 138 | string[] pruned_domains = {}; 139 | foreach (string existing_domain in external_websites) { 140 | if (existing_domain != domain) { 141 | pruned_domains += existing_domain; 142 | } 143 | } 144 | 145 | external_websites = pruned_domains; 146 | } 147 | } 148 | 149 | Application.settings.set_strv ("external-websites", external_websites); 150 | }); 151 | 152 | Application.settings.bind ( 153 | "close-when-opening-externally", 154 | close_check, 155 | "active", 156 | SettingsBindFlags.DEFAULT 157 | ); 158 | } 159 | 160 | private void setup_preferred_browser () { 161 | string preferred_browser = Application.settings.get_string ("last-used-browser"); 162 | if (preferred_browser == "") { 163 | // Just grab the first browser 164 | preferred_browser = external_apps.first ().data.get_id (); 165 | } 166 | 167 | foreach (AppInfo app_info in external_apps) { 168 | if (app_info.get_id () == preferred_browser) { 169 | var browser_icon = new Gtk.Image.from_gicon ( 170 | app_info.get_icon (), 171 | Application.instance.icon_size 172 | ); 173 | browser_icon.pixel_size = Application.instance.icon_pixel_size; 174 | 175 | open_button.image = browser_icon; 176 | open_button.tooltip_text = _("Open page in %s").printf (app_info.get_name ()); 177 | open_button.tooltip_markup = Granite.markup_accel_tooltip ( 178 | {"o"}, 179 | open_button.tooltip_text 180 | ); 181 | 182 | open_button.clicked.connect (() => { 183 | try_opening (app_info, web_view.get_uri ()); 184 | }); 185 | } 186 | } 187 | } 188 | 189 | public void try_opening (AppInfo app_info, string uri) { 190 | var uris = new List (); 191 | uris.append (uri); 192 | 193 | try { 194 | app_info.launch_uris (uris, null); 195 | 196 | if (Application.settings.get_boolean ("close-when-opening-externally")) { 197 | main_window.close (); 198 | } else { 199 | Application.instance.last_external_open = new DateTime.now_utc ().to_unix (); 200 | } 201 | } catch (Error e) { 202 | critical (e.message); 203 | } 204 | } 205 | 206 | public virtual override new signal void activate () { 207 | open_button.activate (); 208 | } 209 | } 210 | -------------------------------------------------------------------------------- /po/lt.po: -------------------------------------------------------------------------------- 1 | # Lithuanian translations for com.github.cassidyjames.ephemeral package. 2 | # Copyright (C) 2019 THE com.github.cassidyjames.ephemeral'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.cassidyjames.ephemeral package. 4 | # Automatically generated, 2019. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: com.github.cassidyjames.ephemeral\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2020-03-02 14:52-0700\n" 11 | "PO-Revision-Date: 2019-12-02 10:27+0100\n" 12 | "Last-Translator: Automatically generated\n" 13 | "Language-Team: none\n" 14 | "Language: lt\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" 19 | "%100<10 || n%100>=20) ? 1 : 2);\n" 20 | 21 | #: src/MainWindow.vala:63 22 | msgid "Undo" 23 | msgstr "" 24 | 25 | #: src/MainWindow.vala:77 26 | msgid "Back" 27 | msgstr "" 28 | 29 | #: src/MainWindow.vala:83 30 | msgid "Forward" 31 | msgstr "" 32 | 33 | #: src/MainWindow.vala:88 34 | msgid "Reload page" 35 | msgstr "" 36 | 37 | #: src/MainWindow.vala:93 38 | msgid "Stop loading" 39 | msgstr "" 40 | 41 | #: src/MainWindow.vala:105 42 | msgid "Close window and erase history" 43 | msgstr "" 44 | 45 | #: src/MainWindow.vala:113 46 | msgid "Menu" 47 | msgstr "" 48 | 49 | #: src/MainWindow.vala:122 50 | msgid "Light content" 51 | msgstr "" 52 | 53 | #: src/MainWindow.vala:123 54 | msgid "Dark content" 55 | msgstr "" 56 | 57 | #: src/MainWindow.vala:135 58 | msgid "Zoom out" 59 | msgstr "" 60 | 61 | #: src/MainWindow.vala:142 62 | msgid "Default zoom level" 63 | msgstr "" 64 | 65 | #: src/MainWindow.vala:149 66 | msgid "Zoom in" 67 | msgstr "" 68 | 69 | #: src/MainWindow.vala:164 70 | msgid "Note: Disabling JavaScript will likely break many sites" 71 | msgstr "" 72 | 73 | #: src/MainWindow.vala:180 74 | msgid "JavaScript" 75 | msgstr "" 76 | 77 | #: src/MainWindow.vala:194 78 | msgid "Open New Window" 79 | msgstr "" 80 | 81 | #: src/MainWindow.vala:212 82 | msgid "Quit Ephemeral" 83 | msgstr "" 84 | 85 | #: src/MainWindow.vala:217 86 | msgid "Close all windows and erase all history" 87 | msgstr "" 88 | 89 | #: src/MainWindow.vala:238 90 | msgid "Startpage.com Search" 91 | msgstr "" 92 | 93 | #: src/MainWindow.vala:241 94 | msgid "DuckDuckGo Search" 95 | msgstr "" 96 | 97 | #: src/MainWindow.vala:246 98 | msgid "Custom Search Engine…" 99 | msgstr "" 100 | 101 | #: src/MainWindow.vala:250 102 | msgid "Reset Preferences…" 103 | msgstr "" 104 | 105 | #: src/MainWindow.vala:682 106 | msgid "Suggestion removed" 107 | msgstr "" 108 | 109 | #: src/MainWindow.vala:686 110 | msgid "Suggestion added" 111 | msgstr "" 112 | 113 | #: src/Dialogs/ExternalDialog.vala:28 src/Dialogs/ExternalDialog.vala:30 114 | msgid "Open Link Externally?" 115 | msgstr "" 116 | 117 | #: src/Dialogs/ExternalDialog.vala:37 118 | #, c-format 119 | msgid "This page is trying to open an app for %s links." 120 | msgstr "" 121 | 122 | #: src/Dialogs/ExternalDialog.vala:39 123 | msgid "This page is trying to open an app." 124 | msgstr "" 125 | 126 | #: src/Dialogs/ExternalDialog.vala:42 127 | msgid "Your data may not be kept private by the opened app." 128 | msgstr "" 129 | 130 | #: src/Dialogs/ExternalDialog.vala:47 131 | msgid "Don’t Open" 132 | msgstr "" 133 | 134 | #: src/Dialogs/ExternalDialog.vala:50 135 | msgid "Open Anyway" 136 | msgstr "" 137 | 138 | #: src/Dialogs/PreferencesDialog.vala:26 src/Dialogs/PreferencesDialog.vala:28 139 | msgid "Reset Preferences?" 140 | msgstr "" 141 | 142 | #: src/Dialogs/PreferencesDialog.vala:27 143 | msgid "" 144 | "All added website suggestions will be removed. Any dismissed or remembered " 145 | "alerts, warnings, etc. will be displayed again the next time Ephemeral is " 146 | "opened." 147 | msgstr "" 148 | 149 | #: src/Dialogs/PreferencesDialog.vala:33 150 | msgid "Never Mind" 151 | msgstr "" 152 | 153 | #: src/Dialogs/PreferencesDialog.vala:36 154 | msgid "Reset Preferences" 155 | msgstr "" 156 | 157 | #: src/Dialogs/ScriptDialog.vala:27 src/Dialogs/ScriptDialog.vala:28 158 | msgid "Message From Page" 159 | msgstr "" 160 | 161 | #: src/Dialogs/ScriptDialog.vala:39 src/Dialogs/ScriptDialog.vala:47 162 | #: src/Dialogs/ScriptDialog.vala:69 163 | msgid "Close" 164 | msgstr "" 165 | 166 | #: src/Dialogs/ScriptDialog.vala:49 src/Dialogs/ScriptDialog.vala:71 167 | msgid "Confirm" 168 | msgstr "" 169 | 170 | #: src/InfoBars/DefaultInfoBar.vala:31 171 | msgid "Make privacy a habit." 172 | msgstr "" 173 | 174 | #: src/InfoBars/DefaultInfoBar.vala:32 175 | msgid "Set Ephemeral as your default browser?" 176 | msgstr "" 177 | 178 | #. TRANSLATORS: Where you change default apps on elementary OS. Be very careful with the markup! 179 | #: src/InfoBars/DefaultInfoBar.vala:35 180 | msgid "" 181 | "You can always change this later in System Settings → " 182 | "Applications." 183 | msgstr "" 184 | 185 | #: src/InfoBars/DefaultInfoBar.vala:46 186 | msgid "Never Ask Again" 187 | msgstr "" 188 | 189 | #: src/InfoBars/DefaultInfoBar.vala:52 190 | msgid "Set as Default" 191 | msgstr "" 192 | 193 | #: src/InfoBars/NativeInfoBar.vala:31 194 | msgid "Ephemeral is a paid app designed for elementary OS." 195 | msgstr "" 196 | 197 | #: src/InfoBars/NativeInfoBar.vala:32 198 | msgid "" 199 | "Some features may not work properly when running on another OS or desktop " 200 | "environment." 201 | msgstr "" 202 | 203 | #: src/InfoBars/NativeInfoBar.vala:33 204 | msgid "" 205 | "Ephemeral is also typically funded by elementary AppCenter purchases. " 206 | "Consider donating if you find value in using Ephemeral on other platforms." 207 | msgstr "" 208 | 209 | #: src/InfoBars/NativeInfoBar.vala:41 src/InfoBars/PaidInfoBar.vala:43 210 | msgid "Dismiss" 211 | msgstr "" 212 | 213 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 214 | #: src/InfoBars/NativeInfoBar.vala:46 215 | msgid "Donate…" 216 | msgstr "" 217 | 218 | #: src/InfoBars/NetworkInfoBar.vala:31 219 | msgid "Network Not Available." 220 | msgstr "" 221 | 222 | #: src/InfoBars/NetworkInfoBar.vala:32 223 | msgid "Connect to the Internet to browse the Web." 224 | msgstr "" 225 | 226 | #: src/InfoBars/NetworkInfoBar.vala:38 227 | msgid "Never Warn Again" 228 | msgstr "" 229 | 230 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 231 | #: src/InfoBars/NetworkInfoBar.vala:45 232 | msgid "Network Settings…" 233 | msgstr "" 234 | 235 | #. TRANSLATORS: This is an emphasized part at the beginning of a complete sentence, no terminating punctuation 236 | #: src/InfoBars/PaidInfoBar.vala:32 237 | msgid "Ephemeral is a paid app" 238 | msgstr "" 239 | 240 | #. TRANSLATORS: This continues the previous string, with terminating punctuation 241 | #: src/InfoBars/PaidInfoBar.vala:34 242 | msgid "funded by AppCenter purchases." 243 | msgstr "" 244 | 245 | #: src/InfoBars/PaidInfoBar.vala:35 246 | msgid "Consider purchasing or funding if you find value in using Ephemeral." 247 | msgstr "" 248 | 249 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 250 | #: src/InfoBars/PaidInfoBar.vala:50 251 | msgid "Purchase or Fund…" 252 | msgstr "" 253 | 254 | #: src/Views/ErrorView.vala:28 255 | msgid "Whoops" 256 | msgstr "" 257 | 258 | #: src/Views/ErrorView.vala:31 259 | msgid "Could not display the page." 260 | msgstr "" 261 | 262 | #: src/Views/WelcomeView.vala:31 263 | msgid "The always-incognito web browser" 264 | msgstr "" 265 | 266 | #: src/Views/WelcomeView.vala:33 267 | msgid "" 268 | "Remember, Ephemeral and any browser’s incognito or private mode can only do " 269 | "so much: they mitigate some tracking and don’t store data on your device, " 270 | "but they won’t stop your ISP, government, or determined websites from " 271 | "tracking you." 272 | msgstr "" 273 | 274 | #: src/Views/WelcomeView.vala:34 275 | msgid "For the best protection, always use a VPN." 276 | msgstr "" 277 | 278 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in another menu 279 | #: src/Widgets/BrowserButton.vala:50 280 | msgid "Open page in…" 281 | msgstr "" 282 | 283 | #: src/Widgets/BrowserButton.vala:62 284 | msgid "Close Window When Opening Externally" 285 | msgstr "" 286 | 287 | #: src/Widgets/BrowserButton.vala:141 288 | #, c-format 289 | msgid "Open page in %s" 290 | msgstr "" 291 | 292 | #: src/Widgets/UrlEntry.vala:39 293 | msgid "Enter a URL or search term" 294 | msgstr "" 295 | 296 | #: src/Widgets/UrlEntry.vala:185 297 | #, c-format 298 | msgid "Go to \"%s\"" 299 | msgstr "" 300 | 301 | #: src/Widgets/UrlEntry.vala:185 302 | #, c-format 303 | msgid "Search for \"%s\"" 304 | msgstr "" 305 | 306 | #: src/Widgets/UrlEntry.vala:251 307 | msgid "Popular website" 308 | msgstr "" 309 | 310 | #: src/Widgets/UrlEntry.vala:284 311 | msgid "Favorite website" 312 | msgstr "" 313 | 314 | #: src/Widgets/UrlEntry.vala:723 315 | msgid "Go" 316 | msgstr "" 317 | 318 | #: src/Widgets/UrlEntry.vala:735 319 | msgid "Remove Website from Suggestions" 320 | msgstr "" 321 | 322 | #: src/Widgets/UrlEntry.vala:739 323 | msgid "Add Website to Suggestions" 324 | msgstr "" 325 | 326 | #: src/Widgets/WebView.vala:105 327 | msgid "Open Link in New _Window" 328 | msgstr "" 329 | -------------------------------------------------------------------------------- /po/com.github.cassidyjames.ephemeral.pot: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.cassidyjames.ephemeral package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: com.github.cassidyjames.ephemeral\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2021-03-25 17:37+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: src/MainWindow.vala:70 21 | msgid "Undo" 22 | msgstr "" 23 | 24 | #: src/MainWindow.vala:84 25 | msgid "Back" 26 | msgstr "" 27 | 28 | #: src/MainWindow.vala:90 29 | msgid "Forward" 30 | msgstr "" 31 | 32 | #: src/MainWindow.vala:95 33 | msgid "Reload page" 34 | msgstr "" 35 | 36 | #: src/MainWindow.vala:100 37 | msgid "Stop loading" 38 | msgstr "" 39 | 40 | #: src/MainWindow.vala:112 41 | msgid "Close window and erase history" 42 | msgstr "" 43 | 44 | #: src/MainWindow.vala:121 45 | msgid "Menu" 46 | msgstr "" 47 | 48 | #: src/MainWindow.vala:131 49 | msgid "Light content" 50 | msgstr "" 51 | 52 | #: src/MainWindow.vala:132 53 | msgid "Dark content" 54 | msgstr "" 55 | 56 | #: src/MainWindow.vala:165 57 | msgid "Zoom out" 58 | msgstr "" 59 | 60 | #: src/MainWindow.vala:172 61 | msgid "Default zoom level" 62 | msgstr "" 63 | 64 | #: src/MainWindow.vala:179 65 | msgid "Zoom in" 66 | msgstr "" 67 | 68 | #: src/MainWindow.vala:195 69 | msgid "Note: Disabling JavaScript will likely break many sites" 70 | msgstr "" 71 | 72 | #: src/MainWindow.vala:211 73 | msgid "JavaScript" 74 | msgstr "" 75 | 76 | #: src/MainWindow.vala:225 77 | msgid "Open New Window" 78 | msgstr "" 79 | 80 | #: src/MainWindow.vala:243 81 | msgid "Quit Ephemeral" 82 | msgstr "" 83 | 84 | #: src/MainWindow.vala:248 85 | msgid "Close all windows and erase all history" 86 | msgstr "" 87 | 88 | #: src/MainWindow.vala:269 89 | msgid "DuckDuckGo Search" 90 | msgstr "" 91 | 92 | #: src/MainWindow.vala:272 93 | msgid "Startpage.com Search" 94 | msgstr "" 95 | 96 | #: src/MainWindow.vala:277 97 | msgid "Custom Search Engine…" 98 | msgstr "" 99 | 100 | #: src/MainWindow.vala:281 101 | msgid "Reset Preferences…" 102 | msgstr "" 103 | 104 | #: src/MainWindow.vala:770 105 | msgid "Suggestion removed" 106 | msgstr "" 107 | 108 | #: src/MainWindow.vala:774 109 | msgid "Suggestion added" 110 | msgstr "" 111 | 112 | #: src/Dialogs/CustomSearchDialog.vala:26 113 | #: src/Dialogs/CustomSearchDialog.vala:28 114 | msgid "Set a Custom Search Engine" 115 | msgstr "" 116 | 117 | #: src/Dialogs/CustomSearchDialog.vala:27 118 | #, c-format 119 | msgid "" 120 | "Searches from the URL entry will be sent to this custom URL. %s will " 121 | "be replaced with the search query." 122 | msgstr "" 123 | 124 | #: src/Dialogs/CustomSearchDialog.vala:35 src/Dialogs/PreferencesDialog.vala:33 125 | msgid "Never Mind" 126 | msgstr "" 127 | 128 | #: src/Dialogs/CustomSearchDialog.vala:38 129 | msgid "Set Search Engine" 130 | msgstr "" 131 | 132 | #: src/Dialogs/PreferencesDialog.vala:26 src/Dialogs/PreferencesDialog.vala:28 133 | msgid "Reset Preferences?" 134 | msgstr "" 135 | 136 | #: src/Dialogs/PreferencesDialog.vala:27 137 | msgid "" 138 | "All added website suggestions will be removed. Any dismissed or remembered " 139 | "alerts, warnings, etc. will be displayed again the next time Ephemeral is " 140 | "opened." 141 | msgstr "" 142 | 143 | #: src/Dialogs/PreferencesDialog.vala:36 144 | msgid "Reset Preferences" 145 | msgstr "" 146 | 147 | #: src/Dialogs/ProtocolDialog.vala:28 src/Dialogs/ProtocolDialog.vala:30 148 | msgid "Open Link Externally?" 149 | msgstr "" 150 | 151 | #: src/Dialogs/ProtocolDialog.vala:37 152 | #, c-format 153 | msgid "This page is trying to open an app for %s links." 154 | msgstr "" 155 | 156 | #: src/Dialogs/ProtocolDialog.vala:39 157 | msgid "This page is trying to open an app." 158 | msgstr "" 159 | 160 | #: src/Dialogs/ProtocolDialog.vala:42 161 | msgid "Your data may not be kept private by the opened app." 162 | msgstr "" 163 | 164 | #: src/Dialogs/ProtocolDialog.vala:47 165 | msgid "Don’t Open" 166 | msgstr "" 167 | 168 | #: src/Dialogs/ProtocolDialog.vala:50 169 | msgid "Open Anyway" 170 | msgstr "" 171 | 172 | #: src/Dialogs/ScriptDialog.vala:28 src/Dialogs/ScriptDialog.vala:30 173 | msgid "Message From Page" 174 | msgstr "" 175 | 176 | #: src/Dialogs/ScriptDialog.vala:40 src/Dialogs/ScriptDialog.vala:48 177 | #: src/Dialogs/ScriptDialog.vala:71 178 | msgid "Close" 179 | msgstr "" 180 | 181 | #: src/Dialogs/ScriptDialog.vala:50 src/Dialogs/ScriptDialog.vala:73 182 | msgid "Confirm" 183 | msgstr "" 184 | 185 | #: src/InfoBars/DefaultInfoBar.vala:31 186 | msgid "Make privacy a habit." 187 | msgstr "" 188 | 189 | #: src/InfoBars/DefaultInfoBar.vala:32 190 | msgid "Set Ephemeral as your default browser?" 191 | msgstr "" 192 | 193 | #. TRANSLATORS: Where you change default apps on elementary OS. Be very careful with the markup! 194 | #: src/InfoBars/DefaultInfoBar.vala:35 195 | msgid "" 196 | "You can always change this later in System Settings → " 197 | "Applications." 198 | msgstr "" 199 | 200 | #: src/InfoBars/DefaultInfoBar.vala:46 201 | msgid "Never Ask Again" 202 | msgstr "" 203 | 204 | #: src/InfoBars/DefaultInfoBar.vala:52 205 | msgid "Set as Default" 206 | msgstr "" 207 | 208 | #: src/InfoBars/NativeInfoBar.vala:31 209 | msgid "Ephemeral is a paid app designed for elementary OS." 210 | msgstr "" 211 | 212 | #: src/InfoBars/NativeInfoBar.vala:32 213 | msgid "" 214 | "Some features may not work properly when running on another OS or desktop " 215 | "environment." 216 | msgstr "" 217 | 218 | #: src/InfoBars/NativeInfoBar.vala:33 219 | msgid "" 220 | "Ephemeral is also typically funded by elementary AppCenter purchases. " 221 | "Consider donating if you find value in using Ephemeral on other platforms." 222 | msgstr "" 223 | 224 | #: src/InfoBars/NativeInfoBar.vala:42 src/InfoBars/PaidInfoBar.vala:44 225 | msgid "Dismiss" 226 | msgstr "" 227 | 228 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 229 | #: src/InfoBars/NativeInfoBar.vala:48 230 | msgid "Donate…" 231 | msgstr "" 232 | 233 | #: src/InfoBars/NetworkInfoBar.vala:31 234 | msgid "Network Not Available." 235 | msgstr "" 236 | 237 | #: src/InfoBars/NetworkInfoBar.vala:32 238 | msgid "Connect to the Internet to browse the Web." 239 | msgstr "" 240 | 241 | #: src/InfoBars/NetworkInfoBar.vala:39 242 | msgid "Never Warn Again" 243 | msgstr "" 244 | 245 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 246 | #: src/InfoBars/NetworkInfoBar.vala:47 247 | msgid "Network Settings…" 248 | msgstr "" 249 | 250 | #. TRANSLATORS: This is an emphasized part at the beginning of a complete sentence, no terminating punctuation 251 | #: src/InfoBars/PaidInfoBar.vala:32 252 | msgid "Ephemeral is a paid app" 253 | msgstr "" 254 | 255 | #. TRANSLATORS: This continues the previous string, with terminating punctuation 256 | #: src/InfoBars/PaidInfoBar.vala:34 257 | msgid "funded by AppCenter purchases." 258 | msgstr "" 259 | 260 | #: src/InfoBars/PaidInfoBar.vala:35 261 | msgid "Consider purchasing or funding if you find value in using Ephemeral." 262 | msgstr "" 263 | 264 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 265 | #: src/InfoBars/PaidInfoBar.vala:52 266 | msgid "Purchase or Fund…" 267 | msgstr "" 268 | 269 | #: src/Views/ErrorView.vala:28 270 | msgid "Whoops" 271 | msgstr "" 272 | 273 | #: src/Views/ErrorView.vala:31 274 | msgid "Could not display the page." 275 | msgstr "" 276 | 277 | #: src/Views/WelcomeView.vala:31 278 | msgid "The always-incognito web browser" 279 | msgstr "" 280 | 281 | #: src/Views/WelcomeView.vala:33 282 | msgid "" 283 | "Remember, Ephemeral and any browser’s incognito or private mode can only do " 284 | "so much: they mitigate some tracking and don’t store data on your device, " 285 | "but they won’t stop your ISP, government, or determined websites from " 286 | "tracking you." 287 | msgstr "" 288 | 289 | #: src/Views/WelcomeView.vala:34 290 | msgid "For the best protection, always use a VPN." 291 | msgstr "" 292 | 293 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in another menu 294 | #: src/Widgets/BrowserButton.vala:53 295 | msgid "Open page in…" 296 | msgstr "" 297 | 298 | #: src/Widgets/BrowserButton.vala:65 299 | msgid "Automatically Open This Site Externally" 300 | msgstr "" 301 | 302 | #: src/Widgets/BrowserButton.vala:73 303 | msgid "Close Window When Opening Externally" 304 | msgstr "" 305 | 306 | #: src/Widgets/BrowserButton.vala:176 307 | #, c-format 308 | msgid "Open page in %s" 309 | msgstr "" 310 | 311 | #: src/Widgets/UrlEntry.vala:39 312 | msgid "Enter a URL or search term" 313 | msgstr "" 314 | 315 | #: src/Widgets/UrlEntry.vala:185 316 | #, c-format 317 | msgid "Go to \"%s\"" 318 | msgstr "" 319 | 320 | #: src/Widgets/UrlEntry.vala:185 321 | #, c-format 322 | msgid "Search for \"%s\"" 323 | msgstr "" 324 | 325 | #: src/Widgets/UrlEntry.vala:251 326 | msgid "Popular website" 327 | msgstr "" 328 | 329 | #: src/Widgets/UrlEntry.vala:284 330 | msgid "Favorite website" 331 | msgstr "" 332 | 333 | #. elementary sites 334 | #: src/Widgets/UrlEntry.vala:288 src/Widgets/UrlEntry.vala:289 335 | #: src/Widgets/UrlEntry.vala:290 src/Widgets/UrlEntry.vala:291 336 | msgid "elementary Site" 337 | msgstr "" 338 | 339 | #. Friends of Ephemeral 340 | #: src/Widgets/UrlEntry.vala:295 341 | msgid "Creator of Ephemeral" 342 | msgstr "" 343 | 344 | #: src/Widgets/UrlEntry.vala:296 345 | msgid "Friend of Ephemeral" 346 | msgstr "" 347 | 348 | #: src/Widgets/UrlEntry.vala:743 349 | msgid "Go" 350 | msgstr "" 351 | 352 | #: src/Widgets/UrlEntry.vala:755 353 | msgid "Remove Website from Suggestions" 354 | msgstr "" 355 | 356 | #: src/Widgets/UrlEntry.vala:759 357 | msgid "Add Website to Suggestions" 358 | msgstr "" 359 | 360 | #: src/Widgets/WebView.vala:81 361 | msgid "Open Link in New _Window" 362 | msgstr "" 363 | -------------------------------------------------------------------------------- /po/pl.po: -------------------------------------------------------------------------------- 1 | # Polish translations for com.github.cassidyjames.ephemeral package. 2 | # Copyright (C) 2019 THE com.github.cassidyjames.ephemeral'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.cassidyjames.ephemeral package. 4 | # Paweł Przybysz , 2019. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: com.github.cassidyjames.ephemeral\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2020-03-02 14:52-0700\n" 11 | "PO-Revision-Date: 2019-12-02 10:27+0100\n" 12 | "Last-Translator: Paweł Przybysz \n" 13 | "Language-Team: none\n" 14 | "Language: pl\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " 19 | "|| n%100>=20) ? 1 : 2);\n" 20 | 21 | #: src/MainWindow.vala:63 22 | msgid "Undo" 23 | msgstr "" 24 | 25 | #: src/MainWindow.vala:77 26 | msgid "Back" 27 | msgstr "Wstecz" 28 | 29 | #: src/MainWindow.vala:83 30 | msgid "Forward" 31 | msgstr "Dalej" 32 | 33 | #: src/MainWindow.vala:88 34 | msgid "Reload page" 35 | msgstr "Przeładuj stronę" 36 | 37 | #: src/MainWindow.vala:93 38 | msgid "Stop loading" 39 | msgstr "Zatrzymaj ładowanie" 40 | 41 | #: src/MainWindow.vala:105 42 | msgid "Close window and erase history" 43 | msgstr "" 44 | 45 | #: src/MainWindow.vala:113 46 | msgid "Menu" 47 | msgstr "Menu" 48 | 49 | #: src/MainWindow.vala:122 50 | msgid "Light content" 51 | msgstr "" 52 | 53 | #: src/MainWindow.vala:123 54 | msgid "Dark content" 55 | msgstr "" 56 | 57 | #: src/MainWindow.vala:135 58 | msgid "Zoom out" 59 | msgstr "Pomniejsz" 60 | 61 | #: src/MainWindow.vala:142 62 | msgid "Default zoom level" 63 | msgstr "Domyślna skala" 64 | 65 | #: src/MainWindow.vala:149 66 | msgid "Zoom in" 67 | msgstr "Powiększ" 68 | 69 | #: src/MainWindow.vala:164 70 | msgid "Note: Disabling JavaScript will likely break many sites" 71 | msgstr "" 72 | 73 | #: src/MainWindow.vala:180 74 | msgid "JavaScript" 75 | msgstr "" 76 | 77 | #: src/MainWindow.vala:194 78 | msgid "Open New Window" 79 | msgstr "Otwórz nowe okno" 80 | 81 | #: src/MainWindow.vala:212 82 | #, fuzzy 83 | msgid "Quit Ephemeral" 84 | msgstr "Ephemeral" 85 | 86 | #: src/MainWindow.vala:217 87 | msgid "Close all windows and erase all history" 88 | msgstr "" 89 | 90 | #: src/MainWindow.vala:238 91 | msgid "Startpage.com Search" 92 | msgstr "Wyszukiwanie Startpage.com" 93 | 94 | #: src/MainWindow.vala:241 95 | msgid "DuckDuckGo Search" 96 | msgstr "Wyszukiwanie DuckDuckGo" 97 | 98 | #: src/MainWindow.vala:246 99 | msgid "Custom Search Engine…" 100 | msgstr "" 101 | 102 | #: src/MainWindow.vala:250 103 | msgid "Reset Preferences…" 104 | msgstr "Zresetuj preferencje…" 105 | 106 | #: src/MainWindow.vala:682 107 | msgid "Suggestion removed" 108 | msgstr "" 109 | 110 | #: src/MainWindow.vala:686 111 | msgid "Suggestion added" 112 | msgstr "" 113 | 114 | #: src/Dialogs/ExternalDialog.vala:28 src/Dialogs/ExternalDialog.vala:30 115 | #, fuzzy 116 | msgid "Open Link Externally?" 117 | msgstr "Czy otworzyć aplikacją zewnętrzną?" 118 | 119 | #: src/Dialogs/ExternalDialog.vala:37 120 | #, fuzzy, c-format 121 | msgid "This page is trying to open an app for %s links." 122 | msgstr "Ta strona chce otworzyć aplikację dla linków „%s”." 123 | 124 | #: src/Dialogs/ExternalDialog.vala:39 125 | msgid "This page is trying to open an app." 126 | msgstr "Ta strona chce otworzyć inną aplikację." 127 | 128 | #: src/Dialogs/ExternalDialog.vala:42 129 | msgid "Your data may not be kept private by the opened app." 130 | msgstr "Twoje dane mogą nie być chronione przez otwieraną aplikację." 131 | 132 | #: src/Dialogs/ExternalDialog.vala:47 133 | msgid "Don’t Open" 134 | msgstr "Nie otwieraj" 135 | 136 | #: src/Dialogs/ExternalDialog.vala:50 137 | msgid "Open Anyway" 138 | msgstr "Otwórz mimo to" 139 | 140 | #: src/Dialogs/PreferencesDialog.vala:26 src/Dialogs/PreferencesDialog.vala:28 141 | msgid "Reset Preferences?" 142 | msgstr "Czy zresetować preferencje?" 143 | 144 | #: src/Dialogs/PreferencesDialog.vala:27 145 | #, fuzzy 146 | msgid "" 147 | "All added website suggestions will be removed. Any dismissed or remembered " 148 | "alerts, warnings, etc. will be displayed again the next time Ephemeral is " 149 | "opened." 150 | msgstr "" 151 | "Wszystkie zignorowane lub zapamiętane alerty, ostrzeżenia itp. będą znowu " 152 | "wyświetlone przy następnym uruchomieniu Ephemeral." 153 | 154 | #: src/Dialogs/PreferencesDialog.vala:33 155 | msgid "Never Mind" 156 | msgstr "Anuluj" 157 | 158 | #: src/Dialogs/PreferencesDialog.vala:36 159 | msgid "Reset Preferences" 160 | msgstr "Zresetuj preferencje" 161 | 162 | #: src/Dialogs/ScriptDialog.vala:27 src/Dialogs/ScriptDialog.vala:28 163 | msgid "Message From Page" 164 | msgstr "" 165 | 166 | #: src/Dialogs/ScriptDialog.vala:39 src/Dialogs/ScriptDialog.vala:47 167 | #: src/Dialogs/ScriptDialog.vala:69 168 | msgid "Close" 169 | msgstr "" 170 | 171 | #: src/Dialogs/ScriptDialog.vala:49 src/Dialogs/ScriptDialog.vala:71 172 | msgid "Confirm" 173 | msgstr "" 174 | 175 | #: src/InfoBars/DefaultInfoBar.vala:31 176 | msgid "Make privacy a habit." 177 | msgstr "Uczyń prywatność nawykiem." 178 | 179 | #: src/InfoBars/DefaultInfoBar.vala:32 180 | msgid "Set Ephemeral as your default browser?" 181 | msgstr "Czy ustawić Ephemeral jako domyślną przeglądarkę?" 182 | 183 | #. TRANSLATORS: Where you change default apps on elementary OS. Be very careful with the markup! 184 | #: src/InfoBars/DefaultInfoBar.vala:35 185 | msgid "" 186 | "You can always change this later in System Settings → " 187 | "Applications." 188 | msgstr "" 189 | "Możesz zmienić to później w Ustawienia SystemuAplikacje." 190 | 191 | #: src/InfoBars/DefaultInfoBar.vala:46 192 | msgid "Never Ask Again" 193 | msgstr "Nie pytaj więcej" 194 | 195 | #: src/InfoBars/DefaultInfoBar.vala:52 196 | msgid "Set as Default" 197 | msgstr "Ustaw jako domyślną" 198 | 199 | #: src/InfoBars/NativeInfoBar.vala:31 200 | msgid "Ephemeral is a paid app designed for elementary OS." 201 | msgstr "Ephemeral jest płatną aplikacją stworzoną dla elementary OS." 202 | 203 | #: src/InfoBars/NativeInfoBar.vala:32 204 | msgid "" 205 | "Some features may not work properly when running on another OS or desktop " 206 | "environment." 207 | msgstr "" 208 | "Niektóre funkcje mogą nie działać poprawnie w innym systemie operacyjnym lub " 209 | "środowisku pulpitu." 210 | 211 | #: src/InfoBars/NativeInfoBar.vala:33 212 | msgid "" 213 | "Ephemeral is also typically funded by elementary AppCenter purchases. " 214 | "Consider donating if you find value in using Ephemeral on other platforms." 215 | msgstr "" 216 | "Ephemeral jest zwykle fundowany poprzez zakupy w elementary AppCenter. " 217 | "Rozważ zakup lub wsparcie, jeśli cenisz korzystanie z Ephemeral na innych " 218 | "platformach." 219 | 220 | #: src/InfoBars/NativeInfoBar.vala:41 src/InfoBars/PaidInfoBar.vala:43 221 | msgid "Dismiss" 222 | msgstr "Zignoruj" 223 | 224 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 225 | #: src/InfoBars/NativeInfoBar.vala:46 226 | msgid "Donate…" 227 | msgstr "Wesprzyj…" 228 | 229 | #: src/InfoBars/NetworkInfoBar.vala:31 230 | msgid "Network Not Available." 231 | msgstr "Sieć niedostępna." 232 | 233 | #: src/InfoBars/NetworkInfoBar.vala:32 234 | msgid "Connect to the Internet to browse the Web." 235 | msgstr "Połącz z internetem, aby przeglądać sieć." 236 | 237 | #: src/InfoBars/NetworkInfoBar.vala:38 238 | msgid "Never Warn Again" 239 | msgstr "Nie ostrzegaj więcej" 240 | 241 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 242 | #: src/InfoBars/NetworkInfoBar.vala:45 243 | msgid "Network Settings…" 244 | msgstr "Ustawienia sieci…" 245 | 246 | #. TRANSLATORS: This is an emphasized part at the beginning of a complete sentence, no terminating punctuation 247 | #: src/InfoBars/PaidInfoBar.vala:32 248 | msgid "Ephemeral is a paid app" 249 | msgstr "Ephemeral jest płatną aplikacją" 250 | 251 | #. TRANSLATORS: This continues the previous string, with terminating punctuation 252 | #: src/InfoBars/PaidInfoBar.vala:34 253 | msgid "funded by AppCenter purchases." 254 | msgstr "fundowaną przez zakupy w AppCenter." 255 | 256 | #: src/InfoBars/PaidInfoBar.vala:35 257 | msgid "Consider purchasing or funding if you find value in using Ephemeral." 258 | msgstr "Rozważ zakup lub wsparcie, jeśli cenisz korzystanie z Ephemeral." 259 | 260 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 261 | #: src/InfoBars/PaidInfoBar.vala:50 262 | msgid "Purchase or Fund…" 263 | msgstr "Kup albo wesprzyj…" 264 | 265 | #: src/Views/ErrorView.vala:28 266 | msgid "Whoops" 267 | msgstr "Ups" 268 | 269 | #: src/Views/ErrorView.vala:31 270 | msgid "Could not display the page." 271 | msgstr "Nie udało się wyświetlić tej strony." 272 | 273 | #: src/Views/WelcomeView.vala:31 274 | msgid "The always-incognito web browser" 275 | msgstr "Zawsze–prywatna przeglądarka internetowa" 276 | 277 | #: src/Views/WelcomeView.vala:33 278 | msgid "" 279 | "Remember, Ephemeral and any browser’s incognito or private mode can only do " 280 | "so much: they mitigate some tracking and don’t store data on your device, " 281 | "but they won’t stop your ISP, government, or determined websites from " 282 | "tracking you." 283 | msgstr "" 284 | "Pamiętaj, Ephemeral czy tryb prywatny jakiejkolwiek innej przeglądarki nie " 285 | "może wszystkiego: blokuje część śledzenia i nie przechowuje danych na Twoim " 286 | "urządzeniu, ale nie powstrzyma Twojego dostawcy internetu, rządu czy " 287 | "najbardziej upartych stron przed śledzeniem Cię." 288 | 289 | #: src/Views/WelcomeView.vala:34 290 | msgid "For the best protection, always use a VPN." 291 | msgstr "Dla pełnej ochrony zawsze korzystaj z VPN." 292 | 293 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in another menu 294 | #: src/Widgets/BrowserButton.vala:50 295 | msgid "Open page in…" 296 | msgstr "Otwórz stronę w…" 297 | 298 | #: src/Widgets/BrowserButton.vala:62 299 | msgid "Close Window When Opening Externally" 300 | msgstr "" 301 | 302 | #: src/Widgets/BrowserButton.vala:141 303 | #, c-format 304 | msgid "Open page in %s" 305 | msgstr "Otwórz stronę w %s" 306 | 307 | #: src/Widgets/UrlEntry.vala:39 308 | msgid "Enter a URL or search term" 309 | msgstr "Wprowadź adres URL lub zapytanie" 310 | 311 | #: src/Widgets/UrlEntry.vala:185 312 | #, c-format 313 | msgid "Go to \"%s\"" 314 | msgstr "" 315 | 316 | #: src/Widgets/UrlEntry.vala:185 317 | #, c-format 318 | msgid "Search for \"%s\"" 319 | msgstr "" 320 | 321 | #: src/Widgets/UrlEntry.vala:251 322 | msgid "Popular website" 323 | msgstr "Popularna strona" 324 | 325 | #: src/Widgets/UrlEntry.vala:284 326 | #, fuzzy 327 | msgid "Favorite website" 328 | msgstr "Popularna strona" 329 | 330 | #: src/Widgets/UrlEntry.vala:723 331 | msgid "Go" 332 | msgstr "Idź" 333 | 334 | #: src/Widgets/UrlEntry.vala:735 335 | msgid "Remove Website from Suggestions" 336 | msgstr "" 337 | 338 | #: src/Widgets/UrlEntry.vala:739 339 | #, fuzzy 340 | msgid "Add Website to Suggestions" 341 | msgstr "Całkiem nowe wyszukiwanie i sugestie" 342 | 343 | #: src/Widgets/WebView.vala:105 344 | #, fuzzy 345 | msgid "Open Link in New _Window" 346 | msgstr "Otwórz nowe okno" 347 | -------------------------------------------------------------------------------- /po/de.po: -------------------------------------------------------------------------------- 1 | # German translations for com.github.cassidyjames.ephemeral package. 2 | # Copyright (C) 2019 THE com.github.cassidyjames.ephemeral'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.cassidyjames.ephemeral package. 4 | # Hannes Schulze , 2019. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: com.github.cassidyjames.ephemeral\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2020-03-02 14:52-0700\n" 11 | "PO-Revision-Date: 2019-12-02 10:27+0100\n" 12 | "Last-Translator: Hannes Schulze \n" 13 | "Language-Team: German \n" 14 | "Language: de\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | 20 | #: src/MainWindow.vala:63 21 | msgid "Undo" 22 | msgstr "" 23 | 24 | #: src/MainWindow.vala:77 25 | msgid "Back" 26 | msgstr "Zurückgehen" 27 | 28 | #: src/MainWindow.vala:83 29 | msgid "Forward" 30 | msgstr "Weitergehen" 31 | 32 | #: src/MainWindow.vala:88 33 | msgid "Reload page" 34 | msgstr "Seite neuladen" 35 | 36 | #: src/MainWindow.vala:93 37 | msgid "Stop loading" 38 | msgstr "Ladevorgang abbrechen" 39 | 40 | #: src/MainWindow.vala:105 41 | msgid "Close window and erase history" 42 | msgstr "" 43 | 44 | #: src/MainWindow.vala:113 45 | msgid "Menu" 46 | msgstr "Menü" 47 | 48 | #: src/MainWindow.vala:122 49 | msgid "Light content" 50 | msgstr "" 51 | 52 | #: src/MainWindow.vala:123 53 | msgid "Dark content" 54 | msgstr "" 55 | 56 | #: src/MainWindow.vala:135 57 | msgid "Zoom out" 58 | msgstr "Herauszoomen" 59 | 60 | #: src/MainWindow.vala:142 61 | msgid "Default zoom level" 62 | msgstr "Standard-Zoom" 63 | 64 | #: src/MainWindow.vala:149 65 | msgid "Zoom in" 66 | msgstr "Hereinzoomen" 67 | 68 | #: src/MainWindow.vala:164 69 | msgid "Note: Disabling JavaScript will likely break many sites" 70 | msgstr "" 71 | 72 | #: src/MainWindow.vala:180 73 | msgid "JavaScript" 74 | msgstr "" 75 | 76 | #: src/MainWindow.vala:194 77 | msgid "Open New Window" 78 | msgstr "Neues Fenster öffnen" 79 | 80 | #: src/MainWindow.vala:212 81 | #, fuzzy 82 | msgid "Quit Ephemeral" 83 | msgstr "Ephemeral" 84 | 85 | #: src/MainWindow.vala:217 86 | msgid "Close all windows and erase all history" 87 | msgstr "" 88 | 89 | #: src/MainWindow.vala:238 90 | msgid "Startpage.com Search" 91 | msgstr "" 92 | 93 | #: src/MainWindow.vala:241 94 | msgid "DuckDuckGo Search" 95 | msgstr "" 96 | 97 | #: src/MainWindow.vala:246 98 | msgid "Custom Search Engine…" 99 | msgstr "" 100 | 101 | #: src/MainWindow.vala:250 102 | msgid "Reset Preferences…" 103 | msgstr "Einstellungen zurücksetzen…" 104 | 105 | #: src/MainWindow.vala:682 106 | msgid "Suggestion removed" 107 | msgstr "" 108 | 109 | #: src/MainWindow.vala:686 110 | msgid "Suggestion added" 111 | msgstr "" 112 | 113 | #: src/Dialogs/ExternalDialog.vala:28 src/Dialogs/ExternalDialog.vala:30 114 | #, fuzzy 115 | msgid "Open Link Externally?" 116 | msgstr "Extern öffnen?" 117 | 118 | #: src/Dialogs/ExternalDialog.vala:37 119 | #, fuzzy, c-format 120 | msgid "This page is trying to open an app for %s links." 121 | msgstr "Diese Seite versucht eine App für „%s“ Links zu öffnen." 122 | 123 | #: src/Dialogs/ExternalDialog.vala:39 124 | msgid "This page is trying to open an app." 125 | msgstr "Diese Seite versucht eine App zu öffnen." 126 | 127 | #: src/Dialogs/ExternalDialog.vala:42 128 | msgid "Your data may not be kept private by the opened app." 129 | msgstr "" 130 | "Ihre Daten werden eventuell von der geöffneten App nicht privat gehalten." 131 | 132 | #: src/Dialogs/ExternalDialog.vala:47 133 | msgid "Don’t Open" 134 | msgstr "Nicht öffnen" 135 | 136 | #: src/Dialogs/ExternalDialog.vala:50 137 | msgid "Open Anyway" 138 | msgstr "Trotzdem öffnen" 139 | 140 | #: src/Dialogs/PreferencesDialog.vala:26 src/Dialogs/PreferencesDialog.vala:28 141 | msgid "Reset Preferences?" 142 | msgstr "Einstellungen zurücksetzen?" 143 | 144 | #: src/Dialogs/PreferencesDialog.vala:27 145 | #, fuzzy 146 | msgid "" 147 | "All added website suggestions will be removed. Any dismissed or remembered " 148 | "alerts, warnings, etc. will be displayed again the next time Ephemeral is " 149 | "opened." 150 | msgstr "" 151 | "Alle abgelehnten oder ignorierten Meldungen, Warnungen, etc. werden beim " 152 | "nächsten Start von Ephemeral erneut angezeigt." 153 | 154 | #: src/Dialogs/PreferencesDialog.vala:33 155 | msgid "Never Mind" 156 | msgstr "Abbrechen" 157 | 158 | #: src/Dialogs/PreferencesDialog.vala:36 159 | msgid "Reset Preferences" 160 | msgstr "Einstellungen zurücksetzen" 161 | 162 | #: src/Dialogs/ScriptDialog.vala:27 src/Dialogs/ScriptDialog.vala:28 163 | msgid "Message From Page" 164 | msgstr "" 165 | 166 | #: src/Dialogs/ScriptDialog.vala:39 src/Dialogs/ScriptDialog.vala:47 167 | #: src/Dialogs/ScriptDialog.vala:69 168 | msgid "Close" 169 | msgstr "" 170 | 171 | #: src/Dialogs/ScriptDialog.vala:49 src/Dialogs/ScriptDialog.vala:71 172 | msgid "Confirm" 173 | msgstr "" 174 | 175 | #: src/InfoBars/DefaultInfoBar.vala:31 176 | msgid "Make privacy a habit." 177 | msgstr "Machen Sie Privatsphäre zur Gewohnheit." 178 | 179 | #: src/InfoBars/DefaultInfoBar.vala:32 180 | msgid "Set Ephemeral as your default browser?" 181 | msgstr "Ephemeral als Standard-Webbrowser setzen?" 182 | 183 | #. TRANSLATORS: Where you change default apps on elementary OS. Be very careful with the markup! 184 | #: src/InfoBars/DefaultInfoBar.vala:35 185 | msgid "" 186 | "You can always change this later in System Settings → " 187 | "Applications." 188 | msgstr "" 189 | "Sie können dies jederzeit wieder ändern unter Systemeinstellungen → " 190 | "Anwendungen." 191 | 192 | #: src/InfoBars/DefaultInfoBar.vala:46 193 | msgid "Never Ask Again" 194 | msgstr "Nie wieder nachfragen" 195 | 196 | #: src/InfoBars/DefaultInfoBar.vala:52 197 | msgid "Set as Default" 198 | msgstr "Als Standard setzen" 199 | 200 | #: src/InfoBars/NativeInfoBar.vala:31 201 | msgid "Ephemeral is a paid app designed for elementary OS." 202 | msgstr "Ephemeral ist eine bezahlte App, konzipiert für elementary OS." 203 | 204 | #: src/InfoBars/NativeInfoBar.vala:32 205 | msgid "" 206 | "Some features may not work properly when running on another OS or desktop " 207 | "environment." 208 | msgstr "" 209 | "Manche Features funktionieren eventuell auf anderen Systemen oder Desktop " 210 | "Environments nicht." 211 | 212 | #: src/InfoBars/NativeInfoBar.vala:33 213 | msgid "" 214 | "Ephemeral is also typically funded by elementary AppCenter purchases. " 215 | "Consider donating if you find value in using Ephemeral on other platforms." 216 | msgstr "" 217 | "Ephemeral wird typischerweise durch AppCenter-Käufe finanziert. Denken Sie " 218 | "über eine Spende nach, wenn Sie Ephemeral gerne auf anderen Plattformen " 219 | "benutzen möchten." 220 | 221 | #: src/InfoBars/NativeInfoBar.vala:41 src/InfoBars/PaidInfoBar.vala:43 222 | msgid "Dismiss" 223 | msgstr "Ablehnen" 224 | 225 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 226 | #: src/InfoBars/NativeInfoBar.vala:46 227 | msgid "Donate…" 228 | msgstr "Spenden…" 229 | 230 | #: src/InfoBars/NetworkInfoBar.vala:31 231 | msgid "Network Not Available." 232 | msgstr "Netzwerk nicht verfügbar." 233 | 234 | #: src/InfoBars/NetworkInfoBar.vala:32 235 | msgid "Connect to the Internet to browse the Web." 236 | msgstr "Verbinden Sie sich mit dem Internet, um im Netz zu surfen." 237 | 238 | #: src/InfoBars/NetworkInfoBar.vala:38 239 | msgid "Never Warn Again" 240 | msgstr "Nie wieder warnen" 241 | 242 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 243 | #: src/InfoBars/NetworkInfoBar.vala:45 244 | msgid "Network Settings…" 245 | msgstr "Netzwerk-Einstellungen…" 246 | 247 | #. TRANSLATORS: This is an emphasized part at the beginning of a complete sentence, no terminating punctuation 248 | #: src/InfoBars/PaidInfoBar.vala:32 249 | msgid "Ephemeral is a paid app" 250 | msgstr "Ephemeral ist eine bezahlte App" 251 | 252 | #. TRANSLATORS: This continues the previous string, with terminating punctuation 253 | #: src/InfoBars/PaidInfoBar.vala:34 254 | msgid "funded by AppCenter purchases." 255 | msgstr "finanziert durch AppCenter-Käufe." 256 | 257 | #: src/InfoBars/PaidInfoBar.vala:35 258 | msgid "Consider purchasing or funding if you find value in using Ephemeral." 259 | msgstr "" 260 | "Denken Sie darüber nach, das Projekt zu finanzieren, wenn Sie Ephemeral " 261 | "nützlich finden." 262 | 263 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 264 | #: src/InfoBars/PaidInfoBar.vala:50 265 | msgid "Purchase or Fund…" 266 | msgstr "Kaufen oder Finanzieren…" 267 | 268 | #: src/Views/ErrorView.vala:28 269 | msgid "Whoops" 270 | msgstr "Ups" 271 | 272 | #: src/Views/ErrorView.vala:31 273 | msgid "Could not display the page." 274 | msgstr "Die Seite konnte nicht angezeigt werden." 275 | 276 | #: src/Views/WelcomeView.vala:31 277 | msgid "The always-incognito web browser" 278 | msgstr "Der Webbrowser, mit dem man immer inkognito surft" 279 | 280 | #: src/Views/WelcomeView.vala:33 281 | msgid "" 282 | "Remember, Ephemeral and any browser’s incognito or private mode can only do " 283 | "so much: they mitigate some tracking and don’t store data on your device, " 284 | "but they won’t stop your ISP, government, or determined websites from " 285 | "tracking you." 286 | msgstr "" 287 | "Denken Sie daran, dass Ephemeral und der Inkognito-Modus oder private Modus " 288 | "in jedem anderen Browser nur so viel tun können: Sie können die Verfolgung " 289 | "ein wenig eingrenzen und keine Daten auf Ihrem Gerät speichern, aber sie " 290 | "werden Ihren Internetanbieter, die Regierung oder hartnäckigere Seiten nicht " 291 | "davon abhalten, Sie zu verfolgen." 292 | 293 | #: src/Views/WelcomeView.vala:34 294 | msgid "For the best protection, always use a VPN." 295 | msgstr "Benutzen Sie immer ein VPN für den besten Schutz." 296 | 297 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in another menu 298 | #: src/Widgets/BrowserButton.vala:50 299 | msgid "Open page in…" 300 | msgstr "Seite öffnen in…" 301 | 302 | #: src/Widgets/BrowserButton.vala:62 303 | msgid "Close Window When Opening Externally" 304 | msgstr "" 305 | 306 | #: src/Widgets/BrowserButton.vala:141 307 | #, c-format 308 | msgid "Open page in %s" 309 | msgstr "Seite in %s öffnen" 310 | 311 | #: src/Widgets/UrlEntry.vala:39 312 | msgid "Enter a URL or search term" 313 | msgstr "Geben Sie eine URL oder einen Suchbegriff ein" 314 | 315 | #: src/Widgets/UrlEntry.vala:185 316 | #, c-format 317 | msgid "Go to \"%s\"" 318 | msgstr "" 319 | 320 | #: src/Widgets/UrlEntry.vala:185 321 | #, c-format 322 | msgid "Search for \"%s\"" 323 | msgstr "" 324 | 325 | #: src/Widgets/UrlEntry.vala:251 326 | msgid "Popular website" 327 | msgstr "" 328 | 329 | #: src/Widgets/UrlEntry.vala:284 330 | msgid "Favorite website" 331 | msgstr "" 332 | 333 | #: src/Widgets/UrlEntry.vala:723 334 | msgid "Go" 335 | msgstr "Los" 336 | 337 | #: src/Widgets/UrlEntry.vala:735 338 | msgid "Remove Website from Suggestions" 339 | msgstr "" 340 | 341 | #: src/Widgets/UrlEntry.vala:739 342 | msgid "Add Website to Suggestions" 343 | msgstr "" 344 | 345 | #: src/Widgets/WebView.vala:105 346 | #, fuzzy 347 | msgid "Open Link in New _Window" 348 | msgstr "Neues Fenster öffnen" 349 | -------------------------------------------------------------------------------- /po/ca.po: -------------------------------------------------------------------------------- 1 | # Catalan translations for com.github.cassidyjames.ephemeral package. 2 | # Copyright (C) 2019 THE com.github.cassidyjames.ephemeral'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.cassidyjames.ephemeral package. 4 | # Mario Rodrigo, 2019. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: com.github.cassidyjames.ephemeral\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2020-03-02 14:52-0700\n" 11 | "PO-Revision-Date: 2019-12-02 10:27+0100\n" 12 | "Last-Translator: Mario Rodrigo\n" 13 | "Language-Team: none\n" 14 | "Language: ca\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | 19 | #: src/MainWindow.vala:63 20 | msgid "Undo" 21 | msgstr "" 22 | 23 | #: src/MainWindow.vala:77 24 | msgid "Back" 25 | msgstr "Enrere" 26 | 27 | #: src/MainWindow.vala:83 28 | msgid "Forward" 29 | msgstr "Endavant" 30 | 31 | #: src/MainWindow.vala:88 32 | msgid "Reload page" 33 | msgstr "Recàrrega la pàgina" 34 | 35 | #: src/MainWindow.vala:93 36 | msgid "Stop loading" 37 | msgstr "Para la càrrega" 38 | 39 | #: src/MainWindow.vala:105 40 | msgid "Close window and erase history" 41 | msgstr "" 42 | 43 | #: src/MainWindow.vala:113 44 | msgid "Menu" 45 | msgstr "Menú" 46 | 47 | #: src/MainWindow.vala:122 48 | msgid "Light content" 49 | msgstr "" 50 | 51 | #: src/MainWindow.vala:123 52 | msgid "Dark content" 53 | msgstr "" 54 | 55 | #: src/MainWindow.vala:135 56 | msgid "Zoom out" 57 | msgstr "Redueix l'escala" 58 | 59 | #: src/MainWindow.vala:142 60 | msgid "Default zoom level" 61 | msgstr "Nivel d'escala per defecte" 62 | 63 | #: src/MainWindow.vala:149 64 | msgid "Zoom in" 65 | msgstr "Augmenta l'escala" 66 | 67 | #: src/MainWindow.vala:164 68 | msgid "Note: Disabling JavaScript will likely break many sites" 69 | msgstr "" 70 | 71 | #: src/MainWindow.vala:180 72 | msgid "JavaScript" 73 | msgstr "" 74 | 75 | #: src/MainWindow.vala:194 76 | msgid "Open New Window" 77 | msgstr "Obre una nova finestra" 78 | 79 | #: src/MainWindow.vala:212 80 | #, fuzzy 81 | msgid "Quit Ephemeral" 82 | msgstr "Ephemeral" 83 | 84 | #: src/MainWindow.vala:217 85 | msgid "Close all windows and erase all history" 86 | msgstr "" 87 | 88 | #: src/MainWindow.vala:238 89 | msgid "Startpage.com Search" 90 | msgstr "Cerca amb Startpage.com" 91 | 92 | #: src/MainWindow.vala:241 93 | msgid "DuckDuckGo Search" 94 | msgstr "Cerca amb DuckDuckGo" 95 | 96 | #: src/MainWindow.vala:246 97 | msgid "Custom Search Engine…" 98 | msgstr "Cercador personalitzat…" 99 | 100 | #: src/MainWindow.vala:250 101 | msgid "Reset Preferences…" 102 | msgstr "Reinicialitza les preferències…" 103 | 104 | #: src/MainWindow.vala:682 105 | #, fuzzy 106 | msgid "Suggestion removed" 107 | msgstr "Correcció de suggeriments d'URL" 108 | 109 | #: src/MainWindow.vala:686 110 | #, fuzzy 111 | msgid "Suggestion added" 112 | msgstr "Correcció de suggeriments d'URL" 113 | 114 | #: src/Dialogs/ExternalDialog.vala:28 src/Dialogs/ExternalDialog.vala:30 115 | #, fuzzy 116 | msgid "Open Link Externally?" 117 | msgstr "Voleu obrir-ho externalment?" 118 | 119 | #: src/Dialogs/ExternalDialog.vala:37 120 | #, fuzzy, c-format 121 | msgid "This page is trying to open an app for %s links." 122 | msgstr "S'està tractant d'obrir una aplicació pels enllaços «%s»." 123 | 124 | #: src/Dialogs/ExternalDialog.vala:39 125 | msgid "This page is trying to open an app." 126 | msgstr "Esta pàgina tracta d'obrir una aplicació." 127 | 128 | #: src/Dialogs/ExternalDialog.vala:42 129 | msgid "Your data may not be kept private by the opened app." 130 | msgstr "" 131 | "Les vostres dades poden no ser manteses en privat per l'aplicació oberta." 132 | 133 | #: src/Dialogs/ExternalDialog.vala:47 134 | msgid "Don’t Open" 135 | msgstr "No òbrigues" 136 | 137 | #: src/Dialogs/ExternalDialog.vala:50 138 | msgid "Open Anyway" 139 | msgstr "Obre de totes formes" 140 | 141 | #: src/Dialogs/PreferencesDialog.vala:26 src/Dialogs/PreferencesDialog.vala:28 142 | msgid "Reset Preferences?" 143 | msgstr "Voleu restablir les preferències?" 144 | 145 | #: src/Dialogs/PreferencesDialog.vala:27 146 | msgid "" 147 | "All added website suggestions will be removed. Any dismissed or remembered " 148 | "alerts, warnings, etc. will be displayed again the next time Ephemeral is " 149 | "opened." 150 | msgstr "" 151 | "Totes les suggerències de llocs webs s'esborraran. La propera vegada que " 152 | "obriu Ephemeral, qualsevol alerta o avís ignorat o recordat apareixerà de " 153 | "nou." 154 | 155 | #: src/Dialogs/PreferencesDialog.vala:33 156 | msgid "Never Mind" 157 | msgstr "No importa" 158 | 159 | #: src/Dialogs/PreferencesDialog.vala:36 160 | msgid "Reset Preferences" 161 | msgstr "Reinicialitza les preferències" 162 | 163 | #: src/Dialogs/ScriptDialog.vala:27 src/Dialogs/ScriptDialog.vala:28 164 | msgid "Message From Page" 165 | msgstr "Missatge de la pàgina" 166 | 167 | #: src/Dialogs/ScriptDialog.vala:39 src/Dialogs/ScriptDialog.vala:47 168 | #: src/Dialogs/ScriptDialog.vala:69 169 | msgid "Close" 170 | msgstr "Tanca" 171 | 172 | #: src/Dialogs/ScriptDialog.vala:49 src/Dialogs/ScriptDialog.vala:71 173 | msgid "Confirm" 174 | msgstr "Confirma" 175 | 176 | #: src/InfoBars/DefaultInfoBar.vala:31 177 | msgid "Make privacy a habit." 178 | msgstr "Féu de la privadesa un hàbit." 179 | 180 | #: src/InfoBars/DefaultInfoBar.vala:32 181 | msgid "Set Ephemeral as your default browser?" 182 | msgstr "Voleu establir Ephemeral com el navegador per defecte?" 183 | 184 | #. TRANSLATORS: Where you change default apps on elementary OS. Be very careful with the markup! 185 | #: src/InfoBars/DefaultInfoBar.vala:35 186 | msgid "" 187 | "You can always change this later in System Settings → " 188 | "Applications." 189 | msgstr "" 190 | "Podeu modificar açò més tard en Configuració del sistema → " 191 | "Aplicacions." 192 | 193 | #: src/InfoBars/DefaultInfoBar.vala:46 194 | msgid "Never Ask Again" 195 | msgstr "No em tornis a preguntar" 196 | 197 | #: src/InfoBars/DefaultInfoBar.vala:52 198 | msgid "Set as Default" 199 | msgstr "Estableix per defecte" 200 | 201 | #: src/InfoBars/NativeInfoBar.vala:31 202 | msgid "Ephemeral is a paid app designed for elementary OS." 203 | msgstr "Ephemeral és una aplicació de pagament disenyada per a elementary OS." 204 | 205 | #: src/InfoBars/NativeInfoBar.vala:32 206 | msgid "" 207 | "Some features may not work properly when running on another OS or desktop " 208 | "environment." 209 | msgstr "" 210 | "És posible que algunes característiques no funcionen correctament a altres " 211 | "sistemes o entorns." 212 | 213 | #: src/InfoBars/NativeInfoBar.vala:33 214 | msgid "" 215 | "Ephemeral is also typically funded by elementary AppCenter purchases. " 216 | "Consider donating if you find value in using Ephemeral on other platforms." 217 | msgstr "" 218 | "Ephemeral és finançada per les compres a l'AppCenter. Si trobeu valor en " 219 | "Ephemeral en altres plataformes, considereu fer una donació." 220 | 221 | #: src/InfoBars/NativeInfoBar.vala:41 src/InfoBars/PaidInfoBar.vala:43 222 | msgid "Dismiss" 223 | msgstr "Descarta" 224 | 225 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 226 | #: src/InfoBars/NativeInfoBar.vala:46 227 | msgid "Donate…" 228 | msgstr "Doneu…" 229 | 230 | #: src/InfoBars/NetworkInfoBar.vala:31 231 | msgid "Network Not Available." 232 | msgstr "Xarxa no disponible." 233 | 234 | #: src/InfoBars/NetworkInfoBar.vala:32 235 | msgid "Connect to the Internet to browse the Web." 236 | msgstr "Connecteu-vos a Internet per navegar per la Xarxa." 237 | 238 | #: src/InfoBars/NetworkInfoBar.vala:38 239 | msgid "Never Warn Again" 240 | msgstr "No em tornis a avisar" 241 | 242 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 243 | #: src/InfoBars/NetworkInfoBar.vala:45 244 | msgid "Network Settings…" 245 | msgstr "Configuració de xarxa…" 246 | 247 | #. TRANSLATORS: This is an emphasized part at the beginning of a complete sentence, no terminating punctuation 248 | #: src/InfoBars/PaidInfoBar.vala:32 249 | msgid "Ephemeral is a paid app" 250 | msgstr "Ephemeral és una aplicació de pagament" 251 | 252 | #. TRANSLATORS: This continues the previous string, with terminating punctuation 253 | #: src/InfoBars/PaidInfoBar.vala:34 254 | msgid "funded by AppCenter purchases." 255 | msgstr "finançada per les compres a AppCenter" 256 | 257 | #: src/InfoBars/PaidInfoBar.vala:35 258 | msgid "Consider purchasing or funding if you find value in using Ephemeral." 259 | msgstr "Si heu trobat profitós Ephemeral, considereu comprar-ho o finançar-ho" 260 | 261 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 262 | #: src/InfoBars/PaidInfoBar.vala:50 263 | msgid "Purchase or Fund…" 264 | msgstr "Compreu o financieu…" 265 | 266 | #: src/Views/ErrorView.vala:28 267 | msgid "Whoops" 268 | msgstr "Vaja" 269 | 270 | #: src/Views/ErrorView.vala:31 271 | msgid "Could not display the page." 272 | msgstr "No es pot mostrar la pàgina." 273 | 274 | #: src/Views/WelcomeView.vala:31 275 | msgid "The always-incognito web browser" 276 | msgstr "El navegador sempre d'incògnit" 277 | 278 | #: src/Views/WelcomeView.vala:33 279 | msgid "" 280 | "Remember, Ephemeral and any browser’s incognito or private mode can only do " 281 | "so much: they mitigate some tracking and don’t store data on your device, " 282 | "but they won’t stop your ISP, government, or determined websites from " 283 | "tracking you." 284 | msgstr "" 285 | "Teniu present que Ephemeral i els modes privats de qualsevol altre navegador " 286 | "tenen límits: tot i que disminueixen algunes formes de rastreig i prevenen " 287 | "l'emmagatzemametent local de dades, no poden parar el vostre proveïdor de " 288 | "servei, el govern o determinats llocs web." 289 | 290 | #: src/Views/WelcomeView.vala:34 291 | msgid "For the best protection, always use a VPN." 292 | msgstr "Per la millor protección, utilitzeu sempre una VPN." 293 | 294 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in another menu 295 | #: src/Widgets/BrowserButton.vala:50 296 | msgid "Open page in…" 297 | msgstr "Obre la pàgina a…" 298 | 299 | #: src/Widgets/BrowserButton.vala:62 300 | msgid "Close Window When Opening Externally" 301 | msgstr "Tanqueu la finestra en obrir externament" 302 | 303 | #: src/Widgets/BrowserButton.vala:141 304 | #, c-format 305 | msgid "Open page in %s" 306 | msgstr "Obre la pàgina a %s" 307 | 308 | #: src/Widgets/UrlEntry.vala:39 309 | msgid "Enter a URL or search term" 310 | msgstr "Escriviu una adreça o cerqueu un terme" 311 | 312 | #: src/Widgets/UrlEntry.vala:185 313 | #, c-format 314 | msgid "Go to \"%s\"" 315 | msgstr "Vés a «%»" 316 | 317 | #: src/Widgets/UrlEntry.vala:185 318 | #, c-format 319 | msgid "Search for \"%s\"" 320 | msgstr "Cerca «%s»" 321 | 322 | #: src/Widgets/UrlEntry.vala:251 323 | msgid "Popular website" 324 | msgstr "Lloc web popular" 325 | 326 | #: src/Widgets/UrlEntry.vala:284 327 | msgid "Favorite website" 328 | msgstr "Lloc web favorit" 329 | 330 | #: src/Widgets/UrlEntry.vala:723 331 | msgid "Go" 332 | msgstr "Vés-hi" 333 | 334 | #: src/Widgets/UrlEntry.vala:735 335 | msgid "Remove Website from Suggestions" 336 | msgstr "Esborra lloc web dels suggeriments" 337 | 338 | #: src/Widgets/UrlEntry.vala:739 339 | msgid "Add Website to Suggestions" 340 | msgstr "Afegeix lloc web als suggeriments" 341 | 342 | #: src/Widgets/WebView.vala:105 343 | #, fuzzy 344 | msgid "Open Link in New _Window" 345 | msgstr "Obre una nova finestra" 346 | -------------------------------------------------------------------------------- /po/tr.po: -------------------------------------------------------------------------------- 1 | # Turkish translations for com.github.cassidyjames.ephemeral package. 2 | # Copyright (C) 2020 THE com.github.cassidyjames.ephemeral'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.cassidyjames.ephemeral package. 4 | # Automatically generated, 2020. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: com.github.cassidyjames.ephemeral\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2020-03-02 14:52-0700\n" 11 | "PO-Revision-Date: 2020-03-02 14:51-0700\n" 12 | "Last-Translator: Safak Genisol , 2020.\n" 13 | "Language-Team: none\n" 14 | "Language: tr\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | 20 | #: src/MainWindow.vala:63 21 | msgid "Undo" 22 | msgstr "Geri Al" 23 | 24 | #: src/MainWindow.vala:77 25 | msgid "Back" 26 | msgstr "Geri" 27 | 28 | #: src/MainWindow.vala:83 29 | msgid "Forward" 30 | msgstr "İleri" 31 | 32 | #: src/MainWindow.vala:88 33 | msgid "Reload page" 34 | msgstr "Sayfayı yeniden yükle" 35 | 36 | #: src/MainWindow.vala:93 37 | msgid "Stop loading" 38 | msgstr "Yüklemeyi durdur" 39 | 40 | #: src/MainWindow.vala:105 41 | msgid "Close window and erase history" 42 | msgstr "Pencereyi kapat ve geçmişi sil" 43 | 44 | #: src/MainWindow.vala:113 45 | msgid "Menu" 46 | msgstr "Menü" 47 | 48 | #: src/MainWindow.vala:122 49 | msgid "Light content" 50 | msgstr "Açık içerik" 51 | 52 | #: src/MainWindow.vala:123 53 | msgid "Dark content" 54 | msgstr "Karanlık içerik" 55 | 56 | #: src/MainWindow.vala:135 57 | msgid "Zoom out" 58 | msgstr "Uzaklaştır" 59 | 60 | #: src/MainWindow.vala:142 61 | msgid "Default zoom level" 62 | msgstr "Varsayılan uzaklık seviyesi" 63 | 64 | #: src/MainWindow.vala:149 65 | msgid "Zoom in" 66 | msgstr "Yakınlaştır" 67 | 68 | #: src/MainWindow.vala:164 69 | msgid "Note: Disabling JavaScript will likely break many sites" 70 | msgstr "Note: JavaScript'i devre dışı bırakmak büyük olasılıkla birçok siteyi bozucak" 71 | 72 | #: src/MainWindow.vala:180 73 | msgid "JavaScript" 74 | msgstr "JavaScript" 75 | 76 | #: src/MainWindow.vala:194 77 | msgid "Open New Window" 78 | msgstr "Yeni Pencere Aç" 79 | 80 | #: src/MainWindow.vala:212 81 | msgid "Quit Ephemeral" 82 | msgstr "Ephemeral'dan Çık" 83 | 84 | #: src/MainWindow.vala:217 85 | msgid "Close all windows and erase all history" 86 | msgstr "Tüm pencereleri kapatın ve tüm geçmişi silin" 87 | 88 | #: src/MainWindow.vala:238 89 | msgid "Startpage.com Search" 90 | msgstr "Startpage.com Ara" 91 | 92 | #: src/MainWindow.vala:241 93 | msgid "DuckDuckGo Search" 94 | msgstr "DuckDuckGo Ara" 95 | 96 | #: src/MainWindow.vala:246 97 | msgid "Custom Search Engine…" 98 | msgstr "Özel Arama Motoru…" 99 | 100 | #: src/MainWindow.vala:250 101 | msgid "Reset Preferences…" 102 | msgstr "Tercihleri sıfırla…" 103 | 104 | #: src/MainWindow.vala:682 105 | msgid "Suggestion removed" 106 | msgstr "Öneri kaldırıldı" 107 | 108 | #: src/MainWindow.vala:686 109 | msgid "Suggestion added" 110 | msgstr "Öneri eklendi" 111 | 112 | #: src/Dialogs/ExternalDialog.vala:28 src/Dialogs/ExternalDialog.vala:30 113 | msgid "Open Link Externally?" 114 | msgstr "Bağlantı Harici Olarak Açılsın mı?" 115 | 116 | #: src/Dialogs/ExternalDialog.vala:37 117 | #, c-format 118 | msgid "This page is trying to open an app for %s links." 119 | msgstr "Bu sayfa %s markup! 181 | #: src/InfoBars/DefaultInfoBar.vala:35 182 | msgid "" 183 | "You can always change this later in System Settings → " 184 | "Applications." 185 | msgstr "" 186 | "Bunu daha sonra istediğiniz zaman değiştirebilirsiniz Sistem Ayarları →" 187 | "Uygulamalar." 188 | 189 | #: src/InfoBars/DefaultInfoBar.vala:46 190 | msgid "Never Ask Again" 191 | msgstr "Asla Tekrar Sorma" 192 | 193 | #: src/InfoBars/DefaultInfoBar.vala:52 194 | msgid "Set as Default" 195 | msgstr "Varsayılan Olarak Ayarla" 196 | 197 | #: src/InfoBars/NativeInfoBar.vala:31 198 | msgid "Ephemeral is a paid app designed for elementary OS." 199 | msgstr "elementary OS için tasarlanmış ücretli bir uygulama." 200 | 201 | #: src/InfoBars/NativeInfoBar.vala:32 202 | msgid "" 203 | "Some features may not work properly when running on another OS or desktop " 204 | "environment." 205 | msgstr "" 206 | "Başka bir işletim sisteminde veya masaüstü ortamında çalışırken bazı özellikler düzgün " 207 | "çalışmayabilir." 208 | 209 | #: src/InfoBars/NativeInfoBar.vala:33 210 | msgid "" 211 | "Ephemeral is also typically funded by elementary AppCenter purchases. " 212 | "Consider donating if you find value in using Ephemeral on other platforms." 213 | msgstr "" 214 | "Ephemeral, tipik olarak elemantary AppCenter alımlarıyla finanse edilir. " 215 | "Diğer platformlarda Ephemeral kullanımında değerli bulursanız bağışta bulunmayı düşünün. " 216 | 217 | #: src/InfoBars/NativeInfoBar.vala:41 src/InfoBars/PaidInfoBar.vala:43 218 | msgid "Dismiss" 219 | msgstr "Reddet" 220 | 221 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 222 | #: src/InfoBars/NativeInfoBar.vala:46 223 | msgid "Donate…" 224 | msgstr "Bağış…" 225 | 226 | #: src/InfoBars/NetworkInfoBar.vala:31 227 | msgid "Network Not Available." 228 | msgstr "Ağ Kullanılamıyor." 229 | 230 | #: src/InfoBars/NetworkInfoBar.vala:32 231 | msgid "Connect to the Internet to browse the Web." 232 | msgstr "Web'e göz atmak için İnternet'e bağlanın." 233 | 234 | #: src/InfoBars/NetworkInfoBar.vala:38 235 | msgid "Never Warn Again" 236 | msgstr "Bir Daha Asla Uyarma" 237 | 238 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 239 | #: src/InfoBars/NetworkInfoBar.vala:45 240 | msgid "Network Settings…" 241 | msgstr "İnternet Ayarları…" 242 | 243 | 244 | #. TRANSLATORS: This is an emphasized part at the beginning of a complete sentence, no terminating punctuation 245 | #: src/InfoBars/PaidInfoBar.vala:32 246 | msgid "Ephemeral is a paid app" 247 | msgstr "Ephemeral ücretli bir uygulama" 248 | 249 | #. TRANSLATORS: This continues the previous string, with terminating punctuation 250 | #: src/InfoBars/PaidInfoBar.vala:34 251 | msgid "funded by AppCenter purchases." 252 | msgstr "AppCenter alımları tarafından finanse edilmektedir." 253 | 254 | #: src/InfoBars/PaidInfoBar.vala:35 255 | msgid "Consider purchasing or funding if you find value in using Ephemeral." 256 | msgstr "Ephemeral kullanımda değer bulursanız satın almayı veya finansmanı düşünün." 257 | 258 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 259 | #: src/InfoBars/PaidInfoBar.vala:50 260 | msgid "Purchase or Fund…" 261 | msgstr "Satın Alma veya Fon…" 262 | 263 | #: src/Views/ErrorView.vala:28 264 | msgid "Whoops" 265 | msgstr "Whoops" 266 | 267 | #: src/Views/ErrorView.vala:31 268 | msgid "Could not display the page." 269 | msgstr "Sayfa görüntülenemedi." 270 | 271 | #: src/Views/WelcomeView.vala:31 272 | msgid "The always-incognito web browser" 273 | msgstr "Gizli web tarayıcınız" 274 | 275 | #: src/Views/WelcomeView.vala:33 276 | msgid "" 277 | "Remember, Ephemeral and any browser’s incognito or private mode can only do " 278 | "so much: they mitigate some tracking and don’t store data on your device, " 279 | "but they won’t stop your ISP, government, or determined websites from " 280 | "tracking you." 281 | msgstr "" 282 | "Unutmayın, Geçici ve herhangi bir tarayıcının gizli veya özel modu çok " 283 | "şey yapabilir: bazı izlemeleri hafifletir ve cihazınızda veri depolamazlar, " 284 | "ancak ISS'nizin, devletinizin veya kararlı web sitelerinizin sizi " 285 | "izlemesini durdurmazlar." 286 | 287 | #: src/Views/WelcomeView.vala:34 288 | msgid "For the best protection, always use a VPN." 289 | msgstr "En iyi koruma için her zaman bir VPN kullanın." 290 | 291 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in another menu 292 | #: src/Widgets/BrowserButton.vala:50 293 | msgid "Open page in…" 294 | msgstr "Sayfayı şurada aç…" 295 | 296 | #: src/Widgets/BrowserButton.vala:62 297 | msgid "Close Window When Opening Externally" 298 | msgstr "Harici Olarak Açarken Pencereyi Kapat" 299 | 300 | #: src/Widgets/BrowserButton.vala:141 301 | #, c-format 302 | msgid "Open page in %s" 303 | msgstr "Sayfayı %s içinde aç" 304 | 305 | #: src/Widgets/UrlEntry.vala:39 306 | msgid "Enter a URL or search term" 307 | msgstr "Bir URL veya arama terimi girin" 308 | 309 | #: src/Widgets/UrlEntry.vala:185 310 | #, c-format 311 | msgid "Go to \"%s\"" 312 | msgstr "\"%s\" Adresine git" 313 | 314 | #: src/Widgets/UrlEntry.vala:185 315 | #, c-format 316 | msgid "Search for \"%s\"" 317 | msgstr "\"%s\" Şunu Ara" 318 | 319 | #: src/Widgets/UrlEntry.vala:251 320 | msgid "Popular website" 321 | msgstr "Popüler İnternet Sitesi" 322 | 323 | #: src/Widgets/UrlEntry.vala:284 324 | msgid "Favorite website" 325 | msgstr "Favori İnternet Sitesi" 326 | 327 | #: src/Widgets/UrlEntry.vala:723 328 | msgid "Go" 329 | msgstr "Git" 330 | 331 | #: src/Widgets/UrlEntry.vala:735 332 | msgid "Remove Website from Suggestions" 333 | msgstr "Web Sitesini Önerilerden Kaldır" 334 | 335 | #: src/Widgets/UrlEntry.vala:739 336 | msgid "Add Website to Suggestions" 337 | msgstr "Önerilere Web Sitesi Ekle" 338 | 339 | #: src/Widgets/WebView.vala:105 340 | msgid "Open Link in New _Window" 341 | msgstr "Bağlantıyı Yeni Pencerede aç" 342 | -------------------------------------------------------------------------------- /po/ru.po: -------------------------------------------------------------------------------- 1 | # Russian translations for com.github.cassidyjames.ephemeral package. 2 | # Copyright (C) 2019 THE com.github.cassidyjames.ephemeral'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.cassidyjames.ephemeral package. 4 | # Artem Polishchuk , 2019. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: com.github.cassidyjames.ephemeral\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2020-03-02 14:52-0700\n" 11 | "PO-Revision-Date: 2019-12-02 10:27+0100\n" 12 | "Last-Translator: Artem Polishchuk \n" 13 | "Language-Team: none\n" 14 | "Language: ru\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" 19 | "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" 20 | 21 | #: src/MainWindow.vala:63 22 | msgid "Undo" 23 | msgstr "" 24 | 25 | #: src/MainWindow.vala:77 26 | msgid "Back" 27 | msgstr "Назад" 28 | 29 | #: src/MainWindow.vala:83 30 | msgid "Forward" 31 | msgstr "Вперёд" 32 | 33 | #: src/MainWindow.vala:88 34 | msgid "Reload page" 35 | msgstr "Обновить страницу" 36 | 37 | #: src/MainWindow.vala:93 38 | msgid "Stop loading" 39 | msgstr "Остановить загрузку" 40 | 41 | #: src/MainWindow.vala:105 42 | msgid "Close window and erase history" 43 | msgstr "" 44 | 45 | #: src/MainWindow.vala:113 46 | msgid "Menu" 47 | msgstr "Меню" 48 | 49 | #: src/MainWindow.vala:122 50 | msgid "Light content" 51 | msgstr "" 52 | 53 | #: src/MainWindow.vala:123 54 | msgid "Dark content" 55 | msgstr "" 56 | 57 | #: src/MainWindow.vala:135 58 | msgid "Zoom out" 59 | msgstr "Уменьшить" 60 | 61 | #: src/MainWindow.vala:142 62 | msgid "Default zoom level" 63 | msgstr "Сбросить масштаб" 64 | 65 | #: src/MainWindow.vala:149 66 | msgid "Zoom in" 67 | msgstr "Увеличить" 68 | 69 | #: src/MainWindow.vala:164 70 | msgid "Note: Disabling JavaScript will likely break many sites" 71 | msgstr "" 72 | 73 | #: src/MainWindow.vala:180 74 | msgid "JavaScript" 75 | msgstr "" 76 | 77 | #: src/MainWindow.vala:194 78 | msgid "Open New Window" 79 | msgstr "Открыть новое окно" 80 | 81 | #: src/MainWindow.vala:212 82 | #, fuzzy 83 | msgid "Quit Ephemeral" 84 | msgstr "Ephemeral" 85 | 86 | #: src/MainWindow.vala:217 87 | msgid "Close all windows and erase all history" 88 | msgstr "" 89 | 90 | #: src/MainWindow.vala:238 91 | msgid "Startpage.com Search" 92 | msgstr "Startpage.com поиск" 93 | 94 | #: src/MainWindow.vala:241 95 | msgid "DuckDuckGo Search" 96 | msgstr "DuckDuckGo поиск" 97 | 98 | #: src/MainWindow.vala:246 99 | msgid "Custom Search Engine…" 100 | msgstr "Пользовательская поисковая система..." 101 | 102 | #: src/MainWindow.vala:250 103 | msgid "Reset Preferences…" 104 | msgstr "Сбросить настройки..." 105 | 106 | #: src/MainWindow.vala:682 107 | msgid "Suggestion removed" 108 | msgstr "" 109 | 110 | #: src/MainWindow.vala:686 111 | msgid "Suggestion added" 112 | msgstr "" 113 | 114 | #: src/Dialogs/ExternalDialog.vala:28 src/Dialogs/ExternalDialog.vala:30 115 | #, fuzzy 116 | msgid "Open Link Externally?" 117 | msgstr "Открыть извне?" 118 | 119 | #: src/Dialogs/ExternalDialog.vala:37 120 | #, fuzzy, c-format 121 | msgid "This page is trying to open an app for %s links." 122 | msgstr "Эта страница пытается открыть приложение для ссылок “%s”." 123 | 124 | #: src/Dialogs/ExternalDialog.vala:39 125 | msgid "This page is trying to open an app." 126 | msgstr "Эта страница пытается открыть приложение." 127 | 128 | #: src/Dialogs/ExternalDialog.vala:42 129 | msgid "Your data may not be kept private by the opened app." 130 | msgstr "Приватность ваших данных не гарантируется после открытия приложения." 131 | 132 | #: src/Dialogs/ExternalDialog.vala:47 133 | msgid "Don’t Open" 134 | msgstr "Не открывать" 135 | 136 | #: src/Dialogs/ExternalDialog.vala:50 137 | msgid "Open Anyway" 138 | msgstr "Открыть в любом случае" 139 | 140 | #: src/Dialogs/PreferencesDialog.vala:26 src/Dialogs/PreferencesDialog.vala:28 141 | msgid "Reset Preferences?" 142 | msgstr "Сбросить настройки?" 143 | 144 | #: src/Dialogs/PreferencesDialog.vala:27 145 | msgid "" 146 | "All added website suggestions will be removed. Any dismissed or remembered " 147 | "alerts, warnings, etc. will be displayed again the next time Ephemeral is " 148 | "opened." 149 | msgstr "" 150 | "Все добавленные предложения сайта будут удалены. Любые отклоненные или " 151 | "запомненные предупреждения, предупреждения и так далее будут отображаться " 152 | "снова при следующем открытии Ephemeral." 153 | 154 | #: src/Dialogs/PreferencesDialog.vala:33 155 | msgid "Never Mind" 156 | msgstr "Нет" 157 | 158 | #: src/Dialogs/PreferencesDialog.vala:36 159 | msgid "Reset Preferences" 160 | msgstr "Сбросить настройки" 161 | 162 | #: src/Dialogs/ScriptDialog.vala:27 src/Dialogs/ScriptDialog.vala:28 163 | msgid "Message From Page" 164 | msgstr "" 165 | 166 | #: src/Dialogs/ScriptDialog.vala:39 src/Dialogs/ScriptDialog.vala:47 167 | #: src/Dialogs/ScriptDialog.vala:69 168 | msgid "Close" 169 | msgstr "" 170 | 171 | #: src/Dialogs/ScriptDialog.vala:49 src/Dialogs/ScriptDialog.vala:71 172 | msgid "Confirm" 173 | msgstr "" 174 | 175 | #: src/InfoBars/DefaultInfoBar.vala:31 176 | msgid "Make privacy a habit." 177 | msgstr "Сделайте приватность своей привычкой." 178 | 179 | #: src/InfoBars/DefaultInfoBar.vala:32 180 | msgid "Set Ephemeral as your default browser?" 181 | msgstr "Установить Ephemeral в качестве браузера по умолчанию?" 182 | 183 | #. TRANSLATORS: Where you change default apps on elementary OS. Be very careful with the markup! 184 | #: src/InfoBars/DefaultInfoBar.vala:35 185 | msgid "" 186 | "You can always change this later in System Settings → " 187 | "Applications." 188 | msgstr "" 189 | "Вы всегда это можете изменить позже в Системные настройки → " 190 | "Приложения." 191 | 192 | #: src/InfoBars/DefaultInfoBar.vala:46 193 | msgid "Never Ask Again" 194 | msgstr "Больше не спрашивать" 195 | 196 | #: src/InfoBars/DefaultInfoBar.vala:52 197 | msgid "Set as Default" 198 | msgstr "Установить по умолчанию" 199 | 200 | #: src/InfoBars/NativeInfoBar.vala:31 201 | msgid "Ephemeral is a paid app designed for elementary OS." 202 | msgstr "Ephemeral — платное приложение, предназначенное для elementary OS." 203 | 204 | #: src/InfoBars/NativeInfoBar.vala:32 205 | msgid "" 206 | "Some features may not work properly when running on another OS or desktop " 207 | "environment." 208 | msgstr "" 209 | "Некоторые функции могут не работать должным образом при работе в другой ОС " 210 | "или среде рабочего стола." 211 | 212 | #: src/InfoBars/NativeInfoBar.vala:33 213 | msgid "" 214 | "Ephemeral is also typically funded by elementary AppCenter purchases. " 215 | "Consider donating if you find value in using Ephemeral on other platforms." 216 | msgstr "" 217 | "Ephemeral также обычно финансируется за счет покупок в elementary AppCenter. " 218 | "Рассмотрите возможность пожертвования, если вы находите полезным " 219 | "использовать Ephemeral на других платформах." 220 | 221 | #: src/InfoBars/NativeInfoBar.vala:41 src/InfoBars/PaidInfoBar.vala:43 222 | msgid "Dismiss" 223 | msgstr "Отклонить" 224 | 225 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 226 | #: src/InfoBars/NativeInfoBar.vala:46 227 | msgid "Donate…" 228 | msgstr "Пожертвовать..." 229 | 230 | #: src/InfoBars/NetworkInfoBar.vala:31 231 | msgid "Network Not Available." 232 | msgstr "Сеть недоступна." 233 | 234 | #: src/InfoBars/NetworkInfoBar.vala:32 235 | msgid "Connect to the Internet to browse the Web." 236 | msgstr "Подключитесь к интернету для просмотра веб-страниц." 237 | 238 | #: src/InfoBars/NetworkInfoBar.vala:38 239 | msgid "Never Warn Again" 240 | msgstr "Больше не предупреждать" 241 | 242 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 243 | #: src/InfoBars/NetworkInfoBar.vala:45 244 | msgid "Network Settings…" 245 | msgstr "Сетевые настройки..." 246 | 247 | #. TRANSLATORS: This is an emphasized part at the beginning of a complete sentence, no terminating punctuation 248 | #: src/InfoBars/PaidInfoBar.vala:32 249 | msgid "Ephemeral is a paid app" 250 | msgstr "Ephemeral — платное приложение" 251 | 252 | #. TRANSLATORS: This continues the previous string, with terminating punctuation 253 | #: src/InfoBars/PaidInfoBar.vala:34 254 | msgid "funded by AppCenter purchases." 255 | msgstr "финансируется за счет покупок в AppCenter." 256 | 257 | #: src/InfoBars/PaidInfoBar.vala:35 258 | msgid "Consider purchasing or funding if you find value in using Ephemeral." 259 | msgstr "" 260 | "Рассмотрите возможность покупки или финансирования, если вы находите " 261 | "полезным использовать Ephemeral." 262 | 263 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 264 | #: src/InfoBars/PaidInfoBar.vala:50 265 | msgid "Purchase or Fund…" 266 | msgstr "Купить или профинансировать..." 267 | 268 | #: src/Views/ErrorView.vala:28 269 | msgid "Whoops" 270 | msgstr "Ой!" 271 | 272 | #: src/Views/ErrorView.vala:31 273 | msgid "Could not display the page." 274 | msgstr "Не удалось отобразить страницу." 275 | 276 | #: src/Views/WelcomeView.vala:31 277 | msgid "The always-incognito web browser" 278 | msgstr "Браузер, который всегда в режиме инкогнито" 279 | 280 | #: src/Views/WelcomeView.vala:33 281 | msgid "" 282 | "Remember, Ephemeral and any browser’s incognito or private mode can only do " 283 | "so much: they mitigate some tracking and don’t store data on your device, " 284 | "but they won’t stop your ISP, government, or determined websites from " 285 | "tracking you." 286 | msgstr "" 287 | "Помните, что Ephemeral и режим инкогнито или приватный режим другого " 288 | "браузера могут сделать очень многое, но не всё: они уменьшают некоторое " 289 | "отслеживание и не сохраняют данные на вашем устройстве, но они не помешают " 290 | "вашему провайдеру, правительству или определенным веб-сайтам отслеживать вас." 291 | 292 | #: src/Views/WelcomeView.vala:34 293 | msgid "For the best protection, always use a VPN." 294 | msgstr "Для лучшей защиты всегда используйте VPN." 295 | 296 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in another menu 297 | #: src/Widgets/BrowserButton.vala:50 298 | msgid "Open page in…" 299 | msgstr "Открыть страницу в..." 300 | 301 | #: src/Widgets/BrowserButton.vala:62 302 | msgid "Close Window When Opening Externally" 303 | msgstr "Закрыть окно при открытии извне" 304 | 305 | #: src/Widgets/BrowserButton.vala:141 306 | #, c-format 307 | msgid "Open page in %s" 308 | msgstr "Открыть страницу в %s" 309 | 310 | #: src/Widgets/UrlEntry.vala:39 311 | msgid "Enter a URL or search term" 312 | msgstr "Введите URL или поисковый запрос" 313 | 314 | #: src/Widgets/UrlEntry.vala:185 315 | #, c-format 316 | msgid "Go to \"%s\"" 317 | msgstr "" 318 | 319 | #: src/Widgets/UrlEntry.vala:185 320 | #, c-format 321 | msgid "Search for \"%s\"" 322 | msgstr "" 323 | 324 | #: src/Widgets/UrlEntry.vala:251 325 | msgid "Popular website" 326 | msgstr "Популярный сайт" 327 | 328 | #: src/Widgets/UrlEntry.vala:284 329 | msgid "Favorite website" 330 | msgstr "Любимый сайт" 331 | 332 | #: src/Widgets/UrlEntry.vala:723 333 | msgid "Go" 334 | msgstr "Перейти" 335 | 336 | #: src/Widgets/UrlEntry.vala:735 337 | msgid "Remove Website from Suggestions" 338 | msgstr "Удалить сайт из предложений" 339 | 340 | #: src/Widgets/UrlEntry.vala:739 341 | msgid "Add Website to Suggestions" 342 | msgstr "Добавить сайт в предложения" 343 | 344 | #: src/Widgets/WebView.vala:105 345 | #, fuzzy 346 | msgid "Open Link in New _Window" 347 | msgstr "Открыть новое окно" 348 | -------------------------------------------------------------------------------- /po/pt_BR.po: -------------------------------------------------------------------------------- 1 | # Portuguese translations for com.github.cassidyjames.ephemeral package. 2 | # Copyright (C) 2019 THE com.github.cassidyjames.ephemeral'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.cassidyjames.ephemeral package. 4 | # Lucas Sanchez dos Anjos , 2019. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: com.github.cassidyjames.ephemeral\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2020-03-02 14:52-0700\n" 11 | "PO-Revision-Date: 2019-12-02 10:27+0100\n" 12 | "Last-Translator: Lucas Sanchez dos Anjos \n" 13 | "Language-Team: none\n" 14 | "Language: pt_BR\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" 19 | 20 | #: src/MainWindow.vala:63 21 | msgid "Undo" 22 | msgstr "Desfazer" 23 | 24 | #: src/MainWindow.vala:77 25 | msgid "Back" 26 | msgstr "Voltar" 27 | 28 | #: src/MainWindow.vala:83 29 | msgid "Forward" 30 | msgstr "Avançar" 31 | 32 | #: src/MainWindow.vala:88 33 | msgid "Reload page" 34 | msgstr "Recarregar página" 35 | 36 | #: src/MainWindow.vala:93 37 | msgid "Stop loading" 38 | msgstr "Interromper carregamento" 39 | 40 | #: src/MainWindow.vala:105 41 | msgid "Close window and erase history" 42 | msgstr "Fechar janela e apagar histórico" 43 | 44 | #: src/MainWindow.vala:113 45 | msgid "Menu" 46 | msgstr "Menu" 47 | 48 | #: src/MainWindow.vala:122 49 | msgid "Light content" 50 | msgstr "Conteúdo claro" 51 | 52 | #: src/MainWindow.vala:123 53 | msgid "Dark content" 54 | msgstr "Conteúdo escuro" 55 | 56 | #: src/MainWindow.vala:135 57 | msgid "Zoom out" 58 | msgstr "Reduzir" 59 | 60 | #: src/MainWindow.vala:142 61 | msgid "Default zoom level" 62 | msgstr "Redefinir nível de zoom" 63 | 64 | #: src/MainWindow.vala:149 65 | msgid "Zoom in" 66 | msgstr "Ampliar" 67 | 68 | #: src/MainWindow.vala:164 69 | msgid "Note: Disabling JavaScript will likely break many sites" 70 | msgstr "Nota: Desabilitar JavaScript provavelemte irá quebrar muitos sites" 71 | 72 | #: src/MainWindow.vala:180 73 | msgid "JavaScript" 74 | msgstr "" 75 | 76 | #: src/MainWindow.vala:194 77 | msgid "Open New Window" 78 | msgstr "Abrir nova Janela" 79 | 80 | #: src/MainWindow.vala:212 81 | #, fuzzy 82 | msgid "Quit Ephemeral" 83 | msgstr "Sair do Ephemeral" 84 | 85 | #: src/MainWindow.vala:217 86 | msgid "Close all windows and erase all history" 87 | msgstr "Fechar todas as janelas e apagar todo o histórico" 88 | 89 | #: src/MainWindow.vala:238 90 | msgid "Startpage.com Search" 91 | msgstr "" 92 | 93 | #: src/MainWindow.vala:241 94 | msgid "DuckDuckGo Search" 95 | msgstr "" 96 | 97 | #: src/MainWindow.vala:246 98 | msgid "Custom Search Engine…" 99 | msgstr "Busca personalizada..." 100 | 101 | #: src/MainWindow.vala:250 102 | msgid "Reset Preferences…" 103 | msgstr "Redefinir Preferências…" 104 | 105 | #: src/MainWindow.vala:682 106 | msgid "Suggestion removed" 107 | msgstr "Sugestão removida" 108 | 109 | #: src/MainWindow.vala:686 110 | msgid "Suggestion added" 111 | msgstr "Sugestão adicionada" 112 | 113 | #: src/Dialogs/ExternalDialog.vala:28 src/Dialogs/ExternalDialog.vala:30 114 | #, fuzzy 115 | msgid "Open Link Externally?" 116 | msgstr "Abrir Link Externamente?" 117 | 118 | #: src/Dialogs/ExternalDialog.vala:37 119 | #, fuzzy, c-format 120 | msgid "This page is trying to open an app for %s links." 121 | msgstr "Esta página está tentando abrir um aplicativo para os links “%s” ." 122 | 123 | #: src/Dialogs/ExternalDialog.vala:39 124 | msgid "This page is trying to open an app." 125 | msgstr "Esta página está tentando abrir um aplicativo." 126 | 127 | #: src/Dialogs/ExternalDialog.vala:42 128 | msgid "Your data may not be kept private by the opened app." 129 | msgstr "Seus dados podem não ser mantidos em privado pelo aplicativo aberto." 130 | 131 | #: src/Dialogs/ExternalDialog.vala:47 132 | msgid "Don’t Open" 133 | msgstr "Não Abrir" 134 | 135 | #: src/Dialogs/ExternalDialog.vala:50 136 | msgid "Open Anyway" 137 | msgstr "Abrir Mesmo Assim" 138 | 139 | #: src/Dialogs/PreferencesDialog.vala:26 src/Dialogs/PreferencesDialog.vala:28 140 | msgid "Reset Preferences?" 141 | msgstr "Redefinir Preferências?" 142 | 143 | #: src/Dialogs/PreferencesDialog.vala:27 144 | #, fuzzy 145 | msgid "" 146 | "All added website suggestions will be removed. Any dismissed or remembered " 147 | "alerts, warnings, etc. will be displayed again the next time Ephemeral is " 148 | "opened." 149 | msgstr "" 150 | "Quaisquer alertas, avisos, etc. dispensados ou lembrados, serão mostrados " 151 | "novamente da próxima vez que Ephemeral for aberto." 152 | 153 | #: src/Dialogs/PreferencesDialog.vala:33 154 | msgid "Never Mind" 155 | msgstr "Deixar Pra Lá" 156 | 157 | #: src/Dialogs/PreferencesDialog.vala:36 158 | msgid "Reset Preferences" 159 | msgstr "Redefinir Preferências" 160 | 161 | #: src/Dialogs/ScriptDialog.vala:27 src/Dialogs/ScriptDialog.vala:28 162 | msgid "Message From Page" 163 | msgstr "Mensage da página" 164 | 165 | #: src/Dialogs/ScriptDialog.vala:39 src/Dialogs/ScriptDialog.vala:47 166 | #: src/Dialogs/ScriptDialog.vala:69 167 | msgid "Close" 168 | msgstr "Fechar" 169 | 170 | #: src/Dialogs/ScriptDialog.vala:49 src/Dialogs/ScriptDialog.vala:71 171 | msgid "Confirm" 172 | msgstr "Confirmar" 173 | 174 | #: src/InfoBars/DefaultInfoBar.vala:31 175 | msgid "Make privacy a habit." 176 | msgstr "Faça da Privacidade um hábito." 177 | 178 | #: src/InfoBars/DefaultInfoBar.vala:32 179 | msgid "Set Ephemeral as your default browser?" 180 | msgstr "Definir Ephemeral como navegador padrão?" 181 | 182 | #. TRANSLATORS: Where you change default apps on elementary OS. Be very careful with the markup! 183 | #: src/InfoBars/DefaultInfoBar.vala:35 184 | msgid "" 185 | "You can always change this later in System Settings → " 186 | "Applications." 187 | msgstr "" 188 | "Você sempre poderá alterar isso em Configurações do Sistema → " 189 | "Aplicativos." 190 | 191 | #: src/InfoBars/DefaultInfoBar.vala:46 192 | msgid "Never Ask Again" 193 | msgstr "Nunca mais Perguntar" 194 | 195 | #: src/InfoBars/DefaultInfoBar.vala:52 196 | msgid "Set as Default" 197 | msgstr "Definir como Padrão" 198 | 199 | #: src/InfoBars/NativeInfoBar.vala:31 200 | msgid "Ephemeral is a paid app designed for elementary OS." 201 | msgstr "Ephemeral é um aplicativo pago desenvolvido para o elementary OS." 202 | 203 | #: src/InfoBars/NativeInfoBar.vala:32 204 | msgid "" 205 | "Some features may not work properly when running on another OS or desktop " 206 | "environment." 207 | msgstr "" 208 | "Algumas funções podem não funcionar corretamente quando rodando em outro " 209 | "sistema operacional ou outros ambiente de trabalho." 210 | 211 | #: src/InfoBars/NativeInfoBar.vala:33 212 | msgid "" 213 | "Ephemeral is also typically funded by elementary AppCenter purchases. " 214 | "Consider donating if you find value in using Ephemeral on other platforms." 215 | msgstr "" 216 | "Ephemeral é também financiado pelas compras no elementary AppCenter. " 217 | "Considere doar se você encontrar valor em usar o Ephemeral em outras " 218 | "plataformas." 219 | 220 | #: src/InfoBars/NativeInfoBar.vala:41 src/InfoBars/PaidInfoBar.vala:43 221 | msgid "Dismiss" 222 | msgstr "Dispensar" 223 | 224 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 225 | #: src/InfoBars/NativeInfoBar.vala:46 226 | msgid "Donate…" 227 | msgstr "Doar…" 228 | 229 | #: src/InfoBars/NetworkInfoBar.vala:31 230 | msgid "Network Not Available." 231 | msgstr "Rede Indisponível." 232 | 233 | #: src/InfoBars/NetworkInfoBar.vala:32 234 | msgid "Connect to the Internet to browse the Web." 235 | msgstr "Conecte à internet para navegar pela Web." 236 | 237 | #: src/InfoBars/NetworkInfoBar.vala:38 238 | msgid "Never Warn Again" 239 | msgstr "Nunca Mais Avisar" 240 | 241 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 242 | #: src/InfoBars/NetworkInfoBar.vala:45 243 | msgid "Network Settings…" 244 | msgstr "Configurações de Rede…" 245 | 246 | #. TRANSLATORS: This is an emphasized part at the beginning of a complete sentence, no terminating punctuation 247 | #: src/InfoBars/PaidInfoBar.vala:32 248 | msgid "Ephemeral is a paid app" 249 | msgstr "Ephemeral é um aplicativo pago" 250 | 251 | #. TRANSLATORS: This continues the previous string, with terminating punctuation 252 | #: src/InfoBars/PaidInfoBar.vala:34 253 | msgid "funded by AppCenter purchases." 254 | msgstr "financiado pelas compras no AppCenter." 255 | 256 | #: src/InfoBars/PaidInfoBar.vala:35 257 | msgid "Consider purchasing or funding if you find value in using Ephemeral." 258 | msgstr "Considere comprar ou financiar se você encontrar valor em usar o Ephemeral." 259 | 260 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 261 | #: src/InfoBars/PaidInfoBar.vala:50 262 | msgid "Purchase or Fund…" 263 | msgstr "Comprar ou Financiar…" 264 | 265 | #: src/Views/ErrorView.vala:28 266 | msgid "Whoops" 267 | msgstr "Opa" 268 | 269 | #: src/Views/ErrorView.vala:31 270 | msgid "Could not display the page." 271 | msgstr "Não foi possível mostrar a página." 272 | 273 | #: src/Views/WelcomeView.vala:31 274 | msgid "The always-incognito web browser" 275 | msgstr "O navegador que está sempre em modo incógnito" 276 | 277 | #: src/Views/WelcomeView.vala:33 278 | msgid "" 279 | "Remember, Ephemeral and any browser’s incognito or private mode can only do " 280 | "so much: they mitigate some tracking and don’t store data on your device, " 281 | "but they won’t stop your ISP, government, or determined websites from " 282 | "tracking you." 283 | msgstr "" 284 | "Lembre-se, Ephemeral e qualquer modo privado de outros navegadores não fazem " 285 | "milagre: eles conseguem impedir algum rastreamento e não guardam dados no " 286 | "dispositivo, mas eles não impedem que sua operadora, o governo, ou " 287 | "determinados sites de te rastrear." 288 | 289 | #: src/Views/WelcomeView.vala:34 290 | msgid "For the best protection, always use a VPN." 291 | msgstr "Para uma proteção melhor, use sempre um serviço de VPN." 292 | 293 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in another menu 294 | #: src/Widgets/BrowserButton.vala:50 295 | msgid "Open page in…" 296 | msgstr "Abrir página no…" 297 | 298 | #: src/Widgets/BrowserButton.vala:62 299 | msgid "Close Window When Opening Externally" 300 | msgstr "Fechar janela quando abrir externamente" 301 | 302 | #: src/Widgets/BrowserButton.vala:141 303 | #, c-format 304 | msgid "Open page in %s" 305 | msgstr "Abrir página no %s" 306 | 307 | #: src/Widgets/UrlEntry.vala:39 308 | msgid "Enter a URL or search term" 309 | msgstr "Digite o endereço ou um termo de pesquisa" 310 | 311 | #: src/Widgets/UrlEntry.vala:185 312 | #, c-format 313 | msgid "Go to \"%s\"" 314 | msgstr "Ir para \"%s\"" 315 | 316 | #: src/Widgets/UrlEntry.vala:185 317 | #, c-format 318 | msgid "Search for \"%s\"" 319 | msgstr "Procurar por \"%s\"" 320 | 321 | #: src/Widgets/UrlEntry.vala:251 322 | msgid "Popular website" 323 | msgstr "" 324 | 325 | #: src/Widgets/UrlEntry.vala:284 326 | msgid "Favorite website" 327 | msgstr "Favoritar website" 328 | 329 | #: src/Widgets/UrlEntry.vala:723 330 | msgid "Go" 331 | msgstr "Ir" 332 | 333 | #: src/Widgets/UrlEntry.vala:735 334 | msgid "Remove Website from Suggestions" 335 | msgstr "Remover Website das Sugestões" 336 | 337 | #: src/Widgets/UrlEntry.vala:739 338 | msgid "Add Website to Suggestions" 339 | msgstr "Adicionar Website a Sugestões" 340 | 341 | #: src/Widgets/WebView.vala:105 342 | #, fuzzy 343 | msgid "Open Link in New _Window" 344 | msgstr "Abrir nova Janela" 345 | -------------------------------------------------------------------------------- /po/es.po: -------------------------------------------------------------------------------- 1 | # Spanish translations for Ephemeral. 2 | # Copyright (C) 2019 Cassidy James Blaede, Adolfo Jayme Barrientos 3 | # This file is distributed under the same license as the com.github.cassidyjames.ephemeral package. 4 | # Adolfo Jayme Barrientos , 2019-2020. 5 | # Daniel R. , 2019. 6 | # Mario Rodrigo, 2019. 7 | # 8 | msgid "" 9 | msgstr "" 10 | "Project-Id-Version: com.github.cassidyjames.ephemeral\n" 11 | "Report-Msgid-Bugs-To: \n" 12 | "POT-Creation-Date: 2020-03-02 14:52-0700\n" 13 | "PO-Revision-Date: 2019-12-02 10:27+0100\n" 14 | "Last-Translator: Automatically generated\n" 15 | "Language-Team: none\n" 16 | "Language: es\n" 17 | "MIME-Version: 1.0\n" 18 | "Content-Type: text/plain; charset=UTF-8\n" 19 | "Content-Transfer-Encoding: 8bit\n" 20 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 21 | 22 | #: src/MainWindow.vala:63 23 | msgid "Undo" 24 | msgstr "Deshacer" 25 | 26 | #: src/MainWindow.vala:77 27 | msgid "Back" 28 | msgstr "Atrás" 29 | 30 | #: src/MainWindow.vala:83 31 | msgid "Forward" 32 | msgstr "Adelante" 33 | 34 | #: src/MainWindow.vala:88 35 | msgid "Reload page" 36 | msgstr "Volver a cargar la página" 37 | 38 | #: src/MainWindow.vala:93 39 | msgid "Stop loading" 40 | msgstr "Detener la carga" 41 | 42 | #: src/MainWindow.vala:105 43 | msgid "Close window and erase history" 44 | msgstr "Cerrar la ventana y borrar el histórico" 45 | 46 | #: src/MainWindow.vala:113 47 | msgid "Menu" 48 | msgstr "Menú" 49 | 50 | #: src/MainWindow.vala:122 51 | msgid "Light content" 52 | msgstr "Contenido claro" 53 | 54 | #: src/MainWindow.vala:123 55 | msgid "Dark content" 56 | msgstr "Contenido oscuro" 57 | 58 | #: src/MainWindow.vala:135 59 | msgid "Zoom out" 60 | msgstr "Alejar" 61 | 62 | #: src/MainWindow.vala:142 63 | msgid "Default zoom level" 64 | msgstr "Escala predeterminada" 65 | 66 | #: src/MainWindow.vala:149 67 | msgid "Zoom in" 68 | msgstr "Acercar" 69 | 70 | #: src/MainWindow.vala:164 71 | msgid "Note: Disabling JavaScript will likely break many sites" 72 | msgstr "" 73 | "Nota: si desactiva JavaScript probablemente dejen de funcionar muchos " 74 | "sitios" 75 | 76 | #: src/MainWindow.vala:180 77 | msgid "JavaScript" 78 | msgstr "JavaScript" 79 | 80 | #: src/MainWindow.vala:194 81 | msgid "Open New Window" 82 | msgstr "Abrir una ventana nueva" 83 | 84 | #: src/MainWindow.vala:212 85 | msgid "Quit Ephemeral" 86 | msgstr "Salir de Ephemeral" 87 | 88 | #: src/MainWindow.vala:217 89 | msgid "Close all windows and erase all history" 90 | msgstr "Cerrar todas las ventanas y borrar el histórico" 91 | 92 | #: src/MainWindow.vala:238 93 | msgid "Startpage.com Search" 94 | msgstr "Búsqueda con Startpage.com" 95 | 96 | #: src/MainWindow.vala:241 97 | msgid "DuckDuckGo Search" 98 | msgstr "Búsqueda con DuckDuckGo" 99 | 100 | #: src/MainWindow.vala:246 101 | msgid "Custom Search Engine…" 102 | msgstr "Buscador personalizado…" 103 | 104 | #: src/MainWindow.vala:250 105 | msgid "Reset Preferences…" 106 | msgstr "Restablecer las preferencias…" 107 | 108 | #: src/MainWindow.vala:682 109 | msgid "Suggestion removed" 110 | msgstr "Se quitó la sugerencia" 111 | 112 | #: src/MainWindow.vala:686 113 | msgid "Suggestion added" 114 | msgstr "Se añadió la sugerencia" 115 | 116 | #: src/Dialogs/ExternalDialog.vala:28 src/Dialogs/ExternalDialog.vala:30 117 | msgid "Open Link Externally?" 118 | msgstr "¿Quiere abrir el enlace externamente?" 119 | 120 | #: src/Dialogs/ExternalDialog.vala:37 121 | #, c-format 122 | msgid "This page is trying to open an app for %s links." 123 | msgstr "Esta página intenta abrir una aplicación para los enlaces %s." 124 | 125 | #: src/Dialogs/ExternalDialog.vala:39 126 | msgid "This page is trying to open an app." 127 | msgstr "Esta página intenta abrir una aplicación." 128 | 129 | #: src/Dialogs/ExternalDialog.vala:42 130 | msgid "Your data may not be kept private by the opened app." 131 | msgstr "La otra aplicación podría no guardar la privacidad de su información." 132 | 133 | #: src/Dialogs/ExternalDialog.vala:47 134 | msgid "Don’t Open" 135 | msgstr "No abrir" 136 | 137 | #: src/Dialogs/ExternalDialog.vala:50 138 | msgid "Open Anyway" 139 | msgstr "Abrir de todos modos" 140 | 141 | #: src/Dialogs/PreferencesDialog.vala:26 src/Dialogs/PreferencesDialog.vala:28 142 | msgid "Reset Preferences?" 143 | msgstr "¿Quiere restablecer las preferencias?" 144 | 145 | #: src/Dialogs/PreferencesDialog.vala:27 146 | msgid "" 147 | "All added website suggestions will be removed. Any dismissed or remembered " 148 | "alerts, warnings, etc. will be displayed again the next time Ephemeral is " 149 | "opened." 150 | msgstr "" 151 | "Se quitarán todas las sugerencias de sitios web añadidos. Las alertas " 152 | "descartadas o recordadas volverán a aparecer la próxima vez que abra " 153 | "Ephemeral." 154 | 155 | #: src/Dialogs/PreferencesDialog.vala:33 156 | msgid "Never Mind" 157 | msgstr "No importa" 158 | 159 | #: src/Dialogs/PreferencesDialog.vala:36 160 | msgid "Reset Preferences" 161 | msgstr "Restablecer preferencias" 162 | 163 | #: src/Dialogs/ScriptDialog.vala:27 src/Dialogs/ScriptDialog.vala:28 164 | msgid "Message From Page" 165 | msgstr "Mensaje de la página" 166 | 167 | #: src/Dialogs/ScriptDialog.vala:39 src/Dialogs/ScriptDialog.vala:47 168 | #: src/Dialogs/ScriptDialog.vala:69 169 | msgid "Close" 170 | msgstr "Cerrar" 171 | 172 | #: src/Dialogs/ScriptDialog.vala:49 src/Dialogs/ScriptDialog.vala:71 173 | msgid "Confirm" 174 | msgstr "Confirmar" 175 | 176 | #: src/InfoBars/DefaultInfoBar.vala:31 177 | msgid "Make privacy a habit." 178 | msgstr "Haga de la privacidad un hábito." 179 | 180 | #: src/InfoBars/DefaultInfoBar.vala:32 181 | msgid "Set Ephemeral as your default browser?" 182 | msgstr "¿Quiere establecer Ephemeral como el navegador predeterminado?" 183 | 184 | #. TRANSLATORS: Where you change default apps on elementary OS. Be very careful with the markup! 185 | #: src/InfoBars/DefaultInfoBar.vala:35 186 | msgid "" 187 | "You can always change this later in System Settings → " 188 | "Applications." 189 | msgstr "" 190 | "Puede modificar esto más adelante en Configuración del sistema → " 191 | "Aplicaciones." 192 | 193 | #: src/InfoBars/DefaultInfoBar.vala:46 194 | msgid "Never Ask Again" 195 | msgstr "No preguntar más" 196 | 197 | #: src/InfoBars/DefaultInfoBar.vala:52 198 | msgid "Set as Default" 199 | msgstr "Predeterminar" 200 | 201 | #: src/InfoBars/NativeInfoBar.vala:31 202 | msgid "Ephemeral is a paid app designed for elementary OS." 203 | msgstr "Ephemeral es una aplicación de pago diseñada para elementary OS." 204 | 205 | #: src/InfoBars/NativeInfoBar.vala:32 206 | msgid "" 207 | "Some features may not work properly when running on another OS or desktop " 208 | "environment." 209 | msgstr "" 210 | "Es posible que algunas prestaciones no funcionen adecuadamente en otros " 211 | "sistemas o entornos." 212 | 213 | #: src/InfoBars/NativeInfoBar.vala:33 214 | msgid "" 215 | "Ephemeral is also typically funded by elementary AppCenter purchases. " 216 | "Consider donating if you find value in using Ephemeral on other platforms." 217 | msgstr "" 218 | "Las compras por el AppCenter de elementary normalmente financian Ephemeral. " 219 | "Si encuentra valor en Ephemeral en otras plataformas, considere realizar un " 220 | "donativo." 221 | 222 | #: src/InfoBars/NativeInfoBar.vala:41 src/InfoBars/PaidInfoBar.vala:43 223 | msgid "Dismiss" 224 | msgstr "Descartar" 225 | 226 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 227 | #: src/InfoBars/NativeInfoBar.vala:46 228 | msgid "Donate…" 229 | msgstr "Donar…" 230 | 231 | #: src/InfoBars/NetworkInfoBar.vala:31 232 | msgid "Network Not Available." 233 | msgstr "La red no está disponible." 234 | 235 | #: src/InfoBars/NetworkInfoBar.vala:32 236 | msgid "Connect to the Internet to browse the Web." 237 | msgstr "Conéctese a Internet para explorar la Red." 238 | 239 | #: src/InfoBars/NetworkInfoBar.vala:38 240 | msgid "Never Warn Again" 241 | msgstr "No avisar más" 242 | 243 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 244 | #: src/InfoBars/NetworkInfoBar.vala:45 245 | msgid "Network Settings…" 246 | msgstr "Configuración de redes…" 247 | 248 | #. TRANSLATORS: This is an emphasized part at the beginning of a complete sentence, no terminating punctuation 249 | #: src/InfoBars/PaidInfoBar.vala:32 250 | msgid "Ephemeral is a paid app" 251 | msgstr "Ephemeral es una aplicación de pago" 252 | 253 | #. TRANSLATORS: This continues the previous string, with terminating punctuation 254 | #: src/InfoBars/PaidInfoBar.vala:34 255 | msgid "funded by AppCenter purchases." 256 | msgstr "financiada por las compras en el AppCenter." 257 | 258 | #: src/InfoBars/PaidInfoBar.vala:35 259 | msgid "Consider purchasing or funding if you find value in using Ephemeral." 260 | msgstr "Si ha sacado provecho de Ephemeral, considere comprarlo o financiarlo." 261 | 262 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 263 | #: src/InfoBars/PaidInfoBar.vala:50 264 | msgid "Purchase or Fund…" 265 | msgstr "Comprar o financiar…" 266 | 267 | #: src/Views/ErrorView.vala:28 268 | msgid "Whoops" 269 | msgstr "Vaya" 270 | 271 | #: src/Views/ErrorView.vala:31 272 | msgid "Could not display the page." 273 | msgstr "No se pudo mostrar la página." 274 | 275 | #: src/Views/WelcomeView.vala:31 276 | msgid "The always-incognito web browser" 277 | msgstr "El navegador web que siempre va de incógnito" 278 | 279 | #: src/Views/WelcomeView.vala:33 280 | msgid "" 281 | "Remember, Ephemeral and any browser’s incognito or private mode can only do " 282 | "so much: they mitigate some tracking and don’t store data on your device, " 283 | "but they won’t stop your ISP, government, or determined websites from " 284 | "tracking you." 285 | msgstr "" 286 | "Tenga presente que Ephemeral y los modos privados de cualquier otro " 287 | "navegador tienen límites: aunque mitigan ciertas formas de rastreo y " 288 | "previenen el almacenamiento local de datos, no pueden contra su proveedor de " 289 | "servicio, el gobierno o sitios web tenaces." 290 | 291 | #: src/Views/WelcomeView.vala:34 292 | msgid "For the best protection, always use a VPN." 293 | msgstr "Para la mejor protección, utilice siempre una VPN." 294 | 295 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in another menu 296 | #: src/Widgets/BrowserButton.vala:50 297 | msgid "Open page in…" 298 | msgstr "Abrir la página en…" 299 | 300 | #: src/Widgets/BrowserButton.vala:62 301 | msgid "Close Window When Opening Externally" 302 | msgstr "Cerrar ventana al abrir externamente" 303 | 304 | #: src/Widgets/BrowserButton.vala:141 305 | #, c-format 306 | msgid "Open page in %s" 307 | msgstr "Abrir página en %s" 308 | 309 | #: src/Widgets/UrlEntry.vala:39 310 | msgid "Enter a URL or search term" 311 | msgstr "Escriba un URL o un término de búsqueda" 312 | 313 | #: src/Widgets/UrlEntry.vala:185 314 | #, c-format 315 | msgid "Go to \"%s\"" 316 | msgstr "Ir a «%s»" 317 | 318 | #: src/Widgets/UrlEntry.vala:185 319 | #, c-format 320 | msgid "Search for \"%s\"" 321 | msgstr "Buscar «%s»" 322 | 323 | #: src/Widgets/UrlEntry.vala:251 324 | msgid "Popular website" 325 | msgstr "Sitio web popular" 326 | 327 | #: src/Widgets/UrlEntry.vala:284 328 | msgid "Favorite website" 329 | msgstr "Sitio web favorito" 330 | 331 | #: src/Widgets/UrlEntry.vala:723 332 | msgid "Go" 333 | msgstr "Ir" 334 | 335 | #: src/Widgets/UrlEntry.vala:735 336 | msgid "Remove Website from Suggestions" 337 | msgstr "Quitar sitio web de las sugerencias" 338 | 339 | #: src/Widgets/UrlEntry.vala:739 340 | msgid "Add Website to Suggestions" 341 | msgstr "Añadir sitio web a las sugerencias" 342 | 343 | #: src/Widgets/WebView.vala:105 344 | msgid "Open Link in New _Window" 345 | msgstr "Abrir enlace en una _ventana nueva" 346 | -------------------------------------------------------------------------------- /po/nl.po: -------------------------------------------------------------------------------- 1 | # Dutch translations for com.github.cassidyjames.ephemeral package. 2 | # Copyright (C) 2019 THE com.github.cassidyjames.ephemeral'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.cassidyjames.ephemeral package. 4 | # Heimen Stoffels , 2019. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: com.github.cassidyjames.ephemeral\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2020-03-02 14:52-0700\n" 11 | "PO-Revision-Date: 2019-12-02 10:27+0100\n" 12 | "Last-Translator: Quinten Van Damme \n" 13 | "Language-Team: none\n" 14 | "Language: nl\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | 20 | #: src/MainWindow.vala:63 21 | msgid "Undo" 22 | msgstr "Ongedaan maken" 23 | 24 | #: src/MainWindow.vala:77 25 | msgid "Back" 26 | msgstr "Terug" 27 | 28 | #: src/MainWindow.vala:83 29 | msgid "Forward" 30 | msgstr "Vooruit" 31 | 32 | #: src/MainWindow.vala:88 33 | msgid "Reload page" 34 | msgstr "Pagina herladen" 35 | 36 | #: src/MainWindow.vala:93 37 | msgid "Stop loading" 38 | msgstr "Stoppen met laden" 39 | 40 | #: src/MainWindow.vala:105 41 | msgid "Close window and erase history" 42 | msgstr "Venster sluiten en geschiedenis wissen" 43 | 44 | #: src/MainWindow.vala:113 45 | msgid "Menu" 46 | msgstr "Menu" 47 | 48 | #: src/MainWindow.vala:122 49 | msgid "Light content" 50 | msgstr "Lichte inhoud" 51 | 52 | #: src/MainWindow.vala:123 53 | msgid "Dark content" 54 | msgstr "Donkere inhoud" 55 | 56 | #: src/MainWindow.vala:135 57 | msgid "Zoom out" 58 | msgstr "Uitzoomen" 59 | 60 | #: src/MainWindow.vala:142 61 | msgid "Default zoom level" 62 | msgstr "Standaard zoomniveau" 63 | 64 | #: src/MainWindow.vala:149 65 | msgid "Zoom in" 66 | msgstr "Inzoomen" 67 | 68 | #: src/MainWindow.vala:164 69 | msgid "Note: Disabling JavaScript will likely break many sites" 70 | msgstr "Let op zonder JavaScript werken veel sites mogelijk niet goed" 71 | 72 | #: src/MainWindow.vala:180 73 | msgid "JavaScript" 74 | msgstr "JavaScript" 75 | 76 | #: src/MainWindow.vala:194 77 | msgid "Open New Window" 78 | msgstr "Nieuw venster openen" 79 | 80 | #: src/MainWindow.vala:212 81 | msgid "Quit Ephemeral" 82 | msgstr "Ephemeral afsluiten" 83 | 84 | #: src/MainWindow.vala:217 85 | msgid "Close all windows and erase all history" 86 | msgstr "Alle vensters sluiten en alle geschiedenis wissen" 87 | 88 | #: src/MainWindow.vala:238 89 | msgid "Startpage.com Search" 90 | msgstr "Startpage.com-zoekmachine" 91 | 92 | #: src/MainWindow.vala:241 93 | msgid "DuckDuckGo Search" 94 | msgstr "DuckDuckGo-zoekmachine" 95 | 96 | #: src/MainWindow.vala:246 97 | msgid "Custom Search Engine…" 98 | msgstr "Aangepaste zoekmachine…" 99 | 100 | #: src/MainWindow.vala:250 101 | msgid "Reset Preferences…" 102 | msgstr "Standaardwaarden terugzetten…" 103 | 104 | #: src/MainWindow.vala:682 105 | msgid "Suggestion removed" 106 | msgstr "Suggestie verwijderd" 107 | 108 | #: src/MainWindow.vala:686 109 | msgid "Suggestion added" 110 | msgstr "Suggestie toegevoegd" 111 | 112 | #: src/Dialogs/ExternalDialog.vala:28 src/Dialogs/ExternalDialog.vala:30 113 | msgid "Open Link Externally?" 114 | msgstr "Link extern openen?" 115 | 116 | #: src/Dialogs/ExternalDialog.vala:37 117 | #, c-format 118 | msgid "This page is trying to open an app for %s links." 119 | msgstr "" 120 | "Deze pagina probeert een toepassing te openen voor links van het type %s." 122 | 123 | #: src/Dialogs/ExternalDialog.vala:39 124 | msgid "This page is trying to open an app." 125 | msgstr "Deze pagina probeert een app te openen." 126 | 127 | #: src/Dialogs/ExternalDialog.vala:42 128 | msgid "Your data may not be kept private by the opened app." 129 | msgstr "Je gegevens worden mogelijk niet geheimgehouden door de geopende app." 130 | 131 | #: src/Dialogs/ExternalDialog.vala:47 132 | msgid "Don’t Open" 133 | msgstr "Niet openen" 134 | 135 | #: src/Dialogs/ExternalDialog.vala:50 136 | msgid "Open Anyway" 137 | msgstr "Tóch openen" 138 | 139 | #: src/Dialogs/PreferencesDialog.vala:26 src/Dialogs/PreferencesDialog.vala:28 140 | msgid "Reset Preferences?" 141 | msgstr "Standaardwaarden herstellen?" 142 | 143 | #: src/Dialogs/PreferencesDialog.vala:27 144 | msgid "" 145 | "All added website suggestions will be removed. Any dismissed or remembered " 146 | "alerts, warnings, etc. will be displayed again the next time Ephemeral is " 147 | "opened." 148 | msgstr "" 149 | "Alle toegevoegde websites worden verwijderd. Verworpen of onthouden " 150 | "meldingen, waarschuwingen etc. worden opnieuw getoond zodra je Ephemeral " 151 | "weer opent." 152 | 153 | #: src/Dialogs/PreferencesDialog.vala:33 154 | msgid "Never Mind" 155 | msgstr "Tóch niet" 156 | 157 | #: src/Dialogs/PreferencesDialog.vala:36 158 | msgid "Reset Preferences" 159 | msgstr "Herstellen" 160 | 161 | #: src/Dialogs/ScriptDialog.vala:27 src/Dialogs/ScriptDialog.vala:28 162 | msgid "Message From Page" 163 | msgstr "Bericht van pagina" 164 | 165 | #: src/Dialogs/ScriptDialog.vala:39 src/Dialogs/ScriptDialog.vala:47 166 | #: src/Dialogs/ScriptDialog.vala:69 167 | msgid "Close" 168 | msgstr "Sluiten" 169 | 170 | #: src/Dialogs/ScriptDialog.vala:49 src/Dialogs/ScriptDialog.vala:71 171 | msgid "Confirm" 172 | msgstr "Bevestigen" 173 | 174 | #: src/InfoBars/DefaultInfoBar.vala:31 175 | msgid "Make privacy a habit." 176 | msgstr "Geef privacy prioriteit." 177 | 178 | #: src/InfoBars/DefaultInfoBar.vala:32 179 | msgid "Set Ephemeral as your default browser?" 180 | msgstr "Wil je Ephemeral instellen als je standaardbrowser?" 181 | 182 | #. TRANSLATORS: Where you change default apps on elementary OS. Be very careful with the markup! 183 | #: src/InfoBars/DefaultInfoBar.vala:35 184 | msgid "" 185 | "You can always change this later in System Settings → " 186 | "Applications." 187 | msgstr "" 188 | "Je kunt dit achteraf altijd wijzigen via Systeeminstellingen → " 189 | "Toepassingen." 190 | 191 | #: src/InfoBars/DefaultInfoBar.vala:46 192 | msgid "Never Ask Again" 193 | msgstr "Nooit meer vragen" 194 | 195 | #: src/InfoBars/DefaultInfoBar.vala:52 196 | msgid "Set as Default" 197 | msgstr "Instellen als standaard" 198 | 199 | #: src/InfoBars/NativeInfoBar.vala:31 200 | msgid "Ephemeral is a paid app designed for elementary OS." 201 | msgstr "Ephemeral is een betaalde app, ontworpen voor elementary OS." 202 | 203 | #: src/InfoBars/NativeInfoBar.vala:32 204 | msgid "" 205 | "Some features may not work properly when running on another OS or desktop " 206 | "environment." 207 | msgstr "" 208 | "Sommige functies werken mogelijk niet goed als je de browser open op een " 209 | "ander besturingssysteem of werkomgeving." 210 | 211 | #: src/InfoBars/NativeInfoBar.vala:33 212 | msgid "" 213 | "Ephemeral is also typically funded by elementary AppCenter purchases. " 214 | "Consider donating if you find value in using Ephemeral on other platforms." 215 | msgstr "" 216 | "Ephemeral wordt doorgaans gefinancierd door aankopen via elementary's app-" 217 | "winkel. Als je Ephemeral gebruikt op een ander systeem en prettig vindt, " 218 | "overweeg dan een donatie." 219 | 220 | #: src/InfoBars/NativeInfoBar.vala:41 src/InfoBars/PaidInfoBar.vala:43 221 | msgid "Dismiss" 222 | msgstr "Verwerpen" 223 | 224 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 225 | #: src/InfoBars/NativeInfoBar.vala:46 226 | msgid "Donate…" 227 | msgstr "Doneren…" 228 | 229 | #: src/InfoBars/NetworkInfoBar.vala:31 230 | msgid "Network Not Available." 231 | msgstr "Geen netwerkverbinding beschikbaar." 232 | 233 | #: src/InfoBars/NetworkInfoBar.vala:32 234 | msgid "Connect to the Internet to browse the Web." 235 | msgstr "Maak verbinding met het internet om te kunnen surfen." 236 | 237 | #: src/InfoBars/NetworkInfoBar.vala:38 238 | msgid "Never Warn Again" 239 | msgstr "Nooit meer waarschuwen" 240 | 241 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 242 | #: src/InfoBars/NetworkInfoBar.vala:45 243 | msgid "Network Settings…" 244 | msgstr "Netwerkinstellingen…" 245 | 246 | #. TRANSLATORS: This is an emphasized part at the beginning of a complete sentence, no terminating punctuation 247 | #: src/InfoBars/PaidInfoBar.vala:32 248 | msgid "Ephemeral is a paid app" 249 | msgstr "Ephemeral is een betaalde app" 250 | 251 | #. TRANSLATORS: This continues the previous string, with terminating punctuation 252 | #: src/InfoBars/PaidInfoBar.vala:34 253 | msgid "funded by AppCenter purchases." 254 | msgstr "gefinancierd door aankopen via elementary's app-winkel." 255 | 256 | #: src/InfoBars/PaidInfoBar.vala:35 257 | msgid "Consider purchasing or funding if you find value in using Ephemeral." 258 | msgstr "" 259 | "Als je Ephemeral gebruikt en prettig vindt, overweeg dan de browser aan te " 260 | "schaffen of te doneren." 261 | 262 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 263 | #: src/InfoBars/PaidInfoBar.vala:50 264 | msgid "Purchase or Fund…" 265 | msgstr "Aanschaffen of doneren…" 266 | 267 | #: src/Views/ErrorView.vala:28 268 | msgid "Whoops" 269 | msgstr "Oeps" 270 | 271 | #: src/Views/ErrorView.vala:31 272 | msgid "Could not display the page." 273 | msgstr "De pagina kan niet worden getoond." 274 | 275 | #: src/Views/WelcomeView.vala:31 276 | msgid "The always-incognito web browser" 277 | msgstr "De webbrowser waarmee je altijd privé surft" 278 | 279 | #: src/Views/WelcomeView.vala:33 280 | msgid "" 281 | "Remember, Ephemeral and any browser’s incognito or private mode can only do " 282 | "so much: they mitigate some tracking and don’t store data on your device, " 283 | "but they won’t stop your ISP, government, or determined websites from " 284 | "tracking you." 285 | msgstr "" 286 | "Let op: Ephemeral en andere browsers met een privé-/incognitomodus kunnen " 287 | "niet alles voorkomen. De meeste manieren van volgen worden vermeden en er " 288 | "wordt niks opgeslagen op je apparaat, maar je provider, overheid of bepaalde " 289 | "daarvoor bestemde websites kunnen je nog steeds volgen." 290 | 291 | #: src/Views/WelcomeView.vala:34 292 | msgid "For the best protection, always use a VPN." 293 | msgstr "Voor de beste bescherming, gebruik altijd een VPN." 294 | 295 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in another menu 296 | #: src/Widgets/BrowserButton.vala:50 297 | msgid "Open page in…" 298 | msgstr "Pagina openen met…" 299 | 300 | #: src/Widgets/BrowserButton.vala:62 301 | msgid "Close Window When Opening Externally" 302 | msgstr "Venster sluiten als pagina extern wordt geopend" 303 | 304 | #: src/Widgets/BrowserButton.vala:141 305 | #, c-format 306 | msgid "Open page in %s" 307 | msgstr "Pagina openen met %s" 308 | 309 | #: src/Widgets/UrlEntry.vala:39 310 | msgid "Enter a URL or search term" 311 | msgstr "Voer een URL of zoekterm in" 312 | 313 | #: src/Widgets/UrlEntry.vala:185 314 | #, c-format 315 | msgid "Go to \"%s\"" 316 | msgstr "Ga naar \"%s\"" 317 | 318 | #: src/Widgets/UrlEntry.vala:185 319 | #, c-format 320 | msgid "Search for \"%s\"" 321 | msgstr "Zoeken naar \"%s\"" 322 | 323 | #: src/Widgets/UrlEntry.vala:251 324 | msgid "Popular website" 325 | msgstr "Populaire website" 326 | 327 | #: src/Widgets/UrlEntry.vala:284 328 | msgid "Favorite website" 329 | msgstr "Favoriete website" 330 | 331 | #: src/Widgets/UrlEntry.vala:723 332 | msgid "Go" 333 | msgstr "Gaan" 334 | 335 | #: src/Widgets/UrlEntry.vala:735 336 | msgid "Remove Website from Suggestions" 337 | msgstr "Website verwijderen uit suggesties" 338 | 339 | #: src/Widgets/UrlEntry.vala:739 340 | msgid "Add Website to Suggestions" 341 | msgstr "Website toevoegen aan suggesties" 342 | 343 | #: src/Widgets/WebView.vala:105 344 | msgid "Open Link in New _Window" 345 | msgstr "Link openen in nieu_w venster" 346 | -------------------------------------------------------------------------------- /po/it.po: -------------------------------------------------------------------------------- 1 | # Italian translations for com.github.cassidyjames.ephemeral package. 2 | # Copyright (C) 2019 THE com.github.cassidyjames.ephemeral'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.cassidyjames.ephemeral package. 4 | # Meliurwen , 2019. 5 | # Mirko Brombin , 2020. 6 | # 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: com.github.cassidyjames.ephemeral\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2020-03-02 14:52-0700\n" 12 | "PO-Revision-Date: 2020-04-24 16:02+0200\n" 13 | "Last-Translator: Mirko Brombin \n" 14 | "Language-Team: none\n" 15 | "Language: it\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 20 | "X-Generator: Poedit 2.0.6\n" 21 | 22 | #: src/MainWindow.vala:63 23 | msgid "Undo" 24 | msgstr "Avanti" 25 | 26 | #: src/MainWindow.vala:77 27 | msgid "Back" 28 | msgstr "Indietro" 29 | 30 | #: src/MainWindow.vala:83 31 | msgid "Forward" 32 | msgstr "Avanti" 33 | 34 | #: src/MainWindow.vala:88 35 | msgid "Reload page" 36 | msgstr "Ricarica pagina" 37 | 38 | #: src/MainWindow.vala:93 39 | msgid "Stop loading" 40 | msgstr "Interrompi caricamento" 41 | 42 | #: src/MainWindow.vala:105 43 | msgid "Close window and erase history" 44 | msgstr "Chiudi la finestra ed elimina la cronologia" 45 | 46 | #: src/MainWindow.vala:113 47 | msgid "Menu" 48 | msgstr "Menu" 49 | 50 | #: src/MainWindow.vala:122 51 | msgid "Light content" 52 | msgstr "Contenuto chiaro" 53 | 54 | #: src/MainWindow.vala:123 55 | msgid "Dark content" 56 | msgstr "Contenuto scuro" 57 | 58 | #: src/MainWindow.vala:135 59 | msgid "Zoom out" 60 | msgstr "Rimpicciolisci" 61 | 62 | #: src/MainWindow.vala:142 63 | msgid "Default zoom level" 64 | msgstr "Livello di ingrandimento predefinito" 65 | 66 | #: src/MainWindow.vala:149 67 | msgid "Zoom in" 68 | msgstr "Ingrandisci" 69 | 70 | #: src/MainWindow.vala:164 71 | msgid "Note: Disabling JavaScript will likely break many sites" 72 | msgstr "Nota: Disabilitare JavaScript probabilmente romperà molti siti" 73 | 74 | #: src/MainWindow.vala:180 75 | msgid "JavaScript" 76 | msgstr "JavaScript" 77 | 78 | #: src/MainWindow.vala:194 79 | msgid "Open New Window" 80 | msgstr "Apri Nuova Finestra" 81 | 82 | #: src/MainWindow.vala:212 83 | msgid "Quit Ephemeral" 84 | msgstr "Esci da Ephemeral" 85 | 86 | #: src/MainWindow.vala:217 87 | msgid "Close all windows and erase all history" 88 | msgstr "Chiudi tutte le finestre ed elimina l'intera cronologia" 89 | 90 | #: src/MainWindow.vala:238 91 | msgid "Startpage.com Search" 92 | msgstr "Cerca con Startpage.com" 93 | 94 | #: src/MainWindow.vala:241 95 | msgid "DuckDuckGo Search" 96 | msgstr "Cerca con DuckDuckGo" 97 | 98 | #: src/MainWindow.vala:246 99 | msgid "Custom Search Engine…" 100 | msgstr "Motore di Ricerca Personalizzato…" 101 | 102 | #: src/MainWindow.vala:250 103 | msgid "Reset Preferences…" 104 | msgstr "Ripristina preferenze…" 105 | 106 | #: src/MainWindow.vala:682 107 | msgid "Suggestion removed" 108 | msgstr "Rimossi suggerimenti" 109 | 110 | #: src/MainWindow.vala:686 111 | msgid "Suggestion added" 112 | msgstr "Aggiunti suggerimenti" 113 | 114 | #: src/Dialogs/ExternalDialog.vala:28 src/Dialogs/ExternalDialog.vala:30 115 | msgid "Open Link Externally?" 116 | msgstr "Aprire il Link Esternamente?" 117 | 118 | #: src/Dialogs/ExternalDialog.vala:37 119 | #, c-format 120 | msgid "This page is trying to open an app for %s links." 121 | msgstr "" 122 | "Questa pagina sta cercando di aprire un'app per i collegamenti %s." 123 | 124 | #: src/Dialogs/ExternalDialog.vala:39 125 | msgid "This page is trying to open an app." 126 | msgstr "Questa pagina sta cercando di aprire un'app." 127 | 128 | #: src/Dialogs/ExternalDialog.vala:42 129 | msgid "Your data may not be kept private by the opened app." 130 | msgstr "I tuoi dati potrebbero non rimanere privati dall'app aperta." 131 | 132 | #: src/Dialogs/ExternalDialog.vala:47 133 | msgid "Don’t Open" 134 | msgstr "Non Aprire" 135 | 136 | #: src/Dialogs/ExternalDialog.vala:50 137 | msgid "Open Anyway" 138 | msgstr "Apri Comunque" 139 | 140 | #: src/Dialogs/PreferencesDialog.vala:26 src/Dialogs/PreferencesDialog.vala:28 141 | msgid "Reset Preferences?" 142 | msgstr "Ripristinare le Preferenze?" 143 | 144 | #: src/Dialogs/PreferencesDialog.vala:27 145 | msgid "" 146 | "All added website suggestions will be removed. Any dismissed or remembered " 147 | "alerts, warnings, etc. will be displayed again the next time Ephemeral is " 148 | "opened." 149 | msgstr "" 150 | "Tutti i suggerimenti sui siti web aggiunti verranno rimossi. Eventuali " 151 | "avvisi ignorati o rimossi, avvertimenti, ecc... verranno visualizzati " 152 | "nuovamente alla successiva apertura di Ephemeral." 153 | 154 | #: src/Dialogs/PreferencesDialog.vala:33 155 | msgid "Never Mind" 156 | msgstr "Annulla" 157 | 158 | #: src/Dialogs/PreferencesDialog.vala:36 159 | msgid "Reset Preferences" 160 | msgstr "Ripristina Preferenze" 161 | 162 | #: src/Dialogs/ScriptDialog.vala:27 src/Dialogs/ScriptDialog.vala:28 163 | msgid "Message From Page" 164 | msgstr "Messaggio Dalla Pagina" 165 | 166 | #: src/Dialogs/ScriptDialog.vala:39 src/Dialogs/ScriptDialog.vala:47 167 | #: src/Dialogs/ScriptDialog.vala:69 168 | msgid "Close" 169 | msgstr "Chiudi" 170 | 171 | #: src/Dialogs/ScriptDialog.vala:49 src/Dialogs/ScriptDialog.vala:71 172 | msgid "Confirm" 173 | msgstr "Conferma" 174 | 175 | #: src/InfoBars/DefaultInfoBar.vala:31 176 | msgid "Make privacy a habit." 177 | msgstr "Rendi la privacy un'abitune." 178 | 179 | #: src/InfoBars/DefaultInfoBar.vala:32 180 | msgid "Set Ephemeral as your default browser?" 181 | msgstr "Impostare Ephemeral come browser predefinito?" 182 | 183 | #. TRANSLATORS: Where you change default apps on elementary OS. Be very careful with the markup! 184 | #: src/InfoBars/DefaultInfoBar.vala:35 185 | msgid "" 186 | "You can always change this later in System Settings → " 187 | "Applications." 188 | msgstr "" 189 | "Puoi sempre cambiare questa cosa dopo in Impostazioni di Sistema → " 190 | "Applicazioni." 191 | 192 | #: src/InfoBars/DefaultInfoBar.vala:46 193 | msgid "Never Ask Again" 194 | msgstr "Non Chiedere Più" 195 | 196 | #: src/InfoBars/DefaultInfoBar.vala:52 197 | msgid "Set as Default" 198 | msgstr "Imposta come Predefinito" 199 | 200 | #: src/InfoBars/NativeInfoBar.vala:31 201 | msgid "Ephemeral is a paid app designed for elementary OS." 202 | msgstr "Ephemeral è un'app a pagamento progettata per elementary OS." 203 | 204 | #: src/InfoBars/NativeInfoBar.vala:32 205 | msgid "" 206 | "Some features may not work properly when running on another OS or desktop " 207 | "environment." 208 | msgstr "" 209 | "Alcune caratteristiche potrebbero non funzionare correttamente quando " 210 | "eseguito su un altro sistema operativo o ambiente grafico." 211 | 212 | #: src/InfoBars/NativeInfoBar.vala:33 213 | msgid "" 214 | "Ephemeral is also typically funded by elementary AppCenter purchases. " 215 | "Consider donating if you find value in using Ephemeral on other platforms." 216 | msgstr "" 217 | "Ephemeral è anche tipicamente finanziato dagli acquisti dell'AppCenter di " 218 | "elementary. Prendi in considerazione la possibilità di donare se trovi " 219 | "valore nell'uso di Ephemeral su altre piattaforme." 220 | 221 | #: src/InfoBars/NativeInfoBar.vala:41 src/InfoBars/PaidInfoBar.vala:43 222 | msgid "Dismiss" 223 | msgstr "Scarta" 224 | 225 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 226 | #: src/InfoBars/NativeInfoBar.vala:46 227 | msgid "Donate…" 228 | msgstr "Fai una donazione…" 229 | 230 | #: src/InfoBars/NetworkInfoBar.vala:31 231 | msgid "Network Not Available." 232 | msgstr "Rete Non Disponibile." 233 | 234 | #: src/InfoBars/NetworkInfoBar.vala:32 235 | msgid "Connect to the Internet to browse the Web." 236 | msgstr "Connettiti ad Internet per navigare il Web." 237 | 238 | #: src/InfoBars/NetworkInfoBar.vala:38 239 | msgid "Never Warn Again" 240 | msgstr "Non Avvertire Più" 241 | 242 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 243 | #: src/InfoBars/NetworkInfoBar.vala:45 244 | msgid "Network Settings…" 245 | msgstr "Impostazioni di Rete…" 246 | 247 | #. TRANSLATORS: This is an emphasized part at the beginning of a complete sentence, no terminating punctuation 248 | #: src/InfoBars/PaidInfoBar.vala:32 249 | msgid "Ephemeral is a paid app" 250 | msgstr "Ephemeral è un'app a pagamento" 251 | 252 | #. TRANSLATORS: This continues the previous string, with terminating punctuation 253 | #: src/InfoBars/PaidInfoBar.vala:34 254 | msgid "funded by AppCenter purchases." 255 | msgstr "finanziata dagli acquisti dell'AppCenter." 256 | 257 | #: src/InfoBars/PaidInfoBar.vala:35 258 | msgid "Consider purchasing or funding if you find value in using Ephemeral." 259 | msgstr "" 260 | "Prendi in considerazione la possibilità di donare se trovi valore nell'uso " 261 | "di Ephemeral." 262 | 263 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 264 | #: src/InfoBars/PaidInfoBar.vala:50 265 | msgid "Purchase or Fund…" 266 | msgstr "Acquista o Finanzia…" 267 | 268 | #: src/Views/ErrorView.vala:28 269 | msgid "Whoops" 270 | msgstr "Ops" 271 | 272 | #: src/Views/ErrorView.vala:31 273 | msgid "Could not display the page." 274 | msgstr "Impossibile mostrare la pagina." 275 | 276 | #: src/Views/WelcomeView.vala:31 277 | msgid "The always-incognito web browser" 278 | msgstr "Il browser web sempre in modalità in incognito" 279 | 280 | #: src/Views/WelcomeView.vala:33 281 | msgid "" 282 | "Remember, Ephemeral and any browser’s incognito or private mode can only do " 283 | "so much: they mitigate some tracking and don’t store data on your device, " 284 | "but they won’t stop your ISP, government, or determined websites from " 285 | "tracking you." 286 | msgstr "" 287 | "Ricorda, Ephemeral ed ogni altro browser in modalità in incognito o privata " 288 | "può fare solo questo: attenua il tracciamento e non memorizza i dati sul tuo " 289 | "dispositivo, ma non impedisce al tuo ISP, al tuo governo o a determinati " 290 | "siti di tracciarti." 291 | 292 | #: src/Views/WelcomeView.vala:34 293 | msgid "For the best protection, always use a VPN." 294 | msgstr "Per una protezione migliore utilizza sempre una VPN." 295 | 296 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in another menu 297 | #: src/Widgets/BrowserButton.vala:50 298 | msgid "Open page in…" 299 | msgstr "Apri pagina in…" 300 | 301 | #: src/Widgets/BrowserButton.vala:62 302 | msgid "Close Window When Opening Externally" 303 | msgstr "Chiudi la Finestra Quando Apri Esternamente" 304 | 305 | #: src/Widgets/BrowserButton.vala:141 306 | #, c-format 307 | msgid "Open page in %s" 308 | msgstr "Apri pagina in %s" 309 | 310 | #: src/Widgets/UrlEntry.vala:39 311 | msgid "Enter a URL or search term" 312 | msgstr "Inserisci un URL o un termine di ricerca" 313 | 314 | #: src/Widgets/UrlEntry.vala:185 315 | #, c-format 316 | msgid "Go to \"%s\"" 317 | msgstr "Vai su \"%s\"" 318 | 319 | #: src/Widgets/UrlEntry.vala:185 320 | #, c-format 321 | msgid "Search for \"%s\"" 322 | msgstr "Cerca \"%s\"" 323 | 324 | #: src/Widgets/UrlEntry.vala:251 325 | msgid "Popular website" 326 | msgstr "Sito popolare" 327 | 328 | #: src/Widgets/UrlEntry.vala:284 329 | msgid "Favorite website" 330 | msgstr "Sito preferito" 331 | 332 | #: src/Widgets/UrlEntry.vala:723 333 | msgid "Go" 334 | msgstr "Vai" 335 | 336 | #: src/Widgets/UrlEntry.vala:735 337 | msgid "Remove Website from Suggestions" 338 | msgstr "Rimuovi il Sito dai Suggerimenti" 339 | 340 | #: src/Widgets/UrlEntry.vala:739 341 | msgid "Add Website to Suggestions" 342 | msgstr "Aggiungi il Sito ai Suggerimenti" 343 | 344 | #: src/Widgets/WebView.vala:105 345 | msgid "Open Link in New _Window" 346 | msgstr "Apri Link in una Nuova _Finestra" 347 | -------------------------------------------------------------------------------- /po/fr.po: -------------------------------------------------------------------------------- 1 | # French translations for com.github.cassidyjames.ephemeral package. 2 | # Copyright (C) 2019 THE com.github.cassidyjames.ephemeral'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.cassidyjames.ephemeral package. 4 | # Nathan Bonnemains (@NathanBnm), 2019. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: com.github.cassidyjames.ephemeral\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2020-03-02 14:52-0700\n" 11 | "PO-Revision-Date: 2019-10-01 11:15+0100\n" 12 | "Last-Translator: Nathan Bonnemains (@NathanBnm)\n" 13 | "Language-Team: Français\n" 14 | "Language: fr\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" 19 | 20 | #: src/MainWindow.vala:63 21 | msgid "Undo" 22 | msgstr "Annuler" 23 | 24 | #: src/MainWindow.vala:77 25 | msgid "Back" 26 | msgstr "Précédent" 27 | 28 | #: src/MainWindow.vala:83 29 | msgid "Forward" 30 | msgstr "Suivant" 31 | 32 | #: src/MainWindow.vala:88 33 | msgid "Reload page" 34 | msgstr "Recharger la page" 35 | 36 | #: src/MainWindow.vala:93 37 | msgid "Stop loading" 38 | msgstr "Arrêter le chargement" 39 | 40 | #: src/MainWindow.vala:105 41 | msgid "Close window and erase history" 42 | msgstr "Fermer la fenêtre et effacer l'historique" 43 | 44 | #: src/MainWindow.vala:113 45 | msgid "Menu" 46 | msgstr "Menu" 47 | 48 | #: src/MainWindow.vala:122 49 | msgid "Light content" 50 | msgstr "Contenu clair" 51 | 52 | #: src/MainWindow.vala:123 53 | msgid "Dark content" 54 | msgstr "Contenu sombre" 55 | 56 | #: src/MainWindow.vala:135 57 | msgid "Zoom out" 58 | msgstr "Zoom arrière" 59 | 60 | #: src/MainWindow.vala:142 61 | msgid "Default zoom level" 62 | msgstr "Niveau de zoom par défaut" 63 | 64 | #: src/MainWindow.vala:149 65 | msgid "Zoom in" 66 | msgstr "Zoom avant" 67 | 68 | #: src/MainWindow.vala:164 69 | msgid "Note: Disabling JavaScript will likely break many sites" 70 | msgstr "" 71 | "Remarque : Désactiver JavaScript va probablement empêcher de nombreux " 72 | "sites de fonctionner correctement" 73 | 74 | #: src/MainWindow.vala:180 75 | msgid "JavaScript" 76 | msgstr "JavaScript" 77 | 78 | #: src/MainWindow.vala:194 79 | msgid "Open New Window" 80 | msgstr "Ouvrir une nouvelle fenêtre" 81 | 82 | #: src/MainWindow.vala:212 83 | msgid "Quit Ephemeral" 84 | msgstr "Quitter Ephemeral" 85 | 86 | #: src/MainWindow.vala:217 87 | msgid "Close all windows and erase all history" 88 | msgstr "Fermer toutes les fenêtres et effacez tout l'historique" 89 | 90 | #: src/MainWindow.vala:238 91 | msgid "Startpage.com Search" 92 | msgstr "Recherche sur Startpage.com" 93 | 94 | #: src/MainWindow.vala:241 95 | msgid "DuckDuckGo Search" 96 | msgstr "Recherche sur DuckDuckGo" 97 | 98 | #: src/MainWindow.vala:246 99 | msgid "Custom Search Engine…" 100 | msgstr "Moteur de recherche personnalisé…" 101 | 102 | #: src/MainWindow.vala:250 103 | msgid "Reset Preferences…" 104 | msgstr "Réinitialiser les préférences…" 105 | 106 | #: src/MainWindow.vala:682 107 | msgid "Suggestion removed" 108 | msgstr "Suggestion supprimée" 109 | 110 | #: src/MainWindow.vala:686 111 | msgid "Suggestion added" 112 | msgstr "Suggestion ajoutée" 113 | 114 | #: src/Dialogs/ExternalDialog.vala:28 src/Dialogs/ExternalDialog.vala:30 115 | msgid "Open Link Externally?" 116 | msgstr "Ouvrir en externe ?" 117 | 118 | #: src/Dialogs/ExternalDialog.vala:37 119 | #, c-format 120 | msgid "This page is trying to open an app for %s links." 121 | msgstr "Cette page tente d'ouvrir une application pour les liens %s." 122 | 123 | #: src/Dialogs/ExternalDialog.vala:39 124 | msgid "This page is trying to open an app." 125 | msgstr "Cette page tente d'ouvrir une application." 126 | 127 | #: src/Dialogs/ExternalDialog.vala:42 128 | msgid "Your data may not be kept private by the opened app." 129 | msgstr "" 130 | "Vos données peuvent ne pas être gardées privées par l'application ouverte." 131 | 132 | #: src/Dialogs/ExternalDialog.vala:47 133 | msgid "Don’t Open" 134 | msgstr "Ne pas ouvrir" 135 | 136 | #: src/Dialogs/ExternalDialog.vala:50 137 | msgid "Open Anyway" 138 | msgstr "Ouvrir quand même" 139 | 140 | #: src/Dialogs/PreferencesDialog.vala:26 src/Dialogs/PreferencesDialog.vala:28 141 | msgid "Reset Preferences?" 142 | msgstr "Réinitialiser les préférences ?" 143 | 144 | #: src/Dialogs/PreferencesDialog.vala:27 145 | msgid "" 146 | "All added website suggestions will be removed. Any dismissed or remembered " 147 | "alerts, warnings, etc. will be displayed again the next time Ephemeral is " 148 | "opened." 149 | msgstr "" 150 | "Toutes les suggestions de sites ajoutées vont être supprimées. Les alertes, " 151 | "rappels, avertissements, etc. rejetés ou mémorisés s'afficheront à nouveau à " 152 | "la prochaine ouverture d'Ephemeral." 153 | 154 | #: src/Dialogs/PreferencesDialog.vala:33 155 | msgid "Never Mind" 156 | msgstr "En fait non" 157 | 158 | #: src/Dialogs/PreferencesDialog.vala:36 159 | msgid "Reset Preferences" 160 | msgstr "Réinitialiser les préférences" 161 | 162 | #: src/Dialogs/ScriptDialog.vala:27 src/Dialogs/ScriptDialog.vala:28 163 | msgid "Message From Page" 164 | msgstr "Message de la page" 165 | 166 | #: src/Dialogs/ScriptDialog.vala:39 src/Dialogs/ScriptDialog.vala:47 167 | #: src/Dialogs/ScriptDialog.vala:69 168 | msgid "Close" 169 | msgstr "Fermer" 170 | 171 | #: src/Dialogs/ScriptDialog.vala:49 src/Dialogs/ScriptDialog.vala:71 172 | msgid "Confirm" 173 | msgstr "Confirmer" 174 | 175 | #: src/InfoBars/DefaultInfoBar.vala:31 176 | msgid "Make privacy a habit." 177 | msgstr "Faites de la confidentialité une habitude." 178 | 179 | #: src/InfoBars/DefaultInfoBar.vala:32 180 | msgid "Set Ephemeral as your default browser?" 181 | msgstr "Définir Ephemeral comme navigateur par défaut ?" 182 | 183 | #. TRANSLATORS: Where you change default apps on elementary OS. Be very careful with the markup! 184 | #: src/InfoBars/DefaultInfoBar.vala:35 185 | msgid "" 186 | "You can always change this later in System Settings → " 187 | "Applications." 188 | msgstr "" 189 | "Vous pouvez toujours changer ceci plus tard dans Paramètres du systèmeApplications." 191 | 192 | #: src/InfoBars/DefaultInfoBar.vala:46 193 | msgid "Never Ask Again" 194 | msgstr "Ne plus me demander" 195 | 196 | #: src/InfoBars/DefaultInfoBar.vala:52 197 | msgid "Set as Default" 198 | msgstr "Définir par défaut" 199 | 200 | #: src/InfoBars/NativeInfoBar.vala:31 201 | msgid "Ephemeral is a paid app designed for elementary OS." 202 | msgstr "Ephemeral est une application payante conçue pour elementary OS." 203 | 204 | #: src/InfoBars/NativeInfoBar.vala:32 205 | msgid "" 206 | "Some features may not work properly when running on another OS or desktop " 207 | "environment." 208 | msgstr "" 209 | "Certaines fonctionnalités pourraient ne pas fonctionner correctement sur un " 210 | "autre système d'exploitation ou environnement de bureau." 211 | 212 | #: src/InfoBars/NativeInfoBar.vala:33 213 | msgid "" 214 | "Ephemeral is also typically funded by elementary AppCenter purchases. " 215 | "Consider donating if you find value in using Ephemeral on other platforms." 216 | msgstr "" 217 | "Ephemeral est aussi financé par les achats dans le Centre d'Applications " 218 | "d'elementary. Envisagez de faire un don si vous trouvez utile d'utiliser " 219 | "Ephemeral sur d'autres plateformes." 220 | 221 | #: src/InfoBars/NativeInfoBar.vala:41 src/InfoBars/PaidInfoBar.vala:43 222 | msgid "Dismiss" 223 | msgstr "Masquer" 224 | 225 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 226 | #: src/InfoBars/NativeInfoBar.vala:46 227 | msgid "Donate…" 228 | msgstr "Faire un don…" 229 | 230 | #: src/InfoBars/NetworkInfoBar.vala:31 231 | msgid "Network Not Available." 232 | msgstr "Réseau non disponible" 233 | 234 | #: src/InfoBars/NetworkInfoBar.vala:32 235 | msgid "Connect to the Internet to browse the Web." 236 | msgstr "Connectez-vous à Internet pour naviguer sur le Web." 237 | 238 | #: src/InfoBars/NetworkInfoBar.vala:38 239 | msgid "Never Warn Again" 240 | msgstr "Ne plus m'avertir" 241 | 242 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 243 | #: src/InfoBars/NetworkInfoBar.vala:45 244 | msgid "Network Settings…" 245 | msgstr "Paramètres réseau…" 246 | 247 | #. TRANSLATORS: This is an emphasized part at the beginning of a complete sentence, no terminating punctuation 248 | #: src/InfoBars/PaidInfoBar.vala:32 249 | msgid "Ephemeral is a paid app" 250 | msgstr "Ephemeral est une application payante" 251 | 252 | #. TRANSLATORS: This continues the previous string, with terminating punctuation 253 | #: src/InfoBars/PaidInfoBar.vala:34 254 | msgid "funded by AppCenter purchases." 255 | msgstr "financée par les achats dans le Centre d'Applications." 256 | 257 | #: src/InfoBars/PaidInfoBar.vala:35 258 | msgid "Consider purchasing or funding if you find value in using Ephemeral." 259 | msgstr "Envisagez de faire un don si vous trouvez utile d'utiliser Ephemeral." 260 | 261 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in a new window 262 | #: src/InfoBars/PaidInfoBar.vala:50 263 | msgid "Purchase or Fund…" 264 | msgstr "Acheter ou finacer…" 265 | 266 | #: src/Views/ErrorView.vala:28 267 | msgid "Whoops" 268 | msgstr "Oups" 269 | 270 | #: src/Views/ErrorView.vala:31 271 | msgid "Could not display the page." 272 | msgstr "Impossible d'afficher cette page." 273 | 274 | #: src/Views/WelcomeView.vala:31 275 | msgid "The always-incognito web browser" 276 | msgstr "Le navigateur web toujours incognito" 277 | 278 | #: src/Views/WelcomeView.vala:33 279 | msgid "" 280 | "Remember, Ephemeral and any browser’s incognito or private mode can only do " 281 | "so much: they mitigate some tracking and don’t store data on your device, " 282 | "but they won’t stop your ISP, government, or determined websites from " 283 | "tracking you." 284 | msgstr "" 285 | "N'oubliez pas qu'Ephemeral et le mode incognito ou privé de n'importe quel " 286 | "navigateur ne peuvent pas faire grand-chose : ils atténuent le suivi et ne " 287 | "stockent pas de données sur votre appareil, mais ils n'empêchent pas votre " 288 | "FAI, le gouvernement ou des sites web déterminés de vous suivre." 289 | 290 | #: src/Views/WelcomeView.vala:34 291 | msgid "For the best protection, always use a VPN." 292 | msgstr "Pour une protection optimale, utilisez toujours un VPN." 293 | 294 | #. TRANSLATORS: Includes an ellipsis (…) in English to signify the action will be performed in another menu 295 | #: src/Widgets/BrowserButton.vala:50 296 | msgid "Open page in…" 297 | msgstr "Ouvrir la page dans…" 298 | 299 | #: src/Widgets/BrowserButton.vala:62 300 | msgid "Close Window When Opening Externally" 301 | msgstr "Fermer la fenêtre lors de l'ouverture en externe" 302 | 303 | #: src/Widgets/BrowserButton.vala:141 304 | #, c-format 305 | msgid "Open page in %s" 306 | msgstr "Ouvrir la page dans %s" 307 | 308 | #: src/Widgets/UrlEntry.vala:39 309 | msgid "Enter a URL or search term" 310 | msgstr "Entrez un URL ou cherchez quelque chose" 311 | 312 | #: src/Widgets/UrlEntry.vala:185 313 | #, c-format 314 | msgid "Go to \"%s\"" 315 | msgstr "Aller vers « %s »" 316 | 317 | #: src/Widgets/UrlEntry.vala:185 318 | #, c-format 319 | msgid "Search for \"%s\"" 320 | msgstr "Rechercher pour « %s »" 321 | 322 | #: src/Widgets/UrlEntry.vala:251 323 | msgid "Popular website" 324 | msgstr "Sites populaires" 325 | 326 | #: src/Widgets/UrlEntry.vala:284 327 | msgid "Favorite website" 328 | msgstr "Sites favoris" 329 | 330 | #: src/Widgets/UrlEntry.vala:723 331 | msgid "Go" 332 | msgstr "Rechercher" 333 | 334 | #: src/Widgets/UrlEntry.vala:735 335 | msgid "Remove Website from Suggestions" 336 | msgstr "Supprimer le site Web des Suggestions" 337 | 338 | #: src/Widgets/UrlEntry.vala:739 339 | msgid "Add Website to Suggestions" 340 | msgstr "Ajouter le site Web aux Suggestions" 341 | 342 | #: src/Widgets/WebView.vala:105 343 | msgid "Open Link in New _Window" 344 | msgstr "Ouvrir le lien dans une une nouvelle fenêtre" 345 | --------------------------------------------------------------------------------