From 2cf590a0620160647cfbf8408dbfc108bbbdf55c Mon Sep 17 00:00:00 2001 From: James Westman Date: Wed, 29 Jan 2020 15:10:28 -0600 Subject: [PATCH 001/336] composer: Fix close buttons 7d207dbb broke the close buttons in the composer headerbar again. This makes sure the close button only appears in the composer headerbar if it is part of the main window's headerbar. Fixes #685. --- src/client/composer/composer-headerbar.vala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/client/composer/composer-headerbar.vala b/src/client/composer/composer-headerbar.vala index fd2680a5..33cb3652 100644 --- a/src/client/composer/composer-headerbar.vala +++ b/src/client/composer/composer-headerbar.vala @@ -38,7 +38,6 @@ public class Composer.Headerbar : Gtk.HeaderBar { Gtk.Settings.get_default().notify["gtk-decoration-layout"].connect( on_gtk_decoration_layout_changed ); - this.show_close_button = this.config.desktop_environment != UNITY; } public override void destroy() { @@ -71,6 +70,9 @@ public class Composer.Headerbar : Gtk.HeaderBar { this.set_attached(true); break; } + + this.show_close_button = (mode == Widget.PresentationMode.PANED + && this.config.desktop_environment != UNITY); } private void set_attached(bool is_attached) { From c85a89eb480dc3b140499f787bd4440ca8aa52fc Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Sun, 2 Feb 2020 21:03:34 +1100 Subject: [PATCH 002/336] Workaround type initialisation deadlock in GObject Ensure some types that are prone to deadlocking are initialised up front. Workaround for GNOME/geary#592 GNOME/glib#541 --- src/engine/api/geary-engine.vala | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/engine/api/geary-engine.vala b/src/engine/api/geary-engine.vala index 97b86a77..3fee1063 100644 --- a/src/engine/api/geary-engine.vala +++ b/src/engine/api/geary-engine.vala @@ -41,6 +41,10 @@ public class Geary.Engine : BaseObject { private static bool is_initialized = false; + static construct { + // Work around GNOME/glib#541 + typeof(Imap.MailboxAttributes).name(); + } // This can't be called from within the ctor, as initialization // code may want to access the Engine instance to make their own From 641fa4e8e659967c7e2685ed0ce16cb75a0c44c5 Mon Sep 17 00:00:00 2001 From: James Westman Date: Tue, 4 Feb 2020 09:38:42 -0600 Subject: [PATCH 003/336] preferences: Set propagate_natural_width This makes the preferences window wide enough to not ellipsize the labels, if there is enough space to do that. --- src/client/components/components-preferences-window.vala | 1 + 1 file changed, 1 insertion(+) diff --git a/src/client/components/components-preferences-window.vala b/src/client/components/components-preferences-window.vala index 9b9772fd..0a159446 100644 --- a/src/client/components/components-preferences-window.vala +++ b/src/client/components/components-preferences-window.vala @@ -105,6 +105,7 @@ public class Components.PreferencesWindow : Hdy.PreferencesWindow { var page = new Hdy.PreferencesPage(); page.propagate_natural_height = true; + page.propagate_natural_width = true; page.add(group); page.show_all(); From d9c10b5f2023db9704f93b6ae5b7ad74defc79b7 Mon Sep 17 00:00:00 2001 From: Andre Klapper Date: Mon, 10 Feb 2020 22:01:39 +0100 Subject: [PATCH 004/336] help: Make shortcuts.page pass "yelp-check validate"
elements must include a element. --- help/C/shortcuts.page | 1 + 1 file changed, 1 insertion(+) diff --git a/help/C/shortcuts.page b/help/C/shortcuts.page index a022bf9f..4ddde80c 100644 --- a/help/C/shortcuts.page +++ b/help/C/shortcuts.page @@ -10,6 +10,7 @@ <title>Keyboard shortcuts
+ Overview

Geary has keyboard shortcuts for most common operations. Use the built-in help to discover the full list. To open the shortcuts help, select Keyboard Shortcuts from From cbe6e0ba9bc7d83a8a6c3eb2372f1c8fefd735b4 Mon Sep 17 00:00:00 2001 From: Michael James Gratton Date: Wed, 12 Feb 2020 16:48:24 +1100 Subject: [PATCH 005/336] Revert "Merge branch 'mjog/558-webkit-shared-process' into 'mainline'" Revert merge request GNOME/geary!374 for now since the shared process model breaks old-style WebProcess message handler IPC. This can be un-reverted when out JS is ported to the new Messages API that is landing in WebKitGTK 2.28. This reverts commit e4a5b85698835549d823d3f501d398b411241a37, reversing changes made to 66f65254807668bd258624f3b9f210d67e32ed74. --- desktop/org.gnome.Geary.appdata.xml.in.in | 1 - po/POTFILES.in | 2 +- .../accounts/accounts-editor-edit-pane.vala | 4 +- .../accounts/accounts-signature-web-view.vala | 4 +- .../application/application-controller.vala | 5 +- src/client/application/main.vala | 6 + ...nts-web-view.vala => client-web-view.vala} | 156 +++++++------ src/client/composer/composer-web-view.vala | 6 +- src/client/composer/composer-widget.vala | 8 +- .../conversation-email.vala | 26 ++- .../conversation-list-box.vala | 14 +- .../conversation-message.vala | 207 +++--------------- .../conversation-viewer.vala | 24 +- .../conversation-web-view.vala | 41 +--- src/client/meson.build | 12 +- .../web-process/web-process-extension.vala | 43 ++-- ...se.vala => client-web-view-test-case.vala} | 23 +- ...ew-test.vala => client-web-view-test.vala} | 10 +- .../composer/composer-web-view-test.vala | 2 +- ...-test.vala => client-page-state-test.vala} | 16 +- test/js/composer-page-state-test.vala | 2 +- test/js/conversation-page-state-test.vala | 2 +- test/meson.build | 6 +- test/test-client.vala | 6 +- ui/client-web-view-allow-remote-images.js | 11 + ...ponents-web-view.js => client-web-view.js} | 5 +- ui/conversation-message.ui | 1 - ui/org.gnome.Geary.gresource.xml | 3 +- 28 files changed, 240 insertions(+), 406 deletions(-) rename src/client/components/{components-web-view.vala => client-web-view.vala} (92%) rename test/client/components/{components-web-view-test-case.vala => client-web-view-test-case.vala} (75%) rename test/client/components/{components-web-view-test.vala => client-web-view-test.vala} (79%) rename test/js/{components-page-state-test.vala => client-page-state-test.vala} (73%) create mode 100644 ui/client-web-view-allow-remote-images.js rename ui/{components-web-view.js => client-web-view.js} (98%) diff --git a/desktop/org.gnome.Geary.appdata.xml.in.in b/desktop/org.gnome.Geary.appdata.xml.in.in index 86dc9491..108db1d9 100644 --- a/desktop/org.gnome.Geary.appdata.xml.in.in +++ b/desktop/org.gnome.Geary.appdata.xml.in.in @@ -101,7 +101,6 @@

  • Extend undo for email actions such as archiving, marking
  • Undo sending, saving and discarding composed email
  • Undo editing in text fields, including in the composer
  • -
  • Conversation loading performance improvements
  • App-wide notification preferences now handled by desktop
  • Improved missing attachment detection in composer
  • Initial plugin system
  • diff --git a/po/POTFILES.in b/po/POTFILES.in index 4cf10a10..7c983e35 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -31,6 +31,7 @@ src/client/application/goa-mediator.vala src/client/application/main.vala src/client/application/secret-mediator.vala src/client/client-action.vala +src/client/components/client-web-view.vala src/client/components/components-attachment-pane.vala src/client/components/components-entry-undo.vala src/client/components/components-in-app-notification.vala @@ -39,7 +40,6 @@ src/client/components/components-placeholder-pane.vala src/client/components/components-preferences-window.vala src/client/components/components-search-bar.vala src/client/components/components-validator.vala -src/client/components/components-web-view.vala src/client/components/count-badge.vala src/client/components/folder-popover.vala src/client/components/icon-factory.vala diff --git a/src/client/accounts/accounts-editor-edit-pane.vala b/src/client/accounts/accounts-editor-edit-pane.vala index 2722db6e..c1df9a95 100644 --- a/src/client/accounts/accounts-editor-edit-pane.vala +++ b/src/client/accounts/accounts-editor-edit-pane.vala @@ -718,7 +718,7 @@ internal class Accounts.RemoveMailboxCommand : Application.Command { internal class Accounts.SignatureChangedCommand : Application.Command { - private Components.WebView signature_view; + private ClientWebView signature_view; private Geary.AccountInformation account; private string old_value; @@ -728,7 +728,7 @@ internal class Accounts.SignatureChangedCommand : Application.Command { private bool new_enabled = false; - public SignatureChangedCommand(Components.WebView signature_view, + public SignatureChangedCommand(ClientWebView signature_view, Geary.AccountInformation account) { this.signature_view = signature_view; this.account = account; diff --git a/src/client/accounts/accounts-signature-web-view.vala b/src/client/accounts/accounts-signature-web-view.vala index d424dd64..ca31ad5e 100644 --- a/src/client/accounts/accounts-signature-web-view.vala +++ b/src/client/accounts/accounts-signature-web-view.vala @@ -8,14 +8,14 @@ /** * A class for editing signatures in the accounts editor. */ -public class Accounts.SignatureWebView : Components.WebView { +public class Accounts.SignatureWebView : ClientWebView { private static WebKit.UserScript? app_script = null; public static new void load_resources() throws GLib.Error { - SignatureWebView.app_script = Components.WebView.load_app_script( + SignatureWebView.app_script = ClientWebView.load_app_script( "signature-web-view.js" ); } diff --git a/src/client/application/application-controller.vala b/src/client/application/application-controller.vala index 26c19dca..a4d43b07 100644 --- a/src/client/application/application-controller.vala +++ b/src/client/application/application-controller.vala @@ -135,12 +135,13 @@ internal class Application.Controller : Geary.BaseObject { this.upgrade_dialog = new UpgradeDialog(application); // Initialise WebKit and WebViews - Components.WebView.init_web_context( + ClientWebView.init_web_context( this.application.config, this.application.get_web_extensions_dir(), this.application.get_user_cache_directory().get_child("web-resources") ); - Components.WebView.load_resources( + + ClientWebView.load_resources( this.application.get_user_config_directory() ); Composer.WebView.load_resources(); diff --git a/src/client/application/main.vala b/src/client/application/main.vala index f6f971f3..0df87838 100644 --- a/src/client/application/main.vala +++ b/src/client/application/main.vala @@ -20,6 +20,12 @@ int main(string[] args) { Environment.set_variable("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0", false); #endif + // Temporary workaround for WebKitGTK deprecation of the + // shared-secondary process model. Pull this out in 3.36 when the + // proper fix lands. See GNOME/geary#558. + Environment.set_variable("WEBKIT_USE_SINGLE_WEB_PROCESS", "1", true); + + // Init logging right up front so as to capture as many log // messages as possible Geary.Logging.init(); diff --git a/src/client/components/components-web-view.vala b/src/client/components/client-web-view.vala similarity index 92% rename from src/client/components/components-web-view.vala rename to src/client/components/client-web-view.vala index 4bda1c11..b65f2150 100644 --- a/src/client/components/components-web-view.vala +++ b/src/client/components/client-web-view.vala @@ -1,6 +1,6 @@ /* * Copyright 2016 Software Freedom Conservancy Inc. - * Copyright 2016-2019 Michael Gratton + * Copyright 2016 Michael Gratton * * This software is licensed under the GNU Lesser General Public License * (version 2.1 or later). See the COPYING file in this distribution. @@ -14,7 +14,7 @@ * integration, Inspector support, and remote and inline image * handling. */ -public abstract class Components.WebView : WebKit.WebView, Geary.BaseInterface { +public abstract class ClientWebView : WebKit.WebView, Geary.BaseInterface { /** URI Scheme and delimiter for internal resource loads. */ @@ -65,6 +65,7 @@ public abstract class Components.WebView : WebKit.WebView, Geary.BaseInterface { private static WebKit.UserStyleSheet? user_stylesheet = null; private static WebKit.UserScript? script = null; + private static WebKit.UserScript? allow_remote_images = null; /** @@ -75,18 +76,23 @@ public abstract class Components.WebView : WebKit.WebView, Geary.BaseInterface { File cache_dir) { WebsiteDataManager data_manager = new WebsiteDataManager(cache_dir.get_path()); WebKit.WebContext context = new WebKit.WebContext.with_website_data_manager(data_manager); +#if HAS_WEBKIT_SHARED_PROC + // Use a shared process so we don't spawn N WebProcess instances + // when showing N messages in a conversation. + context.set_process_model(WebKit.ProcessModel.SHARED_SECONDARY_PROCESS); +#endif // Use the doc viewer model since each web view instance only // ever shows a single HTML document. context.set_cache_model(WebKit.CacheModel.DOCUMENT_VIEWER); context.register_uri_scheme("cid", (req) => { - WebView? view = req.get_web_view() as WebView; + ClientWebView? view = req.get_web_view() as ClientWebView; if (view != null) { view.handle_cid_request(req); } }); context.register_uri_scheme("geary", (req) => { - WebView? view = req.get_web_view() as WebView; + ClientWebView? view = req.get_web_view() as ClientWebView; if (view != null) { view.handle_internal_request(req); } @@ -107,22 +113,25 @@ public abstract class Components.WebView : WebKit.WebView, Geary.BaseInterface { update_spellcheck(context, config); }); - WebView.default_context = context; + ClientWebView.default_context = context; } /** - * Loads static resources used by WebView. + * Loads static resources used by ClientWebView. */ public static void load_resources(GLib.File user_dir) throws GLib.Error { - WebView.script = load_app_script( - "components-web-view.js" + ClientWebView.script = load_app_script( + "client-web-view.js" + ); + ClientWebView.allow_remote_images = load_app_script( + "client-web-view-allow-remote-images.js" ); foreach (string name in new string[] { USER_CSS, USER_CSS_LEGACY }) { GLib.File stylesheet = user_dir.get_child(name); try { - WebView.user_stylesheet = load_user_stylesheet(stylesheet); + ClientWebView.user_stylesheet = load_user_stylesheet(stylesheet); break; } catch (GLib.IOError.NOT_FOUND err) { // All good, try the next one or just exit @@ -290,9 +299,8 @@ public abstract class Components.WebView : WebKit.WebView, Geary.BaseInterface { public signal void remote_image_load_blocked(); - protected WebView(Application.Configuration config, - WebKit.UserContentManager? custom_manager = null, - WebView? related = null) { + protected ClientWebView(Application.Configuration config, + WebKit.UserContentManager? custom_manager = null) { WebKit.Settings setts = new WebKit.Settings(); setts.allow_modal_dialogs = false; setts.default_charset = "UTF-8"; @@ -313,40 +321,62 @@ public abstract class Components.WebView : WebKit.WebView, Geary.BaseInterface { WebKit.UserContentManager content_manager = custom_manager ?? new WebKit.UserContentManager(); - content_manager.add_script(WebView.script); - if (WebView.user_stylesheet != null) { - content_manager.add_style_sheet(WebView.user_stylesheet); + content_manager.add_script(ClientWebView.script); + if (ClientWebView.user_stylesheet != null) { + content_manager.add_style_sheet(ClientWebView.user_stylesheet); } Object( - settings: setts, + web_context: ClientWebView.default_context, user_content_manager: content_manager, - web_context: WebView.default_context + settings: setts ); base_ref(); - init(config); - } - /** - * Constructs a new web view with a new shared WebProcess. - * - * The new view will use the same WebProcess, settings and content - * manager as the given related view's. - * - * @see WebKit.WebView.with_related_view - */ - protected WebView.with_related_view(Application.Configuration config, - WebView related) { - Object( - related_view: related, - settings: related.get_settings(), - user_content_manager: related.user_content_manager + // XXX get the allow prefix from the extension somehow + + this.decide_policy.connect(on_decide_policy); + this.web_process_terminated.connect((reason) => { + warning("Web process crashed: %s", reason.to_string()); + }); + + register_message_handler( + COMMAND_STACK_CHANGED, on_command_stack_changed ); - base_ref(); - init(config); + register_message_handler( + CONTENT_LOADED, on_content_loaded + ); + register_message_handler( + DOCUMENT_MODIFIED, on_document_modified + ); + register_message_handler( + PREFERRED_HEIGHT_CHANGED, on_preferred_height_changed + ); + register_message_handler( + REMOTE_IMAGE_LOAD_BLOCKED, on_remote_image_load_blocked + ); + register_message_handler( + SELECTION_CHANGED, on_selection_changed + ); + + // Manage zoom level, ensure it's sane + config.bind(Application.Configuration.CONVERSATION_VIEWER_ZOOM_KEY, this, "zoom_level"); + if (this.zoom_level < ZOOM_MIN) { + this.zoom_level = ZOOM_MIN; + } else if (this.zoom_level > ZOOM_MAX) { + this.zoom_level = ZOOM_MAX; + } + this.scroll_event.connect(on_scroll_event); + + // Watch desktop font settings + Settings system_settings = config.gnome_interface; + system_settings.bind("document-font-name", this, + "document-font", SettingsBindFlags.DEFAULT); + system_settings.bind("monospace-font-name", this, + "monospace-font", SettingsBindFlags.DEFAULT); } - ~WebView() { + ~ClientWebView() { base_unref(); } @@ -403,7 +433,13 @@ public abstract class Components.WebView : WebKit.WebView, Geary.BaseInterface { * effect. */ public void allow_remote_image_loading() { - this.run_javascript.begin("_gearyAllowRemoteResourceLoads = true", null); + // Use a separate script here since we need to update the + // value of window.geary.allow_remote_image_loading after it + // was first created by client-web-view.js (which is loaded at + // the start of page load), but before the page load is + // started (so that any remote images present are actually + // loaded). + this.user_content_manager.add_script(ClientWebView.allow_remote_images); } /** @@ -479,7 +515,7 @@ public abstract class Components.WebView : WebKit.WebView, Geary.BaseInterface { JavaScriptMessageHandler handler) { // XXX can't use the delegate directly, see b.g.o Bug // 604781. However the workaround below creates a circular - // reference, causing WebView instances to leak. So to + // reference, causing ClientWebView instances to leak. So to // work around that we need to record handler ids and // disconnect them when being destroyed. ulong id = this.user_content_manager.script_message_received[name].connect( @@ -491,50 +527,6 @@ public abstract class Components.WebView : WebKit.WebView, Geary.BaseInterface { } } - private void init(Application.Configuration config) { - // XXX get the allow prefix from the extension somehow - - this.decide_policy.connect(on_decide_policy); - this.web_process_terminated.connect((reason) => { - warning("Web process crashed: %s", reason.to_string()); - }); - - register_message_handler( - COMMAND_STACK_CHANGED, on_command_stack_changed - ); - register_message_handler( - CONTENT_LOADED, on_content_loaded - ); - register_message_handler( - DOCUMENT_MODIFIED, on_document_modified - ); - register_message_handler( - PREFERRED_HEIGHT_CHANGED, on_preferred_height_changed - ); - register_message_handler( - REMOTE_IMAGE_LOAD_BLOCKED, on_remote_image_load_blocked - ); - register_message_handler( - SELECTION_CHANGED, on_selection_changed - ); - - // Manage zoom level, ensure it's sane - config.bind(Application.Configuration.CONVERSATION_VIEWER_ZOOM_KEY, this, "zoom_level"); - if (this.zoom_level < ZOOM_MIN) { - this.zoom_level = ZOOM_MIN; - } else if (this.zoom_level > ZOOM_MAX) { - this.zoom_level = ZOOM_MAX; - } - this.scroll_event.connect(on_scroll_event); - - // Watch desktop font settings - Settings system_settings = config.gnome_interface; - system_settings.bind("document-font-name", this, - "document-font", SettingsBindFlags.DEFAULT); - system_settings.bind("monospace-font-name", this, - "monospace-font", SettingsBindFlags.DEFAULT); - } - private void handle_cid_request(WebKit.URISchemeRequest request) { if (!handle_internal_response(request)) { request.finish_error(new FileError.NOENT("Unknown CID")); diff --git a/src/client/composer/composer-web-view.vala b/src/client/composer/composer-web-view.vala index 3dabf7fe..9c78ec75 100644 --- a/src/client/composer/composer-web-view.vala +++ b/src/client/composer/composer-web-view.vala @@ -9,7 +9,7 @@ /** * A WebView for editing messages in the composer. */ -public class Composer.WebView : Components.WebView { +public class Composer.WebView : ClientWebView { // WebKit message handler names @@ -92,10 +92,10 @@ public class Composer.WebView : Components.WebView { public static new void load_resources() throws Error { - WebView.app_style = Components.WebView.load_app_stylesheet( + WebView.app_style = ClientWebView.load_app_stylesheet( "composer-web-view.css" ); - WebView.app_script = Components.WebView.load_app_script( + WebView.app_script = ClientWebView.load_app_script( "composer-web-view.js" ); } diff --git a/src/client/composer/composer-widget.vala b/src/client/composer/composer-widget.vala index 69970b58..73d68a70 100644 --- a/src/client/composer/composer-widget.vala +++ b/src/client/composer/composer-widget.vala @@ -1320,7 +1320,7 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { email.inline_files.set_all(this.inline_files); email.cid_files.set_all(this.cid_files); - email.img_src_prefix = Components.WebView.INTERNAL_URL_PREFIX; + email.img_src_prefix = ClientWebView.INTERNAL_URL_PREFIX; try { if (!for_draft) { @@ -2077,7 +2077,7 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { string unique_filename; add_inline_part(byte_buffer, filename, out unique_filename); this.editor.insert_image( - Components.WebView.INTERNAL_URL_PREFIX + unique_filename + ClientWebView.INTERNAL_URL_PREFIX + unique_filename ); throw new Geary.EngineError.UNSUPPORTED("Mock method"); } catch (Error error) { @@ -2807,7 +2807,7 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { string unique_filename; add_inline_part(file_buffer, path, out unique_filename); this.editor.insert_image( - Components.WebView.INTERNAL_URL_PREFIX + unique_filename + ClientWebView.INTERNAL_URL_PREFIX + unique_filename ); } catch (Error err) { attachment_failed(err.message); @@ -2906,7 +2906,7 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { } this.editor.insert_image( - Components.WebView.INTERNAL_URL_PREFIX + unique_filename + ClientWebView.INTERNAL_URL_PREFIX + unique_filename ); } diff --git a/src/client/conversation-viewer/conversation-email.vala b/src/client/conversation-viewer/conversation-email.vala index 2f2e9006..02ac6096 100644 --- a/src/client/conversation-viewer/conversation-email.vala +++ b/src/client/conversation-viewer/conversation-email.vala @@ -479,7 +479,7 @@ public class ConversationEmail : Gtk.Box, Geary.BaseInterface { if (this.body_selection_message != null) { try { selection = - yield this.body_selection_message.get_selection_for_quoting(); + yield this.body_selection_message.web_view.get_selection_for_quoting(); } catch (Error err) { debug("Failed to get selection for quoting: %s", err.message); } @@ -495,7 +495,7 @@ public class ConversationEmail : Gtk.Box, Geary.BaseInterface { if (this.body_selection_message != null) { try { selection = - yield this.body_selection_message.get_selection_for_find(); + yield this.body_selection_message.web_view.get_selection_for_find(); } catch (Error err) { debug("Failed to get selection for find: %s", err.message); } @@ -588,10 +588,12 @@ public class ConversationEmail : Gtk.Box, Geary.BaseInterface { Json.Generator generator = new Json.Generator(); generator.set_root(builder.get_root()); string js = "geary.addPrintHeaders(" + generator.to_data(null) + ");"; - yield this.primary_message.run_javascript(js, null); + yield this.primary_message.web_view.run_javascript(js, null); Gtk.Window? window = get_toplevel() as Gtk.Window; - WebKit.PrintOperation op = this.primary_message.new_print_operation(); + WebKit.PrintOperation op = new WebKit.PrintOperation( + this.primary_message.web_view + ); Gtk.PrintSettings settings = new Gtk.PrintSettings(); if (this.email.subject != null) { @@ -618,14 +620,14 @@ public class ConversationEmail : Gtk.Box, Geary.BaseInterface { } private void connect_message_view_signals(ConversationMessage view) { - view.content_loaded.connect(on_content_loaded); view.flag_remote_images.connect(on_flag_remote_images); view.internal_link_activated.connect((y) => { internal_link_activated(y); }); - view.internal_resource_loaded.connect(on_resource_loaded); view.save_image.connect(on_save_image); - view.selection_changed.connect((has_selection) => { + view.web_view.internal_resource_loaded.connect(on_resource_loaded); + view.web_view.content_loaded.connect(on_content_loaded); + view.web_view.selection_changed.connect((has_selection) => { this.body_selection_message = has_selection ? view : null; body_selection_changed(has_selection); }); @@ -701,7 +703,7 @@ public class ConversationEmail : Gtk.Box, Geary.BaseInterface { // Load all messages - this.primary_message.add_internal_resources(cid_resources); + this.primary_message.web_view.add_internal_resources(cid_resources); yield this.primary_message.load_message_body( message, this.load_cancellable ); @@ -719,7 +721,7 @@ public class ConversationEmail : Gtk.Box, Geary.BaseInterface { this.config ); connect_message_view_signals(attached_message); - attached_message.add_internal_resources(cid_resources); + attached_message.web_view.add_internal_resources(cid_resources); this.sub_messages.add(attached_message); this._attached_messages.add(attached_message); attached_message.load_contacts.begin(this.load_cancellable); @@ -906,8 +908,8 @@ public class ConversationEmail : Gtk.Box, Geary.BaseInterface { Geary.Memory.Buffer? content) { var main = get_toplevel() as Application.MainWindow; if (main != null) { - if (uri.has_prefix(Components.WebView.CID_URL_PREFIX)) { - string cid = uri.substring(Components.WebView.CID_URL_PREFIX.length); + if (uri.has_prefix(ClientWebView.CID_URL_PREFIX)) { + string cid = uri.substring(ClientWebView.CID_URL_PREFIX.length); try { Geary.Attachment attachment = this.email.get_attachment_by_content_id( cid @@ -954,7 +956,7 @@ public class ConversationEmail : Gtk.Box, Geary.BaseInterface { private void on_content_loaded() { bool all_loaded = true; foreach (ConversationMessage message in this) { - if (!message.is_content_loaded) { + if (!message.web_view.is_content_loaded) { all_loaded = false; break; } diff --git a/src/client/conversation-viewer/conversation-list-box.vala b/src/client/conversation-viewer/conversation-list-box.vala index 8668b59d..4e501aa4 100644 --- a/src/client/conversation-viewer/conversation-list-box.vala +++ b/src/client/conversation-viewer/conversation-list-box.vala @@ -898,7 +898,7 @@ public class ConversationListBox : Gtk.ListBox, Geary.BaseInterface { */ public void zoom_in() { message_view_iterator().foreach((msg_view) => { - msg_view.zoom_in(); + msg_view.web_view.zoom_in(); return true; }); } @@ -908,7 +908,7 @@ public class ConversationListBox : Gtk.ListBox, Geary.BaseInterface { */ public void zoom_out() { message_view_iterator().foreach((msg_view) => { - msg_view.zoom_out(); + msg_view.web_view.zoom_out(); return true; }); } @@ -918,7 +918,7 @@ public class ConversationListBox : Gtk.ListBox, Geary.BaseInterface { */ public void zoom_reset() { message_view_iterator().foreach((msg_view) => { - msg_view.zoom_reset(); + msg_view.web_view.zoom_reset(); return true; }); } @@ -1122,7 +1122,8 @@ public class ConversationListBox : Gtk.ListBox, Geary.BaseInterface { row.get_allocation(out alloc); int x = 0, y = 0; - row.view.primary_message.web_view_translate_coordinates(row, x, anchor_y, out x, out y); + ConversationWebView web_view = row.view.primary_message.web_view; + web_view.translate_coordinates(row, x, anchor_y, out x, out y); Gtk.Adjustment adj = get_adjustment(); y = alloc.y + y; @@ -1155,13 +1156,14 @@ public class ConversationListBox : Gtk.ListBox, Geary.BaseInterface { ConversationMessage conversation_message = view.primary_message; int body_top = 0; int body_left = 0; - conversation_message.web_view_translate_coordinates( + ConversationWebView web_view = conversation_message.web_view; + web_view.translate_coordinates( this, 0, 0, out body_left, out body_top ); - int body_height = conversation_message.web_view_get_allocated_height(); + int body_height = web_view.get_allocated_height(); int body_bottom = body_top + body_height; // Only mark the email as read if it's actually visible diff --git a/src/client/conversation-viewer/conversation-message.vala b/src/client/conversation-viewer/conversation-message.vala index 77c1743d..e6548a6d 100644 --- a/src/client/conversation-viewer/conversation-message.vala +++ b/src/client/conversation-viewer/conversation-message.vala @@ -218,19 +218,8 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { [GtkChild] internal Gtk.Grid infobars; - /** - * Emitted when web_view's content has finished loaded. - * - * See {@link Components.WebView.is_content_loaded} for details. - */ - internal bool is_content_loaded { - get { - return this.web_view != null && this.web_view.is_content_loaded; - } - } - /** HTML view that displays the message body. */ - private ConversationWebView? web_view { get; private set; } + internal ConversationWebView web_view { get; private set; } // The message headers represented by this view private Geary.EmailHeaderSet headers; @@ -346,19 +335,6 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { string uri, string? alt_text, Geary.Memory.Buffer? buffer ); - /** Emitted when web_view has loaded a resource added to it. */ - public signal void internal_resource_loaded(string name); - - /** Emitted when web_view's selection has changed. */ - public signal void selection_changed(bool has_selection); - - /** - * Emitted when web_view's content has finished loaded. - * - * See {@link Components.WebView.is_content_loaded} for details. - */ - public signal void content_loaded(); - /** * Constructs a new view from an email's headers and body. @@ -400,18 +376,6 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { ); } - private void trigger_internal_resource_loaded(string name) { - internal_resource_loaded(name); - } - - private void trigger_content_loaded() { - content_loaded(); - } - - private void trigger_selection_changed(bool has_selection) { - selection_changed(has_selection); - } - private ConversationMessage(Geary.EmailHeaderSet headers, string? preview, bool load_remote_resources, @@ -432,10 +396,19 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { .activate.connect(on_copy_email_address); add_action(ACTION_COPY_LINK, true, VariantType.STRING) .activate.connect(on_copy_link); + add_action(ACTION_COPY_SELECTION, false).activate.connect(() => { + web_view.copy_clipboard(); + }); + add_action(ACTION_OPEN_INSPECTOR, config.enable_inspector).activate.connect(() => { + this.web_view.get_inspector().show(); + }); add_action(ACTION_OPEN_LINK, true, VariantType.STRING) .activate.connect(on_link_activated); add_action(ACTION_SAVE_IMAGE, true, new VariantType("(sms)")) .activate.connect(on_save_image); + add_action(ACTION_SELECT_ALL, true).activate.connect(() => { + web_view.select_all(); + }); insert_action_group("msg", message_actions); // Context menu @@ -488,37 +461,9 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { this.subject_searchable = headers.subject.value.casefold(); } - this.body_container.set_has_tooltip(true); // Used to show link URLs - this.show_progress_timeout = new Geary.TimeoutManager.milliseconds( - Util.Gtk.SHOW_PROGRESS_TIMEOUT_MSEC, this.on_show_progress_timeout - ); - this.hide_progress_timeout = new Geary.TimeoutManager.milliseconds( - Util.Gtk.HIDE_PROGRESS_TIMEOUT_MSEC, this.on_hide_progress_timeout - ); - - this.progress_pulse = new Geary.TimeoutManager.milliseconds( - Util.Gtk.PROGRESS_PULSE_TIMEOUT_MSEC, this.body_progress.pulse - ); - this.progress_pulse.repetition = FOREVER; - } - - private void initialize_web_view() { - var viewer = get_ancestor(typeof(ConversationViewer)) as ConversationViewer; - - // Ensure we share the same WebProcess with the last one - // constructed if possible. - if (viewer != null && viewer.previous_web_view != null) { - this.web_view = new ConversationWebView.with_related_view( - this.config, - viewer.previous_web_view - ); - } else { - this.web_view = new ConversationWebView(this.config); - } - if (viewer != null) { - viewer.previous_web_view = this.web_view; - } + // Web view + this.web_view = new ConversationWebView(config); this.web_view.context_menu.connect(on_context_menu); this.web_view.deceptive_link_clicked.connect(on_deceptive_link_clicked); this.web_view.link_activated.connect((link) => { @@ -531,22 +476,23 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { this.remote_images_infobar.show(); }); this.web_view.selection_changed.connect(on_selection_changed); - this.web_view.internal_resource_loaded.connect(trigger_internal_resource_loaded); - this.web_view.content_loaded.connect(trigger_content_loaded); - this.web_view.selection_changed.connect(trigger_selection_changed); this.web_view.set_hexpand(true); this.web_view.set_vexpand(true); this.web_view.show(); + + this.body_container.set_has_tooltip(true); // Used to show link URLs this.body_container.add(this.web_view); - add_action(ACTION_COPY_SELECTION, false).activate.connect(() => { - web_view.copy_clipboard(); - }); - add_action(ACTION_OPEN_INSPECTOR, config.enable_inspector).activate.connect(() => { - this.web_view.get_inspector().show(); - }); - add_action(ACTION_SELECT_ALL, true).activate.connect(() => { - web_view.select_all(); - }); + this.show_progress_timeout = new Geary.TimeoutManager.milliseconds( + Util.Gtk.SHOW_PROGRESS_TIMEOUT_MSEC, this.on_show_progress_timeout + ); + this.hide_progress_timeout = new Geary.TimeoutManager.milliseconds( + Util.Gtk.HIDE_PROGRESS_TIMEOUT_MSEC, this.on_hide_progress_timeout + ); + + this.progress_pulse = new Geary.TimeoutManager.milliseconds( + Util.Gtk.PROGRESS_PULSE_TIMEOUT_MSEC, this.body_progress.pulse + ); + this.progress_pulse.repetition = FOREVER; } ~ConversationMessage() { @@ -562,77 +508,10 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { base.destroy(); } - public async string? get_selection_for_quoting() throws Error { - if (this.web_view == null) - initialize_web_view(); - return yield web_view.get_selection_for_quoting(); - } - - public async string? get_selection_for_find() throws Error { - if (this.web_view == null) - initialize_web_view(); - return yield web_view.get_selection_for_find(); - } - - /** - * Adds a set of internal resources to web_view. - * - * @see add_internal_resource - */ - public void add_internal_resources(Gee.Map res) { - if (this.web_view == null) - initialize_web_view(); - web_view.add_internal_resources(res); - } - - public WebKit.PrintOperation new_print_operation() { - if (this.web_view == null) - initialize_web_view(); - return new WebKit.PrintOperation(web_view); - } - - public async void run_javascript (string script, Cancellable? cancellable) throws Error { - if (this.web_view == null) - initialize_web_view(); - yield web_view.run_javascript(script, cancellable); - } - - public void zoom_in() { - if (this.web_view == null) - initialize_web_view(); - web_view.zoom_in(); - } - - public void zoom_out() { - if (this.web_view == null) - initialize_web_view(); - web_view.zoom_out(); - } - - public void zoom_reset() { - if (this.web_view == null) - initialize_web_view(); - web_view.zoom_reset(); - } - - public void web_view_translate_coordinates(Gtk.Widget widget, int x, int anchor_y, out int x1, out int y1) { - if (this.web_view == null) - initialize_web_view(); - web_view.translate_coordinates(widget, x, anchor_y, out x1, out y1); - } - - public int web_view_get_allocated_height() { - if (this.web_view == null) - initialize_web_view(); - return web_view.get_allocated_height(); - } - /** * Shows the complete message and hides the compact headers. */ public void show_message_body(bool include_transitions=true) { - if (this.web_view == null) - initialize_web_view(); set_revealer(this.compact_revealer, false, include_transitions); set_revealer(this.header_revealer, true, include_transitions); set_revealer(this.body_revealer, true, include_transitions); @@ -816,10 +695,6 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { throw new GLib.IOError.CANCELLED("Conversation load cancelled"); } - if (this.web_view == null) { - initialize_web_view(); - } - bool contact_load_images = ( this.primary_contact != null && this.primary_contact.load_remote_resources @@ -870,8 +745,6 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { } } - if (this.web_view == null) - initialize_web_view(); uint webkit_found = yield this.web_view.highlight_search_terms( search_matches, cancellable ); @@ -885,9 +758,7 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { foreach (ContactFlowBoxChild address in this.searchable_addresses) { address.unmark_search_terms(); } - - if (this.web_view != null) - this.web_view.unmark_search_terms(); + this.web_view.unmark_search_terms(); } /** @@ -1050,8 +921,6 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { // returns HTML that is placed into the document in the position // where the MIME part was found private string? inline_image_replacer(Geary.RFC822.Part part) { - if (this.web_view == null) - initialize_web_view(); Geary.Mime.ContentType content_type = part.content_type; if (content_type.media_type != "image" || !this.web_view.can_show_mime_type(content_type.to_string())) { @@ -1086,7 +955,7 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { return "\"%s\"".printf( clean_filename, REPLACED_IMAGE_CLASS, - Components.WebView.CID_URL_PREFIX, + ClientWebView.CID_URL_PREFIX, Geary.HTML.escape_markup(id) ); } @@ -1097,9 +966,7 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { this.load_remote_resources = true; this.remote_resources_requested = 0; this.remote_resources_loaded = 0; - if (this.web_view != null) { - this.web_view.load_remote_images(); - } + this.web_view.load_remote_images(); if (update_email_flag) { flag_remote_images(); } @@ -1114,13 +981,11 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { if (placeholder != null) { this.body_placeholder = placeholder; - if (this.web_view != null) - this.web_view.hide(); + this.web_view.hide(); this.body_container.add(placeholder); show_message_body(true); } else { - if (this.web_view != null) - this.web_view.show(); + this.web_view.show(); } } @@ -1148,12 +1013,10 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { } private void on_is_loading_notify() { - if (this.web_view != null) { - if (this.web_view.is_loading) { - start_progress_loading(); - } else { - stop_progress_loading(); - } + if (this.web_view.is_loading) { + start_progress_loading(); + } else { + stop_progress_loading(); } } @@ -1388,7 +1251,7 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { alt_text = (string) alt_maybe; } - if (uri.has_prefix(Components.WebView.CID_URL_PREFIX)) { + if (uri.has_prefix(ClientWebView.CID_URL_PREFIX)) { // We can get the data directly from the attachment, so // don't bother getting it from the web view save_image(uri, alt_text, null); diff --git a/src/client/conversation-viewer/conversation-viewer.vala b/src/client/conversation-viewer/conversation-viewer.vala index 3de7d72a..461c7c94 100644 --- a/src/client/conversation-viewer/conversation-viewer.vala +++ b/src/client/conversation-viewer/conversation-viewer.vala @@ -24,14 +24,6 @@ public class ConversationViewer : Gtk.Stack, Geary.BaseInterface { get; private set; default = null; } - /** - * The most recent web view created in this viewer. - * - * Keep the last created web view around so others can share the - * same WebKitGTK WebProcess. - */ - internal ConversationWebView? previous_web_view { get; set; default = null; } - private Application.Configuration config; private Gee.Set? selection_while_composing = null; @@ -254,10 +246,7 @@ public class ConversationViewer : Gtk.Stack, Geary.BaseInterface { Application.ContactStore contacts, bool start_mark_timer) throws GLib.Error { - // Keep the old ScrolledWindow around long enough for its - // descendant web views to be kept so their WebProcess can be - // re-used. - var old_scroller = remove_current_list(); + remove_current_list(); ConversationListBox new_list = new ConversationListBox( conversation, @@ -303,9 +292,6 @@ public class ConversationViewer : Gtk.Stack, Geary.BaseInterface { } yield new_list.load_conversation(scroll_to, query); - - // Not strictly necessary, but keeps the compiler happy - old_scroller.destroy(); } // Add a new conversation list to the UI @@ -325,7 +311,7 @@ public class ConversationViewer : Gtk.Stack, Geary.BaseInterface { } // Remove any existing conversation list, cancelling its loading - private Gtk.ScrolledWindow remove_current_list() { + private void remove_current_list() { if (this.find_cancellable != null) { this.find_cancellable.cancel(); this.find_cancellable = null; @@ -337,17 +323,15 @@ public class ConversationViewer : Gtk.Stack, Geary.BaseInterface { this.current_list = null; } - var old_scroller = this.conversation_scroller; // XXX GTK+ Bug 778190 workaround - this.conversation_page.remove(old_scroller); + this.conversation_scroller.destroy(); // removes the list new_conversation_scroller(); - return old_scroller; } private void new_conversation_scroller() { // XXX Work around for GTK+ Bug 778190: Instead of replacing // the Viewport that contains the current list, replace the - // complete ScrolledWindow. Need to remove this method and + // complete ScrolledWindow. Need to put remove this method and // put the settings back into conversation-viewer.ui when we // can rely on it being fixed again. Gtk.ScrolledWindow scroller = new Gtk.ScrolledWindow(null, null); diff --git a/src/client/conversation-viewer/conversation-web-view.vala b/src/client/conversation-viewer/conversation-web-view.vala index a164c016..d22a836e 100644 --- a/src/client/conversation-viewer/conversation-web-view.vala +++ b/src/client/conversation-viewer/conversation-web-view.vala @@ -6,7 +6,7 @@ * (version 2.1 or later). See the COPYING file in this distribution. */ -public class ConversationWebView : Components.WebView { +public class ConversationWebView : ClientWebView { private const string DECEPTIVE_LINK_CLICKED = "deceptiveLinkClicked"; @@ -41,10 +41,10 @@ public class ConversationWebView : Components.WebView { public static new void load_resources() throws Error { - ConversationWebView.app_script = Components.WebView.load_app_script( + ConversationWebView.app_script = ClientWebView.load_app_script( "conversation-web-view.js" ); - ConversationWebView.app_stylesheet = Components.WebView.load_app_stylesheet( + ConversationWebView.app_stylesheet = ClientWebView.load_app_stylesheet( "conversation-web-view.css" ); } @@ -56,33 +56,16 @@ public class ConversationWebView : Components.WebView { ); - /** - * Constructs a new web view for displaying an email message body. - * - * A new WebKitGTK WebProcess will be constructed for this view. - */ public ConversationWebView(Application.Configuration config) { base(config); - init(); - - // These only need to be added when creating a new WebProcess, - // not when sharing one this.user_content_manager.add_script(ConversationWebView.app_script); this.user_content_manager.add_style_sheet(ConversationWebView.app_stylesheet); - } - /** - * Constructs a new web view for displaying an email message body. - * - * The WebKitGTK WebProcess will be shared with the related view's - * process. - */ - internal ConversationWebView.with_related_view( - Application.Configuration config, - ConversationWebView related - ) { - base.with_related_view(config, related); - init(); + register_message_handler( + DECEPTIVE_LINK_CLICKED, on_deceptive_link_clicked + ); + + this.notify["preferred-height"].connect(() => queue_resize()); } /** @@ -212,14 +195,6 @@ public class ConversationWebView : Components.WebView { minimum_height = natural_height = 0; } - private void init() { - register_message_handler( - DECEPTIVE_LINK_CLICKED, on_deceptive_link_clicked - ); - - this.notify["preferred-height"].connect(() => queue_resize()); - } - private void on_deceptive_link_clicked(WebKit.JavascriptResult result) { try { JSC.Value object = result.get_js_value(); diff --git a/src/client/meson.build b/src/client/meson.build index 35c876bf..cf8d8a83 100644 --- a/src/client/meson.build +++ b/src/client/meson.build @@ -28,6 +28,7 @@ geary_client_vala_sources = files( 'client-action.vala', + 'components/client-web-view.vala', 'components/components-attachment-pane.vala', 'components/components-entry-undo.vala', 'components/components-inspector.vala', @@ -40,7 +41,6 @@ geary_client_vala_sources = files( 'components/components-reflow-box.c', 'components/components-search-bar.vala', 'components/components-validator.vala', - 'components/components-web-view.vala', 'components/count-badge.vala', 'components/folder-popover.vala', 'components/icon-factory.vala', @@ -142,6 +142,16 @@ geary_client_dependencies = [ geary_client_vala_args = geary_vala_args +# Enable shared shecondary process if available. +# See issues #558 and #559 +webkit_version = webkit2gtk.version().split('.') +if webkit_version[0].to_int() <= 2 and webkit_version[1].to_int() <= 24 + message('Enabling WebKitGTK shared process model') + geary_client_vala_args += [ + '-D', 'HAS_WEBKIT_SHARED_PROC' + ] +endif + # Main client application library geary_client_lib = static_library('geary-client', geary_client_sources, diff --git a/src/client/web-process/web-process-extension.vala b/src/client/web-process/web-process-extension.vala index 4bba5154..b2b29bf9 100644 --- a/src/client/web-process/web-process-extension.vala +++ b/src/client/web-process/web-process-extension.vala @@ -32,14 +32,22 @@ public class GearyWebExtension : Object { private const string[] ALLOWED_SCHEMES = { "cid", "geary", "data", "blob" }; - private const string REMOTE_LOAD_VAR = "_gearyAllowRemoteResourceLoads"; - private WebKit.WebExtension extension; public GearyWebExtension(WebKit.WebExtension extension) { this.extension = extension; - extension.page_created.connect(on_page_created); + extension.page_created.connect((extension, web_page) => { + web_page.console_message_sent.connect(on_console_message); + web_page.send_request.connect(on_send_request); + // XXX investigate whether the earliest supported + // version of WK supports the DOM "selectionchanged" + // event, and if so use that rather that doing it in + // here in the extension + web_page.get_editor().selection_changed.connect(() => { + selection_changed(web_page); + }); + }); } // XXX Conditionally enable while we still depend on WK2 <2.12 @@ -81,7 +89,14 @@ public class GearyWebExtension : Object { WebKit.Frame frame = page.get_main_frame(); JSC.Context context = frame.get_js_context(); try { - should_load = Util.JS.to_bool(context.get_value(REMOTE_LOAD_VAR)); + JSC.Value ret = execute_script( + context, + "geary.allowRemoteImages", + GLib.Log.FILE, + GLib.Log.METHOD, + GLib.Log.LINE + ); + should_load = Util.JS.to_bool(ret); } catch (GLib.Error err) { debug( "Error checking PageState::allowRemoteImages: %s", @@ -139,24 +154,4 @@ public class GearyWebExtension : Object { return ret; } - private void on_page_created(WebKit.WebExtension extension, - WebKit.WebPage page) { - WebKit.Frame frame = page.get_main_frame(); - JSC.Context context = frame.get_js_context(); - context.set_value( - REMOTE_LOAD_VAR, - new JSC.Value.boolean(context, false) - ); - - page.console_message_sent.connect(on_console_message); - page.send_request.connect(on_send_request); - // XXX investigate whether the earliest supported - // version of WK supports the DOM "selectionchanged" - // event, and if so use that rather that doing it in - // here in the extension - page.get_editor().selection_changed.connect(() => { - selection_changed(page); - }); - } - } diff --git a/test/client/components/components-web-view-test-case.vala b/test/client/components/client-web-view-test-case.vala similarity index 75% rename from test/client/components/components-web-view-test-case.vala rename to test/client/components/client-web-view-test-case.vala index 514f9a16..d1212afb 100644 --- a/test/client/components/components-web-view-test-case.vala +++ b/test/client/components/client-web-view-test-case.vala @@ -6,42 +6,35 @@ */ -public abstract class Components.WebViewTestCase : TestCase { +public abstract class ClientWebViewTestCase : TestCase { protected V? test_view = null; protected Application.Configuration? config = null; - protected WebViewTestCase(string name) { + protected ClientWebViewTestCase(string name) { base(name); - } - - public override void set_up() { this.config = new Application.Configuration(Application.Client.SCHEMA_ID); this.config.enable_debug = true; - - WebView.init_web_context( + ClientWebView.init_web_context( this.config, File.new_for_path(_BUILD_ROOT_DIR).get_child("src"), File.new_for_path("/tmp") // XXX use something better here ); try { - WebView.load_resources(GLib.File.new_for_path("/tmp")); + ClientWebView.load_resources(GLib.File.new_for_path("/tmp")); } catch (GLib.Error err) { assert_not_reached(); } - - this.test_view = set_up_test_view(); } - protected override void tear_down() { - this.config = null; - this.test_view = null; + public override void set_up() { + this.test_view = set_up_test_view(); } protected abstract V set_up_test_view(); protected virtual void load_body_fixture(string html = "") { - WebView client_view = (WebView) this.test_view; + ClientWebView client_view = (ClientWebView) this.test_view; client_view.load_html(html); while (!client_view.is_content_loaded) { Gtk.main_iteration(); @@ -49,7 +42,7 @@ public abstract class Components.WebViewTestCase : TestCase { } protected WebKit.JavascriptResult run_javascript(string command) throws Error { - WebView view = (WebView) this.test_view; + ClientWebView view = (ClientWebView) this.test_view; view.run_javascript.begin( command, null, (obj, res) => { async_complete(res); } ); diff --git a/test/client/components/components-web-view-test.vala b/test/client/components/client-web-view-test.vala similarity index 79% rename from test/client/components/components-web-view-test.vala rename to test/client/components/client-web-view-test.vala index d3e1037c..d08e5192 100644 --- a/test/client/components/components-web-view-test.vala +++ b/test/client/components/client-web-view-test.vala @@ -5,10 +5,10 @@ * (version 2.1 or later). See the COPYING file in this distribution. */ -public class Components.WebViewTest : TestCase { +public class ClientWebViewTest : TestCase { - public WebViewTest() { - base("Components.WebViewTest"); + public ClientWebViewTest() { + base("ClientWebViewTest"); add_test("init_web_context", init_web_context); add_test("load_resources", load_resources); } @@ -18,7 +18,7 @@ public class Components.WebViewTest : TestCase { Application.Client.SCHEMA_ID ); config.enable_debug = true; - WebView.init_web_context( + ClientWebView.init_web_context( config, File.new_for_path(_BUILD_ROOT_DIR).get_child("src"), File.new_for_path("/tmp") // XXX use something better here @@ -27,7 +27,7 @@ public class Components.WebViewTest : TestCase { public void load_resources() throws GLib.Error { try { - WebView.load_resources(GLib.File.new_for_path("/tmp")); + ClientWebView.load_resources(GLib.File.new_for_path("/tmp")); } catch (GLib.Error err) { assert_not_reached(); } diff --git a/test/client/composer/composer-web-view-test.vala b/test/client/composer/composer-web-view-test.vala index 97c2af29..bac7e7f0 100644 --- a/test/client/composer/composer-web-view-test.vala +++ b/test/client/composer/composer-web-view-test.vala @@ -5,7 +5,7 @@ * (version 2.1 or later). See the COPYING file in this distribution. */ -public class Composer.WebViewTest : Components.WebViewTestCase { +public class Composer.WebViewTest : ClientWebViewTestCase { public WebViewTest() { diff --git a/test/js/components-page-state-test.vala b/test/js/client-page-state-test.vala similarity index 73% rename from test/js/components-page-state-test.vala rename to test/js/client-page-state-test.vala index e0f728ce..d763dcc3 100644 --- a/test/js/components-page-state-test.vala +++ b/test/js/client-page-state-test.vala @@ -5,24 +5,24 @@ * (version 2.1 or later). See the COPYING file in this distribution. */ -class Components.PageStateTest : WebViewTestCase { +class ClientPageStateTest : ClientWebViewTestCase { - private class TestWebView : Components.WebView { + private class TestClientWebView : ClientWebView { - public TestWebView(Application.Configuration config) { + public TestClientWebView(Application.Configuration config) { base(config); } } - public PageStateTest() { - base("Components.PageStateTest"); + public ClientPageStateTest() { + base("ClientPageStateTest"); add_test("content_loaded", content_loaded); try { - WebView.load_resources(GLib.File.new_for_path("/tmp")); + ClientWebView.load_resources(GLib.File.new_for_path("/tmp")); } catch (GLib.Error err) { assert_not_reached(); } @@ -45,7 +45,7 @@ class Components.PageStateTest : WebViewTestCase { assert(content_loaded_triggered); } - protected override WebView set_up_test_view() { + protected override ClientWebView set_up_test_view() { WebKit.UserScript test_script; test_script = new WebKit.UserScript( "var geary = new PageState()", @@ -55,7 +55,7 @@ class Components.PageStateTest : WebViewTestCase { null ); - WebView view = new TestWebView(this.config); + ClientWebView view = new TestClientWebView(this.config); view.get_user_content_manager().add_script(test_script); return view; } diff --git a/test/js/composer-page-state-test.vala b/test/js/composer-page-state-test.vala index 6228cc68..8e1751b7 100644 --- a/test/js/composer-page-state-test.vala +++ b/test/js/composer-page-state-test.vala @@ -5,7 +5,7 @@ * (version 2.1 or later). See the COPYING file in this distribution. */ -class Composer.PageStateTest : Components.WebViewTestCase { +class Composer.PageStateTest : ClientWebViewTestCase { public const string COMPLETE_BODY_TEMPLATE = """
    %s


    """; diff --git a/test/js/conversation-page-state-test.vala b/test/js/conversation-page-state-test.vala index d0b76bc4..ba68cfde 100644 --- a/test/js/conversation-page-state-test.vala +++ b/test/js/conversation-page-state-test.vala @@ -5,7 +5,7 @@ * (version 2.1 or later). See the COPYING file in this distribution. */ -class ConversationPageStateTest : Components.WebViewTestCase { +class ConversationPageStateTest : ClientWebViewTestCase { public ConversationPageStateTest() { base("ConversationPageStateTest"); diff --git a/test/meson.build b/test/meson.build index 89f0cbb8..38a3aae2 100644 --- a/test/meson.build +++ b/test/meson.build @@ -82,16 +82,16 @@ geary_test_client_sources = [ 'client/accounts/accounts-manager-test.vala', 'client/application/application-client-test.vala', 'client/application/application-configuration-test.vala', + 'client/components/client-web-view-test.vala', + 'client/components/client-web-view-test-case.vala', 'client/components/components-validator-test.vala', - 'client/components/components-web-view-test-case.vala', - 'client/components/components-web-view-test.vala', 'client/composer/composer-web-view-test.vala', 'client/util/util-avatar-test.vala', 'client/util/util-cache-test.vala', 'client/util/util-email-test.vala', 'client/util/util-js-test.vala', - 'js/components-page-state-test.vala', + 'js/client-page-state-test.vala', 'js/composer-page-state-test.vala', 'js/conversation-page-state-test.vala', diff --git a/test/test-client.vala b/test/test-client.vala index 115eb9e3..1016d2a5 100644 --- a/test/test-client.vala +++ b/test/test-client.vala @@ -51,9 +51,9 @@ int main(string[] args) { client.add_suite(new Accounts.ManagerTest().get_suite()); client.add_suite(new Application.ClientTest().get_suite()); client.add_suite(new Application.ConfigurationTest().get_suite()); - client.add_suite(new Components.ValidatorTest().get_suite()); - client.add_suite(new Components.WebViewTest().get_suite()); + client.add_suite(new ClientWebViewTest().get_suite()); client.add_suite(new Composer.WebViewTest().get_suite()); + client.add_suite(new Components.ValidatorTest().get_suite()); client.add_suite(new Util.Avatar.Test().get_suite()); client.add_suite(new Util.Cache.Test().get_suite()); client.add_suite(new Util.Email.Test().get_suite()); @@ -61,7 +61,7 @@ int main(string[] args) { TestSuite js = new TestSuite("js"); - js.add_suite(new Components.PageStateTest().get_suite()); + js.add_suite(new ClientPageStateTest().get_suite()); js.add_suite(new Composer.PageStateTest().get_suite()); js.add_suite(new ConversationPageStateTest().get_suite()); diff --git a/ui/client-web-view-allow-remote-images.js b/ui/client-web-view-allow-remote-images.js new file mode 100644 index 00000000..1fb05606 --- /dev/null +++ b/ui/client-web-view-allow-remote-images.js @@ -0,0 +1,11 @@ +/* + * Copyright 2016 Michael Gratton + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +/** + * Enables remote image loading in a client web view. + */ +geary.allowRemoteImages = true; diff --git a/ui/components-web-view.js b/ui/client-web-view.js similarity index 98% rename from ui/components-web-view.js rename to ui/client-web-view.js index 80e86d7c..75bdecf1 100644 --- a/ui/components-web-view.js +++ b/ui/client-web-view.js @@ -6,7 +6,7 @@ */ /** - * Application logic for Components.WebView and subclasses. + * Application logic for ClientWebView and subclasses. */ let PageState = function() { @@ -14,6 +14,7 @@ let PageState = function() { }; PageState.prototype = { init: function() { + this.allowRemoteImages = false; this.isLoaded = false; this.undoEnabled = false; this.redoEnabled = false; @@ -107,7 +108,7 @@ PageState.prototype = { window.webkit.messageHandlers.contentLoaded.postMessage(null); }, loadRemoteImages: function() { - window._gearyAllowRemoteResourceLoads = true; + this.allowRemoteImages = true; let images = document.getElementsByTagName("IMG"); for (let i = 0; i < images.length; i++) { let img = images.item(i); diff --git a/ui/conversation-message.ui b/ui/conversation-message.ui index 3a681f20..ee0a4af0 100644 --- a/ui/conversation-message.ui +++ b/ui/conversation-message.ui @@ -473,7 +473,6 @@ True False - slide-up True diff --git a/ui/org.gnome.Geary.gresource.xml b/ui/org.gnome.Geary.gresource.xml index 4f9cc591..f74a48e8 100644 --- a/ui/org.gnome.Geary.gresource.xml +++ b/ui/org.gnome.Geary.gresource.xml @@ -9,7 +9,8 @@ accounts_editor_servers_pane.ui application-main-window.ui certificate_warning_dialog.glade - components-web-view.js + client-web-view.js + client-web-view-allow-remote-images.js components-attachment-pane.ui components-attachment-pane-menus.ui components-attachment-view.ui From 3340d7911fe1924929864413f04fed8c75e3f9d8 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Thu, 13 Feb 2020 12:55:08 +1100 Subject: [PATCH 006/336] Remove some code clearly meant for testing only --- src/client/composer/composer-widget.vala | 1 - 1 file changed, 1 deletion(-) diff --git a/src/client/composer/composer-widget.vala b/src/client/composer/composer-widget.vala index 73d68a70..fc5f832a 100644 --- a/src/client/composer/composer-widget.vala +++ b/src/client/composer/composer-widget.vala @@ -2079,7 +2079,6 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { this.editor.insert_image( ClientWebView.INTERNAL_URL_PREFIX + unique_filename ); - throw new Geary.EngineError.UNSUPPORTED("Mock method"); } catch (Error error) { this.application.controller.report_problem( new Geary.ProblemReport(error) From 3ce2eb9f17f97558a21b61ebef10ee2c1c15e933 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Wed, 12 Feb 2020 12:09:11 +1100 Subject: [PATCH 007/336] Fix not filling selected autocomplete in composer Gtk.EntryCompletion only fires `cursor_on_match` if `inline_selection` is true. O_o --- src/client/composer/contact-entry-completion.vala | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/client/composer/contact-entry-completion.vala b/src/client/composer/contact-entry-completion.vala index bd6584d7..59a8ec06 100644 --- a/src/client/composer/contact-entry-completion.vala +++ b/src/client/composer/contact-entry-completion.vala @@ -63,6 +63,9 @@ public class ContactEntryCompletion : Gtk.EntryCompletion, Geary.BaseInterface { pack_start(text_renderer, true); set_cell_data_func(text_renderer, cell_text_data); + // cursor-on-match isn't fired unless this is true + this.inline_selection = true; + this.match_selected.connect(on_match_selected); this.cursor_on_match.connect(on_cursor_on_match); } From 30225239c9a5337e8eb0abeb14d120c6cea1dbfd Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Wed, 12 Feb 2020 13:00:59 +1100 Subject: [PATCH 008/336] Don't use public addresses setter internally in EmailEntry Fixes being unable to enter spaces or other punctuation in half-formed email addresses because the public setter was causing the entry's text to be reset with the formatted address. --- src/client/composer/composer-email-entry.vala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/client/composer/composer-email-entry.vala b/src/client/composer/composer-email-entry.vala index 9502fb9a..977d6222 100644 --- a/src/client/composer/composer-email-entry.vala +++ b/src/client/composer/composer-email-entry.vala @@ -58,7 +58,7 @@ public class Composer.EmailEntry : Gtk.Entry { } private void validate_addresses() { - bool is_valid = !this.addresses.is_empty; + bool is_valid = !this._addresses.is_empty; foreach (Geary.RFC822.MailboxAddress address in this.addresses) { if (!address.is_valid()) { is_valid = false; @@ -77,11 +77,11 @@ public class Composer.EmailEntry : Gtk.Entry { completion.update_model(); } - if (Geary.String.is_empty(text.strip())) { - this.addresses = new Geary.RFC822.MailboxAddresses(); + if (Geary.String.is_empty_or_whitespace(text)) { + this._addresses = new Geary.RFC822.MailboxAddresses(); this.is_valid = false; } else { - this.addresses = + this._addresses = new Geary.RFC822.MailboxAddresses.from_rfc822_string(text); this.is_valid = true; } From aa393a154f3e0ad4fb74646176d77dd6fe99915f Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Wed, 12 Feb 2020 13:07:09 +1100 Subject: [PATCH 009/336] Don't set an email autocomplete key when cursor is at beginning Fixes the autocomplete showing up again after having just completed an addresss. --- src/client/composer/contact-entry-completion.vala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/client/composer/contact-entry-completion.vala b/src/client/composer/contact-entry-completion.vala index 59a8ec06..9d794d82 100644 --- a/src/client/composer/contact-entry-completion.vala +++ b/src/client/composer/contact-entry-completion.vala @@ -125,7 +125,8 @@ public class ContactEntryCompletion : Gtk.EntryCompletion, Geary.BaseInterface { int current_char = 0; bool in_quote = false; while (text.get_next_char(ref next_idx, out c)) { - if (current_char == cursor_pos) { + if (current_char != 0 && + current_char == cursor_pos) { this.current_key = text.slice(start_idx, next_idx).strip(); this.cursor_at_address = this.address_parts.size; } From 03a11373f980f8d33f60023a46950a71e1e497e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=A8=D0=B8?= =?UTF-8?q?=D0=BB=D0=B8=D0=BD?= Date: Fri, 14 Feb 2020 14:03:10 +0300 Subject: [PATCH 010/336] ConversationListView: Really move conversations to Trash Conversations list context menu item says 'Move conversation to Trash', but archiving was being done instead. --- src/client/conversation-list/conversation-list-view.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/conversation-list/conversation-list-view.vala b/src/client/conversation-list/conversation-list-view.vala index 96acc4b8..c5bf6cda 100644 --- a/src/client/conversation-list/conversation-list-view.vala +++ b/src/client/conversation-list/conversation-list-view.vala @@ -337,7 +337,7 @@ public class ConversationListView : Gtk.TreeView, Geary.BaseInterface { this.selected.size ), Action.Window.prefix( - Application.MainWindow.ACTION_ARCHIVE_CONVERSATION + Application.MainWindow.ACTION_TRASH_CONVERSATION ) ); } else { From 6f44f89b48e5e9f6a6c2c85607792c60ed8023f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=A8=D0=B8?= =?UTF-8?q?=D0=BB=D0=B8=D0=BD?= Date: Fri, 14 Feb 2020 14:17:44 +0300 Subject: [PATCH 011/336] ConversationListView: Fix shift-to-delete inversion The 'Is Shift down' condition was accidentally inverted in commit 419bc6d051c76c0172d9866958aa978f91dfbaa1, resulting in inconsistency between the main toolbar and a conversations list context menu. --- src/client/conversation-list/conversation-list-view.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/conversation-list/conversation-list-view.vala b/src/client/conversation-list/conversation-list-view.vala index c5bf6cda..158708ca 100644 --- a/src/client/conversation-list/conversation-list-view.vala +++ b/src/client/conversation-list/conversation-list-view.vala @@ -328,7 +328,7 @@ public class ConversationListView : Gtk.TreeView, Geary.BaseInterface { GLib.Menu context_menu_model = new GLib.Menu(); var main = get_toplevel() as Application.MainWindow; if (main != null) { - if (main.is_shift_down) { + if (!main.is_shift_down) { context_menu_model.append( /// Translators: Context menu item ngettext( From b4fc3a6d74d498d034abc19ab617c2bf9ec4c2ce Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Sat, 15 Feb 2020 09:33:05 +1100 Subject: [PATCH 012/336] Improve handling when inserting email addresses from completion Fixes inserting an address overwriting an existing one, inserting addresses with multi-byte chars, and a few other bits and pieces. Closes #680 --- .../composer/contact-entry-completion.vala | 92 ++++++++++++------- 1 file changed, 57 insertions(+), 35 deletions(-) diff --git a/src/client/composer/contact-entry-completion.vala b/src/client/composer/contact-entry-completion.vala index 9d794d82..97e60b26 100644 --- a/src/client/composer/contact-entry-completion.vala +++ b/src/client/composer/contact-entry-completion.vala @@ -37,7 +37,7 @@ public class ContactEntryCompletion : Gtk.EntryCompletion, Geary.BaseInterface { private Gee.ArrayList address_parts = new Gee.ArrayList(); // Index of the email address the cursor is currently at - private int cursor_at_address = -1; + private int cursor_at_address = 0; private GLib.Cancellable? search_cancellable = null; private Gtk.TreeIter? last_iter = null; @@ -113,21 +113,35 @@ public class ContactEntryCompletion : Gtk.EntryCompletion, Geary.BaseInterface { Gtk.Entry? entry = get_entry() as Gtk.Entry; if (entry != null) { this.current_key = ""; - this.cursor_at_address = -1; + this.cursor_at_address = 0; this.address_parts.clear(); + // NB: Do not strip any white space from the addresses, + // otherwise we won't be able to accurately insert + // addresses in the middle of the list in + // ::insert_address_at_cursor. + string text = entry.get_text(); int cursor_pos = entry.get_position(); + int current_char = 0; + unichar c = 0; int start_idx = 0; int next_idx = 0; - unichar c = 0; - int current_char = 0; bool in_quote = false; while (text.get_next_char(ref next_idx, out c)) { - if (current_char != 0 && - current_char == cursor_pos) { - this.current_key = text.slice(start_idx, next_idx).strip(); + if (current_char == cursor_pos && + current_char != 0) { + if (c != ',' ) { + // Strip whitespace here though so it does not + // interfere with search and highlighting. + this.current_key = text.slice( + start_idx, next_idx + ).strip(); + } + // We're in the middle of the address, so it + // hasn't yet been added to the list and hence we + // don't need to subtract 1 from its size here this.cursor_at_address = this.address_parts.size; } @@ -135,7 +149,7 @@ public class ContactEntryCompletion : Gtk.EntryCompletion, Geary.BaseInterface { case ',': if (!in_quote) { // Don't include the comma in the address - string address = text.slice(start_idx, next_idx -1); + string address = text.slice(start_idx, next_idx - 1); this.address_parts.add(address); // Don't include it in the next one, either start_idx = next_idx; @@ -159,20 +173,24 @@ public class ContactEntryCompletion : Gtk.EntryCompletion, Geary.BaseInterface { private void insert_address_at_cursor(Gtk.TreeIter iter) { Gtk.Entry? entry = get_entry() as Gtk.Entry; if (entry != null) { + // Take care to do a delete then an insert here so that // Component.EntryUndo can combine the two into a single - // undoable command - int start_char = this.address_parts.slice( - 0, this.cursor_at_address - ).fold( - // address parts don't contain commas, so need to add - // an char width for it - (a, chars) => a.char_count() + chars + 1, 0 - ); - int end_char = ( - start_char + - this.address_parts[this.cursor_at_address].char_count() - ); + // undoable command. + + int start_char = 0; + if (this.cursor_at_address > 0) { + start_char = this.address_parts.slice( + 0, this.cursor_at_address + ).fold( + // Address parts don't contain commas, so need to add + // an char width for it. Don't need to worry about + // spaces because they are preserved by + // ::update_addresses. + (a, chars) => a.char_count() + chars + 1, 0 + ); + } + int end_char = entry.get_position(); // Format and use the selected address GLib.Value value; @@ -181,30 +199,34 @@ public class ContactEntryCompletion : Gtk.EntryCompletion, Geary.BaseInterface { (Geary.RFC822.MailboxAddress) value.get_object(); string formatted = mailbox.to_full_display(); if (this.cursor_at_address != 0) { - // This isn't the first address, so add some - // whitespace to pad it out + // Isn't the first address, so add some whitespace to + // pad it out formatted = " " + formatted; } - this.address_parts[this.cursor_at_address] = formatted; + if (entry.get_position() < entry.buffer.get_length() && + this.address_parts[this.cursor_at_address].strip() != + this.current_key.strip()) { + // Isn't at the end of the entry, and the address + // under the cursor does not simply consist of the + // lookup key (i.e. is effectively already empty + // otherwise), so add a comma to separate this address + // from the next one + formatted = formatted + ", "; + } + this.address_parts.insert(this.cursor_at_address, formatted); // Update the entry text - entry.delete_text(start_char, end_char); - entry.insert_text( - formatted, formatted.char_count(), ref start_char - ); + if (start_char < end_char) { + entry.delete_text(start_char, end_char); + } + entry.insert_text(formatted, -1, ref start_char); // Update the entry cursor position. The previous call // updates the start so just use that, but add extra space // for the comma and any white space at the start of the // next address. - ++start_char; - string? next_address = ( - this.cursor_at_address + 1 < this.address_parts.size - ? this.address_parts[this.cursor_at_address + 1] - : "" - ); - for (int i = 0; i < next_address.length && next_address[i] == ' '; i++) { - ++start_char; + if (start_char < entry.buffer.get_length()) { + start_char += 2; } entry.set_position(start_char); } From 233a1a6c37bb883fc9ebb0b4b314e429cd18cbf0 Mon Sep 17 00:00:00 2001 From: James Westman Date: Wed, 29 Jan 2020 12:43:50 -0600 Subject: [PATCH 013/336] composer: Improve spell check popover - Use a MenuButton - Separators between rows - Make the popover narrower - Put the country name below the language name, instead of in parenthesis - Ellipsize country/language names --- src/client/composer/composer-widget.vala | 25 ++++---- src/client/composer/spell-check-popover.vala | 65 ++++++++++++-------- ui/composer-widget.ui | 2 +- 3 files changed, 53 insertions(+), 39 deletions(-) diff --git a/src/client/composer/composer-widget.vala b/src/client/composer/composer-widget.vala index fc5f832a..40d4b30f 100644 --- a/src/client/composer/composer-widget.vala +++ b/src/client/composer/composer-widget.vala @@ -397,7 +397,7 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { [GtkChild] private Gtk.Button insert_link_button; [GtkChild] - private Gtk.Button select_dictionary_button; + private Gtk.MenuButton select_dictionary_button; [GtkChild] private Gtk.Label info_label; @@ -432,7 +432,6 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { private string body_html = ""; - private SpellCheckPopover? spell_check_popover = null; private string? pointer_url = null; private string? cursor_url = null; private bool is_attachment_overlay_visible = false; @@ -627,6 +626,16 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { var cells = this.from_multiple.get_cells(); ((Gtk.CellRendererText) cells.data).ellipsize = END; + // Create spellcheck popover + Application.Configuration config = this.application.config; + var spell_check_popover = new SpellCheckPopover( + this.select_dictionary_button, config + ); + spell_check_popover.selection_changed.connect((active_langs) => { + config.set_spell_check_languages(active_langs); + update_subject_spell_checker(); + }); + load_entry_completions(); update_color_icon.begin(Util.Gtk.rgba(0, 0, 0, 0)); @@ -2371,17 +2380,7 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { } private void on_select_dictionary(SimpleAction action, Variant? param) { - if (this.spell_check_popover == null) { - Application.Configuration config = this.application.config; - this.spell_check_popover = new SpellCheckPopover( - this.select_dictionary_button, config - ); - this.spell_check_popover.selection_changed.connect((active_langs) => { - config.set_spell_check_languages(active_langs); - update_subject_spell_checker(); - }); - } - this.spell_check_popover.toggle(); + this.select_dictionary_button.toggled(); } private bool on_editor_key_press_event(Gdk.EventKey event) { diff --git a/src/client/composer/spell-check-popover.vala b/src/client/composer/spell-check-popover.vala index 44dfa021..e4b0f445 100644 --- a/src/client/composer/spell-check-popover.vala +++ b/src/client/composer/spell-check-popover.vala @@ -67,12 +67,27 @@ public class SpellCheckPopover { country_name = Util.International.country_name_from_locale(lang_code); string label_text = lang_name; - if (country_name != null) - label_text += " (" + country_name + ")"; Gtk.Label label = new Gtk.Label(label_text); - label.set_halign(Gtk.Align.START); + label.tooltip_text = label_text; + label.halign = Gtk.Align.START; + label.ellipsize = END; + label.xalign = 0; - box.pack_start(label, false, false); + if (country_name != null) { + Gtk.Box label_box = new Gtk.Box(VERTICAL, 3); + Gtk.Label country_label = new Gtk.Label(country_name); + country_label.tooltip_text = country_name; + country_label.halign = Gtk.Align.START; + country_label.ellipsize = END; + country_label.xalign = 0; + country_label.get_style_context().add_class("dim-label"); + + label_box.add(label); + label_box.add(country_label); + box.pack_start(label_box, false, false); + } else { + box.pack_start(label, false, false); + } Gtk.IconSize sz = Gtk.IconSize.SMALL_TOOLBAR; active_image = new Gtk.Image.from_icon_name("object-select-symbolic", sz); @@ -81,6 +96,7 @@ public class SpellCheckPopover { box.pack_start(active_image, false, false, 6); box.pack_start(this.visibility_button, true, true); this.visibility_button.halign = Gtk.Align.END; // Make the button stay at the right end of the screen + this.visibility_button.valign = CENTER; this.visibility_button.clicked.connect(on_visibility_clicked); @@ -176,13 +192,22 @@ public class SpellCheckPopover { } - public SpellCheckPopover(Gtk.Widget button, Application.Configuration config) { + public SpellCheckPopover(Gtk.MenuButton button, Application.Configuration config) { this.popover = new Gtk.Popover(button); + button.popover = this.popover; this.config = config; this.selected_rows = new GLib.GenericSet(GLib.str_hash, GLib.str_equal); setup_popover(); } + private void header_function(Gtk.ListBoxRow row, Gtk.ListBoxRow? before) { + if (before != null) { + if (row.get_header() == null) { + row.set_header(new Gtk.Separator(HORIZONTAL)); + } + } + } + private bool filter_function (Gtk.ListBoxRow row) { string text = search_box.get_text(); SpellCheckLangRow r = row as SpellCheckLangRow; @@ -228,8 +253,8 @@ public class SpellCheckPopover { content.pack_start(view, true, true); langs_list.set_filter_func(this.filter_function); + langs_list.set_header_func(this.header_function); - view.set_size_request(350, 300); popover.add(content); // Make sure that the search box does not get the focus first. We want it to have it only @@ -239,6 +264,9 @@ public class SpellCheckPopover { content.set_margin_end(6); content.set_margin_top(6); content.set_margin_bottom(6); + + popover.show.connect(this.on_shown); + popover.set_size_request(360, 350); } private void on_row_activated(Gtk.ListBoxRow row) { @@ -262,26 +290,13 @@ public class SpellCheckPopover { langs_list.invalidate_filter(); } - /* - * Toggle the visibility of the popover, and return the final status. - * - * @return true if the Popover is visible after the call, false otherwise. - */ - public bool toggle() { - if (popover.get_visible()) { - popover.hide(); - } - else { - // Make sure that when the box is shown the list is not expanded anymore. - search_box.set_text(""); - content.set_focus_child(view); - is_expanded = false; - langs_list.invalidate_filter(); + private void on_shown() { + search_box.set_text(""); + content.set_focus_child(view); + is_expanded = false; + langs_list.invalidate_filter(); - popover.show_all(); - } - - return popover.get_visible(); + popover.show_all(); } private void on_row_enabled_changed(SpellCheckLangRow row, diff --git a/ui/composer-widget.ui b/ui/composer-widget.ui index d205a7f4..aad1080d 100644 --- a/ui/composer-widget.ui +++ b/ui/composer-widget.ui @@ -1192,7 +1192,7 @@ - + True True False From d3aff682734fca9ec8342841399154e839aa6ead Mon Sep 17 00:00:00 2001 From: James Westman Date: Wed, 29 Jan 2020 15:48:43 -0600 Subject: [PATCH 014/336] composer: Style improvements for attachment box - Add separators between rows - Use icon instead of text for remove button --- src/client/composer/composer-widget.vala | 12 +++++++++--- ui/composer-widget.ui | 5 ++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/client/composer/composer-widget.vala b/src/client/composer/composer-widget.vala index 40d4b30f..ad73faf3 100644 --- a/src/client/composer/composer-widget.vala +++ b/src/client/composer/composer-widget.vala @@ -1821,8 +1821,14 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { ); } + Gtk.Box wrapper_box = new Gtk.Box(VERTICAL, 0); + this.attachments_box.pack_start(wrapper_box); + wrapper_box.pack_start(new Gtk.Separator(HORIZONTAL)); + Gtk.Box box = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 6); - this.attachments_box.pack_start(box); + box.margin_top = 6; + box.margin_bottom = 6; + wrapper_box.pack_start(box); /// In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" string label_text = _("%s (%s)").printf(target.get_basename(), @@ -1833,9 +1839,9 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { label.margin_start = 4; label.margin_end = 4; - Gtk.Button remove_button = new Gtk.Button.with_mnemonic(Stock._REMOVE); + Gtk.Button remove_button = new Gtk.Button.from_icon_name("user-trash-symbolic", BUTTON); box.pack_start(remove_button, false, false); - remove_button.clicked.connect(() => remove_attachment(target, box)); + remove_button.clicked.connect(() => remove_attachment(target, wrapper_box)); update_attachments_view(); } diff --git a/ui/composer-widget.ui b/ui/composer-widget.ui index aad1080d..515891be 100644 --- a/ui/composer-widget.ui +++ b/ui/composer-widget.ui @@ -1230,10 +1230,9 @@ 6 6 6 - 6 - 6 + 0 + 3 vertical - 6 From 66bbb576a6a7e442dc1427a5ea9a8ee919c1f79d Mon Sep 17 00:00:00 2001 From: James Westman Date: Wed, 29 Jan 2020 16:30:19 -0600 Subject: [PATCH 015/336] composer: Make format menu more generic It still only contains text formatting options, but it uses the view-more-symbolic icon. --- src/client/composer/composer-widget.vala | 4 ++-- ui/composer-widget.ui | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/client/composer/composer-widget.vala b/src/client/composer/composer-widget.vala index ad73faf3..ac248221 100644 --- a/src/client/composer/composer-widget.vala +++ b/src/client/composer/composer-widget.vala @@ -392,7 +392,7 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { [GtkChild] private Gtk.Stack font_button_stack; [GtkChild] private Gtk.MenuButton font_size_button; [GtkChild] private Gtk.Image font_color_icon; - [GtkChild] private Gtk.MenuButton text_format_button; + [GtkChild] private Gtk.MenuButton more_options_button; [GtkChild] private Gtk.Button insert_link_button; @@ -2147,7 +2147,7 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { this.editor.set_rich_text(compose_as_html); this.application.config.compose_as_html = compose_as_html; - this.text_format_button.popover.popdown(); + this.more_options_button.popover.popdown(); } private void reparent_widget(Gtk.Widget child, Gtk.Container new_parent) { diff --git a/ui/composer-widget.ui b/ui/composer-widget.ui index 515891be..60cbda99 100644 --- a/ui/composer-widget.ui +++ b/ui/composer-widget.ui @@ -1153,18 +1153,18 @@ - + True False False False - rich_text_menu - Enable or disable rich text mode + more_options_menu + More options up True - format-text-bold-symbolic + view-more-symbolic @@ -1297,7 +1297,7 @@ - +
    _Rich Text From adf6f2b4a7529397d23f1033a0ceaaf56237936a Mon Sep 17 00:00:00 2001 From: James Westman Date: Thu, 30 Jan 2020 14:17:41 -0600 Subject: [PATCH 016/336] composer: Improve "insert link" popover - Use transitions instead of show/hide - Make the popover narrower (360px instead of 40 chars) - Use text labels for "Add" and "Insert" rather than the check icon - Show the button as active when the popover is open --- .../composer/composer-link-popover.vala | 22 ++-------- src/client/composer/composer-widget.vala | 13 +++--- ui/composer-link-popover.ui | 43 +++---------------- 3 files changed, 17 insertions(+), 61 deletions(-) diff --git a/src/client/composer/composer-link-popover.vala b/src/client/composer/composer-link-popover.vala index 048c50f9..a4774a40 100644 --- a/src/client/composer/composer-link-popover.vala +++ b/src/client/composer/composer-link-popover.vala @@ -50,10 +50,7 @@ public class Composer.LinkPopover : Gtk.Popover { private Gtk.Button update; [GtkChild] - private Gtk.Button delete; - - [GtkChild] - private Gtk.Button open; + private Gtk.Button remove; private Geary.TimeoutManager validation_timeout; @@ -64,9 +61,6 @@ public class Composer.LinkPopover : Gtk.Popover { /** Emitted when the link URL was activated. */ public signal void link_activate(); - /** Emitted when the open button was activated. */ - public signal void link_open(); - /** Emitted when the delete button was activated. */ public signal void link_delete(); @@ -77,7 +71,7 @@ public class Composer.LinkPopover : Gtk.Popover { switch (type) { case Type.NEW_LINK: this.update.hide(); - this.delete.hide(); + this.remove.hide(); break; case Type.EXISTING_LINK: this.insert.hide(); @@ -135,10 +129,6 @@ public class Composer.LinkPopover : Gtk.Popover { } } - // Don't let the user open invalid and mailto links, it's not - // terribly useful - this.open.set_sensitive(is_nominal && !is_mailto); - Gtk.StyleContext style = this.url.get_style_context(); Gtk.EntryIconPosition pos = Gtk.EntryIconPosition.SECONDARY; if (!is_valid) { @@ -177,14 +167,8 @@ public class Composer.LinkPopover : Gtk.Popover { } [GtkCallback] - private void on_delete_clicked() { + private void on_remove_clicked() { link_delete(); popdown(); } - - [GtkCallback] - private void on_open_clicked() { - link_open(); - } - } diff --git a/src/client/composer/composer-widget.vala b/src/client/composer/composer-widget.vala index ac248221..ebc4a0d6 100644 --- a/src/client/composer/composer-widget.vala +++ b/src/client/composer/composer-widget.vala @@ -2640,6 +2640,8 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { popover.set_link_url(url); popover.closed.connect(() => { this.editor.free_selection(selection_id); + }); + popover.hide.connect(() => { Idle.add(() => { popover.destroy(); return Source.REMOVE; }); }); popover.link_activate.connect((link_uri) => { @@ -2648,9 +2650,6 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { popover.link_delete.connect(() => { this.editor.delete_link(selection_id); }); - popover.link_open.connect(() => { - this.application.show_uri.begin(popover.link_uri); - }); return popover; } @@ -2721,7 +2720,7 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { LinkPopover popover = this.new_link_popover.end(res); popover.set_relative_to(this.editor); popover.set_pointing_to(location); - popover.show(); + popover.popup(); }); } return Gdk.EVENT_PROPAGATE; @@ -2833,6 +2832,8 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { this.new_link_popover.begin(type, url, (obj, res) => { LinkPopover popover = this.new_link_popover.end(res); + var style = this.insert_link_button.get_style_context(); + // We have to disconnect then reconnect the selection // changed signal for the duration of the popover // being active since if the user selects the text in @@ -2842,10 +2843,12 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { this.editor.selection_changed.disconnect(on_selection_changed); popover.closed.connect(() => { this.editor.selection_changed.connect(on_selection_changed); + style.set_state(NORMAL); }); popover.set_relative_to(this.insert_link_button); - popover.show(); + popover.popup(); + style.set_state(ACTIVE); }); } diff --git a/ui/composer-link-popover.ui b/ui/composer-link-popover.ui index 0d4a9396..463578ed 100644 --- a/ui/composer-link-popover.ui +++ b/ui/composer-link-popover.ui @@ -5,6 +5,7 @@ From c53b1b0a30b8e6cfb8e53fe052f6b7a2fed1f4c3 Mon Sep 17 00:00:00 2001 From: James Westman Date: Thu, 30 Jan 2020 14:22:19 -0600 Subject: [PATCH 017/336] composer: Custom icon for "show formatting" button This replaces the italic icon with a new, custom icon. --- icons/format-toolbar-toggle-symbolic.svg | 76 ++++++++++++++++++++++++ icons/meson.build | 1 + ui/composer-widget.ui | 2 +- 3 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 icons/format-toolbar-toggle-symbolic.svg diff --git a/icons/format-toolbar-toggle-symbolic.svg b/icons/format-toolbar-toggle-symbolic.svg new file mode 100644 index 00000000..fa48b3a8 --- /dev/null +++ b/icons/format-toolbar-toggle-symbolic.svg @@ -0,0 +1,76 @@ + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/icons/meson.build b/icons/meson.build index 138ed558..94a0b9a4 100644 --- a/icons/meson.build +++ b/icons/meson.build @@ -11,6 +11,7 @@ icon_files = files( 'format-ordered-list-symbolic.svg', 'format-ordered-list-symbolic-rtl.svg', 'format-text-remove-symbolic.svg', + 'format-toolbar-toggle-symbolic.svg', 'format-unordered-list-symbolic.svg', 'format-unordered-list-symbolic-rtl.svg', 'mail-drafts-symbolic.svg', diff --git a/ui/composer-widget.ui b/ui/composer-widget.ui index 60cbda99..be5f37ff 100644 --- a/ui/composer-widget.ui +++ b/ui/composer-widget.ui @@ -1183,7 +1183,7 @@ True - format-text-italic-symbolic + format-toolbar-toggle-symbolic
    From 113bb7e8975010bdb846f1b36a4e84633b4d9cd7 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Mon, 17 Feb 2020 07:49:40 +1100 Subject: [PATCH 018/336] Set conversation trusted email addresses as tooltips This makes abbreviated contact name display consistent with other abbreviated forms, and reduces the effort needed to discover the actual email address. See #709 --- src/client/conversation-viewer/conversation-message.vala | 1 + 1 file changed, 1 insertion(+) diff --git a/src/client/conversation-viewer/conversation-message.vala b/src/client/conversation-viewer/conversation-message.vala index e6548a6d..3b9a6328 100644 --- a/src/client/conversation-viewer/conversation-message.vala +++ b/src/client/conversation-viewer/conversation-message.vala @@ -158,6 +158,7 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { this.displayed = new Geary.RFC822.MailboxAddress( this.contact.display_name, this.source.address ); + this.tooltip_text = this.source.address; } else { // Display both the display name and the email address // so that the user has the full information at hand From 0d89478d53bdb7286f753a7f9a1329c16b2306c7 Mon Sep 17 00:00:00 2001 From: Daniel Mustieles Date: Mon, 17 Feb 2020 14:40:40 +0100 Subject: [PATCH 019/336] Updated Spanish translation --- po/es.po | 355 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 180 insertions(+), 175 deletions(-) diff --git a/po/es.po b/po/es.po index daaa90cd..054eccdd 100644 --- a/po/es.po +++ b/po/es.po @@ -18,8 +18,8 @@ msgid "" msgstr "" "Project-Id-Version: geary-0.4.1\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2020-01-23 08:37+0000\n" -"PO-Revision-Date: 2020-01-23 12:42+0100\n" +"POT-Creation-Date: 2020-02-16 20:26+0000\n" +"PO-Revision-Date: 2020-02-17 11:53+0100\n" "Last-Translator: Daniel Mustieles \n" "Language-Team: Spanish - Spain \n" "Language: es_ES\n" @@ -42,7 +42,7 @@ msgstr "Enviar archivos mediante Geary" #: desktop/org.gnome.Geary.appdata.xml.in.in:12 #: desktop/org.gnome.Geary.desktop.in.in:3 #: src/client/accounts/accounts-editor-servers-pane.vala:555 -#: src/client/application/application-main-window.vala:547 +#: src/client/application/application-main-window.vala:555 msgid "Geary" msgstr "Geary" @@ -624,56 +624,56 @@ msgid_plural "%d days back" msgstr[0] "hace %d día" msgstr[1] "hace %d días" -#: src/client/accounts/accounts-editor-list-pane.vala:252 -#: src/client/application/application-main-window.vala:2043 +#: src/client/accounts/accounts-editor-list-pane.vala:255 +#: src/client/application/application-main-window.vala:2053 msgid "Undo" msgstr "Deshacer" -#: src/client/accounts/accounts-editor-list-pane.vala:261 -#: src/client/application/application-main-window.vala:2030 +#: src/client/accounts/accounts-editor-list-pane.vala:264 +#: src/client/application/application-main-window.vala:2036 msgid "Redo" msgstr "Rehacer" -#: src/client/accounts/accounts-editor-list-pane.vala:355 -#: src/client/accounts/accounts-editor-list-pane.vala:443 +#: src/client/accounts/accounts-editor-list-pane.vala:358 +#: src/client/accounts/accounts-editor-list-pane.vala:446 #: src/client/accounts/accounts-editor-row.vala:279 msgid "Gmail" msgstr "Gmail" -#: src/client/accounts/accounts-editor-list-pane.vala:359 -#: src/client/accounts/accounts-editor-list-pane.vala:447 +#: src/client/accounts/accounts-editor-list-pane.vala:362 +#: src/client/accounts/accounts-editor-list-pane.vala:450 #: src/client/accounts/accounts-editor-row.vala:283 msgid "Outlook.com" msgstr "Outlook.com" -#: src/client/accounts/accounts-editor-list-pane.vala:363 -#: src/client/accounts/accounts-editor-list-pane.vala:451 +#: src/client/accounts/accounts-editor-list-pane.vala:366 +#: src/client/accounts/accounts-editor-list-pane.vala:454 #: src/client/accounts/accounts-editor-row.vala:287 msgid "Yahoo" msgstr "Yahoo" #. Translators: Tooltip for accounts that have been #. loaded but disabled by the user. -#: src/client/accounts/accounts-editor-list-pane.vala:381 +#: src/client/accounts/accounts-editor-list-pane.vala:384 msgid "This account has been disabled" msgstr "Esta cuenta se ha desactivado" #. Translators: Tooltip for accounts that have been #. loaded but because of some error are not able to be #. used. -#: src/client/accounts/accounts-editor-list-pane.vala:390 +#: src/client/accounts/accounts-editor-list-pane.vala:393 msgid "This account has encountered a problem and is unavailable" msgstr "Esta cuenta ha encontrado un problema y no está disponible" #. Translators: Label for adding a generic email account -#: src/client/accounts/accounts-editor-list-pane.vala:440 +#: src/client/accounts/accounts-editor-list-pane.vala:443 msgid "Other email providers" msgstr "Otros proveedores de correo-e" #. Translators: Notification shown after removing an #. account. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:557 +#: src/client/accounts/accounts-editor-list-pane.vala:560 #, c-format msgid "Account “%s” removed" msgstr "Cuenta «%s» eliminada" @@ -681,7 +681,7 @@ msgstr "Cuenta «%s» eliminada" #. Translators: Notification shown after removing an account #. is undone. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:564 +#: src/client/accounts/accounts-editor-list-pane.vala:567 #, c-format msgid "Account “%s” restored" msgstr "Cuenta «%s» restaurada" @@ -967,7 +967,7 @@ msgstr "Lanzamiento de la distribución" msgid "Installation prefix" msgstr "Prefijo de instalación" -#: src/client/application/application-client.vala:566 +#: src/client/application/application-client.vala:587 #, c-format msgid "About %s" msgstr "Acerca de %s" @@ -975,7 +975,7 @@ msgstr "Acerca de %s" #. Translators: add your name and email address to receive #. credit in the About dialog For example: Yamada Taro #. -#: src/client/application/application-client.vala:570 +#: src/client/application/application-client.vala:591 msgid "translator-credits" msgstr "" "Daniel Mustieles , 2015 - 2017\n" @@ -983,37 +983,37 @@ msgstr "" #. / Warning printed to the console when a deprecated #. / command line option is used. -#: src/client/application/application-client.vala:938 +#: src/client/application/application-client.vala:937 msgid "The `--hidden` option is deprecated and will be removed in the future." msgstr "La opción «--hidden» está obsoleta y se eliminará en el futuro." #. / Command line warning, string substitution #. / is the given argument -#: src/client/application/application-client.vala:971 +#: src/client/application/application-client.vala:970 #, c-format msgid "Unrecognised program argument: “%s”" msgstr "Opción de la línea de comandos no reconocida: «%s»" #. / Notification title. -#: src/client/application/application-controller.vala:457 +#: src/client/application/application-controller.vala:458 #, c-format msgid "A problem occurred sending email for %s" msgstr "Ha ocurrido un error al enviar el correo para %s" #. / Notification body -#: src/client/application/application-controller.vala:461 +#: src/client/application/application-controller.vala:462 msgid "Email will not be sent until re-connected" msgstr "El correo no se enviará hasta que se vuelva a conectar" #. / Translators: Label for in-app notification -#: src/client/application/application-controller.vala:567 +#: src/client/application/application-controller.vala:568 msgid "Conversation marked" msgid_plural "Conversations marked" msgstr[0] "Conversación marcada" msgstr[1] "Conversaciones marcadas" #. / Translators: Label for in-app notification -#: src/client/application/application-controller.vala:573 +#: src/client/application/application-controller.vala:574 msgid "Conversation un-marked" msgid_plural "Conversations un-marked" msgstr[0] "Conversación desmarcada" @@ -1022,8 +1022,8 @@ msgstr[1] "Conversaciones desmarcadas" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:599 -#: src/client/application/application-controller.vala:683 +#: src/client/application/application-controller.vala:600 +#: src/client/application/application-controller.vala:684 #, c-format msgid "Conversation moved to %s" msgid_plural "Conversations moved to %s" @@ -1035,8 +1035,8 @@ msgstr[1] "Conversaciones movidas a %s" #. / of the source folder. #. / Translators: Label for in-app notification. String #. / substitution is the name of the destination folder. -#: src/client/application/application-controller.vala:607 -#: src/client/application/application-controller.vala:629 +#: src/client/application/application-controller.vala:608 +#: src/client/application/application-controller.vala:630 #, c-format msgid "Conversation restored to %s" msgid_plural "Conversations restored to %s" @@ -1044,7 +1044,7 @@ msgstr[0] "Conversación restaurada a %s" msgstr[1] "Conversaciones restauradas a %s" #. / Translators: Label for in-app notification. -#: src/client/application/application-controller.vala:650 +#: src/client/application/application-controller.vala:651 msgid "Conversation archived" msgid_plural "Conversations archived" msgstr[0] "Conversación archivada" @@ -1052,7 +1052,7 @@ msgstr[1] "Conversaciones archivadas" #. / Translators: Label for in-app notification. String #. / substitution is the name of the destination folder. -#: src/client/application/application-controller.vala:706 +#: src/client/application/application-controller.vala:707 #, c-format msgid "Message restored to %s" msgid_plural "Messages restored to %s" @@ -1060,7 +1060,7 @@ msgstr[0] "Mensaje restaurado a %s" msgstr[1] "Mensajes restaurados a %s" #. / Translators: Label for in-app notification. -#: src/client/application/application-controller.vala:727 +#: src/client/application/application-controller.vala:728 msgid "Message archived" msgid_plural "Messages archived" msgstr[0] "Mensaje archivado" @@ -1069,7 +1069,7 @@ msgstr[1] "Mensajes archivados" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:762 +#: src/client/application/application-controller.vala:763 #, c-format msgid "Message moved to %s" msgid_plural "Messages moved to %s" @@ -1079,7 +1079,7 @@ msgstr[1] "Mensajes movidos a %s" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:790 +#: src/client/application/application-controller.vala:791 #, c-format msgid "Conversation labelled as %s" msgid_plural "Conversations labelled as %s" @@ -1089,19 +1089,19 @@ msgstr[1] "Conversaciones etiquetadas como %s" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:798 +#: src/client/application/application-controller.vala:799 #, c-format msgid "Conversation un-labelled as %s" msgid_plural "Conversations un-labelled as %s" msgstr[0] "Conversación desetiquetada como %s" msgstr[1] "Conversaciones desetiquetadas como %s" -#: src/client/application/application-controller.vala:1221 +#: src/client/application/application-controller.vala:1222 #, c-format msgid "Unable to open the database for %s" msgstr "No se pudo abrir la base de datos local para %s" -#: src/client/application/application-controller.vala:1222 +#: src/client/application/application-controller.vala:1223 #, c-format msgid "" "There was an error opening the local mail database for this account. This is " @@ -1126,20 +1126,20 @@ msgstr "" "Reconstruir la base de datos destruirá todo el correo guardado de forma " "local y sus adjuntos. El correo del servidor permanecerá intacto." -#: src/client/application/application-controller.vala:1224 +#: src/client/application/application-controller.vala:1225 msgid "_Rebuild" msgstr "_Reconstruir" -#: src/client/application/application-controller.vala:1224 +#: src/client/application/application-controller.vala:1225 msgid "E_xit" msgstr "_Salir" -#: src/client/application/application-controller.vala:1234 +#: src/client/application/application-controller.vala:1235 #, c-format msgid "Unable to rebuild database for “%s”" msgstr "No se puede reconstruir la base de datos para «%s»" -#: src/client/application/application-controller.vala:1235 +#: src/client/application/application-controller.vala:1236 #, c-format msgid "" "Error during rebuild:\n" @@ -1152,34 +1152,34 @@ msgstr "" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:1558 +#: src/client/application/application-controller.vala:1559 #, c-format msgid "Email sent to %s" msgstr "Correo enviado a %s" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2641 +#: src/client/application/application-controller.vala:2642 #, c-format msgid "Email to %s queued for delivery" msgstr "Correo a %s encolado para su entrega" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2705 +#: src/client/application/application-controller.vala:2706 #, c-format msgid "Email to %s saved" msgstr "Correo a %s guardado" #. / Translators: A label for an in-app notification. -#: src/client/application/application-controller.vala:2720 -#: src/client/application/application-controller.vala:2778 +#: src/client/application/application-controller.vala:2721 +#: src/client/application/application-controller.vala:2779 msgid "Composer could not be restored" msgstr "No se pudo restaurar el editor" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2763 +#: src/client/application/application-controller.vala:2764 #, c-format msgid "Email to %s discarded" msgstr "Correo a %s descartado" @@ -1187,54 +1187,54 @@ msgstr "Correo a %s descartado" #. / Translators: Main window title, first string #. / substitution being the currently selected folder name, #. / the second being the selected account name. -#: src/client/application/application-main-window.vala:552 +#: src/client/application/application-main-window.vala:560 #, c-format msgid "%s — %s" msgstr "%s — %s" -#: src/client/application/application-main-window.vala:961 +#: src/client/application/application-main-window.vala:967 msgid "Labels" msgstr "Etiquetas" #. / Translators: Primary text for a confirmation dialog -#: src/client/application/application-main-window.vala:1300 +#: src/client/application/application-main-window.vala:1306 msgid "Do you want to permanently delete this conversation?" msgid_plural "Do you want to permanently delete these conversations?" msgstr[0] "¿Quiere eliminar permanentemente esta conversación?" msgstr[1] "¿Quiere eliminar permanentemente estas conversaciones?" -#: src/client/application/application-main-window.vala:1305 -#: src/client/application/application-main-window.vala:1320 +#: src/client/application/application-main-window.vala:1311 +#: src/client/application/application-main-window.vala:1326 msgid "Delete" msgstr "Eliminar" #. / Translators: Primary text for a confirmation dialog -#: src/client/application/application-main-window.vala:1315 +#: src/client/application/application-main-window.vala:1321 msgid "Do you want to permanently delete this message?" msgid_plural "Do you want to permanently delete these messages?" msgstr[0] "¿Quiere eliminar permanentemente este mensaje?" msgstr[1] "¿Quiere eliminar permanentemente estos mensajes?" -#: src/client/application/application-main-window.vala:1328 +#: src/client/application/application-main-window.vala:1334 #, c-format msgid "Empty all email from your %s folder?" msgstr "¿Quiere eliminar todos los mensajes de la carpeta «%s»?" -#: src/client/application/application-main-window.vala:1331 +#: src/client/application/application-main-window.vala:1337 msgid "This removes the email from Geary and your email server." msgstr "" "Esto eliminará el mensaje de Geary y del servidor de correo electrónico." -#: src/client/application/application-main-window.vala:1332 +#: src/client/application/application-main-window.vala:1338 msgid "This cannot be undone." msgstr "Esto no se puede deshacer." -#: src/client/application/application-main-window.vala:1333 +#: src/client/application/application-main-window.vala:1339 #, c-format msgid "Empty %s" msgstr "Vaciar %s" -#: src/client/application/application-main-window.vala:1663 +#: src/client/application/application-main-window.vala:1669 #, c-format msgid "%s (%d)" msgstr "%s (%d)" @@ -1245,7 +1245,7 @@ msgstr "%s (%d)" #. Document (100.9MB) #. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" #: src/client/components/components-attachment-pane.vala:107 -#: src/client/composer/composer-widget.vala:1826 +#: src/client/composer/composer-widget.vala:1834 #, c-format msgid "%s (%s)" msgstr "%s (%s)" @@ -1384,37 +1384,37 @@ msgstr "Se necesita un nombre de servidor" msgid "Could not look up server name" msgstr "No se pudo encontrar el nombre del servidor" -#: src/client/components/main-toolbar.vala:138 +#: src/client/components/main-toolbar.vala:116 msgid "Mark conversation" msgid_plural "Mark conversations" msgstr[0] "Marcar conversación" msgstr[1] "Marcar conversaciones" -#: src/client/components/main-toolbar.vala:143 +#: src/client/components/main-toolbar.vala:121 msgid "Add label to conversation" msgid_plural "Add label to conversations" msgstr[0] "Añadir etiqueta a la conversación" msgstr[1] "Añadir etiqueta a las conversaciones" -#: src/client/components/main-toolbar.vala:148 +#: src/client/components/main-toolbar.vala:126 msgid "Move conversation" msgid_plural "Move conversations" msgstr[0] "Mover conversación" msgstr[1] "Mover conversaciones" -#: src/client/components/main-toolbar.vala:153 +#: src/client/components/main-toolbar.vala:131 msgid "Archive conversation" msgid_plural "Archive conversations" msgstr[0] "Archivar conversación" msgstr[1] "Archivar conversación" -#: src/client/components/main-toolbar.vala:164 +#: src/client/components/main-toolbar.vala:142 msgid "Move conversation to Trash" msgid_plural "Move conversations to Trash" msgstr[0] "Mover conversación a la papelera" msgstr[1] "Mover conversaciones a la papelera" -#: src/client/components/main-toolbar.vala:174 +#: src/client/components/main-toolbar.vala:152 msgid "Delete conversation" msgid_plural "Delete conversations" msgstr[0] "Eliminar conversación" @@ -1563,15 +1563,15 @@ msgstr "_Guardar" msgid "_Keep" msgstr "_Mantener" -#: src/client/composer/composer-link-popover.vala:149 +#: src/client/composer/composer-link-popover.vala:139 msgid "Link URL is not correctly formatted, e.g. http://example.com" msgstr "El URL del enlace no tiene el formato correcto, ej. http://ejemplo.com" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid link URL" msgstr "Enlace a URL no válido" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid email address" msgstr "Dirección correo-e no válida" @@ -1580,19 +1580,19 @@ msgstr "Dirección correo-e no válida" msgid "New Message" msgstr "Mensaje nuevo" -#: src/client/composer/composer-widget.vala:214 +#: src/client/composer/composer-widget.vala:217 msgid "Saved" msgstr "Guardado" -#: src/client/composer/composer-widget.vala:215 +#: src/client/composer/composer-widget.vala:218 msgid "Saving" msgstr "Guardando" -#: src/client/composer/composer-widget.vala:216 +#: src/client/composer/composer-widget.vala:219 msgid "Error saving" msgstr "Error al guardar" -#: src/client/composer/composer-widget.vala:217 +#: src/client/composer/composer-widget.vala:220 msgid "Press Backspace to delete quote" msgstr "Pulse Retroceso para eliminar la cita" @@ -1601,7 +1601,7 @@ msgstr "Pulse Retroceso para eliminar la cita" #. checking, include all variants of each word. No spaces are #. allowed. The words will be converted to lower case based on #. locale and English versions included automatically. -#: src/client/composer/composer-widget.vala:233 +#: src/client/composer/composer-widget.vala:236 msgid "" "attach|attaching|attaches|attachment|attachments|attached|enclose|enclosed|" "enclosing|encloses|enclosure|enclosures" @@ -1612,90 +1612,90 @@ msgstr "" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. Keep, Discard or Cancel. -#: src/client/composer/composer-widget.vala:823 +#: src/client/composer/composer-widget.vala:843 msgid "Do you want to keep or discard this draft message?" msgstr "¿Quiere mantener o descartar este mensaje en borrador?" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. only Discard or Cancel. -#: src/client/composer/composer-widget.vala:849 +#: src/client/composer/composer-widget.vala:869 msgid "Do you want to discard this draft message?" msgstr "¿Quiere descartar este mensaje en borrador?" -#: src/client/composer/composer-widget.vala:1492 +#: src/client/composer/composer-widget.vala:1503 msgid "Send message with an empty subject and body?" msgstr "¿Quiere enviar el mensaje sin asunto ni cuerpo?" -#: src/client/composer/composer-widget.vala:1494 +#: src/client/composer/composer-widget.vala:1505 msgid "Send message with an empty subject?" msgstr "¿Quiere enviar el mensaje sin asunto?" -#: src/client/composer/composer-widget.vala:1496 +#: src/client/composer/composer-widget.vala:1507 msgid "Send message with an empty body?" msgstr "¿Quiere enviar el mensaje sin cuerpo?" -#: src/client/composer/composer-widget.vala:1505 +#: src/client/composer/composer-widget.vala:1516 msgid "Send message without an attachment?" msgstr "¿Quiere enviar el mensaje sin el archivo adjunto?" -#: src/client/composer/composer-widget.vala:1818 +#: src/client/composer/composer-widget.vala:1820 #, c-format msgid "“%s” already attached for delivery." msgstr "Ya se ha adjuntado «%s» para enviarlo." -#: src/client/composer/composer-widget.vala:1848 -#: src/client/composer/composer-widget.vala:1898 +#: src/client/composer/composer-widget.vala:1856 +#: src/client/composer/composer-widget.vala:1906 #, c-format msgid "“%s” is an empty file." msgstr "«%s» es un archivo vacío." -#: src/client/composer/composer-widget.vala:1886 +#: src/client/composer/composer-widget.vala:1894 #, c-format msgid "“%s” could not be found." msgstr "No se pudo encontrar «%s»." -#: src/client/composer/composer-widget.vala:1892 +#: src/client/composer/composer-widget.vala:1900 #, c-format msgid "“%s” is a folder." msgstr "«%s» es una carpeta." -#: src/client/composer/composer-widget.vala:1911 +#: src/client/composer/composer-widget.vala:1919 #, c-format msgid "“%s” could not be opened for reading." msgstr "No se pudo abrir «%s» para lectura." -#: src/client/composer/composer-widget.vala:1919 +#: src/client/composer/composer-widget.vala:1927 msgid "Cannot add attachment" msgstr "No se puede adjuntar el archivo" #. Translators: Human-readable version of the RFC 822 To header -#: src/client/composer/composer-widget.vala:1976 +#: src/client/composer/composer-widget.vala:1984 #: src/client/conversation-viewer/conversation-email.vala:559 #: src/client/util/util-email.vala:235 ui/conversation-message.ui:312 msgid "To:" msgstr "Para:" #. Translators: Human-readable version of the RFC 822 CC header -#: src/client/composer/composer-widget.vala:1982 +#: src/client/composer/composer-widget.vala:1990 #: src/client/conversation-viewer/conversation-email.vala:564 #: src/client/util/util-email.vala:240 ui/conversation-message.ui:357 msgid "Cc:" msgstr "Cc:" #. Translators: Human-readable version of the RFC 822 BCC header -#: src/client/composer/composer-widget.vala:1988 +#: src/client/composer/composer-widget.vala:1996 #: src/client/conversation-viewer/conversation-email.vala:569 #: ui/conversation-message.ui:402 msgid "Bcc:" msgstr "Cco:" #. Translators: Human-readable version of the RFC 822 Reply-To header -#: src/client/composer/composer-widget.vala:1994 +#: src/client/composer/composer-widget.vala:2002 msgid "Reply-To: " msgstr "Responder a:" -#: src/client/composer/composer-widget.vala:2213 +#: src/client/composer/composer-widget.vala:2254 msgid "Select Color" msgstr "Seleccionar color" @@ -1704,32 +1704,32 @@ msgstr "Seleccionar color" #. printf argument will be the alternate email address, #. and the second will be the account's primary email #. address. -#: src/client/composer/composer-widget.vala:2408 +#: src/client/composer/composer-widget.vala:2439 #, c-format msgid "%1$s via %2$s" msgstr "%1$s mediante %2$s" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: src/client/composer/composer-widget.vala:2464 +#: src/client/composer/composer-widget.vala:2495 msgid "_From:" msgstr "_De:" #. Translators: This is the name of the file chooser filter #. when inserting an image in the composer. -#: src/client/composer/composer-widget.vala:2769 +#: src/client/composer/composer-widget.vala:2800 msgid "Images" msgstr "Imágenes" -#: src/client/composer/spell-check-popover.vala:109 +#: src/client/composer/spell-check-popover.vala:125 msgid "Remove this language from the preferred list" msgstr "Quitar este idioma de la lista de favoritos" -#: src/client/composer/spell-check-popover.vala:113 +#: src/client/composer/spell-check-popover.vala:129 msgid "Add this language to the preferred list" msgstr "Añadir este idioma de la lista de favoritos" -#: src/client/composer/spell-check-popover.vala:200 +#: src/client/composer/spell-check-popover.vala:225 msgid "Search for more languages" msgstr "Buscar más idiomas" @@ -1813,44 +1813,44 @@ msgstr "Es posible que esta dirección de correo se haya falsificado" #. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:465 +#: src/client/conversation-viewer/conversation-message.vala:438 msgid "No sender" msgstr "Sin remitente" #. Translators: This separates multiple 'from' #. addresses in the compact header for a message. -#: src/client/conversation-viewer/conversation-message.vala:959 +#: src/client/conversation-viewer/conversation-message.vala:830 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Image Date: Tue, 18 Feb 2020 23:45:37 +1100 Subject: [PATCH 020/336] Bump minimum WebKitGTK version to 2.26 --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 0bb4eea5..0d8cbbb2 100644 --- a/meson.build +++ b/meson.build @@ -53,7 +53,7 @@ valac = meson.get_compiler('vala') target_glib = '2.60.4' target_gtk = '3.24.7' -target_webkit = '2.24' +target_webkit = '2.26' # Primary deps glib = dependency('glib-2.0', version: '>=' + target_glib) From ebe30d846e32832b5894e6804d0b0b00bcfe64b5 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Tue, 18 Feb 2020 23:46:05 +1100 Subject: [PATCH 021/336] Include emoji menu item in composer context menu Closes #713 --- src/client/composer/composer-widget.vala | 1 + 1 file changed, 1 insertion(+) diff --git a/src/client/composer/composer-widget.vala b/src/client/composer/composer-widget.vala index ebc4a0d6..687ef27d 100644 --- a/src/client/composer/composer-widget.vala +++ b/src/client/composer/composer-widget.vala @@ -2307,6 +2307,7 @@ public class Composer.Widget : Gtk.EventBox, Geary.BaseInterface { const WebKit.ContextMenuAction[] TEXT_INPUT_ACTIONS = { WebKit.ContextMenuAction.INPUT_METHODS, WebKit.ContextMenuAction.UNICODE, + WebKit.ContextMenuAction.INSERT_EMOJI, }; Gee.List existing_spelling = From 8c65c0ce3e10735852b2d3da87a95537e387150e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emin=20Tufan=20=C3=87etin?= Date: Tue, 18 Feb 2020 16:29:16 +0000 Subject: [PATCH 022/336] Update Turkish translation --- po/tr.po | 293 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 148 insertions(+), 145 deletions(-) diff --git a/po/tr.po b/po/tr.po index d7ddf7a8..80d830a6 100644 --- a/po/tr.po +++ b/po/tr.po @@ -16,8 +16,8 @@ msgid "" msgstr "" "Project-Id-Version: geary.mainline\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2020-01-23 16:42+0000\n" -"PO-Revision-Date: 2020-01-24 23:07+0300\n" +"POT-Creation-Date: 2020-02-16 20:26+0000\n" +"PO-Revision-Date: 2020-02-18 19:28+0300\n" "Last-Translator: Emin Tufan Çetin \n" "Language-Team: Turkish \n" "Language: tr\n" @@ -40,7 +40,7 @@ msgstr "Dosyaları Geary kullanarak gönderin" #: desktop/org.gnome.Geary.appdata.xml.in.in:12 #: desktop/org.gnome.Geary.desktop.in.in:3 #: src/client/accounts/accounts-editor-servers-pane.vala:555 -#: src/client/application/application-main-window.vala:547 +#: src/client/application/application-main-window.vala:555 msgid "Geary" msgstr "Geary" @@ -613,56 +613,56 @@ msgid "%d day back" msgid_plural "%d days back" msgstr[0] "%d gün öncesinden" -#: src/client/accounts/accounts-editor-list-pane.vala:252 -#: src/client/application/application-main-window.vala:2043 +#: src/client/accounts/accounts-editor-list-pane.vala:255 +#: src/client/application/application-main-window.vala:2053 msgid "Undo" msgstr "Geri Al" -#: src/client/accounts/accounts-editor-list-pane.vala:261 -#: src/client/application/application-main-window.vala:2030 +#: src/client/accounts/accounts-editor-list-pane.vala:264 +#: src/client/application/application-main-window.vala:2036 msgid "Redo" msgstr "Yinele" -#: src/client/accounts/accounts-editor-list-pane.vala:355 -#: src/client/accounts/accounts-editor-list-pane.vala:443 +#: src/client/accounts/accounts-editor-list-pane.vala:358 +#: src/client/accounts/accounts-editor-list-pane.vala:446 #: src/client/accounts/accounts-editor-row.vala:279 msgid "Gmail" msgstr "Gmail" -#: src/client/accounts/accounts-editor-list-pane.vala:359 -#: src/client/accounts/accounts-editor-list-pane.vala:447 +#: src/client/accounts/accounts-editor-list-pane.vala:362 +#: src/client/accounts/accounts-editor-list-pane.vala:450 #: src/client/accounts/accounts-editor-row.vala:283 msgid "Outlook.com" msgstr "Outlook.com" -#: src/client/accounts/accounts-editor-list-pane.vala:363 -#: src/client/accounts/accounts-editor-list-pane.vala:451 +#: src/client/accounts/accounts-editor-list-pane.vala:366 +#: src/client/accounts/accounts-editor-list-pane.vala:454 #: src/client/accounts/accounts-editor-row.vala:287 msgid "Yahoo" msgstr "Yahoo" #. Translators: Tooltip for accounts that have been #. loaded but disabled by the user. -#: src/client/accounts/accounts-editor-list-pane.vala:381 +#: src/client/accounts/accounts-editor-list-pane.vala:384 msgid "This account has been disabled" msgstr "Bu hesap devre dışı bırakıldı" #. Translators: Tooltip for accounts that have been #. loaded but because of some error are not able to be #. used. -#: src/client/accounts/accounts-editor-list-pane.vala:390 +#: src/client/accounts/accounts-editor-list-pane.vala:393 msgid "This account has encountered a problem and is unavailable" msgstr "Bu hesap sorunla karşılaştı ve kullanılabilir değil" #. Translators: Label for adding a generic email account -#: src/client/accounts/accounts-editor-list-pane.vala:440 +#: src/client/accounts/accounts-editor-list-pane.vala:443 msgid "Other email providers" msgstr "Diğer e-posta sağlayıcıları" #. Translators: Notification shown after removing an #. account. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:557 +#: src/client/accounts/accounts-editor-list-pane.vala:560 #, c-format msgid "Account “%s” removed" msgstr "“%s” hesabı kaldırıldı" @@ -670,7 +670,7 @@ msgstr "“%s” hesabı kaldırıldı" #. Translators: Notification shown after removing an account #. is undone. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:564 +#: src/client/accounts/accounts-editor-list-pane.vala:567 #, c-format msgid "Account “%s” restored" msgstr "“%s” hesabı kurtarıldı" @@ -957,7 +957,7 @@ msgstr "Dağıtım sürümü" msgid "Installation prefix" msgstr "Kurulum ön eki" -#: src/client/application/application-client.vala:566 +#: src/client/application/application-client.vala:587 #, c-format msgid "About %s" msgstr "%s hakkında" @@ -965,7 +965,7 @@ msgstr "%s hakkında" #. Translators: add your name and email address to receive #. credit in the About dialog For example: Yamada Taro #. -#: src/client/application/application-client.vala:570 +#: src/client/application/application-client.vala:591 msgid "translator-credits" msgstr "" "Ferhat TUNÇTAN \n" @@ -975,36 +975,36 @@ msgstr "" #. / Warning printed to the console when a deprecated #. / command line option is used. -#: src/client/application/application-client.vala:938 +#: src/client/application/application-client.vala:937 msgid "The `--hidden` option is deprecated and will be removed in the future." msgstr "`--hidden` seçeneği terk edilmiştir ve gelecekte kaldırılacaktır." #. / Command line warning, string substitution #. / is the given argument -#: src/client/application/application-client.vala:971 +#: src/client/application/application-client.vala:970 #, c-format msgid "Unrecognised program argument: “%s”" msgstr "Tanınmayan program argümanı: “%s”" #. / Notification title. -#: src/client/application/application-controller.vala:457 +#: src/client/application/application-controller.vala:458 #, c-format msgid "A problem occurred sending email for %s" msgstr "%s için e-posta gönderilirken sorun oluştu" #. / Notification body -#: src/client/application/application-controller.vala:461 +#: src/client/application/application-controller.vala:462 msgid "Email will not be sent until re-connected" msgstr "Yeniden bağlanana dek e-posta gönderilmeyecek" #. / Translators: Label for in-app notification -#: src/client/application/application-controller.vala:567 +#: src/client/application/application-controller.vala:568 msgid "Conversation marked" msgid_plural "Conversations marked" msgstr[0] "Konuşma(lar) imlendi" #. / Translators: Label for in-app notification -#: src/client/application/application-controller.vala:573 +#: src/client/application/application-controller.vala:574 msgid "Conversation un-marked" msgid_plural "Conversations un-marked" msgstr[0] "Konuşmaların imi kaldırıldı" @@ -1012,8 +1012,8 @@ msgstr[0] "Konuşmaların imi kaldırıldı" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:599 -#: src/client/application/application-controller.vala:683 +#: src/client/application/application-controller.vala:600 +#: src/client/application/application-controller.vala:684 #, c-format msgid "Conversation moved to %s" msgid_plural "Conversations moved to %s" @@ -1024,29 +1024,29 @@ msgstr[0] "Konuşma(lar) şuraya taşındı: %s" #. / of the source folder. #. / Translators: Label for in-app notification. String #. / substitution is the name of the destination folder. -#: src/client/application/application-controller.vala:607 -#: src/client/application/application-controller.vala:629 +#: src/client/application/application-controller.vala:608 +#: src/client/application/application-controller.vala:630 #, c-format msgid "Conversation restored to %s" msgid_plural "Conversations restored to %s" msgstr[0] "Konuşma(lar) şuraya geri yüklendi: %s" #. / Translators: Label for in-app notification. -#: src/client/application/application-controller.vala:650 +#: src/client/application/application-controller.vala:651 msgid "Conversation archived" msgid_plural "Conversations archived" msgstr[0] "Konuşma(lar) arşivlendi" #. / Translators: Label for in-app notification. String #. / substitution is the name of the destination folder. -#: src/client/application/application-controller.vala:706 +#: src/client/application/application-controller.vala:707 #, c-format msgid "Message restored to %s" msgid_plural "Messages restored to %s" msgstr[0] "İleti(ler) şuraya geri yüklendi: %s" #. / Translators: Label for in-app notification. -#: src/client/application/application-controller.vala:727 +#: src/client/application/application-controller.vala:728 msgid "Message archived" msgid_plural "Messages archived" msgstr[0] "İleti(ler) arşivlendi" @@ -1054,7 +1054,7 @@ msgstr[0] "İleti(ler) arşivlendi" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:762 +#: src/client/application/application-controller.vala:763 #, c-format msgid "Message moved to %s" msgid_plural "Messages moved to %s" @@ -1063,7 +1063,7 @@ msgstr[0] "İleti(ler) şuraya taşındı: %s" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:790 +#: src/client/application/application-controller.vala:791 #, c-format msgid "Conversation labelled as %s" msgid_plural "Conversations labelled as %s" @@ -1072,18 +1072,18 @@ msgstr[0] "Konuşma(lar) %s olarak etiketlendi" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:798 +#: src/client/application/application-controller.vala:799 #, c-format msgid "Conversation un-labelled as %s" msgid_plural "Conversations un-labelled as %s" msgstr[0] "Konuşma(lar) %s olarak etiketlenmedi" -#: src/client/application/application-controller.vala:1221 +#: src/client/application/application-controller.vala:1222 #, c-format msgid "Unable to open the database for %s" msgstr "%s için veri tabanı açılamadı" -#: src/client/application/application-controller.vala:1222 +#: src/client/application/application-controller.vala:1223 #, c-format msgid "" "There was an error opening the local mail database for this account. This is " @@ -1107,20 +1107,20 @@ msgstr "" "Veri tabanının yeniden inşa edilmesi tüm yerel e-postaları ve eklerini yok " "edecektir.Sizin sunucunuzdaki postalar etkilenmeyecektir." -#: src/client/application/application-controller.vala:1224 +#: src/client/application/application-controller.vala:1225 msgid "_Rebuild" msgstr "_Yeniden oluştur" -#: src/client/application/application-controller.vala:1224 +#: src/client/application/application-controller.vala:1225 msgid "E_xit" msgstr "Ç_ık" -#: src/client/application/application-controller.vala:1234 +#: src/client/application/application-controller.vala:1235 #, c-format msgid "Unable to rebuild database for “%s”" msgstr "“%s” için veri tabanı yeniden oluşturulamadı" -#: src/client/application/application-controller.vala:1235 +#: src/client/application/application-controller.vala:1236 #, c-format msgid "" "Error during rebuild:\n" @@ -1133,34 +1133,34 @@ msgstr "" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:1558 +#: src/client/application/application-controller.vala:1559 #, c-format msgid "Email sent to %s" msgstr "Şun(lar)a eposta gönderildi: %s" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2641 +#: src/client/application/application-controller.vala:2642 #, c-format msgid "Email to %s queued for delivery" msgstr "Şun(lar)a gidecek eposta iletim sırasında: %s" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2705 +#: src/client/application/application-controller.vala:2706 #, c-format msgid "Email to %s saved" msgstr "Şun(lar)a gidecek eposta kaydedildi: %s" #. / Translators: A label for an in-app notification. -#: src/client/application/application-controller.vala:2720 -#: src/client/application/application-controller.vala:2778 +#: src/client/application/application-controller.vala:2721 +#: src/client/application/application-controller.vala:2779 msgid "Composer could not be restored" msgstr "Oluşturucu kurtarılamadı" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2763 +#: src/client/application/application-controller.vala:2764 #, c-format msgid "Email to %s discarded" msgstr "Şun(lar)a gidecek eposta gözden çıkarıldı: %s" @@ -1168,51 +1168,51 @@ msgstr "Şun(lar)a gidecek eposta gözden çıkarıldı: %s" #. / Translators: Main window title, first string #. / substitution being the currently selected folder name, #. / the second being the selected account name. -#: src/client/application/application-main-window.vala:552 +#: src/client/application/application-main-window.vala:560 #, c-format msgid "%s — %s" msgstr "%s — %s" -#: src/client/application/application-main-window.vala:961 +#: src/client/application/application-main-window.vala:967 msgid "Labels" msgstr "Etiketler" #. / Translators: Primary text for a confirmation dialog -#: src/client/application/application-main-window.vala:1300 +#: src/client/application/application-main-window.vala:1306 msgid "Do you want to permanently delete this conversation?" msgid_plural "Do you want to permanently delete these conversations?" msgstr[0] "Bu konuşmaları kalıcı olarak silmek istiyor musunuz?" -#: src/client/application/application-main-window.vala:1305 -#: src/client/application/application-main-window.vala:1320 +#: src/client/application/application-main-window.vala:1311 +#: src/client/application/application-main-window.vala:1326 msgid "Delete" msgstr "Sil" #. / Translators: Primary text for a confirmation dialog -#: src/client/application/application-main-window.vala:1315 +#: src/client/application/application-main-window.vala:1321 msgid "Do you want to permanently delete this message?" msgid_plural "Do you want to permanently delete these messages?" msgstr[0] "Bu ileti(ler)i kalıcı olarak silmek istiyor musunuz?" -#: src/client/application/application-main-window.vala:1328 +#: src/client/application/application-main-window.vala:1334 #, c-format msgid "Empty all email from your %s folder?" msgstr "%s klasörünüzdeki tüm e-postaları boşalt?" -#: src/client/application/application-main-window.vala:1331 +#: src/client/application/application-main-window.vala:1337 msgid "This removes the email from Geary and your email server." msgstr "Bu işlem e-postayı Geary’den ve e-posta sunucunuzdan kaldırır." -#: src/client/application/application-main-window.vala:1332 +#: src/client/application/application-main-window.vala:1338 msgid "This cannot be undone." msgstr "Bu geri alınamaz." -#: src/client/application/application-main-window.vala:1333 +#: src/client/application/application-main-window.vala:1339 #, c-format msgid "Empty %s" msgstr "%s boşalt" -#: src/client/application/application-main-window.vala:1663 +#: src/client/application/application-main-window.vala:1669 #, c-format msgid "%s (%d)" msgstr "%s (%d)" @@ -1223,7 +1223,7 @@ msgstr "%s (%d)" #. Document (100.9MB) #. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" #: src/client/components/components-attachment-pane.vala:107 -#: src/client/composer/composer-widget.vala:1826 +#: src/client/composer/composer-widget.vala:1834 #, c-format msgid "%s (%s)" msgstr "%s (%s)" @@ -1362,32 +1362,32 @@ msgstr "Sunucu adı gerekli" msgid "Could not look up server name" msgstr "Sunucu adı yoklanamıyor" -#: src/client/components/main-toolbar.vala:138 +#: src/client/components/main-toolbar.vala:116 msgid "Mark conversation" msgid_plural "Mark conversations" msgstr[0] "Konuşmayı imle" -#: src/client/components/main-toolbar.vala:143 +#: src/client/components/main-toolbar.vala:121 msgid "Add label to conversation" msgid_plural "Add label to conversations" msgstr[0] "Konuşmayı etiketle" -#: src/client/components/main-toolbar.vala:148 +#: src/client/components/main-toolbar.vala:126 msgid "Move conversation" msgid_plural "Move conversations" msgstr[0] "Konuşmayı taşı" -#: src/client/components/main-toolbar.vala:153 +#: src/client/components/main-toolbar.vala:131 msgid "Archive conversation" msgid_plural "Archive conversations" msgstr[0] "Konuşmayı arşivle" -#: src/client/components/main-toolbar.vala:164 +#: src/client/components/main-toolbar.vala:142 msgid "Move conversation to Trash" msgid_plural "Move conversations to Trash" msgstr[0] "Konuşmayı Çöpʼe taşı" -#: src/client/components/main-toolbar.vala:174 +#: src/client/components/main-toolbar.vala:152 msgid "Delete conversation" msgid_plural "Delete conversations" msgstr[0] "Konuşmayı sil" @@ -1535,15 +1535,15 @@ msgstr "_Kaydet" msgid "_Keep" msgstr "_Sakla" -#: src/client/composer/composer-link-popover.vala:149 +#: src/client/composer/composer-link-popover.vala:139 msgid "Link URL is not correctly formatted, e.g. http://example.com" msgstr "Bağlantı URL’si doğru biçimlendirilmemiş, örn. http://ornek.com" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid link URL" msgstr "Geçersiz bağlantı URL’si" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid email address" msgstr "Geçersiz e-posta adresi" @@ -1552,19 +1552,19 @@ msgstr "Geçersiz e-posta adresi" msgid "New Message" msgstr "Yeni İleti" -#: src/client/composer/composer-widget.vala:214 +#: src/client/composer/composer-widget.vala:217 msgid "Saved" msgstr "Kaydedildi" -#: src/client/composer/composer-widget.vala:215 +#: src/client/composer/composer-widget.vala:218 msgid "Saving" msgstr "Kaydediliyor" -#: src/client/composer/composer-widget.vala:216 +#: src/client/composer/composer-widget.vala:219 msgid "Error saving" msgstr "Kaydedilirken hata" -#: src/client/composer/composer-widget.vala:217 +#: src/client/composer/composer-widget.vala:220 msgid "Press Backspace to delete quote" msgstr "Alıntıyı silmek için Geri tuşuna basın" @@ -1573,7 +1573,7 @@ msgstr "Alıntıyı silmek için Geri tuşuna basın" #. checking, include all variants of each word. No spaces are #. allowed. The words will be converted to lower case based on #. locale and English versions included automatically. -#: src/client/composer/composer-widget.vala:233 +#: src/client/composer/composer-widget.vala:236 msgid "" "attach|attaching|attaches|attachment|attachments|attached|enclose|enclosed|" "enclosing|encloses|enclosure|enclosures" @@ -1584,90 +1584,90 @@ msgstr "" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. Keep, Discard or Cancel. -#: src/client/composer/composer-widget.vala:832 +#: src/client/composer/composer-widget.vala:843 msgid "Do you want to keep or discard this draft message?" msgstr "Bu iletiyi saklamak mı yoksa gözden çıkarmak mı istersiniz?" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. only Discard or Cancel. -#: src/client/composer/composer-widget.vala:858 +#: src/client/composer/composer-widget.vala:869 msgid "Do you want to discard this draft message?" msgstr "Bu taslak iletiyi gözden çıkarmak istiyor musunuz?" -#: src/client/composer/composer-widget.vala:1492 +#: src/client/composer/composer-widget.vala:1503 msgid "Send message with an empty subject and body?" msgstr "İleti konusu ve gövdesi olmadan gönderilsin mi?" -#: src/client/composer/composer-widget.vala:1494 +#: src/client/composer/composer-widget.vala:1505 msgid "Send message with an empty subject?" msgstr "İleti konusu olmadan gönderilsin mi?" -#: src/client/composer/composer-widget.vala:1496 +#: src/client/composer/composer-widget.vala:1507 msgid "Send message with an empty body?" msgstr "İleti, ileti gövdesi olmadan gönderilsin mi?" -#: src/client/composer/composer-widget.vala:1505 +#: src/client/composer/composer-widget.vala:1516 msgid "Send message without an attachment?" msgstr "İleti eki olmadan gönderilsin mi?" -#: src/client/composer/composer-widget.vala:1818 +#: src/client/composer/composer-widget.vala:1820 #, c-format msgid "“%s” already attached for delivery." msgstr "“%s” gönderim için zaten eklendi." -#: src/client/composer/composer-widget.vala:1848 -#: src/client/composer/composer-widget.vala:1898 +#: src/client/composer/composer-widget.vala:1856 +#: src/client/composer/composer-widget.vala:1906 #, c-format msgid "“%s” is an empty file." msgstr "“%s” boş bir dosya." -#: src/client/composer/composer-widget.vala:1886 +#: src/client/composer/composer-widget.vala:1894 #, c-format msgid "“%s” could not be found." msgstr "“%s” bulunamadı." -#: src/client/composer/composer-widget.vala:1892 +#: src/client/composer/composer-widget.vala:1900 #, c-format msgid "“%s” is a folder." msgstr "“%s” bir klasör." -#: src/client/composer/composer-widget.vala:1911 +#: src/client/composer/composer-widget.vala:1919 #, c-format msgid "“%s” could not be opened for reading." msgstr "“%s” okuma için açılamadı." -#: src/client/composer/composer-widget.vala:1919 +#: src/client/composer/composer-widget.vala:1927 msgid "Cannot add attachment" msgstr "Eklenti eklenemiyor" #. Translators: Human-readable version of the RFC 822 To header -#: src/client/composer/composer-widget.vala:1976 +#: src/client/composer/composer-widget.vala:1984 #: src/client/conversation-viewer/conversation-email.vala:559 #: src/client/util/util-email.vala:235 ui/conversation-message.ui:312 msgid "To:" msgstr "Kime:" #. Translators: Human-readable version of the RFC 822 CC header -#: src/client/composer/composer-widget.vala:1982 +#: src/client/composer/composer-widget.vala:1990 #: src/client/conversation-viewer/conversation-email.vala:564 #: src/client/util/util-email.vala:240 ui/conversation-message.ui:357 msgid "Cc:" msgstr "Cc:" #. Translators: Human-readable version of the RFC 822 BCC header -#: src/client/composer/composer-widget.vala:1988 +#: src/client/composer/composer-widget.vala:1996 #: src/client/conversation-viewer/conversation-email.vala:569 #: ui/conversation-message.ui:402 msgid "Bcc:" msgstr "Bcc:" #. Translators: Human-readable version of the RFC 822 Reply-To header -#: src/client/composer/composer-widget.vala:1994 +#: src/client/composer/composer-widget.vala:2002 msgid "Reply-To: " msgstr "Şuna Yanıtla: " -#: src/client/composer/composer-widget.vala:2247 +#: src/client/composer/composer-widget.vala:2254 msgid "Select Color" msgstr "Renk Seç" @@ -1676,32 +1676,32 @@ msgstr "Renk Seç" #. printf argument will be the alternate email address, #. and the second will be the account's primary email #. address. -#: src/client/composer/composer-widget.vala:2442 +#: src/client/composer/composer-widget.vala:2439 #, c-format msgid "%1$s via %2$s" msgstr "%2$s aracılığıyla %1$s" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: src/client/composer/composer-widget.vala:2498 +#: src/client/composer/composer-widget.vala:2495 msgid "_From:" msgstr "_Gönderen:" #. Translators: This is the name of the file chooser filter #. when inserting an image in the composer. -#: src/client/composer/composer-widget.vala:2804 +#: src/client/composer/composer-widget.vala:2800 msgid "Images" msgstr "Resimler" -#: src/client/composer/spell-check-popover.vala:109 +#: src/client/composer/spell-check-popover.vala:125 msgid "Remove this language from the preferred list" msgstr "Bu dili tercih edilenler listesinden kaldır" -#: src/client/composer/spell-check-popover.vala:113 +#: src/client/composer/spell-check-popover.vala:129 msgid "Add this language to the preferred list" msgstr "Bu dili tercih edilenler listesine ekle" -#: src/client/composer/spell-check-popover.vala:200 +#: src/client/composer/spell-check-popover.vala:225 msgid "Search for more languages" msgstr "Daha çok dil için ara" @@ -1783,44 +1783,44 @@ msgstr "Bu e-posta adresi taklit edilmiş olabilir" #. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:465 +#: src/client/conversation-viewer/conversation-message.vala:438 msgid "No sender" msgstr "Gönderen yok" #. Translators: This separates multiple 'from' #. addresses in the compact header for a message. -#: src/client/conversation-viewer/conversation-message.vala:959 +#: src/client/conversation-viewer/conversation-message.vala:830 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Image Date: Thu, 20 Feb 2020 18:00:52 +0000 Subject: [PATCH 023/336] Update Japanese translation --- po/ja.po | 2313 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 1351 insertions(+), 962 deletions(-) diff --git a/po/ja.po b/po/ja.po index 0bc5a891..69181a6b 100644 --- a/po/ja.po +++ b/po/ja.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: geary-0.4.1\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2019-09-15 23:26+0000\n" +"POT-Creation-Date: 2020-02-16 20:26+0000\n" "PO-Revision-Date: 2019-09-20 23:30+0900\n" "Last-Translator: sicklylife \n" "Language-Team: Japanese (Japan) (https://l10n.gnome.org/module/geary/)\n" @@ -35,6 +35,7 @@ msgstr "Geary でファイルを送信" #: desktop/org.gnome.Geary.appdata.xml.in.in:12 #: desktop/org.gnome.Geary.desktop.in.in:3 #: src/client/accounts/accounts-editor-servers-pane.vala:555 +#: src/client/application/application-main-window.vala:555 msgid "Geary" msgstr "Geary" @@ -47,7 +48,7 @@ msgstr "メール" #: desktop/geary-autostart.desktop.in.in:5 #: desktop/org.gnome.Geary.appdata.xml.in.in:16 #: desktop/org.gnome.Geary.desktop.in.in:5 -#: src/client/application/geary-application.vala:30 +#: src/client/application/application-client.vala:32 msgid "Send and receive email" msgstr "メールの送信と受信" @@ -128,6 +129,10 @@ msgstr "Mail;E-mail;IMAP;GMail;Yahoo;Hotmail;Outlook;メール;Eメール;E-メ msgid "Compose Message" msgstr "メッセージを作成" +#: desktop/org.gnome.Geary.desktop.in.in:26 +msgid "New Window" +msgstr "" + #: desktop/org.gnome.Geary.gschema.xml:8 msgid "Maximize window" msgstr "ウィンドウの最大化" @@ -188,119 +193,146 @@ msgid "True if the folder list Paned is in the horizontal orientation." msgstr "" #: desktop/org.gnome.Geary.gschema.xml:50 -msgid "Position of message list pane" +msgid "Show/hide formatting toolbar" msgstr "" #: desktop/org.gnome.Geary.gschema.xml:51 -msgid "Position of the message list Paned grabber." +msgid "True if the formatting toolbar in the composer is shown." msgstr "" #: desktop/org.gnome.Geary.gschema.xml:56 +msgid "Position of message list pane" +msgstr "" + +#: desktop/org.gnome.Geary.gschema.xml:57 +msgid "Position of the message list Paned grabber." +msgstr "" + +#: desktop/org.gnome.Geary.gschema.xml:62 msgid "Autoselect next message" msgstr "次のメッセージを自動的に選択する" -#: desktop/org.gnome.Geary.gschema.xml:57 +#: desktop/org.gnome.Geary.gschema.xml:63 msgid "True if we should autoselect the next available conversation." msgstr "次の利用可能なスレッドを自動的に選択する場合は true にしてください。" -#: desktop/org.gnome.Geary.gschema.xml:62 +#: desktop/org.gnome.Geary.gschema.xml:68 msgid "Display message previews" msgstr "メッセージのプレビューを表示する" -#: desktop/org.gnome.Geary.gschema.xml:63 +#: desktop/org.gnome.Geary.gschema.xml:69 msgid "True if we should display a short preview of each message." msgstr "各メッセージの短いプレビューを表示する場合は true にしてください。" -#: desktop/org.gnome.Geary.gschema.xml:68 +#: desktop/org.gnome.Geary.gschema.xml:74 +#, fuzzy +#| msgctxt "shortcut window" +#| msgid "Single-key shortcuts" +msgid "Use single key shortcuts" +msgstr "シングルキーショートカット" + +#: desktop/org.gnome.Geary.gschema.xml:75 +msgid "" +"Enables shortcuts for email actions that do not require pressing to " +"emulate those used by Gmail." +msgstr "" + +#: desktop/org.gnome.Geary.gschema.xml:82 msgid "Languages that shall be used in the spell checker" msgstr "スペルチェックする言語" -#: desktop/org.gnome.Geary.gschema.xml:69 +#: desktop/org.gnome.Geary.gschema.xml:83 msgid "" "A list of POSIX locales, with the empty list disabling spell checking and " "the null list using desktop languages by default." msgstr "" -#: desktop/org.gnome.Geary.gschema.xml:76 +#: desktop/org.gnome.Geary.gschema.xml:90 msgid "Languages that are displayed in the spell checker popover" msgstr "スペルチェッカーのポップオーバーメニューに表示する言語" -#: desktop/org.gnome.Geary.gschema.xml:77 +#: desktop/org.gnome.Geary.gschema.xml:91 msgid "" "List of languages that are always displayed in the popover of the spell " "checker." msgstr "スペルチェッカーのポップオーバーメニューに常に表示する言語の一覧です。" -#: desktop/org.gnome.Geary.gschema.xml:82 -msgid "Enable notification sounds" -msgstr "通知音を有効にする" - -#: desktop/org.gnome.Geary.gschema.xml:83 -msgid "True to play sounds for notifications and sending." -msgstr "true にすると通知時と送信時に音を鳴らします。" - -#: desktop/org.gnome.Geary.gschema.xml:88 -msgid "Show notifications for new mail" -msgstr "新着メールの通知を表示する" - -#: desktop/org.gnome.Geary.gschema.xml:89 -msgid "True to show notification bubbles." -msgstr "true にするとポップアップ通知を表示します。" - -#: desktop/org.gnome.Geary.gschema.xml:94 +#: desktop/org.gnome.Geary.gschema.xml:96 msgid "Notify of new mail at startup" msgstr "起動時に新着メールを通知する" -#: desktop/org.gnome.Geary.gschema.xml:95 +#: desktop/org.gnome.Geary.gschema.xml:97 msgid "True to notify of new mail at startup." msgstr "true にすると起動時に新着メールを通知します。" -#: desktop/org.gnome.Geary.gschema.xml:100 +#: desktop/org.gnome.Geary.gschema.xml:102 msgid "Ask when opening an attachment" msgstr "添付ファイルを開くときに確認する" -#: desktop/org.gnome.Geary.gschema.xml:101 +#: desktop/org.gnome.Geary.gschema.xml:103 msgid "True to ask when opening an attachment." msgstr "true にすると添付ファイルを開くときに確認します。" -#: desktop/org.gnome.Geary.gschema.xml:106 +#: desktop/org.gnome.Geary.gschema.xml:108 msgid "Whether to compose emails in HTML" msgstr "HTML メールを作成するかどうか" -#: desktop/org.gnome.Geary.gschema.xml:107 +#: desktop/org.gnome.Geary.gschema.xml:109 msgid "True to compose emails in HTML; false for plain text." msgstr "true にすると HTML メール、false にするとテキストメールを作成します。" -#: desktop/org.gnome.Geary.gschema.xml:112 +#: desktop/org.gnome.Geary.gschema.xml:114 msgid "Advisory strategy for full-text searching" msgstr "" -#: desktop/org.gnome.Geary.gschema.xml:113 +#: desktop/org.gnome.Geary.gschema.xml:115 msgid "" "Acceptable values are “exact”, “conservative”, “aggressive”, and “horizon”." msgstr "許容できる値は“exact”、“conservative”、“aggressive”、“horizon”です。" -#: desktop/org.gnome.Geary.gschema.xml:118 +#: desktop/org.gnome.Geary.gschema.xml:120 msgid "Zoom of conversation viewer" msgstr "スレッドビューアーのズーム" -#: desktop/org.gnome.Geary.gschema.xml:119 +#: desktop/org.gnome.Geary.gschema.xml:121 msgid "The zoom to apply on the conservation view." msgstr "指定した倍率でスレッドビューを拡大または縮小します。" -#: desktop/org.gnome.Geary.gschema.xml:124 +#: desktop/org.gnome.Geary.gschema.xml:126 msgid "Size of detached composer window" msgstr "分離した作成ウィンドウのサイズ" -#: desktop/org.gnome.Geary.gschema.xml:125 +#: desktop/org.gnome.Geary.gschema.xml:127 msgid "The last recorded size of the detached composer window." msgstr "最後に記録した、分離した作成ウィンドウのサイズです。" -#: desktop/org.gnome.Geary.gschema.xml:130 +#: desktop/org.gnome.Geary.gschema.xml:132 +#, fuzzy +#| msgid "Error sending email" +msgid "Undo sending email delay" +msgstr "メール送信時にエラーが発生しました" + +#: desktop/org.gnome.Geary.gschema.xml:133 +msgid "" +"The number of seconds to wait before sending an email. Set to zero or less " +"to disable." +msgstr "" + +#: desktop/org.gnome.Geary.gschema.xml:139 +msgid "Brief notification display time" +msgstr "" + +#: desktop/org.gnome.Geary.gschema.xml:140 +msgid "" +"The length of time in seconds for which brief notifications should be " +"displayed." +msgstr "" + +#: desktop/org.gnome.Geary.gschema.xml:146 msgid "Whether we migrated the old settings" msgstr "" -#: desktop/org.gnome.Geary.gschema.xml:131 +#: desktop/org.gnome.Geary.gschema.xml:147 msgid "" "False to check for the old “org.yorba.geary”-schema and copy its values." msgstr "" @@ -308,24 +340,24 @@ msgstr "" #. Translators: In-app notification label, when #. the app had a problem pinning an otherwise #. untrusted TLS certificate -#: src/client/accounts/accounts-editor.vala:204 +#: src/client/accounts/accounts-editor.vala:210 msgid "Failed to store certificate" msgstr "証明書の保存に失敗しました" #. Translators: Label for adding an email account #. account for a generic IMAP service provider. -#: src/client/accounts/accounts-editor-add-pane.vala:109 +#: src/client/accounts/accounts-editor-add-pane.vala:108 msgid "All others" msgstr "" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:196 +#: src/client/accounts/accounts-editor-add-pane.vala:195 #: src/client/accounts/accounts-editor-servers-pane.vala:316 msgid "Check your receiving login and password" msgstr "受信のログイン名とパスワードを確認してください" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:211 +#: src/client/accounts/accounts-editor-add-pane.vala:210 #: src/client/accounts/accounts-editor-servers-pane.vala:329 msgid "Check your receiving server details" msgstr "受信サーバーの詳細を確認してください" @@ -335,51 +367,51 @@ msgstr "受信サーバーの詳細を確認してください" #. succeeded, so the user probably needs to #. specify custom creds here #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:233 +#: src/client/accounts/accounts-editor-add-pane.vala:232 #: src/client/accounts/accounts-editor-servers-pane.vala:350 msgid "Check your sending login and password" msgstr "送信のログイン名とパスワードを確認してください" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:247 +#: src/client/accounts/accounts-editor-add-pane.vala:246 #: src/client/accounts/accounts-editor-servers-pane.vala:363 msgid "Check your sending server details" msgstr "送信サーバーの詳細を確認してください" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:262 +#: src/client/accounts/accounts-editor-add-pane.vala:261 msgid "Check your email address and password" msgstr "メールアドレスとパスワードを確認してください" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:273 +#: src/client/accounts/accounts-editor-add-pane.vala:272 msgid "Could not connect, check your network" msgstr "接続できなかったため、ネットワークを確認してください" #. Translators: In-app notification label for a #. generic error creating an account -#: src/client/accounts/accounts-editor-add-pane.vala:286 +#: src/client/accounts/accounts-editor-add-pane.vala:285 msgid "An unexpected problem occurred" msgstr "予想外の問題が発生しました" #. Translators: In-app notification label, the #. string substitution is a more detailed reason. -#: src/client/accounts/accounts-editor-add-pane.vala:304 +#: src/client/accounts/accounts-editor-add-pane.vala:303 #, c-format msgid "Account not created: %s" msgstr "アカウントを作成しません: %s" #. Translators: Label for the person's actual name when adding #. an account -#: src/client/accounts/accounts-editor-add-pane.vala:551 +#: src/client/accounts/accounts-editor-add-pane.vala:558 msgid "Your name" msgstr "名前" #. Translators: Label used for the address part of an #. email address when editing a user's sender address #. preferences for an account. -#: src/client/accounts/accounts-editor-add-pane.vala:568 -#: src/client/accounts/accounts-editor-edit-pane.vala:501 +#: src/client/accounts/accounts-editor-add-pane.vala:575 +#: src/client/accounts/accounts-editor-edit-pane.vala:513 msgid "Email address" msgstr "メールアドレス" @@ -388,8 +420,8 @@ msgstr "メールアドレス" #. Translators: This is used as a placeholder for the #. address part of an email address when editing a user's #. sender address preferences for an account. -#: src/client/accounts/accounts-editor-add-pane.vala:571 -#: src/client/accounts/accounts-editor-edit-pane.vala:469 +#: src/client/accounts/accounts-editor-add-pane.vala:579 +#: src/client/accounts/accounts-editor-edit-pane.vala:479 msgid "person@example.com" msgstr "person@example.com" @@ -397,15 +429,15 @@ msgstr "person@example.com" #. when adding an account #. Translators: Label for the user's login name for an #. IMAP, SMTP, etc service -#: src/client/accounts/accounts-editor-add-pane.vala:585 -#: src/client/accounts/accounts-editor-servers-pane.vala:880 +#: src/client/accounts/accounts-editor-add-pane.vala:593 +#: src/client/accounts/accounts-editor-servers-pane.vala:884 msgid "Login name" msgstr "ログイン名" #. Translators: Label for the user's password for an IMAP, #. SMTP, etc service -#: src/client/accounts/accounts-editor-add-pane.vala:599 -#: src/client/accounts/accounts-editor-servers-pane.vala:999 +#: src/client/accounts/accounts-editor-add-pane.vala:607 +#: src/client/accounts/accounts-editor-servers-pane.vala:1006 #: ui/password-dialog.glade:108 msgid "Password" msgstr "パスワード" @@ -414,14 +446,14 @@ msgstr "パスワード" #. adding an account. #. Translators: This label describes the host name or IP #. address and port used by an account's IMAP service. -#: src/client/accounts/accounts-editor-add-pane.vala:621 -#: src/client/accounts/accounts-editor-servers-pane.vala:727 +#: src/client/accounts/accounts-editor-add-pane.vala:629 +#: src/client/accounts/accounts-editor-servers-pane.vala:728 msgid "IMAP server" msgstr "IMAP サーバー" #. Translators: Placeholder for the IMAP server hostname #. when adding an account. -#: src/client/accounts/accounts-editor-add-pane.vala:624 +#: src/client/accounts/accounts-editor-add-pane.vala:632 msgid "imap.example.com" msgstr "imap.example.com" @@ -429,20 +461,20 @@ msgstr "imap.example.com" #. adding an account. #. Translators: This label describes the host name or IP #. address and port used by an account's SMTP service. -#: src/client/accounts/accounts-editor-add-pane.vala:630 -#: src/client/accounts/accounts-editor-servers-pane.vala:733 +#: src/client/accounts/accounts-editor-add-pane.vala:638 +#: src/client/accounts/accounts-editor-servers-pane.vala:734 msgid "SMTP server" msgstr "SMTP サーバー" #. Translators: Placeholder for the SMTP server hostname #. when adding an account. -#: src/client/accounts/accounts-editor-add-pane.vala:633 +#: src/client/accounts/accounts-editor-add-pane.vala:641 msgid "smtp.example.com" msgstr "smtp.example.com" #. Translators: Label in the account editor for the user's #. custom name for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:278 +#: src/client/accounts/accounts-editor-edit-pane.vala:277 #: ui/accounts_editor_remove_pane.ui:123 msgid "Account name" msgstr "アカウント名" @@ -451,46 +483,46 @@ msgstr "アカウント名" #. the name of an account. The string #. substitution is the old name of the #. account. -#: src/client/accounts/accounts-editor-edit-pane.vala:312 +#: src/client/accounts/accounts-editor-edit-pane.vala:318 #, c-format msgid "Change account name back to “%s”" msgstr "変更したアカウント名を“%s”に戻す" #. Translators: Tooltip for adding a new email sender/from #. address's address to an account -#: src/client/accounts/accounts-editor-edit-pane.vala:336 +#: src/client/accounts/accounts-editor-edit-pane.vala:342 msgid "Add a new sender email address" msgstr "新規送信者メールアドレスを追加" #. Translators: Label used to indicate the user has #. provided no display name for one of their sender #. email addresses in their account settings. -#: src/client/accounts/accounts-editor-edit-pane.vala:417 +#: src/client/accounts/accounts-editor-edit-pane.vala:423 msgid "Name not set" msgstr "名前を設定していません" #. Translators: This is used as a placeholder for the #. display name for an email address when editing a user's #. sender address preferences for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:456 +#: src/client/accounts/accounts-editor-edit-pane.vala:464 msgid "Sender Name" msgstr "送信者名" -#: src/client/accounts/accounts-editor-edit-pane.vala:479 +#: src/client/accounts/accounts-editor-edit-pane.vala:491 msgid "Remove" msgstr "削除" #. Translators: Label used for the display name part of an #. email address when editing a user's sender address #. preferences for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:494 +#: src/client/accounts/accounts-editor-edit-pane.vala:506 msgid "Sender name" msgstr "送信者名" #. Translators: Label used as the undo tooltip after adding an #. new sender email address to an account. The string #. substitution is the email address added. -#: src/client/accounts/accounts-editor-edit-pane.vala:561 +#: src/client/accounts/accounts-editor-edit-pane.vala:573 #, c-format msgid "Remove “%s”" msgstr "“%s”を削除" @@ -498,7 +530,7 @@ msgstr "“%s”を削除" #. Translators: Label used as the undo tooltip after editing a #. sender address for an account. The string substitution is #. the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:601 +#: src/client/accounts/accounts-editor-edit-pane.vala:613 #, c-format msgid "Undo changes to “%s”" msgstr "変更を“%s”に戻す" @@ -506,7 +538,7 @@ msgstr "変更を“%s”に戻す" #. Translators: Label used as the undo tooltip after removing #. a sender address from an account. The string substitution #. is the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:688 +#: src/client/accounts/accounts-editor-edit-pane.vala:700 #, c-format msgid "Add “%s” back" msgstr "“%s”を元に戻す" @@ -514,14 +546,14 @@ msgstr "“%s”を元に戻す" #. Translators: Label used as the undo tooltip after removing #. a sender address from an account. The string substitution #. is the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:730 +#: src/client/accounts/accounts-editor-edit-pane.vala:742 msgid "Undo signature changes" msgstr "署名の変更を元に戻す" #. Translators: This label describes the account #. preference for the length of time (weeks, months or #. years) that past email should be downloaded. -#: src/client/accounts/accounts-editor-edit-pane.vala:778 +#: src/client/accounts/accounts-editor-edit-pane.vala:790 msgid "Download mail" msgstr "メールのダウンロード" @@ -530,98 +562,99 @@ msgstr "メールのダウンロード" #. should be downloaded for an account. The #. string substitution is the duration, #. e.g. "1 month back". -#: src/client/accounts/accounts-editor-edit-pane.vala:810 +#: src/client/accounts/accounts-editor-edit-pane.vala:822 #, c-format msgid "Change download period back to: %s" msgstr "変更したダウンロード期間を次に戻す: %s" -#: src/client/accounts/accounts-editor-edit-pane.vala:831 +#: src/client/accounts/accounts-editor-edit-pane.vala:843 msgid "Everything" msgstr "すべて" -#: src/client/accounts/accounts-editor-edit-pane.vala:835 +#: src/client/accounts/accounts-editor-edit-pane.vala:847 msgid "2 weeks back" msgstr "2週間前" -#: src/client/accounts/accounts-editor-edit-pane.vala:839 +#: src/client/accounts/accounts-editor-edit-pane.vala:851 msgid "1 month back" msgstr "1ヶ月前" -#: src/client/accounts/accounts-editor-edit-pane.vala:843 +#: src/client/accounts/accounts-editor-edit-pane.vala:855 msgid "3 months back" msgstr "3ヶ月前" -#: src/client/accounts/accounts-editor-edit-pane.vala:847 +#: src/client/accounts/accounts-editor-edit-pane.vala:859 msgid "6 months back" msgstr "6ヶ月前" -#: src/client/accounts/accounts-editor-edit-pane.vala:851 +#: src/client/accounts/accounts-editor-edit-pane.vala:863 msgid "1 year back" msgstr "1年前" -#: src/client/accounts/accounts-editor-edit-pane.vala:855 +#: src/client/accounts/accounts-editor-edit-pane.vala:867 msgid "2 years back" msgstr "2年前" -#: src/client/accounts/accounts-editor-edit-pane.vala:859 +#: src/client/accounts/accounts-editor-edit-pane.vala:871 msgid "4 years back" msgstr "4年前" -#: src/client/accounts/accounts-editor-edit-pane.vala:865 +#: src/client/accounts/accounts-editor-edit-pane.vala:877 #, c-format msgid "%d day back" msgid_plural "%d days back" msgstr[0] "%d日前" -#: src/client/accounts/accounts-editor-list-pane.vala:247 -#: src/client/application/application-controller.vala:2392 +#: src/client/accounts/accounts-editor-list-pane.vala:255 +#: src/client/application/application-main-window.vala:2053 msgid "Undo" msgstr "元に戻す" -#: src/client/accounts/accounts-editor-list-pane.vala:255 +#: src/client/accounts/accounts-editor-list-pane.vala:264 +#: src/client/application/application-main-window.vala:2036 msgid "Redo" msgstr "やり直す" -#: src/client/accounts/accounts-editor-list-pane.vala:349 -#: src/client/accounts/accounts-editor-list-pane.vala:437 +#: src/client/accounts/accounts-editor-list-pane.vala:358 +#: src/client/accounts/accounts-editor-list-pane.vala:446 #: src/client/accounts/accounts-editor-row.vala:279 msgid "Gmail" msgstr "Gmail" -#: src/client/accounts/accounts-editor-list-pane.vala:353 -#: src/client/accounts/accounts-editor-list-pane.vala:441 +#: src/client/accounts/accounts-editor-list-pane.vala:362 +#: src/client/accounts/accounts-editor-list-pane.vala:450 #: src/client/accounts/accounts-editor-row.vala:283 msgid "Outlook.com" msgstr "Outlook.com" -#: src/client/accounts/accounts-editor-list-pane.vala:357 -#: src/client/accounts/accounts-editor-list-pane.vala:445 +#: src/client/accounts/accounts-editor-list-pane.vala:366 +#: src/client/accounts/accounts-editor-list-pane.vala:454 #: src/client/accounts/accounts-editor-row.vala:287 msgid "Yahoo" msgstr "Yahoo" #. Translators: Tooltip for accounts that have been #. loaded but disabled by the user. -#: src/client/accounts/accounts-editor-list-pane.vala:375 +#: src/client/accounts/accounts-editor-list-pane.vala:384 msgid "This account has been disabled" msgstr "このアカウントは無効になっています" #. Translators: Tooltip for accounts that have been #. loaded but because of some error are not able to be #. used. -#: src/client/accounts/accounts-editor-list-pane.vala:384 +#: src/client/accounts/accounts-editor-list-pane.vala:393 msgid "This account has encountered a problem and is unavailable" msgstr "このアカウントは問題が発生したため利用できません" #. Translators: Label for adding a generic email account -#: src/client/accounts/accounts-editor-list-pane.vala:434 +#: src/client/accounts/accounts-editor-list-pane.vala:443 msgid "Other email providers" msgstr "他のメールプロバイダー" #. Translators: Notification shown after removing an #. account. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:551 +#: src/client/accounts/accounts-editor-list-pane.vala:560 #, c-format msgid "Account “%s” removed" msgstr "アカウント“%s”を削除しました" @@ -629,7 +662,7 @@ msgstr "アカウント“%s”を削除しました" #. Translators: Notification shown after removing an account #. is undone. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:558 +#: src/client/accounts/accounts-editor-list-pane.vala:567 #, c-format msgid "Account “%s” restored" msgstr "アカウント“%s”を復元しました" @@ -656,8 +689,8 @@ msgstr "接続のセキュリティ" #. Translators: Label used when no auth scheme is used #. by an account's IMAP or SMTP service. #: src/client/accounts/accounts-editor-row.vala:479 -#: src/client/accounts/accounts-editor-servers-pane.vala:752 -#: src/client/accounts/accounts-editor-servers-pane.vala:964 +#: src/client/accounts/accounts-editor-servers-pane.vala:755 +#: src/client/accounts/accounts-editor-servers-pane.vala:970 #: src/engine/api/geary-special-folder-type.vala:58 msgid "None" msgstr "なし" @@ -674,7 +707,8 @@ msgstr "TLS" #. credentials (none, use IMAP, custom) when adding a new #. account #. Button label for retrying when a login error has occurred -#: src/client/accounts/accounts-editor-row.vala:534 ui/main-window.ui:346 +#: src/client/accounts/accounts-editor-row.vala:534 +#: ui/application-main-window.ui:346 msgid "Login" msgstr "ログイン" @@ -734,45 +768,330 @@ msgstr "送信メールをサーバーに保存" #. Translators: Label used when an account's IMAP or #. SMTP service uses OAuth2. The string replacement is #. the service's login name. -#: src/client/accounts/accounts-editor-servers-pane.vala:950 +#: src/client/accounts/accounts-editor-servers-pane.vala:956 #, c-format msgid "%s using OAuth2" msgstr "%s は OAuth2 を使用しています" -#: src/client/accounts/accounts-editor-servers-pane.vala:960 +#: src/client/accounts/accounts-editor-servers-pane.vala:966 msgid "Use receiving server login" msgstr "受信サーバーの情報を使う" #. Translators: File name used in save chooser when saving #. attachments that do not otherwise have a name. -#: src/client/application/application-controller.vala:59 +#: src/client/application/application-attachment-manager.vala:21 msgid "Untitled" msgstr "無題" +#. / Translators: Dialog primary label when prompting to +#. / overwrite a file. The string substitution is the file'sx +#. / name. +#: src/client/application/application-attachment-manager.vala:222 +#, c-format +msgid "A file named “%s” already exists. Do you want to replace it?" +msgstr "“%s”はすでに存在します。置き換えますか?" + +#. / Translators: Dialog secondary label when prompting to +#. / overwrite a file. The string substitution is the parent +#. / folder's name. +#: src/client/application/application-attachment-manager.vala:229 +#, c-format +msgid "" +"The file already exists in “%s”. Replacing it will overwrite its contents." +msgstr "ファイルはすでに“%s”に存在します。置き換えると内容を上書きします。" + +#: src/client/application/application-attachment-manager.vala:236 +msgid "_Replace" +msgstr "置換(_R)" + +#: src/client/application/application-client.vala:33 +msgid "Copyright 2016 Software Freedom Conservancy Inc." +msgstr "Copyright 2016 Software Freedom Conservancy Inc." + +#: src/client/application/application-client.vala:34 +msgid "Copyright 2016-2019 Geary Development Team." +msgstr "Copyright 2016-2019 Geary Development Team." + +#: src/client/application/application-client.vala:36 +msgid "Visit the Geary web site" +msgstr "Geary のウェブサイト" + +#. / Command line option +#: src/client/application/application-client.vala:94 +msgid "Print debug logging" +msgstr "デバッグログを表示する" + +#. / Command line option +#: src/client/application/application-client.vala:97 +msgid "Start with the main window hidden (deprecated)" +msgstr "メインウィンドウを隠して起動する (非推奨)" + +#. / Command line option +#: src/client/application/application-client.vala:100 +msgid "Enable WebKitGTK Inspector in web views" +msgstr "" + +#. / Command line option +#: src/client/application/application-client.vala:103 +msgid "Log conversation monitoring" +msgstr "スレッドのモニタリングを記録する" + +#. / Command line option +#: src/client/application/application-client.vala:106 +msgid "Log IMAP network deserialization" +msgstr "IMAP ネットワークのデシリアライズを記録する" + +#. / Command line option. "Normalization" can also be called +#. / "synchronization". +#: src/client/application/application-client.vala:110 +msgid "Log folder normalization" +msgstr "フォルダーの同期を記録する" + +#. / Command line option +#: src/client/application/application-client.vala:113 +msgid "Log network activity" +msgstr "ネットワークのアクティビティを記録する" + +#. / Command line option +#: src/client/application/application-client.vala:116 +msgid "Log periodic activity" +msgstr "定期的なアクティビティを記録する" + +#. / Command line option. The IMAP replay queue is how changes +#. / on the server are replicated on the client. It could +#. / also be called the IMAP events queue. +#: src/client/application/application-client.vala:121 +msgid "Log IMAP replay queue" +msgstr "IMAP のイベントキューを記録する" + +#. / Command line option. Serialization is how commands and +#. / responses are converted into a stream of bytes for +#. / network transmission +#: src/client/application/application-client.vala:126 +msgid "Log IMAP network serialization" +msgstr "IMAP ネットワークのストリームを記録する" + +#. / Command line option +#: src/client/application/application-client.vala:129 +msgid "Log database queries (generates lots of messages)" +msgstr "データベースのクエリを記録する (多くのメッセージを生成します)" + +#. / Command line option +#: src/client/application/application-client.vala:132 +msgid "Perform a graceful quit" +msgstr "正常に終了する" + +#: src/client/application/application-client.vala:134 +#, fuzzy +#| msgid "Use %s to open a new composer window" +msgid "Open a new window" +msgstr "%s を使って新規作成ウィンドウを開くことができます" + +#. / Command line option +#: src/client/application/application-client.vala:137 +#, fuzzy +#| msgid "Revoke all server certificates with TLS warnings" +msgid "Revoke all pinned TLS server certificates" +msgstr "TLS 警告のあるサーバー証明書をすべて失効させる" + +#. / Command line option +#: src/client/application/application-client.vala:140 +msgid "Display program version" +msgstr "プログラムのバージョンを表示する" + +#. / Application runtime information label +#: src/client/application/application-client.vala:264 +msgid "Geary version" +msgstr "Geary のバージョン" + +#. / Application runtime information label +#: src/client/application/application-client.vala:266 +msgid "Geary revision" +msgstr "Geary のリビジョン" + +#. / Application runtime information label +#: src/client/application/application-client.vala:268 +msgid "GTK version" +msgstr "GTK のバージョン" + +#. / Applciation runtime information label +#: src/client/application/application-client.vala:275 +msgid "GLib version" +msgstr "GLib のバージョン" + +#. / Application runtime information label +#: src/client/application/application-client.vala:282 +msgid "WebKitGTK version" +msgstr "WebKitGTK のバージョン" + +#. / Application runtime information label +#: src/client/application/application-client.vala:289 +msgid "Desktop environment" +msgstr "デスクトップ環境" + +#. Translators: This is the file type displayed for +#. attachments with unknown file types. +#: src/client/application/application-client.vala:291 +#: src/client/components/components-attachment-pane.vala:91 +msgid "Unknown" +msgstr "不明" + +#. / Application runtime information label +#: src/client/application/application-client.vala:321 +msgid "Distribution name" +msgstr "ディストリビューション名" + +#. / Application runtime information label +#: src/client/application/application-client.vala:326 +msgid "Distribution release" +msgstr "" + +#. / Application runtime information label +#: src/client/application/application-client.vala:334 +msgid "Installation prefix" +msgstr "" + +#: src/client/application/application-client.vala:587 +#, c-format +msgid "About %s" +msgstr "%s について" + +#. Translators: add your name and email address to receive +#. credit in the About dialog For example: Yamada Taro +#. +#: src/client/application/application-client.vala:591 +msgid "translator-credits" +msgstr "" +"masami chikahiro \n" +"Minato Kanzaki \n" +"pikatenor \n" +"sicklylife \n" +"UTUMI Hirosi " + +#. / Warning printed to the console when a deprecated +#. / command line option is used. +#: src/client/application/application-client.vala:937 +msgid "The `--hidden` option is deprecated and will be removed in the future." +msgstr "`--hidden` オプションは非推奨です。将来的に削除されます。" + +#. / Command line warning, string substitution +#. / is the given argument +#: src/client/application/application-client.vala:970 +#, c-format +msgid "Unrecognised program argument: “%s”" +msgstr "不明な引数です: “%s”" + #. / Notification title. -#: src/client/application/application-controller.vala:551 +#: src/client/application/application-controller.vala:458 #, c-format msgid "A problem occurred sending email for %s" msgstr "%s のメール送信時に問題が発生しました" #. / Notification body -#: src/client/application/application-controller.vala:555 +#: src/client/application/application-controller.vala:462 msgid "Email will not be sent until re-connected" msgstr "再接続するまでメールを送信しません" -#: src/client/application/application-controller.vala:906 -msgid "Labels" -msgstr "ラベル" +#. / Translators: Label for in-app notification +#: src/client/application/application-controller.vala:568 +#, fuzzy +#| msgid "Conversation Shortcuts" +msgid "Conversation marked" +msgid_plural "Conversations marked" +msgstr[0] "スレッドのショートカット" -#. give the user two options: reset the Account local store, or exit Geary. A third -#. could be done to leave the Account in an unopened state, but we don't currently -#. have provisions for that. -#: src/client/application/application-controller.vala:919 +#. / Translators: Label for in-app notification +#: src/client/application/application-controller.vala:574 +#, fuzzy +#| msgid "No conversations found" +msgid "Conversation un-marked" +msgid_plural "Conversations un-marked" +msgstr[0] "スレッドが見つかりません" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:600 +#: src/client/application/application-controller.vala:684 +#, fuzzy, c-format +#| msgid "Conversation Shortcuts" +msgid "Conversation moved to %s" +msgid_plural "Conversations moved to %s" +msgstr[0] "スレッドのショートカット" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the source folder. +#. / Translators: Label for in-app notification. String +#. / substitution is the name of the destination folder. +#: src/client/application/application-controller.vala:608 +#: src/client/application/application-controller.vala:630 +#, fuzzy, c-format +#| msgid "Conversation Shortcuts" +msgid "Conversation restored to %s" +msgid_plural "Conversations restored to %s" +msgstr[0] "スレッドのショートカット" + +#. / Translators: Label for in-app notification. +#: src/client/application/application-controller.vala:651 +#, fuzzy +#| msgid "Conversation Shortcuts" +msgid "Conversation archived" +msgid_plural "Conversations archived" +msgstr[0] "スレッドのショートカット" + +#. / Translators: Label for in-app notification. String +#. / substitution is the name of the destination folder. +#: src/client/application/application-controller.vala:707 +#, fuzzy, c-format +#| msgid "Message not saved" +msgid "Message restored to %s" +msgid_plural "Messages restored to %s" +msgstr[0] "メッセージが保存されませんでした" + +#. / Translators: Label for in-app notification. +#: src/client/application/application-controller.vala:728 +#, fuzzy +#| msgid "Message not saved" +msgid "Message archived" +msgid_plural "Messages archived" +msgstr[0] "メッセージが保存されませんでした" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:763 +#, fuzzy, c-format +#| msgid "Message not saved" +msgid "Message moved to %s" +msgid_plural "Messages moved to %s" +msgstr[0] "メッセージが保存されませんでした" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:791 +#, fuzzy, c-format +#| msgid "No conversations selected" +msgid "Conversation labelled as %s" +msgid_plural "Conversations labelled as %s" +msgstr[0] "スレッドを選択していません" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:799 +#, c-format +msgid "Conversation un-labelled as %s" +msgid_plural "Conversations un-labelled as %s" +msgstr[0] "" + +#: src/client/application/application-controller.vala:1222 #, c-format msgid "Unable to open the database for %s" msgstr "%s のデータベースを開けません" -#: src/client/application/application-controller.vala:920 +#: src/client/application/application-controller.vala:1223 #, c-format msgid "" "There was an error opening the local mail database for this account. This is " @@ -796,20 +1115,20 @@ msgstr "" "データベースを再構築すると、すべてのローカルメールと添付ファイルが破棄されま" "す。サーバー上のメールは影響を受けません。" -#: src/client/application/application-controller.vala:922 +#: src/client/application/application-controller.vala:1225 msgid "_Rebuild" msgstr "再構築(_R)" -#: src/client/application/application-controller.vala:922 +#: src/client/application/application-controller.vala:1225 msgid "E_xit" msgstr "終了(_X)" -#: src/client/application/application-controller.vala:931 +#: src/client/application/application-controller.vala:1235 #, c-format msgid "Unable to rebuild database for “%s”" msgstr "“%s”のデータベースを再構築できません" -#: src/client/application/application-controller.vala:932 +#: src/client/application/application-controller.vala:1236 #, c-format msgid "" "Error during rebuild:\n" @@ -820,17 +1139,111 @@ msgstr "" "\n" "%s" -#: src/client/application/application-controller.vala:1726 +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:1559 #, c-format -msgid "Moved %d message to %s" -msgid_plural "Moved %d messages to %s" -msgstr[0] "%d 件のメッセージを %s に移動しました" +msgid "Email sent to %s" +msgstr "" -#: src/client/application/application-controller.vala:1736 +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2642 +#, c-format +msgid "Email to %s queued for delivery" +msgstr "" + +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2706 +#, c-format +msgid "Email to %s saved" +msgstr "" + +#. / Translators: A label for an in-app notification. +#: src/client/application/application-controller.vala:2721 +#: src/client/application/application-controller.vala:2779 +msgid "Composer could not be restored" +msgstr "" + +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2764 +#, c-format +msgid "Email to %s discarded" +msgstr "" + +#. / Translators: Main window title, first string +#. / substitution being the currently selected folder name, +#. / the second being the selected account name. +#: src/client/application/application-main-window.vala:560 +#, c-format +msgid "%s — %s" +msgstr "" + +#: src/client/application/application-main-window.vala:967 +msgid "Labels" +msgstr "ラベル" + +#. / Translators: Primary text for a confirmation dialog +#: src/client/application/application-main-window.vala:1306 +#, fuzzy +#| msgid "Do you want to permanently delete this message?" +#| msgid_plural "Do you want to permanently delete these messages?" +msgid "Do you want to permanently delete this conversation?" +msgid_plural "Do you want to permanently delete these conversations?" +msgstr[0] "このメッセージを完全に削除しますか?" + +#: src/client/application/application-main-window.vala:1311 +#: src/client/application/application-main-window.vala:1326 +msgid "Delete" +msgstr "削除" + +#. / Translators: Primary text for a confirmation dialog +#: src/client/application/application-main-window.vala:1321 +msgid "Do you want to permanently delete this message?" +msgid_plural "Do you want to permanently delete these messages?" +msgstr[0] "このメッセージを完全に削除しますか?" + +#: src/client/application/application-main-window.vala:1334 +#, c-format +msgid "Empty all email from your %s folder?" +msgstr "%s フォルダーのすべてのメールを空にしますか?" + +#: src/client/application/application-main-window.vala:1337 +msgid "This removes the email from Geary and your email server." +msgstr "メールを Geary とメールサーバーから削除します。" + +#: src/client/application/application-main-window.vala:1338 +msgid "This cannot be undone." +msgstr "これは元に戻すことができません。" + +#: src/client/application/application-main-window.vala:1339 +#, c-format +msgid "Empty %s" +msgstr "%s を空にする" + +#: src/client/application/application-main-window.vala:1669 +#, c-format +msgid "%s (%d)" +msgstr "%s (%d)" + +#. Translators: The first argument will be a +#. description of the document type, the second will +#. be a human-friendly size string. For example: +#. Document (100.9MB) +#. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" +#: src/client/components/components-attachment-pane.vala:107 +#: src/client/composer/composer-widget.vala:1834 +#, c-format +msgid "%s (%s)" +msgstr "%s (%s)" + +#: src/client/components/components-attachment-pane.vala:379 msgid "Are you sure you want to open these attachments?" msgstr "これらの添付ファイルを開いてもよろしいですか?" -#: src/client/application/application-controller.vala:1737 +#: src/client/components/components-attachment-pane.vala:380 msgid "" "Attachments may cause damage to your system if opened. Only open files from " "trusted sources." @@ -838,352 +1251,161 @@ msgstr "" "添付ファイルはシステムにダメージを与える可能性があります。送信元が信頼できる" "場合のみ開くようにしてください。" -#: src/client/application/application-controller.vala:1738 +#: src/client/components/components-attachment-pane.vala:381 msgid "Don’t _ask me again" msgstr "次回から表示しない(_A)" -#. Translators: Dialog primary label when prompting to -#. overwrite a file. The string substitution is the file'sx -#. name. -#: src/client/application/application-controller.vala:1861 -#, c-format -msgid "A file named “%s” already exists. Do you want to replace it?" -msgstr "“%s”はすでに存在します。置き換えますか?" - -#. Translators: Dialog secondary label when prompting to -#. overwrite a file. The string substitution is the parent -#. folder's name. -#: src/client/application/application-controller.vala:1868 -#, c-format -msgid "" -"The file already exists in “%s”. Replacing it will overwrite its contents." -msgstr "ファイルはすでに“%s”に存在します。置き換えると内容を上書きします。" - -#: src/client/application/application-controller.vala:1872 -msgid "_Replace" -msgstr "置換(_R)" - -#: src/client/application/application-controller.vala:2232 -#, c-format -msgid "Empty all email from your %s folder?" -msgstr "%s フォルダーのすべてのメールを空にしますか?" - -#: src/client/application/application-controller.vala:2233 -msgid "This removes the email from Geary and your email server." -msgstr "メールを Geary とメールサーバーから削除します。" - -#: src/client/application/application-controller.vala:2234 -msgid "This cannot be undone." -msgstr "これは元に戻すことができません。" - -#: src/client/application/application-controller.vala:2235 -#, c-format -msgid "Empty %s" -msgstr "%s を空にする" - -#: src/client/application/application-controller.vala:2252 -#, c-format -msgid "Error emptying %s" -msgstr "%s を空にするときにエラーが発生しました" - -#: src/client/application/application-controller.vala:2283 -msgid "Do you want to permanently delete this message?" -msgid_plural "Do you want to permanently delete these messages?" -msgstr[0] "このメッセージを完全に削除しますか?" - -#: src/client/application/application-controller.vala:2285 -msgid "Delete" -msgstr "削除" - -#: src/client/application/application-controller.vala:2299 -#, c-format -msgid "Trashed %d message" -msgid_plural "Trashed %d messages" -msgstr[0] "%d 件のメッセージをごみ箱に移動しました" - -#: src/client/application/application-controller.vala:2346 -#, c-format -msgid "Archived %d message" -msgid_plural "Archived %d messages" -msgstr[0] "%d 件のメッセージをアーカイブに移動しました" - -#. Translators: The label for an in-app notification. The -#. string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2474 -#, c-format -msgid "Successfully sent mail to %s." -msgstr "%s にメールを送信しました。" - -#: src/client/application/application-controller.vala:2552 -msgid "Failed to open default text editor." -msgstr "デフォルトのテキストエディターの起動に失敗しました。" - -#: src/client/application/geary-application.vala:31 -msgid "Copyright 2016 Software Freedom Conservancy Inc." -msgstr "Copyright 2016 Software Freedom Conservancy Inc." - -#: src/client/application/geary-application.vala:32 -msgid "Copyright 2016-2019 Geary Development Team." -msgstr "Copyright 2016-2019 Geary Development Team." - -#: src/client/application/geary-application.vala:34 -msgid "Visit the Geary web site" -msgstr "Geary のウェブサイト" - -#. / Command line option -#: src/client/application/geary-application.vala:109 -msgid "Print debug logging" -msgstr "デバッグログを表示する" - -#. / Command line option -#: src/client/application/geary-application.vala:112 -msgid "Start with the main window hidden (deprecated)" -msgstr "メインウィンドウを隠して起動する (非推奨)" - -#. / Command line option -#: src/client/application/geary-application.vala:115 -msgid "Enable WebKitGTK Inspector in web views" -msgstr "" - -#. / Command line option -#: src/client/application/geary-application.vala:118 -msgid "Log conversation monitoring" -msgstr "スレッドのモニタリングを記録する" - -#. / Command line option -#: src/client/application/geary-application.vala:121 -msgid "Log IMAP network deserialization" -msgstr "IMAP ネットワークのデシリアライズを記録する" - -#. / Command line option. "Normalization" can also be called -#. / "synchronization". -#: src/client/application/geary-application.vala:125 -msgid "Log folder normalization" -msgstr "フォルダーの同期を記録する" - -#. / Command line option -#: src/client/application/geary-application.vala:128 -msgid "Log network activity" -msgstr "ネットワークのアクティビティを記録する" - -#. / Command line option -#: src/client/application/geary-application.vala:131 -msgid "Log periodic activity" -msgstr "定期的なアクティビティを記録する" - -#. / Command line option. The IMAP replay queue is how changes -#. / on the server are replicated on the client. It could -#. / also be called the IMAP events queue. -#: src/client/application/geary-application.vala:136 -msgid "Log IMAP replay queue" -msgstr "IMAP のイベントキューを記録する" - -#. / Command line option. Serialization is how commands and -#. / responses are converted into a stream of bytes for -#. / network transmission -#: src/client/application/geary-application.vala:141 -msgid "Log IMAP network serialization" -msgstr "IMAP ネットワークのストリームを記録する" - -#. / Command line option -#: src/client/application/geary-application.vala:144 -msgid "Log database queries (generates lots of messages)" -msgstr "データベースのクエリを記録する (多くのメッセージを生成します)" - -#. / Command line option -#: src/client/application/geary-application.vala:147 -msgid "Perform a graceful quit" -msgstr "正常に終了する" - -#. / Command line option -#: src/client/application/geary-application.vala:150 -#, fuzzy -#| msgid "Revoke all server certificates with TLS warnings" -msgid "Revoke all pinned TLS server certificates" -msgstr "TLS 警告のあるサーバー証明書をすべて失効させる" - -#. / Command line option -#: src/client/application/geary-application.vala:153 -msgid "Display program version" -msgstr "プログラムのバージョンを表示する" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:280 -msgid "Geary version" -msgstr "Geary のバージョン" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:282 -msgid "Geary revision" -msgstr "Geary のリビジョン" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:284 -msgid "GTK version" -msgstr "GTK のバージョン" - -#. / Applciation runtime information label -#: src/client/application/geary-application.vala:291 -msgid "GLib version" -msgstr "GLib のバージョン" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:298 -msgid "WebKitGTK version" -msgstr "WebKitGTK のバージョン" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:305 -msgid "Desktop environment" -msgstr "デスクトップ環境" - -#. Translators: This is the file type displayed for -#. attachments with unknown file types. -#: src/client/application/geary-application.vala:307 -#: src/client/conversation-viewer/conversation-email.vala:159 -msgid "Unknown" -msgstr "不明" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:337 -msgid "Distribution name" -msgstr "ディストリビューション名" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:342 -msgid "Distribution release" -msgstr "" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:350 -msgid "Installation prefix" -msgstr "" - -#: src/client/application/geary-application.vala:510 -#, c-format -msgid "About %s" -msgstr "%s について" - -#. Translators: add your name and email address to receive -#. credit in the About dialog For example: Yamada Taro -#. -#: src/client/application/geary-application.vala:514 -msgid "translator-credits" -msgstr "" -"masami chikahiro \n" -"Minato Kanzaki \n" -"pikatenor \n" -"sicklylife \n" -"UTUMI Hirosi " - -#. / Warning printed to the console when a deprecated -#. / command line option is used. -#: src/client/application/geary-application.vala:798 -msgid "The `--hidden` option is deprecated and will be removed in the future." -msgstr "`--hidden` オプションは非推奨です。将来的に削除されます。" - -#. / Command line warning, string substitution -#. / is the given argument -#: src/client/application/geary-application.vala:830 -#, c-format -msgid "Unrecognised program argument: “%s”" -msgstr "不明な引数です: “%s”" - -#: src/client/components/components-inspector.vala:68 +#: src/client/components/components-inspector.vala:72 msgid "Inspector" msgstr "" #. / Translators: Title for Inspector logs pane #. / Translators: Title for problem report dialog logs pane -#: src/client/components/components-inspector.vala:77 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:91 +#: src/client/components/components-inspector.vala:87 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:102 msgid "Logs" msgstr "ログ" #. / Translators: Title for Inspector system system information pane #. / Translators: Title for problem report system information #. / pane -#: src/client/components/components-inspector.vala:81 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:94 +#: src/client/components/components-inspector.vala:91 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:105 msgid "System" msgstr "システム" #. Button label for saving problem report information -#: src/client/components/components-inspector.vala:198 -#: src/client/components/components-inspector.vala:201 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:210 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:213 +#: src/client/components/components-inspector.vala:208 +#: src/client/components/components-inspector.vala:211 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:221 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:224 #: ui/problem-details-dialog.ui:42 msgid "Save As" msgstr "名前を付けて保存" -#: src/client/components/components-inspector.vala:202 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:214 +#: src/client/components/components-inspector.vala:212 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:225 #: ui/accounts_editor_servers_pane.ui:17 msgid "Cancel" msgstr "キャンセル" +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:43 +msgid "_Automatically select next message" +msgstr "自動的に次のメッセージを選択する(_A)" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:53 +msgid "_Display conversation preview" +msgstr "スレッドプレビューを表示する(_D)" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:63 +msgid "Use _three pane view" +msgstr "3ペインビューを使う(_T)" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:73 +#, fuzzy +#| msgctxt "shortcut window" +#| msgid "Single-key shortcuts" +msgid "Use _single key email shortcuts" +msgstr "シングルキーショートカット" + +#: src/client/components/components-preferences-window.vala:75 +msgid "" +"Enable keyboard shortcuts for email actions that do not require pressing " +"" +msgstr "" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:86 +msgid "_Watch for new mail when closed" +msgstr "閉じても新着メールを監視する(_W)" + +#. / Translators: Preferences tooltip +#: src/client/components/components-preferences-window.vala:90 +msgid "Geary will keep running after all windows are closed" +msgstr "すべてのウィンドウを閉じても Geary の実行を続けます" + +#. / Translators: Search entry placeholder text +#: src/client/components/components-search-bar.vala:12 +#: src/client/folder-list/folder-list-search-branch.vala:53 +#: src/engine/api/geary-special-folder-type.vala:51 +msgid "Search" +msgstr "検索" + +#. / Translators: Search entry tooltip +#: src/client/components/components-search-bar.vala:32 +#, fuzzy +#| msgid "Search all mail in account for keywords (Ctrl+S)" +msgid "Search all mail in account for keywords" +msgstr "アカウント内のすべてのメールをキーワードで検索(Ctrl+S)" + +#. / Translators: Search entry placeholder, string +#. / replacement is the name of an account +#: src/client/components/components-search-bar.vala:81 +#: src/client/folder-list/folder-list-search-branch.vala:54 +#, c-format +msgid "Search %s account" +msgstr "アカウント %s を検索" + #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but one is not provided. -#: src/client/components/components-validator.vala:378 +#: src/client/components/components-validator.vala:390 msgid "An email address is required" msgstr "メールアドレスは必須です" #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but the address is invalid. -#: src/client/components/components-validator.vala:382 +#: src/client/components/components-validator.vala:394 msgid "Not a valid email address" msgstr "有効なメールアドレスではありません" #. Translators: Tooltip used when an entry requires a valid, #. resolvable server name to be entered, but one is not #. provided. -#: src/client/components/components-validator.vala:428 +#: src/client/components/components-validator.vala:440 msgid "A server name is required" msgstr "サーバー名は必須です" #. Translators: Tooltip used when an entry requires a valid #. server name to be entered, but it was unable to be #. looked-up in the DNS. -#: src/client/components/components-validator.vala:433 +#: src/client/components/components-validator.vala:445 msgid "Could not look up server name" msgstr "サーバー名が見つかりませんでした" -#: src/client/components/main-toolbar.vala:139 +#: src/client/components/main-toolbar.vala:116 msgid "Mark conversation" msgid_plural "Mark conversations" msgstr[0] "スレッドをマーク" -#: src/client/components/main-toolbar.vala:144 +#: src/client/components/main-toolbar.vala:121 msgid "Add label to conversation" msgid_plural "Add label to conversations" msgstr[0] "スレッドにラベル付け" -#: src/client/components/main-toolbar.vala:149 +#: src/client/components/main-toolbar.vala:126 msgid "Move conversation" msgid_plural "Move conversations" msgstr[0] "スレッドを移動" -#: src/client/components/main-toolbar.vala:154 +#: src/client/components/main-toolbar.vala:131 msgid "Archive conversation" msgid_plural "Archive conversations" msgstr[0] "スレッドをアーカイブに移動" -#: src/client/components/main-toolbar.vala:163 +#: src/client/components/main-toolbar.vala:142 msgid "Move conversation to Trash" msgid_plural "Move conversations to Trash" msgstr[0] "スレッドをごみ箱に移動" -#: src/client/components/main-toolbar.vala:171 +#: src/client/components/main-toolbar.vala:152 msgid "Delete conversation" msgid_plural "Delete conversations" msgstr[0] "スレッドを削除" -#: src/client/components/main-window.vala:738 -#, c-format -msgid "%s (%d)" -msgstr "%s (%d)" - #. Translators: Info bar title for a generic account #. problem. #: src/client/components/main-window-info-bar.vala:44 @@ -1253,28 +1475,6 @@ msgstr "エラーについての技術的な詳細情報を表示" msgid "_Retry" msgstr "再試行(_R)" -#: src/client/components/search-bar.vala:8 -#: src/client/folder-list/folder-list-search-branch.vala:38 -#: src/engine/api/geary-special-folder-type.vala:51 -msgid "Search" -msgstr "検索" - -#. Search entry. -#: src/client/components/search-bar.vala:23 -msgid "Search all mail in account for keywords (Ctrl+S)" -msgstr "アカウント内のすべてのメールをキーワードで検索(Ctrl+S)" - -#: src/client/components/search-bar.vala:83 -#, c-format -msgid "Indexing %s account" -msgstr "" - -#: src/client/components/search-bar.vala:110 -#: src/client/folder-list/folder-list-search-branch.vala:39 -#, c-format -msgid "Search %s account" -msgstr "アカウント %s を検索" - #. / Displayed in the space-limited status bar while a message is in the process of being sent. #: src/client/components/status-bar.vala:26 msgid "Sending…" @@ -1315,15 +1515,15 @@ msgstr "閉じる(_C)" msgid "_Discard" msgstr "破棄(_D)" -#: src/client/components/stock.vala:25 ui/main-toolbar-menus.ui:56 +#: src/client/components/stock.vala:25 ui/main-toolbar-menus.ui:52 msgid "_Help" msgstr "ヘルプ(_H)" -#: src/client/components/stock.vala:26 ui/conversation-email-menus.ui:77 +#: src/client/components/stock.vala:26 ui/components-attachment-pane-menus.ui:7 msgid "_Open" msgstr "開く(_O)" -#: src/client/components/stock.vala:27 ui/main-toolbar-menus.ui:46 +#: src/client/components/stock.vala:27 ui/main-toolbar-menus.ui:42 msgid "_Preferences" msgstr "設定(_P)" @@ -1340,7 +1540,8 @@ msgstr "終了(_Q)" msgid "_Remove" msgstr "削除(_R)" -#: src/client/components/stock.vala:31 ui/conversation-email-menus.ui:83 +#: src/client/components/stock.vala:31 +#: ui/components-attachment-pane-menus.ui:11 msgid "_Save" msgstr "保存(_S)" @@ -1348,39 +1549,45 @@ msgstr "保存(_S)" msgid "_Keep" msgstr "保持(_K)" -#: src/client/composer/composer-link-popover.vala:149 +#: src/client/composer/composer-link-popover.vala:139 msgid "Link URL is not correctly formatted, e.g. http://example.com" msgstr "リンク URL の書式が間違っています (例: http://example.com)" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid link URL" msgstr "無効なリンク URL" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid email address" msgstr "無効なメールアドレス" -#: src/client/composer/composer-widget.vala:156 +#. / Translators: Title for an empty composer window +#: src/client/composer/composer-widget.vala:30 +msgid "New Message" +msgstr "新規メッセージ" + +#: src/client/composer/composer-widget.vala:217 msgid "Saved" msgstr "保存済み" -#: src/client/composer/composer-widget.vala:157 +#: src/client/composer/composer-widget.vala:218 msgid "Saving" msgstr "保存中" -#: src/client/composer/composer-widget.vala:158 +#: src/client/composer/composer-widget.vala:219 msgid "Error saving" msgstr "保存エラー" -#: src/client/composer/composer-widget.vala:159 +#: src/client/composer/composer-widget.vala:220 msgid "Press Backspace to delete quote" msgstr "Backspace を押すと引用を削除できます" #. Translators: This is list of keywords, separated by pipe ("|") #. characters, that suggest an attachment; since this is full-word -#. checking, include all variants of each word. No spaces are -#. allowed. -#: src/client/composer/composer-widget.vala:168 +#. checking, include all variants of each word. No spaces are +#. allowed. The words will be converted to lower case based on +#. locale and English versions included automatically. +#: src/client/composer/composer-widget.vala:236 msgid "" "attach|attaching|attaches|attachment|attachments|attached|enclose|enclosed|" "enclosing|encloses|enclosure|enclosures" @@ -1389,100 +1596,90 @@ msgstr "" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. Keep, Discard or Cancel. -#: src/client/composer/composer-widget.vala:1181 +#: src/client/composer/composer-widget.vala:843 msgid "Do you want to keep or discard this draft message?" msgstr "この下書きメッセージを保持または破棄しますか?" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. only Discard or Cancel. -#: src/client/composer/composer-widget.vala:1211 +#: src/client/composer/composer-widget.vala:869 msgid "Do you want to discard this draft message?" msgstr "この下書きメッセージを破棄しますか?" -#: src/client/composer/composer-widget.vala:1330 +#: src/client/composer/composer-widget.vala:1503 msgid "Send message with an empty subject and body?" msgstr "メッセージを件名と本文なしで送信しますか?" -#: src/client/composer/composer-widget.vala:1332 +#: src/client/composer/composer-widget.vala:1505 msgid "Send message with an empty subject?" msgstr "メッセージを件名なしで送信しますか?" -#: src/client/composer/composer-widget.vala:1334 +#: src/client/composer/composer-widget.vala:1507 msgid "Send message with an empty body?" msgstr "メッセージを本文なしで送信しますか?" -#: src/client/composer/composer-widget.vala:1338 +#: src/client/composer/composer-widget.vala:1516 msgid "Send message without an attachment?" msgstr "メッセージを添付ファイルなしで送信しますか?" -#: src/client/composer/composer-widget.vala:1652 +#: src/client/composer/composer-widget.vala:1820 #, c-format msgid "“%s” already attached for delivery." msgstr "“%s”はすでに添付されています。" -#. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" -#. Translators: The first argument will be a -#. description of the document type, the second will -#. be a human-friendly size string. For example: -#. Document (100.9MB) -#: src/client/composer/composer-widget.vala:1660 -#: src/client/conversation-viewer/conversation-email.vala:173 -#, c-format -msgid "%s (%s)" -msgstr "%s (%s)" - -#: src/client/composer/composer-widget.vala:1697 -#, c-format -msgid "“%s” could not be found." -msgstr "“%s”が見つかりませんでした。" - -#: src/client/composer/composer-widget.vala:1703 -#, c-format -msgid "“%s” is a folder." -msgstr "“%s”はフォルダーです。" - -#: src/client/composer/composer-widget.vala:1709 +#: src/client/composer/composer-widget.vala:1856 +#: src/client/composer/composer-widget.vala:1906 #, c-format msgid "“%s” is an empty file." msgstr "“%s”は空ファイルです。" -#: src/client/composer/composer-widget.vala:1722 +#: src/client/composer/composer-widget.vala:1894 +#, c-format +msgid "“%s” could not be found." +msgstr "“%s”が見つかりませんでした。" + +#: src/client/composer/composer-widget.vala:1900 +#, c-format +msgid "“%s” is a folder." +msgstr "“%s”はフォルダーです。" + +#: src/client/composer/composer-widget.vala:1919 #, c-format msgid "“%s” could not be opened for reading." msgstr "“%s”を読み取り用に開けませんでした。" -#: src/client/composer/composer-widget.vala:1730 +#: src/client/composer/composer-widget.vala:1927 msgid "Cannot add attachment" msgstr "添付できません" #. Translators: Human-readable version of the RFC 822 To header -#: src/client/composer/composer-widget.vala:1787 -#: src/client/conversation-viewer/conversation-email.vala:976 -#: src/client/util/util-email.vala:216 ui/conversation-message.ui:312 +#: src/client/composer/composer-widget.vala:1984 +#: src/client/conversation-viewer/conversation-email.vala:559 +#: src/client/util/util-email.vala:235 ui/conversation-message.ui:312 msgid "To:" msgstr "宛先:" #. Translators: Human-readable version of the RFC 822 CC header -#: src/client/composer/composer-widget.vala:1793 -#: src/client/conversation-viewer/conversation-email.vala:981 -#: src/client/util/util-email.vala:221 ui/conversation-message.ui:357 +#: src/client/composer/composer-widget.vala:1990 +#: src/client/conversation-viewer/conversation-email.vala:564 +#: src/client/util/util-email.vala:240 ui/conversation-message.ui:357 msgid "Cc:" msgstr "Cc:" #. Translators: Human-readable version of the RFC 822 BCC header -#: src/client/composer/composer-widget.vala:1799 -#: src/client/conversation-viewer/conversation-email.vala:986 +#: src/client/composer/composer-widget.vala:1996 +#: src/client/conversation-viewer/conversation-email.vala:569 #: ui/conversation-message.ui:402 msgid "Bcc:" msgstr "Bcc:" #. Translators: Human-readable version of the RFC 822 Reply-To header -#: src/client/composer/composer-widget.vala:1805 +#: src/client/composer/composer-widget.vala:2002 msgid "Reply-To: " msgstr "Reply-To: " -#: src/client/composer/composer-widget.vala:1945 +#: src/client/composer/composer-widget.vala:2254 msgid "Select Color" msgstr "色を選択" @@ -1491,41 +1688,37 @@ msgstr "色を選択" #. printf argument will be the alternate email address, #. and the second will be the account's primary email #. address. -#: src/client/composer/composer-widget.vala:2137 +#: src/client/composer/composer-widget.vala:2439 #, c-format msgid "%1$s via %2$s" msgstr "%1$s (%2$s を通して使用)" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: src/client/composer/composer-widget.vala:2192 +#: src/client/composer/composer-widget.vala:2495 msgid "_From:" msgstr "差出人(_F):" #. Translators: This is the name of the file chooser filter #. when inserting an image in the composer. -#: src/client/composer/composer-widget.vala:2472 +#: src/client/composer/composer-widget.vala:2800 msgid "Images" msgstr "画像" -#: src/client/composer/composer-window.vala:14 -msgid "New Message" -msgstr "新規メッセージ" - -#: src/client/composer/spell-check-popover.vala:108 +#: src/client/composer/spell-check-popover.vala:125 msgid "Remove this language from the preferred list" msgstr "この言語を優先リストから削除" -#: src/client/composer/spell-check-popover.vala:112 +#: src/client/composer/spell-check-popover.vala:129 msgid "Add this language to the preferred list" msgstr "この言語を優先リストに追加" -#: src/client/composer/spell-check-popover.vala:199 +#: src/client/composer/spell-check-popover.vala:225 msgid "Search for more languages" msgstr "言語を検索" #. / Translators: Context menu item -#: src/client/conversation-list/conversation-list-view.vala:337 +#: src/client/conversation-list/conversation-list-view.vala:335 msgid "Move conversation to _Trash" msgid_plural "Move conversations to _Trash" msgstr[0] "スレッドをごみ箱に移動(_T)" @@ -1536,38 +1729,38 @@ msgid "_Delete conversation" msgid_plural "_Delete conversations" msgstr[0] "スレッドを削除(_D)" -#: src/client/conversation-list/conversation-list-view.vala:356 +#: src/client/conversation-list/conversation-list-view.vala:360 #: ui/main-toolbar-menus.ui:5 msgid "Mark as _Read" msgstr "既読としてマーク(_R)" -#: src/client/conversation-list/conversation-list-view.vala:359 +#: src/client/conversation-list/conversation-list-view.vala:368 #: ui/main-toolbar-menus.ui:9 msgid "Mark as _Unread" msgstr "未読としてマーク(_U)" -#: src/client/conversation-list/conversation-list-view.vala:362 +#: src/client/conversation-list/conversation-list-view.vala:376 #: ui/main-toolbar-menus.ui:17 msgid "U_nstar" msgstr "星を外す(_N)" -#: src/client/conversation-list/conversation-list-view.vala:364 +#: src/client/conversation-list/conversation-list-view.vala:383 #: ui/main-toolbar-menus.ui:13 msgid "_Star" msgstr "星を付ける(_S)" #. Translators: Menu item to reply to a specific message. -#: src/client/conversation-list/conversation-list-view.vala:367 +#: src/client/conversation-list/conversation-list-view.vala:392 #: ui/conversation-email-menus.ui:9 msgid "_Reply" msgstr "返信(_R)" -#: src/client/conversation-list/conversation-list-view.vala:368 +#: src/client/conversation-list/conversation-list-view.vala:398 msgid "R_eply All" msgstr "全員に返信(_E)" #. Translators: Menu item to forward a specific message. -#: src/client/conversation-list/conversation-list-view.vala:369 +#: src/client/conversation-list/conversation-list-view.vala:404 #: ui/conversation-email-menus.ui:21 msgid "_Forward" msgstr "転送(_F)" @@ -1577,24 +1770,24 @@ msgid "Me" msgstr "自分" #. Translators: Human-readable version of the RFC 822 From header -#: src/client/conversation-viewer/conversation-email.vala:971 -#: src/client/util/util-email.vala:207 +#: src/client/conversation-viewer/conversation-email.vala:554 +#: src/client/util/util-email.vala:226 msgid "From:" msgstr "差出人:" #. Translators: Human-readable version of the RFC 822 Date header -#: src/client/conversation-viewer/conversation-email.vala:991 -#: src/client/util/util-email.vala:212 +#: src/client/conversation-viewer/conversation-email.vala:574 +#: src/client/util/util-email.vala:231 msgid "Date:" msgstr "日時:" #. Translators: Human-readable version of the RFC 822 Subject header -#: src/client/conversation-viewer/conversation-email.vala:1001 -#: src/client/util/util-email.vala:210 +#: src/client/conversation-viewer/conversation-email.vala:584 +#: src/client/util/util-email.vala:229 msgid "Subject:" msgstr "件名:" -#: src/client/conversation-viewer/conversation-message.vala:129 +#: src/client/conversation-viewer/conversation-message.vala:128 msgid "This email address may have been forged" msgstr "これは偽装メールアドレスである可能性があります" @@ -1602,44 +1795,44 @@ msgstr "これは偽装メールアドレスである可能性があります" #. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:447 +#: src/client/conversation-viewer/conversation-message.vala:438 msgid "No sender" msgstr "送信者なし" #. Translators: This separates multiple 'from' #. addresses in the compact header for a message. -#: src/client/conversation-viewer/conversation-message.vala:840 +#: src/client/conversation-viewer/conversation-message.vala:830 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Image Date: Thu, 20 Feb 2020 18:04:12 +0000 Subject: [PATCH 024/336] Update Japanese translation --- po/ja.po | 301 ++++++++++++++++--------------------------------------- 1 file changed, 88 insertions(+), 213 deletions(-) diff --git a/po/ja.po b/po/ja.po index 69181a6b..dc48b53b 100644 --- a/po/ja.po +++ b/po/ja.po @@ -1,19 +1,19 @@ # po/geary.pot # PO message string template file for Geary email client -# Copyright 2016-2019 Software Freedom Conservancy Inc. +# Copyright 2016-2020 Software Freedom Conservancy Inc. # This file is distributed under the GNU LGPL, version 2.1. # # Translators: # masami chikahiro , 2013. # pikatenor , 2013. # UTUMI Hirosi , 2018. -# sicklylife , 2019. +# sicklylife , 2019-2020. msgid "" msgstr "" "Project-Id-Version: geary-0.4.1\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" "POT-Creation-Date: 2020-02-16 20:26+0000\n" -"PO-Revision-Date: 2019-09-20 23:30+0900\n" +"PO-Revision-Date: 2020-02-20 23:30+0900\n" "Last-Translator: sicklylife \n" "Language-Team: Japanese (Japan) (https://l10n.gnome.org/module/geary/)\n" "Language: ja\n" @@ -225,11 +225,8 @@ msgid "True if we should display a short preview of each message." msgstr "各メッセージの短いプレビューを表示する場合は true にしてください。" #: desktop/org.gnome.Geary.gschema.xml:74 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Single-key shortcuts" msgid "Use single key shortcuts" -msgstr "シングルキーショートカット" +msgstr "" #: desktop/org.gnome.Geary.gschema.xml:75 msgid "" @@ -307,10 +304,8 @@ msgid "The last recorded size of the detached composer window." msgstr "最後に記録した、分離した作成ウィンドウのサイズです。" #: desktop/org.gnome.Geary.gschema.xml:132 -#, fuzzy -#| msgid "Error sending email" msgid "Undo sending email delay" -msgstr "メール送信時にエラーが発生しました" +msgstr "" #: desktop/org.gnome.Geary.gschema.xml:133 msgid "" @@ -882,17 +877,13 @@ msgid "Perform a graceful quit" msgstr "正常に終了する" #: src/client/application/application-client.vala:134 -#, fuzzy -#| msgid "Use %s to open a new composer window" msgid "Open a new window" -msgstr "%s を使って新規作成ウィンドウを開くことができます" +msgstr "新しいウィンドウを開く" #. / Command line option #: src/client/application/application-client.vala:137 -#, fuzzy -#| msgid "Revoke all server certificates with TLS warnings" msgid "Revoke all pinned TLS server certificates" -msgstr "TLS 警告のあるサーバー証明書をすべて失効させる" +msgstr "ピン留めされた TLS サーバー証明書をすべて失効させる" #. / Command line option #: src/client/application/application-client.vala:140 @@ -994,30 +985,25 @@ msgstr "再接続するまでメールを送信しません" #. / Translators: Label for in-app notification #: src/client/application/application-controller.vala:568 -#, fuzzy -#| msgid "Conversation Shortcuts" msgid "Conversation marked" msgid_plural "Conversations marked" -msgstr[0] "スレッドのショートカット" +msgstr[0] "スレッドをマークしました" #. / Translators: Label for in-app notification #: src/client/application/application-controller.vala:574 -#, fuzzy -#| msgid "No conversations found" msgid "Conversation un-marked" msgid_plural "Conversations un-marked" -msgstr[0] "スレッドが見つかりません" +msgstr[0] "スレッドのマークを外しました" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. #: src/client/application/application-controller.vala:600 #: src/client/application/application-controller.vala:684 -#, fuzzy, c-format -#| msgid "Conversation Shortcuts" +#, c-format msgid "Conversation moved to %s" msgid_plural "Conversations moved to %s" -msgstr[0] "スレッドのショートカット" +msgstr[0] "スレッドを %s へ移動しました" #. / Translators: Label for in-app #. / notification. String substitution is the name @@ -1026,56 +1012,48 @@ msgstr[0] "スレッドのショートカット" #. / substitution is the name of the destination folder. #: src/client/application/application-controller.vala:608 #: src/client/application/application-controller.vala:630 -#, fuzzy, c-format -#| msgid "Conversation Shortcuts" +#, c-format msgid "Conversation restored to %s" msgid_plural "Conversations restored to %s" -msgstr[0] "スレッドのショートカット" +msgstr[0] "スレッドを %s へ復元しました" #. / Translators: Label for in-app notification. #: src/client/application/application-controller.vala:651 -#, fuzzy -#| msgid "Conversation Shortcuts" msgid "Conversation archived" msgid_plural "Conversations archived" -msgstr[0] "スレッドのショートカット" +msgstr[0] "スレッドをアーカイブへ移動しました" #. / Translators: Label for in-app notification. String #. / substitution is the name of the destination folder. #: src/client/application/application-controller.vala:707 -#, fuzzy, c-format -#| msgid "Message not saved" +#, c-format msgid "Message restored to %s" msgid_plural "Messages restored to %s" -msgstr[0] "メッセージが保存されませんでした" +msgstr[0] "メッセージを %s へ復元しました" #. / Translators: Label for in-app notification. #: src/client/application/application-controller.vala:728 -#, fuzzy -#| msgid "Message not saved" msgid "Message archived" msgid_plural "Messages archived" -msgstr[0] "メッセージが保存されませんでした" +msgstr[0] "メッセージをアーカイブへ移動しました" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. #: src/client/application/application-controller.vala:763 -#, fuzzy, c-format -#| msgid "Message not saved" +#, c-format msgid "Message moved to %s" msgid_plural "Messages moved to %s" -msgstr[0] "メッセージが保存されませんでした" +msgstr[0] "メッセージを %s へ移動しました" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. #: src/client/application/application-controller.vala:791 -#, fuzzy, c-format -#| msgid "No conversations selected" +#, c-format msgid "Conversation labelled as %s" msgid_plural "Conversations labelled as %s" -msgstr[0] "スレッドを選択していません" +msgstr[0] "スレッドを %s としてラベル付けしました" #. / Translators: Label for in-app #. / notification. String substitution is the name @@ -1084,7 +1062,7 @@ msgstr[0] "スレッドを選択していません" #, c-format msgid "Conversation un-labelled as %s" msgid_plural "Conversations un-labelled as %s" -msgstr[0] "" +msgstr[0] "スレッドのラベル %s を外しました" #: src/client/application/application-controller.vala:1222 #, c-format @@ -1144,21 +1122,21 @@ msgstr "" #: src/client/application/application-controller.vala:1559 #, c-format msgid "Email sent to %s" -msgstr "" +msgstr "%s へメールを送信しました" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. #: src/client/application/application-controller.vala:2642 #, c-format msgid "Email to %s queued for delivery" -msgstr "" +msgstr "%s へのメールが送信待機中です" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. #: src/client/application/application-controller.vala:2706 #, c-format msgid "Email to %s saved" -msgstr "" +msgstr "%s へのメールを保存しました" #. / Translators: A label for an in-app notification. #: src/client/application/application-controller.vala:2721 @@ -1171,7 +1149,7 @@ msgstr "" #: src/client/application/application-controller.vala:2764 #, c-format msgid "Email to %s discarded" -msgstr "" +msgstr "%s へのメールを破棄しました" #. / Translators: Main window title, first string #. / substitution being the currently selected folder name, @@ -1179,7 +1157,7 @@ msgstr "" #: src/client/application/application-main-window.vala:560 #, c-format msgid "%s — %s" -msgstr "" +msgstr "%s — %s" #: src/client/application/application-main-window.vala:967 msgid "Labels" @@ -1187,12 +1165,9 @@ msgstr "ラベル" #. / Translators: Primary text for a confirmation dialog #: src/client/application/application-main-window.vala:1306 -#, fuzzy -#| msgid "Do you want to permanently delete this message?" -#| msgid_plural "Do you want to permanently delete these messages?" msgid "Do you want to permanently delete this conversation?" msgid_plural "Do you want to permanently delete these conversations?" -msgstr[0] "このメッセージを完全に削除しますか?" +msgstr[0] "このスレッドを完全に削除しますか?" #: src/client/application/application-main-window.vala:1311 #: src/client/application/application-main-window.vala:1326 @@ -1306,17 +1281,15 @@ msgstr "3ペインビューを使う(_T)" #. / Translators: Preferences label #: src/client/components/components-preferences-window.vala:73 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Single-key shortcuts" msgid "Use _single key email shortcuts" -msgstr "シングルキーショートカット" +msgstr "シングルキーメールショートカットを使用する(_S)" #: src/client/components/components-preferences-window.vala:75 msgid "" "Enable keyboard shortcuts for email actions that do not require pressing " "" msgstr "" +" を押すことなくメールを操作できるキーボードショートカットを有効にします" #. / Translators: Preferences label #: src/client/components/components-preferences-window.vala:86 @@ -1337,10 +1310,8 @@ msgstr "検索" #. / Translators: Search entry tooltip #: src/client/components/components-search-bar.vala:32 -#, fuzzy -#| msgid "Search all mail in account for keywords (Ctrl+S)" msgid "Search all mail in account for keywords" -msgstr "アカウント内のすべてのメールをキーワードで検索(Ctrl+S)" +msgstr "アカウント内のすべてのメールをキーワードで検索" #. / Translators: Search entry placeholder, string #. / replacement is the name of an account @@ -1394,12 +1365,12 @@ msgstr[0] "スレッドを移動" #: src/client/components/main-toolbar.vala:131 msgid "Archive conversation" msgid_plural "Archive conversations" -msgstr[0] "スレッドをアーカイブに移動" +msgstr[0] "スレッドをアーカイブへ移動" #: src/client/components/main-toolbar.vala:142 msgid "Move conversation to Trash" msgid_plural "Move conversations to Trash" -msgstr[0] "スレッドをごみ箱に移動" +msgstr[0] "スレッドをゴミ箱へ移動" #: src/client/components/main-toolbar.vala:152 msgid "Delete conversation" @@ -1721,7 +1692,7 @@ msgstr "言語を検索" #: src/client/conversation-list/conversation-list-view.vala:335 msgid "Move conversation to _Trash" msgid_plural "Move conversations to _Trash" -msgstr[0] "スレッドをごみ箱に移動(_T)" +msgstr[0] "スレッドをゴミ箱へ移動(_T)" #. / Translators: Context menu item #: src/client/conversation-list/conversation-list-view.vala:347 @@ -2207,7 +2178,7 @@ msgstr "迷惑メール" #: src/engine/api/geary-special-folder-type.vala:45 msgid "Trash" -msgstr "ごみ箱" +msgstr "ゴミ箱" #: src/engine/api/geary-special-folder-type.vala:48 msgid "Outbox" @@ -2424,7 +2395,7 @@ msgstr "迷惑メール | スパム | スパムメール | ごみ | ゴミ" #. default. English names do not need to be included. #: src/engine/imap-engine/imap-engine-generic-account.vala:916 msgid "Trash | Rubbish | Rubbish Bin" -msgstr "ごみ箱 | ゴミ箱" +msgstr "ゴミ箱 | ゴミ箱" #. The localised name(s) of the Trash folder name as used #. by MS Outlook/Exchange. @@ -2444,12 +2415,13 @@ msgstr "アーカイブ" #: src/engine/rfc822/rfc822-message.vala:458 #, c-format msgid "Could not determine mime type for “%s”." -msgstr "" +msgstr "“%s”の MIME タイプを確認できませんでした。" #: src/engine/rfc822/rfc822-message.vala:469 #, c-format msgid "Could not determine content type for mime type “%s” on “%s”." msgstr "" +"“%1$s”の MIME タイプ“%2$s”のコンテンツタイプを確認できませんでした。" #: ui/accounts_editor_add_pane.ui:8 ui/accounts_editor_list_pane.ui:126 msgid "Add an account" @@ -2624,11 +2596,8 @@ msgid "_Don’t Trust This Server" msgstr "このサーバーを信頼しない(_D)" #: ui/composer-headerbar.ui:23 ui/composer-headerbar.ui:107 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Detach composer window" msgid "Detach the composer from the window" -msgstr "作成ウィンドウを分離する" +msgstr "このウィンドウから作成ウィンドウを分離する" #: ui/composer-headerbar.ui:135 msgid "_Send" @@ -2648,10 +2617,8 @@ msgid "Insert the new link with this URL" msgstr "この URL の新規リンクを挿入" #: ui/composer-link-popover.ui:43 -#, fuzzy -#| msgid "_Add" msgid "Add" -msgstr "追加(_A)" +msgstr "追加" #: ui/composer-link-popover.ui:47 msgid "Link URL" @@ -2663,10 +2630,8 @@ msgid "Update this link’s URL" msgstr "このリンクの URL を更新" #: ui/composer-link-popover.ui:62 -#, fuzzy -#| msgid "_Update" msgid "Update" -msgstr "更新(_U)" +msgstr "更新" #: ui/composer-link-popover.ui:75 msgid "Delete this link" @@ -2718,7 +2683,7 @@ msgstr "宛先(_T)" #: ui/composer-widget.ui:158 msgid "Show Cc, Bcc, and Reply-To fields" -msgstr "" +msgstr "Cc、Bcc、Reply-To フィールドを表示" #: ui/composer-widget.ui:219 msgid "_Cc" @@ -2745,69 +2710,44 @@ msgid "To add them as attachments" msgstr "添付ファイルとして追加します" #: ui/composer-widget.ui:602 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Bold text" msgid "Bold text" msgstr "テキストを太字にする" #: ui/composer-widget.ui:626 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Italicize text" msgid "Italic text" msgstr "テキストを斜体にする" #: ui/composer-widget.ui:650 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Underline text" msgid "Underline text" msgstr "テキストに下線を引く" #: ui/composer-widget.ui:674 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Strike text" msgid "Strikethrough text" msgstr "テキストに取り消し線を引く" #: ui/composer-widget.ui:707 -#, fuzzy -#| msgid "Insert unordered list" msgid "Insert bulleted list" -msgstr "番号無しリストを挿入" +msgstr "箇条書きリストを挿入" #: ui/composer-widget.ui:731 -#, fuzzy -#| msgid "Insert unordered list" msgid "Insert numbered list" -msgstr "番号無しリストを挿入" +msgstr "番号付き箇条書きリストを挿入" #: ui/composer-widget.ui:764 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Unquote text" msgid "Indent or quote text" -msgstr "テキストの引用を解除する" +msgstr "テキストのインデント/引用" #: ui/composer-widget.ui:788 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Unquote text" msgid "Un-indent or unquote text" -msgstr "テキストの引用を解除する" +msgstr "テキストのインデント/引用の解除" #: ui/composer-widget.ui:817 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Remove formatting" msgid "Remove text formatting" -msgstr "書式を削除する" +msgstr "テキストの書式を削除" #: ui/composer-widget.ui:836 msgid "Change font type" -msgstr "" +msgstr "フォントの種類を変更" #: ui/composer-widget.ui:851 msgid "Sans Serif" @@ -2818,66 +2758,48 @@ msgid "Serif" msgstr "明朝体" #: ui/composer-widget.ui:873 -#, fuzzy -#| msgid "_Fixed Width" msgid "Fixed Width" -msgstr "等幅(_F)" +msgstr "等幅" #: ui/composer-widget.ui:899 msgid "Change font color" -msgstr "" +msgstr "フォントの色を変更" #: ui/composer-widget.ui:914 msgid "Change font size" -msgstr "" +msgstr "フォントサイズを変更" #: ui/composer-widget.ui:949 -#, fuzzy -#| msgid "Insert or update selection link (Ctrl+L)" msgid "Insert or update text link" -msgstr "選択部分にリンクを挿入/更新(Ctrl+L)" +msgstr "リンクを挿入/更新" #: ui/composer-widget.ui:973 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Insert an image" msgid "Insert an image" -msgstr "画像を挿入する" +msgstr "画像を挿入" #: ui/composer-widget.ui:1015 -#, fuzzy -#| msgid "Undo last edit (Ctrl+Z)" msgid "Undo last edit" -msgstr "元に戻す(Ctrl+Z)" +msgstr "元に戻す" #: ui/composer-widget.ui:1039 -#, fuzzy -#| msgid "Undo last edit (Ctrl+Z)" msgid "Redo last edit" -msgstr "元に戻す(Ctrl+Z)" +msgstr "やり直す" #: ui/composer-widget.ui:1068 ui/composer-widget.ui:1093 -#, fuzzy -#| msgid "Choose a file" msgid "Attach a file" -msgstr "ファイルを選択" +msgstr "ファイルを添付" #: ui/composer-widget.ui:1117 -#, fuzzy -#| msgid "Include Original Attachments" msgid "Add original attachments" -msgstr "元の添付ファイルを含める" +msgstr "元の添付ファイルを追加" #: ui/composer-widget.ui:1162 -#, fuzzy -#| msgid "Move conversation" -#| msgid_plural "Move conversations" msgid "More options" -msgstr "スレッドを移動" +msgstr "他のオプション" #: ui/composer-widget.ui:1182 msgid "Show formatting toolbar" -msgstr "" +msgstr "書式ツールバーを表示" #: ui/composer-widget.ui:1200 msgid "Select spell checking languages" @@ -2912,10 +2834,8 @@ msgid "_Rich Text" msgstr "リッチテキスト(_R)" #: ui/composer-widget.ui:1308 -#, fuzzy -#| msgid "_Rich Text" msgid "_Plain Text" -msgstr "リッチテキスト(_R)" +msgstr "プレーンテキスト(_P)" #: ui/components-attachment-pane.ui:29 ui/components-attachment-pane.ui:47 msgid "Select all attachments" @@ -2930,10 +2850,8 @@ msgid "Open selected attachments" msgstr "選択した添付ファイルを開く" #: ui/components-attachment-pane-menus.ui:17 -#, fuzzy -#| msgid "_Save All" msgid "Save _All" -msgstr "すべて保存(_S)" +msgstr "すべて保存(_A)" #: ui/components-inspector-error-view.ui:33 msgid "" @@ -2960,19 +2878,19 @@ msgstr "" #. Tooltip for problem report button #: ui/components-inspector.ui:37 ui/problem-details-dialog.ui:19 msgid "Search for matching log entries" -msgstr "" +msgstr "一致するログエントリーを検索" #. Tooltip for inspector button #. Tooltip for problem report button #: ui/components-inspector.ui:63 ui/problem-details-dialog.ui:46 msgid "Save logs entries and details" -msgstr "" +msgstr "ログエントリーと詳細を保存" #. Tooltip for inspector button #. Tooltip for problem report button #: ui/components-inspector.ui:84 ui/problem-details-dialog.ui:62 msgid "Copy to clipboard" -msgstr "" +msgstr "クリップボードにコピー" #: ui/conversation-contact-popover.ui:146 msgid "New Conversation…" @@ -3078,7 +2996,7 @@ msgstr "ここから未読としてマーク(_H)" #. to the trash folder #: ui/conversation-email-menus.ui:50 msgid "Move message to _Trash" -msgstr "メッセージをごみ箱に移動(_T)" +msgstr "メッセージをゴミ箱へ移動(_T)" #. Translators: Menu item to delete a single, specific message #: ui/conversation-email-menus.ui:57 @@ -3247,52 +3165,34 @@ msgid "Mark/un-mark starred" msgstr "星を付ける/外す" #: ui/gtk/help-overlay.ui:59 ui/gtk/help-overlay.ui:297 -#, fuzzy -#| msgid "Archive conversation" -#| msgid_plural "Archive conversations" msgctxt "shortcut window" msgid "Archive conversations" -msgstr "スレッドをアーカイブに移動" +msgstr "スレッドをアーカイブへ移動する" #: ui/gtk/help-overlay.ui:66 ui/gtk/help-overlay.ui:304 -#, fuzzy -#| msgid "Move conversation" -#| msgid_plural "Move conversations" msgctxt "shortcut window" msgid "Move conversations" -msgstr "スレッドを移動" +msgstr "スレッドを移動する" #: ui/gtk/help-overlay.ui:73 ui/gtk/help-overlay.ui:311 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Label conversation" msgctxt "shortcut window" msgid "Label conversations" msgstr "スレッドにラベルを付ける" #: ui/gtk/help-overlay.ui:80 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Trash conversation" msgctxt "shortcut window" msgid "Trash conversations" -msgstr "スレッドをごみ箱に移動する" +msgstr "スレッドをゴミ箱へ移動する" #: ui/gtk/help-overlay.ui:87 ui/gtk/help-overlay.ui:318 -#, fuzzy -#| msgid "Mark conversation" -#| msgid_plural "Mark conversations" msgctxt "shortcut window" msgid "Junk conversations" -msgstr "スレッドをマーク" +msgstr "スレッドを迷惑メールへ移動する" #: ui/gtk/help-overlay.ui:95 ui/gtk/help-overlay.ui:325 -#, fuzzy -#| msgid "Delete conversation" -#| msgid_plural "Delete conversations" msgctxt "shortcut window" msgid "Delete conversations" -msgstr "スレッドを削除" +msgstr "スレッドを削除する" #: ui/gtk/help-overlay.ui:104 msgctxt "shortcut window" @@ -3360,16 +3260,11 @@ msgid "Show keyboard shortcuts" msgstr "キーボードショートカットを表示する" #: ui/gtk/help-overlay.ui:206 -#, fuzzy -#| msgid "Use %s to open a new composer window" msgctxt "shortcut window" msgid "Open a new window" -msgstr "%s を使って新規作成ウィンドウを開くことができます" +msgstr "新しいウィンドウを開く" #: ui/gtk/help-overlay.ui:213 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Close current window" msgctxt "shortcut window" msgid "Close the current window" msgstr "現在のウィンドウを閉じる" @@ -3385,20 +3280,14 @@ msgid "Keyboard navigation" msgstr "キーボードナビゲーション" #: ui/gtk/help-overlay.ui:233 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Focus the previous pane" msgctxt "shortcut window" msgid "Go to next/previous pane" -msgstr "フォーカスを前のペインに移動する" +msgstr "次/前のペインに移動する" #: ui/gtk/help-overlay.ui:241 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Select the conversation up" msgctxt "shortcut window" msgid "Select next/previous conversation" -msgstr "上のスレッドを選択する" +msgstr "次/前のスレッドを選択する" #: ui/gtk/help-overlay.ui:248 msgctxt "shortcut window" @@ -3416,20 +3305,14 @@ msgid "Reply to sender " msgstr "送信者に返信する " #: ui/gtk/help-overlay.ui:332 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Find in current conversation" msgctxt "shortcut window" msgid "Find in current conversations" msgstr "現在のスレッド内を検索する" #: ui/gtk/help-overlay.ui:339 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Select the conversation up" msgctxt "shortcut window" msgid "Select next/previous conversations" -msgstr "上のスレッドを選択する" +msgstr "次/前のスレッドを選択する" #: ui/gtk/help-overlay.ui:351 msgid "Composer Shortcuts" @@ -3463,7 +3346,7 @@ msgstr "編集" #: ui/gtk/help-overlay.ui:398 msgctxt "shortcut window" msgid "Move selection to the clipboard" -msgstr "選択範囲をクリップボードに移動する" +msgstr "選択範囲をクリップボードへ移動する" #: ui/gtk/help-overlay.ui:405 msgctxt "shortcut window" @@ -3560,9 +3443,6 @@ msgid "_Archive" msgstr "アーカイブ(_A)" #: ui/main-toolbar-menus.ui:21 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Toggle spam" msgid "Toggle as S_pam" msgstr "迷惑メールに指定/解除する" @@ -3572,7 +3452,7 @@ msgstr "迷惑メールを空にする(_S)…" #: ui/main-toolbar-menus.ui:32 msgid "Empty _Trash…" -msgstr "ごみ箱を空にする(_T)…" +msgstr "ゴミ箱を空にする(_T)…" #: ui/main-toolbar-menus.ui:38 msgid "_Accounts" @@ -3620,18 +3500,18 @@ msgstr "Geary を更新しています…" #~ msgid "Moved %d message to %s" #~ msgid_plural "Moved %d messages to %s" -#~ msgstr[0] "%d 件のメッセージを %s に移動しました" +#~ msgstr[0] "%d 件のメッセージを %s へ移動しました" #~ msgid "Error emptying %s" #~ msgstr "%s を空にするときにエラーが発生しました" #~ msgid "Trashed %d message" #~ msgid_plural "Trashed %d messages" -#~ msgstr[0] "%d 件のメッセージをごみ箱に移動しました" +#~ msgstr[0] "%d 件のメッセージをゴミ箱へ移動しました" #~ msgid "Archived %d message" #~ msgid_plural "Archived %d messages" -#~ msgstr[0] "%d 件のメッセージをアーカイブに移動しました" +#~ msgstr[0] "%d 件のメッセージをアーカイブへ移動しました" #~ msgid "Successfully sent mail to %s." #~ msgstr "%s にメールを送信しました。" @@ -3692,7 +3572,7 @@ msgstr "Geary を更新しています…" #~ msgctxt "shortcut window" #~ msgid "Archive conversation" -#~ msgstr "スレッドをアーカイブに移動する" +#~ msgstr "スレッドをアーカイブへ移動する" #~ msgctxt "shortcut window" #~ msgid "Move conversation" @@ -3700,7 +3580,7 @@ msgstr "Geary を更新しています…" #~ msgctxt "shortcut window" #~ msgid "Move to Spam" -#~ msgstr "迷惑メールに移動する" +#~ msgstr "迷惑メールへ移動する" #~ msgctxt "shortcut window" #~ msgid "Delete conversation" @@ -3781,7 +3661,7 @@ msgstr "Geary を更新しています…" #~ msgstr[0] "下書きメッセージを閉じますか?" #~ msgid "Undo trash (Ctrl+Z)" -#~ msgstr "ごみ箱から戻す(Ctrl+Z)" +#~ msgstr "ゴミ箱から戻す(Ctrl+Z)" #~ msgid "Undo archive (Ctrl+Z)" #~ msgstr "アーカイブから戻す(Ctrl+Z)" @@ -3791,7 +3671,7 @@ msgstr "Geary を更新しています…" #~ msgid "Move conversation to Trash (Delete, Backspace)" #~ msgid_plural "Move conversations to Trash (Delete, Backspace)" -#~ msgstr[0] "スレッドをごみ箱に移動(Delete, Backspace)" +#~ msgstr[0] "スレッドをゴミ箱へ移動(Delete, Backspace)" #~ msgid "Delete conversation (Shift+Delete)" #~ msgid_plural "Delete conversations (Shift+Delete)" @@ -3895,7 +3775,7 @@ msgstr "Geary を更新しています…" #~ msgstr "%x" #~ msgid "_Trash" -#~ msgstr "ごみ箱(_T)" +#~ msgstr "ゴミ箱(_T)" #~ msgid "Send New _Message…" #~ msgstr "新規メッセージを送信(_M)…" @@ -3917,7 +3797,7 @@ msgstr "Geary を更新しています…" #~ msgctxt "shortcut window" #~ msgid "Archive" -#~ msgstr "アーカイブに移動する" +#~ msgstr "アーカイブへ移動する" #~ msgctxt "shortcut window" #~ msgid "Move the conversation" @@ -3971,16 +3851,16 @@ msgstr "Geary を更新しています…" #~ msgstr "アカウント(_C)" #~ msgid "Empty Spam or Trash folders" -#~ msgstr "迷惑メールかごみ箱を空にする" +#~ msgstr "迷惑メールかゴミ箱を空にする" #~ msgid "Delete conversations (Shift+Delete)" #~ msgstr "スレッドを削除(Shift+Delete)" #~ msgid "Move conversations to Trash (Delete, Backspace)" -#~ msgstr "スレッドをごみ箱に移動(Delete, Backspace)" +#~ msgstr "スレッドをゴミ箱へ移動(Delete, Backspace)" #~ msgid "Archive conversations (A)" -#~ msgstr "スレッドをアーカイブに移動(A)" +#~ msgstr "スレッドをアーカイブへ移動(A)" #~ msgid "Add label to conversations" #~ msgstr "スレッドにラベル付け" @@ -4072,11 +3952,6 @@ msgstr "Geary を更新しています…" #~ msgid " • Username or password incorrect.\n" #~ msgstr " • ユーザー名またはパスワードが不正です。\n" -#, fuzzy -#~| msgid "_Mark as..." -#~ msgid "_Mark as…" -#~ msgstr "名前を付けてマーク(_M)" - #~ msgid "_Label" #~ msgstr "ラベル(_L)" From ca2af643f13b91551673537788ef10a74d5f6c34 Mon Sep 17 00:00:00 2001 From: sicklylife Date: Fri, 21 Feb 2020 17:51:50 +0000 Subject: [PATCH 025/336] Update Japanese translation --- po/ja.po | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/po/ja.po b/po/ja.po index dc48b53b..ff4558b7 100644 --- a/po/ja.po +++ b/po/ja.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: geary-0.4.1\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2020-02-16 20:26+0000\n" -"PO-Revision-Date: 2020-02-20 23:30+0900\n" +"POT-Creation-Date: 2020-02-20 18:05+0000\n" +"PO-Revision-Date: 2020-02-22 00:00+0900\n" "Last-Translator: sicklylife \n" "Language-Team: Japanese (Japan) (https://l10n.gnome.org/module/geary/)\n" "Language: ja\n" @@ -1659,20 +1659,20 @@ msgstr "色を選択" #. printf argument will be the alternate email address, #. and the second will be the account's primary email #. address. -#: src/client/composer/composer-widget.vala:2439 +#: src/client/composer/composer-widget.vala:2440 #, c-format msgid "%1$s via %2$s" msgstr "%1$s (%2$s を通して使用)" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: src/client/composer/composer-widget.vala:2495 +#: src/client/composer/composer-widget.vala:2496 msgid "_From:" msgstr "差出人(_F):" #. Translators: This is the name of the file chooser filter #. when inserting an image in the composer. -#: src/client/composer/composer-widget.vala:2800 +#: src/client/composer/composer-widget.vala:2801 msgid "Images" msgstr "画像" @@ -1766,20 +1766,20 @@ msgstr "これは偽装メールアドレスである可能性があります" #. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:438 +#: src/client/conversation-viewer/conversation-message.vala:439 msgid "No sender" msgstr "送信者なし" #. Translators: This separates multiple 'from' #. addresses in the compact header for a message. -#: src/client/conversation-viewer/conversation-message.vala:830 +#: src/client/conversation-viewer/conversation-message.vala:831 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Image Date: Sun, 23 Feb 2020 12:16:48 +0100 Subject: [PATCH 026/336] Update Polish translation --- po/pl.po | 254 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 129 insertions(+), 125 deletions(-) diff --git a/po/pl.po b/po/pl.po index ee111600..e92f7b3c 100644 --- a/po/pl.po +++ b/po/pl.po @@ -16,8 +16,8 @@ msgid "" msgstr "" "Project-Id-Version: geary\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2020-01-24 20:08+0000\n" -"PO-Revision-Date: 2020-01-26 14:40+0100\n" +"POT-Creation-Date: 2020-02-20 18:01+0000\n" +"PO-Revision-Date: 2020-02-23 12:15+0100\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "Language: pl\n" @@ -40,7 +40,7 @@ msgstr "Wysyłanie plików za pomocą programu Geary" #: desktop/org.gnome.Geary.appdata.xml.in.in:12 #: desktop/org.gnome.Geary.desktop.in.in:3 #: src/client/accounts/accounts-editor-servers-pane.vala:555 -#: src/client/application/application-main-window.vala:547 +#: src/client/application/application-main-window.vala:555 msgid "Geary" msgstr "Geary" @@ -619,56 +619,56 @@ msgstr[0] "ostatni %d dzień" msgstr[1] "ostatnie %d dni" msgstr[2] "ostatnie %d dni" -#: src/client/accounts/accounts-editor-list-pane.vala:252 -#: src/client/application/application-main-window.vala:2043 +#: src/client/accounts/accounts-editor-list-pane.vala:255 +#: src/client/application/application-main-window.vala:2053 msgid "Undo" msgstr "Cofnij" -#: src/client/accounts/accounts-editor-list-pane.vala:261 -#: src/client/application/application-main-window.vala:2030 +#: src/client/accounts/accounts-editor-list-pane.vala:264 +#: src/client/application/application-main-window.vala:2036 msgid "Redo" msgstr "Ponów" -#: src/client/accounts/accounts-editor-list-pane.vala:355 -#: src/client/accounts/accounts-editor-list-pane.vala:443 +#: src/client/accounts/accounts-editor-list-pane.vala:358 +#: src/client/accounts/accounts-editor-list-pane.vala:446 #: src/client/accounts/accounts-editor-row.vala:279 msgid "Gmail" msgstr "Gmail" -#: src/client/accounts/accounts-editor-list-pane.vala:359 -#: src/client/accounts/accounts-editor-list-pane.vala:447 +#: src/client/accounts/accounts-editor-list-pane.vala:362 +#: src/client/accounts/accounts-editor-list-pane.vala:450 #: src/client/accounts/accounts-editor-row.vala:283 msgid "Outlook.com" msgstr "Outlook.com" -#: src/client/accounts/accounts-editor-list-pane.vala:363 -#: src/client/accounts/accounts-editor-list-pane.vala:451 +#: src/client/accounts/accounts-editor-list-pane.vala:366 +#: src/client/accounts/accounts-editor-list-pane.vala:454 #: src/client/accounts/accounts-editor-row.vala:287 msgid "Yahoo" msgstr "Yahoo!" #. Translators: Tooltip for accounts that have been #. loaded but disabled by the user. -#: src/client/accounts/accounts-editor-list-pane.vala:381 +#: src/client/accounts/accounts-editor-list-pane.vala:384 msgid "This account has been disabled" msgstr "To konto jest wyłączone" #. Translators: Tooltip for accounts that have been #. loaded but because of some error are not able to be #. used. -#: src/client/accounts/accounts-editor-list-pane.vala:390 +#: src/client/accounts/accounts-editor-list-pane.vala:393 msgid "This account has encountered a problem and is unavailable" msgstr "Wystąpił problem z tym kontem i jest niedostępne" #. Translators: Label for adding a generic email account -#: src/client/accounts/accounts-editor-list-pane.vala:440 +#: src/client/accounts/accounts-editor-list-pane.vala:443 msgid "Other email providers" msgstr "Inni dostawcy poczty" #. Translators: Notification shown after removing an #. account. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:557 +#: src/client/accounts/accounts-editor-list-pane.vala:560 #, c-format msgid "Account “%s” removed" msgstr "Usunięto konto „%s”" @@ -676,7 +676,7 @@ msgstr "Usunięto konto „%s”" #. Translators: Notification shown after removing an account #. is undone. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:564 +#: src/client/accounts/accounts-editor-list-pane.vala:567 #, c-format msgid "Account “%s” restored" msgstr "Przywrócono konto „%s”" @@ -962,7 +962,7 @@ msgstr "Wydanie dystrybucji" msgid "Installation prefix" msgstr "Przedrostek instalacji" -#: src/client/application/application-client.vala:566 +#: src/client/application/application-client.vala:587 #, c-format msgid "About %s" msgstr "O programie %s" @@ -970,7 +970,7 @@ msgstr "O programie %s" #. Translators: add your name and email address to receive #. credit in the About dialog For example: Yamada Taro #. -#: src/client/application/application-client.vala:570 +#: src/client/application/application-client.vala:591 msgid "translator-credits" msgstr "" "scrx , 2012\n" @@ -986,30 +986,30 @@ msgstr "" #. / Warning printed to the console when a deprecated #. / command line option is used. -#: src/client/application/application-client.vala:938 +#: src/client/application/application-client.vala:937 msgid "The `--hidden` option is deprecated and will be removed in the future." msgstr "Opcja „--hidden” jest przestarzała i zostanie usunięta w przyszłości." #. / Command line warning, string substitution #. / is the given argument -#: src/client/application/application-client.vala:971 +#: src/client/application/application-client.vala:970 #, c-format msgid "Unrecognised program argument: “%s”" msgstr "Nieznany parametr programu: „%s”" #. / Notification title. -#: src/client/application/application-controller.vala:457 +#: src/client/application/application-controller.vala:458 #, c-format msgid "A problem occurred sending email for %s" msgstr "Wystąpił problem podczas wysyłania wiadomości z konta %s" #. / Notification body -#: src/client/application/application-controller.vala:461 +#: src/client/application/application-controller.vala:462 msgid "Email will not be sent until re-connected" msgstr "Wiadomości nie będą wysyłane do czasu ponownego połączenia" #. / Translators: Label for in-app notification -#: src/client/application/application-controller.vala:567 +#: src/client/application/application-controller.vala:568 msgid "Conversation marked" msgid_plural "Conversations marked" msgstr[0] "Oznaczono wątek" @@ -1017,7 +1017,7 @@ msgstr[1] "Oznaczono wątki" msgstr[2] "Oznaczono wątki" #. / Translators: Label for in-app notification -#: src/client/application/application-controller.vala:573 +#: src/client/application/application-controller.vala:574 msgid "Conversation un-marked" msgid_plural "Conversations un-marked" msgstr[0] "Usunięto oznaczenie wątku" @@ -1027,8 +1027,8 @@ msgstr[2] "Usunięto oznaczenie wątków" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:599 -#: src/client/application/application-controller.vala:683 +#: src/client/application/application-controller.vala:600 +#: src/client/application/application-controller.vala:684 #, c-format msgid "Conversation moved to %s" msgid_plural "Conversations moved to %s" @@ -1041,8 +1041,8 @@ msgstr[2] "Przeniesiono wątki do „%s”" #. / of the source folder. #. / Translators: Label for in-app notification. String #. / substitution is the name of the destination folder. -#: src/client/application/application-controller.vala:607 -#: src/client/application/application-controller.vala:629 +#: src/client/application/application-controller.vala:608 +#: src/client/application/application-controller.vala:630 #, c-format msgid "Conversation restored to %s" msgid_plural "Conversations restored to %s" @@ -1051,7 +1051,7 @@ msgstr[1] "Przywrócono wątki do „%s”" msgstr[2] "Przywrócono wątki do „%s”" #. / Translators: Label for in-app notification. -#: src/client/application/application-controller.vala:650 +#: src/client/application/application-controller.vala:651 msgid "Conversation archived" msgid_plural "Conversations archived" msgstr[0] "Przeniesiono wątek do archiwum" @@ -1060,7 +1060,7 @@ msgstr[2] "Przeniesiono wątki do archiwum" #. / Translators: Label for in-app notification. String #. / substitution is the name of the destination folder. -#: src/client/application/application-controller.vala:706 +#: src/client/application/application-controller.vala:707 #, c-format msgid "Message restored to %s" msgid_plural "Messages restored to %s" @@ -1069,7 +1069,7 @@ msgstr[1] "Przywrócono wiadomości do „%s”" msgstr[2] "Przywrócono wiadomości do „%s”" #. / Translators: Label for in-app notification. -#: src/client/application/application-controller.vala:727 +#: src/client/application/application-controller.vala:728 msgid "Message archived" msgid_plural "Messages archived" msgstr[0] "Przeniesiono wiadomość do archiwum" @@ -1079,7 +1079,7 @@ msgstr[2] "Przeniesiono wiadomości do archiwum" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:762 +#: src/client/application/application-controller.vala:763 #, c-format msgid "Message moved to %s" msgid_plural "Messages moved to %s" @@ -1090,7 +1090,7 @@ msgstr[2] "Przeniesiono wiadomości do „%s”" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:790 +#: src/client/application/application-controller.vala:791 #, c-format msgid "Conversation labelled as %s" msgid_plural "Conversations labelled as %s" @@ -1101,7 +1101,7 @@ msgstr[2] "Dodano etykietę „%s”" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:798 +#: src/client/application/application-controller.vala:799 #, c-format msgid "Conversation un-labelled as %s" msgid_plural "Conversations un-labelled as %s" @@ -1109,12 +1109,12 @@ msgstr[0] "Usunięto etykietę „%s”" msgstr[1] "Usunięto etykietę „%s”" msgstr[2] "Usunięto etykietę „%s”" -#: src/client/application/application-controller.vala:1221 +#: src/client/application/application-controller.vala:1222 #, c-format msgid "Unable to open the database for %s" msgstr "Nie można otworzyć bazy danych dla %s" -#: src/client/application/application-controller.vala:1222 +#: src/client/application/application-controller.vala:1223 #, c-format msgid "" "There was an error opening the local mail database for this account. This is " @@ -1139,20 +1139,20 @@ msgstr "" "Przebudowanie bazy danych usunie wszystkie lokalne wiadomości e-mail i ich " "załączniki. Poczta na serwerze nie zostanie usunięta." -#: src/client/application/application-controller.vala:1224 +#: src/client/application/application-controller.vala:1225 msgid "_Rebuild" msgstr "P_rzebuduj" -#: src/client/application/application-controller.vala:1224 +#: src/client/application/application-controller.vala:1225 msgid "E_xit" msgstr "Za_kończ" -#: src/client/application/application-controller.vala:1234 +#: src/client/application/application-controller.vala:1235 #, c-format msgid "Unable to rebuild database for “%s”" msgstr "Nie można przebudować bazy danych dla „%s”" -#: src/client/application/application-controller.vala:1235 +#: src/client/application/application-controller.vala:1236 #, c-format msgid "" "Error during rebuild:\n" @@ -1165,34 +1165,34 @@ msgstr "" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:1558 +#: src/client/application/application-controller.vala:1559 #, c-format msgid "Email sent to %s" msgstr "Wysłano wiadomość do %s" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2641 +#: src/client/application/application-controller.vala:2642 #, c-format msgid "Email to %s queued for delivery" msgstr "Wiadomość do %s została dodana do kolejki do wysłania" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2705 +#: src/client/application/application-controller.vala:2706 #, c-format msgid "Email to %s saved" msgstr "Zapisano wiadomość do %s" #. / Translators: A label for an in-app notification. -#: src/client/application/application-controller.vala:2720 -#: src/client/application/application-controller.vala:2778 +#: src/client/application/application-controller.vala:2721 +#: src/client/application/application-controller.vala:2779 msgid "Composer could not be restored" msgstr "Nie można przywrócić okna tworzenia wiadomości" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2763 +#: src/client/application/application-controller.vala:2764 #, c-format msgid "Email to %s discarded" msgstr "Odrzucono wiadomość do %s" @@ -1200,55 +1200,55 @@ msgstr "Odrzucono wiadomość do %s" #. / Translators: Main window title, first string #. / substitution being the currently selected folder name, #. / the second being the selected account name. -#: src/client/application/application-main-window.vala:552 +#: src/client/application/application-main-window.vala:560 #, c-format msgid "%s — %s" msgstr "%s — %s" -#: src/client/application/application-main-window.vala:961 +#: src/client/application/application-main-window.vala:967 msgid "Labels" msgstr "Etykiety" #. / Translators: Primary text for a confirmation dialog -#: src/client/application/application-main-window.vala:1300 +#: src/client/application/application-main-window.vala:1306 msgid "Do you want to permanently delete this conversation?" msgid_plural "Do you want to permanently delete these conversations?" msgstr[0] "Trwale usunąć ten wątek?" msgstr[1] "Trwale usunąć te wątki?" msgstr[2] "Trwale usunąć te wątki?" -#: src/client/application/application-main-window.vala:1305 -#: src/client/application/application-main-window.vala:1320 +#: src/client/application/application-main-window.vala:1311 +#: src/client/application/application-main-window.vala:1326 msgid "Delete" msgstr "Usuń" #. / Translators: Primary text for a confirmation dialog -#: src/client/application/application-main-window.vala:1315 +#: src/client/application/application-main-window.vala:1321 msgid "Do you want to permanently delete this message?" msgid_plural "Do you want to permanently delete these messages?" msgstr[0] "Trwale usunąć tę wiadomość?" msgstr[1] "Trwale usunąć te wiadomości?" msgstr[2] "Trwale usunąć te wiadomości?" -#: src/client/application/application-main-window.vala:1328 +#: src/client/application/application-main-window.vala:1334 #, c-format msgid "Empty all email from your %s folder?" msgstr "Usunąć wszystkie wiadomości z katalogu %s?" -#: src/client/application/application-main-window.vala:1331 +#: src/client/application/application-main-window.vala:1337 msgid "This removes the email from Geary and your email server." msgstr "Spowoduje to usunięcie wiadomości z programu Geary i serwera poczty." -#: src/client/application/application-main-window.vala:1332 +#: src/client/application/application-main-window.vala:1338 msgid "This cannot be undone." msgstr "Tego nie można cofnąć." -#: src/client/application/application-main-window.vala:1333 +#: src/client/application/application-main-window.vala:1339 #, c-format msgid "Empty %s" msgstr "Opróżnij %s" -#: src/client/application/application-main-window.vala:1663 +#: src/client/application/application-main-window.vala:1669 #, c-format msgid "%s (%d)" msgstr "%s (%d)" @@ -1259,7 +1259,7 @@ msgstr "%s (%d)" #. Document (100.9MB) #. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" #: src/client/components/components-attachment-pane.vala:107 -#: src/client/composer/composer-widget.vala:1826 +#: src/client/composer/composer-widget.vala:1834 #, c-format msgid "%s (%s)" msgstr "%s (%s)" @@ -1583,16 +1583,16 @@ msgstr "_Zapisz" msgid "_Keep" msgstr "Za_chowaj" -#: src/client/composer/composer-link-popover.vala:149 +#: src/client/composer/composer-link-popover.vala:139 msgid "Link URL is not correctly formatted, e.g. http://example.com" msgstr "" "Adres URL odnośnika nie jest poprawnie sformatowany, np. http://example.com" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid link URL" msgstr "Nieprawidłowy adres URL odnośnika" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid email address" msgstr "Nieprawidłowy adres e-mail" @@ -1601,19 +1601,19 @@ msgstr "Nieprawidłowy adres e-mail" msgid "New Message" msgstr "Nowa wiadomość" -#: src/client/composer/composer-widget.vala:214 +#: src/client/composer/composer-widget.vala:217 msgid "Saved" msgstr "Zapisano" -#: src/client/composer/composer-widget.vala:215 +#: src/client/composer/composer-widget.vala:218 msgid "Saving" msgstr "Zapisywanie" -#: src/client/composer/composer-widget.vala:216 +#: src/client/composer/composer-widget.vala:219 msgid "Error saving" msgstr "Błąd podczas zapisywania" -#: src/client/composer/composer-widget.vala:217 +#: src/client/composer/composer-widget.vala:220 msgid "Press Backspace to delete quote" msgstr "Naciśnięcie klawisza Backspace usunie cytat" @@ -1622,7 +1622,7 @@ msgstr "Naciśnięcie klawisza Backspace usunie cytat" #. checking, include all variants of each word. No spaces are #. allowed. The words will be converted to lower case based on #. locale and English versions included automatically. -#: src/client/composer/composer-widget.vala:233 +#: src/client/composer/composer-widget.vala:236 msgid "" "attach|attaching|attaches|attachment|attachments|attached|enclose|enclosed|" "enclosing|encloses|enclosure|enclosures" @@ -1634,90 +1634,90 @@ msgstr "" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. Keep, Discard or Cancel. -#: src/client/composer/composer-widget.vala:832 +#: src/client/composer/composer-widget.vala:843 msgid "Do you want to keep or discard this draft message?" msgstr "Zachować lub odrzucić ten szkic?" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. only Discard or Cancel. -#: src/client/composer/composer-widget.vala:858 +#: src/client/composer/composer-widget.vala:869 msgid "Do you want to discard this draft message?" msgstr "Odrzucić ten szkic?" -#: src/client/composer/composer-widget.vala:1492 +#: src/client/composer/composer-widget.vala:1503 msgid "Send message with an empty subject and body?" msgstr "Wysłać wiadomość niezawierającą tematu i treści?" -#: src/client/composer/composer-widget.vala:1494 +#: src/client/composer/composer-widget.vala:1505 msgid "Send message with an empty subject?" msgstr "Wysłać wiadomość niezawierającą tematu?" -#: src/client/composer/composer-widget.vala:1496 +#: src/client/composer/composer-widget.vala:1507 msgid "Send message with an empty body?" msgstr "Wysłać wiadomość niezawierającą treści?" -#: src/client/composer/composer-widget.vala:1505 +#: src/client/composer/composer-widget.vala:1516 msgid "Send message without an attachment?" msgstr "Wysłać wiadomość niezawierającą załączników?" -#: src/client/composer/composer-widget.vala:1818 +#: src/client/composer/composer-widget.vala:1820 #, c-format msgid "“%s” already attached for delivery." msgstr "Do wiadomości już załączono „%s”." -#: src/client/composer/composer-widget.vala:1848 -#: src/client/composer/composer-widget.vala:1898 +#: src/client/composer/composer-widget.vala:1856 +#: src/client/composer/composer-widget.vala:1906 #, c-format msgid "“%s” is an empty file." msgstr "„%s” jest pustym plikiem." -#: src/client/composer/composer-widget.vala:1886 +#: src/client/composer/composer-widget.vala:1894 #, c-format msgid "“%s” could not be found." msgstr "Nie można odnaleźć „%s”." -#: src/client/composer/composer-widget.vala:1892 +#: src/client/composer/composer-widget.vala:1900 #, c-format msgid "“%s” is a folder." msgstr "„%s” jest katalogiem." -#: src/client/composer/composer-widget.vala:1911 +#: src/client/composer/composer-widget.vala:1919 #, c-format msgid "“%s” could not be opened for reading." msgstr "Nie można otworzyć „%s” do odczytania." -#: src/client/composer/composer-widget.vala:1919 +#: src/client/composer/composer-widget.vala:1927 msgid "Cannot add attachment" msgstr "Nie można dodać załącznika" #. Translators: Human-readable version of the RFC 822 To header -#: src/client/composer/composer-widget.vala:1976 +#: src/client/composer/composer-widget.vala:1984 #: src/client/conversation-viewer/conversation-email.vala:559 #: src/client/util/util-email.vala:235 ui/conversation-message.ui:312 msgid "To:" msgstr "Do:" #. Translators: Human-readable version of the RFC 822 CC header -#: src/client/composer/composer-widget.vala:1982 +#: src/client/composer/composer-widget.vala:1990 #: src/client/conversation-viewer/conversation-email.vala:564 #: src/client/util/util-email.vala:240 ui/conversation-message.ui:357 msgid "Cc:" msgstr "DW:" #. Translators: Human-readable version of the RFC 822 BCC header -#: src/client/composer/composer-widget.vala:1988 +#: src/client/composer/composer-widget.vala:1996 #: src/client/conversation-viewer/conversation-email.vala:569 #: ui/conversation-message.ui:402 msgid "Bcc:" msgstr "UDW:" #. Translators: Human-readable version of the RFC 822 Reply-To header -#: src/client/composer/composer-widget.vala:1994 +#: src/client/composer/composer-widget.vala:2002 msgid "Reply-To: " msgstr "Odpowiedź do: " -#: src/client/composer/composer-widget.vala:2247 +#: src/client/composer/composer-widget.vala:2254 msgid "Select Color" msgstr "Wybór koloru" @@ -1726,32 +1726,32 @@ msgstr "Wybór koloru" #. printf argument will be the alternate email address, #. and the second will be the account's primary email #. address. -#: src/client/composer/composer-widget.vala:2442 +#: src/client/composer/composer-widget.vala:2440 #, c-format msgid "%1$s via %2$s" msgstr "%1$s przez %2$s" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: src/client/composer/composer-widget.vala:2498 +#: src/client/composer/composer-widget.vala:2496 msgid "_From:" msgstr "_Od:" #. Translators: This is the name of the file chooser filter #. when inserting an image in the composer. -#: src/client/composer/composer-widget.vala:2804 +#: src/client/composer/composer-widget.vala:2801 msgid "Images" msgstr "Obrazy" -#: src/client/composer/spell-check-popover.vala:109 +#: src/client/composer/spell-check-popover.vala:125 msgid "Remove this language from the preferred list" msgstr "Usuwa ten język z listy preferowanych" -#: src/client/composer/spell-check-popover.vala:113 +#: src/client/composer/spell-check-popover.vala:129 msgid "Add this language to the preferred list" msgstr "Dodaje ten język do listy preferowanych" -#: src/client/composer/spell-check-popover.vala:200 +#: src/client/composer/spell-check-popover.vala:225 msgid "Search for more languages" msgstr "Więcej języków" @@ -1837,44 +1837,44 @@ msgstr "Ten adres e-mail może być fałszywy" #. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:465 +#: src/client/conversation-viewer/conversation-message.vala:439 msgid "No sender" msgstr "Brak nadawcy" #. Translators: This separates multiple 'from' #. addresses in the compact header for a message. -#: src/client/conversation-viewer/conversation-message.vala:959 +#: src/client/conversation-viewer/conversation-message.vala:831 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Image Date: Sun, 23 Feb 2020 12:45:20 +0000 Subject: [PATCH 027/336] Update Finnish translation --- po/fi.po | 2490 +++++++++++++++++++++++++++++------------------------- 1 file changed, 1347 insertions(+), 1143 deletions(-) diff --git a/po/fi.po b/po/fi.po index 2a83e4a3..dc4ff5d7 100644 --- a/po/fi.po +++ b/po/fi.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: geary-0.4.1\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2019-08-18 11:39+0000\n" -"PO-Revision-Date: 2019-08-18 17:54+0300\n" +"POT-Creation-Date: 2020-02-16 20:26+0000\n" +"PO-Revision-Date: 2020-02-23 14:43+0200\n" "Last-Translator: Jiri Grönroos \n" "Language-Team: suomi \n" "Language: fi\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.3\n" #: desktop/geary-attach.contract.desktop.in:3 msgid "Send by email" @@ -30,36 +30,38 @@ msgid "Send files using Geary" msgstr "Lähetä tiedostoja Gearylla" #. Translators: The application name -#: desktop/geary-autostart.desktop.in:3 -#: desktop/org.gnome.Geary.appdata.xml.in:12 -#: desktop/org.gnome.Geary.desktop.in:3 +#: desktop/geary-autostart.desktop.in.in:3 +#: desktop/org.gnome.Geary.appdata.xml.in.in:12 +#: desktop/org.gnome.Geary.desktop.in.in:3 #: src/client/accounts/accounts-editor-servers-pane.vala:555 +#: src/client/application/application-main-window.vala:555 msgid "Geary" msgstr "Geary" -#: desktop/geary-autostart.desktop.in:4 desktop/org.gnome.Geary.desktop.in:4 +#: desktop/geary-autostart.desktop.in.in:4 +#: desktop/org.gnome.Geary.desktop.in.in:4 msgid "Email" msgstr "Sähköposti" #. Translators: The application's summary / tagline -#: desktop/geary-autostart.desktop.in:5 -#: desktop/org.gnome.Geary.appdata.xml.in:16 -#: desktop/org.gnome.Geary.desktop.in:5 -#: src/client/application/geary-application.vala:24 +#: desktop/geary-autostart.desktop.in.in:5 +#: desktop/org.gnome.Geary.appdata.xml.in.in:16 +#: desktop/org.gnome.Geary.desktop.in.in:5 +#: src/client/application/application-client.vala:32 msgid "Send and receive email" msgstr "Lähetä ja vastaanota sähköpostia" #. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon. -#: desktop/geary-autostart.desktop.in:7 +#: desktop/geary-autostart.desktop.in.in:7 msgid "Email;E-mail;Mail;" msgstr "Email;E-mail;Mail;Sähköposti;Maili;posti;" #. Translators: The development team's name -#: desktop/org.gnome.Geary.appdata.xml.in:14 +#: desktop/org.gnome.Geary.appdata.xml.in.in:14 msgid "Geary Development Team" msgstr "Geary-kehitystiimi" -#: desktop/org.gnome.Geary.appdata.xml.in:18 +#: desktop/org.gnome.Geary.appdata.xml.in.in:18 msgid "" "Geary is an email application built around conversations, for the GNOME 3 " "desktop. It allows you to read, find and send email with a straightforward, " @@ -69,7 +71,7 @@ msgstr "" "keskusteluihin. Sen avulla voit lukea, etsiä ja lähettää sähköpostia " "modernin käyttöliittymän kautta." -#: desktop/org.gnome.Geary.appdata.xml.in:23 +#: desktop/org.gnome.Geary.appdata.xml.in.in:23 msgid "" "Conversations allow you to read a complete discussion without having to find " "and click from message to message." @@ -77,55 +79,59 @@ msgstr "" "Keskusteluiden avulla voit lukea koko viestiketjun ilman, että joudut " "napsauttamaan viestistä toiseen itse." -#: desktop/org.gnome.Geary.appdata.xml.in:27 +#: desktop/org.gnome.Geary.appdata.xml.in.in:27 msgid "Geary’s features include:" msgstr "Gearyn ominaisuuksiin kuuluu muun muassa:" -#: desktop/org.gnome.Geary.appdata.xml.in:29 +#: desktop/org.gnome.Geary.appdata.xml.in.in:29 msgid "Quick email account setup" msgstr "Nopea sähköpostitilin asetusten teko" -#: desktop/org.gnome.Geary.appdata.xml.in:30 +#: desktop/org.gnome.Geary.appdata.xml.in.in:30 msgid "Shows related messages together in conversations" msgstr "Näyttää toisiinsa liittyvät viestit yhdessä keskustelumuodossa" -#: desktop/org.gnome.Geary.appdata.xml.in:31 +#: desktop/org.gnome.Geary.appdata.xml.in.in:31 msgid "Fast, full text and keyword search" msgstr "Nopea haku koko tekstin ja avainsanojen tuella" -#: desktop/org.gnome.Geary.appdata.xml.in:32 +#: desktop/org.gnome.Geary.appdata.xml.in.in:32 msgid "Full-featured HTML and plain text message composer" msgstr "Monipuolinen HTML- ja raakatekstilähetys" -#: desktop/org.gnome.Geary.appdata.xml.in:33 +#: desktop/org.gnome.Geary.appdata.xml.in.in:33 msgid "Desktop notification of new mail" msgstr "Työpöytäilmoitukset uusista viesteistä" -#: desktop/org.gnome.Geary.appdata.xml.in:34 +#: desktop/org.gnome.Geary.appdata.xml.in.in:34 msgid "Compatible with GMail, Yahoo! Mail, Outlook.com and other IMAP servers" msgstr "" "Yhteensopiva GMailin, Yahoo! Mailin, Outlook.comin ja muiden IMAP-" "palvelinten kanssa" #. Translators: A screenshot description. -#: desktop/org.gnome.Geary.appdata.xml.in:48 +#: desktop/org.gnome.Geary.appdata.xml.in.in:48 msgid "Geary displaying a conversation" msgstr "Geary ja viestiketju" #. Translators: A screenshot description. -#: desktop/org.gnome.Geary.appdata.xml.in:59 +#: desktop/org.gnome.Geary.appdata.xml.in.in:59 msgid "Geary showing the rich text composer" msgstr "Geary ja viestin kirjoitusikkuna" #. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon. -#: desktop/org.gnome.Geary.desktop.in:7 +#: desktop/org.gnome.Geary.desktop.in.in:7 msgid "Mail;E-mail;IMAP;GMail;Yahoo;Hotmail;Outlook;" msgstr "Mail;E-mail;IMAP;GMail;Yahoo;Hotmail;Outlook;sähköposti;" -#: desktop/org.gnome.Geary.desktop.in:22 +#: desktop/org.gnome.Geary.desktop.in.in:22 msgid "Compose Message" msgstr "Lähetä viesti" +#: desktop/org.gnome.Geary.desktop.in.in:26 +msgid "New Window" +msgstr "Uusi ikkuna" + #: desktop/org.gnome.Geary.gschema.xml:8 msgid "Maximize window" msgstr "Suurenna ikkuna" @@ -184,124 +190,148 @@ msgid "True if the folder list Paned is in the horizontal orientation." msgstr "" #: desktop/org.gnome.Geary.gschema.xml:50 -msgid "Position of message list pane" -msgstr "Viestiluettelopaneelin sijainti" +msgid "Show/hide formatting toolbar" +msgstr "Näytä/piilota muotoilupalkki" #: desktop/org.gnome.Geary.gschema.xml:51 -msgid "Position of the message list Paned grabber." +msgid "True if the formatting toolbar in the composer is shown." msgstr "" #: desktop/org.gnome.Geary.gschema.xml:56 -msgid "Autoselect next message" -msgstr "Valitse automaattisesti seuraava viesti" +msgid "Position of message list pane" +msgstr "Viestiluettelopaneelin sijainti" #: desktop/org.gnome.Geary.gschema.xml:57 -msgid "True if we should autoselect the next available conversation." +msgid "Position of the message list Paned grabber." msgstr "" #: desktop/org.gnome.Geary.gschema.xml:62 -msgid "Display message previews" -msgstr "Näytä viestien esikatselut" +msgid "Autoselect next message" +msgstr "Valitse automaattisesti seuraava viesti" #: desktop/org.gnome.Geary.gschema.xml:63 -msgid "True if we should display a short preview of each message." +msgid "True if we should autoselect the next available conversation." msgstr "" #: desktop/org.gnome.Geary.gschema.xml:68 +msgid "Display message previews" +msgstr "Näytä viestien esikatselut" + +#: desktop/org.gnome.Geary.gschema.xml:69 +msgid "True if we should display a short preview of each message." +msgstr "" + +#: desktop/org.gnome.Geary.gschema.xml:74 +msgid "Use single key shortcuts" +msgstr "Käytä yhden näppäimen pikanäppäimiä" + +#: desktop/org.gnome.Geary.gschema.xml:75 +msgid "" +"Enables shortcuts for email actions that do not require pressing to " +"emulate those used by Gmail." +msgstr "" + +#: desktop/org.gnome.Geary.gschema.xml:82 msgid "Languages that shall be used in the spell checker" msgstr "Oikoluvussa käytettävät kielet" -#: desktop/org.gnome.Geary.gschema.xml:69 +#: desktop/org.gnome.Geary.gschema.xml:83 msgid "" "A list of POSIX locales, with the empty list disabling spell checking and " "the null list using desktop languages by default." msgstr "" -#: desktop/org.gnome.Geary.gschema.xml:76 +#: desktop/org.gnome.Geary.gschema.xml:90 msgid "Languages that are displayed in the spell checker popover" msgstr "" -#: desktop/org.gnome.Geary.gschema.xml:77 +#: desktop/org.gnome.Geary.gschema.xml:91 msgid "" "List of languages that are always displayed in the popover of the spell " "checker." msgstr "" -#: desktop/org.gnome.Geary.gschema.xml:82 -msgid "Enable notification sounds" -msgstr "Käytä ilmoitusääniä" - -#: desktop/org.gnome.Geary.gschema.xml:83 -msgid "True to play sounds for notifications and sending." -msgstr "" - -#: desktop/org.gnome.Geary.gschema.xml:88 -msgid "Show notifications for new mail" -msgstr "Näytä ilmoitus uusista viesteistä" - -#: desktop/org.gnome.Geary.gschema.xml:89 -msgid "True to show notification bubbles." -msgstr "" - -#: desktop/org.gnome.Geary.gschema.xml:94 +#: desktop/org.gnome.Geary.gschema.xml:96 msgid "Notify of new mail at startup" msgstr "Ilmoita uusista viesteistä käynnistyksen yhteydessä" -#: desktop/org.gnome.Geary.gschema.xml:95 +#: desktop/org.gnome.Geary.gschema.xml:97 #, fuzzy #| msgid "Notify of new mail at start_up" msgid "True to notify of new mail at startup." msgstr "_Ilmoita uusista viesteistä käynnistyksen yhteydessä" -#: desktop/org.gnome.Geary.gschema.xml:100 +#: desktop/org.gnome.Geary.gschema.xml:102 msgid "Ask when opening an attachment" msgstr "Kysy liitettä avattaessa" -#: desktop/org.gnome.Geary.gschema.xml:101 +#: desktop/org.gnome.Geary.gschema.xml:103 #, fuzzy #| msgid "To add them as attachments" msgid "True to ask when opening an attachment." msgstr "lisätäksesi ne liitteiksi" -#: desktop/org.gnome.Geary.gschema.xml:106 +#: desktop/org.gnome.Geary.gschema.xml:108 msgid "Whether to compose emails in HTML" msgstr "Muodostetaanko lähetettävät viestit HTML-muodossa" -#: desktop/org.gnome.Geary.gschema.xml:107 +#: desktop/org.gnome.Geary.gschema.xml:109 msgid "True to compose emails in HTML; false for plain text." msgstr "" -#: desktop/org.gnome.Geary.gschema.xml:112 +#: desktop/org.gnome.Geary.gschema.xml:114 msgid "Advisory strategy for full-text searching" msgstr "" -#: desktop/org.gnome.Geary.gschema.xml:113 +#: desktop/org.gnome.Geary.gschema.xml:115 msgid "" "Acceptable values are “exact”, “conservative”, “aggressive”, and “horizon”." msgstr "" "Hyväksyttävät arvot ovat “exact”, “conservative”, “aggressive” ja “horizon”." -#: desktop/org.gnome.Geary.gschema.xml:118 +#: desktop/org.gnome.Geary.gschema.xml:120 msgid "Zoom of conversation viewer" msgstr "Keskustelunäkymän suurennus" -#: desktop/org.gnome.Geary.gschema.xml:119 +#: desktop/org.gnome.Geary.gschema.xml:121 msgid "The zoom to apply on the conservation view." msgstr "" -#: desktop/org.gnome.Geary.gschema.xml:124 +#: desktop/org.gnome.Geary.gschema.xml:126 msgid "Size of detached composer window" msgstr "Irrotetun lähetysikkunan koko" -#: desktop/org.gnome.Geary.gschema.xml:125 +#: desktop/org.gnome.Geary.gschema.xml:127 msgid "The last recorded size of the detached composer window." msgstr "" -#: desktop/org.gnome.Geary.gschema.xml:130 +#: desktop/org.gnome.Geary.gschema.xml:132 +#, fuzzy +#| msgid "Error sending email" +msgid "Undo sending email delay" +msgstr "Virhe sähköpostia lähettäessä" + +#: desktop/org.gnome.Geary.gschema.xml:133 +msgid "" +"The number of seconds to wait before sending an email. Set to zero or less " +"to disable." +msgstr "" + +#: desktop/org.gnome.Geary.gschema.xml:139 +msgid "Brief notification display time" +msgstr "" + +#: desktop/org.gnome.Geary.gschema.xml:140 +msgid "" +"The length of time in seconds for which brief notifications should be " +"displayed." +msgstr "" + +#: desktop/org.gnome.Geary.gschema.xml:146 msgid "Whether we migrated the old settings" msgstr "Tehtiinkö vanhojen asetusten migraatio" -#: desktop/org.gnome.Geary.gschema.xml:131 +#: desktop/org.gnome.Geary.gschema.xml:147 msgid "" "False to check for the old “org.yorba.geary”-schema and copy its values." msgstr "" @@ -309,24 +339,24 @@ msgstr "" #. Translators: In-app notification label, when #. the app had a problem pinning an otherwise #. untrusted TLS certificate -#: src/client/accounts/accounts-editor.vala:203 +#: src/client/accounts/accounts-editor.vala:210 msgid "Failed to store certificate" msgstr "Varmenteen tallentaminen epäonnistui" #. Translators: Label for adding an email account #. account for a generic IMAP service provider. -#: src/client/accounts/accounts-editor-add-pane.vala:109 +#: src/client/accounts/accounts-editor-add-pane.vala:108 msgid "All others" msgstr "Kaikki muut" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:196 +#: src/client/accounts/accounts-editor-add-pane.vala:195 #: src/client/accounts/accounts-editor-servers-pane.vala:316 msgid "Check your receiving login and password" msgstr "Tarkista vastaanottamiseen käytettävä käyttäjätunnus ja salasana" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:211 +#: src/client/accounts/accounts-editor-add-pane.vala:210 #: src/client/accounts/accounts-editor-servers-pane.vala:329 msgid "Check your receiving server details" msgstr "Tarkista vastaanottamiseen käytettävän palvelimen tiedot" @@ -336,51 +366,51 @@ msgstr "Tarkista vastaanottamiseen käytettävän palvelimen tiedot" #. succeeded, so the user probably needs to #. specify custom creds here #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:233 +#: src/client/accounts/accounts-editor-add-pane.vala:232 #: src/client/accounts/accounts-editor-servers-pane.vala:350 msgid "Check your sending login and password" msgstr "Tarkista lähettämiseen käytettävä käyttäjätunnus ja salasana" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:247 +#: src/client/accounts/accounts-editor-add-pane.vala:246 #: src/client/accounts/accounts-editor-servers-pane.vala:363 msgid "Check your sending server details" msgstr "Tarkista lähettämiseen käytettävän palvelimen tiedot" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:262 +#: src/client/accounts/accounts-editor-add-pane.vala:261 msgid "Check your email address and password" msgstr "Tarkista sähköpostiosoitteesi ja salasanasi" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:273 +#: src/client/accounts/accounts-editor-add-pane.vala:272 msgid "Could not connect, check your network" msgstr "Yhdistäminen ei onnistu, tarkista verkkoyhteytesi" #. Translators: In-app notification label for a #. generic error creating an account -#: src/client/accounts/accounts-editor-add-pane.vala:286 +#: src/client/accounts/accounts-editor-add-pane.vala:285 msgid "An unexpected problem occurred" msgstr "Tapahtui odottomaton ongelma" #. Translators: In-app notification label, the #. string substitution is a more detailed reason. -#: src/client/accounts/accounts-editor-add-pane.vala:304 +#: src/client/accounts/accounts-editor-add-pane.vala:303 #, c-format msgid "Account not created: %s" msgstr "Tiliä ei luotu: %s" #. Translators: Label for the person's actual name when adding #. an account -#: src/client/accounts/accounts-editor-add-pane.vala:551 +#: src/client/accounts/accounts-editor-add-pane.vala:558 msgid "Your name" msgstr "Nimi" #. Translators: Label used for the address part of an #. email address when editing a user's sender address #. preferences for an account. -#: src/client/accounts/accounts-editor-add-pane.vala:568 -#: src/client/accounts/accounts-editor-edit-pane.vala:501 +#: src/client/accounts/accounts-editor-add-pane.vala:575 +#: src/client/accounts/accounts-editor-edit-pane.vala:513 msgid "Email address" msgstr "Sähköpostiosoite" @@ -389,8 +419,8 @@ msgstr "Sähköpostiosoite" #. Translators: This is used as a placeholder for the #. address part of an email address when editing a user's #. sender address preferences for an account. -#: src/client/accounts/accounts-editor-add-pane.vala:571 -#: src/client/accounts/accounts-editor-edit-pane.vala:469 +#: src/client/accounts/accounts-editor-add-pane.vala:579 +#: src/client/accounts/accounts-editor-edit-pane.vala:479 msgid "person@example.com" msgstr "nimi@verkkotunnus.fi" @@ -398,15 +428,15 @@ msgstr "nimi@verkkotunnus.fi" #. when adding an account #. Translators: Label for the user's login name for an #. IMAP, SMTP, etc service -#: src/client/accounts/accounts-editor-add-pane.vala:585 -#: src/client/accounts/accounts-editor-servers-pane.vala:880 +#: src/client/accounts/accounts-editor-add-pane.vala:593 +#: src/client/accounts/accounts-editor-servers-pane.vala:884 msgid "Login name" msgstr "Käyttäjätunnus" #. Translators: Label for the user's password for an IMAP, #. SMTP, etc service -#: src/client/accounts/accounts-editor-add-pane.vala:599 -#: src/client/accounts/accounts-editor-servers-pane.vala:999 +#: src/client/accounts/accounts-editor-add-pane.vala:607 +#: src/client/accounts/accounts-editor-servers-pane.vala:1006 #: ui/password-dialog.glade:108 msgid "Password" msgstr "Salasana" @@ -415,14 +445,14 @@ msgstr "Salasana" #. adding an account. #. Translators: This label describes the host name or IP #. address and port used by an account's IMAP service. -#: src/client/accounts/accounts-editor-add-pane.vala:621 -#: src/client/accounts/accounts-editor-servers-pane.vala:727 +#: src/client/accounts/accounts-editor-add-pane.vala:629 +#: src/client/accounts/accounts-editor-servers-pane.vala:728 msgid "IMAP server" msgstr "IMAP-palvelin" #. Translators: Placeholder for the IMAP server hostname #. when adding an account. -#: src/client/accounts/accounts-editor-add-pane.vala:624 +#: src/client/accounts/accounts-editor-add-pane.vala:632 msgid "imap.example.com" msgstr "imap.esimerkki.com" @@ -430,20 +460,20 @@ msgstr "imap.esimerkki.com" #. adding an account. #. Translators: This label describes the host name or IP #. address and port used by an account's SMTP service. -#: src/client/accounts/accounts-editor-add-pane.vala:630 -#: src/client/accounts/accounts-editor-servers-pane.vala:733 +#: src/client/accounts/accounts-editor-add-pane.vala:638 +#: src/client/accounts/accounts-editor-servers-pane.vala:734 msgid "SMTP server" msgstr "SMTP-palvelin" #. Translators: Placeholder for the SMTP server hostname #. when adding an account. -#: src/client/accounts/accounts-editor-add-pane.vala:633 +#: src/client/accounts/accounts-editor-add-pane.vala:641 msgid "smtp.example.com" msgstr "smtp.esimerkki.com" #. Translators: Label in the account editor for the user's #. custom name for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:278 +#: src/client/accounts/accounts-editor-edit-pane.vala:277 #: ui/accounts_editor_remove_pane.ui:123 msgid "Account name" msgstr "Tilin nimi" @@ -452,46 +482,46 @@ msgstr "Tilin nimi" #. the name of an account. The string #. substitution is the old name of the #. account. -#: src/client/accounts/accounts-editor-edit-pane.vala:312 +#: src/client/accounts/accounts-editor-edit-pane.vala:318 #, c-format msgid "Change account name back to “%s”" msgstr "Muuta takaisin tilin nimeksi “%s”" #. Translators: Tooltip for adding a new email sender/from #. address's address to an account -#: src/client/accounts/accounts-editor-edit-pane.vala:336 +#: src/client/accounts/accounts-editor-edit-pane.vala:342 msgid "Add a new sender email address" msgstr "Lisää uusi lähettäjän sähköpostiosoite" #. Translators: Label used to indicate the user has #. provided no display name for one of their sender #. email addresses in their account settings. -#: src/client/accounts/accounts-editor-edit-pane.vala:417 +#: src/client/accounts/accounts-editor-edit-pane.vala:423 msgid "Name not set" msgstr "Nimeä ei ole asetettu" #. Translators: This is used as a placeholder for the #. display name for an email address when editing a user's #. sender address preferences for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:456 +#: src/client/accounts/accounts-editor-edit-pane.vala:464 msgid "Sender Name" msgstr "Lähettäjän nimi" -#: src/client/accounts/accounts-editor-edit-pane.vala:479 +#: src/client/accounts/accounts-editor-edit-pane.vala:491 msgid "Remove" msgstr "Poista" #. Translators: Label used for the display name part of an #. email address when editing a user's sender address #. preferences for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:494 +#: src/client/accounts/accounts-editor-edit-pane.vala:506 msgid "Sender name" msgstr "Lähettäjän nimi" #. Translators: Label used as the undo tooltip after adding an #. new sender email address to an account. The string #. substitution is the email address added. -#: src/client/accounts/accounts-editor-edit-pane.vala:561 +#: src/client/accounts/accounts-editor-edit-pane.vala:573 #, c-format msgid "Remove “%s”" msgstr "Poista “%s”" @@ -499,7 +529,7 @@ msgstr "Poista “%s”" #. Translators: Label used as the undo tooltip after editing a #. sender address for an account. The string substitution is #. the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:601 +#: src/client/accounts/accounts-editor-edit-pane.vala:613 #, c-format msgid "Undo changes to “%s”" msgstr "Kumoa muutokset tiliin “%s”" @@ -507,7 +537,7 @@ msgstr "Kumoa muutokset tiliin “%s”" #. Translators: Label used as the undo tooltip after removing #. a sender address from an account. The string substitution #. is the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:688 +#: src/client/accounts/accounts-editor-edit-pane.vala:700 #, c-format msgid "Add “%s” back" msgstr "Lisää “%s” takaisin" @@ -515,14 +545,14 @@ msgstr "Lisää “%s” takaisin" #. Translators: Label used as the undo tooltip after removing #. a sender address from an account. The string substitution #. is the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:730 +#: src/client/accounts/accounts-editor-edit-pane.vala:742 msgid "Undo signature changes" -msgstr "" +msgstr "Kumoa allekirjoitusmuutokset" #. Translators: This label describes the account #. preference for the length of time (weeks, months or #. years) that past email should be downloaded. -#: src/client/accounts/accounts-editor-edit-pane.vala:778 +#: src/client/accounts/accounts-editor-edit-pane.vala:790 msgid "Download mail" msgstr "Lataa sähköposti" @@ -531,99 +561,100 @@ msgstr "Lataa sähköposti" #. should be downloaded for an account. The #. string substitution is the duration, #. e.g. "1 month back". -#: src/client/accounts/accounts-editor-edit-pane.vala:810 +#: src/client/accounts/accounts-editor-edit-pane.vala:822 #, c-format msgid "Change download period back to: %s" msgstr "Muuta latausaikajaksoksi: %s" -#: src/client/accounts/accounts-editor-edit-pane.vala:831 +#: src/client/accounts/accounts-editor-edit-pane.vala:843 msgid "Everything" msgstr "Kaikki" -#: src/client/accounts/accounts-editor-edit-pane.vala:835 +#: src/client/accounts/accounts-editor-edit-pane.vala:847 msgid "2 weeks back" msgstr "2 viikkoa sitten" -#: src/client/accounts/accounts-editor-edit-pane.vala:839 +#: src/client/accounts/accounts-editor-edit-pane.vala:851 msgid "1 month back" msgstr "1 kuukausi sitten" -#: src/client/accounts/accounts-editor-edit-pane.vala:843 +#: src/client/accounts/accounts-editor-edit-pane.vala:855 msgid "3 months back" msgstr "3 kuukautta sitten" -#: src/client/accounts/accounts-editor-edit-pane.vala:847 +#: src/client/accounts/accounts-editor-edit-pane.vala:859 msgid "6 months back" msgstr "6 kuukautta sitten" -#: src/client/accounts/accounts-editor-edit-pane.vala:851 +#: src/client/accounts/accounts-editor-edit-pane.vala:863 msgid "1 year back" msgstr "1 vuosi sitten" -#: src/client/accounts/accounts-editor-edit-pane.vala:855 +#: src/client/accounts/accounts-editor-edit-pane.vala:867 msgid "2 years back" msgstr "2 vuotta sitten" -#: src/client/accounts/accounts-editor-edit-pane.vala:859 +#: src/client/accounts/accounts-editor-edit-pane.vala:871 msgid "4 years back" msgstr "4 vuotta sitten" -#: src/client/accounts/accounts-editor-edit-pane.vala:865 +#: src/client/accounts/accounts-editor-edit-pane.vala:877 #, c-format msgid "%d day back" msgid_plural "%d days back" msgstr[0] "%d päivän ajalta" msgstr[1] "%d päivän ajalta" -#: src/client/accounts/accounts-editor-list-pane.vala:243 -#: src/client/application/application-controller.vala:2405 +#: src/client/accounts/accounts-editor-list-pane.vala:255 +#: src/client/application/application-main-window.vala:2053 msgid "Undo" msgstr "Kumoa" -#: src/client/accounts/accounts-editor-list-pane.vala:251 +#: src/client/accounts/accounts-editor-list-pane.vala:264 +#: src/client/application/application-main-window.vala:2036 msgid "Redo" msgstr "Tee uudelleen" -#: src/client/accounts/accounts-editor-list-pane.vala:345 -#: src/client/accounts/accounts-editor-list-pane.vala:433 +#: src/client/accounts/accounts-editor-list-pane.vala:358 +#: src/client/accounts/accounts-editor-list-pane.vala:446 #: src/client/accounts/accounts-editor-row.vala:279 msgid "Gmail" msgstr "Gmail" -#: src/client/accounts/accounts-editor-list-pane.vala:349 -#: src/client/accounts/accounts-editor-list-pane.vala:437 +#: src/client/accounts/accounts-editor-list-pane.vala:362 +#: src/client/accounts/accounts-editor-list-pane.vala:450 #: src/client/accounts/accounts-editor-row.vala:283 msgid "Outlook.com" msgstr "Outlook.com" -#: src/client/accounts/accounts-editor-list-pane.vala:353 -#: src/client/accounts/accounts-editor-list-pane.vala:441 +#: src/client/accounts/accounts-editor-list-pane.vala:366 +#: src/client/accounts/accounts-editor-list-pane.vala:454 #: src/client/accounts/accounts-editor-row.vala:287 msgid "Yahoo" msgstr "Yahoo" #. Translators: Tooltip for accounts that have been #. loaded but disabled by the user. -#: src/client/accounts/accounts-editor-list-pane.vala:371 +#: src/client/accounts/accounts-editor-list-pane.vala:384 msgid "This account has been disabled" msgstr "Tämä tili on poistettu käytöstä" #. Translators: Tooltip for accounts that have been #. loaded but because of some error are not able to be #. used. -#: src/client/accounts/accounts-editor-list-pane.vala:380 +#: src/client/accounts/accounts-editor-list-pane.vala:393 msgid "This account has encountered a problem and is unavailable" msgstr "Tämä tili kohtasi ongelman, eikä ole käytettävissä" #. Translators: Label for adding a generic email account -#: src/client/accounts/accounts-editor-list-pane.vala:430 +#: src/client/accounts/accounts-editor-list-pane.vala:443 msgid "Other email providers" msgstr "Muut sähköpostipalveluntarjoajat" #. Translators: Notification shown after removing an #. account. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:547 +#: src/client/accounts/accounts-editor-list-pane.vala:560 #, c-format msgid "Account “%s” removed" msgstr "Tili “%s” poistettu" @@ -631,7 +662,7 @@ msgstr "Tili “%s” poistettu" #. Translators: Notification shown after removing an account #. is undone. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:554 +#: src/client/accounts/accounts-editor-list-pane.vala:567 #, c-format msgid "Account “%s” restored" msgstr "Tili “%s” palautettu" @@ -658,8 +689,8 @@ msgstr "Yhteyden salaus" #. Translators: Label used when no auth scheme is used #. by an account's IMAP or SMTP service. #: src/client/accounts/accounts-editor-row.vala:479 -#: src/client/accounts/accounts-editor-servers-pane.vala:752 -#: src/client/accounts/accounts-editor-servers-pane.vala:964 +#: src/client/accounts/accounts-editor-servers-pane.vala:755 +#: src/client/accounts/accounts-editor-servers-pane.vala:970 #: src/engine/api/geary-special-folder-type.vala:58 msgid "None" msgstr "Ei mitään" @@ -676,7 +707,8 @@ msgstr "TLS" #. credentials (none, use IMAP, custom) when adding a new #. account #. Button label for retrying when a login error has occurred -#: src/client/accounts/accounts-editor-row.vala:534 ui/main-window.ui:346 +#: src/client/accounts/accounts-editor-row.vala:534 +#: ui/application-main-window.ui:346 msgid "Login" msgstr "Kirjaudu" @@ -736,46 +768,330 @@ msgstr "Tallenna lähetetyt viestit palvelimelle" #. Translators: Label used when an account's IMAP or #. SMTP service uses OAuth2. The string replacement is #. the service's login name. -#: src/client/accounts/accounts-editor-servers-pane.vala:950 +#: src/client/accounts/accounts-editor-servers-pane.vala:956 #, c-format msgid "%s using OAuth2" msgstr "%s käyttää OAuth2:ta" -#: src/client/accounts/accounts-editor-servers-pane.vala:960 +#: src/client/accounts/accounts-editor-servers-pane.vala:966 msgid "Use receiving server login" msgstr "Käytä vastaanottavan palvelimen kirjautumistietoja" #. Translators: File name used in save chooser when saving #. attachments that do not otherwise have a name. -#: src/client/application/application-controller.vala:59 +#: src/client/application/application-attachment-manager.vala:21 msgid "Untitled" msgstr "Nimetön" +#. / Translators: Dialog primary label when prompting to +#. / overwrite a file. The string substitution is the file'sx +#. / name. +#: src/client/application/application-attachment-manager.vala:222 +#, c-format +msgid "A file named “%s” already exists. Do you want to replace it?" +msgstr "Tiedosto nimellä “%s” on jo olemassa. Haluatko korvata sen?" + +#. / Translators: Dialog secondary label when prompting to +#. / overwrite a file. The string substitution is the parent +#. / folder's name. +#: src/client/application/application-attachment-manager.vala:229 +#, c-format +msgid "" +"The file already exists in “%s”. Replacing it will overwrite its contents." +msgstr "" +"Tiedosto on jo olemassa kohteessa “%s”. Tiedoston korvaaminen korvaa " +"nykyisen tiedoston sisällön." + +#: src/client/application/application-attachment-manager.vala:236 +msgid "_Replace" +msgstr "_Korvaa" + +#: src/client/application/application-client.vala:33 +msgid "Copyright 2016 Software Freedom Conservancy Inc." +msgstr "Tekijänoikeus 2016 Software Freedom Conservancy Inc." + +#: src/client/application/application-client.vala:34 +msgid "Copyright 2016-2019 Geary Development Team." +msgstr "Tekijänoikeus 2016-2019 Geary-kehitystiimi." + +#: src/client/application/application-client.vala:36 +msgid "Visit the Geary web site" +msgstr "Vieraile Gearyn verkkosivustolla" + +#. / Command line option +#: src/client/application/application-client.vala:94 +msgid "Print debug logging" +msgstr "Tulosta vianetsintälokitus" + +#. / Command line option +#: src/client/application/application-client.vala:97 +msgid "Start with the main window hidden (deprecated)" +msgstr "Käynnistä pääikkuna piilotettuna (vanhennettu)" + +#. / Command line option +#: src/client/application/application-client.vala:100 +msgid "Enable WebKitGTK Inspector in web views" +msgstr "" + +#. / Command line option +#: src/client/application/application-client.vala:103 +msgid "Log conversation monitoring" +msgstr "Lokita keskustelujen tarkkailu" + +#. / Command line option +#: src/client/application/application-client.vala:106 +#, fuzzy +#| msgid "Log folder normalization" +msgid "Log IMAP network deserialization" +msgstr "Lokita kansioiden normalisointi" + +#. / Command line option. "Normalization" can also be called +#. / "synchronization". +#: src/client/application/application-client.vala:110 +msgid "Log folder normalization" +msgstr "Lokita kansioiden normalisointi" + +#. / Command line option +#: src/client/application/application-client.vala:113 +msgid "Log network activity" +msgstr "Lokita verkkotoiminta" + +#. / Command line option +#: src/client/application/application-client.vala:116 +msgid "Log periodic activity" +msgstr "" + +#. / Command line option. The IMAP replay queue is how changes +#. / on the server are replicated on the client. It could +#. / also be called the IMAP events queue. +#: src/client/application/application-client.vala:121 +msgid "Log IMAP replay queue" +msgstr "" + +#. / Command line option. Serialization is how commands and +#. / responses are converted into a stream of bytes for +#. / network transmission +#: src/client/application/application-client.vala:126 +#, fuzzy +#| msgid "Log folder normalization" +msgid "Log IMAP network serialization" +msgstr "Lokita kansioiden normalisointi" + +#. / Command line option +#: src/client/application/application-client.vala:129 +msgid "Log database queries (generates lots of messages)" +msgstr "Lokita tietokantaan kohdistuvat kyselyt (luo paljon viestejä)" + +#. / Command line option +#: src/client/application/application-client.vala:132 +msgid "Perform a graceful quit" +msgstr "Suorita siisti lopetus" + +#: src/client/application/application-client.vala:134 +msgid "Open a new window" +msgstr "Avaa uusi ikkuna" + +#. / Command line option +#: src/client/application/application-client.vala:137 +#| msgid "Revoke all server certificates with TLS warnings" +msgid "Revoke all pinned TLS server certificates" +msgstr "Kumoa kaikki kiinnitetyt TLS-palvelinvarmenteet" + +#. / Command line option +#: src/client/application/application-client.vala:140 +msgid "Display program version" +msgstr "Näytä sovelluksen versio" + +#. / Application runtime information label +#: src/client/application/application-client.vala:264 +msgid "Geary version" +msgstr "Geary-versio" + +#. / Application runtime information label +#: src/client/application/application-client.vala:266 +msgid "Geary revision" +msgstr "" + +#. / Application runtime information label +#: src/client/application/application-client.vala:268 +msgid "GTK version" +msgstr "GTK-versio" + +#. / Applciation runtime information label +#: src/client/application/application-client.vala:275 +msgid "GLib version" +msgstr "GLib-versio" + +#. / Application runtime information label +#: src/client/application/application-client.vala:282 +msgid "WebKitGTK version" +msgstr "WebKitGTK-versio" + +#. / Application runtime information label +#: src/client/application/application-client.vala:289 +msgid "Desktop environment" +msgstr "Työpöytäympäristö" + +#. Translators: This is the file type displayed for +#. attachments with unknown file types. +#: src/client/application/application-client.vala:291 +#: src/client/components/components-attachment-pane.vala:91 +msgid "Unknown" +msgstr "Tuntematon" + +#. / Application runtime information label +#: src/client/application/application-client.vala:321 +msgid "Distribution name" +msgstr "Jakelun nimi" + +#. / Application runtime information label +#: src/client/application/application-client.vala:326 +msgid "Distribution release" +msgstr "Jakelun versio" + +#. / Application runtime information label +#: src/client/application/application-client.vala:334 +msgid "Installation prefix" +msgstr "" + +#: src/client/application/application-client.vala:587 +#, c-format +msgid "About %s" +msgstr "Tietoja %ssta" + +#. Translators: add your name and email address to receive +#. credit in the About dialog For example: Yamada Taro +#. +#: src/client/application/application-client.vala:591 +msgid "translator-credits" +msgstr "Jiri Grönroos" + +#. / Warning printed to the console when a deprecated +#. / command line option is used. +#: src/client/application/application-client.vala:937 +msgid "The `--hidden` option is deprecated and will be removed in the future." +msgstr "" +"Valinta `--hidden`on vanhennettu ja se poistetaan tulevissa versioissa." + +#. / Command line warning, string substitution +#. / is the given argument +#: src/client/application/application-client.vala:970 +#, c-format +#| msgid "Unrecognized command line option “%s”\n" +msgid "Unrecognised program argument: “%s”" +msgstr "Tunnistamaton ohjelma-argumentti: “%s”" + #. / Notification title. -#: src/client/application/application-controller.vala:564 -#, fuzzy, c-format -#| msgid "A problem occurred sending mail for %s" +#: src/client/application/application-controller.vala:458 +#, c-format msgid "A problem occurred sending email for %s" -msgstr "Tilin %s viestejä lähettäessä tapahtui virhe" +msgstr "Viestiä vastaanottajalle %s lähettäessä ilmeni ongelma" #. / Notification body -#: src/client/application/application-controller.vala:568 +#: src/client/application/application-controller.vala:462 msgid "Email will not be sent until re-connected" msgstr "Sähköpostia ei lähetetä, ennen kuin yhteys on muodostettu uudelleen" -#: src/client/application/application-controller.vala:919 -msgid "Labels" -msgstr "Tunnisteet" +#. / Translators: Label for in-app notification +#: src/client/application/application-controller.vala:568 +msgid "Conversation marked" +msgid_plural "Conversations marked" +msgstr[0] "Keskustelu merkitty" +msgstr[1] "Keskustelut merkitty" -#. give the user two options: reset the Account local store, or exit Geary. A third -#. could be done to leave the Account in an unopened state, but we don't currently -#. have provisions for that. -#: src/client/application/application-controller.vala:932 +#. / Translators: Label for in-app notification +#: src/client/application/application-controller.vala:574 +msgid "Conversation un-marked" +msgid_plural "Conversations un-marked" +msgstr[0] "Keskustelun merkintä poistettu" +msgstr[1] "Keskustelujen merkinnät poistettu" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:600 +#: src/client/application/application-controller.vala:684 +#, c-format +msgid "Conversation moved to %s" +msgid_plural "Conversations moved to %s" +msgstr[0] "Keskustelu siirretty kansioon %s" +msgstr[1] "Keskustelut siirretty kansioon %s" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the source folder. +#. / Translators: Label for in-app notification. String +#. / substitution is the name of the destination folder. +#: src/client/application/application-controller.vala:608 +#: src/client/application/application-controller.vala:630 +#, c-format +msgid "Conversation restored to %s" +msgid_plural "Conversations restored to %s" +msgstr[0] "Keskustelu palautettu kansioon %s" +msgstr[1] "Keskustelut palautettu kansioon %s" + +#. / Translators: Label for in-app notification. +#: src/client/application/application-controller.vala:651 +msgid "Conversation archived" +msgid_plural "Conversations archived" +msgstr[0] "Keskustelu arkistoitu" +msgstr[1] "Keskustelut arkistoitu" + +#. / Translators: Label for in-app notification. String +#. / substitution is the name of the destination folder. +#: src/client/application/application-controller.vala:707 +#, c-format +#| msgid "Message not saved" +msgid "Message restored to %s" +msgid_plural "Messages restored to %s" +msgstr[0] "Viesti palautettu kansioon %s" +msgstr[1] "Viestit palautettu kansioon %s" + +#. / Translators: Label for in-app notification. +#: src/client/application/application-controller.vala:728 +msgid "Message archived" +msgid_plural "Messages archived" +msgstr[0] "Viesti arkistoitu" +msgstr[1] "Viestit arkistoitu" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:763 +#, c-format +#| msgid "Message not saved" +msgid "Message moved to %s" +msgid_plural "Messages moved to %s" +msgstr[0] "Viesti siirretty kansioon %s" +msgstr[1] "Viestit siirretty kansioon %s" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:791 +#, c-format +#| msgid "No conversations selected" +msgid "Conversation labelled as %s" +msgid_plural "Conversations labelled as %s" +msgstr[0] "Keskustelu merkitty tunnisteella %s" +msgstr[1] "Keskustelut merkitty tunnisteella %s" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:799 +#, c-format +msgid "Conversation un-labelled as %s" +msgid_plural "Conversations un-labelled as %s" +msgstr[0] "" +msgstr[1] "" + +#: src/client/application/application-controller.vala:1222 #, c-format msgid "Unable to open the database for %s" msgstr "Kohteen %s tietokannan avaaminen epäonnistui" -#: src/client/application/application-controller.vala:933 +#: src/client/application/application-controller.vala:1223 #, c-format msgid "" "There was an error opening the local mail database for this account. This is " @@ -801,20 +1117,20 @@ msgstr "" "niiden liitteet. Toimenpiteellä ei ole vaikutusta palvelimella oleviin " "viesteihin ja liitteisiin." -#: src/client/application/application-controller.vala:935 +#: src/client/application/application-controller.vala:1225 msgid "_Rebuild" msgstr "Ra_kenna uudelleen" -#: src/client/application/application-controller.vala:935 +#: src/client/application/application-controller.vala:1225 msgid "E_xit" msgstr "_Poistu" -#: src/client/application/application-controller.vala:944 +#: src/client/application/application-controller.vala:1235 #, c-format msgid "Unable to rebuild database for “%s”" msgstr "Tietokannan jälleenrakennus tilille “%s” epäonnistui" -#: src/client/application/application-controller.vala:945 +#: src/client/application/application-controller.vala:1236 #, c-format msgid "" "Error during rebuild:\n" @@ -825,20 +1141,110 @@ msgstr "" "\n" "%s" -#: src/client/application/application-controller.vala:1739 -#, fuzzy, c-format -#| msgid "%d message" -#| msgid_plural "%d messages" -msgid "Moved %d message to %s" -msgid_plural "Moved %d messages to %s" -msgstr[0] "%d viesti" -msgstr[1] "%d viestiä" +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:1559 +#, c-format +msgid "Email sent to %s" +msgstr "Viesti vastaanottajalle %s lähetetty" -#: src/client/application/application-controller.vala:1749 +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2642 +#, c-format +msgid "Email to %s queued for delivery" +msgstr "Viesti vastaanottajalle %s asetettu jonoon toimitusta varten" + +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2706 +#, c-format +msgid "Email to %s saved" +msgstr "Viesti vastaanottajalle %s tallennettu" + +#. / Translators: A label for an in-app notification. +#: src/client/application/application-controller.vala:2721 +#: src/client/application/application-controller.vala:2779 +msgid "Composer could not be restored" +msgstr "Lähetintä ei voitu palauttaa" + +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2764 +#, c-format +msgid "Email to %s discarded" +msgstr "Viesti vastaanottajalle %s hylätty" + +#. / Translators: Main window title, first string +#. / substitution being the currently selected folder name, +#. / the second being the selected account name. +#: src/client/application/application-main-window.vala:560 +#, c-format +msgid "%s — %s" +msgstr "%s — %s" + +#: src/client/application/application-main-window.vala:967 +msgid "Labels" +msgstr "Tunnisteet" + +#. / Translators: Primary text for a confirmation dialog +#: src/client/application/application-main-window.vala:1306 +msgid "Do you want to permanently delete this conversation?" +msgid_plural "Do you want to permanently delete these conversations?" +msgstr[0] "Haluatko poistaa tämän keskustelun pysyvästi?" +msgstr[1] "Haluatko poistaa nämä keskustelut pysyvästi?" + +#: src/client/application/application-main-window.vala:1311 +#: src/client/application/application-main-window.vala:1326 +msgid "Delete" +msgstr "Poista" + +#. / Translators: Primary text for a confirmation dialog +#: src/client/application/application-main-window.vala:1321 +msgid "Do you want to permanently delete this message?" +msgid_plural "Do you want to permanently delete these messages?" +msgstr[0] "Haluatko poistaa tämän viestin pysyvästi?" +msgstr[1] "Haluatko poistaa nämä viestit pysyvästi?" + +#: src/client/application/application-main-window.vala:1334 +#, c-format +msgid "Empty all email from your %s folder?" +msgstr "Poistetaanko kaikki viesit \"%s\"-kansiosta?" + +#: src/client/application/application-main-window.vala:1337 +msgid "This removes the email from Geary and your email server." +msgstr "Tämä poistaa viestit Gearysta ja sähköpostipalvelimelta." + +#: src/client/application/application-main-window.vala:1338 +msgid "This cannot be undone." +msgstr "Toimintoa ei voi perua." + +#: src/client/application/application-main-window.vala:1339 +#, c-format +msgid "Empty %s" +msgstr "Tyhjennä %s" + +#: src/client/application/application-main-window.vala:1669 +#, c-format +msgid "%s (%d)" +msgstr "%s (%d)" + +#. Translators: The first argument will be a +#. description of the document type, the second will +#. be a human-friendly size string. For example: +#. Document (100.9MB) +#. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" +#: src/client/components/components-attachment-pane.vala:107 +#: src/client/composer/composer-widget.vala:1834 +#, c-format +msgid "%s (%s)" +msgstr "%s (%s)" + +#: src/client/components/components-attachment-pane.vala:379 msgid "Are you sure you want to open these attachments?" msgstr "Haluatko varmasti avata nämä liitteet?" -#: src/client/application/application-controller.vala:1750 +#: src/client/components/components-attachment-pane.vala:380 msgid "" "Attachments may cause damage to your system if opened. Only open files from " "trusted sources." @@ -846,378 +1252,164 @@ msgstr "" "Liitetiedostot saattavat sisältää haitallista sisältöä. Avaa liitteet " "ainoastaan, jos luotat niiden lähettäjään." -#: src/client/application/application-controller.vala:1751 +#: src/client/components/components-attachment-pane.vala:381 msgid "Don’t _ask me again" msgstr "_Älä kysy uudelleen" -#. Translators: Dialog primary label when prompting to -#. overwrite a file. The string substitution is the file'sx -#. name. -#: src/client/application/application-controller.vala:1874 -#, c-format -msgid "A file named “%s” already exists. Do you want to replace it?" -msgstr "Tiedosto nimellä “%s” on jo olemassa. Haluatko korvata sen?" - -#. Translators: Dialog secondary label when prompting to -#. overwrite a file. The string substitution is the parent -#. folder's name. -#: src/client/application/application-controller.vala:1881 -#, c-format -msgid "" -"The file already exists in “%s”. Replacing it will overwrite its contents." -msgstr "" -"Tiedosto on jo olemassa kohteessa “%s”. Tiedoston korvaaminen korvaa " -"nykyisen tiedoston sisällön." - -#: src/client/application/application-controller.vala:1885 -msgid "_Replace" -msgstr "_Korvaa" - -#: src/client/application/application-controller.vala:2245 -#, c-format -msgid "Empty all email from your %s folder?" -msgstr "Poistetaanko kaikki viesit \"%s\"-kansiosta?" - -#: src/client/application/application-controller.vala:2246 -msgid "This removes the email from Geary and your email server." -msgstr "Tämä poistaa viestit Gearysta ja sähköpostipalvelimelta." - -#: src/client/application/application-controller.vala:2247 -msgid "This cannot be undone." -msgstr "Toimintoa ei voi perua." - -#: src/client/application/application-controller.vala:2248 -#, c-format -msgid "Empty %s" -msgstr "Tyhjennä %s" - -#: src/client/application/application-controller.vala:2265 -#, c-format -msgid "Error emptying %s" -msgstr "Virhe tyhjennettäessä kohdetta %s" - -#: src/client/application/application-controller.vala:2296 -msgid "Do you want to permanently delete this message?" -msgid_plural "Do you want to permanently delete these messages?" -msgstr[0] "Haluatko poistaa tämän viestin pysyvästi?" -msgstr[1] "Haluatko poistaa nämä viestit pysyvästi?" - -#: src/client/application/application-controller.vala:2298 -msgid "Delete" -msgstr "Poista" - -#: src/client/application/application-controller.vala:2312 -#, fuzzy, c-format -#| msgid "%d message" -#| msgid_plural "%d messages" -msgid "Trashed %d message" -msgid_plural "Trashed %d messages" -msgstr[0] "%d viesti" -msgstr[1] "%d viestiä" - -#: src/client/application/application-controller.vala:2359 -#, c-format -msgid "Archived %d message" -msgid_plural "Archived %d messages" -msgstr[0] "Arkistoitu %d viesti" -msgstr[1] "Arkistoitu %d viestiä" - -#. Translators: The label for an in-app notification. The -#. string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2487 -#, c-format -msgid "Successfully sent mail to %s." -msgstr "Lähetetty onnistuneesti sähköpostia vastaanottajille %s." - -#: src/client/application/application-controller.vala:2565 -msgid "Failed to open default text editor." -msgstr "Oletustekstimuokkaimen avaus epäonnistui." - -#: src/client/application/geary-application.vala:25 -msgid "Copyright 2016 Software Freedom Conservancy Inc." -msgstr "Tekijänoikeus 2016 Software Freedom Conservancy Inc." - -#: src/client/application/geary-application.vala:26 -msgid "Copyright 2016-2019 Geary Development Team." -msgstr "Tekijänoikeus 2016-2019 Geary-kehitystiimi." - -#: src/client/application/geary-application.vala:28 -msgid "Visit the Geary web site" -msgstr "Vieraile Gearyn verkkosivustolla" - -#. / Command line option -#: src/client/application/geary-application.vala:104 -msgid "Print debug logging" -msgstr "" - -#. / Command line option -#: src/client/application/geary-application.vala:107 -#, fuzzy -#| msgid "Start Geary with hidden main window" -msgid "Start with the main window hidden (deprecated)" -msgstr "Käynnistä Geary pääikkuna piilotettuna" - -#. / Command line option -#: src/client/application/geary-application.vala:110 -msgid "Enable WebKitGTK Inspector in web views" -msgstr "" - -#. / Command line option -#: src/client/application/geary-application.vala:113 -msgid "Log conversation monitoring" -msgstr "Lokita keskustelujen tarkkailu" - -#. / Command line option -#: src/client/application/geary-application.vala:116 -#, fuzzy -#| msgid "Log folder normalization" -msgid "Log IMAP network deserialization" -msgstr "Lokita kansioiden normalisointi" - -#. / Command line option. "Normalization" can also be called -#. / "synchronization". -#: src/client/application/geary-application.vala:120 -msgid "Log folder normalization" -msgstr "Lokita kansioiden normalisointi" - -#. / Command line option -#: src/client/application/geary-application.vala:123 -msgid "Log network activity" -msgstr "Lokita verkkotoiminta" - -#. / Command line option -#: src/client/application/geary-application.vala:126 -msgid "Log periodic activity" -msgstr "" - -#. / Command line option. The IMAP replay queue is how changes -#. / on the server are replicated on the client. It could -#. / also be called the IMAP events queue. -#: src/client/application/geary-application.vala:131 -msgid "Log IMAP replay queue" -msgstr "" - -#. / Command line option. Serialization is how commands and -#. / responses are converted into a stream of bytes for -#. / network transmission -#: src/client/application/geary-application.vala:136 -#, fuzzy -#| msgid "Log folder normalization" -msgid "Log IMAP network serialization" -msgstr "Lokita kansioiden normalisointi" - -#. / Command line option -#: src/client/application/geary-application.vala:139 -msgid "Log database queries (generates lots of messages)" -msgstr "Lokita tietokantaan kohdistuvat kyselyt (luo paljon viestejä)" - -#. / Command line option -#: src/client/application/geary-application.vala:142 -msgid "Perform a graceful quit" -msgstr "Suorita siisti lopetus" - -#. / Command line option -#: src/client/application/geary-application.vala:145 -#, fuzzy -#| msgid "Revoke all server certificates with TLS warnings" -msgid "Revoke all pinned TLS server certificates" -msgstr "Kumoa kaikki palvelinvarmenteet, joissa on TLS-varoituksia" - -#. / Command line option -#: src/client/application/geary-application.vala:148 -msgid "Display program version" -msgstr "Näytä sovelluksen versio" - -#. Use this to specify arguments in the help section -#. / Command line option -#: src/client/application/geary-application.vala:152 -#, fuzzy -#| msgid "Display program version" -msgid "Display program version and revision id" -msgstr "Näytä sovelluksen versio" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:279 -msgid "Geary version" -msgstr "Geary-versio" - -#: src/client/application/geary-application.vala:280 -msgid "Geary revision" -msgstr "" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:282 -msgid "GTK version" -msgstr "GTK-versio" - -#. / Applciation runtime information label -#: src/client/application/geary-application.vala:289 -msgid "GLib version" -msgstr "GLib-versio" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:296 -msgid "WebKitGTK version" -msgstr "WebKitGTK-versio" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:303 -msgid "Desktop environment" -msgstr "Työpöytäympäristö" - -#. Translators: This is the file type displayed for -#. attachments with unknown file types. -#: src/client/application/geary-application.vala:305 -#: src/client/conversation-viewer/conversation-email.vala:159 -msgid "Unknown" -msgstr "Tuntematon" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:335 -msgid "Distribution name" -msgstr "Jakelun nimi" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:340 -msgid "Distribution release" -msgstr "Jakelun versio" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:348 -msgid "Installation prefix" -msgstr "" - -#: src/client/application/geary-application.vala:513 -#, c-format -msgid "About %s" -msgstr "Tietoja %ssta" - -#. Translators: add your name and email address to receive -#. credit in the About dialog For example: Yamada Taro -#. -#: src/client/application/geary-application.vala:517 -msgid "translator-credits" -msgstr "Jiri Grönroos" - -#. / Warning printed to the console when a deprecated -#. / command line option is used. -#: src/client/application/geary-application.vala:790 -msgid "The `--hidden` option is deprecated and will be removed in the future." -msgstr "" - -#. / Command line warning, string substitution -#. / is the given argument -#: src/client/application/geary-application.vala:822 -#, fuzzy, c-format -#| msgid "Unrecognized command line option “%s”\n" -msgid "Unrecognised program argument: “%s”" -msgstr "" -"Tunnistamaton komentorivivalinta “%s”\n" -"\n" - -#: src/client/components/components-inspector.vala:68 -#, fuzzy -#| msgid "_Inspect…" +#: src/client/components/components-inspector.vala:72 msgid "Inspector" -msgstr "T_utki…" +msgstr "Tutki" #. / Translators: Title for Inspector logs pane #. / Translators: Title for problem report dialog logs pane -#: src/client/components/components-inspector.vala:77 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:91 +#: src/client/components/components-inspector.vala:87 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:102 msgid "Logs" msgstr "Lokit" #. / Translators: Title for Inspector system system information pane #. / Translators: Title for problem report system information #. / pane -#: src/client/components/components-inspector.vala:81 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:94 +#: src/client/components/components-inspector.vala:91 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:105 msgid "System" msgstr "Järjestelmä" #. Button label for saving problem report information -#: src/client/components/components-inspector.vala:198 -#: src/client/components/components-inspector.vala:201 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:210 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:213 +#: src/client/components/components-inspector.vala:208 +#: src/client/components/components-inspector.vala:211 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:221 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:224 #: ui/problem-details-dialog.ui:42 msgid "Save As" msgstr "Tallenna nimellä" -#: src/client/components/components-inspector.vala:202 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:214 +#: src/client/components/components-inspector.vala:212 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:225 #: ui/accounts_editor_servers_pane.ui:17 msgid "Cancel" msgstr "Peru" +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:43 +msgid "_Automatically select next message" +msgstr "_Valitse automaattisesti seuraava viesti" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:53 +msgid "_Display conversation preview" +msgstr "N_äytä keskustelun esikatselu" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:63 +msgid "Use _three pane view" +msgstr "Kä_ytä kolmen paneelin näkymää" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:73 +msgid "Use _single key email shortcuts" +msgstr "Näytä _yhden näppäimen pikanäppäimiä" + +#: src/client/components/components-preferences-window.vala:75 +msgid "" +"Enable keyboard shortcuts for email actions that do not require pressing " +"" +msgstr "" +"Ota käyttöön pikanäppäimet sähköpostitoiminnoille, jotka eivät vaadi -" +"näppäimen painallusta" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:86 +msgid "_Watch for new mail when closed" +msgstr "_Tarkkaile uusia viestejä suljettuna" + +#. / Translators: Preferences tooltip +#: src/client/components/components-preferences-window.vala:90 +msgid "Geary will keep running after all windows are closed" +msgstr "Geary jatkaa käynnissä olemista kun kaikki ikkunat on suljettu" + +#. / Translators: Search entry placeholder text +#: src/client/components/components-search-bar.vala:12 +#: src/client/folder-list/folder-list-search-branch.vala:53 +#: src/engine/api/geary-special-folder-type.vala:51 +msgid "Search" +msgstr "Etsi" + +#. / Translators: Search entry tooltip +#: src/client/components/components-search-bar.vala:32 +msgid "Search all mail in account for keywords" +msgstr "Etsi hakusanoilla kaikista tilin sähköpostiviesteistä" + +#. / Translators: Search entry placeholder, string +#. / replacement is the name of an account +#: src/client/components/components-search-bar.vala:81 +#: src/client/folder-list/folder-list-search-branch.vala:54 +#, c-format +msgid "Search %s account" +msgstr "Etsi tililtä %s" + #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but one is not provided. -#: src/client/components/components-validator.vala:378 +#: src/client/components/components-validator.vala:390 msgid "An email address is required" msgstr "Sähköpostiosoite vaaditaan" #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but the address is invalid. -#: src/client/components/components-validator.vala:382 +#: src/client/components/components-validator.vala:394 msgid "Not a valid email address" msgstr "Virheellinen sähköpostiosoite" #. Translators: Tooltip used when an entry requires a valid, #. resolvable server name to be entered, but one is not #. provided. -#: src/client/components/components-validator.vala:428 +#: src/client/components/components-validator.vala:440 msgid "A server name is required" msgstr "Palvelimen nimi vaaditaan" #. Translators: Tooltip used when an entry requires a valid #. server name to be entered, but it was unable to be #. looked-up in the DNS. -#: src/client/components/components-validator.vala:433 +#: src/client/components/components-validator.vala:445 msgid "Could not look up server name" msgstr "Palvelimen nimeä ei voitu kysellä" -#: src/client/components/main-toolbar.vala:139 +#: src/client/components/main-toolbar.vala:116 msgid "Mark conversation" msgid_plural "Mark conversations" msgstr[0] "Merkitse keskustelu" msgstr[1] "Merkitse keskustelut" -#: src/client/components/main-toolbar.vala:144 +#: src/client/components/main-toolbar.vala:121 msgid "Add label to conversation" msgid_plural "Add label to conversations" msgstr[0] "Lisää tunniste keskusteluun" msgstr[1] "Lisää tunniste keskusteluihin" -#: src/client/components/main-toolbar.vala:149 +#: src/client/components/main-toolbar.vala:126 msgid "Move conversation" msgid_plural "Move conversations" msgstr[0] "Siirrä keskustelu" msgstr[1] "Siirrä keskustelut" -#: src/client/components/main-toolbar.vala:154 +#: src/client/components/main-toolbar.vala:131 msgid "Archive conversation" msgid_plural "Archive conversations" msgstr[0] "Arkistoi keskustelu" msgstr[1] "Arkistoi keskustelut" -#: src/client/components/main-toolbar.vala:163 +#: src/client/components/main-toolbar.vala:142 msgid "Move conversation to Trash" msgid_plural "Move conversations to Trash" msgstr[0] "Siirrä keskustelu roskakoriin" msgstr[1] "Siirrä keskustelut roskakoriin" -#: src/client/components/main-toolbar.vala:171 +#: src/client/components/main-toolbar.vala:152 msgid "Delete conversation" msgid_plural "Delete conversations" msgstr[0] "Poista keskustelu" msgstr[1] "Poista keskustelut" -#: src/client/components/main-window.vala:733 -#, c-format -msgid "%s (%d)" -msgstr "%s (%d)" - #. Translators: Info bar title for a generic account #. problem. #: src/client/components/main-window-info-bar.vala:44 @@ -1227,19 +1419,17 @@ msgstr "Tiliongelma" #. Translators: Info bar sub-title for a generic account #. problem. String substitution is the account name. #: src/client/components/main-window-info-bar.vala:48 -#, fuzzy, c-format -#| msgid "Geary has encountered a problem" +#, c-format msgid "Geary has encountered a problem with %s." -msgstr "Geary kohtasi ongelman" +msgstr "Geary kohtasi ongelman tilin %s kanssa." #. Translators: Info bar sub-title for a generic #. account problem. String substitution is the #. account name. #: src/client/components/main-window-info-bar.vala:61 -#, fuzzy, c-format -#| msgid "Geary encountered a problem connecting to an account." +#, c-format msgid "Geary encountered a problem checking mail for %s." -msgstr "Geary kohtasi ongelman yhdistäessä tiliin." +msgstr "Geary kohtasi ongelman tarkistaessa tilin %s viestejä." #. Translators: Tooltip label for Retry button #: src/client/components/main-window-info-bar.vala:65 @@ -1250,10 +1440,9 @@ msgstr "Yritä yhdistää uudelleen" #. account problem. String substitution is the #. account name #: src/client/components/main-window-info-bar.vala:73 -#, fuzzy, c-format -#| msgid "Geary encountered a problem connecting to an account." +#, c-format msgid "Geary encountered a problem sending email for %s." -msgstr "Geary kohtasi ongelman yhdistäessä tiliin." +msgstr "Geary kohtasi ongelman lähettäessä sähköpostia vastaanottajalle %s." #. Translators: Tooltip label for Retry button #: src/client/components/main-window-info-bar.vala:77 @@ -1269,13 +1458,8 @@ msgstr "Geary kohtasi ongelman" #. Translators: Info bar sub-title for a generic #. application problem. #: src/client/components/main-window-info-bar.vala:88 -#, fuzzy -#| msgid "" -#| "Please check the technical details and report the problem if it persists." msgid "Please report the details if it persists." -msgstr "" -"Katso tekniset yksityiskohdat ja ilmoita ongelmasta, jos se ilmenee " -"uudelleen." +msgstr "Ilmoita tekniset yksityiskohdat jos vika ilmenee uudelleen." #. Translators: Button label for viewing technical details #. for a problem report. @@ -1295,28 +1479,6 @@ msgstr "Näytä virheen tekniset yksityiskohdat" msgid "_Retry" msgstr "_Yritä uudelleen" -#: src/client/components/search-bar.vala:8 -#: src/client/folder-list/folder-list-search-branch.vala:38 -#: src/engine/api/geary-special-folder-type.vala:51 -msgid "Search" -msgstr "Etsi" - -#. Search entry. -#: src/client/components/search-bar.vala:23 -msgid "Search all mail in account for keywords (Ctrl+S)" -msgstr "Etsi hakusanoilla kaikista tilin sähköpostiviesteistä (Ctrl+S)" - -#: src/client/components/search-bar.vala:83 -#, c-format -msgid "Indexing %s account" -msgstr "Indeksoidaan tiliä %s" - -#: src/client/components/search-bar.vala:110 -#: src/client/folder-list/folder-list-search-branch.vala:39 -#, c-format -msgid "Search %s account" -msgstr "Etsi tililtä %s" - #. / Displayed in the space-limited status bar while a message is in the process of being sent. #: src/client/components/status-bar.vala:26 msgid "Sending…" @@ -1357,15 +1519,15 @@ msgstr "_Sulje" msgid "_Discard" msgstr "_Hylkää" -#: src/client/components/stock.vala:25 ui/main-toolbar-menus.ui:56 +#: src/client/components/stock.vala:25 ui/main-toolbar-menus.ui:52 msgid "_Help" msgstr "_Ohje" -#: src/client/components/stock.vala:26 ui/conversation-email-menus.ui:77 +#: src/client/components/stock.vala:26 ui/components-attachment-pane-menus.ui:7 msgid "_Open" msgstr "_Avaa" -#: src/client/components/stock.vala:27 ui/main-toolbar-menus.ui:46 +#: src/client/components/stock.vala:27 ui/main-toolbar-menus.ui:42 msgid "_Preferences" msgstr "_Asetukset" @@ -1382,7 +1544,8 @@ msgstr "_Lopeta" msgid "_Remove" msgstr "_Poista" -#: src/client/components/stock.vala:31 ui/conversation-email-menus.ui:83 +#: src/client/components/stock.vala:31 +#: ui/components-attachment-pane-menus.ui:11 msgid "_Save" msgstr "_Tallenna" @@ -1390,39 +1553,45 @@ msgstr "_Tallenna" msgid "_Keep" msgstr "Säil_ytä" -#: src/client/composer/composer-link-popover.vala:149 +#: src/client/composer/composer-link-popover.vala:139 msgid "Link URL is not correctly formatted, e.g. http://example.com" msgstr "Linkin osoite ei ole muotoiltu kelvollisesti, esim. http://example.com" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid link URL" msgstr "Virheellinen linkin osoite" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid email address" msgstr "Virheellinen sähköpostiosoite" -#: src/client/composer/composer-widget.vala:156 +#. / Translators: Title for an empty composer window +#: src/client/composer/composer-widget.vala:30 +msgid "New Message" +msgstr "Uusi viesti" + +#: src/client/composer/composer-widget.vala:217 msgid "Saved" msgstr "Tallennettu" -#: src/client/composer/composer-widget.vala:157 +#: src/client/composer/composer-widget.vala:218 msgid "Saving" msgstr "Tallennetaan" -#: src/client/composer/composer-widget.vala:158 +#: src/client/composer/composer-widget.vala:219 msgid "Error saving" msgstr "Virhe tallentaessa" -#: src/client/composer/composer-widget.vala:159 +#: src/client/composer/composer-widget.vala:220 msgid "Press Backspace to delete quote" msgstr "Paina askelpalautinta poistaaksesi lainauksen" #. Translators: This is list of keywords, separated by pipe ("|") #. characters, that suggest an attachment; since this is full-word -#. checking, include all variants of each word. No spaces are -#. allowed. -#: src/client/composer/composer-widget.vala:168 +#. checking, include all variants of each word. No spaces are +#. allowed. The words will be converted to lower case based on +#. locale and English versions included automatically. +#: src/client/composer/composer-widget.vala:236 msgid "" "attach|attaching|attaches|attachment|attachments|attached|enclose|enclosed|" "enclosing|encloses|enclosure|enclosures" @@ -1434,100 +1603,90 @@ msgstr "" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. Keep, Discard or Cancel. -#: src/client/composer/composer-widget.vala:1181 +#: src/client/composer/composer-widget.vala:843 msgid "Do you want to keep or discard this draft message?" msgstr "Haluatko säilyttää vai hylätä tämän luonnosviestin?" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. only Discard or Cancel. -#: src/client/composer/composer-widget.vala:1211 +#: src/client/composer/composer-widget.vala:869 msgid "Do you want to discard this draft message?" msgstr "Haluatko hylätä tämän luonnosviestin?" -#: src/client/composer/composer-widget.vala:1330 +#: src/client/composer/composer-widget.vala:1503 msgid "Send message with an empty subject and body?" msgstr "Lähetetäänkö viesti ilman aihetta ja sisältöä?" -#: src/client/composer/composer-widget.vala:1332 +#: src/client/composer/composer-widget.vala:1505 msgid "Send message with an empty subject?" msgstr "Lähetetäänkö viesti ilman aihetta?" -#: src/client/composer/composer-widget.vala:1334 +#: src/client/composer/composer-widget.vala:1507 msgid "Send message with an empty body?" msgstr "Lähetetäänkö viesti ilman sisältöä?" -#: src/client/composer/composer-widget.vala:1338 +#: src/client/composer/composer-widget.vala:1516 msgid "Send message without an attachment?" msgstr "Lähetetäänkö viesti ilman liitettä?" -#: src/client/composer/composer-widget.vala:1652 +#: src/client/composer/composer-widget.vala:1820 #, c-format msgid "“%s” already attached for delivery." msgstr "“%s” on jo liitetty lähetystä varten." -#. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" -#. Translators: The first argument will be a -#. description of the document type, the second will -#. be a human-friendly size string. For example: -#. Document (100.9MB) -#: src/client/composer/composer-widget.vala:1660 -#: src/client/conversation-viewer/conversation-email.vala:173 -#, c-format -msgid "%s (%s)" -msgstr "%s (%s)" - -#: src/client/composer/composer-widget.vala:1697 -#, c-format -msgid "“%s” could not be found." -msgstr "Kohdetta “%s” ei löytynyt." - -#: src/client/composer/composer-widget.vala:1703 -#, c-format -msgid "“%s” is a folder." -msgstr "“%s” on kansio." - -#: src/client/composer/composer-widget.vala:1709 +#: src/client/composer/composer-widget.vala:1856 +#: src/client/composer/composer-widget.vala:1906 #, c-format msgid "“%s” is an empty file." msgstr "“%s” on tyhjä tiedosto." -#: src/client/composer/composer-widget.vala:1722 +#: src/client/composer/composer-widget.vala:1894 +#, c-format +msgid "“%s” could not be found." +msgstr "Kohdetta “%s” ei löytynyt." + +#: src/client/composer/composer-widget.vala:1900 +#, c-format +msgid "“%s” is a folder." +msgstr "“%s” on kansio." + +#: src/client/composer/composer-widget.vala:1919 #, c-format msgid "“%s” could not be opened for reading." msgstr "Kohteen “%s” avaus lukua varten epäonnistui." -#: src/client/composer/composer-widget.vala:1730 +#: src/client/composer/composer-widget.vala:1927 msgid "Cannot add attachment" msgstr "Liitteen lisäys epäonnistui" #. Translators: Human-readable version of the RFC 822 To header -#: src/client/composer/composer-widget.vala:1787 -#: src/client/conversation-viewer/conversation-email.vala:976 -#: src/client/util/util-email.vala:216 ui/conversation-message.ui:312 +#: src/client/composer/composer-widget.vala:1984 +#: src/client/conversation-viewer/conversation-email.vala:559 +#: src/client/util/util-email.vala:235 ui/conversation-message.ui:312 msgid "To:" msgstr "Vastaanottaja:" #. Translators: Human-readable version of the RFC 822 CC header -#: src/client/composer/composer-widget.vala:1793 -#: src/client/conversation-viewer/conversation-email.vala:981 -#: src/client/util/util-email.vala:221 ui/conversation-message.ui:357 +#: src/client/composer/composer-widget.vala:1990 +#: src/client/conversation-viewer/conversation-email.vala:564 +#: src/client/util/util-email.vala:240 ui/conversation-message.ui:357 msgid "Cc:" msgstr "Kopio:" #. Translators: Human-readable version of the RFC 822 BCC header -#: src/client/composer/composer-widget.vala:1799 -#: src/client/conversation-viewer/conversation-email.vala:986 +#: src/client/composer/composer-widget.vala:1996 +#: src/client/conversation-viewer/conversation-email.vala:569 #: ui/conversation-message.ui:402 msgid "Bcc:" msgstr "Piilokopio:" #. Translators: Human-readable version of the RFC 822 Reply-To header -#: src/client/composer/composer-widget.vala:1805 +#: src/client/composer/composer-widget.vala:2002 msgid "Reply-To: " msgstr "Vastausosoite: " -#: src/client/composer/composer-widget.vala:1945 +#: src/client/composer/composer-widget.vala:2254 msgid "Select Color" msgstr "Valitse väri" @@ -1536,41 +1695,37 @@ msgstr "Valitse väri" #. printf argument will be the alternate email address, #. and the second will be the account's primary email #. address. -#: src/client/composer/composer-widget.vala:2137 +#: src/client/composer/composer-widget.vala:2439 #, c-format msgid "%1$s via %2$s" msgstr "%1$s välityksellä %2$s" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: src/client/composer/composer-widget.vala:2192 +#: src/client/composer/composer-widget.vala:2495 msgid "_From:" msgstr "_Lähettäjä:" #. Translators: This is the name of the file chooser filter #. when inserting an image in the composer. -#: src/client/composer/composer-widget.vala:2472 +#: src/client/composer/composer-widget.vala:2800 msgid "Images" msgstr "Kuvat" -#: src/client/composer/composer-window.vala:14 -msgid "New Message" -msgstr "Uusi viesti" - -#: src/client/composer/spell-check-popover.vala:108 +#: src/client/composer/spell-check-popover.vala:125 msgid "Remove this language from the preferred list" msgstr "Poista tämä kieli suositeltujen listalta" -#: src/client/composer/spell-check-popover.vala:112 +#: src/client/composer/spell-check-popover.vala:129 msgid "Add this language to the preferred list" msgstr "Lisää tämä kieli suositeltujen listalle" -#: src/client/composer/spell-check-popover.vala:199 +#: src/client/composer/spell-check-popover.vala:225 msgid "Search for more languages" msgstr "Etsi lisää kieliä" #. / Translators: Context menu item -#: src/client/conversation-list/conversation-list-view.vala:337 +#: src/client/conversation-list/conversation-list-view.vala:335 msgid "Move conversation to _Trash" msgid_plural "Move conversations to _Trash" msgstr[0] "Siirrä keskustelu _roskakoriin" @@ -1583,38 +1738,38 @@ msgid_plural "_Delete conversations" msgstr[0] "_Poista keskustelu" msgstr[1] "_Poista keskustelut" -#: src/client/conversation-list/conversation-list-view.vala:356 +#: src/client/conversation-list/conversation-list-view.vala:360 #: ui/main-toolbar-menus.ui:5 msgid "Mark as _Read" msgstr "Merkitse _luetuksi" -#: src/client/conversation-list/conversation-list-view.vala:359 +#: src/client/conversation-list/conversation-list-view.vala:368 #: ui/main-toolbar-menus.ui:9 msgid "Mark as _Unread" msgstr "Merkitse l_ukemattomaksi" -#: src/client/conversation-list/conversation-list-view.vala:362 +#: src/client/conversation-list/conversation-list-view.vala:376 #: ui/main-toolbar-menus.ui:17 msgid "U_nstar" msgstr "_Poista tähti" -#: src/client/conversation-list/conversation-list-view.vala:364 +#: src/client/conversation-list/conversation-list-view.vala:383 #: ui/main-toolbar-menus.ui:13 msgid "_Star" msgstr "_Merkitse tähdellä" #. Translators: Menu item to reply to a specific message. -#: src/client/conversation-list/conversation-list-view.vala:367 +#: src/client/conversation-list/conversation-list-view.vala:392 #: ui/conversation-email-menus.ui:9 msgid "_Reply" msgstr "_Vastaa" -#: src/client/conversation-list/conversation-list-view.vala:368 +#: src/client/conversation-list/conversation-list-view.vala:398 msgid "R_eply All" msgstr "_Vastaa kaikille" #. Translators: Menu item to forward a specific message. -#: src/client/conversation-list/conversation-list-view.vala:369 +#: src/client/conversation-list/conversation-list-view.vala:404 #: ui/conversation-email-menus.ui:21 msgid "_Forward" msgstr "_Lähetä edelleen" @@ -1624,24 +1779,24 @@ msgid "Me" msgstr "Minä" #. Translators: Human-readable version of the RFC 822 From header -#: src/client/conversation-viewer/conversation-email.vala:971 -#: src/client/util/util-email.vala:207 +#: src/client/conversation-viewer/conversation-email.vala:554 +#: src/client/util/util-email.vala:226 msgid "From:" msgstr "Lähettäjä:" #. Translators: Human-readable version of the RFC 822 Date header -#: src/client/conversation-viewer/conversation-email.vala:991 -#: src/client/util/util-email.vala:212 +#: src/client/conversation-viewer/conversation-email.vala:574 +#: src/client/util/util-email.vala:231 msgid "Date:" msgstr "Päiväys:" #. Translators: Human-readable version of the RFC 822 Subject header -#: src/client/conversation-viewer/conversation-email.vala:1001 -#: src/client/util/util-email.vala:210 +#: src/client/conversation-viewer/conversation-email.vala:584 +#: src/client/util/util-email.vala:229 msgid "Subject:" msgstr "Aihe:" -#: src/client/conversation-viewer/conversation-message.vala:129 +#: src/client/conversation-viewer/conversation-message.vala:128 msgid "This email address may have been forged" msgstr "Tämä sähköpostiosoite saattaa olla väärennetty" @@ -1649,44 +1804,44 @@ msgstr "Tämä sähköpostiosoite saattaa olla väärennetty" #. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:445 +#: src/client/conversation-viewer/conversation-message.vala:438 msgid "No sender" msgstr "Ei lähettäjää" #. Translators: This separates multiple 'from' #. addresses in the compact header for a message. -#: src/client/conversation-viewer/conversation-message.vala:838 +#: src/client/conversation-viewer/conversation-message.vala:830 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Imagemailing " -#| "list or file a new bug report." msgid "" "If the problem is serious or persists, please save and send these details to " "the mailing list " "or attach to a new bug report." msgstr "" -"Jos ongelma on vakava tai se toistuu, kopioi ja lähetä virheen " +"Jos ongelma on vakava tai se toistuu, tallenna ja lähetä virheen " "yksityiskohtaiset tiedot postituslistalle tai tee uusi vikailmoitus." +"\">postituslistalle tai liitä tiedot uuteen vikailmoitukseen." #: ui/components-inspector-error-view.ui:49 msgid "Details:" msgstr "Tiedot:" -#: ui/components-inspector-log-view.ui:13 -msgid "Inspector opened" -msgstr "" - -#: ui/components-inspector-log-view.ui:65 -msgid "column" -msgstr "sarake" - #. Tooltip for inspector button #: ui/components-inspector.ui:20 msgid "Toggle appending new log entries" @@ -2688,10 +2932,8 @@ msgstr "" #. Tooltip for inspector button #. Tooltip for problem report button #: ui/components-inspector.ui:37 ui/problem-details-dialog.ui:19 -#, fuzzy -#| msgid "Search for more languages" msgid "Search for matching log entries" -msgstr "Etsi lisää kieliä" +msgstr "Etsi vastaavia lokimerkintöjä" #. Tooltip for inspector button #. Tooltip for problem report button @@ -2706,8 +2948,6 @@ msgid "Copy to clipboard" msgstr "Kopioi leikepöydälle" #: ui/conversation-contact-popover.ui:146 -#| msgid "Move conversation" -#| msgid_plural "Move conversations" msgid "New Conversation…" msgstr "Uusi keskustelu…" @@ -2716,7 +2956,6 @@ msgid "Copy Email Address" msgstr "Kopioi sähköpostiosoite" #: ui/conversation-contact-popover.ui:182 -#| msgid "Save and Close" msgid "Save in Contacts…" msgstr "Tallenna yhteystietosovellukseen…" @@ -2745,7 +2984,7 @@ msgstr "Tämä sähköpostiosoite on:" #. Contact popover label #: ui/conversation-contact-popover.ui:319 msgid "But was forged as:" -msgstr "" +msgstr "Mutta muutettiin muotoon:" #. Contact popover label #: ui/conversation-contact-popover.ui:344 @@ -2766,39 +3005,23 @@ msgstr "Merkitse tämä viesti tähdellä" msgid "Mark this message as not starred" msgstr "Poista tähti tältä viestiltä" -#: ui/conversation-email.ui:95 -msgid "Display the message menu" -msgstr "Näytä viestivalikko" - -#: ui/conversation-email.ui:161 -msgid "Open selected attachments" -msgstr "Avaa valitut litteet" - -#: ui/conversation-email.ui:178 -msgid "Save selected attachments" -msgstr "Tallenna valitut liitteet" - -#: ui/conversation-email.ui:195 -msgid "Select all attachments" -msgstr "Valitse kaikki liitteet" - -#: ui/conversation-email.ui:240 +#: ui/conversation-email.ui:124 msgid "Edit Draft" msgstr "Muokkaa luonnosta" -#: ui/conversation-email.ui:267 +#: ui/conversation-email.ui:151 msgid "Draft message" msgstr "Luonnosviesti" -#: ui/conversation-email.ui:283 +#: ui/conversation-email.ui:167 msgid "This message has not yet been sent." msgstr "Tätä viestiä ei ole vielä lähetetty." -#: ui/conversation-email.ui:329 +#: ui/conversation-email.ui:213 msgid "Message not saved" msgstr "Viestiä ei tallennettu" -#: ui/conversation-email.ui:345 +#: ui/conversation-email.ui:229 msgid "This message was sent, but has not been saved to your account." msgstr "" "Tämä viesti lähetettiin onnistuneesti, mutta sen tallennus tilillesi " @@ -2841,9 +3064,27 @@ msgstr "_Poista viesti…" msgid "_View Source" msgstr "Näytä lä_hde" -#: ui/conversation-email-menus.ui:87 -msgid "_Save All" -msgstr "_Tallenna kaikki" +#: ui/conversation-message-link-popover.ui:54 +msgid "But actually goes to:" +msgstr "Mutta viekin kohteeseen:" + +#: ui/conversation-message-link-popover.ui:84 +msgid "The link appears to go to:" +msgstr "Tämä linkki vaikuttaa johtavan kohteeseen:" + +#: ui/conversation-message-link-popover.ui:96 +msgid "Deceptive link found" +msgstr "Harhaanjohtava linkki löydetty" + +#: ui/conversation-message-link-popover.ui:111 +msgid "The email sender may be leading you to the wrong web site." +msgstr "" +"Sähköpostin lähettäjä saattaa yrittää johdattaa sinut väärälle sivulle." + +#: ui/conversation-message-link-popover.ui:124 +msgid "If unsure, contact the sender and ask before continuing." +msgstr "" +"Jos olet epävarma, ole yhteydessä viestin lähettäjään ennen kuin jatkat." #: ui/conversation-message-menus.ui:7 msgid "_Open Link" @@ -2909,28 +3150,6 @@ msgstr "Etäkuvia ei näytetä" msgid "Only show remote images from senders you trust." msgstr "Näytä etäkuvat vain lähettäjiltä, joihin luotat." -#: ui/conversation-message.ui:692 -msgid "But actually goes to:" -msgstr "Mutta viekin kohteeseen:" - -#: ui/conversation-message.ui:723 -msgid "The link appears to go to:" -msgstr "Tämä linkki vaikuttaa johtavan kohteeseen:" - -#: ui/conversation-message.ui:735 -msgid "Deceptive link found" -msgstr "Harhaanjohtava linkki löydetty" - -#: ui/conversation-message.ui:750 -msgid "The email sender may be leading you to the wrong web site." -msgstr "" -"Sähköpostin lähettäjä saattaa yrittää johdattaa sinut väärälle sivulle." - -#: ui/conversation-message.ui:763 -msgid "If unsure, contact the sender and ask before continuing." -msgstr "" -"Jos olet epävarma, ole yhteydessä viestin lähettäjään ennen kuin jatkat." - #: ui/conversation-viewer.ui:60 msgid "Find in conversation" msgstr "Etsi keskustelusta" @@ -2967,7 +3186,7 @@ msgstr "nimike" msgid "Conversation Shortcuts" msgstr "Keskustelun pikanäppäimet" -#: ui/gtk/help-overlay.ui:13 ui/gtk/help-overlay.ui:347 +#: ui/gtk/help-overlay.ui:13 ui/gtk/help-overlay.ui:355 msgctxt "shortcut window" msgid "Actions" msgstr "Toiminnot" @@ -2982,64 +3201,55 @@ msgctxt "shortcut window" msgid "Reply to sender" msgstr "Vastaa lähettäjälle" -#: ui/gtk/help-overlay.ui:31 ui/gtk/help-overlay.ui:282 +#: ui/gtk/help-overlay.ui:31 ui/gtk/help-overlay.ui:269 msgctxt "shortcut window" msgid "Reply to all" msgstr "Vastaa kaikille" -#: ui/gtk/help-overlay.ui:38 ui/gtk/help-overlay.ui:289 +#: ui/gtk/help-overlay.ui:38 ui/gtk/help-overlay.ui:276 msgctxt "shortcut window" msgid "Forward" msgstr "Lähetä edelleen" -#: ui/gtk/help-overlay.ui:45 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Mark read" +#: ui/gtk/help-overlay.ui:45 ui/gtk/help-overlay.ui:283 msgctxt "shortcut window" msgid "Un-mark/mark read" -msgstr "Merkitse luetuksi" +msgstr "Merkitse lukemattomaksi/luetuksi" -#: ui/gtk/help-overlay.ui:52 ui/gtk/help-overlay.ui:303 +#: ui/gtk/help-overlay.ui:52 ui/gtk/help-overlay.ui:290 msgctxt "shortcut window" msgid "Mark/un-mark starred" -msgstr "" +msgstr "Merkitse viesti tähdellä tai poista tähti" -#: ui/gtk/help-overlay.ui:59 ui/gtk/help-overlay.ui:310 +#: ui/gtk/help-overlay.ui:59 ui/gtk/help-overlay.ui:297 msgctxt "shortcut window" -msgid "Archive conversation" -msgstr "Arkistoi keskustelu" +msgid "Archive conversations" +msgstr "Arkistoi keskustelut" -#: ui/gtk/help-overlay.ui:66 ui/gtk/help-overlay.ui:317 +#: ui/gtk/help-overlay.ui:66 ui/gtk/help-overlay.ui:304 msgctxt "shortcut window" -msgid "Move conversation" -msgstr "Siirrä keskustelu" +msgid "Move conversations" +msgstr "Siirrä keskustelut" -#: ui/gtk/help-overlay.ui:73 ui/gtk/help-overlay.ui:324 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Label the conversation" +#: ui/gtk/help-overlay.ui:73 ui/gtk/help-overlay.ui:311 msgctxt "shortcut window" -msgid "Label conversation" -msgstr "Merkitse tunniste keskusteluun" +msgid "Label conversations" +msgstr "Merkitse keskustelut tunnisteilla" #: ui/gtk/help-overlay.ui:80 msgctxt "shortcut window" -msgid "Trash conversation" -msgstr "Siirrä keskustelu roskakoriin" +msgid "Trash conversations" +msgstr "Siirrä keskustelut roskakoriin" -#: ui/gtk/help-overlay.ui:87 ui/gtk/help-overlay.ui:331 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Move to trash" +#: ui/gtk/help-overlay.ui:87 ui/gtk/help-overlay.ui:318 msgctxt "shortcut window" -msgid "Move to Spam" -msgstr "Siirrä roskakoriin" +msgid "Junk conversations" +msgstr "Merkitse keskustelut roskaksi" -#: ui/gtk/help-overlay.ui:95 +#: ui/gtk/help-overlay.ui:95 ui/gtk/help-overlay.ui:325 msgctxt "shortcut window" -msgid "Delete conversation" -msgstr "Poista keskustelu" +msgid "Delete conversations" +msgstr "Poista keskustelut" #: ui/gtk/help-overlay.ui:104 msgctxt "shortcut window" @@ -3091,7 +3301,7 @@ msgctxt "shortcut window" msgid "Reset zoom" msgstr "Palauta mittakaava" -#: ui/gtk/help-overlay.ui:188 ui/gtk/help-overlay.ui:367 +#: ui/gtk/help-overlay.ui:188 ui/gtk/help-overlay.ui:375 msgctxt "shortcut window" msgid "General" msgstr "Yleiset" @@ -3108,203 +3318,176 @@ msgstr "Näytä pikanäppäimet" #: ui/gtk/help-overlay.ui:206 msgctxt "shortcut window" -msgid "Close current window" -msgstr "Sulje nykyinen ikkuna" +msgid "Open a new window" +msgstr "Avaa uusi ikkuna" #: ui/gtk/help-overlay.ui:213 msgctxt "shortcut window" +msgid "Close the current window" +msgstr "Sulje nykyinen ikkuna" + +#: ui/gtk/help-overlay.ui:220 +msgctxt "shortcut window" msgid "Quit the application" msgstr "Lopeta sovellus" -#: ui/gtk/help-overlay.ui:222 +#: ui/gtk/help-overlay.ui:229 msgctxt "shortcut window" msgid "Keyboard navigation" msgstr "Näppäimistöllä liikkuminen" -#: ui/gtk/help-overlay.ui:226 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Move focus to the next/previous pane" -msgctxt "shortcut window" -msgid "Focus the next pane" -msgstr "Siirrä kohdistus seuraavaan/edelliseen osioon" - #: ui/gtk/help-overlay.ui:233 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Move focus to the next/previous pane" msgctxt "shortcut window" -msgid "Focus the previous pane" -msgstr "Siirrä kohdistus seuraavaan/edelliseen osioon" +msgid "Go to next/previous pane" +msgstr "Siirry seuraavaan/edelliseen osioon" -#: ui/gtk/help-overlay.ui:240 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Move focus to conversation list" +#: ui/gtk/help-overlay.ui:241 msgctxt "shortcut window" -msgid "Focus the conversation list" -msgstr "Siirrä kohdistus keskusteluluetteloon" +msgid "Select next/previous conversation" +msgstr "Valitse edellinen/seuraava keskustelu" -#: ui/gtk/help-overlay.ui:247 -#, fuzzy -#| msgid "Delete conversation" -msgctxt "shortcut window" -msgid "Select the conversation down" -msgstr "Poista keskustelu" - -#: ui/gtk/help-overlay.ui:254 -#, fuzzy -#| msgid "Delete conversation" -msgctxt "shortcut window" -msgid "Select the conversation up" -msgstr "Poista keskustelu" - -#: ui/gtk/help-overlay.ui:261 +#: ui/gtk/help-overlay.ui:248 msgctxt "shortcut window" msgid "Focus next/previous message" msgstr "Kohdista edelliseen/seuraavaan viestiin" -#: ui/gtk/help-overlay.ui:271 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Show keyboard shortcuts" +#: ui/gtk/help-overlay.ui:258 msgctxt "shortcut window" msgid "Single-key shortcuts" -msgstr "Näytä pikanäppäimet" +msgstr "Yhden näppäimen pikanäppäimet" -#: ui/gtk/help-overlay.ui:275 +#: ui/gtk/help-overlay.ui:262 msgctxt "shortcut window" msgid "Reply to sender " msgstr "Vastaa lähettäjälle " -#: ui/gtk/help-overlay.ui:296 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Mark unread" +#: ui/gtk/help-overlay.ui:332 msgctxt "shortcut window" -msgid "Mark/un-mark read" -msgstr "Merkitse lukemattomaksi" +msgid "Find in current conversations" +msgstr "Etsi nykyisistä keskusteluista" -#: ui/gtk/help-overlay.ui:343 +#: ui/gtk/help-overlay.ui:339 +msgctxt "shortcut window" +msgid "Select next/previous conversations" +msgstr "Valitse edelliset/seuraavat keskustelut" + +#: ui/gtk/help-overlay.ui:351 msgid "Composer Shortcuts" msgstr "Lähettämisen pikanäppäimet" -#: ui/gtk/help-overlay.ui:351 +#: ui/gtk/help-overlay.ui:359 msgctxt "shortcut window" msgid "Send" msgstr "Lähetä" -#: ui/gtk/help-overlay.ui:358 +#: ui/gtk/help-overlay.ui:366 msgctxt "shortcut window" msgid "Add attachment" msgstr "Lisää liite" -#: ui/gtk/help-overlay.ui:371 +#: ui/gtk/help-overlay.ui:379 msgctxt "shortcut window" msgid "Close composer window" msgstr "Sulje lähetysikkuna" -#: ui/gtk/help-overlay.ui:378 +#: ui/gtk/help-overlay.ui:386 msgctxt "shortcut window" msgid "Detach composer window" msgstr "Irrota lähetysikkuna" -#: ui/gtk/help-overlay.ui:385 +#: ui/gtk/help-overlay.ui:393 msgctxt "shortcut window" msgid "Editing" msgstr "Muokkaus" -#: ui/gtk/help-overlay.ui:390 +#: ui/gtk/help-overlay.ui:398 msgctxt "shortcut window" msgid "Move selection to the clipboard" msgstr "Siirrä valinta leikepöydälle" -#: ui/gtk/help-overlay.ui:397 +#: ui/gtk/help-overlay.ui:405 msgctxt "shortcut window" msgid "Copy selection to clipboard" msgstr "Kopioi valinta leikepöydälle" -#: ui/gtk/help-overlay.ui:404 +#: ui/gtk/help-overlay.ui:412 msgctxt "shortcut window" msgid "Paste from the clipboard" msgstr "Liitä leikepöydältä" -#: ui/gtk/help-overlay.ui:411 +#: ui/gtk/help-overlay.ui:419 msgctxt "shortcut window" msgid "Quote text" msgstr "Lainaa tekstiä" -#: ui/gtk/help-overlay.ui:418 +#: ui/gtk/help-overlay.ui:426 msgctxt "shortcut window" msgid "Unquote text" msgstr "Poista tekstin lainaus" -#: ui/gtk/help-overlay.ui:427 -#, fuzzy -#| msgctxt "shortcut window" -#| msgid "Rich text mode" +#: ui/gtk/help-overlay.ui:435 msgctxt "shortcut window" msgid "Rich text editing" -msgstr "Muotoilutila" +msgstr "Monipuolinen muotoilutila" -#: ui/gtk/help-overlay.ui:431 +#: ui/gtk/help-overlay.ui:439 msgctxt "shortcut window" msgid "Paste without formatting" msgstr "Liitä ilman muotoilua" -#: ui/gtk/help-overlay.ui:438 +#: ui/gtk/help-overlay.ui:446 msgctxt "shortcut window" msgid "Bold text" msgstr "Lihavoitu teksti" -#: ui/gtk/help-overlay.ui:445 +#: ui/gtk/help-overlay.ui:453 msgctxt "shortcut window" msgid "Italicize text" msgstr "Kursivoitu teksti" -#: ui/gtk/help-overlay.ui:452 +#: ui/gtk/help-overlay.ui:460 msgctxt "shortcut window" msgid "Underline text" msgstr "Alleviivattu teksti" -#: ui/gtk/help-overlay.ui:459 +#: ui/gtk/help-overlay.ui:467 msgctxt "shortcut window" msgid "Strike text" msgstr "Yliviivattu teksti" -#: ui/gtk/help-overlay.ui:466 +#: ui/gtk/help-overlay.ui:474 msgctxt "shortcut window" msgid "Remove formatting" msgstr "Poista muotoilu" -#: ui/gtk/help-overlay.ui:473 +#: ui/gtk/help-overlay.ui:481 msgctxt "shortcut window" msgid "Insert an image" msgstr "Lisää kuva" -#: ui/gtk/help-overlay.ui:480 +#: ui/gtk/help-overlay.ui:488 msgctxt "shortcut window" msgid "Insert a link" msgstr "Lisää linkki" -#: ui/main-toolbar.ui:23 +#: ui/main-toolbar.ui:24 msgctxt "tooltip" msgid "Compose Message" msgstr "Lähetä viesti" -#: ui/main-toolbar.ui:61 +#: ui/main-toolbar.ui:62 msgid "Toggle search bar" msgstr "Hakupalkki päälle/pois" -#: ui/main-toolbar.ui:113 +#: ui/main-toolbar.ui:114 msgid "Reply" msgstr "Vastaa" -#: ui/main-toolbar.ui:136 +#: ui/main-toolbar.ui:137 msgid "Reply All" msgstr "Vastaa kaikille" -#: ui/main-toolbar.ui:159 +#: ui/main-toolbar.ui:160 msgid "Forward" msgstr "Lähetä edelleen" @@ -3317,108 +3500,29 @@ msgid "_Archive" msgstr "_Arkistoi" #: ui/main-toolbar-menus.ui:21 -msgid "Mark as S_pam" -msgstr "Me_rkitse roskapostiksi" +msgid "Toggle as S_pam" +msgstr "Merkitse _roskapostiksi tai poista roskaposteista" -#: ui/main-toolbar-menus.ui:25 -msgid "Mark as not S_pam" -msgstr "Poista _roskapostimerkintä" - -#: ui/main-toolbar-menus.ui:32 +#: ui/main-toolbar-menus.ui:28 msgid "Empty _Spam…" msgstr "Tyhjennä ro_skapostikansio…" -#: ui/main-toolbar-menus.ui:36 +#: ui/main-toolbar-menus.ui:32 msgid "Empty _Trash…" msgstr "Tyhjennä _roskakorikansio…" -#: ui/main-toolbar-menus.ui:42 +#: ui/main-toolbar-menus.ui:38 msgid "_Accounts" msgstr "_Tilit" -#: ui/main-toolbar-menus.ui:50 +#: ui/main-toolbar-menus.ui:46 msgid "_Keyboard Shortcuts" msgstr "_Pikanäppäimet" -#: ui/main-toolbar-menus.ui:61 +#: ui/main-toolbar-menus.ui:57 msgid "_About Geary" msgstr "_Tietoja - Geary" -#. Infobar title when one or more accounts are offline -#: ui/main-window.ui:185 -msgid "Working offline" -msgstr "Työskennellään offline-tilassa" - -#. Label and tooltip for offline infobar -#: ui/main-window.ui:199 -msgid "" -"Your computer does not appear to be connected to the Internet.\n" -"You will not be able to send or receive email until it is re-connected." -msgstr "" -"Tietokoneesi ei vaikuta olevan yhteydessä internetiin.\n" -"Viestien vastaanottaminen tai lähettäminen ei onnistu, ennen kuin yhteys on " -"muodostettu uudelleen." - -#. Label and tooltip for offline infobar -#: ui/main-window.ui:202 -msgid "You will not be able to send or receive email until re-connected." -msgstr "" -"Viestien vastaanottaminen tai lähettäminen ei onnistu, ennen kuin yhteys on " -"muodostettu uudelleen." - -#. Button label for retrying TLS cert validation -#: ui/main-window.ui:249 -msgid "Check" -msgstr "Tarkista" - -#. Button tooltip for retrying TLS cert validation -#: ui/main-window.ui:253 -msgid "Check the security details for the connection" -msgstr "Tarkista yhteyden salaustiedot" - -#. Infobar title when one or more accounts have a TLS cert validation error -#: ui/main-window.ui:282 -msgid "Security problem" -msgstr "Tietoturvaongelma" - -#. Label and tooltip for TLS cert validation error infobar -#: ui/main-window.ui:296 -msgid "" -"An account has reported an untrusted server.\n" -"Please check the server configuration and try again." -msgstr "" -"Tili ilmoitti ei-luotetusta palvelimesta.\n" -"Tarkista palvelimen asetukset ja yritä uudelleen." - -#. Label and tooltip for TLS cert validation error infobar -#: ui/main-window.ui:299 -msgid "An account has reported an untrusted server." -msgstr "Tili on ilmoittanut ei-luotetusta palvelimesta." - -#. Button tooltip for retrying when a login error has occurred -#: ui/main-window.ui:350 -msgid "Retry login, you will be prompted for your password" -msgstr "Yritä uudelleen kirjautumista, sinulta kysytään salasanaa" - -#. Infobar title when one or more accounts have a login error -#: ui/main-window.ui:379 -msgid "Login problem" -msgstr "Kirjautumisongelma" - -#. Label and tooltip for authentication problem infobar -#: ui/main-window.ui:393 -msgid "" -"An account has reported an incorrect login or password.\n" -"Please check your login name and try again." -msgstr "" -"Tili ilmoitti virheellisestä käyttäjätunnuksesta tai salasanasta.\n" -"Tarkista käyttäjätunnus ja yritä uudelleen." - -#. Label and tooltip for authentication problem infobar -#: ui/main-window.ui:396 -msgid "An account has reported an incorrect login or password." -msgstr "Tili ilmoitti väärästä käyttäjätunnuksesta tai salasanasta." - #: ui/password-dialog.glade:74 msgid "SMTP Credentials" msgstr "SMTP-tunnukset" @@ -3435,50 +3539,175 @@ msgstr "_Muista salasana" msgid "_Authenticate" msgstr "_Tunnistaudu" -#: ui/preferences-dialog.ui:38 -msgid "Reading" -msgstr "Lukeminen" - -#: ui/preferences-dialog.ui:51 -msgid "_Automatically select next message" -msgstr "_Valitse automaattisesti seuraava viesti" - -#: ui/preferences-dialog.ui:70 -msgid "_Display conversation preview" -msgstr "N_äytä keskustelun esikatselu" - -#: ui/preferences-dialog.ui:89 -msgid "Use _three pane view" -msgstr "Kä_ytä kolmen paneelin näkymää" - -#: ui/preferences-dialog.ui:113 -msgid "Notifications" -msgstr "Ilmoitukset" - -#: ui/preferences-dialog.ui:126 -msgid "_Play notification sounds" -msgstr "_Toista ilmoitusäänet" - -#: ui/preferences-dialog.ui:145 -msgid "Show _notifications for new mail" -msgstr "_Näytä ilmoitus uuden viestin saapuessa" - -#: ui/preferences-dialog.ui:164 -msgid "_Watch for new mail when closed" -msgstr "_Tarkkaile uusia viestejä suljettuna" - -#: ui/preferences-dialog.ui:168 -msgid "Geary will keep running after all windows are closed" -msgstr "Geary jatkaa käynnissä olemista kun kaikki ikkunat on suljettu" - -#: ui/preferences-dialog.ui:195 -msgid "Preferences" -msgstr "Asetukset" - #: ui/upgrade_dialog.glade:60 msgid "Geary update in progress…" msgstr "Gearyn päivitys on meneillään…" +#~ msgid "Enable notification sounds" +#~ msgstr "Käytä ilmoitusääniä" + +#~ msgid "Show notifications for new mail" +#~ msgstr "Näytä ilmoitus uusista viesteistä" + +#, fuzzy +#~| msgid "%d message" +#~| msgid_plural "%d messages" +#~ msgid "Moved %d message to %s" +#~ msgid_plural "Moved %d messages to %s" +#~ msgstr[0] "%d viesti" +#~ msgstr[1] "%d viestiä" + +#~ msgid "Error emptying %s" +#~ msgstr "Virhe tyhjennettäessä kohdetta %s" + +#, fuzzy +#~| msgid "%d message" +#~| msgid_plural "%d messages" +#~ msgid "Trashed %d message" +#~ msgid_plural "Trashed %d messages" +#~ msgstr[0] "%d viesti" +#~ msgstr[1] "%d viestiä" + +#~ msgid "Archived %d message" +#~ msgid_plural "Archived %d messages" +#~ msgstr[0] "Arkistoitu %d viesti" +#~ msgstr[1] "Arkistoitu %d viestiä" + +#~ msgid "Successfully sent mail to %s." +#~ msgstr "Lähetetty onnistuneesti sähköpostia vastaanottajille %s." + +#~ msgid "Failed to open default text editor." +#~ msgstr "Oletustekstimuokkaimen avaus epäonnistui." + +#, fuzzy +#~| msgid "Display program version" +#~ msgid "Display program version and revision id" +#~ msgstr "Näytä sovelluksen versio" + +#~ msgid "Indexing %s account" +#~ msgstr "Indeksoidaan tiliä %s" + +#~ msgid "Detach (Ctrl+D)" +#~ msgstr "Irrota (Ctrl+D)" + +#~ msgid "Attach File (Ctrl+T)" +#~ msgstr "Liitä tiedosto (Ctrl+T)" + +#~ msgid "Send (Ctrl+Enter)" +#~ msgstr "Lähetä (Ctrl+Enter)" + +#~ msgid "Open this link" +#~ msgstr "Avaa tämä linkki" + +#~ msgid "C_olor" +#~ msgstr "Vä_ri" + +#~ msgid "Show Extended Fields" +#~ msgstr "Näytä laajennetut kentät" + +#~ msgid "Redo last edit (Ctrl+Shift+Z)" +#~ msgstr "Tee uudelleen viimeisin muokkaus (Ctrl+Shift+Z)" + +#~ msgid "Bold (Ctrl+B)" +#~ msgstr "Lihavoitu (Ctrl+B)" + +#~ msgid "Italic (Ctrl+I)" +#~ msgstr "Kursivoitu (Ctrl+I)" + +#~ msgid "Underline (Ctrl+U)" +#~ msgstr "Alleviivattu (Ctrl+U)" + +#~ msgid "Strikethrough (Ctrl+K)" +#~ msgstr "Yliviivattu (Ctrl+K)" + +#~ msgid "Insert ordered list" +#~ msgstr "Lisää numeroitu luettelo" + +#~ msgid "Quote text (Ctrl+])" +#~ msgstr "Lainaa tekstiä (Ctrl+])" + +#~ msgid "Unquote text (Ctrl+[)" +#~ msgstr "Poista tekstin lainaus (Ctrl+[)" + +#~ msgid "Insert an image (Ctrl+G)" +#~ msgstr "Lisää kuva (Ctrl+G)" + +#~ msgid "Remove selection formatting (Ctrl+Space)" +#~ msgstr "Poista muotoilu valinnasta (Ctrl+Space)" + +#~ msgid "column" +#~ msgstr "sarake" + +#~ msgid "Display the message menu" +#~ msgstr "Näytä viestivalikko" + +#~ msgctxt "shortcut window" +#~ msgid "Archive conversation" +#~ msgstr "Arkistoi keskustelu" + +#~ msgctxt "shortcut window" +#~ msgid "Move conversation" +#~ msgstr "Siirrä keskustelu" + +#, fuzzy +#~| msgctxt "shortcut window" +#~| msgid "Move to trash" +#~ msgctxt "shortcut window" +#~ msgid "Move to Spam" +#~ msgstr "Siirrä roskakoriin" + +#~ msgctxt "shortcut window" +#~ msgid "Delete conversation" +#~ msgstr "Poista keskustelu" + +#, fuzzy +#~| msgctxt "shortcut window" +#~| msgid "Move focus to the next/previous pane" +#~ msgctxt "shortcut window" +#~ msgid "Focus the next pane" +#~ msgstr "Siirrä kohdistus seuraavaan/edelliseen osioon" + +#, fuzzy +#~| msgctxt "shortcut window" +#~| msgid "Move focus to conversation list" +#~ msgctxt "shortcut window" +#~ msgid "Focus the conversation list" +#~ msgstr "Siirrä kohdistus keskusteluluetteloon" + +#, fuzzy +#~| msgid "Delete conversation" +#~ msgctxt "shortcut window" +#~ msgid "Select the conversation down" +#~ msgstr "Poista keskustelu" + +#, fuzzy +#~| msgctxt "shortcut window" +#~| msgid "Mark unread" +#~ msgctxt "shortcut window" +#~ msgid "Mark/un-mark read" +#~ msgstr "Merkitse lukemattomaksi" + +#~ msgid "Mark as S_pam" +#~ msgstr "Me_rkitse roskapostiksi" + +#~ msgid "Mark as not S_pam" +#~ msgstr "Poista _roskapostimerkintä" + +#~ msgid "Reading" +#~ msgstr "Lukeminen" + +#~ msgid "Notifications" +#~ msgstr "Ilmoitukset" + +#~ msgid "_Play notification sounds" +#~ msgstr "_Toista ilmoitusäänet" + +#~ msgid "Show _notifications for new mail" +#~ msgstr "_Näytä ilmoitus uuden viestin saapuessa" + +#~ msgid "Preferences" +#~ msgstr "Asetukset" + #~ msgid "mail-send" #~ msgstr "mail-send" @@ -3488,9 +3717,6 @@ msgstr "Gearyn päivitys on meneillään…" #~ msgid "Save drafts on server" #~ msgstr "Tallenna luonnokset palvelimelle" -#~ msgid "Use %s to open a new composer window" -#~ msgstr "Käytä %s uuden lähetysikkunan avaamista varten" - #~ msgid "Please report comments, suggestions and bugs to:" #~ msgstr "Kommentoi, ehdota uusia ideoita ja ilmoita vioista:" @@ -3638,10 +3864,6 @@ msgstr "Gearyn päivitys on meneillään…" #~ msgid "Archive" #~ msgstr "Arkistoi" -#~ msgctxt "shortcut window" -#~ msgid "Toggle spam" -#~ msgstr "Merkitse roskapostiksi/poista roskapostimerkintä" - #~ msgctxt "shortcut window" #~ msgid "Move the conversation" #~ msgstr "Siirrä keskustelu" @@ -3908,9 +4130,6 @@ msgstr "Gearyn päivitys on meneillään…" #~ "palvelimelle. Lisätietoja saat sähköpostipalvelun sinulle tarjoavalta " #~ "taholta." -#~ msgid "_Update" -#~ msgstr "P_äivitä" - #~ msgid "E_mail address" #~ msgstr "_Sähköpostiosoite" @@ -4118,9 +4337,6 @@ msgstr "Gearyn päivitys on meneillään…" #~ msgid "_Justify" #~ msgstr "_Tasaa" -#~ msgid "More options" -#~ msgstr "Lisää valintoja" - #~ msgctxt "Short Label" #~ msgid "Close and Save" #~ msgstr "Sulje ja tallenna" @@ -4146,24 +4362,12 @@ msgstr "Gearyn päivitys on meneillään…" #~ msgid "Small" #~ msgstr "Pieni" -#~ msgid "Sans Serif" -#~ msgstr "Päätteetön" - -#~ msgid "Serif" -#~ msgstr "Päätteellinen" - -#~ msgid "Fixed Width" -#~ msgstr "Tasalevyinen" - #~ msgid "Detach" #~ msgstr "Irrota" #~ msgid "_Attach File" #~ msgstr "Liit_ä tiedosto" -#~ msgid "Attach File" -#~ msgstr "Liitä tiedosto" - #~ msgid "_Include Original Attachments" #~ msgstr "_Sisällytä alkuperäiset liitteet" From db9a62f1fc721d54b6744ee72af4bc665ec039bd Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Mon, 24 Feb 2020 10:02:00 +1100 Subject: [PATCH 028/336] Fix build warning --- src/client/composer/composer-link-popover.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/composer/composer-link-popover.vala b/src/client/composer/composer-link-popover.vala index a4774a40..b88cf976 100644 --- a/src/client/composer/composer-link-popover.vala +++ b/src/client/composer/composer-link-popover.vala @@ -50,7 +50,7 @@ public class Composer.LinkPopover : Gtk.Popover { private Gtk.Button update; [GtkChild] - private Gtk.Button remove; + private new Gtk.Button remove; private Geary.TimeoutManager validation_timeout; From b9517d81e90e9fbe5727f8837250c59f290692e1 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Mon, 24 Feb 2020 10:02:23 +1100 Subject: [PATCH 029/336] Fix composer being dismissed when completion visible on Esc Addresses comment in #577 --- src/client/composer/composer-email-entry.vala | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/client/composer/composer-email-entry.vala b/src/client/composer/composer-email-entry.vala index 977d6222..b5e87314 100644 --- a/src/client/composer/composer-email-entry.vala +++ b/src/client/composer/composer-email-entry.vala @@ -88,26 +88,33 @@ public class Composer.EmailEntry : Gtk.Entry { } private bool on_key_press(Gtk.Widget widget, Gdk.EventKey event) { - bool ret = Gdk.EVENT_PROPAGATE; + bool propagate = Gdk.EVENT_PROPAGATE; if (event.keyval == Gdk.Key.Tab) { + // If there is a completion entry selected, then use that ContactEntryCompletion? completion = ( get_completion() as ContactEntryCompletion ); if (completion != null) { completion.trigger_selection(); composer.child_focus(Gtk.DirectionType.TAB_FORWARD); - ret = Gdk.EVENT_STOP; - } - } else { - // Keyboard shortcuts for undo/redo won't work when the - // completion UI is visible unless we explicitly check for - // them there. This may be related to the - // single-key-shortcut handling hack in the MainWindow. - Gtk.Window? window = get_toplevel() as Gtk.Window; - if (window != null) { - ret = window.activate_key(event); + propagate = Gdk.EVENT_STOP; } } - return ret; + + if (propagate == Gdk.EVENT_PROPAGATE && + event.keyval != Gdk.Key.Escape) { + // Keyboard shortcuts for undo/redo won't work when the + // completion UI is visible unless we explicitly check for + // them there. + // + // However, don't forward it on if the button pressed is + // Escape, so that the completion is hidden if present + // before the composer is closed. + Gtk.Window? window = get_toplevel() as Gtk.Window; + if (window != null) { + propagate = window.activate_key(event); + } + } + return propagate; } } From c73f92157aba3ae101720c570478a43f44aeceb5 Mon Sep 17 00:00:00 2001 From: Kukuh Syafaat Date: Mon, 24 Feb 2020 15:37:07 +0000 Subject: [PATCH 030/336] Update Indonesian translation --- po/id.po | 286 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 148 insertions(+), 138 deletions(-) diff --git a/po/id.po b/po/id.po index 33c1a77e..6bf91775 100644 --- a/po/id.po +++ b/po/id.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: geary mainline\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2020-01-23 16:42+0000\n" -"PO-Revision-Date: 2020-02-04 15:02+0700\n" +"POT-Creation-Date: 2020-02-20 18:01+0000\n" +"PO-Revision-Date: 2020-02-23 20:59+0700\n" "Last-Translator: Kukuh Syafaat \n" "Language-Team: Indonesian\n" "Language: id\n" @@ -35,7 +35,7 @@ msgstr "Kirim berkas memakai Geary" #: desktop/org.gnome.Geary.appdata.xml.in.in:12 #: desktop/org.gnome.Geary.desktop.in.in:3 #: src/client/accounts/accounts-editor-servers-pane.vala:555 -#: src/client/application/application-main-window.vala:547 +#: src/client/application/application-main-window.vala:555 msgid "Geary" msgstr "Geary" @@ -608,56 +608,56 @@ msgid_plural "%d days back" msgstr[0] "%d hari ke belakang" msgstr[1] "%d hari ke belakang" -#: src/client/accounts/accounts-editor-list-pane.vala:252 -#: src/client/application/application-main-window.vala:2043 +#: src/client/accounts/accounts-editor-list-pane.vala:255 +#: src/client/application/application-main-window.vala:2053 msgid "Undo" msgstr "Tak Jadi" -#: src/client/accounts/accounts-editor-list-pane.vala:261 -#: src/client/application/application-main-window.vala:2030 +#: src/client/accounts/accounts-editor-list-pane.vala:264 +#: src/client/application/application-main-window.vala:2036 msgid "Redo" msgstr "Jadi Lagi" -#: src/client/accounts/accounts-editor-list-pane.vala:355 -#: src/client/accounts/accounts-editor-list-pane.vala:443 +#: src/client/accounts/accounts-editor-list-pane.vala:358 +#: src/client/accounts/accounts-editor-list-pane.vala:446 #: src/client/accounts/accounts-editor-row.vala:279 msgid "Gmail" msgstr "Gmail" -#: src/client/accounts/accounts-editor-list-pane.vala:359 -#: src/client/accounts/accounts-editor-list-pane.vala:447 +#: src/client/accounts/accounts-editor-list-pane.vala:362 +#: src/client/accounts/accounts-editor-list-pane.vala:450 #: src/client/accounts/accounts-editor-row.vala:283 msgid "Outlook.com" msgstr "Outlook.com" -#: src/client/accounts/accounts-editor-list-pane.vala:363 -#: src/client/accounts/accounts-editor-list-pane.vala:451 +#: src/client/accounts/accounts-editor-list-pane.vala:366 +#: src/client/accounts/accounts-editor-list-pane.vala:454 #: src/client/accounts/accounts-editor-row.vala:287 msgid "Yahoo" msgstr "Yahoo" #. Translators: Tooltip for accounts that have been #. loaded but disabled by the user. -#: src/client/accounts/accounts-editor-list-pane.vala:381 +#: src/client/accounts/accounts-editor-list-pane.vala:384 msgid "This account has been disabled" msgstr "Akun ini telah dinonaktifkan" #. Translators: Tooltip for accounts that have been #. loaded but because of some error are not able to be #. used. -#: src/client/accounts/accounts-editor-list-pane.vala:390 +#: src/client/accounts/accounts-editor-list-pane.vala:393 msgid "This account has encountered a problem and is unavailable" msgstr "Akun ini mengalami masalah dan tidak tersedia" #. Translators: Label for adding a generic email account -#: src/client/accounts/accounts-editor-list-pane.vala:440 +#: src/client/accounts/accounts-editor-list-pane.vala:443 msgid "Other email providers" msgstr "Penyedia surel lain" #. Translators: Notification shown after removing an #. account. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:557 +#: src/client/accounts/accounts-editor-list-pane.vala:560 #, c-format msgid "Account “%s” removed" msgstr "Akun \"%s\" dihapus" @@ -665,7 +665,7 @@ msgstr "Akun \"%s\" dihapus" #. Translators: Notification shown after removing an account #. is undone. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:564 +#: src/client/accounts/accounts-editor-list-pane.vala:567 #, c-format msgid "Account “%s” restored" msgstr "Akun \"%s\" dipulihkan" @@ -950,7 +950,7 @@ msgstr "Rilis distribusi" msgid "Installation prefix" msgstr "Prefiks instalasi" -#: src/client/application/application-client.vala:566 +#: src/client/application/application-client.vala:587 #, c-format msgid "About %s" msgstr "Tentang %s" @@ -958,7 +958,7 @@ msgstr "Tentang %s" #. Translators: add your name and email address to receive #. credit in the About dialog For example: Yamada Taro #. -#: src/client/application/application-client.vala:570 +#: src/client/application/application-client.vala:591 msgid "translator-credits" msgstr "" "Andika Triwidada , 2012, 2013, 2016, 2017, 2019\n" @@ -967,37 +967,37 @@ msgstr "" #. / Warning printed to the console when a deprecated #. / command line option is used. -#: src/client/application/application-client.vala:938 +#: src/client/application/application-client.vala:937 msgid "The `--hidden` option is deprecated and will be removed in the future." msgstr "Opsi '--hidden' usang dan akan dihapus di masa mendatang." #. / Command line warning, string substitution #. / is the given argument -#: src/client/application/application-client.vala:971 +#: src/client/application/application-client.vala:970 #, c-format msgid "Unrecognised program argument: “%s”" msgstr "Argumen program tidak dikenal: \"%s\"" #. / Notification title. -#: src/client/application/application-controller.vala:457 +#: src/client/application/application-controller.vala:458 #, c-format msgid "A problem occurred sending email for %s" msgstr "Terjadi masalah saat mengirim surel untuk %s" #. / Notification body -#: src/client/application/application-controller.vala:461 +#: src/client/application/application-controller.vala:462 msgid "Email will not be sent until re-connected" msgstr "Surel tidak akan dikirim sampai menyambung ulang" #. / Translators: Label for in-app notification -#: src/client/application/application-controller.vala:567 +#: src/client/application/application-controller.vala:568 msgid "Conversation marked" msgid_plural "Conversations marked" msgstr[0] "Percakapan ditandai" msgstr[1] "Percakapan ditandai" #. / Translators: Label for in-app notification -#: src/client/application/application-controller.vala:573 +#: src/client/application/application-controller.vala:574 msgid "Conversation un-marked" msgid_plural "Conversations un-marked" msgstr[0] "Tanda percakapan dihapus" @@ -1006,8 +1006,8 @@ msgstr[1] "Tanda percakapan dihapus" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:599 -#: src/client/application/application-controller.vala:683 +#: src/client/application/application-controller.vala:600 +#: src/client/application/application-controller.vala:684 #, c-format msgid "Conversation moved to %s" msgid_plural "Conversations moved to %s" @@ -1019,8 +1019,8 @@ msgstr[1] "Percakapan dipindah ke %s" #. / of the source folder. #. / Translators: Label for in-app notification. String #. / substitution is the name of the destination folder. -#: src/client/application/application-controller.vala:607 -#: src/client/application/application-controller.vala:629 +#: src/client/application/application-controller.vala:608 +#: src/client/application/application-controller.vala:630 #, c-format msgid "Conversation restored to %s" msgid_plural "Conversations restored to %s" @@ -1028,7 +1028,7 @@ msgstr[0] "Percakapan dipulihkan ke %s" msgstr[1] "Percakapan dipulihkan ke %s" #. / Translators: Label for in-app notification. -#: src/client/application/application-controller.vala:650 +#: src/client/application/application-controller.vala:651 msgid "Conversation archived" msgid_plural "Conversations archived" msgstr[0] "Percakapan diarsipkan" @@ -1036,7 +1036,7 @@ msgstr[1] "Percakapan diarsipkan" #. / Translators: Label for in-app notification. String #. / substitution is the name of the destination folder. -#: src/client/application/application-controller.vala:706 +#: src/client/application/application-controller.vala:707 #, c-format msgid "Message restored to %s" msgid_plural "Messages restored to %s" @@ -1044,7 +1044,7 @@ msgstr[0] "Pesan dipulihkan ke %s" msgstr[1] "Pesan dipulihkan ke %s" #. / Translators: Label for in-app notification. -#: src/client/application/application-controller.vala:727 +#: src/client/application/application-controller.vala:728 msgid "Message archived" msgid_plural "Messages archived" msgstr[0] "Pesan diarsipkan" @@ -1053,7 +1053,7 @@ msgstr[1] "Pesan diarsipkan" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:762 +#: src/client/application/application-controller.vala:763 #, c-format msgid "Message moved to %s" msgid_plural "Messages moved to %s" @@ -1063,7 +1063,7 @@ msgstr[1] "Pesan dipindah ke %s" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:790 +#: src/client/application/application-controller.vala:791 #, c-format msgid "Conversation labelled as %s" msgid_plural "Conversations labelled as %s" @@ -1073,19 +1073,19 @@ msgstr[1] "Percakapan dilabeli sebagai %s" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:798 +#: src/client/application/application-controller.vala:799 #, c-format msgid "Conversation un-labelled as %s" msgid_plural "Conversations un-labelled as %s" msgstr[0] "Label %s dihapus dari percakapan" msgstr[1] "Label %s dihapus dari percakapan" -#: src/client/application/application-controller.vala:1221 +#: src/client/application/application-controller.vala:1222 #, c-format msgid "Unable to open the database for %s" msgstr "Tak bisa membuka basis data bagi %s" -#: src/client/application/application-controller.vala:1222 +#: src/client/application/application-controller.vala:1223 #, c-format msgid "" "There was an error opening the local mail database for this account. This is " @@ -1109,20 +1109,20 @@ msgstr "" "Membangun ulang basis data akan menghancurkan semua surel lokal dan " "lampirannya. Surat pada server Anda tak akan terpengaruh." -#: src/client/application/application-controller.vala:1224 +#: src/client/application/application-controller.vala:1225 msgid "_Rebuild" msgstr "_Bangun Ulang" -#: src/client/application/application-controller.vala:1224 +#: src/client/application/application-controller.vala:1225 msgid "E_xit" msgstr "_Keluar" -#: src/client/application/application-controller.vala:1234 +#: src/client/application/application-controller.vala:1235 #, c-format msgid "Unable to rebuild database for “%s”" msgstr "Tak bisa membangun ulang basis data bagi \"%s\"" -#: src/client/application/application-controller.vala:1235 +#: src/client/application/application-controller.vala:1236 #, c-format msgid "" "Error during rebuild:\n" @@ -1135,34 +1135,34 @@ msgstr "" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:1558 +#: src/client/application/application-controller.vala:1559 #, c-format msgid "Email sent to %s" msgstr "Surel dikirim ke %s" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2641 +#: src/client/application/application-controller.vala:2642 #, c-format msgid "Email to %s queued for delivery" msgstr "Surel ke %s diantrikan untuk pengiriman" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2705 +#: src/client/application/application-controller.vala:2706 #, c-format msgid "Email to %s saved" msgstr "Surel ke %s disimpan" #. / Translators: A label for an in-app notification. -#: src/client/application/application-controller.vala:2720 -#: src/client/application/application-controller.vala:2778 +#: src/client/application/application-controller.vala:2721 +#: src/client/application/application-controller.vala:2779 msgid "Composer could not be restored" msgstr "Penyusun tidak dapat dipulihkan" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2763 +#: src/client/application/application-controller.vala:2764 #, c-format msgid "Email to %s discarded" msgstr "Surel ke %s dibuang" @@ -1170,53 +1170,53 @@ msgstr "Surel ke %s dibuang" #. / Translators: Main window title, first string #. / substitution being the currently selected folder name, #. / the second being the selected account name. -#: src/client/application/application-main-window.vala:552 +#: src/client/application/application-main-window.vala:560 #, c-format msgid "%s — %s" msgstr "%s — %s" -#: src/client/application/application-main-window.vala:961 +#: src/client/application/application-main-window.vala:967 msgid "Labels" msgstr "Label" #. / Translators: Primary text for a confirmation dialog -#: src/client/application/application-main-window.vala:1300 +#: src/client/application/application-main-window.vala:1306 msgid "Do you want to permanently delete this conversation?" msgid_plural "Do you want to permanently delete these conversations?" msgstr[0] "Anda hendak membuang percakapan ini secara permanen?" msgstr[1] "Anda hendak membuang percakapan-percakapan ini secara permanen?" -#: src/client/application/application-main-window.vala:1305 -#: src/client/application/application-main-window.vala:1320 +#: src/client/application/application-main-window.vala:1311 +#: src/client/application/application-main-window.vala:1326 msgid "Delete" msgstr "Hapus" #. / Translators: Primary text for a confirmation dialog -#: src/client/application/application-main-window.vala:1315 +#: src/client/application/application-main-window.vala:1321 msgid "Do you want to permanently delete this message?" msgid_plural "Do you want to permanently delete these messages?" msgstr[0] "Anda mau membuang pesan ini secara permanen?" msgstr[1] "Anda mau membuang pesan ini secara permanen?" -#: src/client/application/application-main-window.vala:1328 +#: src/client/application/application-main-window.vala:1334 #, c-format msgid "Empty all email from your %s folder?" msgstr "Kosongkan semua surel dari folder %s Anda?" -#: src/client/application/application-main-window.vala:1331 +#: src/client/application/application-main-window.vala:1337 msgid "This removes the email from Geary and your email server." msgstr "Ini menghapus surel dari Geary dan server surel Anda." -#: src/client/application/application-main-window.vala:1332 +#: src/client/application/application-main-window.vala:1338 msgid "This cannot be undone." msgstr "Ini tidak bisa dibatalkan." -#: src/client/application/application-main-window.vala:1333 +#: src/client/application/application-main-window.vala:1339 #, c-format msgid "Empty %s" msgstr "Kosongkan %s" -#: src/client/application/application-main-window.vala:1663 +#: src/client/application/application-main-window.vala:1669 #, c-format msgid "%s (%d)" msgstr "%s (%d)" @@ -1227,7 +1227,7 @@ msgstr "%s (%d)" #. Document (100.9MB) #. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" #: src/client/components/components-attachment-pane.vala:107 -#: src/client/composer/composer-widget.vala:1826 +#: src/client/composer/composer-widget.vala:1834 #, c-format msgid "%s (%s)" msgstr "%s (%s)" @@ -1366,37 +1366,37 @@ msgstr "Suatu nama server diperlukan" msgid "Could not look up server name" msgstr "Tidak bisa mencari nama server" -#: src/client/components/main-toolbar.vala:138 +#: src/client/components/main-toolbar.vala:116 msgid "Mark conversation" msgid_plural "Mark conversations" msgstr[0] "Tandai percakapan" msgstr[1] "Tandai percakapan" -#: src/client/components/main-toolbar.vala:143 +#: src/client/components/main-toolbar.vala:121 msgid "Add label to conversation" msgid_plural "Add label to conversations" msgstr[0] "Tambahkan label ke percakapan" msgstr[1] "Tambahkan label ke percakapan" -#: src/client/components/main-toolbar.vala:148 +#: src/client/components/main-toolbar.vala:126 msgid "Move conversation" msgid_plural "Move conversations" msgstr[0] "Pindahkan percakapan" msgstr[1] "Pindahkan percakapan" -#: src/client/components/main-toolbar.vala:153 +#: src/client/components/main-toolbar.vala:131 msgid "Archive conversation" msgid_plural "Archive conversations" msgstr[0] "Arsipkan percakapan" msgstr[1] "Arsipkan percakapan" -#: src/client/components/main-toolbar.vala:164 +#: src/client/components/main-toolbar.vala:142 msgid "Move conversation to Trash" msgid_plural "Move conversations to Trash" msgstr[0] "Pindahkan percakapan ke Tong Sampah" msgstr[1] "Pindahkan percakapan ke Tong Sampah" -#: src/client/components/main-toolbar.vala:174 +#: src/client/components/main-toolbar.vala:152 msgid "Delete conversation" msgid_plural "Delete conversations" msgstr[0] "Hapus percakapan" @@ -1545,15 +1545,15 @@ msgstr "_Simpan" msgid "_Keep" msgstr "_Pertahankan" -#: src/client/composer/composer-link-popover.vala:149 +#: src/client/composer/composer-link-popover.vala:139 msgid "Link URL is not correctly formatted, e.g. http://example.com" msgstr "URL tautan tidak diformat secara benar, mis. http://contoh.com" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid link URL" msgstr "URL tautan tidak valid" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid email address" msgstr "Alamat surel tidak valid" @@ -1562,19 +1562,19 @@ msgstr "Alamat surel tidak valid" msgid "New Message" msgstr "Pesan Baru" -#: src/client/composer/composer-widget.vala:214 +#: src/client/composer/composer-widget.vala:217 msgid "Saved" msgstr "Disimpan" -#: src/client/composer/composer-widget.vala:215 +#: src/client/composer/composer-widget.vala:218 msgid "Saving" msgstr "Menyimpan" -#: src/client/composer/composer-widget.vala:216 +#: src/client/composer/composer-widget.vala:219 msgid "Error saving" msgstr "Galat saat menyimpan" -#: src/client/composer/composer-widget.vala:217 +#: src/client/composer/composer-widget.vala:220 msgid "Press Backspace to delete quote" msgstr "Tekan Backspace untuk menghapus kutip" @@ -1583,7 +1583,7 @@ msgstr "Tekan Backspace untuk menghapus kutip" #. checking, include all variants of each word. No spaces are #. allowed. The words will be converted to lower case based on #. locale and English versions included automatically. -#: src/client/composer/composer-widget.vala:233 +#: src/client/composer/composer-widget.vala:236 msgid "" "attach|attaching|attaches|attachment|attachments|attached|enclose|enclosed|" "enclosing|encloses|enclosure|enclosures" @@ -1595,90 +1595,90 @@ msgstr "" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. Keep, Discard or Cancel. -#: src/client/composer/composer-widget.vala:832 +#: src/client/composer/composer-widget.vala:843 msgid "Do you want to keep or discard this draft message?" msgstr "Anda mau menyimpan atau membuang draf pesan ini?" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. only Discard or Cancel. -#: src/client/composer/composer-widget.vala:858 +#: src/client/composer/composer-widget.vala:869 msgid "Do you want to discard this draft message?" msgstr "Anda mau membuang draf pesan ini?" -#: src/client/composer/composer-widget.vala:1492 +#: src/client/composer/composer-widget.vala:1503 msgid "Send message with an empty subject and body?" msgstr "Kirim pesan dengan subjek dan isi kosong?" -#: src/client/composer/composer-widget.vala:1494 +#: src/client/composer/composer-widget.vala:1505 msgid "Send message with an empty subject?" msgstr "Kirim pesan dengan subjek kosong?" -#: src/client/composer/composer-widget.vala:1496 +#: src/client/composer/composer-widget.vala:1507 msgid "Send message with an empty body?" msgstr "Kirim pesan tanpa isi?" -#: src/client/composer/composer-widget.vala:1505 +#: src/client/composer/composer-widget.vala:1516 msgid "Send message without an attachment?" msgstr "Kirim pesan tanpa lampiran?" -#: src/client/composer/composer-widget.vala:1818 +#: src/client/composer/composer-widget.vala:1820 #, c-format msgid "“%s” already attached for delivery." msgstr "\"%s\" sudah dilampirkan untuk pengiriman." -#: src/client/composer/composer-widget.vala:1848 -#: src/client/composer/composer-widget.vala:1898 +#: src/client/composer/composer-widget.vala:1856 +#: src/client/composer/composer-widget.vala:1906 #, c-format msgid "“%s” is an empty file." msgstr "\"%s\" adalah berkas kosong." -#: src/client/composer/composer-widget.vala:1886 +#: src/client/composer/composer-widget.vala:1894 #, c-format msgid "“%s” could not be found." msgstr "\"%s\" tidak ditemukan." -#: src/client/composer/composer-widget.vala:1892 +#: src/client/composer/composer-widget.vala:1900 #, c-format msgid "“%s” is a folder." msgstr "\"%s\" adalah sebuah folder." -#: src/client/composer/composer-widget.vala:1911 +#: src/client/composer/composer-widget.vala:1919 #, c-format msgid "“%s” could not be opened for reading." msgstr "\"%s\" tak bisa dibuka untuk dibaca." -#: src/client/composer/composer-widget.vala:1919 +#: src/client/composer/composer-widget.vala:1927 msgid "Cannot add attachment" msgstr "Tak bisa menambah lampiran" #. Translators: Human-readable version of the RFC 822 To header -#: src/client/composer/composer-widget.vala:1976 +#: src/client/composer/composer-widget.vala:1984 #: src/client/conversation-viewer/conversation-email.vala:559 #: src/client/util/util-email.vala:235 ui/conversation-message.ui:312 msgid "To:" msgstr "Ke:" #. Translators: Human-readable version of the RFC 822 CC header -#: src/client/composer/composer-widget.vala:1982 +#: src/client/composer/composer-widget.vala:1990 #: src/client/conversation-viewer/conversation-email.vala:564 #: src/client/util/util-email.vala:240 ui/conversation-message.ui:357 msgid "Cc:" msgstr "Cc:" #. Translators: Human-readable version of the RFC 822 BCC header -#: src/client/composer/composer-widget.vala:1988 +#: src/client/composer/composer-widget.vala:1996 #: src/client/conversation-viewer/conversation-email.vala:569 #: ui/conversation-message.ui:402 msgid "Bcc:" msgstr "Bcc:" #. Translators: Human-readable version of the RFC 822 Reply-To header -#: src/client/composer/composer-widget.vala:1994 +#: src/client/composer/composer-widget.vala:2002 msgid "Reply-To: " msgstr "Balas-Ke: " -#: src/client/composer/composer-widget.vala:2247 +#: src/client/composer/composer-widget.vala:2254 msgid "Select Color" msgstr "Pilih Warna" @@ -1687,32 +1687,32 @@ msgstr "Pilih Warna" #. printf argument will be the alternate email address, #. and the second will be the account's primary email #. address. -#: src/client/composer/composer-widget.vala:2442 +#: src/client/composer/composer-widget.vala:2440 #, c-format msgid "%1$s via %2$s" msgstr "%1$s via %2$s" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: src/client/composer/composer-widget.vala:2498 +#: src/client/composer/composer-widget.vala:2496 msgid "_From:" msgstr "_Dari:" #. Translators: This is the name of the file chooser filter #. when inserting an image in the composer. -#: src/client/composer/composer-widget.vala:2804 +#: src/client/composer/composer-widget.vala:2801 msgid "Images" msgstr "Citra" -#: src/client/composer/spell-check-popover.vala:109 +#: src/client/composer/spell-check-popover.vala:125 msgid "Remove this language from the preferred list" msgstr "Hapus bahasa ini dari daftar yang disukai" -#: src/client/composer/spell-check-popover.vala:113 +#: src/client/composer/spell-check-popover.vala:129 msgid "Add this language to the preferred list" msgstr "Tambahkan bahasa ini ke daftar yang disukai" -#: src/client/composer/spell-check-popover.vala:200 +#: src/client/composer/spell-check-popover.vala:225 msgid "Search for more languages" msgstr "Cari lebih banyak bahasa lagi" @@ -1796,44 +1796,44 @@ msgstr "Alamat surel ini mungkin telah dipalsukan" #. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:465 +#: src/client/conversation-viewer/conversation-message.vala:439 msgid "No sender" msgstr "Tidak ada pengirim" #. Translators: This separates multiple 'from' #. addresses in the compact header for a message. -#: src/client/conversation-viewer/conversation-message.vala:959 +#: src/client/conversation-viewer/conversation-message.vala:831 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Image Date: Tue, 25 Feb 2020 11:07:59 +0000 Subject: [PATCH 031/336] Update Dutch translation (cherry picked from commit e05021bcaf21480ecb922851db3dace89cda2ced) --- po/nl.po | 2026 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 1152 insertions(+), 874 deletions(-) diff --git a/po/nl.po b/po/nl.po index e37a6aa0..e8714a8a 100644 --- a/po/nl.po +++ b/po/nl.po @@ -12,14 +12,14 @@ # Martijn Braam , 2013. # renearts , 2013. # Hannie Dumoleyn , 2014, 2017. -# Nathan Follens , 2015-2019. +# Nathan Follens , 2015-2020. # Justin van Steijn , 2016, 2018. msgid "" msgstr "" "Project-Id-Version: geary-0.4.1\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2019-02-25 22:32+0000\n" -"PO-Revision-Date: 2019-02-26 00:19+0100\n" +"POT-Creation-Date: 2019-10-07 00:01+0000\n" +"PO-Revision-Date: 2020-02-25 12:06+0100\n" "Last-Translator: Nathan Follens \n" "Language-Team: Dutch \n" "Language: nl_NL\n" @@ -27,57 +27,48 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.3\n" #: desktop/geary-attach.contract.desktop.in:3 msgid "Send by email" msgstr "Verzenden via e-mail" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: desktop/geary-attach.contract.desktop.in:5 -msgid "mail-send" -msgstr "mail-send" - #: desktop/geary-attach.contract.desktop.in:6 msgid "Send files using Geary" msgstr "Bestanden verzenden met Geary" #. Translators: The application name -#: desktop/geary-autostart.desktop.in:3 -#: desktop/org.gnome.Geary.appdata.xml.in:11 -#: desktop/org.gnome.Geary.desktop.in:3 +#: desktop/geary-autostart.desktop.in.in:3 +#: desktop/org.gnome.Geary.appdata.xml.in.in:12 +#: desktop/org.gnome.Geary.desktop.in.in:3 #: src/client/accounts/accounts-editor-servers-pane.vala:555 msgid "Geary" msgstr "Geary" -#: desktop/geary-autostart.desktop.in:4 desktop/org.gnome.Geary.desktop.in:4 +#: desktop/geary-autostart.desktop.in.in:4 +#: desktop/org.gnome.Geary.desktop.in.in:4 msgid "Email" msgstr "E-mail" #. Translators: The application's summary / tagline -#: desktop/geary-autostart.desktop.in:5 -#: desktop/org.gnome.Geary.appdata.xml.in:15 -#: desktop/org.gnome.Geary.desktop.in:5 -#: src/client/application/geary-application.vala:23 +#: desktop/geary-autostart.desktop.in.in:5 +#: desktop/org.gnome.Geary.appdata.xml.in.in:16 +#: desktop/org.gnome.Geary.desktop.in.in:5 +#: src/client/application/geary-application.vala:30 msgid "Send and receive email" msgstr "E-mail verzenden en ontvangen" #. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon. -#: desktop/geary-autostart.desktop.in:7 +#: desktop/geary-autostart.desktop.in.in:7 msgid "Email;E-mail;Mail;" msgstr "Email;E-mail;Mail;" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: desktop/geary-autostart.desktop.in:9 desktop/org.gnome.Geary.desktop.in:9 -msgid "org.gnome.Geary" -msgstr "org.gnome.Geary" - #. Translators: The development team's name -#: desktop/org.gnome.Geary.appdata.xml.in:13 +#: desktop/org.gnome.Geary.appdata.xml.in.in:14 msgid "Geary Development Team" msgstr "Geary-ontwikkelingsteam" -#: desktop/org.gnome.Geary.appdata.xml.in:17 +#: desktop/org.gnome.Geary.appdata.xml.in.in:18 msgid "" "Geary is an email application built around conversations, for the GNOME 3 " "desktop. It allows you to read, find and send email with a straightforward, " @@ -87,7 +78,7 @@ msgstr "" "desktop. Via de duidelijke, moderne interface kunt u e-mails lezen, zoeken " "en verzenden." -#: desktop/org.gnome.Geary.appdata.xml.in:22 +#: desktop/org.gnome.Geary.appdata.xml.in.in:23 msgid "" "Conversations allow you to read a complete discussion without having to find " "and click from message to message." @@ -95,50 +86,50 @@ msgstr "" "Met gesprekken kunt u een volledige discussie lezen zonder te hoeven zoeken " "of van bericht naar bericht te hoeven klikken." -#: desktop/org.gnome.Geary.appdata.xml.in:26 +#: desktop/org.gnome.Geary.appdata.xml.in.in:27 msgid "Geary’s features include:" msgstr "Functies van Geary zijn:" -#: desktop/org.gnome.Geary.appdata.xml.in:28 +#: desktop/org.gnome.Geary.appdata.xml.in.in:29 msgid "Quick email account setup" msgstr "Snel instellen van e-mailaccount" -#: desktop/org.gnome.Geary.appdata.xml.in:29 +#: desktop/org.gnome.Geary.appdata.xml.in.in:30 msgid "Shows related messages together in conversations" msgstr "Groepeert gerelateerde berichten in gesprekken" -#: desktop/org.gnome.Geary.appdata.xml.in:30 +#: desktop/org.gnome.Geary.appdata.xml.in.in:31 msgid "Fast, full text and keyword search" msgstr "Snel zoeken in volledige tekst met zoekwoorden" -#: desktop/org.gnome.Geary.appdata.xml.in:31 +#: desktop/org.gnome.Geary.appdata.xml.in.in:32 msgid "Full-featured HTML and plain text message composer" msgstr "Berichten opstellen in HTML en platte tekst met veel functies" -#: desktop/org.gnome.Geary.appdata.xml.in:32 +#: desktop/org.gnome.Geary.appdata.xml.in.in:33 msgid "Desktop notification of new mail" msgstr "Bureaubladmelding voor nieuwe e-mail" -#: desktop/org.gnome.Geary.appdata.xml.in:33 +#: desktop/org.gnome.Geary.appdata.xml.in.in:34 msgid "Compatible with GMail, Yahoo! Mail, Outlook.com and other IMAP servers" msgstr "Werkt met Gmail, Yahoo! Mail, Outlook.com en andere IMAP-servers" #. Translators: A screenshot description. -#: desktop/org.gnome.Geary.appdata.xml.in:47 +#: desktop/org.gnome.Geary.appdata.xml.in.in:48 msgid "Geary displaying a conversation" msgstr "Weergave van een gesprek in Geary" #. Translators: A screenshot description. -#: desktop/org.gnome.Geary.appdata.xml.in:52 +#: desktop/org.gnome.Geary.appdata.xml.in.in:59 msgid "Geary showing the rich text composer" msgstr "Tekstverwerker met opmaakmogelijkheden in Geary" #. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon. -#: desktop/org.gnome.Geary.desktop.in:7 +#: desktop/org.gnome.Geary.desktop.in.in:7 msgid "Mail;E-mail;IMAP;GMail;Yahoo;Hotmail;Outlook;" msgstr "Mail;E-mail;IMAP;GMail;Yahoo;Hotmail;Outlook;" -#: desktop/org.gnome.Geary.desktop.in:21 +#: desktop/org.gnome.Geary.desktop.in.in:22 msgid "Compose Message" msgstr "Bericht opstellen" @@ -236,14 +227,18 @@ msgid "Languages that shall be used in the spell checker" msgstr "Talen die gebruikt worden in de spellingscontrole" #: desktop/org.gnome.Geary.gschema.xml:69 -msgid "List of the languages to use in the spell checker." -msgstr "Lijst van de te gebruiken talen in de spellingscontrole." +msgid "" +"A list of POSIX locales, with the empty list disabling spell checking and " +"the null list using desktop languages by default." +msgstr "" +"Een lijst met POSIX-locales, waarbij de lege lijst de spellingscontrole " +"uitschakelt en de null-lijst de bureaubladtalen gebruikt." -#: desktop/org.gnome.Geary.gschema.xml:74 +#: desktop/org.gnome.Geary.gschema.xml:76 msgid "Languages that are displayed in the spell checker popover" msgstr "Talen getoond in de spellingscontrole-pop-over" -#: desktop/org.gnome.Geary.gschema.xml:75 +#: desktop/org.gnome.Geary.gschema.xml:77 msgid "" "List of languages that are always displayed in the popover of the spell " "checker." @@ -251,91 +246,80 @@ msgstr "" "Lijst van talen die altijd worden getoond in de pop-over van de " "spellingscontrole." -#: desktop/org.gnome.Geary.gschema.xml:80 +#: desktop/org.gnome.Geary.gschema.xml:82 msgid "Enable notification sounds" msgstr "Geluid afspelen bij melding" -#: desktop/org.gnome.Geary.gschema.xml:81 +#: desktop/org.gnome.Geary.gschema.xml:83 msgid "True to play sounds for notifications and sending." msgstr "Schakel dit in om geluiden af te spelen voor meldingen en verzenden." -#: desktop/org.gnome.Geary.gschema.xml:86 +#: desktop/org.gnome.Geary.gschema.xml:88 msgid "Show notifications for new mail" msgstr "Melding weergeven voor nieuwe e-mail" -#: desktop/org.gnome.Geary.gschema.xml:87 +#: desktop/org.gnome.Geary.gschema.xml:89 msgid "True to show notification bubbles." msgstr "Schakel dit in om meldingsbubbels te tonen." -#: desktop/org.gnome.Geary.gschema.xml:92 +#: desktop/org.gnome.Geary.gschema.xml:94 msgid "Notify of new mail at startup" msgstr "Melding van nieuwe e-mails bij opstarten" -#: desktop/org.gnome.Geary.gschema.xml:93 +#: desktop/org.gnome.Geary.gschema.xml:95 msgid "True to notify of new mail at startup." msgstr "" "Schakel dit in om een melding te krijgen van nieuwe e-mails bij opstarten." -#: desktop/org.gnome.Geary.gschema.xml:98 +#: desktop/org.gnome.Geary.gschema.xml:100 msgid "Ask when opening an attachment" msgstr "Vragen bij openen van bijlage" -#: desktop/org.gnome.Geary.gschema.xml:99 +#: desktop/org.gnome.Geary.gschema.xml:101 msgid "True to ask when opening an attachment." msgstr "Schakel dit in om bevestiging te vragen bij openen van een bijlage." -#: desktop/org.gnome.Geary.gschema.xml:104 +#: desktop/org.gnome.Geary.gschema.xml:106 msgid "Whether to compose emails in HTML" msgstr "Of e-mails in HTML opgesteld moeten worden" -#: desktop/org.gnome.Geary.gschema.xml:105 +#: desktop/org.gnome.Geary.gschema.xml:107 msgid "True to compose emails in HTML; false for plain text." msgstr "" "Schakel dit in om e-mails op te stellen in HTML; schakel uit voor platte " "tekst." -#: desktop/org.gnome.Geary.gschema.xml:110 +#: desktop/org.gnome.Geary.gschema.xml:112 msgid "Advisory strategy for full-text searching" msgstr "Adviesstrategie voor doorzoeken van volledige tekst" -#: desktop/org.gnome.Geary.gschema.xml:111 +#: desktop/org.gnome.Geary.gschema.xml:113 msgid "" "Acceptable values are “exact”, “conservative”, “aggressive”, and “horizon”." msgstr "" "Aanvaardbare waarden zijn ‘exact’, ‘conservative’, ‘agressive’ en ‘horizon’." -#: desktop/org.gnome.Geary.gschema.xml:116 +#: desktop/org.gnome.Geary.gschema.xml:118 msgid "Zoom of conversation viewer" msgstr "Zoomniveau van gespreksweergave" -#: desktop/org.gnome.Geary.gschema.xml:117 +#: desktop/org.gnome.Geary.gschema.xml:119 msgid "The zoom to apply on the conservation view." msgstr "Het toe te passen zoomniveau op de gespreksweergave." -#: desktop/org.gnome.Geary.gschema.xml:122 +#: desktop/org.gnome.Geary.gschema.xml:124 msgid "Size of detached composer window" msgstr "Grootte van losgemaakt opstelvenster" -#: desktop/org.gnome.Geary.gschema.xml:123 +#: desktop/org.gnome.Geary.gschema.xml:125 msgid "The last recorded size of the detached composer window." msgstr "De laatst geregistreerde grootte van het losgemaakte opstelvenster." -#: desktop/org.gnome.Geary.gschema.xml:128 -msgid "Base URL to look up contact avatars" -msgstr "Basis-URL voor opzoeken van contactavatars" - -#: desktop/org.gnome.Geary.gschema.xml:129 -msgid "" -"A Gravatar or Libravatar compatible URL, set to the empty string to disable." -msgstr "" -"Een URL compatibel met Gravatar of Libravatar, stel in als leeg om uit te " -"schakelen." - -#: desktop/org.gnome.Geary.gschema.xml:134 +#: desktop/org.gnome.Geary.gschema.xml:130 msgid "Whether we migrated the old settings" msgstr "Of we de oude instellingen overgezet hebben" -#: desktop/org.gnome.Geary.gschema.xml:135 +#: desktop/org.gnome.Geary.gschema.xml:131 msgid "" "False to check for the old “org.yorba.geary”-schema and copy its values." msgstr "" @@ -345,7 +329,7 @@ msgstr "" #. Translators: In-app notification label, when #. the app had a problem pinning an otherwise #. untrusted TLS certificate -#: src/client/accounts/accounts-editor.vala:203 +#: src/client/accounts/accounts-editor.vala:204 msgid "Failed to store certificate" msgstr "Opslaan van certificaat mislukt" @@ -611,54 +595,55 @@ msgid_plural "%d days back" msgstr[0] "Tot %d dag geleden" msgstr[1] "Tot %d dagen geleden" -#: src/client/accounts/accounts-editor-list-pane.vala:243 +#: src/client/accounts/accounts-editor-list-pane.vala:247 +#: src/client/application/application-controller.vala:2392 msgid "Undo" msgstr "Ongedaan maken" -#: src/client/accounts/accounts-editor-list-pane.vala:251 +#: src/client/accounts/accounts-editor-list-pane.vala:255 msgid "Redo" msgstr "Opnieuw" -#: src/client/accounts/accounts-editor-list-pane.vala:345 -#: src/client/accounts/accounts-editor-list-pane.vala:433 -#: src/client/accounts/accounts-editor-row.vala:278 +#: src/client/accounts/accounts-editor-list-pane.vala:349 +#: src/client/accounts/accounts-editor-list-pane.vala:437 +#: src/client/accounts/accounts-editor-row.vala:279 msgid "Gmail" msgstr "Gmail" -#: src/client/accounts/accounts-editor-list-pane.vala:349 -#: src/client/accounts/accounts-editor-list-pane.vala:437 -#: src/client/accounts/accounts-editor-row.vala:282 +#: src/client/accounts/accounts-editor-list-pane.vala:353 +#: src/client/accounts/accounts-editor-list-pane.vala:441 +#: src/client/accounts/accounts-editor-row.vala:283 msgid "Outlook.com" msgstr "Outlook.com" -#: src/client/accounts/accounts-editor-list-pane.vala:353 -#: src/client/accounts/accounts-editor-list-pane.vala:441 -#: src/client/accounts/accounts-editor-row.vala:286 +#: src/client/accounts/accounts-editor-list-pane.vala:357 +#: src/client/accounts/accounts-editor-list-pane.vala:445 +#: src/client/accounts/accounts-editor-row.vala:287 msgid "Yahoo" msgstr "Yahoo" #. Translators: Tooltip for accounts that have been #. loaded but disabled by the user. -#: src/client/accounts/accounts-editor-list-pane.vala:371 +#: src/client/accounts/accounts-editor-list-pane.vala:375 msgid "This account has been disabled" msgstr "Deze account is uitgeschakeld" #. Translators: Tooltip for accounts that have been #. loaded but because of some error are not able to be #. used. -#: src/client/accounts/accounts-editor-list-pane.vala:380 +#: src/client/accounts/accounts-editor-list-pane.vala:384 msgid "This account has encountered a problem and is unavailable" msgstr "Deze account heeft een probleem ondervonden en is niet beschikbaar" #. Translators: Label for adding a generic email account -#: src/client/accounts/accounts-editor-list-pane.vala:430 +#: src/client/accounts/accounts-editor-list-pane.vala:434 msgid "Other email providers" msgstr "Andere e-mailproviders" #. Translators: Notification shown after removing an #. account. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:547 +#: src/client/accounts/accounts-editor-list-pane.vala:551 #, c-format msgid "Account “%s” removed" msgstr "Account ‘%s’ verwijderd" @@ -666,44 +651,44 @@ msgstr "Account ‘%s’ verwijderd" #. Translators: Notification shown after removing an account #. is undone. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:554 +#: src/client/accounts/accounts-editor-list-pane.vala:558 #, c-format msgid "Account “%s” restored" msgstr "Account ‘%s’ hersteld" #. Translators: Tooltip for dragging list items -#: src/client/accounts/accounts-editor-row.vala:49 +#: src/client/accounts/accounts-editor-row.vala:50 msgid "Drag to move this item" msgstr "Sleep om dit item te verplaatsen" #. Translators: Label describes the service provider #. hosting the email account, e.g. Gmail, Yahoo, or some #. other generic IMAP service. -#: src/client/accounts/accounts-editor-row.vala:294 +#: src/client/accounts/accounts-editor-row.vala:295 msgid "Service provider" msgstr "Dienstprovider" #. Translators: This label describes what form of transport #. security (TLS, StartTLS, etc) used by an account's IMAP or SMTP #. service. -#: src/client/accounts/accounts-editor-row.vala:467 +#: src/client/accounts/accounts-editor-row.vala:468 msgid "Connection security" msgstr "Verbindingsbeveiliging" #. Translators: Label used when no auth scheme is used #. by an account's IMAP or SMTP service. -#: src/client/accounts/accounts-editor-row.vala:478 +#: src/client/accounts/accounts-editor-row.vala:479 #: src/client/accounts/accounts-editor-servers-pane.vala:752 #: src/client/accounts/accounts-editor-servers-pane.vala:964 #: src/engine/api/geary-special-folder-type.vala:58 msgid "None" msgstr "Geen" -#: src/client/accounts/accounts-editor-row.vala:485 +#: src/client/accounts/accounts-editor-row.vala:486 msgid "StartTLS" msgstr "StartTLS" -#: src/client/accounts/accounts-editor-row.vala:492 +#: src/client/accounts/accounts-editor-row.vala:493 msgid "TLS" msgstr "TLS" @@ -711,28 +696,28 @@ msgstr "TLS" #. credentials (none, use IMAP, custom) when adding a new #. account #. Button label for retrying when a login error has occurred -#: src/client/accounts/accounts-editor-row.vala:533 ui/main-window.ui:455 +#: src/client/accounts/accounts-editor-row.vala:534 ui/main-window.ui:346 msgid "Login" msgstr "Aanmelden" #. Translators: ComboBox value for source of SMTP #. authentication credentials (none) when adding a new #. account -#: src/client/accounts/accounts-editor-row.vala:540 +#: src/client/accounts/accounts-editor-row.vala:541 msgid "No login needed" msgstr "Geen aanmelding vereist" #. Translators: ComboBox value for source of SMTP #. authentication credentials (use IMAP) when adding a new #. account -#: src/client/accounts/accounts-editor-row.vala:548 +#: src/client/accounts/accounts-editor-row.vala:549 msgid "Use same login as receiving" msgstr "Zelfde login gebruiken als voor ontvangen" #. Translators: ComboBox value for source of SMTP #. authentication credentials (custom) when adding a new #. account -#: src/client/accounts/accounts-editor-row.vala:556 +#: src/client/accounts/accounts-editor-row.vala:557 msgid "Use a different login" msgstr "Verschillende login gebruiken" @@ -757,8 +742,8 @@ msgstr "Gnome Online-accounts" #. Translators: This label describes an account #. preference. #: src/client/accounts/accounts-editor-servers-pane.vala:611 -msgid "Save drafts on server" -msgstr "Concepten opslaan op server" +msgid "Save draft email on server" +msgstr "Concepten op server opslaan" #. Translators: This label describes an account #. preference. @@ -780,136 +765,36 @@ msgstr "%s via OAuth2" msgid "Use receiving server login" msgstr "Serverlogin voor ontvangen gebruiken" -#: src/client/application/geary-application.vala:24 -msgid "Copyright 2016 Software Freedom Conservancy Inc." -msgstr "Copyright 2016 Software Freedom Conservancy Inc." - -#: src/client/application/geary-application.vala:25 -msgid "Copyright 2016-2019 Geary Development Team." -msgstr "Copyright 2016-2019 Geary-ontwikkelingsteam." - -#: src/client/application/geary-application.vala:27 -msgid "Visit the Geary web site" -msgstr "Bezoek de Geary-website" - -#: src/client/application/geary-application.vala:454 -#, c-format -msgid "About %s" -msgstr "Over %s" - -#. Translators: add your name and email address to receive -#. credit in the About dialog For example: Yamada Taro -#. -#: src/client/application/geary-application.vala:458 -msgid "translator-credits" -msgstr "" -"Bas Duineveld \n" -"Nathan Follens \n" -"Justin van Steijn \n" -"\n" -"Meer info over Gnome-NL http://nl.gnome.org" - -#: src/client/application/geary-args.vala:10 -msgid "Start Geary with hidden main window" -msgstr "Geary starten met verborgen hoofdvenster" - -#: src/client/application/geary-args.vala:11 -msgid "Output debugging information" -msgstr "Debuginformatie weergeven" - -#: src/client/application/geary-args.vala:12 -msgid "Log conversation monitoring" -msgstr "Gesprekscontrole loggen" - -#: src/client/application/geary-args.vala:13 -msgid "Log network deserialization" -msgstr "Netwerkdeserialisatie loggen" - -#: src/client/application/geary-args.vala:14 -msgid "Log network activity" -msgstr "Netwerkactiviteit loggen" - -#. / The IMAP replay queue is how changes on the server are replicated on the client. -#. / It could also be called the IMAP events queue. -#: src/client/application/geary-args.vala:17 -msgid "Log IMAP replay queue" -msgstr "IMAP-replaywachtrij loggen" - -#. / Serialization is how commands and responses are converted into a stream of bytes for -#. / network transmission -#: src/client/application/geary-args.vala:20 -msgid "Log network serialization" -msgstr "Netwerkserialisatie loggen" - -#: src/client/application/geary-args.vala:21 -msgid "Log periodic activity" -msgstr "Periodieke activiteit loggen" - -#: src/client/application/geary-args.vala:22 -msgid "Log database queries (generates lots of messages)" -msgstr "Databasequery’s loggen (genereert veel berichten)" - -#. / "Normalization" can also be called "synchronization" -#: src/client/application/geary-args.vala:24 -msgid "Log folder normalization" -msgstr "Mapnormalisatie loggen" - -#: src/client/application/geary-args.vala:25 -msgid "Allow inspection of WebView" -msgstr "Inspectie van WebView toestaan" - -#: src/client/application/geary-args.vala:26 -msgid "Revoke all server certificates with TLS warnings" -msgstr "Alle servercertificaten met TLS-waarschuwingen intrekken" - -#: src/client/application/geary-args.vala:27 -msgid "Perform a graceful quit" -msgstr "Sierlijk afsluiten" - -#: src/client/application/geary-args.vala:28 -msgid "Display program version" -msgstr "Programmaversie weergeven" - -#. This gives a command-line hint on how to open new composer windows with mailto: -#: src/client/application/geary-args.vala:53 -#, c-format -msgid "Use %s to open a new composer window" -msgstr "Gebruik %s om een nieuw opstelvenster te openen" - -#: src/client/application/geary-args.vala:56 -msgid "Please report comments, suggestions and bugs to:" -msgstr "Stuur opmerkingen, suggesties en bugs naar:" - -#. i18n: Command line arguments are invalid -#: src/client/application/geary-args.vala:63 -#, c-format -msgid "Failed to parse command line options: %s\n" -msgstr "Interpreteren van opdrachtregelopties mislukt: %s\n" - -#: src/client/application/geary-args.vala:74 -#, c-format -msgid "Unrecognized command line option “%s”\n" -msgstr "Onbekende opdrachtregeloptie ‘%s’\n" - #. Translators: File name used in save chooser when saving #. attachments that do not otherwise have a name. -#: src/client/application/geary-controller.vala:58 +#: src/client/application/application-controller.vala:59 msgid "Untitled" msgstr "Naamloos" -#: src/client/application/geary-controller.vala:919 +#. / Notification title. +#: src/client/application/application-controller.vala:551 +#, c-format +msgid "A problem occurred sending email for %s" +msgstr "Er trad een fout op bij het verzenden van e-mail voor %s" + +#. / Notification body +#: src/client/application/application-controller.vala:555 +msgid "Email will not be sent until re-connected" +msgstr "E-mails zullen niet verzonden worden totdat de verbinding hersteld is" + +#: src/client/application/application-controller.vala:906 msgid "Labels" msgstr "Labels" #. give the user two options: reset the Account local store, or exit Geary. A third #. could be done to leave the Account in an unopened state, but we don't currently #. have provisions for that. -#: src/client/application/geary-controller.vala:932 +#: src/client/application/application-controller.vala:919 #, c-format msgid "Unable to open the database for %s" msgstr "De lokale database van %s kan niet geopend worden" -#: src/client/application/geary-controller.vala:933 +#: src/client/application/application-controller.vala:920 #, c-format msgid "" "There was an error opening the local mail database for this account. This is " @@ -934,20 +819,20 @@ msgstr "" "Het opnieuw bouwen van de database verwijdert alle lokale e-mailberichten en " "bijlagen. Mail op de server zal niet worden aangetast." -#: src/client/application/geary-controller.vala:935 +#: src/client/application/application-controller.vala:922 msgid "_Rebuild" msgstr "_Opnieuw bouwen" -#: src/client/application/geary-controller.vala:935 +#: src/client/application/application-controller.vala:922 msgid "E_xit" msgstr "_Afsluiten" -#: src/client/application/geary-controller.vala:944 +#: src/client/application/application-controller.vala:931 #, c-format msgid "Unable to rebuild database for “%s”" msgstr "De lokale database van ‘%s’ kan niet opnieuw gebouwd worden" -#: src/client/application/geary-controller.vala:945 +#: src/client/application/application-controller.vala:932 #, c-format msgid "" "Error during rebuild:\n" @@ -958,15 +843,18 @@ msgstr "" "\n" "%s" -#: src/client/application/geary-controller.vala:1800 -msgid "Undo move (Ctrl+Z)" -msgstr "Verplaatsen ongedaan maken (Ctrl+Z)" +#: src/client/application/application-controller.vala:1726 +#, c-format +msgid "Moved %d message to %s" +msgid_plural "Moved %d messages to %s" +msgstr[0] "%d bericht verplaatst naar %s" +msgstr[1] "%d berichten verplaatst naar %s" -#: src/client/application/geary-controller.vala:1810 +#: src/client/application/application-controller.vala:1736 msgid "Are you sure you want to open these attachments?" msgstr "Weet u zeker dat u deze bijlagen wilt openen?" -#: src/client/application/geary-controller.vala:1811 +#: src/client/application/application-controller.vala:1737 msgid "" "Attachments may cause damage to your system if opened. Only open files from " "trusted sources." @@ -974,14 +862,14 @@ msgstr "" "Bijlagen kunnen uw systeem schade toebrengen wanneer deze worden geopend. " "Open alleen bestanden van vertrouwde bronnen." -#: src/client/application/geary-controller.vala:1812 +#: src/client/application/application-controller.vala:1738 msgid "Don’t _ask me again" msgstr "_Niet opnieuw vragen" #. Translators: Dialog primary label when prompting to #. overwrite a file. The string substitution is the file'sx #. name. -#: src/client/application/geary-controller.vala:1941 +#: src/client/application/application-controller.vala:1861 #, c-format msgid "A file named “%s” already exists. Do you want to replace it?" msgstr "Het bestand ‘%s’ bestaat al. Wilt u het vervangen?" @@ -989,340 +877,414 @@ msgstr "Het bestand ‘%s’ bestaat al. Wilt u het vervangen?" #. Translators: Dialog secondary label when prompting to #. overwrite a file. The string substitution is the parent #. folder's name. -#: src/client/application/geary-controller.vala:1948 +#: src/client/application/application-controller.vala:1868 #, c-format msgid "" "The file already exists in “%s”. Replacing it will overwrite its contents." msgstr "Het bestand bestaat al in ‘%s’. Vervangen overschrijft de inhoud." -#: src/client/application/geary-controller.vala:1952 +#: src/client/application/application-controller.vala:1872 msgid "_Replace" msgstr "_Vervangen" -#: src/client/application/geary-controller.vala:2228 -msgid "Close the draft message?" -msgid_plural "Close all draft messages?" -msgstr[0] "Conceptbericht sluiten?" -msgstr[1] "Alle conceptberichten sluiten?" - # ‘van uw ...-map legen’ is niet duidelijk, voor verwijderen gekozen omdat het hierom gaat. -Justin -#: src/client/application/geary-controller.vala:2354 +#: src/client/application/application-controller.vala:2232 #, c-format msgid "Empty all email from your %s folder?" msgstr "Alle e-mails uit uw %s-map verwijderen?" -#: src/client/application/geary-controller.vala:2355 +#: src/client/application/application-controller.vala:2233 msgid "This removes the email from Geary and your email server." msgstr "Dit verwijdert de e-mail van Geary en uw e-mailserver." -#: src/client/application/geary-controller.vala:2356 +#: src/client/application/application-controller.vala:2234 msgid "This cannot be undone." msgstr "Dit kan niet ongedaan gemaakt worden." -#: src/client/application/geary-controller.vala:2357 +#: src/client/application/application-controller.vala:2235 #, c-format msgid "Empty %s" msgstr "Lege %s" -#: src/client/application/geary-controller.vala:2374 +#: src/client/application/application-controller.vala:2252 #, c-format msgid "Error emptying %s" msgstr "Fout bij legen van %s" -#: src/client/application/geary-controller.vala:2406 +#: src/client/application/application-controller.vala:2283 msgid "Do you want to permanently delete this message?" msgid_plural "Do you want to permanently delete these messages?" msgstr[0] "Wilt u dit bericht definitief verwijderen?" msgstr[1] "Wilt u deze berichten definitief verwijderen?" -#: src/client/application/geary-controller.vala:2408 +#: src/client/application/application-controller.vala:2285 msgid "Delete" msgstr "Verwijderen" -#: src/client/application/geary-controller.vala:2422 -msgid "Undo trash (Ctrl+Z)" -msgstr "Verwijderen ongedaan maken (Ctrl+Z)" +#: src/client/application/application-controller.vala:2299 +#, c-format +msgid "Trashed %d message" +msgid_plural "Trashed %d messages" +msgstr[0] "%d bericht verwijderd" +msgstr[1] "%d berichten verwijderd" -#: src/client/application/geary-controller.vala:2472 -msgid "Undo archive (Ctrl+Z)" -msgstr "Archivering ongedaan maken (Ctrl+Z)" - -#: src/client/application/geary-controller.vala:2517 -msgid "Undo (Ctrl+Z)" -msgstr "Ongedaan maken (Ctrl+Z)" +#: src/client/application/application-controller.vala:2346 +#, c-format +msgid "Archived %d message" +msgid_plural "Archived %d messages" +msgstr[0] "%d bericht gearchiveerd" +msgstr[1] "%d berichten gearchiveerd" #. Translators: The label for an in-app notification. The #. string substitution is a list of recipients of the email. -#: src/client/application/geary-controller.vala:2598 +#: src/client/application/application-controller.vala:2474 #, c-format msgid "Successfully sent mail to %s." msgstr "Bericht verzonden naar %s." -#: src/client/application/geary-controller.vala:2680 +#: src/client/application/application-controller.vala:2552 msgid "Failed to open default text editor." msgstr "Openen van standaard tekstverwerker mislukt." +#: src/client/application/geary-application.vala:31 +msgid "Copyright 2016 Software Freedom Conservancy Inc." +msgstr "Copyright 2016 Software Freedom Conservancy Inc." + +#: src/client/application/geary-application.vala:32 +msgid "Copyright 2016-2019 Geary Development Team." +msgstr "Copyright 2016-2019 Geary-ontwikkelingsteam." + +#: src/client/application/geary-application.vala:34 +msgid "Visit the Geary web site" +msgstr "Bezoek de Geary-website" + +#. / Command line option +#: src/client/application/geary-application.vala:109 +msgid "Print debug logging" +msgstr "Debuglogboeken weergeven" + +#. / Command line option +#: src/client/application/geary-application.vala:112 +msgid "Start with the main window hidden (deprecated)" +msgstr "Starten met verborgen hoofdvenster (verouderd)" + +#. / Command line option +#: src/client/application/geary-application.vala:115 +msgid "Enable WebKitGTK Inspector in web views" +msgstr "WebKitGTK-controleur inschakelen in webweergaven" + +#. / Command line option +#: src/client/application/geary-application.vala:118 +msgid "Log conversation monitoring" +msgstr "Gesprekscontrole loggen" + +#. / Command line option +#: src/client/application/geary-application.vala:121 +msgid "Log IMAP network deserialization" +msgstr "IMAP-netwerkdeserialisatie loggen" + +#. / Command line option. "Normalization" can also be called +#. / "synchronization". +#: src/client/application/geary-application.vala:125 +msgid "Log folder normalization" +msgstr "Mapnormalisatie loggen" + +#. / Command line option +#: src/client/application/geary-application.vala:128 +msgid "Log network activity" +msgstr "Netwerkactiviteit loggen" + +#. / Command line option +#: src/client/application/geary-application.vala:131 +msgid "Log periodic activity" +msgstr "Periodieke activiteit loggen" + +#. / Command line option. The IMAP replay queue is how changes +#. / on the server are replicated on the client. It could +#. / also be called the IMAP events queue. +#: src/client/application/geary-application.vala:136 +msgid "Log IMAP replay queue" +msgstr "IMAP-replaywachtrij loggen" + +#. / Command line option. Serialization is how commands and +#. / responses are converted into a stream of bytes for +#. / network transmission +#: src/client/application/geary-application.vala:141 +msgid "Log IMAP network serialization" +msgstr "IMAP-netwerkserialisatie loggen" + +#. / Command line option +#: src/client/application/geary-application.vala:144 +msgid "Log database queries (generates lots of messages)" +msgstr "Databasequery’s loggen (genereert veel berichten)" + +#. / Command line option +#: src/client/application/geary-application.vala:147 +msgid "Perform a graceful quit" +msgstr "Sierlijk afsluiten" + +#. / Command line option +#: src/client/application/geary-application.vala:150 +msgid "Revoke all pinned TLS server certificates" +msgstr "Alle gepinde TLS-servercertificaten intrekken" + +#. / Command line option +#: src/client/application/geary-application.vala:153 +msgid "Display program version" +msgstr "Programmaversie weergeven" + +#. / Application runtime information label +#: src/client/application/geary-application.vala:280 +msgid "Geary version" +msgstr "Geary-versie" + +#. / Application runtime information label +#: src/client/application/geary-application.vala:282 +msgid "Geary revision" +msgstr "Geary-revisie" + +#. / Application runtime information label +#: src/client/application/geary-application.vala:284 +msgid "GTK version" +msgstr "GTK-versie" + +#. / Applciation runtime information label +#: src/client/application/geary-application.vala:291 +msgid "GLib version" +msgstr "GLib-versie" + +#. / Application runtime information label +#: src/client/application/geary-application.vala:298 +msgid "WebKitGTK version" +msgstr "WebKitGTK-versie" + +#. / Application runtime information label +#: src/client/application/geary-application.vala:305 +msgid "Desktop environment" +msgstr "Bureaubladomgeving" + +#. Translators: This is the file type displayed for +#. attachments with unknown file types. +#: src/client/application/geary-application.vala:307 +#: src/client/conversation-viewer/conversation-email.vala:159 +msgid "Unknown" +msgstr "Onbekend" + +#. / Application runtime information label +#: src/client/application/geary-application.vala:337 +msgid "Distribution name" +msgstr "Distributienaam" + +#. / Application runtime information label +#: src/client/application/geary-application.vala:342 +msgid "Distribution release" +msgstr "Distributie-uitgave" + +#. / Application runtime information label +#: src/client/application/geary-application.vala:350 +msgid "Installation prefix" +msgstr "Installatievoorvoegsel" + +#: src/client/application/geary-application.vala:510 +#, c-format +msgid "About %s" +msgstr "Over %s" + +#. Translators: add your name and email address to receive +#. credit in the About dialog For example: Yamada Taro +#. +#: src/client/application/geary-application.vala:514 +msgid "translator-credits" +msgstr "" +"Bas Duineveld \n" +"Nathan Follens \n" +"Justin van Steijn \n" +"\n" +"Meer info over Gnome-NL http://nl.gnome.org" + +#. / Warning printed to the console when a deprecated +#. / command line option is used. +#: src/client/application/geary-application.vala:798 +msgid "The `--hidden` option is deprecated and will be removed in the future." +msgstr "" +"De optie `--hidden` is verouderd en zal in de toekomst verwijderd worden." + +#. / Command line warning, string substitution +#. / is the given argument +#: src/client/application/geary-application.vala:830 +#, c-format +msgid "Unrecognised program argument: “%s”" +msgstr "Onbekende programmaoptie ‘%s’" + +#: src/client/components/components-inspector.vala:68 +msgid "Inspector" +msgstr "Controleur" + +#. / Translators: Title for Inspector logs pane +#. / Translators: Title for problem report dialog logs pane +#: src/client/components/components-inspector.vala:77 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:91 +msgid "Logs" +msgstr "Logboeken" + +#. / Translators: Title for Inspector system system information pane +#. / Translators: Title for problem report system information +#. / pane +#: src/client/components/components-inspector.vala:81 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:94 +msgid "System" +msgstr "Systeem" + +#. Button label for saving problem report information +#: src/client/components/components-inspector.vala:198 +#: src/client/components/components-inspector.vala:201 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:210 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:213 +#: ui/problem-details-dialog.ui:42 +msgid "Save As" +msgstr "Opslaan als" + +#: src/client/components/components-inspector.vala:202 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:214 +#: ui/accounts_editor_servers_pane.ui:17 +msgid "Cancel" +msgstr "Annuleren" + #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but one is not provided. -#: src/client/components/components-validator.vala:341 +#: src/client/components/components-validator.vala:378 msgid "An email address is required" msgstr "Een e-mailadres is vereist" #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but the address is invalid. -#: src/client/components/components-validator.vala:345 +#: src/client/components/components-validator.vala:382 msgid "Not a valid email address" msgstr "Geen geldig e-mailadres" #. Translators: Tooltip used when an entry requires a valid, #. resolvable server name to be entered, but one is not #. provided. -#: src/client/components/components-validator.vala:391 +#: src/client/components/components-validator.vala:428 msgid "A server name is required" msgstr "Servernaam vereist" #. Translators: Tooltip used when an entry requires a valid #. server name to be entered, but it was unable to be #. looked-up in the DNS. -#: src/client/components/components-validator.vala:396 +#: src/client/components/components-validator.vala:433 msgid "Could not look up server name" msgstr "Kon servernaam niet opzoeken" -#: src/client/components/main-toolbar.vala:151 +#: src/client/components/main-toolbar.vala:139 msgid "Mark conversation" msgid_plural "Mark conversations" msgstr[0] "Gesprek markeren" msgstr[1] "Gesprekken markeren" -#: src/client/components/main-toolbar.vala:156 +#: src/client/components/main-toolbar.vala:144 msgid "Add label to conversation" msgid_plural "Add label to conversations" msgstr[0] "Label aan gesprek toevoegen" msgstr[1] "Label aan gesprekken toevoegen" -#: src/client/components/main-toolbar.vala:161 +#: src/client/components/main-toolbar.vala:149 msgid "Move conversation" msgid_plural "Move conversations" msgstr[0] "Gesprek verplaatsen" msgstr[1] "Gesprekken verplaatsen" -#: src/client/components/main-toolbar.vala:166 -msgid "Archive conversation (A)" -msgid_plural "Archive conversations (A)" -msgstr[0] "Gesprek archiveren (A)" -msgstr[1] "Gesprekken archiveren (A)" +#: src/client/components/main-toolbar.vala:154 +msgid "Archive conversation" +msgid_plural "Archive conversations" +msgstr[0] "Gesprek archiveren" +msgstr[1] "Gesprekken archiveren" -#: src/client/components/main-toolbar.vala:175 -msgid "Move conversation to Trash (Delete, Backspace)" -msgid_plural "Move conversations to Trash (Delete, Backspace)" -msgstr[0] "Gesprek naar prullenbak verplaatsen (Delete, Backspace)" -msgstr[1] "Gesprekken naar prullenbak verplaatsen (Delete, Backspace)" +#: src/client/components/main-toolbar.vala:163 +msgid "Move conversation to Trash" +msgid_plural "Move conversations to Trash" +msgstr[0] "Gesprek verplaatsen naar prullenbak" +msgstr[1] "Gesprekken verplaatsen naar prullenbak" -#: src/client/components/main-toolbar.vala:183 -msgid "Delete conversation (Shift+Delete)" -msgid_plural "Delete conversations (Shift+Delete)" -msgstr[0] "Gesprek verwijderen (Shift+Delete)" -msgstr[1] "Gesprekken verwijderen (Shift+Delete)" +#: src/client/components/main-toolbar.vala:171 +msgid "Delete conversation" +msgid_plural "Delete conversations" +msgstr[0] "Gesprek verwijderen" +msgstr[1] "Gesprekken verwijderen" -#: src/client/components/main-window.vala:503 +#: src/client/components/main-window.vala:738 #, c-format msgid "%s (%d)" msgstr "%s (%d)" -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:47 -#, c-format -msgid "Problem connecting to incoming server for %s" -msgstr "Probleem bij verbinden met inkomende server voor %s" +#. Translators: Info bar title for a generic account +#. problem. +#: src/client/components/main-window-info-bar.vala:44 +msgid "Account problem" +msgstr "Probleem met account" -#. Translators: String substitution is the server name -#: src/client/components/main-window-info-bar.vala:49 -#: src/client/components/main-window-info-bar.vala:58 +#. Translators: Info bar sub-title for a generic account +#. problem. String substitution is the account name. +#: src/client/components/main-window-info-bar.vala:48 #, c-format -msgid "" -"Could not connect to %s, check your Internet access and the server name and " -"try again" +msgid "Geary has encountered a problem with %s." +msgstr "Geary heeft een probleem met %s ondervonden." + +#. Translators: Info bar sub-title for a generic +#. account problem. String substitution is the +#. account name. +#: src/client/components/main-window-info-bar.vala:61 +#, c-format +msgid "Geary encountered a problem checking mail for %s." msgstr "" -"Kon niet verbinden met %s, controleer uw internettoegang en de servernaam en " -"probeer het opnieuw" +"Geary heeft een probleem ondervonden bij het controleren van e-mail voor %s." #. Translators: Tooltip label for Retry button -#. Button tooltip for retrying an account problem -#: src/client/components/main-window-info-bar.vala:51 -#: src/client/components/main-window-info-bar.vala:60 -#: src/client/components/main-window-info-bar.vala:69 -#: src/client/components/main-window-info-bar.vala:78 -#: src/client/components/main-window-info-bar.vala:87 -#: src/client/components/main-window-info-bar.vala:96 -#: src/client/components/main-window-info-bar.vala:136 ui/main-window.ui:265 +#: src/client/components/main-window-info-bar.vala:65 msgid "Try reconnecting" msgstr "Opnieuw verbinden" -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:56 +#. Translators: Info bar title for an outgoing +#. account problem. String substitution is the +#. account name +#: src/client/components/main-window-info-bar.vala:73 #, c-format -msgid "Problem connecting to outgoing server for %s" -msgstr "Probleem bij verbinden met uitgaande server voor %s" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:65 -#: src/client/components/main-window-info-bar.vala:83 -#, c-format -msgid "Problem communicating with incoming server for %s" -msgstr "Probleem bij communicatie met inkomende server voor %s" - -#. Translators: String substitution is the server name -#: src/client/components/main-window-info-bar.vala:67 -#: src/client/components/main-window-info-bar.vala:76 -#, c-format -msgid "Network error talking to %s, check your Internet access and try again" +msgid "Geary encountered a problem sending email for %s." msgstr "" -"Netwerkfout bij communicatie met %s, controleer uw internettoegang en " -"probeer het opnieuw" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:74 -#: src/client/components/main-window-info-bar.vala:91 -msgid "Problem communicating with outgoing mail server" -msgstr "Probleem bij communicatie met uitgaande mailserver" - -#. Translators: String substitution is the server name -#: src/client/components/main-window-info-bar.vala:85 -#, c-format -msgid "" -"Geary did not understand a message from %s or vice versa, please file a bug " -"report" -msgstr "" -"Geary begreep een bericht van %s niet of vice versa, dien hiervoor een " -"foutmelding in" - -#. Translators: First string substitution is the server -#. name, second is the account name -#: src/client/components/main-window-info-bar.vala:94 -#, c-format -msgid "" -"Could not communicate with %s for %s, check the server name and try again in " -"a moment" -msgstr "" -"Kon niet communiceren met %s voor %s, controleer de servernaam en probeer " -"het zo dadelijk opnieuw" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:101 -#, c-format -msgid "Incoming mail server password required for %s" -msgstr "Wachtwoord vereist voor inkomende mailserver voor %s" - -#: src/client/components/main-window-info-bar.vala:102 -msgid "Messages cannot be received without the correct password." -msgstr "Berichten kunnen niet opgehaald worden zonder het juiste wachtwoord." +"Geary heeft een probleem ondervonden bij het verzenden van e-mail voor %s." #. Translators: Tooltip label for Retry button -#: src/client/components/main-window-info-bar.vala:104 -msgid "Retry receiving email, you will be prompted for a password" -msgstr "" -"Probeer e-mails opnieuw te ontvangen, het wachtwoord zal gevraagd worden" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:109 -#, c-format -msgid "Outgoing mail server password required for %s" -msgstr "Wachtwoord vereist voor uitgaande mailserver voor %s" - -#: src/client/components/main-window-info-bar.vala:110 -msgid "Messages cannot be sent without the correct password." -msgstr "Berichten kunnen niet verzonden worden zonder het juiste wachtwoord." - -#. Translators: Tooltip label for Retry button -#: src/client/components/main-window-info-bar.vala:112 -msgid "Retry sending queued messages, you will be prompted for a password" -msgstr "" -"Probeer berichten in wachtrij opnieuw te verzenden, het wachtwoord zal " -"gevraagd worden" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:117 -#, c-format -msgid "Incoming mail server security is not trusted for %s" -msgstr "Beveiliging van inkomende mailserver wordt niet vertrouwd voor %s" - -# ?????? -#: src/client/components/main-window-info-bar.vala:118 -msgid "Messages will not be received until checked." -msgstr "Berichten kunnen niet opgehaald worden tot controle." - -#. Translators: Tooltip label for Retry button -#: src/client/components/main-window-info-bar.vala:120 -#: src/client/components/main-window-info-bar.vala:128 -msgid "Check security details" -msgstr "Controleer de beveiligingsgegevens" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:125 -#, c-format -msgid "Outgoing mail server security is not trusted for %s" -msgstr "Beveiliging van uitgaande mailserver wordt niet vertrouwd voor %s" - -# ??????? -#: src/client/components/main-window-info-bar.vala:126 -msgid "Messages cannot be sent until checked." -msgstr "Berichten kunnen niet verzonden worden tot controle." - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:133 -#, c-format -msgid "A problem occurred checking mail for %s" -msgstr "Er trad een fout op bij het controleren van mail voor %s" - -#: src/client/components/main-window-info-bar.vala:134 -#: src/client/components/main-window-info-bar.vala:142 -msgid "Something went wrong, please file a bug report if the problem persists" -msgstr "" -"Er ging iets mis, dien een foutmelding in als het probleem zich blijft " -"voordoen" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:141 -#, c-format -msgid "A problem occurred sending mail for %s" -msgstr "Er trad een fout op bij het verzenden van e-mail voor %s" - -#. Translators: Tooltip label for Retry button -#: src/client/components/main-window-info-bar.vala:144 +#: src/client/components/main-window-info-bar.vala:77 msgid "Retry sending queued messages" msgstr "Probeer berichten in wachtrij opnieuw te verzenden" -#: src/client/components/main-window-info-bar.vala:155 -msgid "A database problem has occurred" -msgstr "Er is een databaseprobleem opgetreden" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:157 -#, c-format -msgid "Messages for %s must be downloaded again." -msgstr "Berichten voor %s moeten opnieuw gedownload worden." - -#: src/client/components/main-window-info-bar.vala:170 +#. Translators: Info bar title for a generic application +#. problem. +#: src/client/components/main-window-info-bar.vala:84 msgid "Geary has encountered a problem" msgstr "Geary heeft een probleem ondervonden" -#: src/client/components/main-window-info-bar.vala:171 -msgid "" -"Please check the technical details and report the problem if it persists." -msgstr "" -"Controleer de technische gegevens, en meld het probleem als het zich blijft " -"voordoen." +#. Translators: Info bar sub-title for a generic +#. application problem. +#: src/client/components/main-window-info-bar.vala:88 +msgid "Please report the details if it persists." +msgstr "Meld de details van het probleem als het zich blijft voordoen." -#: src/client/components/main-window-info-bar.vala:179 +#. Translators: Button label for viewing technical details +#. for a problem report. +#: src/client/components/main-window-info-bar.vala:99 msgid "_Details" msgstr "_Details" -#. Button tooltip for displaying technical details about an account problem -#: src/client/components/main-window-info-bar.vala:180 ui/main-window.ui:250 +#. Translators: Tooltip for viewing technical details for +#. a problem report. +#: src/client/components/main-window-info-bar.vala:102 msgid "View technical details about the error" msgstr "Bekijk technische details over de fout" -#: src/client/components/main-window-info-bar.vala:184 +#. Translators: Button label for retrying a server +#. connection +#: src/client/components/main-window-info-bar.vala:108 msgid "_Retry" msgstr "Opnieu_w" @@ -1337,12 +1299,12 @@ msgstr "Zoeken" msgid "Search all mail in account for keywords (Ctrl+S)" msgstr "Trefwoorden zoeken in alle berichten van account (Ctrl+S)" -#: src/client/components/search-bar.vala:101 +#: src/client/components/search-bar.vala:83 #, c-format msgid "Indexing %s account" msgstr "Bezig met indexeren van %s-account" -#: src/client/components/search-bar.vala:112 +#: src/client/components/search-bar.vala:110 #: src/client/folder-list/folder-list-search-branch.vala:39 #, c-format msgid "Search %s account" @@ -1434,19 +1396,19 @@ msgstr "Ongeldige verwijzings-URL" msgid "Invalid email address" msgstr "Ongeldig e-mailadres" -#: src/client/composer/composer-widget.vala:150 +#: src/client/composer/composer-widget.vala:156 msgid "Saved" msgstr "Opgeslagen" -#: src/client/composer/composer-widget.vala:151 +#: src/client/composer/composer-widget.vala:157 msgid "Saving" msgstr "Bezig met opslaan" -#: src/client/composer/composer-widget.vala:152 +#: src/client/composer/composer-widget.vala:158 msgid "Error saving" msgstr "Opslaan mislukt" -#: src/client/composer/composer-widget.vala:153 +#: src/client/composer/composer-widget.vala:159 msgid "Press Backspace to delete quote" msgstr "Druk op Backspace om citaat te verwijderen" @@ -1454,7 +1416,7 @@ msgstr "Druk op Backspace om citaat te verwijderen" #. characters, that suggest an attachment; since this is full-word #. checking, include all variants of each word. No spaces are #. allowed. -#: src/client/composer/composer-widget.vala:162 +#: src/client/composer/composer-widget.vala:168 msgid "" "attach|attaching|attaches|attachment|attachments|attached|enclose|enclosed|" "enclosing|encloses|enclosure|enclosures" @@ -1466,34 +1428,34 @@ msgstr "" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. Keep, Discard or Cancel. -#: src/client/composer/composer-widget.vala:1123 +#: src/client/composer/composer-widget.vala:1181 msgid "Do you want to keep or discard this draft message?" msgstr "Wilt u dit conceptbericht bewaren of verwerpen?" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. only Discard or Cancel. -#: src/client/composer/composer-widget.vala:1151 +#: src/client/composer/composer-widget.vala:1211 msgid "Do you want to discard this draft message?" msgstr "Wilt u dit conceptbericht verwerpen?" -#: src/client/composer/composer-widget.vala:1268 +#: src/client/composer/composer-widget.vala:1330 msgid "Send message with an empty subject and body?" msgstr "Bericht zonder onderwerp en inhoud verzenden?" -#: src/client/composer/composer-widget.vala:1270 +#: src/client/composer/composer-widget.vala:1332 msgid "Send message with an empty subject?" msgstr "Bericht zonder onderwerp verzenden?" -#: src/client/composer/composer-widget.vala:1272 +#: src/client/composer/composer-widget.vala:1334 msgid "Send message with an empty body?" msgstr "Bericht zonder inhoud verzenden?" -#: src/client/composer/composer-widget.vala:1276 +#: src/client/composer/composer-widget.vala:1338 msgid "Send message without an attachment?" msgstr "Bericht zonder bijlage verzenden?" -#: src/client/composer/composer-widget.vala:1581 +#: src/client/composer/composer-widget.vala:1652 #, c-format msgid "“%s” already attached for delivery." msgstr "‘%s’ is al toegevoegd voor verzending." @@ -1503,63 +1465,63 @@ msgstr "‘%s’ is al toegevoegd voor verzending." #. description of the document type, the second will #. be a human-friendly size string. For example: #. Document (100.9MB) -#: src/client/composer/composer-widget.vala:1589 +#: src/client/composer/composer-widget.vala:1660 #: src/client/conversation-viewer/conversation-email.vala:173 #, c-format msgid "%s (%s)" msgstr "%s (%s)" -#: src/client/composer/composer-widget.vala:1626 +#: src/client/composer/composer-widget.vala:1697 #, c-format msgid "“%s” could not be found." msgstr "‘%s’ kon niet worden gevonden." -#: src/client/composer/composer-widget.vala:1632 +#: src/client/composer/composer-widget.vala:1703 #, c-format msgid "“%s” is a folder." msgstr "‘%s’ is een map." -#: src/client/composer/composer-widget.vala:1638 +#: src/client/composer/composer-widget.vala:1709 #, c-format msgid "“%s” is an empty file." msgstr "‘%s’ is een leeg bestand." -#: src/client/composer/composer-widget.vala:1651 +#: src/client/composer/composer-widget.vala:1722 #, c-format msgid "“%s” could not be opened for reading." msgstr "Leesfout bij openen van ‘%s’." -#: src/client/composer/composer-widget.vala:1659 +#: src/client/composer/composer-widget.vala:1730 msgid "Cannot add attachment" msgstr "Toevoegen van bijlage mislukt" #. Translators: Human-readable version of the RFC 822 To header -#: src/client/composer/composer-widget.vala:1709 -#: src/client/conversation-viewer/conversation-email.vala:975 -#: src/engine/rfc822/rfc822-utils.vala:298 ui/conversation-message.ui:313 +#: src/client/composer/composer-widget.vala:1787 +#: src/client/conversation-viewer/conversation-email.vala:976 +#: src/client/util/util-email.vala:216 ui/conversation-message.ui:312 msgid "To:" msgstr "Aan:" #. Translators: Human-readable version of the RFC 822 CC header -#: src/client/composer/composer-widget.vala:1715 -#: src/client/conversation-viewer/conversation-email.vala:980 -#: src/engine/rfc822/rfc822-utils.vala:303 ui/conversation-message.ui:358 +#: src/client/composer/composer-widget.vala:1793 +#: src/client/conversation-viewer/conversation-email.vala:981 +#: src/client/util/util-email.vala:221 ui/conversation-message.ui:357 msgid "Cc:" msgstr "Cc:" #. Translators: Human-readable version of the RFC 822 BCC header -#: src/client/composer/composer-widget.vala:1721 -#: src/client/conversation-viewer/conversation-email.vala:985 -#: ui/conversation-message.ui:403 +#: src/client/composer/composer-widget.vala:1799 +#: src/client/conversation-viewer/conversation-email.vala:986 +#: ui/conversation-message.ui:402 msgid "Bcc:" msgstr "Bcc:" #. Translators: Human-readable version of the RFC 822 Reply-To header -#: src/client/composer/composer-widget.vala:1727 +#: src/client/composer/composer-widget.vala:1805 msgid "Reply-To: " msgstr "Beantwoord: " -#: src/client/composer/composer-widget.vala:1867 +#: src/client/composer/composer-widget.vala:1945 msgid "Select Color" msgstr "Kleur selecteren" @@ -1568,20 +1530,20 @@ msgstr "Kleur selecteren" #. printf argument will be the alternate email address, #. and the second will be the account's primary email #. address. -#: src/client/composer/composer-widget.vala:2057 +#: src/client/composer/composer-widget.vala:2137 #, c-format msgid "%1$s via %2$s" msgstr "%1$s via %2$s" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: src/client/composer/composer-widget.vala:2118 +#: src/client/composer/composer-widget.vala:2192 msgid "_From:" msgstr "_Van:" #. Translators: This is the name of the file chooser filter #. when inserting an image in the composer. -#: src/client/composer/composer-widget.vala:2344 +#: src/client/composer/composer-widget.vala:2472 msgid "Images" msgstr "Afbeeldingen" @@ -1589,131 +1551,136 @@ msgstr "Afbeeldingen" msgid "New Message" msgstr "Nieuw bericht" -#: src/client/composer/spell-check-popover.vala:117 +#: src/client/composer/spell-check-popover.vala:108 msgid "Remove this language from the preferred list" msgstr "Deze taal verwijderen uit de voorkeurslijst" -#: src/client/composer/spell-check-popover.vala:121 +#: src/client/composer/spell-check-popover.vala:112 msgid "Add this language to the preferred list" msgstr "Deze taal toevoegen aan de voorkeurslijst" -#: src/client/composer/spell-check-popover.vala:217 +#: src/client/composer/spell-check-popover.vala:199 msgid "Search for more languages" msgstr "Zoeken naar meer talen" -#: src/client/conversation-list/conversation-list-view.vala:283 -msgid "Delete conversation" -msgstr "Gesprek verwijderen" +#. / Translators: Context menu item +#: src/client/conversation-list/conversation-list-view.vala:337 +msgid "Move conversation to _Trash" +msgid_plural "Move conversations to _Trash" +msgstr[0] "Gesprek verplaa_tsen naar prullenbak" +msgstr[1] "Gesprekken verplaa_tsen naar prullenbak" -#: src/client/conversation-list/conversation-list-view.vala:286 +#. / Translators: Context menu item +#: src/client/conversation-list/conversation-list-view.vala:347 +msgid "_Delete conversation" +msgid_plural "_Delete conversations" +msgstr[0] "Gesprek verwij_deren" +msgstr[1] "Gesprekken verwij_deren" + +#: src/client/conversation-list/conversation-list-view.vala:356 #: ui/main-toolbar-menus.ui:5 msgid "Mark as _Read" msgstr "Markeren als _gelezen" -#: src/client/conversation-list/conversation-list-view.vala:289 +#: src/client/conversation-list/conversation-list-view.vala:359 #: ui/main-toolbar-menus.ui:9 msgid "Mark as _Unread" msgstr "Markeren als _ongelezen" -#: src/client/conversation-list/conversation-list-view.vala:292 +#: src/client/conversation-list/conversation-list-view.vala:362 #: ui/main-toolbar-menus.ui:17 msgid "U_nstar" msgstr "Ster _verwijderen" -#: src/client/conversation-list/conversation-list-view.vala:294 +#: src/client/conversation-list/conversation-list-view.vala:364 #: ui/main-toolbar-menus.ui:13 msgid "_Star" msgstr "_Ster toevoegen" #. Translators: Menu item to reply to a specific message. -#: src/client/conversation-list/conversation-list-view.vala:297 +#: src/client/conversation-list/conversation-list-view.vala:367 #: ui/conversation-email-menus.ui:9 msgid "_Reply" msgstr "_Beantwoorden" -#: src/client/conversation-list/conversation-list-view.vala:298 +#: src/client/conversation-list/conversation-list-view.vala:368 msgid "R_eply All" msgstr "_Allen beantwoorden" #. Translators: Menu item to forward a specific message. -#: src/client/conversation-list/conversation-list-view.vala:299 +#: src/client/conversation-list/conversation-list-view.vala:369 #: ui/conversation-email-menus.ui:21 msgid "_Forward" msgstr "_Doorsturen" -#: src/client/conversation-list/formatted-conversation-data.vala:11 +#: src/client/conversation-list/formatted-conversation-data.vala:18 msgid "Me" msgstr "Ik" -#. Translators: This is the file type displayed for -#. attachments with unknown file types. -#: src/client/conversation-viewer/conversation-email.vala:159 -msgid "Unknown" -msgstr "Onbekend" - #. Translators: Human-readable version of the RFC 822 From header -#: src/client/conversation-viewer/conversation-email.vala:970 -#: src/engine/rfc822/rfc822-utils.vala:289 +#: src/client/conversation-viewer/conversation-email.vala:971 +#: src/client/util/util-email.vala:207 msgid "From:" msgstr "Van:" #. Translators: Human-readable version of the RFC 822 Date header -#: src/client/conversation-viewer/conversation-email.vala:990 -#: src/engine/rfc822/rfc822-utils.vala:294 +#: src/client/conversation-viewer/conversation-email.vala:991 +#: src/client/util/util-email.vala:212 msgid "Date:" msgstr "Datum:" #. Translators: Human-readable version of the RFC 822 Subject header -#: src/client/conversation-viewer/conversation-email.vala:995 -#: src/engine/rfc822/rfc822-utils.vala:292 +#: src/client/conversation-viewer/conversation-email.vala:1001 +#: src/client/util/util-email.vala:210 msgid "Subject:" msgstr "Onderwerp:" -#: src/client/conversation-viewer/conversation-message.vala:65 +#: src/client/conversation-viewer/conversation-message.vala:129 msgid "This email address may have been forged" msgstr "Dit e-mailadres is mogelijk nep" -#. Compact headers +#. Compact headers. These are partially done here and partially +#. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:394 +#: src/client/conversation-viewer/conversation-message.vala:447 msgid "No sender" msgstr "Geen afzender" #. Translators: This separates multiple 'from' #. addresses in the compact header for a message. -#: src/client/conversation-viewer/conversation-message.vala:767 +#: src/client/conversation-viewer/conversation-message.vala:840 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Imagemailing list " +"or attach to a new bug report." +msgstr "" +"Als het probleem ernstig is of zich blijft voordoen, sla deze gegevens dan " +"op en verzend ze naar de mailinglijst, of dien een nieuwe foutmelding in." + +#: ui/components-inspector-error-view.ui:49 +msgid "Details:" +msgstr "Details:" + +#. Tooltip for inspector button +#: ui/components-inspector.ui:20 +msgid "Toggle appending new log entries" +msgstr "Toevoegen van nieuwe logboekingangen aan het einde in-/uitschakelen" + +#. Tooltip for inspector button +#. Tooltip for problem report button +#: ui/components-inspector.ui:37 ui/problem-details-dialog.ui:19 +msgid "Search for matching log entries" +msgstr "Zoeken naar meer overeenkomstige logboekingangen" + +#. Tooltip for inspector button +#. Tooltip for problem report button +#: ui/components-inspector.ui:63 ui/problem-details-dialog.ui:46 +msgid "Save logs entries and details" +msgstr "Logboekingangen en -details opslaan" + +#. Tooltip for inspector button +#. Tooltip for problem report button +#: ui/components-inspector.ui:84 ui/problem-details-dialog.ui:62 +msgid "Copy to clipboard" +msgstr "Kopiëren naar klembord" + +#: ui/conversation-contact-popover.ui:146 +msgid "New Conversation…" +msgstr "Nieuw gesprek…" + +#: ui/conversation-contact-popover.ui:159 +msgid "Copy Email Address" +msgstr "E-mailadres kopiëren" + +#: ui/conversation-contact-popover.ui:182 +msgid "Save in Contacts…" +msgstr "Opslaan in contacten…" + +#: ui/conversation-contact-popover.ui:195 +msgid "Show Conversations" +msgstr "Gesprekken tonen" + +#: ui/conversation-contact-popover.ui:208 +msgid "Open in Contacts" +msgstr "Openen in Contacten" + +#: ui/conversation-contact-popover.ui:221 +msgid "Always Load Remote Images" +msgstr "Externe afbeeldingen altijd laden" + +#. Title label on contact popover +#: ui/conversation-contact-popover.ui:264 +msgid "Deceptive email address" +msgstr "Misleidend e-mailadres" + +#. Contact popover label +#: ui/conversation-contact-popover.ui:294 +msgid "This email address is:" +msgstr "Dit e-mailadres is:" + +#. Contact popover label +#: ui/conversation-contact-popover.ui:319 +msgid "But was forged as:" +msgstr "Maar is vervalst als:" + +#. Contact popover label +#: ui/conversation-contact-popover.ui:344 +msgid "The sender may not be trustworthy" +msgstr "De afzender is mogelijk niet te vertrouwen" + #: ui/conversation-email.ui:27 msgid "Save all attachments" msgstr "Alle bijlagen opslaan" @@ -2655,12 +2710,12 @@ msgstr "Alle bijlagen opslaan" #. Note: The application will never show this button at the same time as unstar_button, one will always be hidden. #: ui/conversation-email.ui:50 msgid "Mark this message as starred" -msgstr "Markeer dit bericht met ster" +msgstr "Ster toevoegen aan bericht" #. Note: The application will never show this button at the same time as star_button, one will always be hidden. #: ui/conversation-email.ui:72 msgid "Mark this message as not starred" -msgstr "Markeer dit bericht zonder ster" +msgstr "Ster verwijderen van bericht" #: ui/conversation-email.ui:95 msgid "Display the message menu" @@ -2720,15 +2775,15 @@ msgid "Mark Unread From _Here" msgstr "Vanaf _hier markeren als ongelezen" #. Translators: Menu item to move a single, specific message -#. to the trash +#. to the trash folder #: ui/conversation-email-menus.ui:50 -msgid "_Trash" -msgstr "_Prullenbak" +msgid "Move message to _Trash" +msgstr "Bericht verplaa_tsen naar prullenbak" #. Translators: Menu item to delete a single, specific message #: ui/conversation-email-menus.ui:57 -msgid "_Delete…" -msgstr "Verwij_deren…" +msgid "_Delete message…" +msgstr "Bericht verwij_deren…" #. Translators: Menu item to view the source for a message #: ui/conversation-email-menus.ui:69 @@ -2748,8 +2803,8 @@ msgid "Copy Link _Address" msgstr "Verwijzings_adres kopiëren" #: ui/conversation-message-menus.ui:17 -msgid "Send New _Message…" -msgstr "_Nieuw bericht verzenden…" +msgid "_New Conversation…" +msgstr "_Nieuw gesprek…" #: ui/conversation-message-menus.ui:21 msgid "Copy Email _Address" @@ -2763,68 +2818,64 @@ msgstr "_Afbeelding opslaan als…" msgid "_Select All" msgstr "Alles _selecteren" -#: ui/conversation-message-menus.ui:43 -msgid "Search for messages from" -msgstr "Zoeken naar berichten van" - -#: ui/conversation-message.ui:64 +#: ui/conversation-message.ui:63 msgid "From " msgstr "Van " -#: ui/conversation-message.ui:80 ui/conversation-message.ui:179 +#: ui/conversation-message.ui:79 ui/conversation-message.ui:178 msgid "1/1/1970\t" msgstr "1/1/1970\t" -#: ui/conversation-message.ui:103 +#: ui/conversation-message.ui:102 msgid "Preview body text." msgstr "Hoofdtekst voor berichtvoorbeeld." -#: ui/conversation-message.ui:203 +#: ui/conversation-message.ui:202 msgid "Sent by:" msgstr "Verzonden door:" -#: ui/conversation-message.ui:248 +#: ui/conversation-message.ui:247 msgid "Reply to:" msgstr "Antwoorden aan:" -#: ui/conversation-message.ui:292 +#: ui/conversation-message.ui:291 msgid "Subject" msgstr "Onderwerp" -#: ui/conversation-message.ui:502 +#: ui/conversation-message.ui:501 msgid "Show Images" msgstr "Afbeeldingen tonen" -#: ui/conversation-message.ui:515 +#: ui/conversation-message.ui:514 msgid "Always Show From Sender" msgstr "Afbeeldingen van deze afzender altijd tonen" -#: ui/conversation-message.ui:543 +#: ui/conversation-message.ui:542 msgid "Remote images not shown" msgstr "Externe afbeeldingen worden niet getoond" -#: ui/conversation-message.ui:560 +#: ui/conversation-message.ui:559 msgid "Only show remote images from senders you trust." msgstr "Toon enkel externe afbeeldingen van afzenders die u vertrouwt." -#: ui/conversation-message.ui:693 +#: ui/conversation-message.ui:692 msgid "But actually goes to:" msgstr "Maar gaat eigenlijk naar:" -#: ui/conversation-message.ui:724 +#: ui/conversation-message.ui:723 msgid "The link appears to go to:" msgstr "De verwijzing lijkt te leiden naar:" -#: ui/conversation-message.ui:736 +#: ui/conversation-message.ui:735 msgid "Deceptive link found" msgstr "Misleidende verwijzing gevonden" -#: ui/conversation-message.ui:751 +#: ui/conversation-message.ui:750 msgid "The email sender may be leading you to the wrong web site." msgstr "" "De afzender van deze e-mail leidt u misschien naar de verkeerde website." -#: ui/conversation-message.ui:764 +#: ui/conversation-message.ui:763 msgid "If unsure, contact the sender and ask before continuing." msgstr "" "Neem bij twijfel eerst contact op met de afzender vooraleer verder te gaan." @@ -2833,11 +2884,11 @@ msgstr "" msgid "Find in conversation" msgstr "Zoeken in gesprek" -#: ui/conversation-viewer.ui:74 +#: ui/conversation-viewer.ui:75 msgid "Find the previous occurrence of the search string." msgstr "Zoek het vorige voorkomen van de zoekopdracht." -#: ui/conversation-viewer.ui:95 +#: ui/conversation-viewer.ui:96 msgid "Find the next occurrence of the search string." msgstr "Zoek het volgende voorkomen van de zoekopdracht." @@ -2865,261 +2916,317 @@ msgstr "label" msgid "Conversation Shortcuts" msgstr "Gesprekssneltoetsen" -#: ui/gtk/help-overlay.ui:13 ui/gtk/help-overlay.ui:254 -msgctxt "shortcut window" -msgid "General" -msgstr "Algemeen" - -#: ui/gtk/help-overlay.ui:17 -msgctxt "shortcut window" -msgid "Move focus to the next/previous pane" -msgstr "Verplaats focus naar volgend/vorig paneel" - -#: ui/gtk/help-overlay.ui:24 -msgctxt "shortcut window" -msgid "Move focus to conversation list" -msgstr "Verplaats focus naar gesprekslijst" - -#: ui/gtk/help-overlay.ui:31 -msgctxt "shortcut window" -msgid "Detach composer window" -msgstr "Opstelvenster losmaken" - -#: ui/gtk/help-overlay.ui:38 -msgctxt "shortcut window" -msgid "Close composer window" -msgstr "Opstelvenster sluiten" - -#: ui/gtk/help-overlay.ui:45 -msgctxt "shortcut window" -msgid "Show keyboard shortcuts" -msgstr "Sneltoetsen tonen" - -#: ui/gtk/help-overlay.ui:52 -msgctxt "shortcut window" -msgid "Show help" -msgstr "Hulp tonen" - -#: ui/gtk/help-overlay.ui:59 -msgctxt "shortcut window" -msgid "Quit the application" -msgstr "De toepassing afsluiten" - -#: ui/gtk/help-overlay.ui:68 -msgctxt "shortcut window" -msgid "Search" -msgstr "Zoeken" - -#: ui/gtk/help-overlay.ui:72 -msgctxt "shortcut window" -msgid "Jump to search box" -msgstr "Spring naar zoekbalk" - -#: ui/gtk/help-overlay.ui:79 -msgctxt "shortcut window" -msgid "Find in current conversation" -msgstr "Zoeken in huidig gesprek" - -#: ui/gtk/help-overlay.ui:86 -msgctxt "shortcut window" -msgid "Find next/previous in current conversation" -msgstr "Zoek volgende/vorige in huidig gesprek" - -#: ui/gtk/help-overlay.ui:95 ui/gtk/help-overlay.ui:274 +#: ui/gtk/help-overlay.ui:13 ui/gtk/help-overlay.ui:347 msgctxt "shortcut window" msgid "Actions" msgstr "Acties" -#: ui/gtk/help-overlay.ui:99 +#: ui/gtk/help-overlay.ui:17 msgctxt "shortcut window" -msgid "Compose a new message" -msgstr "Een nieuw bericht opstellen" +msgid "New conversation" +msgstr "Nieuw gesprek" -#: ui/gtk/help-overlay.ui:106 +#: ui/gtk/help-overlay.ui:24 msgctxt "shortcut window" -msgid "Reply to sender " -msgstr "Afzender beantwoorden " +msgid "Reply to sender" +msgstr "Afzender beantwoorden" -#: ui/gtk/help-overlay.ui:113 +#: ui/gtk/help-overlay.ui:31 ui/gtk/help-overlay.ui:282 msgctxt "shortcut window" msgid "Reply to all" msgstr "Allen beantwoorden" -#: ui/gtk/help-overlay.ui:120 +#: ui/gtk/help-overlay.ui:38 ui/gtk/help-overlay.ui:289 msgctxt "shortcut window" msgid "Forward" msgstr "Doorsturen" -#: ui/gtk/help-overlay.ui:127 +#: ui/gtk/help-overlay.ui:45 ui/gtk/help-overlay.ui:296 msgctxt "shortcut window" -msgid "Archive" -msgstr "Archiveren" +msgid "Un-mark/mark read" +msgstr "Markeren als gelezen/ongelezen" -#: ui/gtk/help-overlay.ui:134 +#: ui/gtk/help-overlay.ui:52 ui/gtk/help-overlay.ui:303 msgctxt "shortcut window" -msgid "Move to trash" -msgstr "Verplaatsen naar prullenbak" +msgid "Mark/un-mark starred" +msgstr "Ster toevoegen/verwijderen" + +#: ui/gtk/help-overlay.ui:59 ui/gtk/help-overlay.ui:310 +msgctxt "shortcut window" +msgid "Archive conversation" +msgstr "Gesprek archiveren" + +#: ui/gtk/help-overlay.ui:66 ui/gtk/help-overlay.ui:317 +msgctxt "shortcut window" +msgid "Move conversation" +msgstr "Gesprek verplaatsen" + +#: ui/gtk/help-overlay.ui:73 ui/gtk/help-overlay.ui:324 +msgctxt "shortcut window" +msgid "Label conversation" +msgstr "Label aan gesprek toevoegen" + +#: ui/gtk/help-overlay.ui:80 +msgctxt "shortcut window" +msgid "Trash conversation" +msgstr "Gesprek verplaatsen naar prullenbak" + +#: ui/gtk/help-overlay.ui:87 ui/gtk/help-overlay.ui:331 +msgctxt "shortcut window" +msgid "Move to Spam" +msgstr "Verplaatsen naar spam" + +#: ui/gtk/help-overlay.ui:95 +msgctxt "shortcut window" +msgid "Delete conversation" +msgstr "Gesprek verwijderen" + +#: ui/gtk/help-overlay.ui:104 +msgctxt "shortcut window" +msgid "Search" +msgstr "Zoeken" + +#: ui/gtk/help-overlay.ui:108 +msgctxt "shortcut window" +msgid "Search for conversations" +msgstr "Gesprekken zoeken" + +#: ui/gtk/help-overlay.ui:115 +msgctxt "shortcut window" +msgid "Find in current conversation" +msgstr "Zoeken in huidig gesprek" #: ui/gtk/help-overlay.ui:141 msgctxt "shortcut window" -msgid "Toggle spam" -msgstr "Spam in-/uitschakelen" +msgid "Undo" +msgstr "Ongedaan maken" -#: ui/gtk/help-overlay.ui:148 +#: ui/gtk/help-overlay.ui:145 msgctxt "shortcut window" -msgid "Move the conversation" -msgstr "Het gesprek verplaatsen" +msgid "Undo the last action" +msgstr "Laatste actie ongedaan maken" -#: ui/gtk/help-overlay.ui:155 +#: ui/gtk/help-overlay.ui:152 msgctxt "shortcut window" -msgid "Label the conversation" -msgstr "Label aan gesprek toevoegen" +msgid "Redo the last action" +msgstr "Laatste actie herhalen" -#: ui/gtk/help-overlay.ui:163 -msgctxt "shortcut window" -msgid "Mark read" -msgstr "Markeren als gelezen" - -#: ui/gtk/help-overlay.ui:170 -msgctxt "shortcut window" -msgid "Mark unread" -msgstr "Markeren als ongelezen" - -#: ui/gtk/help-overlay.ui:179 +#: ui/gtk/help-overlay.ui:161 msgctxt "shortcut window" msgid "View" msgstr "Weergeven" -#: ui/gtk/help-overlay.ui:183 +#: ui/gtk/help-overlay.ui:165 msgctxt "shortcut window" msgid "Zoom in" msgstr "Inzoomen" -#: ui/gtk/help-overlay.ui:190 +#: ui/gtk/help-overlay.ui:172 msgctxt "shortcut window" msgid "Zoom out" msgstr "Uitzoomen" -#: ui/gtk/help-overlay.ui:197 +#: ui/gtk/help-overlay.ui:179 msgctxt "shortcut window" msgid "Reset zoom" msgstr "Zoomniveau terugzetten" +#: ui/gtk/help-overlay.ui:188 ui/gtk/help-overlay.ui:367 +msgctxt "shortcut window" +msgid "General" +msgstr "Algemeen" + +#: ui/gtk/help-overlay.ui:192 +msgctxt "shortcut window" +msgid "Show help" +msgstr "Hulp tonen" + +#: ui/gtk/help-overlay.ui:199 +msgctxt "shortcut window" +msgid "Show keyboard shortcuts" +msgstr "Sneltoetsen tonen" + #: ui/gtk/help-overlay.ui:206 msgctxt "shortcut window" -msgid "Additional Shortcuts" -msgstr "Extra sneltoetsen" +msgid "Close current window" +msgstr "Huidig venster sluiten" -#: ui/gtk/help-overlay.ui:210 +#: ui/gtk/help-overlay.ui:213 msgctxt "shortcut window" -msgid "Star" -msgstr "Ster toevoegen" +msgid "Quit the application" +msgstr "De toepassing afsluiten" -#: ui/gtk/help-overlay.ui:217 +#: ui/gtk/help-overlay.ui:222 msgctxt "shortcut window" -msgid "Unstar" -msgstr "Ster verwijderen" +msgid "Keyboard navigation" +msgstr "Toetsenbordnavigatie" -#: ui/gtk/help-overlay.ui:224 +#: ui/gtk/help-overlay.ui:226 msgctxt "shortcut window" -msgid "Delete" -msgstr "Verwijderen" +msgid "Focus the next pane" +msgstr "Focus verplaatsen naar volgend paneel" -#: ui/gtk/help-overlay.ui:231 +#: ui/gtk/help-overlay.ui:233 msgctxt "shortcut window" -msgid "Jump to next (older) conversation" -msgstr "Spring naar volgend (ouder) gesprek" +msgid "Focus the previous pane" +msgstr "Focus verplaatsen naar vorig paneel" -#: ui/gtk/help-overlay.ui:238 +#: ui/gtk/help-overlay.ui:240 msgctxt "shortcut window" -msgid "Jump to previous (newer) conversation" -msgstr "Spring naar vorig (recenter) gesprek" +msgid "Focus the conversation list" +msgstr "Focus verplaatsen naar gesprekslijst" -#: ui/gtk/help-overlay.ui:250 +#: ui/gtk/help-overlay.ui:247 +msgctxt "shortcut window" +msgid "Select the conversation down" +msgstr "Onderstaand gesprek selecteren" + +#: ui/gtk/help-overlay.ui:254 +msgctxt "shortcut window" +msgid "Select the conversation up" +msgstr "Bovenstaand gesprek selecteren" + +#: ui/gtk/help-overlay.ui:261 +msgctxt "shortcut window" +msgid "Focus next/previous message" +msgstr "Focus verplaatsen naar volgend/vorig bericht" + +#: ui/gtk/help-overlay.ui:271 +msgctxt "shortcut window" +msgid "Single-key shortcuts" +msgstr "Sneltoetsen met 1 toets" + +#: ui/gtk/help-overlay.ui:275 +msgctxt "shortcut window" +msgid "Reply to sender " +msgstr "Afzender beantwoorden " + +#: ui/gtk/help-overlay.ui:343 msgid "Composer Shortcuts" msgstr "Opstelvenstersneltoetsen" -#: ui/gtk/help-overlay.ui:258 -msgctxt "shortcut window" -msgid "Quote text" -msgstr "Citaat" - -#: ui/gtk/help-overlay.ui:265 -msgctxt "shortcut window" -msgid "Unquote text" -msgstr "Einde citaat" - -#: ui/gtk/help-overlay.ui:278 +#: ui/gtk/help-overlay.ui:351 msgctxt "shortcut window" msgid "Send" msgstr "Verzenden" -#: ui/gtk/help-overlay.ui:285 +#: ui/gtk/help-overlay.ui:358 msgctxt "shortcut window" msgid "Add attachment" msgstr "Bijlage toevoegen" -#: ui/gtk/help-overlay.ui:294 +#: ui/gtk/help-overlay.ui:371 msgctxt "shortcut window" -msgid "Rich text mode" -msgstr "Opgemaaktetekstmodus" +msgid "Close composer window" +msgstr "Opstelvenster sluiten" -#: ui/gtk/help-overlay.ui:298 +#: ui/gtk/help-overlay.ui:378 +msgctxt "shortcut window" +msgid "Detach composer window" +msgstr "Opstelvenster losmaken" + +#: ui/gtk/help-overlay.ui:385 +msgctxt "shortcut window" +msgid "Editing" +msgstr "Bewerken" + +#: ui/gtk/help-overlay.ui:390 +msgctxt "shortcut window" +msgid "Move selection to the clipboard" +msgstr "Selectie verplaatsen naar het klembord" + +#: ui/gtk/help-overlay.ui:397 +msgctxt "shortcut window" +msgid "Copy selection to clipboard" +msgstr "Selectie kopiëren naar klembord" + +#: ui/gtk/help-overlay.ui:404 +msgctxt "shortcut window" +msgid "Paste from the clipboard" +msgstr "Plakken van het klembord" + +#: ui/gtk/help-overlay.ui:411 +msgctxt "shortcut window" +msgid "Quote text" +msgstr "Citaat" + +#: ui/gtk/help-overlay.ui:418 +msgctxt "shortcut window" +msgid "Unquote text" +msgstr "Einde citaat" + +# Misschien 'Opgemaakte tekst bewerken' - Nathan +#: ui/gtk/help-overlay.ui:427 +msgctxt "shortcut window" +msgid "Rich text editing" +msgstr "Tekst opmaken" + +#: ui/gtk/help-overlay.ui:431 +msgctxt "shortcut window" +msgid "Paste without formatting" +msgstr "Plakken zonder opmaak" + +#: ui/gtk/help-overlay.ui:438 msgctxt "shortcut window" msgid "Bold text" msgstr "Vette tekst" -#: ui/gtk/help-overlay.ui:305 +#: ui/gtk/help-overlay.ui:445 msgctxt "shortcut window" msgid "Italicize text" msgstr "Cursieve tekst" -#: ui/gtk/help-overlay.ui:312 +#: ui/gtk/help-overlay.ui:452 msgctxt "shortcut window" msgid "Underline text" msgstr "Tekst onderstrepen" -#: ui/gtk/help-overlay.ui:319 +#: ui/gtk/help-overlay.ui:459 msgctxt "shortcut window" msgid "Strike text" msgstr "Tekst doorstrepen" -#: ui/gtk/help-overlay.ui:326 -msgctxt "shortcut window" -msgid "Insert a link" -msgstr "Een verwijzing invoegen" - -#: ui/gtk/help-overlay.ui:333 +#: ui/gtk/help-overlay.ui:466 msgctxt "shortcut window" msgid "Remove formatting" msgstr "Opmaak verwijderen" +#: ui/gtk/help-overlay.ui:473 +msgctxt "shortcut window" +msgid "Insert an image" +msgstr "Afbeelding invoegen" + +#: ui/gtk/help-overlay.ui:480 +msgctxt "shortcut window" +msgid "Insert a link" +msgstr "Een verwijzing invoegen" + #: ui/main-toolbar.ui:23 msgctxt "tooltip" msgid "Compose Message" msgstr "Bericht opstellen" -#: ui/main-toolbar.ui:52 +#: ui/main-toolbar.ui:61 msgid "Toggle search bar" msgstr "Zoekbalk in-/uitschakelen" -#: ui/main-toolbar.ui:112 +#: ui/main-toolbar.ui:113 msgid "Reply" msgstr "Beantwoorden" -#: ui/main-toolbar.ui:135 +#: ui/main-toolbar.ui:136 msgid "Reply All" msgstr "Allen beantwoorden" -#: ui/main-toolbar.ui:158 +#: ui/main-toolbar.ui:159 msgid "Forward" msgstr "Doorsturen" -#: ui/main-toolbar.ui:264 +#: ui/main-toolbar.ui:265 msgid "Toggle find bar" msgstr "Zoekbalk in-/uitschakelen" -#: ui/main-toolbar.ui:306 +#: ui/main-toolbar.ui:286 msgid "_Archive" msgstr "_Archiveren" @@ -3152,12 +3259,12 @@ msgid "_About Geary" msgstr "_Over Geary" #. Infobar title when one or more accounts are offline -#: ui/main-window.ui:183 +#: ui/main-window.ui:185 msgid "Working offline" msgstr "Offlinemodus" #. Label and tooltip for offline infobar -#: ui/main-window.ui:197 +#: ui/main-window.ui:199 msgid "" "Your computer does not appear to be connected to the Internet.\n" "You will not be able to send or receive email until it is re-connected." @@ -3167,62 +3274,29 @@ msgstr "" "hersteld is." #. Label and tooltip for offline infobar -#: ui/main-window.ui:200 +#: ui/main-window.ui:202 msgid "You will not be able to send or receive email until re-connected." msgstr "" "U zult geen e-mails kunnen verzenden of ontvangen totdat de verbinding " "hersteld is." -#. Button label for displaying technical details about an account problem -#. Dialog title for displaying technical details of a problem. Same as the button that invokes it. -#: ui/main-window.ui:247 ui/problem-details-dialog.ui:13 -msgid "Details" -msgstr "Details" - -#. Button label for retrying an account problem -#: ui/main-window.ui:261 -msgid "Retry" -msgstr "Opnieuw" - -#. Infobar title when one or more accounts have encounted an error -#: ui/main-window.ui:294 -msgid "Account problem" -msgstr "Probleem met account" - -#. Label and tooltip for account service problem infobar -#: ui/main-window.ui:308 -msgid "" -"Geary encountered a problem connecting to an account.\n" -"Please check your Internet connection, the server configuration and try " -"again." -msgstr "" -"Geary heeft een probleem ondervonden bij het verbinden met een account.\n" -"Controleer uw internettoegang en de serverconfiguratie en probeer het " -"opnieuw." - -#. Label and tooltip for account service problem infobar -#: ui/main-window.ui:311 -msgid "Geary encountered a problem connecting to an account." -msgstr "" -"Geary heeft een probleem ondervonden bij het verbinden met een account." - #. Button label for retrying TLS cert validation -#: ui/main-window.ui:358 +#: ui/main-window.ui:249 msgid "Check" msgstr "Controleren" #. Button tooltip for retrying TLS cert validation -#: ui/main-window.ui:362 +#: ui/main-window.ui:253 msgid "Check the security details for the connection" msgstr "Controleer de beveiligingsgegevens voor de verbinding" #. Infobar title when one or more accounts have a TLS cert validation error -#: ui/main-window.ui:391 +#: ui/main-window.ui:282 msgid "Security problem" msgstr "Beveiligingsprobleem" #. Label and tooltip for TLS cert validation error infobar -#: ui/main-window.ui:405 +#: ui/main-window.ui:296 msgid "" "An account has reported an untrusted server.\n" "Please check the server configuration and try again." @@ -3231,22 +3305,22 @@ msgstr "" "Controleer de serverconfiguratie en probeer het opnieuw." #. Label and tooltip for TLS cert validation error infobar -#: ui/main-window.ui:408 +#: ui/main-window.ui:299 msgid "An account has reported an untrusted server." msgstr "Een account heeft een onvertrouwde server gemeld." #. Button tooltip for retrying when a login error has occurred -#: ui/main-window.ui:459 +#: ui/main-window.ui:350 msgid "Retry login, you will be prompted for your password" msgstr "Probeer opnieuw in te loggen, het wachtwoord zal gevraagd worden" #. Infobar title when one or more accounts have a login error -#: ui/main-window.ui:488 +#: ui/main-window.ui:379 msgid "Login problem" msgstr "Probleem met inloggen" #. Label and tooltip for authentication problem infobar -#: ui/main-window.ui:502 +#: ui/main-window.ui:393 msgid "" "An account has reported an incorrect login or password.\n" "Please check your login name and try again." @@ -3255,7 +3329,7 @@ msgstr "" "Controleer uw loginnaam en probeer het opnieuw." #. Label and tooltip for authentication problem infobar -#: ui/main-window.ui:505 +#: ui/main-window.ui:396 msgid "An account has reported an incorrect login or password." msgstr "Een account heeft een onjuiste login of wachtwoord gemeld." @@ -3315,41 +3389,257 @@ msgstr "Geary zal blijven draaien wanneer alle vensters gesloten zijn" msgid "Preferences" msgstr "Voorkeuren" -#. Button label for copying technical information to the clipboard -#: ui/problem-details-dialog.ui:17 -msgid "Copy to Clipboard" -msgstr "Kopiëren naar klembord" - -#. Button tooltip for copying technical information to the clipboard -#: ui/problem-details-dialog.ui:21 -msgid "" -"Copy technical details to clipboard for pasting into an email or bug report" -msgstr "" -"Kopieer technische gegevens naar het klembord om ze in een e-mail of " -"foutmelding te plakken" - -#: ui/problem-details-dialog.ui:73 -msgid "" -"If the problem is serious or persists, please copy and send these details to " -"the mailing list " -"or file a new " -"bug report." -msgstr "" -"Als het probleem ernstig is of zich blijft voordoen, kopieer en verzend deze " -"gegevens dan naar de mailinglijst of dien een nieuwe foutmelding in." - -#: ui/problem-details-dialog.ui:89 -msgid "Details:" -msgstr "Details:" - #: ui/upgrade_dialog.glade:60 msgid "Geary update in progress…" msgstr "Geary wordt bijgewerkt…" -#~ msgid "Email address:" -#~ msgstr "E-mailadres:" +#~ msgid "mail-send" +#~ msgstr "mail-send" + +#~ msgid "org.gnome.Geary" +#~ msgstr "org.gnome.Geary" + +#~ msgid "List of the languages to use in the spell checker." +#~ msgstr "Lijst van de te gebruiken talen in de spellingscontrole." + +#~ msgid "Base URL to look up contact avatars" +#~ msgstr "Basis-URL voor opzoeken van contactavatars" + +#~ msgid "" +#~ "A Gravatar or Libravatar compatible URL, set to the empty string to " +#~ "disable." +#~ msgstr "" +#~ "Een URL compatibel met Gravatar of Libravatar, stel in als leeg om uit te " +#~ "schakelen." + +#~ msgid "Save drafts on server" +#~ msgstr "Concepten opslaan op server" + +#~ msgid "Output debugging information" +#~ msgstr "Debuginformatie weergeven" + +#~ msgid "Allow inspection of WebView" +#~ msgstr "Inspectie van WebView toestaan" + +#~ msgid "Use %s to open a new composer window" +#~ msgstr "Gebruik %s om een nieuw opstelvenster te openen" + +#~ msgid "Please report comments, suggestions and bugs to:" +#~ msgstr "Stuur opmerkingen, suggesties en bugs naar:" + +#~ msgid "Failed to parse command line options: %s\n" +#~ msgstr "Interpreteren van opdrachtregelopties mislukt: %s\n" + +#~ msgid "Undo move (Ctrl+Z)" +#~ msgstr "Verplaatsen ongedaan maken (Ctrl+Z)" + +#~ msgid "Close the draft message?" +#~ msgid_plural "Close all draft messages?" +#~ msgstr[0] "Conceptbericht sluiten?" +#~ msgstr[1] "Alle conceptberichten sluiten?" + +#~ msgid "Undo trash (Ctrl+Z)" +#~ msgstr "Verwijderen ongedaan maken (Ctrl+Z)" + +#~ msgid "Undo archive (Ctrl+Z)" +#~ msgstr "Archivering ongedaan maken (Ctrl+Z)" + +#~ msgid "Undo (Ctrl+Z)" +#~ msgstr "Ongedaan maken (Ctrl+Z)" + +#~ msgid "Move conversation to Trash (Delete, Backspace)" +#~ msgid_plural "Move conversations to Trash (Delete, Backspace)" +#~ msgstr[0] "Gesprek naar prullenbak verplaatsen (Delete, Backspace)" +#~ msgstr[1] "Gesprekken naar prullenbak verplaatsen (Delete, Backspace)" + +#~ msgid "Delete conversation (Shift+Delete)" +#~ msgid_plural "Delete conversations (Shift+Delete)" +#~ msgstr[0] "Gesprek verwijderen (Shift+Delete)" +#~ msgstr[1] "Gesprekken verwijderen (Shift+Delete)" + +#~ msgid "Problem connecting to incoming server for %s" +#~ msgstr "Probleem bij verbinden met inkomende server voor %s" + +#~ msgid "" +#~ "Could not connect to %s, check your Internet access and the server name " +#~ "and try again" +#~ msgstr "" +#~ "Kon niet verbinden met %s, controleer uw internettoegang en de servernaam " +#~ "en probeer het opnieuw" + +#~ msgid "Problem connecting to outgoing server for %s" +#~ msgstr "Probleem bij verbinden met uitgaande server voor %s" + +#~ msgid "Problem communicating with incoming server for %s" +#~ msgstr "Probleem bij communicatie met inkomende server voor %s" + +#~ msgid "" +#~ "Network error talking to %s, check your Internet access and try again" +#~ msgstr "" +#~ "Netwerkfout bij communicatie met %s, controleer uw internettoegang en " +#~ "probeer het opnieuw" + +#~ msgid "Problem communicating with outgoing mail server" +#~ msgstr "Probleem bij communicatie met uitgaande mailserver" + +#~ msgid "" +#~ "Geary did not understand a message from %s or vice versa, please file a " +#~ "bug report" +#~ msgstr "" +#~ "Geary begreep een bericht van %s niet of vice versa, dien hiervoor een " +#~ "foutmelding in" + +#~ msgid "" +#~ "Could not communicate with %s for %s, check the server name and try again " +#~ "in a moment" +#~ msgstr "" +#~ "Kon niet communiceren met %s voor %s, controleer de servernaam en probeer " +#~ "het zo dadelijk opnieuw" + +#~ msgid "Incoming mail server password required for %s" +#~ msgstr "Wachtwoord vereist voor inkomende mailserver voor %s" + +#~ msgid "Messages cannot be received without the correct password." +#~ msgstr "" +#~ "Berichten kunnen niet opgehaald worden zonder het juiste wachtwoord." + +#~ msgid "Retry receiving email, you will be prompted for a password" +#~ msgstr "" +#~ "Probeer e-mails opnieuw te ontvangen, het wachtwoord zal gevraagd worden" + +#~ msgid "Outgoing mail server password required for %s" +#~ msgstr "Wachtwoord vereist voor uitgaande mailserver voor %s" + +#~ msgid "Messages cannot be sent without the correct password." +#~ msgstr "" +#~ "Berichten kunnen niet verzonden worden zonder het juiste wachtwoord." + +#~ msgid "Retry sending queued messages, you will be prompted for a password" +#~ msgstr "" +#~ "Probeer berichten in wachtrij opnieuw te verzenden, het wachtwoord zal " +#~ "gevraagd worden" + +#~ msgid "Incoming mail server security is not trusted for %s" +#~ msgstr "Beveiliging van inkomende mailserver wordt niet vertrouwd voor %s" + +# ?????? +#~ msgid "Messages will not be received until checked." +#~ msgstr "Berichten kunnen niet opgehaald worden tot controle." + +#~ msgid "Check security details" +#~ msgstr "Controleer de beveiligingsgegevens" + +#~ msgid "Outgoing mail server security is not trusted for %s" +#~ msgstr "Beveiliging van uitgaande mailserver wordt niet vertrouwd voor %s" + +# ??????? +#~ msgid "Messages cannot be sent until checked." +#~ msgstr "Berichten kunnen niet verzonden worden tot controle." + +#~ msgid "A problem occurred checking mail for %s" +#~ msgstr "Er trad een fout op bij het controleren van mail voor %s" + +#~ msgid "" +#~ "Something went wrong, please file a bug report if the problem persists" +#~ msgstr "" +#~ "Er ging iets mis, dien een foutmelding in als het probleem zich blijft " +#~ "voordoen" + +#~ msgid "A database problem has occurred" +#~ msgstr "Er is een databaseprobleem opgetreden" + +#~ msgid "Messages for %s must be downloaded again." +#~ msgstr "Berichten voor %s moeten opnieuw gedownload worden." + +#~ msgid "Open" +#~ msgstr "Openen" + +#~ msgctxt "Default clock format" +#~ msgid "%l:%M %P" +#~ msgstr "%Hu%M" + +#~ msgid "%x" +#~ msgstr "%x" + +#~ msgid "_Trash" +#~ msgstr "_Prullenbak" + +#~ msgid "Send New _Message…" +#~ msgstr "_Nieuw bericht verzenden…" + +#~ msgid "Search for messages from" +#~ msgstr "Zoeken naar berichten van" + +#~ msgctxt "shortcut window" +#~ msgid "Jump to search box" +#~ msgstr "Spring naar zoekbalk" + +#~ msgctxt "shortcut window" +#~ msgid "Find next/previous in current conversation" +#~ msgstr "Zoek volgende/vorige in huidig gesprek" + +#~ msgctxt "shortcut window" +#~ msgid "Compose a new message" +#~ msgstr "Een nieuw bericht opstellen" + +#~ msgctxt "shortcut window" +#~ msgid "Archive" +#~ msgstr "Archiveren" + +#~ msgctxt "shortcut window" +#~ msgid "Toggle spam" +#~ msgstr "Spam in-/uitschakelen" + +#~ msgctxt "shortcut window" +#~ msgid "Move the conversation" +#~ msgstr "Het gesprek verplaatsen" + +#~ msgctxt "shortcut window" +#~ msgid "Mark unread" +#~ msgstr "Markeren als ongelezen" + +#~ msgctxt "shortcut window" +#~ msgid "Additional Shortcuts" +#~ msgstr "Extra sneltoetsen" + +#~ msgctxt "shortcut window" +#~ msgid "Star" +#~ msgstr "Ster toevoegen" + +#~ msgctxt "shortcut window" +#~ msgid "Unstar" +#~ msgstr "Ster verwijderen" + +#~ msgctxt "shortcut window" +#~ msgid "Delete" +#~ msgstr "Verwijderen" + +#~ msgctxt "shortcut window" +#~ msgid "Jump to next (older) conversation" +#~ msgstr "Spring naar volgend (ouder) gesprek" + +#~ msgctxt "shortcut window" +#~ msgid "Jump to previous (newer) conversation" +#~ msgstr "Spring naar vorig (recenter) gesprek" + +#~ msgid "Retry" +#~ msgstr "Opnieuw" + +#~ msgid "" +#~ "Geary encountered a problem connecting to an account.\n" +#~ "Please check your Internet connection, the server configuration and try " +#~ "again." +#~ msgstr "" +#~ "Geary heeft een probleem ondervonden bij het verbinden met een account.\n" +#~ "Controleer uw internettoegang en de serverconfiguratie en probeer het " +#~ "opnieuw." + +#~ msgid "" +#~ "Copy technical details to clipboard for pasting into an email or bug " +#~ "report" +#~ msgstr "" +#~ "Kopieer technische gegevens naar het klembord om ze in een e-mail of " +#~ "foutmelding te plakken" #~ msgid "Delete conversations (Shift+Delete)" #~ msgstr "Gesprekken verwijderen (Shift+Delete)" @@ -3360,15 +3650,9 @@ msgstr "Geary wordt bijgewerkt…" #~ msgid "Archive conversations (A)" #~ msgstr "Gesprekken archiveren (A)" -#~ msgid "Mark conversations" -#~ msgstr "Gesprekken markeren" - #~ msgid "Add label to conversations" #~ msgstr "Label aan gesprekken toevoegen" -#~ msgid "Move conversations" -#~ msgstr "Gesprekken verplaatsen" - #~ msgid "Retry connecting now" #~ msgstr "Nu opnieuw verbinden" @@ -3432,9 +3716,6 @@ msgstr "Geary wordt bijgewerkt…" #~ msgid "Enter your account information to get started." #~ msgstr "Vul uw accountgegevens in om te beginnen." -#~ msgid "Edit" -#~ msgstr "Bewerken" - #~ msgid "Preview" #~ msgstr "Voorbeeld" @@ -3726,9 +4007,6 @@ msgstr "Geary wordt bijgewerkt…" #~ msgid "Try Again" #~ msgstr "Probeer het opnieuw" -#~ msgid "_Inspect" -#~ msgstr "_Inspecteren" - #~ msgid "%s — Composer Inspector" #~ msgstr "%s — Opstelvenstercontroleur" From 93336f5e9c2cf3fa7f83a74433bcb1a46bc76ee8 Mon Sep 17 00:00:00 2001 From: Nathan Follens Date: Tue, 25 Feb 2020 11:28:09 +0000 Subject: [PATCH 032/336] Update Dutch translation --- po/nl.po | 2228 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 1266 insertions(+), 962 deletions(-) diff --git a/po/nl.po b/po/nl.po index e8714a8a..003a77b2 100644 --- a/po/nl.po +++ b/po/nl.po @@ -18,8 +18,8 @@ msgid "" msgstr "" "Project-Id-Version: geary-0.4.1\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2019-10-07 00:01+0000\n" -"PO-Revision-Date: 2020-02-25 12:06+0100\n" +"POT-Creation-Date: 2020-02-25 11:10+0000\n" +"PO-Revision-Date: 2020-02-25 12:27+0100\n" "Last-Translator: Nathan Follens \n" "Language-Team: Dutch \n" "Language: nl_NL\n" @@ -42,6 +42,7 @@ msgstr "Bestanden verzenden met Geary" #: desktop/org.gnome.Geary.appdata.xml.in.in:12 #: desktop/org.gnome.Geary.desktop.in.in:3 #: src/client/accounts/accounts-editor-servers-pane.vala:555 +#: src/client/application/application-main-window.vala:555 msgid "Geary" msgstr "Geary" @@ -54,7 +55,7 @@ msgstr "E-mail" #: desktop/geary-autostart.desktop.in.in:5 #: desktop/org.gnome.Geary.appdata.xml.in.in:16 #: desktop/org.gnome.Geary.desktop.in.in:5 -#: src/client/application/geary-application.vala:30 +#: src/client/application/application-client.vala:32 msgid "Send and receive email" msgstr "E-mail verzenden en ontvangen" @@ -133,6 +134,10 @@ msgstr "Mail;E-mail;IMAP;GMail;Yahoo;Hotmail;Outlook;" msgid "Compose Message" msgstr "Bericht opstellen" +#: desktop/org.gnome.Geary.desktop.in.in:26 +msgid "New Window" +msgstr "Nieuw venster" + #: desktop/org.gnome.Geary.gschema.xml:8 msgid "Maximize window" msgstr "Venster maximaliseren" @@ -195,38 +200,58 @@ msgstr "" "bevindt." #: desktop/org.gnome.Geary.gschema.xml:50 +msgid "Show/hide formatting toolbar" +msgstr "Opmaakbalk tonen/verbergen" + +#: desktop/org.gnome.Geary.gschema.xml:51 +msgid "True if the formatting toolbar in the composer is shown." +msgstr "Waar indien de opmaakbalk in het opstelvenster getoond wordt." + +#: desktop/org.gnome.Geary.gschema.xml:56 msgid "Position of message list pane" msgstr "Positie van berichtlijstpaneel" -#: desktop/org.gnome.Geary.gschema.xml:51 +#: desktop/org.gnome.Geary.gschema.xml:57 msgid "Position of the message list Paned grabber." msgstr "Positie van de berichtlijst-Paneel-grabber." -#: desktop/org.gnome.Geary.gschema.xml:56 +#: desktop/org.gnome.Geary.gschema.xml:62 msgid "Autoselect next message" msgstr "Volgend bericht automatisch selecteren" -#: desktop/org.gnome.Geary.gschema.xml:57 +#: desktop/org.gnome.Geary.gschema.xml:63 msgid "True if we should autoselect the next available conversation." msgstr "" "Schakel dit in als het volgend beschikbare gesprek automatisch geselecteerd " "moet worden." -#: desktop/org.gnome.Geary.gschema.xml:62 +#: desktop/org.gnome.Geary.gschema.xml:68 msgid "Display message previews" msgstr "Voorbeeldweergave voor berichten inschakelen" -#: desktop/org.gnome.Geary.gschema.xml:63 +#: desktop/org.gnome.Geary.gschema.xml:69 msgid "True if we should display a short preview of each message." msgstr "" "Schakel dit in als een korte voorbeeldweergave van elk bericht getoond moet " "worden." -#: desktop/org.gnome.Geary.gschema.xml:68 +#: desktop/org.gnome.Geary.gschema.xml:74 +msgid "Use single key shortcuts" +msgstr "Sneltoetsen met 1 toets gebruiken" + +#: desktop/org.gnome.Geary.gschema.xml:75 +msgid "" +"Enables shortcuts for email actions that do not require pressing to " +"emulate those used by Gmail." +msgstr "" +"Schakelt sneltoetsen voor e-mailacties waarvoor er niet op gedrukt " +"moet worden, gelijkaardig aan die in Gmail." + +#: desktop/org.gnome.Geary.gschema.xml:82 msgid "Languages that shall be used in the spell checker" msgstr "Talen die gebruikt worden in de spellingscontrole" -#: desktop/org.gnome.Geary.gschema.xml:69 +#: desktop/org.gnome.Geary.gschema.xml:83 msgid "" "A list of POSIX locales, with the empty list disabling spell checking and " "the null list using desktop languages by default." @@ -234,11 +259,11 @@ msgstr "" "Een lijst met POSIX-locales, waarbij de lege lijst de spellingscontrole " "uitschakelt en de null-lijst de bureaubladtalen gebruikt." -#: desktop/org.gnome.Geary.gschema.xml:76 +#: desktop/org.gnome.Geary.gschema.xml:90 msgid "Languages that are displayed in the spell checker popover" msgstr "Talen getoond in de spellingscontrole-pop-over" -#: desktop/org.gnome.Geary.gschema.xml:77 +#: desktop/org.gnome.Geary.gschema.xml:91 msgid "" "List of languages that are always displayed in the popover of the spell " "checker." @@ -246,80 +271,86 @@ msgstr "" "Lijst van talen die altijd worden getoond in de pop-over van de " "spellingscontrole." -#: desktop/org.gnome.Geary.gschema.xml:82 -msgid "Enable notification sounds" -msgstr "Geluid afspelen bij melding" - -#: desktop/org.gnome.Geary.gschema.xml:83 -msgid "True to play sounds for notifications and sending." -msgstr "Schakel dit in om geluiden af te spelen voor meldingen en verzenden." - -#: desktop/org.gnome.Geary.gschema.xml:88 -msgid "Show notifications for new mail" -msgstr "Melding weergeven voor nieuwe e-mail" - -#: desktop/org.gnome.Geary.gschema.xml:89 -msgid "True to show notification bubbles." -msgstr "Schakel dit in om meldingsbubbels te tonen." - -#: desktop/org.gnome.Geary.gschema.xml:94 +#: desktop/org.gnome.Geary.gschema.xml:96 msgid "Notify of new mail at startup" msgstr "Melding van nieuwe e-mails bij opstarten" -#: desktop/org.gnome.Geary.gschema.xml:95 +#: desktop/org.gnome.Geary.gschema.xml:97 msgid "True to notify of new mail at startup." msgstr "" "Schakel dit in om een melding te krijgen van nieuwe e-mails bij opstarten." -#: desktop/org.gnome.Geary.gschema.xml:100 +#: desktop/org.gnome.Geary.gschema.xml:102 msgid "Ask when opening an attachment" msgstr "Vragen bij openen van bijlage" -#: desktop/org.gnome.Geary.gschema.xml:101 +#: desktop/org.gnome.Geary.gschema.xml:103 msgid "True to ask when opening an attachment." msgstr "Schakel dit in om bevestiging te vragen bij openen van een bijlage." -#: desktop/org.gnome.Geary.gschema.xml:106 +#: desktop/org.gnome.Geary.gschema.xml:108 msgid "Whether to compose emails in HTML" msgstr "Of e-mails in HTML opgesteld moeten worden" -#: desktop/org.gnome.Geary.gschema.xml:107 +#: desktop/org.gnome.Geary.gschema.xml:109 msgid "True to compose emails in HTML; false for plain text." msgstr "" "Schakel dit in om e-mails op te stellen in HTML; schakel uit voor platte " "tekst." -#: desktop/org.gnome.Geary.gschema.xml:112 +#: desktop/org.gnome.Geary.gschema.xml:114 msgid "Advisory strategy for full-text searching" msgstr "Adviesstrategie voor doorzoeken van volledige tekst" -#: desktop/org.gnome.Geary.gschema.xml:113 +#: desktop/org.gnome.Geary.gschema.xml:115 msgid "" "Acceptable values are “exact”, “conservative”, “aggressive”, and “horizon”." msgstr "" "Aanvaardbare waarden zijn ‘exact’, ‘conservative’, ‘agressive’ en ‘horizon’." -#: desktop/org.gnome.Geary.gschema.xml:118 +#: desktop/org.gnome.Geary.gschema.xml:120 msgid "Zoom of conversation viewer" msgstr "Zoomniveau van gespreksweergave" -#: desktop/org.gnome.Geary.gschema.xml:119 +#: desktop/org.gnome.Geary.gschema.xml:121 msgid "The zoom to apply on the conservation view." msgstr "Het toe te passen zoomniveau op de gespreksweergave." -#: desktop/org.gnome.Geary.gschema.xml:124 +#: desktop/org.gnome.Geary.gschema.xml:126 msgid "Size of detached composer window" msgstr "Grootte van losgemaakt opstelvenster" -#: desktop/org.gnome.Geary.gschema.xml:125 +#: desktop/org.gnome.Geary.gschema.xml:127 msgid "The last recorded size of the detached composer window." msgstr "De laatst geregistreerde grootte van het losgemaakte opstelvenster." -#: desktop/org.gnome.Geary.gschema.xml:130 +#: desktop/org.gnome.Geary.gschema.xml:132 +msgid "Undo sending email delay" +msgstr "Vertraging voor ongedaan maken van verzenden van e-mail" + +#: desktop/org.gnome.Geary.gschema.xml:133 +msgid "" +"The number of seconds to wait before sending an email. Set to zero or less " +"to disable." +msgstr "" +"De wachttijd in seconden vooraleer een e-mail verzonden moet worden. Stel " +"dit in op 0 of minder om het uit te schakelen." + +#: desktop/org.gnome.Geary.gschema.xml:139 +msgid "Brief notification display time" +msgstr "Weergavetijd voor korte meldingen" + +#: desktop/org.gnome.Geary.gschema.xml:140 +msgid "" +"The length of time in seconds for which brief notifications should be " +"displayed." +msgstr "De duur in seconden dat korte meldingen weergegeven moeten worden." + +#: desktop/org.gnome.Geary.gschema.xml:146 msgid "Whether we migrated the old settings" msgstr "Of we de oude instellingen overgezet hebben" -#: desktop/org.gnome.Geary.gschema.xml:131 +#: desktop/org.gnome.Geary.gschema.xml:147 msgid "" "False to check for the old “org.yorba.geary”-schema and copy its values." msgstr "" @@ -329,24 +360,24 @@ msgstr "" #. Translators: In-app notification label, when #. the app had a problem pinning an otherwise #. untrusted TLS certificate -#: src/client/accounts/accounts-editor.vala:204 +#: src/client/accounts/accounts-editor.vala:210 msgid "Failed to store certificate" msgstr "Opslaan van certificaat mislukt" #. Translators: Label for adding an email account #. account for a generic IMAP service provider. -#: src/client/accounts/accounts-editor-add-pane.vala:109 +#: src/client/accounts/accounts-editor-add-pane.vala:108 msgid "All others" msgstr "Alle andere" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:196 +#: src/client/accounts/accounts-editor-add-pane.vala:195 #: src/client/accounts/accounts-editor-servers-pane.vala:316 msgid "Check your receiving login and password" msgstr "Controleer uw login en wachtwoord voor ontvangen" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:211 +#: src/client/accounts/accounts-editor-add-pane.vala:210 #: src/client/accounts/accounts-editor-servers-pane.vala:329 msgid "Check your receiving server details" msgstr "Controleer uw servergegevens voor ontvangen" @@ -356,51 +387,51 @@ msgstr "Controleer uw servergegevens voor ontvangen" #. succeeded, so the user probably needs to #. specify custom creds here #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:233 +#: src/client/accounts/accounts-editor-add-pane.vala:232 #: src/client/accounts/accounts-editor-servers-pane.vala:350 msgid "Check your sending login and password" msgstr "Controleer uw login en wachtwoord voor verzenden" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:247 +#: src/client/accounts/accounts-editor-add-pane.vala:246 #: src/client/accounts/accounts-editor-servers-pane.vala:363 msgid "Check your sending server details" msgstr "Controleer uw serverdetails voor verzenden" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:262 +#: src/client/accounts/accounts-editor-add-pane.vala:261 msgid "Check your email address and password" msgstr "Controleer uw e-mailadres en wachtwoord" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:273 +#: src/client/accounts/accounts-editor-add-pane.vala:272 msgid "Could not connect, check your network" msgstr "Kon geen verbinding maken, controleer uw netwerkverbinding" #. Translators: In-app notification label for a #. generic error creating an account -#: src/client/accounts/accounts-editor-add-pane.vala:286 +#: src/client/accounts/accounts-editor-add-pane.vala:285 msgid "An unexpected problem occurred" msgstr "Er is een onverwacht probleem opgetreden" #. Translators: In-app notification label, the #. string substitution is a more detailed reason. -#: src/client/accounts/accounts-editor-add-pane.vala:304 +#: src/client/accounts/accounts-editor-add-pane.vala:303 #, c-format msgid "Account not created: %s" msgstr "Account niet aangemaakt: %s" #. Translators: Label for the person's actual name when adding #. an account -#: src/client/accounts/accounts-editor-add-pane.vala:551 +#: src/client/accounts/accounts-editor-add-pane.vala:558 msgid "Your name" msgstr "Uw naam" #. Translators: Label used for the address part of an #. email address when editing a user's sender address #. preferences for an account. -#: src/client/accounts/accounts-editor-add-pane.vala:568 -#: src/client/accounts/accounts-editor-edit-pane.vala:501 +#: src/client/accounts/accounts-editor-add-pane.vala:575 +#: src/client/accounts/accounts-editor-edit-pane.vala:513 msgid "Email address" msgstr "E-mailadres" @@ -409,8 +440,8 @@ msgstr "E-mailadres" #. Translators: This is used as a placeholder for the #. address part of an email address when editing a user's #. sender address preferences for an account. -#: src/client/accounts/accounts-editor-add-pane.vala:571 -#: src/client/accounts/accounts-editor-edit-pane.vala:469 +#: src/client/accounts/accounts-editor-add-pane.vala:579 +#: src/client/accounts/accounts-editor-edit-pane.vala:479 msgid "person@example.com" msgstr "persoon@voorbeeld.be" @@ -418,15 +449,15 @@ msgstr "persoon@voorbeeld.be" #. when adding an account #. Translators: Label for the user's login name for an #. IMAP, SMTP, etc service -#: src/client/accounts/accounts-editor-add-pane.vala:585 -#: src/client/accounts/accounts-editor-servers-pane.vala:880 +#: src/client/accounts/accounts-editor-add-pane.vala:593 +#: src/client/accounts/accounts-editor-servers-pane.vala:884 msgid "Login name" msgstr "Loginnaam" #. Translators: Label for the user's password for an IMAP, #. SMTP, etc service -#: src/client/accounts/accounts-editor-add-pane.vala:599 -#: src/client/accounts/accounts-editor-servers-pane.vala:999 +#: src/client/accounts/accounts-editor-add-pane.vala:607 +#: src/client/accounts/accounts-editor-servers-pane.vala:1006 #: ui/password-dialog.glade:108 msgid "Password" msgstr "Wachtwoord" @@ -435,14 +466,14 @@ msgstr "Wachtwoord" #. adding an account. #. Translators: This label describes the host name or IP #. address and port used by an account's IMAP service. -#: src/client/accounts/accounts-editor-add-pane.vala:621 -#: src/client/accounts/accounts-editor-servers-pane.vala:727 +#: src/client/accounts/accounts-editor-add-pane.vala:629 +#: src/client/accounts/accounts-editor-servers-pane.vala:728 msgid "IMAP server" msgstr "IMAP-server" #. Translators: Placeholder for the IMAP server hostname #. when adding an account. -#: src/client/accounts/accounts-editor-add-pane.vala:624 +#: src/client/accounts/accounts-editor-add-pane.vala:632 msgid "imap.example.com" msgstr "imap.voorbeeld.be" @@ -450,20 +481,20 @@ msgstr "imap.voorbeeld.be" #. adding an account. #. Translators: This label describes the host name or IP #. address and port used by an account's SMTP service. -#: src/client/accounts/accounts-editor-add-pane.vala:630 -#: src/client/accounts/accounts-editor-servers-pane.vala:733 +#: src/client/accounts/accounts-editor-add-pane.vala:638 +#: src/client/accounts/accounts-editor-servers-pane.vala:734 msgid "SMTP server" msgstr "SMTP-server" #. Translators: Placeholder for the SMTP server hostname #. when adding an account. -#: src/client/accounts/accounts-editor-add-pane.vala:633 +#: src/client/accounts/accounts-editor-add-pane.vala:641 msgid "smtp.example.com" msgstr "smtp.voorbeeld.be" #. Translators: Label in the account editor for the user's #. custom name for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:278 +#: src/client/accounts/accounts-editor-edit-pane.vala:277 #: ui/accounts_editor_remove_pane.ui:123 msgid "Account name" msgstr "Accountnaam" @@ -472,46 +503,46 @@ msgstr "Accountnaam" #. the name of an account. The string #. substitution is the old name of the #. account. -#: src/client/accounts/accounts-editor-edit-pane.vala:312 +#: src/client/accounts/accounts-editor-edit-pane.vala:318 #, c-format msgid "Change account name back to “%s”" msgstr "Accountnaam opnieuw instellen op ‘%s’" #. Translators: Tooltip for adding a new email sender/from #. address's address to an account -#: src/client/accounts/accounts-editor-edit-pane.vala:336 +#: src/client/accounts/accounts-editor-edit-pane.vala:342 msgid "Add a new sender email address" msgstr "Voeg nieuw e-mailadres toe voor afzender" #. Translators: Label used to indicate the user has #. provided no display name for one of their sender #. email addresses in their account settings. -#: src/client/accounts/accounts-editor-edit-pane.vala:417 +#: src/client/accounts/accounts-editor-edit-pane.vala:423 msgid "Name not set" msgstr "Naam niet ingesteld" #. Translators: This is used as a placeholder for the #. display name for an email address when editing a user's #. sender address preferences for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:456 +#: src/client/accounts/accounts-editor-edit-pane.vala:464 msgid "Sender Name" msgstr "Naam van afzender" -#: src/client/accounts/accounts-editor-edit-pane.vala:479 +#: src/client/accounts/accounts-editor-edit-pane.vala:491 msgid "Remove" msgstr "Verwijderen" #. Translators: Label used for the display name part of an #. email address when editing a user's sender address #. preferences for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:494 +#: src/client/accounts/accounts-editor-edit-pane.vala:506 msgid "Sender name" msgstr "Naam van afzender" #. Translators: Label used as the undo tooltip after adding an #. new sender email address to an account. The string #. substitution is the email address added. -#: src/client/accounts/accounts-editor-edit-pane.vala:561 +#: src/client/accounts/accounts-editor-edit-pane.vala:573 #, c-format msgid "Remove “%s”" msgstr "‘%s’ verwijderen" @@ -519,7 +550,7 @@ msgstr "‘%s’ verwijderen" #. Translators: Label used as the undo tooltip after editing a #. sender address for an account. The string substitution is #. the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:601 +#: src/client/accounts/accounts-editor-edit-pane.vala:613 #, c-format msgid "Undo changes to “%s”" msgstr "Wijzigingen aan ‘%s’ ongedaan maken" @@ -527,7 +558,7 @@ msgstr "Wijzigingen aan ‘%s’ ongedaan maken" #. Translators: Label used as the undo tooltip after removing #. a sender address from an account. The string substitution #. is the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:688 +#: src/client/accounts/accounts-editor-edit-pane.vala:700 #, c-format msgid "Add “%s” back" msgstr "‘%s’ weer toevoegen" @@ -535,14 +566,14 @@ msgstr "‘%s’ weer toevoegen" #. Translators: Label used as the undo tooltip after removing #. a sender address from an account. The string substitution #. is the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:730 +#: src/client/accounts/accounts-editor-edit-pane.vala:742 msgid "Undo signature changes" msgstr "Wijzigingen aan ondertekening ongedaan maken" #. Translators: This label describes the account #. preference for the length of time (weeks, months or #. years) that past email should be downloaded. -#: src/client/accounts/accounts-editor-edit-pane.vala:778 +#: src/client/accounts/accounts-editor-edit-pane.vala:790 msgid "Download mail" msgstr "Berichten downloaden" @@ -551,99 +582,100 @@ msgstr "Berichten downloaden" #. should be downloaded for an account. The #. string substitution is the duration, #. e.g. "1 month back". -#: src/client/accounts/accounts-editor-edit-pane.vala:810 +#: src/client/accounts/accounts-editor-edit-pane.vala:822 #, c-format msgid "Change download period back to: %s" msgstr "Downloadperiode opnieuw instellen op: %s" -#: src/client/accounts/accounts-editor-edit-pane.vala:831 +#: src/client/accounts/accounts-editor-edit-pane.vala:843 msgid "Everything" msgstr "Alles" -#: src/client/accounts/accounts-editor-edit-pane.vala:835 +#: src/client/accounts/accounts-editor-edit-pane.vala:847 msgid "2 weeks back" msgstr "Tot 2 weken geleden" -#: src/client/accounts/accounts-editor-edit-pane.vala:839 +#: src/client/accounts/accounts-editor-edit-pane.vala:851 msgid "1 month back" msgstr "Tot 1 maand geleden" -#: src/client/accounts/accounts-editor-edit-pane.vala:843 +#: src/client/accounts/accounts-editor-edit-pane.vala:855 msgid "3 months back" msgstr "Tot 3 maanden geleden" -#: src/client/accounts/accounts-editor-edit-pane.vala:847 +#: src/client/accounts/accounts-editor-edit-pane.vala:859 msgid "6 months back" msgstr "Tot 6 maanden geleden" -#: src/client/accounts/accounts-editor-edit-pane.vala:851 +#: src/client/accounts/accounts-editor-edit-pane.vala:863 msgid "1 year back" msgstr "Tot 1 jaar geleden" -#: src/client/accounts/accounts-editor-edit-pane.vala:855 +#: src/client/accounts/accounts-editor-edit-pane.vala:867 msgid "2 years back" msgstr "Tot 2 jaar geleden" -#: src/client/accounts/accounts-editor-edit-pane.vala:859 +#: src/client/accounts/accounts-editor-edit-pane.vala:871 msgid "4 years back" msgstr "Tot 4 jaar geleden" -#: src/client/accounts/accounts-editor-edit-pane.vala:865 +#: src/client/accounts/accounts-editor-edit-pane.vala:877 #, c-format msgid "%d day back" msgid_plural "%d days back" msgstr[0] "Tot %d dag geleden" msgstr[1] "Tot %d dagen geleden" -#: src/client/accounts/accounts-editor-list-pane.vala:247 -#: src/client/application/application-controller.vala:2392 +#: src/client/accounts/accounts-editor-list-pane.vala:255 +#: src/client/application/application-main-window.vala:2053 msgid "Undo" msgstr "Ongedaan maken" -#: src/client/accounts/accounts-editor-list-pane.vala:255 +#: src/client/accounts/accounts-editor-list-pane.vala:264 +#: src/client/application/application-main-window.vala:2036 msgid "Redo" msgstr "Opnieuw" -#: src/client/accounts/accounts-editor-list-pane.vala:349 -#: src/client/accounts/accounts-editor-list-pane.vala:437 +#: src/client/accounts/accounts-editor-list-pane.vala:358 +#: src/client/accounts/accounts-editor-list-pane.vala:446 #: src/client/accounts/accounts-editor-row.vala:279 msgid "Gmail" msgstr "Gmail" -#: src/client/accounts/accounts-editor-list-pane.vala:353 -#: src/client/accounts/accounts-editor-list-pane.vala:441 +#: src/client/accounts/accounts-editor-list-pane.vala:362 +#: src/client/accounts/accounts-editor-list-pane.vala:450 #: src/client/accounts/accounts-editor-row.vala:283 msgid "Outlook.com" msgstr "Outlook.com" -#: src/client/accounts/accounts-editor-list-pane.vala:357 -#: src/client/accounts/accounts-editor-list-pane.vala:445 +#: src/client/accounts/accounts-editor-list-pane.vala:366 +#: src/client/accounts/accounts-editor-list-pane.vala:454 #: src/client/accounts/accounts-editor-row.vala:287 msgid "Yahoo" msgstr "Yahoo" #. Translators: Tooltip for accounts that have been #. loaded but disabled by the user. -#: src/client/accounts/accounts-editor-list-pane.vala:375 +#: src/client/accounts/accounts-editor-list-pane.vala:384 msgid "This account has been disabled" msgstr "Deze account is uitgeschakeld" #. Translators: Tooltip for accounts that have been #. loaded but because of some error are not able to be #. used. -#: src/client/accounts/accounts-editor-list-pane.vala:384 +#: src/client/accounts/accounts-editor-list-pane.vala:393 msgid "This account has encountered a problem and is unavailable" msgstr "Deze account heeft een probleem ondervonden en is niet beschikbaar" #. Translators: Label for adding a generic email account -#: src/client/accounts/accounts-editor-list-pane.vala:434 +#: src/client/accounts/accounts-editor-list-pane.vala:443 msgid "Other email providers" msgstr "Andere e-mailproviders" #. Translators: Notification shown after removing an #. account. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:551 +#: src/client/accounts/accounts-editor-list-pane.vala:560 #, c-format msgid "Account “%s” removed" msgstr "Account ‘%s’ verwijderd" @@ -651,7 +683,7 @@ msgstr "Account ‘%s’ verwijderd" #. Translators: Notification shown after removing an account #. is undone. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:558 +#: src/client/accounts/accounts-editor-list-pane.vala:567 #, c-format msgid "Account “%s” restored" msgstr "Account ‘%s’ hersteld" @@ -678,8 +710,8 @@ msgstr "Verbindingsbeveiliging" #. Translators: Label used when no auth scheme is used #. by an account's IMAP or SMTP service. #: src/client/accounts/accounts-editor-row.vala:479 -#: src/client/accounts/accounts-editor-servers-pane.vala:752 -#: src/client/accounts/accounts-editor-servers-pane.vala:964 +#: src/client/accounts/accounts-editor-servers-pane.vala:755 +#: src/client/accounts/accounts-editor-servers-pane.vala:970 #: src/engine/api/geary-special-folder-type.vala:58 msgid "None" msgstr "Geen" @@ -696,7 +728,8 @@ msgstr "TLS" #. credentials (none, use IMAP, custom) when adding a new #. account #. Button label for retrying when a login error has occurred -#: src/client/accounts/accounts-editor-row.vala:534 ui/main-window.ui:346 +#: src/client/accounts/accounts-editor-row.vala:534 +#: ui/application-main-window.ui:346 msgid "Login" msgstr "Aanmelden" @@ -756,45 +789,324 @@ msgstr "Verzonden berichten op server opslaan" #. Translators: Label used when an account's IMAP or #. SMTP service uses OAuth2. The string replacement is #. the service's login name. -#: src/client/accounts/accounts-editor-servers-pane.vala:950 +#: src/client/accounts/accounts-editor-servers-pane.vala:956 #, c-format msgid "%s using OAuth2" msgstr "%s via OAuth2" -#: src/client/accounts/accounts-editor-servers-pane.vala:960 +#: src/client/accounts/accounts-editor-servers-pane.vala:966 msgid "Use receiving server login" msgstr "Serverlogin voor ontvangen gebruiken" #. Translators: File name used in save chooser when saving #. attachments that do not otherwise have a name. -#: src/client/application/application-controller.vala:59 +#: src/client/application/application-attachment-manager.vala:21 msgid "Untitled" msgstr "Naamloos" +#. / Translators: Dialog primary label when prompting to +#. / overwrite a file. The string substitution is the file'sx +#. / name. +#: src/client/application/application-attachment-manager.vala:222 +#, c-format +msgid "A file named “%s” already exists. Do you want to replace it?" +msgstr "Het bestand ‘%s’ bestaat al. Wilt u het vervangen?" + +#. / Translators: Dialog secondary label when prompting to +#. / overwrite a file. The string substitution is the parent +#. / folder's name. +#: src/client/application/application-attachment-manager.vala:229 +#, c-format +msgid "" +"The file already exists in “%s”. Replacing it will overwrite its contents." +msgstr "Het bestand bestaat al in ‘%s’. Vervangen overschrijft de inhoud." + +#: src/client/application/application-attachment-manager.vala:236 +msgid "_Replace" +msgstr "_Vervangen" + +#: src/client/application/application-client.vala:33 +msgid "Copyright 2016 Software Freedom Conservancy Inc." +msgstr "Copyright 2016 Software Freedom Conservancy Inc." + +#: src/client/application/application-client.vala:34 +msgid "Copyright 2016-2019 Geary Development Team." +msgstr "Copyright 2016-2019 Geary-ontwikkelingsteam." + +#: src/client/application/application-client.vala:36 +msgid "Visit the Geary web site" +msgstr "Bezoek de Geary-website" + +#. / Command line option +#: src/client/application/application-client.vala:94 +msgid "Print debug logging" +msgstr "Debuglogboeken weergeven" + +#. / Command line option +#: src/client/application/application-client.vala:97 +msgid "Start with the main window hidden (deprecated)" +msgstr "Starten met verborgen hoofdvenster (verouderd)" + +#. / Command line option +#: src/client/application/application-client.vala:100 +msgid "Enable WebKitGTK Inspector in web views" +msgstr "WebKitGTK-controleur inschakelen in webweergaven" + +#. / Command line option +#: src/client/application/application-client.vala:103 +msgid "Log conversation monitoring" +msgstr "Gesprekscontrole loggen" + +#. / Command line option +#: src/client/application/application-client.vala:106 +msgid "Log IMAP network deserialization" +msgstr "IMAP-netwerkdeserialisatie loggen" + +#. / Command line option. "Normalization" can also be called +#. / "synchronization". +#: src/client/application/application-client.vala:110 +msgid "Log folder normalization" +msgstr "Mapnormalisatie loggen" + +#. / Command line option +#: src/client/application/application-client.vala:113 +msgid "Log network activity" +msgstr "Netwerkactiviteit loggen" + +#. / Command line option +#: src/client/application/application-client.vala:116 +msgid "Log periodic activity" +msgstr "Periodieke activiteit loggen" + +#. / Command line option. The IMAP replay queue is how changes +#. / on the server are replicated on the client. It could +#. / also be called the IMAP events queue. +#: src/client/application/application-client.vala:121 +msgid "Log IMAP replay queue" +msgstr "IMAP-replaywachtrij loggen" + +#. / Command line option. Serialization is how commands and +#. / responses are converted into a stream of bytes for +#. / network transmission +#: src/client/application/application-client.vala:126 +msgid "Log IMAP network serialization" +msgstr "IMAP-netwerkserialisatie loggen" + +#. / Command line option +#: src/client/application/application-client.vala:129 +msgid "Log database queries (generates lots of messages)" +msgstr "Databasequery’s loggen (genereert veel berichten)" + +#. / Command line option +#: src/client/application/application-client.vala:132 +msgid "Perform a graceful quit" +msgstr "Sierlijk afsluiten" + +#: src/client/application/application-client.vala:134 +msgid "Open a new window" +msgstr "Een nieuw venster openen" + +#. / Command line option +#: src/client/application/application-client.vala:137 +msgid "Revoke all pinned TLS server certificates" +msgstr "Alle gepinde TLS-servercertificaten intrekken" + +#. / Command line option +#: src/client/application/application-client.vala:140 +msgid "Display program version" +msgstr "Programmaversie weergeven" + +#. / Application runtime information label +#: src/client/application/application-client.vala:264 +msgid "Geary version" +msgstr "Geary-versie" + +#. / Application runtime information label +#: src/client/application/application-client.vala:266 +msgid "Geary revision" +msgstr "Geary-revisie" + +#. / Application runtime information label +#: src/client/application/application-client.vala:268 +msgid "GTK version" +msgstr "GTK-versie" + +#. / Applciation runtime information label +#: src/client/application/application-client.vala:275 +msgid "GLib version" +msgstr "GLib-versie" + +#. / Application runtime information label +#: src/client/application/application-client.vala:282 +msgid "WebKitGTK version" +msgstr "WebKitGTK-versie" + +#. / Application runtime information label +#: src/client/application/application-client.vala:289 +msgid "Desktop environment" +msgstr "Bureaubladomgeving" + +#. Translators: This is the file type displayed for +#. attachments with unknown file types. +#: src/client/application/application-client.vala:291 +#: src/client/components/components-attachment-pane.vala:91 +msgid "Unknown" +msgstr "Onbekend" + +#. / Application runtime information label +#: src/client/application/application-client.vala:321 +msgid "Distribution name" +msgstr "Distributienaam" + +#. / Application runtime information label +#: src/client/application/application-client.vala:326 +msgid "Distribution release" +msgstr "Distributie-uitgave" + +#. / Application runtime information label +#: src/client/application/application-client.vala:334 +msgid "Installation prefix" +msgstr "Installatievoorvoegsel" + +#: src/client/application/application-client.vala:587 +#, c-format +msgid "About %s" +msgstr "Over %s" + +#. Translators: add your name and email address to receive +#. credit in the About dialog For example: Yamada Taro +#. +#: src/client/application/application-client.vala:591 +msgid "translator-credits" +msgstr "" +"Bas Duineveld \n" +"Nathan Follens \n" +"Justin van Steijn \n" +"\n" +"Meer info over Gnome-NL http://nl.gnome.org" + +#. / Warning printed to the console when a deprecated +#. / command line option is used. +#: src/client/application/application-client.vala:937 +msgid "The `--hidden` option is deprecated and will be removed in the future." +msgstr "" +"De optie `--hidden` is verouderd en zal in de toekomst verwijderd worden." + +#. / Command line warning, string substitution +#. / is the given argument +#: src/client/application/application-client.vala:970 +#, c-format +msgid "Unrecognised program argument: “%s”" +msgstr "Onbekende programmaoptie ‘%s’" + #. / Notification title. -#: src/client/application/application-controller.vala:551 +#: src/client/application/application-controller.vala:458 #, c-format msgid "A problem occurred sending email for %s" msgstr "Er trad een fout op bij het verzenden van e-mail voor %s" #. / Notification body -#: src/client/application/application-controller.vala:555 +#: src/client/application/application-controller.vala:462 msgid "Email will not be sent until re-connected" msgstr "E-mails zullen niet verzonden worden totdat de verbinding hersteld is" -#: src/client/application/application-controller.vala:906 -msgid "Labels" -msgstr "Labels" +#. / Translators: Label for in-app notification +#: src/client/application/application-controller.vala:568 +msgid "Conversation marked" +msgid_plural "Conversations marked" +msgstr[0] "Gesprek gemarkeerd" +msgstr[1] "Gesprekken gemarkeerd" -#. give the user two options: reset the Account local store, or exit Geary. A third -#. could be done to leave the Account in an unopened state, but we don't currently -#. have provisions for that. -#: src/client/application/application-controller.vala:919 +#. / Translators: Label for in-app notification +#: src/client/application/application-controller.vala:574 +msgid "Conversation un-marked" +msgid_plural "Conversations un-marked" +msgstr[0] "Gespreksmarkering verwijderd" +msgstr[1] "Gespreksmarkering verwijderd" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:600 +#: src/client/application/application-controller.vala:684 +#, c-format +msgid "Conversation moved to %s" +msgid_plural "Conversations moved to %s" +msgstr[0] "Gesprek verplaatst naar %s" +msgstr[1] "Gesprekken verplaatst naar %s" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the source folder. +#. / Translators: Label for in-app notification. String +#. / substitution is the name of the destination folder. +#: src/client/application/application-controller.vala:608 +#: src/client/application/application-controller.vala:630 +#, c-format +msgid "Conversation restored to %s" +msgid_plural "Conversations restored to %s" +msgstr[0] "Gesprek hersteld naar %s" +msgstr[1] "Gesprekken hersteld naar %s" + +#. / Translators: Label for in-app notification. +#: src/client/application/application-controller.vala:651 +msgid "Conversation archived" +msgid_plural "Conversations archived" +msgstr[0] "Gesprek gearchiveerd" +msgstr[1] "Gesprekken gearchiveerd" + +#. / Translators: Label for in-app notification. String +#. / substitution is the name of the destination folder. +#: src/client/application/application-controller.vala:707 +#, c-format +msgid "Message restored to %s" +msgid_plural "Messages restored to %s" +msgstr[0] "Bericht hersteld naar %s" +msgstr[1] "Berichten hersteld naar %s" + +#. / Translators: Label for in-app notification. +#: src/client/application/application-controller.vala:728 +msgid "Message archived" +msgid_plural "Messages archived" +msgstr[0] "Bericht gearchiveerd" +msgstr[1] "Berichten gearchiveerd" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:763 +#, c-format +msgid "Message moved to %s" +msgid_plural "Messages moved to %s" +msgstr[0] "Bericht verplaatst naar %s" +msgstr[1] "Berichten verplaatst naar %s" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:791 +#, c-format +msgid "Conversation labelled as %s" +msgid_plural "Conversations labelled as %s" +msgstr[0] "Gesprek gemarkeerd als %s" +msgstr[1] "Gesprekken gemarkeerd als %s" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:799 +#, c-format +msgid "Conversation un-labelled as %s" +msgid_plural "Conversations un-labelled as %s" +msgstr[0] "Markering van gesprek als %s verwijderd" +msgstr[1] "Markering van gesprekken als %s verwijderd" + +#: src/client/application/application-controller.vala:1222 #, c-format msgid "Unable to open the database for %s" msgstr "De lokale database van %s kan niet geopend worden" -#: src/client/application/application-controller.vala:920 +#: src/client/application/application-controller.vala:1223 #, c-format msgid "" "There was an error opening the local mail database for this account. This is " @@ -819,20 +1131,20 @@ msgstr "" "Het opnieuw bouwen van de database verwijdert alle lokale e-mailberichten en " "bijlagen. Mail op de server zal niet worden aangetast." -#: src/client/application/application-controller.vala:922 +#: src/client/application/application-controller.vala:1225 msgid "_Rebuild" msgstr "_Opnieuw bouwen" -#: src/client/application/application-controller.vala:922 +#: src/client/application/application-controller.vala:1225 msgid "E_xit" msgstr "_Afsluiten" -#: src/client/application/application-controller.vala:931 +#: src/client/application/application-controller.vala:1235 #, c-format msgid "Unable to rebuild database for “%s”" msgstr "De lokale database van ‘%s’ kan niet opnieuw gebouwd worden" -#: src/client/application/application-controller.vala:932 +#: src/client/application/application-controller.vala:1236 #, c-format msgid "" "Error during rebuild:\n" @@ -843,18 +1155,111 @@ msgstr "" "\n" "%s" -#: src/client/application/application-controller.vala:1726 +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:1559 #, c-format -msgid "Moved %d message to %s" -msgid_plural "Moved %d messages to %s" -msgstr[0] "%d bericht verplaatst naar %s" -msgstr[1] "%d berichten verplaatst naar %s" +msgid "Email sent to %s" +msgstr "E-mail verzonden naar %s" -#: src/client/application/application-controller.vala:1736 +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2642 +#, c-format +msgid "Email to %s queued for delivery" +msgstr "E-mail in wachtrij voor verzenden naar %s" + +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2706 +#, c-format +msgid "Email to %s saved" +msgstr "E-mail naar %s opgeslagen" + +#. / Translators: A label for an in-app notification. +#: src/client/application/application-controller.vala:2721 +#: src/client/application/application-controller.vala:2779 +msgid "Composer could not be restored" +msgstr "Opstelvenster kon niet hersteld worden" + +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2764 +#, c-format +msgid "Email to %s discarded" +msgstr "E-mail naar %s verwijderd" + +#. / Translators: Main window title, first string +#. / substitution being the currently selected folder name, +#. / the second being the selected account name. +#: src/client/application/application-main-window.vala:560 +#, c-format +msgid "%s — %s" +msgstr "%s — %s" + +#: src/client/application/application-main-window.vala:967 +msgid "Labels" +msgstr "Labels" + +#. / Translators: Primary text for a confirmation dialog +#: src/client/application/application-main-window.vala:1306 +msgid "Do you want to permanently delete this conversation?" +msgid_plural "Do you want to permanently delete these conversations?" +msgstr[0] "Wilt u dit gesprek definitief verwijderen?" +msgstr[1] "Wilt u deze gesprekken definitief verwijderen?" + +#: src/client/application/application-main-window.vala:1311 +#: src/client/application/application-main-window.vala:1326 +msgid "Delete" +msgstr "Verwijderen" + +#. / Translators: Primary text for a confirmation dialog +#: src/client/application/application-main-window.vala:1321 +msgid "Do you want to permanently delete this message?" +msgid_plural "Do you want to permanently delete these messages?" +msgstr[0] "Wilt u dit bericht definitief verwijderen?" +msgstr[1] "Wilt u deze berichten definitief verwijderen?" + +# ‘van uw ...-map legen’ is niet duidelijk, voor verwijderen gekozen omdat het hierom gaat. -Justin +#: src/client/application/application-main-window.vala:1334 +#, c-format +msgid "Empty all email from your %s folder?" +msgstr "Alle e-mails uit uw %s-map verwijderen?" + +#: src/client/application/application-main-window.vala:1337 +msgid "This removes the email from Geary and your email server." +msgstr "Dit verwijdert de e-mail van Geary en uw e-mailserver." + +#: src/client/application/application-main-window.vala:1338 +msgid "This cannot be undone." +msgstr "Dit kan niet ongedaan gemaakt worden." + +#: src/client/application/application-main-window.vala:1339 +#, c-format +msgid "Empty %s" +msgstr "Lege %s" + +#: src/client/application/application-main-window.vala:1669 +#, c-format +msgid "%s (%d)" +msgstr "%s (%d)" + +#. Translators: The first argument will be a +#. description of the document type, the second will +#. be a human-friendly size string. For example: +#. Document (100.9MB) +#. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" +#: src/client/components/components-attachment-pane.vala:107 +#: src/client/composer/composer-widget.vala:1834 +#, c-format +msgid "%s (%s)" +msgstr "%s (%s)" + +#: src/client/components/components-attachment-pane.vala:379 msgid "Are you sure you want to open these attachments?" msgstr "Weet u zeker dat u deze bijlagen wilt openen?" -#: src/client/application/application-controller.vala:1737 +#: src/client/components/components-attachment-pane.vala:380 msgid "" "Attachments may cause damage to your system if opened. Only open files from " "trusted sources." @@ -862,361 +1267,164 @@ msgstr "" "Bijlagen kunnen uw systeem schade toebrengen wanneer deze worden geopend. " "Open alleen bestanden van vertrouwde bronnen." -#: src/client/application/application-controller.vala:1738 +#: src/client/components/components-attachment-pane.vala:381 msgid "Don’t _ask me again" msgstr "_Niet opnieuw vragen" -#. Translators: Dialog primary label when prompting to -#. overwrite a file. The string substitution is the file'sx -#. name. -#: src/client/application/application-controller.vala:1861 -#, c-format -msgid "A file named “%s” already exists. Do you want to replace it?" -msgstr "Het bestand ‘%s’ bestaat al. Wilt u het vervangen?" - -#. Translators: Dialog secondary label when prompting to -#. overwrite a file. The string substitution is the parent -#. folder's name. -#: src/client/application/application-controller.vala:1868 -#, c-format -msgid "" -"The file already exists in “%s”. Replacing it will overwrite its contents." -msgstr "Het bestand bestaat al in ‘%s’. Vervangen overschrijft de inhoud." - -#: src/client/application/application-controller.vala:1872 -msgid "_Replace" -msgstr "_Vervangen" - -# ‘van uw ...-map legen’ is niet duidelijk, voor verwijderen gekozen omdat het hierom gaat. -Justin -#: src/client/application/application-controller.vala:2232 -#, c-format -msgid "Empty all email from your %s folder?" -msgstr "Alle e-mails uit uw %s-map verwijderen?" - -#: src/client/application/application-controller.vala:2233 -msgid "This removes the email from Geary and your email server." -msgstr "Dit verwijdert de e-mail van Geary en uw e-mailserver." - -#: src/client/application/application-controller.vala:2234 -msgid "This cannot be undone." -msgstr "Dit kan niet ongedaan gemaakt worden." - -#: src/client/application/application-controller.vala:2235 -#, c-format -msgid "Empty %s" -msgstr "Lege %s" - -#: src/client/application/application-controller.vala:2252 -#, c-format -msgid "Error emptying %s" -msgstr "Fout bij legen van %s" - -#: src/client/application/application-controller.vala:2283 -msgid "Do you want to permanently delete this message?" -msgid_plural "Do you want to permanently delete these messages?" -msgstr[0] "Wilt u dit bericht definitief verwijderen?" -msgstr[1] "Wilt u deze berichten definitief verwijderen?" - -#: src/client/application/application-controller.vala:2285 -msgid "Delete" -msgstr "Verwijderen" - -#: src/client/application/application-controller.vala:2299 -#, c-format -msgid "Trashed %d message" -msgid_plural "Trashed %d messages" -msgstr[0] "%d bericht verwijderd" -msgstr[1] "%d berichten verwijderd" - -#: src/client/application/application-controller.vala:2346 -#, c-format -msgid "Archived %d message" -msgid_plural "Archived %d messages" -msgstr[0] "%d bericht gearchiveerd" -msgstr[1] "%d berichten gearchiveerd" - -#. Translators: The label for an in-app notification. The -#. string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2474 -#, c-format -msgid "Successfully sent mail to %s." -msgstr "Bericht verzonden naar %s." - -#: src/client/application/application-controller.vala:2552 -msgid "Failed to open default text editor." -msgstr "Openen van standaard tekstverwerker mislukt." - -#: src/client/application/geary-application.vala:31 -msgid "Copyright 2016 Software Freedom Conservancy Inc." -msgstr "Copyright 2016 Software Freedom Conservancy Inc." - -#: src/client/application/geary-application.vala:32 -msgid "Copyright 2016-2019 Geary Development Team." -msgstr "Copyright 2016-2019 Geary-ontwikkelingsteam." - -#: src/client/application/geary-application.vala:34 -msgid "Visit the Geary web site" -msgstr "Bezoek de Geary-website" - -#. / Command line option -#: src/client/application/geary-application.vala:109 -msgid "Print debug logging" -msgstr "Debuglogboeken weergeven" - -#. / Command line option -#: src/client/application/geary-application.vala:112 -msgid "Start with the main window hidden (deprecated)" -msgstr "Starten met verborgen hoofdvenster (verouderd)" - -#. / Command line option -#: src/client/application/geary-application.vala:115 -msgid "Enable WebKitGTK Inspector in web views" -msgstr "WebKitGTK-controleur inschakelen in webweergaven" - -#. / Command line option -#: src/client/application/geary-application.vala:118 -msgid "Log conversation monitoring" -msgstr "Gesprekscontrole loggen" - -#. / Command line option -#: src/client/application/geary-application.vala:121 -msgid "Log IMAP network deserialization" -msgstr "IMAP-netwerkdeserialisatie loggen" - -#. / Command line option. "Normalization" can also be called -#. / "synchronization". -#: src/client/application/geary-application.vala:125 -msgid "Log folder normalization" -msgstr "Mapnormalisatie loggen" - -#. / Command line option -#: src/client/application/geary-application.vala:128 -msgid "Log network activity" -msgstr "Netwerkactiviteit loggen" - -#. / Command line option -#: src/client/application/geary-application.vala:131 -msgid "Log periodic activity" -msgstr "Periodieke activiteit loggen" - -#. / Command line option. The IMAP replay queue is how changes -#. / on the server are replicated on the client. It could -#. / also be called the IMAP events queue. -#: src/client/application/geary-application.vala:136 -msgid "Log IMAP replay queue" -msgstr "IMAP-replaywachtrij loggen" - -#. / Command line option. Serialization is how commands and -#. / responses are converted into a stream of bytes for -#. / network transmission -#: src/client/application/geary-application.vala:141 -msgid "Log IMAP network serialization" -msgstr "IMAP-netwerkserialisatie loggen" - -#. / Command line option -#: src/client/application/geary-application.vala:144 -msgid "Log database queries (generates lots of messages)" -msgstr "Databasequery’s loggen (genereert veel berichten)" - -#. / Command line option -#: src/client/application/geary-application.vala:147 -msgid "Perform a graceful quit" -msgstr "Sierlijk afsluiten" - -#. / Command line option -#: src/client/application/geary-application.vala:150 -msgid "Revoke all pinned TLS server certificates" -msgstr "Alle gepinde TLS-servercertificaten intrekken" - -#. / Command line option -#: src/client/application/geary-application.vala:153 -msgid "Display program version" -msgstr "Programmaversie weergeven" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:280 -msgid "Geary version" -msgstr "Geary-versie" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:282 -msgid "Geary revision" -msgstr "Geary-revisie" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:284 -msgid "GTK version" -msgstr "GTK-versie" - -#. / Applciation runtime information label -#: src/client/application/geary-application.vala:291 -msgid "GLib version" -msgstr "GLib-versie" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:298 -msgid "WebKitGTK version" -msgstr "WebKitGTK-versie" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:305 -msgid "Desktop environment" -msgstr "Bureaubladomgeving" - -#. Translators: This is the file type displayed for -#. attachments with unknown file types. -#: src/client/application/geary-application.vala:307 -#: src/client/conversation-viewer/conversation-email.vala:159 -msgid "Unknown" -msgstr "Onbekend" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:337 -msgid "Distribution name" -msgstr "Distributienaam" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:342 -msgid "Distribution release" -msgstr "Distributie-uitgave" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:350 -msgid "Installation prefix" -msgstr "Installatievoorvoegsel" - -#: src/client/application/geary-application.vala:510 -#, c-format -msgid "About %s" -msgstr "Over %s" - -#. Translators: add your name and email address to receive -#. credit in the About dialog For example: Yamada Taro -#. -#: src/client/application/geary-application.vala:514 -msgid "translator-credits" -msgstr "" -"Bas Duineveld \n" -"Nathan Follens \n" -"Justin van Steijn \n" -"\n" -"Meer info over Gnome-NL http://nl.gnome.org" - -#. / Warning printed to the console when a deprecated -#. / command line option is used. -#: src/client/application/geary-application.vala:798 -msgid "The `--hidden` option is deprecated and will be removed in the future." -msgstr "" -"De optie `--hidden` is verouderd en zal in de toekomst verwijderd worden." - -#. / Command line warning, string substitution -#. / is the given argument -#: src/client/application/geary-application.vala:830 -#, c-format -msgid "Unrecognised program argument: “%s”" -msgstr "Onbekende programmaoptie ‘%s’" - -#: src/client/components/components-inspector.vala:68 +#: src/client/components/components-inspector.vala:72 msgid "Inspector" msgstr "Controleur" #. / Translators: Title for Inspector logs pane #. / Translators: Title for problem report dialog logs pane -#: src/client/components/components-inspector.vala:77 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:91 +#: src/client/components/components-inspector.vala:87 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:102 msgid "Logs" msgstr "Logboeken" #. / Translators: Title for Inspector system system information pane #. / Translators: Title for problem report system information #. / pane -#: src/client/components/components-inspector.vala:81 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:94 +#: src/client/components/components-inspector.vala:91 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:105 msgid "System" msgstr "Systeem" #. Button label for saving problem report information -#: src/client/components/components-inspector.vala:198 -#: src/client/components/components-inspector.vala:201 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:210 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:213 +#: src/client/components/components-inspector.vala:208 +#: src/client/components/components-inspector.vala:211 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:221 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:224 #: ui/problem-details-dialog.ui:42 msgid "Save As" msgstr "Opslaan als" -#: src/client/components/components-inspector.vala:202 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:214 +#: src/client/components/components-inspector.vala:212 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:225 #: ui/accounts_editor_servers_pane.ui:17 msgid "Cancel" msgstr "Annuleren" +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:43 +msgid "_Automatically select next message" +msgstr "Volgend bericht _automatisch selecteren" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:53 +msgid "_Display conversation preview" +msgstr "_Berichtvoorbeeld weergeven" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:63 +msgid "Use _three pane view" +msgstr "Overzich_t met drie panelen gebruiken" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:73 +msgid "Use _single key email shortcuts" +msgstr "E-mail-_sneltoetsen met 1 toets gebruiken" + +#: src/client/components/components-preferences-window.vala:75 +msgid "" +"Enable keyboard shortcuts for email actions that do not require pressing " +"" +msgstr "" +"Schakel sneltoetsen in voor e-mailacties waarvoor er niet op gedrukt " +"moet worden" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:86 +msgid "_Watch for new mail when closed" +msgstr "Controleren op nieu_we e-mail indien gesloten" + +#. / Translators: Preferences tooltip +#: src/client/components/components-preferences-window.vala:90 +msgid "Geary will keep running after all windows are closed" +msgstr "Geary zal blijven draaien wanneer alle vensters gesloten zijn" + +#. / Translators: Search entry placeholder text +#: src/client/components/components-search-bar.vala:12 +#: src/client/folder-list/folder-list-search-branch.vala:53 +#: src/engine/api/geary-special-folder-type.vala:51 +msgid "Search" +msgstr "Zoeken" + +#. / Translators: Search entry tooltip +#: src/client/components/components-search-bar.vala:32 +msgid "Search all mail in account for keywords" +msgstr "Trefwoorden zoeken in alle berichten van account" + +#. / Translators: Search entry placeholder, string +#. / replacement is the name of an account +#: src/client/components/components-search-bar.vala:81 +#: src/client/folder-list/folder-list-search-branch.vala:54 +#, c-format +msgid "Search %s account" +msgstr "%s-account doorzoeken" + #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but one is not provided. -#: src/client/components/components-validator.vala:378 +#: src/client/components/components-validator.vala:390 msgid "An email address is required" msgstr "Een e-mailadres is vereist" #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but the address is invalid. -#: src/client/components/components-validator.vala:382 +#: src/client/components/components-validator.vala:394 msgid "Not a valid email address" msgstr "Geen geldig e-mailadres" #. Translators: Tooltip used when an entry requires a valid, #. resolvable server name to be entered, but one is not #. provided. -#: src/client/components/components-validator.vala:428 +#: src/client/components/components-validator.vala:440 msgid "A server name is required" msgstr "Servernaam vereist" #. Translators: Tooltip used when an entry requires a valid #. server name to be entered, but it was unable to be #. looked-up in the DNS. -#: src/client/components/components-validator.vala:433 +#: src/client/components/components-validator.vala:445 msgid "Could not look up server name" msgstr "Kon servernaam niet opzoeken" -#: src/client/components/main-toolbar.vala:139 +#: src/client/components/main-toolbar.vala:116 msgid "Mark conversation" msgid_plural "Mark conversations" msgstr[0] "Gesprek markeren" msgstr[1] "Gesprekken markeren" -#: src/client/components/main-toolbar.vala:144 +#: src/client/components/main-toolbar.vala:121 msgid "Add label to conversation" msgid_plural "Add label to conversations" msgstr[0] "Label aan gesprek toevoegen" msgstr[1] "Label aan gesprekken toevoegen" -#: src/client/components/main-toolbar.vala:149 +#: src/client/components/main-toolbar.vala:126 msgid "Move conversation" msgid_plural "Move conversations" msgstr[0] "Gesprek verplaatsen" msgstr[1] "Gesprekken verplaatsen" -#: src/client/components/main-toolbar.vala:154 +#: src/client/components/main-toolbar.vala:131 msgid "Archive conversation" msgid_plural "Archive conversations" msgstr[0] "Gesprek archiveren" msgstr[1] "Gesprekken archiveren" -#: src/client/components/main-toolbar.vala:163 +#: src/client/components/main-toolbar.vala:142 msgid "Move conversation to Trash" msgid_plural "Move conversations to Trash" msgstr[0] "Gesprek verplaatsen naar prullenbak" msgstr[1] "Gesprekken verplaatsen naar prullenbak" -#: src/client/components/main-toolbar.vala:171 +#: src/client/components/main-toolbar.vala:152 msgid "Delete conversation" msgid_plural "Delete conversations" msgstr[0] "Gesprek verwijderen" msgstr[1] "Gesprekken verwijderen" -#: src/client/components/main-window.vala:738 -#, c-format -msgid "%s (%d)" -msgstr "%s (%d)" - #. Translators: Info bar title for a generic account #. problem. #: src/client/components/main-window-info-bar.vala:44 @@ -1288,28 +1496,6 @@ msgstr "Bekijk technische details over de fout" msgid "_Retry" msgstr "Opnieu_w" -#: src/client/components/search-bar.vala:8 -#: src/client/folder-list/folder-list-search-branch.vala:38 -#: src/engine/api/geary-special-folder-type.vala:51 -msgid "Search" -msgstr "Zoeken" - -#. Search entry. -#: src/client/components/search-bar.vala:23 -msgid "Search all mail in account for keywords (Ctrl+S)" -msgstr "Trefwoorden zoeken in alle berichten van account (Ctrl+S)" - -#: src/client/components/search-bar.vala:83 -#, c-format -msgid "Indexing %s account" -msgstr "Bezig met indexeren van %s-account" - -#: src/client/components/search-bar.vala:110 -#: src/client/folder-list/folder-list-search-branch.vala:39 -#, c-format -msgid "Search %s account" -msgstr "%s-account doorzoeken" - #. / Displayed in the space-limited status bar while a message is in the process of being sent. #: src/client/components/status-bar.vala:26 msgid "Sending…" @@ -1350,15 +1536,15 @@ msgstr "_Sluiten" msgid "_Discard" msgstr "_Verwerpen" -#: src/client/components/stock.vala:25 ui/main-toolbar-menus.ui:56 +#: src/client/components/stock.vala:25 ui/main-toolbar-menus.ui:52 msgid "_Help" msgstr "_Hulp" -#: src/client/components/stock.vala:26 ui/conversation-email-menus.ui:77 +#: src/client/components/stock.vala:26 ui/components-attachment-pane-menus.ui:7 msgid "_Open" msgstr "_Openen" -#: src/client/components/stock.vala:27 ui/main-toolbar-menus.ui:46 +#: src/client/components/stock.vala:27 ui/main-toolbar-menus.ui:42 msgid "_Preferences" msgstr "_Voorkeuren" @@ -1375,7 +1561,8 @@ msgstr "_Afsluiten" msgid "_Remove" msgstr "_Verwijderen" -#: src/client/components/stock.vala:31 ui/conversation-email-menus.ui:83 +#: src/client/components/stock.vala:31 +#: ui/components-attachment-pane-menus.ui:11 msgid "_Save" msgstr "Op_slaan" @@ -1383,40 +1570,46 @@ msgstr "Op_slaan" msgid "_Keep" msgstr "_Behouden" -#: src/client/composer/composer-link-popover.vala:149 +#: src/client/composer/composer-link-popover.vala:139 msgid "Link URL is not correctly formatted, e.g. http://example.com" msgstr "" "Verwijzings-URL is niet correct geformatteerd, bv. https://voorbeeld.be" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid link URL" msgstr "Ongeldige verwijzings-URL" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid email address" msgstr "Ongeldig e-mailadres" -#: src/client/composer/composer-widget.vala:156 +#. / Translators: Title for an empty composer window +#: src/client/composer/composer-widget.vala:30 +msgid "New Message" +msgstr "Nieuw bericht" + +#: src/client/composer/composer-widget.vala:217 msgid "Saved" msgstr "Opgeslagen" -#: src/client/composer/composer-widget.vala:157 +#: src/client/composer/composer-widget.vala:218 msgid "Saving" msgstr "Bezig met opslaan" -#: src/client/composer/composer-widget.vala:158 +#: src/client/composer/composer-widget.vala:219 msgid "Error saving" msgstr "Opslaan mislukt" -#: src/client/composer/composer-widget.vala:159 +#: src/client/composer/composer-widget.vala:220 msgid "Press Backspace to delete quote" msgstr "Druk op Backspace om citaat te verwijderen" #. Translators: This is list of keywords, separated by pipe ("|") #. characters, that suggest an attachment; since this is full-word -#. checking, include all variants of each word. No spaces are -#. allowed. -#: src/client/composer/composer-widget.vala:168 +#. checking, include all variants of each word. No spaces are +#. allowed. The words will be converted to lower case based on +#. locale and English versions included automatically. +#: src/client/composer/composer-widget.vala:236 msgid "" "attach|attaching|attaches|attachment|attachments|attached|enclose|enclosed|" "enclosing|encloses|enclosure|enclosures" @@ -1428,100 +1621,90 @@ msgstr "" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. Keep, Discard or Cancel. -#: src/client/composer/composer-widget.vala:1181 +#: src/client/composer/composer-widget.vala:843 msgid "Do you want to keep or discard this draft message?" msgstr "Wilt u dit conceptbericht bewaren of verwerpen?" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. only Discard or Cancel. -#: src/client/composer/composer-widget.vala:1211 +#: src/client/composer/composer-widget.vala:869 msgid "Do you want to discard this draft message?" msgstr "Wilt u dit conceptbericht verwerpen?" -#: src/client/composer/composer-widget.vala:1330 +#: src/client/composer/composer-widget.vala:1503 msgid "Send message with an empty subject and body?" msgstr "Bericht zonder onderwerp en inhoud verzenden?" -#: src/client/composer/composer-widget.vala:1332 +#: src/client/composer/composer-widget.vala:1505 msgid "Send message with an empty subject?" msgstr "Bericht zonder onderwerp verzenden?" -#: src/client/composer/composer-widget.vala:1334 +#: src/client/composer/composer-widget.vala:1507 msgid "Send message with an empty body?" msgstr "Bericht zonder inhoud verzenden?" -#: src/client/composer/composer-widget.vala:1338 +#: src/client/composer/composer-widget.vala:1516 msgid "Send message without an attachment?" msgstr "Bericht zonder bijlage verzenden?" -#: src/client/composer/composer-widget.vala:1652 +#: src/client/composer/composer-widget.vala:1820 #, c-format msgid "“%s” already attached for delivery." msgstr "‘%s’ is al toegevoegd voor verzending." -#. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" -#. Translators: The first argument will be a -#. description of the document type, the second will -#. be a human-friendly size string. For example: -#. Document (100.9MB) -#: src/client/composer/composer-widget.vala:1660 -#: src/client/conversation-viewer/conversation-email.vala:173 -#, c-format -msgid "%s (%s)" -msgstr "%s (%s)" - -#: src/client/composer/composer-widget.vala:1697 -#, c-format -msgid "“%s” could not be found." -msgstr "‘%s’ kon niet worden gevonden." - -#: src/client/composer/composer-widget.vala:1703 -#, c-format -msgid "“%s” is a folder." -msgstr "‘%s’ is een map." - -#: src/client/composer/composer-widget.vala:1709 +#: src/client/composer/composer-widget.vala:1856 +#: src/client/composer/composer-widget.vala:1906 #, c-format msgid "“%s” is an empty file." msgstr "‘%s’ is een leeg bestand." -#: src/client/composer/composer-widget.vala:1722 +#: src/client/composer/composer-widget.vala:1894 +#, c-format +msgid "“%s” could not be found." +msgstr "‘%s’ kon niet worden gevonden." + +#: src/client/composer/composer-widget.vala:1900 +#, c-format +msgid "“%s” is a folder." +msgstr "‘%s’ is een map." + +#: src/client/composer/composer-widget.vala:1919 #, c-format msgid "“%s” could not be opened for reading." msgstr "Leesfout bij openen van ‘%s’." -#: src/client/composer/composer-widget.vala:1730 +#: src/client/composer/composer-widget.vala:1927 msgid "Cannot add attachment" msgstr "Toevoegen van bijlage mislukt" #. Translators: Human-readable version of the RFC 822 To header -#: src/client/composer/composer-widget.vala:1787 -#: src/client/conversation-viewer/conversation-email.vala:976 -#: src/client/util/util-email.vala:216 ui/conversation-message.ui:312 +#: src/client/composer/composer-widget.vala:1984 +#: src/client/conversation-viewer/conversation-email.vala:559 +#: src/client/util/util-email.vala:235 ui/conversation-message.ui:312 msgid "To:" msgstr "Aan:" #. Translators: Human-readable version of the RFC 822 CC header -#: src/client/composer/composer-widget.vala:1793 -#: src/client/conversation-viewer/conversation-email.vala:981 -#: src/client/util/util-email.vala:221 ui/conversation-message.ui:357 +#: src/client/composer/composer-widget.vala:1990 +#: src/client/conversation-viewer/conversation-email.vala:564 +#: src/client/util/util-email.vala:240 ui/conversation-message.ui:357 msgid "Cc:" msgstr "Cc:" #. Translators: Human-readable version of the RFC 822 BCC header -#: src/client/composer/composer-widget.vala:1799 -#: src/client/conversation-viewer/conversation-email.vala:986 +#: src/client/composer/composer-widget.vala:1996 +#: src/client/conversation-viewer/conversation-email.vala:569 #: ui/conversation-message.ui:402 msgid "Bcc:" msgstr "Bcc:" #. Translators: Human-readable version of the RFC 822 Reply-To header -#: src/client/composer/composer-widget.vala:1805 +#: src/client/composer/composer-widget.vala:2002 msgid "Reply-To: " -msgstr "Beantwoord: " +msgstr "Antwoorden aan: " -#: src/client/composer/composer-widget.vala:1945 +#: src/client/composer/composer-widget.vala:2254 msgid "Select Color" msgstr "Kleur selecteren" @@ -1530,41 +1713,37 @@ msgstr "Kleur selecteren" #. printf argument will be the alternate email address, #. and the second will be the account's primary email #. address. -#: src/client/composer/composer-widget.vala:2137 +#: src/client/composer/composer-widget.vala:2440 #, c-format msgid "%1$s via %2$s" msgstr "%1$s via %2$s" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: src/client/composer/composer-widget.vala:2192 +#: src/client/composer/composer-widget.vala:2496 msgid "_From:" msgstr "_Van:" #. Translators: This is the name of the file chooser filter #. when inserting an image in the composer. -#: src/client/composer/composer-widget.vala:2472 +#: src/client/composer/composer-widget.vala:2801 msgid "Images" msgstr "Afbeeldingen" -#: src/client/composer/composer-window.vala:14 -msgid "New Message" -msgstr "Nieuw bericht" - -#: src/client/composer/spell-check-popover.vala:108 +#: src/client/composer/spell-check-popover.vala:125 msgid "Remove this language from the preferred list" msgstr "Deze taal verwijderen uit de voorkeurslijst" -#: src/client/composer/spell-check-popover.vala:112 +#: src/client/composer/spell-check-popover.vala:129 msgid "Add this language to the preferred list" msgstr "Deze taal toevoegen aan de voorkeurslijst" -#: src/client/composer/spell-check-popover.vala:199 +#: src/client/composer/spell-check-popover.vala:225 msgid "Search for more languages" msgstr "Zoeken naar meer talen" #. / Translators: Context menu item -#: src/client/conversation-list/conversation-list-view.vala:337 +#: src/client/conversation-list/conversation-list-view.vala:335 msgid "Move conversation to _Trash" msgid_plural "Move conversations to _Trash" msgstr[0] "Gesprek verplaa_tsen naar prullenbak" @@ -1577,38 +1756,38 @@ msgid_plural "_Delete conversations" msgstr[0] "Gesprek verwij_deren" msgstr[1] "Gesprekken verwij_deren" -#: src/client/conversation-list/conversation-list-view.vala:356 +#: src/client/conversation-list/conversation-list-view.vala:360 #: ui/main-toolbar-menus.ui:5 msgid "Mark as _Read" msgstr "Markeren als _gelezen" -#: src/client/conversation-list/conversation-list-view.vala:359 +#: src/client/conversation-list/conversation-list-view.vala:368 #: ui/main-toolbar-menus.ui:9 msgid "Mark as _Unread" msgstr "Markeren als _ongelezen" -#: src/client/conversation-list/conversation-list-view.vala:362 +#: src/client/conversation-list/conversation-list-view.vala:376 #: ui/main-toolbar-menus.ui:17 msgid "U_nstar" msgstr "Ster _verwijderen" -#: src/client/conversation-list/conversation-list-view.vala:364 +#: src/client/conversation-list/conversation-list-view.vala:383 #: ui/main-toolbar-menus.ui:13 msgid "_Star" msgstr "_Ster toevoegen" #. Translators: Menu item to reply to a specific message. -#: src/client/conversation-list/conversation-list-view.vala:367 +#: src/client/conversation-list/conversation-list-view.vala:392 #: ui/conversation-email-menus.ui:9 msgid "_Reply" msgstr "_Beantwoorden" -#: src/client/conversation-list/conversation-list-view.vala:368 +#: src/client/conversation-list/conversation-list-view.vala:398 msgid "R_eply All" msgstr "_Allen beantwoorden" #. Translators: Menu item to forward a specific message. -#: src/client/conversation-list/conversation-list-view.vala:369 +#: src/client/conversation-list/conversation-list-view.vala:404 #: ui/conversation-email-menus.ui:21 msgid "_Forward" msgstr "_Doorsturen" @@ -1618,24 +1797,24 @@ msgid "Me" msgstr "Ik" #. Translators: Human-readable version of the RFC 822 From header -#: src/client/conversation-viewer/conversation-email.vala:971 -#: src/client/util/util-email.vala:207 +#: src/client/conversation-viewer/conversation-email.vala:554 +#: src/client/util/util-email.vala:226 msgid "From:" msgstr "Van:" #. Translators: Human-readable version of the RFC 822 Date header -#: src/client/conversation-viewer/conversation-email.vala:991 -#: src/client/util/util-email.vala:212 +#: src/client/conversation-viewer/conversation-email.vala:574 +#: src/client/util/util-email.vala:231 msgid "Date:" msgstr "Datum:" #. Translators: Human-readable version of the RFC 822 Subject header -#: src/client/conversation-viewer/conversation-email.vala:1001 -#: src/client/util/util-email.vala:210 +#: src/client/conversation-viewer/conversation-email.vala:584 +#: src/client/util/util-email.vala:229 msgid "Subject:" msgstr "Onderwerp:" -#: src/client/conversation-viewer/conversation-message.vala:129 +#: src/client/conversation-viewer/conversation-message.vala:128 msgid "This email address may have been forged" msgstr "Dit e-mailadres is mogelijk nep" @@ -1643,44 +1822,44 @@ msgstr "Dit e-mailadres is mogelijk nep" #. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:447 +#: src/client/conversation-viewer/conversation-message.vala:439 msgid "No sender" msgstr "Geen afzender" #. Translators: This separates multiple 'from' #. addresses in the compact header for a message. -#: src/client/conversation-viewer/conversation-message.vala:840 +#: src/client/conversation-viewer/conversation-message.vala:831 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Image Date: Thu, 27 Feb 2020 12:05:21 -0600 Subject: [PATCH 033/336] alert dialog: Align checkbutton to start, not end Fixes #714. --- src/client/dialogs/alert-dialog.vala | 1 - 1 file changed, 1 deletion(-) diff --git a/src/client/dialogs/alert-dialog.vala b/src/client/dialogs/alert-dialog.vala index 371b99d5..96abecba 100644 --- a/src/client/dialogs/alert-dialog.vala +++ b/src/client/dialogs/alert-dialog.vala @@ -108,7 +108,6 @@ class QuestionDialog : AlertDialog { checkbutton = new Gtk.CheckButton.with_mnemonic(checkbox_label); checkbutton.active = checkbox_default; - checkbutton.halign = Gtk.Align.END; checkbutton.toggled.connect(on_checkbox_toggled); get_message_area().pack_start(checkbutton); From 9a5ecac8405767214ae169dea1e654f081fb9295 Mon Sep 17 00:00:00 2001 From: Enrico Nicoletto Date: Fri, 28 Feb 2020 12:51:54 +0000 Subject: [PATCH 034/336] Update Brazilian Portuguese translation --- po/pt_BR.po | 782 +++++++++++++++++++++++++--------------------------- 1 file changed, 383 insertions(+), 399 deletions(-) diff --git a/po/pt_BR.po b/po/pt_BR.po index 2a6f7dee..11bbb114 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -1,5 +1,5 @@ # Brazilian Portuguese translation for geary. -# Copyright 2019 Software Freedom Conservancy Inc. +# Copyright 2020 Software Freedom Conservancy Inc. # This file is distributed under the same license as the geary package. # # Translators (Transifex): @@ -10,9 +10,8 @@ # Elder Marco , 2013 # Guilherme Gondim , 2013 # José Agnaldo Jr. , 2013 - # Translators (GNOME): -# Enrico Nicoletto , 2014, 2016, 2019. +# Enrico Nicoletto , 2014, 2016, 2019, 2020. # Freire de Almeida , 2016. # Ronan Arraes Jardim Chagas , 2016. # Isaac Ferreira Filho , 2018. @@ -22,16 +21,16 @@ msgid "" msgstr "" "Project-Id-Version: geary\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2019-11-28 14:38+0000\n" -"PO-Revision-Date: 2019-11-29 03:09-0300\n" -"Last-Translator: Rafael Fontenelle \n" +"POT-Creation-Date: 2020-02-25 11:10+0000\n" +"PO-Revision-Date: 2020-02-28 09:47-0300\n" +"Last-Translator: Enrico Nicoletto \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1)\n" -"X-Generator: Gtranslator 3.32.0\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 2.3\n" "X-Project-Style: gnome\n" #: desktop/geary-attach.contract.desktop.in:3 @@ -47,7 +46,7 @@ msgstr "Envia arquivos usando Geary" #: desktop/org.gnome.Geary.appdata.xml.in.in:12 #: desktop/org.gnome.Geary.desktop.in.in:3 #: src/client/accounts/accounts-editor-servers-pane.vala:555 -#: src/client/application/application-main-window.vala:547 +#: src/client/application/application-main-window.vala:555 msgid "Geary" msgstr "Geary" @@ -213,38 +212,45 @@ msgstr "" "Verdadeiro se o Paned da lista de pastas estiver na orientação horizontal." #: desktop/org.gnome.Geary.gschema.xml:50 +msgid "Show/hide formatting toolbar" +msgstr "Mostrar/ocultar barra de ferramenta de formatação" + +#: desktop/org.gnome.Geary.gschema.xml:51 +msgid "True if the formatting toolbar in the composer is shown." +msgstr "" +"Verdadeiro se a barra de ferramenta de formatação é mostrada no compositor." + +#: desktop/org.gnome.Geary.gschema.xml:56 msgid "Position of message list pane" msgstr "Posição do painel de lista de mensagens" # O termo "Paned" se refere a gtk.Paned, uma class for painéis. # "Grabber" é termo usado no desenvolvimento para função da captura de frame -#: desktop/org.gnome.Geary.gschema.xml:51 +#: desktop/org.gnome.Geary.gschema.xml:57 msgid "Position of the message list Paned grabber." msgstr "Posição do grabber do Paned da lista de mensagens." -#: desktop/org.gnome.Geary.gschema.xml:56 +#: desktop/org.gnome.Geary.gschema.xml:62 msgid "Autoselect next message" msgstr "Autosselecionar a próxima mensagem" -#: desktop/org.gnome.Geary.gschema.xml:57 +#: desktop/org.gnome.Geary.gschema.xml:63 msgid "True if we should autoselect the next available conversation." msgstr "Verdadeiro se devemos autosselecionar a próxima conversa disponível." -#: desktop/org.gnome.Geary.gschema.xml:62 +#: desktop/org.gnome.Geary.gschema.xml:68 msgid "Display message previews" msgstr "Exibir visualizações de mensagens" -#: desktop/org.gnome.Geary.gschema.xml:63 +#: desktop/org.gnome.Geary.gschema.xml:69 msgid "True if we should display a short preview of each message." msgstr "Verdadeiro se devemos exibir uma visualização curta de cada mensagem." -#: desktop/org.gnome.Geary.gschema.xml:68 -#| msgctxt "shortcut window" -#| msgid "Single-key shortcuts" +#: desktop/org.gnome.Geary.gschema.xml:74 msgid "Use single key shortcuts" msgstr "Usar atalhos de tecla única" -#: desktop/org.gnome.Geary.gschema.xml:69 +#: desktop/org.gnome.Geary.gschema.xml:75 msgid "" "Enables shortcuts for email actions that do not require pressing to " "emulate those used by Gmail." @@ -252,11 +258,11 @@ msgstr "" "Habilita atalhos de teclado para ações de e-mail que não exigem pressionar " " para emular aqueles usados pelo Gmail." -#: desktop/org.gnome.Geary.gschema.xml:76 +#: desktop/org.gnome.Geary.gschema.xml:82 msgid "Languages that shall be used in the spell checker" msgstr "Idiomas que devem ser usados na verificação ortográfica" -#: desktop/org.gnome.Geary.gschema.xml:77 +#: desktop/org.gnome.Geary.gschema.xml:83 msgid "" "A list of POSIX locales, with the empty list disabling spell checking and " "the null list using desktop languages by default." @@ -264,12 +270,12 @@ msgstr "" "Uma lista de localidades POSIX, com a lista vazia desabilitando verificação " "ortográfica e a lista nula usando idiomas de desktop por padrão." -#: desktop/org.gnome.Geary.gschema.xml:84 +#: desktop/org.gnome.Geary.gschema.xml:90 msgid "Languages that are displayed in the spell checker popover" msgstr "" "Idiomas que são exibidos na janela sobreposta de verificação ortográfica" -#: desktop/org.gnome.Geary.gschema.xml:85 +#: desktop/org.gnome.Geary.gschema.xml:91 msgid "" "List of languages that are always displayed in the popover of the spell " "checker." @@ -277,62 +283,61 @@ msgstr "" "Lista de idiomas que sempre são exibidos na janela sobreposta da verificação " "ortográfica." -#: desktop/org.gnome.Geary.gschema.xml:90 +#: desktop/org.gnome.Geary.gschema.xml:96 msgid "Notify of new mail at startup" msgstr "Notificar sobre novo e-mail na inicialização" -#: desktop/org.gnome.Geary.gschema.xml:91 +#: desktop/org.gnome.Geary.gschema.xml:97 msgid "True to notify of new mail at startup." msgstr "Verdadeiro para notificar sobre novo e-mail na inicialização." -#: desktop/org.gnome.Geary.gschema.xml:96 +#: desktop/org.gnome.Geary.gschema.xml:102 msgid "Ask when opening an attachment" msgstr "Perguntar ao abrir um anexo" -#: desktop/org.gnome.Geary.gschema.xml:97 +#: desktop/org.gnome.Geary.gschema.xml:103 msgid "True to ask when opening an attachment." msgstr "Verdadeiro para perguntar ao abrir um anexo." -#: desktop/org.gnome.Geary.gschema.xml:102 +#: desktop/org.gnome.Geary.gschema.xml:108 msgid "Whether to compose emails in HTML" msgstr "Se deve compor e-mails em HTML" -#: desktop/org.gnome.Geary.gschema.xml:103 +#: desktop/org.gnome.Geary.gschema.xml:109 msgid "True to compose emails in HTML; false for plain text." msgstr "Verdadeiro para compor e-mails em HTML; falso para texto simples." -#: desktop/org.gnome.Geary.gschema.xml:108 +#: desktop/org.gnome.Geary.gschema.xml:114 msgid "Advisory strategy for full-text searching" msgstr "Estratégia consultiva para pesquisa de texto completo" -#: desktop/org.gnome.Geary.gschema.xml:109 +#: desktop/org.gnome.Geary.gschema.xml:115 msgid "" "Acceptable values are “exact”, “conservative”, “aggressive”, and “horizon”." msgstr "" "Valores aceitáveis são “exact”, “conservative”, “aggressive” e “horizon”." -#: desktop/org.gnome.Geary.gschema.xml:114 +#: desktop/org.gnome.Geary.gschema.xml:120 msgid "Zoom of conversation viewer" msgstr "Ampliação do visualizador de conversa" -#: desktop/org.gnome.Geary.gschema.xml:115 +#: desktop/org.gnome.Geary.gschema.xml:121 msgid "The zoom to apply on the conservation view." msgstr "A ampliação a ser aplicada no visualizador de conversa." -#: desktop/org.gnome.Geary.gschema.xml:120 +#: desktop/org.gnome.Geary.gschema.xml:126 msgid "Size of detached composer window" msgstr "Tamanho da janela do compositor destacada" -#: desktop/org.gnome.Geary.gschema.xml:121 +#: desktop/org.gnome.Geary.gschema.xml:127 msgid "The last recorded size of the detached composer window." msgstr "O último tamanho registrado da janela do compositor destacada." -#: desktop/org.gnome.Geary.gschema.xml:126 -#| msgid "Error sending email" +#: desktop/org.gnome.Geary.gschema.xml:132 msgid "Undo sending email delay" msgstr "Desfazer atraso de envio de e-mail" -#: desktop/org.gnome.Geary.gschema.xml:127 +#: desktop/org.gnome.Geary.gschema.xml:133 msgid "" "The number of seconds to wait before sending an email. Set to zero or less " "to disable." @@ -340,11 +345,23 @@ msgstr "" "O número de segundos para aguardar antes de eenviar um e-mail. Defina para " "zero ou menos para desabilitar." -#: desktop/org.gnome.Geary.gschema.xml:133 +#: desktop/org.gnome.Geary.gschema.xml:139 +msgid "Brief notification display time" +msgstr "Tempo de exibição de notificação breve" + +#: desktop/org.gnome.Geary.gschema.xml:140 +msgid "" +"The length of time in seconds for which brief notifications should be " +"displayed." +msgstr "" +"O comprimento de tempo, em segundos, pelo qual as notificações breves devem " +"ser exibidas." + +#: desktop/org.gnome.Geary.gschema.xml:146 msgid "Whether we migrated the old settings" msgstr "Se migramos as configurações antigas" -#: desktop/org.gnome.Geary.gschema.xml:134 +#: desktop/org.gnome.Geary.gschema.xml:147 msgid "" "False to check for the old “org.yorba.geary”-schema and copy its values." msgstr "" @@ -620,56 +637,56 @@ msgid_plural "%d days back" msgstr[0] "%d dia atrás" msgstr[1] "%d dias atrás" -#: src/client/accounts/accounts-editor-list-pane.vala:248 -#: src/client/application/application-main-window.vala:2021 +#: src/client/accounts/accounts-editor-list-pane.vala:255 +#: src/client/application/application-main-window.vala:2053 msgid "Undo" msgstr "Desfazer" -#: src/client/accounts/accounts-editor-list-pane.vala:257 -#: src/client/application/application-main-window.vala:2011 +#: src/client/accounts/accounts-editor-list-pane.vala:264 +#: src/client/application/application-main-window.vala:2036 msgid "Redo" msgstr "Refazer" -#: src/client/accounts/accounts-editor-list-pane.vala:351 -#: src/client/accounts/accounts-editor-list-pane.vala:439 +#: src/client/accounts/accounts-editor-list-pane.vala:358 +#: src/client/accounts/accounts-editor-list-pane.vala:446 #: src/client/accounts/accounts-editor-row.vala:279 msgid "Gmail" msgstr "Gmail" -#: src/client/accounts/accounts-editor-list-pane.vala:355 -#: src/client/accounts/accounts-editor-list-pane.vala:443 +#: src/client/accounts/accounts-editor-list-pane.vala:362 +#: src/client/accounts/accounts-editor-list-pane.vala:450 #: src/client/accounts/accounts-editor-row.vala:283 msgid "Outlook.com" msgstr "Outlook.com" -#: src/client/accounts/accounts-editor-list-pane.vala:359 -#: src/client/accounts/accounts-editor-list-pane.vala:447 +#: src/client/accounts/accounts-editor-list-pane.vala:366 +#: src/client/accounts/accounts-editor-list-pane.vala:454 #: src/client/accounts/accounts-editor-row.vala:287 msgid "Yahoo" msgstr "Yahoo" #. Translators: Tooltip for accounts that have been #. loaded but disabled by the user. -#: src/client/accounts/accounts-editor-list-pane.vala:377 +#: src/client/accounts/accounts-editor-list-pane.vala:384 msgid "This account has been disabled" msgstr "Essa conta foi desabilitada" #. Translators: Tooltip for accounts that have been #. loaded but because of some error are not able to be #. used. -#: src/client/accounts/accounts-editor-list-pane.vala:386 +#: src/client/accounts/accounts-editor-list-pane.vala:393 msgid "This account has encountered a problem and is unavailable" msgstr "Essa conta encontrou um problema e está indisponível" #. Translators: Label for adding a generic email account -#: src/client/accounts/accounts-editor-list-pane.vala:436 +#: src/client/accounts/accounts-editor-list-pane.vala:443 msgid "Other email providers" msgstr "Outros provedores de e-mail" #. Translators: Notification shown after removing an #. account. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:553 +#: src/client/accounts/accounts-editor-list-pane.vala:560 #, c-format msgid "Account “%s” removed" msgstr "Conta “%s” removida" @@ -677,7 +694,7 @@ msgstr "Conta “%s” removida" #. Translators: Notification shown after removing an account #. is undone. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:560 +#: src/client/accounts/accounts-editor-list-pane.vala:567 #, c-format msgid "Account “%s” restored" msgstr "Conta “%s” restaurada" @@ -898,7 +915,6 @@ msgid "Perform a graceful quit" msgstr "Realiza uma saída graciosa" #: src/client/application/application-client.vala:134 -#| msgid "Use %s to open a new composer window" msgid "Open a new window" msgstr "Abre uma nova janela" @@ -964,7 +980,7 @@ msgstr "Lançamento da distribuição" msgid "Installation prefix" msgstr "Prefixo de lançamento" -#: src/client/application/application-client.vala:566 +#: src/client/application/application-client.vala:587 #, c-format msgid "About %s" msgstr "Sobre %s" @@ -972,7 +988,7 @@ msgstr "Sobre %s" #. Translators: add your name and email address to receive #. credit in the About dialog For example: Yamada Taro #. -#: src/client/application/application-client.vala:570 +#: src/client/application/application-client.vala:591 msgid "translator-credits" msgstr "" "Leonardo Lemos \n" @@ -983,39 +999,37 @@ msgstr "" #. / Warning printed to the console when a deprecated #. / command line option is used. -#: src/client/application/application-client.vala:913 +#: src/client/application/application-client.vala:937 msgid "The `--hidden` option is deprecated and will be removed in the future." msgstr "A opção `--hidden` está obsoleta e será removida no futuro." #. / Command line warning, string substitution #. / is the given argument -#: src/client/application/application-client.vala:946 +#: src/client/application/application-client.vala:970 #, c-format msgid "Unrecognised program argument: “%s”" msgstr "Argumento do programa não reconhecida “%s”" #. / Notification title. -#: src/client/application/application-controller.vala:477 +#: src/client/application/application-controller.vala:458 #, c-format msgid "A problem occurred sending email for %s" msgstr "Ocorreu um problema ao enviar e-mail para %s" #. / Notification body -#: src/client/application/application-controller.vala:481 +#: src/client/application/application-controller.vala:462 msgid "Email will not be sent until re-connected" -msgstr "O e-mail não será enviado até estar reconectado." +msgstr "O e-mail não será enviado até reconectar" #. / Translators: Label for in-app notification -#: src/client/application/application-controller.vala:587 -#| msgid "Conversation Shortcuts" +#: src/client/application/application-controller.vala:568 msgid "Conversation marked" msgid_plural "Conversations marked" msgstr[0] "Conversa marcada" msgstr[1] "Conversas marcadas" #. / Translators: Label for in-app notification -#: src/client/application/application-controller.vala:593 -#| msgid "No conversations found" +#: src/client/application/application-controller.vala:574 msgid "Conversation un-marked" msgid_plural "Conversations un-marked" msgstr[0] "Conversa desmarcada" @@ -1024,10 +1038,9 @@ msgstr[1] "Conversas desmarcadas" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:619 -#: src/client/application/application-controller.vala:703 +#: src/client/application/application-controller.vala:600 +#: src/client/application/application-controller.vala:684 #, c-format -#| msgid "Conversation Shortcuts" msgid "Conversation moved to %s" msgid_plural "Conversations moved to %s" msgstr[0] "Conversa movida para %s" @@ -1038,18 +1051,16 @@ msgstr[1] "Conversas movidas para %s" #. / of the source folder. #. / Translators: Label for in-app notification. String #. / substitution is the name of the destination folder. -#: src/client/application/application-controller.vala:627 -#: src/client/application/application-controller.vala:649 +#: src/client/application/application-controller.vala:608 +#: src/client/application/application-controller.vala:630 #, c-format -#| msgid "Conversation Shortcuts" msgid "Conversation restored to %s" msgid_plural "Conversations restored to %s" msgstr[0] "Conversa restaurada para %s" msgstr[1] "Conversas restauradas para %s" #. / Translators: Label for in-app notification. -#: src/client/application/application-controller.vala:670 -#| msgid "Conversation Shortcuts" +#: src/client/application/application-controller.vala:651 msgid "Conversation archived" msgid_plural "Conversations archived" msgstr[0] "Conversa arquivada" @@ -1057,17 +1068,15 @@ msgstr[1] "Conversas arquivadas" #. / Translators: Label for in-app notification. String #. / substitution is the name of the destination folder. -#: src/client/application/application-controller.vala:726 +#: src/client/application/application-controller.vala:707 #, c-format -#| msgid "Message not saved" msgid "Message restored to %s" msgid_plural "Messages restored to %s" msgstr[0] "Mensagem restaurada para %s" msgstr[1] "Mensagens restauradas para %s" #. / Translators: Label for in-app notification. -#: src/client/application/application-controller.vala:747 -#| msgid "Message not saved" +#: src/client/application/application-controller.vala:728 msgid "Message archived" msgid_plural "Messages archived" msgstr[0] "Mensagem arquivada" @@ -1076,9 +1085,8 @@ msgstr[1] "Mensagens arquivadas" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:782 +#: src/client/application/application-controller.vala:763 #, c-format -#| msgid "Message not saved" msgid "Message moved to %s" msgid_plural "Messages moved to %s" msgstr[0] "Mensagem movida para %s" @@ -1087,9 +1095,8 @@ msgstr[1] "Mensagens movidas para %s" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:810 +#: src/client/application/application-controller.vala:791 #, c-format -#| msgid "No conversations selected" msgid "Conversation labelled as %s" msgid_plural "Conversations labelled as %s" msgstr[0] "Conversa rotulada como %s" @@ -1098,19 +1105,19 @@ msgstr[1] "Conversas rotuladas como %s" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:818 +#: src/client/application/application-controller.vala:799 #, c-format msgid "Conversation un-labelled as %s" msgid_plural "Conversations un-labelled as %s" msgstr[0] "Conversa desrotulada como %s" msgstr[1] "Conversas desrotuladas como %s" -#: src/client/application/application-controller.vala:1238 +#: src/client/application/application-controller.vala:1222 #, c-format msgid "Unable to open the database for %s" msgstr "Incapaz de abrir o banco de dados para %s" -#: src/client/application/application-controller.vala:1239 +#: src/client/application/application-controller.vala:1223 #, c-format msgid "" "There was an error opening the local mail database for this account. This is " @@ -1135,20 +1142,20 @@ msgstr "" "Reconstruir o banco de dados irá destruir todos e-mails locais e seus " "anexos. Os e-mails no seu servidor não serão afetados." -#: src/client/application/application-controller.vala:1241 +#: src/client/application/application-controller.vala:1225 msgid "_Rebuild" msgstr "_Reconstruir" -#: src/client/application/application-controller.vala:1241 +#: src/client/application/application-controller.vala:1225 msgid "E_xit" msgstr "S_air" -#: src/client/application/application-controller.vala:1251 +#: src/client/application/application-controller.vala:1235 #, c-format msgid "Unable to rebuild database for “%s”" msgstr "Incapaz de reconstruir o banco de dados para “%s”" -#: src/client/application/application-controller.vala:1252 +#: src/client/application/application-controller.vala:1236 #, c-format msgid "" "Error during rebuild:\n" @@ -1161,34 +1168,34 @@ msgstr "" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:1575 +#: src/client/application/application-controller.vala:1559 #, c-format msgid "Email sent to %s" msgstr "E-mail enviado para %s" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2648 +#: src/client/application/application-controller.vala:2642 #, c-format msgid "Email to %s queued for delivery" msgstr "E-mail para %s enfileirado para entrega" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2713 +#: src/client/application/application-controller.vala:2706 #, c-format msgid "Email to %s saved" msgstr "E-mail para %s salvo" #. / Translators: A label for an in-app notification. -#: src/client/application/application-controller.vala:2728 -#: src/client/application/application-controller.vala:2786 +#: src/client/application/application-controller.vala:2721 +#: src/client/application/application-controller.vala:2779 msgid "Composer could not be restored" msgstr "O compositor não pôde ser restaurado" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2771 +#: src/client/application/application-controller.vala:2764 #, c-format msgid "Email to %s discarded" msgstr "E-mail para %s descartado" @@ -1196,55 +1203,53 @@ msgstr "E-mail para %s descartado" #. / Translators: Main window title, first string #. / substitution being the currently selected folder name, #. / the second being the selected account name. -#: src/client/application/application-main-window.vala:552 +#: src/client/application/application-main-window.vala:560 #, c-format msgid "%s — %s" msgstr "%s — %s" -#: src/client/application/application-main-window.vala:949 +#: src/client/application/application-main-window.vala:967 msgid "Labels" msgstr "Marcadores" #. / Translators: Primary text for a confirmation dialog -#: src/client/application/application-main-window.vala:1281 -#| msgid "Do you want to permanently delete this message?" -#| msgid_plural "Do you want to permanently delete these messages?" +#: src/client/application/application-main-window.vala:1306 msgid "Do you want to permanently delete this conversation?" msgid_plural "Do you want to permanently delete these conversations?" msgstr[0] "Você deseja descartar permanentemente essa conversa?" msgstr[1] "Você deseja descartar permanentemente essas conversas?" -#: src/client/application/application-main-window.vala:1286 -#: src/client/application/application-main-window.vala:1301 +#: src/client/application/application-main-window.vala:1311 +#: src/client/application/application-main-window.vala:1326 msgid "Delete" msgstr "Excluir" #. / Translators: Primary text for a confirmation dialog -#: src/client/application/application-main-window.vala:1296 +#: src/client/application/application-main-window.vala:1321 msgid "Do you want to permanently delete this message?" msgid_plural "Do you want to permanently delete these messages?" msgstr[0] "Você deseja descartar permanentemente essa mensagem?" msgstr[1] "Você deseja descartar permanentemente essas mensagens?" -#: src/client/application/application-main-window.vala:1309 +#: src/client/application/application-main-window.vala:1334 #, c-format msgid "Empty all email from your %s folder?" msgstr "Esvaziar todos os e-mails de sua pasta %s?" -#: src/client/application/application-main-window.vala:1312 +#: src/client/application/application-main-window.vala:1337 msgid "This removes the email from Geary and your email server." msgstr "Isto remove o e-mail do Geary e do seu servidor de e-mail." -#: src/client/application/application-main-window.vala:1313 +#: src/client/application/application-main-window.vala:1338 msgid "This cannot be undone." msgstr "Isso não pode ser desfeito." -#: src/client/application/application-main-window.vala:1314 +#: src/client/application/application-main-window.vala:1339 #, c-format msgid "Empty %s" msgstr "Esvaziar %s" -#: src/client/application/application-main-window.vala:1644 +#: src/client/application/application-main-window.vala:1669 #, c-format msgid "%s (%d)" msgstr "%s (%d)" @@ -1255,7 +1260,7 @@ msgstr "%s (%d)" #. Document (100.9MB) #. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" #: src/client/components/components-attachment-pane.vala:107 -#: src/client/composer/composer-widget.vala:1796 +#: src/client/composer/composer-widget.vala:1834 #, c-format msgid "%s (%s)" msgstr "%s (%s)" @@ -1283,7 +1288,7 @@ msgstr "Inspetor" #. / Translators: Title for Inspector logs pane #. / Translators: Title for problem report dialog logs pane #: src/client/components/components-inspector.vala:87 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:101 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:102 msgid "Logs" msgstr "Logs" @@ -1291,21 +1296,21 @@ msgstr "Logs" #. / Translators: Title for problem report system information #. / pane #: src/client/components/components-inspector.vala:91 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:104 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:105 msgid "System" msgstr "Sistema" #. Button label for saving problem report information #: src/client/components/components-inspector.vala:208 #: src/client/components/components-inspector.vala:211 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:220 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:223 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:221 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:224 #: ui/problem-details-dialog.ui:42 msgid "Save As" msgstr "Salvar como" #: src/client/components/components-inspector.vala:212 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:224 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:225 #: ui/accounts_editor_servers_pane.ui:17 msgid "Cancel" msgstr "Cancelar" @@ -1327,8 +1332,6 @@ msgstr "Usar visão de _três painéis" #. / Translators: Preferences label #: src/client/components/components-preferences-window.vala:73 -#| msgctxt "shortcut window" -#| msgid "Single-key shortcuts" msgid "Use _single key email shortcuts" msgstr "Usar atalhos de e-mail de tecla única" @@ -1350,6 +1353,26 @@ msgstr "_Monitorar por um novo e-mail quando fechado" msgid "Geary will keep running after all windows are closed" msgstr "Geary continuará em execução após todas as janelas estarem fechadas" +#. / Translators: Search entry placeholder text +#: src/client/components/components-search-bar.vala:12 +#: src/client/folder-list/folder-list-search-branch.vala:53 +#: src/engine/api/geary-special-folder-type.vala:51 +msgid "Search" +msgstr "Pesquisar" + +#. / Translators: Search entry tooltip +#: src/client/components/components-search-bar.vala:32 +msgid "Search all mail in account for keywords" +msgstr "Pesquisar todos os e-mails na conta por palavras-chave" + +#. / Translators: Search entry placeholder, string +#. / replacement is the name of an account +#: src/client/components/components-search-bar.vala:81 +#: src/client/folder-list/folder-list-search-branch.vala:54 +#, c-format +msgid "Search %s account" +msgstr "Pesquisar conta %s" + #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but one is not provided. #: src/client/components/components-validator.vala:390 @@ -1376,37 +1399,37 @@ msgstr "Um nome de servidor é necessário" msgid "Could not look up server name" msgstr "Não foi possível procurar por nome do servidor" -#: src/client/components/main-toolbar.vala:142 +#: src/client/components/main-toolbar.vala:116 msgid "Mark conversation" msgid_plural "Mark conversations" msgstr[0] "Marca a conversa" msgstr[1] "Marca as conversas" -#: src/client/components/main-toolbar.vala:147 +#: src/client/components/main-toolbar.vala:121 msgid "Add label to conversation" msgid_plural "Add label to conversations" msgstr[0] "Adiciona marcador à conversa" msgstr[1] "Adiciona marcador às conversas" -#: src/client/components/main-toolbar.vala:152 +#: src/client/components/main-toolbar.vala:126 msgid "Move conversation" msgid_plural "Move conversations" msgstr[0] "Move a conversa" msgstr[1] "Move as conversas" -#: src/client/components/main-toolbar.vala:157 +#: src/client/components/main-toolbar.vala:131 msgid "Archive conversation" msgid_plural "Archive conversations" msgstr[0] "Arquivar a conversa" msgstr[1] "Arquivar as conversas" -#: src/client/components/main-toolbar.vala:168 +#: src/client/components/main-toolbar.vala:142 msgid "Move conversation to Trash" msgid_plural "Move conversations to Trash" msgstr[0] "Move a conversa para a lixeira" msgstr[1] "Move as conversas para a lixeira" -#: src/client/components/main-toolbar.vala:178 +#: src/client/components/main-toolbar.vala:152 msgid "Delete conversation" msgid_plural "Delete conversations" msgstr[0] "Excluir conversa" @@ -1481,28 +1504,6 @@ msgstr "Veja detalhes técnicos sobre o erro" msgid "_Retry" msgstr "_Tentar novamente" -#: src/client/components/search-bar.vala:8 -#: src/client/folder-list/folder-list-search-branch.vala:53 -#: src/engine/api/geary-special-folder-type.vala:51 -msgid "Search" -msgstr "Pesquisar" - -#. Search entry. -#: src/client/components/search-bar.vala:24 -msgid "Search all mail in account for keywords (Ctrl+S)" -msgstr "Pesquisar todos os e-mails na conta por palavras-chave (Ctrl+S)" - -#: src/client/components/search-bar.vala:88 -#, c-format -msgid "Indexing %s account" -msgstr "Indexando a conta %s" - -#: src/client/components/search-bar.vala:119 -#: src/client/folder-list/folder-list-search-branch.vala:54 -#, c-format -msgid "Search %s account" -msgstr "Pesquisar conta %s" - #. / Displayed in the space-limited status bar while a message is in the process of being sent. #: src/client/components/status-bar.vala:26 msgid "Sending…" @@ -1577,36 +1578,36 @@ msgstr "_Salvar" msgid "_Keep" msgstr "_Manter" -#: src/client/composer/composer-link-popover.vala:149 +#: src/client/composer/composer-link-popover.vala:139 msgid "Link URL is not correctly formatted, e.g. http://example.com" msgstr "URL de link não está corretamente formatado, ex.: http://example.com" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid link URL" msgstr "URL de link inválido" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid email address" msgstr "Endereço de e-mail inválido" #. / Translators: Title for an empty composer window -#: src/client/composer/composer-widget.vala:28 +#: src/client/composer/composer-widget.vala:30 msgid "New Message" msgstr "Nova mensagem" -#: src/client/composer/composer-widget.vala:211 +#: src/client/composer/composer-widget.vala:217 msgid "Saved" msgstr "Salvo" -#: src/client/composer/composer-widget.vala:212 +#: src/client/composer/composer-widget.vala:218 msgid "Saving" msgstr "Salvando" -#: src/client/composer/composer-widget.vala:213 +#: src/client/composer/composer-widget.vala:219 msgid "Error saving" msgstr "Erro ao salvar" -#: src/client/composer/composer-widget.vala:214 +#: src/client/composer/composer-widget.vala:220 msgid "Press Backspace to delete quote" msgstr "Pressione Backspace para excluir citação" @@ -1615,7 +1616,7 @@ msgstr "Pressione Backspace para excluir citação" #. checking, include all variants of each word. No spaces are #. allowed. The words will be converted to lower case based on #. locale and English versions included automatically. -#: src/client/composer/composer-widget.vala:230 +#: src/client/composer/composer-widget.vala:236 msgid "" "attach|attaching|attaches|attachment|attachments|attached|enclose|enclosed|" "enclosing|encloses|enclosure|enclosures" @@ -1626,90 +1627,90 @@ msgstr "" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. Keep, Discard or Cancel. -#: src/client/composer/composer-widget.vala:798 +#: src/client/composer/composer-widget.vala:843 msgid "Do you want to keep or discard this draft message?" msgstr "Você deseja manter ou descartar esta mensagem de rascunho?" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. only Discard or Cancel. -#: src/client/composer/composer-widget.vala:824 +#: src/client/composer/composer-widget.vala:869 msgid "Do you want to discard this draft message?" msgstr "Você deseja descartar esta mensagem de rascunho?" -#: src/client/composer/composer-widget.vala:1465 +#: src/client/composer/composer-widget.vala:1503 msgid "Send message with an empty subject and body?" msgstr "Enviar mensagem com o assunto e corpo vazio?" -#: src/client/composer/composer-widget.vala:1467 +#: src/client/composer/composer-widget.vala:1505 msgid "Send message with an empty subject?" msgstr "Enviar mensagem com o assunto vazio?" -#: src/client/composer/composer-widget.vala:1469 +#: src/client/composer/composer-widget.vala:1507 msgid "Send message with an empty body?" msgstr "Enviar mensagem com o corpo vazio?" -#: src/client/composer/composer-widget.vala:1478 +#: src/client/composer/composer-widget.vala:1516 msgid "Send message without an attachment?" msgstr "Enviar mensagem sem anexo?" -#: src/client/composer/composer-widget.vala:1788 +#: src/client/composer/composer-widget.vala:1820 #, c-format msgid "“%s” already attached for delivery." msgstr "“%s” já foi anexado para envio." -#: src/client/composer/composer-widget.vala:1818 -#: src/client/composer/composer-widget.vala:1868 +#: src/client/composer/composer-widget.vala:1856 +#: src/client/composer/composer-widget.vala:1906 #, c-format msgid "“%s” is an empty file." msgstr "“%s” é um arquivo vazio." -#: src/client/composer/composer-widget.vala:1856 +#: src/client/composer/composer-widget.vala:1894 #, c-format msgid "“%s” could not be found." msgstr "“%s” não foi encontrado." -#: src/client/composer/composer-widget.vala:1862 +#: src/client/composer/composer-widget.vala:1900 #, c-format msgid "“%s” is a folder." msgstr "“%s” é uma pasta." -#: src/client/composer/composer-widget.vala:1881 +#: src/client/composer/composer-widget.vala:1919 #, c-format msgid "“%s” could not be opened for reading." msgstr "“%s” não pôde ser aberto para leitura." -#: src/client/composer/composer-widget.vala:1889 +#: src/client/composer/composer-widget.vala:1927 msgid "Cannot add attachment" msgstr "Não é possível adicionar anexo" #. Translators: Human-readable version of the RFC 822 To header -#: src/client/composer/composer-widget.vala:1946 +#: src/client/composer/composer-widget.vala:1984 #: src/client/conversation-viewer/conversation-email.vala:559 #: src/client/util/util-email.vala:235 ui/conversation-message.ui:312 msgid "To:" msgstr "Para:" #. Translators: Human-readable version of the RFC 822 CC header -#: src/client/composer/composer-widget.vala:1952 +#: src/client/composer/composer-widget.vala:1990 #: src/client/conversation-viewer/conversation-email.vala:564 #: src/client/util/util-email.vala:240 ui/conversation-message.ui:357 msgid "Cc:" msgstr "Cc:" #. Translators: Human-readable version of the RFC 822 BCC header -#: src/client/composer/composer-widget.vala:1958 +#: src/client/composer/composer-widget.vala:1996 #: src/client/conversation-viewer/conversation-email.vala:569 #: ui/conversation-message.ui:402 msgid "Bcc:" msgstr "Cco:" #. Translators: Human-readable version of the RFC 822 Reply-To header -#: src/client/composer/composer-widget.vala:1964 +#: src/client/composer/composer-widget.vala:2002 msgid "Reply-To: " msgstr "Responder-a: " -#: src/client/composer/composer-widget.vala:2144 +#: src/client/composer/composer-widget.vala:2254 msgid "Select Color" msgstr "Selecione a cor" @@ -1718,32 +1719,32 @@ msgstr "Selecione a cor" #. printf argument will be the alternate email address, #. and the second will be the account's primary email #. address. -#: src/client/composer/composer-widget.vala:2336 +#: src/client/composer/composer-widget.vala:2440 #, c-format msgid "%1$s via %2$s" msgstr "%1$s via %2$s" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: src/client/composer/composer-widget.vala:2392 +#: src/client/composer/composer-widget.vala:2496 msgid "_From:" msgstr "_De:" #. Translators: This is the name of the file chooser filter #. when inserting an image in the composer. -#: src/client/composer/composer-widget.vala:2695 +#: src/client/composer/composer-widget.vala:2801 msgid "Images" msgstr "Imagens" -#: src/client/composer/spell-check-popover.vala:108 +#: src/client/composer/spell-check-popover.vala:125 msgid "Remove this language from the preferred list" msgstr "Remover esse idioma da lista de preferência" -#: src/client/composer/spell-check-popover.vala:112 +#: src/client/composer/spell-check-popover.vala:129 msgid "Add this language to the preferred list" msgstr "Adicionar esse idioma à lista de preferência" -#: src/client/composer/spell-check-popover.vala:199 +#: src/client/composer/spell-check-popover.vala:225 msgid "Search for more languages" msgstr "Procurar por mais idiomas" @@ -1819,7 +1820,7 @@ msgstr "Data:" msgid "Subject:" msgstr "Assunto:" -#: src/client/conversation-viewer/conversation-message.vala:132 +#: src/client/conversation-viewer/conversation-message.vala:128 msgid "This email address may have been forged" msgstr "Esse endereço de e-mail foi forjado" @@ -1827,44 +1828,44 @@ msgstr "Esse endereço de e-mail foi forjado" #. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:469 +#: src/client/conversation-viewer/conversation-message.vala:439 msgid "No sender" msgstr "Sem remetente" #. Translators: This separates multiple 'from' #. addresses in the compact header for a message. -#: src/client/conversation-viewer/conversation-message.vala:963 +#: src/client/conversation-viewer/conversation-message.vala:831 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Image Date: Sat, 29 Feb 2020 16:05:55 +0000 Subject: [PATCH 035/336] Update Japanese translation --- po/ja.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/po/ja.po b/po/ja.po index ff4558b7..913b2571 100644 --- a/po/ja.po +++ b/po/ja.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: geary-0.4.1\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2020-02-20 18:05+0000\n" -"PO-Revision-Date: 2020-02-22 00:00+0900\n" +"POT-Creation-Date: 2020-02-25 11:10+0000\n" +"PO-Revision-Date: 2020-02-29 20:30+0900\n" "Last-Translator: sicklylife \n" "Language-Team: Japanese (Japan) (https://l10n.gnome.org/module/geary/)\n" "Language: ja\n" @@ -131,7 +131,7 @@ msgstr "メッセージを作成" #: desktop/org.gnome.Geary.desktop.in.in:26 msgid "New Window" -msgstr "" +msgstr "新しいウィンドウ" #: desktop/org.gnome.Geary.gschema.xml:8 msgid "Maximize window" From 88f4ade0722977ce30f139635b64826b0146e364 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Sun, 1 Mar 2020 20:41:25 +1100 Subject: [PATCH 036/336] ProblemReport: Clear logs iteratively, not recursively Clear logs iteratively to avoid recursively freeing all log messages on the stack at once. --- src/engine/api/geary-problem-report.vala | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/engine/api/geary-problem-report.vala b/src/engine/api/geary-problem-report.vala index 7a4b056d..5f21b856 100644 --- a/src/engine/api/geary-problem-report.vala +++ b/src/engine/api/geary-problem-report.vala @@ -30,6 +30,22 @@ public class Geary.ProblemReport : Object { this.latest_log = Logging.get_latest_record(); } + ~ProblemReport() { + // Manually clear each log record in a loop if we have the + // only reference to it so that finalisation of each is an + // iterative process. If we just nulled out the record, + // finalising the first would cause second to be finalised, + // which would finalise the third, etc., and the recursion + // could cause the stack to blow right out for large log + // buffers. + Logging.Record? earliest = this.earliest_log; + this.earliest_log = null; + this.latest_log = null; + while (earliest != null) { + earliest = earliest.next; + } + } + /** Returns a string representation of the report, for debugging only. */ public string to_string() { return "%s".printf( From b0be1a79b1e04b38f4f9eb448d3058a0d30cc202 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Sun, 1 Mar 2020 21:39:04 +1100 Subject: [PATCH 037/336] Geary.Logging.Record: Add copy constructor --- src/engine/api/geary-logging.vala | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/engine/api/geary-logging.vala b/src/engine/api/geary-logging.vala index 11f7b09d..dcdfd76c 100644 --- a/src/engine/api/geary-logging.vala +++ b/src/engine/api/geary-logging.vala @@ -208,6 +208,36 @@ public class Record { this.states.length = state_count; } + /** + * Copy constructor. + * + * Copies all properties of the given record except its next + * record. + */ + public Record.copy(Record other) { + this.domain = other.domain; + this.account = other.account; + this.service = other.service; + this.folder = other.folder; + this.flags = other.flags; + this.message = other.message; + this.source_filename = other.source_filename; + this.source_line_number = other.source_line_number; + this.source_function = other.source_function; + this.levels = other.levels; + this.timestamp = other.timestamp; + + // Kept null deliberately so that we don't get a stack blowout + // copying large record chains and code that does copy records + // can copy only a fixed number. + // this.next + + this.states = other.states; + this.filled = other.filled; + this.old_log_api = other.old_log_api; + } + + /** * Sets the well-known logging source properties. * From 11e35a998b782c9329c6683f7f35e0cf8d757195 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Sun, 1 Mar 2020 21:39:31 +1100 Subject: [PATCH 038/336] Geary.ProblemReport: Copy log records when constructed Take a copy of extant log records when constrcuted so that newer records can be dropped while the problem report still exists. This uses more memory, but limits unbounded memory growth while any log reports still exists. --- src/engine/api/geary-problem-report.vala | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/engine/api/geary-problem-report.vala b/src/engine/api/geary-problem-report.vala index 5f21b856..402d6310 100644 --- a/src/engine/api/geary-problem-report.vala +++ b/src/engine/api/geary-problem-report.vala @@ -26,8 +26,21 @@ public class Geary.ProblemReport : Object { if (error != null) { this.error = new ErrorContext(error); } - this.earliest_log = Logging.get_earliest_record(); - this.latest_log = Logging.get_latest_record(); + Logging.Record next_original = Logging.get_earliest_record(); + Logging.Record last_original = Logging.get_latest_record(); + if (next_original != null) { + Logging.Record copy = this.earliest_log = new Logging.Record.copy( + next_original + ); + next_original = next_original.next; + while (next_original != null && + next_original != last_original) { + copy.next = new Logging.Record.copy(next_original); + copy = copy.next; + next_original = next_original.next; + } + this.latest_log = copy; + } } ~ProblemReport() { From 0664b1c6ec49cdb2b808080c58e80c8ce3a3d59b Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Sun, 1 Mar 2020 22:40:40 +1100 Subject: [PATCH 039/336] Update files for 3.35.90 --- NEWS | 47 +++++++++++++++++++++++ THANKS | 18 +++++---- desktop/org.gnome.Geary.appdata.xml.in.in | 13 +++++-- meson.build | 2 +- 4 files changed, 68 insertions(+), 12 deletions(-) diff --git a/NEWS b/NEWS index 0ab5d323..5ebb34ba 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,50 @@ +Version 3.35.90 +~~~~~~~~~~~~~~~ +Released: 2020-03-01 + +Changes: + + * Support drag and drop and copy and paste images in composer + * Updated composer UI to new responsive design + * Updated preferences UI to use Handy widgets + * Add hidden prefs for minimising in-app notifications + * Ported engine to to GMime 3.x + * Update WebKitGTK minimum version to 2.26 + * Drop libunity dependency in favour of internal implementation + * Several bug fixes and code cleanups + +Thanks to all who contributed code fixes and enhancements to this +release: + * Adam Dingle + * Adrien Plazas + * Chris Heywood + * James Westman + * Konstantin Kharlamov + * Mart Raudsepp + * Niels De Graef + * Tobias Sette + * Алексей Шилин + +Thanks also to all who contributed translations, for the user +interface: + * Alexandre Franke (fr) + * Anders Jonsson (sv) + * Andika Triwidada (id) + * Daniel Mustieles (es) + * Emin Tufan Çetin (tr) + * Enrico Nicoletto (pt_BR) + * Jiri Grönroos (fi) + * Jordi Mas (ca) + * Kukuh Syafaat (id) + * Nathan Follens (nl) + * Piotr Drąg (pl) + * Rafael Fontenelle (pt_BR) + * sicklylife (ja) + +And for the user manual: + * Daniel Mustieles (es) + * Piotr Drąg (pl) + Version 3.35.2 ~~~~~~~~~~~~~~~ Released: 2019-10-11 diff --git a/THANKS b/THANKS index c91cf97d..262b323f 100644 --- a/THANKS +++ b/THANKS @@ -16,9 +16,9 @@ Bilal Elmoussaoui Brendan Long Charles Lehner Chirstian Dywan +Chris Heywood <15127-creywood@users.noreply.gitlab.gnome.org> Christian Kellner Christopher Davis -Chris Heywood <15127-creywood@users.noreply.gitlab.gnome.org> Claudio Colin Walters Daniel Foré @@ -36,20 +36,20 @@ Heiko Becker Jakob Unterwurzacher Jakub Steiner James Magahern +James Westman Jan Tojnar Janosch Rolles Jens Georg Jeremy Bicha Jiří Černý Joanmarie Diggs -João Loureiro Joe Barnett Joel Duncan Jon Banafato Jon Dowland Jonathan Haas -john Jordan Petridis +João Loureiro Juraj Fiala Jürg Billeter Kacper Bielecki @@ -62,9 +62,9 @@ Leonardo Robol Mario Ravalli Mario Sanchez Prada Mark Pariente +Mart Raudsepp Martijn Braam Martin Olsson -mar-v-in Mathias Hasselmann Matthew Wong Matthias Clasen @@ -74,18 +74,15 @@ Michael George Michael Gratton Michel Alexandre Salim Mohamed Ibrahim -nick richards Niels De Graef Nikolas Tapia Oliver Giles Oskar Viljasaar Philipp Nordhus Piotr Drąg -p3732 Rafael Fontenelle Ralph Plawetzki Rico Tzschichholz -ritchiew Robert Ancell Robert Park Robert Roth @@ -98,6 +95,7 @@ Thomas Moschny Tiago Quelhas Timo Kluck Tobias Bernard +Tobias Sette Tom Most Victor Eduardo Viko Adi Rahmawan @@ -105,3 +103,9 @@ Ville Korhonen William Jon McCann Wolfgang Steitz Yosef Or Boczko +john +mar-v-in +nick richards +p3732 +ritchiew +Алексей Шилин diff --git a/desktop/org.gnome.Geary.appdata.xml.in.in b/desktop/org.gnome.Geary.appdata.xml.in.in index 108db1d9..3201a6d1 100644 --- a/desktop/org.gnome.Geary.appdata.xml.in.in +++ b/desktop/org.gnome.Geary.appdata.xml.in.in @@ -93,17 +93,22 @@

    Enhancements included in this release:

      -
    • Using single key shortcuts for email action is now optional
    • -
    • Single key shortcuts have been brought up to date with Gmail
    • +
    • New and improved responsive composer interface
    • Drag and drop image files into rich text messages
    • Paste images from the clipboard into rich text messages
    • -
    • Open more than one main window
    • +
    • Improved composer missing attachment detection
    • +
    • Access emoji chooser in composer via shortcut or context menu
    • Extend undo for email actions such as archiving, marking
    • Undo sending, saving and discarding composed email
    • Undo editing in text fields, including in the composer
    • +
    • Open more than one main window
    • +
    • New and improved responsive preferences interface
    • +
    • Using single key shortcuts for email actions is now optional
    • +
    • Single key shortcuts have been brought up to date with Gmail
    • App-wide notification preferences now handled by desktop
    • -
    • Improved missing attachment detection in composer
    • Initial plugin system
    • +
    • Numerous bug fixes and user interface improvements
    • +
    • Numerous user interface translation updates
    diff --git a/meson.build b/meson.build index 0d8cbbb2..e92f96c5 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('geary', [ 'vala', 'c' ], - version: '3.35.2', + version: '3.35.90', license: 'LGPL2.1+', meson_version: '>= 0.50', ) From d30cf3bbbd0acb1431fef9b19ae7a90ef805438e Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Sun, 1 Mar 2020 23:03:20 +1100 Subject: [PATCH 040/336] Add missing person to THANKS for 3.35.90 --- THANKS | 1 + 1 file changed, 1 insertion(+) diff --git a/THANKS b/THANKS index 262b323f..0a0eb06f 100644 --- a/THANKS +++ b/THANKS @@ -97,6 +97,7 @@ Timo Kluck Tobias Bernard Tobias Sette Tom Most +Torben Victor Eduardo Viko Adi Rahmawan Ville Korhonen From 3142b03ffeba81cc033133970d87d2573e858dbf Mon Sep 17 00:00:00 2001 From: Tim Sabsch Date: Sun, 1 Mar 2020 14:48:46 +0000 Subject: [PATCH 041/336] Update German translation --- po/de.po | 3162 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 1860 insertions(+), 1302 deletions(-) diff --git a/po/de.po b/po/de.po index f7fc6d72..4dea9ee7 100644 --- a/po/de.po +++ b/po/de.po @@ -13,15 +13,15 @@ # rageltus , 2012 # Benjamin Steinwender , 2014. # Wolfgang Stöggl , 2016. -# Tim Sabsch , 2019. +# Tim Sabsch , 2019-2020. # Mario Blättermann , 2016-2019. # msgid "" msgstr "" "Project-Id-Version: geary master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2019-03-11 08:07+0000\n" -"PO-Revision-Date: 2019-03-11 14:03+0100\n" +"POT-Creation-Date: 2020-02-24 15:37+0000\n" +"PO-Revision-Date: 2020-03-01 15:47+0100\n" "Last-Translator: Tim Sabsch \n" "Language-Team: Deutsch \n" "Language: de\n" @@ -29,57 +29,49 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.3\n" #: desktop/geary-attach.contract.desktop.in:3 msgid "Send by email" msgstr "Als E-Mail versenden" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: desktop/geary-attach.contract.desktop.in:5 -msgid "mail-send" -msgstr "mail-send" - #: desktop/geary-attach.contract.desktop.in:6 msgid "Send files using Geary" msgstr "Dateien mit Geary versenden" #. Translators: The application name -#: desktop/geary-autostart.desktop.in:3 -#: desktop/org.gnome.Geary.appdata.xml.in:11 -#: desktop/org.gnome.Geary.desktop.in:3 +#: desktop/geary-autostart.desktop.in.in:3 +#: desktop/org.gnome.Geary.appdata.xml.in.in:12 +#: desktop/org.gnome.Geary.desktop.in.in:3 #: src/client/accounts/accounts-editor-servers-pane.vala:555 +#: src/client/application/application-main-window.vala:555 msgid "Geary" msgstr "Geary" -#: desktop/geary-autostart.desktop.in:4 desktop/org.gnome.Geary.desktop.in:4 +#: desktop/geary-autostart.desktop.in.in:4 +#: desktop/org.gnome.Geary.desktop.in.in:4 msgid "Email" msgstr "E-Mail" #. Translators: The application's summary / tagline -#: desktop/geary-autostart.desktop.in:5 -#: desktop/org.gnome.Geary.appdata.xml.in:15 -#: desktop/org.gnome.Geary.desktop.in:5 -#: src/client/application/geary-application.vala:23 +#: desktop/geary-autostart.desktop.in.in:5 +#: desktop/org.gnome.Geary.appdata.xml.in.in:16 +#: desktop/org.gnome.Geary.desktop.in.in:5 +#: src/client/application/application-client.vala:32 msgid "Send and receive email" msgstr "Senden und empfangen" #. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon. -#: desktop/geary-autostart.desktop.in:7 +#: desktop/geary-autostart.desktop.in.in:7 msgid "Email;E-mail;Mail;" msgstr "Email;E-Mail;Mail;" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: desktop/geary-autostart.desktop.in:9 desktop/org.gnome.Geary.desktop.in:9 -msgid "org.gnome.Geary" -msgstr "org.gnome.Geary" - #. Translators: The development team's name -#: desktop/org.gnome.Geary.appdata.xml.in:13 +#: desktop/org.gnome.Geary.appdata.xml.in.in:14 msgid "Geary Development Team" msgstr "Geary-Entwicklerteam" -#: desktop/org.gnome.Geary.appdata.xml.in:17 +#: desktop/org.gnome.Geary.appdata.xml.in.in:18 msgid "" "Geary is an email application built around conversations, for the GNOME 3 " "desktop. It allows you to read, find and send email with a straightforward, " @@ -89,7 +81,7 @@ msgstr "" "ermöglicht das einfache Lesen, Finden und Schreiben von E-Mails in einer " "übersichtlichen und modernen Benutzeroberfläche." -#: desktop/org.gnome.Geary.appdata.xml.in:22 +#: desktop/org.gnome.Geary.appdata.xml.in.in:23 msgid "" "Conversations allow you to read a complete discussion without having to find " "and click from message to message." @@ -97,54 +89,58 @@ msgstr "" "Konversationen ermöglichen das Lesen eines gesamten Diskussionsstrangs, ohne " "Nachrichten einzeln suchen zu müssen." -#: desktop/org.gnome.Geary.appdata.xml.in:26 +#: desktop/org.gnome.Geary.appdata.xml.in.in:27 msgid "Geary’s features include:" msgstr "Funktionen von Geary umfassen:" -#: desktop/org.gnome.Geary.appdata.xml.in:28 +#: desktop/org.gnome.Geary.appdata.xml.in.in:29 msgid "Quick email account setup" msgstr "Schnelle Konto-Einrichtung" -#: desktop/org.gnome.Geary.appdata.xml.in:29 +#: desktop/org.gnome.Geary.appdata.xml.in.in:30 msgid "Shows related messages together in conversations" msgstr "Verwandte Nachrichten gebündelt in Konversationen anzeigen" -#: desktop/org.gnome.Geary.appdata.xml.in:30 +#: desktop/org.gnome.Geary.appdata.xml.in.in:31 msgid "Fast, full text and keyword search" msgstr "Schnelle Volltext- und Schlüsselwortsuche" -#: desktop/org.gnome.Geary.appdata.xml.in:31 +#: desktop/org.gnome.Geary.appdata.xml.in.in:32 msgid "Full-featured HTML and plain text message composer" msgstr "Voll ausgestatteter HTML- und Klartext-Nachrichteneditor" -#: desktop/org.gnome.Geary.appdata.xml.in:32 +#: desktop/org.gnome.Geary.appdata.xml.in.in:33 msgid "Desktop notification of new mail" msgstr "Benachrichtigung bei neuer E-Mail" -#: desktop/org.gnome.Geary.appdata.xml.in:33 +#: desktop/org.gnome.Geary.appdata.xml.in.in:34 msgid "Compatible with GMail, Yahoo! Mail, Outlook.com and other IMAP servers" msgstr "" "Kompatibel mit GMail, Yahoo! Mail, Outlook.com und weiteren IMAP-Servern" #. Translators: A screenshot description. -#: desktop/org.gnome.Geary.appdata.xml.in:47 +#: desktop/org.gnome.Geary.appdata.xml.in.in:48 msgid "Geary displaying a conversation" msgstr "Geary zeigt eine Konversationsvorschau an" #. Translators: A screenshot description. -#: desktop/org.gnome.Geary.appdata.xml.in:52 +#: desktop/org.gnome.Geary.appdata.xml.in.in:59 msgid "Geary showing the rich text composer" msgstr "Geary zeigt den Editor für formatierten Text" #. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon. -#: desktop/org.gnome.Geary.desktop.in:7 +#: desktop/org.gnome.Geary.desktop.in.in:7 msgid "Mail;E-mail;IMAP;GMail;Yahoo;Hotmail;Outlook;" -msgstr "Mail;E-Mail;IMAP;GMail;Yahoo;Hotmail;Outlook;" +msgstr "Mail;E-Mail;IMAP;GMail;Yahoo;Hotmail;Outlook;Post;Email;Brief;" -#: desktop/org.gnome.Geary.desktop.in:21 +#: desktop/org.gnome.Geary.desktop.in.in:22 msgid "Compose Message" msgstr "Nachricht verfassen" +#: desktop/org.gnome.Geary.desktop.in.in:26 +msgid "New Window" +msgstr "Neues Fenster" + #: desktop/org.gnome.Geary.gschema.xml:8 msgid "Maximize window" msgstr "Fenster maximieren" @@ -205,47 +201,73 @@ msgid "True if the folder list Paned is in the horizontal orientation." msgstr "Horizontale Ausrichtung des Ordnerliste-Teilfensters." #: desktop/org.gnome.Geary.gschema.xml:50 +msgid "Show/hide formatting toolbar" +msgstr "Formatierung-Werkzeugleiste ein-/ausblenden" + +#: desktop/org.gnome.Geary.gschema.xml:51 +msgid "True if the formatting toolbar in the composer is shown." +msgstr "" +"Legt fest, ob die Werkzeugleiste für Formatierungen im Verfassen-Fenster " +"angezeigt werden soll." + +#: desktop/org.gnome.Geary.gschema.xml:56 msgid "Position of message list pane" msgstr "Position der Nachrichtenliste" -#: desktop/org.gnome.Geary.gschema.xml:51 +#: desktop/org.gnome.Geary.gschema.xml:57 msgid "Position of the message list Paned grabber." msgstr "Position des Teilfensters mit der Nachrichtenliste." -#: desktop/org.gnome.Geary.gschema.xml:56 +#: desktop/org.gnome.Geary.gschema.xml:62 msgid "Autoselect next message" msgstr "Automatisch die nächste Nachricht wählen" -#: desktop/org.gnome.Geary.gschema.xml:57 +#: desktop/org.gnome.Geary.gschema.xml:63 msgid "True if we should autoselect the next available conversation." msgstr "" "Legt fest, ob die nächste verfügbare Konversation automatisch ausgewählt " "werden soll." -#: desktop/org.gnome.Geary.gschema.xml:62 +#: desktop/org.gnome.Geary.gschema.xml:68 msgid "Display message previews" msgstr "Nachrichtenvorschauen anzeigen" -#: desktop/org.gnome.Geary.gschema.xml:63 +#: desktop/org.gnome.Geary.gschema.xml:69 msgid "True if we should display a short preview of each message." msgstr "" "Legt fest, ob eine kurze Vorschau jeder Nachricht angezeigt werden soll." -#: desktop/org.gnome.Geary.gschema.xml:68 +#: desktop/org.gnome.Geary.gschema.xml:74 +msgid "Use single key shortcuts" +msgstr "Einfache Tastenkürzel verwenden" + +#: desktop/org.gnome.Geary.gschema.xml:75 +msgid "" +"Enables shortcuts for email actions that do not require pressing to " +"emulate those used by Gmail." +msgstr "" +"Tastenkürzel für E-Mail-Aktionen verwenden, die keinen Tastendruck von " +" benötigen, um die Funktion in Gmail zu emulieren." + +#: desktop/org.gnome.Geary.gschema.xml:82 msgid "Languages that shall be used in the spell checker" msgstr "Sprachen, die in der Rechtschreibprüfung verwendet werden sollen" -#: desktop/org.gnome.Geary.gschema.xml:69 -msgid "List of the languages to use in the spell checker." +#: desktop/org.gnome.Geary.gschema.xml:83 +msgid "" +"A list of POSIX locales, with the empty list disabling spell checking and " +"the null list using desktop languages by default." msgstr "" -"Liste der Sprachen, die in der Rechtschreibprüfung verwendet werden sollen." +"Eine Liste von POSIX-Standorteinstellungen. Eine leere Liste deaktiviert die " +"Rechtschreibprüfung. Die »null«-Liste verwendet die globalen " +"Spracheinstellungen." -#: desktop/org.gnome.Geary.gschema.xml:74 +#: desktop/org.gnome.Geary.gschema.xml:90 msgid "Languages that are displayed in the spell checker popover" msgstr "" "Sprachen, die im Einblendmenü der Rechtschreibprüfung angezeigt werden sollen" -#: desktop/org.gnome.Geary.gschema.xml:75 +#: desktop/org.gnome.Geary.gschema.xml:91 msgid "" "List of languages that are always displayed in the popover of the spell " "checker." @@ -253,81 +275,85 @@ msgstr "" "Liste der Sprachen, die immer im Einblendmenü der Rechtschreibprüfung " "angezeigt werden sollen." -#: desktop/org.gnome.Geary.gschema.xml:80 -msgid "Enable notification sounds" -msgstr "Benachrichtigungstöne aktivieren" - -#: desktop/org.gnome.Geary.gschema.xml:81 -msgid "True to play sounds for notifications and sending." -msgstr "" -"Legt fest, ob Klänge für Benachrichtigungen und beim Senden abgespielt " -"werden sollen." - -#: desktop/org.gnome.Geary.gschema.xml:86 -msgid "Show notifications for new mail" -msgstr "Benachrichtigung bei neuen Nachrichten anzeigen" - -#: desktop/org.gnome.Geary.gschema.xml:87 -msgid "True to show notification bubbles." -msgstr "Legt fest, ob Benachrichtigungen angezeigt werden sollen." - -#: desktop/org.gnome.Geary.gschema.xml:92 +#: desktop/org.gnome.Geary.gschema.xml:96 msgid "Notify of new mail at startup" msgstr "Beim Start über neue Nachrichten benachrichtigen" -#: desktop/org.gnome.Geary.gschema.xml:93 +#: desktop/org.gnome.Geary.gschema.xml:97 msgid "True to notify of new mail at startup." msgstr "" "Legt fest, ob beim Start Benachrichtigungen bei neuen Nachrichten angezeigt " "werden sollen." -#: desktop/org.gnome.Geary.gschema.xml:98 +#: desktop/org.gnome.Geary.gschema.xml:102 msgid "Ask when opening an attachment" msgstr "Fragen, wenn ein Anhang geöffnet wird" -#: desktop/org.gnome.Geary.gschema.xml:99 +#: desktop/org.gnome.Geary.gschema.xml:103 msgid "True to ask when opening an attachment." msgstr "Legt fest, ob nachgefragt werden soll, wenn ein Anhang geöffnet wird." -#: desktop/org.gnome.Geary.gschema.xml:104 +#: desktop/org.gnome.Geary.gschema.xml:108 msgid "Whether to compose emails in HTML" msgstr "Nachrichten in HTML verfassen" -#: desktop/org.gnome.Geary.gschema.xml:105 +#: desktop/org.gnome.Geary.gschema.xml:109 msgid "True to compose emails in HTML; false for plain text." msgstr "Legt fest, ob Nachrichten in HTML verfasst werden sollen." -#: desktop/org.gnome.Geary.gschema.xml:110 +#: desktop/org.gnome.Geary.gschema.xml:114 msgid "Advisory strategy for full-text searching" msgstr "Strategie für Volltextsuche" -#: desktop/org.gnome.Geary.gschema.xml:111 +#: desktop/org.gnome.Geary.gschema.xml:115 msgid "" "Acceptable values are “exact”, “conservative”, “aggressive”, and “horizon”." msgstr "" "Zulässige Werte sind »exact«, »conservative«, »aggressive« und »horizon«." -#: desktop/org.gnome.Geary.gschema.xml:116 +#: desktop/org.gnome.Geary.gschema.xml:120 msgid "Zoom of conversation viewer" msgstr "Vergrößerungsstufe der Konversationsansicht" -#: desktop/org.gnome.Geary.gschema.xml:117 +#: desktop/org.gnome.Geary.gschema.xml:121 msgid "The zoom to apply on the conservation view." msgstr "Der auf die Konversationsansicht anzuwendende Vergrößerungsstufe." -#: desktop/org.gnome.Geary.gschema.xml:122 +#: desktop/org.gnome.Geary.gschema.xml:126 msgid "Size of detached composer window" msgstr "Größe des abgekoppelten Verfassen-Fensters" -#: desktop/org.gnome.Geary.gschema.xml:123 +#: desktop/org.gnome.Geary.gschema.xml:127 msgid "The last recorded size of the detached composer window." msgstr "Die zuletzt gespeicherte Größe des abgekoppelten Verfassen-Fensters." -#: desktop/org.gnome.Geary.gschema.xml:128 +#: desktop/org.gnome.Geary.gschema.xml:132 +msgid "Undo sending email delay" +msgstr "Verzögerung bis zum E-Mail-Versand" + +#: desktop/org.gnome.Geary.gschema.xml:133 +msgid "" +"The number of seconds to wait before sending an email. Set to zero or less " +"to disable." +msgstr "" +"Die Anzahl an Sekunden, die gewartet wird, bis eine E-Mail versandt wird. " +"Deaktiviert bei Werten kleiner oder gleich 0." + +#: desktop/org.gnome.Geary.gschema.xml:139 +msgid "Brief notification display time" +msgstr "Anzeigedauer von Kurzbenachrichtigungen" + +#: desktop/org.gnome.Geary.gschema.xml:140 +msgid "" +"The length of time in seconds for which brief notifications should be " +"displayed." +msgstr "Die Dauer in Sekunden, in der Kurzbenachrichtigungen angezeigt werden." + +#: desktop/org.gnome.Geary.gschema.xml:146 msgid "Whether we migrated the old settings" msgstr "Alte Einstellungen migrieren" -#: desktop/org.gnome.Geary.gschema.xml:129 +#: desktop/org.gnome.Geary.gschema.xml:147 msgid "" "False to check for the old “org.yorba.geary”-schema and copy its values." msgstr "" @@ -337,24 +363,24 @@ msgstr "" #. Translators: In-app notification label, when #. the app had a problem pinning an otherwise #. untrusted TLS certificate -#: src/client/accounts/accounts-editor.vala:203 +#: src/client/accounts/accounts-editor.vala:210 msgid "Failed to store certificate" msgstr "Zertifikat konnte nicht gespeichert werden" #. Translators: Label for adding an email account #. account for a generic IMAP service provider. -#: src/client/accounts/accounts-editor-add-pane.vala:109 +#: src/client/accounts/accounts-editor-add-pane.vala:108 msgid "All others" msgstr "Alle übrigen" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:196 +#: src/client/accounts/accounts-editor-add-pane.vala:195 #: src/client/accounts/accounts-editor-servers-pane.vala:316 msgid "Check your receiving login and password" msgstr "Prüfen Sie Ihren Benutzernamen und Passwort zum Empfangen" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:211 +#: src/client/accounts/accounts-editor-add-pane.vala:210 #: src/client/accounts/accounts-editor-servers-pane.vala:329 msgid "Check your receiving server details" msgstr "Prüfen Sie die Serverdetails zum Empfangen" @@ -364,51 +390,51 @@ msgstr "Prüfen Sie die Serverdetails zum Empfangen" #. succeeded, so the user probably needs to #. specify custom creds here #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:233 +#: src/client/accounts/accounts-editor-add-pane.vala:232 #: src/client/accounts/accounts-editor-servers-pane.vala:350 msgid "Check your sending login and password" msgstr "Prüfen Sie Ihren Benutzernamen und Passwort zum Senden" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:247 +#: src/client/accounts/accounts-editor-add-pane.vala:246 #: src/client/accounts/accounts-editor-servers-pane.vala:363 msgid "Check your sending server details" msgstr "Prüfen Sie die Serverdetails zum Senden" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:262 +#: src/client/accounts/accounts-editor-add-pane.vala:261 msgid "Check your email address and password" msgstr "Prüfen Sie Ihre E-Mail-Adresse und Ihr Passwort" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:273 +#: src/client/accounts/accounts-editor-add-pane.vala:272 msgid "Could not connect, check your network" msgstr "Verbindung konnte nicht hergestellt werden, prüfen Sie Ihr Netzwerk" #. Translators: In-app notification label for a #. generic error creating an account -#: src/client/accounts/accounts-editor-add-pane.vala:286 +#: src/client/accounts/accounts-editor-add-pane.vala:285 msgid "An unexpected problem occurred" msgstr "Ein unerwartetes Problem ist aufgetreten" #. Translators: In-app notification label, the #. string substitution is a more detailed reason. -#: src/client/accounts/accounts-editor-add-pane.vala:304 +#: src/client/accounts/accounts-editor-add-pane.vala:303 #, c-format msgid "Account not created: %s" msgstr "Konto wurde nicht erstellt: %s" #. Translators: Label for the person's actual name when adding #. an account -#: src/client/accounts/accounts-editor-add-pane.vala:551 +#: src/client/accounts/accounts-editor-add-pane.vala:558 msgid "Your name" msgstr "Ihr Name" #. Translators: Label used for the address part of an #. email address when editing a user's sender address #. preferences for an account. -#: src/client/accounts/accounts-editor-add-pane.vala:568 -#: src/client/accounts/accounts-editor-edit-pane.vala:501 +#: src/client/accounts/accounts-editor-add-pane.vala:575 +#: src/client/accounts/accounts-editor-edit-pane.vala:513 msgid "Email address" msgstr "E-Mail-Adresse" @@ -417,8 +443,8 @@ msgstr "E-Mail-Adresse" #. Translators: This is used as a placeholder for the #. address part of an email address when editing a user's #. sender address preferences for an account. -#: src/client/accounts/accounts-editor-add-pane.vala:571 -#: src/client/accounts/accounts-editor-edit-pane.vala:469 +#: src/client/accounts/accounts-editor-add-pane.vala:579 +#: src/client/accounts/accounts-editor-edit-pane.vala:479 msgid "person@example.com" msgstr "name@beispiel.de" @@ -426,15 +452,15 @@ msgstr "name@beispiel.de" #. when adding an account #. Translators: Label for the user's login name for an #. IMAP, SMTP, etc service -#: src/client/accounts/accounts-editor-add-pane.vala:585 -#: src/client/accounts/accounts-editor-servers-pane.vala:880 +#: src/client/accounts/accounts-editor-add-pane.vala:593 +#: src/client/accounts/accounts-editor-servers-pane.vala:884 msgid "Login name" msgstr "Benutzername" #. Translators: Label for the user's password for an IMAP, #. SMTP, etc service -#: src/client/accounts/accounts-editor-add-pane.vala:599 -#: src/client/accounts/accounts-editor-servers-pane.vala:999 +#: src/client/accounts/accounts-editor-add-pane.vala:607 +#: src/client/accounts/accounts-editor-servers-pane.vala:1006 #: ui/password-dialog.glade:108 msgid "Password" msgstr "Passwort" @@ -443,14 +469,14 @@ msgstr "Passwort" #. adding an account. #. Translators: This label describes the host name or IP #. address and port used by an account's IMAP service. -#: src/client/accounts/accounts-editor-add-pane.vala:621 -#: src/client/accounts/accounts-editor-servers-pane.vala:727 +#: src/client/accounts/accounts-editor-add-pane.vala:629 +#: src/client/accounts/accounts-editor-servers-pane.vala:728 msgid "IMAP server" msgstr "IMAP-Server" #. Translators: Placeholder for the IMAP server hostname #. when adding an account. -#: src/client/accounts/accounts-editor-add-pane.vala:624 +#: src/client/accounts/accounts-editor-add-pane.vala:632 msgid "imap.example.com" msgstr "imap.example.com" @@ -458,20 +484,20 @@ msgstr "imap.example.com" #. adding an account. #. Translators: This label describes the host name or IP #. address and port used by an account's SMTP service. -#: src/client/accounts/accounts-editor-add-pane.vala:630 -#: src/client/accounts/accounts-editor-servers-pane.vala:733 +#: src/client/accounts/accounts-editor-add-pane.vala:638 +#: src/client/accounts/accounts-editor-servers-pane.vala:734 msgid "SMTP server" msgstr "SMTP-Server" #. Translators: Placeholder for the SMTP server hostname #. when adding an account. -#: src/client/accounts/accounts-editor-add-pane.vala:633 +#: src/client/accounts/accounts-editor-add-pane.vala:641 msgid "smtp.example.com" msgstr "smtp.example.com" #. Translators: Label in the account editor for the user's #. custom name for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:278 +#: src/client/accounts/accounts-editor-edit-pane.vala:277 #: ui/accounts_editor_remove_pane.ui:123 msgid "Account name" msgstr "Kontoname" @@ -480,46 +506,46 @@ msgstr "Kontoname" #. the name of an account. The string #. substitution is the old name of the #. account. -#: src/client/accounts/accounts-editor-edit-pane.vala:312 +#: src/client/accounts/accounts-editor-edit-pane.vala:318 #, c-format msgid "Change account name back to “%s”" msgstr "Ändern Sie den Kontonamen zurück zu »%s«" #. Translators: Tooltip for adding a new email sender/from #. address's address to an account -#: src/client/accounts/accounts-editor-edit-pane.vala:336 +#: src/client/accounts/accounts-editor-edit-pane.vala:342 msgid "Add a new sender email address" msgstr "Eine neue E-Mail-Adresse zum Senden hinzufügen" #. Translators: Label used to indicate the user has #. provided no display name for one of their sender #. email addresses in their account settings. -#: src/client/accounts/accounts-editor-edit-pane.vala:417 +#: src/client/accounts/accounts-editor-edit-pane.vala:423 msgid "Name not set" msgstr "Name ist nicht gesetzt" #. Translators: This is used as a placeholder for the #. display name for an email address when editing a user's #. sender address preferences for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:456 +#: src/client/accounts/accounts-editor-edit-pane.vala:464 msgid "Sender Name" msgstr "Absendername" -#: src/client/accounts/accounts-editor-edit-pane.vala:479 +#: src/client/accounts/accounts-editor-edit-pane.vala:491 msgid "Remove" msgstr "Entfernen" #. Translators: Label used for the display name part of an #. email address when editing a user's sender address #. preferences for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:494 +#: src/client/accounts/accounts-editor-edit-pane.vala:506 msgid "Sender name" msgstr "Absendername" #. Translators: Label used as the undo tooltip after adding an #. new sender email address to an account. The string #. substitution is the email address added. -#: src/client/accounts/accounts-editor-edit-pane.vala:561 +#: src/client/accounts/accounts-editor-edit-pane.vala:573 #, c-format msgid "Remove “%s”" msgstr "»%s« entfernen" @@ -527,7 +553,7 @@ msgstr "»%s« entfernen" #. Translators: Label used as the undo tooltip after editing a #. sender address for an account. The string substitution is #. the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:601 +#: src/client/accounts/accounts-editor-edit-pane.vala:613 #, c-format msgid "Undo changes to “%s”" msgstr "Änderungen rückgängig machen zu »%s«" @@ -535,7 +561,7 @@ msgstr "Änderungen rückgängig machen zu »%s«" #. Translators: Label used as the undo tooltip after removing #. a sender address from an account. The string substitution #. is the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:688 +#: src/client/accounts/accounts-editor-edit-pane.vala:700 #, c-format msgid "Add “%s” back" msgstr "»%s« wieder hinzufügen" @@ -543,14 +569,14 @@ msgstr "»%s« wieder hinzufügen" #. Translators: Label used as the undo tooltip after removing #. a sender address from an account. The string substitution #. is the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:730 +#: src/client/accounts/accounts-editor-edit-pane.vala:742 msgid "Undo signature changes" msgstr "Änderungen an der Signatur rückgängig machen" #. Translators: This label describes the account #. preference for the length of time (weeks, months or #. years) that past email should be downloaded. -#: src/client/accounts/accounts-editor-edit-pane.vala:778 +#: src/client/accounts/accounts-editor-edit-pane.vala:790 msgid "Download mail" msgstr "E-Mail herunterladen" @@ -559,99 +585,101 @@ msgstr "E-Mail herunterladen" #. should be downloaded for an account. The #. string substitution is the duration, #. e.g. "1 month back". -#: src/client/accounts/accounts-editor-edit-pane.vala:810 +#: src/client/accounts/accounts-editor-edit-pane.vala:822 #, c-format msgid "Change download period back to: %s" msgstr "Download-Länge zurücksetzen auf: %s" -#: src/client/accounts/accounts-editor-edit-pane.vala:831 +#: src/client/accounts/accounts-editor-edit-pane.vala:843 msgid "Everything" msgstr "Alles" -#: src/client/accounts/accounts-editor-edit-pane.vala:835 +#: src/client/accounts/accounts-editor-edit-pane.vala:847 msgid "2 weeks back" msgstr "2 Wochen zurück" -#: src/client/accounts/accounts-editor-edit-pane.vala:839 +#: src/client/accounts/accounts-editor-edit-pane.vala:851 msgid "1 month back" msgstr "1 Monat zurück" -#: src/client/accounts/accounts-editor-edit-pane.vala:843 +#: src/client/accounts/accounts-editor-edit-pane.vala:855 msgid "3 months back" msgstr "3 Monate zurück" -#: src/client/accounts/accounts-editor-edit-pane.vala:847 +#: src/client/accounts/accounts-editor-edit-pane.vala:859 msgid "6 months back" msgstr "6 Monate zurück" -#: src/client/accounts/accounts-editor-edit-pane.vala:851 +#: src/client/accounts/accounts-editor-edit-pane.vala:863 msgid "1 year back" msgstr "1 Jahr zurück" -#: src/client/accounts/accounts-editor-edit-pane.vala:855 +#: src/client/accounts/accounts-editor-edit-pane.vala:867 msgid "2 years back" msgstr "2 Jahre zurück" -#: src/client/accounts/accounts-editor-edit-pane.vala:859 +#: src/client/accounts/accounts-editor-edit-pane.vala:871 msgid "4 years back" msgstr "4 Jahre zurück" -#: src/client/accounts/accounts-editor-edit-pane.vala:865 +#: src/client/accounts/accounts-editor-edit-pane.vala:877 #, c-format msgid "%d day back" msgid_plural "%d days back" msgstr[0] "%d Tag zurück" msgstr[1] "%d Tage zurück" -#: src/client/accounts/accounts-editor-list-pane.vala:243 +#: src/client/accounts/accounts-editor-list-pane.vala:255 +#: src/client/application/application-main-window.vala:2053 msgid "Undo" msgstr "Rückgängig machen" -#: src/client/accounts/accounts-editor-list-pane.vala:251 +#: src/client/accounts/accounts-editor-list-pane.vala:264 +#: src/client/application/application-main-window.vala:2036 msgid "Redo" msgstr "Wiederholen" -#: src/client/accounts/accounts-editor-list-pane.vala:345 -#: src/client/accounts/accounts-editor-list-pane.vala:433 -#: src/client/accounts/accounts-editor-row.vala:278 +#: src/client/accounts/accounts-editor-list-pane.vala:358 +#: src/client/accounts/accounts-editor-list-pane.vala:446 +#: src/client/accounts/accounts-editor-row.vala:279 msgid "Gmail" msgstr "Gmail" -#: src/client/accounts/accounts-editor-list-pane.vala:349 -#: src/client/accounts/accounts-editor-list-pane.vala:437 -#: src/client/accounts/accounts-editor-row.vala:282 +#: src/client/accounts/accounts-editor-list-pane.vala:362 +#: src/client/accounts/accounts-editor-list-pane.vala:450 +#: src/client/accounts/accounts-editor-row.vala:283 msgid "Outlook.com" msgstr "Outlook.com" -#: src/client/accounts/accounts-editor-list-pane.vala:353 -#: src/client/accounts/accounts-editor-list-pane.vala:441 -#: src/client/accounts/accounts-editor-row.vala:286 +#: src/client/accounts/accounts-editor-list-pane.vala:366 +#: src/client/accounts/accounts-editor-list-pane.vala:454 +#: src/client/accounts/accounts-editor-row.vala:287 msgid "Yahoo" msgstr "Yahoo" #. Translators: Tooltip for accounts that have been #. loaded but disabled by the user. -#: src/client/accounts/accounts-editor-list-pane.vala:371 +#: src/client/accounts/accounts-editor-list-pane.vala:384 msgid "This account has been disabled" msgstr "Dieses Konto wurde deaktiviert" #. Translators: Tooltip for accounts that have been #. loaded but because of some error are not able to be #. used. -#: src/client/accounts/accounts-editor-list-pane.vala:380 +#: src/client/accounts/accounts-editor-list-pane.vala:393 msgid "This account has encountered a problem and is unavailable" msgstr "" "Bei diesem Konto ist ein Fehler aufgetreten und es ist daher nicht verfügbar" #. Translators: Label for adding a generic email account -#: src/client/accounts/accounts-editor-list-pane.vala:430 +#: src/client/accounts/accounts-editor-list-pane.vala:443 msgid "Other email providers" msgstr "Andere E-Mail-Anbieter" #. Translators: Notification shown after removing an #. account. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:547 +#: src/client/accounts/accounts-editor-list-pane.vala:560 #, c-format msgid "Account “%s” removed" msgstr "Konto »%s« wurde entfernt" @@ -659,44 +687,44 @@ msgstr "Konto »%s« wurde entfernt" #. Translators: Notification shown after removing an account #. is undone. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:554 +#: src/client/accounts/accounts-editor-list-pane.vala:567 #, c-format msgid "Account “%s” restored" msgstr "Konto »%s« wurde wiederhergestellt" #. Translators: Tooltip for dragging list items -#: src/client/accounts/accounts-editor-row.vala:49 +#: src/client/accounts/accounts-editor-row.vala:50 msgid "Drag to move this item" msgstr "Klicken Sie auf das Objekt und ziehen Sie es, um es zu bewegen" #. Translators: Label describes the service provider #. hosting the email account, e.g. Gmail, Yahoo, or some #. other generic IMAP service. -#: src/client/accounts/accounts-editor-row.vala:294 +#: src/client/accounts/accounts-editor-row.vala:295 msgid "Service provider" msgstr "Anbieter" #. Translators: This label describes what form of transport #. security (TLS, StartTLS, etc) used by an account's IMAP or SMTP #. service. -#: src/client/accounts/accounts-editor-row.vala:467 +#: src/client/accounts/accounts-editor-row.vala:468 msgid "Connection security" msgstr "Sicherheit der Verbindung" #. Translators: Label used when no auth scheme is used #. by an account's IMAP or SMTP service. -#: src/client/accounts/accounts-editor-row.vala:478 -#: src/client/accounts/accounts-editor-servers-pane.vala:752 -#: src/client/accounts/accounts-editor-servers-pane.vala:964 +#: src/client/accounts/accounts-editor-row.vala:479 +#: src/client/accounts/accounts-editor-servers-pane.vala:755 +#: src/client/accounts/accounts-editor-servers-pane.vala:970 #: src/engine/api/geary-special-folder-type.vala:58 msgid "None" msgstr "Nichts" -#: src/client/accounts/accounts-editor-row.vala:485 +#: src/client/accounts/accounts-editor-row.vala:486 msgid "StartTLS" msgstr "StartTLS" -#: src/client/accounts/accounts-editor-row.vala:492 +#: src/client/accounts/accounts-editor-row.vala:493 msgid "TLS" msgstr "TLS" @@ -704,28 +732,29 @@ msgstr "TLS" #. credentials (none, use IMAP, custom) when adding a new #. account #. Button label for retrying when a login error has occurred -#: src/client/accounts/accounts-editor-row.vala:533 ui/main-window.ui:455 +#: src/client/accounts/accounts-editor-row.vala:534 +#: ui/application-main-window.ui:346 msgid "Login" msgstr "Anmelden" #. Translators: ComboBox value for source of SMTP #. authentication credentials (none) when adding a new #. account -#: src/client/accounts/accounts-editor-row.vala:540 +#: src/client/accounts/accounts-editor-row.vala:541 msgid "No login needed" msgstr "Keine Anmeldung erforderlich" #. Translators: ComboBox value for source of SMTP #. authentication credentials (use IMAP) when adding a new #. account -#: src/client/accounts/accounts-editor-row.vala:548 +#: src/client/accounts/accounts-editor-row.vala:549 msgid "Use same login as receiving" msgstr "Dieselben Anmeldedaten zum Empfangen verwenden" #. Translators: ComboBox value for source of SMTP #. authentication credentials (custom) when adding a new #. account -#: src/client/accounts/accounts-editor-row.vala:556 +#: src/client/accounts/accounts-editor-row.vala:557 msgid "Use a different login" msgstr "Andere Anmeldedaten verwenden" @@ -750,8 +779,8 @@ msgstr "GNOME Online-Konten" #. Translators: This label describes an account #. preference. #: src/client/accounts/accounts-editor-servers-pane.vala:611 -msgid "Save drafts on server" -msgstr "Entwürfe auf dem Server speichern" +msgid "Save draft email on server" +msgstr "E-Mail-Entwürfe auf dem Server speichern" #. Translators: This label describes an account #. preference. @@ -764,28 +793,190 @@ msgstr "Gesendete E-Mails auf dem Server speichern" #. Translators: Label used when an account's IMAP or #. SMTP service uses OAuth2. The string replacement is #. the service's login name. -#: src/client/accounts/accounts-editor-servers-pane.vala:950 +#: src/client/accounts/accounts-editor-servers-pane.vala:956 #, c-format msgid "%s using OAuth2" msgstr "%s mittels OAuth2" -#: src/client/accounts/accounts-editor-servers-pane.vala:960 +#: src/client/accounts/accounts-editor-servers-pane.vala:966 msgid "Use receiving server login" msgstr "Server-Anmeldedaten zum Empfangen verwenden" -#: src/client/application/geary-application.vala:24 +#. Translators: File name used in save chooser when saving +#. attachments that do not otherwise have a name. +#: src/client/application/application-attachment-manager.vala:21 +msgid "Untitled" +msgstr "Unbenannt" + +#. / Translators: Dialog primary label when prompting to +#. / overwrite a file. The string substitution is the file'sx +#. / name. +#: src/client/application/application-attachment-manager.vala:222 +#, c-format +msgid "A file named “%s” already exists. Do you want to replace it?" +msgstr "Die Datei »%s« existiert schon. Möchten Sie diese ersetzen?" + +#. / Translators: Dialog secondary label when prompting to +#. / overwrite a file. The string substitution is the parent +#. / folder's name. +#: src/client/application/application-attachment-manager.vala:229 +#, c-format +msgid "" +"The file already exists in “%s”. Replacing it will overwrite its contents." +msgstr "" +"Die Datei existiert bereits in »%s«. Beim Ersetzen wird die Datei " +"überschrieben." + +#: src/client/application/application-attachment-manager.vala:236 +msgid "_Replace" +msgstr "_Ersetzen" + +#: src/client/application/application-client.vala:33 msgid "Copyright 2016 Software Freedom Conservancy Inc." msgstr "Copyright 2016 Software Freedom Conservancy Inc." -#: src/client/application/geary-application.vala:25 +#: src/client/application/application-client.vala:34 msgid "Copyright 2016-2019 Geary Development Team." msgstr "Copyright 2016-2019 Geary-Entwicklerteam." -#: src/client/application/geary-application.vala:27 +#: src/client/application/application-client.vala:36 msgid "Visit the Geary web site" msgstr "Geary-Webseite besuchen" -#: src/client/application/geary-application.vala:454 +#. / Command line option +#: src/client/application/application-client.vala:94 +msgid "Print debug logging" +msgstr "Fehlerbehebungsprotokolle anzeigen" + +#. / Command line option +#: src/client/application/application-client.vala:97 +msgid "Start with the main window hidden (deprecated)" +msgstr "Geary mit verborgenem Hauptfenster starten (veraltet)" + +#. / Command line option +#: src/client/application/application-client.vala:100 +msgid "Enable WebKitGTK Inspector in web views" +msgstr "WebKitGTK-Inspector in Webanzeigen aktivieren" + +#. / Command line option +#: src/client/application/application-client.vala:103 +msgid "Log conversation monitoring" +msgstr "Gesprächsmonitoring protokollieren" + +#. / Command line option +#: src/client/application/application-client.vala:106 +msgid "Log IMAP network deserialization" +msgstr "IMAP-Netzwerkdeserialisierung protokollieren" + +#. / Command line option. "Normalization" can also be called +#. / "synchronization". +#: src/client/application/application-client.vala:110 +msgid "Log folder normalization" +msgstr "Ordnerabgleich protokollieren" + +#. / Command line option +#: src/client/application/application-client.vala:113 +msgid "Log network activity" +msgstr "Netzwerkaktivitäten protokollieren" + +#. / Command line option +#: src/client/application/application-client.vala:116 +msgid "Log periodic activity" +msgstr "Regelmäßige Aktivitäten protokollieren" + +#. / Command line option. The IMAP replay queue is how changes +#. / on the server are replicated on the client. It could +#. / also be called the IMAP events queue. +#: src/client/application/application-client.vala:121 +msgid "Log IMAP replay queue" +msgstr "IMAP-Ereigniswarteschlange protokollieren" + +#. / Command line option. Serialization is how commands and +#. / responses are converted into a stream of bytes for +#. / network transmission +#: src/client/application/application-client.vala:126 +msgid "Log IMAP network serialization" +msgstr "IMAP-Netzwerkserialisierung protokollieren" + +#. / Command line option +#: src/client/application/application-client.vala:129 +msgid "Log database queries (generates lots of messages)" +msgstr "" +"Datenbankabfragen protokollieren (dabei werden sehr viele Einträge erzeugt)" + +#. / Command line option +#: src/client/application/application-client.vala:132 +msgid "Perform a graceful quit" +msgstr "Ordnungsgemäß beenden" + +#: src/client/application/application-client.vala:134 +msgid "Open a new window" +msgstr "Ein neues Fenster öffnen" + +#. / Command line option +#: src/client/application/application-client.vala:137 +msgid "Revoke all pinned TLS server certificates" +msgstr "Alle beschränkten TLS-Server-Zertifikate widerrufen" + +#. / Command line option +#: src/client/application/application-client.vala:140 +msgid "Display program version" +msgstr "Programmversion anzeigen" + +#. / Application runtime information label +#: src/client/application/application-client.vala:264 +msgid "Geary version" +msgstr "Geary-Version" + +# Bezieht sich auf Git-Revision +#. / Application runtime information label +#: src/client/application/application-client.vala:266 +msgid "Geary revision" +msgstr "Geary-Revision" + +#. / Application runtime information label +#: src/client/application/application-client.vala:268 +msgid "GTK version" +msgstr "GTK-Version" + +#. / Applciation runtime information label +#: src/client/application/application-client.vala:275 +msgid "GLib version" +msgstr "GLib-Version" + +#. / Application runtime information label +#: src/client/application/application-client.vala:282 +msgid "WebKitGTK version" +msgstr "WebKitGTK-Version" + +#. / Application runtime information label +#: src/client/application/application-client.vala:289 +msgid "Desktop environment" +msgstr "Desktopumgebung" + +#. Translators: This is the file type displayed for +#. attachments with unknown file types. +#: src/client/application/application-client.vala:291 +#: src/client/components/components-attachment-pane.vala:91 +msgid "Unknown" +msgstr "Unbekannt" + +#. / Application runtime information label +#: src/client/application/application-client.vala:321 +msgid "Distribution name" +msgstr "Distributionsname" + +#. / Application runtime information label +#: src/client/application/application-client.vala:326 +msgid "Distribution release" +msgstr "Distributionsveröffentlichung" + +#. / Application runtime information label +#: src/client/application/application-client.vala:334 +msgid "Installation prefix" +msgstr "Installationspräfix" + +#: src/client/application/application-client.vala:587 #, c-format msgid "About %s" msgstr "Info zu %s" @@ -793,7 +984,7 @@ msgstr "Info zu %s" #. Translators: add your name and email address to receive #. credit in the About dialog For example: Yamada Taro #. -#: src/client/application/geary-application.vala:458 +#: src/client/application/application-client.vala:591 msgid "translator-credits" msgstr "" "Benjamin Steinwender \n" @@ -801,108 +992,129 @@ msgstr "" "Mario Blättermann \n" "Tim Sabsch " -#: src/client/application/geary-args.vala:10 -msgid "Start Geary with hidden main window" -msgstr "Geary mit verborgenem Hauptfenster starten" - -#: src/client/application/geary-args.vala:11 -msgid "Output debugging information" -msgstr "Debuginformationen ausgeben" - -#: src/client/application/geary-args.vala:12 -msgid "Log conversation monitoring" -msgstr "Gesprächsmonitoring protokollieren" - -#: src/client/application/geary-args.vala:13 -msgid "Log network deserialization" -msgstr "Netzwerkdeserialisierung protokollieren" - -#: src/client/application/geary-args.vala:14 -msgid "Log network activity" -msgstr "Netzwerkaktivitäten protokollieren" - -#. / The IMAP replay queue is how changes on the server are replicated on the client. -#. / It could also be called the IMAP events queue. -#: src/client/application/geary-args.vala:17 -msgid "Log IMAP replay queue" -msgstr "IMAP-Ereigniswarteschlange protokollieren" - -#. / Serialization is how commands and responses are converted into a stream of bytes for -#. / network transmission -#: src/client/application/geary-args.vala:20 -msgid "Log network serialization" -msgstr "Netzwerkserialisierung protokollieren" - -#: src/client/application/geary-args.vala:21 -msgid "Log periodic activity" -msgstr "Regelmäßige Aktivitäten protokollieren" - -#: src/client/application/geary-args.vala:22 -msgid "Log database queries (generates lots of messages)" +#. / Warning printed to the console when a deprecated +#. / command line option is used. +#: src/client/application/application-client.vala:937 +msgid "The `--hidden` option is deprecated and will be removed in the future." msgstr "" -"Datenbankabfragen protokollieren (dabei werden sehr viele Einträge erzeugt)" +"Die Option »--hidden« ist veraltet und wird in einer künftigen Version " +"entfernt." -#. / "Normalization" can also be called "synchronization" -#: src/client/application/geary-args.vala:24 -msgid "Log folder normalization" -msgstr "Ordnerabgleich protokollieren" - -#: src/client/application/geary-args.vala:25 -msgid "Allow inspection of WebView" -msgstr "Untersuchung der Webansicht erlauben" - -#: src/client/application/geary-args.vala:26 -msgid "Revoke all server certificates with TLS warnings" -msgstr "Alle Server-Zertifikate mit TLS-Warnungen widerrufen" - -#: src/client/application/geary-args.vala:27 -msgid "Perform a graceful quit" -msgstr "Ordnungsgemäß beenden" - -#: src/client/application/geary-args.vala:28 -msgid "Display program version" -msgstr "Programmversion anzeigen" - -#. This gives a command-line hint on how to open new composer windows with mailto: -#: src/client/application/geary-args.vala:53 +#. / Command line warning, string substitution +#. / is the given argument +#: src/client/application/application-client.vala:970 #, c-format -msgid "Use %s to open a new composer window" -msgstr "Benutzen Sie %s, um ein neues »Verfassen«-Fenster zu öffnen" +msgid "Unrecognised program argument: “%s”" +msgstr "Unbekanntes Befehlszeilenargument »%s«" -#: src/client/application/geary-args.vala:56 -msgid "Please report comments, suggestions and bugs to:" -msgstr "Bitte melden Sie Kommentare, Vorschläge und Fehler an:" - -#. i18n: Command line arguments are invalid -#: src/client/application/geary-args.vala:63 +#. / Notification title. +#: src/client/application/application-controller.vala:458 #, c-format -msgid "Failed to parse command line options: %s\n" -msgstr "Die Befehlszeilenargumente konnten nicht interpretiert werden: %s\n" +msgid "A problem occurred sending email for %s" +msgstr "Ein Problem ist beim Senden von E-Mails für %s aufgetreten" -#: src/client/application/geary-args.vala:74 +#. / Notification body +#: src/client/application/application-controller.vala:462 +msgid "Email will not be sent until re-connected" +msgstr "E-Mail wird nicht gesendet, bis wieder eine Verbindung besteht." + +#. / Translators: Label for in-app notification +#: src/client/application/application-controller.vala:568 +msgid "Conversation marked" +msgid_plural "Conversations marked" +msgstr[0] "Konversation markiert" +msgstr[1] "Konversationen markiert" + +#. / Translators: Label for in-app notification +#: src/client/application/application-controller.vala:574 +msgid "Conversation un-marked" +msgid_plural "Conversations un-marked" +msgstr[0] "Markierung der Konversation aufgehoben" +msgstr[1] "Markierung der Konversationen aufgehoben" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:600 +#: src/client/application/application-controller.vala:684 #, c-format -msgid "Unrecognized command line option “%s”\n" -msgstr "Unbekanntes Befehlszeilenargument »%s«\n" +msgid "Conversation moved to %s" +msgid_plural "Conversations moved to %s" +msgstr[0] "Konversation verschoben nach %s" +msgstr[1] "Konversationen verschoben nach %s" -#. Translators: File name used in save chooser when saving -#. attachments that do not otherwise have a name. -#: src/client/application/geary-controller.vala:58 -msgid "Untitled" -msgstr "Unbenannt" +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the source folder. +#. / Translators: Label for in-app notification. String +#. / substitution is the name of the destination folder. +#: src/client/application/application-controller.vala:608 +#: src/client/application/application-controller.vala:630 +#, c-format +msgid "Conversation restored to %s" +msgid_plural "Conversations restored to %s" +msgstr[0] "Konversation wiederhergestellt nach %s" +msgstr[1] "Konversationen wiederhergestellt nach %s" -#: src/client/application/geary-controller.vala:954 -msgid "Labels" -msgstr "Beschriftungen" +#. / Translators: Label for in-app notification. +#: src/client/application/application-controller.vala:651 +msgid "Conversation archived" +msgid_plural "Conversations archived" +msgstr[0] "Konversation archiviert" +msgstr[1] "Konversationen archiviert" -#. give the user two options: reset the Account local store, or exit Geary. A third -#. could be done to leave the Account in an unopened state, but we don't currently -#. have provisions for that. -#: src/client/application/geary-controller.vala:967 +#. / Translators: Label for in-app notification. String +#. / substitution is the name of the destination folder. +#: src/client/application/application-controller.vala:707 +#, c-format +msgid "Message restored to %s" +msgid_plural "Messages restored to %s" +msgstr[0] "Nachricht wiederhergestellt nach %s" +msgstr[1] "Nachrichten wiederhergestellt nach %s" + +#. / Translators: Label for in-app notification. +#: src/client/application/application-controller.vala:728 +msgid "Message archived" +msgid_plural "Messages archived" +msgstr[0] "Nachricht archiviert" +msgstr[1] "Nachrichten archiviert" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:763 +#, c-format +msgid "Message moved to %s" +msgid_plural "Messages moved to %s" +msgstr[0] "Nachricht verschoben nach %s" +msgstr[1] "Nachrichten verschoben nach %s" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:791 +#, c-format +msgid "Conversation labelled as %s" +msgid_plural "Conversations labelled as %s" +msgstr[0] "Konversation beschriftet als %s" +msgstr[1] "Konversationen beschriftet als %s" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:799 +#, c-format +msgid "Conversation un-labelled as %s" +msgid_plural "Conversations un-labelled as %s" +msgstr[0] "Beschriftung der Konversation als %s aufgehoben" +msgstr[1] "Beschriftung der Konversationen als %s aufgehoben" + +#: src/client/application/application-controller.vala:1222 #, c-format msgid "Unable to open the database for %s" msgstr "Die Datenbank für %s konnte nicht geöffnet werden" -#: src/client/application/geary-controller.vala:968 +#: src/client/application/application-controller.vala:1223 #, c-format msgid "" "There was an error opening the local mail database for this account. This is " @@ -927,20 +1139,20 @@ msgstr "" "dazugehörigen Anhänge verloren. E-Mails auf Ihrem Server werden nicht " "betroffen sein." -#: src/client/application/geary-controller.vala:970 +#: src/client/application/application-controller.vala:1225 msgid "_Rebuild" msgstr "_Wiederherstellen" -#: src/client/application/geary-controller.vala:970 +#: src/client/application/application-controller.vala:1225 msgid "E_xit" msgstr "B_eenden" -#: src/client/application/geary-controller.vala:979 +#: src/client/application/application-controller.vala:1235 #, c-format msgid "Unable to rebuild database for “%s”" msgstr "Die Datenbank für »%s« konnte nicht wiederhergestellt werden" -#: src/client/application/geary-controller.vala:980 +#: src/client/application/application-controller.vala:1236 #, c-format msgid "" "Error during rebuild:\n" @@ -951,15 +1163,110 @@ msgstr "" "\n" "%s" -#: src/client/application/geary-controller.vala:1835 -msgid "Undo move (Ctrl+Z)" -msgstr "Verschieben rückgängig machen (Strg+Z)" +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:1559 +#, c-format +msgid "Email sent to %s" +msgstr "E-Mail gesendet an %s" -#: src/client/application/geary-controller.vala:1845 +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2642 +#, c-format +msgid "Email to %s queued for delivery" +msgstr "E-Mail an %s zum Versand vorgemerkt" + +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2706 +#, c-format +msgid "Email to %s saved" +msgstr "E-Mail an %s gespeichert" + +#. / Translators: A label for an in-app notification. +#: src/client/application/application-controller.vala:2721 +#: src/client/application/application-controller.vala:2779 +msgid "Composer could not be restored" +msgstr "Verfassen-Fenster konnte nicht wiederhergestellt werden" + +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2764 +#, c-format +msgid "Email to %s discarded" +msgstr "E-Mail an %s verworfen" + +#. / Translators: Main window title, first string +#. / substitution being the currently selected folder name, +#. / the second being the selected account name. +#: src/client/application/application-main-window.vala:560 +#, c-format +msgid "%s — %s" +msgstr "%s — %s" + +#: src/client/application/application-main-window.vala:967 +msgid "Labels" +msgstr "Beschriftungen" + +#. / Translators: Primary text for a confirmation dialog +#: src/client/application/application-main-window.vala:1306 +msgid "Do you want to permanently delete this conversation?" +msgid_plural "Do you want to permanently delete these conversations?" +msgstr[0] "Möchten Sie diese Konversation dauerhaft löschen?" +msgstr[1] "Möchten Sie diese Konversationen dauerhaft löschen?" + +#: src/client/application/application-main-window.vala:1311 +#: src/client/application/application-main-window.vala:1326 +msgid "Delete" +msgstr "Löschen" + +#. / Translators: Primary text for a confirmation dialog +#: src/client/application/application-main-window.vala:1321 +msgid "Do you want to permanently delete this message?" +msgid_plural "Do you want to permanently delete these messages?" +msgstr[0] "Möchten Sie diese Nachricht dauerhaft löschen?" +msgstr[1] "Möchten Sie diese Nachrichten dauerhaft löschen?" + +#: src/client/application/application-main-window.vala:1334 +#, c-format +msgid "Empty all email from your %s folder?" +msgstr "Alle E-Mails aus dem Ordner %s löschen?" + +#: src/client/application/application-main-window.vala:1337 +msgid "This removes the email from Geary and your email server." +msgstr "Dies wird die E-Mail aus Geary und von Ihrem E-Mail-Server löschen." + +#: src/client/application/application-main-window.vala:1338 +msgid "This cannot be undone." +msgstr "Dies kann nicht rückgängig gemacht werden." + +#: src/client/application/application-main-window.vala:1339 +#, c-format +msgid "Empty %s" +msgstr "%s leeren" + +#: src/client/application/application-main-window.vala:1669 +#, c-format +msgid "%s (%d)" +msgstr "%s (%d)" + +#. Translators: The first argument will be a +#. description of the document type, the second will +#. be a human-friendly size string. For example: +#. Document (100.9MB) +#. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" +#: src/client/components/components-attachment-pane.vala:107 +#: src/client/composer/composer-widget.vala:1834 +#, c-format +msgid "%s (%s)" +msgstr "%s (%s)" + +#: src/client/components/components-attachment-pane.vala:379 msgid "Are you sure you want to open these attachments?" msgstr "Möchten Sie wirklich diese Anhänge öffnen?" -#: src/client/application/geary-controller.vala:1846 +#: src/client/components/components-attachment-pane.vala:380 msgid "" "Attachments may cause damage to your system if opened. Only open files from " "trusted sources." @@ -967,384 +1274,237 @@ msgstr "" "Anhänge können Ihr System beschädigen, wenn diese geöffnet werden. Öffnen " "Sie nur Dateien aus vertrauenswürdigen Quellen." -#: src/client/application/geary-controller.vala:1847 +#: src/client/components/components-attachment-pane.vala:381 msgid "Don’t _ask me again" msgstr "Nicht _noch einmal fragen" -#. Translators: Dialog primary label when prompting to -#. overwrite a file. The string substitution is the file'sx -#. name. -#: src/client/application/geary-controller.vala:1976 -#, c-format -msgid "A file named “%s” already exists. Do you want to replace it?" -msgstr "Die Datei »%s« existiert schon. Möchten Sie diese ersetzen?" +# Gemeint is vmtl der WebKitGTK-Inspector +#: src/client/components/components-inspector.vala:72 +msgid "Inspector" +msgstr "Inspector" -#. Translators: Dialog secondary label when prompting to -#. overwrite a file. The string substitution is the parent -#. folder's name. -#: src/client/application/geary-controller.vala:1983 -#, c-format +#. / Translators: Title for Inspector logs pane +#. / Translators: Title for problem report dialog logs pane +#: src/client/components/components-inspector.vala:87 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:102 +msgid "Logs" +msgstr "Protokolle" + +#. / Translators: Title for Inspector system system information pane +#. / Translators: Title for problem report system information +#. / pane +#: src/client/components/components-inspector.vala:91 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:105 +msgid "System" +msgstr "System" + +#. Button label for saving problem report information +#: src/client/components/components-inspector.vala:208 +#: src/client/components/components-inspector.vala:211 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:221 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:224 +#: ui/problem-details-dialog.ui:42 +msgid "Save As" +msgstr "Speichern als" + +#: src/client/components/components-inspector.vala:212 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:225 +#: ui/accounts_editor_servers_pane.ui:17 +msgid "Cancel" +msgstr "Abbrechen" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:43 +msgid "_Automatically select next message" +msgstr "Automatisch die nächste Nachricht _wählen" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:53 +msgid "_Display conversation preview" +msgstr "Konversations_vorschau anzeigen" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:63 +msgid "Use _three pane view" +msgstr "_Dreispaltige Ansicht verwenden" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:73 +msgid "Use _single key email shortcuts" +msgstr "_Einfache E-Mail-Tastenkürzel verwenden" + +#: src/client/components/components-preferences-window.vala:75 msgid "" -"The file already exists in “%s”. Replacing it will overwrite its contents." +"Enable keyboard shortcuts for email actions that do not require pressing " +"" msgstr "" -"Die Datei existiert bereits in »%s«. Beim Ersetzen wird die Datei " -"überschrieben." +"Tastenkürzel für E-Mail-Aktionen verwenden, die keinen Tastendruck von " +" erfordern" -#: src/client/application/geary-controller.vala:1987 -msgid "_Replace" -msgstr "_Ersetzen" +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:86 +msgid "_Watch for new mail when closed" +msgstr "_Ständig nach neuen E-Mails prüfen" -#: src/client/application/geary-controller.vala:2263 -msgid "Close the draft message?" -msgid_plural "Close all draft messages?" -msgstr[0] "Nachrichtenentwurf schließen?" -msgstr[1] "Alle Nachrichtenentwürfe schließen?" +#. / Translators: Preferences tooltip +#: src/client/components/components-preferences-window.vala:90 +msgid "Geary will keep running after all windows are closed" +msgstr "Geary wird weiter ausgeführt, nachdem alle Fenster geschlossen wurden" -#: src/client/application/geary-controller.vala:2389 +#. / Translators: Search entry placeholder text +#: src/client/components/components-search-bar.vala:12 +#: src/client/folder-list/folder-list-search-branch.vala:53 +#: src/engine/api/geary-special-folder-type.vala:51 +msgid "Search" +msgstr "Suchen" + +#. / Translators: Search entry tooltip +#: src/client/components/components-search-bar.vala:32 +msgid "Search all mail in account for keywords" +msgstr "Alle E-Mails dieses Kontos nach Stichworten durchsuchen" + +#. / Translators: Search entry placeholder, string +#. / replacement is the name of an account +#: src/client/components/components-search-bar.vala:81 +#: src/client/folder-list/folder-list-search-branch.vala:54 #, c-format -msgid "Empty all email from your %s folder?" -msgstr "Alle E-Mails aus dem Ordner %s löschen?" - -#: src/client/application/geary-controller.vala:2390 -msgid "This removes the email from Geary and your email server." -msgstr "Dies wird die E-Mail aus Geary und von Ihrem E-Mail-Server löschen." - -#: src/client/application/geary-controller.vala:2391 -msgid "This cannot be undone." -msgstr "Dies kann nicht rückgängig gemacht werden." - -#: src/client/application/geary-controller.vala:2392 -#, c-format -msgid "Empty %s" -msgstr "%s leeren" - -#: src/client/application/geary-controller.vala:2409 -#, c-format -msgid "Error emptying %s" -msgstr "Fehler beim Leeren von %s" - -#: src/client/application/geary-controller.vala:2441 -msgid "Do you want to permanently delete this message?" -msgid_plural "Do you want to permanently delete these messages?" -msgstr[0] "Möchten Sie diese Nachricht dauerhaft löschen?" -msgstr[1] "Möchten Sie diese Nachrichten dauerhaft löschen?" - -#: src/client/application/geary-controller.vala:2443 -msgid "Delete" -msgstr "Löschen" - -#: src/client/application/geary-controller.vala:2457 -msgid "Undo trash (Ctrl+Z)" -msgstr "Papierkorb rückgängig (Strg+Z)" - -#: src/client/application/geary-controller.vala:2507 -msgid "Undo archive (Ctrl+Z)" -msgstr "Archivieren rückgängig (Strg+Z)" - -#: src/client/application/geary-controller.vala:2552 -msgid "Undo (Ctrl+Z)" -msgstr "Rückgängig (Strg+Z)" - -#. Translators: The label for an in-app notification. The -#. string substitution is a list of recipients of the email. -#: src/client/application/geary-controller.vala:2633 -#, c-format -msgid "Successfully sent mail to %s." -msgstr "Nachricht an %s wurde erfolgreich gesendet." - -#: src/client/application/geary-controller.vala:2715 -msgid "Failed to open default text editor." -msgstr "Der Standard-Texteditor konnte nicht geöffnet werden." +msgid "Search %s account" +msgstr "%s-Konto durchsuchen" #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but one is not provided. -#: src/client/components/components-validator.vala:378 +#: src/client/components/components-validator.vala:390 msgid "An email address is required" msgstr "Es wird eine E-Mail-Adresse benötigt" #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but the address is invalid. -#: src/client/components/components-validator.vala:382 +#: src/client/components/components-validator.vala:394 msgid "Not a valid email address" msgstr "Ungültige E-Mail-Adresse" #. Translators: Tooltip used when an entry requires a valid, #. resolvable server name to be entered, but one is not #. provided. -#: src/client/components/components-validator.vala:428 +#: src/client/components/components-validator.vala:440 msgid "A server name is required" msgstr "Es wird ein Servername benötigt" #. Translators: Tooltip used when an entry requires a valid #. server name to be entered, but it was unable to be #. looked-up in the DNS. -#: src/client/components/components-validator.vala:433 +#: src/client/components/components-validator.vala:445 msgid "Could not look up server name" msgstr "Servername konnte nicht abgefragt werden" -#: src/client/components/main-toolbar.vala:151 +#: src/client/components/main-toolbar.vala:116 msgid "Mark conversation" msgid_plural "Mark conversations" msgstr[0] "Konversation markieren" msgstr[1] "Konversationen markieren" -#: src/client/components/main-toolbar.vala:156 +#: src/client/components/main-toolbar.vala:121 msgid "Add label to conversation" msgid_plural "Add label to conversations" msgstr[0] "Konversation eine Beschriftung zuweisen" msgstr[1] "Konversationen eine Beschriftung zuweisen" -#: src/client/components/main-toolbar.vala:161 +#: src/client/components/main-toolbar.vala:126 msgid "Move conversation" msgid_plural "Move conversations" msgstr[0] "Konversation verschieben" msgstr[1] "Konversationen verschieben" -#: src/client/components/main-toolbar.vala:166 -msgid "Archive conversation (A)" -msgid_plural "Archive conversations (A)" -msgstr[0] "Konversation archivieren (A)" -msgstr[1] "Konversationen archivieren (A)" +#: src/client/components/main-toolbar.vala:131 +msgid "Archive conversation" +msgid_plural "Archive conversations" +msgstr[0] "Konversation archivieren" +msgstr[1] "Konversationen archivieren" -#: src/client/components/main-toolbar.vala:175 -msgid "Move conversation to Trash (Delete, Backspace)" -msgid_plural "Move conversations to Trash (Delete, Backspace)" -msgstr[0] "Konversation in den Papierkorb verschieben (Entf, Rücktaste)" -msgstr[1] "Konversationen in den Papierkorb verschieben (Entf, Rücktaste)" +#: src/client/components/main-toolbar.vala:142 +msgid "Move conversation to Trash" +msgid_plural "Move conversations to Trash" +msgstr[0] "Konversation in den Papierkorb verschieben" +msgstr[1] "Konversationen in den Papierkorb verschieben" -#: src/client/components/main-toolbar.vala:183 -msgid "Delete conversation (Shift+Delete)" -msgid_plural "Delete conversations (Shift+Delete)" -msgstr[0] "Konversation löschen (Umschalt+Entf)" -msgstr[1] "Konversationen löschen (Umschalt+Entf)" +#: src/client/components/main-toolbar.vala:152 +msgid "Delete conversation" +msgid_plural "Delete conversations" +msgstr[0] "Konversation löschen" +msgstr[1] "Konversationen löschen" -#: src/client/components/main-window.vala:503 +#. Translators: Info bar title for a generic account +#. problem. +#: src/client/components/main-window-info-bar.vala:44 +msgid "Account problem" +msgstr "Kontoproblem" + +#. Translators: Info bar sub-title for a generic account +#. problem. String substitution is the account name. +#: src/client/components/main-window-info-bar.vala:48 #, c-format -msgid "%s (%d)" -msgstr "%s (%d)" +msgid "Geary has encountered a problem with %s." +msgstr "Geary ist auf ein Problem mit %s gestoßen." -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:47 +#. Translators: Info bar sub-title for a generic +#. account problem. String substitution is the +#. account name. +#: src/client/components/main-window-info-bar.vala:61 #, c-format -msgid "Problem connecting to incoming server for %s" -msgstr "Fehler bei der Verbindung mit dem Eingangsserver für %s" - -#. Translators: String substitution is the server name -#: src/client/components/main-window-info-bar.vala:49 -#: src/client/components/main-window-info-bar.vala:58 -#, c-format -msgid "" -"Could not connect to %s, check your Internet access and the server name and " -"try again" +msgid "Geary encountered a problem checking mail for %s." msgstr "" -"Verbindung zu %s war nicht möglich, überprüfen Sie Ihre Internetverbindung " -"und den Servernamen und versuchen Sie es erneut" +"Geary ist bei der Überprüfung auf neue Nachrichten von %s auf ein Problem " +"gestoßen." #. Translators: Tooltip label for Retry button -#. Button tooltip for retrying an account problem -#: src/client/components/main-window-info-bar.vala:51 -#: src/client/components/main-window-info-bar.vala:60 -#: src/client/components/main-window-info-bar.vala:69 -#: src/client/components/main-window-info-bar.vala:78 -#: src/client/components/main-window-info-bar.vala:87 -#: src/client/components/main-window-info-bar.vala:96 -#: src/client/components/main-window-info-bar.vala:136 ui/main-window.ui:265 +#: src/client/components/main-window-info-bar.vala:65 msgid "Try reconnecting" msgstr "Erneuter Verbindungsversuch" -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:56 +#. Translators: Info bar title for an outgoing +#. account problem. String substitution is the +#. account name +#: src/client/components/main-window-info-bar.vala:73 #, c-format -msgid "Problem connecting to outgoing server for %s" -msgstr "Fehler bei der Verbindung mit dem Ausgangsserver für %s" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:65 -#: src/client/components/main-window-info-bar.vala:83 -#, c-format -msgid "Problem communicating with incoming server for %s" -msgstr "Problem bei der Kommunikation mit dem Eingangsserver für %s" - -#. Translators: String substitution is the server name -#: src/client/components/main-window-info-bar.vala:67 -#: src/client/components/main-window-info-bar.vala:76 -#, c-format -msgid "Network error talking to %s, check your Internet access and try again" -msgstr "" -"Netzwerkfehler bei der Kommunikation mit %s, bitte überprüfen Sie Ihre " -"Internetverbindung und versuchen Sie es erneut" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:74 -#: src/client/components/main-window-info-bar.vala:91 -msgid "Problem communicating with outgoing mail server" -msgstr "Problem bei der Kommunikation mit dem Ausgangsserver" - -#. Translators: String substitution is the server name -#: src/client/components/main-window-info-bar.vala:85 -#, c-format -msgid "" -"Geary did not understand a message from %s or vice versa, please file a bug " -"report" -msgstr "" -"Geary verstand eine Meldung von %s nicht oder umgekehrt, bitte erstellen Sie " -"einen Fehlerbericht" - -#. Translators: First string substitution is the server -#. name, second is the account name -#: src/client/components/main-window-info-bar.vala:94 -#, c-format -msgid "" -"Could not communicate with %s for %s, check the server name and try again in " -"a moment" -msgstr "" -"Kommunikation mit %s für %s war nicht möglich, überprüfen Sie den " -"Servernamen und versuchen Sie es in Kürze erneut" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:101 -#, c-format -msgid "Incoming mail server password required for %s" -msgstr "Serverpasswort für %s ist für eingehende Nachrichten erforderlich" - -#: src/client/components/main-window-info-bar.vala:102 -msgid "Messages cannot be received without the correct password." -msgstr "Nachrichten können nicht ohne das korrekte Passwort abgerufen werden." +msgid "Geary encountered a problem sending email for %s." +msgstr "Geary ist bei der Senden einer E-Mail von %s auf ein Problem gestoßen." #. Translators: Tooltip label for Retry button -#: src/client/components/main-window-info-bar.vala:104 -msgid "Retry receiving email, you will be prompted for a password" -msgstr "" -"Erneut versuchen, Nachrichten abzurufen, Sie werden nach einem Passwort " -"gefragt" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:109 -#, c-format -msgid "Outgoing mail server password required for %s" -msgstr "Serverpasswort für %s ist für ausgehende Nachrichten erforderlich" - -#: src/client/components/main-window-info-bar.vala:110 -msgid "Messages cannot be sent without the correct password." -msgstr "Nachrichten können nicht ohne das korrekte Passwort versendet werden." - -#. Translators: Tooltip label for Retry button -#: src/client/components/main-window-info-bar.vala:112 -msgid "Retry sending queued messages, you will be prompted for a password" -msgstr "" -"Erneut versuchen, in der Warteschlange befindliche Nachrichten zu versenden, " -"Sie werden nach einem Passwort gefragt" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:117 -#, c-format -msgid "Incoming mail server security is not trusted for %s" -msgstr "" -"Den Sicherheitseinstellungen des Servers für eingehende E-Mails von %s wird " -"nicht vertraut" - -#: src/client/components/main-window-info-bar.vala:118 -msgid "Messages will not be received until checked." -msgstr "Nachrichten werden nicht abgerufen, bis sie geprüft wurden." - -#. Translators: Tooltip label for Retry button -#: src/client/components/main-window-info-bar.vala:120 -#: src/client/components/main-window-info-bar.vala:128 -msgid "Check security details" -msgstr "Sicherheitsdetails prüfen" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:125 -#, c-format -msgid "Outgoing mail server security is not trusted for %s" -msgstr "" -"Den Sicherheitseinstellungen des Servers für ausgehende E-Mails von %s wird " -"nicht vertraut" - -#: src/client/components/main-window-info-bar.vala:126 -msgid "Messages cannot be sent until checked." -msgstr "Nachrichten können nicht versendet werden, bevor sie geprüft wurden." - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:133 -#, c-format -msgid "A problem occurred checking mail for %s" -msgstr "Ein Problem ist beim Prüfen auf neue Nachrichten für %s aufgetreten" - -#: src/client/components/main-window-info-bar.vala:134 -#: src/client/components/main-window-info-bar.vala:142 -msgid "Something went wrong, please file a bug report if the problem persists" -msgstr "" -"Etwas ging schief, bitte senden Sie einen Fehlerbericht, wenn das Problem " -"weiterhin besteht" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:141 -#, c-format -msgid "A problem occurred sending mail for %s" -msgstr "Ein Problem ist beim Senden von Nachrichten für %s aufgetreten" - -#. Translators: Tooltip label for Retry button -#: src/client/components/main-window-info-bar.vala:144 +#: src/client/components/main-window-info-bar.vala:77 msgid "Retry sending queued messages" msgstr "Versuchen, Nachrichten in der Warteschlange erneut zu senden" -#: src/client/components/main-window-info-bar.vala:155 -msgid "A database problem has occurred" -msgstr "Ein Datenbankproblem ist aufgetreten" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:157 -#, c-format -msgid "Messages for %s must be downloaded again." -msgstr "Nachrichten für %s müssen erneut heruntergeladen werden." - -#: src/client/components/main-window-info-bar.vala:170 +#. Translators: Info bar title for a generic application +#. problem. +#: src/client/components/main-window-info-bar.vala:84 msgid "Geary has encountered a problem" msgstr "Geary ist auf ein Problem gestoßen" -#: src/client/components/main-window-info-bar.vala:171 -msgid "" -"Please check the technical details and report the problem if it persists." +#. Translators: Info bar sub-title for a generic +#. application problem. +#: src/client/components/main-window-info-bar.vala:88 +msgid "Please report the details if it persists." msgstr "" -"Bitte überprüfen Sie die technischen Details und melden Sie den Fehler, " -"falls das Problem weiterhin besteht." +"Bitte melden Sie die Fehlerdetails, falls das Problem weiterhin besteht." -#: src/client/components/main-window-info-bar.vala:179 +#. Translators: Button label for viewing technical details +#. for a problem report. +#: src/client/components/main-window-info-bar.vala:99 msgid "_Details" msgstr "_Details" -#. Button tooltip for displaying technical details about an account problem -#: src/client/components/main-window-info-bar.vala:180 ui/main-window.ui:250 +#. Translators: Tooltip for viewing technical details for +#. a problem report. +#: src/client/components/main-window-info-bar.vala:102 msgid "View technical details about the error" msgstr "Technische Details zum Fehler anzeigen" -#: src/client/components/main-window-info-bar.vala:184 +#. Translators: Button label for retrying a server +#. connection +#: src/client/components/main-window-info-bar.vala:108 msgid "_Retry" msgstr "_Wiederholen" -#: src/client/components/search-bar.vala:8 -#: src/client/folder-list/folder-list-search-branch.vala:38 -#: src/engine/api/geary-special-folder-type.vala:51 -msgid "Search" -msgstr "Suchen" - -#. Search entry. -#: src/client/components/search-bar.vala:23 -msgid "Search all mail in account for keywords (Ctrl+S)" -msgstr "Alle E-Mails dieses Kontos nach Stichworten durchsuchen (Strg+S)" - -#: src/client/components/search-bar.vala:101 -#, c-format -msgid "Indexing %s account" -msgstr "%s-Konto wird indiziert" - -#: src/client/components/search-bar.vala:112 -#: src/client/folder-list/folder-list-search-branch.vala:39 -#, c-format -msgid "Search %s account" -msgstr "%s-Konto durchsuchen" - #. / Displayed in the space-limited status bar while a message is in the process of being sent. #: src/client/components/status-bar.vala:26 msgid "Sending…" @@ -1385,15 +1545,15 @@ msgstr "_Schließen" msgid "_Discard" msgstr "_Verwerfen" -#: src/client/components/stock.vala:25 ui/main-toolbar-menus.ui:56 +#: src/client/components/stock.vala:25 ui/main-toolbar-menus.ui:52 msgid "_Help" msgstr "_Hilfe" -#: src/client/components/stock.vala:26 ui/conversation-email-menus.ui:77 +#: src/client/components/stock.vala:26 ui/components-attachment-pane-menus.ui:7 msgid "_Open" msgstr "_Öffnen" -#: src/client/components/stock.vala:27 ui/main-toolbar-menus.ui:46 +#: src/client/components/stock.vala:27 ui/main-toolbar-menus.ui:42 msgid "_Preferences" msgstr "_Einstellungen" @@ -1410,7 +1570,8 @@ msgstr "_Beenden" msgid "_Remove" msgstr "_Entfernen" -#: src/client/components/stock.vala:31 ui/conversation-email-menus.ui:83 +#: src/client/components/stock.vala:31 +#: ui/components-attachment-pane-menus.ui:11 msgid "_Save" msgstr "_Speichern" @@ -1418,41 +1579,47 @@ msgstr "_Speichern" msgid "_Keep" msgstr "_Behalten" -#: src/client/composer/composer-link-popover.vala:149 +#: src/client/composer/composer-link-popover.vala:139 msgid "Link URL is not correctly formatted, e.g. http://example.com" msgstr "" "Die Adresse des Verweises ist nicht korrekt formatiert, z.B. http://example." "com" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid link URL" msgstr "Ungültige Verweisadresse" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid email address" msgstr "Ungültige E-Mail-Adresse" -#: src/client/composer/composer-widget.vala:158 +#. / Translators: Title for an empty composer window +#: src/client/composer/composer-widget.vala:30 +msgid "New Message" +msgstr "Neue Nachricht" + +#: src/client/composer/composer-widget.vala:217 msgid "Saved" msgstr "Gespeichert" -#: src/client/composer/composer-widget.vala:159 +#: src/client/composer/composer-widget.vala:218 msgid "Saving" msgstr "Wird gespeichert" -#: src/client/composer/composer-widget.vala:160 +#: src/client/composer/composer-widget.vala:219 msgid "Error saving" msgstr "Fehler beim Speichern" -#: src/client/composer/composer-widget.vala:161 +#: src/client/composer/composer-widget.vala:220 msgid "Press Backspace to delete quote" msgstr "Rücktaste drücken, um die Einrückung zu entfernen" #. Translators: This is list of keywords, separated by pipe ("|") #. characters, that suggest an attachment; since this is full-word -#. checking, include all variants of each word. No spaces are -#. allowed. -#: src/client/composer/composer-widget.vala:170 +#. checking, include all variants of each word. No spaces are +#. allowed. The words will be converted to lower case based on +#. locale and English versions included automatically. +#: src/client/composer/composer-widget.vala:236 msgid "" "attach|attaching|attaches|attachment|attachments|attached|enclose|enclosed|" "enclosing|encloses|enclosure|enclosures" @@ -1463,100 +1630,90 @@ msgstr "" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. Keep, Discard or Cancel. -#: src/client/composer/composer-widget.vala:1130 +#: src/client/composer/composer-widget.vala:843 msgid "Do you want to keep or discard this draft message?" msgstr "Möchten Sie diesen Nachrichtenentwurf behalten oder verwerfen?" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. only Discard or Cancel. -#: src/client/composer/composer-widget.vala:1158 +#: src/client/composer/composer-widget.vala:869 msgid "Do you want to discard this draft message?" msgstr "Möchten Sie diesen Nachrichtenentwurf verwerfen?" -#: src/client/composer/composer-widget.vala:1275 +#: src/client/composer/composer-widget.vala:1503 msgid "Send message with an empty subject and body?" msgstr "Nachricht ohne Betreff und Inhalt senden?" -#: src/client/composer/composer-widget.vala:1277 +#: src/client/composer/composer-widget.vala:1505 msgid "Send message with an empty subject?" msgstr "Nachricht ohne Betreff senden?" -#: src/client/composer/composer-widget.vala:1279 +#: src/client/composer/composer-widget.vala:1507 msgid "Send message with an empty body?" msgstr "Nachricht ohne Inhalt senden?" -#: src/client/composer/composer-widget.vala:1283 +#: src/client/composer/composer-widget.vala:1516 msgid "Send message without an attachment?" msgstr "Nachricht ohne Anhang senden?" -#: src/client/composer/composer-widget.vala:1588 +#: src/client/composer/composer-widget.vala:1820 #, c-format msgid "“%s” already attached for delivery." msgstr "»%s« ist bereits als Anhang ausgewählt worden." -#. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" -#. Translators: The first argument will be a -#. description of the document type, the second will -#. be a human-friendly size string. For example: -#. Document (100.9MB) -#: src/client/composer/composer-widget.vala:1596 -#: src/client/conversation-viewer/conversation-email.vala:173 -#, c-format -msgid "%s (%s)" -msgstr "%s (%s)" - -#: src/client/composer/composer-widget.vala:1633 -#, c-format -msgid "“%s” could not be found." -msgstr "»%s« konnte nicht gefunden werden." - -#: src/client/composer/composer-widget.vala:1639 -#, c-format -msgid "“%s” is a folder." -msgstr "»%s« ist ein Ordner." - -#: src/client/composer/composer-widget.vala:1645 +#: src/client/composer/composer-widget.vala:1856 +#: src/client/composer/composer-widget.vala:1906 #, c-format msgid "“%s” is an empty file." msgstr "»%s« ist eine leere Datei." -#: src/client/composer/composer-widget.vala:1658 +#: src/client/composer/composer-widget.vala:1894 +#, c-format +msgid "“%s” could not be found." +msgstr "»%s« konnte nicht gefunden werden." + +#: src/client/composer/composer-widget.vala:1900 +#, c-format +msgid "“%s” is a folder." +msgstr "»%s« ist ein Ordner." + +#: src/client/composer/composer-widget.vala:1919 #, c-format msgid "“%s” could not be opened for reading." msgstr "»%s« konnte nicht zum Lesen geöffnet werden." -#: src/client/composer/composer-widget.vala:1666 +#: src/client/composer/composer-widget.vala:1927 msgid "Cannot add attachment" msgstr "Anhang kann nicht hinzugefügt werden" #. Translators: Human-readable version of the RFC 822 To header -#: src/client/composer/composer-widget.vala:1716 -#: src/client/conversation-viewer/conversation-email.vala:981 -#: src/engine/rfc822/rfc822-utils.vala:298 ui/conversation-message.ui:312 +#: src/client/composer/composer-widget.vala:1984 +#: src/client/conversation-viewer/conversation-email.vala:559 +#: src/client/util/util-email.vala:235 ui/conversation-message.ui:312 msgid "To:" msgstr "An:" #. Translators: Human-readable version of the RFC 822 CC header -#: src/client/composer/composer-widget.vala:1722 -#: src/client/conversation-viewer/conversation-email.vala:986 -#: src/engine/rfc822/rfc822-utils.vala:303 ui/conversation-message.ui:357 +#: src/client/composer/composer-widget.vala:1990 +#: src/client/conversation-viewer/conversation-email.vala:564 +#: src/client/util/util-email.vala:240 ui/conversation-message.ui:357 msgid "Cc:" msgstr "Kopie:" #. Translators: Human-readable version of the RFC 822 BCC header -#: src/client/composer/composer-widget.vala:1728 -#: src/client/conversation-viewer/conversation-email.vala:991 +#: src/client/composer/composer-widget.vala:1996 +#: src/client/conversation-viewer/conversation-email.vala:569 #: ui/conversation-message.ui:402 msgid "Bcc:" msgstr "Blindkopie:" #. Translators: Human-readable version of the RFC 822 Reply-To header -#: src/client/composer/composer-widget.vala:1734 +#: src/client/composer/composer-widget.vala:2002 msgid "Reply-To: " msgstr "Antwort an: " -#: src/client/composer/composer-widget.vala:1874 +#: src/client/composer/composer-widget.vala:2254 msgid "Select Color" msgstr "Farbe auswählen" @@ -1565,153 +1722,154 @@ msgstr "Farbe auswählen" #. printf argument will be the alternate email address, #. and the second will be the account's primary email #. address. -#: src/client/composer/composer-widget.vala:2064 +#: src/client/composer/composer-widget.vala:2440 #, c-format msgid "%1$s via %2$s" msgstr "%1$s über %2$s" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: src/client/composer/composer-widget.vala:2125 +#: src/client/composer/composer-widget.vala:2496 msgid "_From:" msgstr "_Von:" #. Translators: This is the name of the file chooser filter #. when inserting an image in the composer. -#: src/client/composer/composer-widget.vala:2357 +#: src/client/composer/composer-widget.vala:2801 msgid "Images" msgstr "Bilder" -#: src/client/composer/composer-window.vala:14 -msgid "New Message" -msgstr "Neue Nachricht" - -#: src/client/composer/spell-check-popover.vala:117 +#: src/client/composer/spell-check-popover.vala:125 msgid "Remove this language from the preferred list" msgstr "Diese Sprache aus der Liste der bevorzugten Sprachen entfernen" -#: src/client/composer/spell-check-popover.vala:121 +#: src/client/composer/spell-check-popover.vala:129 msgid "Add this language to the preferred list" msgstr "Diese Sprache zur Liste der bevorzugten Sprachen hinzufügen" -#: src/client/composer/spell-check-popover.vala:217 +#: src/client/composer/spell-check-popover.vala:225 msgid "Search for more languages" msgstr "Nach weiteren Sprachen suchen" -#: src/client/conversation-list/conversation-list-view.vala:283 -msgid "Delete conversation" -msgstr "Konversation löschen" +#. / Translators: Context menu item +#: src/client/conversation-list/conversation-list-view.vala:335 +msgid "Move conversation to _Trash" +msgid_plural "Move conversations to _Trash" +msgstr[0] "Konversation in den _Papierkorb verschieben" +msgstr[1] "Konversationen in den _Papierkorb verschieben" -#: src/client/conversation-list/conversation-list-view.vala:286 +#. / Translators: Context menu item +#: src/client/conversation-list/conversation-list-view.vala:347 +msgid "_Delete conversation" +msgid_plural "_Delete conversations" +msgstr[0] "Konversation _löschen" +msgstr[1] "Konversationen _löschen" + +#: src/client/conversation-list/conversation-list-view.vala:360 #: ui/main-toolbar-menus.ui:5 msgid "Mark as _Read" msgstr "Als _gelesen markieren" -#: src/client/conversation-list/conversation-list-view.vala:289 +#: src/client/conversation-list/conversation-list-view.vala:368 #: ui/main-toolbar-menus.ui:9 msgid "Mark as _Unread" msgstr "Als _ungelesen markieren" -#: src/client/conversation-list/conversation-list-view.vala:292 +#: src/client/conversation-list/conversation-list-view.vala:376 #: ui/main-toolbar-menus.ui:17 msgid "U_nstar" msgstr "_Stern entfernen" -#: src/client/conversation-list/conversation-list-view.vala:294 +#: src/client/conversation-list/conversation-list-view.vala:383 #: ui/main-toolbar-menus.ui:13 msgid "_Star" msgstr "_Stern" #. Translators: Menu item to reply to a specific message. -#: src/client/conversation-list/conversation-list-view.vala:297 +#: src/client/conversation-list/conversation-list-view.vala:392 #: ui/conversation-email-menus.ui:9 msgid "_Reply" msgstr "_Antworten" -#: src/client/conversation-list/conversation-list-view.vala:298 +#: src/client/conversation-list/conversation-list-view.vala:398 msgid "R_eply All" msgstr "Allen _antworten" #. Translators: Menu item to forward a specific message. -#: src/client/conversation-list/conversation-list-view.vala:299 +#: src/client/conversation-list/conversation-list-view.vala:404 #: ui/conversation-email-menus.ui:21 msgid "_Forward" msgstr "_Weiterleiten" -#: src/client/conversation-list/formatted-conversation-data.vala:11 +#: src/client/conversation-list/formatted-conversation-data.vala:18 msgid "Me" msgstr "Ich" -#. Translators: This is the file type displayed for -#. attachments with unknown file types. -#: src/client/conversation-viewer/conversation-email.vala:159 -msgid "Unknown" -msgstr "Unbekannt" - #. Translators: Human-readable version of the RFC 822 From header -#: src/client/conversation-viewer/conversation-email.vala:976 -#: src/engine/rfc822/rfc822-utils.vala:289 +#: src/client/conversation-viewer/conversation-email.vala:554 +#: src/client/util/util-email.vala:226 msgid "From:" msgstr "Von:" #. Translators: Human-readable version of the RFC 822 Date header -#: src/client/conversation-viewer/conversation-email.vala:996 -#: src/engine/rfc822/rfc822-utils.vala:294 +#: src/client/conversation-viewer/conversation-email.vala:574 +#: src/client/util/util-email.vala:231 msgid "Date:" msgstr "Datum:" #. Translators: Human-readable version of the RFC 822 Subject header -#: src/client/conversation-viewer/conversation-email.vala:1001 -#: src/engine/rfc822/rfc822-utils.vala:292 +#: src/client/conversation-viewer/conversation-email.vala:584 +#: src/client/util/util-email.vala:229 msgid "Subject:" msgstr "Betreff:" -#: src/client/conversation-viewer/conversation-message.vala:65 +#: src/client/conversation-viewer/conversation-message.vala:128 msgid "This email address may have been forged" msgstr "Diese E-Mail-Adresse könnte gefälscht sein" -#. Compact headers +#. Compact headers. These are partially done here and partially +#. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:394 +#: src/client/conversation-viewer/conversation-message.vala:439 msgid "No sender" msgstr "Kein Absender" #. Translators: This separates multiple 'from' #. addresses in the compact header for a message. -#: src/client/conversation-viewer/conversation-message.vala:766 +#: src/client/conversation-viewer/conversation-message.vala:831 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Imagemailing list " +"or attach to a new bug report." +msgstr "" +"Falls das Problem schwerwiegend ist oder weiterhin besteht, kopieren Sie " +"diese Details und senden Sie sie an die Mailingliste oder erstellen Sie einen neuen Fehlerbericht." + +#: ui/components-inspector-error-view.ui:49 +msgid "Details:" +msgstr "Details:" + +#. Tooltip for inspector button +#: ui/components-inspector.ui:20 +msgid "Toggle appending new log entries" +msgstr "Neue Protokolleinträge anfügen/nicht anfügen" + +#. Tooltip for inspector button +#. Tooltip for problem report button +#: ui/components-inspector.ui:37 ui/problem-details-dialog.ui:19 +msgid "Search for matching log entries" +msgstr "Nach übereinstimmenden Protokolleinträgen suchen" + +#. Tooltip for inspector button +#. Tooltip for problem report button +#: ui/components-inspector.ui:63 ui/problem-details-dialog.ui:46 +msgid "Save logs entries and details" +msgstr "Protokolleinträge und -details speichern" + +#. Tooltip for inspector button +#. Tooltip for problem report button +#: ui/components-inspector.ui:84 ui/problem-details-dialog.ui:62 +msgid "Copy to clipboard" +msgstr "In die Zwischenablage kopieren" + +#: ui/conversation-contact-popover.ui:146 +msgid "New Conversation…" +msgstr "Neue Konversation …" + +#: ui/conversation-contact-popover.ui:159 +msgid "Copy Email Address" +msgstr "E-Mail-Adresse kopieren" + +#: ui/conversation-contact-popover.ui:182 +msgid "Save in Contacts…" +msgstr "In Kontakte speichern …" + +#: ui/conversation-contact-popover.ui:195 +msgid "Show Conversations" +msgstr "Konversationen anzeigen" + +#: ui/conversation-contact-popover.ui:208 +msgid "Open in Contacts" +msgstr "In Kontakte öffnen" + +#: ui/conversation-contact-popover.ui:221 +msgid "Always Load Remote Images" +msgstr "Entfernte Bilder immer anzeigen" + +#. Title label on contact popover +#: ui/conversation-contact-popover.ui:264 +msgid "Deceptive email address" +msgstr "Trügerische E-Mail-Adresse" + +#. Contact popover label +#: ui/conversation-contact-popover.ui:294 +msgid "This email address is:" +msgstr "Diese E-Mail-Adresse lautet:" + +#. Contact popover label +#: ui/conversation-contact-popover.ui:319 +msgid "But was forged as:" +msgstr "Aber wurde gefälscht als:" + +#. Contact popover label +#: ui/conversation-contact-popover.ui:344 +msgid "The sender may not be trustworthy" +msgstr "Der Absender ist eventuell nicht vertrauenswürdig" + #: ui/conversation-email.ui:27 msgid "Save all attachments" msgstr "Alle Anhänge speichern" @@ -2666,39 +3048,23 @@ msgstr "Diese Nachricht mit einem Stern markieren" msgid "Mark this message as not starred" msgstr "Sternmarkierung von dieser Nachricht entfernen" -#: ui/conversation-email.ui:95 -msgid "Display the message menu" -msgstr "Das Nachrichtenmenü anzeigen" - -#: ui/conversation-email.ui:161 -msgid "Open selected attachments" -msgstr "Ausgewählte Anhänge öffnen" - -#: ui/conversation-email.ui:178 -msgid "Save selected attachments" -msgstr "Ausgewählte Anhänge speichern" - -#: ui/conversation-email.ui:195 -msgid "Select all attachments" -msgstr "Alle Anhänge auswählen" - -#: ui/conversation-email.ui:240 +#: ui/conversation-email.ui:124 msgid "Edit Draft" msgstr "Entwurf bearbeiten" -#: ui/conversation-email.ui:267 +#: ui/conversation-email.ui:151 msgid "Draft message" msgstr "Nachrichtenentwurf" -#: ui/conversation-email.ui:283 +#: ui/conversation-email.ui:167 msgid "This message has not yet been sent." msgstr "Diese Nachricht wurde noch nicht versendet." -#: ui/conversation-email.ui:329 +#: ui/conversation-email.ui:213 msgid "Message not saved" msgstr "Nachricht nicht gespeichert" -#: ui/conversation-email.ui:345 +#: ui/conversation-email.ui:229 msgid "This message was sent, but has not been saved to your account." msgstr "" "Diese Nachricht wurde gesendet, wurde aber nicht in Ihrem Konto gespeichert." @@ -2725,24 +3091,42 @@ msgid "Mark Unread From _Here" msgstr "Von _hier ab als ungelesen markieren" #. Translators: Menu item to move a single, specific message -#. to the trash +#. to the trash folder #: ui/conversation-email-menus.ui:50 -msgid "_Trash" -msgstr "In den _Papierkorb" +msgid "Move message to _Trash" +msgstr "In den _Papierkorb verschieben" #. Translators: Menu item to delete a single, specific message #: ui/conversation-email-menus.ui:57 -msgid "_Delete…" -msgstr "_Löschen …" +msgid "_Delete message…" +msgstr "Nachricht _löschen …" #. Translators: Menu item to view the source for a message #: ui/conversation-email-menus.ui:69 msgid "_View Source" msgstr "_Quelltext anzeigen" -#: ui/conversation-email-menus.ui:87 -msgid "_Save All" -msgstr "A_lle speichern" +#: ui/conversation-message-link-popover.ui:54 +msgid "But actually goes to:" +msgstr "Aber führt tatsächlich zu:" + +#: ui/conversation-message-link-popover.ui:84 +msgid "The link appears to go to:" +msgstr "Dieser Verweis scheint zu folgender Seite zu führen:" + +#: ui/conversation-message-link-popover.ui:96 +msgid "Deceptive link found" +msgstr "Trügerischer Verweis gefunden" + +#: ui/conversation-message-link-popover.ui:111 +msgid "The email sender may be leading you to the wrong web site." +msgstr "Der Absender der E-Mail könnte Sie zur falschen Webseite leiten." + +#: ui/conversation-message-link-popover.ui:124 +msgid "If unsure, contact the sender and ask before continuing." +msgstr "" +"Falls Sie unsicher sind, kontaktieren Sie den Absender und fragen Sie, bevor " +"Sie fortfahren." #: ui/conversation-message-menus.ui:7 msgid "_Open Link" @@ -2753,8 +3137,8 @@ msgid "Copy Link _Address" msgstr "Verweis_adresse kopieren" #: ui/conversation-message-menus.ui:17 -msgid "Send New _Message…" -msgstr "Neue _Nachricht senden …" +msgid "_New Conversation…" +msgstr "_Neue Konversation …" #: ui/conversation-message-menus.ui:21 msgid "Copy Email _Address" @@ -2768,10 +3152,6 @@ msgstr "_Bild speichern unter …" msgid "_Select All" msgstr "Alles _auswählen" -#: ui/conversation-message-menus.ui:43 -msgid "Search for messages from" -msgstr "Nach Nachrichten suchen von" - #: ui/conversation-message.ui:63 msgid "From " msgstr "Von " @@ -2813,37 +3193,15 @@ msgstr "Externe Bilder werden nicht angezeigt" msgid "Only show remote images from senders you trust." msgstr "Externe Bilder nur von Absendern anzeigen, denen Sie vertrauen." -#: ui/conversation-message.ui:692 -msgid "But actually goes to:" -msgstr "Aber führt tatsächlich zu:" - -#: ui/conversation-message.ui:723 -msgid "The link appears to go to:" -msgstr "Dieser Verweis scheint zu folgender Seite zu führen:" - -#: ui/conversation-message.ui:735 -msgid "Deceptive link found" -msgstr "Trügerischer Verweis gefunden" - -#: ui/conversation-message.ui:750 -msgid "The email sender may be leading you to the wrong web site." -msgstr "Der Absender der E-Mail könnte Sie zur falschen Webseite leiten." - -#: ui/conversation-message.ui:763 -msgid "If unsure, contact the sender and ask before continuing." -msgstr "" -"Falls Sie unsicher sind, kontaktieren Sie den Absender und fragen Sie, bevor " -"Sie fortfahren." - #: ui/conversation-viewer.ui:60 msgid "Find in conversation" msgstr "In Konversation suchen" -#: ui/conversation-viewer.ui:74 +#: ui/conversation-viewer.ui:75 msgid "Find the previous occurrence of the search string." msgstr "Vorhergehende Übereinstimmungen mit dem Suchtext finden." -#: ui/conversation-viewer.ui:95 +#: ui/conversation-viewer.ui:96 msgid "Find the next occurrence of the search string." msgstr "Nächste Übereinstimmung mit dem Suchtext finden." @@ -2871,400 +3229,343 @@ msgstr "Beschriftung" msgid "Conversation Shortcuts" msgstr "Tastenkombinationen für Konversationen" -#: ui/gtk/help-overlay.ui:13 ui/gtk/help-overlay.ui:254 -msgctxt "shortcut window" -msgid "General" -msgstr "Allgemein" - -#: ui/gtk/help-overlay.ui:17 -msgctxt "shortcut window" -msgid "Move focus to the next/previous pane" -msgstr "Fokus auf die nächste/vorherige Leiste verlegen" - -#: ui/gtk/help-overlay.ui:24 -msgctxt "shortcut window" -msgid "Move focus to conversation list" -msgstr "Fokus auf die Konversationsliste verschieben" - -#: ui/gtk/help-overlay.ui:31 -msgctxt "shortcut window" -msgid "Detach composer window" -msgstr "»Verfassen«-Fenster abkoppeln" - -#: ui/gtk/help-overlay.ui:38 -msgctxt "shortcut window" -msgid "Close composer window" -msgstr "»Verfassen«-Fenster schließen" - -#: ui/gtk/help-overlay.ui:45 -msgctxt "shortcut window" -msgid "Show keyboard shortcuts" -msgstr "Tastenkombinationen anzeigen" - -#: ui/gtk/help-overlay.ui:52 -msgctxt "shortcut window" -msgid "Show help" -msgstr "Hilfe anzeigen" - -#: ui/gtk/help-overlay.ui:59 -msgctxt "shortcut window" -msgid "Quit the application" -msgstr "Die Anwendung beenden" - -#: ui/gtk/help-overlay.ui:68 -msgctxt "shortcut window" -msgid "Search" -msgstr "Suchen" - -#: ui/gtk/help-overlay.ui:72 -msgctxt "shortcut window" -msgid "Jump to search box" -msgstr "Zum Suchfeld springen" - -#: ui/gtk/help-overlay.ui:79 -msgctxt "shortcut window" -msgid "Find in current conversation" -msgstr "In aktueller Konversation suchen" - -#: ui/gtk/help-overlay.ui:86 -msgctxt "shortcut window" -msgid "Find next/previous in current conversation" -msgstr "Das nächste/vorherige Vorkommen in dieser Konversation finden" - -#: ui/gtk/help-overlay.ui:95 ui/gtk/help-overlay.ui:274 +#: ui/gtk/help-overlay.ui:13 ui/gtk/help-overlay.ui:355 msgctxt "shortcut window" msgid "Actions" msgstr "Aktionen" -#: ui/gtk/help-overlay.ui:99 +#: ui/gtk/help-overlay.ui:17 msgctxt "shortcut window" -msgid "Compose a new message" -msgstr "Eine neue Nachricht verfassen" +msgid "New conversation" +msgstr "Neue Konversation" -#: ui/gtk/help-overlay.ui:106 +#: ui/gtk/help-overlay.ui:24 msgctxt "shortcut window" -msgid "Reply to sender " -msgstr "Absender antworten " +msgid "Reply to sender" +msgstr "Absender antworten" -#: ui/gtk/help-overlay.ui:113 +#: ui/gtk/help-overlay.ui:31 ui/gtk/help-overlay.ui:269 msgctxt "shortcut window" msgid "Reply to all" msgstr "Allen antworten" -#: ui/gtk/help-overlay.ui:120 +#: ui/gtk/help-overlay.ui:38 ui/gtk/help-overlay.ui:276 msgctxt "shortcut window" msgid "Forward" msgstr "Weiterleiten" -#: ui/gtk/help-overlay.ui:127 +#: ui/gtk/help-overlay.ui:45 ui/gtk/help-overlay.ui:283 msgctxt "shortcut window" -msgid "Archive" -msgstr "Archivieren" +msgid "Un-mark/mark read" +msgstr "Als ungelesen/gelesen markieren" -#: ui/gtk/help-overlay.ui:134 +#: ui/gtk/help-overlay.ui:52 ui/gtk/help-overlay.ui:290 msgctxt "shortcut window" -msgid "Move to trash" -msgstr "In den Papierkorb verschieben" +msgid "Mark/un-mark starred" +msgstr "Markieren/Markierung entfernen" + +#: ui/gtk/help-overlay.ui:59 ui/gtk/help-overlay.ui:297 +msgctxt "shortcut window" +msgid "Archive conversations" +msgstr "Konversationen archivieren" + +#: ui/gtk/help-overlay.ui:66 ui/gtk/help-overlay.ui:304 +msgctxt "shortcut window" +msgid "Move conversations" +msgstr "Konversationen verschieben" + +#: ui/gtk/help-overlay.ui:73 ui/gtk/help-overlay.ui:311 +msgctxt "shortcut window" +msgid "Label conversations" +msgstr "Konversationen eine Beschriftung zuweisen" + +#: ui/gtk/help-overlay.ui:80 +msgctxt "shortcut window" +msgid "Trash conversations" +msgstr "Konversationen in den Papierkorb verschieben" + +#: ui/gtk/help-overlay.ui:87 ui/gtk/help-overlay.ui:318 +msgctxt "shortcut window" +msgid "Junk conversations" +msgstr "Konversationen in den Spam-Ordner verschieben" + +#: ui/gtk/help-overlay.ui:95 ui/gtk/help-overlay.ui:325 +msgctxt "shortcut window" +msgid "Delete conversations" +msgstr "Konversationen löschen" + +#: ui/gtk/help-overlay.ui:104 +msgctxt "shortcut window" +msgid "Search" +msgstr "Suchen" + +#: ui/gtk/help-overlay.ui:108 +msgctxt "shortcut window" +msgid "Search for conversations" +msgstr "Nach Konversationen suchen" + +#: ui/gtk/help-overlay.ui:115 +msgctxt "shortcut window" +msgid "Find in current conversation" +msgstr "In aktueller Konversation suchen" #: ui/gtk/help-overlay.ui:141 msgctxt "shortcut window" -msgid "Toggle spam" -msgstr "Unerwünscht-Markierung umschalten" +msgid "Undo" +msgstr "Rückgängig machen" -#: ui/gtk/help-overlay.ui:148 +#: ui/gtk/help-overlay.ui:145 msgctxt "shortcut window" -msgid "Move the conversation" -msgstr "Konversation verschieben" +msgid "Undo the last action" +msgstr "Letzte Aktion rückgängig machen" -#: ui/gtk/help-overlay.ui:155 +#: ui/gtk/help-overlay.ui:152 msgctxt "shortcut window" -msgid "Label the conversation" -msgstr "Konversation eine Beschriftung zuweisen" +msgid "Redo the last action" +msgstr "Letzte Aktion wiederholen" -#: ui/gtk/help-overlay.ui:163 -msgctxt "shortcut window" -msgid "Mark read" -msgstr "Als gelesen markieren" - -#: ui/gtk/help-overlay.ui:170 -msgctxt "shortcut window" -msgid "Mark unread" -msgstr "Als ungelesen markieren" - -#: ui/gtk/help-overlay.ui:179 +#: ui/gtk/help-overlay.ui:161 msgctxt "shortcut window" msgid "View" msgstr "Betrachten" -#: ui/gtk/help-overlay.ui:183 +#: ui/gtk/help-overlay.ui:165 msgctxt "shortcut window" msgid "Zoom in" msgstr "Ansicht vergrößern" -#: ui/gtk/help-overlay.ui:190 +#: ui/gtk/help-overlay.ui:172 msgctxt "shortcut window" msgid "Zoom out" msgstr "Ansicht verkleinern" -#: ui/gtk/help-overlay.ui:197 +#: ui/gtk/help-overlay.ui:179 msgctxt "shortcut window" msgid "Reset zoom" msgstr "Vergrößerung zurücksetzen" +#: ui/gtk/help-overlay.ui:188 ui/gtk/help-overlay.ui:375 +msgctxt "shortcut window" +msgid "General" +msgstr "Allgemein" + +#: ui/gtk/help-overlay.ui:192 +msgctxt "shortcut window" +msgid "Show help" +msgstr "Hilfe anzeigen" + +#: ui/gtk/help-overlay.ui:199 +msgctxt "shortcut window" +msgid "Show keyboard shortcuts" +msgstr "Tastenkombinationen anzeigen" + #: ui/gtk/help-overlay.ui:206 msgctxt "shortcut window" -msgid "Additional Shortcuts" -msgstr "Weitere Tastenkombinationen" +msgid "Open a new window" +msgstr "Neues Fenster öffnen" -#: ui/gtk/help-overlay.ui:210 +#: ui/gtk/help-overlay.ui:213 msgctxt "shortcut window" -msgid "Star" -msgstr "Stern" +msgid "Close the current window" +msgstr "Aktuelles Fenster schließen" -#: ui/gtk/help-overlay.ui:217 +#: ui/gtk/help-overlay.ui:220 msgctxt "shortcut window" -msgid "Unstar" -msgstr "Stern entfernen" +msgid "Quit the application" +msgstr "Die Anwendung beenden" -#: ui/gtk/help-overlay.ui:224 +#: ui/gtk/help-overlay.ui:229 msgctxt "shortcut window" -msgid "Delete" -msgstr "Löschen" +msgid "Keyboard navigation" +msgstr "Tastatur-Navigation" -#: ui/gtk/help-overlay.ui:231 +#: ui/gtk/help-overlay.ui:233 msgctxt "shortcut window" -msgid "Jump to next (older) conversation" -msgstr "Zur nächsten (älteren) Konversation springen" +msgid "Go to next/previous pane" +msgstr "Nächste/Vorherige Leiste anzeigen" -#: ui/gtk/help-overlay.ui:238 +#: ui/gtk/help-overlay.ui:241 msgctxt "shortcut window" -msgid "Jump to previous (newer) conversation" -msgstr "Zur letzten (neueren) Konversation springen" +msgid "Select next/previous conversation" +msgstr "Nächste/Vorherige Konversation auswählen" -#: ui/gtk/help-overlay.ui:250 -msgid "Composer Shortcuts" -msgstr "Tastenkombinationen beim Verfassen" +#: ui/gtk/help-overlay.ui:248 +msgctxt "shortcut window" +msgid "Focus next/previous message" +msgstr "Nächste/Vorherige Nachricht fokussieren" #: ui/gtk/help-overlay.ui:258 msgctxt "shortcut window" -msgid "Quote text" -msgstr "Text einrücken" +msgid "Single-key shortcuts" +msgstr "Einfache Tastenkürzel" -#: ui/gtk/help-overlay.ui:265 +#: ui/gtk/help-overlay.ui:262 msgctxt "shortcut window" -msgid "Unquote text" -msgstr "Einrückung aufheben" +msgid "Reply to sender " +msgstr "Absender antworten " -#: ui/gtk/help-overlay.ui:278 +#: ui/gtk/help-overlay.ui:332 +msgctxt "shortcut window" +msgid "Find in current conversations" +msgstr "In aktuellen Konversationen suchen" + +#: ui/gtk/help-overlay.ui:339 +msgctxt "shortcut window" +msgid "Select next/previous conversations" +msgstr "Nächste/Vorherige Konversationen auswählen" + +#: ui/gtk/help-overlay.ui:351 +msgid "Composer Shortcuts" +msgstr "Tastenkombinationen beim Verfassen" + +#: ui/gtk/help-overlay.ui:359 msgctxt "shortcut window" msgid "Send" msgstr "Senden" -#: ui/gtk/help-overlay.ui:285 +#: ui/gtk/help-overlay.ui:366 msgctxt "shortcut window" msgid "Add attachment" msgstr "Anhang hinzufügen" -#: ui/gtk/help-overlay.ui:294 +#: ui/gtk/help-overlay.ui:379 msgctxt "shortcut window" -msgid "Rich text mode" +msgid "Close composer window" +msgstr "»Verfassen«-Fenster schließen" + +#: ui/gtk/help-overlay.ui:386 +msgctxt "shortcut window" +msgid "Detach composer window" +msgstr "»Verfassen«-Fenster abkoppeln" + +#: ui/gtk/help-overlay.ui:393 +msgctxt "shortcut window" +msgid "Editing" +msgstr "Bearbeitung" + +#: ui/gtk/help-overlay.ui:398 +msgctxt "shortcut window" +msgid "Move selection to the clipboard" +msgstr "Auswahl in die Zwischenablage legen" + +#: ui/gtk/help-overlay.ui:405 +msgctxt "shortcut window" +msgid "Copy selection to clipboard" +msgstr "Auswahl kopieren" + +#: ui/gtk/help-overlay.ui:412 +msgctxt "shortcut window" +msgid "Paste from the clipboard" +msgstr "Zwischenablage einfügen" + +#: ui/gtk/help-overlay.ui:419 +msgctxt "shortcut window" +msgid "Quote text" +msgstr "Text einrücken" + +#: ui/gtk/help-overlay.ui:426 +msgctxt "shortcut window" +msgid "Unquote text" +msgstr "Einrückung aufheben" + +#: ui/gtk/help-overlay.ui:435 +msgctxt "shortcut window" +msgid "Rich text editing" msgstr "Formatierter Text" -#: ui/gtk/help-overlay.ui:298 +#: ui/gtk/help-overlay.ui:439 +msgctxt "shortcut window" +msgid "Paste without formatting" +msgstr "Ohne Formatierung einfügen" + +#: ui/gtk/help-overlay.ui:446 msgctxt "shortcut window" msgid "Bold text" msgstr "Fetter Text" -#: ui/gtk/help-overlay.ui:305 +#: ui/gtk/help-overlay.ui:453 msgctxt "shortcut window" msgid "Italicize text" msgstr "Kursiver Text" -#: ui/gtk/help-overlay.ui:312 +#: ui/gtk/help-overlay.ui:460 msgctxt "shortcut window" msgid "Underline text" msgstr "Unterstrichener Text" -#: ui/gtk/help-overlay.ui:319 +#: ui/gtk/help-overlay.ui:467 msgctxt "shortcut window" msgid "Strike text" msgstr "Durchgestrichener Text" -#: ui/gtk/help-overlay.ui:326 -msgctxt "shortcut window" -msgid "Insert a link" -msgstr "Einen Verweis einfügen" - -#: ui/gtk/help-overlay.ui:333 +#: ui/gtk/help-overlay.ui:474 msgctxt "shortcut window" msgid "Remove formatting" msgstr "Formatierung löschen" -#: ui/main-toolbar.ui:23 +#: ui/gtk/help-overlay.ui:481 +msgctxt "shortcut window" +msgid "Insert an image" +msgstr "Bild einfügen" + +#: ui/gtk/help-overlay.ui:488 +msgctxt "shortcut window" +msgid "Insert a link" +msgstr "Einen Verweis einfügen" + +#: ui/main-toolbar.ui:24 msgctxt "tooltip" msgid "Compose Message" msgstr "Nachricht verfassen" -#: ui/main-toolbar.ui:52 +#: ui/main-toolbar.ui:62 msgid "Toggle search bar" msgstr "Suchleiste anzeigen/verbergen" -#: ui/main-toolbar.ui:112 +#: ui/main-toolbar.ui:114 msgid "Reply" msgstr "Antworten" -#: ui/main-toolbar.ui:135 +#: ui/main-toolbar.ui:137 msgid "Reply All" msgstr "Allen antworten" -#: ui/main-toolbar.ui:158 +#: ui/main-toolbar.ui:160 msgid "Forward" msgstr "Weiterleiten" -#: ui/main-toolbar.ui:264 +#: ui/main-toolbar.ui:265 msgid "Toggle find bar" msgstr "Suchleiste anzeigen/verbergen" -#: ui/main-toolbar.ui:306 +#: ui/main-toolbar.ui:286 msgid "_Archive" msgstr "_Archivieren" #: ui/main-toolbar-menus.ui:21 -msgid "Mark as S_pam" -msgstr "Als S_pam markieren" +msgid "Toggle as S_pam" +msgstr "S_pam-Markierung umschalten" -#: ui/main-toolbar-menus.ui:25 -msgid "Mark as not S_pam" -msgstr "S_pam-Markierung entfernen" - -#: ui/main-toolbar-menus.ui:32 +#: ui/main-toolbar-menus.ui:28 msgid "Empty _Spam…" msgstr "_Spam leeren …" -#: ui/main-toolbar-menus.ui:36 +#: ui/main-toolbar-menus.ui:32 msgid "Empty _Trash…" msgstr "_Papierkorb leeren …" -#: ui/main-toolbar-menus.ui:42 +#: ui/main-toolbar-menus.ui:38 msgid "_Accounts" msgstr "_Konten" -#: ui/main-toolbar-menus.ui:50 +#: ui/main-toolbar-menus.ui:46 msgid "_Keyboard Shortcuts" msgstr "_Tastenkombinationen" -#: ui/main-toolbar-menus.ui:61 +#: ui/main-toolbar-menus.ui:57 msgid "_About Geary" msgstr "_Info zu Geary" -#. Infobar title when one or more accounts are offline -#: ui/main-window.ui:183 -msgid "Working offline" -msgstr "Abgemeldet arbeiten" - -#. Label and tooltip for offline infobar -#: ui/main-window.ui:197 -msgid "" -"Your computer does not appear to be connected to the Internet.\n" -"You will not be able to send or receive email until it is re-connected." -msgstr "" -"Ihr Rechner scheint nicht mit dem Internet verbunden zu sein.\n" -"Sie können keine E-Mails senden oder empfangen, bis er wieder verbunden ist." - -#. Label and tooltip for offline infobar -#: ui/main-window.ui:200 -msgid "You will not be able to send or receive email until re-connected." -msgstr "" -"Sie können keine E-Mails senden oder empfangen, bis wieder eine Verbindung " -"besteht." - -#. Button label for displaying technical details about an account problem -#. Dialog title for displaying technical details of a problem. Same as the button that invokes it. -#: ui/main-window.ui:247 ui/problem-details-dialog.ui:13 -msgid "Details" -msgstr "Details" - -#. Button label for retrying an account problem -#: ui/main-window.ui:261 -msgid "Retry" -msgstr "Wiederholen" - -#. Infobar title when one or more accounts have encounted an error -#: ui/main-window.ui:294 -msgid "Account problem" -msgstr "Kontoproblem" - -#. Label and tooltip for account service problem infobar -#: ui/main-window.ui:308 -msgid "" -"Geary encountered a problem connecting to an account.\n" -"Please check your Internet connection, the server configuration and try " -"again." -msgstr "" -"Geary ist beim Verbinden zu einem Konto auf ein Problem gestoßen.\n" -"Bitte überprüfen Sie Ihre Internetverbindung und die Servereinstellungen, " -"und versuchen Sie es erneut." - -#. Label and tooltip for account service problem infobar -#: ui/main-window.ui:311 -msgid "Geary encountered a problem connecting to an account." -msgstr "Geary ist beim Verbinden zu einem Konto auf ein Problem gestoßen." - -#. Button label for retrying TLS cert validation -#: ui/main-window.ui:358 -msgid "Check" -msgstr "Prüfen" - -#. Button tooltip for retrying TLS cert validation -#: ui/main-window.ui:362 -msgid "Check the security details for the connection" -msgstr "Sicherheitsdetails für die Verbindung prüfen" - -#. Infobar title when one or more accounts have a TLS cert validation error -#: ui/main-window.ui:391 -msgid "Security problem" -msgstr "Sicherheitsproblem" - -#. Label and tooltip for TLS cert validation error infobar -#: ui/main-window.ui:405 -msgid "" -"An account has reported an untrusted server.\n" -"Please check the server configuration and try again." -msgstr "" -"Ein Konto hat einen nicht vertrauenswürdigen Server gemeldet.\n" -"Bitte prüfen Sie die Servereinstellungen und versuchen Sie es erneut." - -#. Label and tooltip for TLS cert validation error infobar -#: ui/main-window.ui:408 -msgid "An account has reported an untrusted server." -msgstr "Ein Konto hat einen nicht-vertrauten Server gemeldet." - -#. Button tooltip for retrying when a login error has occurred -#: ui/main-window.ui:459 -msgid "Retry login, you will be prompted for your password" -msgstr "Anmeldung erneut versuchen, Sie werden nach einem Passwort gefragt" - -#. Infobar title when one or more accounts have a login error -#: ui/main-window.ui:488 -msgid "Login problem" -msgstr "Anmeldeproblem" - -# Das ist im Original schon irreführend: Es reicht nicht, den Benutzernamen -# zu prüfen, auch das Passwort könnte falsch sein. -#. Label and tooltip for authentication problem infobar -#: ui/main-window.ui:502 -msgid "" -"An account has reported an incorrect login or password.\n" -"Please check your login name and try again." -msgstr "" -"Ein Konto hat einen falschen Benutzernamen oder Passwort gemeldet.\n" -"Bitte prüfen Sie Ihre Anmeldedaten und versuchen Sie es erneut." - -#. Label and tooltip for authentication problem infobar -#: ui/main-window.ui:505 -msgid "An account has reported an incorrect login or password." -msgstr "Ein Konto hat einen falschen Benutzernamen oder Passwort gemeldet." - #: ui/password-dialog.glade:74 msgid "SMTP Credentials" msgstr "SMTP-Einstellungen" @@ -3281,79 +3582,345 @@ msgstr "_Passwort speichern" msgid "_Authenticate" msgstr "_Legitimieren" -#: ui/preferences-dialog.ui:38 -msgid "Reading" -msgstr "Lesen" - -#: ui/preferences-dialog.ui:51 -msgid "_Automatically select next message" -msgstr "Automatisch die nächste Nachricht _wählen" - -#: ui/preferences-dialog.ui:70 -msgid "_Display conversation preview" -msgstr "Konversations_vorschau anzeigen" - -#: ui/preferences-dialog.ui:89 -msgid "Use _three pane view" -msgstr "_Dreispaltige Ansicht verwenden" - -#: ui/preferences-dialog.ui:113 -msgid "Notifications" -msgstr "Benachrichtigungen" - -#: ui/preferences-dialog.ui:126 -msgid "_Play notification sounds" -msgstr "_Benachrichtigungstöne abspielen" - -#: ui/preferences-dialog.ui:145 -msgid "Show _notifications for new mail" -msgstr "Benachrichtigung bei _neuen E-Mails anzeigen" - -#: ui/preferences-dialog.ui:164 -msgid "_Watch for new mail when closed" -msgstr "_Ständig nach neuen E-Mails prüfen" - -#: ui/preferences-dialog.ui:168 -msgid "Geary will keep running after all windows are closed" -msgstr "Geary wird weiter ausgeführt, nachdem alle Fenster geschlossen wurden" - -#: ui/preferences-dialog.ui:195 -msgid "Preferences" -msgstr "Einstellungen" - -#. Button label for copying technical information to the clipboard -#: ui/problem-details-dialog.ui:17 -msgid "Copy to Clipboard" -msgstr "In die Zwischenablage kopieren" - -#. Button tooltip for copying technical information to the clipboard -#: ui/problem-details-dialog.ui:21 -msgid "" -"Copy technical details to clipboard for pasting into an email or bug report" -msgstr "" -"Technische Details zum Einfügen in eine E-Mail oder einen Fehlerbericht in " -"die Zwischenablage einfügen" - -#: ui/problem-details-dialog.ui:73 -msgid "" -"If the problem is serious or persists, please copy and send these details to " -"the mailing list " -"or file a new " -"bug report." -msgstr "" -"Falls das Problem schwerwiegend ist oder weiterhin besteht, kopieren Sie " -"diese Details und senden Sie sie an die Mailingliste oder erstellen Sie einen neuen Fehlerbericht." - -#: ui/problem-details-dialog.ui:89 -msgid "Details:" -msgstr "Details:" - #: ui/upgrade_dialog.glade:60 msgid "Geary update in progress…" msgstr "Aktualisierung von Geary wird durchgeführt …" +#~ msgid "Open this link" +#~ msgstr "Diesen Verweis öffnen" + +#~ msgid "Enable or disable rich text mode" +#~ msgstr "Formatierten Text ein-/ausschalten" + +#~ msgid "mail-send" +#~ msgstr "mail-send" + +#~ msgid "org.gnome.Geary" +#~ msgstr "org.gnome.Geary" + +#~ msgid "List of the languages to use in the spell checker." +#~ msgstr "" +#~ "Liste der Sprachen, die in der Rechtschreibprüfung verwendet werden " +#~ "sollen." + +#~ msgid "Enable notification sounds" +#~ msgstr "Benachrichtigungstöne aktivieren" + +#~ msgid "True to play sounds for notifications and sending." +#~ msgstr "" +#~ "Legt fest, ob Klänge für Benachrichtigungen und beim Senden abgespielt " +#~ "werden sollen." + +#~ msgid "Show notifications for new mail" +#~ msgstr "Benachrichtigung bei neuen Nachrichten anzeigen" + +#~ msgid "True to show notification bubbles." +#~ msgstr "Legt fest, ob Benachrichtigungen angezeigt werden sollen." + +#~ msgid "Save drafts on server" +#~ msgstr "Entwürfe auf dem Server speichern" + +#~ msgid "Output debugging information" +#~ msgstr "Debuginformationen ausgeben" + +#~ msgid "Allow inspection of WebView" +#~ msgstr "Untersuchung der Webansicht erlauben" + +#~ msgid "Please report comments, suggestions and bugs to:" +#~ msgstr "Bitte melden Sie Kommentare, Vorschläge und Fehler an:" + +#~ msgid "Failed to parse command line options: %s\n" +#~ msgstr "Die Befehlszeilenargumente konnten nicht interpretiert werden: %s\n" + +#~ msgid "Undo move (Ctrl+Z)" +#~ msgstr "Verschieben rückgängig machen (Strg+Z)" + +#~ msgid "Close the draft message?" +#~ msgid_plural "Close all draft messages?" +#~ msgstr[0] "Nachrichtenentwurf schließen?" +#~ msgstr[1] "Alle Nachrichtenentwürfe schließen?" + +#~ msgid "Error emptying %s" +#~ msgstr "Fehler beim Leeren von %s" + +#~ msgid "Undo trash (Ctrl+Z)" +#~ msgstr "Papierkorb rückgängig (Strg+Z)" + +#~ msgid "Undo archive (Ctrl+Z)" +#~ msgstr "Archivieren rückgängig (Strg+Z)" + +#~ msgid "Undo (Ctrl+Z)" +#~ msgstr "Rückgängig (Strg+Z)" + +#~ msgid "Successfully sent mail to %s." +#~ msgstr "Nachricht an %s wurde erfolgreich gesendet." + +#~ msgid "Failed to open default text editor." +#~ msgstr "Der Standard-Texteditor konnte nicht geöffnet werden." + +#~ msgid "Move conversation to Trash (Delete, Backspace)" +#~ msgid_plural "Move conversations to Trash (Delete, Backspace)" +#~ msgstr[0] "Konversation in den Papierkorb verschieben (Entf, Rücktaste)" +#~ msgstr[1] "Konversationen in den Papierkorb verschieben (Entf, Rücktaste)" + +#~ msgid "Delete conversation (Shift+Delete)" +#~ msgid_plural "Delete conversations (Shift+Delete)" +#~ msgstr[0] "Konversation löschen (Umschalt+Entf)" +#~ msgstr[1] "Konversationen löschen (Umschalt+Entf)" + +#~ msgid "Problem connecting to incoming server for %s" +#~ msgstr "Fehler bei der Verbindung mit dem Eingangsserver für %s" + +#~ msgid "" +#~ "Could not connect to %s, check your Internet access and the server name " +#~ "and try again" +#~ msgstr "" +#~ "Verbindung zu %s war nicht möglich, überprüfen Sie Ihre " +#~ "Internetverbindung und den Servernamen und versuchen Sie es erneut" + +#~ msgid "Problem connecting to outgoing server for %s" +#~ msgstr "Fehler bei der Verbindung mit dem Ausgangsserver für %s" + +#~ msgid "Problem communicating with incoming server for %s" +#~ msgstr "Problem bei der Kommunikation mit dem Eingangsserver für %s" + +#~ msgid "" +#~ "Network error talking to %s, check your Internet access and try again" +#~ msgstr "" +#~ "Netzwerkfehler bei der Kommunikation mit %s, bitte überprüfen Sie Ihre " +#~ "Internetverbindung und versuchen Sie es erneut" + +#~ msgid "Problem communicating with outgoing mail server" +#~ msgstr "Problem bei der Kommunikation mit dem Ausgangsserver" + +#~ msgid "" +#~ "Geary did not understand a message from %s or vice versa, please file a " +#~ "bug report" +#~ msgstr "" +#~ "Geary verstand eine Meldung von %s nicht oder umgekehrt, bitte erstellen " +#~ "Sie einen Fehlerbericht" + +#~ msgid "" +#~ "Could not communicate with %s for %s, check the server name and try again " +#~ "in a moment" +#~ msgstr "" +#~ "Kommunikation mit %s für %s war nicht möglich, überprüfen Sie den " +#~ "Servernamen und versuchen Sie es in Kürze erneut" + +#~ msgid "Incoming mail server password required for %s" +#~ msgstr "Serverpasswort für %s ist für eingehende Nachrichten erforderlich" + +#~ msgid "Messages cannot be received without the correct password." +#~ msgstr "" +#~ "Nachrichten können nicht ohne das korrekte Passwort abgerufen werden." + +#~ msgid "Retry receiving email, you will be prompted for a password" +#~ msgstr "" +#~ "Erneut versuchen, Nachrichten abzurufen, Sie werden nach einem Passwort " +#~ "gefragt" + +#~ msgid "Outgoing mail server password required for %s" +#~ msgstr "Serverpasswort für %s ist für ausgehende Nachrichten erforderlich" + +#~ msgid "Messages cannot be sent without the correct password." +#~ msgstr "" +#~ "Nachrichten können nicht ohne das korrekte Passwort versendet werden." + +#~ msgid "Retry sending queued messages, you will be prompted for a password" +#~ msgstr "" +#~ "Erneut versuchen, in der Warteschlange befindliche Nachrichten zu " +#~ "versenden, Sie werden nach einem Passwort gefragt" + +#~ msgid "Incoming mail server security is not trusted for %s" +#~ msgstr "" +#~ "Den Sicherheitseinstellungen des Servers für eingehende E-Mails von %s " +#~ "wird nicht vertraut" + +#~ msgid "Messages will not be received until checked." +#~ msgstr "Nachrichten werden nicht abgerufen, bis sie geprüft wurden." + +#~ msgid "Check security details" +#~ msgstr "Sicherheitsdetails prüfen" + +#~ msgid "Outgoing mail server security is not trusted for %s" +#~ msgstr "" +#~ "Den Sicherheitseinstellungen des Servers für ausgehende E-Mails von %s " +#~ "wird nicht vertraut" + +#~ msgid "Messages cannot be sent until checked." +#~ msgstr "" +#~ "Nachrichten können nicht versendet werden, bevor sie geprüft wurden." + +#~ msgid "A problem occurred checking mail for %s" +#~ msgstr "Ein Problem ist beim Prüfen auf neue Nachrichten für %s aufgetreten" + +#~ msgid "" +#~ "Something went wrong, please file a bug report if the problem persists" +#~ msgstr "" +#~ "Etwas ging schief, bitte senden Sie einen Fehlerbericht, wenn das Problem " +#~ "weiterhin besteht" + +#~ msgid "A database problem has occurred" +#~ msgstr "Ein Datenbankproblem ist aufgetreten" + +#~ msgid "Messages for %s must be downloaded again." +#~ msgstr "Nachrichten für %s müssen erneut heruntergeladen werden." + +#~ msgid "Indexing %s account" +#~ msgstr "%s-Konto wird indiziert" + +#~ msgid "Open" +#~ msgstr "Öffnen" + +#~ msgctxt "Default clock format" +#~ msgid "%l:%M %P" +#~ msgstr "%l:%M %P" + +#~ msgid "%x" +#~ msgstr "%x" + +#~ msgid "Detach (Ctrl+D)" +#~ msgstr "Loslösen (Strg+D)" + +#~ msgid "Attach File (Ctrl+T)" +#~ msgstr "Datei anhängen (Strg+T)" + +#~ msgid "Send (Ctrl+Enter)" +#~ msgstr "Senden (Strg+Eingabetaste)" + +#~ msgid "C_olor" +#~ msgstr "F_arbe" + +#~ msgid "Show Extended Fields" +#~ msgstr "Erweiterte Felder anzeigen" + +#~ msgid "Redo last edit (Ctrl+Shift+Z)" +#~ msgstr "Letzte Bearbeitung wiederholen (Umschalt+Strg+Z)" + +#~ msgid "Bold (Ctrl+B)" +#~ msgstr "Fett (Strg+B)" + +#~ msgid "Italic (Ctrl+I)" +#~ msgstr "Kursiv (Strg+I)" + +#~ msgid "Underline (Ctrl+U)" +#~ msgstr "Unterstrichen (Strg+U)" + +#~ msgid "Strikethrough (Ctrl+K)" +#~ msgstr "Durchgestrichen (Strg+K)" + +#~ msgid "Insert ordered list" +#~ msgstr "Geordnete Liste einfügen" + +#~ msgid "Quote text (Ctrl+])" +#~ msgstr "Text einrücken (Strg+])" + +#~ msgid "Unquote text (Ctrl+[)" +#~ msgstr "Einrückung aufheben (Strg+[)" + +#~ msgid "Remove selection formatting (Ctrl+Space)" +#~ msgstr "Formatierung der Auswahl löschen (Strg+Leertaste)" + +#~ msgid "Display the message menu" +#~ msgstr "Das Nachrichtenmenü anzeigen" + +#~ msgid "_Trash" +#~ msgstr "In den _Papierkorb" + +#~ msgid "Send New _Message…" +#~ msgstr "Neue _Nachricht senden …" + +#~ msgid "Search for messages from" +#~ msgstr "Nach Nachrichten suchen von" + +#~ msgctxt "shortcut window" +#~ msgid "Move focus to conversation list" +#~ msgstr "Fokus auf die Konversationsliste verschieben" + +#~ msgctxt "shortcut window" +#~ msgid "Jump to search box" +#~ msgstr "Zum Suchfeld springen" + +#~ msgctxt "shortcut window" +#~ msgid "Compose a new message" +#~ msgstr "Eine neue Nachricht verfassen" + +#~ msgctxt "shortcut window" +#~ msgid "Archive" +#~ msgstr "Archivieren" + +#~ msgctxt "shortcut window" +#~ msgid "Move the conversation" +#~ msgstr "Konversation verschieben" + +#~ msgctxt "shortcut window" +#~ msgid "Mark unread" +#~ msgstr "Als ungelesen markieren" + +#~ msgctxt "shortcut window" +#~ msgid "Additional Shortcuts" +#~ msgstr "Weitere Tastenkombinationen" + +#~ msgctxt "shortcut window" +#~ msgid "Star" +#~ msgstr "Stern" + +#~ msgctxt "shortcut window" +#~ msgid "Unstar" +#~ msgstr "Stern entfernen" + +#~ msgctxt "shortcut window" +#~ msgid "Delete" +#~ msgstr "Löschen" + +#~ msgctxt "shortcut window" +#~ msgid "Jump to next (older) conversation" +#~ msgstr "Zur nächsten (älteren) Konversation springen" + +#~ msgctxt "shortcut window" +#~ msgid "Jump to previous (newer) conversation" +#~ msgstr "Zur letzten (neueren) Konversation springen" + +#~ msgid "Mark as S_pam" +#~ msgstr "Als S_pam markieren" + +#~ msgid "Mark as not S_pam" +#~ msgstr "S_pam-Markierung entfernen" + +#~ msgid "Retry" +#~ msgstr "Wiederholen" + +#~ msgid "" +#~ "Geary encountered a problem connecting to an account.\n" +#~ "Please check your Internet connection, the server configuration and try " +#~ "again." +#~ msgstr "" +#~ "Geary ist beim Verbinden zu einem Konto auf ein Problem gestoßen.\n" +#~ "Bitte überprüfen Sie Ihre Internetverbindung und die Servereinstellungen, " +#~ "und versuchen Sie es erneut." + +#~ msgid "Reading" +#~ msgstr "Lesen" + +#~ msgid "Notifications" +#~ msgstr "Benachrichtigungen" + +#~ msgid "_Play notification sounds" +#~ msgstr "_Benachrichtigungstöne abspielen" + +#~ msgid "Show _notifications for new mail" +#~ msgstr "Benachrichtigung bei _neuen E-Mails anzeigen" + +#~ msgid "Preferences" +#~ msgstr "Einstellungen" + +#~ msgid "" +#~ "Copy technical details to clipboard for pasting into an email or bug " +#~ "report" +#~ msgstr "" +#~ "Technische Details zum Einfügen in eine E-Mail oder einen Fehlerbericht " +#~ "in die Zwischenablage einfügen" + #~ msgid "Base URL to look up contact avatars" #~ msgstr "Basis-Adresse zum Abruf von Kontakt-Benutzerbildern" @@ -3370,18 +3937,9 @@ msgstr "Aktualisierung von Geary wird durchgeführt …" #~ msgid "Move conversations to Trash (Delete, Backspace)" #~ msgstr "Konversationen in den Papierkorb verschieben (Entf, Rücktaste)" -#~ msgid "Archive conversations (A)" -#~ msgstr "Konversationen archivieren (A)" - -#~ msgid "Mark conversations" -#~ msgstr "Konversationen markieren" - #~ msgid "Add label to conversations" #~ msgstr "Konversationen eine Beschriftung zuweisen" -#~ msgid "Move conversations" -#~ msgstr "Konversationen verschieben" - #~ msgid "A_ccounts" #~ msgstr "_Konten" From 3d359b772d4d7a83cffceefd4924bcb1e45763cf Mon Sep 17 00:00:00 2001 From: Cheng-Chia Tseng Date: Tue, 3 Mar 2020 10:40:28 +0000 Subject: [PATCH 042/336] Update Chinese (Taiwan) translation --- po/zh_TW.po | 4834 +++++++++++++++++++++++++++++++++++---------------- 1 file changed, 3346 insertions(+), 1488 deletions(-) diff --git a/po/zh_TW.po b/po/zh_TW.po index e7bd498a..5d1b5039 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -5,13 +5,13 @@ # # Translators: # Cheng-Chia Tseng , 2012-2013 +# Zijian Liu , 2020 msgid "" msgstr "" "Project-Id-Version: geary-0.4.1\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" -"product=geary&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2015-03-23 05:58+0000\n" -"PO-Revision-Date: 2015-03-23 22:35+0800\n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" +"POT-Creation-Date: 2020-02-19 00:44+0000\n" +"PO-Revision-Date: 2020-03-03 18:36+0800\n" "Last-Translator: Cheng-Chia Tseng \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/geary/" "language/zh_TW/)\n" @@ -20,497 +20,1052 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 1.7.1\n" +"X-Generator: Poedit 2.3\n" -#: ../desktop/geary.desktop.in.h:1 ../desktop/geary-autostart.desktop.in.h:1 -msgid "Geary" -msgstr "Geary" - -#: ../desktop/geary.desktop.in.h:2 ../desktop/geary-autostart.desktop.in.h:2 -#: ../src/client/application/geary-application.vala:18 -msgid "Mail Client" -msgstr "郵件客戶端" - -#: ../desktop/geary.desktop.in.h:3 ../desktop/geary-autostart.desktop.in.h:3 -msgid "Geary Mail" -msgstr "Geary 郵件" - -#: ../desktop/geary.desktop.in.h:4 ../desktop/geary-autostart.desktop.in.h:4 -msgid "Send and receive email" -msgstr "寄送與收受郵件" - -#: ../desktop/geary.desktop.in.h:5 ../desktop/geary-autostart.desktop.in.h:5 -msgid "Email;E-mail;Mail;" -msgstr "Email;E-mail;Mail;電子郵件;電郵;郵件;信件;收信;寄信;" - -#: ../desktop/geary.desktop.in.h:6 -msgid "Compose Message" -msgstr "編撰訊息" - -#: ../desktop/geary-attach.contract.in.h:1 +#: desktop/geary-attach.contract.desktop.in:3 msgid "Send by email" msgstr "透過電子郵件寄送" -#: ../desktop/geary-attach.contract.in.h:2 +#: desktop/geary-attach.contract.desktop.in:6 msgid "Send files using Geary" -msgstr "使用 Geary 傳送檔案" +msgstr "使用 Geary 寄送檔案" -#: ../src/client/accounts/account-dialog-add-edit-pane.vala:51 -#: ../src/client/components/stock.vala:31 -msgid "_Save" -msgstr "儲存(_S)" +#. Translators: The application name +#: desktop/geary-autostart.desktop.in.in:3 +#: desktop/org.gnome.Geary.appdata.xml.in.in:12 +#: desktop/org.gnome.Geary.desktop.in.in:3 +#: src/client/accounts/accounts-editor-servers-pane.vala:555 +#: src/client/application/application-main-window.vala:555 +msgid "Geary" +msgstr "Geary" -#: ../src/client/accounts/account-dialog-add-edit-pane.vala:51 -#: ../src/client/components/stock.vala:22 -msgid "_Add" -msgstr "加入(_A)" +#: desktop/geary-autostart.desktop.in.in:4 +#: desktop/org.gnome.Geary.desktop.in.in:4 +msgid "Email" +msgstr "Email" -#. reset/clear widgets -#: ../src/client/accounts/account-dialog-edit-alternate-emails-pane.vala:124 +#. Translators: The application's summary / tagline +#: desktop/geary-autostart.desktop.in.in:5 +#: desktop/org.gnome.Geary.appdata.xml.in.in:16 +#: desktop/org.gnome.Geary.desktop.in.in:5 +#: src/client/application/application-client.vala:32 +msgid "Send and receive email" +msgstr "寄送與收受郵件" + +#. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon. +#: desktop/geary-autostart.desktop.in.in:7 +msgid "Email;E-mail;Mail;" +msgstr "Email;E-mail;Mail;電子郵件;電郵;郵件;信件;收信;寄信;" + +#. Translators: The development team's name +#: desktop/org.gnome.Geary.appdata.xml.in.in:14 +msgid "Geary Development Team" +msgstr "Geary 開發團隊" + +#: desktop/org.gnome.Geary.appdata.xml.in.in:18 +msgid "" +"Geary is an email application built around conversations, for the GNOME 3 " +"desktop. It allows you to read, find and send email with a straightforward, " +"modern interface." +msgstr "" +"Geary 是一款為 GNOME 3 桌面打造的以對話為核心的電子郵件應用程式。其現代化且符" +"合直覺的介面讓您能夠輕鬆地閱讀、搜尋、寄送電子郵件等。" + +#: desktop/org.gnome.Geary.appdata.xml.in.in:23 +msgid "" +"Conversations allow you to read a complete discussion without having to find " +"and click from message to message." +msgstr "對話讓您能夠輕易地檢閱整場討論而無需在一條又一條的訊息中不停翻閱。" + +#: desktop/org.gnome.Geary.appdata.xml.in.in:27 +msgid "Geary’s features include:" +msgstr "Geary 的特色包含:" + +#: desktop/org.gnome.Geary.appdata.xml.in.in:29 +msgid "Quick email account setup" +msgstr "快速設定電子郵件帳號" + +#: desktop/org.gnome.Geary.appdata.xml.in.in:30 +msgid "Shows related messages together in conversations" +msgstr "以對話方式顯示相關訊息" + +#: desktop/org.gnome.Geary.appdata.xml.in.in:31 +msgid "Fast, full text and keyword search" +msgstr "快速的全文關鍵字搜尋" + +#: desktop/org.gnome.Geary.appdata.xml.in.in:32 +msgid "Full-featured HTML and plain text message composer" +msgstr "全功能的 HTML 格式及純文字訊息編撰器" + +#: desktop/org.gnome.Geary.appdata.xml.in.in:33 +msgid "Desktop notification of new mail" +msgstr "有新郵件時顯示桌面通知" + +#: desktop/org.gnome.Geary.appdata.xml.in.in:34 +msgid "Compatible with GMail, Yahoo! Mail, Outlook.com and other IMAP servers" +msgstr "與 Gmail,Yahoo! Mail,Outlook.com 以及其它 IMAP 伺服器相容" + +#. Translators: A screenshot description. +#: desktop/org.gnome.Geary.appdata.xml.in.in:48 +msgid "Geary displaying a conversation" +msgstr "Geary 在顯示對話" + +#. Translators: A screenshot description. +#: desktop/org.gnome.Geary.appdata.xml.in.in:59 +msgid "Geary showing the rich text composer" +msgstr "Geary 的豐富文字編撰器" + +#. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon. +#: desktop/org.gnome.Geary.desktop.in.in:7 +msgid "Mail;E-mail;IMAP;GMail;Yahoo;Hotmail;Outlook;" +msgstr "Mail;E-mail;IMAP;GMail;Yahoo;Hotmail;Outlook;電子郵件;電郵;郵件;信件;" + +#: desktop/org.gnome.Geary.desktop.in.in:22 +msgid "Compose Message" +msgstr "編撰訊息" + +#: desktop/org.gnome.Geary.desktop.in.in:26 +msgid "New Window" +msgstr "新視窗" + +#: desktop/org.gnome.Geary.gschema.xml:8 +msgid "Maximize window" +msgstr "最大化視窗" + +#: desktop/org.gnome.Geary.gschema.xml:9 +msgid "True if the application window is maximized, false otherwise." +msgstr "若程式視窗已最大化則為 true,否則為 false。" + +#: desktop/org.gnome.Geary.gschema.xml:14 +msgid "Width of window" +msgstr "視窗寬度" + +#: desktop/org.gnome.Geary.gschema.xml:15 +msgid "The last recorded width of the application window." +msgstr "最後紀錄的程式視窗寬度。" + +#: desktop/org.gnome.Geary.gschema.xml:20 +msgid "Height of window" +msgstr "視窗高度" + +#: desktop/org.gnome.Geary.gschema.xml:21 +msgid "The last recorded height of the application window." +msgstr "最後紀錄的程式視窗高度。" + +#: desktop/org.gnome.Geary.gschema.xml:26 +msgid "Position of folder list pane" +msgstr "資料夾列表窗格的位置" + +#: desktop/org.gnome.Geary.gschema.xml:27 +#, fuzzy +msgid "Position of the folder list Paned grabber." +msgstr "資料夾列表窗格 grabber 的位置。" + +#: desktop/org.gnome.Geary.gschema.xml:32 +msgid "Position of folder list pane when horizontal" +msgstr "水平時資料夾列表窗格的位置" + +#: desktop/org.gnome.Geary.gschema.xml:33 +#, fuzzy +msgid "" +"Position of the folder list Paned grabber in the horizontal orientation." +msgstr "水平方向時資料夾列表 grabber 的位置。" + +#: desktop/org.gnome.Geary.gschema.xml:38 +msgid "Position of folder list pane when vertical" +msgstr "垂直時資料夾列表窗格的位置" + +#: desktop/org.gnome.Geary.gschema.xml:39 +#, fuzzy +msgid "Position of the folder list Paned grabber in the vertical orientation." +msgstr "垂直方向時資料夾列表 grabber 的位置。" + +#: desktop/org.gnome.Geary.gschema.xml:44 +msgid "Orientation of the folder list pane" +msgstr "資料夾列表窗格的方向" + +#: desktop/org.gnome.Geary.gschema.xml:45 +#, fuzzy +msgid "True if the folder list Paned is in the horizontal orientation." +msgstr "若資料夾列表窗格處於水平方向則為 true。" + +#: desktop/org.gnome.Geary.gschema.xml:50 +msgid "Show/hide formatting toolbar" +msgstr "顯示/隱藏格式設定工具列" + +#: desktop/org.gnome.Geary.gschema.xml:51 +msgid "True if the formatting toolbar in the composer is shown." +msgstr "若格式設定工具列正於編撰器內顯示則為 true。" + +#: desktop/org.gnome.Geary.gschema.xml:56 +msgid "Position of message list pane" +msgstr "訊息列表窗格的位置" + +#: desktop/org.gnome.Geary.gschema.xml:57 +#, fuzzy +msgid "Position of the message list Paned grabber." +msgstr "訊息列表窗格 grabber 的位置。" + +#: desktop/org.gnome.Geary.gschema.xml:62 +msgid "Autoselect next message" +msgstr "自動選取下篇訊息" + +#: desktop/org.gnome.Geary.gschema.xml:63 +msgid "True if we should autoselect the next available conversation." +msgstr "若要自動選取下則可選對話則為 true。" + +#: desktop/org.gnome.Geary.gschema.xml:68 +msgid "Display message previews" +msgstr "顯示對話預覽" + +#: desktop/org.gnome.Geary.gschema.xml:69 +msgid "True if we should display a short preview of each message." +msgstr "若要為每則對話顯示簡短預覽則為 true。" + +#: desktop/org.gnome.Geary.gschema.xml:74 +msgid "Use single key shortcuts" +msgstr "使用單按鍵快捷鍵" + +#: desktop/org.gnome.Geary.gschema.xml:75 +msgid "" +"Enables shortcuts for email actions that do not require pressing to " +"emulate those used by Gmail." +msgstr "允許模仿 Gmail 風格使用不需要按下 的快捷鍵。" + +#: desktop/org.gnome.Geary.gschema.xml:82 +msgid "Languages that shall be used in the spell checker" +msgstr "需要拼字檢查的語言" + +#: desktop/org.gnome.Geary.gschema.xml:83 +msgid "" +"A list of POSIX locales, with the empty list disabling spell checking and " +"the null list using desktop languages by default." +msgstr "" +"POSIX 語系清單。默認情況下,清單為空則停用拼字檢查,為 null 則使用系統語言。" + +#: desktop/org.gnome.Geary.gschema.xml:90 +msgid "Languages that are displayed in the spell checker popover" +msgstr "在拼字檢查的彈出窗口顯示的語言" + +#: desktop/org.gnome.Geary.gschema.xml:91 +msgid "" +"List of languages that are always displayed in the popover of the spell " +"checker." +msgstr "總是在拼字檢查的彈出窗口顯示的語言清單。" + +#: desktop/org.gnome.Geary.gschema.xml:96 +msgid "Notify of new mail at startup" +msgstr "程式啟動時對新郵件提醒" + +#: desktop/org.gnome.Geary.gschema.xml:97 +msgid "True to notify of new mail at startup." +msgstr "若要在程式啟動時對新郵件提醒則為 true。" + +#: desktop/org.gnome.Geary.gschema.xml:102 +msgid "Ask when opening an attachment" +msgstr "打開附件時詢問" + +#: desktop/org.gnome.Geary.gschema.xml:103 +msgid "True to ask when opening an attachment." +msgstr "若要打開附件時詢問則為 true。" + +#: desktop/org.gnome.Geary.gschema.xml:108 +msgid "Whether to compose emails in HTML" +msgstr "是否以 HTML 格式編撰訊息" + +#: desktop/org.gnome.Geary.gschema.xml:109 +msgid "True to compose emails in HTML; false for plain text." +msgstr "若要以 HTML 格式編撰訊息則為 true; 以純文字則為 false。" + +#: desktop/org.gnome.Geary.gschema.xml:114 +msgid "Advisory strategy for full-text searching" +msgstr "全文搜尋的建議" + +#: desktop/org.gnome.Geary.gschema.xml:115 +msgid "" +"Acceptable values are “exact”, “conservative”, “aggressive”, and “horizon”." +msgstr "可接受的值為「exact」,「conservative」,「aggressive”,及「horizon」。" + +#: desktop/org.gnome.Geary.gschema.xml:120 +msgid "Zoom of conversation viewer" +msgstr "對話檢閱器的縮放大小" + +#: desktop/org.gnome.Geary.gschema.xml:121 +msgid "The zoom to apply on the conservation view." +msgstr "要作用在對話檢閱的縮放大小。" + +#: desktop/org.gnome.Geary.gschema.xml:126 +msgid "Size of detached composer window" +msgstr "卸離後的編撰器視窗大小" + +#: desktop/org.gnome.Geary.gschema.xml:127 +msgid "The last recorded size of the detached composer window." +msgstr "最後紀錄的卸離後的編撰器視窗大小。" + +#: desktop/org.gnome.Geary.gschema.xml:132 +msgid "Undo sending email delay" +msgstr "取消寄送電子郵件延時" + +#: desktop/org.gnome.Geary.gschema.xml:133 +msgid "" +"The number of seconds to wait before sending an email. Set to zero or less " +"to disable." +msgstr "寄送郵件前先等待多少秒。設定為0或以下。" + +#: desktop/org.gnome.Geary.gschema.xml:139 +msgid "Brief notification display time" +msgstr "簡短提醒的顯示時間" + +#: desktop/org.gnome.Geary.gschema.xml:140 +msgid "" +"The length of time in seconds for which brief notifications should be " +"displayed." +msgstr "簡短提醒應這該被顯示的秒數。" + +#: desktop/org.gnome.Geary.gschema.xml:146 +msgid "Whether we migrated the old settings" +msgstr "是否遷移至舊設定" + +#: desktop/org.gnome.Geary.gschema.xml:147 +msgid "" +"False to check for the old “org.yorba.geary”-schema and copy its values." +msgstr "若要檢查舊的「org.yorba.geary」-schema 並複製其值則為 false。" + +#. Translators: In-app notification label, when +#. the app had a problem pinning an otherwise +#. untrusted TLS certificate +#: src/client/accounts/accounts-editor.vala:210 +msgid "Failed to store certificate" +msgstr "儲存憑證失敗" + +#. Translators: Label for adding an email account +#. account for a generic IMAP service provider. +#: src/client/accounts/accounts-editor-add-pane.vala:108 +msgid "All others" +msgstr "所有其它" + +#. Translators: In-app notification label +#: src/client/accounts/accounts-editor-add-pane.vala:195 +#: src/client/accounts/accounts-editor-servers-pane.vala:316 +msgid "Check your receiving login and password" +msgstr "檢查您的收受伺服器登入名稱及密碼" + +#. Translators: In-app notification label +#: src/client/accounts/accounts-editor-add-pane.vala:210 +#: src/client/accounts/accounts-editor-servers-pane.vala:329 +msgid "Check your receiving server details" +msgstr "檢查您的收受伺服器詳細資訊" + +#. Translators: In-app notification label +#. There was an SMTP auth error, but IMAP already +#. succeeded, so the user probably needs to +#. specify custom creds here +#. Translators: In-app notification label +#: src/client/accounts/accounts-editor-add-pane.vala:232 +#: src/client/accounts/accounts-editor-servers-pane.vala:350 +msgid "Check your sending login and password" +msgstr "檢查您的寄送伺服器登入名稱及密碼" + +#. Translators: In-app notification label +#: src/client/accounts/accounts-editor-add-pane.vala:246 +#: src/client/accounts/accounts-editor-servers-pane.vala:363 +msgid "Check your sending server details" +msgstr "檢查您的寄送伺服器詳細資訊" + +#. Translators: In-app notification label +#: src/client/accounts/accounts-editor-add-pane.vala:261 +msgid "Check your email address and password" +msgstr "檢查您的電子郵件位址及密碼" + +#. Translators: In-app notification label +#: src/client/accounts/accounts-editor-add-pane.vala:272 +msgid "Could not connect, check your network" +msgstr "無法連上,請檢查您的網路" + +#. Translators: In-app notification label for a +#. generic error creating an account +#: src/client/accounts/accounts-editor-add-pane.vala:285 +msgid "An unexpected problem occurred" +msgstr "遭遇未預期的錯誤" + +#. Translators: In-app notification label, the +#. string substitution is a more detailed reason. +#: src/client/accounts/accounts-editor-add-pane.vala:303 #, c-format -msgid "Additional addresses for %s" -msgstr "%s 的其他位址" +msgid "Account not created: %s" +msgstr "無法建立帳號:%s" -#. Sets min size. -#: ../src/client/accounts/account-dialog.vala:21 -msgid "Accounts" -msgstr "帳號" +#. Translators: Label for the person's actual name when adding +#. an account +#: src/client/accounts/accounts-editor-add-pane.vala:558 +msgid "Your name" +msgstr "您的名字" -#. Copyright 2011-2015 Yorba Foundation -#. * -#. * This software is licensed under the GNU Lesser General Public License -#. * (version 2.1 or later). See the COPYING file in this distribution. -#. -#. Page for adding or editing an account. -#. / Placeholder text indicating that the user should type their first name and last name -#: ../src/client/accounts/add-edit-page.vala:10 -msgid "First Last" -msgstr "名字 姓氏" +#. Translators: Label used for the address part of an +#. email address when editing a user's sender address +#. preferences for an account. +#: src/client/accounts/accounts-editor-add-pane.vala:575 +#: src/client/accounts/accounts-editor-edit-pane.vala:513 +msgid "Email address" +msgstr "電子郵件位址" -#: ../src/client/accounts/add-edit-page.vala:233 -msgid "Welcome to Geary." -msgstr "歡迎使用 Geary。" +#. Translators: Placeholder for the default sender address +#. when adding an account +#. Translators: This is used as a placeholder for the +#. address part of an email address when editing a user's +#. sender address preferences for an account. +#: src/client/accounts/accounts-editor-add-pane.vala:579 +#: src/client/accounts/accounts-editor-edit-pane.vala:479 +msgid "person@example.com" +msgstr "person@example.com" -#: ../src/client/accounts/add-edit-page.vala:233 -msgid "Enter your account information to get started." -msgstr "請輸入您的帳戶資訊以開始使用。" +#. Translators: Label for an IMAP/SMTP service login/user name +#. when adding an account +#. Translators: Label for the user's login name for an +#. IMAP, SMTP, etc service +#: src/client/accounts/accounts-editor-add-pane.vala:593 +#: src/client/accounts/accounts-editor-servers-pane.vala:884 +msgid "Login name" +msgstr "登入名稱" -#: ../src/client/accounts/add-edit-page.vala:253 -msgid "2 weeks back" -msgstr "2 週前" +#. Translators: Label for the user's password for an IMAP, +#. SMTP, etc service +#: src/client/accounts/accounts-editor-add-pane.vala:607 +#: src/client/accounts/accounts-editor-servers-pane.vala:1006 +#: ui/password-dialog.glade:108 +msgid "Password" +msgstr "密碼" -#. IDs are # of days -#: ../src/client/accounts/add-edit-page.vala:254 -msgid "1 month back" -msgstr "1 個月前" +#. Translators: Label for the IMAP server hostname when +#. adding an account. +#. Translators: This label describes the host name or IP +#. address and port used by an account's IMAP service. +#: src/client/accounts/accounts-editor-add-pane.vala:629 +#: src/client/accounts/accounts-editor-servers-pane.vala:728 +msgid "IMAP server" +msgstr "IMAP 伺服器" -#: ../src/client/accounts/add-edit-page.vala:255 -msgid "3 months back" -msgstr "3 週前" +#. Translators: Placeholder for the IMAP server hostname +#. when adding an account. +#: src/client/accounts/accounts-editor-add-pane.vala:632 +msgid "imap.example.com" +msgstr "imap.example.com" -#: ../src/client/accounts/add-edit-page.vala:256 -msgid "6 months back" -msgstr "6 週前" +#. Translators: Label for the SMTP server hostname when +#. adding an account. +#. Translators: This label describes the host name or IP +#. address and port used by an account's SMTP service. +#: src/client/accounts/accounts-editor-add-pane.vala:638 +#: src/client/accounts/accounts-editor-servers-pane.vala:734 +msgid "SMTP server" +msgstr "SMTP 伺服器" -#: ../src/client/accounts/add-edit-page.vala:257 -msgid "1 year back" -msgstr "1 年前" +#. Translators: Placeholder for the SMTP server hostname +#. when adding an account. +#: src/client/accounts/accounts-editor-add-pane.vala:641 +msgid "smtp.example.com" +msgstr "smtp.example.com" -#: ../src/client/accounts/add-edit-page.vala:258 -msgid "2 years back" -msgstr "2 年前" +#. Translators: Label in the account editor for the user's +#. custom name for an account. +#: src/client/accounts/accounts-editor-edit-pane.vala:277 +#: ui/accounts_editor_remove_pane.ui:123 +msgid "Account name" +msgstr "帳號名稱" -#: ../src/client/accounts/add-edit-page.vala:259 -msgid "4 years back" -msgstr "4 年前" +#. Translators: Tooltip used to undo changing +#. the name of an account. The string +#. substitution is the old name of the +#. account. +#: src/client/accounts/accounts-editor-edit-pane.vala:318 +#, c-format +msgid "Change account name back to “%s”" +msgstr "將帳號名稱改回到「%s」" -#. Separator -#: ../src/client/accounts/add-edit-page.vala:261 +#. Translators: Tooltip for adding a new email sender/from +#. address's address to an account +#: src/client/accounts/accounts-editor-edit-pane.vala:342 +msgid "Add a new sender email address" +msgstr "新增寄件者郵件位址" + +#. Translators: Label used to indicate the user has +#. provided no display name for one of their sender +#. email addresses in their account settings. +#: src/client/accounts/accounts-editor-edit-pane.vala:423 +msgid "Name not set" +msgstr "未設定名稱" + +#. Translators: This is used as a placeholder for the +#. display name for an email address when editing a user's +#. sender address preferences for an account. +#: src/client/accounts/accounts-editor-edit-pane.vala:464 +msgid "Sender Name" +msgstr "寄件者名稱" + +#: src/client/accounts/accounts-editor-edit-pane.vala:491 +msgid "Remove" +msgstr "移除" + +#. Translators: Label used for the display name part of an +#. email address when editing a user's sender address +#. preferences for an account. +#: src/client/accounts/accounts-editor-edit-pane.vala:506 +msgid "Sender name" +msgstr "寄件者名稱" + +#. Translators: Label used as the undo tooltip after adding an +#. new sender email address to an account. The string +#. substitution is the email address added. +#: src/client/accounts/accounts-editor-edit-pane.vala:573 +#, c-format +msgid "Remove “%s”" +msgstr "移除「%s」" + +#. Translators: Label used as the undo tooltip after editing a +#. sender address for an account. The string substitution is +#. the email address edited. +#: src/client/accounts/accounts-editor-edit-pane.vala:613 +#, c-format +msgid "Undo changes to “%s”" +msgstr "取消對「%s」的變更" + +#. Translators: Label used as the undo tooltip after removing +#. a sender address from an account. The string substitution +#. is the email address edited. +#: src/client/accounts/accounts-editor-edit-pane.vala:700 +#, c-format +msgid "Add “%s” back" +msgstr "再次增加「%s」" + +#. Translators: Label used as the undo tooltip after removing +#. a sender address from an account. The string substitution +#. is the email address edited. +#: src/client/accounts/accounts-editor-edit-pane.vala:742 +msgid "Undo signature changes" +msgstr "取消對簽名的變更" + +#. Translators: This label describes the account +#. preference for the length of time (weeks, months or +#. years) that past email should be downloaded. +#: src/client/accounts/accounts-editor-edit-pane.vala:790 +msgid "Download mail" +msgstr "下載郵件" + +#. Translators: Tooltip for undoing a change +#. to the length of time that past email +#. should be downloaded for an account. The +#. string substitution is the duration, +#. e.g. "1 month back". +#: src/client/accounts/accounts-editor-edit-pane.vala:822 +#, c-format +msgid "Change download period back to: %s" +msgstr "將下載週期改回到:%s" + +#: src/client/accounts/accounts-editor-edit-pane.vala:843 msgid "Everything" msgstr "每件" -#: ../src/client/accounts/add-edit-page.vala:280 -msgid "Edit" -msgstr "編輯" +#: src/client/accounts/accounts-editor-edit-pane.vala:847 +msgid "2 weeks back" +msgstr "2 週內" -#: ../src/client/accounts/add-edit-page.vala:282 -msgid "Preview" -msgstr "預覽" +#: src/client/accounts/accounts-editor-edit-pane.vala:851 +msgid "1 month back" +msgstr "1 個月內" -#: ../src/client/accounts/add-edit-page.vala:723 -msgid "Remem_ber passwords" -msgstr "記住密碼(_B)" +#: src/client/accounts/accounts-editor-edit-pane.vala:855 +msgid "3 months back" +msgstr "3 週內" -#: ../src/client/accounts/add-edit-page.vala:730 ../ui/login.glade.h:6 -msgid "Remem_ber password" -msgstr "記住密碼(_B)" +#: src/client/accounts/accounts-editor-edit-pane.vala:859 +msgid "6 months back" +msgstr "6 週內" -#: ../src/client/accounts/add-edit-page.vala:764 -msgid "Unable to validate:\n" -msgstr "無法成功驗證:\n" +#: src/client/accounts/accounts-editor-edit-pane.vala:863 +msgid "1 year back" +msgstr "1 年內" -#: ../src/client/accounts/add-edit-page.vala:766 -msgid " • Invalid account nickname.\n" -msgstr " • 帳號暱稱無效。\n" +#: src/client/accounts/accounts-editor-edit-pane.vala:867 +msgid "2 years back" +msgstr "2 年內" -#: ../src/client/accounts/add-edit-page.vala:769 -msgid " • Email address already added to Geary.\n" -msgstr " • 電子郵件位址已加入 Geary。\n" +#: src/client/accounts/accounts-editor-edit-pane.vala:871 +msgid "4 years back" +msgstr "4 年內" -#: ../src/client/accounts/add-edit-page.vala:773 -msgid " • IMAP connection error.\n" -msgstr " • IMAP 連線錯誤。\n" +#: src/client/accounts/accounts-editor-edit-pane.vala:877 +#, c-format +msgid "%d day back" +msgid_plural "%d days back" +msgstr[0] "%d 天內" -#: ../src/client/accounts/add-edit-page.vala:776 -msgid " • IMAP username or password incorrect.\n" -msgstr " • IMAP 使用者名稱或密碼不正確。\n" +#: src/client/accounts/accounts-editor-list-pane.vala:255 +#: src/client/application/application-main-window.vala:2053 +msgid "Undo" +msgstr "取消動作" -#: ../src/client/accounts/add-edit-page.vala:779 -msgid " • SMTP connection error.\n" -msgstr " • SMTP 連線錯誤。\n" +#: src/client/accounts/accounts-editor-list-pane.vala:264 +#: src/client/application/application-main-window.vala:2036 +msgid "Redo" +msgstr "再次動作" -#: ../src/client/accounts/add-edit-page.vala:782 -msgid " • SMTP username or password incorrect.\n" -msgstr " • SMTP 使用者名稱或密碼不正確。\n" +#: src/client/accounts/accounts-editor-list-pane.vala:358 +#: src/client/accounts/accounts-editor-list-pane.vala:446 +#: src/client/accounts/accounts-editor-row.vala:279 +msgid "Gmail" +msgstr "Gmail" -#: ../src/client/accounts/add-edit-page.vala:786 -msgid " • Connection error.\n" -msgstr " •連線錯誤 。\n" +#: src/client/accounts/accounts-editor-list-pane.vala:362 +#: src/client/accounts/accounts-editor-list-pane.vala:450 +#: src/client/accounts/accounts-editor-row.vala:283 +msgid "Outlook.com" +msgstr "Outlook.com" -#: ../src/client/accounts/add-edit-page.vala:790 -msgid " • Username or password incorrect.\n" -msgstr " • 使用者名稱或密碼不正確。\n" +#: src/client/accounts/accounts-editor-list-pane.vala:366 +#: src/client/accounts/accounts-editor-list-pane.vala:454 +#: src/client/accounts/accounts-editor-row.vala:287 +msgid "Yahoo" +msgstr "Yahoo" -#: ../src/client/application/geary-application.vala:19 -msgid "Copyright 2011-2015 Yorba Foundation" -msgstr "著作權所有 2011-2015 Yorba Foundation" +#. Translators: Tooltip for accounts that have been +#. loaded but disabled by the user. +#: src/client/accounts/accounts-editor-list-pane.vala:384 +msgid "This account has been disabled" +msgstr "這個帳號已經被停用" -#: ../src/client/application/geary-application.vala:21 -msgid "Visit the Yorba web site" -msgstr "造訪 Yorba 網站" +#. Translators: Tooltip for accounts that have been +#. loaded but because of some error are not able to be +#. used. +#: src/client/accounts/accounts-editor-list-pane.vala:393 +msgid "This account has encountered a problem and is unavailable" +msgstr "這個帳號出現問題,無法使用" -#: ../src/client/application/geary-args.vala:10 -msgid "Start Geary with hidden main window" -msgstr "啟動 Geary 並隱藏主視窗" +#. Translators: Label for adding a generic email account +#: src/client/accounts/accounts-editor-list-pane.vala:443 +msgid "Other email providers" +msgstr "其它電子郵件服務商" -#: ../src/client/application/geary-args.vala:11 -msgid "Output debugging information" -msgstr "輸出除錯用資訊" +#. Translators: Notification shown after removing an +#. account. The string substitution is the name of the +#. account. +#: src/client/accounts/accounts-editor-list-pane.vala:560 +#, c-format +msgid "Account “%s” removed" +msgstr "已移除「%s」帳號" -#: ../src/client/application/geary-args.vala:12 +#. Translators: Notification shown after removing an account +#. is undone. The string substitution is the name of the +#. account. +#: src/client/accounts/accounts-editor-list-pane.vala:567 +#, c-format +msgid "Account “%s” restored" +msgstr "已復原「%s」帳號" + +#. Translators: Tooltip for dragging list items +#: src/client/accounts/accounts-editor-row.vala:50 +msgid "Drag to move this item" +msgstr "拖曳可移動此項目" + +#. Translators: Label describes the service provider +#. hosting the email account, e.g. Gmail, Yahoo, or some +#. other generic IMAP service. +#: src/client/accounts/accounts-editor-row.vala:295 +msgid "Service provider" +msgstr "服務供應商" + +#. Translators: This label describes what form of transport +#. security (TLS, StartTLS, etc) used by an account's IMAP or SMTP +#. service. +#: src/client/accounts/accounts-editor-row.vala:468 +msgid "Connection security" +msgstr "連線安全性協定" + +#. Translators: Label used when no auth scheme is used +#. by an account's IMAP or SMTP service. +#: src/client/accounts/accounts-editor-row.vala:479 +#: src/client/accounts/accounts-editor-servers-pane.vala:755 +#: src/client/accounts/accounts-editor-servers-pane.vala:970 +#: src/engine/api/geary-special-folder-type.vala:58 +msgid "None" +msgstr "無" + +#: src/client/accounts/accounts-editor-row.vala:486 +msgid "StartTLS" +msgstr "StartTLS" + +#: src/client/accounts/accounts-editor-row.vala:493 +msgid "TLS" +msgstr "TLS" + +#. Translators: Label for source of SMTP authentication +#. credentials (none, use IMAP, custom) when adding a new +#. account +#. Button label for retrying when a login error has occurred +#: src/client/accounts/accounts-editor-row.vala:534 +#: ui/application-main-window.ui:346 +msgid "Login" +msgstr "登入" + +#. Translators: ComboBox value for source of SMTP +#. authentication credentials (none) when adding a new +#. account +#: src/client/accounts/accounts-editor-row.vala:541 +msgid "No login needed" +msgstr "不需要登入" + +#. Translators: ComboBox value for source of SMTP +#. authentication credentials (use IMAP) when adding a new +#. account +#: src/client/accounts/accounts-editor-row.vala:549 +msgid "Use same login as receiving" +msgstr "使用與收受相同的的登入資訊" + +#. Translators: ComboBox value for source of SMTP +#. authentication credentials (custom) when adding a new +#. account +#: src/client/accounts/accounts-editor-row.vala:557 +msgid "Use a different login" +msgstr "使用另外的登入資訊" + +#. Translators: In-app notification label, the +#. string substitution is a more detailed reason. +#: src/client/accounts/accounts-editor-servers-pane.vala:377 +#, c-format +msgid "Account not updated: %s" +msgstr "帳號未被更新:%s" + +#. Translators: This label describes the program that +#. created the account, e.g. an SSO service like GOA, or +#. locally by Geary. +#: src/client/accounts/accounts-editor-servers-pane.vala:540 +msgid "Account source" +msgstr "帳號來源" + +#: src/client/accounts/accounts-editor-servers-pane.vala:552 +msgid "GNOME Online Accounts" +msgstr "Gnome 線上帳號" + +#. Translators: This label describes an account +#. preference. +#: src/client/accounts/accounts-editor-servers-pane.vala:611 +msgid "Save draft email on server" +msgstr "儲存草稿到伺服器上" + +#. Translators: This label describes an account +#. preference. +#: src/client/accounts/accounts-editor-servers-pane.vala:666 +msgid "Save sent email on server" +msgstr "儲存已寄送電子郵件到伺服器上" + +#. Add a suffix for OAuth2 auth so people know they +#. shouldn't expect to be prompted for a password +#. Translators: Label used when an account's IMAP or +#. SMTP service uses OAuth2. The string replacement is +#. the service's login name. +#: src/client/accounts/accounts-editor-servers-pane.vala:956 +#, c-format +msgid "%s using OAuth2" +msgstr "使用 OAuth2 的 %s" + +#: src/client/accounts/accounts-editor-servers-pane.vala:966 +msgid "Use receiving server login" +msgstr "使用收受伺服器的登入資訊" + +#. Translators: File name used in save chooser when saving +#. attachments that do not otherwise have a name. +#: src/client/application/application-attachment-manager.vala:21 +msgid "Untitled" +msgstr "未命名" + +#. / Translators: Dialog primary label when prompting to +#. / overwrite a file. The string substitution is the file'sx +#. / name. +#: src/client/application/application-attachment-manager.vala:222 +#, c-format +msgid "A file named “%s” already exists. Do you want to replace it?" +msgstr "已經存在檔案名稱「%s」。您想要替換它嗎?" + +#. / Translators: Dialog secondary label when prompting to +#. / overwrite a file. The string substitution is the parent +#. / folder's name. +#: src/client/application/application-attachment-manager.vala:229 +#, c-format +msgid "" +"The file already exists in “%s”. Replacing it will overwrite its contents." +msgstr "「%s」中已經存在該檔案。替換它將覆寫其內容。" + +#: src/client/application/application-attachment-manager.vala:236 +msgid "_Replace" +msgstr "替換(_R)" + +#: src/client/application/application-client.vala:33 +msgid "Copyright 2016 Software Freedom Conservancy Inc." +msgstr "Copyright 2016 Software Freedom Conservancy Inc." + +#: src/client/application/application-client.vala:34 +msgid "Copyright 2016-2019 Geary Development Team." +msgstr "Copyright 2016-2019 Geary 開發團隊" + +#: src/client/application/application-client.vala:36 +msgid "Visit the Geary web site" +msgstr "造訪 Geary 網站" + +#. / Command line option +#: src/client/application/application-client.vala:94 +msgid "Print debug logging" +msgstr "列印除錯紀錄" + +#. / Command line option +#: src/client/application/application-client.vala:97 +msgid "Start with the main window hidden (deprecated)" +msgstr "啟動 Geary 時隱藏主視窗(已棄用)" + +#. / Command line option +#: src/client/application/application-client.vala:100 +msgid "Enable WebKitGTK Inspector in web views" +msgstr "允許在網頁檢視裡使用 WebKitGtk 檢閱器" + +#. / Command line option +#: src/client/application/application-client.vala:103 msgid "Log conversation monitoring" msgstr "紀錄對話監視" -#: ../src/client/application/geary-args.vala:13 -msgid "Log network deserialization" -msgstr "紀錄網路去序列化" +#. / Command line option +#: src/client/application/application-client.vala:106 +msgid "Log IMAP network deserialization" +msgstr "紀錄 IMAP 去序列化" -#: ../src/client/application/geary-args.vala:14 -msgid "Log network activity" -msgstr "紀錄網路活動" - -#. / The IMAP replay queue is how changes on the server are replicated on the client. -#. / It could also be called the IMAP events queue. -#: ../src/client/application/geary-args.vala:17 -msgid "Log IMAP replay queue" -msgstr "紀錄 IMAP replay 佇列" - -#. / Serialization is how commands and responses are converted into a stream of bytes for -#. / network transmission -#: ../src/client/application/geary-args.vala:20 -msgid "Log network serialization" -msgstr "紀錄網路序列化" - -#: ../src/client/application/geary-args.vala:21 -msgid "Log periodic activity" -msgstr "紀錄週期性活動" - -#: ../src/client/application/geary-args.vala:22 -msgid "Log database queries (generates lots of messages)" -msgstr "紀錄資料庫查詢 (會產生大量訊息)" - -#. / "Normalization" can also be called "synchronization" -#: ../src/client/application/geary-args.vala:24 +#. / Command line option. "Normalization" can also be called +#. / "synchronization". +#: src/client/application/application-client.vala:110 msgid "Log folder normalization" msgstr "紀錄資料夾一般化" -#: ../src/client/application/geary-args.vala:25 -msgid "Allow inspection of WebView" -msgstr "允許 WebView 的檢閱" +#. / Command line option +#: src/client/application/application-client.vala:113 +msgid "Log network activity" +msgstr "紀錄網路活動" -#: ../src/client/application/geary-args.vala:26 -msgid "Revoke all server certificates with TLS warnings" -msgstr "撤銷所有具 TLS 警告的伺服器憑證" +#. / Command line option +#: src/client/application/application-client.vala:116 +msgid "Log periodic activity" +msgstr "紀錄週期性活動" -#: ../src/client/application/geary-args.vala:27 +#. / Command line option. The IMAP replay queue is how changes +#. / on the server are replicated on the client. It could +#. / also be called the IMAP events queue. +#: src/client/application/application-client.vala:121 +msgid "Log IMAP replay queue" +msgstr "紀錄 IMAP replay 佇列" + +#. / Command line option. Serialization is how commands and +#. / responses are converted into a stream of bytes for +#. / network transmission +#: src/client/application/application-client.vala:126 +msgid "Log IMAP network serialization" +msgstr "紀錄 IMAP 網路序列化" + +#. / Command line option +#: src/client/application/application-client.vala:129 +msgid "Log database queries (generates lots of messages)" +msgstr "紀錄資料庫查詢 (會產生大量訊息)" + +#. / Command line option +#: src/client/application/application-client.vala:132 +msgid "Perform a graceful quit" +msgstr "遭遇錯誤時結束程式" + +#: src/client/application/application-client.vala:134 +msgid "Open a new window" +msgstr "開啟新的視窗" + +#. / Command line option +#: src/client/application/application-client.vala:137 +msgid "Revoke all pinned TLS server certificates" +msgstr "撤銷所有釘選的 TLS 伺服器憑證" + +#. / Command line option +#: src/client/application/application-client.vala:140 msgid "Display program version" msgstr "顯示程式版本" -#. This gives a command-line hint on how to open new composer windows with mailto: -#: ../src/client/application/geary-args.vala:51 +#. / Application runtime information label +#: src/client/application/application-client.vala:264 +msgid "Geary version" +msgstr "Geary 版本" + +#. / Application runtime information label +#: src/client/application/application-client.vala:266 +msgid "Geary revision" +msgstr "Geary 修正" + +#. / Application runtime information label +#: src/client/application/application-client.vala:268 +msgid "GTK version" +msgstr "GTK 版本" + +#. / Applciation runtime information label +#: src/client/application/application-client.vala:275 +msgid "GLib version" +msgstr "GLib 版本" + +#. / Application runtime information label +#: src/client/application/application-client.vala:282 +msgid "WebKitGTK version" +msgstr "WebKitGTK 版本" + +#. / Application runtime information label +#: src/client/application/application-client.vala:289 +msgid "Desktop environment" +msgstr "桌面環境" + +#. Translators: This is the file type displayed for +#. attachments with unknown file types. +#: src/client/application/application-client.vala:291 +#: src/client/components/components-attachment-pane.vala:91 +msgid "Unknown" +msgstr "未知" + +#. / Application runtime information label +#: src/client/application/application-client.vala:321 +msgid "Distribution name" +msgstr "散布版名稱" + +#. / Application runtime information label +#: src/client/application/application-client.vala:326 +msgid "Distribution release" +msgstr "散布版發行版本" + +#. / Application runtime information label +#: src/client/application/application-client.vala:334 +msgid "Installation prefix" +msgstr "安裝位置" + +#: src/client/application/application-client.vala:587 #, c-format -msgid "Use %s to open a new composer window" -msgstr "使用 %s 開啟新的編撰器視窗" +msgid "About %s" +msgstr "關於 %s" -#: ../src/client/application/geary-args.vala:52 -msgid "Please report comments, suggestions and bugs to:" -msgstr "請回報評註、建議與臭蟲至:" +#. Translators: add your name and email address to receive +#. credit in the About dialog For example: Yamada Taro +#. +#: src/client/application/application-client.vala:591 +msgid "translator-credits" +msgstr "" +"Cheng-Chia Tseng , 2012-2015\n" +"Zijian Liu , 2020" -#. i18n: Command line arguments are invalid -#: ../src/client/application/geary-args.vala:59 +#. / Warning printed to the console when a deprecated +#. / command line option is used. +#: src/client/application/application-client.vala:937 +msgid "The `--hidden` option is deprecated and will be removed in the future." +msgstr "`--hidden` 選項已被棄用,未來將會被移除。" + +#. / Command line warning, string substitution +#. / is the given argument +#: src/client/application/application-client.vala:970 #, c-format -msgid "Failed to parse command line options: %s\n" -msgstr "無法解析指令列選項:%s\n" +msgid "Unrecognised program argument: “%s”" +msgstr "不明選項「%s」" -#: ../src/client/application/geary-args.vala:70 +#. / Notification title. +#: src/client/application/application-controller.vala:458 #, c-format -msgid "Unrecognized command line option \"%s\"\n" -msgstr "無法辨識的指令列選項「%s」\n" +msgid "A problem occurred sending email for %s" +msgstr "為 %s 寄送郵件時遭遇錯誤" -#: ../src/client/application/geary-controller.vala:62 -msgid "Delete conversation" -msgstr "刪除對話" +#. / Notification body +#: src/client/application/application-controller.vala:462 +msgid "Email will not be sent until re-connected" +msgstr "郵件不會被寄出直至連線成功" -#: ../src/client/application/geary-controller.vala:63 -msgid "Delete conversation (Shift+Delete)" -msgstr "刪除對話 (Shift+Delete)" +#. / Translators: Label for in-app notification +#: src/client/application/application-controller.vala:568 +msgid "Conversation marked" +msgid_plural "Conversations marked" +msgstr[0] "已標記對話" -#: ../src/client/application/geary-controller.vala:64 -msgid "Delete conversations (Shift+Delete)" -msgstr "刪除對話 (Shift+Delete)" +#. / Translators: Label for in-app notification +#: src/client/application/application-controller.vala:574 +msgid "Conversation un-marked" +msgid_plural "Conversations un-marked" +msgstr[0] "已取消標記對話" -#. This refers to the action ("move email to the trash"), not the Trash folder itself -#: ../src/client/application/geary-controller.vala:68 -msgid "Move conversation to Trash (Delete, Backspace)" -msgstr "將對話搬移至垃圾桶 (Delete、Backspace)" +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:600 +#: src/client/application/application-controller.vala:684 +#, c-format +msgid "Conversation moved to %s" +msgid_plural "Conversations moved to %s" +msgstr[0] "對話已移動到 %s" -#: ../src/client/application/geary-controller.vala:69 -msgid "Move conversations to Trash (Delete, Backspace)" -msgstr "將對話搬移至垃圾桶 (Delete、Backspace)" +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the source folder. +#. / Translators: Label for in-app notification. String +#. / substitution is the name of the destination folder. +#: src/client/application/application-controller.vala:608 +#: src/client/application/application-controller.vala:630 +#, c-format +msgid "Conversation restored to %s" +msgid_plural "Conversations restored to %s" +msgstr[0] "對話已儲存到 %s" -#. This refers to the action ("archive an email"), not the Archive folder itself -#: ../src/client/application/geary-controller.vala:73 -msgid "_Archive" -msgstr "封存(_A)" +#. / Translators: Label for in-app notification. +#: src/client/application/application-controller.vala:651 +msgid "Conversation archived" +msgid_plural "Conversations archived" +msgstr[0] "對話已封存" -#: ../src/client/application/geary-controller.vala:74 -msgid "Archive conversation (A)" -msgstr "封存對話 (A)" +#. / Translators: Label for in-app notification. String +#. / substitution is the name of the destination folder. +#: src/client/application/application-controller.vala:707 +#, c-format +msgid "Message restored to %s" +msgid_plural "Messages restored to %s" +msgstr[0] "訊息已儲存到 %s" -#: ../src/client/application/geary-controller.vala:75 -msgid "Archive conversations (A)" -msgstr "更多對話封存對話 (A)" +#. / Translators: Label for in-app notification. +#: src/client/application/application-controller.vala:728 +msgid "Message archived" +msgid_plural "Messages archived" +msgstr[0] "訊息已封存" -#: ../src/client/application/geary-controller.vala:78 -msgid "Mark as S_pam" -msgstr "標記為垃圾郵件(_P)" +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:763 +#, c-format +msgid "Message moved to %s" +msgid_plural "Messages moved to %s" +msgstr[0] "訊息已移動到 %s" -#: ../src/client/application/geary-controller.vala:79 -msgid "Mark as not S_pam" -msgstr "標記為非垃圾郵件(_P)" +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:791 +#, c-format +msgid "Conversation labelled as %s" +msgid_plural "Conversations labelled as %s" +msgstr[0] "對話已貼上標籤 %s" -#: ../src/client/application/geary-controller.vala:81 -#: ../src/client/application/geary-controller.vala:397 -msgid "Mark conversation" -msgstr "標記對話" +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:799 +#, c-format +msgid "Conversation un-labelled as %s" +msgid_plural "Conversations un-labelled as %s" +msgstr[0] "對話已移除標籤 %s" -#: ../src/client/application/geary-controller.vala:82 -msgid "Mark conversations" -msgstr "標記對話" - -#: ../src/client/application/geary-controller.vala:83 -msgid "Add label to conversation" -msgstr "貼加標籤到對話" - -#: ../src/client/application/geary-controller.vala:84 -msgid "Add label to conversations" -msgstr "貼加標籤到對話" - -#: ../src/client/application/geary-controller.vala:85 -#: ../src/client/application/geary-controller.vala:436 -msgid "Move conversation" -msgstr "更多對話" - -#: ../src/client/application/geary-controller.vala:86 -msgid "Move conversations" -msgstr "更多對話" - -#: ../src/client/application/geary-controller.vala:373 -msgid "A_ccounts" -msgstr "帳號(_C)" - -#: ../src/client/application/geary-controller.vala:378 -#: ../src/client/components/stock.vala:27 -msgid "_Preferences" -msgstr "偏好設定(_P)" - -#: ../src/client/application/geary-controller.vala:382 -#: ../src/client/components/stock.vala:25 -msgid "_Help" -msgstr "幫助(_H)" - -#: ../src/client/application/geary-controller.vala:386 -#: ../src/client/components/stock.vala:21 -msgid "_About" -msgstr "關於(_A)" - -#: ../src/client/application/geary-controller.vala:390 -msgid "_Donate" -msgstr "捐款(_D)" - -#: ../src/client/application/geary-controller.vala:394 -#: ../src/client/components/stock.vala:29 -msgid "_Quit" -msgstr "退出(_Q)" - -#: ../src/client/application/geary-controller.vala:399 -msgid "_Mark as..." -msgstr "標記為(_M)..." - -#: ../src/client/application/geary-controller.vala:405 -msgid "Mark as _Read" -msgstr "標記為已讀(_R)" - -#: ../src/client/application/geary-controller.vala:411 -msgid "Mark as _Unread" -msgstr "標記為未讀(_U)" - -#: ../src/client/application/geary-controller.vala:417 -msgid "_Star" -msgstr "標星(_S)" - -#: ../src/client/application/geary-controller.vala:422 -msgid "U_nstar" -msgstr "取消標星(_N)" - -#: ../src/client/application/geary-controller.vala:432 -msgid "Add label" -msgstr "加入標籤" - -#: ../src/client/application/geary-controller.vala:433 -msgid "_Label" -msgstr "標籤(_L)" - -#: ../src/client/application/geary-controller.vala:437 -msgid "_Move" -msgstr "移動(_M)" - -#: ../src/client/application/geary-controller.vala:441 -msgid "Compose new message (Ctrl+N, N)" -msgstr "編撰新訊息 (Ctrl+N、N)" - -#. Reply to a message. -#: ../src/client/application/geary-controller.vala:445 -#: ../src/client/conversation-viewer/conversation-viewer.vala:1857 -msgid "_Reply" -msgstr "回覆(_R)" - -#: ../src/client/application/geary-controller.vala:446 -msgid "Reply (Ctrl+R, R)" -msgstr "回覆 (Ctrl+R、R)" - -#: ../src/client/application/geary-controller.vala:450 -msgid "R_eply All" -msgstr "回覆所有人(_E)" - -#: ../src/client/application/geary-controller.vala:451 -msgid "Reply all (Ctrl+Shift+R, Shift+R)" -msgstr "回覆所有人 (Ctrl+Shift+R、Shift+R)" - -#. Forward a message. -#: ../src/client/application/geary-controller.vala:456 -#: ../src/client/conversation-viewer/conversation-viewer.vala:1867 -msgid "_Forward" -msgstr "轉寄(_F)" - -#: ../src/client/application/geary-controller.vala:457 -msgid "Forward (Ctrl+L, F)" -msgstr "轉寄 (Ctrl+L、F)" - -#: ../src/client/application/geary-controller.vala:496 -msgid "Empty" -msgstr "淨空" - -#: ../src/client/application/geary-controller.vala:497 -msgid "Empty Spam or Trash folders" -msgstr "淨空垃圾信或垃圾桶資料夾" - -#: ../src/client/application/geary-controller.vala:501 -msgid "Empty _Spam…" -msgstr "淨空垃圾信(_S)…" - -#: ../src/client/application/geary-controller.vala:505 -msgid "Empty _Trash…" -msgstr "淨空垃圾桶(_T)…" - -#. No callback is connected, since we bind the toggle button to the search bar visibility -#: ../src/client/application/geary-controller.vala:538 -msgid "Toggle search bar" -msgstr "開關搜尋列" - -#: ../src/client/application/geary-controller.vala:752 -msgid "Unable to store server trust exception" -msgstr "無法儲存伺服器信任例外" - -#: ../src/client/application/geary-controller.vala:989 -msgid "Your settings are insecure" -msgstr "您的設定並不安全" - -#: ../src/client/application/geary-controller.vala:990 -msgid "" -"Your IMAP and/or SMTP settings do not specify SSL or TLS. This means your " -"username and password could be read by another person on the network. Are " -"you sure you want to do this?" -msgstr "" -"您的 IMAP 與/或 SMTP 設定中沒有指定 SSL 或 TLS。這代表您的使用者名稱與密碼可" -"能被網路上的其他人讀取。您確定要這麼做?" - -#: ../src/client/application/geary-controller.vala:991 -msgid "Co_ntinue" -msgstr "繼續(_N)" - -#. / Displayed in the space-limited status bar when a message fails to be sent due to error. -#: ../src/client/application/geary-controller.vala:1069 -#: ../src/client/components/status-bar.vala:29 -msgid "Error sending email" -msgstr "寄送電子郵件時發生錯誤" - -#: ../src/client/application/geary-controller.vala:1070 -msgid "" -"Geary encountered an error sending an email. If the problem persists, " -"please manually delete the email from your Outbox folder." -msgstr "" -"Geary 在寄送電子郵件時遭遇錯誤。如果問題持續發生,請從您的寄件匣資料夾中手動" -"刪除該封電子郵件。" - -#. Displayed in the space-limited status bar when a message fails to be uploaded -#. to Sent Mail after being sent. -#: ../src/client/application/geary-controller.vala:1074 -#: ../src/client/components/status-bar.vala:33 -msgid "Error saving sent mail" -msgstr "儲存郵件時發生錯誤" - -#: ../src/client/application/geary-controller.vala:1075 -msgid "" -"Geary encountered an error saving a sent message to Sent Mail. The message " -"will stay in your Outbox folder until you delete it." -msgstr "" -"Geary 將寄送的訊息儲存至已寄送郵件時遭遇錯誤。這封訊息會留在您的寄件匣資料夾" -"中,直到您刪除該封電子郵件為止。" - -#: ../src/client/application/geary-controller.vala:1144 -msgid "Labels" -msgstr "標籤" - -#. give the user two options: reset the Account local store, or exit Geary. A third -#. could be done to leave the Account in an unopened state, but we don't currently -#. have provisions for that. -#: ../src/client/application/geary-controller.vala:1156 +#: src/client/application/application-controller.vala:1222 #, c-format msgid "Unable to open the database for %s" msgstr "無法為 %s 開啟資料庫" -#: ../src/client/application/geary-controller.vala:1157 +#: src/client/application/application-controller.vala:1223 #, c-format msgid "" "There was an error opening the local mail database for this account. This is " @@ -533,20 +1088,20 @@ msgstr "" "重建資料庫會銷毀所有本地端的郵件與其相關附件。您在伺服器上的郵件則不會受影" "響。" -#: ../src/client/application/geary-controller.vala:1159 +#: src/client/application/application-controller.vala:1225 msgid "_Rebuild" msgstr "重建(_R)" -#: ../src/client/application/geary-controller.vala:1159 +#: src/client/application/application-controller.vala:1225 msgid "E_xit" msgstr "離開(_X)" -#: ../src/client/application/geary-controller.vala:1168 +#: src/client/application/application-controller.vala:1235 #, c-format -msgid "Unable to rebuild database for \"%s\"" +msgid "Unable to rebuild database for “%s”" msgstr "無法重建「%s」資料庫" -#: ../src/client/application/geary-controller.vala:1169 +#: src/client/application/application-controller.vala:1236 #, c-format msgid "" "Error during rebuild:\n" @@ -557,264 +1112,445 @@ msgstr "" "\n" "%s" -#. some other problem opening the account ... as with other flow path, can't run -#. Geary today with an account in unopened state, so have to exit -#: ../src/client/application/geary-controller.vala:1191 -#: ../src/client/application/geary-controller.vala:1201 -#: ../src/client/application/geary-controller.vala:1212 +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:1559 #, c-format -msgid "Unable to open local mailbox for %s" -msgstr "無法為 %s 開啟本地端收信匣" +msgid "Email sent to %s" +msgstr "寄送郵件給 %s" -#: ../src/client/application/geary-controller.vala:1192 +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2642 #, c-format -msgid "" -"There was an error opening the local mail database for this account. This is " -"possibly due to a file permissions problem.\n" -"\n" -"Please check that you have read/write permissions for all files in this " -"directory:\n" -"\n" -"%s" -msgstr "" -"開啟此帳號的本地端郵件資料庫時發生錯誤。這可能是因為檔案權限設定有問題所造" -"成。\n" -"\n" -"請檢查您是否擁有此目錄中所有檔案的讀/寫權:\n" -"\n" -"%s" +msgid "Email to %s queued for delivery" +msgstr "寄給 %s 的郵件已加入寄送佇列" -#: ../src/client/application/geary-controller.vala:1202 -msgid "" -"The version number of the local mail database is formatted for a newer " -"version of Geary. Unfortunately, the database cannot be \"rolled back\" to " -"work with this version of Geary.\n" -"\n" -"Please install the latest version of Geary and try again." -msgstr "" -"本地端郵件資料庫的版本號格式為新版 Geary 所採用。不幸的是,該版本的 Geary 無" -"法「回溯」處理資料庫。\n" -"\n" -"請安裝最新版的 Geary 並重試。" - -#: ../src/client/application/geary-controller.vala:1213 -msgid "" -"There was an error opening the local account. This is probably due to " -"connectivity issues.\n" -"\n" -"Please check your network connection and restart Geary." -msgstr "" -"開啟本地端帳號時發生錯誤。這可能因為連線活動發生問題。\n" -"\n" -"請檢查您的網路連線,並重新啟動 Geary。" - -#: ../src/client/application/geary-controller.vala:1721 +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2706 #, c-format -msgid "About %s" -msgstr "關於 %s" +msgid "Email to %s saved" +msgstr "已儲存寄給 %s 的郵件" -#. / Translators: add your name and email address to receive credit in the About dialog -#. / For example: Yamada Taro -#: ../src/client/application/geary-controller.vala:1724 -msgid "translator-credits" -msgstr "Cheng-Chia Tseng , 2012-2015." +#. / Translators: A label for an in-app notification. +#: src/client/application/application-controller.vala:2721 +#: src/client/application/application-controller.vala:2779 +msgid "Composer could not be restored" +msgstr "無法復原編撰器" -#: ../src/client/application/geary-controller.vala:1990 -msgid "Undo move (Ctrl+Z)" -msgstr "取消移動 (Ctrl+Z)" - -#: ../src/client/application/geary-controller.vala:2000 +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2764 #, c-format -msgid "Are you sure you want to open \"%s\"?" -msgstr "您確定您想要開啟「%s」嗎?" +msgid "Email to %s discarded" +msgstr "已丢棄寄給 %s 的郵件" -#: ../src/client/application/geary-controller.vala:2001 +#. / Translators: Main window title, first string +#. / substitution being the currently selected folder name, +#. / the second being the selected account name. +#: src/client/application/application-main-window.vala:560 +#, c-format +msgid "%s — %s" +msgstr "%s — %s" + +#: src/client/application/application-main-window.vala:967 +msgid "Labels" +msgstr "標籤" + +#. / Translators: Primary text for a confirmation dialog +#: src/client/application/application-main-window.vala:1306 +msgid "Do you want to permanently delete this conversation?" +msgid_plural "Do you want to permanently delete these conversations?" +msgstr[0] "您是否想永久刪除這些對話?" + +#: src/client/application/application-main-window.vala:1311 +#: src/client/application/application-main-window.vala:1326 +msgid "Delete" +msgstr "刪除" + +#. / Translators: Primary text for a confirmation dialog +#: src/client/application/application-main-window.vala:1321 +msgid "Do you want to permanently delete this message?" +msgid_plural "Do you want to permanently delete these messages?" +msgstr[0] "您是否想永久刪除這些訊息?" + +#: src/client/application/application-main-window.vala:1334 +#, c-format +msgid "Empty all email from your %s folder?" +msgstr "是否要從您的 %s 資料夾中淨空所有的電子郵件?" + +#: src/client/application/application-main-window.vala:1337 +msgid "This removes the email from Geary and your email server." +msgstr "這會從 Geary 與您的電子郵件伺服器移除電子郵件。" + +#: src/client/application/application-main-window.vala:1338 +msgid "This cannot be undone." +msgstr "這個動作無法復原。" + +#: src/client/application/application-main-window.vala:1339 +#, c-format +msgid "Empty %s" +msgstr "淨空 %s" + +#: src/client/application/application-main-window.vala:1669 +#, c-format +msgid "%s (%d)" +msgstr "%s (%d)" + +#. Translators: The first argument will be a +#. description of the document type, the second will +#. be a human-friendly size string. For example: +#. Document (100.9MB) +#. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" +#: src/client/components/components-attachment-pane.vala:107 +#: src/client/composer/composer-widget.vala:1834 +#, c-format +msgid "%s (%s)" +msgstr "%s (%s)" + +#: src/client/components/components-attachment-pane.vala:379 +msgid "Are you sure you want to open these attachments?" +msgstr "您確定您想要打開這些附件嗎?" + +#: src/client/components/components-attachment-pane.vala:380 msgid "" "Attachments may cause damage to your system if opened. Only open files from " "trusted sources." msgstr "開啟附件可能有機會損害您的系統。請只開啟源自受信任來源的檔案。" -#: ../src/client/application/geary-controller.vala:2002 -msgid "Don't _ask me again" +#: src/client/components/components-attachment-pane.vala:381 +msgid "Don’t _ask me again" msgstr "之後不要再問我(_A)" -#: ../src/client/application/geary-controller.vala:2020 -#, c-format -msgid "A file named \"%s\" already exists. Do you want to replace it?" -msgstr "已經存在檔案名稱「%s」。您想要替換它嗎?" +#: src/client/components/components-inspector.vala:72 +msgid "Inspector" +msgstr "檢閱器" -#: ../src/client/application/geary-controller.vala:2022 -#, c-format +#. / Translators: Title for Inspector logs pane +#. / Translators: Title for problem report dialog logs pane +#: src/client/components/components-inspector.vala:87 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:102 +msgid "Logs" +msgstr "紀錄檔" + +#. / Translators: Title for Inspector system system information pane +#. / Translators: Title for problem report system information +#. / pane +#: src/client/components/components-inspector.vala:91 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:105 +msgid "System" +msgstr "系統" + +#. Button label for saving problem report information +#: src/client/components/components-inspector.vala:208 +#: src/client/components/components-inspector.vala:211 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:221 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:224 +#: ui/problem-details-dialog.ui:42 +msgid "Save As" +msgstr "儲存為" + +#: src/client/components/components-inspector.vala:212 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:225 +#: ui/accounts_editor_servers_pane.ui:17 +msgid "Cancel" +msgstr "取消" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:43 +msgid "_Automatically select next message" +msgstr "自動選取下篇訊息(_A)" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:53 +msgid "_Display conversation preview" +msgstr "顯示對話預覽(_D)" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:63 +msgid "Use _three pane view" +msgstr "使用三欄檢視(_T)" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:73 +msgid "Use _single key email shortcuts" +msgstr "使用單個按鍵作為郵件快捷鍵(_S)" + +#: src/client/components/components-preferences-window.vala:75 msgid "" -"The file already exists in \"%s\". Replacing it will overwrite its contents." -msgstr "「%s」中已經存在該檔案。替換它將覆寫其內容。" +"Enable keyboard shortcuts for email actions that do not require pressing " +"" +msgstr "允許不需要按下 的鍵盤快捷鍵" -#: ../src/client/application/geary-controller.vala:2025 -msgid "_Replace" -msgstr "替換(_R)" +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:86 +msgid "_Watch for new mail when closed" +msgstr "關閉後仍然監視是否有新的郵件(_W)" -#. Find out what to do with the inline composers. -#. TODO: Remove this in favor of automatically saving drafts -#: ../src/client/application/geary-controller.vala:2323 -msgid "Close open draft messages?" -msgstr "關閉開啟的草稿訊息?" +#. / Translators: Preferences tooltip +#: src/client/components/components-preferences-window.vala:90 +msgid "Geary will keep running after all windows are closed" +msgstr "Geary 在所有視窗關閉後仍會保持運作" -#: ../src/client/application/geary-controller.vala:2453 -#, c-format -msgid "Empty all email from your %s folder?" -msgstr "是否要從您的 %s 資料夾中淨空所有的電子郵件?" - -#: ../src/client/application/geary-controller.vala:2454 -msgid "This removes the email from Geary and your email server." -msgstr "這會從 Geary 與您的電子郵件伺服器移除電子郵件。" - -#: ../src/client/application/geary-controller.vala:2455 -msgid "This cannot be undone." -msgstr "這個動作無法復原。" - -#: ../src/client/application/geary-controller.vala:2456 -#, c-format -msgid "Empty %s" -msgstr "淨空 %s" - -#: ../src/client/application/geary-controller.vala:2473 -#, c-format -msgid "Error emptying %s" -msgstr "淨空 %s 時發生錯誤" - -#: ../src/client/application/geary-controller.vala:2503 -msgid "Do you want to permanently delete this message?" -msgid_plural "Do you want to permanently delete these messages?" -msgstr[0] "您是否想永久刪除這些訊息?" - -#: ../src/client/application/geary-controller.vala:2505 -msgid "Delete" -msgstr "刪除" - -#: ../src/client/application/geary-controller.vala:2536 -msgid "Undo archive (Ctrl+Z)" -msgstr "取消封存 (Ctrl+Z)" - -#: ../src/client/application/geary-controller.vala:2551 -msgid "Undo trash (Ctrl+Z)" -msgstr "取消丟到垃圾桶 (Ctrl+Z)" - -#: ../src/client/application/geary-controller.vala:2604 -msgid "Undo (Ctrl+Z)" -msgstr "取消 (Ctrl+Z)" - -#: ../src/client/components/conversation-find-bar.vala:214 -#, c-format -msgid "%i match" -msgid_plural "%i matches" -msgstr[0] "%i 項符合結果" - -#: ../src/client/components/conversation-find-bar.vala:216 -#, c-format -msgid "%i match (wrapped)" -msgid_plural "%i matches (wrapped)" -msgstr[0] "%i 項符合結果 (前後循環)" - -#: ../src/client/components/conversation-find-bar.vala:218 -msgid "not found" -msgstr "找不到" - -#: ../src/client/components/main-window.vala:428 -#, c-format -msgid "%s (%d)" -msgstr "%s (%d)" - -#: ../src/client/components/search-bar.vala:10 -#: ../src/client/folder-list/folder-list-search-branch.vala:38 -#: ../src/engine/api/geary-special-folder-type.vala:51 +#. / Translators: Search entry placeholder text +#: src/client/components/components-search-bar.vala:12 +#: src/client/folder-list/folder-list-search-branch.vala:53 +#: src/engine/api/geary-special-folder-type.vala:51 msgid "Search" msgstr "搜尋" -#. Search entry. -#: ../src/client/components/search-bar.vala:25 -msgid "Search all mail in account for keywords (Ctrl+S)" -msgstr "以關鍵字搜尋帳號中的所有郵件 (Ctrl+S)" +#. / Translators: Search entry tooltip +#: src/client/components/components-search-bar.vala:32 +msgid "Search all mail in account for keywords" +msgstr "以關鍵字搜尋帳號中的所有郵件" -#: ../src/client/components/search-bar.vala:118 -#, c-format -msgid "Indexing %s account" -msgstr "正為 %s 帳號製作索引" - -#: ../src/client/components/search-bar.vala:129 -#: ../src/client/folder-list/folder-list-search-branch.vala:39 +#. / Translators: Search entry placeholder, string +#. / replacement is the name of an account +#: src/client/components/components-search-bar.vala:81 +#: src/client/folder-list/folder-list-search-branch.vala:54 #, c-format msgid "Search %s account" msgstr "搜尋 %s 帳號" -#. / Displayed in the space-limited status bar while a message is in the process of being sent. -#: ../src/client/components/status-bar.vala:26 -msgid "Sending..." -msgstr "正寄送中..." +#. Translators: Tooltip used when an entry requires a valid +#. email address to be entered, but one is not provided. +#: src/client/components/components-validator.vala:390 +msgid "An email address is required" +msgstr "需要提供電子郵件位址" -#: ../src/client/components/stock.vala:18 -#: ../ui/account_cannot_remove.glade.h:3 +#. Translators: Tooltip used when an entry requires a valid +#. email address to be entered, but the address is invalid. +#: src/client/components/components-validator.vala:394 +msgid "Not a valid email address" +msgstr "無效的電子郵件位址" + +#. Translators: Tooltip used when an entry requires a valid, +#. resolvable server name to be entered, but one is not +#. provided. +#: src/client/components/components-validator.vala:440 +msgid "A server name is required" +msgstr "需要提供伺服器名稱" + +#. Translators: Tooltip used when an entry requires a valid +#. server name to be entered, but it was unable to be +#. looked-up in the DNS. +#: src/client/components/components-validator.vala:445 +msgid "Could not look up server name" +msgstr "無法查詢伺服器名稱" + +#: src/client/components/main-toolbar.vala:116 +msgid "Mark conversation" +msgid_plural "Mark conversations" +msgstr[0] "標記對話" + +#: src/client/components/main-toolbar.vala:121 +msgid "Add label to conversation" +msgid_plural "Add label to conversations" +msgstr[0] "貼加標籤到對話" + +#: src/client/components/main-toolbar.vala:126 +msgid "Move conversation" +msgid_plural "Move conversations" +msgstr[0] "更多對話" + +#: src/client/components/main-toolbar.vala:131 +msgid "Archive conversation" +msgid_plural "Archive conversations" +msgstr[0] "封存對話" + +#: src/client/components/main-toolbar.vala:142 +msgid "Move conversation to Trash" +msgid_plural "Move conversations to Trash" +msgstr[0] "將對話丢進垃圾桶" + +#: src/client/components/main-toolbar.vala:152 +msgid "Delete conversation" +msgid_plural "Delete conversations" +msgstr[0] "刪除對話" + +#. Translators: Info bar title for a generic account +#. problem. +#: src/client/components/main-window-info-bar.vala:44 +msgid "Account problem" +msgstr "帳號問題" + +#. Translators: Info bar sub-title for a generic account +#. problem. String substitution is the account name. +#: src/client/components/main-window-info-bar.vala:48 +#, c-format +msgid "Geary has encountered a problem with %s." +msgstr "Geary 遇到了一個與帳號 %s 相關的問題。" + +#. Translators: Info bar sub-title for a generic +#. account problem. String substitution is the +#. account name. +#: src/client/components/main-window-info-bar.vala:61 +#, c-format +msgid "Geary encountered a problem checking mail for %s." +msgstr "Geary 在替 %s 檢查郵件時遇到了問題。" + +#. Translators: Tooltip label for Retry button +#: src/client/components/main-window-info-bar.vala:65 +msgid "Try reconnecting" +msgstr "嘗試再次連線" + +#. Translators: Info bar title for an outgoing +#. account problem. String substitution is the +#. account name +#: src/client/components/main-window-info-bar.vala:73 +#, c-format +msgid "Geary encountered a problem sending email for %s." +msgstr "Geary 在替 %s 寄送郵件時遇到了問題。" + +#. Translators: Tooltip label for Retry button +#: src/client/components/main-window-info-bar.vala:77 +msgid "Retry sending queued messages" +msgstr "再次嘗試寄送佇列裡的郵件" + +#. Translators: Info bar title for a generic application +#. problem. +#: src/client/components/main-window-info-bar.vala:84 +msgid "Geary has encountered a problem" +msgstr "Geary 遇到了一個問題" + +#. Translators: Info bar sub-title for a generic +#. application problem. +#: src/client/components/main-window-info-bar.vala:88 +msgid "Please report the details if it persists." +msgstr "如果問題一直出現,請告訴我們具體的情形。" + +#. Translators: Button label for viewing technical details +#. for a problem report. +#: src/client/components/main-window-info-bar.vala:99 +msgid "_Details" +msgstr "細節(_D)" + +#. Translators: Tooltip for viewing technical details for +#. a problem report. +#: src/client/components/main-window-info-bar.vala:102 +msgid "View technical details about the error" +msgstr "檢閱錯誤的詳細情形" + +#. Translators: Button label for retrying a server +#. connection +#: src/client/components/main-window-info-bar.vala:108 +msgid "_Retry" +msgstr "再試(_R)" + +#. / Displayed in the space-limited status bar while a message is in the process of being sent. +#: src/client/components/status-bar.vala:26 +msgid "Sending…" +msgstr "正寄送中…" + +#. / Displayed in the space-limited status bar when a message fails to be sent due to error. +#: src/client/components/status-bar.vala:29 +msgid "Error sending email" +msgstr "寄送電子郵件時發生錯誤" + +#. Displayed in the space-limited status bar when a message fails to be uploaded +#. to Sent Mail after being sent. +#: src/client/components/status-bar.vala:33 +msgid "Error saving sent mail" +msgstr "儲存郵件時發生錯誤" + +#: src/client/components/stock.vala:18 msgid "_OK" msgstr "確定(_O)" -#: ../src/client/components/stock.vala:19 -#: ../ui/edit_alternate_emails.glade.h:3 ../ui/password-dialog.glade.h:5 -#: ../ui/remove_confirm.glade.h:5 +#: src/client/components/stock.vala:19 ui/password-dialog.glade:196 msgid "_Cancel" msgstr "取消(_C)" -#: ../src/client/components/stock.vala:23 +#: src/client/components/stock.vala:21 +msgid "_About" +msgstr "關於(_A)" + +#: src/client/components/stock.vala:22 +msgid "_Add" +msgstr "加入(_A)" + +#: src/client/components/stock.vala:23 msgid "_Close" msgstr "關閉(_C)" -#: ../src/client/components/stock.vala:24 +#: src/client/components/stock.vala:24 msgid "_Discard" msgstr "丟棄(_D)" -#: ../src/client/components/stock.vala:26 +#: src/client/components/stock.vala:25 ui/main-toolbar-menus.ui:52 +msgid "_Help" +msgstr "求助(_H)" + +#: src/client/components/stock.vala:26 ui/components-attachment-pane-menus.ui:7 msgid "_Open" msgstr "開啟(_O)" -#: ../src/client/components/stock.vala:28 -msgid "_Print..." -msgstr "列印(_P)..." +#: src/client/components/stock.vala:27 ui/main-toolbar-menus.ui:42 +msgid "_Preferences" +msgstr "偏好設定(_P)" -#: ../src/client/components/stock.vala:30 ../ui/remove_confirm.glade.h:6 +#. Translators: Menu item to print a single, specific message +#: src/client/components/stock.vala:28 ui/conversation-email-menus.ui:64 +msgid "_Print…" +msgstr "列印(_P)…" + +#: src/client/components/stock.vala:29 +msgid "_Quit" +msgstr "退出(_Q)" + +#: src/client/components/stock.vala:30 msgid "_Remove" msgstr "移除(_R)" -#. Select all. -#: ../src/client/components/stock.vala:32 -#: ../src/client/conversation-viewer/conversation-viewer.vala:1324 -msgid "Select _All" -msgstr "選取全部(_A)" +#: src/client/components/stock.vala:31 +#: ui/components-attachment-pane-menus.ui:11 +msgid "_Save" +msgstr "儲存(_S)" -#: ../src/client/components/stock.vala:33 +#: src/client/components/stock.vala:32 msgid "_Keep" msgstr "保留(_K)" -#: ../src/client/composer/composer-widget.vala:73 -msgid "Saved" -msgstr "已儲存" +#: src/client/composer/composer-link-popover.vala:139 +msgid "Link URL is not correctly formatted, e.g. http://example.com" +msgstr "連結網址格式不正確,示例 http://example.com" -#: ../src/client/composer/composer-widget.vala:74 -msgid "Saving" -msgstr "儲存中" +#: src/client/composer/composer-link-popover.vala:146 +msgid "Invalid link URL" +msgstr "無效的連結網址" -#: ../src/client/composer/composer-widget.vala:75 -msgid "Error saving" -msgstr "儲存時發生錯誤" +#: src/client/composer/composer-link-popover.vala:146 +msgid "Invalid email address" +msgstr "無效的電子郵件位址" -#: ../src/client/composer/composer-widget.vala:76 -msgid "Press Backspace to delete quote" -msgstr "按下 Backspace 刪除引言" - -#: ../src/client/composer/composer-widget.vala:77 +#. / Translators: Title for an empty composer window +#: src/client/composer/composer-widget.vala:30 msgid "New Message" msgstr "新訊息" -#. A list of keywords, separated by pipe ("|") characters, that suggest an attachment; since -#. this is full-word checking, include all variants of each word. No spaces are allowed. -#: ../src/client/composer/composer-widget.vala:138 +#: src/client/composer/composer-widget.vala:217 +msgid "Saved" +msgstr "已儲存" + +#: src/client/composer/composer-widget.vala:218 +msgid "Saving" +msgstr "儲存中" + +#: src/client/composer/composer-widget.vala:219 +msgid "Error saving" +msgstr "儲存時發生錯誤" + +#: src/client/composer/composer-widget.vala:220 +msgid "Press Backspace to delete quote" +msgstr "按下 Backspace 刪除引言" + +#. Translators: This is list of keywords, separated by pipe ("|") +#. characters, that suggest an attachment; since this is full-word +#. checking, include all variants of each word. No spaces are +#. allowed. The words will be converted to lower case based on +#. locale and English versions included automatically. +#: src/client/composer/composer-widget.vala:236 msgid "" "attach|attaching|attaches|attachment|attachments|attached|enclose|enclosed|" "enclosing|encloses|enclosure|enclosures" @@ -822,362 +1558,370 @@ msgstr "" "attach|attaching|attaches|attachment|attachments|attached|enclose|enclosed|" "enclosing|encloses|enclosure|enclosures|附件|附上|附加" -#: ../src/client/composer/composer-widget.vala:1102 -#: ../src/client/composer/composer-widget.vala:1106 -msgid "Do you want to discard this message?" -msgstr "您是否想丟棄此封訊息?" +#. Translators: This dialog text is displayed to the +#. user when closing a composer where the options are +#. Keep, Discard or Cancel. +#: src/client/composer/composer-widget.vala:843 +msgid "Do you want to keep or discard this draft message?" +msgstr "您想保留還是丟棄此份草稿?" -#: ../src/client/composer/composer-widget.vala:1262 +#. Translators: This dialog text is displayed to the +#. user when closing a composer where the options are +#. only Discard or Cancel. +#: src/client/composer/composer-widget.vala:869 +msgid "Do you want to discard this draft message?" +msgstr "您是否想丟棄此份草稿?" + +#: src/client/composer/composer-widget.vala:1503 msgid "Send message with an empty subject and body?" msgstr "是否要寄送主旨與內文皆空白的訊息?" -#: ../src/client/composer/composer-widget.vala:1264 +#: src/client/composer/composer-widget.vala:1505 msgid "Send message with an empty subject?" msgstr "是否要寄送主旨空白的訊息?" -#: ../src/client/composer/composer-widget.vala:1266 +#: src/client/composer/composer-widget.vala:1507 msgid "Send message with an empty body?" msgstr "是否要寄送沒有內文的訊息?" -#: ../src/client/composer/composer-widget.vala:1268 +#: src/client/composer/composer-widget.vala:1516 msgid "Send message without an attachment?" msgstr "是否要寄送沒有附件的訊息?" -#: ../src/client/composer/composer-widget.vala:1530 +#: src/client/composer/composer-widget.vala:1820 +#, c-format +msgid "“%s” already attached for delivery." +msgstr "「%s」已附上可供郵遞。" + +#: src/client/composer/composer-widget.vala:1856 +#: src/client/composer/composer-widget.vala:1906 +#, c-format +msgid "“%s” is an empty file." +msgstr "「%s」是空白檔案。" + +#: src/client/composer/composer-widget.vala:1894 +#, c-format +msgid "“%s” could not be found." +msgstr "「%s」無法找到。" + +#: src/client/composer/composer-widget.vala:1900 +#, c-format +msgid "“%s” is a folder." +msgstr "「%s」是資料夾。" + +#: src/client/composer/composer-widget.vala:1919 +#, c-format +msgid "“%s” could not be opened for reading." +msgstr "「%s」無法開啟以供讀取。" + +#: src/client/composer/composer-widget.vala:1927 msgid "Cannot add attachment" msgstr "無法加入附件" -#: ../src/client/composer/composer-widget.vala:1541 -#, c-format -msgid "\"%s\" could not be found." -msgstr "「%s」無法找到。" - -#: ../src/client/composer/composer-widget.vala:1548 -#, c-format -msgid "\"%s\" is a folder." -msgstr "「%s」是資料夾。" - -#: ../src/client/composer/composer-widget.vala:1555 -#, c-format -msgid "\"%s\" is an empty file." -msgstr "「%s」是空白檔案。" - -#: ../src/client/composer/composer-widget.vala:1569 -#, c-format -msgid "\"%s\" could not be opened for reading." -msgstr "「%s」無法開啟以供讀取。" - -#: ../src/client/composer/composer-widget.vala:1576 -#, c-format -msgid "\"%s\" already attached for delivery." -msgstr "「%s」已附上可供郵遞。" - -#. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" -#: ../src/client/composer/composer-widget.vala:1585 -#, c-format -msgid "%s (%s)" -msgstr "%s (%s)" - -#: ../src/client/composer/composer-widget.vala:1645 -msgid "To: " +#. Translators: Human-readable version of the RFC 822 To header +#: src/client/composer/composer-widget.vala:1984 +#: src/client/conversation-viewer/conversation-email.vala:559 +#: src/client/util/util-email.vala:235 ui/conversation-message.ui:312 +msgid "To:" msgstr "收件者:" -#: ../src/client/composer/composer-widget.vala:1648 -msgid "Cc: " +#. Translators: Human-readable version of the RFC 822 CC header +#: src/client/composer/composer-widget.vala:1990 +#: src/client/conversation-viewer/conversation-email.vala:564 +#: src/client/util/util-email.vala:240 ui/conversation-message.ui:357 +msgid "Cc:" msgstr "副本:" -#: ../src/client/composer/composer-widget.vala:1651 -msgid "Bcc: " +#. Translators: Human-readable version of the RFC 822 BCC header +#: src/client/composer/composer-widget.vala:1996 +#: src/client/conversation-viewer/conversation-email.vala:569 +#: ui/conversation-message.ui:402 +msgid "Bcc:" msgstr "密件副本:" -#: ../src/client/composer/composer-widget.vala:1654 +#. Translators: Human-readable version of the RFC 822 Reply-To header +#: src/client/composer/composer-widget.vala:2002 msgid "Reply-To: " msgstr "回覆:" -#: ../src/client/composer/composer-widget.vala:1887 +#: src/client/composer/composer-widget.vala:2254 msgid "Select Color" msgstr "選取色彩" -#. Displayed in the From dropdown to indicate an "alternate email address" -#. for an account. The first printf argument will be the alternate email -#. address, and the second will be the account's primary email address. -#: ../src/client/composer/composer-widget.vala:2322 +#. Displayed in the From dropdown to indicate an +#. "alternate email address" for an account. The first +#. printf argument will be the alternate email address, +#. and the second will be the account's primary email +#. address. +#: src/client/composer/composer-widget.vala:2440 #, c-format msgid "%1$s via %2$s" msgstr "%1$s 經由 %2$s" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: ../src/client/composer/composer-widget.vala:2364 +#: src/client/composer/composer-widget.vala:2496 msgid "_From:" msgstr "寄件者(_F):" -#: ../src/client/conversation-list/formatted-conversation-data.vala:11 +#. Translators: This is the name of the file chooser filter +#. when inserting an image in the composer. +#: src/client/composer/composer-widget.vala:2801 +msgid "Images" +msgstr "影像" + +#: src/client/composer/spell-check-popover.vala:125 +msgid "Remove this language from the preferred list" +msgstr "從喜好列表上移除此語言" + +#: src/client/composer/spell-check-popover.vala:129 +msgid "Add this language to the preferred list" +msgstr "新增此語言到喜好列表" + +#: src/client/composer/spell-check-popover.vala:225 +msgid "Search for more languages" +msgstr "搜尋更多語言" + +#. / Translators: Context menu item +#: src/client/conversation-list/conversation-list-view.vala:335 +msgid "Move conversation to _Trash" +msgid_plural "Move conversations to _Trash" +msgstr[0] "把對話丢進垃圾桶(_T)" + +#. / Translators: Context menu item +#: src/client/conversation-list/conversation-list-view.vala:347 +msgid "_Delete conversation" +msgid_plural "_Delete conversations" +msgstr[0] "刪除對話(_D)" + +#: src/client/conversation-list/conversation-list-view.vala:360 +#: ui/main-toolbar-menus.ui:5 +msgid "Mark as _Read" +msgstr "標記為已讀(_R)" + +#: src/client/conversation-list/conversation-list-view.vala:368 +#: ui/main-toolbar-menus.ui:9 +msgid "Mark as _Unread" +msgstr "標記為未讀(_U)" + +#: src/client/conversation-list/conversation-list-view.vala:376 +#: ui/main-toolbar-menus.ui:17 +msgid "U_nstar" +msgstr "取消標星(_N)" + +#: src/client/conversation-list/conversation-list-view.vala:383 +#: ui/main-toolbar-menus.ui:13 +msgid "_Star" +msgstr "標星(_S)" + +#. Translators: Menu item to reply to a specific message. +#: src/client/conversation-list/conversation-list-view.vala:392 +#: ui/conversation-email-menus.ui:9 +msgid "_Reply" +msgstr "回覆(_R)" + +#: src/client/conversation-list/conversation-list-view.vala:398 +msgid "R_eply All" +msgstr "回覆所有人(_E)" + +#. Translators: Menu item to forward a specific message. +#: src/client/conversation-list/conversation-list-view.vala:404 +#: ui/conversation-email-menus.ui:21 +msgid "_Forward" +msgstr "轉寄(_F)" + +#: src/client/conversation-list/formatted-conversation-data.vala:18 msgid "Me" msgstr "我" -#: ../src/client/conversation-viewer/conversation-viewer.vala:413 -msgid "No conversations selected." -msgstr "未選取對話。" - -#: ../src/client/conversation-viewer/conversation-viewer.vala:415 -#, c-format -msgid "%u conversation selected." -msgid_plural "%u conversations selected." -msgstr[0] "%u 則對話已選取。" - -#: ../src/client/conversation-viewer/conversation-viewer.vala:444 -msgid "No search results found." -msgstr "找不到符合的搜尋結果。" - -#: ../src/client/conversation-viewer/conversation-viewer.vala:446 -msgid "No conversations in folder." -msgstr "資料夾中沒有對話。" - -#: ../src/client/conversation-viewer/conversation-viewer.vala:708 -msgid "This message contains remote images." -msgstr "此訊息包含遠端影像。" - -#: ../src/client/conversation-viewer/conversation-viewer.vala:708 -msgid "Show Images" -msgstr "顯示影像" - -#: ../src/client/conversation-viewer/conversation-viewer.vala:709 -msgid "Always Show From Sender" -msgstr "總是顯示寄件者" - -#: ../src/client/conversation-viewer/conversation-viewer.vala:733 -msgid "Edit Draft" -msgstr "編輯草稿" - -#: ../src/client/conversation-viewer/conversation-viewer.vala:809 +#. Translators: Human-readable version of the RFC 822 From header +#: src/client/conversation-viewer/conversation-email.vala:554 +#: src/client/util/util-email.vala:226 msgid "From:" msgstr "寄件者:" -#: ../src/client/conversation-viewer/conversation-viewer.vala:812 -msgid "To:" -msgstr "收件者:" - -#: ../src/client/conversation-viewer/conversation-viewer.vala:815 -msgid "Cc:" -msgstr "副本:" - -#: ../src/client/conversation-viewer/conversation-viewer.vala:818 -msgid "Bcc:" -msgstr "密件副本:" - -#: ../src/client/conversation-viewer/conversation-viewer.vala:821 -msgid "Subject:" -msgstr "主旨:" - -#: ../src/client/conversation-viewer/conversation-viewer.vala:824 +#. Translators: Human-readable version of the RFC 822 Date header +#: src/client/conversation-viewer/conversation-email.vala:574 +#: src/client/util/util-email.vala:231 msgid "Date:" msgstr "日期:" -#: ../src/client/conversation-viewer/conversation-viewer.vala:1139 -#, c-format -msgid "%u read message" -msgid_plural "%u read messages" -msgstr[0] "%u 封已讀訊息" +#. Translators: Human-readable version of the RFC 822 Subject header +#: src/client/conversation-viewer/conversation-email.vala:584 +#: src/client/util/util-email.vala:229 +msgid "Subject:" +msgstr "主旨:" -#: ../src/client/conversation-viewer/conversation-viewer.vala:1271 -#, c-format -msgid "This message was sent successfully, but could not be saved to %s." -msgstr "這封訊息已成功寄送,但無法到 %s。" +#: src/client/conversation-viewer/conversation-message.vala:128 +msgid "This email address may have been forged" +msgstr "這個電子郵件位址可能是僞冒的" -#. Add a menu item for copying the current selection. -#: ../src/client/conversation-viewer/conversation-viewer.vala:1297 -#: ../ui/composer.glade.h:4 -msgid "_Copy" -msgstr "複製(_C)" +#. Compact headers. These are partially done here and partially +#. in load_contacts. +#. Translators: This is displayed in place of the from address +#. when the message has no from address. +#: src/client/conversation-viewer/conversation-message.vala:439 +msgid "No sender" +msgstr "没有寄件者" -#. Add a menu item for copying the address. -#: ../src/client/conversation-viewer/conversation-viewer.vala:1305 -msgid "Copy _Email Address" -msgstr "複製電子郵件位址(_E)" +#. Translators: This separates multiple 'from' +#. addresses in the compact header for a message. +#: src/client/conversation-viewer/conversation-message.vala:831 +msgid ", " +msgstr "," -#. Add a menu item for copying the link. -#: ../src/client/conversation-viewer/conversation-viewer.vala:1310 -#: ../ui/composer.glade.h:17 -msgid "Copy _Link" -msgstr "複製連結(_L)" +#. Translators: This string is used as the HTML IMG ALT +#. attribute value when displaying an inline image in an email +#. that did not specify a file name. E.g. ImageCannot remove account " -msgstr "無法移除帳號 " - -#: ../ui/account_cannot_remove.glade.h:2 -msgid "" -"A composer window associated with this account is currently open. Send or " -"discard the message and try again." -msgstr "與此帳號相關連的編撰器目前已開啟。寄送訊息或放棄訊息,接著重試一次。" - -#: ../ui/account_list.glade.h:1 -msgid "Add account" +#: ui/accounts_editor_add_pane.ui:8 ui/accounts_editor_list_pane.ui:126 +msgid "Add an account" msgstr "加入帳號" -#: ../ui/account_list.glade.h:2 -msgid "Edit account" +#: ui/accounts_editor_add_pane.ui:53 +msgid "Create" +msgstr "建立" + +#: ui/accounts_editor_add_pane.ui:130 ui/accounts_editor_servers_pane.ui:125 +msgid "Receiving" +msgstr "正收受中" + +#: ui/accounts_editor_add_pane.ui:178 ui/accounts_editor_servers_pane.ui:165 +msgid "Sending" +msgstr "正寄送中" + +#: ui/accounts_editor_edit_pane.ui:8 +msgid "Edit Account" msgstr "編輯帳號" -#: ../ui/account_list.glade.h:3 +#: ui/accounts_editor_edit_pane.ui:9 ui/accounts_editor_servers_pane.ui:9 +msgid "Account Name" +msgstr "帳號名稱" + +#: ui/accounts_editor_edit_pane.ui:124 +msgid "Email addresses" +msgstr "電子郵件位址" + +#: ui/accounts_editor_edit_pane.ui:164 +msgid "Signature" +msgstr "簽名" + +#: ui/accounts_editor_edit_pane.ui:201 +msgid "Settings" +msgstr "設定" + +#. This is a button in the account settings to show server settings. +#: ui/accounts_editor_edit_pane.ui:243 ui/accounts_editor_servers_pane.ui:8 +msgid "Server Settings" +msgstr "伺服器設定值" + +#. This is the remove account button in the account settings. +#: ui/accounts_editor_edit_pane.ui:258 ui/accounts_editor_remove_pane.ui:23 +msgid "Remove Account" +msgstr "移除帳號" + +#: ui/accounts_editor_edit_pane.ui:262 ui/accounts_editor_remove_pane.ui:27 +msgid "Remove this account from Geary" +msgstr "從 Grary 移除帳號" + +#: ui/accounts_editor_list_pane.ui:8 +msgid "Accounts" +msgstr "帳號" + +#: ui/accounts_editor_list_pane.ui:62 +msgid "To get started, select an email provider below." +msgstr "請從下列電子郵件服務商中選取一項。" + +#: ui/accounts_editor_list_pane.ui:75 +msgid "Welcome to Geary" +msgstr "歡迎使用 Geary" + +#. This title is shown to users when confirming if they want to remove an account. The string substitution is replaced with the account's name. +#: ui/accounts_editor_remove_pane.ui:73 +#, c-format +msgid "Confirm removing: %s" +msgstr "確定要移除:%s" + +#: ui/accounts_editor_remove_pane.ui:91 +msgid "" +"Removing an account will remove it from Geary and delete locally cached " +"email data from your computer, but not from your service provider." +msgstr "" +"移除一個帳戶會把它從 Geary 上移除並清除其儲存在您電腦上的資料,但您在服務供應" +"商上的資料不會受影響。" + +#: ui/accounts_editor_remove_pane.ui:122 msgid "Remove account" msgstr "移除帳號" -#: ../ui/account_spinner.glade.h:1 -msgid "Please wait while Geary validates your account." -msgstr "請稍後,Geary 正在驗明您的帳號。" +#: ui/accounts_editor_servers_pane.ui:47 +msgid "Apply" +msgstr "確定" -#: ../ui/certificate_warning_dialog.glade.h:1 +#. Infobar title when one or more accounts are offline +#: ui/application-main-window.ui:185 +msgid "Working offline" +msgstr "離線使用中" + +#. Label and tooltip for offline infobar +#: ui/application-main-window.ui:199 +msgid "" +"Your computer does not appear to be connected to the Internet.\n" +"You will not be able to send or receive email until it is re-connected." +msgstr "" +"您的電腦似乎並未連線到網際網路。\n" +"在再次連線之前您將無法寄送或收受電子郵件。" + +#. Label and tooltip for offline infobar +#: ui/application-main-window.ui:202 +msgid "You will not be able to send or receive email until re-connected." +msgstr "在再次連線之前您將無法寄送或收受電子郵件。" + +#. Button label for retrying TLS cert validation +#: ui/application-main-window.ui:249 +msgid "Check" +msgstr "檢查" + +#. Button tooltip for retrying TLS cert validation +#: ui/application-main-window.ui:253 +msgid "Check the security details for the connection" +msgstr "檢查連線的安全協定詳細資訊" + +#. Infobar title when one or more accounts have a TLS cert validation error +#: ui/application-main-window.ui:282 +msgid "Security problem" +msgstr "安全協定問題" + +#. Label and tooltip for TLS cert validation error infobar +#: ui/application-main-window.ui:296 +msgid "" +"An account has reported an untrusted server.\n" +"Please check the server configuration and try again." +msgstr "" +"有帳號回報有個未受信任的伺服器。\n" +"請檢查伺服器設定後再嘗試。" + +#. Label and tooltip for TLS cert validation error infobar +#: ui/application-main-window.ui:299 +msgid "An account has reported an untrusted server." +msgstr "有帳號回報有個未受信任的伺服器。" + +#. Button tooltip for retrying when a login error has occurred +#: ui/application-main-window.ui:350 +msgid "Retry login, you will be prompted for your password" +msgstr "再試一次登入,您將會被要求輸入密碼" + +#. Infobar title when one or more accounts have a login error +#: ui/application-main-window.ui:379 +msgid "Login problem" +msgstr "登入問題" + +#. Label and tooltip for authentication problem infobar +#: ui/application-main-window.ui:393 +msgid "" +"An account has reported an incorrect login or password.\n" +"Please check your login name and try again." +msgstr "" +"有帳號回報有不正確的登入名稱或密碼。\n" +"請檢查您的登入資訊後再嘗試。" + +#. Label and tooltip for authentication problem infobar +#: ui/application-main-window.ui:396 +msgid "An account has reported an incorrect login or password." +msgstr "有帳號回報有不正確的登入名稱或密碼。" + +#: ui/certificate_warning_dialog.glade:7 msgid "Untrusted Connection" msgstr "未受信任的連線" -#: ../ui/certificate_warning_dialog.glade.h:2 +#: ui/certificate_warning_dialog.glade:29 msgid "_Always Trust This Server" msgstr "永遠信任這臺伺服器(_A)" -#: ../ui/certificate_warning_dialog.glade.h:3 +#: ui/certificate_warning_dialog.glade:43 msgid "_Trust This Server" msgstr "信任這臺伺服器(_T)" -#: ../ui/certificate_warning_dialog.glade.h:4 -msgid "_Don't Trust This Server" +#: ui/certificate_warning_dialog.glade:57 +msgid "_Don’t Trust This Server" msgstr "不要信任這臺伺服器(_D)" -#: ../ui/composer.glade.h:1 -msgid "_Undo" -msgstr "取消動作(_U)" +#: ui/composer-headerbar.ui:23 ui/composer-headerbar.ui:107 +msgid "Detach the composer from the window" +msgstr "將編撰器從視窗卸離" -#: ../ui/composer.glade.h:2 -msgid "_Redo" -msgstr "再次動作(_R)" - -#: ../ui/composer.glade.h:3 -msgid "Cu_t" -msgstr "剪下(_T)" - -#: ../ui/composer.glade.h:5 -msgid "_Paste" -msgstr "貼上(_P)" - -#: ../ui/composer.glade.h:6 -msgid "_Left" -msgstr "左(_L)" - -#: ../ui/composer.glade.h:7 -msgid "_Right" -msgstr "右(_R)" - -#: ../ui/composer.glade.h:8 -msgid "_Center" -msgstr "置中(_C)" - -#: ../ui/composer.glade.h:9 -msgid "_Justify" -msgstr "左右對齊(_J)" - -#: ../ui/composer.glade.h:10 -msgid "Link (Ctrl+L)" -msgstr "連結 (Ctrl+L)" - -#: ../ui/composer.glade.h:11 -msgid "C_olor" -msgstr "色彩(_O)" - -#: ../ui/composer.glade.h:12 -msgid "More options" -msgstr "更多選項" - -#: ../ui/composer.glade.h:13 -msgid "Quote text (Ctrl+])" -msgstr "引用文字 (Ctrl+])" - -#: ../ui/composer.glade.h:14 -msgid "Unquote text (Ctrl+[)" -msgstr "取消文字引用 (Ctrl+[)" - -#: ../ui/composer.glade.h:15 -msgid "Remove formatting (Ctrl+Space)" -msgstr "移除格式化 (Ctrl+空白鍵)" - -#: ../ui/composer.glade.h:16 -msgctxt "Clipboard paste with rich text" -msgid "Paste _With Formatting" -msgstr "貼上格式化文字(_W)" - -#: ../ui/composer.glade.h:18 -msgid "Bold (Ctrl+B)" -msgstr "粗體 (Ctrl+B)" - -#: ../ui/composer.glade.h:19 -msgid "Italic (Ctrl+I)" -msgstr "斜體 (Ctrl+I)" - -#: ../ui/composer.glade.h:20 -msgid "Underline (Ctrl+U)" -msgstr "底線 (Ctrl+U)" - -#: ../ui/composer.glade.h:21 -msgid "Strikethrough (Ctrl+K)" -msgstr "刪劃線 (Ctrl+K)" - -#: ../ui/composer.glade.h:22 -msgid "_Rich Text" -msgstr "豐富文字(_R)" - -#: ../ui/composer.glade.h:23 -msgid "Show Extended Fields" -msgstr "顯示擴展欄位" - -#: ../ui/composer.glade.h:24 -msgctxt "Label" -msgid "Close and Save" -msgstr "關閉並儲存" - -#: ../ui/composer.glade.h:25 -msgctxt "Short Label" -msgid "Close and Save" -msgstr "關閉並儲存" - -#: ../ui/composer.glade.h:26 -msgctxt "Tooltip" -msgid "Close and Save" -msgstr "關閉並儲存" - -#: ../ui/composer.glade.h:27 -msgctxt "Label" -msgid "Close and Discard" -msgstr "關閉並捨棄" - -#: ../ui/composer.glade.h:28 -msgctxt "Short Label" -msgid "Close and Discard" -msgstr "關閉並捨棄" - -#: ../ui/composer.glade.h:29 -msgctxt "Tooltip" -msgid "Close and Discard" -msgstr "關閉並捨棄" - -#: ../ui/composer.glade.h:30 -msgid "Lar_ge" -msgstr "大型(_G)" - -#: ../ui/composer.glade.h:31 -msgid "Large" -msgstr "大型" - -#: ../ui/composer.glade.h:32 -msgid "_Medium" -msgstr "中型(_M)" - -#: ../ui/composer.glade.h:33 -msgid "Medium" -msgstr "中型" - -#: ../ui/composer.glade.h:34 -msgid "_Small" -msgstr "小型(_S)" - -#: ../ui/composer.glade.h:35 -msgid "Small" -msgstr "小型" - -#: ../ui/composer.glade.h:36 -msgid "S_ans Serif" -msgstr "無襯線(_A)" - -#: ../ui/composer.glade.h:37 -msgid "Sans Serif" -msgstr "無襯線" - -#: ../ui/composer.glade.h:38 -msgid "S_erif" -msgstr "有襯線(_E)" - -#: ../ui/composer.glade.h:39 -msgid "Serif" -msgstr "有襯線" - -#: ../ui/composer.glade.h:40 -msgid "_Fixed Width" -msgstr "等寬(_F)" - -#: ../ui/composer.glade.h:41 -msgid "Fixed Width" -msgstr "等寬" - -#: ../ui/composer.glade.h:42 -msgid "Detach" -msgstr "卸除" - -#: ../ui/composer.glade.h:43 -msgid "Detach (Ctrl+D)" -msgstr "卸除 (Ctrl+D)" - -#: ../ui/composer.glade.h:44 +#: ui/composer-headerbar.ui:135 msgid "_Send" msgstr "寄送(_S)" -#: ../ui/composer.glade.h:45 -msgid "Send" -msgstr "寄送" +#: ui/composer-headerbar.ui:162 +msgid "Discard and Close" +msgstr "丢棄並關閉" -#: ../ui/composer.glade.h:46 -msgid "Send (Ctrl+Enter)" -msgstr "寄送 (Ctrl+Enter)" +#: ui/composer-headerbar.ui:186 +msgid "Save and Close" +msgstr "儲存並關閉" -#: ../ui/composer.glade.h:47 -msgid "_Attach File" -msgstr "附加檔案(_A)" +#. Note that this button and the Update button will never be shown at the same time to the user. +#: ui/composer-link-popover.ui:42 +msgid "Insert the new link with this URL" +msgstr "插入此網頁位址作為連結" -#: ../ui/composer.glade.h:48 -msgid "Attach File" -msgstr "附加檔案" +#: ui/composer-link-popover.ui:43 +msgid "Add" +msgstr "加入" -#: ../ui/composer.glade.h:49 -msgid "_Include Original Attachments" -msgstr "包含原始附件(_I)" +#: ui/composer-link-popover.ui:47 +msgid "Link URL" +msgstr "連結網址" -#: ../ui/composer.glade.h:50 -msgid "Include Original Attachments" -msgstr "包含原始附件" +#. Note that this button and the Insert button will never be shown at the same time to the user. +#: ui/composer-link-popover.ui:61 +msgid "Update this link’s URL" +msgstr "更新此連結的網頁位址" -#: ../ui/composer.glade.h:51 -msgid "Application Menu" -msgstr "應用程式選單" +#: ui/composer-link-popover.ui:62 +msgid "Update" +msgstr "更新" -#. Address(es) e-mail is to be sent to -#: ../ui/composer.glade.h:53 -msgid "_To" -msgstr "收件者(_T)" +#: ui/composer-link-popover.ui:75 +msgid "Delete this link" +msgstr "刪除此連結" -#: ../ui/composer.glade.h:54 -msgid "_Cc" -msgstr "副本(_C)" +#: ui/composer-menus.ui:8 +msgid "_Undo" +msgstr "取消動作(_U)" -#: ../ui/composer.glade.h:55 -msgid "_Subject" -msgstr "主旨(_S)" +#: ui/composer-menus.ui:12 +msgid "_Redo" +msgstr "再次動作(_R)" -#: ../ui/composer.glade.h:56 -msgid "_Bcc" -msgstr "密件副本(_B)" +#: ui/composer-menus.ui:18 ui/composer-menus.ui:36 +msgid "Cu_t" +msgstr "剪下(_T)" -#: ../ui/composer.glade.h:57 -msgid "_Reply-To" -msgstr "回覆(_R)" +#: ui/composer-menus.ui:22 ui/composer-menus.ui:40 +#: ui/conversation-message-menus.ui:37 +msgid "_Copy" +msgstr "複製(_C)" + +#: ui/composer-menus.ui:26 ui/composer-menus.ui:44 +msgid "_Paste" +msgstr "貼上(_P)" + +#: ui/composer-menus.ui:30 +msgctxt "Clipboard paste as plain text" +msgid "Paste _Without Formatting" +msgstr "以純文字貼上(_W)" + +#: ui/composer-menus.ui:50 +msgid "Select _All" +msgstr "選取全部(_A)" + +#: ui/composer-menus.ui:57 ui/conversation-message-menus.ui:43 +msgid "_Inspect…" +msgstr "檢閱(_I)…" #. Geary account mail will be sent from -#: ../ui/composer.glade.h:59 +#: ui/composer-widget.ui:60 msgid "From" msgstr "寄件者" -#: ../ui/composer.glade.h:60 +#. Address(es) e-mail is to be sent to +#: ui/composer-widget.ui:130 +msgid "_To" +msgstr "收件者(_T)" + +#: ui/composer-widget.ui:158 +msgid "Show Cc, Bcc, and Reply-To fields" +msgstr "顯示副本,密件副本,及回覆欄位" + +#: ui/composer-widget.ui:219 +msgid "_Cc" +msgstr "副本(_C)" + +#: ui/composer-widget.ui:267 +msgid "_Bcc" +msgstr "密件副本(_B)" + +#: ui/composer-widget.ui:315 +msgid "_Reply-To" +msgstr "回覆(_R)" + +#: ui/composer-widget.ui:372 +msgid "_Subject" +msgstr "主旨(_S)" + +#: ui/composer-widget.ui:445 msgid "Drop files here" msgstr "請將檔案拖曳至這裡" -#: ../ui/composer.glade.h:61 +#: ui/composer-widget.ui:461 msgid "To add them as attachments" msgstr "以將它們添加為附件" -#: ../ui/edit_alternate_emails.glade.h:1 -msgid "Remove email address" -msgstr "移除電子郵件位址" +#: ui/composer-widget.ui:602 +msgid "Bold text" +msgstr "粗體" -#: ../ui/edit_alternate_emails.glade.h:2 +#: ui/composer-widget.ui:626 +msgid "Italic text" +msgstr "斜體" + +#: ui/composer-widget.ui:650 +msgid "Underline text" +msgstr "底線" + +#: ui/composer-widget.ui:674 +msgid "Strikethrough text" +msgstr "刪劃線" + +#: ui/composer-widget.ui:707 +msgid "Insert bulleted list" +msgstr "插入項目符號清單" + +#: ui/composer-widget.ui:731 +msgid "Insert numbered list" +msgstr "插入編號清單" + +#: ui/composer-widget.ui:764 +msgid "Indent or quote text" +msgstr "縮排或引用" + +#: ui/composer-widget.ui:788 +msgid "Un-indent or unquote text" +msgstr "取消縮排或引用" + +#: ui/composer-widget.ui:817 +msgid "Remove text formatting" +msgstr "移除文字格式設定" + +#: ui/composer-widget.ui:836 +msgid "Change font type" +msgstr "變換字型" + +#: ui/composer-widget.ui:851 +msgid "Sans Serif" +msgstr "無襯線" + +#: ui/composer-widget.ui:862 +msgid "Serif" +msgstr "有襯線" + +#: ui/composer-widget.ui:873 +msgid "Fixed Width" +msgstr "等寬" + +#: ui/composer-widget.ui:899 +msgid "Change font color" +msgstr "變換字型色彩" + +#: ui/composer-widget.ui:914 +msgid "Change font size" +msgstr "變換字型大小" + +#: ui/composer-widget.ui:949 +msgid "Insert or update text link" +msgstr "插入或更新文字連結" + +#: ui/composer-widget.ui:973 +msgid "Insert an image" +msgstr "插入影像" + +#: ui/composer-widget.ui:1015 +msgid "Undo last edit" +msgstr "取消上次編輯" + +#: ui/composer-widget.ui:1039 +msgid "Redo last edit" +msgstr "復原上次編輯" + +#: ui/composer-widget.ui:1068 ui/composer-widget.ui:1093 +msgid "Attach a file" +msgstr "附加檔案" + +#: ui/composer-widget.ui:1117 +msgid "Add original attachments" +msgstr "附加原始附件" + +#: ui/composer-widget.ui:1162 +msgid "More options" +msgstr "更多選項" + +#: ui/composer-widget.ui:1182 +msgid "Show formatting toolbar" +msgstr "顯示格式設定工具列" + +#: ui/composer-widget.ui:1200 +msgid "Select spell checking languages" +msgstr "選取要拼字檢查的語言" + +#: ui/composer-widget.ui:1263 +msgid "S_ans Serif" +msgstr "無襯線(_A)" + +#: ui/composer-widget.ui:1268 +msgid "S_erif" +msgstr "有襯線(_E)" + +#: ui/composer-widget.ui:1273 +msgid "_Fixed Width" +msgstr "等寬(_F)" + +#: ui/composer-widget.ui:1283 +msgid "_Small" +msgstr "小型(_S)" + +#: ui/composer-widget.ui:1288 +msgid "_Medium" +msgstr "中型(_M)" + +#: ui/composer-widget.ui:1293 +msgid "Lar_ge" +msgstr "大型(_G)" + +#: ui/composer-widget.ui:1303 +msgid "_Rich Text" +msgstr "豐富文字(_R)" + +#: ui/composer-widget.ui:1308 +msgid "_Plain Text" +msgstr "純文字(_P)" + +#: ui/components-attachment-pane.ui:29 ui/components-attachment-pane.ui:47 +msgid "Select all attachments" +msgstr "選取所有附件" + +#: ui/components-attachment-pane.ui:66 +msgid "Save selected attachments" +msgstr "儲存所選附件" + +#: ui/components-attachment-pane.ui:85 +msgid "Open selected attachments" +msgstr "開啟所選附件" + +#: ui/components-attachment-pane-menus.ui:17 +msgid "Save _All" +msgstr "選取全部(_A)" + +#: ui/components-inspector-error-view.ui:33 msgid "" -"Some email services require additional addresses be configured on the " -"server. Contact your email provider for more information." +"If the problem is serious or persists, please save and send these details to " +"the mailing list " +"or attach to a new bug report." msgstr "" -"有些電子郵件服務需要在伺服器上設定其他地址。請聯絡您的電子郵件供應商瞭解相關" -"資訊。" +"如果此問題情形嚴重或是一直重複出現,請儲存並傳送問題的詳細資訊到郵寄清單或是提交一份新的臭蟲回報。" -#: ../ui/edit_alternate_emails.glade.h:4 -msgid "_Update" -msgstr "更新(_U)" +#: ui/components-inspector-error-view.ui:49 +msgid "Details:" +msgstr "細節:" -#: ../ui/find_bar.glade.h:1 +#. Tooltip for inspector button +#: ui/components-inspector.ui:20 +msgid "Toggle appending new log entries" +msgstr "切換附加的新紀錄" + +#. Tooltip for inspector button +#. Tooltip for problem report button +#: ui/components-inspector.ui:37 ui/problem-details-dialog.ui:19 +msgid "Search for matching log entries" +msgstr "搜尋符合的紀錄" + +#. Tooltip for inspector button +#. Tooltip for problem report button +#: ui/components-inspector.ui:63 ui/problem-details-dialog.ui:46 +msgid "Save logs entries and details" +msgstr "儲存紀錄及詳細資訊" + +#. Tooltip for inspector button +#. Tooltip for problem report button +#: ui/components-inspector.ui:84 ui/problem-details-dialog.ui:62 +msgid "Copy to clipboard" +msgstr "複製到剪貼簿" + +#: ui/conversation-contact-popover.ui:146 +msgid "New Conversation…" +msgstr "新對話…" + +#: ui/conversation-contact-popover.ui:159 +msgid "Copy Email Address" +msgstr "複製電子郵件位址" + +#: ui/conversation-contact-popover.ui:182 +msgid "Save in Contacts…" +msgstr "儲存到聯絡人…" + +#: ui/conversation-contact-popover.ui:195 +msgid "Show Conversations" +msgstr "顯示對話" + +#: ui/conversation-contact-popover.ui:208 +msgid "Open in Contacts" +msgstr "在聯絡人中開啟" + +#: ui/conversation-contact-popover.ui:221 +msgid "Always Load Remote Images" +msgstr "總是顯示遠端影像" + +#. Title label on contact popover +#: ui/conversation-contact-popover.ui:264 +msgid "Deceptive email address" +msgstr "欺騙性電子郵件位址" + +#. Contact popover label +#: ui/conversation-contact-popover.ui:294 +msgid "This email address is:" +msgstr "此電子郵件位址為:" + +#. Contact popover label +#: ui/conversation-contact-popover.ui:319 +msgid "But was forged as:" +msgstr "但被偽冒為:" + +#. Contact popover label +#: ui/conversation-contact-popover.ui:344 +msgid "The sender may not be trustworthy" +msgstr "寄信者未必可信" + +#: ui/conversation-email.ui:27 +msgid "Save all attachments" +msgstr "儲存所有附件" + +#. Note: The application will never show this button at the same time as unstar_button, one will always be hidden. +#: ui/conversation-email.ui:50 +msgid "Mark this message as starred" +msgstr "將此訊息標記為已標星" + +#. Note: The application will never show this button at the same time as star_button, one will always be hidden. +#: ui/conversation-email.ui:72 +msgid "Mark this message as not starred" +msgstr "將此訊息標記為未標星" + +#: ui/conversation-email.ui:124 +msgid "Edit Draft" +msgstr "編輯草稿" + +#: ui/conversation-email.ui:151 +msgid "Draft message" +msgstr "草稿訊息" + +#: ui/conversation-email.ui:167 +msgid "This message has not yet been sent." +msgstr "這封訊息未被寄送。" + +#: ui/conversation-email.ui:213 +msgid "Message not saved" +msgstr "訊息未儲存" + +#: ui/conversation-email.ui:229 +msgid "This message was sent, but has not been saved to your account." +msgstr "這封訊息已成功寄送,但未儲存到您的帳號。" + +#. Translators: Menu item to reply to a specific message. +#: ui/conversation-email-menus.ui:15 +msgid "Reply to _All" +msgstr "回覆所有人(_A)" + +#. Translators: Menu item to mark a specific message as +#. read. +#: ui/conversation-email-menus.ui:30 +msgid "_Mark Read" +msgstr "標記為已讀(_M)" + +#: ui/conversation-email-menus.ui:36 +msgid "_Mark Unread" +msgstr "標記為未讀(_M)" + +#. Translators: Menu item to mark all messages in a +#. conversation from this one as unread. +#: ui/conversation-email-menus.ui:42 +msgid "Mark Unread From _Here" +msgstr "從此處起標記為未讀(_H)" + +#. Translators: Menu item to move a single, specific message +#. to the trash folder +#: ui/conversation-email-menus.ui:50 +msgid "Move message to _Trash" +msgstr "將訊息丢進垃圾桶(_T)" + +#. Translators: Menu item to delete a single, specific message +#: ui/conversation-email-menus.ui:57 +msgid "_Delete message…" +msgstr "刪除訊息(_D)…" + +#. Translators: Menu item to view the source for a message +#: ui/conversation-email-menus.ui:69 +msgid "_View Source" +msgstr "檢視來源(_V)" + +#: ui/conversation-message-link-popover.ui:54 +msgid "But actually goes to:" +msgstr "但實際上卻連往:" + +#: ui/conversation-message-link-popover.ui:84 +msgid "The link appears to go to:" +msgstr "此連結似乎要前往:" + +#: ui/conversation-message-link-popover.ui:96 +msgid "Deceptive link found" +msgstr "發現欺騙性連結" + +#: ui/conversation-message-link-popover.ui:111 +msgid "The email sender may be leading you to the wrong web site." +msgstr "寄件者可能把您帶去錯誤的網頁位址。" + +#: ui/conversation-message-link-popover.ui:124 +msgid "If unsure, contact the sender and ask before continuing." +msgstr "如不確定,請聯繫寄件者後再繼續。" + +#: ui/conversation-message-menus.ui:7 +msgid "_Open Link" +msgstr "開啟連結(_O)" + +#: ui/conversation-message-menus.ui:11 +msgid "Copy Link _Address" +msgstr "複製連結位址(_A)" + +#: ui/conversation-message-menus.ui:17 +msgid "_New Conversation…" +msgstr "更多對話(_N)…" + +#: ui/conversation-message-menus.ui:21 +msgid "Copy Email _Address" +msgstr "複製電子郵件位址(_A)" + +#: ui/conversation-message-menus.ui:27 +msgid "Save _Image As…" +msgstr "另存影像為(_I)…" + +#: ui/conversation-message-menus.ui:33 +msgid "_Select All" +msgstr "選取全部(_S)" + +#: ui/conversation-message.ui:63 +msgid "From " +msgstr "來自 " + +#: ui/conversation-message.ui:79 ui/conversation-message.ui:178 +msgid "1/1/1970\t" +msgstr "1/1/1970\t" + +#: ui/conversation-message.ui:102 +msgid "Preview body text." +msgstr "預覽內文。" + +#: ui/conversation-message.ui:202 +msgid "Sent by:" +msgstr "寄送自:" + +#: ui/conversation-message.ui:247 +msgid "Reply to:" +msgstr "回覆:" + +#: ui/conversation-message.ui:291 +msgid "Subject" +msgstr "主旨" + +#: ui/conversation-message.ui:501 +msgid "Show Images" +msgstr "顯示影像" + +#: ui/conversation-message.ui:514 +msgid "Always Show From Sender" +msgstr "總是顯示寄件者" + +#: ui/conversation-message.ui:542 +msgid "Remote images not shown" +msgstr "遠端影像未被顯示" + +#: ui/conversation-message.ui:559 +msgid "Only show remote images from senders you trust." +msgstr "只顯示來自您信任的寄件者的遠端影像。" + +#: ui/conversation-viewer.ui:60 +msgid "Find in conversation" +msgstr "在對話尋找" + +#: ui/conversation-viewer.ui:75 +msgid "Find the previous occurrence of the search string." +msgstr "尋找上一個出現的字串。" + +#: ui/conversation-viewer.ui:96 +msgid "Find the next occurrence of the search string." +msgstr "尋找下一個出現的字串。" + +#: ui/find_bar.glade:66 msgid "Find:" msgstr "尋找:" -#: ../ui/find_bar.glade.h:2 +#: ui/find_bar.glade:89 msgid "_Previous" msgstr "上一個(_P)" -#: ../ui/find_bar.glade.h:3 +#: ui/find_bar.glade:107 msgid "_Next" msgstr "下一個(_N)" -#: ../ui/find_bar.glade.h:4 +#: ui/find_bar.glade:125 msgid "_Case sensitive" msgstr "區分字母大小寫(_C)" -#: ../ui/find_bar.glade.h:5 +#: ui/find_bar.glade:145 msgid "label" msgstr "標籤" -#: ../ui/login.glade.h:1 ../ui/password-dialog.glade.h:3 -msgid "Password" -msgstr "密碼" +#: ui/gtk/help-overlay.ui:9 +msgid "Conversation Shortcuts" +msgstr "對話快捷鍵" -#: ../ui/login.glade.h:2 -msgid "E_mail address" -msgstr "電子郵件位址(_M)" +#: ui/gtk/help-overlay.ui:13 ui/gtk/help-overlay.ui:355 +msgctxt "shortcut window" +msgid "Actions" +msgstr "動作" -#: ../ui/login.glade.h:3 -msgid "_Password" -msgstr "密碼(_P)" +#: ui/gtk/help-overlay.ui:17 +msgctxt "shortcut window" +msgid "New conversation" +msgstr "新增對話" -#: ../ui/login.glade.h:4 -msgid "S_ervice" -msgstr "服務(_E)" +#: ui/gtk/help-overlay.ui:24 +msgctxt "shortcut window" +msgid "Reply to sender" +msgstr "回覆寄件人" -#: ../ui/login.glade.h:5 -msgid "N_ame" -msgstr "名稱(_A)" +#: ui/gtk/help-overlay.ui:31 ui/gtk/help-overlay.ui:269 +msgctxt "shortcut window" +msgid "Reply to all" +msgstr "回覆所有人" -#: ../ui/login.glade.h:7 -msgid "N_ickname" -msgstr "暱稱(_I)" +#: ui/gtk/help-overlay.ui:38 ui/gtk/help-overlay.ui:276 +msgctxt "shortcut window" +msgid "Forward" +msgstr "轉寄" -#: ../ui/login.glade.h:8 -msgid "Work, Home, etc." -msgstr "辦公、住家...等。" +#: ui/gtk/help-overlay.ui:45 ui/gtk/help-overlay.ui:283 +msgctxt "shortcut window" +msgid "Un-mark/mark read" +msgstr "標記為已讀/未讀" -#: ../ui/login.glade.h:9 -msgid "_Save sent mail" -msgstr "儲存已寄郵件(_S)" +#: ui/gtk/help-overlay.ui:52 ui/gtk/help-overlay.ui:290 +msgctxt "shortcut window" +msgid "Mark/un-mark starred" +msgstr "標星/取消標星" -#: ../ui/login.glade.h:10 -msgid "Addi_tional email addresses…" -msgstr "其他電子郵件位址(_T)…" +#: ui/gtk/help-overlay.ui:59 ui/gtk/help-overlay.ui:297 +msgctxt "shortcut window" +msgid "Archive conversations" +msgstr "封存對話" -#: ../ui/login.glade.h:11 -msgid "IMAP settings" -msgstr "IMAP 設定" +#: ui/gtk/help-overlay.ui:66 ui/gtk/help-overlay.ui:304 +msgctxt "shortcut window" +msgid "Move conversations" +msgstr "移動對話" -#: ../ui/login.glade.h:12 -msgid "Se_rver" -msgstr "伺服器(_R)" +#: ui/gtk/help-overlay.ui:73 ui/gtk/help-overlay.ui:311 +msgctxt "shortcut window" +msgid "Label conversations" +msgstr "為對話貼上標籤" -#: ../ui/login.glade.h:13 -msgid "P_ort" -msgstr "連接埠(_O)" +#: ui/gtk/help-overlay.ui:80 +msgctxt "shortcut window" +msgid "Trash conversations" +msgstr "删除對話" -#: ../ui/login.glade.h:14 -msgid "Ser_ver" -msgstr "伺服器(_V)" +#: ui/gtk/help-overlay.ui:87 ui/gtk/help-overlay.ui:318 +msgctxt "shortcut window" +msgid "Junk conversations" +msgstr "移動到垃圾郵件" -#: ../ui/login.glade.h:15 -msgid "Por_t" -msgstr "連接埠(_T)" +#: ui/gtk/help-overlay.ui:95 ui/gtk/help-overlay.ui:325 +msgctxt "shortcut window" +msgid "Delete conversations" +msgstr "永久刪除對話" -#: ../ui/login.glade.h:16 -msgid "SMTP settings" -msgstr "SMTP 設定值" +#: ui/gtk/help-overlay.ui:104 +msgctxt "shortcut window" +msgid "Search" +msgstr "搜尋" -#: ../ui/login.glade.h:17 -msgid "User_name" -msgstr "使用者名稱(_N)" +#: ui/gtk/help-overlay.ui:108 +msgctxt "shortcut window" +msgid "Search for conversations" +msgstr "搜尋對話" -#: ../ui/login.glade.h:18 -msgid "Pass_word" -msgstr "密碼(_W)" +#: ui/gtk/help-overlay.ui:115 +msgctxt "shortcut window" +msgid "Find in current conversation" +msgstr "在目前對話內尋找" -#: ../ui/login.glade.h:19 -msgid "SMTP username" -msgstr "SMTP 使用者名稱" +#: ui/gtk/help-overlay.ui:141 +msgctxt "shortcut window" +msgid "Undo" +msgstr "取消動作" -#: ../ui/login.glade.h:20 -msgid "SMTP password" -msgstr "SMTP 密碼" +#: ui/gtk/help-overlay.ui:145 +msgctxt "shortcut window" +msgid "Undo the last action" +msgstr "取消上次動作" -#: ../ui/login.glade.h:21 -msgid "_Username" -msgstr "使用者名稱(_U)" +#: ui/gtk/help-overlay.ui:152 +msgctxt "shortcut window" +msgid "Redo the last action" +msgstr "復原上次動作" -#: ../ui/login.glade.h:22 -msgid "IMAP username" -msgstr "IMAP 使用者名稱" +#: ui/gtk/help-overlay.ui:161 +msgctxt "shortcut window" +msgid "View" +msgstr "檢閱" -#: ../ui/login.glade.h:23 -msgid "IMAP password" -msgstr "IMAP 密碼" +#: ui/gtk/help-overlay.ui:165 +msgctxt "shortcut window" +msgid "Zoom in" +msgstr "拉近" -#: ../ui/login.glade.h:24 -msgid "Encr_yption" -msgstr "加密(_Y)" +#: ui/gtk/help-overlay.ui:172 +msgctxt "shortcut window" +msgid "Zoom out" +msgstr "拉遠" -#: ../ui/login.glade.h:25 -msgid "Encrypt_ion" -msgstr "加密(_I)" +#: ui/gtk/help-overlay.ui:179 +msgctxt "shortcut window" +msgid "Reset zoom" +msgstr "重設遠近" -#: ../ui/login.glade.h:27 -msgid "SSL/TLS" -msgstr "SSL/TLS" +#: ui/gtk/help-overlay.ui:188 ui/gtk/help-overlay.ui:375 +msgctxt "shortcut window" +msgid "General" +msgstr "一般" -#: ../ui/login.glade.h:28 -msgid "STARTTLS" -msgstr "STARTTLS" +#: ui/gtk/help-overlay.ui:192 +msgctxt "shortcut window" +msgid "Show help" +msgstr "顯示說明文件" -#: ../ui/login.glade.h:29 -msgid "No authentication re_quired" -msgstr "不需要認證(_Q)" +#: ui/gtk/help-overlay.ui:199 +msgctxt "shortcut window" +msgid "Show keyboard shortcuts" +msgstr "顯示鍵盤快捷鍵" -#: ../ui/login.glade.h:30 -msgid "Use IMAP cre_dentials" -msgstr "使用 IMAP 憑證(_D)" +#: ui/gtk/help-overlay.ui:206 +msgctxt "shortcut window" +msgid "Open a new window" +msgstr "開啟新的視窗" -#: ../ui/login.glade.h:31 ../ui/preferences.glade.h:5 -msgid "Composer" -msgstr "編撰器" +#: ui/gtk/help-overlay.ui:213 +msgctxt "shortcut window" +msgid "Close the current window" +msgstr "關閉目前視窗" -#: ../ui/login.glade.h:32 -msgid "Save dra_fts on server" -msgstr "儲存伺服氣上的草稿(_F)" +#: ui/gtk/help-overlay.ui:220 +msgctxt "shortcut window" +msgid "Quit the application" +msgstr "退出程式" -#: ../ui/login.glade.h:33 -msgid "Si_gn emails (HTML allowed):" -msgstr "簽署電子郵件 (允許 HTML)(_G):" +#: ui/gtk/help-overlay.ui:229 +msgctxt "shortcut window" +msgid "Keyboard navigation" +msgstr "鍵盤導覽" -#: ../ui/login.glade.h:34 -msgid "Storage" -msgstr "貯藏" +#: ui/gtk/help-overlay.ui:233 +msgctxt "shortcut window" +msgid "Go to next/previous pane" +msgstr "前往下個/上個窗格" -#: ../ui/login.glade.h:35 -msgid "_Download mail" -msgstr "下載郵件(_D)" +#: ui/gtk/help-overlay.ui:241 +msgctxt "shortcut window" +msgid "Select next/previous conversation" +msgstr "選取下個/上個對話" -#: ../ui/password-dialog.glade.h:1 +#: ui/gtk/help-overlay.ui:248 +msgctxt "shortcut window" +msgid "Focus next/previous message" +msgstr "聚焦下條/上條訊息" + +#: ui/gtk/help-overlay.ui:258 +msgctxt "shortcut window" +msgid "Single-key shortcuts" +msgstr "單按鍵快捷鍵" + +#: ui/gtk/help-overlay.ui:262 +msgctxt "shortcut window" +msgid "Reply to sender " +msgstr "回覆寄件者 " + +#: ui/gtk/help-overlay.ui:332 +msgctxt "shortcut window" +msgid "Find in current conversations" +msgstr "在目前對話內尋找" + +#: ui/gtk/help-overlay.ui:339 +msgctxt "shortcut window" +msgid "Select next/previous conversations" +msgstr "選取下個/上個對話" + +#: ui/gtk/help-overlay.ui:351 +msgid "Composer Shortcuts" +msgstr "編撰器快捷鍵" + +#: ui/gtk/help-overlay.ui:359 +msgctxt "shortcut window" +msgid "Send" +msgstr "寄送" + +#: ui/gtk/help-overlay.ui:366 +msgctxt "shortcut window" +msgid "Add attachment" +msgstr "加入附件" + +#: ui/gtk/help-overlay.ui:379 +msgctxt "shortcut window" +msgid "Close composer window" +msgstr "關閉編撰器視窗" + +#: ui/gtk/help-overlay.ui:386 +msgctxt "shortcut window" +msgid "Detach composer window" +msgstr "卸離編撰器視窗" + +#: ui/gtk/help-overlay.ui:393 +msgctxt "shortcut window" +msgid "Editing" +msgstr "編輯中" + +#: ui/gtk/help-overlay.ui:398 +msgctxt "shortcut window" +msgid "Move selection to the clipboard" +msgstr "剪下" + +#: ui/gtk/help-overlay.ui:405 +msgctxt "shortcut window" +msgid "Copy selection to clipboard" +msgstr "複製" + +#: ui/gtk/help-overlay.ui:412 +msgctxt "shortcut window" +msgid "Paste from the clipboard" +msgstr "貼上" + +#: ui/gtk/help-overlay.ui:419 +msgctxt "shortcut window" +msgid "Quote text" +msgstr "引用文字" + +#: ui/gtk/help-overlay.ui:426 +msgctxt "shortcut window" +msgid "Unquote text" +msgstr "取消文字引用" + +#: ui/gtk/help-overlay.ui:435 +msgctxt "shortcut window" +msgid "Rich text editing" +msgstr "豐富文字編輯" + +#: ui/gtk/help-overlay.ui:439 +msgctxt "shortcut window" +msgid "Paste without formatting" +msgstr "以純文字貼上" + +#: ui/gtk/help-overlay.ui:446 +msgctxt "shortcut window" +msgid "Bold text" +msgstr "粗體" + +#: ui/gtk/help-overlay.ui:453 +msgctxt "shortcut window" +msgid "Italicize text" +msgstr "義式斜體" + +#: ui/gtk/help-overlay.ui:460 +msgctxt "shortcut window" +msgid "Underline text" +msgstr "底線" + +#: ui/gtk/help-overlay.ui:467 +msgctxt "shortcut window" +msgid "Strike text" +msgstr "刪劃線" + +#: ui/gtk/help-overlay.ui:474 +msgctxt "shortcut window" +msgid "Remove formatting" +msgstr "移除格式設定" + +#: ui/gtk/help-overlay.ui:481 +msgctxt "shortcut window" +msgid "Insert an image" +msgstr "插入影像" + +#: ui/gtk/help-overlay.ui:488 +msgctxt "shortcut window" +msgid "Insert a link" +msgstr "插入連結" + +#: ui/main-toolbar.ui:24 +msgctxt "tooltip" +msgid "Compose Message" +msgstr "編撰訊息" + +#: ui/main-toolbar.ui:62 +msgid "Toggle search bar" +msgstr "開關搜尋列" + +#: ui/main-toolbar.ui:114 +msgid "Reply" +msgstr "回覆" + +#: ui/main-toolbar.ui:137 +msgid "Reply All" +msgstr "回覆所有人" + +#: ui/main-toolbar.ui:160 +msgid "Forward" +msgstr "轉寄" + +#: ui/main-toolbar.ui:265 +msgid "Toggle find bar" +msgstr "開關搜尋列" + +#: ui/main-toolbar.ui:286 +msgid "_Archive" +msgstr "封存(_A)" + +#: ui/main-toolbar-menus.ui:21 +msgid "Toggle as S_pam" +msgstr "開關標記垃圾郵件(_S)" + +#: ui/main-toolbar-menus.ui:28 +msgid "Empty _Spam…" +msgstr "淨空垃圾信(_S)…" + +#: ui/main-toolbar-menus.ui:32 +msgid "Empty _Trash…" +msgstr "淨空垃圾桶(_T)…" + +#: ui/main-toolbar-menus.ui:38 +msgid "_Accounts" +msgstr "帳號(_A)" + +#: ui/main-toolbar-menus.ui:46 +msgid "_Keyboard Shortcuts" +msgstr "鍵盤快捷鍵(_K)" + +#: ui/main-toolbar-menus.ui:57 +msgid "_About Geary" +msgstr "關於(_A)" + +#: ui/password-dialog.glade:74 msgid "SMTP Credentials" msgstr "SMTP 憑證" -#: ../ui/password-dialog.glade.h:2 +#: ui/password-dialog.glade:91 msgid "Username" msgstr "使用者名稱" -#: ../ui/password-dialog.glade.h:4 +#: ui/password-dialog.glade:152 msgid "_Remember password" msgstr "記住密碼(_R)" -#: ../ui/password-dialog.glade.h:6 +#: ui/password-dialog.glade:210 msgid "_Authenticate" msgstr "核對身份(_A)" -#: ../ui/preferences.glade.h:1 -msgid "Reading" -msgstr "閱讀" - -#: ../ui/preferences.glade.h:2 -msgid "_Automatically select next message" -msgstr "自動選取下篇訊息(_A)" - -#: ../ui/preferences.glade.h:3 -msgid "_Display conversation preview" -msgstr "顯示對話預覽(_D)" - -#: ../ui/preferences.glade.h:4 -msgid "Use _three pane view" -msgstr "使用三欄檢視(_T)" - -#: ../ui/preferences.glade.h:6 -msgid "Enable _spell checking" -msgstr "啟用拼字檢查(_S)" - -#: ../ui/preferences.glade.h:7 -msgid "Notifications" -msgstr "通知" - -#: ../ui/preferences.glade.h:8 -msgid "_Play notification sounds" -msgstr "播放通知音效(_P)" - -#: ../ui/preferences.glade.h:9 -msgid "Show _notifications for new mail" -msgstr "若有新郵件時顯示通知(_N)" - -#: ../ui/preferences.glade.h:10 -msgid "Always _watch for new mail" -msgstr "總是監視是否有新的郵件(_W)" - -#: ../ui/preferences.glade.h:11 -msgid "Geary will run in the background and notify of new mail" -msgstr "Geary 將在背景執行並通知新郵件的到來" - -#: ../ui/preferences.glade.h:12 -msgid "Preferences" -msgstr "偏好設定" - -#: ../ui/remove_confirm.glade.h:1 -msgid "" -"Are you sure you want to remove this " -"account? " -msgstr "" -"您是否確定要移除這個帳號? " - -#: ../ui/remove_confirm.glade.h:2 -msgid "" -"All email associated with this account will be removed from your computer. " -"This will not affect email on the server." -msgstr "" -"所有與此帳號關聯的電子郵件都將從您的電腦中移去。但這不會影響位在伺服器上的電" -"子郵件。" - -#: ../ui/remove_confirm.glade.h:3 -msgid "Nickname:" -msgstr "暱稱:" - -#: ../ui/remove_confirm.glade.h:4 -msgid "Email address:" -msgstr "電子郵件位址:" - -#: ../ui/upgrade_dialog.glade.h:1 +#: ui/upgrade_dialog.glade:60 msgid "Geary update in progress…" msgstr "Geary 正在更新…" +#~ msgid "Open this link" +#~ msgstr "開啟此連結" + +#~ msgid "Enable or disable rich text mode" +#~ msgstr "啟用/停用豐富文字模式" + +#~ msgid "Mail Client" +#~ msgstr "郵件客戶端" + +#~ msgid "Geary Mail" +#~ msgstr "Geary 郵件" + +#~ msgid "Additional addresses for %s" +#~ msgstr "%s 的其他位址" + +#~ msgid "First Last" +#~ msgstr "名字 姓氏" + +#~ msgid "Enter your account information to get started." +#~ msgstr "請輸入您的帳戶資訊以開始使用。" + +#~ msgid "Preview" +#~ msgstr "預覽" + +#~ msgid "Remem_ber passwords" +#~ msgstr "記住密碼(_B)" + +#~ msgid "Remem_ber password" +#~ msgstr "記住密碼(_B)" + +#~ msgid "Unable to validate:\n" +#~ msgstr "無法成功驗證:\n" + +#~ msgid " • Invalid account nickname.\n" +#~ msgstr " • 帳號暱稱無效。\n" + +#~ msgid " • Email address already added to Geary.\n" +#~ msgstr " • 電子郵件位址已加入 Geary。\n" + +#~ msgid " • IMAP connection error.\n" +#~ msgstr " • IMAP 連線錯誤。\n" + +#~ msgid " • IMAP username or password incorrect.\n" +#~ msgstr " • IMAP 使用者名稱或密碼不正確。\n" + +#~ msgid " • SMTP connection error.\n" +#~ msgstr " • SMTP 連線錯誤。\n" + +#~ msgid " • SMTP username or password incorrect.\n" +#~ msgstr " • SMTP 使用者名稱或密碼不正確。\n" + +#~ msgid " • Connection error.\n" +#~ msgstr " •連線錯誤 。\n" + +#~ msgid " • Username or password incorrect.\n" +#~ msgstr " • 使用者名稱或密碼不正確。\n" + +#~ msgid "Copyright 2011-2015 Yorba Foundation" +#~ msgstr "著作權所有 2011-2015 Yorba Foundation" + +#~ msgid "Output debugging information" +#~ msgstr "輸出除錯用資訊" + +#~ msgid "Allow inspection of WebView" +#~ msgstr "允許 WebView 的檢閱" + +#~ msgid "Please report comments, suggestions and bugs to:" +#~ msgstr "請回報評註、建議與臭蟲至:" + +#~ msgid "Failed to parse command line options: %s\n" +#~ msgstr "無法解析指令列選項:%s\n" + +#~ msgid "Unrecognized command line option \"%s\"\n" +#~ msgstr "無法辨識的指令列選項「%s」\n" + +#~ msgid "Delete conversation (Shift+Delete)" +#~ msgstr "刪除對話 (Shift+Delete)" + +#~ msgid "Delete conversations (Shift+Delete)" +#~ msgstr "刪除對話 (Shift+Delete)" + +#~ msgid "Move conversation to Trash (Delete, Backspace)" +#~ msgstr "將對話搬移至垃圾桶 (Delete、Backspace)" + +#~ msgid "Move conversations to Trash (Delete, Backspace)" +#~ msgstr "將對話搬移至垃圾桶 (Delete、Backspace)" + +#~ msgid "Mark as not S_pam" +#~ msgstr "標記為非垃圾郵件(_P)" + +#~ msgid "A_ccounts" +#~ msgstr "帳號(_C)" + +#~ msgid "_Donate" +#~ msgstr "捐款(_D)" + +#~ msgid "_Mark as..." +#~ msgstr "標記為(_M)..." + +#~ msgid "Add label" +#~ msgstr "加入標籤" + +#~ msgid "_Label" +#~ msgstr "標籤(_L)" + +#~ msgid "_Move" +#~ msgstr "移動(_M)" + +#~ msgid "Compose new message (Ctrl+N, N)" +#~ msgstr "編撰新訊息 (Ctrl+N、N)" + +#~ msgid "Reply (Ctrl+R, R)" +#~ msgstr "回覆 (Ctrl+R、R)" + +#~ msgid "Reply all (Ctrl+Shift+R, Shift+R)" +#~ msgstr "回覆所有人 (Ctrl+Shift+R、Shift+R)" + +#~ msgid "Forward (Ctrl+L, F)" +#~ msgstr "轉寄 (Ctrl+L、F)" + +#~ msgid "Empty" +#~ msgstr "淨空" + +#~ msgid "Empty Spam or Trash folders" +#~ msgstr "淨空垃圾信或垃圾桶資料夾" + +#~ msgid "Unable to store server trust exception" +#~ msgstr "無法儲存伺服器信任例外" + +#~ msgid "Your settings are insecure" +#~ msgstr "您的設定並不安全" + +#~ msgid "" +#~ "Your IMAP and/or SMTP settings do not specify SSL or TLS. This means " +#~ "your username and password could be read by another person on the " +#~ "network. Are you sure you want to do this?" +#~ msgstr "" +#~ "您的 IMAP 與/或 SMTP 設定中沒有指定 SSL 或 TLS。這代表您的使用者名稱與密碼" +#~ "可能被網路上的其他人讀取。您確定要這麼做?" + +#~ msgid "Co_ntinue" +#~ msgstr "繼續(_N)" + +#~ msgid "" +#~ "Geary encountered an error sending an email. If the problem persists, " +#~ "please manually delete the email from your Outbox folder." +#~ msgstr "" +#~ "Geary 在寄送電子郵件時遭遇錯誤。如果問題持續發生,請從您的寄件匣資料夾中手" +#~ "動刪除該封電子郵件。" + +#~ msgid "" +#~ "Geary encountered an error saving a sent message to Sent Mail. The " +#~ "message will stay in your Outbox folder until you delete it." +#~ msgstr "" +#~ "Geary 將寄送的訊息儲存至已寄送郵件時遭遇錯誤。這封訊息會留在您的寄件匣資料" +#~ "夾中,直到您刪除該封電子郵件為止。" + +#~ msgid "Unable to open local mailbox for %s" +#~ msgstr "無法為 %s 開啟本地端收信匣" + +#~ msgid "" +#~ "There was an error opening the local mail database for this account. This " +#~ "is possibly due to a file permissions problem.\n" +#~ "\n" +#~ "Please check that you have read/write permissions for all files in this " +#~ "directory:\n" +#~ "\n" +#~ "%s" +#~ msgstr "" +#~ "開啟此帳號的本地端郵件資料庫時發生錯誤。這可能是因為檔案權限設定有問題所造" +#~ "成。\n" +#~ "\n" +#~ "請檢查您是否擁有此目錄中所有檔案的讀/寫權:\n" +#~ "\n" +#~ "%s" + +#~ msgid "" +#~ "The version number of the local mail database is formatted for a newer " +#~ "version of Geary. Unfortunately, the database cannot be \"rolled back\" " +#~ "to work with this version of Geary.\n" +#~ "\n" +#~ "Please install the latest version of Geary and try again." +#~ msgstr "" +#~ "本地端郵件資料庫的版本號格式為新版 Geary 所採用。不幸的是,該版本的 Geary " +#~ "無法「回溯」處理資料庫。\n" +#~ "\n" +#~ "請安裝最新版的 Geary 並重試。" + +#~ msgid "" +#~ "There was an error opening the local account. This is probably due to " +#~ "connectivity issues.\n" +#~ "\n" +#~ "Please check your network connection and restart Geary." +#~ msgstr "" +#~ "開啟本地端帳號時發生錯誤。這可能因為連線活動發生問題。\n" +#~ "\n" +#~ "請檢查您的網路連線,並重新啟動 Geary。" + +#~ msgid "Undo move (Ctrl+Z)" +#~ msgstr "取消移動 (Ctrl+Z)" + +#~ msgid "Close open draft messages?" +#~ msgstr "關閉開啟的草稿訊息?" + +#~ msgid "Error emptying %s" +#~ msgstr "淨空 %s 時發生錯誤" + +#~ msgid "Undo archive (Ctrl+Z)" +#~ msgstr "取消封存 (Ctrl+Z)" + +#~ msgid "Undo trash (Ctrl+Z)" +#~ msgstr "取消丟到垃圾桶 (Ctrl+Z)" + +#~ msgid "Undo (Ctrl+Z)" +#~ msgstr "取消 (Ctrl+Z)" + +#~ msgid "%i match" +#~ msgid_plural "%i matches" +#~ msgstr[0] "%i 項符合結果" + +#~ msgid "%i match (wrapped)" +#~ msgid_plural "%i matches (wrapped)" +#~ msgstr[0] "%i 項符合結果 (前後循環)" + +#~ msgid "not found" +#~ msgstr "找不到" + +#~ msgid "Indexing %s account" +#~ msgstr "正為 %s 帳號製作索引" + +#~ msgid "To: " +#~ msgstr "收件者:" + +#~ msgid "Cc: " +#~ msgstr "副本:" + +#~ msgid "Bcc: " +#~ msgstr "密件副本:" + +#~ msgid "No search results found." +#~ msgstr "找不到符合的搜尋結果。" + +#~ msgid "Copy _Link" +#~ msgstr "複製連結(_L)" + +#~ msgid " (Invalid?)" +#~ msgstr " (無效?)" + +#~ msgid "Save A_ttachment..." +#~ msgid_plural "Save All A_ttachments..." +#~ msgstr[0] "儲存所有附件(_T)..." + +#~ msgid "none" +#~ msgstr "無" + +#~ msgid "Failed to open default text editor." +#~ msgstr "無法開啟預設的文字編輯器。" + +#~ msgid "Geary will exit if you have no other open email accounts." +#~ msgstr "如果您沒有其他開啟的電子郵件帳號,Geary 將離開。" + +#~ msgid "Open" +#~ msgstr "開啟" + +#~ msgctxt "Default clock format" +#~ msgid "%l:%M %P" +#~ msgstr "%P %l:%M" + +#~ msgid "%x" +#~ msgstr "%x" + +#~ msgid "Other" +#~ msgstr "其他" + +#~ msgid "IMAP" +#~ msgstr "IMAP" + +#~ msgid "SMTP" +#~ msgstr "SMTP" + +#~ msgid "From: %s\n" +#~ msgstr "寄件者:%s\n" + +#~ msgid "Subject: %s\n" +#~ msgstr "主旨:%s\n" + +#~ msgid "Date: %s\n" +#~ msgstr "日期:%s\n" + +#~ msgid "To: %s\n" +#~ msgstr "收件者:%s\n" + +#~ msgid "Cc: %s\n" +#~ msgstr "副本:%s\n" + +#~ msgid "Cannot remove account " +#~ msgstr "無法移除帳號 " + +#~ msgid "" +#~ "A composer window associated with this account is currently open. Send or " +#~ "discard the message and try again." +#~ msgstr "" +#~ "與此帳號相關連的編撰器目前已開啟。寄送訊息或放棄訊息,接著重試一次。" + +#~ msgid "Please wait while Geary validates your account." +#~ msgstr "請稍後,Geary 正在驗明您的帳號。" + +#~ msgid "_Left" +#~ msgstr "左(_L)" + +#~ msgid "_Right" +#~ msgstr "右(_R)" + +#~ msgid "_Center" +#~ msgstr "置中(_C)" + +#~ msgid "_Justify" +#~ msgstr "左右對齊(_J)" + +#~ msgid "Link (Ctrl+L)" +#~ msgstr "連結 (Ctrl+L)" + +#~ msgid "C_olor" +#~ msgstr "色彩(_O)" + +#~ msgid "Bold (Ctrl+B)" +#~ msgstr "粗體 (Ctrl+B)" + +#~ msgid "Show Extended Fields" +#~ msgstr "顯示擴展欄位" + +#~ msgctxt "Label" +#~ msgid "Close and Save" +#~ msgstr "關閉並儲存" + +#~ msgctxt "Short Label" +#~ msgid "Close and Save" +#~ msgstr "關閉並儲存" + +#~ msgctxt "Tooltip" +#~ msgid "Close and Save" +#~ msgstr "關閉並儲存" + +#~ msgctxt "Label" +#~ msgid "Close and Discard" +#~ msgstr "關閉並捨棄" + +#~ msgctxt "Short Label" +#~ msgid "Close and Discard" +#~ msgstr "關閉並捨棄" + +#~ msgctxt "Tooltip" +#~ msgid "Close and Discard" +#~ msgstr "關閉並捨棄" + +#~ msgid "Large" +#~ msgstr "大型" + +#~ msgid "Medium" +#~ msgstr "中型" + +#~ msgid "Small" +#~ msgstr "小型" + +#~ msgid "Detach" +#~ msgstr "卸除" + +#~ msgid "Detach (Ctrl+D)" +#~ msgstr "卸除 (Ctrl+D)" + +#~ msgid "Send (Ctrl+Enter)" +#~ msgstr "寄送 (Ctrl+Enter)" + +#~ msgid "_Attach File" +#~ msgstr "附加檔案(_A)" + +#~ msgid "_Include Original Attachments" +#~ msgstr "包含原始附件(_I)" + +#~ msgid "Application Menu" +#~ msgstr "應用程式選單" + +#~ msgid "" +#~ "Some email services require additional addresses be configured on the " +#~ "server. Contact your email provider for more information." +#~ msgstr "" +#~ "有些電子郵件服務需要在伺服器上設定其他地址。請聯絡您的電子郵件供應商瞭解相" +#~ "關資訊。" + +#~ msgid "E_mail address" +#~ msgstr "電子郵件位址(_M)" + +#~ msgid "_Password" +#~ msgstr "密碼(_P)" + +#~ msgid "S_ervice" +#~ msgstr "服務(_E)" + +#~ msgid "N_ame" +#~ msgstr "名稱(_A)" + +#~ msgid "N_ickname" +#~ msgstr "暱稱(_I)" + +#~ msgid "Work, Home, etc." +#~ msgstr "辦公、住家...等。" + +#~ msgid "Addi_tional email addresses…" +#~ msgstr "其他電子郵件位址(_T)…" + +#~ msgid "IMAP settings" +#~ msgstr "IMAP 設定" + +#~ msgid "Se_rver" +#~ msgstr "伺服器(_R)" + +#~ msgid "P_ort" +#~ msgstr "連接埠(_O)" + +#~ msgid "Ser_ver" +#~ msgstr "伺服器(_V)" + +#~ msgid "Por_t" +#~ msgstr "連接埠(_T)" + +#~ msgid "User_name" +#~ msgstr "使用者名稱(_N)" + +#~ msgid "Pass_word" +#~ msgstr "密碼(_W)" + +#~ msgid "SMTP password" +#~ msgstr "SMTP 密碼" + +#~ msgid "_Username" +#~ msgstr "使用者名稱(_U)" + +#~ msgid "IMAP password" +#~ msgstr "IMAP 密碼" + +#~ msgid "Encr_yption" +#~ msgstr "加密(_Y)" + +#~ msgid "Encrypt_ion" +#~ msgstr "加密(_I)" + +#~ msgid "STARTTLS" +#~ msgstr "STARTTLS" + +#~ msgid "No authentication re_quired" +#~ msgstr "不需要認證(_Q)" + +#~ msgid "Use IMAP cre_dentials" +#~ msgstr "使用 IMAP 憑證(_D)" + +#~ msgid "Si_gn emails (HTML allowed):" +#~ msgstr "簽署電子郵件 (允許 HTML)(_G):" + +#~ msgid "Storage" +#~ msgstr "貯藏" + +#~ msgid "Reading" +#~ msgstr "閱讀" + +#~ msgid "_Play notification sounds" +#~ msgstr "播放通知音效(_P)" + +#~ msgid "Geary will run in the background and notify of new mail" +#~ msgstr "Geary 將在背景執行並通知新郵件的到來" + +#~ msgid "Preferences" +#~ msgstr "偏好設定" + +#~ msgid "" +#~ "Are you sure you want to remove " +#~ "this account? " +#~ msgstr "" +#~ "您是否確定要移除這個帳號? " + +#~ msgid "" +#~ "All email associated with this account will be removed from your " +#~ "computer. This will not affect email on the server." +#~ msgstr "" +#~ "所有與此帳號關聯的電子郵件都將從您的電腦中移去。但這不會影響位在伺服器上的" +#~ "電子郵件。" + +#~ msgid "Nickname:" +#~ msgstr "暱稱:" + #~ msgid "_Delete" #~ msgstr "刪除(_D)" @@ -2113,9 +3980,6 @@ msgstr "Geary 正在更新…" #~ msgid "Please enter your password" #~ msgstr "請輸入您的密碼" -#~ msgid "Edit recipients" -#~ msgstr "編輯收件人" - #~| msgid "_Close" #~ msgid "C_lose" #~ msgstr "關閉(_C)" @@ -2129,9 +3993,6 @@ msgstr "Geary 正在更新…" #~ msgid "Archive conversation (Delete, Backspace, A)" #~ msgstr "封存對話 (Delete、Backspace、A)" -#~ msgid "General" -#~ msgstr "一般" - #~ msgid "Port:" #~ msgstr "連接埠:" @@ -2152,6 +4013,3 @@ msgstr "Geary 正在更新…" #~ msgid "Unable to login to email server" #~ msgstr "無法登入電子郵件伺服器" - -#~ msgid "_Details" -#~ msgstr "細節(_D)" From 6642693931a3fc99f4b8c1366c5d341a7c2a56c7 Mon Sep 17 00:00:00 2001 From: Cheng-Chia Tseng Date: Tue, 3 Mar 2020 10:44:28 +0000 Subject: [PATCH 043/336] Update Chinese (Taiwan) translation --- po/zh_TW.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/zh_TW.po b/po/zh_TW.po index 5d1b5039..e3a76011 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: geary-0.4.1\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" "POT-Creation-Date: 2020-02-19 00:44+0000\n" -"PO-Revision-Date: 2020-03-03 18:36+0800\n" +"PO-Revision-Date: 2020-03-03 18:43+0800\n" "Last-Translator: Cheng-Chia Tseng \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/geary/" "language/zh_TW/)\n" @@ -241,7 +241,7 @@ msgid "" "A list of POSIX locales, with the empty list disabling spell checking and " "the null list using desktop languages by default." msgstr "" -"POSIX 語系清單。默認情況下,清單為空則停用拼字檢查,為 null 則使用系統語言。" +"POSIX 語系清單。預設情況下,清單為空則停用拼字檢查,為 null 則使用系統語言。" #: desktop/org.gnome.Geary.gschema.xml:90 msgid "Languages that are displayed in the spell checker popover" From 74e37a46cc65b2ea6709815b475bde6c2126a107 Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Tue, 3 Mar 2020 10:36:52 -0500 Subject: [PATCH 044/336] Avoid overlong regex line in javascript. The regex line in this javascript was > 256 characters, which triggers the following warning from debian's "lintian" source-checking tool: https://lintian.debian.org/tags/source-is-missing.html https://lintian.debian.org/tags/source-contains-prebuilt-javascript-object.html This offers no functional change, but avoids some needless warnings going forward. --- ui/composer-web-view.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ui/composer-web-view.js b/ui/composer-web-view.js index fc5dbf91..ca918990 100644 --- a/ui/composer-web-view.js +++ b/ui/composer-web-view.js @@ -18,7 +18,9 @@ ComposerPageState.QUOTE_MARKER = "\x7f"; // delete ComposerPageState.PROTOCOL_REGEX = /^(aim|apt|bitcoin|cvs|ed2k|ftp|file|finger|git|gtalk|http|https|irc|ircs|irc6|lastfm|ldap|ldaps|magnet|news|nntp|rsync|sftp|skype|smb|sms|svn|telnet|tftp|ssh|webcal|xmpp):/i; // Taken from Geary.HTML.URL_REGEX, without the inline modifier (?x) // at the start, which is unsupported in JS -ComposerPageState.URL_REGEX = new RegExp("\\b((?:[a-z][\\w-]+:(?:/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:'\".,<>?«»“”‘’]))", "gi"); +ComposerPageState.URL_REGEX = new RegExp("\\b((?:[a-z][\\w-]+:(?:/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/)"+ + "(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+"+ + "(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:'\".,<>?«»“”‘’]))", "gi"); ComposerPageState.prototype = { __proto__: PageState.prototype, From c2adf8e0fc200f44c23dd7aff112fd11bef432ae Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Wed, 4 Mar 2020 11:29:38 +1100 Subject: [PATCH 045/336] Application.Controller: Permit notifications when no main window If there's no main window, the app must be running hidden, so notifications should be sent. Fixes #716 --- .../application/application-controller.vala | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/client/application/application-controller.vala b/src/client/application/application-controller.vala index a4d43b07..10de12e0 100644 --- a/src/client/application/application-controller.vala +++ b/src/client/application/application-controller.vala @@ -1351,15 +1351,16 @@ internal class Application.Controller : Geary.BaseObject { } private bool should_notify_new_messages(Geary.Folder folder) { - // A monitored folder must be selected to squelch notifications; - // if conversation list is at top of display, don't display - // and don't display if main window has top-level focus + // Don't show notifications if the top of the folder's + // conversations is visible. That is, if there is a main + // window, it's focused, the folder is selected, and the + // conversation list is at the top. MainWindow? window = this.application.last_active_main_window; return ( - window != null && - (folder != window.selected_folder || - window.conversation_list_view.vadjustment.value != 0.0 || - !window.has_toplevel_focus) + window == null || + !window.has_toplevel_focus || + window.selected_folder != folder || + window.conversation_list_view.vadjustment.value > 0.0 ); } From 7dc9c9b53ba57167be26eaad2a2c88f744ee2884 Mon Sep 17 00:00:00 2001 From: Federico Bruni Date: Wed, 4 Mar 2020 07:57:29 +0000 Subject: [PATCH 046/336] Update Italian translation --- po/it.po | 2215 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 1226 insertions(+), 989 deletions(-) diff --git a/po/it.po b/po/it.po index 9ae1ac34..fece5530 100644 --- a/po/it.po +++ b/po/it.po @@ -13,22 +13,22 @@ # Piercarlo Bennici , 2013 # Vincenzo Cerminara , 2012 # Gianvito Cavasoli , 2016. -# Federico Bruni , 2013-2019. +# Federico Bruni , 2013-2020. # msgid "" msgstr "" "Project-Id-Version: geary master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2019-08-21 11:19+0000\n" -"PO-Revision-Date: 2019-08-25 17:55+0200\n" +"POT-Creation-Date: 2020-02-16 20:26+0000\n" +"PO-Revision-Date: 2020-03-03 14:34+0100\n" "Last-Translator: Federico Bruni \n" -"Language-Team: Italiano \n" +"Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.2.3\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"X-Generator: Gtranslator 3.34.0\n" #: desktop/geary-attach.contract.desktop.in:3 msgid "Send by email" @@ -39,36 +39,38 @@ msgid "Send files using Geary" msgstr "Invia file usando Geary" #. Translators: The application name -#: desktop/geary-autostart.desktop.in:3 -#: desktop/org.gnome.Geary.appdata.xml.in:12 -#: desktop/org.gnome.Geary.desktop.in:3 +#: desktop/geary-autostart.desktop.in.in:3 +#: desktop/org.gnome.Geary.appdata.xml.in.in:12 +#: desktop/org.gnome.Geary.desktop.in.in:3 #: src/client/accounts/accounts-editor-servers-pane.vala:555 +#: src/client/application/application-main-window.vala:555 msgid "Geary" msgstr "Geary" -#: desktop/geary-autostart.desktop.in:4 desktop/org.gnome.Geary.desktop.in:4 +#: desktop/geary-autostart.desktop.in.in:4 +#: desktop/org.gnome.Geary.desktop.in.in:4 msgid "Email" msgstr "Email" #. Translators: The application's summary / tagline -#: desktop/geary-autostart.desktop.in:5 -#: desktop/org.gnome.Geary.appdata.xml.in:16 -#: desktop/org.gnome.Geary.desktop.in:5 -#: src/client/application/geary-application.vala:24 +#: desktop/geary-autostart.desktop.in.in:5 +#: desktop/org.gnome.Geary.appdata.xml.in.in:16 +#: desktop/org.gnome.Geary.desktop.in.in:5 +#: src/client/application/application-client.vala:32 msgid "Send and receive email" msgstr "Invia e riceve email" #. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon. -#: desktop/geary-autostart.desktop.in:7 +#: desktop/geary-autostart.desktop.in.in:7 msgid "Email;E-mail;Mail;" msgstr "Email;E-mail;Mail;Posta;" #. Translators: The development team's name -#: desktop/org.gnome.Geary.appdata.xml.in:14 +#: desktop/org.gnome.Geary.appdata.xml.in.in:14 msgid "Geary Development Team" msgstr "Gruppo sviluppatori di Geary" -#: desktop/org.gnome.Geary.appdata.xml.in:18 +#: desktop/org.gnome.Geary.appdata.xml.in.in:18 msgid "" "Geary is an email application built around conversations, for the GNOME 3 " "desktop. It allows you to read, find and send email with a straightforward, " @@ -78,7 +80,7 @@ msgstr "" "l'ambiente desktop GNOME 3. Permette di leggere, trovare e inviare email con " "un'interfaccia semplice e moderna." -#: desktop/org.gnome.Geary.appdata.xml.in:23 +#: desktop/org.gnome.Geary.appdata.xml.in.in:23 msgid "" "Conversations allow you to read a complete discussion without having to find " "and click from message to message." @@ -86,53 +88,57 @@ msgstr "" "Le conversazioni permettono di leggere un'intera discussione senza dover " "cercare e fare clic su ogni messaggio." -#: desktop/org.gnome.Geary.appdata.xml.in:27 +#: desktop/org.gnome.Geary.appdata.xml.in.in:27 msgid "Geary’s features include:" msgstr "Le funzionalità di Geary comprendono:" -#: desktop/org.gnome.Geary.appdata.xml.in:29 +#: desktop/org.gnome.Geary.appdata.xml.in.in:29 msgid "Quick email account setup" msgstr "Rapida configurazione dell'account di posta" -#: desktop/org.gnome.Geary.appdata.xml.in:30 +#: desktop/org.gnome.Geary.appdata.xml.in.in:30 msgid "Shows related messages together in conversations" msgstr "Raggruppa i messaggi correlati in conversazioni" -#: desktop/org.gnome.Geary.appdata.xml.in:31 +#: desktop/org.gnome.Geary.appdata.xml.in.in:31 msgid "Fast, full text and keyword search" msgstr "Ricerca rapida a testo intero (\"full text\") e per parole chiave" -#: desktop/org.gnome.Geary.appdata.xml.in:32 +#: desktop/org.gnome.Geary.appdata.xml.in.in:32 msgid "Full-featured HTML and plain text message composer" msgstr "Compositore dei messaggi in HTML e testo semplice" -#: desktop/org.gnome.Geary.appdata.xml.in:33 +#: desktop/org.gnome.Geary.appdata.xml.in.in:33 msgid "Desktop notification of new mail" msgstr "Notifiche desktop di nuova posta" -#: desktop/org.gnome.Geary.appdata.xml.in:34 +#: desktop/org.gnome.Geary.appdata.xml.in.in:34 msgid "Compatible with GMail, Yahoo! Mail, Outlook.com and other IMAP servers" msgstr "Compatibile con GMail, Yahoo! Mail, Outlook.com e altri server IMAP" #. Translators: A screenshot description. -#: desktop/org.gnome.Geary.appdata.xml.in:48 +#: desktop/org.gnome.Geary.appdata.xml.in.in:48 msgid "Geary displaying a conversation" msgstr "L'applicazione che mostra una conversazione" #. Translators: A screenshot description. -#: desktop/org.gnome.Geary.appdata.xml.in:59 +#: desktop/org.gnome.Geary.appdata.xml.in.in:59 msgid "Geary showing the rich text composer" msgstr "L'applicazione che mostra il compositore di testo formattato" #. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon. -#: desktop/org.gnome.Geary.desktop.in:7 +#: desktop/org.gnome.Geary.desktop.in.in:7 msgid "Mail;E-mail;IMAP;GMail;Yahoo;Hotmail;Outlook;" msgstr "Mail;E-mail;IMAP;GMail;Yahoo;Hotmail;Outlook;" -#: desktop/org.gnome.Geary.desktop.in:22 +#: desktop/org.gnome.Geary.desktop.in.in:22 msgid "Compose Message" msgstr "Componi messaggio" +#: desktop/org.gnome.Geary.desktop.in.in:26 +msgid "New Window" +msgstr "Nuova finestra" + #: desktop/org.gnome.Geary.gschema.xml:8 msgid "Maximize window" msgstr "Massimizza finestra" @@ -196,36 +202,59 @@ msgid "True if the folder list Paned is in the horizontal orientation." msgstr "Vero se l'elenco cartelle agganciato è nell'orientamento orizzontale." #: desktop/org.gnome.Geary.gschema.xml:50 +msgid "Show/hide formatting toolbar" +msgstr "Mostra/nascondi la barra degli strumenti di formattazione" + +#: desktop/org.gnome.Geary.gschema.xml:51 +msgid "True if the formatting toolbar in the composer is shown." +msgstr "" +"Vero per mostrare la barra degli strumenti di formattazione nel compositore." + +#: desktop/org.gnome.Geary.gschema.xml:56 msgid "Position of message list pane" msgstr "Posizione del riquadro dell'elenco messaggi" -#: desktop/org.gnome.Geary.gschema.xml:51 +#: desktop/org.gnome.Geary.gschema.xml:57 msgid "Position of the message list Paned grabber." msgstr "Posizione della maniglia del riquadro elenco messaggi." -#: desktop/org.gnome.Geary.gschema.xml:56 +#: desktop/org.gnome.Geary.gschema.xml:62 msgid "Autoselect next message" msgstr "Selezione automatica del messaggio successivo" -#: desktop/org.gnome.Geary.gschema.xml:57 +#: desktop/org.gnome.Geary.gschema.xml:63 msgid "True if we should autoselect the next available conversation." msgstr "" "Vero se si desidera selezionare automaticamente la conversazione disponibile " "successiva." -#: desktop/org.gnome.Geary.gschema.xml:62 +#: desktop/org.gnome.Geary.gschema.xml:68 msgid "Display message previews" msgstr "Visualizza le anteprime dei messaggi" -#: desktop/org.gnome.Geary.gschema.xml:63 +#: desktop/org.gnome.Geary.gschema.xml:69 msgid "True if we should display a short preview of each message." msgstr "Vero se si desidera mostrare una breve anteprima di ciascun messaggio." -#: desktop/org.gnome.Geary.gschema.xml:68 +#: desktop/org.gnome.Geary.gschema.xml:74 +#| msgctxt "shortcut window" +#| msgid "Single-key shortcuts" +msgid "Use single key shortcuts" +msgstr "Usa scorciatoie da tastiera a tasto singolo" + +#: desktop/org.gnome.Geary.gschema.xml:75 +msgid "" +"Enables shortcuts for email actions that do not require pressing to " +"emulate those used by Gmail." +msgstr "" +"Abilita le scorciatoie per le azioni email che non richiedono l'uso di " +", per emulare quelle usate da Gmail." + +#: desktop/org.gnome.Geary.gschema.xml:82 msgid "Languages that shall be used in the spell checker" msgstr "Lingue da usare nel controllo ortografico" -#: desktop/org.gnome.Geary.gschema.xml:69 +#: desktop/org.gnome.Geary.gschema.xml:83 msgid "" "A list of POSIX locales, with the empty list disabling spell checking and " "the null list using desktop languages by default." @@ -233,12 +262,12 @@ msgstr "" "Un elenco dei «locale» POSIX, dove un elenco vuoto disabilita il controllo " "ortografico e un elenco nullo utilizza le lingue predefinite del desktop." -#: desktop/org.gnome.Geary.gschema.xml:76 +#: desktop/org.gnome.Geary.gschema.xml:90 msgid "Languages that are displayed in the spell checker popover" msgstr "" "Lingue visualizzate nella finestra a comparsa del controllo ortografico" -#: desktop/org.gnome.Geary.gschema.xml:77 +#: desktop/org.gnome.Geary.gschema.xml:91 msgid "" "List of languages that are always displayed in the popover of the spell " "checker." @@ -246,77 +275,84 @@ msgstr "" "Elenco di lingue sempre visualizzate nella finestra a comparsa del controllo " "ortografico." -#: desktop/org.gnome.Geary.gschema.xml:82 -msgid "Enable notification sounds" -msgstr "Abilita avvisi sonori" - -#: desktop/org.gnome.Geary.gschema.xml:83 -msgid "True to play sounds for notifications and sending." -msgstr "Vero per riprodurre suoni di notifica e invio." - -#: desktop/org.gnome.Geary.gschema.xml:88 -msgid "Show notifications for new mail" -msgstr "Mostrare notifiche per la nuova posta" - -#: desktop/org.gnome.Geary.gschema.xml:89 -msgid "True to show notification bubbles." -msgstr "Vero per mostrare le nuvolette di notifica." - -#: desktop/org.gnome.Geary.gschema.xml:94 +#: desktop/org.gnome.Geary.gschema.xml:96 msgid "Notify of new mail at startup" msgstr "Notifica di nuova posta all'avvio" -#: desktop/org.gnome.Geary.gschema.xml:95 +#: desktop/org.gnome.Geary.gschema.xml:97 msgid "True to notify of new mail at startup." msgstr "Vero per avvisare all'avvio dell'arrivo di nuova posta." -#: desktop/org.gnome.Geary.gschema.xml:100 +#: desktop/org.gnome.Geary.gschema.xml:102 msgid "Ask when opening an attachment" msgstr "Chiedere prima di aprire un allegato" -#: desktop/org.gnome.Geary.gschema.xml:101 +#: desktop/org.gnome.Geary.gschema.xml:103 msgid "True to ask when opening an attachment." msgstr "Vero per chiedere prima di aprire un allegato." -#: desktop/org.gnome.Geary.gschema.xml:106 +#: desktop/org.gnome.Geary.gschema.xml:108 msgid "Whether to compose emails in HTML" msgstr "Se comporre le email in HTML" -#: desktop/org.gnome.Geary.gschema.xml:107 +#: desktop/org.gnome.Geary.gschema.xml:109 msgid "True to compose emails in HTML; false for plain text." msgstr "Vero per comporre le email in HTML; falso per il testo semplice." -#: desktop/org.gnome.Geary.gschema.xml:112 +#: desktop/org.gnome.Geary.gschema.xml:114 msgid "Advisory strategy for full-text searching" msgstr "Strategia di ricerca a testo intero" -#: desktop/org.gnome.Geary.gschema.xml:113 +#: desktop/org.gnome.Geary.gschema.xml:115 msgid "" "Acceptable values are “exact”, “conservative”, “aggressive”, and “horizon”." msgstr "" "I valori possibili sono “exact”, “conservative”, “aggressive” e “horizon”." -#: desktop/org.gnome.Geary.gschema.xml:118 +#: desktop/org.gnome.Geary.gschema.xml:120 msgid "Zoom of conversation viewer" msgstr "Ingrandimento del visualizzatore delle conversazioni" -#: desktop/org.gnome.Geary.gschema.xml:119 +#: desktop/org.gnome.Geary.gschema.xml:121 msgid "The zoom to apply on the conservation view." msgstr "L'ingrandimento da applicare al visualizzatore delle conversazioni." -#: desktop/org.gnome.Geary.gschema.xml:124 +#: desktop/org.gnome.Geary.gschema.xml:126 msgid "Size of detached composer window" msgstr "Dimensione della finestra di composizione staccata" -#: desktop/org.gnome.Geary.gschema.xml:125 +#: desktop/org.gnome.Geary.gschema.xml:127 msgid "The last recorded size of the detached composer window." msgstr "L'ultima dimensione salvata della finestra di composizione staccata." -#: desktop/org.gnome.Geary.gschema.xml:130 +#: desktop/org.gnome.Geary.gschema.xml:132 +#| msgid "Error sending email" +msgid "Undo sending email delay" +msgstr "Ritardo per annullare l'invio dell'email" + +#: desktop/org.gnome.Geary.gschema.xml:133 +msgid "" +"The number of seconds to wait before sending an email. Set to zero or less " +"to disable." +msgstr "" +"Il numero di secondi di attesa prima di inviare un'email. Impostarlo su zero " +"o meno per disabilitarlo." + +#: desktop/org.gnome.Geary.gschema.xml:139 +msgid "Brief notification display time" +msgstr "Tempo di visualizzazione delle notifiche brevi" + +#: desktop/org.gnome.Geary.gschema.xml:140 +msgid "" +"The length of time in seconds for which brief notifications should be " +"displayed." +msgstr "La durata (in secondi) di visualizzazione delle notifiche brevi." + +#: desktop/org.gnome.Geary.gschema.xml:146 msgid "Whether we migrated the old settings" msgstr "Indica se le vecchie impostazioni sono state migrate" -#: desktop/org.gnome.Geary.gschema.xml:131 +#: desktop/org.gnome.Geary.gschema.xml:147 msgid "" "False to check for the old “org.yorba.geary”-schema and copy its values." msgstr "" @@ -326,24 +362,24 @@ msgstr "" #. Translators: In-app notification label, when #. the app had a problem pinning an otherwise #. untrusted TLS certificate -#: src/client/accounts/accounts-editor.vala:203 +#: src/client/accounts/accounts-editor.vala:210 msgid "Failed to store certificate" msgstr "Salvataggio del certificato non riuscito" #. Translators: Label for adding an email account #. account for a generic IMAP service provider. -#: src/client/accounts/accounts-editor-add-pane.vala:109 +#: src/client/accounts/accounts-editor-add-pane.vala:108 msgid "All others" msgstr "Tutti gli altri" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:196 +#: src/client/accounts/accounts-editor-add-pane.vala:195 #: src/client/accounts/accounts-editor-servers-pane.vala:316 msgid "Check your receiving login and password" msgstr "Controllare le credenziali di accesso in ricezione" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:211 +#: src/client/accounts/accounts-editor-add-pane.vala:210 #: src/client/accounts/accounts-editor-servers-pane.vala:329 msgid "Check your receiving server details" msgstr "Controllare i dettagli del server in ricezione" @@ -353,51 +389,51 @@ msgstr "Controllare i dettagli del server in ricezione" #. succeeded, so the user probably needs to #. specify custom creds here #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:233 +#: src/client/accounts/accounts-editor-add-pane.vala:232 #: src/client/accounts/accounts-editor-servers-pane.vala:350 msgid "Check your sending login and password" msgstr "Controllare le credenziali di accesso in invio" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:247 +#: src/client/accounts/accounts-editor-add-pane.vala:246 #: src/client/accounts/accounts-editor-servers-pane.vala:363 msgid "Check your sending server details" msgstr "Controllare i dettagli del server in invio" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:262 +#: src/client/accounts/accounts-editor-add-pane.vala:261 msgid "Check your email address and password" msgstr "Controllare indirizzo email e password" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:273 +#: src/client/accounts/accounts-editor-add-pane.vala:272 msgid "Could not connect, check your network" msgstr "Impossibile connettersi, controllare la rete" #. Translators: In-app notification label for a #. generic error creating an account -#: src/client/accounts/accounts-editor-add-pane.vala:286 +#: src/client/accounts/accounts-editor-add-pane.vala:285 msgid "An unexpected problem occurred" msgstr "Si è verificato un problema inatteso" #. Translators: In-app notification label, the #. string substitution is a more detailed reason. -#: src/client/accounts/accounts-editor-add-pane.vala:304 +#: src/client/accounts/accounts-editor-add-pane.vala:303 #, c-format msgid "Account not created: %s" msgstr "Account non creato: %s" #. Translators: Label for the person's actual name when adding #. an account -#: src/client/accounts/accounts-editor-add-pane.vala:551 +#: src/client/accounts/accounts-editor-add-pane.vala:558 msgid "Your name" msgstr "Il tuo nome" #. Translators: Label used for the address part of an #. email address when editing a user's sender address #. preferences for an account. -#: src/client/accounts/accounts-editor-add-pane.vala:568 -#: src/client/accounts/accounts-editor-edit-pane.vala:501 +#: src/client/accounts/accounts-editor-add-pane.vala:575 +#: src/client/accounts/accounts-editor-edit-pane.vala:513 msgid "Email address" msgstr "Indirizzo email" @@ -406,8 +442,8 @@ msgstr "Indirizzo email" #. Translators: This is used as a placeholder for the #. address part of an email address when editing a user's #. sender address preferences for an account. -#: src/client/accounts/accounts-editor-add-pane.vala:571 -#: src/client/accounts/accounts-editor-edit-pane.vala:469 +#: src/client/accounts/accounts-editor-add-pane.vala:579 +#: src/client/accounts/accounts-editor-edit-pane.vala:479 msgid "person@example.com" msgstr "persona@esempio.com" @@ -415,15 +451,15 @@ msgstr "persona@esempio.com" #. when adding an account #. Translators: Label for the user's login name for an #. IMAP, SMTP, etc service -#: src/client/accounts/accounts-editor-add-pane.vala:585 -#: src/client/accounts/accounts-editor-servers-pane.vala:880 +#: src/client/accounts/accounts-editor-add-pane.vala:593 +#: src/client/accounts/accounts-editor-servers-pane.vala:884 msgid "Login name" msgstr "Nome di accesso" #. Translators: Label for the user's password for an IMAP, #. SMTP, etc service -#: src/client/accounts/accounts-editor-add-pane.vala:599 -#: src/client/accounts/accounts-editor-servers-pane.vala:999 +#: src/client/accounts/accounts-editor-add-pane.vala:607 +#: src/client/accounts/accounts-editor-servers-pane.vala:1006 #: ui/password-dialog.glade:108 msgid "Password" msgstr "Password" @@ -432,14 +468,14 @@ msgstr "Password" #. adding an account. #. Translators: This label describes the host name or IP #. address and port used by an account's IMAP service. -#: src/client/accounts/accounts-editor-add-pane.vala:621 -#: src/client/accounts/accounts-editor-servers-pane.vala:727 +#: src/client/accounts/accounts-editor-add-pane.vala:629 +#: src/client/accounts/accounts-editor-servers-pane.vala:728 msgid "IMAP server" msgstr "Server IMAP" #. Translators: Placeholder for the IMAP server hostname #. when adding an account. -#: src/client/accounts/accounts-editor-add-pane.vala:624 +#: src/client/accounts/accounts-editor-add-pane.vala:632 msgid "imap.example.com" msgstr "imap.esempio.com" @@ -447,20 +483,20 @@ msgstr "imap.esempio.com" #. adding an account. #. Translators: This label describes the host name or IP #. address and port used by an account's SMTP service. -#: src/client/accounts/accounts-editor-add-pane.vala:630 -#: src/client/accounts/accounts-editor-servers-pane.vala:733 +#: src/client/accounts/accounts-editor-add-pane.vala:638 +#: src/client/accounts/accounts-editor-servers-pane.vala:734 msgid "SMTP server" msgstr "Server SMTP" #. Translators: Placeholder for the SMTP server hostname #. when adding an account. -#: src/client/accounts/accounts-editor-add-pane.vala:633 +#: src/client/accounts/accounts-editor-add-pane.vala:641 msgid "smtp.example.com" msgstr "smtp.esempio.com" #. Translators: Label in the account editor for the user's #. custom name for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:278 +#: src/client/accounts/accounts-editor-edit-pane.vala:277 #: ui/accounts_editor_remove_pane.ui:123 msgid "Account name" msgstr "Nome account" @@ -469,46 +505,46 @@ msgstr "Nome account" #. the name of an account. The string #. substitution is the old name of the #. account. -#: src/client/accounts/accounts-editor-edit-pane.vala:312 +#: src/client/accounts/accounts-editor-edit-pane.vala:318 #, c-format msgid "Change account name back to “%s”" msgstr "Ritornare al precedente nome account “%s”" #. Translators: Tooltip for adding a new email sender/from #. address's address to an account -#: src/client/accounts/accounts-editor-edit-pane.vala:336 +#: src/client/accounts/accounts-editor-edit-pane.vala:342 msgid "Add a new sender email address" msgstr "Aggiunge un nuovo indirizzo email mittente" #. Translators: Label used to indicate the user has #. provided no display name for one of their sender #. email addresses in their account settings. -#: src/client/accounts/accounts-editor-edit-pane.vala:417 +#: src/client/accounts/accounts-editor-edit-pane.vala:423 msgid "Name not set" msgstr "Nome non impostato" #. Translators: This is used as a placeholder for the #. display name for an email address when editing a user's #. sender address preferences for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:456 +#: src/client/accounts/accounts-editor-edit-pane.vala:464 msgid "Sender Name" msgstr "Nome mittente" -#: src/client/accounts/accounts-editor-edit-pane.vala:479 +#: src/client/accounts/accounts-editor-edit-pane.vala:491 msgid "Remove" msgstr "Rimuovi" #. Translators: Label used for the display name part of an #. email address when editing a user's sender address #. preferences for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:494 +#: src/client/accounts/accounts-editor-edit-pane.vala:506 msgid "Sender name" msgstr "Nome mittente" #. Translators: Label used as the undo tooltip after adding an #. new sender email address to an account. The string #. substitution is the email address added. -#: src/client/accounts/accounts-editor-edit-pane.vala:561 +#: src/client/accounts/accounts-editor-edit-pane.vala:573 #, c-format msgid "Remove “%s”" msgstr "Rimuovere “%s”" @@ -516,7 +552,7 @@ msgstr "Rimuovere “%s”" #. Translators: Label used as the undo tooltip after editing a #. sender address for an account. The string substitution is #. the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:601 +#: src/client/accounts/accounts-editor-edit-pane.vala:613 #, c-format msgid "Undo changes to “%s”" msgstr "Annullare le modifiche a “%s”" @@ -524,7 +560,7 @@ msgstr "Annullare le modifiche a “%s”" #. Translators: Label used as the undo tooltip after removing #. a sender address from an account. The string substitution #. is the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:688 +#: src/client/accounts/accounts-editor-edit-pane.vala:700 #, c-format msgid "Add “%s” back" msgstr "Riaggiungere “%s”" @@ -532,14 +568,14 @@ msgstr "Riaggiungere “%s”" #. Translators: Label used as the undo tooltip after removing #. a sender address from an account. The string substitution #. is the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:730 +#: src/client/accounts/accounts-editor-edit-pane.vala:742 msgid "Undo signature changes" msgstr "Annullare le modifiche alla firma" #. Translators: This label describes the account #. preference for the length of time (weeks, months or #. years) that past email should be downloaded. -#: src/client/accounts/accounts-editor-edit-pane.vala:778 +#: src/client/accounts/accounts-editor-edit-pane.vala:790 msgid "Download mail" msgstr "Scarica posta" @@ -548,99 +584,100 @@ msgstr "Scarica posta" #. should be downloaded for an account. The #. string substitution is the duration, #. e.g. "1 month back". -#: src/client/accounts/accounts-editor-edit-pane.vala:810 +#: src/client/accounts/accounts-editor-edit-pane.vala:822 #, c-format msgid "Change download period back to: %s" msgstr "Ritornare al precedente periodo di scaricamento: %s" -#: src/client/accounts/accounts-editor-edit-pane.vala:831 +#: src/client/accounts/accounts-editor-edit-pane.vala:843 msgid "Everything" msgstr "Tutto" -#: src/client/accounts/accounts-editor-edit-pane.vala:835 +#: src/client/accounts/accounts-editor-edit-pane.vala:847 msgid "2 weeks back" msgstr "2 settimane fa" -#: src/client/accounts/accounts-editor-edit-pane.vala:839 +#: src/client/accounts/accounts-editor-edit-pane.vala:851 msgid "1 month back" msgstr "1 mese fa" -#: src/client/accounts/accounts-editor-edit-pane.vala:843 +#: src/client/accounts/accounts-editor-edit-pane.vala:855 msgid "3 months back" msgstr "3 mesi fa" -#: src/client/accounts/accounts-editor-edit-pane.vala:847 +#: src/client/accounts/accounts-editor-edit-pane.vala:859 msgid "6 months back" msgstr "6 mesi fa" -#: src/client/accounts/accounts-editor-edit-pane.vala:851 +#: src/client/accounts/accounts-editor-edit-pane.vala:863 msgid "1 year back" msgstr "1 anno fa" -#: src/client/accounts/accounts-editor-edit-pane.vala:855 +#: src/client/accounts/accounts-editor-edit-pane.vala:867 msgid "2 years back" msgstr "2 anni fa" -#: src/client/accounts/accounts-editor-edit-pane.vala:859 +#: src/client/accounts/accounts-editor-edit-pane.vala:871 msgid "4 years back" msgstr "4 anni fa" -#: src/client/accounts/accounts-editor-edit-pane.vala:865 +#: src/client/accounts/accounts-editor-edit-pane.vala:877 #, c-format msgid "%d day back" msgid_plural "%d days back" msgstr[0] "%d giorno fa" msgstr[1] "%d giorni fa" -#: src/client/accounts/accounts-editor-list-pane.vala:243 -#: src/client/application/application-controller.vala:2400 +#: src/client/accounts/accounts-editor-list-pane.vala:255 +#: src/client/application/application-main-window.vala:2053 msgid "Undo" msgstr "Annulla" -#: src/client/accounts/accounts-editor-list-pane.vala:251 +#: src/client/accounts/accounts-editor-list-pane.vala:264 +#: src/client/application/application-main-window.vala:2036 msgid "Redo" msgstr "Ripeti" -#: src/client/accounts/accounts-editor-list-pane.vala:345 -#: src/client/accounts/accounts-editor-list-pane.vala:433 +#: src/client/accounts/accounts-editor-list-pane.vala:358 +#: src/client/accounts/accounts-editor-list-pane.vala:446 #: src/client/accounts/accounts-editor-row.vala:279 msgid "Gmail" msgstr "Gmail" -#: src/client/accounts/accounts-editor-list-pane.vala:349 -#: src/client/accounts/accounts-editor-list-pane.vala:437 +#: src/client/accounts/accounts-editor-list-pane.vala:362 +#: src/client/accounts/accounts-editor-list-pane.vala:450 #: src/client/accounts/accounts-editor-row.vala:283 msgid "Outlook.com" msgstr "Outlook.com" -#: src/client/accounts/accounts-editor-list-pane.vala:353 -#: src/client/accounts/accounts-editor-list-pane.vala:441 +#: src/client/accounts/accounts-editor-list-pane.vala:366 +#: src/client/accounts/accounts-editor-list-pane.vala:454 #: src/client/accounts/accounts-editor-row.vala:287 msgid "Yahoo" msgstr "Yahoo" #. Translators: Tooltip for accounts that have been #. loaded but disabled by the user. -#: src/client/accounts/accounts-editor-list-pane.vala:371 +#: src/client/accounts/accounts-editor-list-pane.vala:384 msgid "This account has been disabled" msgstr "Questo account è stato disabilitato" #. Translators: Tooltip for accounts that have been #. loaded but because of some error are not able to be #. used. -#: src/client/accounts/accounts-editor-list-pane.vala:380 +#: src/client/accounts/accounts-editor-list-pane.vala:393 msgid "This account has encountered a problem and is unavailable" msgstr "Questo account si è imbattuto in un problema e non è disponibile" #. Translators: Label for adding a generic email account -#: src/client/accounts/accounts-editor-list-pane.vala:430 +#: src/client/accounts/accounts-editor-list-pane.vala:443 msgid "Other email providers" msgstr "Altri fornitori di posta elettronica" #. Translators: Notification shown after removing an #. account. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:547 +#: src/client/accounts/accounts-editor-list-pane.vala:560 #, c-format msgid "Account “%s” removed" msgstr "Account “%s” rimosso" @@ -648,7 +685,7 @@ msgstr "Account “%s” rimosso" #. Translators: Notification shown after removing an account #. is undone. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:554 +#: src/client/accounts/accounts-editor-list-pane.vala:567 #, c-format msgid "Account “%s” restored" msgstr "Account “%s” ripristinato" @@ -675,8 +712,8 @@ msgstr "Sicurezza della connessione" #. Translators: Label used when no auth scheme is used #. by an account's IMAP or SMTP service. #: src/client/accounts/accounts-editor-row.vala:479 -#: src/client/accounts/accounts-editor-servers-pane.vala:752 -#: src/client/accounts/accounts-editor-servers-pane.vala:964 +#: src/client/accounts/accounts-editor-servers-pane.vala:755 +#: src/client/accounts/accounts-editor-servers-pane.vala:970 #: src/engine/api/geary-special-folder-type.vala:58 msgid "None" msgstr "Nessuna" @@ -693,7 +730,8 @@ msgstr "TLS" #. credentials (none, use IMAP, custom) when adding a new #. account #. Button label for retrying when a login error has occurred -#: src/client/accounts/accounts-editor-row.vala:534 ui/main-window.ui:346 +#: src/client/accounts/accounts-editor-row.vala:534 +#: ui/application-main-window.ui:346 msgid "Login" msgstr "Accesso" @@ -753,45 +791,331 @@ msgstr "Salvare la posta inviata sul server" #. Translators: Label used when an account's IMAP or #. SMTP service uses OAuth2. The string replacement is #. the service's login name. -#: src/client/accounts/accounts-editor-servers-pane.vala:950 +#: src/client/accounts/accounts-editor-servers-pane.vala:956 #, c-format msgid "%s using OAuth2" msgstr "%s usando OAuth2" -#: src/client/accounts/accounts-editor-servers-pane.vala:960 +#: src/client/accounts/accounts-editor-servers-pane.vala:966 msgid "Use receiving server login" msgstr "Usare le credenziali di accesso del server di ricezione" #. Translators: File name used in save chooser when saving #. attachments that do not otherwise have a name. -#: src/client/application/application-controller.vala:59 +#: src/client/application/application-attachment-manager.vala:21 msgid "Untitled" msgstr "Senza titolo" +#. / Translators: Dialog primary label when prompting to +#. / overwrite a file. The string substitution is the file'sx +#. / name. +#: src/client/application/application-attachment-manager.vala:222 +#, c-format +msgid "A file named “%s” already exists. Do you want to replace it?" +msgstr "Il file «%s» esiste già. Sostituirlo?" + +#. / Translators: Dialog secondary label when prompting to +#. / overwrite a file. The string substitution is the parent +#. / folder's name. +#: src/client/application/application-attachment-manager.vala:229 +#, c-format +msgid "" +"The file already exists in “%s”. Replacing it will overwrite its contents." +msgstr "" +"Il file esiste già in «%s». Sostituendolo il suo contenuto sarà sovrascritto." + +#: src/client/application/application-attachment-manager.vala:236 +msgid "_Replace" +msgstr "_Sostituisci" + +#: src/client/application/application-client.vala:33 +msgid "Copyright 2016 Software Freedom Conservancy Inc." +msgstr "Copyright 2016 Software Freedom Conservancy Inc." + +#: src/client/application/application-client.vala:34 +msgid "Copyright 2016-2019 Geary Development Team." +msgstr "Copyright 2016-2019 gruppo sviluppatori di Geary." + +#: src/client/application/application-client.vala:36 +msgid "Visit the Geary web site" +msgstr "Visita il sito web di Geary" + +#. / Command line option +#: src/client/application/application-client.vala:94 +msgid "Print debug logging" +msgstr "Stampa le informazioni di debug" + +#. / Command line option +#: src/client/application/application-client.vala:97 +msgid "Start with the main window hidden (deprecated)" +msgstr "Avvia l'applicazione nascondendo la finestra principale (deprecato)" + +#. / Command line option +#: src/client/application/application-client.vala:100 +msgid "Enable WebKitGTK Inspector in web views" +msgstr "Abilita l'inspector WebKitGTK nelle viste web" + +#. / Command line option +#: src/client/application/application-client.vala:103 +msgid "Log conversation monitoring" +msgstr "Registra il monitoraggio delle conversazioni" + +#. / Command line option +#: src/client/application/application-client.vala:106 +msgid "Log IMAP network deserialization" +msgstr "Registra deserializzazione di rete IMAP" + +#. / Command line option. "Normalization" can also be called +#. / "synchronization". +#: src/client/application/application-client.vala:110 +msgid "Log folder normalization" +msgstr "Registra la sincronizzazione della cartella" + +#. / Command line option +#: src/client/application/application-client.vala:113 +msgid "Log network activity" +msgstr "Registra attività di rete" + +#. / Command line option +#: src/client/application/application-client.vala:116 +msgid "Log periodic activity" +msgstr "Registra attività periodiche" + +#. / Command line option. The IMAP replay queue is how changes +#. / on the server are replicated on the client. It could +#. / also be called the IMAP events queue. +#: src/client/application/application-client.vala:121 +msgid "Log IMAP replay queue" +msgstr "Registra la coda di eventi IMAP" + +#. / Command line option. Serialization is how commands and +#. / responses are converted into a stream of bytes for +#. / network transmission +#: src/client/application/application-client.vala:126 +msgid "Log IMAP network serialization" +msgstr "Registra serializzazione di rete IMAP" + +#. / Command line option +#: src/client/application/application-client.vala:129 +msgid "Log database queries (generates lots of messages)" +msgstr "Registra le ricerche nel database (genera numerosi messaggi)" + +#. / Command line option +#: src/client/application/application-client.vala:132 +msgid "Perform a graceful quit" +msgstr "Esegui un'uscita non forzata" + +#: src/client/application/application-client.vala:134 +msgid "Open a new window" +msgstr "Apri una nuova finestra" + +#. / Command line option +#: src/client/application/application-client.vala:137 +msgid "Revoke all pinned TLS server certificates" +msgstr "Revoca tutti i certificati TLS «pinned» del server" + +#. / Command line option +#: src/client/application/application-client.vala:140 +msgid "Display program version" +msgstr "Visualizza la versione del programma" + +#. / Application runtime information label +#: src/client/application/application-client.vala:264 +msgid "Geary version" +msgstr "Geary versione" + +#. / Application runtime information label +#: src/client/application/application-client.vala:266 +msgid "Geary revision" +msgstr "Geary revisione" + +#. / Application runtime information label +#: src/client/application/application-client.vala:268 +msgid "GTK version" +msgstr "GTK versione" + +#. / Applciation runtime information label +#: src/client/application/application-client.vala:275 +msgid "GLib version" +msgstr "GLib versione" + +#. / Application runtime information label +#: src/client/application/application-client.vala:282 +msgid "WebKitGTK version" +msgstr "WebKitGTK versione" + +#. / Application runtime information label +#: src/client/application/application-client.vala:289 +msgid "Desktop environment" +msgstr "Ambiente desktop" + +#. Translators: This is the file type displayed for +#. attachments with unknown file types. +#: src/client/application/application-client.vala:291 +#: src/client/components/components-attachment-pane.vala:91 +msgid "Unknown" +msgstr "Sconosciuto" + +#. / Application runtime information label +#: src/client/application/application-client.vala:321 +msgid "Distribution name" +msgstr "Nome della distribuzione" + +#. / Application runtime information label +#: src/client/application/application-client.vala:326 +msgid "Distribution release" +msgstr "Rilascio della distribuzione" + +#. / Application runtime information label +#: src/client/application/application-client.vala:334 +msgid "Installation prefix" +msgstr "Prefisso di installazione" + +#: src/client/application/application-client.vala:587 +#, c-format +msgid "About %s" +msgstr "Informazioni su %s" + +#. Translators: add your name and email address to receive +#. credit in the About dialog For example: Yamada Taro +#. +#: src/client/application/application-client.vala:591 +msgid "translator-credits" +msgstr "" +"Daniele Napolitano\n" +"Federico Bruni \n" +"Gianvito Cavasoli " + +#. / Warning printed to the console when a deprecated +#. / command line option is used. +#: src/client/application/application-client.vala:937 +msgid "The `--hidden` option is deprecated and will be removed in the future." +msgstr "L'opzione `--hidden` è deprecata e in futuro verrà tolta." + +#. / Command line warning, string substitution +#. / is the given argument +#: src/client/application/application-client.vala:970 +#, c-format +msgid "Unrecognised program argument: “%s”" +msgstr "Argomento del programma non riconosciuto: «%s»" + #. / Notification title. -#: src/client/application/application-controller.vala:559 +#: src/client/application/application-controller.vala:458 #, c-format msgid "A problem occurred sending email for %s" msgstr "Si è verificato un problema nell'inviare la posta per %s" #. / Notification body -#: src/client/application/application-controller.vala:563 +#: src/client/application/application-controller.vala:462 msgid "Email will not be sent until re-connected" msgstr "La posta non sarà inviata finché fuori rete" -#: src/client/application/application-controller.vala:914 -msgid "Labels" -msgstr "Etichette" +#. / Translators: Label for in-app notification +#: src/client/application/application-controller.vala:568 +#| msgid "Conversation Shortcuts" +msgid "Conversation marked" +msgid_plural "Conversations marked" +msgstr[0] "Conversazione contrassegnata" +msgstr[1] "Conversazioni contrassegnate" -#. give the user two options: reset the Account local store, or exit Geary. A third -#. could be done to leave the Account in an unopened state, but we don't currently -#. have provisions for that. -#: src/client/application/application-controller.vala:927 +#. / Translators: Label for in-app notification +#: src/client/application/application-controller.vala:574 +#| msgid "No conversations found" +msgid "Conversation un-marked" +msgid_plural "Conversations un-marked" +msgstr[0] "Conversazione non contrassegnata" +msgstr[1] "Conversazioni non contrassegnate" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:600 +#: src/client/application/application-controller.vala:684 +#, c-format +#| msgid "Conversation Shortcuts" +msgid "Conversation moved to %s" +msgid_plural "Conversations moved to %s" +msgstr[0] "Conversazione spostata in %s" +msgstr[1] "Conversazioni spostate in %s" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the source folder. +#. / Translators: Label for in-app notification. String +#. / substitution is the name of the destination folder. +#: src/client/application/application-controller.vala:608 +#: src/client/application/application-controller.vala:630 +#, c-format +#| msgid "Conversation Shortcuts" +msgid "Conversation restored to %s" +msgid_plural "Conversations restored to %s" +msgstr[0] "Conversazione ripristinata in %s" +msgstr[1] "Conversazioni ripristinate in %s" + +#. / Translators: Label for in-app notification. +#: src/client/application/application-controller.vala:651 +#| msgid "Conversation Shortcuts" +msgid "Conversation archived" +msgid_plural "Conversations archived" +msgstr[0] "Conversazione archiviata in %s" +msgstr[1] "Conversazioni archiviate in %s" + +#. / Translators: Label for in-app notification. String +#. / substitution is the name of the destination folder. +#: src/client/application/application-controller.vala:707 +#, c-format +#| msgid "Message not saved" +msgid "Message restored to %s" +msgid_plural "Messages restored to %s" +msgstr[0] "Messaggio ripristinato in %s" +msgstr[1] "Messaggi ripristinati in %s" + +#. / Translators: Label for in-app notification. +#: src/client/application/application-controller.vala:728 +#| msgid "Message not saved" +msgid "Message archived" +msgid_plural "Messages archived" +msgstr[0] "Messaggio archiviato" +msgstr[1] "Messaggi archiviati" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:763 +#, c-format +#| msgid "Message not saved" +msgid "Message moved to %s" +msgid_plural "Messages moved to %s" +msgstr[0] "Messaggio spostato in %s" +msgstr[1] "Messaggi spostati in %s" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:791 +#, c-format +#| msgid "No conversations selected" +msgid "Conversation labelled as %s" +msgid_plural "Conversations labelled as %s" +msgstr[0] "Csonversazione etichettata come %s" +msgstr[1] "Conversazioni etichettate come %s" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:799 +#, c-format +msgid "Conversation un-labelled as %s" +msgid_plural "Conversations un-labelled as %s" +msgstr[0] "Conversazione non etichettata come %s" +msgstr[1] "Conversazioni non etichettate come %s" + +#: src/client/application/application-controller.vala:1222 #, c-format msgid "Unable to open the database for %s" msgstr "Impossibile aprire il database per %s" -#: src/client/application/application-controller.vala:928 +#: src/client/application/application-controller.vala:1223 #, c-format msgid "" "There was an error opening the local mail database for this account. This is " @@ -817,20 +1141,20 @@ msgstr "" "allegati. Tale operazione non ha effetti sulla posta presente sul server." "" -#: src/client/application/application-controller.vala:930 +#: src/client/application/application-controller.vala:1225 msgid "_Rebuild" msgstr "_Ricostruisci" -#: src/client/application/application-controller.vala:930 +#: src/client/application/application-controller.vala:1225 msgid "E_xit" msgstr "_Esci" -#: src/client/application/application-controller.vala:939 +#: src/client/application/application-controller.vala:1235 #, c-format msgid "Unable to rebuild database for “%s”" msgstr "Impossibile ricostruire il database per «%s»" -#: src/client/application/application-controller.vala:940 +#: src/client/application/application-controller.vala:1236 #, c-format msgid "" "Error during rebuild:\n" @@ -841,18 +1165,112 @@ msgstr "" "\n" "%s" -#: src/client/application/application-controller.vala:1734 +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:1559 #, c-format -msgid "Moved %d message to %s" -msgid_plural "Moved %d messages to %s" -msgstr[0] "%d messaggio spostato in %s" -msgstr[1] "%d messaggi spostati in %s" +msgid "Email sent to %s" +msgstr "Email inviata a %s" -#: src/client/application/application-controller.vala:1744 +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2642 +#, c-format +msgid "Email to %s queued for delivery" +msgstr "Email a %s in coda per la consegna" + +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2706 +#, c-format +msgid "Email to %s saved" +msgstr "Email a %s salvata" + +#. / Translators: A label for an in-app notification. +#: src/client/application/application-controller.vala:2721 +#: src/client/application/application-controller.vala:2779 +msgid "Composer could not be restored" +msgstr "Impossibile ripristinare il compositore" + +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2764 +#, c-format +msgid "Email to %s discarded" +msgstr "Email a %s scartata" + +#. / Translators: Main window title, first string +#. / substitution being the currently selected folder name, +#. / the second being the selected account name. +#: src/client/application/application-main-window.vala:560 +#, c-format +msgid "%s — %s" +msgstr "%s — %s" + +#: src/client/application/application-main-window.vala:967 +msgid "Labels" +msgstr "Etichette" + +#. / Translators: Primary text for a confirmation dialog +#: src/client/application/application-main-window.vala:1306 +#| msgid "Do you want to permanently delete this message?" +#| msgid_plural "Do you want to permanently delete these messages?" +msgid "Do you want to permanently delete this conversation?" +msgid_plural "Do you want to permanently delete these conversations?" +msgstr[0] "Eliminare permanentemente questa conversazione?" +msgstr[1] "Eliminare permanentemente queste conversazioni?" + +#: src/client/application/application-main-window.vala:1311 +#: src/client/application/application-main-window.vala:1326 +msgid "Delete" +msgstr "Elimina" + +#. / Translators: Primary text for a confirmation dialog +#: src/client/application/application-main-window.vala:1321 +msgid "Do you want to permanently delete this message?" +msgid_plural "Do you want to permanently delete these messages?" +msgstr[0] "Eliminare permanentemente questo messaggio?" +msgstr[1] "Eliminare permanentemente questi messaggi?" + +#: src/client/application/application-main-window.vala:1334 +#, c-format +msgid "Empty all email from your %s folder?" +msgstr "Svuotare tutte le email dalla cartella %s?" + +#: src/client/application/application-main-window.vala:1337 +msgid "This removes the email from Geary and your email server." +msgstr "Questo rimuoverà le email dall'applicazione e dal server di posta." + +#: src/client/application/application-main-window.vala:1338 +msgid "This cannot be undone." +msgstr "Impossibile annullare questa azione." + +#: src/client/application/application-main-window.vala:1339 +#, c-format +msgid "Empty %s" +msgstr "Svuota %s" + +#: src/client/application/application-main-window.vala:1669 +#, c-format +msgid "%s (%d)" +msgstr "%s (%d)" + +#. Translators: The first argument will be a +#. description of the document type, the second will +#. be a human-friendly size string. For example: +#. Document (100.9MB) +#. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" +#: src/client/components/components-attachment-pane.vala:107 +#: src/client/composer/composer-widget.vala:1834 +#, c-format +msgid "%s (%s)" +msgstr "%s (%s)" + +#: src/client/components/components-attachment-pane.vala:379 msgid "Are you sure you want to open these attachments?" msgstr "Sicuri di voler aprire questi allegati?" -#: src/client/application/application-controller.vala:1745 +#: src/client/components/components-attachment-pane.vala:380 msgid "" "Attachments may cause damage to your system if opened. Only open files from " "trusted sources." @@ -860,363 +1278,169 @@ msgstr "" "Gli allegati possono danneggiare il sistema se aperti. Aprire solo file " "provenienti da fonti fidate." -#: src/client/application/application-controller.vala:1746 +#: src/client/components/components-attachment-pane.vala:381 msgid "Don’t _ask me again" msgstr "_Non chiederlo più" -#. Translators: Dialog primary label when prompting to -#. overwrite a file. The string substitution is the file'sx -#. name. -#: src/client/application/application-controller.vala:1869 -#, c-format -msgid "A file named “%s” already exists. Do you want to replace it?" -msgstr "Il file «%s» esiste già. Sostituirlo?" - -#. Translators: Dialog secondary label when prompting to -#. overwrite a file. The string substitution is the parent -#. folder's name. -#: src/client/application/application-controller.vala:1876 -#, c-format -msgid "" -"The file already exists in “%s”. Replacing it will overwrite its contents." -msgstr "" -"Il file esiste già in «%s». Sostituendolo il suo contenuto sarà sovrascritto." - -#: src/client/application/application-controller.vala:1880 -msgid "_Replace" -msgstr "_Sostituisci" - -#: src/client/application/application-controller.vala:2240 -#, c-format -msgid "Empty all email from your %s folder?" -msgstr "Svuotare tutte le email dalla cartella %s?" - -#: src/client/application/application-controller.vala:2241 -msgid "This removes the email from Geary and your email server." -msgstr "Questo rimuoverà le email dall'applicazione e dal server di posta." - -#: src/client/application/application-controller.vala:2242 -msgid "This cannot be undone." -msgstr "Impossibile annullare questa azione." - -#: src/client/application/application-controller.vala:2243 -#, c-format -msgid "Empty %s" -msgstr "Svuota %s" - -#: src/client/application/application-controller.vala:2260 -#, c-format -msgid "Error emptying %s" -msgstr "Errore nello svuotare %s" - -#: src/client/application/application-controller.vala:2291 -msgid "Do you want to permanently delete this message?" -msgid_plural "Do you want to permanently delete these messages?" -msgstr[0] "Eliminare permanentemente questo messaggio?" -msgstr[1] "Eliminare permanentemente questi messaggi?" - -#: src/client/application/application-controller.vala:2293 -msgid "Delete" -msgstr "Elimina" - -#: src/client/application/application-controller.vala:2307 -#, c-format -msgid "Trashed %d message" -msgid_plural "Trashed %d messages" -msgstr[0] "%d messaggio cestinato" -msgstr[1] "%d messaggi cestinati" - -#: src/client/application/application-controller.vala:2354 -#, c-format -msgid "Archived %d message" -msgid_plural "Archived %d messages" -msgstr[0] "%d messaggio archiviato" -msgstr[1] "%d messaggi archiviati" - -#. Translators: The label for an in-app notification. The -#. string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2482 -#, c-format -msgid "Successfully sent mail to %s." -msgstr "Posta inviata con successo a %s." - -#: src/client/application/application-controller.vala:2560 -msgid "Failed to open default text editor." -msgstr "Apertura dell'editor di testo predefinito non riuscita." - -#: src/client/application/geary-application.vala:25 -msgid "Copyright 2016 Software Freedom Conservancy Inc." -msgstr "Copyright 2016 Software Freedom Conservancy Inc." - -#: src/client/application/geary-application.vala:26 -msgid "Copyright 2016-2019 Geary Development Team." -msgstr "Copyright 2016-2019 gruppo sviluppatori di Geary." - -#: src/client/application/geary-application.vala:28 -msgid "Visit the Geary web site" -msgstr "Visita il sito web di Geary" - -#. / Command line option -#: src/client/application/geary-application.vala:104 -msgid "Print debug logging" -msgstr "Stampa le informazioni di debug" - -#. / Command line option -#: src/client/application/geary-application.vala:107 -msgid "Start with the main window hidden (deprecated)" -msgstr "Avvia l'applicazione nascondendo la finestra principale (deprecato)" - -#. / Command line option -#: src/client/application/geary-application.vala:110 -msgid "Enable WebKitGTK Inspector in web views" -msgstr "Abilita l'inspector WebKitGTK nelle viste web" - -#. / Command line option -#: src/client/application/geary-application.vala:113 -msgid "Log conversation monitoring" -msgstr "Registra il monitoraggio delle conversazioni" - -#. / Command line option -#: src/client/application/geary-application.vala:116 -msgid "Log IMAP network deserialization" -msgstr "Registra deserializzazione di rete IMAP" - -#. / Command line option. "Normalization" can also be called -#. / "synchronization". -#: src/client/application/geary-application.vala:120 -msgid "Log folder normalization" -msgstr "Registra la sincronizzazione della cartella" - -#. / Command line option -#: src/client/application/geary-application.vala:123 -msgid "Log network activity" -msgstr "Registra attività di rete" - -#. / Command line option -#: src/client/application/geary-application.vala:126 -msgid "Log periodic activity" -msgstr "Registra attività periodiche" - -#. / Command line option. The IMAP replay queue is how changes -#. / on the server are replicated on the client. It could -#. / also be called the IMAP events queue. -#: src/client/application/geary-application.vala:131 -msgid "Log IMAP replay queue" -msgstr "Registra la coda di eventi IMAP" - -#. / Command line option. Serialization is how commands and -#. / responses are converted into a stream of bytes for -#. / network transmission -#: src/client/application/geary-application.vala:136 -msgid "Log IMAP network serialization" -msgstr "Registra serializzazione di rete IMAP" - -#. / Command line option -#: src/client/application/geary-application.vala:139 -msgid "Log database queries (generates lots of messages)" -msgstr "Registra le ricerche nel database (genera numerosi messaggi)" - -#. / Command line option -#: src/client/application/geary-application.vala:142 -msgid "Perform a graceful quit" -msgstr "Esegui un'uscita non forzata" - -#. / Command line option -#: src/client/application/geary-application.vala:145 -msgid "Revoke all pinned TLS server certificates" -msgstr "Revoca tutti i certificati TLS «pinned» del server" - -#. / Command line option -#: src/client/application/geary-application.vala:148 -msgid "Display program version" -msgstr "Visualizza la versione del programma" - -#. Use this to specify arguments in the help section -#. / Command line option -#: src/client/application/geary-application.vala:152 -msgid "Display program version and revision id" -msgstr "Visualizza la versione del programma e l'id di revisione" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:279 -msgid "Geary version" -msgstr "Geary versione" - -#: src/client/application/geary-application.vala:280 -msgid "Geary revision" -msgstr "Geary revisione" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:282 -msgid "GTK version" -msgstr "GTK versione" - -#. / Applciation runtime information label -#: src/client/application/geary-application.vala:289 -msgid "GLib version" -msgstr "GLib versione" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:296 -msgid "WebKitGTK version" -msgstr "WebKitGTK versione" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:303 -msgid "Desktop environment" -msgstr "Ambiente desktop" - -#. Translators: This is the file type displayed for -#. attachments with unknown file types. -#: src/client/application/geary-application.vala:305 -#: src/client/conversation-viewer/conversation-email.vala:159 -msgid "Unknown" -msgstr "Sconosciuto" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:335 -msgid "Distribution name" -msgstr "Nome della distribuzione" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:340 -msgid "Distribution release" -msgstr "Rilascio della distribuzione" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:348 -msgid "Installation prefix" -msgstr "Prefisso di installazione" - -#: src/client/application/geary-application.vala:513 -#, c-format -msgid "About %s" -msgstr "Informazioni su %s" - -#. Translators: add your name and email address to receive -#. credit in the About dialog For example: Yamada Taro -#. -#: src/client/application/geary-application.vala:517 -msgid "translator-credits" -msgstr "" -"Daniele Napolitano\n" -"Federico Bruni \n" -"Gianvito Cavasoli " - -#. / Warning printed to the console when a deprecated -#. / command line option is used. -#: src/client/application/geary-application.vala:790 -msgid "The `--hidden` option is deprecated and will be removed in the future." -msgstr "L'opzione `--hidden` è deprecata e in futuro verrà tolta." - -#. / Command line warning, string substitution -#. / is the given argument -#: src/client/application/geary-application.vala:822 -#, c-format -msgid "Unrecognised program argument: “%s”" -msgstr "Argomento del programma non riconosciuto: «%s»" - -#: src/client/components/components-inspector.vala:68 +#: src/client/components/components-inspector.vala:72 msgid "Inspector" msgstr "Inspector" #. / Translators: Title for Inspector logs pane #. / Translators: Title for problem report dialog logs pane -#: src/client/components/components-inspector.vala:77 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:91 +#: src/client/components/components-inspector.vala:87 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:102 msgid "Logs" msgstr "Registro" #. / Translators: Title for Inspector system system information pane #. / Translators: Title for problem report system information #. / pane -#: src/client/components/components-inspector.vala:81 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:94 +#: src/client/components/components-inspector.vala:91 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:105 msgid "System" msgstr "Sistema" #. Button label for saving problem report information -#: src/client/components/components-inspector.vala:198 -#: src/client/components/components-inspector.vala:201 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:210 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:213 +#: src/client/components/components-inspector.vala:208 +#: src/client/components/components-inspector.vala:211 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:221 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:224 #: ui/problem-details-dialog.ui:42 msgid "Save As" msgstr "Salva come" -#: src/client/components/components-inspector.vala:202 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:214 +#: src/client/components/components-inspector.vala:212 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:225 #: ui/accounts_editor_servers_pane.ui:17 msgid "Cancel" msgstr "Annulla" +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:43 +msgid "_Automatically select next message" +msgstr "_Selezionare automaticamente il messaggio successivo" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:53 +msgid "_Display conversation preview" +msgstr "_Visualizzare l'anteprima della conversazione" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:63 +msgid "Use _three pane view" +msgstr "Usare la visuale a _tre riquadri" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:73 +#| msgctxt "shortcut window" +#| msgid "Single-key shortcuts" +msgid "Use _single key email shortcuts" +msgstr "Usa le scorciatoie da tastiera a tasto _singolo" + +#: src/client/components/components-preferences-window.vala:75 +msgid "" +"Enable keyboard shortcuts for email actions that do not require pressing " +"" +msgstr "" +"Abilita le scorciatoie da tastiera per le azioni email che non richiedono " +"l'uso di " + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:86 +msgid "_Watch for new mail when closed" +msgstr "_Controllare la nuova posta dopo la chiusura" + +#. / Translators: Preferences tooltip +#: src/client/components/components-preferences-window.vala:90 +msgid "Geary will keep running after all windows are closed" +msgstr "" +"L'applicazione resterà in esecuzione anche dopo che tutte le finestre sono " +"state chiuse" + +#. / Translators: Search entry placeholder text +#: src/client/components/components-search-bar.vala:12 +#: src/client/folder-list/folder-list-search-branch.vala:53 +#: src/engine/api/geary-special-folder-type.vala:51 +msgid "Search" +msgstr "Cerca" + +#. / Translators: Search entry tooltip +#: src/client/components/components-search-bar.vala:32 +#| msgid "Search all mail in account for keywords (Ctrl+S)" +msgid "Search all mail in account for keywords" +msgstr "Cerca le parole chiave in tutta la posta dell'account" + +#. / Translators: Search entry placeholder, string +#. / replacement is the name of an account +#: src/client/components/components-search-bar.vala:81 +#: src/client/folder-list/folder-list-search-branch.vala:54 +#, c-format +msgid "Search %s account" +msgstr "Cerca l'account %s" + #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but one is not provided. -#: src/client/components/components-validator.vala:378 +#: src/client/components/components-validator.vala:390 msgid "An email address is required" msgstr "È richiesto un indirizzo email" #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but the address is invalid. -#: src/client/components/components-validator.vala:382 +#: src/client/components/components-validator.vala:394 msgid "Not a valid email address" msgstr "Indirizzo email non valido" #. Translators: Tooltip used when an entry requires a valid, #. resolvable server name to be entered, but one is not #. provided. -#: src/client/components/components-validator.vala:428 +#: src/client/components/components-validator.vala:440 msgid "A server name is required" msgstr "È richiesto un nome del server" #. Translators: Tooltip used when an entry requires a valid #. server name to be entered, but it was unable to be #. looked-up in the DNS. -#: src/client/components/components-validator.vala:433 +#: src/client/components/components-validator.vala:445 msgid "Could not look up server name" msgstr "Impossibile trovare il nome del server" -#: src/client/components/main-toolbar.vala:139 +#: src/client/components/main-toolbar.vala:116 msgid "Mark conversation" msgid_plural "Mark conversations" msgstr[0] "Contrassegna conversazione" msgstr[1] "Contrassegna conversazioni" -#: src/client/components/main-toolbar.vala:144 +#: src/client/components/main-toolbar.vala:121 msgid "Add label to conversation" msgid_plural "Add label to conversations" msgstr[0] "Aggiunge etichetta alla conversazione" msgstr[1] "Aggiunge etichetta alle conversazioni" -#: src/client/components/main-toolbar.vala:149 +#: src/client/components/main-toolbar.vala:126 msgid "Move conversation" msgid_plural "Move conversations" msgstr[0] "Sposta conversazione" msgstr[1] "Sposta conversazioni" -#: src/client/components/main-toolbar.vala:154 +#: src/client/components/main-toolbar.vala:131 msgid "Archive conversation" msgid_plural "Archive conversations" msgstr[0] "Archivia conversazione" msgstr[1] "Archivia conversazioni" -#: src/client/components/main-toolbar.vala:163 +#: src/client/components/main-toolbar.vala:142 msgid "Move conversation to Trash" msgid_plural "Move conversations to Trash" msgstr[0] "Sposta conversazione nel cestino" msgstr[1] "Sposta conversazioni nel cestino" -#: src/client/components/main-toolbar.vala:171 +#: src/client/components/main-toolbar.vala:152 msgid "Delete conversation" msgid_plural "Delete conversations" msgstr[0] "Elimina conversazione" msgstr[1] "Elimina conversazioni" -#: src/client/components/main-window.vala:733 -#, c-format -msgid "%s (%d)" -msgstr "%s (%d)" - #. Translators: Info bar title for a generic account #. problem. #: src/client/components/main-window-info-bar.vala:44 @@ -1287,28 +1511,6 @@ msgstr "Visualizza i dettagli tecnici relativi all'errore" msgid "_Retry" msgstr "_Riprova" -#: src/client/components/search-bar.vala:8 -#: src/client/folder-list/folder-list-search-branch.vala:38 -#: src/engine/api/geary-special-folder-type.vala:51 -msgid "Search" -msgstr "Cerca" - -#. Search entry. -#: src/client/components/search-bar.vala:23 -msgid "Search all mail in account for keywords (Ctrl+S)" -msgstr "Cerca le parole chiave in tutta la posta dell'account (Ctrl+S)" - -#: src/client/components/search-bar.vala:83 -#, c-format -msgid "Indexing %s account" -msgstr "Indicizzazione dell'account %s" - -#: src/client/components/search-bar.vala:110 -#: src/client/folder-list/folder-list-search-branch.vala:39 -#, c-format -msgid "Search %s account" -msgstr "Cerca l'account %s" - #. / Displayed in the space-limited status bar while a message is in the process of being sent. #: src/client/components/status-bar.vala:26 msgid "Sending…" @@ -1349,15 +1551,15 @@ msgstr "_Chiudi" msgid "_Discard" msgstr "_Scarta" -#: src/client/components/stock.vala:25 ui/main-toolbar-menus.ui:56 +#: src/client/components/stock.vala:25 ui/main-toolbar-menus.ui:52 msgid "_Help" msgstr "A_iuto" -#: src/client/components/stock.vala:26 ui/conversation-email-menus.ui:77 +#: src/client/components/stock.vala:26 ui/components-attachment-pane-menus.ui:7 msgid "_Open" msgstr "_Apri" -#: src/client/components/stock.vala:27 ui/main-toolbar-menus.ui:46 +#: src/client/components/stock.vala:27 ui/main-toolbar-menus.ui:42 msgid "_Preferences" msgstr "Preferen_ze" @@ -1374,7 +1576,8 @@ msgstr "_Esci" msgid "_Remove" msgstr "_Rimuovi" -#: src/client/components/stock.vala:31 ui/conversation-email-menus.ui:83 +#: src/client/components/stock.vala:31 +#: ui/components-attachment-pane-menus.ui:11 msgid "_Save" msgstr "_Salva" @@ -1382,41 +1585,47 @@ msgstr "_Salva" msgid "_Keep" msgstr "_Mantieni" -#: src/client/composer/composer-link-popover.vala:149 +#: src/client/composer/composer-link-popover.vala:139 msgid "Link URL is not correctly formatted, e.g. http://example.com" msgstr "" "L'URL del collegamento non ha un formato corretto, per esempio http://" "esempio.com" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid link URL" msgstr "URL del collegamento non valido" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid email address" msgstr "Indirizzo email non valido" -#: src/client/composer/composer-widget.vala:156 +#. / Translators: Title for an empty composer window +#: src/client/composer/composer-widget.vala:30 +msgid "New Message" +msgstr "Nuovo messaggio" + +#: src/client/composer/composer-widget.vala:217 msgid "Saved" msgstr "Salvato" -#: src/client/composer/composer-widget.vala:157 +#: src/client/composer/composer-widget.vala:218 msgid "Saving" msgstr "Salvataggio" -#: src/client/composer/composer-widget.vala:158 +#: src/client/composer/composer-widget.vala:219 msgid "Error saving" msgstr "Errore durante il salvataggio" -#: src/client/composer/composer-widget.vala:159 +#: src/client/composer/composer-widget.vala:220 msgid "Press Backspace to delete quote" msgstr "Premere Backspace per eliminare la citazione" #. Translators: This is list of keywords, separated by pipe ("|") #. characters, that suggest an attachment; since this is full-word -#. checking, include all variants of each word. No spaces are -#. allowed. -#: src/client/composer/composer-widget.vala:168 +#. checking, include all variants of each word. No spaces are +#. allowed. The words will be converted to lower case based on +#. locale and English versions included automatically. +#: src/client/composer/composer-widget.vala:236 msgid "" "attach|attaching|attaches|attachment|attachments|attached|enclose|enclosed|" "enclosing|encloses|enclosure|enclosures" @@ -1428,100 +1637,90 @@ msgstr "" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. Keep, Discard or Cancel. -#: src/client/composer/composer-widget.vala:1181 +#: src/client/composer/composer-widget.vala:843 msgid "Do you want to keep or discard this draft message?" msgstr "Mantenere o scartare questa bozza?" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. only Discard or Cancel. -#: src/client/composer/composer-widget.vala:1211 +#: src/client/composer/composer-widget.vala:869 msgid "Do you want to discard this draft message?" msgstr "Scartare questa bozza?" -#: src/client/composer/composer-widget.vala:1330 +#: src/client/composer/composer-widget.vala:1503 msgid "Send message with an empty subject and body?" msgstr "Inviare il messaggio con un oggetto e un corpo vuoti?" -#: src/client/composer/composer-widget.vala:1332 +#: src/client/composer/composer-widget.vala:1505 msgid "Send message with an empty subject?" msgstr "Inviare il messaggio con un oggetto vuoto?" -#: src/client/composer/composer-widget.vala:1334 +#: src/client/composer/composer-widget.vala:1507 msgid "Send message with an empty body?" msgstr "Inviare il messaggio con un corpo vuoto?" -#: src/client/composer/composer-widget.vala:1338 +#: src/client/composer/composer-widget.vala:1516 msgid "Send message without an attachment?" msgstr "Inviare il messaggio senza un allegato?" -#: src/client/composer/composer-widget.vala:1652 +#: src/client/composer/composer-widget.vala:1820 #, c-format msgid "“%s” already attached for delivery." msgstr "«%s» è già allegato per l'invio." -#. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" -#. Translators: The first argument will be a -#. description of the document type, the second will -#. be a human-friendly size string. For example: -#. Document (100.9MB) -#: src/client/composer/composer-widget.vala:1660 -#: src/client/conversation-viewer/conversation-email.vala:173 -#, c-format -msgid "%s (%s)" -msgstr "%s (%s)" - -#: src/client/composer/composer-widget.vala:1697 -#, c-format -msgid "“%s” could not be found." -msgstr "Impossibile trovare «%s»." - -#: src/client/composer/composer-widget.vala:1703 -#, c-format -msgid "“%s” is a folder." -msgstr "«%s» è una cartella." - -#: src/client/composer/composer-widget.vala:1709 +#: src/client/composer/composer-widget.vala:1856 +#: src/client/composer/composer-widget.vala:1906 #, c-format msgid "“%s” is an empty file." msgstr "«%s» è un file vuoto." -#: src/client/composer/composer-widget.vala:1722 +#: src/client/composer/composer-widget.vala:1894 +#, c-format +msgid "“%s” could not be found." +msgstr "Impossibile trovare «%s»." + +#: src/client/composer/composer-widget.vala:1900 +#, c-format +msgid "“%s” is a folder." +msgstr "«%s» è una cartella." + +#: src/client/composer/composer-widget.vala:1919 #, c-format msgid "“%s” could not be opened for reading." msgstr "Impossibile aprire «%s» per la lettura." -#: src/client/composer/composer-widget.vala:1730 +#: src/client/composer/composer-widget.vala:1927 msgid "Cannot add attachment" msgstr "Impossibile aggiungere l'allegato" #. Translators: Human-readable version of the RFC 822 To header -#: src/client/composer/composer-widget.vala:1787 -#: src/client/conversation-viewer/conversation-email.vala:976 -#: src/client/util/util-email.vala:216 ui/conversation-message.ui:312 +#: src/client/composer/composer-widget.vala:1984 +#: src/client/conversation-viewer/conversation-email.vala:559 +#: src/client/util/util-email.vala:235 ui/conversation-message.ui:312 msgid "To:" msgstr "A:" #. Translators: Human-readable version of the RFC 822 CC header -#: src/client/composer/composer-widget.vala:1793 -#: src/client/conversation-viewer/conversation-email.vala:981 -#: src/client/util/util-email.vala:221 ui/conversation-message.ui:357 +#: src/client/composer/composer-widget.vala:1990 +#: src/client/conversation-viewer/conversation-email.vala:564 +#: src/client/util/util-email.vala:240 ui/conversation-message.ui:357 msgid "Cc:" msgstr "Cc:" #. Translators: Human-readable version of the RFC 822 BCC header -#: src/client/composer/composer-widget.vala:1799 -#: src/client/conversation-viewer/conversation-email.vala:986 +#: src/client/composer/composer-widget.vala:1996 +#: src/client/conversation-viewer/conversation-email.vala:569 #: ui/conversation-message.ui:402 msgid "Bcc:" msgstr "Ccn:" #. Translators: Human-readable version of the RFC 822 Reply-To header -#: src/client/composer/composer-widget.vala:1805 +#: src/client/composer/composer-widget.vala:2002 msgid "Reply-To: " msgstr "Rispondi a: " -#: src/client/composer/composer-widget.vala:1945 +#: src/client/composer/composer-widget.vala:2254 msgid "Select Color" msgstr "Seleziona colore" @@ -1530,41 +1729,37 @@ msgstr "Seleziona colore" #. printf argument will be the alternate email address, #. and the second will be the account's primary email #. address. -#: src/client/composer/composer-widget.vala:2137 +#: src/client/composer/composer-widget.vala:2439 #, c-format msgid "%1$s via %2$s" msgstr "%1$s tramite %2$s" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: src/client/composer/composer-widget.vala:2192 +#: src/client/composer/composer-widget.vala:2495 msgid "_From:" msgstr "_Da:" #. Translators: This is the name of the file chooser filter #. when inserting an image in the composer. -#: src/client/composer/composer-widget.vala:2472 +#: src/client/composer/composer-widget.vala:2800 msgid "Images" msgstr "Immagini" -#: src/client/composer/composer-window.vala:14 -msgid "New Message" -msgstr "Nuovo messaggio" - -#: src/client/composer/spell-check-popover.vala:108 +#: src/client/composer/spell-check-popover.vala:125 msgid "Remove this language from the preferred list" msgstr "Togli questa lingua dalla lista dei preferiti" -#: src/client/composer/spell-check-popover.vala:112 +#: src/client/composer/spell-check-popover.vala:129 msgid "Add this language to the preferred list" msgstr "Aggiungi questa lingua alla lista dei preferiti" -#: src/client/composer/spell-check-popover.vala:199 +#: src/client/composer/spell-check-popover.vala:225 msgid "Search for more languages" msgstr "Cerca altre lingue" #. / Translators: Context menu item -#: src/client/conversation-list/conversation-list-view.vala:337 +#: src/client/conversation-list/conversation-list-view.vala:335 msgid "Move conversation to _Trash" msgid_plural "Move conversations to _Trash" msgstr[0] "Sposta conversazione nel _cestino" @@ -1577,38 +1772,38 @@ msgid_plural "_Delete conversations" msgstr[0] "_Elimina conversazione" msgstr[1] "_Elimina conversazioni" -#: src/client/conversation-list/conversation-list-view.vala:356 +#: src/client/conversation-list/conversation-list-view.vala:360 #: ui/main-toolbar-menus.ui:5 msgid "Mark as _Read" msgstr "Contrassegna come _letto" -#: src/client/conversation-list/conversation-list-view.vala:359 +#: src/client/conversation-list/conversation-list-view.vala:368 #: ui/main-toolbar-menus.ui:9 msgid "Mark as _Unread" msgstr "Contrassegna come _non letto" -#: src/client/conversation-list/conversation-list-view.vala:362 +#: src/client/conversation-list/conversation-list-view.vala:376 #: ui/main-toolbar-menus.ui:17 msgid "U_nstar" msgstr "_Non speciale" -#: src/client/conversation-list/conversation-list-view.vala:364 +#: src/client/conversation-list/conversation-list-view.vala:383 #: ui/main-toolbar-menus.ui:13 msgid "_Star" msgstr "_Speciale" #. Translators: Menu item to reply to a specific message. -#: src/client/conversation-list/conversation-list-view.vala:367 +#: src/client/conversation-list/conversation-list-view.vala:392 #: ui/conversation-email-menus.ui:9 msgid "_Reply" msgstr "_Rispondi" -#: src/client/conversation-list/conversation-list-view.vala:368 +#: src/client/conversation-list/conversation-list-view.vala:398 msgid "R_eply All" msgstr "R_ispondi a tutti" #. Translators: Menu item to forward a specific message. -#: src/client/conversation-list/conversation-list-view.vala:369 +#: src/client/conversation-list/conversation-list-view.vala:404 #: ui/conversation-email-menus.ui:21 msgid "_Forward" msgstr "_Inoltra" @@ -1618,24 +1813,24 @@ msgid "Me" msgstr "Io" #. Translators: Human-readable version of the RFC 822 From header -#: src/client/conversation-viewer/conversation-email.vala:971 -#: src/client/util/util-email.vala:207 +#: src/client/conversation-viewer/conversation-email.vala:554 +#: src/client/util/util-email.vala:226 msgid "From:" msgstr "Da:" #. Translators: Human-readable version of the RFC 822 Date header -#: src/client/conversation-viewer/conversation-email.vala:991 -#: src/client/util/util-email.vala:212 +#: src/client/conversation-viewer/conversation-email.vala:574 +#: src/client/util/util-email.vala:231 msgid "Date:" msgstr "Data:" #. Translators: Human-readable version of the RFC 822 Subject header -#: src/client/conversation-viewer/conversation-email.vala:1001 -#: src/client/util/util-email.vala:210 +#: src/client/conversation-viewer/conversation-email.vala:584 +#: src/client/util/util-email.vala:229 msgid "Subject:" msgstr "Oggetto:" -#: src/client/conversation-viewer/conversation-message.vala:129 +#: src/client/conversation-viewer/conversation-message.vala:128 msgid "This email address may have been forged" msgstr "Questo indirizzo email potrebbe essere contraffatto" @@ -1643,44 +1838,44 @@ msgstr "Questo indirizzo email potrebbe essere contraffatto" #. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:445 +#: src/client/conversation-viewer/conversation-message.vala:438 msgid "No sender" msgstr "Nessun mittente" #. Translators: This separates multiple 'from' #. addresses in the compact header for a message. -#: src/client/conversation-viewer/conversation-message.vala:838 +#: src/client/conversation-viewer/conversation-message.vala:830 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Image Date: Wed, 4 Mar 2020 22:01:42 +0000 Subject: [PATCH 047/336] Update Hungarian translation --- po/hu.po | 2260 +++++++++++++++++++++++++++++------------------------- 1 file changed, 1202 insertions(+), 1058 deletions(-) diff --git a/po/hu.po b/po/hu.po index 63fbfc22..1cd42261 100644 --- a/po/hu.po +++ b/po/hu.po @@ -1,18 +1,18 @@ # Hungarian translation for geary. -# Copyright (C) 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Free Software Foundation, Inc. +# Copyright (C) 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Free Software Foundation, Inc. # This file is distributed under the same license as the geary package. # # lukibeni , 2012, 2013. # metalsasi , 2012. -# Balázs Úr , 2014, 2015, 2017, 2018, 2019. +# Balázs Úr , 2014, 2015, 2017, 2018, 2019, 2020. # Gabor Kelemen , 2014. -# Balázs Meskó , 2018. +# Balázs Meskó , 2018, 2020. msgid "" msgstr "" "Project-Id-Version: geary-master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2019-08-29 23:05+0000\n" -"PO-Revision-Date: 2019-09-15 13:53+0200\n" +"POT-Creation-Date: 2020-02-16 20:26+0000\n" +"PO-Revision-Date: 2020-03-04 23:00+0100\n" "Last-Translator: Balázs Úr \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -20,7 +20,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 18.12.3\n" +"X-Generator: Lokalize 19.04.3\n" #: desktop/geary-attach.contract.desktop.in:3 msgid "Send by email" @@ -35,6 +35,7 @@ msgstr "Fájlok küldése a Geary használatával" #: desktop/org.gnome.Geary.appdata.xml.in.in:12 #: desktop/org.gnome.Geary.desktop.in.in:3 #: src/client/accounts/accounts-editor-servers-pane.vala:555 +#: src/client/application/application-main-window.vala:555 msgid "Geary" msgstr "Geary" @@ -47,7 +48,7 @@ msgstr "E-mail" #: desktop/geary-autostart.desktop.in.in:5 #: desktop/org.gnome.Geary.appdata.xml.in.in:16 #: desktop/org.gnome.Geary.desktop.in.in:5 -#: src/client/application/geary-application.vala:30 +#: src/client/application/application-client.vala:32 msgid "Send and receive email" msgstr "E-mailek küldése és fogadása" @@ -128,6 +129,10 @@ msgstr "Levél;Levelezés;E-mail;IMAP;GMail;Yahoo;Hotmail;Outlook;" msgid "Compose Message" msgstr "Levél írása" +#: desktop/org.gnome.Geary.desktop.in.in:26 +msgid "New Window" +msgstr "Új ablak" + #: desktop/org.gnome.Geary.gschema.xml:8 msgid "Maximize window" msgstr "Ablak maximalizálása" @@ -186,48 +191,69 @@ msgid "True if the folder list Paned is in the horizontal orientation." msgstr "Igaz, ha a mappalista ablaktábla vízszintesen tájolt." #: desktop/org.gnome.Geary.gschema.xml:50 +msgid "Show/hide formatting toolbar" +msgstr "Formázási eszköztár megjelenítése/elrejtése" + +#: desktop/org.gnome.Geary.gschema.xml:51 +msgid "True if the formatting toolbar in the composer is shown." +msgstr "Igaz, ha a formázási eszköztár megjelenik a levélíróban." + +#: desktop/org.gnome.Geary.gschema.xml:56 msgid "Position of message list pane" msgstr "A levéllista ablaktábla pozíciója" -#: desktop/org.gnome.Geary.gschema.xml:51 +#: desktop/org.gnome.Geary.gschema.xml:57 msgid "Position of the message list Paned grabber." msgstr "A levéllista ablaktábla fogantyújának helyzete." -#: desktop/org.gnome.Geary.gschema.xml:56 +#: desktop/org.gnome.Geary.gschema.xml:62 msgid "Autoselect next message" msgstr "Következő levél automatikus kiválasztása" -#: desktop/org.gnome.Geary.gschema.xml:57 +#: desktop/org.gnome.Geary.gschema.xml:63 msgid "True if we should autoselect the next available conversation." msgstr "" "Igaz, ha a következő elérhető beszélgetést automatikusan ki kell választani." -#: desktop/org.gnome.Geary.gschema.xml:62 +#: desktop/org.gnome.Geary.gschema.xml:68 msgid "Display message previews" msgstr "Beszélgetés előnézetek megjelenítése" -#: desktop/org.gnome.Geary.gschema.xml:63 +#: desktop/org.gnome.Geary.gschema.xml:69 msgid "True if we should display a short preview of each message." msgstr "Igaz, ha minden levélről jelenjen meg egy rövid előnézet." -#: desktop/org.gnome.Geary.gschema.xml:68 +#: desktop/org.gnome.Geary.gschema.xml:74 +#| msgctxt "shortcut window" +#| msgid "Single-key shortcuts" +msgid "Use single key shortcuts" +msgstr "Egybillentyűs gyorsbillentyűk használata" + +#: desktop/org.gnome.Geary.gschema.xml:75 +msgid "" +"Enables shortcuts for email actions that do not require pressing to " +"emulate those used by Gmail." +msgstr "" +"Engedélyezi a gyorsbillentyűket az olyan e-mail-műveleteknél, amelyek nem " +"igénylik a lenyomását, a Gmail által használtak utánzása érdekében." + +#: desktop/org.gnome.Geary.gschema.xml:82 msgid "Languages that shall be used in the spell checker" msgstr "A nyelvek, amelyek használva lesznek a helyesírás-ellenőrzőben" -#: desktop/org.gnome.Geary.gschema.xml:69 +#: desktop/org.gnome.Geary.gschema.xml:83 msgid "" "A list of POSIX locales, with the empty list disabling spell checking and " "the null list using desktop languages by default." msgstr "" -"POSIX területi beállítások listája, az üres listával letiltja a " -"helyesírás-ellenőrzést, és a null lista az asztal nyelveit használja " -"alapértelmezetten." +"POSIX területi beállítások listája, az üres listával letiltja a helyesírás-" +"ellenőrzést, és a null lista az asztal nyelveit használja alapértelmezetten." -#: desktop/org.gnome.Geary.gschema.xml:76 +#: desktop/org.gnome.Geary.gschema.xml:90 msgid "Languages that are displayed in the spell checker popover" msgstr "A nyelvek, melyek megjelennek a helyesírás-ellenőrző felugróban" -#: desktop/org.gnome.Geary.gschema.xml:77 +#: desktop/org.gnome.Geary.gschema.xml:91 msgid "" "List of languages that are always displayed in the popover of the spell " "checker." @@ -235,79 +261,86 @@ msgstr "" "A nyelvek listája, amely mindig megjelenik a helyesírás-ellenőrző " "felugrójában." -#: desktop/org.gnome.Geary.gschema.xml:82 -msgid "Enable notification sounds" -msgstr "Értesítő hangok engedélyezése" - -#: desktop/org.gnome.Geary.gschema.xml:83 -msgid "True to play sounds for notifications and sending." -msgstr "Igaz, ha játsszon le értesítési és levélküldési hangokat." - -#: desktop/org.gnome.Geary.gschema.xml:88 -msgid "Show notifications for new mail" -msgstr "Értesítések megjelenítése új levél érkezésekor" - -#: desktop/org.gnome.Geary.gschema.xml:89 -msgid "True to show notification bubbles." -msgstr "Igaz, ha jelenítsen meg értesítési buborékokat." - -#: desktop/org.gnome.Geary.gschema.xml:94 +#: desktop/org.gnome.Geary.gschema.xml:96 msgid "Notify of new mail at startup" msgstr "Értesítés az új levelekről indításkor" -#: desktop/org.gnome.Geary.gschema.xml:95 +#: desktop/org.gnome.Geary.gschema.xml:97 msgid "True to notify of new mail at startup." msgstr "Igaz, ha értesítsen az új levekről indításkor." -#: desktop/org.gnome.Geary.gschema.xml:100 +#: desktop/org.gnome.Geary.gschema.xml:102 msgid "Ask when opening an attachment" msgstr "Kérdezzen egy melléklet megnyitásakor" -#: desktop/org.gnome.Geary.gschema.xml:101 +#: desktop/org.gnome.Geary.gschema.xml:103 msgid "True to ask when opening an attachment." msgstr "Igaz, ha kérdezzen egy melléklet megnyitásakor." -#: desktop/org.gnome.Geary.gschema.xml:106 +#: desktop/org.gnome.Geary.gschema.xml:108 msgid "Whether to compose emails in HTML" msgstr "Az e-mailek írása HTML-ben történjen-e" -#: desktop/org.gnome.Geary.gschema.xml:107 +#: desktop/org.gnome.Geary.gschema.xml:109 msgid "True to compose emails in HTML; false for plain text." msgstr "" "Igaz, ha a levelek HTML-ben legyenek megírva; hamis esetén egyszerű szöveg." -#: desktop/org.gnome.Geary.gschema.xml:112 +#: desktop/org.gnome.Geary.gschema.xml:114 msgid "Advisory strategy for full-text searching" msgstr "Tanácsadó stratégia a teljes szöveges keresésnél" -#: desktop/org.gnome.Geary.gschema.xml:113 +#: desktop/org.gnome.Geary.gschema.xml:115 msgid "" "Acceptable values are “exact”, “conservative”, “aggressive”, and “horizon”." msgstr "" "Az elfogadható értékek: „exact” (pontos), „conservative” (konzervatív), " "„aggressive” (agresszív) és „horizon” (horizont)." -#: desktop/org.gnome.Geary.gschema.xml:118 +#: desktop/org.gnome.Geary.gschema.xml:120 msgid "Zoom of conversation viewer" msgstr "A beszélgetésmegjelenítő nagyítása" -#: desktop/org.gnome.Geary.gschema.xml:119 +#: desktop/org.gnome.Geary.gschema.xml:121 msgid "The zoom to apply on the conservation view." msgstr "A beszélgetés nézeten alkalmazandó nagyítás." -#: desktop/org.gnome.Geary.gschema.xml:124 +#: desktop/org.gnome.Geary.gschema.xml:126 msgid "Size of detached composer window" msgstr "A leválasztott levélíró ablak mérete" -#: desktop/org.gnome.Geary.gschema.xml:125 +#: desktop/org.gnome.Geary.gschema.xml:127 msgid "The last recorded size of the detached composer window." msgstr "A leválasztott levélíró ablak legutóbb elmentett mérete." -#: desktop/org.gnome.Geary.gschema.xml:130 +#: desktop/org.gnome.Geary.gschema.xml:132 +#| msgid "Error sending email" +msgid "Undo sending email delay" +msgstr "Levélküldési késleltetés visszavonása" + +#: desktop/org.gnome.Geary.gschema.xml:133 +msgid "" +"The number of seconds to wait before sending an email. Set to zero or less " +"to disable." +msgstr "" +"A levelek kiküldése előtti várakozás másodpercben. A letiltáshoz állítsa " +"nullára vagy kevesebbre." + +#: desktop/org.gnome.Geary.gschema.xml:139 +msgid "Brief notification display time" +msgstr "Rövid értesítések megjelenítési ideje" + +#: desktop/org.gnome.Geary.gschema.xml:140 +msgid "" +"The length of time in seconds for which brief notifications should be " +"displayed." +msgstr "A rövid értesítések megjelenítési ideje másodpercben." + +#: desktop/org.gnome.Geary.gschema.xml:146 msgid "Whether we migrated the old settings" msgstr "A régi beállítások migrálva lettek-e" -#: desktop/org.gnome.Geary.gschema.xml:131 +#: desktop/org.gnome.Geary.gschema.xml:147 msgid "" "False to check for the old “org.yorba.geary”-schema and copy its values." msgstr "" @@ -317,24 +350,24 @@ msgstr "" #. Translators: In-app notification label, when #. the app had a problem pinning an otherwise #. untrusted TLS certificate -#: src/client/accounts/accounts-editor.vala:204 +#: src/client/accounts/accounts-editor.vala:210 msgid "Failed to store certificate" msgstr "A tanúsítvány tárolása meghiúsult" #. Translators: Label for adding an email account #. account for a generic IMAP service provider. -#: src/client/accounts/accounts-editor-add-pane.vala:109 +#: src/client/accounts/accounts-editor-add-pane.vala:108 msgid "All others" msgstr "Az összes többi" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:196 +#: src/client/accounts/accounts-editor-add-pane.vala:195 #: src/client/accounts/accounts-editor-servers-pane.vala:316 msgid "Check your receiving login and password" msgstr "Ellenőrizze a fogadó bejelentkezési nevet és jelszót" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:211 +#: src/client/accounts/accounts-editor-add-pane.vala:210 #: src/client/accounts/accounts-editor-servers-pane.vala:329 msgid "Check your receiving server details" msgstr "Ellenőrizze a fogadó kiszolgáló részleteit" @@ -344,51 +377,51 @@ msgstr "Ellenőrizze a fogadó kiszolgáló részleteit" #. succeeded, so the user probably needs to #. specify custom creds here #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:233 +#: src/client/accounts/accounts-editor-add-pane.vala:232 #: src/client/accounts/accounts-editor-servers-pane.vala:350 msgid "Check your sending login and password" msgstr "Ellenőrizze a küldő bejelentkezési nevet és jelszót" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:247 +#: src/client/accounts/accounts-editor-add-pane.vala:246 #: src/client/accounts/accounts-editor-servers-pane.vala:363 msgid "Check your sending server details" msgstr "Ellenőrizze a küldő kiszolgáló részleteit" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:262 +#: src/client/accounts/accounts-editor-add-pane.vala:261 msgid "Check your email address and password" msgstr "Ellenőrizze az e-mail címét és jelszavát" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:273 +#: src/client/accounts/accounts-editor-add-pane.vala:272 msgid "Could not connect, check your network" msgstr "Nem sikerült kapcsolódni, ellenőrizze a hálózatot" #. Translators: In-app notification label for a #. generic error creating an account -#: src/client/accounts/accounts-editor-add-pane.vala:286 +#: src/client/accounts/accounts-editor-add-pane.vala:285 msgid "An unexpected problem occurred" msgstr "Váratlan probléma történt" #. Translators: In-app notification label, the #. string substitution is a more detailed reason. -#: src/client/accounts/accounts-editor-add-pane.vala:304 +#: src/client/accounts/accounts-editor-add-pane.vala:303 #, c-format msgid "Account not created: %s" msgstr "A fiók nincs létrehozva: %s" #. Translators: Label for the person's actual name when adding #. an account -#: src/client/accounts/accounts-editor-add-pane.vala:551 +#: src/client/accounts/accounts-editor-add-pane.vala:558 msgid "Your name" msgstr "Az Ön neve" #. Translators: Label used for the address part of an #. email address when editing a user's sender address #. preferences for an account. -#: src/client/accounts/accounts-editor-add-pane.vala:568 -#: src/client/accounts/accounts-editor-edit-pane.vala:501 +#: src/client/accounts/accounts-editor-add-pane.vala:575 +#: src/client/accounts/accounts-editor-edit-pane.vala:513 msgid "Email address" msgstr "E-mail cím" @@ -397,8 +430,8 @@ msgstr "E-mail cím" #. Translators: This is used as a placeholder for the #. address part of an email address when editing a user's #. sender address preferences for an account. -#: src/client/accounts/accounts-editor-add-pane.vala:571 -#: src/client/accounts/accounts-editor-edit-pane.vala:469 +#: src/client/accounts/accounts-editor-add-pane.vala:579 +#: src/client/accounts/accounts-editor-edit-pane.vala:479 msgid "person@example.com" msgstr "szemely@example.com" @@ -406,15 +439,15 @@ msgstr "szemely@example.com" #. when adding an account #. Translators: Label for the user's login name for an #. IMAP, SMTP, etc service -#: src/client/accounts/accounts-editor-add-pane.vala:585 -#: src/client/accounts/accounts-editor-servers-pane.vala:880 +#: src/client/accounts/accounts-editor-add-pane.vala:593 +#: src/client/accounts/accounts-editor-servers-pane.vala:884 msgid "Login name" msgstr "Bejelentkezési név" #. Translators: Label for the user's password for an IMAP, #. SMTP, etc service -#: src/client/accounts/accounts-editor-add-pane.vala:599 -#: src/client/accounts/accounts-editor-servers-pane.vala:999 +#: src/client/accounts/accounts-editor-add-pane.vala:607 +#: src/client/accounts/accounts-editor-servers-pane.vala:1006 #: ui/password-dialog.glade:108 msgid "Password" msgstr "Jelszó" @@ -423,14 +456,14 @@ msgstr "Jelszó" #. adding an account. #. Translators: This label describes the host name or IP #. address and port used by an account's IMAP service. -#: src/client/accounts/accounts-editor-add-pane.vala:621 -#: src/client/accounts/accounts-editor-servers-pane.vala:727 +#: src/client/accounts/accounts-editor-add-pane.vala:629 +#: src/client/accounts/accounts-editor-servers-pane.vala:728 msgid "IMAP server" msgstr "IMAP-kiszolgáló" #. Translators: Placeholder for the IMAP server hostname #. when adding an account. -#: src/client/accounts/accounts-editor-add-pane.vala:624 +#: src/client/accounts/accounts-editor-add-pane.vala:632 msgid "imap.example.com" msgstr "imap.example.com" @@ -438,20 +471,20 @@ msgstr "imap.example.com" #. adding an account. #. Translators: This label describes the host name or IP #. address and port used by an account's SMTP service. -#: src/client/accounts/accounts-editor-add-pane.vala:630 -#: src/client/accounts/accounts-editor-servers-pane.vala:733 +#: src/client/accounts/accounts-editor-add-pane.vala:638 +#: src/client/accounts/accounts-editor-servers-pane.vala:734 msgid "SMTP server" msgstr "SMTP-kiszolgáló" #. Translators: Placeholder for the SMTP server hostname #. when adding an account. -#: src/client/accounts/accounts-editor-add-pane.vala:633 +#: src/client/accounts/accounts-editor-add-pane.vala:641 msgid "smtp.example.com" msgstr "smtp.example.com" #. Translators: Label in the account editor for the user's #. custom name for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:278 +#: src/client/accounts/accounts-editor-edit-pane.vala:277 #: ui/accounts_editor_remove_pane.ui:123 msgid "Account name" msgstr "Fiók neve" @@ -460,46 +493,46 @@ msgstr "Fiók neve" #. the name of an account. The string #. substitution is the old name of the #. account. -#: src/client/accounts/accounts-editor-edit-pane.vala:312 +#: src/client/accounts/accounts-editor-edit-pane.vala:318 #, c-format msgid "Change account name back to “%s”" msgstr "Fiók nevének visszaváltoztatása erre: „%s”" #. Translators: Tooltip for adding a new email sender/from #. address's address to an account -#: src/client/accounts/accounts-editor-edit-pane.vala:336 +#: src/client/accounts/accounts-editor-edit-pane.vala:342 msgid "Add a new sender email address" msgstr "Új küldő e-mail cím hozzáadása" #. Translators: Label used to indicate the user has #. provided no display name for one of their sender #. email addresses in their account settings. -#: src/client/accounts/accounts-editor-edit-pane.vala:417 +#: src/client/accounts/accounts-editor-edit-pane.vala:423 msgid "Name not set" msgstr "Név nincs beállítva" #. Translators: This is used as a placeholder for the #. display name for an email address when editing a user's #. sender address preferences for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:456 +#: src/client/accounts/accounts-editor-edit-pane.vala:464 msgid "Sender Name" msgstr "Küldő neve" -#: src/client/accounts/accounts-editor-edit-pane.vala:479 +#: src/client/accounts/accounts-editor-edit-pane.vala:491 msgid "Remove" msgstr "Eltávolítás" #. Translators: Label used for the display name part of an #. email address when editing a user's sender address #. preferences for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:494 +#: src/client/accounts/accounts-editor-edit-pane.vala:506 msgid "Sender name" msgstr "Küldő neve" #. Translators: Label used as the undo tooltip after adding an #. new sender email address to an account. The string #. substitution is the email address added. -#: src/client/accounts/accounts-editor-edit-pane.vala:561 +#: src/client/accounts/accounts-editor-edit-pane.vala:573 #, c-format msgid "Remove “%s”" msgstr "„%s” eltávolítása" @@ -507,7 +540,7 @@ msgstr "„%s” eltávolítása" #. Translators: Label used as the undo tooltip after editing a #. sender address for an account. The string substitution is #. the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:601 +#: src/client/accounts/accounts-editor-edit-pane.vala:613 #, c-format msgid "Undo changes to “%s”" msgstr "„%s” változtatásainak visszavonása" @@ -515,7 +548,7 @@ msgstr "„%s” változtatásainak visszavonása" #. Translators: Label used as the undo tooltip after removing #. a sender address from an account. The string substitution #. is the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:688 +#: src/client/accounts/accounts-editor-edit-pane.vala:700 #, c-format msgid "Add “%s” back" msgstr "„%s” újra hozzáadása" @@ -523,14 +556,14 @@ msgstr "„%s” újra hozzáadása" #. Translators: Label used as the undo tooltip after removing #. a sender address from an account. The string substitution #. is the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:730 +#: src/client/accounts/accounts-editor-edit-pane.vala:742 msgid "Undo signature changes" msgstr "Aláírás-változtatások visszavonása" #. Translators: This label describes the account #. preference for the length of time (weeks, months or #. years) that past email should be downloaded. -#: src/client/accounts/accounts-editor-edit-pane.vala:778 +#: src/client/accounts/accounts-editor-edit-pane.vala:790 msgid "Download mail" msgstr "Levél letöltése" @@ -539,99 +572,100 @@ msgstr "Levél letöltése" #. should be downloaded for an account. The #. string substitution is the duration, #. e.g. "1 month back". -#: src/client/accounts/accounts-editor-edit-pane.vala:810 +#: src/client/accounts/accounts-editor-edit-pane.vala:822 #, c-format msgid "Change download period back to: %s" msgstr "Letöltési időszak visszaváltoztatása erre: %s" -#: src/client/accounts/accounts-editor-edit-pane.vala:831 +#: src/client/accounts/accounts-editor-edit-pane.vala:843 msgid "Everything" msgstr "Minden" -#: src/client/accounts/accounts-editor-edit-pane.vala:835 +#: src/client/accounts/accounts-editor-edit-pane.vala:847 msgid "2 weeks back" msgstr "2 hétre visszamenőleg" -#: src/client/accounts/accounts-editor-edit-pane.vala:839 +#: src/client/accounts/accounts-editor-edit-pane.vala:851 msgid "1 month back" msgstr "1 hónapra visszamenőleg" -#: src/client/accounts/accounts-editor-edit-pane.vala:843 +#: src/client/accounts/accounts-editor-edit-pane.vala:855 msgid "3 months back" msgstr "3 hónapra visszamenőleg" -#: src/client/accounts/accounts-editor-edit-pane.vala:847 +#: src/client/accounts/accounts-editor-edit-pane.vala:859 msgid "6 months back" msgstr "6 hónapra visszamenőleg" -#: src/client/accounts/accounts-editor-edit-pane.vala:851 +#: src/client/accounts/accounts-editor-edit-pane.vala:863 msgid "1 year back" msgstr "1 évre visszamenőleg" -#: src/client/accounts/accounts-editor-edit-pane.vala:855 +#: src/client/accounts/accounts-editor-edit-pane.vala:867 msgid "2 years back" msgstr "2 évre visszamenőleg" -#: src/client/accounts/accounts-editor-edit-pane.vala:859 +#: src/client/accounts/accounts-editor-edit-pane.vala:871 msgid "4 years back" msgstr "4 évre visszamenőleg" -#: src/client/accounts/accounts-editor-edit-pane.vala:865 +#: src/client/accounts/accounts-editor-edit-pane.vala:877 #, c-format msgid "%d day back" msgid_plural "%d days back" msgstr[0] "%d napra visszamenőleg" msgstr[1] "%d napra visszamenőleg" -#: src/client/accounts/accounts-editor-list-pane.vala:247 -#: src/client/application/application-controller.vala:2392 +#: src/client/accounts/accounts-editor-list-pane.vala:255 +#: src/client/application/application-main-window.vala:2053 msgid "Undo" msgstr "Visszavonás" -#: src/client/accounts/accounts-editor-list-pane.vala:255 +#: src/client/accounts/accounts-editor-list-pane.vala:264 +#: src/client/application/application-main-window.vala:2036 msgid "Redo" msgstr "Újra" -#: src/client/accounts/accounts-editor-list-pane.vala:349 -#: src/client/accounts/accounts-editor-list-pane.vala:437 +#: src/client/accounts/accounts-editor-list-pane.vala:358 +#: src/client/accounts/accounts-editor-list-pane.vala:446 #: src/client/accounts/accounts-editor-row.vala:279 msgid "Gmail" msgstr "Gmail" -#: src/client/accounts/accounts-editor-list-pane.vala:353 -#: src/client/accounts/accounts-editor-list-pane.vala:441 +#: src/client/accounts/accounts-editor-list-pane.vala:362 +#: src/client/accounts/accounts-editor-list-pane.vala:450 #: src/client/accounts/accounts-editor-row.vala:283 msgid "Outlook.com" msgstr "Outlook.com" -#: src/client/accounts/accounts-editor-list-pane.vala:357 -#: src/client/accounts/accounts-editor-list-pane.vala:445 +#: src/client/accounts/accounts-editor-list-pane.vala:366 +#: src/client/accounts/accounts-editor-list-pane.vala:454 #: src/client/accounts/accounts-editor-row.vala:287 msgid "Yahoo" msgstr "Yahoo" #. Translators: Tooltip for accounts that have been #. loaded but disabled by the user. -#: src/client/accounts/accounts-editor-list-pane.vala:375 +#: src/client/accounts/accounts-editor-list-pane.vala:384 msgid "This account has been disabled" msgstr "Ezt a fiókot letiltották" #. Translators: Tooltip for accounts that have been #. loaded but because of some error are not able to be #. used. -#: src/client/accounts/accounts-editor-list-pane.vala:384 +#: src/client/accounts/accounts-editor-list-pane.vala:393 msgid "This account has encountered a problem and is unavailable" msgstr "Ennél a fióknál probléma történt és nem érhető el" #. Translators: Label for adding a generic email account -#: src/client/accounts/accounts-editor-list-pane.vala:434 +#: src/client/accounts/accounts-editor-list-pane.vala:443 msgid "Other email providers" msgstr "Egyéb e-mail szolgáltatók" #. Translators: Notification shown after removing an #. account. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:551 +#: src/client/accounts/accounts-editor-list-pane.vala:560 #, c-format msgid "Account “%s” removed" msgstr "A(z) „%s” fiók eltávolítva" @@ -639,7 +673,7 @@ msgstr "A(z) „%s” fiók eltávolítva" #. Translators: Notification shown after removing an account #. is undone. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:558 +#: src/client/accounts/accounts-editor-list-pane.vala:567 #, c-format msgid "Account “%s” restored" msgstr "A(z) „%s” fiók visszaállítva" @@ -666,8 +700,8 @@ msgstr "Kapcsolat biztonsága" #. Translators: Label used when no auth scheme is used #. by an account's IMAP or SMTP service. #: src/client/accounts/accounts-editor-row.vala:479 -#: src/client/accounts/accounts-editor-servers-pane.vala:752 -#: src/client/accounts/accounts-editor-servers-pane.vala:964 +#: src/client/accounts/accounts-editor-servers-pane.vala:755 +#: src/client/accounts/accounts-editor-servers-pane.vala:970 #: src/engine/api/geary-special-folder-type.vala:58 msgid "None" msgstr "Nincs" @@ -684,7 +718,8 @@ msgstr "TLS" #. credentials (none, use IMAP, custom) when adding a new #. account #. Button label for retrying when a login error has occurred -#: src/client/accounts/accounts-editor-row.vala:534 ui/main-window.ui:346 +#: src/client/accounts/accounts-editor-row.vala:534 +#: ui/application-main-window.ui:346 msgid "Login" msgstr "Bejelentkezés" @@ -730,7 +765,6 @@ msgstr "GNOME Online fiókok" #. Translators: This label describes an account #. preference. #: src/client/accounts/accounts-editor-servers-pane.vala:611 -#| msgid "Save sent email on server" msgid "Save draft email on server" msgstr "Piszkozat e-mail mentése a kiszolgálón" @@ -745,47 +779,333 @@ msgstr "Elküldött e-mail mentése a kiszolgálón" #. Translators: Label used when an account's IMAP or #. SMTP service uses OAuth2. The string replacement is #. the service's login name. -#: src/client/accounts/accounts-editor-servers-pane.vala:950 +#: src/client/accounts/accounts-editor-servers-pane.vala:956 #, c-format msgid "%s using OAuth2" msgstr "%s OAuth2 használatával" -#: src/client/accounts/accounts-editor-servers-pane.vala:960 +#: src/client/accounts/accounts-editor-servers-pane.vala:966 msgid "Use receiving server login" msgstr "Fogadó kiszolgáló bejelentkezési nevének használata" #. Translators: File name used in save chooser when saving #. attachments that do not otherwise have a name. -#: src/client/application/application-controller.vala:59 +#: src/client/application/application-attachment-manager.vala:21 msgid "Untitled" msgstr "Névtelen" -#. / Notification title. -#: src/client/application/application-controller.vala:551 +#. / Translators: Dialog primary label when prompting to +#. / overwrite a file. The string substitution is the file'sx +#. / name. +#: src/client/application/application-attachment-manager.vala:222 +#, c-format +msgid "A file named “%s” already exists. Do you want to replace it?" +msgstr "Már létezik „%s” nevű fájl. Le akarja cserélni?" + +#. / Translators: Dialog secondary label when prompting to +#. / overwrite a file. The string substitution is the parent +#. / folder's name. +#: src/client/application/application-attachment-manager.vala:229 +#, c-format +msgid "" +"The file already exists in “%s”. Replacing it will overwrite its contents." +msgstr "" +"A fájl már létezik a(z) „%s” helyen. Lecserélésével a tartalma felül lesz " +"írva." + +#: src/client/application/application-attachment-manager.vala:236 +msgid "_Replace" +msgstr "_Csere" + +#: src/client/application/application-client.vala:33 +msgid "Copyright 2016 Software Freedom Conservancy Inc." +msgstr "Copyright 2016 Software Freedom Conservancy Inc." + +#: src/client/application/application-client.vala:34 +msgid "Copyright 2016-2019 Geary Development Team." +msgstr "Copyright 2016-2019 A Geary fejlesztőcsapat." + +#: src/client/application/application-client.vala:36 +msgid "Visit the Geary web site" +msgstr "Keresse fel a Geary weboldalát" + +#. / Command line option +#: src/client/application/application-client.vala:94 +msgid "Print debug logging" +msgstr "Hibakeresési naplózás kiírása" + +#. / Command line option +#: src/client/application/application-client.vala:97 +msgid "Start with the main window hidden (deprecated)" +msgstr "Indítás rejtett főablakkal (elavult)" + +#. / Command line option +#: src/client/application/application-client.vala:100 +msgid "Enable WebKitGTK Inspector in web views" +msgstr "WebKitGTK vizsgáló engedélyezése a webes nézetekben" + +#. / Command line option +#: src/client/application/application-client.vala:103 +msgid "Log conversation monitoring" +msgstr "Beszélgetésfigyelés naplózása" + +#. / Command line option +#: src/client/application/application-client.vala:106 +msgid "Log IMAP network deserialization" +msgstr "IMAP hálózati visszafejtés naplózása" + +#. / Command line option. "Normalization" can also be called +#. / "synchronization". +#: src/client/application/application-client.vala:110 +msgid "Log folder normalization" +msgstr "Mappa-normalizálás naplózása" + +#. / Command line option +#: src/client/application/application-client.vala:113 +msgid "Log network activity" +msgstr "Hálózati tevékenység naplózása" + +#. / Command line option +#: src/client/application/application-client.vala:116 +msgid "Log periodic activity" +msgstr "Időszakos tevékenység naplózása" + +#. / Command line option. The IMAP replay queue is how changes +#. / on the server are replicated on the client. It could +#. / also be called the IMAP events queue. +#: src/client/application/application-client.vala:121 +msgid "Log IMAP replay queue" +msgstr "IMAP eseménysor naplózása" + +#. / Command line option. Serialization is how commands and +#. / responses are converted into a stream of bytes for +#. / network transmission +#: src/client/application/application-client.vala:126 +msgid "Log IMAP network serialization" +msgstr "IMAP hálózati sorosítás naplózása" + +#. / Command line option +#: src/client/application/application-client.vala:129 +msgid "Log database queries (generates lots of messages)" +msgstr "Adatbázis lekérdezések naplózása (sok üzenetet állít elő)" + +#. / Command line option +#: src/client/application/application-client.vala:132 +msgid "Perform a graceful quit" +msgstr "Elegáns kilépés végrehajtása" + +#: src/client/application/application-client.vala:134 +msgid "Open a new window" +msgstr "Új ablak megnyitása" + +#. / Command line option +#: src/client/application/application-client.vala:137 +msgid "Revoke all pinned TLS server certificates" +msgstr "Az összes rögzített TLS kiszolgáló tanúsítvány visszavonása" + +#. / Command line option +#: src/client/application/application-client.vala:140 +msgid "Display program version" +msgstr "A program verziójának megjelenítése" + +#. / Application runtime information label +#: src/client/application/application-client.vala:264 +msgid "Geary version" +msgstr "Geary verzió" + +#. / Application runtime information label +#: src/client/application/application-client.vala:266 +msgid "Geary revision" +msgstr "Geary revízió" + +#. / Application runtime information label +#: src/client/application/application-client.vala:268 +msgid "GTK version" +msgstr "GTK verzió" + +#. / Applciation runtime information label +#: src/client/application/application-client.vala:275 +msgid "GLib version" +msgstr "GLib verzió" + +#. / Application runtime information label +#: src/client/application/application-client.vala:282 +msgid "WebKitGTK version" +msgstr "WebKitGTK verzió" + +#. / Application runtime information label +#: src/client/application/application-client.vala:289 +msgid "Desktop environment" +msgstr "Asztali környezet" + +#. Translators: This is the file type displayed for +#. attachments with unknown file types. +#: src/client/application/application-client.vala:291 +#: src/client/components/components-attachment-pane.vala:91 +msgid "Unknown" +msgstr "Ismeretlen" + +#. / Application runtime information label +#: src/client/application/application-client.vala:321 +msgid "Distribution name" +msgstr "Disztribúció neve" + +#. / Application runtime information label +#: src/client/application/application-client.vala:326 +msgid "Distribution release" +msgstr "Disztribúció kiadása" + +#. / Application runtime information label +#: src/client/application/application-client.vala:334 +msgid "Installation prefix" +msgstr "Telepítési előtag" + +#: src/client/application/application-client.vala:587 +#, c-format +msgid "About %s" +msgstr "%s névjegye" + +#. Translators: add your name and email address to receive +#. credit in the About dialog For example: Yamada Taro +#. +#: src/client/application/application-client.vala:591 +msgid "translator-credits" +msgstr "" +"Kelemen Gábor \n" +"Lukács Bence \n" +"Meskó Balázs \n" +"Úr Balázs " + +#. / Warning printed to the console when a deprecated +#. / command line option is used. +#: src/client/application/application-client.vala:937 +msgid "The `--hidden` option is deprecated and will be removed in the future." +msgstr "A „--hidden” kapcsoló elavult, és el lesz távolítva a jövőben." + +#. / Command line warning, string substitution +#. / is the given argument +#: src/client/application/application-client.vala:970 +#, c-format +msgid "Unrecognised program argument: “%s”" +msgstr "Felismerhetetlen programargumentum: „%s”" + +#. / Notification title. +#: src/client/application/application-controller.vala:458 #, c-format -#| msgid "A problem occurred sending mail for %s" msgid "A problem occurred sending email for %s" msgstr "Hiba történt a(z) %s fióknak történő levélküldéskor" #. / Notification body -#: src/client/application/application-controller.vala:555 -#| msgid "You will not be able to send or receive email until re-connected." +#: src/client/application/application-controller.vala:462 msgid "Email will not be sent until re-connected" msgstr "A levél nem lesz elküldve, amíg nem kapcsolódik újra" -#: src/client/application/application-controller.vala:906 -msgid "Labels" -msgstr "Címkék" +#. / Translators: Label for in-app notification +#: src/client/application/application-controller.vala:568 +#| msgid "Conversation Shortcuts" +msgid "Conversation marked" +msgid_plural "Conversations marked" +msgstr[0] "Beszélgetés megjelölve" +msgstr[1] "Beszélgetések megjelölve" -#. give the user two options: reset the Account local store, or exit Geary. A third -#. could be done to leave the Account in an unopened state, but we don't currently -#. have provisions for that. -#: src/client/application/application-controller.vala:919 +#. / Translators: Label for in-app notification +#: src/client/application/application-controller.vala:574 +#| msgid "No conversations found" +msgid "Conversation un-marked" +msgid_plural "Conversations un-marked" +msgstr[0] "Beszélgetés megjelölésének visszavonása" +msgstr[1] "Beszélgetések megjelölésének visszavonása" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:600 +#: src/client/application/application-controller.vala:684 +#, c-format +#| msgid "Conversation Shortcuts" +msgid "Conversation moved to %s" +msgid_plural "Conversations moved to %s" +msgstr[0] "Beszélgetés áthelyezve ide: %s" +msgstr[1] "Beszélgetések áthelyezve ide: %s" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the source folder. +#. / Translators: Label for in-app notification. String +#. / substitution is the name of the destination folder. +#: src/client/application/application-controller.vala:608 +#: src/client/application/application-controller.vala:630 +#, c-format +#| msgid "Conversation Shortcuts" +msgid "Conversation restored to %s" +msgid_plural "Conversations restored to %s" +msgstr[0] "Beszélgetés visszaállítva ide: %s" +msgstr[1] "Beszélgetések visszaállítva ide: %s" + +#. / Translators: Label for in-app notification. +#: src/client/application/application-controller.vala:651 +#| msgid "Conversation Shortcuts" +msgid "Conversation archived" +msgid_plural "Conversations archived" +msgstr[0] "Beszélgetés archiválva" +msgstr[1] "Beszélgetések archiválva" + +#. / Translators: Label for in-app notification. String +#. / substitution is the name of the destination folder. +#: src/client/application/application-controller.vala:707 +#, c-format +#| msgid "Message not saved" +msgid "Message restored to %s" +msgid_plural "Messages restored to %s" +msgstr[0] "Üzenet visszaállítva erre: %s" +msgstr[1] "Üzenetek visszaállítva erre: %s" + +#. / Translators: Label for in-app notification. +#: src/client/application/application-controller.vala:728 +#| msgid "Message not saved" +msgid "Message archived" +msgid_plural "Messages archived" +msgstr[0] "Üzenet archiválva" +msgstr[1] "Üzenetek archiválva" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:763 +#, c-format +#| msgid "Message not saved" +msgid "Message moved to %s" +msgid_plural "Messages moved to %s" +msgstr[0] "Üzenet áthelyezve ide: %s" +msgstr[1] "Üzenetek áthelyezve ide: %s" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:791 +#, c-format +#| msgid "No conversations selected" +msgid "Conversation labelled as %s" +msgid_plural "Conversations labelled as %s" +msgstr[0] "Beszélgetés megcímkézve ekként: %s" +msgstr[1] "Beszélgetések megcímkézve ekként: %s" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:799 +#, c-format +msgid "Conversation un-labelled as %s" +msgid_plural "Conversations un-labelled as %s" +msgstr[0] "Beszélgetés ekként címkézésének visszavonása: %s" +msgstr[1] "Beszélgetések ekként címkézésének visszavonása: %s" + +#: src/client/application/application-controller.vala:1222 #, c-format msgid "Unable to open the database for %s" msgstr "Nem sikerült megnyitni az adatbázist ehhez: %s" -#: src/client/application/application-controller.vala:920 +#: src/client/application/application-controller.vala:1223 #, c-format msgid "" "There was an error opening the local mail database for this account. This is " @@ -809,20 +1129,20 @@ msgstr "" "Az adatbázis újjáépítése törölni fogja az összes helyi levelet és azok " "mellékleteit. A kiszolgálón lévő levelek nem érintettek." -#: src/client/application/application-controller.vala:922 +#: src/client/application/application-controller.vala:1225 msgid "_Rebuild" -msgstr "Ú_jjáépítés" +msgstr "Ú_jráépítés" -#: src/client/application/application-controller.vala:922 +#: src/client/application/application-controller.vala:1225 msgid "E_xit" msgstr "_Kilépés" -#: src/client/application/application-controller.vala:931 +#: src/client/application/application-controller.vala:1235 #, c-format msgid "Unable to rebuild database for “%s”" msgstr "Nem sikerült újjáépíteni az adatbázist ehhez: „%s”" -#: src/client/application/application-controller.vala:932 +#: src/client/application/application-controller.vala:1236 #, c-format msgid "" "Error during rebuild:\n" @@ -833,20 +1153,113 @@ msgstr "" "\n" "%s" -#: src/client/application/application-controller.vala:1726 +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:1559 #, c-format -#| msgid "%d message" -#| msgid_plural "%d messages" -msgid "Moved %d message to %s" -msgid_plural "Moved %d messages to %s" -msgstr[0] "%d levél áthelyezve ide: %s" -msgstr[1] "%d levél áthelyezve ide: %s" +msgid "Email sent to %s" +msgstr "E-mail elküldve ide: %s" -#: src/client/application/application-controller.vala:1736 +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2642 +#, c-format +msgid "Email to %s queued for delivery" +msgstr "A(z) „%s” címre küldendő e-mail sorba állítva kiküldéshez" + +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2706 +#, c-format +msgid "Email to %s saved" +msgstr "A(z) „%s” címre küldendő e-mail mentve" + +#. / Translators: A label for an in-app notification. +#: src/client/application/application-controller.vala:2721 +#: src/client/application/application-controller.vala:2779 +msgid "Composer could not be restored" +msgstr "A levélíró nem állítható vissza" + +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2764 +#, c-format +msgid "Email to %s discarded" +msgstr "A(z) „%s” címre küldendő e-mail elvetve" + +#. / Translators: Main window title, first string +#. / substitution being the currently selected folder name, +#. / the second being the selected account name. +#: src/client/application/application-main-window.vala:560 +#, c-format +msgid "%s — %s" +msgstr "%s — %s" + +#: src/client/application/application-main-window.vala:967 +msgid "Labels" +msgstr "Címkék" + +#. / Translators: Primary text for a confirmation dialog +#: src/client/application/application-main-window.vala:1306 +#| msgid "Do you want to permanently delete this message?" +#| msgid_plural "Do you want to permanently delete these messages?" +msgid "Do you want to permanently delete this conversation?" +msgid_plural "Do you want to permanently delete these conversations?" +msgstr[0] "Véglegesen törölni szeretné ezt a beszélgetést?" +msgstr[1] "Véglegesen törölni szeretné ezeket a beszélgetéseket?" + +#: src/client/application/application-main-window.vala:1311 +#: src/client/application/application-main-window.vala:1326 +msgid "Delete" +msgstr "Törlés" + +#. / Translators: Primary text for a confirmation dialog +#: src/client/application/application-main-window.vala:1321 +msgid "Do you want to permanently delete this message?" +msgid_plural "Do you want to permanently delete these messages?" +msgstr[0] "Véglegesen törölni szeretné ezt a levelet?" +msgstr[1] "Véglegesen törölni szeretné ezeket a leveleket?" + +#: src/client/application/application-main-window.vala:1334 +#, c-format +msgid "Empty all email from your %s folder?" +msgstr "Minden levelet kiürít a(z) %s mappából?" + +#: src/client/application/application-main-window.vala:1337 +msgid "This removes the email from Geary and your email server." +msgstr "" +"Ez eltávolítja a levelet a Geary programból és a levelezőkiszolgálóról." + +#: src/client/application/application-main-window.vala:1338 +msgid "This cannot be undone." +msgstr "Ez nem vonható vissza." + +#: src/client/application/application-main-window.vala:1339 +#, c-format +msgid "Empty %s" +msgstr "%s ürítése" + +#: src/client/application/application-main-window.vala:1669 +#, c-format +msgid "%s (%d)" +msgstr "%s (%d)" + +#. Translators: The first argument will be a +#. description of the document type, the second will +#. be a human-friendly size string. For example: +#. Document (100.9MB) +#. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" +#: src/client/components/components-attachment-pane.vala:107 +#: src/client/composer/composer-widget.vala:1834 +#, c-format +msgid "%s (%s)" +msgstr "%s (%s)" + +#: src/client/components/components-attachment-pane.vala:379 msgid "Are you sure you want to open these attachments?" msgstr "Biztosan meg szeretné nyitni ezeket a mellékleteket?" -#: src/client/application/application-controller.vala:1737 +#: src/client/components/components-attachment-pane.vala:380 msgid "" "Attachments may cause damage to your system if opened. Only open files from " "trusted sources." @@ -854,379 +1267,167 @@ msgstr "" "A mellékletek kárt okozhatnak a rendszerében, ha meg vannak nyitva. Csak " "megbízható forrásokból nyisson meg fájlokat." -#: src/client/application/application-controller.vala:1738 +#: src/client/components/components-attachment-pane.vala:381 msgid "Don’t _ask me again" msgstr "Ne _kérdezze újra" -#. Translators: Dialog primary label when prompting to -#. overwrite a file. The string substitution is the file'sx -#. name. -#: src/client/application/application-controller.vala:1861 -#, c-format -msgid "A file named “%s” already exists. Do you want to replace it?" -msgstr "Már létezik „%s” nevű fájl. Le akarja cserélni?" - -#. Translators: Dialog secondary label when prompting to -#. overwrite a file. The string substitution is the parent -#. folder's name. -#: src/client/application/application-controller.vala:1868 -#, c-format -msgid "" -"The file already exists in “%s”. Replacing it will overwrite its contents." -msgstr "" -"A fájl már létezik a(z) „%s” helyen. Lecserélésével a tartalma felül lesz " -"írva." - -#: src/client/application/application-controller.vala:1872 -msgid "_Replace" -msgstr "_Csere" - -#: src/client/application/application-controller.vala:2232 -#, c-format -msgid "Empty all email from your %s folder?" -msgstr "Minden levelet kiürít a(z) %s mappából?" - -#: src/client/application/application-controller.vala:2233 -msgid "This removes the email from Geary and your email server." -msgstr "" -"Ez eltávolítja a levelet a Geary programból és a levelezőkiszolgálóról." - -#: src/client/application/application-controller.vala:2234 -msgid "This cannot be undone." -msgstr "Ez nem vonható vissza." - -#: src/client/application/application-controller.vala:2235 -#, c-format -msgid "Empty %s" -msgstr "%s ürítése" - -#: src/client/application/application-controller.vala:2252 -#, c-format -msgid "Error emptying %s" -msgstr "Hiba a(z) %s ürítésekor" - -#: src/client/application/application-controller.vala:2283 -msgid "Do you want to permanently delete this message?" -msgid_plural "Do you want to permanently delete these messages?" -msgstr[0] "Véglegesen törölni szeretné ezt a levelet?" -msgstr[1] "Véglegesen törölni szeretné ezeket a leveleket?" - -#: src/client/application/application-controller.vala:2285 -msgid "Delete" -msgstr "Törlés" - -#: src/client/application/application-controller.vala:2299 -#, c-format -#| msgid "%d message" -#| msgid_plural "%d messages" -msgid "Trashed %d message" -msgid_plural "Trashed %d messages" -msgstr[0] "%d levél törölve" -msgstr[1] "%d levél törölve" - -#: src/client/application/application-controller.vala:2346 -#, c-format -#| msgid "%d message" -#| msgid_plural "%d messages" -msgid "Archived %d message" -msgid_plural "Archived %d messages" -msgstr[0] "%d levél archiválva" -msgstr[1] "%d levél archiválva" - -#. Translators: The label for an in-app notification. The -#. string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2474 -#, c-format -msgid "Successfully sent mail to %s." -msgstr "A levél sikeresen elküldve ide: %s." - -#: src/client/application/application-controller.vala:2552 -msgid "Failed to open default text editor." -msgstr "Nem sikerült megnyitni az alapértelmezett szövegszerkesztőt." - -#: src/client/application/geary-application.vala:31 -msgid "Copyright 2016 Software Freedom Conservancy Inc." -msgstr "Copyright 2016 Software Freedom Conservancy Inc." - -#: src/client/application/geary-application.vala:32 -msgid "Copyright 2016-2019 Geary Development Team." -msgstr "Copyright 2016-2019 A Geary fejlesztőcsapat." - -#: src/client/application/geary-application.vala:34 -msgid "Visit the Geary web site" -msgstr "Keresse fel a Geary weboldalát" - -#. / Command line option -#: src/client/application/geary-application.vala:109 -msgid "Print debug logging" -msgstr "Hibakeresési naplózás kiírása" - -#. / Command line option -#: src/client/application/geary-application.vala:112 -#| msgid "Start Geary with hidden main window" -msgid "Start with the main window hidden (deprecated)" -msgstr "Indítás rejtett főablakkal (elavult)" - -#. / Command line option -#: src/client/application/geary-application.vala:115 -msgid "Enable WebKitGTK Inspector in web views" -msgstr "WebKitGTK vizsgáló engedélyezése a webes nézetekben" - -#. / Command line option -#: src/client/application/geary-application.vala:118 -msgid "Log conversation monitoring" -msgstr "Beszélgetésfigyelés naplózása" - -#. / Command line option -#: src/client/application/geary-application.vala:121 -#| msgid "Log network deserialization" -msgid "Log IMAP network deserialization" -msgstr "IMAP hálózati visszafejtés naplózása" - -#. / Command line option. "Normalization" can also be called -#. / "synchronization". -#: src/client/application/geary-application.vala:125 -msgid "Log folder normalization" -msgstr "Mappa-normalizálás naplózása" - -#. / Command line option -#: src/client/application/geary-application.vala:128 -msgid "Log network activity" -msgstr "Hálózati tevékenység naplózása" - -#. / Command line option -#: src/client/application/geary-application.vala:131 -msgid "Log periodic activity" -msgstr "Időszakos tevékenység naplózása" - -#. / Command line option. The IMAP replay queue is how changes -#. / on the server are replicated on the client. It could -#. / also be called the IMAP events queue. -#: src/client/application/geary-application.vala:136 -msgid "Log IMAP replay queue" -msgstr "IMAP eseménysor naplózása" - -#. / Command line option. Serialization is how commands and -#. / responses are converted into a stream of bytes for -#. / network transmission -#: src/client/application/geary-application.vala:141 -#| msgid "Log network serialization" -msgid "Log IMAP network serialization" -msgstr "IMAP hálózati sorosítás naplózása" - -#. / Command line option -#: src/client/application/geary-application.vala:144 -msgid "Log database queries (generates lots of messages)" -msgstr "Adatbázis lekérdezések naplózása (sok üzenetet állít elő)" - -#. / Command line option -#: src/client/application/geary-application.vala:147 -msgid "Perform a graceful quit" -msgstr "Elegáns kilépés végrehajtása" - -#. / Command line option -#: src/client/application/geary-application.vala:150 -#| msgid "Revoke all server certificates with TLS warnings" -msgid "Revoke all pinned TLS server certificates" -msgstr "Az összes rögzített TLS kiszolgáló tanúsítvány visszavonása" - -#. / Command line option -#: src/client/application/geary-application.vala:153 -msgid "Display program version" -msgstr "A program verziójának megjelenítése" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:280 -#| msgid "Mark conversation" -#| msgid_plural "Mark conversations" -msgid "Geary version" -msgstr "Geary verzió" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:282 -msgid "Geary revision" -msgstr "Geary revízió" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:284 -msgid "GTK version" -msgstr "GTK verzió" - -#. / Applciation runtime information label -#: src/client/application/geary-application.vala:291 -msgid "GLib version" -msgstr "GLib verzió" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:298 -msgid "WebKitGTK version" -msgstr "WebKitGTK verzió" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:305 -msgid "Desktop environment" -msgstr "Asztali környezet" - -#. Translators: This is the file type displayed for -#. attachments with unknown file types. -#: src/client/application/geary-application.vala:307 -#: src/client/conversation-viewer/conversation-email.vala:159 -msgid "Unknown" -msgstr "Ismeretlen" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:337 -msgid "Distribution name" -msgstr "Disztribúció neve" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:342 -msgid "Distribution release" -msgstr "Disztribúció kiadása" - -#. / Application runtime information label -#: src/client/application/geary-application.vala:350 -msgid "Installation prefix" -msgstr "Telepítési előtag" - -#: src/client/application/geary-application.vala:490 -#, c-format -msgid "About %s" -msgstr "%s névjegye" - -#. Translators: add your name and email address to receive -#. credit in the About dialog For example: Yamada Taro -#. -#: src/client/application/geary-application.vala:494 -msgid "translator-credits" -msgstr "" -"Kelemen Gábor \n" -"Lukács Bence \n" -"Meskó Balázs \n" -"Úr Balázs " - -#. / Warning printed to the console when a deprecated -#. / command line option is used. -#: src/client/application/geary-application.vala:778 -msgid "The `--hidden` option is deprecated and will be removed in the future." -msgstr "A „--hidden” kapcsoló elavult, és el lesz távolítva a jövőben." - -#. / Command line warning, string substitution -#. / is the given argument -#: src/client/application/geary-application.vala:810 -#, c-format -#| msgid "Unrecognized command line option “%s”\n" -msgid "Unrecognised program argument: “%s”" -msgstr "Felismerhetetlen programargumentum: „%s”" - -#: src/client/components/components-inspector.vala:68 -#| msgid "_Inspect…" +#: src/client/components/components-inspector.vala:72 msgid "Inspector" msgstr "Vizsgáló" #. / Translators: Title for Inspector logs pane #. / Translators: Title for problem report dialog logs pane -#: src/client/components/components-inspector.vala:77 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:91 +#: src/client/components/components-inspector.vala:87 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:102 msgid "Logs" msgstr "Naplók" #. / Translators: Title for Inspector system system information pane #. / Translators: Title for problem report system information #. / pane -#: src/client/components/components-inspector.vala:81 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:94 +#: src/client/components/components-inspector.vala:91 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:105 msgid "System" msgstr "Rendszer" #. Button label for saving problem report information -#: src/client/components/components-inspector.vala:198 -#: src/client/components/components-inspector.vala:201 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:210 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:213 +#: src/client/components/components-inspector.vala:208 +#: src/client/components/components-inspector.vala:211 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:221 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:224 #: ui/problem-details-dialog.ui:42 -#| msgid "_Save All" msgid "Save As" msgstr "Mentés másként" -#: src/client/components/components-inspector.vala:202 -#: src/client/dialogs/dialogs-problem-details-dialog.vala:214 +#: src/client/components/components-inspector.vala:212 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:225 #: ui/accounts_editor_servers_pane.ui:17 msgid "Cancel" msgstr "Mégse" +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:43 +msgid "_Automatically select next message" +msgstr "Következő levél _automatikus kiválasztása" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:53 +msgid "_Display conversation preview" +msgstr "_Beszélgetés előnézetének megjelenítése" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:63 +msgid "Use _three pane view" +msgstr "_Három ablaktábla nézet használata" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:73 +#| msgctxt "shortcut window" +#| msgid "Single-key shortcuts" +msgid "Use _single key email shortcuts" +msgstr "_Egybillentyűs e-mail-gyorsbillentyűk használata" + +#: src/client/components/components-preferences-window.vala:75 +msgid "" +"Enable keyboard shortcuts for email actions that do not require pressing " +"" +msgstr "" +"Engedélyezi a gyorsbillentyűket az olyan e-mail-műveleteknél, amelyek nem " +"igénylik a lenyomását" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:86 +msgid "_Watch for new mail when closed" +msgstr "Zárt állapotban is _figyeljen az új levél érkezésére" + +#. / Translators: Preferences tooltip +#: src/client/components/components-preferences-window.vala:90 +msgid "Geary will keep running after all windows are closed" +msgstr "A Geary továbbra is futni fog az összes ablak bezárása után" + +#. / Translators: Search entry placeholder text +#: src/client/components/components-search-bar.vala:12 +#: src/client/folder-list/folder-list-search-branch.vala:53 +#: src/engine/api/geary-special-folder-type.vala:51 +msgid "Search" +msgstr "Keresés" + +#. / Translators: Search entry tooltip +#: src/client/components/components-search-bar.vala:32 +#| msgid "Search all mail in account for keywords (Ctrl+S)" +msgid "Search all mail in account for keywords" +msgstr "A fiók minden levélének keresése kulcsszavakra" + +#. / Translators: Search entry placeholder, string +#. / replacement is the name of an account +#: src/client/components/components-search-bar.vala:81 +#: src/client/folder-list/folder-list-search-branch.vala:54 +#, c-format +msgid "Search %s account" +msgstr "%s fiók keresése" + #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but one is not provided. -#: src/client/components/components-validator.vala:378 +#: src/client/components/components-validator.vala:390 msgid "An email address is required" msgstr "Egy e-mail cím szükséges" #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but the address is invalid. -#: src/client/components/components-validator.vala:382 +#: src/client/components/components-validator.vala:394 msgid "Not a valid email address" msgstr "Nem érvénytelen e-mail cím" #. Translators: Tooltip used when an entry requires a valid, #. resolvable server name to be entered, but one is not #. provided. -#: src/client/components/components-validator.vala:428 +#: src/client/components/components-validator.vala:440 msgid "A server name is required" msgstr "Egy kiszolgálónév szükséges" #. Translators: Tooltip used when an entry requires a valid #. server name to be entered, but it was unable to be #. looked-up in the DNS. -#: src/client/components/components-validator.vala:433 +#: src/client/components/components-validator.vala:445 msgid "Could not look up server name" msgstr "Nem sikerült megkeresni a kiszolgáló nevét" -#: src/client/components/main-toolbar.vala:139 +#: src/client/components/main-toolbar.vala:116 msgid "Mark conversation" msgid_plural "Mark conversations" msgstr[0] "Beszélgetés megjelölése" msgstr[1] "Beszélgetések megjelölése" -#: src/client/components/main-toolbar.vala:144 +#: src/client/components/main-toolbar.vala:121 msgid "Add label to conversation" msgid_plural "Add label to conversations" msgstr[0] "Címke hozzáadása a beszélgetéshez" msgstr[1] "Címke hozzáadása a beszélgetésekhez" -#: src/client/components/main-toolbar.vala:149 +#: src/client/components/main-toolbar.vala:126 msgid "Move conversation" msgid_plural "Move conversations" msgstr[0] "Beszélgetés áthelyezése" msgstr[1] "Beszélgetések áthelyezése" -#: src/client/components/main-toolbar.vala:154 -#| msgid "Archive conversation (A)" -#| msgid_plural "Archive conversations (A)" +#: src/client/components/main-toolbar.vala:131 msgid "Archive conversation" msgid_plural "Archive conversations" msgstr[0] "Beszélgetés archiválása" msgstr[1] "Beszélgetések archiválása" -#: src/client/components/main-toolbar.vala:163 -#| msgid "Move conversation" -#| msgid_plural "Move conversations" +#: src/client/components/main-toolbar.vala:142 msgid "Move conversation to Trash" msgid_plural "Move conversations to Trash" msgstr[0] "Beszélgetés áthelyezése a Kukába" msgstr[1] "Beszélgetések áthelyezése a Kukába" -#: src/client/components/main-toolbar.vala:171 -#| msgid "Delete conversation" +#: src/client/components/main-toolbar.vala:152 msgid "Delete conversation" msgid_plural "Delete conversations" msgstr[0] "Beszélgetés törlése" msgstr[1] "Beszélgetések törlése" -#: src/client/components/main-window.vala:738 -#, c-format -msgid "%s (%d)" -msgstr "%s (%d)" - #. Translators: Info bar title for a generic account #. problem. #: src/client/components/main-window-info-bar.vala:44 @@ -1237,7 +1438,6 @@ msgstr "Fiókprobléma" #. problem. String substitution is the account name. #: src/client/components/main-window-info-bar.vala:48 #, c-format -#| msgid "Geary has encountered a problem" msgid "Geary has encountered a problem with %s." msgstr "A Geary problémát észlelt ezzel: %s." @@ -1246,7 +1446,6 @@ msgstr "A Geary problémát észlelt ezzel: %s." #. account name. #: src/client/components/main-window-info-bar.vala:61 #, c-format -#| msgid "Geary encountered a problem connecting to an account." msgid "Geary encountered a problem checking mail for %s." msgstr "A Geary problémába ütközött a(z) %s fiók leveleinek ellenőrzésekor." @@ -1260,7 +1459,6 @@ msgstr "Próbáljon meg újrakapcsolódni" #. account name #: src/client/components/main-window-info-bar.vala:73 #, c-format -#| msgid "Geary encountered a problem connecting to an account." msgid "Geary encountered a problem sending email for %s." msgstr "A Geary problémába ütközött a(z) %s fiók leveleinek elküldésekor." @@ -1278,8 +1476,6 @@ msgstr "A Geary problémát észlelt" #. Translators: Info bar sub-title for a generic #. application problem. #: src/client/components/main-window-info-bar.vala:88 -#| msgid "" -#| "Please check the technical details and report the problem if it persists." msgid "Please report the details if it persists." msgstr "Jelentse a részleteket, ha továbbra is fennáll." @@ -1301,28 +1497,6 @@ msgstr "A hiba műszaki részleteinek megtekintése" msgid "_Retry" msgstr "Ú_jra" -#: src/client/components/search-bar.vala:8 -#: src/client/folder-list/folder-list-search-branch.vala:38 -#: src/engine/api/geary-special-folder-type.vala:51 -msgid "Search" -msgstr "Keresés" - -#. Search entry. -#: src/client/components/search-bar.vala:23 -msgid "Search all mail in account for keywords (Ctrl+S)" -msgstr "A fiók minden levélének keresése kulcsszavakra (Ctrl+S)" - -#: src/client/components/search-bar.vala:83 -#, c-format -msgid "Indexing %s account" -msgstr "%s fiók indexelése" - -#: src/client/components/search-bar.vala:110 -#: src/client/folder-list/folder-list-search-branch.vala:39 -#, c-format -msgid "Search %s account" -msgstr "%s fiók keresése" - #. / Displayed in the space-limited status bar while a message is in the process of being sent. #: src/client/components/status-bar.vala:26 msgid "Sending…" @@ -1363,15 +1537,15 @@ msgstr "_Bezárás" msgid "_Discard" msgstr "El_dobás" -#: src/client/components/stock.vala:25 ui/main-toolbar-menus.ui:56 +#: src/client/components/stock.vala:25 ui/main-toolbar-menus.ui:52 msgid "_Help" msgstr "_Súgó" -#: src/client/components/stock.vala:26 ui/conversation-email-menus.ui:77 +#: src/client/components/stock.vala:26 ui/components-attachment-pane-menus.ui:7 msgid "_Open" msgstr "_Megnyitás" -#: src/client/components/stock.vala:27 ui/main-toolbar-menus.ui:46 +#: src/client/components/stock.vala:27 ui/main-toolbar-menus.ui:42 msgid "_Preferences" msgstr "_Beállítások" @@ -1388,7 +1562,8 @@ msgstr "_Kilépés" msgid "_Remove" msgstr "_Eltávolítás" -#: src/client/components/stock.vala:31 ui/conversation-email-menus.ui:83 +#: src/client/components/stock.vala:31 +#: ui/components-attachment-pane-menus.ui:11 msgid "_Save" msgstr "_Mentés" @@ -1396,39 +1571,45 @@ msgstr "_Mentés" msgid "_Keep" msgstr "_Megtartás" -#: src/client/composer/composer-link-popover.vala:149 +#: src/client/composer/composer-link-popover.vala:139 msgid "Link URL is not correctly formatted, e.g. http://example.com" msgstr "A hivatkozás URL nem helyesen formázott, például http://example.com" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid link URL" msgstr "Érvénytelen hivatkozás URL" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid email address" msgstr "Érvénytelen e-mail cím" -#: src/client/composer/composer-widget.vala:156 +#. / Translators: Title for an empty composer window +#: src/client/composer/composer-widget.vala:30 +msgid "New Message" +msgstr "Új levél" + +#: src/client/composer/composer-widget.vala:217 msgid "Saved" msgstr "Elmentve" -#: src/client/composer/composer-widget.vala:157 +#: src/client/composer/composer-widget.vala:218 msgid "Saving" msgstr "Mentés" -#: src/client/composer/composer-widget.vala:158 +#: src/client/composer/composer-widget.vala:219 msgid "Error saving" msgstr "Hiba a mentéskor" -#: src/client/composer/composer-widget.vala:159 +#: src/client/composer/composer-widget.vala:220 msgid "Press Backspace to delete quote" msgstr "Nyomja meg a Backspace billentyűt az idézet törléséhez" #. Translators: This is list of keywords, separated by pipe ("|") #. characters, that suggest an attachment; since this is full-word -#. checking, include all variants of each word. No spaces are -#. allowed. -#: src/client/composer/composer-widget.vala:168 +#. checking, include all variants of each word. No spaces are +#. allowed. The words will be converted to lower case based on +#. locale and English versions included automatically. +#: src/client/composer/composer-widget.vala:236 msgid "" "attach|attaching|attaches|attachment|attachments|attached|enclose|enclosed|" "enclosing|encloses|enclosure|enclosures" @@ -1446,100 +1627,90 @@ msgstr "" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. Keep, Discard or Cancel. -#: src/client/composer/composer-widget.vala:1181 +#: src/client/composer/composer-widget.vala:843 msgid "Do you want to keep or discard this draft message?" msgstr "Megtartja vagy eldobja ezt a piszkozatlevelet?" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. only Discard or Cancel. -#: src/client/composer/composer-widget.vala:1211 +#: src/client/composer/composer-widget.vala:869 msgid "Do you want to discard this draft message?" msgstr "El szeretné dobni ezt a piszkozatlevelet?" -#: src/client/composer/composer-widget.vala:1330 +#: src/client/composer/composer-widget.vala:1503 msgid "Send message with an empty subject and body?" msgstr "Elküldi a levelet üres tárggyal és törzzsel?" -#: src/client/composer/composer-widget.vala:1332 +#: src/client/composer/composer-widget.vala:1505 msgid "Send message with an empty subject?" msgstr "Elküldi a levelet üres tárggyal?" -#: src/client/composer/composer-widget.vala:1334 +#: src/client/composer/composer-widget.vala:1507 msgid "Send message with an empty body?" msgstr "Elküldi a levelet üres törzzsel?" -#: src/client/composer/composer-widget.vala:1338 +#: src/client/composer/composer-widget.vala:1516 msgid "Send message without an attachment?" msgstr "Elküldi a levelet melléklet nélkül?" -#: src/client/composer/composer-widget.vala:1652 +#: src/client/composer/composer-widget.vala:1820 #, c-format msgid "“%s” already attached for delivery." msgstr "„%s” már csatolva van a küldeményhez." -#. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" -#. Translators: The first argument will be a -#. description of the document type, the second will -#. be a human-friendly size string. For example: -#. Document (100.9MB) -#: src/client/composer/composer-widget.vala:1660 -#: src/client/conversation-viewer/conversation-email.vala:173 -#, c-format -msgid "%s (%s)" -msgstr "%s (%s)" - -#: src/client/composer/composer-widget.vala:1697 -#, c-format -msgid "“%s” could not be found." -msgstr "„%s” nem található." - -#: src/client/composer/composer-widget.vala:1703 -#, c-format -msgid "“%s” is a folder." -msgstr "„%s” egy mappa." - -#: src/client/composer/composer-widget.vala:1709 +#: src/client/composer/composer-widget.vala:1856 +#: src/client/composer/composer-widget.vala:1906 #, c-format msgid "“%s” is an empty file." msgstr "„%s” egy üres fájl." -#: src/client/composer/composer-widget.vala:1722 +#: src/client/composer/composer-widget.vala:1894 +#, c-format +msgid "“%s” could not be found." +msgstr "„%s” nem található." + +#: src/client/composer/composer-widget.vala:1900 +#, c-format +msgid "“%s” is a folder." +msgstr "„%s” egy mappa." + +#: src/client/composer/composer-widget.vala:1919 #, c-format msgid "“%s” could not be opened for reading." msgstr "„%s” nem nyitható meg olvasásra." -#: src/client/composer/composer-widget.vala:1730 +#: src/client/composer/composer-widget.vala:1927 msgid "Cannot add attachment" msgstr "Nem sikerült mellékletet hozzáadni" #. Translators: Human-readable version of the RFC 822 To header -#: src/client/composer/composer-widget.vala:1787 -#: src/client/conversation-viewer/conversation-email.vala:976 -#: src/client/util/util-email.vala:216 ui/conversation-message.ui:312 +#: src/client/composer/composer-widget.vala:1984 +#: src/client/conversation-viewer/conversation-email.vala:559 +#: src/client/util/util-email.vala:235 ui/conversation-message.ui:312 msgid "To:" msgstr "Címzett:" #. Translators: Human-readable version of the RFC 822 CC header -#: src/client/composer/composer-widget.vala:1793 -#: src/client/conversation-viewer/conversation-email.vala:981 -#: src/client/util/util-email.vala:221 ui/conversation-message.ui:357 +#: src/client/composer/composer-widget.vala:1990 +#: src/client/conversation-viewer/conversation-email.vala:564 +#: src/client/util/util-email.vala:240 ui/conversation-message.ui:357 msgid "Cc:" msgstr "Másolat:" #. Translators: Human-readable version of the RFC 822 BCC header -#: src/client/composer/composer-widget.vala:1799 -#: src/client/conversation-viewer/conversation-email.vala:986 +#: src/client/composer/composer-widget.vala:1996 +#: src/client/conversation-viewer/conversation-email.vala:569 #: ui/conversation-message.ui:402 msgid "Bcc:" -msgstr "Titkos másolat:" +msgstr "Rejtett másolat:" #. Translators: Human-readable version of the RFC 822 Reply-To header -#: src/client/composer/composer-widget.vala:1805 +#: src/client/composer/composer-widget.vala:2002 msgid "Reply-To: " msgstr "Válaszcím: " -#: src/client/composer/composer-widget.vala:1945 +#: src/client/composer/composer-widget.vala:2254 msgid "Select Color" msgstr "Szín kiválasztása" @@ -1548,43 +1719,37 @@ msgstr "Szín kiválasztása" #. printf argument will be the alternate email address, #. and the second will be the account's primary email #. address. -#: src/client/composer/composer-widget.vala:2137 +#: src/client/composer/composer-widget.vala:2439 #, c-format msgid "%1$s via %2$s" msgstr "%1$s ezen keresztül: %2$s" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: src/client/composer/composer-widget.vala:2192 +#: src/client/composer/composer-widget.vala:2495 msgid "_From:" msgstr "_Feladó:" #. Translators: This is the name of the file chooser filter #. when inserting an image in the composer. -#: src/client/composer/composer-widget.vala:2472 +#: src/client/composer/composer-widget.vala:2800 msgid "Images" msgstr "Képek" -#: src/client/composer/composer-window.vala:14 -msgid "New Message" -msgstr "Új levél" - -#: src/client/composer/spell-check-popover.vala:108 +#: src/client/composer/spell-check-popover.vala:125 msgid "Remove this language from the preferred list" msgstr "Nyelv eltávolítása az előnyben részesített listáról" -#: src/client/composer/spell-check-popover.vala:112 +#: src/client/composer/spell-check-popover.vala:129 msgid "Add this language to the preferred list" msgstr "Nyelv hozzáadása az előnyben részesített listához" -#: src/client/composer/spell-check-popover.vala:199 +#: src/client/composer/spell-check-popover.vala:225 msgid "Search for more languages" msgstr "Több nyelv keresése" #. / Translators: Context menu item -#: src/client/conversation-list/conversation-list-view.vala:337 -#| msgid "Move conversation" -#| msgid_plural "Move conversations" +#: src/client/conversation-list/conversation-list-view.vala:335 msgid "Move conversation to _Trash" msgid_plural "Move conversations to _Trash" msgstr[0] "Beszélgetés áthelyezése a _Kukába" @@ -1592,44 +1757,43 @@ msgstr[1] "Beszélgetések áthelyezése a _Kukába" #. / Translators: Context menu item #: src/client/conversation-list/conversation-list-view.vala:347 -#| msgid "Delete conversation" msgid "_Delete conversation" msgid_plural "_Delete conversations" msgstr[0] "Beszélgetés _törlése" msgstr[1] "Beszélgetések _törlése" -#: src/client/conversation-list/conversation-list-view.vala:356 +#: src/client/conversation-list/conversation-list-view.vala:360 #: ui/main-toolbar-menus.ui:5 msgid "Mark as _Read" msgstr "Megjelölés _olvasottként" -#: src/client/conversation-list/conversation-list-view.vala:359 +#: src/client/conversation-list/conversation-list-view.vala:368 #: ui/main-toolbar-menus.ui:9 msgid "Mark as _Unread" msgstr "Megjelölés ol_vasatlanként" -#: src/client/conversation-list/conversation-list-view.vala:362 +#: src/client/conversation-list/conversation-list-view.vala:376 #: ui/main-toolbar-menus.ui:17 msgid "U_nstar" msgstr "C_sillagozás megszüntetése" -#: src/client/conversation-list/conversation-list-view.vala:364 +#: src/client/conversation-list/conversation-list-view.vala:383 #: ui/main-toolbar-menus.ui:13 msgid "_Star" msgstr "_Csillagozás" #. Translators: Menu item to reply to a specific message. -#: src/client/conversation-list/conversation-list-view.vala:367 +#: src/client/conversation-list/conversation-list-view.vala:392 #: ui/conversation-email-menus.ui:9 msgid "_Reply" msgstr "_Válasz" -#: src/client/conversation-list/conversation-list-view.vala:368 +#: src/client/conversation-list/conversation-list-view.vala:398 msgid "R_eply All" msgstr "Válasz _mindenkinek" #. Translators: Menu item to forward a specific message. -#: src/client/conversation-list/conversation-list-view.vala:369 +#: src/client/conversation-list/conversation-list-view.vala:404 #: ui/conversation-email-menus.ui:21 msgid "_Forward" msgstr "T_ovábbítás" @@ -1639,24 +1803,24 @@ msgid "Me" msgstr "Én" #. Translators: Human-readable version of the RFC 822 From header -#: src/client/conversation-viewer/conversation-email.vala:971 -#: src/client/util/util-email.vala:207 +#: src/client/conversation-viewer/conversation-email.vala:554 +#: src/client/util/util-email.vala:226 msgid "From:" msgstr "Feladó:" #. Translators: Human-readable version of the RFC 822 Date header -#: src/client/conversation-viewer/conversation-email.vala:991 -#: src/client/util/util-email.vala:212 +#: src/client/conversation-viewer/conversation-email.vala:574 +#: src/client/util/util-email.vala:231 msgid "Date:" msgstr "Dátum:" #. Translators: Human-readable version of the RFC 822 Subject header -#: src/client/conversation-viewer/conversation-email.vala:1001 -#: src/client/util/util-email.vala:210 +#: src/client/conversation-viewer/conversation-email.vala:584 +#: src/client/util/util-email.vala:229 msgid "Subject:" msgstr "Tárgy:" -#: src/client/conversation-viewer/conversation-message.vala:129 +#: src/client/conversation-viewer/conversation-message.vala:128 msgid "This email address may have been forged" msgstr "Ez az e-mail cím hamisított lehet" @@ -1664,44 +1828,44 @@ msgstr "Ez az e-mail cím hamisított lehet" #. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:447 +#: src/client/conversation-viewer/conversation-message.vala:438 msgid "No sender" msgstr "Nincs feladó" #. Translators: This separates multiple 'from' #. addresses in the compact header for a message. -#: src/client/conversation-viewer/conversation-message.vala:840 +#: src/client/conversation-viewer/conversation-message.vala:830 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Imagemailing " -#| "list or file a new bug report." msgid "" "If the problem is serious or persists, please save and send these details to " "the mailing list " "or attach to a new bug report." msgstr "" -"Ha a probléma komoly, és továbbra is fennáll, akkor mentse el és küldje el " -"a részleteket a levelezőlistára vagy mellékelje egy új hibajelentéshez." @@ -2659,14 +2980,6 @@ msgstr "" msgid "Details:" msgstr "Részletek:" -#: ui/components-inspector-log-view.ui:13 -msgid "Inspector opened" -msgstr "Vizsgáló megnyitva" - -#: ui/components-inspector-log-view.ui:65 -msgid "column" -msgstr "oszlop" - #. Tooltip for inspector button #: ui/components-inspector.ui:20 msgid "Toggle appending new log entries" @@ -2675,7 +2988,6 @@ msgstr "Új naplóbejegyzések hozzáfűzésének ki- és bekapcsolása" #. Tooltip for inspector button #. Tooltip for problem report button #: ui/components-inspector.ui:37 ui/problem-details-dialog.ui:19 -#| msgid "Search for more languages" msgid "Search for matching log entries" msgstr "Egyező naplóbejegyzések keresése" @@ -2688,29 +3000,22 @@ msgstr "Naplóbejegyzések és részletek mentése" #. Tooltip for inspector button #. Tooltip for problem report button #: ui/components-inspector.ui:84 ui/problem-details-dialog.ui:62 -#| msgid "Copy to Clipboard" msgid "Copy to clipboard" msgstr "Másolás a vágólapra" #: ui/conversation-contact-popover.ui:146 -#| msgid "Move conversation" -#| msgid_plural "Move conversations" msgid "New Conversation…" msgstr "Új beszélgetés…" #: ui/conversation-contact-popover.ui:159 -#| msgid "Copy Email _Address" msgid "Copy Email Address" msgstr "E-mail cím másolása" #: ui/conversation-contact-popover.ui:182 -#| msgid "Save and Close" msgid "Save in Contacts…" msgstr "Mentés a címjegyzékbe…" #: ui/conversation-contact-popover.ui:195 -#| msgid "Move conversation" -#| msgid_plural "Move conversations" msgid "Show Conversations" msgstr "Beszélgetések megjelenítése" @@ -2724,13 +3029,11 @@ msgstr "Mindig töltse be a távoli képeket" #. Title label on contact popover #: ui/conversation-contact-popover.ui:264 -#| msgid "Invalid email address" msgid "Deceptive email address" msgstr "Megtévesztő e-mail cím" #. Contact popover label #: ui/conversation-contact-popover.ui:294 -#| msgid "Email addresses" msgid "This email address is:" msgstr "Ez az e-mail cím:" @@ -2758,39 +3061,23 @@ msgstr "Levél megjelölése csillagozottként" msgid "Mark this message as not starred" msgstr "Levél megjelölése nem csillagozottként" -#: ui/conversation-email.ui:95 -msgid "Display the message menu" -msgstr "A levél menü megjelenítése" - -#: ui/conversation-email.ui:161 -msgid "Open selected attachments" -msgstr "Kiválasztott mellékletek megnyitása" - -#: ui/conversation-email.ui:178 -msgid "Save selected attachments" -msgstr "Kiválasztott mellékletek mentése" - -#: ui/conversation-email.ui:195 -msgid "Select all attachments" -msgstr "Minden melléklet kiválasztása" - -#: ui/conversation-email.ui:240 +#: ui/conversation-email.ui:124 msgid "Edit Draft" msgstr "Piszkozat szerkesztése" -#: ui/conversation-email.ui:267 +#: ui/conversation-email.ui:151 msgid "Draft message" msgstr "Piszkozat" -#: ui/conversation-email.ui:283 +#: ui/conversation-email.ui:167 msgid "This message has not yet been sent." msgstr "Ez a levél még nem lett elküldve." -#: ui/conversation-email.ui:329 +#: ui/conversation-email.ui:213 msgid "Message not saved" msgstr "A levél nincs mentve" -#: ui/conversation-email.ui:345 +#: ui/conversation-email.ui:229 msgid "This message was sent, but has not been saved to your account." msgstr "" "Ez a levél sikeresen el lett küldve, de nem sikerült elmenteni a fiókjába." @@ -2819,14 +3106,11 @@ msgstr "Megjelölés olvasatlanként _innentől" #. Translators: Menu item to move a single, specific message #. to the trash folder #: ui/conversation-email-menus.ui:50 -#| msgctxt "shortcut window" -#| msgid "Move to trash" msgid "Move message to _Trash" msgstr "Levél áthelyezése a _Kukába" #. Translators: Menu item to delete a single, specific message #: ui/conversation-email-menus.ui:57 -#| msgid "_Delete…" msgid "_Delete message…" msgstr "Levél _törlése…" @@ -2835,9 +3119,27 @@ msgstr "Levél _törlése…" msgid "_View Source" msgstr "_Forrás megtekintése" -#: ui/conversation-email-menus.ui:87 -msgid "_Save All" -msgstr "_Mind mentése" +#: ui/conversation-message-link-popover.ui:54 +msgid "But actually goes to:" +msgstr "De valójában ide:" + +#: ui/conversation-message-link-popover.ui:84 +msgid "The link appears to go to:" +msgstr "Úgy tűnik, ez a hivatkozás ide mutat:" + +#: ui/conversation-message-link-popover.ui:96 +msgid "Deceptive link found" +msgstr "Megtévesztő hivatkozás található" + +#: ui/conversation-message-link-popover.ui:111 +msgid "The email sender may be leading you to the wrong web site." +msgstr "Az e-mail küldője talán a rossz weboldalra vezeti Önt." + +#: ui/conversation-message-link-popover.ui:124 +msgid "If unsure, contact the sender and ask before continuing." +msgstr "" +"Ha bizonytalan, vegye fel a kapcsolatot a küldővel, és kérdezzen rá a " +"folytatás előtt." #: ui/conversation-message-menus.ui:7 msgid "_Open Link" @@ -2848,8 +3150,6 @@ msgid "Copy Link _Address" msgstr "Hivatkozás_cím másolása" #: ui/conversation-message-menus.ui:17 -#| msgid "Move conversation" -#| msgid_plural "Move conversations" msgid "_New Conversation…" msgstr "Ú_j beszélgetés…" @@ -2905,28 +3205,6 @@ msgstr "A távoli képek nincsenek megjelenítve" msgid "Only show remote images from senders you trust." msgstr "A távoli képek megjelenítése csak a megbízható feladóktól." -#: ui/conversation-message.ui:692 -msgid "But actually goes to:" -msgstr "De valójában ide:" - -#: ui/conversation-message.ui:723 -msgid "The link appears to go to:" -msgstr "Úgy tűnik, ez a hivatkozás ide mutat:" - -#: ui/conversation-message.ui:735 -msgid "Deceptive link found" -msgstr "Megtévesztő hivatkozás található" - -#: ui/conversation-message.ui:750 -msgid "The email sender may be leading you to the wrong web site." -msgstr "Az e-mail küldője talán a rossz weboldalra vezeti Önt." - -#: ui/conversation-message.ui:763 -msgid "If unsure, contact the sender and ask before continuing." -msgstr "" -"Ha bizonytalan, vegye fel a kapcsolatot a küldővel, és kérdezzen rá a " -"folytatás előtt." - #: ui/conversation-viewer.ui:60 msgid "Find in conversation" msgstr "Keresés a beszélgetésben" @@ -2963,87 +3241,82 @@ msgstr "címke" msgid "Conversation Shortcuts" msgstr "Beszélgetési gyorsbillentyűk" -#: ui/gtk/help-overlay.ui:13 ui/gtk/help-overlay.ui:347 +#: ui/gtk/help-overlay.ui:13 ui/gtk/help-overlay.ui:355 msgctxt "shortcut window" msgid "Actions" msgstr "Műveletek" #: ui/gtk/help-overlay.ui:17 -#| msgid "Move conversation" -#| msgid_plural "Move conversations" msgctxt "shortcut window" msgid "New conversation" msgstr "Új beszélgetés" #: ui/gtk/help-overlay.ui:24 -#| msgctxt "shortcut window" -#| msgid "Reply to sender " msgctxt "shortcut window" msgid "Reply to sender" msgstr "Válasz a feladónak" -#: ui/gtk/help-overlay.ui:31 ui/gtk/help-overlay.ui:282 +#: ui/gtk/help-overlay.ui:31 ui/gtk/help-overlay.ui:269 msgctxt "shortcut window" msgid "Reply to all" msgstr "Válasz mindenkinek" -#: ui/gtk/help-overlay.ui:38 ui/gtk/help-overlay.ui:289 +#: ui/gtk/help-overlay.ui:38 ui/gtk/help-overlay.ui:276 msgctxt "shortcut window" msgid "Forward" msgstr "Továbbítás" -#: ui/gtk/help-overlay.ui:45 ui/gtk/help-overlay.ui:296 -#| msgctxt "shortcut window" -#| msgid "Mark read" +#: ui/gtk/help-overlay.ui:45 ui/gtk/help-overlay.ui:283 msgctxt "shortcut window" msgid "Un-mark/mark read" msgstr "Megjelölés olvasatlanként/olvasottként" -#: ui/gtk/help-overlay.ui:52 ui/gtk/help-overlay.ui:303 +#: ui/gtk/help-overlay.ui:52 ui/gtk/help-overlay.ui:290 msgctxt "shortcut window" msgid "Mark/un-mark starred" msgstr "Megjelölés/eltávolítás csillagozottként" -#: ui/gtk/help-overlay.ui:59 ui/gtk/help-overlay.ui:310 -#| msgid "Archive conversation (A)" -#| msgid_plural "Archive conversations (A)" +#: ui/gtk/help-overlay.ui:59 ui/gtk/help-overlay.ui:297 +#| msgid "Archive conversation" +#| msgid_plural "Archive conversations" msgctxt "shortcut window" -msgid "Archive conversation" -msgstr "Beszélgetés archiválása" +msgid "Archive conversations" +msgstr "Beszélgetések archiválása" -#: ui/gtk/help-overlay.ui:66 ui/gtk/help-overlay.ui:317 +#: ui/gtk/help-overlay.ui:66 ui/gtk/help-overlay.ui:304 #| msgid "Move conversation" #| msgid_plural "Move conversations" msgctxt "shortcut window" -msgid "Move conversation" -msgstr "Beszélgetés áthelyezése" +msgid "Move conversations" +msgstr "Beszélgetések áthelyezése" -#: ui/gtk/help-overlay.ui:73 ui/gtk/help-overlay.ui:324 +#: ui/gtk/help-overlay.ui:73 ui/gtk/help-overlay.ui:311 #| msgctxt "shortcut window" -#| msgid "Label the conversation" +#| msgid "Label conversation" msgctxt "shortcut window" -msgid "Label conversation" -msgstr "Beszélgetés címkézése" +msgid "Label conversations" +msgstr "Beszélgetések címkézése" #: ui/gtk/help-overlay.ui:80 +#| msgctxt "shortcut window" +#| msgid "Trash conversation" +msgctxt "shortcut window" +msgid "Trash conversations" +msgstr "Beszélgetések törlése" + +#: ui/gtk/help-overlay.ui:87 ui/gtk/help-overlay.ui:318 #| msgid "Mark conversation" #| msgid_plural "Mark conversations" msgctxt "shortcut window" -msgid "Trash conversation" -msgstr "Beszélgetés törlése" +msgid "Junk conversations" +msgstr "Beszélgetések megjelölése szemétként" -#: ui/gtk/help-overlay.ui:87 ui/gtk/help-overlay.ui:331 -#| msgctxt "shortcut window" -#| msgid "Move to trash" -msgctxt "shortcut window" -msgid "Move to Spam" -msgstr "Áthelyezés a levélszemétbe" - -#: ui/gtk/help-overlay.ui:95 +#: ui/gtk/help-overlay.ui:95 ui/gtk/help-overlay.ui:325 #| msgid "Delete conversation" +#| msgid_plural "Delete conversations" msgctxt "shortcut window" -msgid "Delete conversation" -msgstr "Beszélgetés törlése" +msgid "Delete conversations" +msgstr "Beszélgetések törlése" #: ui/gtk/help-overlay.ui:104 msgctxt "shortcut window" @@ -3051,8 +3324,6 @@ msgid "Search" msgstr "Keresés" #: ui/gtk/help-overlay.ui:108 -#| msgid "Mark conversation" -#| msgid_plural "Mark conversations" msgctxt "shortcut window" msgid "Search for conversations" msgstr "Beszélgetések keresése" @@ -3063,7 +3334,6 @@ msgid "Find in current conversation" msgstr "Keresés a jelenlegi beszélgetésben" #: ui/gtk/help-overlay.ui:141 -#| msgid "Undo" msgctxt "shortcut window" msgid "Undo" msgstr "Visszavonás" @@ -3098,7 +3368,7 @@ msgctxt "shortcut window" msgid "Reset zoom" msgstr "Nagyítás visszaállítása" -#: ui/gtk/help-overlay.ui:188 ui/gtk/help-overlay.ui:367 +#: ui/gtk/help-overlay.ui:188 ui/gtk/help-overlay.ui:375 msgctxt "shortcut window" msgid "General" msgstr "Általános" @@ -3114,197 +3384,187 @@ msgid "Show keyboard shortcuts" msgstr "Gyorsbillentyűk megjelenítése" #: ui/gtk/help-overlay.ui:206 -#| msgctxt "shortcut window" -#| msgid "Close composer window" msgctxt "shortcut window" -msgid "Close current window" -msgstr "Jelenlegi ablak bezárása" +msgid "Open a new window" +msgstr "Új ablak megnyitása" #: ui/gtk/help-overlay.ui:213 +#| msgctxt "shortcut window" +#| msgid "Close current window" +msgctxt "shortcut window" +msgid "Close the current window" +msgstr "Jelenlegi ablak bezárása" + +#: ui/gtk/help-overlay.ui:220 msgctxt "shortcut window" msgid "Quit the application" msgstr "Kilépés az alkalmazásból" -#: ui/gtk/help-overlay.ui:222 +#: ui/gtk/help-overlay.ui:229 msgctxt "shortcut window" msgid "Keyboard navigation" msgstr "Billentyűzet navigáció" -#: ui/gtk/help-overlay.ui:226 -#| msgctxt "shortcut window" -#| msgid "Move focus to the next/previous pane" -msgctxt "shortcut window" -msgid "Focus the next pane" -msgstr "Fókusz átvitele a következő ablaktáblára" - #: ui/gtk/help-overlay.ui:233 #| msgctxt "shortcut window" -#| msgid "Move focus to the next/previous pane" +#| msgid "Focus the previous pane" msgctxt "shortcut window" -msgid "Focus the previous pane" -msgstr "Fókusz átvitele az előző ablaktáblára" +msgid "Go to next/previous pane" +msgstr "Ugrás az előző/következő ablaktáblára" -#: ui/gtk/help-overlay.ui:240 +#: ui/gtk/help-overlay.ui:241 #| msgctxt "shortcut window" -#| msgid "Move focus to conversation list" +#| msgid "Select the conversation up" msgctxt "shortcut window" -msgid "Focus the conversation list" -msgstr "Fókusz átvitele a beszélgetések listájára" +msgid "Select next/previous conversation" +msgstr "Elősző/következő beszélgetés kijelölése" -#: ui/gtk/help-overlay.ui:247 -#| msgid "Delete conversation" -msgctxt "shortcut window" -msgid "Select the conversation down" -msgstr "Beszélgetés kijelölése le" - -#: ui/gtk/help-overlay.ui:254 -#| msgid "Delete conversation" -msgctxt "shortcut window" -msgid "Select the conversation up" -msgstr "Beszélgetés kijelölése fel" - -#: ui/gtk/help-overlay.ui:261 -#| msgctxt "shortcut window" -#| msgid "Move focus to the next/previous pane" +#: ui/gtk/help-overlay.ui:248 msgctxt "shortcut window" msgid "Focus next/previous message" msgstr "Fókusz átvitele a következő/előző üzenetre" -#: ui/gtk/help-overlay.ui:271 -#| msgctxt "shortcut window" -#| msgid "Show keyboard shortcuts" +#: ui/gtk/help-overlay.ui:258 msgctxt "shortcut window" msgid "Single-key shortcuts" msgstr "Egybillentyűs gyorsbillentyűk" -#: ui/gtk/help-overlay.ui:275 +#: ui/gtk/help-overlay.ui:262 msgctxt "shortcut window" msgid "Reply to sender " msgstr "Válasz a feladónak " -#: ui/gtk/help-overlay.ui:343 +#: ui/gtk/help-overlay.ui:332 +#| msgctxt "shortcut window" +#| msgid "Find in current conversation" +msgctxt "shortcut window" +msgid "Find in current conversations" +msgstr "Keresés a jelenlegi beszélgetésekben" + +#: ui/gtk/help-overlay.ui:339 +#| msgctxt "shortcut window" +#| msgid "Select the conversation up" +msgctxt "shortcut window" +msgid "Select next/previous conversations" +msgstr "Előző/következő beszélgetések kijelölése" + +#: ui/gtk/help-overlay.ui:351 msgid "Composer Shortcuts" msgstr "Szerkesztő gyorsbillentyűk" -#: ui/gtk/help-overlay.ui:351 +#: ui/gtk/help-overlay.ui:359 msgctxt "shortcut window" msgid "Send" msgstr "Küldés" -#: ui/gtk/help-overlay.ui:358 +#: ui/gtk/help-overlay.ui:366 msgctxt "shortcut window" msgid "Add attachment" msgstr "Melléklet hozzáadása" -#: ui/gtk/help-overlay.ui:371 +#: ui/gtk/help-overlay.ui:379 msgctxt "shortcut window" msgid "Close composer window" msgstr "Levélíró ablak bezárása" -#: ui/gtk/help-overlay.ui:378 +#: ui/gtk/help-overlay.ui:386 msgctxt "shortcut window" msgid "Detach composer window" msgstr "Levélíró ablak leválasztása" -#: ui/gtk/help-overlay.ui:385 +#: ui/gtk/help-overlay.ui:393 msgctxt "shortcut window" msgid "Editing" msgstr "Szerkesztés" -#: ui/gtk/help-overlay.ui:390 +#: ui/gtk/help-overlay.ui:398 msgctxt "shortcut window" msgid "Move selection to the clipboard" msgstr "Kijelölés áthelyezése a vágólapra" -#: ui/gtk/help-overlay.ui:397 -#| msgid "Copy to Clipboard" +#: ui/gtk/help-overlay.ui:405 msgctxt "shortcut window" msgid "Copy selection to clipboard" msgstr "Kijelölés másolása a vágólapra" -#: ui/gtk/help-overlay.ui:404 +#: ui/gtk/help-overlay.ui:412 msgctxt "shortcut window" msgid "Paste from the clipboard" msgstr "Beillesztés a vágólapról" -#: ui/gtk/help-overlay.ui:411 +#: ui/gtk/help-overlay.ui:419 msgctxt "shortcut window" msgid "Quote text" msgstr "Szöveg idézése" -#: ui/gtk/help-overlay.ui:418 +#: ui/gtk/help-overlay.ui:426 msgctxt "shortcut window" msgid "Unquote text" msgstr "Szöveg idézésének visszavonása" -#: ui/gtk/help-overlay.ui:427 -#| msgctxt "shortcut window" -#| msgid "Rich text mode" +#: ui/gtk/help-overlay.ui:435 msgctxt "shortcut window" msgid "Rich text editing" msgstr "Rich text szerkesztés" -#: ui/gtk/help-overlay.ui:431 -#| msgctxt "Clipboard paste as plain text" -#| msgid "Paste _Without Formatting" +#: ui/gtk/help-overlay.ui:439 msgctxt "shortcut window" msgid "Paste without formatting" msgstr "Beillesztés formázás nélkül" -#: ui/gtk/help-overlay.ui:438 +#: ui/gtk/help-overlay.ui:446 msgctxt "shortcut window" msgid "Bold text" msgstr "Szöveg félkövérré tétele" -#: ui/gtk/help-overlay.ui:445 +#: ui/gtk/help-overlay.ui:453 msgctxt "shortcut window" msgid "Italicize text" msgstr "Szöveg dőltté tétele" -#: ui/gtk/help-overlay.ui:452 +#: ui/gtk/help-overlay.ui:460 msgctxt "shortcut window" msgid "Underline text" msgstr "Szöveg aláhúzása" -#: ui/gtk/help-overlay.ui:459 +#: ui/gtk/help-overlay.ui:467 msgctxt "shortcut window" msgid "Strike text" msgstr "Szöveg áthúzása" -#: ui/gtk/help-overlay.ui:466 +#: ui/gtk/help-overlay.ui:474 msgctxt "shortcut window" msgid "Remove formatting" msgstr "Formázás eltávolítása" -#: ui/gtk/help-overlay.ui:473 -#| msgid "Insert an image (Ctrl+G)" +#: ui/gtk/help-overlay.ui:481 msgctxt "shortcut window" msgid "Insert an image" msgstr "Kép beszúrása" -#: ui/gtk/help-overlay.ui:480 +#: ui/gtk/help-overlay.ui:488 msgctxt "shortcut window" msgid "Insert a link" msgstr "Hivatkozás beszúrása" -#: ui/main-toolbar.ui:23 +#: ui/main-toolbar.ui:24 msgctxt "tooltip" msgid "Compose Message" msgstr "Levél írása" -#: ui/main-toolbar.ui:61 +#: ui/main-toolbar.ui:62 msgid "Toggle search bar" msgstr "Keresősáv ki- vagy bekapcsolása" -#: ui/main-toolbar.ui:113 +#: ui/main-toolbar.ui:114 msgid "Reply" msgstr "Válasz" -#: ui/main-toolbar.ui:136 +#: ui/main-toolbar.ui:137 msgid "Reply All" msgstr "Válasz mindenkinek" -#: ui/main-toolbar.ui:159 +#: ui/main-toolbar.ui:160 msgid "Forward" msgstr "Továbbítás" @@ -3317,106 +3577,30 @@ msgid "_Archive" msgstr "_Archiválás" #: ui/main-toolbar-menus.ui:21 -msgid "Mark as S_pam" -msgstr "Megjelölés levél_szemétként" +#| msgid "Mark as S_pam" +msgid "Toggle as S_pam" +msgstr "Levél_szemétnek jelölés ki- vagy bekapcsolása" -#: ui/main-toolbar-menus.ui:25 -msgid "Mark as not S_pam" -msgstr "Megjelölés nem levél_szemétként" - -#: ui/main-toolbar-menus.ui:32 +#: ui/main-toolbar-menus.ui:28 msgid "Empty _Spam…" msgstr "_Levélszemét ürítése…" -#: ui/main-toolbar-menus.ui:36 +#: ui/main-toolbar-menus.ui:32 msgid "Empty _Trash…" msgstr "_Kuka ürítése…" -#: ui/main-toolbar-menus.ui:42 +#: ui/main-toolbar-menus.ui:38 msgid "_Accounts" msgstr "_Fiókok" -#: ui/main-toolbar-menus.ui:50 +#: ui/main-toolbar-menus.ui:46 msgid "_Keyboard Shortcuts" msgstr "Gyorsbille_ntyűk" -#: ui/main-toolbar-menus.ui:61 +#: ui/main-toolbar-menus.ui:57 msgid "_About Geary" msgstr "A Geary _névjegye" -#. Infobar title when one or more accounts are offline -#: ui/main-window.ui:185 -msgid "Working offline" -msgstr "Kapcsolat nélküli munka" - -#. Label and tooltip for offline infobar -#: ui/main-window.ui:199 -msgid "" -"Your computer does not appear to be connected to the Internet.\n" -"You will not be able to send or receive email until it is re-connected." -msgstr "" -"Úgy tűnik, hogy a számítógépe nem kapcsolódik az internethez.\n" -"Nem lesz képes leveleket küldeni vagy fogadni, amíg nem kapcsolódik újra." - -#. Label and tooltip for offline infobar -#: ui/main-window.ui:202 -msgid "You will not be able to send or receive email until re-connected." -msgstr "" -"Nem lesz képes leveleket küldeni vagy fogadni, amíg nem kapcsolódik újra." - -#. Button label for retrying TLS cert validation -#: ui/main-window.ui:249 -msgid "Check" -msgstr "Ellenőrzés" - -#. Button tooltip for retrying TLS cert validation -#: ui/main-window.ui:253 -msgid "Check the security details for the connection" -msgstr "A kapcsolat biztonsági részleteinek ellenőrzése" - -#. Infobar title when one or more accounts have a TLS cert validation error -#: ui/main-window.ui:282 -msgid "Security problem" -msgstr "Biztonsági probléma" - -#. Label and tooltip for TLS cert validation error infobar -#: ui/main-window.ui:296 -msgid "" -"An account has reported an untrusted server.\n" -"Please check the server configuration and try again." -msgstr "" -"Egy fiók nem megbízható kiszolgálót jelentett.\n" -"Ellenőrizze a kiszolgáló beállításai, és próbálja újra." - -#. Label and tooltip for TLS cert validation error infobar -#: ui/main-window.ui:299 -msgid "An account has reported an untrusted server." -msgstr "Egy fiók nem megbízható kiszolgálót jelentett." - -#. Button tooltip for retrying when a login error has occurred -#: ui/main-window.ui:350 -msgid "Retry login, you will be prompted for your password" -msgstr "Bejelentkezés újrapróbálása, a jelszava bekérésre fog kerülni" - -#. Infobar title when one or more accounts have a login error -#: ui/main-window.ui:379 -msgid "Login problem" -msgstr "Bejelentkezési probléma" - -#. Label and tooltip for authentication problem infobar -#: ui/main-window.ui:393 -msgid "" -"An account has reported an incorrect login or password.\n" -"Please check your login name and try again." -msgstr "" -"Egy fiók helytelen bejelentkezési nevet vagy jelszót jelentett.\n" -"Ellenőrizze a bejelentkezési nevét, és próbálja újra." - -#. Label and tooltip for authentication problem infobar -#: ui/main-window.ui:396 -msgid "An account has reported an incorrect login or password." -msgstr "Egy fiók helytelen bejelentkezési nevet vagy jelszót jelentett." - #: ui/password-dialog.glade:74 msgid "SMTP Credentials" msgstr "SMTP hitelesítési adatok" @@ -3433,46 +3617,6 @@ msgstr "Jelszó _megjegyzése" msgid "_Authenticate" msgstr "_Hitelesítés" -#: ui/preferences-dialog.ui:38 -msgid "Reading" -msgstr "Olvasás" - -#: ui/preferences-dialog.ui:51 -msgid "_Automatically select next message" -msgstr "Következő levél _automatikus kiválasztása" - -#: ui/preferences-dialog.ui:70 -msgid "_Display conversation preview" -msgstr "_Beszélgetés előnézetének megjelenítése" - -#: ui/preferences-dialog.ui:89 -msgid "Use _three pane view" -msgstr "_Három ablaktábla nézet használata" - -#: ui/preferences-dialog.ui:113 -msgid "Notifications" -msgstr "Értesítések" - -#: ui/preferences-dialog.ui:126 -msgid "_Play notification sounds" -msgstr "Értesítő hangok ­_lejátszása" - -#: ui/preferences-dialog.ui:145 -msgid "Show _notifications for new mail" -msgstr "É_rtesítések megjelenítése új levél érkezésekor" - -#: ui/preferences-dialog.ui:164 -msgid "_Watch for new mail when closed" -msgstr "Zárt állapotban is _figyeljen az új levél érkezésére" - -#: ui/preferences-dialog.ui:168 -msgid "Geary will keep running after all windows are closed" -msgstr "A Geary továbbra is futni fog az összes ablak bezárása után" - -#: ui/preferences-dialog.ui:195 -msgid "Preferences" -msgstr "Beállítások" - #: ui/upgrade_dialog.glade:60 msgid "Geary update in progress…" msgstr "Geary frissítés folyamatban…" From f8e3541382a6e9869bd1a8d2957127e7651d08ea Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Sat, 7 Mar 2020 18:02:37 +1100 Subject: [PATCH 048/336] Add explicit valac version check --- meson.build | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meson.build b/meson.build index e92f96c5..b18f2286 100644 --- a/meson.build +++ b/meson.build @@ -51,10 +51,15 @@ valac = meson.get_compiler('vala') # Required libraries and other dependencies # +target_vala = '0.42' target_glib = '2.60.4' target_gtk = '3.24.7' target_webkit = '2.26' +if not valac.version().version_compare('>=' + target_vala) + error('Vala does not meet minimum required version: ' + target_vala) +endif + # Primary deps glib = dependency('glib-2.0', version: '>=' + target_glib) gmime = dependency('gmime-3.0', version: '>= 3.2.4') From 13fdfa5206533db5c17effba6d840a5e626c2a53 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Sat, 7 Mar 2020 18:04:38 +1100 Subject: [PATCH 049/336] Enable valac ABI stability --- src/meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/src/meson.build b/src/meson.build index 244c3699..47f95b2f 100644 --- a/src/meson.build +++ b/src/meson.build @@ -22,6 +22,7 @@ configure_file(output: 'config.h', configuration: conf) # Common valac options geary_vala_args = [ + '--abi-stability', '--enable-checking', ] From 221392cd01e5e74a7ca7f08e91e457059aa0e3e7 Mon Sep 17 00:00:00 2001 From: Federico Bruni Date: Tue, 10 Mar 2020 19:10:05 +0000 Subject: [PATCH 050/336] Update Italian translation --- po/it.po | 105 +++++++++---------------------------------------------- 1 file changed, 16 insertions(+), 89 deletions(-) diff --git a/po/it.po b/po/it.po index fece5530..f6347b87 100644 --- a/po/it.po +++ b/po/it.po @@ -19,8 +19,8 @@ msgid "" msgstr "" "Project-Id-Version: geary master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2020-02-16 20:26+0000\n" -"PO-Revision-Date: 2020-03-03 14:34+0100\n" +"POT-Creation-Date: 2020-03-04 07:58+0000\n" +"PO-Revision-Date: 2020-03-10 11:34+0100\n" "Last-Translator: Federico Bruni \n" "Language-Team: Italian \n" "Language: it\n" @@ -237,8 +237,6 @@ msgid "True if we should display a short preview of each message." msgstr "Vero se si desidera mostrare una breve anteprima di ciascun messaggio." #: desktop/org.gnome.Geary.gschema.xml:74 -#| msgctxt "shortcut window" -#| msgid "Single-key shortcuts" msgid "Use single key shortcuts" msgstr "Usa scorciatoie da tastiera a tasto singolo" @@ -326,7 +324,6 @@ msgid "The last recorded size of the detached composer window." msgstr "L'ultima dimensione salvata della finestra di composizione staccata." #: desktop/org.gnome.Geary.gschema.xml:132 -#| msgid "Error sending email" msgid "Undo sending email delay" msgstr "Ritardo per annullare l'invio dell'email" @@ -1012,7 +1009,6 @@ msgstr "La posta non sarà inviata finché fuori rete" #. / Translators: Label for in-app notification #: src/client/application/application-controller.vala:568 -#| msgid "Conversation Shortcuts" msgid "Conversation marked" msgid_plural "Conversations marked" msgstr[0] "Conversazione contrassegnata" @@ -1020,7 +1016,6 @@ msgstr[1] "Conversazioni contrassegnate" #. / Translators: Label for in-app notification #: src/client/application/application-controller.vala:574 -#| msgid "No conversations found" msgid "Conversation un-marked" msgid_plural "Conversations un-marked" msgstr[0] "Conversazione non contrassegnata" @@ -1032,7 +1027,6 @@ msgstr[1] "Conversazioni non contrassegnate" #: src/client/application/application-controller.vala:600 #: src/client/application/application-controller.vala:684 #, c-format -#| msgid "Conversation Shortcuts" msgid "Conversation moved to %s" msgid_plural "Conversations moved to %s" msgstr[0] "Conversazione spostata in %s" @@ -1046,7 +1040,6 @@ msgstr[1] "Conversazioni spostate in %s" #: src/client/application/application-controller.vala:608 #: src/client/application/application-controller.vala:630 #, c-format -#| msgid "Conversation Shortcuts" msgid "Conversation restored to %s" msgid_plural "Conversations restored to %s" msgstr[0] "Conversazione ripristinata in %s" @@ -1054,7 +1047,6 @@ msgstr[1] "Conversazioni ripristinate in %s" #. / Translators: Label for in-app notification. #: src/client/application/application-controller.vala:651 -#| msgid "Conversation Shortcuts" msgid "Conversation archived" msgid_plural "Conversations archived" msgstr[0] "Conversazione archiviata in %s" @@ -1064,7 +1056,6 @@ msgstr[1] "Conversazioni archiviate in %s" #. / substitution is the name of the destination folder. #: src/client/application/application-controller.vala:707 #, c-format -#| msgid "Message not saved" msgid "Message restored to %s" msgid_plural "Messages restored to %s" msgstr[0] "Messaggio ripristinato in %s" @@ -1072,7 +1063,6 @@ msgstr[1] "Messaggi ripristinati in %s" #. / Translators: Label for in-app notification. #: src/client/application/application-controller.vala:728 -#| msgid "Message not saved" msgid "Message archived" msgid_plural "Messages archived" msgstr[0] "Messaggio archiviato" @@ -1083,7 +1073,6 @@ msgstr[1] "Messaggi archiviati" #. / of the destination folder. #: src/client/application/application-controller.vala:763 #, c-format -#| msgid "Message not saved" msgid "Message moved to %s" msgid_plural "Messages moved to %s" msgstr[0] "Messaggio spostato in %s" @@ -1094,7 +1083,6 @@ msgstr[1] "Messaggi spostati in %s" #. / of the destination folder. #: src/client/application/application-controller.vala:791 #, c-format -#| msgid "No conversations selected" msgid "Conversation labelled as %s" msgid_plural "Conversations labelled as %s" msgstr[0] "Csonversazione etichettata come %s" @@ -1167,34 +1155,34 @@ msgstr "" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:1559 +#: src/client/application/application-controller.vala:1560 #, c-format msgid "Email sent to %s" msgstr "Email inviata a %s" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2642 +#: src/client/application/application-controller.vala:2643 #, c-format msgid "Email to %s queued for delivery" msgstr "Email a %s in coda per la consegna" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2706 +#: src/client/application/application-controller.vala:2707 #, c-format msgid "Email to %s saved" msgstr "Email a %s salvata" #. / Translators: A label for an in-app notification. -#: src/client/application/application-controller.vala:2721 -#: src/client/application/application-controller.vala:2779 +#: src/client/application/application-controller.vala:2722 +#: src/client/application/application-controller.vala:2780 msgid "Composer could not be restored" msgstr "Impossibile ripristinare il compositore" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2764 +#: src/client/application/application-controller.vala:2765 #, c-format msgid "Email to %s discarded" msgstr "Email a %s scartata" @@ -1213,8 +1201,6 @@ msgstr "Etichette" #. / Translators: Primary text for a confirmation dialog #: src/client/application/application-main-window.vala:1306 -#| msgid "Do you want to permanently delete this message?" -#| msgid_plural "Do you want to permanently delete these messages?" msgid "Do you want to permanently delete this conversation?" msgid_plural "Do you want to permanently delete these conversations?" msgstr[0] "Eliminare permanentemente questa conversazione?" @@ -1333,8 +1319,6 @@ msgstr "Usare la visuale a _tre riquadri" #. / Translators: Preferences label #: src/client/components/components-preferences-window.vala:73 -#| msgctxt "shortcut window" -#| msgid "Single-key shortcuts" msgid "Use _single key email shortcuts" msgstr "Usa le scorciatoie da tastiera a tasto _singolo" @@ -1367,7 +1351,6 @@ msgstr "Cerca" #. / Translators: Search entry tooltip #: src/client/components/components-search-bar.vala:32 -#| msgid "Search all mail in account for keywords (Ctrl+S)" msgid "Search all mail in account for keywords" msgstr "Cerca le parole chiave in tutta la posta dell'account" @@ -1729,20 +1712,20 @@ msgstr "Seleziona colore" #. printf argument will be the alternate email address, #. and the second will be the account's primary email #. address. -#: src/client/composer/composer-widget.vala:2439 +#: src/client/composer/composer-widget.vala:2440 #, c-format msgid "%1$s via %2$s" msgstr "%1$s tramite %2$s" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: src/client/composer/composer-widget.vala:2495 +#: src/client/composer/composer-widget.vala:2496 msgid "_From:" msgstr "_Da:" #. Translators: This is the name of the file chooser filter #. when inserting an image in the composer. -#: src/client/composer/composer-widget.vala:2800 +#: src/client/composer/composer-widget.vala:2801 msgid "Images" msgstr "Immagini" @@ -1838,20 +1821,20 @@ msgstr "Questo indirizzo email potrebbe essere contraffatto" #. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:438 +#: src/client/conversation-viewer/conversation-message.vala:439 msgid "No sender" msgstr "Nessun mittente" #. Translators: This separates multiple 'from' #. addresses in the compact header for a message. -#: src/client/conversation-viewer/conversation-message.vala:830 +#: src/client/conversation-viewer/conversation-message.vala:831 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Image Date: Tue, 10 Mar 2020 19:11:00 +0000 Subject: [PATCH 051/336] Update Italian translation --- help/it/it.po | 655 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 446 insertions(+), 209 deletions(-) diff --git a/help/it/it.po b/help/it/it.po index 506a4f84..4c37c07f 100644 --- a/help/it/it.po +++ b/help/it/it.po @@ -1,26 +1,26 @@ # Italian translation for geary. # Copyright (C) 2014 geary's COPYRIGHT HOLDER # This file is distributed under the same license as the geary package. -# Federico Bruni , 2014, 2015, 2016, 2017, 2018, 2019. +# Federico Bruni , 2014-2020. # msgid "" msgstr "" "Project-Id-Version: geary help master\n" -"POT-Creation-Date: 2019-06-19 10:27+0000\n" -"PO-Revision-Date: 2019-08-23 18:11+0200\n" +"POT-Creation-Date: 2019-11-20 23:26+0000\n" +"PO-Revision-Date: 2020-03-10 14:34+0100\n" "Last-Translator: Federico Bruni \n" -"Language-Team: Italiano \n" +"Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.2.3\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"X-Generator: Gtranslator 3.34.0\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" -msgstr "Federico Bruni , 2015, 2016, 2017, 2018, 2019" +msgstr "Federico Bruni , 2014-2020" #. (itstool) path: page/title #: C/accounts.page:10 @@ -209,54 +209,88 @@ msgstr "" "oppure con la scorciatoia CtrlU." #. (itstool) path: page/title +#: C/archive.page:8 +msgid "Archive, trash and delete messages" +msgstr "Archivia, cestina e elimina messaggi" + +#. (itstool) path: page/p #: C/archive.page:10 -msgid "Delete or archive a message" -msgstr "Eliminare o archiviare un messaggio" +msgid "" +"Geary lets you archive messages if your server supports it. Clicking the " +"Archive toolbar button moves the conversation " +"from the current folder to the Archive folder for most email " +"services, or to All Mail for GMail. Archiving helps keep your " +"email organised by moving old and replied-to email out of the way." +msgstr "" +"Geary permette di archiviare i messaggi, se il server lo consente. Facendo " +"clic sul pulsante Archivia della barra degli " +"strumenti la conversazione viene spostata dalla cartella corrente alla " +"cartella Archivio per la maggior parte dei servizi di email, " +"oppure in Tutti i messaggi per GMail. L'archiviazione aiuta a " +"tenere la posta in ordine togliendo di torno le email vecchie." #. (itstool) path: page/p -#: C/archive.page:12 +#: C/archive.page:17 +#| msgid "" +#| "With other mail servers, you can trash or delete, but not archive, " +#| "messages. To move one or more conversations to the Trash " +#| "folder, select them and press the Trash button on the toolbar. " +#| "To permanently delete the conversations, hold down Shift and " +#| "press the Delete button that appears in place of the " +#| "Trash button." msgid "" -"When you use Geary with a Gmail account, Geary lets you archive " -"messages. The Archive toolbar button archives the selected " -"conversation(s). Archived messages appear in the All Mail folder." +"To move conversations to the Trash folder, select them and click " +"the Trash toolbar button. To permanently delete " +"conversations, hold down Shift and click the Delete button that appears in place of the Trash button, " +"or open the conversation in the Trash folder and click Delete there." msgstr "" -"Se si usa Geary con un account Gmail, Geary permette di archiviare " -"i messaggi. Il pulsante Archivia della barra degli strumenti " -"archivia le conversazioni selezionate. I messaggi archiviati appaiono nella " -"cartella Tutta la posta." +"Per spostare le conversazioni nella cartella Cestino, " +"selezionarle e premere il pulsante Cestina della " +"barra degli strumenti. Per eliminare permanentemente le conversazioni, " +"tenere premuto Maiusc e premere il pulsante Elimina che appare al posto del pulsante Cestina; oppure " +"aprire la conversazione nella cartella Cestino e fare clic su " +"Elimina lì." + +#. (itstool) path: note/title +#: C/archive.page:26 +msgid "Undoing changes" +msgstr "Annullare modifiche" + +#. (itstool) path: note/p +#: C/archive.page:27 +msgid "" +"Note that you can always undo archiving or trashing a message if you change " +"your mind. Click Undo on the pop-up notification " +"that appears, or type CtrlZ, or open " +"the folder, find the message, then move it back to your Inbox" +msgstr "" +"È sempre possibile annullare l'archiviazione o lo spostamento nel cestino di " +"un messaggio, nel caso si cambi idea. Basta fare clic su Annulla nella notifica a comparsa che appare, oppure digitare " +"CtrlZ, oppure aprire la cartella, " +"trovare il messaggio e rimetterlo nella Posta in arrivo" #. (itstool) path: page/p -#: C/archive.page:16 +#: C/archive.page:34 msgid "" -"With other mail servers, you can trash or delete, but not archive, messages. " -"To move one or more conversations to the Trash folder, select " -"them and press the Trash button on the toolbar. To permanently " -"delete the conversations, hold down Shift and press the " -"Delete button that appears in place of the Trash " -"button." +"While both Archive and Trash removes conversations from your Inbox folder, " +"there is an important difference. Clicking Archive will ensure your conversations are kept so you can find them again " +"later. Clicking Trash will cause conversations " +"to be hidden from , and they will likely be deleted " +"in the future." msgstr "" -"Se si usano altri server mail, è possibile spostare nel cestino o eliminare " -"i messaggi, ma non archiviarli. Per spostare una o più conversazioni nella " -"cartella Cestino, selezionarle e premere il pulsante " -"Cestina della barra degli strumenti. Per eliminare " -"permanentemente le conversazioni, tenere premuto Maiusc e premere " -"il pulsante Elimina che appare al posto del pulsante " -"Cestina." - -#. (itstool) path: page/p -#: C/archive.page:21 -msgid "" -"Delete is not available from every folder, such as Search. Delete is also " -"unavailable for Gmail. For Gmail, Trash will move messages to the " -"Trash folder on the server, where the user can then manually delete them. " -"The server will automatically remove trashed messages after 30 days." -msgstr "" -"Il pulsante Elimina non è disponibile in tutte le cartelle, come ad esempio " -"nella ricerca. È del tutto assente negli account Gmail. Questi hanno a " -"disposizione solo il pulsante Cestina, che sposta i messaggi " -"nella cartella Cestino sul server, dove l'utente può poi eliminarli " -"manualmente. Il server eliminerà automaticamente i messaggi cestinati dopo " -"30 giorni." +"Sia Archivia sia Cestina tolgono le conversazioni dalla cartella Posta in arrivo, ma " +"c'è una differenza importante. Infatti facendo clic su Archivia le conversazioni sono mantenute, consentendo di ritrovarle " +"in seguito. Facendo clic su Cestina invece le " +"conversazioni vengono nascoste dalla e probabilmente " +"verranno eliminate in futuro." #. (itstool) path: page/title #: C/bugs.page:10 @@ -397,9 +431,6 @@ msgstr "Grazie per aiutarci a rendere Geary migliore!" #. update your localized copy. The msgstr is not used at all. Set it to #. whatever you like once you have updated your copy of the file. #: C/index.page:6 -#| msgctxt "_" -#| msgid "" -#| "external ref='figures/geary.svg' md5='18b50c9e10fe5256ae1cb12aaa3a7600'" msgctxt "_" msgid "external ref='figures/geary.svg' md5='1c66fe237d546362fda9f209840da4a8'" msgstr "" @@ -407,7 +438,6 @@ msgstr "" #. (itstool) path: page/title #: C/index.page:5 -#| msgid " Geary" msgid "" " " "Geary" @@ -752,31 +782,26 @@ msgid "Preferences" msgstr "Preferenze" #. (itstool) path: page/p -#: C/preferences.page:11 +#: C/preferences.page:12 msgid "" -"The Preferences option is available in either Geary's application " -"menu or the gear menu in the upper-right of the toolbar. (The location " -"depends on the install desktop shell. For GNOME Shell and Unity, the " -"application menu is available near the top-left corner of the screen.)" +"Geary allows you to customise how it works via its Preferences window. To open the window, select Preferences from the application menu on the main window's toolbar. " +"You can change the following options:" msgstr "" -"L'opzione Preferenze è disponibile nel menù dell'applicazione o " -"nel menù dell'icona con la ruota dentata in alto a destra (la posizione " -"dipende dall'ambiente grafico utilizzato: in GNOME Shell e Unity il menù " -"dell'applicazione si trova vicino all'angolo superiore sinistro dello " -"schermo)." - -#. (itstool) path: section/title -#: C/preferences.page:17 -msgid "Reading" -msgstr "Lettura" +"Geary permette di personalizzare il suo funzionamento attraverso la finestra " +"delle Preferenze. Per aprire la finestra, " +"selezionare Preferenze dal menù " +"dell'applicazione nella barra degli strumenti della finestra principale. Si " +"possono cambiare le seguenti opzioni:" #. (itstool) path: item/title -#: C/preferences.page:20 +#: C/preferences.page:19 msgid "Automatically select next message" msgstr "Seleziona automaticamente il messaggio successivo" #. (itstool) path: item/p -#: C/preferences.page:21 +#: C/preferences.page:20 msgid "" "When this option is enabled, Geary automatically selects the latest message " "in a folder when you enter the folder. In addition, after archiving a " @@ -818,48 +843,32 @@ msgstr "" "cartelle e quello delle conversazioni saranno impilati verticalmente in un " "unico riquadro." -#. (itstool) path: section/title -#: C/preferences.page:40 -msgid "Notifications" -msgstr "Notifiche" - #. (itstool) path: item/title -#: C/preferences.page:43 -msgid "Play notification sounds" -msgstr "Attiva avvisi sonori" +#: C/preferences.page:38 +msgid "Use single key email shortcuts" +msgstr "Usa le scorciatoie email a tasto singolo" #. (itstool) path: item/p -#: C/preferences.page:44 -msgid "When set, Geary plays a sound whenever a new message arrives." -msgstr "Se impostato, Geary emette un suono quando arriva un nuovo messaggio." - -#. (itstool) path: item/title -#: C/preferences.page:47 -msgid "Show notifications for new mail" -msgstr "Mostra notifiche per i nuovi messaggi" - -#. (itstool) path: item/p -#: C/preferences.page:48 +#: C/preferences.page:39 +#| msgid "" +#| "A number of keyboard shortcuts are available in the composer; see for details." msgid "" -"When set, Geary displays a notification each time a new message " -"arrives. Notifications are displayed in a system-dependent manner. On GNOME " -"Shell, notifications appear at the bottom of the display (older versions) or " -"centered just below the top bar (newer versions). In Ubuntu Unity, " -"notifications appear at the upper right of the display." +"Enable keyboard shortcuts for email actions that do not require pressing " +"Ctrl. These match the shortcuts used by GMail. See for details." msgstr "" -"Se impostato, Geary mostra una notifica ogni volta che arriva un " -"nuovo messaggio. Il modo in cui le notifiche appaiono dipende dal sistema. " -"In GNOME Shell le notifiche appaiono in fondo allo schermo (nelle versioni " -"più vecchie) o centrate proprio sotto la barra superiore (nelle versioni " -"recenti). In Ubuntu Unity appaiono in alto a destra." +"Abilita le scorciatoie da tastiera per le azioni email che non richiedono " +"l'uso di Ctrl. Corrispondono alle scorciatoie usate da GMail. " +"Maggiori dettagli in ." #. (itstool) path: item/title -#: C/preferences.page:54 +#: C/preferences.page:44 msgid "Watch for new mail when closed" msgstr "Controllare la nuova posta dopo la chiusura" #. (itstool) path: item/p -#: C/preferences.page:55 +#: C/preferences.page:45 msgid "" "Geary will watch your accounts for new mail even when the main window is not " "open. To do this, it will silently start when you log in to your computer, " @@ -1050,22 +1059,27 @@ msgstr "" msgid "Keyboard shortcuts" msgstr "Scorciatoie da tastiera" -#. (itstool) path: page/p -#: C/shortcuts.page:12 +#. (itstool) path: section/p +#: C/shortcuts.page:13 +#| msgid "" +#| "Geary has keyboard shortcuts for most common operations. Use the built-in " +#| "keyboard shortcuts help in Geary to discover the full list. This can be " +#| "accessed via the application menu: GearyKeyboard " +#| "Shortcuts or using the keyboard shortcuts listed below." msgid "" "Geary has keyboard shortcuts for most common operations. Use the built-in " -"keyboard shortcuts help in Geary to discover the full list. This can be " -"accessed via the application menu: GearyKeyboard " -"Shortcuts or using the keyboard shortcuts listed below." +"help to discover the full list. To open the shortcuts help, select Keyboard Shortcuts from the application menu on the " +"main window's toolbar, or using the keyboard shortcuts listed below." msgstr "" "Geary ha scorciatoie da tastiera per le operazioni più comuni. Usa l'aiuto " -"integrato delle scorciatoie da tastiera per scoprire l'elenco completo. Si " -"può accedervi dal menu dell'applicazione: GearyScorciatoie da tastiera oppure usando le scorciatoie " -"elencate sotto." +"integrato per scoprire l'elenco completo. Per aprirlo, selezionare Scorciatoie da tastiera dal menù dell'applicazione " +"sulla barra degli strumenti della finestra principale, oppure usando le " +"scorciatoie elencate sotto." -#. (itstool) path: page/p -#: C/shortcuts.page:18 +#. (itstool) path: section/p +#: C/shortcuts.page:19 msgid "" "The following keyboard shortcuts can be used to access on-line help from " "Geary:" @@ -1074,28 +1088,52 @@ msgstr "" "in linea dall'applicazione:" #. (itstool) path: td/p -#: C/shortcuts.page:22 -msgid "Display this User Manual" -msgstr "Mostra questo manuale utente" +#: C/shortcuts.page:23 +#| msgid "Display this User Manual" +msgid "Display this online help manual" +msgstr "Mostra questo manuale utente in linea" #. (itstool) path: td/p -#: C/shortcuts.page:23 +#: C/shortcuts.page:24 msgid "F1" msgstr "F1" #. (itstool) path: td/p -#: C/shortcuts.page:26 +#: C/shortcuts.page:27 msgid "Display all keyboard shortcuts" msgstr "Mostra tutte le scorciatoie da tastiera" #. (itstool) path: td/p -#: C/shortcuts.page:27 +#: C/shortcuts.page:28 +#| msgid "F1" +msgid "Ctrl?" +msgstr "Ctrl?" + +#. (itstool) path: section/title +#: C/shortcuts.page:36 +#| msgid "Display all keyboard shortcuts" +msgid "Single key shortcuts" +msgstr "Scorciatoie a tasto singolo" + +#. (itstool) path: section/p +#: C/shortcuts.page:38 msgid "" -"Ctrl? or CtrlF1" +"You can enable keyboard shortcuts for email actions that do not require " +"pressing Ctrl. These match the shortcuts used by GMail. See for details." msgstr "" -"Ctrl? o CtrlF1" +"Si possono abilitare le scorciatoie da tastiera per le azioni email che non " +"richiedono l'uso di Ctrl. Corrispondono alle scorciatoie usate da " +"GMail. Maggiori dettagli in ." + +#. (itstool) path: section/p +#: C/shortcuts.page:42 +msgid "" +"The full list of single key shortcuts enabled by this preference can be " +"found via the keyboard shortcuts help, above." +msgstr "" +"L'elenco completo delle scorciatoie a tasto singolo abilitate da questa " +"preferenza si trovano nella finestra delle scorciatoie da tastiera, sopra." #. (itstool) path: page/title #: C/star.page:10 @@ -1167,93 +1205,191 @@ msgstr "" "come letto dal menù a discesa." #. (itstool) path: page/title -#: C/write.page:9 -msgid "Write a message" -msgstr "Scrivere un messaggio" +#: C/write.page:7 +#| msgid "Composing and replying" +msgid "Writing new email and replying" +msgstr "Composizione di una nuova email e risposta" #. (itstool) path: section/title -#: C/write.page:12 +#: C/write.page:10 msgid "Composing and replying" msgstr "Composizione e risposta" #. (itstool) path: section/p -#: C/write.page:13 +#: C/write.page:12 msgid "" -"To compose a new message in Geary, press the New Message button " -"on the toolbar." +"To start a new email conversation, click the Compose button on the toolbar. Type the email address of the people to receive " +"the message in the To text field, and a subject " +"line in the Subject field. You can then type your " +"message in the text area below these. Once the message is read to send, " +"click Send or type CtrlEnter to send the message." msgstr "" -"Per comporre un nuovo messaggio in Geary, premere il pulsante Nuovo " -"messaggio della barra degli strumenti." +"Per iniziare una nuova conversazione email, fare clic sul pulsante Componi della barra degli strumenti. Comporre " +"l'indirizzo email delle persone a cui è destinato il messaggio nel campo " +"A e una linea di oggetto nel campo Oggetto. Si può quindi scrivere il proprio messaggio " +"nell'area di testo sottostante. Quando il messaggio è pronto per essere " +"inviato, fare clic su Invia o digitare " +"CtrlInvio per inviare il messaggio." -#. (itstool) path: section/p -#: C/write.page:16 -msgid "" -"To reply to a message, open the message menu in the upper right corner of " -"the message and choose Reply, Reply All or " -"Forward. You can also reply to the last message in a conversation " -"via the Reply, Reply All or Forward buttons " -"on the toolbar." -msgstr "" -"Per rispondere a un messaggio, aprire il menù dei messaggi nell'angolo " -"superiore destro del messaggio e scegliere Rispondi, " -"Rispondi a tutti o Inoltra. È possibile anche " -"rispondere all'ultimo messaggio di una conversazione tramite i pulsanti " -"Rispondi, Rispondi a tutti o Inoltra della " -"barra degli strumenti." - -#. (itstool) path: section/title -#: C/write.page:21 -msgid "Features" -msgstr "Funzionalità" - -#. (itstool) path: section/p +#. (itstool) path: note/title #: C/write.page:23 +msgid "Undoing sending" +msgstr "Annullamento invio" + +#. (itstool) path: note/p +#: C/write.page:24 msgid "" -"Geary's email composer lets you adjust the font, size and color of text. You " -"can also insert hyperlinks into messages." +"When sending an email, Geary will wait 5 seconds before delivering the " +"message. During this time, you will be able to click Undo on the pop-up notification that appears or type " +"CtrlZ to re-open the email, and make " +"more changes to it." msgstr "" -"Il compositore email di Geary permette di regolare il tipo di carattere, la " -"dimensione e il colore del testo. Si possono anche inserire dei collegamenti " -"ipertestuali all'interno dei messaggi." +"Quando si invia un'email, Geary aspetterà 5 secondi prima di consegnare il " +"messaggio. Nel corso di questo tempo, è possibile fare clic su Annulla sulla notifica a comparsa che appare oppure " +"digitare CtrlZ per riaprire l'email e " +"aggiungere delle modifiche." #. (itstool) path: section/p -#: C/write.page:25 -msgid "" -"Geary can also send plain text messages. In the drop-down menu, check or " -"uncheck \"Rich Text\" to toggle between plain text and rich text mode." -msgstr "" -"Geary può anche inviare messaggi di testo semplice. Nel menù a discesa, " -"aggiungere o togliere la spunta a \"Testo formattato\" per scegliere tra le " -"modalità testo semplice e testo formattato." - -#. (itstool) path: section/p -#: C/write.page:28 -msgid "" -"You can attach a file to a message you're writing in either of these ways:" -msgstr "È possibile allegare un file a un messaggio in uno di questi modi:" - -#. (itstool) path: item/p -#: C/write.page:30 -msgid "" -"Press the Attach File button at the lower left of the composer " -"window, then select a file to attach." -msgstr "" -"Premere il pulsante File allegato in basso a sinistra della " -"finestra di composizione, quindi selezionare un file da allegare." - -#. (itstool) path: item/p #: C/write.page:32 msgid "" -"Drag the file from the Nautilus file manager to the composer window, and " -"drop it either on the text fields at the top of the window or on the toolbar " -"at the bottom." +"When entering an email address in the To and Cc fields, Geary will provide suggestions from your " +"desktop address book and from previously sent and received email messages. " +"To choose one of these suggestions, simply click on it. In addition, Bcc and Reply-to fields can " +"be shown by selecting Show extended fields from " +"the formatting toolbar menu." msgstr "" -"Trascinare il file dal gestore file Nautilus alla finestra di composizione e " -"rilasciarlo sui campi testuali in cima alla finestra o sulla barra degli " -"strumenti in basso." +"Quando si inserisce un indirizzo email nei campi A e Cc, Geary fornirà suggerimenti presi dalla " +"rubrica del desktop e dai messaggi email precedentemente inviati e ricevuti. " +"Per scegliere uno di questi suggerimenti, basta fare clic su di esso. È " +"inoltre possibile mostrare i campi Ccn e Rispondi a selezionando Mostra i " +"campi estesi dal menù della barra degli strumenti di formattazione." #. (itstool) path: section/p -#: C/write.page:36 +#: C/write.page:41 +msgid "" +"To reply to the currently selected conversation, click one of the Reply, Reply All or Forward toolbar buttons. This will open a new reply or " +"forwarded email composer for the latest message in the conversation." +msgstr "" +"Per rispondere alla conversazione attualmente selezionata, fare clic su uno " +"dei pulsanti Rispondi, Rispondi a tutti o Inoltra nella barra " +"degli strumenti. Così si aprirà una nuovo compositore di risposta o di " +"inoltro email per l'ultimo messaggio della conversazione." + +#. (itstool) path: section/p +#: C/write.page:47 +msgid "" +"When replying, the message being replied to will be quoted and copied into " +"the footer of the new reply. This can be deleted before typing a reply by " +"pressing Backspace. Alternatively, text can be selectively quoted " +"by selecting the desired text in a message and clicking Reply or Reply All, only the selected " +"text will be quoted." +msgstr "" +"In risposta, il messaggio a cui si risponde viene citato e copiato in fondo " +"alla nuova risposta. Per eliminarlo basta premere Backspace prima " +"di scrivere la risposta. Altrimenti, si può citare il testo in modo " +"selettivo selezionando il testo desiderato in un messaggio e facendo clic su " +"Rispondi o Rispondi a " +"tutti, così che sia citato solo il testo selezionato." + +#. (itstool) path: section/p +#: C/write.page:55 +#| msgid "" +#| "To reply to a message, open the message menu in the upper right corner of " +#| "the message and choose Reply, Reply All or " +#| "Forward. You can also reply to the last message in a " +#| "conversation via the Reply, Reply All or " +#| "Forward buttons on the toolbar." +msgid "" +"To reply to a specific email message, open the message menu in the top " +"corner of the message and choose Reply, Reply All or " +"Forward." +msgstr "" +"Per rispondere a un messaggio in particolare, aprire il menù dei messaggi " +"nell'angolo superiore del messaggio e scegliere Rispondi, " +"Rispondi a tutti o Inoltra." + +#. (itstool) path: section/title +#: C/write.page:61 +msgid "Text formatting, images and attachments" +msgstr "Formattazione del testo, immagini e allegati" + +#. (itstool) path: section/p +#: C/write.page:63 +msgid "" +"Geary's email composer lets you use text styles such as bold and " +"italic, indent text to quote it and links to web pages. Simply " +"select the text and click the appropriate button on the formatting toolbar." +msgstr "" +"Il compositore email di Geary permette di usare stili di testo come " +"grassetto e corsivo/em>, indentazione del testo per la " +"citazione e collegamenti a pagine web. Basta selezionare il testo e fare " +"clic sul pulsante apposito nella barra degli strumenti di formattazione." + +#. (itstool) path: section/p +#: C/write.page:68 +msgid "" +"Bulleted and numbered lists can be inserted or removed by clicking the Bulleted list and Numbered " +"list buttons on the formatting toolbar. The level of indentation of " +"list items can be adjusted using the Indent and " +"Un-indent formatting toolbar buttons." +msgstr "" +"Gli elenchi puntati e numerati si inseriscono o si tolgono facendo clic sui " +"pulsanti Elenco puntato e Elenco numerato della barra degli strumenti di formattazione. Il " +"livello di indentazione degli elementi dell'elenco può essere modificato " +"usando i pulsanti Indenta e Rimuovi indentazione della barra degli strumenti di formattazione." + +#. (itstool) path: section/p +#: C/write.page:75 +msgid "" +"Images can be inserted into rich text messages by clicking the Insert Image button on the formatting toolbar and selecting " +"the image to attach, by dragging an image from the Files " +"application into the email body and then dropping it, or by pasting an image " +"that has been copied to the clipboard from another application." +msgstr "" +"Le immagini possono essere inserite nei messaggi formattati facendo clic sul " +"pulsante Inserisci immagine della barra degli " +"strumenti di formattazione e selezionando l'immagine da allegare, oppure " +"trascinando un'immagine dall'applicazione File dentro al corpo " +"dell'email e poi rilasciarla, oppure incollando un'immagine copiata negli " +"appunti da un'altra applicazione." + +#. (itstool) path: section/p +#: C/write.page:82 +msgid "" +"Documents, music, videos, and other files can be attached to the email by " +"clicking the Attach File button at the top of " +"the composer window and selecting the document to attach, or by dragging a " +"file from the Files application to the composer window, and " +"dropping it either on the text fields at the top of the window or on the " +"toolbar at the bottom." +msgstr "" +"Documenti, musica, video e altri file possono essere allegati all'email " +"facendo clic sul pulsante Allega file in cima " +"alla finestra del compositore e selezionando il documento da allegare, " +"oppure trascinando un file dall'applicazione File alla finestra " +"del compositore e rilasciandolo sui campi testuali in cima alla finestra o " +"sulla barra degli strumenti in basso." + +#. (itstool) path: section/p +#: C/write.page:90 msgid "" "A number of keyboard shortcuts are available in the composer; see for details." @@ -1262,41 +1398,142 @@ msgstr "" "composizione, come è spiegato dettagliatamente in ." #. (itstool) path: section/p -#: C/write.page:38 +#: C/write.page:93 +#| msgid "" +#| "You may specify a signature to be inserted into the composer in the dialog." msgid "" -"You may specify a signature to be inserted into the composer in the dialog." +"You may specify a signature to be inserted into the footer of email in the " +"composer via the dialog." msgstr "" -"Si può indicare una firma da inserire nella finestra di composizione nelle " -"opzioni ." +"Si può indicare nelle opzioni una firma da " +"inserire in fondo all'email nella finestra di composizione." #. (itstool) path: section/title -#: C/write.page:43 -msgid "Drafts" -msgstr "Bozze" +#: C/write.page:98 +msgid "Checking spelling" +msgstr "Controllo ortografico" #. (itstool) path: section/p -#: C/write.page:45 +#: C/write.page:100 +msgid "" +"Geary supports spell-checking your composed email in one or more languages, " +"as you type. To enable spell-checking, first ensure your computer has spell-" +"check dictionaries installed for the desired languages. Consult your " +"computer's help to determine how to install dictionaries if not present." +msgstr "" +"Geary fornisce il controllo ortografico in una o più lingue mentre si digita " +"il testo nella finestra di composizione dell'email. Per abilitarlo, " +"assicurarsi di avere installati i dizionari del controllo ortografico per le " +"lingue desiderate. Consultare il manuale del proprio computer per sapere " +"come installare dizionari se non presenti." + +#. (itstool) path: section/p +#: C/write.page:106 +msgid "" +"To select languages for spell-checking, click the Spell check button on the formatting toolbar, and the language " +"selection popover will appear. Click on a language in the list to toggle it " +"on or off, and click the - button to remove it " +"from the list. If a language does not appear in the list, search for it by " +"typing its name in the search box, then click the + button to add it." +msgstr "" +"Per selezionare le lingue per il controllo ortografico, fare clic sul " +"pulsante Controllo ortografico della barra degli " +"strumenti di formattazione, e apparirà la finestra a comparsa per la scelta " +"della lingua. Fare clic su una lingua dell'elenco per attivarla o " +"disattivarla, e fare clic sul pulsante - per " +"toglierla dall'elenco. Se una lingua non appare nell'elenco, cercarla " +"scrivendo il suo nome nella casella di ricerca, quindi fare clic sul " +"pulsante + per aggiungerla." + +#. (itstool) path: section/title +#: C/write.page:117 +msgid "Saving drafts and restoring discarded messages" +msgstr "Salvataggio bozze e ripristino messaggi scartati" + +#. (itstool) path: section/p +#: C/write.page:119 +#| msgid "" +#| "For mail servers that support drafts, Geary will automatically save the " +#| "message as you type. If you close the composer without sending, Geary " +#| "will prompt you to keep the draft or to discard it." msgid "" "For mail servers that support drafts, Geary will automatically save the " -"message as you type. If you close the composer without sending, Geary will " -"prompt you to keep the draft or to discard it." +"message as you type on the server after a short delay." msgstr "" -"Se si usa un server mail che supporta le bozze, Geary salverà " -"automaticamente il messaggio mentre lo si scrive. Se si chiude il " -"compositore senza inviare, Geary chiede se conservare la bozza o scartarla." +"Se si usa un server mail che supporta le bozze, Geary salverà il messaggio " +"sul server automaticamente dopo un breve ritardo, mentre lo si scrive." #. (itstool) path: section/p -#: C/write.page:48 +#: C/write.page:123 +#| msgid "" +#| "To edit an existing draft, select the Drafts folder in the folder list, " +#| "select the message, and click \"Edit Draft\" in the message viewer." msgid "" -"To edit an existing draft, select the Drafts folder in the folder list, " -"select the message, and click \"Edit Draft\" in the message viewer." +"To edit an existing draft, select the Drafts folder in the folder " +"list, select the message, and click \"Edit Draft\" in the conversation " +"viewer." msgstr "" -"Per modificare una bozza esistente, entrare nella cartella Bozze nell'elenco " -"delle cartelle, selezionare il messaggio e fare clic su \"Modifica bozza\" " -"nel visualizzatore del messaggio." +"Per modificare una bozza esistente, entrare nella cartella Bozze " +"dell'elenco cartelle, selezionare il messaggio e fare clic su \"Modifica " +"bozza\" nel visualizzatore della conversazione." #. (itstool) path: section/p -#: C/write.page:51 -msgid "Geary deletes the draft when you send the message." +#: C/write.page:127 +#| msgid "Geary deletes the draft when you send the message." +msgid "Geary will delete the draft when you send the message." msgstr "Geary elimina la bozza quando il messaggio viene inviato." + +#. (itstool) path: note/p +#: C/write.page:130 +msgid "" +"If you save or discard a composed email, you can re-open it by clicking Undo on the pop-up notification that appears or by " +"typing CtrlZ. The ability to restore " +"a saved or discarded composer will be remain for up to 30 minutes. After " +"that you will need to re-open the message via the Drafts folder, " +"if present." +msgstr "" +"Se si salva o si scarta un'email appena composta, la si può riaprire facendo " +"clic su Annulla nella notifica che appare oppure " +"digitando CtrlZ. La capacità di " +"ripristinare una finestra di composizione salvata o scartata resterà " +"disponibile per 30 minuti. Al termine di questo periodo occorre riaprire il " +"messaggio dalla cartella Bozze, se presente." + +#. (itstool) path: section/title +#: C/write.page:141 +#| msgid "Write a message" +msgid "Plain text messages" +msgstr "Messaggi di testo semplice" + +#. (itstool) path: section/p +#: C/write.page:143 +msgid "" +"Geary can also send plain text messages. In the drop-down menu, check or " +"uncheck Rich Text to toggle between plain text and " +"rich text mode. Plain text mode is useful when sending email to mailing " +"lists that prohibit rich text (HTML) messages, or when sending email to " +"people that do no use modern clients like Geary." +msgstr "" +"Geary può inviare anche messaggi di testo semplice. Nel menù a tendina, " +"aggiungere o togliere la spunta a Testo formattato " +"per passare dal testo semplice a quello formattato e viceversa. La modalità " +"a testo semplice è utile per inviare email alle mailing list che proibiscono " +"i messaggi con testo formattato (HTML) o per inviare email a persone che non " +"usano client di posta moderni come Geary." + +#. (itstool) path: section/p +#: C/write.page:150 +msgid "" +"In plain text mode, text will be automatically wrapped using soft line " +"breaks so that it is no longer than 74 characters wide, and indented text " +"will be wrapped and quoted using a “>” character for each level of " +"quoting." +msgstr "" +"In modalità testo semplice, il testo tornerà a capo automaticamente usando " +"interruzioni di linea leggere in modo che non sia più largo di 74 caratteri, " +"mentre il testo citato sarà avvolto usando un carattere “>” per ciascun " +"livello di citazione." From ecf723c4007072d3a68155b78eb2e2415d4a14e3 Mon Sep 17 00:00:00 2001 From: James Westman Date: Thu, 12 Mar 2020 17:11:23 -0500 Subject: [PATCH 052/336] composer: Remove font colors in plaintext mode Previously, font colors would be shown in the composer even in plaintext editing mode. Fixes #674. --- ui/composer-web-view.css | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/composer-web-view.css b/ui/composer-web-view.css index 21fde84e..3cecfb3b 100644 --- a/ui/composer-web-view.css +++ b/ui/composer-web-view.css @@ -17,6 +17,7 @@ body.plain, body.plain * { font-weight: normal; font-style: normal; font-size: medium !important; + color: black !important; text-decoration: none; } From 87e2255bb3690e248b1fbf75db2c227e2eb02b31 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Fri, 13 Mar 2020 15:57:20 +1100 Subject: [PATCH 053/336] Application.Controller: Fix deleting conversations from search When deleteing messages from the search folder, all most be removed (not just in-folder) since none of the messages will be in-folder. --- .../application/application-controller.vala | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/client/application/application-controller.vala b/src/client/application/application-controller.vala index 10de12e0..4893ca56 100644 --- a/src/client/application/application-controller.vala +++ b/src/client/application/application-controller.vala @@ -809,9 +809,10 @@ internal class Application.Controller : Geary.BaseObject { public async void delete_conversations(Geary.FolderSupport.Remove target, Gee.Collection conversations) throws GLib.Error { - yield delete_messages( - target, conversations, to_in_folder_email_ids(conversations) - ); + var messages = target.properties.is_virtual + ? to_all_email_ids(conversations) + : to_in_folder_email_ids(conversations); + yield delete_messages(target, conversations, messages); } public async void delete_messages(Geary.FolderSupport.Remove target, @@ -1586,6 +1587,18 @@ internal class Application.Controller : Geary.BaseObject { return messages; } + private Gee.Collection + to_all_email_ids(Gee.Collection conversations) { + Gee.Collection messages = + new Gee.LinkedList(); + foreach (Geary.App.Conversation conversation in conversations) { + foreach (Geary.Email email in conversation.get_emails(NONE)) { + messages.add(email.id); + } + } + return messages; + } + private void on_account_available(Geary.AccountInformation info) { Geary.Account? account = null; try { From bb907070cd3b296cff7f121e1b48b846e8757e30 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Fri, 13 Mar 2020 16:11:09 +1100 Subject: [PATCH 054/336] Update files for 3.36.0 --- NEWS | 68 +++++++++++++++++++++++ desktop/org.gnome.Geary.appdata.xml.in.in | 5 +- meson.build | 2 +- 3 files changed, 71 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index 5ebb34ba..d08af77d 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,71 @@ +Version 3.36 +~~~~~~~~~~~~ +Released: 2020-03-13 + +Enhancements included in this release: + * New and improved responsive composer interface + * Drag and drop image files into rich text messages + * Paste images from the clipboard into rich text messages + * Improved composer missing attachment detection + * Access emoji chooser in composer via shortcut or context menu + * Extend undo for email actions such as archiving, marking + * Undo sending, saving and discarding composed email + * Undo editing in text fields, including in the composer + * Open more than one main window + * New and improved responsive preferences interface + * Using single key shortcuts for email actions is now optional + * Single key shortcuts have been brought up to date with Gmail + * App-wide notification preferences now handled by desktop + * Numerous bug fixes and user interface improvements + * Numerous user interface translation updates + +Thanks to all who contributed code fixes and enhancements to this +release: + * Adam Dingle + * Adrien Plazas + * Alex Henrie + * Bilal Elmoussaoui + * Chris Heywood + * Daniel Kahn Gillmor + * James Westman + * João Loureiro + * Konstantin Kharlamov + * Mario Ravalli + * Mart Raudsepp + * Niels De Graef + * Tobias Sette + * Torben + * Алексей Шилин + +Thanks also to all who contributed translations, for the user +interface: + * Alexandre Franke (fr) + * Anders Jonsson (sv) + * Andika Triwidada (id) + * Asier Sarasua Garmendia (eu) + * Balázs Meskó (hu) + * Cheng-Chia Tseng (zh_TW) + * Daniel Mustieles (es) + * Emin Tufan Çetin (tr) + * Enrico Nicoletto (pt_BR) + * Federico Bruni (it) + * Jiri Grönroos (fi) + * Jordi Mas (ca) + * Kukuh Syafaat (id) + * Marek Černocký (cs) + * Nathan Follens (nl) + * Piotr Drąg (pl) + * Rafael Fontenelle (pt_BR) + * sicklylife (ja) + * Tim Sabsch (de) + +And for the user manual: + * Daniel Mustieles (es) + * Emin Tufan Çetin (tr) + * Federico Bruni (it) + * Marek Černocký (cs) + * Piotr Drąg (pl) + Version 3.35.90 ~~~~~~~~~~~~~~~ Released: 2020-03-01 diff --git a/desktop/org.gnome.Geary.appdata.xml.in.in b/desktop/org.gnome.Geary.appdata.xml.in.in index 3201a6d1..47f572bd 100644 --- a/desktop/org.gnome.Geary.appdata.xml.in.in +++ b/desktop/org.gnome.Geary.appdata.xml.in.in @@ -41,7 +41,7 @@ https://wiki.gnome.org/Apps/Geary/ReportingABug https://wiki.gnome.org/Apps/Geary/Translating https://www.gnome.org/friends/ - + @@ -89,7 +89,7 @@ geary - +

    Enhancements included in this release:

      @@ -106,7 +106,6 @@
    • Using single key shortcuts for email actions is now optional
    • Single key shortcuts have been brought up to date with Gmail
    • App-wide notification preferences now handled by desktop
    • -
    • Initial plugin system
    • Numerous bug fixes and user interface improvements
    • Numerous user interface translation updates
    diff --git a/meson.build b/meson.build index e92f96c5..0bdd1568 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('geary', [ 'vala', 'c' ], - version: '3.35.90', + version: '3.36.0', license: 'LGPL2.1+', meson_version: '>= 0.50', ) From e8c48a9ae50f6bcb98a53320745f776efe6e5597 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Fri, 13 Mar 2020 17:13:58 +1100 Subject: [PATCH 055/336] org.gnome.Geary.yml: Rename to org.gnome.Geary.yaml --- .gitlab-ci.yml | 2 +- meson.build | 2 +- org.gnome.Geary.json | 2 +- org.gnome.Geary.yml => org.gnome.Geary.yaml | 0 4 files changed, 3 insertions(+), 3 deletions(-) rename org.gnome.Geary.yml => org.gnome.Geary.yaml (100%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d15f671c..64c6c975 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -87,7 +87,7 @@ flatpak: variables: APP_ID: org.gnome.Geary.Devel FLATPAK_MODULE: geary - MANIFEST_PATH: org.gnome.Geary.yml + MANIFEST_PATH: org.gnome.Geary.yaml MESON_ARGS: "-Dprofile=development" RUNTIME_REPO: 'https://nightly.gnome.org/gnome-nightly.flatpakrepo' TEST_RUN_ARGS: $TEST_ARGS diff --git a/meson.build b/meson.build index 0bdd1568..c21b4623 100644 --- a/meson.build +++ b/meson.build @@ -171,7 +171,7 @@ custom_target( 'org.gnome.Geary.json', build_by_default: true, command: [yaml_to_json, '@INPUT@', meson.source_root(), '@OUTPUT@'], - input: files('org.gnome.Geary.yml'), + input: files('org.gnome.Geary.yaml'), output: 'org.gnome.Geary.json' ) diff --git a/org.gnome.Geary.json b/org.gnome.Geary.json index ffa0c039..8a81169d 100644 --- a/org.gnome.Geary.json +++ b/org.gnome.Geary.json @@ -1,4 +1,4 @@ -/* Automatically generated from org.gnome.Geary.yml, do not modify. */ +/* Automatically generated from org.gnome.Geary.yaml, do not modify. */ { "app-id": "org.gnome.Geary.Devel", "branch": "master", diff --git a/org.gnome.Geary.yml b/org.gnome.Geary.yaml similarity index 100% rename from org.gnome.Geary.yml rename to org.gnome.Geary.yaml From 3278d01b71ced42757892036edf3300b883462df Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Sat, 7 Mar 2020 18:06:45 +1100 Subject: [PATCH 056/336] Remove optional Enchant 1.x optional dependency --- .gitlab-ci.yml | 2 +- INSTALL | 11 ++++++----- meson.build | 7 +------ 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d15f671c..a891bc70 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -37,7 +37,7 @@ variables: # Ubuntu packages UBUNTU_DEPS: meson build-essential valac desktop-file-utils gettext iso-codes - itstool libappstream-glib-dev libenchant-dev libfolks-dev + itstool libappstream-glib-dev libenchant-2-dev libfolks-dev libgcr-3-dev libgee-0.8-dev libglib2.0-dev libgmime-3.0-dev libgoa-1.0-dev libgspell-1-dev libgtk-3-dev libhandy-0.0-dev libjson-glib-dev libmessaging-menu-dev libpeas-dev libsecret-1-dev diff --git a/INSTALL b/INSTALL index 3bb721fb..d1994357 100644 --- a/INSTALL +++ b/INSTALL @@ -54,11 +54,12 @@ Install them by running this command: sudo apt-get install meson build-essential valac \ desktop-file-utils iso-codes gettext itstool \ - libappstream-glib-dev libenchant-dev libfolks-dev libgcr-3-dev \ - libgee-0.8-dev libglib2.0-dev libgmime3.0-dev libgoa-1.0-dev \ - libgspell-1-dev libgtk-3-dev libjson-glib-dev libhandy-0.0-dev \ - libpeas-dev libsecret-1-dev libsqlite3-dev libunwind-dev \ - libwebkit2gtk-4.0-dev libxml2-dev libytnef0-dev + libappstream-glib-dev libenchant-2-dev libfolks-dev \ + libgcr-3-dev libgee-0.8-dev libglib2.0-dev libgmime3.0-dev \ + libgoa-1.0-dev libgspell-1-dev libgtk-3-dev libjson-glib-dev \ + libhandy-0.0-dev libpeas-dev libsecret-1-dev libsqlite3-dev \ + libunwind-dev libwebkit2gtk-4.0-dev libxml2-dev \ + libytnef0-dev And for Ubuntu Messaging Menu integration: diff --git a/meson.build b/meson.build index b18f2286..7c3b4e00 100644 --- a/meson.build +++ b/meson.build @@ -71,7 +71,7 @@ webkit2gtk = dependency('webkit2gtk-4.0', version: '>=' + target_webkit) # We need appdata.its from appstream-glib: # https://gitlab.gnome.org/GNOME/geary/issues/439 appstream_glib = dependency('appstream-glib', version: '>=0.7.10') -enchant = dependency('enchant-2', version: '>=2.1', required: false) # see below +enchant = dependency('enchant-2', version: '>=2.1') folks = dependency('folks', version: '>=0.11') gck = dependency('gck-1') gcr = dependency('gcr-3', version: '>= 3.10.1') @@ -100,11 +100,6 @@ libytnef = dependency('libytnef', version: '>= 1.9.3', required: get_option('tne posix = valac.find_library('posix') webkit2gtk_web_extension = dependency('webkit2gtk-web-extension-4.0', version: '>=' + target_webkit) -# Can currently use either Enchant 1 or 2 -if not enchant.found() - enchant = dependency('enchant', version: '>=1.6') -endif - # Libunwind system dependencies above ensures appropriate versions, # but this declared depencency is what we actually build against so we # can include the custom VAPI correctly. We need to add unwind_lib to From 2ba578139e82dcdf3898236002cb841e347266f4 Mon Sep 17 00:00:00 2001 From: Anders Jonsson Date: Fri, 13 Mar 2020 09:13:37 +0000 Subject: [PATCH 057/336] Update Swedish translation --- po/sv.po | 554 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 300 insertions(+), 254 deletions(-) diff --git a/po/sv.po b/po/sv.po index 1c20e54a..657a757b 100644 --- a/po/sv.po +++ b/po/sv.po @@ -18,8 +18,8 @@ msgid "" msgstr "" "Project-Id-Version: geary\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2020-01-08 10:10+0000\n" -"PO-Revision-Date: 2020-01-11 17:24+0100\n" +"POT-Creation-Date: 2020-02-25 11:10+0000\n" +"PO-Revision-Date: 2020-03-13 10:11+0100\n" "Last-Translator: Anders Jonsson \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -27,7 +27,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.2.4\n" +"X-Generator: Poedit 2.3\n" #: desktop/geary-attach.contract.desktop.in:3 msgid "Send by email" @@ -42,7 +42,7 @@ msgstr "Skicka filer med Geary" #: desktop/org.gnome.Geary.appdata.xml.in.in:12 #: desktop/org.gnome.Geary.desktop.in.in:3 #: src/client/accounts/accounts-editor-servers-pane.vala:555 -#: src/client/application/application-main-window.vala:547 +#: src/client/application/application-main-window.vala:555 msgid "Geary" msgstr "Geary" @@ -196,34 +196,43 @@ msgid "True if the folder list Paned is in the horizontal orientation." msgstr "True om listpanelen för mappar är i horisontell riktning." #: desktop/org.gnome.Geary.gschema.xml:50 +msgid "Show/hide formatting toolbar" +msgstr "Visa/dölj formateringsverktygsfält" + +#: desktop/org.gnome.Geary.gschema.xml:51 +msgid "True if the formatting toolbar in the composer is shown." +msgstr "" +"True (sant) om formateringsverktygsfältet i textinmatningsfönstret visas." + +#: desktop/org.gnome.Geary.gschema.xml:56 msgid "Position of message list pane" msgstr "Position för listpanelen för meddelanden" -#: desktop/org.gnome.Geary.gschema.xml:51 +#: desktop/org.gnome.Geary.gschema.xml:57 msgid "Position of the message list Paned grabber." msgstr "Position för handtag till listpanelen för meddelanden." -#: desktop/org.gnome.Geary.gschema.xml:56 +#: desktop/org.gnome.Geary.gschema.xml:62 msgid "Autoselect next message" msgstr "Välj nästa meddelande automatiskt" -#: desktop/org.gnome.Geary.gschema.xml:57 +#: desktop/org.gnome.Geary.gschema.xml:63 msgid "True if we should autoselect the next available conversation." msgstr "True om nästa tillgänglig konversation ska väljas automatiskt." -#: desktop/org.gnome.Geary.gschema.xml:62 +#: desktop/org.gnome.Geary.gschema.xml:68 msgid "Display message previews" msgstr "Förhandsvisning av meddelanden" -#: desktop/org.gnome.Geary.gschema.xml:63 +#: desktop/org.gnome.Geary.gschema.xml:69 msgid "True if we should display a short preview of each message." msgstr "True om en kort förhandsvisning ska visas för varje meddelande." -#: desktop/org.gnome.Geary.gschema.xml:68 +#: desktop/org.gnome.Geary.gschema.xml:74 msgid "Use single key shortcuts" msgstr "Använd kortkommandon med en tangent" -#: desktop/org.gnome.Geary.gschema.xml:69 +#: desktop/org.gnome.Geary.gschema.xml:75 msgid "" "Enables shortcuts for email actions that do not require pressing to " "emulate those used by Gmail." @@ -231,11 +240,11 @@ msgstr "" "Aktiverar kortkommandon för e-poståtgärder som inte kräver att trycks " "ned, för att emulera de som används av Gmail." -#: desktop/org.gnome.Geary.gschema.xml:76 +#: desktop/org.gnome.Geary.gschema.xml:82 msgid "Languages that shall be used in the spell checker" msgstr "Språk som ska användas i stavningskontrollen" -#: desktop/org.gnome.Geary.gschema.xml:77 +#: desktop/org.gnome.Geary.gschema.xml:83 msgid "" "A list of POSIX locales, with the empty list disabling spell checking and " "the null list using desktop languages by default." @@ -243,73 +252,73 @@ msgstr "" "En lista över POSIX-lokaler, där en tom lista inaktiverar stavningskontroll " "och null-listan använder skrivbordets språk som standard." -#: desktop/org.gnome.Geary.gschema.xml:84 +#: desktop/org.gnome.Geary.gschema.xml:90 msgid "Languages that are displayed in the spell checker popover" msgstr "Språk som visas i stavningskontrollens kontextfönster" -#: desktop/org.gnome.Geary.gschema.xml:85 +#: desktop/org.gnome.Geary.gschema.xml:91 msgid "" "List of languages that are always displayed in the popover of the spell " "checker." msgstr "" "Lista över språk som alltid visas i stavningskontrollens kontextfönster." -#: desktop/org.gnome.Geary.gschema.xml:90 +#: desktop/org.gnome.Geary.gschema.xml:96 msgid "Notify of new mail at startup" msgstr "Avisera om ny e-post vid uppstart" -#: desktop/org.gnome.Geary.gschema.xml:91 +#: desktop/org.gnome.Geary.gschema.xml:97 msgid "True to notify of new mail at startup." msgstr "True för att avisera om ny e-post vid uppstart." -#: desktop/org.gnome.Geary.gschema.xml:96 +#: desktop/org.gnome.Geary.gschema.xml:102 msgid "Ask when opening an attachment" msgstr "Fråga vid öppnandet av en bilaga" -#: desktop/org.gnome.Geary.gschema.xml:97 +#: desktop/org.gnome.Geary.gschema.xml:103 msgid "True to ask when opening an attachment." msgstr "True för att fråga vid öppnandet av en bilaga." -#: desktop/org.gnome.Geary.gschema.xml:102 +#: desktop/org.gnome.Geary.gschema.xml:108 msgid "Whether to compose emails in HTML" msgstr "Huruvida e-post ska skrivas i html" -#: desktop/org.gnome.Geary.gschema.xml:103 +#: desktop/org.gnome.Geary.gschema.xml:109 msgid "True to compose emails in HTML; false for plain text." msgstr "True för att skriva e-post i html; false för ren text." -#: desktop/org.gnome.Geary.gschema.xml:108 +#: desktop/org.gnome.Geary.gschema.xml:114 msgid "Advisory strategy for full-text searching" msgstr "Rekommenderad strategi för fulltextsökning" -#: desktop/org.gnome.Geary.gschema.xml:109 +#: desktop/org.gnome.Geary.gschema.xml:115 msgid "" "Acceptable values are “exact”, “conservative”, “aggressive”, and “horizon”." msgstr "" "Tillåtna värden är ”exact”, ”conservative”, ”aggressive”, och ”horizon”." -#: desktop/org.gnome.Geary.gschema.xml:114 +#: desktop/org.gnome.Geary.gschema.xml:120 msgid "Zoom of conversation viewer" msgstr "Zooma till konversationsvisaren" -#: desktop/org.gnome.Geary.gschema.xml:115 +#: desktop/org.gnome.Geary.gschema.xml:121 msgid "The zoom to apply on the conservation view." msgstr "Zoom att tillämpa på konversationsvyn." -#: desktop/org.gnome.Geary.gschema.xml:120 +#: desktop/org.gnome.Geary.gschema.xml:126 msgid "Size of detached composer window" msgstr "Storlek på frånkopplat textinmatningsfönster" -#: desktop/org.gnome.Geary.gschema.xml:121 +#: desktop/org.gnome.Geary.gschema.xml:127 msgid "The last recorded size of the detached composer window." msgstr "" "Den senast lagrade storleken för det frikopplade textinmatningsfönstret." -#: desktop/org.gnome.Geary.gschema.xml:126 +#: desktop/org.gnome.Geary.gschema.xml:132 msgid "Undo sending email delay" msgstr "Fördröjning för att kunna ångra sändande av e-post" -#: desktop/org.gnome.Geary.gschema.xml:127 +#: desktop/org.gnome.Geary.gschema.xml:133 msgid "" "The number of seconds to wait before sending an email. Set to zero or less " "to disable." @@ -317,11 +326,21 @@ msgstr "" "Antalet sekunder att vänta innan ett e-postmeddelande skickas. Ställ in till " "noll eller mindre för att inaktivera." -#: desktop/org.gnome.Geary.gschema.xml:133 +#: desktop/org.gnome.Geary.gschema.xml:139 +msgid "Brief notification display time" +msgstr "Visningstid för korta aviseringar" + +#: desktop/org.gnome.Geary.gschema.xml:140 +msgid "" +"The length of time in seconds for which brief notifications should be " +"displayed." +msgstr "Längden i sekunder som korta aviseringar ska visas." + +#: desktop/org.gnome.Geary.gschema.xml:146 msgid "Whether we migrated the old settings" msgstr "Huruvida de gamla inställningarna migrerades" -#: desktop/org.gnome.Geary.gschema.xml:134 +#: desktop/org.gnome.Geary.gschema.xml:147 msgid "" "False to check for the old “org.yorba.geary”-schema and copy its values." msgstr "" @@ -597,56 +616,56 @@ msgid_plural "%d days back" msgstr[0] "%d dag tillbaka" msgstr[1] "%d dagar tillbaka" -#: src/client/accounts/accounts-editor-list-pane.vala:248 -#: src/client/application/application-main-window.vala:2037 +#: src/client/accounts/accounts-editor-list-pane.vala:255 +#: src/client/application/application-main-window.vala:2053 msgid "Undo" msgstr "Ångra" -#: src/client/accounts/accounts-editor-list-pane.vala:257 -#: src/client/application/application-main-window.vala:2027 +#: src/client/accounts/accounts-editor-list-pane.vala:264 +#: src/client/application/application-main-window.vala:2036 msgid "Redo" msgstr "Gör om" -#: src/client/accounts/accounts-editor-list-pane.vala:351 -#: src/client/accounts/accounts-editor-list-pane.vala:439 +#: src/client/accounts/accounts-editor-list-pane.vala:358 +#: src/client/accounts/accounts-editor-list-pane.vala:446 #: src/client/accounts/accounts-editor-row.vala:279 msgid "Gmail" msgstr "Gmail" -#: src/client/accounts/accounts-editor-list-pane.vala:355 -#: src/client/accounts/accounts-editor-list-pane.vala:443 +#: src/client/accounts/accounts-editor-list-pane.vala:362 +#: src/client/accounts/accounts-editor-list-pane.vala:450 #: src/client/accounts/accounts-editor-row.vala:283 msgid "Outlook.com" msgstr "Outlook.com" -#: src/client/accounts/accounts-editor-list-pane.vala:359 -#: src/client/accounts/accounts-editor-list-pane.vala:447 +#: src/client/accounts/accounts-editor-list-pane.vala:366 +#: src/client/accounts/accounts-editor-list-pane.vala:454 #: src/client/accounts/accounts-editor-row.vala:287 msgid "Yahoo" msgstr "Yahoo" #. Translators: Tooltip for accounts that have been #. loaded but disabled by the user. -#: src/client/accounts/accounts-editor-list-pane.vala:377 +#: src/client/accounts/accounts-editor-list-pane.vala:384 msgid "This account has been disabled" msgstr "Detta konto har inaktiverats" #. Translators: Tooltip for accounts that have been #. loaded but because of some error are not able to be #. used. -#: src/client/accounts/accounts-editor-list-pane.vala:386 +#: src/client/accounts/accounts-editor-list-pane.vala:393 msgid "This account has encountered a problem and is unavailable" msgstr "Detta konto har stött på ett problem och är ej tillgängligt" #. Translators: Label for adding a generic email account -#: src/client/accounts/accounts-editor-list-pane.vala:436 +#: src/client/accounts/accounts-editor-list-pane.vala:443 msgid "Other email providers" msgstr "Andra e-postleverantörer" #. Translators: Notification shown after removing an #. account. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:553 +#: src/client/accounts/accounts-editor-list-pane.vala:560 #, c-format msgid "Account “%s” removed" msgstr "Kontot ”%s” togs bort" @@ -654,7 +673,7 @@ msgstr "Kontot ”%s” togs bort" #. Translators: Notification shown after removing an account #. is undone. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:560 +#: src/client/accounts/accounts-editor-list-pane.vala:567 #, c-format msgid "Account “%s” restored" msgstr "Kontot ”%s” återställdes" @@ -941,7 +960,7 @@ msgstr "Distributionsutgåva" msgid "Installation prefix" msgstr "Installationsprefix" -#: src/client/application/application-client.vala:566 +#: src/client/application/application-client.vala:587 #, c-format msgid "About %s" msgstr "Om %s" @@ -949,7 +968,7 @@ msgstr "Om %s" #. Translators: add your name and email address to receive #. credit in the About dialog For example: Yamada Taro #. -#: src/client/application/application-client.vala:570 +#: src/client/application/application-client.vala:591 msgid "translator-credits" msgstr "" "Joachim Johansson \n" @@ -962,37 +981,37 @@ msgstr "" #. / Warning printed to the console when a deprecated #. / command line option is used. -#: src/client/application/application-client.vala:938 +#: src/client/application/application-client.vala:937 msgid "The `--hidden` option is deprecated and will be removed in the future." msgstr "Flaggan ”--hidden” är föråldrad och kommer att tas bort i framtiden." #. / Command line warning, string substitution #. / is the given argument -#: src/client/application/application-client.vala:971 +#: src/client/application/application-client.vala:970 #, c-format msgid "Unrecognised program argument: “%s”" msgstr "Okänt programargument: ”%s”" #. / Notification title. -#: src/client/application/application-controller.vala:457 +#: src/client/application/application-controller.vala:458 #, c-format msgid "A problem occurred sending email for %s" msgstr "Ett problem uppstod då e-post skickades för %s" #. / Notification body -#: src/client/application/application-controller.vala:461 +#: src/client/application/application-controller.vala:462 msgid "Email will not be sent until re-connected" msgstr "E-post kommer inte att skickas innan du är ansluten igen" #. / Translators: Label for in-app notification -#: src/client/application/application-controller.vala:567 +#: src/client/application/application-controller.vala:568 msgid "Conversation marked" msgid_plural "Conversations marked" msgstr[0] "Konversation markerad" msgstr[1] "Konversationer markerade" #. / Translators: Label for in-app notification -#: src/client/application/application-controller.vala:573 +#: src/client/application/application-controller.vala:574 msgid "Conversation un-marked" msgid_plural "Conversations un-marked" msgstr[0] "Konversation avmarkerad" @@ -1001,8 +1020,8 @@ msgstr[1] "Konversationer avmarkerade" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:599 -#: src/client/application/application-controller.vala:683 +#: src/client/application/application-controller.vala:600 +#: src/client/application/application-controller.vala:684 #, c-format msgid "Conversation moved to %s" msgid_plural "Conversations moved to %s" @@ -1014,8 +1033,8 @@ msgstr[1] "Konversationer flyttades till %s" #. / of the source folder. #. / Translators: Label for in-app notification. String #. / substitution is the name of the destination folder. -#: src/client/application/application-controller.vala:607 -#: src/client/application/application-controller.vala:629 +#: src/client/application/application-controller.vala:608 +#: src/client/application/application-controller.vala:630 #, c-format msgid "Conversation restored to %s" msgid_plural "Conversations restored to %s" @@ -1023,7 +1042,7 @@ msgstr[0] "Konversation återställd till %s" msgstr[1] "Konversationer återställda till %s" #. / Translators: Label for in-app notification. -#: src/client/application/application-controller.vala:650 +#: src/client/application/application-controller.vala:651 msgid "Conversation archived" msgid_plural "Conversations archived" msgstr[0] "Konversation arkiverad" @@ -1031,7 +1050,7 @@ msgstr[1] "Konversationer arkiverade" #. / Translators: Label for in-app notification. String #. / substitution is the name of the destination folder. -#: src/client/application/application-controller.vala:706 +#: src/client/application/application-controller.vala:707 #, c-format msgid "Message restored to %s" msgid_plural "Messages restored to %s" @@ -1039,7 +1058,7 @@ msgstr[0] "Meddelande återställt till %s" msgstr[1] "Meddelanden återställda till %s" #. / Translators: Label for in-app notification. -#: src/client/application/application-controller.vala:727 +#: src/client/application/application-controller.vala:728 msgid "Message archived" msgid_plural "Messages archived" msgstr[0] "Meddelande arkiverat" @@ -1048,7 +1067,7 @@ msgstr[1] "Meddelanden arkiverade" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:762 +#: src/client/application/application-controller.vala:763 #, c-format msgid "Message moved to %s" msgid_plural "Messages moved to %s" @@ -1058,7 +1077,7 @@ msgstr[1] "Meddelanden flyttade till %s" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:790 +#: src/client/application/application-controller.vala:791 #, c-format msgid "Conversation labelled as %s" msgid_plural "Conversations labelled as %s" @@ -1068,19 +1087,19 @@ msgstr[1] "Konversationer etiketterade som %s" #. / Translators: Label for in-app #. / notification. String substitution is the name #. / of the destination folder. -#: src/client/application/application-controller.vala:798 +#: src/client/application/application-controller.vala:799 #, c-format msgid "Conversation un-labelled as %s" msgid_plural "Conversations un-labelled as %s" msgstr[0] "Konversation inte längre etiketterad som %s" msgstr[1] "Konversationer inte längre etiketterade som %s" -#: src/client/application/application-controller.vala:1221 +#: src/client/application/application-controller.vala:1222 #, c-format msgid "Unable to open the database for %s" msgstr "Kunde inte öppna databasen för %s" -#: src/client/application/application-controller.vala:1222 +#: src/client/application/application-controller.vala:1223 #, c-format msgid "" "There was an error opening the local mail database for this account. This is " @@ -1103,20 +1122,20 @@ msgstr "" "Att bygga om databasen medför att alla lokala e-postmeddelanden och bifogade " "filer förstörs. E-post på din server är inte berörda av felet." -#: src/client/application/application-controller.vala:1224 +#: src/client/application/application-controller.vala:1225 msgid "_Rebuild" msgstr "_Bygg om" -#: src/client/application/application-controller.vala:1224 +#: src/client/application/application-controller.vala:1225 msgid "E_xit" msgstr "_Avsluta" -#: src/client/application/application-controller.vala:1234 +#: src/client/application/application-controller.vala:1235 #, c-format msgid "Unable to rebuild database for “%s”" msgstr "Kunde inte bygga om databasen för ”%s”" -#: src/client/application/application-controller.vala:1235 +#: src/client/application/application-controller.vala:1236 #, c-format msgid "" "Error during rebuild:\n" @@ -1129,34 +1148,34 @@ msgstr "" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:1558 +#: src/client/application/application-controller.vala:1559 #, c-format msgid "Email sent to %s" msgstr "E-post skickad till %s" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2636 +#: src/client/application/application-controller.vala:2642 #, c-format msgid "Email to %s queued for delivery" msgstr "E-post till %s köad för leverans" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2701 +#: src/client/application/application-controller.vala:2706 #, c-format msgid "Email to %s saved" msgstr "E-post till %s sparad" #. / Translators: A label for an in-app notification. -#: src/client/application/application-controller.vala:2716 -#: src/client/application/application-controller.vala:2774 +#: src/client/application/application-controller.vala:2721 +#: src/client/application/application-controller.vala:2779 msgid "Composer could not be restored" msgstr "Redigeraren kunde inte återställas" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2759 +#: src/client/application/application-controller.vala:2764 #, c-format msgid "Email to %s discarded" msgstr "E-post till %s förkastad" @@ -1164,53 +1183,53 @@ msgstr "E-post till %s förkastad" #. / Translators: Main window title, first string #. / substitution being the currently selected folder name, #. / the second being the selected account name. -#: src/client/application/application-main-window.vala:552 +#: src/client/application/application-main-window.vala:560 #, c-format msgid "%s — %s" msgstr "%s — %s" -#: src/client/application/application-main-window.vala:961 +#: src/client/application/application-main-window.vala:967 msgid "Labels" msgstr "Etiketter" #. / Translators: Primary text for a confirmation dialog -#: src/client/application/application-main-window.vala:1297 +#: src/client/application/application-main-window.vala:1306 msgid "Do you want to permanently delete this conversation?" msgid_plural "Do you want to permanently delete these conversations?" msgstr[0] "Vill du radera denna konversation permanent?" msgstr[1] "Vill du radera dessa konversationer permanent?" -#: src/client/application/application-main-window.vala:1302 -#: src/client/application/application-main-window.vala:1317 +#: src/client/application/application-main-window.vala:1311 +#: src/client/application/application-main-window.vala:1326 msgid "Delete" msgstr "Radera" #. / Translators: Primary text for a confirmation dialog -#: src/client/application/application-main-window.vala:1312 +#: src/client/application/application-main-window.vala:1321 msgid "Do you want to permanently delete this message?" msgid_plural "Do you want to permanently delete these messages?" msgstr[0] "Vill du radera detta meddelande permanent?" msgstr[1] "Vill du radera dessa meddelanden permanent?" -#: src/client/application/application-main-window.vala:1325 +#: src/client/application/application-main-window.vala:1334 #, c-format msgid "Empty all email from your %s folder?" msgstr "Ta bort alla e-postmeddelanden från din mapp %s?" -#: src/client/application/application-main-window.vala:1328 +#: src/client/application/application-main-window.vala:1337 msgid "This removes the email from Geary and your email server." msgstr "Detta tar bort e-postmeddelanden från Geary och din e-postserver." -#: src/client/application/application-main-window.vala:1329 +#: src/client/application/application-main-window.vala:1338 msgid "This cannot be undone." msgstr "Detta kan inte ångras." -#: src/client/application/application-main-window.vala:1330 +#: src/client/application/application-main-window.vala:1339 #, c-format msgid "Empty %s" msgstr "Töm %s" -#: src/client/application/application-main-window.vala:1660 +#: src/client/application/application-main-window.vala:1669 #, c-format msgid "%s (%d)" msgstr "%s (%d)" @@ -1221,7 +1240,7 @@ msgstr "%s (%d)" #. Document (100.9MB) #. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" #: src/client/components/components-attachment-pane.vala:107 -#: src/client/composer/composer-widget.vala:1816 +#: src/client/composer/composer-widget.vala:1834 #, c-format msgid "%s (%s)" msgstr "%s (%s)" @@ -1360,37 +1379,37 @@ msgstr "Ett servernamn krävs" msgid "Could not look up server name" msgstr "Det gick inte att slå upp servernamn" -#: src/client/components/main-toolbar.vala:142 +#: src/client/components/main-toolbar.vala:116 msgid "Mark conversation" msgid_plural "Mark conversations" msgstr[0] "Markera konversation" msgstr[1] "Markera konversationer" -#: src/client/components/main-toolbar.vala:147 +#: src/client/components/main-toolbar.vala:121 msgid "Add label to conversation" msgid_plural "Add label to conversations" msgstr[0] "Lägg till etikett till konversation" msgstr[1] "Lägg till etikett till konversationer" -#: src/client/components/main-toolbar.vala:152 +#: src/client/components/main-toolbar.vala:126 msgid "Move conversation" msgid_plural "Move conversations" msgstr[0] "Flytta konversation" msgstr[1] "Flytta konversationer" -#: src/client/components/main-toolbar.vala:157 +#: src/client/components/main-toolbar.vala:131 msgid "Archive conversation" msgid_plural "Archive conversations" msgstr[0] "Arkivera konversation" msgstr[1] "Arkivera konversationer" -#: src/client/components/main-toolbar.vala:168 +#: src/client/components/main-toolbar.vala:142 msgid "Move conversation to Trash" msgid_plural "Move conversations to Trash" msgstr[0] "Flytta konversation till papperskorgen" msgstr[1] "Flytta konversationer till papperskorgen" -#: src/client/components/main-toolbar.vala:178 +#: src/client/components/main-toolbar.vala:152 msgid "Delete conversation" msgid_plural "Delete conversations" msgstr[0] "Radera konversation" @@ -1539,37 +1558,37 @@ msgstr "_Spara" msgid "_Keep" msgstr "_Behåll" -#: src/client/composer/composer-link-popover.vala:149 +#: src/client/composer/composer-link-popover.vala:139 msgid "Link URL is not correctly formatted, e.g. http://example.com" msgstr "" "Länk-URL är inte korrekt formaterad, det vill säga t.ex. http://exempel.se" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid link URL" msgstr "Ogiltig länk-URL" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid email address" msgstr "Ogiltig e-postadress" #. / Translators: Title for an empty composer window -#: src/client/composer/composer-widget.vala:28 +#: src/client/composer/composer-widget.vala:30 msgid "New Message" msgstr "Nytt meddelande" -#: src/client/composer/composer-widget.vala:210 +#: src/client/composer/composer-widget.vala:217 msgid "Saved" msgstr "Sparat" -#: src/client/composer/composer-widget.vala:211 +#: src/client/composer/composer-widget.vala:218 msgid "Saving" msgstr "Sparar" -#: src/client/composer/composer-widget.vala:212 +#: src/client/composer/composer-widget.vala:219 msgid "Error saving" msgstr "Misslyckades med att spara" -#: src/client/composer/composer-widget.vala:213 +#: src/client/composer/composer-widget.vala:220 msgid "Press Backspace to delete quote" msgstr "Tryck på Backsteg för att ta bort citat" @@ -1578,7 +1597,7 @@ msgstr "Tryck på Backsteg för att ta bort citat" #. checking, include all variants of each word. No spaces are #. allowed. The words will be converted to lower case based on #. locale and English versions included automatically. -#: src/client/composer/composer-widget.vala:229 +#: src/client/composer/composer-widget.vala:236 msgid "" "attach|attaching|attaches|attachment|attachments|attached|enclose|enclosed|" "enclosing|encloses|enclosure|enclosures" @@ -1589,90 +1608,90 @@ msgstr "" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. Keep, Discard or Cancel. -#: src/client/composer/composer-widget.vala:815 +#: src/client/composer/composer-widget.vala:843 msgid "Do you want to keep or discard this draft message?" msgstr "Vill du behålla eller förkasta detta utkast?" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. only Discard or Cancel. -#: src/client/composer/composer-widget.vala:841 +#: src/client/composer/composer-widget.vala:869 msgid "Do you want to discard this draft message?" msgstr "Vill du förkasta detta utkast?" -#: src/client/composer/composer-widget.vala:1485 +#: src/client/composer/composer-widget.vala:1503 msgid "Send message with an empty subject and body?" msgstr "Skicka meddelande med en tom ämnesrad och utan innehåll?" -#: src/client/composer/composer-widget.vala:1487 +#: src/client/composer/composer-widget.vala:1505 msgid "Send message with an empty subject?" msgstr "Skicka meddelande med en tom ämnesrad?" -#: src/client/composer/composer-widget.vala:1489 +#: src/client/composer/composer-widget.vala:1507 msgid "Send message with an empty body?" msgstr "Skicka meddelande utan innehåll?" -#: src/client/composer/composer-widget.vala:1498 +#: src/client/composer/composer-widget.vala:1516 msgid "Send message without an attachment?" msgstr "Skicka meddelande utan att bifoga filer?" -#: src/client/composer/composer-widget.vala:1808 +#: src/client/composer/composer-widget.vala:1820 #, c-format msgid "“%s” already attached for delivery." msgstr "”%s” är redan bifogad och kommer att skickas." -#: src/client/composer/composer-widget.vala:1838 -#: src/client/composer/composer-widget.vala:1888 +#: src/client/composer/composer-widget.vala:1856 +#: src/client/composer/composer-widget.vala:1906 #, c-format msgid "“%s” is an empty file." msgstr "”%s” är en tom fil." -#: src/client/composer/composer-widget.vala:1876 +#: src/client/composer/composer-widget.vala:1894 #, c-format msgid "“%s” could not be found." msgstr "”%s” kunde inte hittas." -#: src/client/composer/composer-widget.vala:1882 +#: src/client/composer/composer-widget.vala:1900 #, c-format msgid "“%s” is a folder." msgstr "”%s” är en mapp." -#: src/client/composer/composer-widget.vala:1901 +#: src/client/composer/composer-widget.vala:1919 #, c-format msgid "“%s” could not be opened for reading." msgstr "”%s” kunde inte öppnas för läsning." -#: src/client/composer/composer-widget.vala:1909 +#: src/client/composer/composer-widget.vala:1927 msgid "Cannot add attachment" msgstr "Kan inte bifoga din fil" #. Translators: Human-readable version of the RFC 822 To header -#: src/client/composer/composer-widget.vala:1966 +#: src/client/composer/composer-widget.vala:1984 #: src/client/conversation-viewer/conversation-email.vala:559 #: src/client/util/util-email.vala:235 ui/conversation-message.ui:312 msgid "To:" msgstr "Till:" #. Translators: Human-readable version of the RFC 822 CC header -#: src/client/composer/composer-widget.vala:1972 +#: src/client/composer/composer-widget.vala:1990 #: src/client/conversation-viewer/conversation-email.vala:564 #: src/client/util/util-email.vala:240 ui/conversation-message.ui:357 msgid "Cc:" msgstr "Cc:" #. Translators: Human-readable version of the RFC 822 BCC header -#: src/client/composer/composer-widget.vala:1978 +#: src/client/composer/composer-widget.vala:1996 #: src/client/conversation-viewer/conversation-email.vala:569 #: ui/conversation-message.ui:402 msgid "Bcc:" msgstr "Bcc:" #. Translators: Human-readable version of the RFC 822 Reply-To header -#: src/client/composer/composer-widget.vala:1984 +#: src/client/composer/composer-widget.vala:2002 msgid "Reply-To: " msgstr "Svara-till: " -#: src/client/composer/composer-widget.vala:2170 +#: src/client/composer/composer-widget.vala:2254 msgid "Select Color" msgstr "Välj färg" @@ -1681,32 +1700,32 @@ msgstr "Välj färg" #. printf argument will be the alternate email address, #. and the second will be the account's primary email #. address. -#: src/client/composer/composer-widget.vala:2362 +#: src/client/composer/composer-widget.vala:2440 #, c-format msgid "%1$s via %2$s" msgstr "%1$s via %2$s" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: src/client/composer/composer-widget.vala:2418 +#: src/client/composer/composer-widget.vala:2496 msgid "_From:" msgstr "_Från:" #. Translators: This is the name of the file chooser filter #. when inserting an image in the composer. -#: src/client/composer/composer-widget.vala:2721 +#: src/client/composer/composer-widget.vala:2801 msgid "Images" msgstr "Bilder" -#: src/client/composer/spell-check-popover.vala:108 +#: src/client/composer/spell-check-popover.vala:125 msgid "Remove this language from the preferred list" msgstr "Ta bort detta språk från listan över föredragna språk" -#: src/client/composer/spell-check-popover.vala:112 +#: src/client/composer/spell-check-popover.vala:129 msgid "Add this language to the preferred list" msgstr "Lägg till detta språk till listan över föredragna språk" -#: src/client/composer/spell-check-popover.vala:199 +#: src/client/composer/spell-check-popover.vala:225 msgid "Search for more languages" msgstr "Sök efter fler språk" @@ -1790,44 +1809,44 @@ msgstr "E-postadressen kan ha förfalskats" #. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:465 +#: src/client/conversation-viewer/conversation-message.vala:439 msgid "No sender" msgstr "Ingen avsändare" #. Translators: This separates multiple 'from' #. addresses in the compact header for a message. -#: src/client/conversation-viewer/conversation-message.vala:959 +#: src/client/conversation-viewer/conversation-message.vala:831 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Image Date: Thu, 12 Mar 2020 23:26:44 -0500 Subject: [PATCH 058/336] conversation-viewer: Shorten recipients list If there are a lot of recipients (more than 12), most of them will be hidden initially, and a link will appear to show/hide the others. Currently no preference is given as to which addresses are put in the short list, although the attached issue contains some ideas. Fixes #395. --- .../conversation-message.vala | 84 ++++++++++++++++++- ui/conversation-message.ui | 6 +- 2 files changed, 86 insertions(+), 4 deletions(-) diff --git a/src/client/conversation-viewer/conversation-message.vala b/src/client/conversation-viewer/conversation-message.vala index 3b9a6328..08a15b47 100644 --- a/src/client/conversation-viewer/conversation-message.vala +++ b/src/client/conversation-viewer/conversation-message.vala @@ -200,6 +200,88 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { } + /** + * A FlowBox that limits its contents to 12 items until a link is + * clicked to expand it. Used for to, cc, and bcc fields. + */ + public class ContactList : Gtk.FlowBox, Geary.BaseInterface { + /** + * The number of results that will be displayed when not expanded. + * Note this is actually one less than the cutoff, which is 12; we + * don't want the show more label to be visible when we could just + * put the last item. + */ + private const int SHORT_RESULTS = 11; + + + private Gtk.Label show_more; + private Gtk.Label show_less; + private bool expanded = false; + private int children = 0; + + + construct { + this.show_more = this.create_label(); + this.show_more.activate_link.connect(() => { + this.set_expanded(true); + }); + base.add(this.show_more); + + this.show_less = this.create_label(); + this.show_less.label = _("Show less"); + this.show_less.activate_link.connect(() => { + this.set_expanded(false); + }); + base.add(this.show_less); + + this.set_filter_func(this.filter_func); + } + + + public override void add(Gtk.Widget child) { + // insert before the show_more and show_less labels + int length = (int) this.get_children().length(); + base.insert(child, length - 2); + + this.children ++; + + if (this.children >= SHORT_RESULTS && this.children <= SHORT_RESULTS + 2) { + this.invalidate_filter(); + } + + this.show_more.label = _("%d more…").printf(this.children - SHORT_RESULTS); + } + + + private Gtk.Label create_label() { + var label = new Gtk.Label(""); + label.visible = true; + label.use_markup = true; + label.track_visited_links = false; + label.halign = START; + return label; + } + + private void set_expanded(bool expanded) { + this.expanded = expanded; + this.invalidate_filter(); + } + + private bool filter_func(Gtk.FlowBoxChild child) { + bool is_expandable = this.children > SHORT_RESULTS + 1; + + if (child.get_child() == this.show_more) { + return !this.expanded && is_expandable; + } else if (child.get_child() == this.show_less) { + return this.expanded; + } else if (!this.expanded && is_expandable) { + return child.get_index() < SHORT_RESULTS; + } else { + return true; + } + } + } + /** Contact for the primary originator, if any. */ internal Application.Contact? primary_contact { @@ -899,7 +981,7 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { GLib.Cancellable? cancellable) throws GLib.Error { if (addresses != null && addresses.size > 0) { - Gtk.FlowBox box = header.get_children().nth(0).data as Gtk.FlowBox; + ContactList box = header.get_children().nth(0).data as ContactList; if (box != null) { foreach (Geary.RFC822.MailboxAddress address in addresses) { ContactFlowBoxChild child = new ContactFlowBoxChild( diff --git a/ui/conversation-message.ui b/ui/conversation-message.ui index ee0a4af0..7a7a24c7 100644 --- a/ui/conversation-message.ui +++ b/ui/conversation-message.ui @@ -322,7 +322,7 @@
    - + True False start @@ -367,7 +367,7 @@ - + True False start @@ -412,7 +412,7 @@ - + True False start From b15d83b41f6a98e7bd7d94eca12a2e7ab76b2cc7 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Sat, 14 Mar 2020 11:54:05 +1100 Subject: [PATCH 059/336] desktop/org.gnome.Geary.appdata.xml.in.in: Update for 3.36.0 Point to new donations page and updated screenshots. --- desktop/org.gnome.Geary.appdata.xml.in.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/desktop/org.gnome.Geary.appdata.xml.in.in b/desktop/org.gnome.Geary.appdata.xml.in.in index 47f572bd..dc92487a 100644 --- a/desktop/org.gnome.Geary.appdata.xml.in.in +++ b/desktop/org.gnome.Geary.appdata.xml.in.in @@ -40,13 +40,13 @@ https://wiki.gnome.org/Apps/Geary/FAQ https://wiki.gnome.org/Apps/Geary/ReportingABug https://wiki.gnome.org/Apps/Geary/Translating - https://www.gnome.org/friends/ + https://wiki.gnome.org/Apps/Geary/Donate Geary displaying a conversation - https://wiki.gnome.org/Apps/Geary?action=AttachFile&do=get&target=geary-3-32-main-window.png + https://wiki.gnome.org/Apps/Geary?action=AttachFile&do=get&target=geary-3-36-main-window.png https://wiki.gnome.org/Apps/Geary?action=AttachFile&do=get&target=geary-3-32-avatars.png @@ -57,7 +57,7 @@ Geary showing the rich text composer - https://wiki.gnome.org/Apps/Geary?action=AttachFile&do=get&target=geary-3-32-composer.png + https://wiki.gnome.org/Apps/Geary?action=AttachFile&do=get&target=geary-3-36-composer.png https://wiki.gnome.org/Apps/Geary?action=AttachFile&do=get&target=geary-3-32-add-account.png From 5dca4d03f23d9b9721206f0f200a4cdd3aa502c7 Mon Sep 17 00:00:00 2001 From: Jordi Mas Date: Sat, 14 Mar 2020 21:45:17 +0100 Subject: [PATCH 060/336] Add Catalan help translation --- help/LINGUAS | 1 + help/ca/ca.po | 1512 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1513 insertions(+) create mode 100644 help/ca/ca.po diff --git a/help/LINGUAS b/help/LINGUAS index 594fecd9..9a1735c5 100644 --- a/help/LINGUAS +++ b/help/LINGUAS @@ -1,5 +1,6 @@ # please keep this list sorted alphabetically # +ca cs de el diff --git a/help/ca/ca.po b/help/ca/ca.po new file mode 100644 index 00000000..ebff62df --- /dev/null +++ b/help/ca/ca.po @@ -0,0 +1,1512 @@ +# Translators: +# Jaume Jorba , 2020 +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2020-02-19 00:44+0000\n" +"PO-Revision-Date: 2020-02-20 06:31+0000\n" +"Last-Translator: Jaume Jorba , 2020\n" +"Language-Team: Catalan (https://www.transifex.com/softcatala/teams/62837/ca/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ca\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Put one translator per line, in the form NAME , YEAR1, YEAR2 +msgctxt "_" +msgid "translator-credits" +msgstr "Jaume Jorba , 2020" + +#. (itstool) path: page/title +#: C/accounts.page:10 +msgid "Accounts" +msgstr "Comptes" + +#. (itstool) path: section/title +#: C/accounts.page:13 +msgid "Accounts Editor" +msgstr "Editor de comptes" + +#. (itstool) path: section/p +#: C/accounts.page:15 +msgid "" +"Your email accounts can be added, updated, and removed using the " +"accounts editor. To open it, click Geary’s application menu button " +"in the main window above the folder list, then click Accounts in " +"the pop-up menu." +msgstr "" +"Els vostres comptes de correu es poden afegir, actualitzar, i esborrar " +"utilitzant l'editor de comptes. Per obrir-lo, feu clic al botó de " +"menú de l'aplicació Geary a la finestra principal sobre la llista de " +"carpetes i, a continuació, feu clic al menú emergent Comptes." + +#. (itstool) path: section/p +#: C/accounts.page:20 +msgid "" +"To change the order that accounts are displayed in the folder list, click " +"and drag the handle for an account in the accounts editor, or focus an " +"account with Tab, then use " +"Ctrl and " +"Ctrl to re-position the currently " +"selected account." +msgstr "" +"Per a canviar l'ordre en el qual es mostren els comptes a la llista de " +"carpetes, feu clic i arrossegueu el compte l'editor de comptes, o " +"seleccioneu un compte mitjançant la tecla Tab, aleshores premeu " +"les tecles Ctrl i " +"Ctrl per a reposicionar el compte a la" +" posició seleccionada." + +#. (itstool) path: section/title +#: C/accounts.page:29 +msgid "Adding accounts" +msgstr "Afegeix comptes" + +#. (itstool) path: section/p +#: C/accounts.page:31 +msgid "" +"Geary will automatically use any email accounts you have added via the " +"Online Accounts panel of GNOME Settings. If you do not" +" have any accounts added to Online Accounts, you will be prompted" +" to add an account the first time you run Geary." +msgstr "" +"Geary automàticament utilitzarà qualsevol compte de correu electrònic que " +"hagueu afegit des del panell Comptes en línia de la " +"Configuració de GNOME. Si no teniu comptes a Comptes en " +"línia, se us demanarà que afegiu un compte la primera vegada que " +"executeu Geary." + +#. (itstool) path: section/p +#: C/accounts.page:37 +msgid "" +"To add additional accounts, open the accounts editor, then choose the " +"appropriate email provider from the list at the bottom of the window. For " +"providers supported by Online Accounts, GNOME Settings" +" will be opened and you will be asked for your account information there. " +"For other email providers, you will be asked for your account information by" +" Geary. Once entered, click Create and the account information " +"will be checked and then added." +msgstr "" +"Per a afegir comptes addicionals, obriu l'editor de comptes i, a continuació, " +"trieu el proveïdor de correu electrònic adequat de la llista que hi ha a la " +"part inferior de la finestra. En el cas dels proveïdors suportats pels " +"Comptes en línia, s'obrirà la Configuració de GNOME i " +"se us demanarà la informació de configuració. En el cas d'altres proveïdors " +", Geary us demanarà informació del compte. Un cop introduïda, feu clic a " +"Crea i un cop comprovada la informació del compte, s'afegirà." + +#. (itstool) path: section/title +#: C/accounts.page:48 +msgid "Updating existing accounts" +msgstr "Actualitzar els comptes existents" + +#. (itstool) path: section/p +#: C/accounts.page:50 +msgid "" +"To update existing accounts, open the accounts editor and choose the account" +" you wish to update. Geary will display settings for the account. From " +"there, you can add and remove additional sender email addresses, edit your " +"email signature, and various other settings." +msgstr "" +"Per a actualitzar els comptes existents, obriu l'editor de comptes i trieu el " +"compte que voleu actualitzar. Geary mostrarà la configuració del compte, des" +" d'on podreu afegir i eliminar adreces de correu electrònic del remitent, " +"editar la vostra signatura de correu electrònic i diversos altres " +"paràmetres." + +#. (itstool) path: section/p +#: C/accounts.page:56 +msgid "" +"The Download mail setting allows you to configure how much mail " +"Geary will download and store locally. Geary can only use locally available " +"mail when displaying and searching for conversations." +msgstr "" +"Les opcions de Baixa els missatges us permet configurar quant " +"correu es descarregarà i emmagatzemarà localment. Geary només pot utilitzar " +"el correu electrònic local quan es mostren i cerquen converses." + +#. (itstool) path: section/p +#: C/accounts.page:61 +msgid "" +"To edit the server settings for the account, scroll to the bottom of the " +"window and click Server Settings. The server settings will be " +"displayed and you can click to edit them. Once done, click Apply " +"and Geary will check the settings, then update the account. Note that " +"accounts added via the Online Accounts panel of GNOME " +"Settings cannot have their server name, security, login, or password " +"settings changed." +msgstr "" +"Per a editar la configuració del servidor del compte, desplaceu-vos fins a la " +"part inferior de la finestra i feu clic a Configuració del " +"servidor. Es mostrarà la configuració del servidor i podreu editar-" +"les. Un cop modificades, feu clic a Aplica i Geary validarà la " +"configuració, i aleshores s'actualitzarà el compte. Noteu que els comptes " +"afegits via el panell Comptes en línia de la Configuració " +"de GNOME no poden tenir canviat el nom, la seguretat, el registre o la" +" contrasenya." + +#. (itstool) path: section/p +#: C/accounts.page:70 +msgid "" +"The Save draft email on server checkbox controls whether the " +"composer will save copies of email messages being written in the " +"Drafts folder. If de-selected, you will not be able to save draft" +" messages when closing the composer." +msgstr "" +"La casella de verificació Desa els missatges enviats al servidor " +" controla si l'editor desarà còpies dels missatges de correu " +"electrònic escrits a la carpeta Esborranys. Si es desactiva, no " +"podreu desar els esborranys dels missatges quan es tanqui l'editor." + +#. (itstool) path: section/p +#: C/accounts.page:75 +msgid "" +"The Save sent email on server checkbox controls whether Geary " +"will save copies of email that have been sent to the Sent folder." +" If de-selected, you will no be able to see any email messages you have " +"sent, unless your server automatically saves them for you." +msgstr "" +" La casella de verificació Desa els missatges enviats al servidor " +" controla si Geary desarà les còpies de correu electrònic " +"enviades a la carpeta Enviats. Si es desactiva, no podreu veure " +"cap dels missatges de correu electrònic que hàgiu enviat, tret que el " +"servidor els desi automàticament." + +#. (itstool) path: section/title +#: C/accounts.page:83 +msgid "Removing accounts" +msgstr "Suprimir comptes" + +#. (itstool) path: section/p +#: C/accounts.page:85 +msgid "" +"Accounts added via the Online Accounts panel of GNOME " +"Settings must also be removed from there. To do so, open Online " +"Accounts, select the account, and click Remove." +msgstr "" +"Els comptes afegits mitjançant el panell Comptes en línia de la " +"Configuració de GNOME s'han d'eliminar des d'allà. Per fer-ho, " +"obriu Comptes en línia, seleccioneu el compte, i feu clic a " +"Suprimeix." + +#. (itstool) path: section/p +#: C/accounts.page:90 +msgid "" +"To remove an account added via Geary, open the accounts editor and choose " +"the account you wish to remove. Geary will display settings for the account." +" Scroll to the bottom of the window and click Remove Account. You" +" will be prompted to confirm removing the account. Once confirmed, if you " +"change your mind you can still undo removing the account by clicking " +"Undo in the popup notification, or by typing " +"CtrlU." +msgstr "" +"Per a eliminar un compte afegit a través de Geary, obriu l'editor de comptes i" +" trieu el compte que voleu suprimir. Geary us mostrarà la configuració del " +"compte. Desplaceu-vos fins a la part inferior de la finestra i feu clic a " +"Suprimeix el compte. Se us demanarà que confirmeu que elimineu el " +"compte. Un cop confirmat, si canvieu d'opinió, encara podeu recuperar el " +"compte fent clic a Desfés a la finestra emergent de notificació, " +"o teclejant CtrlU." + +#. (itstool) path: page/title +#: C/archive.page:8 +msgid "Archive, trash and delete messages" +msgstr "Arxiva, esborra i elimina missatges" + +#. (itstool) path: page/p +#: C/archive.page:10 +msgid "" +"Geary lets you archive messages if your server supports it. Clicking the " +"Archive toolbar button moves the conversation " +"from the current folder to the Archive folder for most email " +"services, or to All Mail for GMail. Archiving helps keep your " +"email organised by moving old and replied-to email out of the way." +msgstr "" +"Geary us permet arxivar missatges si el vostre servidor ho permet. Fent clic" +" al botó de la barra d'eines Arxiva es mouen les " +"converses des de la carpeta actual a la carpeta Arxiu en la " +"majoria de serveis de correu, o a Tot el correu electrònic a " +"GMail. Arxivar ajuda a mantenir el vostre correu electrònic organitzat, " +"movent fora de la vostra vista les respostes i els missatges antics." + +#. (itstool) path: page/p +#: C/archive.page:17 +msgid "" +"To move conversations to the Trash folder, select them and click " +"the Trash toolbar button. To permanently delete " +"conversations, hold down Shift and click the Delete button that appears in place of the " +"Trash button, or open the conversation in the Trash " +"folder and click Delete there." +msgstr "" +"Per a moure converses a la carpeta Paperera, seleccioneu-les i feu " +"clic al botó de la barra d'eines Paperera. Per " +"esborrar les converses definitivament, mantingueu premuda la tecla " +"Majúscules i feu clic al botó Suprimeix que apareix en el lloc del botó " +"Paperera, o obriu la conversa a la carpeta Paperera i " +"feu clic a Suprimeix." + +#. (itstool) path: note/title +#: C/archive.page:26 +msgid "Undoing changes" +msgstr "Desfer els canvis" + +#. (itstool) path: note/p +#: C/archive.page:27 +msgid "" +"Note that you can always undo archiving or trashing a message if you change " +"your mind. Click Undo on the pop-up notification" +" that appears, or type CtrlZ, or open" +" the folder, find the message, then move it back to your Inbox" +msgstr "" +"Tingueu en compte que sempre podeu desfer arxivar o esborrar un missatge si " +"canvieu d'opinió. Feu clic a Desfés a la " +"notificació emergent que apareix, o teclegeu " +"CtrlZ, o obriu la carpeta trobeu el " +"missatge, aleshores desplaceu-vos a la Safata d'entrada" + +#. (itstool) path: page/p +#: C/archive.page:34 +msgid "" +"While both Archive and Trash removes conversations from your " +"Inbox folder, there is an important difference. Clicking Archive will ensure your conversations are kept so " +"you can find them again later. Clicking Trash " +"will cause conversations to be hidden from , and they" +" will likely be deleted in the future." +msgstr "" +"Mentre que tant Arxiva com Paperera eliminen les converses de la " +"Safata d'entrada, hi ha una diferència important. Fent clic a Arxiva es garanteix que les converses es mantindran " +"per poder-les recuperar més endavant. Fent clic a Paperera es provoca que les converses s'ocultin de " +", i probablement s'eliminaran en el futur." + +#. (itstool) path: page/title +#: C/bugs.page:10 +msgid "Found a bug?" +msgstr "Heu trobat un error?" + +#. (itstool) path: page/p +#: C/bugs.page:12 +msgid "" +"If you suspect you've found a bug in Geary, please get in touch about" +" it so it can be fixed." +msgstr "" +"Si sospiteu haver trobat un error a Geary, si us plau poseu-nos en " +"contacte de forma que es pugui resoldre." + +#. (itstool) path: page/p +#: C/bugs.page:16 +msgid "" +"To help diagnose the problem as fast as possible, please include the " +"following information:" +msgstr "" +"Per a ajudar a diagnosticar el problema el més ràpid possible, si us plau, " +"incloeu la següent informació:" + +#. (itstool) path: item/p +#: C/bugs.page:20 +msgid "Geary version and installation method (Package? Flathub? Source code?)" +msgstr "Versió de Geary i mètode d'instal·lació (Paquet? Flathub? Codi font?)" + +#. (itstool) path: item/p +#: C/bugs.page:22 +msgid "Your desktop (GNOME? KDE? Something else?)" +msgstr "El vostre escriptori (GNOME? KDE? Alguna cosa més?)" + +#. (itstool) path: item/p +#: C/bugs.page:23 +msgid "" +"Your operating system and version (Ubuntu 16.04? Fedora 28? Rolled your " +"own?)" +msgstr "" +"El sistema i versió del vostre sistema operatiu (Ubuntu 16.04? Fedora 28? El" +" vostre propi?)" + +#. (itstool) path: item/p +#: C/bugs.page:25 +msgid "Email provider (Gmail, Yahoo!, Outlook.com, or someone else?)" +msgstr "" +"Proveïdor del correu electrònic (Google, Yahoo!, Outlook.com, o algun " +"altre?)" + +#. (itstool) path: item/p +#: C/bugs.page:27 +msgid "Steps to reproduce the bug" +msgstr "Passos per a reproduir l'error" + +#. (itstool) path: item/p +#: C/bugs.page:28 +msgid "What happened?" +msgstr "Què ha passat?" + +#. (itstool) path: item/p +#: C/bugs.page:29 +msgid "What did you expect to happen?" +msgstr "Què esperàveu que passés?" + +#. (itstool) path: page/p +#: C/bugs.page:32 +msgid "Thanks for your help!" +msgstr "Gràcies per la vostra ajuda!" + +#. (itstool) path: page/title +#: C/contributing.page:10 +msgid "Contribute to Geary" +msgstr "Contribuir a Geary" + +#. (itstool) path: page/p +#: C/contributing.page:12 +msgid "" +"Want to help improve Geary? There are a number of ways you can contribute:" +msgstr "" +"Vol ajudar a millorar Geary? Hi ha diferents maneres de contribuir-hi:" + +#. (itstool) path: item/p +#: C/contributing.page:16 +msgid "" +"Bug " +"reporting—report new bugs or request new features" +msgstr "" +"Informa d'un " +"error—informa de nous errors o sol·licita noves funcionalitats." + +#. (itstool) path: item/p +#: C/contributing.page:19 +msgid "" +"User Experience " +"Design—research and develop Geary’s user experience" +msgstr "" +"Disseny de " +"l'experiència d'usuari— recerca i desenvolupa l'experiència d'usuari " +"de Geary" + +#. (itstool) path: item/p +#: C/contributing.page:20 +msgid "" +"Development—fix" +" bugs and add new features" +msgstr "" +"Desenvolupament—fixar" +" errors i afegir noves funcionalitats" + +#. (itstool) path: item/p +#: C/contributing.page:21 +msgid "" +"Translating—translate" +" Geary’s user interface and user manual into new languages" +msgstr "" +"Traducció—traducció" +" de la interfície i manual d'usuari de Geary a nous llenguatges" + +#. (itstool) path: item/p +#: C/contributing.page:22 +msgid "" +"Join the " +"discussion—on the mailing list or IRC channel" +msgstr "" +"Unir-se a la " +"discussió— a llistes de correu electrònic o canals d'IRC" + +#. (itstool) path: page/p +#: C/contributing.page:25 +msgid "Thanks for your help making Geary better!" +msgstr "Gràcies per ajudar-nos a fer Geary millor!" + +#. (itstool) path: title/media +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: C/index.page:6 +msgctxt "_" +msgid "" +"external ref='figures/geary.svg' md5='1c66fe237d546362fda9f209840da4a8'" +msgstr "" +"external ref='figures/geary.svg' md5='1c66fe237d546362fda9f209840da4a8'" + +#. (itstool) path: page/title +#: C/index.page:5 +msgid "" +"" +" Geary" +msgstr "" +"" +" Geary" + +#. (itstool) path: section/title +#: C/index.page:11 +msgid "Introduction" +msgstr "Introducció" + +#. (itstool) path: section/title +#: C/index.page:15 +msgid "Using Geary" +msgstr "Utilitzar Geary" + +#. (itstool) path: section/title +#: C/index.page:19 +msgid "Contributing and bug reporting" +msgstr "Contribuir i reportar errors" + +#. (itstool) path: page/title +#: C/label.page:10 +msgid "Label or move a conversation" +msgstr "Etiqueta o mou una conversa" + +#. (itstool) path: section/title +#: C/label.page:12 +msgid "Label a conversation" +msgstr "Etiqueta una conversa" + +#. (itstool) path: section/p +#: C/label.page:13 +msgid "" +"Geary lets you apply one or more labels to each conversation. Geary" +" labels correspond to labels in Gmail, or ordinary folders in other mail " +"services." +msgstr "" +"Geary us permet aplicar una o més etiquetes a cada conversa. Les " +"etiquetes de Geary es corresponen amb les etiquetes a Gmail, o a carpetes en" +" altres serveis de correu." + +#. (itstool) path: section/p +#: C/label.page:15 +msgid "" +"To label one or more conversations, first select the conversation(s), then " +"do either of the following:" +msgstr "" +"Per a etiquetar una o més converses, primer seleccioneu la conversa(es), " +"aleshores feu qualsevol de les següents coses:" + +#. (itstool) path: item/p +#: C/label.page:18 +msgid "" +"Click the Label button on the toolbar and select a label from the" +" resulting drop-down menu." +msgstr "" +"Feu clic al botó Etiqueta a la barra d'eines i seleccioneu una " +"etiqueta al menú desplegable." + +#. (itstool) path: item/p +#: C/label.page:20 +msgid "" +"Hold down the Ctrl key and drag the conversation(s) from the " +"conversation list to the label in the sidebar." +msgstr "" +"Mantingueu premuda la tecla Ctrl i arrossegueu la conversa(es) de" +" la llista de converses a l'etiqueta de la barra lateral." + +#. (itstool) path: section/title +#: C/label.page:25 +msgid "Move a conversation to a folder or label" +msgstr "Moure una conversa a una carpeta o etiqueta." + +#. (itstool) path: section/p +#: C/label.page:26 +msgid "" +"To move one or more conversations to a folder or label, first select the " +"conversation(s), then do either of the following:" +msgstr "" +"Per moure una o més converses a una carpeta o etiqueta, primer seleccioneu " +"la(es) conversa(es), aleshores feu qualsevol de les següents coses:" + +#. (itstool) path: item/p +#: C/label.page:29 +msgid "" +"Click the Move button on the toolbar and select a folder or label" +" from the resulting drop-down menu." +msgstr "" +"Feu clic al botó Moure a la barra d'eines i seleccioneu una " +"carpeta o etiqueta del menú desplegable. " + +#. (itstool) path: item/p +#: C/label.page:31 +msgid "" +"Drag the conversation(s) from the conversation list to the folder or label " +"in the sidebar." +msgstr "" +"Arrossegueu la(es) conversa(es) de la llista de converses a la carpeta o " +"etiqueta de la barra lateral." + +#. (itstool) path: page/title +#: C/limits.page:9 +msgid "Limitations" +msgstr "Limitacions" + +#. (itstool) path: page/p +#: C/limits.page:11 +msgid "" +"Geary is still in early development. Geary supports IMAP and has been tested" +" with Gmail, Yahoo, and the free Dovecot mail server. Experimental support " +"for Outlook.com is provided. Geary may not yet work well with some IMAP " +"servers. At this time Geary is still missing numerous features including " +"offline mode." +msgstr "" +"Geary està en desenvolupament. És compatible amb IMAP i s'ha provat amb " +"Gmail, Yahoo i el servidor de correu gratuït de Dovecot. També es " +"proporciona suport experimental per a Outlook.com. Encara pot no funcionar " +"bé amb alguns servidors IMAP. En aquests moments a Geary encara li falten " +"nombroses funcionalitats, inclòs el mode fora de línia." + +#. (itstool) path: page/p +#: C/limits.page:17 +msgid "" +"To learn more about the features we're working on and the future of Geary, " +"please visit Geary's wiki " +"page." +msgstr "" +"Per obtenir més informació sobre les funcions en què treballem i en el futur" +" de Geary, si us plau visiteu la pàgina wiki de Geary." + +#. (itstool) path: page/title +#. (itstool) path: section/title +#: C/overview.page:9 C/shortcuts.page:13 +msgid "Overview" +msgstr "Visió general" + +#. (itstool) path: page/p +#: C/overview.page:11 +msgid "" +"Geary is an email application built around conversations, for the GNOME 3 " +"desktop. It allows you to read, find and send email with a straightforward, " +"modern interface." +msgstr "" +"Geary és una aplicació de correu electrònic creada al voltant de converses," +" per a l'escriptori del GNOME 3. Permet llegir, trobar i enviar correu " +"electrònic amb una interfície moderna i senzilla." + +#. (itstool) path: page/p +#: C/overview.page:15 +msgid "" +"Conversations allow you to read a complete discussion without having to find" +" and click from message to message." +msgstr "" +"Les converses us permeten llegir una discussió completa sense haver de " +"cercar i fer clic de missatge a missatge." + +#. (itstool) path: page/p +#: C/overview.page:18 +msgid "" +"The main Geary window is divided into several areas: The folder list, the " +"conversation list, and the conversation viewer." +msgstr "" +"La finestra principal de Geary es divideix en diverses àrees: la llista de " +"carpetes, la llista de converses i el visualitzador de converses." + +#. (itstool) path: section/title +#: C/overview.page:22 +msgid "Folder list" +msgstr "Llista de carpetes" + +#. (itstool) path: section/p +#: C/overview.page:24 +msgid "" +"The folder list displays all folders and labels " +"for your email accounts. Geary uses the term label for any folder " +"that you have created to organize your email messages." +msgstr "" +"La llista de carpetes mostra totes les carpetes i " +"etiquetes dels vostres comptes de correu electrònic. Geary utilitza" +" el terme etiqueta per qualsevol carpeta que hàgiu creat per " +"organitzar els vostres missatges de correu." + +#. (itstool) path: section/p +#: C/overview.page:29 +msgid "" +"Select a folder or label to display the conversations it contains in the " +"conversation list." +msgstr "" +"Seleccioneu una carpeta o etiqueta per mostrar les converses que conté en " +"forma de llista." + +#. (itstool) path: section/title +#: C/overview.page:34 +msgid "Conversation list" +msgstr "Llista de converses" + +#. (itstool) path: section/p +#: C/overview.page:36 +msgid "" +"The conversation list displays a list of conversations in the " +"selected folder. Newer conversations appear at the top." +msgstr "" +"La llista de converses mostra la llista de converses de la carpeta " +"seleccionada. Les converses més noves apareixen a la part superior." + +#. (itstool) path: section/p +#: C/overview.page:40 +msgid "" +"Each sender’s name appears bold if there are unread messages from that " +"sender. If a conversation has more than one message, Geary displays a count " +"of messages in the conversation." +msgstr "" +"El nom de cada remitent apareix en negreta si hi ha missatges sense llegir " +"d'aquest. Si una conversa té més d'un missatge, Geary mostra el nombre de " +"missatges a la conversa." + +#. (itstool) path: section/p +#: C/overview.page:44 +msgid "" +"Geary does not automatically download all messages in all of your mail " +"folders. When you first visit your Inbox or any other folder, Geary " +"downloads the most recent messages in that folder. To see more messages, " +"simply scroll down the conversation list and Geary will fetch more messages " +"automatically." +msgstr "" +"Geary no descarrega automàticament tots els missatges a totes les carpetes " +"de correu. Quan visiteu la vostra safata d'entrada o qualsevol altra " +"carpeta, Geary descarrega els missatges més recents de la carpeta. Per veure" +" més missatges, simplement desplaceu-vos cap avall per la llista de " +"converses i Geary buscarà més missatges automàticament." + +#. (itstool) path: section/p +#: C/overview.page:50 +msgid "" +"Some commands in Geary can act on a group of conversations. To select " +"multiple conversations, hold down the Ctrl key and click each " +"conversation in turn in the conversation list. Alternatively, click the " +"first conversation in a range, then hold down Shift and click the" +" last conversation." +msgstr "" +"Alguns comandaments de Geary poden actuar sobre un grup de converses. Per " +"seleccionar diverses converses, mantingueu premuda la tecla Ctrl " +"i feu clic a cada conversa de la llista de converses que vulgueu " +"seleccionar. Alternativament, podeu fer clic al primer element de la " +"conversa, mantenir premuda la tecla Màj. i fer clic a la darrera " +"conversa que vulgueu seleccionar." + +#. (itstool) path: section/title +#: C/overview.page:58 +msgid "Conversation viewer" +msgstr "Visor de converses" + +#. (itstool) path: section/p +#: C/overview.page:60 +msgid "" +"The conversation viewer displays all email messages in the selected" +" conversation, with the oldest message at the top." +msgstr "" +"El visor de converses mostra tots els missatges de correu de la " +"conversa seleccionada, amb els missatges més antics a la part superior." + +#. (itstool) path: section/p +#: C/overview.page:63 +msgid "" +"When you view a conversation, Geary collapses messages that you’ve already " +"read. Click collapsed messages to expand them. Click an expanded message’s " +"header to collapse it." +msgstr "" +"Quan visualitzeu una conversa, Geary col·lapsa els missatges llegits. Feu " +"clic als missatges col·lapsats per expandir-los. Feu clic a l'encapçalament " +"d'un missatge expandit per col·lapsar-lo." + +#. (itstool) path: section/p +#: C/overview.page:67 +msgid "" +"Click on any of the sender’s or receiver’s names or email address for a " +"message to open the contact menu, which displays additional " +"information and options for the email address. You can to start a new " +"conversation, copy the email address to the clipboard, and search for " +"related conversations. If the email address is present in your desktop " +"address book, it will show the contact’s photo, preferred name, and whether " +"they are a favourite contact. You can also open the contact in the address " +"book. If the email address is not already present, you can choose to add " +"them to the address book, and update the remote image loading preference for" +" that address." +msgstr "" +"Feu clic a qualsevol nom d'emissor, destinatari, o a qualsevol adreça de " +"correu electrònic d'un missatge per obrir el menú de contactes, el " +"qual mostra informació i opcions addicionals per a l'adreça de correu " +"electrònic seleccionada. Podeu iniciar una nova conversa, copiar l'adreça de" +" correu electrònic al porta-retalls i buscar converses relacionades. Si " +"l’adreça de correu electrònic existeix a la llibreta d'adreces, es mostrarà " +"la foto del contacte, el nom preferit i si és un contacte favorit. També " +"podeu obrir el contacte a la llibreta d'adreces. Si l'adreça de correu " +"electrònic encara no és a la llibreta d'adreces, podeu triar afegir-la i " +"actualitzar la imatge remota per l'adreça." + +#. (itstool) path: section/p +#: C/overview.page:79 +msgid "" +"Click the star button present on each message to mark or un-mark a message " +"as being starred. Staring a message will mark the whole conversation as " +"starred, and Geary will display the first starred message in a conversation " +"when returning to it." +msgstr "" +"Feu clic a l'estrella present a cada missatge per marcar o desmarcar el " +"missatge com a destacat. Destacar un missatge destacarà tota la conversa i " +"Geary mostrarà el primer missatge destacat de la conversa en tornar." + +#. (itstool) path: section/p +#: C/overview.page:84 +msgid "" +"Click the menu button present on each message to open the message " +"menu, which allows you to reply and forward to a specific message, " +"update which messages have been marked as read or unread, print a message, " +"and so on." +msgstr "" +"Feu clic al botó menú present a cada missatge per obrir el menú de " +"missatges, que permet respondre i reenviar un missatge específic, " +"actualitzar els missatges marcats com a llegits o sense llegir, imprimir un " +"missatge, etc." + +#. (itstool) path: section/p +#: C/overview.page:89 +msgid "" +"Any attachments in a message appear at the bottom of the message. Double " +"click an attachment to open it, or use the Open and Save buttons to open and" +" save selected attachments." +msgstr "" +"Qualsevol fitxer adjunt apareix a la part inferior del missatge. Feu doble " +"clic en un fitxer adjunt per obrir-lo, o utilitzeu els botons Obre i Desa " +"per obrir i desar els fitxers adjunts seleccionats." + +#. (itstool) path: page/title +#: C/preferences.page:10 +msgid "Preferences" +msgstr "Preferències" + +#. (itstool) path: page/p +#: C/preferences.page:12 +msgid "" +"Geary allows you to customise how it works via its Preferences window. To open the window, select Preferences from the application menu on the main " +"window's toolbar. You can change the following options:" +msgstr "" +"Geary us permet personalitzar el seu funcionament utilitzant la finestra " +"Preferències. Per obrir la finestra, seleccioneu " +"Preferències al menú de l'aplicació a la barra" +" d'eines de la finestra principal. Podeu canviar les opcions següents:" + +#. (itstool) path: item/title +#: C/preferences.page:19 +msgid "Automatically select next message" +msgstr "Automàticament seleccionar el següent missatge" + +#. (itstool) path: item/p +#: C/preferences.page:20 +msgid "" +"When this option is enabled, Geary automatically selects the latest message " +"in a folder when you enter the folder. In addition, after archiving a " +"message, Geary automatically selects an adjacent message." +msgstr "" +"Quan aquesta opció està activada, Geary selecciona automàticament l'últim " +"missatge de la carpeta quan hi entreu. A més, després d'arxivar un missatge," +" Geary selecciona automàticament un missatge adjacent." + +#. (itstool) path: item/title +#: C/preferences.page:26 +msgid "Display conversation preview" +msgstr "Mostrar la previsualització de la conversa" + +#. (itstool) path: item/p +#: C/preferences.page:27 +msgid "" +"Enables message previews in the conversation list. Previews show the first " +"few lines of each message." +msgstr "" +"Activa la previsualització de missatges a la llista de converses. Les " +"previsualitzacions mostren les primeres línies de cada missatge." + +#. (itstool) path: item/title +#: C/preferences.page:31 +msgid "Use three pane view" +msgstr "Utilitzeu la vista en tres panells" + +#. (itstool) path: item/p +#: C/preferences.page:32 +msgid "" +"Show the folder list, the conversation list, and the messages side-by-side-" +"by-side in three panes. If not selected, the folder list and conversation " +"list will be stacked vertically in a single pane." +msgstr "" +"Mostra la llista de carpetes, la de converses i, els missatges costat per " +"costat en tres panells. Si no està seleccionat, la llista de carpetes i la " +"llista de converses s'apilen verticalment en un sol panell." + +#. (itstool) path: item/title +#: C/preferences.page:38 +msgid "Use single key email shortcuts" +msgstr "Utilitzeu dreceres de correu electrònic amb una sola tecla" + +#. (itstool) path: item/p +#: C/preferences.page:39 +msgid "" +"Enable keyboard shortcuts for email actions that do not require pressing " +"Ctrl. These match the shortcuts used by GMail. See for details." +msgstr "" +"Activa les dreceres de teclat per a accions de correu electrònic que no " +"necessiten prémer Ctrl. Aquestes coincideixen amb les dreceres " +"utilitzades per GMail. Veure per detalls." + +#. (itstool) path: item/title +#: C/preferences.page:44 +msgid "Watch for new mail when closed" +msgstr "Trobar nou correu quan es tanqui" + +#. (itstool) path: item/p +#: C/preferences.page:45 +msgid "" +"Geary will watch your accounts for new mail even when the main window is not" +" open. To do this, it will silently start when you log in to your computer, " +"and it will continue to run after you close all windows." +msgstr "" +"Geary vigilarà els vostres comptes per trobar un correu nou, fins i tot quan" +" la finestra principal no estigui oberta. Per fer-ho, s'iniciarà " +"silenciosament quan inicieu la sessió al vostre ordinador i seguirà " +"funcionant després de tancar totes les finestres." + +#. (itstool) path: page/title +#: C/search.page:10 +msgid "Search" +msgstr "Cercar" + +#. (itstool) path: page/p +#: C/search.page:12 +msgid "" +"Geary supports a per-account full text search. To start a search, select a " +"folder associated with the account you'd like to search against. Then click " +"the search box in the toolbar (or press " +"CtrlS) and start typing. Results will" +" appear after a brief delay." +msgstr "" +"Geary admet una cerca de text completa per compte. Per iniciar una cerca, " +"seleccioneu una carpeta associada al compte què voleu cercar. A continuació," +" feu clic al quadre de cerca a la barra d'eines (o premeu " +"CtrlS) i comenceu a teclejar. Els " +"resultats apareixeran després d'un breu retard." + +#. (itstool) path: page/p +#: C/search.page:16 +msgid "" +"The full text search includes email text, email addresses (to, from, and " +"cc), subject lines and attachment filenames." +msgstr "" +"La cerca de text completa, inclou el text del correu electrònic, les adreces" +" (a, des de i cc), els assumptes i els noms dels fitxers adjunts." + +#. (itstool) path: page/p +#: C/search.page:19 +msgid "" +"Keywords that match your search are highlighted in the message view. Geary " +"will match different forms of the same word, for example searching for " +"\"walk\" will also match \"walking\" and \"walked.\"" +msgstr "" +"Les paraules clau que coincideixen amb la vostra cerca es destaquen a la " +"vista de missatges. Geary cerca diferents formes d'una mateixa paraula, per " +"exemple la cerca \"caminar\" també coincidirà amb \"caminant\" i " +"\"caminat\"." + +#. (itstool) path: section/title +#: C/search.page:23 +msgid "Search operators" +msgstr "Cerca operadors" + +#. (itstool) path: section/p +#: C/search.page:24 +msgid "Geary supports the following operators to limit the scope of searches:" +msgstr "" +"Geary admet els operadors següents per limitar l'abast de les cerques:" + +#. (itstool) path: td/p +#: C/search.page:27 +msgid "attachment:filename" +msgstr "adjunt:nom del fitxer" + +#. (itstool) path: td/p +#: C/search.page:28 +msgid "" +"Finds messages with attachments whose name matches filename." +msgstr "" +"Cerca els missatges amb fitxers adjunts en els quals nom coincideix amb " +"nom del fitxer." + +#. (itstool) path: td/p +#: C/search.page:31 +msgid "bcc:recipient" +msgstr "Cco:destinatari" + +#. (itstool) path: td/p +#: C/search.page:32 +msgid "Finds messages where recipient matches email BCC fields." +msgstr "" +"Cerca els missatges en els quals destinatari coincideix amb els " +"camps correu BCC." + +#. (itstool) path: td/p +#: C/search.page:35 +msgid "body:text" +msgstr "cos:text" + +#. (itstool) path: td/p +#: C/search.page:36 +msgid "Finds messages whose body contains text." +msgstr "Cerca els missatges en els quals cos conté text." + +#. (itstool) path: td/p +#: C/search.page:39 +msgid "cc:recipient" +msgstr "cc:destinatari" + +#. (itstool) path: td/p +#: C/search.page:40 +msgid "Finds messages where recipient matches email CC fields." +msgstr "" +"Troba els missatges en els quals el destinatari coincideix amb el" +" camp CC del correu." + +#. (itstool) path: td/p +#: C/search.page:43 +msgid "from:sender" +msgstr "de:remitent" + +#. (itstool) path: td/p +#: C/search.page:44 +msgid "Finds messages where sender matches email From fields." +msgstr "" +"Troba els missatges en els quals el remitent coincideix amb el " +"camp CC del correu." + +#. (itstool) path: td/p +#: C/search.page:47 +msgid "is:read" +msgstr "és:llegit" + +#. (itstool) path: td/p +#: C/search.page:48 +msgid "Finds messages that have been marked as read." +msgstr "Troba missatges que s'hagin marcat com a llegits." + +#. (itstool) path: td/p +#: C/search.page:51 +msgid "is:starred" +msgstr "és:destacat" + +#. (itstool) path: td/p +#: C/search.page:52 +msgid "Finds messages that have been marked as starred." +msgstr "Troba missatges que s'hagin marcat com a destacats." + +#. (itstool) path: td/p +#: C/search.page:55 +msgid "is:unread" +msgstr "és:no llegit" + +#. (itstool) path: td/p +#: C/search.page:56 +msgid "Finds messages that have been marked as not read." +msgstr "Troba missatges que s'hagin marcat com a no llegits." + +#. (itstool) path: td/p +#: C/search.page:59 +msgid "subject:text" +msgstr "assumpte:text" + +#. (itstool) path: td/p +#: C/search.page:60 +msgid "Finds messages whose subject contains text." +msgstr "Troba missatges que a assumpte continguintext." + +#. (itstool) path: td/p +#: C/search.page:63 +msgid "to:recipient" +msgstr "Per a:destinatari" + +#. (itstool) path: td/p +#: C/search.page:64 +msgid "" +"Finds messages where recipient matches email To, CC, or BCC " +"fields." +msgstr "" +"Troba els missatges en els quals el camp destinatari coincideix " +"amb els camps Per a, Cc o Cco." + +#. (itstool) path: section/p +#: C/search.page:68 +msgid "" +"As a special case, the bcc, cc, " +"from, and to operators support " +"me as their argument, which searches for the account's email " +"address in the appropriate context." +msgstr "" +"Com a casos especials, els operadors Cco, cc, " +"de, i per a suporten com a argument " +"me, que cerca l'adreça de correu electrònic del compte en el " +"context apropiat." + +#. (itstool) path: page/title +#: C/shortcuts.page:10 +msgid "Keyboard shortcuts" +msgstr "Dreceres de teclat" + +#. (itstool) path: section/p +#: C/shortcuts.page:14 +msgid "" +"Geary has keyboard shortcuts for most common operations. Use the built-in " +"help to discover the full list. To open the shortcuts help, select Keyboard Shortcuts from the application menu on the" +" main window's toolbar, or using the keyboard shortcuts listed below." +msgstr "" +"Geary té dreceres de teclat per a les operacions més habituals. Utilitzeu " +"l'ajuda integrada per conèixer la llista completa. Per obrir l'ajuda de les " +"dreceres, seleccioneu Dreceres de teclat al " +"menú de l'aplicació de la barra d'eines de la finestra principal, o bé " +"utilitzeu les dreceres de teclat a la llista següent." + +#. (itstool) path: section/p +#: C/shortcuts.page:20 +msgid "" +"The following keyboard shortcuts can be used to access on-line help from " +"Geary:" +msgstr "" +"Les següents dreceres de teclat es poden utilitzar per accedir a l'ajuda en " +"línia de Geary:" + +#. (itstool) path: td/p +#: C/shortcuts.page:24 +msgid "Display this online help manual" +msgstr "Mostrar el manual d'ajuda en línia" + +#. (itstool) path: td/p +#: C/shortcuts.page:25 +msgid "F1" +msgstr "F1" + +#. (itstool) path: td/p +#: C/shortcuts.page:28 +msgid "Display all keyboard shortcuts" +msgstr "Mostra totes les dreceres de teclat" + +#. (itstool) path: td/p +#: C/shortcuts.page:29 +msgid "Ctrl?" +msgstr "Ctrl?" + +#. (itstool) path: section/title +#: C/shortcuts.page:37 +msgid "Single key shortcuts" +msgstr "Dreceres d'una sola tecla" + +#. (itstool) path: section/p +#: C/shortcuts.page:39 +msgid "" +"You can enable keyboard shortcuts for email actions that do not require " +"pressing Ctrl. These match the shortcuts used by GMail. See for details." +msgstr "" +"Podeu habilitar les dreceres de teclat per a accions de correu electrònic " +"que no necessiten prémer Ctrl. Aquestes coincideixen amb les " +"dreceres utilitzades per GMail. Veure per " +"detalls." + +#. (itstool) path: section/p +#: C/shortcuts.page:43 +msgid "" +"The full list of single key shortcuts enabled by this preference can be " +"found via the keyboard shortcuts help, above." +msgstr "" +"La llista completa de les dreceres d'una sola tecla habilitades per aquesta " +"preferència es poden trobar a l'ajuda de les dreceres de teclat." + +#. (itstool) path: page/title +#: C/star.page:10 +msgid "Star a message or mark it as read/unread" +msgstr "Destacar un missatge o marcar-lo com a llegit/no llegit" + +#. (itstool) path: section/title +#: C/star.page:12 +msgid "Star messages" +msgstr "Missatges destacats" + +#. (itstool) path: section/p +#: C/star.page:13 +msgid "" +"You can star messages to indicate that they're important to you. To mark a " +"conversation with a star, click its star icon in the conversation list. You " +"can star an individual message by clicking the star at the upper right of " +"the message itself." +msgstr "" +"Podeu assenyalar els missatges importants amb una estrella. Per marcar una " +"conversa amb una estrella, feu clic a la icona estrella de la llista de " +"converses. Podeu destacar un missatge individual fent clic a l'estrella " +"situada a la part superior dreta del missatge." + +#. (itstool) path: section/p +#: C/star.page:15 +msgid "" +"With Gmail accounts, starred messages appear in the Starred folder in the " +"folder list." +msgstr "" +"Als comptes Gmail, els missatges destacats apareixen a la carpeta Destacats" +" de la llista de carpetes." + +#. (itstool) path: section/title +#: C/star.page:18 +msgid "Mark messages as read or unread" +msgstr "Marcar missatges com a llegits o no llegits" + +#. (itstool) path: section/p +#: C/star.page:19 +msgid "" +"Geary marks messages as read automatically as you read them. To manually " +"toggle a conversation as read or unread, click the circle icon in the " +"conversation list." +msgstr "" +"Geary marca els missatges de forma automàtica mentre els llegiu. Per " +"commutar manualment una conversa entre llegida i no llegida, feu clic a la " +"icona amb un cercle a la llista de converses." + +#. (itstool) path: section/p +#: C/star.page:22 +msgid "" +"Alternately, the Mark as Unread in the Mark menu on " +"the toolbar can be used to toggle the read status of the selected " +"conversation(s)." +msgstr "" +"Alternativament la Marca de no llegit al menú Marca a " +"la barra d'eines es pot fer servir per commutar l'estat de lectura de les " +"converses seleccionades." + +#. (itstool) path: section/p +#: C/star.page:25 +msgid "" +"To mark an individual message as read, select Mark as Read from " +"the dropdown menu." +msgstr "" +"Per marcar un missatge com a llegit, seleccioneu Marca com a " +"llegit al menú desplegable." + +#. (itstool) path: page/title +#: C/write.page:7 +msgid "Writing new email and replying" +msgstr "Escriure un nou correu electrònic i respondre" + +#. (itstool) path: section/title +#: C/write.page:10 +msgid "Composing and replying" +msgstr "Redacció i resposta" + +#. (itstool) path: section/p +#: C/write.page:12 +msgid "" +"To start a new email conversation, click the Compose button on the toolbar. Type the email address" +" of the people to receive the message in the To " +"text field, and a subject line in the Subject " +"field. You can then type your message in the text area below these. Once the" +" message is read to send, click Send or type " +"CtrlEnter to send the message." +msgstr "" +"Per iniciar una nova conversa per correu electrònic, feu clic al botó Editara la barra d'eines. Escriviu l'adreça de la " +"gent que ha de rebre el correu al camp text Per " +"a, i l'assumpte al camp Assumpte. A " +"continuació, podeu escriure el vostre missatge a l'àrea de text que hi ha a " +"sota. Un cop a punt per enviar, feu clic a Envia" +" o teclegeu CtrlEntrar per enviar el " +"missatge." + +#. (itstool) path: note/title +#: C/write.page:23 +msgid "Undoing sending" +msgstr "Desfer l'enviament" + +#. (itstool) path: note/p +#: C/write.page:24 +msgid "" +"When sending an email, Geary will wait 5 seconds before delivering the " +"message. During this time, you will be able to click Undo on the pop-up notification that appears or type " +"CtrlZ to re-open the email, and make " +"more changes to it." +msgstr "" +"Quan s'envia un correu electrònic, Geary espera 5 segons abans d'enviar-lo. " +"Durant aquest temps, podreu fer clic a Desfés a " +"la finestra emergent que apareix, o teclegeu " +"CtrlZ per reobrir el correu i fer-hi " +"canvis." + +#. (itstool) path: section/p +#: C/write.page:32 +msgid "" +"When entering an email address in the To and Cc fields, Geary will provide suggestions from your " +"desktop address book and from previously sent and received email messages. " +"To choose one of these suggestions, simply click on it. In addition, Bcc and Reply-to fields can" +" be shown by selecting Show extended fields from " +"the formatting toolbar menu." +msgstr "" +"Quan s'introdueix una adreça de correu electrònic als camps Per a i Cc, Geary " +"proporciona suggeriments de la vostra llibreta d'adreces i dels missatges de" +" correu electrònic enviats i rebuts anteriorment. Per seleccionar un " +"d'aquests suggeriments, només cal que hi feu clic. A més, els camps Cco i Respondre a es poden " +"mostrar seleccionant Mostra camps estesos " +" al menú de la barra d'eines de format ." + +#. (itstool) path: section/p +#: C/write.page:41 +msgid "" +"To reply to the currently selected conversation, click one of the Reply, Reply All or Forward toolbar buttons. This will open a new reply " +"or forwarded email composer for the latest message in the conversation." +msgstr "" +"Per respondre a la conversa seleccionada, feu clic als botons de la barra " +"d'eines Respondre, Respondre a tots o Reenvia. D'aquesta manera, s'obrirà un editor de " +"correu electrònic per a la resposta o reenviament del darrer missatge de la " +"conversa." + +#. (itstool) path: section/p +#: C/write.page:47 +msgid "" +"When replying, the message being replied to will be quoted and copied into " +"the footer of the new reply. This can be deleted before typing a reply by " +"pressing Backspace. Alternatively, text can be selectively quoted" +" by selecting the desired text in a message and clicking Reply or Reply All, only " +"the selected text will be quoted." +msgstr "" +"Quan es respon, el missatge al qual es respon se cita i copia al peu de " +"pàgina de la nova resposta. Es pot suprimir abans d'escriure una resposta " +"prement Barra espaiadora. Alternativament, el text es pot citar " +"selectivament seleccionant el text desitjat en el missatge i fent clic a " +"Respondre o Respondre a " +"tots, tan sols se citarà el text seleccionat." + +#. (itstool) path: section/p +#: C/write.page:55 +msgid "" +"To reply to a specific email message, open the message menu in the top " +"corner of the message and choose Reply, Reply All or " +"Forward." +msgstr "" +"Per respondre un missatge específic, obriu el menú de missatges a la " +"cantonada superior del missatge i trieu Respondre, Respondre" +" a tots o Reenvia." + +#. (itstool) path: section/title +#: C/write.page:61 +msgid "Text formatting, images and attachments" +msgstr "Formata el text, les imatges i els adjunts" + +#. (itstool) path: section/p +#: C/write.page:63 +msgid "" +"Geary's email composer lets you use text styles such as bold and " +"italic, indent text to quote it and links to web pages. Simply " +"select the text and click the appropriate button on the formatting toolbar." +msgstr "" +"L'editor de correu electrònic de Geary's us permet utilitzar estils com " +"negreta i itàlic, indentar el text per citar-lo i enllaçar" +" a pàgines web. Simplement seleccioneu el text i feu clic al botó adequat a " +"la barra d'eines de format." + +#. (itstool) path: section/p +#: C/write.page:68 +msgid "" +"Bulleted and numbered lists can be inserted or removed by clicking the Bulleted list and Numbered " +"list buttons on the formatting toolbar. The level of indentation of " +"list items can be adjusted using the Indent and " +"Un-indent formatting toolbar buttons." +msgstr "" +"Es poden inserir o eliminar llistes numerades o amb pics fent clic als " +"botons Llista numerada iLlista amb picsa la barra d'eines de format. Es pot " +"ajustar el nivell de sagnat d'elements de la llista mitjançant els botons de" +" la barra de formatAugmentar el sagnat iReduir el sagnat." + +#. (itstool) path: section/p +#: C/write.page:75 +msgid "" +"Images can be inserted into rich text messages by clicking the Insert Image button on the formatting toolbar and " +"selecting the image to attach, by dragging an image from the " +"Files application into the email body and then dropping it, or by" +" pasting an image that has been copied to the clipboard from another " +"application." +msgstr "" +"Les imatges es poden inserir en missatges en text enriquits fent clic al " +"botó Inserir imatge a la barra d'eines de format" +" i seleccionant la imatge a adjuntar, arrossegant una imatge des de " +"l'aplicació Fitxers al cos de correu electrònic i aleshores " +"deixant-lo anar, o enganxant una imatge que s'ha copiat al porta-retalls des" +" d'una altra aplicació." + +#. (itstool) path: section/p +#: C/write.page:82 +msgid "" +"Documents, music, videos, and other files can be attached to the email by " +"clicking the Attach File button at the top of " +"the composer window and selecting the document to attach, or by dragging a " +"file from the Files application to the composer window, and " +"dropping it either on the text fields at the top of the window or on the " +"toolbar at the bottom." +msgstr "" +"A un correu electrònic s'hi poden adjuntar documents, musica, vídeos, i " +"altres tipus de fitxers fent clic al botó Adjunta " +"fitxer a la part superior de la finestra d'edició i seleccionat el " +"fitxer a adjuntar, o arrossegant un fitxer des de l'aplicació " +"Fitxers a la finestra d'edició, i deixant-lo anar en qualsevol " +"camp de text de la part superior de la finestra o a la barra d'eines de la " +"part inferior." + +#. (itstool) path: section/p +#: C/write.page:90 +msgid "" +"A number of keyboard shortcuts are available in the composer; see for details." +msgstr "" +"Hi ha moltes dreceres de teclat disponibles per al compositor; Veure per a més detalls." + +#. (itstool) path: section/p +#: C/write.page:93 +msgid "" +"You may specify a signature to be inserted into the footer of email in the " +"composer via the dialog." +msgstr "" +"A l'editor, podeu especificar una signatura per inserir-la com a peu del " +"correu electrònic utilitzant el diàleg." + +#. (itstool) path: section/title +#: C/write.page:98 +msgid "Checking spelling" +msgstr "Comprova l'ortografia" + +#. (itstool) path: section/p +#: C/write.page:100 +msgid "" +"Geary supports spell-checking your composed email in one or more languages, " +"as you type. To enable spell-checking, first ensure your computer has spell-" +"check dictionaries installed for the desired languages. Consult your " +"computer's help to determine how to install dictionaries if not present." +msgstr "" +"Geary admet la revisió ortogràfica del vostre correu electrònic en un o " +"diversos idiomes, mentre escriviu. Per habilitar la correcció ortogràfica, " +"primer assegureu-vos que l'ordinador tingui instal·lats els diccionaris de " +"correcció ortogràfica dels idiomes desitjats. Consulteu l'ajuda de " +"l'ordinador per determinar com instal·lar diccionaris si no hi són presents." + +#. (itstool) path: section/p +#: C/write.page:106 +msgid "" +"To select languages for spell-checking, click the Spell check button on the formatting toolbar, and the" +" language selection popover will appear. Click on a language in the list to " +"toggle it on or off, and click the - button to " +"remove it from the list. If a language does not appear in the list, search " +"for it by typing its name in the search box, then click the + button to add it." +msgstr "" +"Per seleccionar idiomes per a les correccions ortogràfiques, feu clic al " +"botó Corrector ortogràfic a la barra d'eines de " +"format i apareixerà el menú emergent de selecció d'idioma. Feu clic a un " +"idioma de la llista per activar-lo o desactivar-lo, i feu clic al botó - per eliminar-lo de la llista. Si no apareix un " +"idioma a la llista, busqueu-lo escrivint-ne el nom al quadre de cerca, " +"aleshores feu clic al botó +per afegir-lo." + +#. (itstool) path: section/title +#: C/write.page:117 +msgid "Saving drafts and restoring discarded messages" +msgstr "Desa esborranys i recupera missatges descartats" + +#. (itstool) path: section/p +#: C/write.page:119 +msgid "" +"For mail servers that support drafts, Geary will automatically save the " +"message as you type on the server after a short delay." +msgstr "" +"Per als servidors de correu que admeten esborranys, Geary desarà " +"automàticament el missatge mentre escriviu al servidor després d'un cert " +"temps." + +#. (itstool) path: section/p +#: C/write.page:123 +msgid "" +"To edit an existing draft, select the Drafts folder in the folder" +" list, select the message, and click \"Edit Draft\" in the conversation " +"viewer." +msgstr "" +"Per editar un esborrany existent, seleccioneu la carpeta " +"Esborranys a la llista de carpetes, seleccioneu el missatge i, " +"feu clic a \"Edita l'esborrany\" al visualitzador de converses." + +#. (itstool) path: section/p +#: C/write.page:127 +msgid "Geary will delete the draft when you send the message." +msgstr "Geary esborrarà l'esborrany quan envieu el missatge." + +#. (itstool) path: note/p +#: C/write.page:130 +msgid "" +"If you save or discard a composed email, you can re-open it by clicking Undo on the pop-up notification that appears or by " +"typing CtrlZ. The ability to restore " +"a saved or discarded composer will be remain for up to 30 minutes. After " +"that you will need to re-open the message via the Drafts folder, " +"if present." +msgstr "" +"Si deseu o rebutgeu un correu electrònic, podeu tornar-lo a obrir fent clic " +"a Desfés a la notificació emergent que apareix o" +" teclejantCtrlZ. La capacitat de " +"restaurar un missatge desat o descartat es manté activa 30 minuts. Després, " +"haureu de tornar a obrir el missatge accedint a la " +"carpetaEsborranys, si existeix." + +#. (itstool) path: section/title +#: C/write.page:141 +msgid "Plain text messages" +msgstr "Missatges en text pla" + +#. (itstool) path: section/p +#: C/write.page:143 +msgid "" +"Geary can also send plain text messages. In the drop-down menu, check or " +"uncheck Rich Text to toggle between plain text and" +" rich text mode. Plain text mode is useful when sending email to mailing " +"lists that prohibit rich text (HTML) messages, or when sending email to " +"people that do no use modern clients like Geary." +msgstr "" +"Geary també pot enviar missatges de text pla. Al menú desplegable, marqueu o" +" desmarqueu Text enriquit per canviar entre el " +"text de text pla i el mode de text enriquit. El mode text pla és útil per " +"enviar missatges de correu electrònic a llistes de distribució que " +"prohibeixen els missatges de text enriquit (HTML) o per enviar a correu " +"electrònic a persones que no utilitzen clients moderns com Geary." + +#. (itstool) path: section/p +#: C/write.page:150 +msgid "" +"In plain text mode, text will be automatically wrapped using soft line " +"breaks so that it is no longer than 74 characters wide, and indented text " +"will be wrapped and quoted using a “>” character for each level of " +"quoting." +msgstr "" +"En el mode text pla, el text es justificarà automàticament mitjançant salts " +"de línies de manera que no tinguin més de 74 caràcters d'ample i, el text " +"sagnat es justificarà i se citarà utilitzant el caràcter \">,\" per a cada" +" nivell de cita." From 819f13fb3bb961e730e199093800d5ccb24c88d6 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Sun, 21 Jul 2019 10:59:30 +1000 Subject: [PATCH 061/336] Don't attempt to get the last initial if no other word Fixs a test failure s390, powerpc. See #512, #724 --- src/client/util/util-avatar.vala | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/client/util/util-avatar.vala b/src/client/util/util-avatar.vala index d6c0ff6b..01075160 100644 --- a/src/client/util/util-avatar.vala +++ b/src/client/util/util-avatar.vala @@ -89,10 +89,12 @@ namespace Util.Avatar { // Get the first alphanumeric char of the last word of the string index = normalized.last_index_of_char(' '); - for (int i = 0; normalized.get_next_char(ref index, out c); i++) { - if (c.isalnum()) { - buf.append_unichar(c); - break; + if (index >= 0) { + for (int i = 0; normalized.get_next_char(ref index, out c); i++) { + if (c.isalnum()) { + buf.append_unichar(c); + break; + } } } From 7ceedd0a0192bb0ff610ceaa78618e55a6ff0fac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonatan=20P=C3=A5lsson?= Date: Sun, 15 Mar 2020 09:00:20 +0100 Subject: [PATCH 062/336] INSTALL: libgmime3.0-dev is actually libgmime-3.0-dev MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix typo (missing dash in package name) introduced in c6be77ba85526ca2f80ff36aef43eb0037da2a94 Signed-off-by: Jonatan Pålsson --- INSTALL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/INSTALL b/INSTALL index d1994357..67270544 100644 --- a/INSTALL +++ b/INSTALL @@ -55,7 +55,7 @@ Install them by running this command: sudo apt-get install meson build-essential valac \ desktop-file-utils iso-codes gettext itstool \ libappstream-glib-dev libenchant-2-dev libfolks-dev \ - libgcr-3-dev libgee-0.8-dev libglib2.0-dev libgmime3.0-dev \ + libgcr-3-dev libgee-0.8-dev libglib2.0-dev libgmime-3.0-dev \ libgoa-1.0-dev libgspell-1-dev libgtk-3-dev libjson-glib-dev \ libhandy-0.0-dev libpeas-dev libsecret-1-dev libsqlite3-dev \ libunwind-dev libwebkit2gtk-4.0-dev libxml2-dev \ From 3490cbcddc0bf6b697a752060316fb18fe4a985e Mon Sep 17 00:00:00 2001 From: Jordi Mas Date: Mon, 16 Mar 2020 12:20:28 +0100 Subject: [PATCH 063/336] Update Catalan translation --- help/ca/ca.po | 26 +- po/ca.po | 3267 +++++++++++++++++++++++-------------------------- 2 files changed, 1554 insertions(+), 1739 deletions(-) diff --git a/help/ca/ca.po b/help/ca/ca.po index ebff62df..67ac4927 100644 --- a/help/ca/ca.po +++ b/help/ca/ca.po @@ -155,7 +155,7 @@ msgid "" "Drafts folder. If de-selected, you will not be able to save draft" " messages when closing the composer." msgstr "" -"La casella de verificació Desa els missatges enviats al servidor " +"La casella de selecció Desa els missatges enviats al servidor " " controla si l'editor desarà còpies dels missatges de correu " "electrònic escrits a la carpeta Esborranys. Si es desactiva, no " "podreu desar els esborranys dels missatges quan es tanqui l'editor." @@ -168,7 +168,7 @@ msgid "" " If de-selected, you will no be able to see any email messages you have " "sent, unless your server automatically saves them for you." msgstr "" -" La casella de verificació Desa els missatges enviats al servidor " +" La casella de selecció Desa els missatges enviats al servidor " " controla si Geary desarà les còpies de correu electrònic " "enviades a la carpeta Enviats. Si es desactiva, no podreu veure " "cap dels missatges de correu electrònic que hàgiu enviat, tret que el " @@ -377,7 +377,7 @@ msgid "" "reporting—report new bugs or request new features" msgstr "" "Informa d'un " -"error—informa de nous errors o sol·licita noves funcionalitats." +"error—informa de nous errors o sol·licita noves funcionalitats" #. (itstool) path: item/p #: C/contributing.page:19 @@ -512,7 +512,7 @@ msgstr "" #. (itstool) path: section/title #: C/label.page:25 msgid "Move a conversation to a folder or label" -msgstr "Moure una conversa a una carpeta o etiqueta." +msgstr "Moure una conversa a una carpeta o etiqueta" #. (itstool) path: section/p #: C/label.page:26 @@ -530,7 +530,7 @@ msgid "" " from the resulting drop-down menu." msgstr "" "Feu clic al botó Moure a la barra d'eines i seleccioneu una " -"carpeta o etiqueta del menú desplegable. " +"carpeta o etiqueta del menú desplegable." #. (itstool) path: item/p #: C/label.page:31 @@ -619,7 +619,7 @@ msgid "" "for your email accounts. Geary uses the term label for any folder " "that you have created to organize your email messages." msgstr "" -"La llista de carpetes mostra totes les carpetes i " +"La llista de carpetes mostra totes les carpetes i " "etiquetes dels vostres comptes de correu electrònic. Geary utilitza" " el terme etiqueta per qualsevol carpeta que hàgiu creat per " "organitzar els vostres missatges de correu." @@ -682,7 +682,7 @@ msgid "" "first conversation in a range, then hold down Shift and click the" " last conversation." msgstr "" -"Alguns comandaments de Geary poden actuar sobre un grup de converses. Per " +"Algunes ordres de Geary poden actuar sobre un grup de converses. Per " "seleccionar diverses converses, mantingueu premuda la tecla Ctrl " "i feu clic a cada conversa de la llista de converses que vulgueu " "seleccionar. Alternativament, podeu fer clic al primer element de la " @@ -1021,7 +1021,7 @@ msgstr "assumpte:text" #. (itstool) path: td/p #: C/search.page:60 msgid "Finds messages whose subject contains text." -msgstr "Troba missatges que a assumpte continguintext." +msgstr "Troba missatges que a assumpte continguin text." #. (itstool) path: td/p #: C/search.page:63 @@ -1214,7 +1214,7 @@ msgid "" "CtrlEnter to send the message." msgstr "" "Per iniciar una nova conversa per correu electrònic, feu clic al botó Editara la barra d'eines. Escriviu l'adreça de la " +"style=\"button\">Editaa la barra d'eines. Escriviu l'adreça de la " "gent que ha de rebre el correu al camp text Per " "a, i l'assumpte al camp Assumpte. A " "continuació, podeu escriure el vostre missatge a l'àrea de text que hi ha a " @@ -1332,7 +1332,7 @@ msgid "" "Un-indent formatting toolbar buttons." msgstr "" "Es poden inserir o eliminar llistes numerades o amb pics fent clic als " -"botons Llista numerada iLlista numerada i Llista amb picsa la barra d'eines de format. Es pot " "ajustar el nivell de sagnat d'elements de la llista mitjançant els botons de" " la barra de formatAugmentar el sagnat iAdjunta " "fitxer a la part superior de la finestra d'edició i seleccionat el " "fitxer a adjuntar, o arrossegant un fitxer des de l'aplicació " @@ -1427,7 +1427,7 @@ msgstr "" "idioma de la llista per activar-lo o desactivar-lo, i feu clic al botó - per eliminar-lo de la llista. Si no apareix un " "idioma a la llista, busqueu-lo escrivint-ne el nom al quadre de cerca, " -"aleshores feu clic al botó +per afegir-lo." +"aleshores feu clic al botó + per afegir-lo." #. (itstool) path: section/title #: C/write.page:117 @@ -1472,7 +1472,7 @@ msgid "" msgstr "" "Si deseu o rebutgeu un correu electrònic, podeu tornar-lo a obrir fent clic " "a Desfés a la notificació emergent que apareix o" -" teclejantCtrlZ. La capacitat de " +" teclejant CtrlZ. La capacitat de " "restaurar un missatge desat o descartat es manté activa 30 minuts. Després, " "haureu de tornar a obrir el missatge accedint a la " "carpetaEsborranys, si existeix." diff --git a/po/ca.po b/po/ca.po index 1d3378fa..b3ca74f8 100644 --- a/po/ca.po +++ b/po/ca.po @@ -7,14 +7,14 @@ # Alfredo Hernández , 2012 # martin.steghoefer , 2013 # Gerard Bertran , 2017 -# Jordi Mas i Hernàndez , 2017 +# Jordi Mas i Hernàndez , 2017, 2020 # Jordi Serratosa , 2017. msgid "" msgstr "" "Project-Id-Version: geary-0.4.1\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2019-04-18 07:39+0000\n" -"PO-Revision-Date: 2019-04-20 19:22+0200\n" +"POT-Creation-Date: 2020-03-14 23:28+0000\n" +"PO-Revision-Date: 2020-03-16 12:19+0100\n" "Last-Translator: Carles Ferrando Garcia \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/geary/language/" "ca/)\n" @@ -23,7 +23,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.2.4\n" #: desktop/geary-attach.contract.desktop.in:3 msgid "Send by email" @@ -34,36 +34,38 @@ msgid "Send files using Geary" msgstr "Enviar fitxers a través de Geary" #. Translators: The application name -#: desktop/geary-autostart.desktop.in:3 -#: desktop/org.gnome.Geary.appdata.xml.in:11 -#: desktop/org.gnome.Geary.desktop.in:3 +#: desktop/geary-autostart.desktop.in.in:3 +#: desktop/org.gnome.Geary.appdata.xml.in.in:12 +#: desktop/org.gnome.Geary.desktop.in.in:3 #: src/client/accounts/accounts-editor-servers-pane.vala:555 +#: src/client/application/application-main-window.vala:555 msgid "Geary" msgstr "Geary" -#: desktop/geary-autostart.desktop.in:4 desktop/org.gnome.Geary.desktop.in:4 +#: desktop/geary-autostart.desktop.in.in:4 +#: desktop/org.gnome.Geary.desktop.in.in:4 msgid "Email" msgstr "Correu electrònic" #. Translators: The application's summary / tagline -#: desktop/geary-autostart.desktop.in:5 -#: desktop/org.gnome.Geary.appdata.xml.in:15 -#: desktop/org.gnome.Geary.desktop.in:5 -#: src/client/application/geary-application.vala:23 +#: desktop/geary-autostart.desktop.in.in:5 +#: desktop/org.gnome.Geary.appdata.xml.in.in:16 +#: desktop/org.gnome.Geary.desktop.in.in:5 +#: src/client/application/application-client.vala:32 msgid "Send and receive email" msgstr "Envieu i rebeu correus electrònics" #. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon. -#: desktop/geary-autostart.desktop.in:7 +#: desktop/geary-autostart.desktop.in.in:7 msgid "Email;E-mail;Mail;" msgstr "Email;Correu electrònic;Correu;" #. Translators: The development team's name -#: desktop/org.gnome.Geary.appdata.xml.in:13 +#: desktop/org.gnome.Geary.appdata.xml.in.in:14 msgid "Geary Development Team" msgstr "Equip de desenvolupament del Geary" -#: desktop/org.gnome.Geary.appdata.xml.in:17 +#: desktop/org.gnome.Geary.appdata.xml.in.in:18 msgid "" "Geary is an email application built around conversations, for the GNOME 3 " "desktop. It allows you to read, find and send email with a straightforward, " @@ -73,70 +75,73 @@ msgstr "" "a l'escriptori GNOME 3. Permet llegir, trobar i enviar correu electrònic amb " "una interfície senzilla i moderna." -#: desktop/org.gnome.Geary.appdata.xml.in:22 +#: desktop/org.gnome.Geary.appdata.xml.in.in:23 msgid "" "Conversations allow you to read a complete discussion without having to find " "and click from message to message." msgstr "" -"Les converses li permeten llegir una discussió completa sense haver de " -"buscar i fer clic de missatge en missatge." +"Les converses li permeten llegir una discussió completa sense haver de buscar " +"i fer clic de missatge en missatge." -#: desktop/org.gnome.Geary.appdata.xml.in:26 +#: desktop/org.gnome.Geary.appdata.xml.in.in:27 msgid "Geary’s features include:" msgstr "Les característiques de Geary inclouen:" -#: desktop/org.gnome.Geary.appdata.xml.in:28 +#: desktop/org.gnome.Geary.appdata.xml.in.in:29 msgid "Quick email account setup" msgstr "Configuració de comptes de correu electrònic" -#: desktop/org.gnome.Geary.appdata.xml.in:29 +#: desktop/org.gnome.Geary.appdata.xml.in.in:30 msgid "Shows related messages together in conversations" msgstr "Mostra missatges relacionats junts en converses" -#: desktop/org.gnome.Geary.appdata.xml.in:30 +#: desktop/org.gnome.Geary.appdata.xml.in.in:31 msgid "Fast, full text and keyword search" msgstr "Ràpid, text complet i recerca per paraula clau" -#: desktop/org.gnome.Geary.appdata.xml.in:31 +#: desktop/org.gnome.Geary.appdata.xml.in.in:32 msgid "Full-featured HTML and plain text message composer" msgstr "HTML amb totes les funcions i redacció de missatge de text" -#: desktop/org.gnome.Geary.appdata.xml.in:32 +#: desktop/org.gnome.Geary.appdata.xml.in.in:33 msgid "Desktop notification of new mail" msgstr "Notificació a l'escriptori quan arribi correu nou" -#: desktop/org.gnome.Geary.appdata.xml.in:33 +#: desktop/org.gnome.Geary.appdata.xml.in.in:34 msgid "Compatible with GMail, Yahoo! Mail, Outlook.com and other IMAP servers" msgstr "" "Compatible amb GMail, Yahoo! Mail, Outlook.com i d'altres servidors IMAP" #. Translators: A screenshot description. -#: desktop/org.gnome.Geary.appdata.xml.in:47 +#: desktop/org.gnome.Geary.appdata.xml.in.in:48 msgid "Geary displaying a conversation" msgstr "Geary mostrant una conversa" #. Translators: A screenshot description. -#: desktop/org.gnome.Geary.appdata.xml.in:58 +#: desktop/org.gnome.Geary.appdata.xml.in.in:59 msgid "Geary showing the rich text composer" msgstr "Geary mostrant l'editor de text enriquit" #. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon. -#: desktop/org.gnome.Geary.desktop.in:7 +#: desktop/org.gnome.Geary.desktop.in.in:7 msgid "Mail;E-mail;IMAP;GMail;Yahoo;Hotmail;Outlook;" msgstr "Mail;E-mail;IMAP;GMail;Yahoo;Hotmail;Outlook;" -#: desktop/org.gnome.Geary.desktop.in:21 +#: desktop/org.gnome.Geary.desktop.in.in:22 msgid "Compose Message" msgstr "Redacta un missatge" +#: desktop/org.gnome.Geary.desktop.in.in:26 +msgid "New Window" +msgstr "Finestra nova" + #: desktop/org.gnome.Geary.gschema.xml:8 msgid "Maximize window" msgstr "Maximitza la finestra" #: desktop/org.gnome.Geary.gschema.xml:9 msgid "True if the application window is maximized, false otherwise." -msgstr "" -"Cert si la finestra d'aplicació està maximitzada, fals en cas contrari." +msgstr "Cert si la finestra d'aplicació està maximitzada, fals en cas contrari." #: desktop/org.gnome.Geary.gschema.xml:14 msgid "Width of window" @@ -167,8 +172,7 @@ msgid "Position of folder list pane when horizontal" msgstr "Posició del plafó de la llista de carpetes quan és horitzontal" #: desktop/org.gnome.Geary.gschema.xml:33 -msgid "" -"Position of the folder list Paned grabber in the horizontal orientation." +msgid "Position of the folder list Paned grabber in the horizontal orientation." msgstr "" "Posició del capturador de la llista de carpetes en orientació horitzontal." @@ -178,8 +182,7 @@ msgstr "Posició del plafó de la llista de carpetes quan és vertical" #: desktop/org.gnome.Geary.gschema.xml:39 msgid "Position of the folder list Paned grabber in the vertical orientation." -msgstr "" -"Posició del capturador de la llista de carpetes en orientació vertical." +msgstr "Posició del capturador de la llista de carpetes en orientació vertical." #: desktop/org.gnome.Geary.gschema.xml:44 msgid "Orientation of the folder list pane" @@ -187,49 +190,67 @@ msgstr "Orientació del plafó de la llista de carpetes" #: desktop/org.gnome.Geary.gschema.xml:45 msgid "True if the folder list Paned is in the horizontal orientation." -msgstr "" -"Cert si l'orientació del plafó de la llista de carpetes és horitzontal." +msgstr "Cert si l'orientació del plafó de la llista de carpetes és horitzontal." #: desktop/org.gnome.Geary.gschema.xml:50 +msgid "Show/hide formatting toolbar" +msgstr "Mostra o amaga la barra de format" + +#: desktop/org.gnome.Geary.gschema.xml:51 +msgid "True if the formatting toolbar in the composer is shown." +msgstr "" + +#: desktop/org.gnome.Geary.gschema.xml:56 msgid "Position of message list pane" msgstr "Posició del plafó de la llista de missatges" -#: desktop/org.gnome.Geary.gschema.xml:51 +#: desktop/org.gnome.Geary.gschema.xml:57 msgid "Position of the message list Paned grabber." msgstr "Posició del capturador de la llista de missatges." -#: desktop/org.gnome.Geary.gschema.xml:56 +#: desktop/org.gnome.Geary.gschema.xml:62 msgid "Autoselect next message" msgstr "Autoselecciona el missatge següent" -#: desktop/org.gnome.Geary.gschema.xml:57 +#: desktop/org.gnome.Geary.gschema.xml:63 msgid "True if we should autoselect the next available conversation." msgstr "" -"Cert si hem de seleccionar de forma automàtica la següent conversa " -"disponible." +"Cert si hem de seleccionar de forma automàtica la següent conversa disponible." -#: desktop/org.gnome.Geary.gschema.xml:62 +#: desktop/org.gnome.Geary.gschema.xml:68 msgid "Display message previews" msgstr "Mostra la vista prèvia del missatge" -#: desktop/org.gnome.Geary.gschema.xml:63 +#: desktop/org.gnome.Geary.gschema.xml:69 msgid "True if we should display a short preview of each message." msgstr "Cert si s'ha de mostrar una vista prèvia curta de cada missatge." -#: desktop/org.gnome.Geary.gschema.xml:68 +#: desktop/org.gnome.Geary.gschema.xml:74 +msgid "Use single key shortcuts" +msgstr "Usa només les dreceres d'una tecla" + +#: desktop/org.gnome.Geary.gschema.xml:75 +msgid "" +"Enables shortcuts for email actions that do not require pressing to " +"emulate those used by Gmail." +msgstr "" + +#: desktop/org.gnome.Geary.gschema.xml:82 msgid "Languages that shall be used in the spell checker" msgstr "Idiomes que s'usaran en el corrector ortogràfic" -#: desktop/org.gnome.Geary.gschema.xml:69 -msgid "List of the languages to use in the spell checker." -msgstr "Llista d'idiomes a usar amb el corrector ortogràfic." +#: desktop/org.gnome.Geary.gschema.xml:83 +msgid "" +"A list of POSIX locales, with the empty list disabling spell checking and the " +"null list using desktop languages by default." +msgstr "" -#: desktop/org.gnome.Geary.gschema.xml:74 +#: desktop/org.gnome.Geary.gschema.xml:90 msgid "Languages that are displayed in the spell checker popover" msgstr "" "Idiomes que es mostraran a la finestra emergent del corrector ortogràfic" -#: desktop/org.gnome.Geary.gschema.xml:75 +#: desktop/org.gnome.Geary.gschema.xml:91 msgid "" "List of languages that are always displayed in the popover of the spell " "checker." @@ -237,105 +258,109 @@ msgstr "" "Llista d’idiomes que sempre es mostren a la finestra emergent del corrector " "ortogràfic." -#: desktop/org.gnome.Geary.gschema.xml:80 -msgid "Enable notification sounds" -msgstr "Habilita les notificacions amb so" - -#: desktop/org.gnome.Geary.gschema.xml:81 -msgid "True to play sounds for notifications and sending." -msgstr "Cert per executar i enviar sons per a notificacions." - -#: desktop/org.gnome.Geary.gschema.xml:86 -msgid "Show notifications for new mail" -msgstr "Mostra les notificacions quan arribi correu nou" - -#: desktop/org.gnome.Geary.gschema.xml:87 -msgid "True to show notification bubbles." -msgstr "Cert per mostrar globus amb notificacions." - -#: desktop/org.gnome.Geary.gschema.xml:92 +#: desktop/org.gnome.Geary.gschema.xml:96 msgid "Notify of new mail at startup" msgstr "Notifica'm el correu nou a l'inici" -#: desktop/org.gnome.Geary.gschema.xml:93 +#: desktop/org.gnome.Geary.gschema.xml:97 msgid "True to notify of new mail at startup." msgstr "Cert per notificar l'arribada d'un correu nou a l'inici." -#: desktop/org.gnome.Geary.gschema.xml:98 +#: desktop/org.gnome.Geary.gschema.xml:102 msgid "Ask when opening an attachment" msgstr "Pregunteu quan obriu un fitxer adjunt" -#: desktop/org.gnome.Geary.gschema.xml:99 +#: desktop/org.gnome.Geary.gschema.xml:103 msgid "True to ask when opening an attachment." msgstr "Cert per preguntar quan s'obri un fitxer adjunt." -#: desktop/org.gnome.Geary.gschema.xml:104 +#: desktop/org.gnome.Geary.gschema.xml:108 msgid "Whether to compose emails in HTML" msgstr "Si es vol redactar missatges de correu electrònic en HTML" -#: desktop/org.gnome.Geary.gschema.xml:105 +#: desktop/org.gnome.Geary.gschema.xml:109 msgid "True to compose emails in HTML; false for plain text." msgstr "" "Cert si voleu redactar correus electrònics en HTML; fals si useu text pla." -#: desktop/org.gnome.Geary.gschema.xml:110 +#: desktop/org.gnome.Geary.gschema.xml:114 msgid "Advisory strategy for full-text searching" msgstr "Estratègia d'assessorament per a la cerca de text complet" -#: desktop/org.gnome.Geary.gschema.xml:111 +#: desktop/org.gnome.Geary.gschema.xml:115 msgid "" "Acceptable values are “exact”, “conservative”, “aggressive”, and “horizon”." -msgstr "" -"Són valors acceptables «exacte», «conservador», «agressiu», i «neutre»." +msgstr "Són valors acceptables «exacte», «conservador», «agressiu», i «neutre»." -#: desktop/org.gnome.Geary.gschema.xml:116 +#: desktop/org.gnome.Geary.gschema.xml:120 msgid "Zoom of conversation viewer" msgstr "Amplia/redueix el visor de la conversa" -#: desktop/org.gnome.Geary.gschema.xml:117 +#: desktop/org.gnome.Geary.gschema.xml:121 msgid "The zoom to apply on the conservation view." -msgstr "L'amplificació/reducció per aplicar al visualitzador de la conversa." +msgstr "L'amplificació/reducció per a aplicar a la visualitació de la conversa." -#: desktop/org.gnome.Geary.gschema.xml:122 +#: desktop/org.gnome.Geary.gschema.xml:126 msgid "Size of detached composer window" msgstr "Mida de la finestra separada de l'editor" -#: desktop/org.gnome.Geary.gschema.xml:123 +#: desktop/org.gnome.Geary.gschema.xml:127 msgid "The last recorded size of the detached composer window." msgstr "El darrer registre de la mida de la finestra separada de l'editor." -#: desktop/org.gnome.Geary.gschema.xml:128 +#: desktop/org.gnome.Geary.gschema.xml:132 +#, fuzzy +#| msgid "Error sending email" +msgid "Undo sending email delay" +msgstr "Error en l'enviament de correu electrònic" + +#: desktop/org.gnome.Geary.gschema.xml:133 +msgid "" +"The number of seconds to wait before sending an email. Set to zero or less to " +"disable." +msgstr "" + +#: desktop/org.gnome.Geary.gschema.xml:139 +msgid "Brief notification display time" +msgstr "Temps per a mostrar una notificació breu" + +#: desktop/org.gnome.Geary.gschema.xml:140 +msgid "" +"The length of time in seconds for which brief notifications should be " +"displayed." +msgstr "" + +#: desktop/org.gnome.Geary.gschema.xml:146 msgid "Whether we migrated the old settings" msgstr "Si hem de migrar els paràmetres antics" -#: desktop/org.gnome.Geary.gschema.xml:129 -msgid "" -"False to check for the old “org.yorba.geary”-schema and copy its values." +#: desktop/org.gnome.Geary.gschema.xml:147 +msgid "False to check for the old “org.yorba.geary”-schema and copy its values." msgstr "" -"Fals per comprovar l'antic «org.yorba.geary» -schema i copiar els seus " +"Fals per a comprovar l'antic «org.yorba.geary» -schema i copiar els seus " "valors." #. Translators: In-app notification label, when #. the app had a problem pinning an otherwise #. untrusted TLS certificate -#: src/client/accounts/accounts-editor.vala:203 +#: src/client/accounts/accounts-editor.vala:210 msgid "Failed to store certificate" msgstr "Ha fallat l'emmagatzematge del certificat" #. Translators: Label for adding an email account #. account for a generic IMAP service provider. -#: src/client/accounts/accounts-editor-add-pane.vala:109 +#: src/client/accounts/accounts-editor-add-pane.vala:108 msgid "All others" msgstr "Tots els altres" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:196 +#: src/client/accounts/accounts-editor-add-pane.vala:195 #: src/client/accounts/accounts-editor-servers-pane.vala:316 msgid "Check your receiving login and password" msgstr "Comproveu la recepció de l'usuari i la contrasenya" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:211 +#: src/client/accounts/accounts-editor-add-pane.vala:210 #: src/client/accounts/accounts-editor-servers-pane.vala:329 msgid "Check your receiving server details" msgstr "Comproveu la recepció dels detalls del servidor" @@ -345,51 +370,51 @@ msgstr "Comproveu la recepció dels detalls del servidor" #. succeeded, so the user probably needs to #. specify custom creds here #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:233 +#: src/client/accounts/accounts-editor-add-pane.vala:232 #: src/client/accounts/accounts-editor-servers-pane.vala:350 msgid "Check your sending login and password" msgstr "Comproveu l'usuari i contrasenya enviats" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:247 +#: src/client/accounts/accounts-editor-add-pane.vala:246 #: src/client/accounts/accounts-editor-servers-pane.vala:363 msgid "Check your sending server details" msgstr "Comproveu els detalls del servidor enviats" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:262 +#: src/client/accounts/accounts-editor-add-pane.vala:261 msgid "Check your email address and password" msgstr "Comproveu la vostra adreça de correu i la contrasenya" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:273 +#: src/client/accounts/accounts-editor-add-pane.vala:272 msgid "Could not connect, check your network" msgstr "No s'ha pogut fer la connexió, comproveu la vostra xarxa" #. Translators: In-app notification label for a #. generic error creating an account -#: src/client/accounts/accounts-editor-add-pane.vala:286 +#: src/client/accounts/accounts-editor-add-pane.vala:285 msgid "An unexpected problem occurred" msgstr "Ha succeït un problema inesperat" #. Translators: In-app notification label, the #. string substitution is a more detailed reason. -#: src/client/accounts/accounts-editor-add-pane.vala:304 +#: src/client/accounts/accounts-editor-add-pane.vala:303 #, c-format msgid "Account not created: %s" msgstr "Compte no creat: %s" #. Translators: Label for the person's actual name when adding #. an account -#: src/client/accounts/accounts-editor-add-pane.vala:551 +#: src/client/accounts/accounts-editor-add-pane.vala:558 msgid "Your name" msgstr "El vostre nom" #. Translators: Label used for the address part of an #. email address when editing a user's sender address #. preferences for an account. -#: src/client/accounts/accounts-editor-add-pane.vala:568 -#: src/client/accounts/accounts-editor-edit-pane.vala:501 +#: src/client/accounts/accounts-editor-add-pane.vala:575 +#: src/client/accounts/accounts-editor-edit-pane.vala:513 msgid "Email address" msgstr "Adreça de correu electrònic" @@ -398,8 +423,8 @@ msgstr "Adreça de correu electrònic" #. Translators: This is used as a placeholder for the #. address part of an email address when editing a user's #. sender address preferences for an account. -#: src/client/accounts/accounts-editor-add-pane.vala:571 -#: src/client/accounts/accounts-editor-edit-pane.vala:469 +#: src/client/accounts/accounts-editor-add-pane.vala:579 +#: src/client/accounts/accounts-editor-edit-pane.vala:479 msgid "person@example.com" msgstr "correu_personal@exemple.com" @@ -407,15 +432,15 @@ msgstr "correu_personal@exemple.com" #. when adding an account #. Translators: Label for the user's login name for an #. IMAP, SMTP, etc service -#: src/client/accounts/accounts-editor-add-pane.vala:585 -#: src/client/accounts/accounts-editor-servers-pane.vala:880 +#: src/client/accounts/accounts-editor-add-pane.vala:593 +#: src/client/accounts/accounts-editor-servers-pane.vala:884 msgid "Login name" msgstr "Nom d'usuari" #. Translators: Label for the user's password for an IMAP, #. SMTP, etc service -#: src/client/accounts/accounts-editor-add-pane.vala:599 -#: src/client/accounts/accounts-editor-servers-pane.vala:999 +#: src/client/accounts/accounts-editor-add-pane.vala:607 +#: src/client/accounts/accounts-editor-servers-pane.vala:1006 #: ui/password-dialog.glade:108 msgid "Password" msgstr "Contrasenya" @@ -424,14 +449,14 @@ msgstr "Contrasenya" #. adding an account. #. Translators: This label describes the host name or IP #. address and port used by an account's IMAP service. -#: src/client/accounts/accounts-editor-add-pane.vala:621 -#: src/client/accounts/accounts-editor-servers-pane.vala:727 +#: src/client/accounts/accounts-editor-add-pane.vala:629 +#: src/client/accounts/accounts-editor-servers-pane.vala:728 msgid "IMAP server" msgstr "Servidor IMAP" #. Translators: Placeholder for the IMAP server hostname #. when adding an account. -#: src/client/accounts/accounts-editor-add-pane.vala:624 +#: src/client/accounts/accounts-editor-add-pane.vala:632 msgid "imap.example.com" msgstr "imap.exemple.com" @@ -439,20 +464,20 @@ msgstr "imap.exemple.com" #. adding an account. #. Translators: This label describes the host name or IP #. address and port used by an account's SMTP service. -#: src/client/accounts/accounts-editor-add-pane.vala:630 -#: src/client/accounts/accounts-editor-servers-pane.vala:733 +#: src/client/accounts/accounts-editor-add-pane.vala:638 +#: src/client/accounts/accounts-editor-servers-pane.vala:734 msgid "SMTP server" msgstr "Servidor SMTP" #. Translators: Placeholder for the SMTP server hostname #. when adding an account. -#: src/client/accounts/accounts-editor-add-pane.vala:633 +#: src/client/accounts/accounts-editor-add-pane.vala:641 msgid "smtp.example.com" msgstr "smtp.exemple.com" #. Translators: Label in the account editor for the user's #. custom name for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:278 +#: src/client/accounts/accounts-editor-edit-pane.vala:277 #: ui/accounts_editor_remove_pane.ui:123 msgid "Account name" msgstr "Nom del compte" @@ -461,46 +486,46 @@ msgstr "Nom del compte" #. the name of an account. The string #. substitution is the old name of the #. account. -#: src/client/accounts/accounts-editor-edit-pane.vala:312 +#: src/client/accounts/accounts-editor-edit-pane.vala:318 #, c-format msgid "Change account name back to “%s”" msgstr "Torna a canviar el nom del compte a «%s»" #. Translators: Tooltip for adding a new email sender/from #. address's address to an account -#: src/client/accounts/accounts-editor-edit-pane.vala:336 +#: src/client/accounts/accounts-editor-edit-pane.vala:342 msgid "Add a new sender email address" msgstr "Afegeix una adreça nova de correu electrònic del remitent" #. Translators: Label used to indicate the user has #. provided no display name for one of their sender #. email addresses in their account settings. -#: src/client/accounts/accounts-editor-edit-pane.vala:417 +#: src/client/accounts/accounts-editor-edit-pane.vala:423 msgid "Name not set" msgstr "Nom no configurat" #. Translators: This is used as a placeholder for the #. display name for an email address when editing a user's #. sender address preferences for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:456 +#: src/client/accounts/accounts-editor-edit-pane.vala:464 msgid "Sender Name" msgstr "Nom del remitent" -#: src/client/accounts/accounts-editor-edit-pane.vala:479 +#: src/client/accounts/accounts-editor-edit-pane.vala:491 msgid "Remove" msgstr "Suprimeix" #. Translators: Label used for the display name part of an #. email address when editing a user's sender address #. preferences for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:494 +#: src/client/accounts/accounts-editor-edit-pane.vala:506 msgid "Sender name" msgstr "Nom del remitent" #. Translators: Label used as the undo tooltip after adding an #. new sender email address to an account. The string #. substitution is the email address added. -#: src/client/accounts/accounts-editor-edit-pane.vala:561 +#: src/client/accounts/accounts-editor-edit-pane.vala:573 #, c-format msgid "Remove “%s”" msgstr "Suprimeix «%s»" @@ -508,7 +533,7 @@ msgstr "Suprimeix «%s»" #. Translators: Label used as the undo tooltip after editing a #. sender address for an account. The string substitution is #. the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:601 +#: src/client/accounts/accounts-editor-edit-pane.vala:613 #, c-format msgid "Undo changes to “%s”" msgstr "Desfés els canvis a «%s»" @@ -516,7 +541,7 @@ msgstr "Desfés els canvis a «%s»" #. Translators: Label used as the undo tooltip after removing #. a sender address from an account. The string substitution #. is the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:688 +#: src/client/accounts/accounts-editor-edit-pane.vala:700 #, c-format msgid "Add “%s” back" msgstr "Afegiu de nou «%s»" @@ -524,14 +549,14 @@ msgstr "Afegiu de nou «%s»" #. Translators: Label used as the undo tooltip after removing #. a sender address from an account. The string substitution #. is the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:730 +#: src/client/accounts/accounts-editor-edit-pane.vala:742 msgid "Undo signature changes" msgstr "Desfés els canvis de signatura" #. Translators: This label describes the account #. preference for the length of time (weeks, months or #. years) that past email should be downloaded. -#: src/client/accounts/accounts-editor-edit-pane.vala:778 +#: src/client/accounts/accounts-editor-edit-pane.vala:790 msgid "Download mail" msgstr "Baixa els missatges" @@ -540,98 +565,100 @@ msgstr "Baixa els missatges" #. should be downloaded for an account. The #. string substitution is the duration, #. e.g. "1 month back". -#: src/client/accounts/accounts-editor-edit-pane.vala:810 +#: src/client/accounts/accounts-editor-edit-pane.vala:822 #, c-format msgid "Change download period back to: %s" msgstr "Canvia el període del correu rebut a baixar de nou: %s" -#: src/client/accounts/accounts-editor-edit-pane.vala:831 +#: src/client/accounts/accounts-editor-edit-pane.vala:843 msgid "Everything" msgstr "Tot" -#: src/client/accounts/accounts-editor-edit-pane.vala:835 +#: src/client/accounts/accounts-editor-edit-pane.vala:847 msgid "2 weeks back" msgstr "Fa 2 setmanes" -#: src/client/accounts/accounts-editor-edit-pane.vala:839 +#: src/client/accounts/accounts-editor-edit-pane.vala:851 msgid "1 month back" msgstr "Fa 1 mes" -#: src/client/accounts/accounts-editor-edit-pane.vala:843 +#: src/client/accounts/accounts-editor-edit-pane.vala:855 msgid "3 months back" msgstr "Fa 3 mesos" -#: src/client/accounts/accounts-editor-edit-pane.vala:847 +#: src/client/accounts/accounts-editor-edit-pane.vala:859 msgid "6 months back" msgstr "Fa 6 mesos" -#: src/client/accounts/accounts-editor-edit-pane.vala:851 +#: src/client/accounts/accounts-editor-edit-pane.vala:863 msgid "1 year back" msgstr "Fa 1 any" -#: src/client/accounts/accounts-editor-edit-pane.vala:855 +#: src/client/accounts/accounts-editor-edit-pane.vala:867 msgid "2 years back" msgstr "Fa 2 anys" -#: src/client/accounts/accounts-editor-edit-pane.vala:859 +#: src/client/accounts/accounts-editor-edit-pane.vala:871 msgid "4 years back" msgstr "Fa 4 anys" -#: src/client/accounts/accounts-editor-edit-pane.vala:865 +#: src/client/accounts/accounts-editor-edit-pane.vala:877 #, c-format msgid "%d day back" msgid_plural "%d days back" msgstr[0] "%d dia enrere" msgstr[1] "%d dies enrere" -#: src/client/accounts/accounts-editor-list-pane.vala:243 +#: src/client/accounts/accounts-editor-list-pane.vala:255 +#: src/client/application/application-main-window.vala:2053 msgid "Undo" msgstr "Desfés" -#: src/client/accounts/accounts-editor-list-pane.vala:251 +#: src/client/accounts/accounts-editor-list-pane.vala:264 +#: src/client/application/application-main-window.vala:2036 msgid "Redo" msgstr "Refés" -#: src/client/accounts/accounts-editor-list-pane.vala:345 -#: src/client/accounts/accounts-editor-list-pane.vala:433 -#: src/client/accounts/accounts-editor-row.vala:278 +#: src/client/accounts/accounts-editor-list-pane.vala:358 +#: src/client/accounts/accounts-editor-list-pane.vala:446 +#: src/client/accounts/accounts-editor-row.vala:279 msgid "Gmail" msgstr "Gmail" -#: src/client/accounts/accounts-editor-list-pane.vala:349 -#: src/client/accounts/accounts-editor-list-pane.vala:437 -#: src/client/accounts/accounts-editor-row.vala:282 +#: src/client/accounts/accounts-editor-list-pane.vala:362 +#: src/client/accounts/accounts-editor-list-pane.vala:450 +#: src/client/accounts/accounts-editor-row.vala:283 msgid "Outlook.com" msgstr "Outlook.com" -#: src/client/accounts/accounts-editor-list-pane.vala:353 -#: src/client/accounts/accounts-editor-list-pane.vala:441 -#: src/client/accounts/accounts-editor-row.vala:286 +#: src/client/accounts/accounts-editor-list-pane.vala:366 +#: src/client/accounts/accounts-editor-list-pane.vala:454 +#: src/client/accounts/accounts-editor-row.vala:287 msgid "Yahoo" msgstr "Yahoo" #. Translators: Tooltip for accounts that have been #. loaded but disabled by the user. -#: src/client/accounts/accounts-editor-list-pane.vala:371 +#: src/client/accounts/accounts-editor-list-pane.vala:384 msgid "This account has been disabled" msgstr "Aquest compte ha estat inhabilitat" #. Translators: Tooltip for accounts that have been #. loaded but because of some error are not able to be #. used. -#: src/client/accounts/accounts-editor-list-pane.vala:380 +#: src/client/accounts/accounts-editor-list-pane.vala:393 msgid "This account has encountered a problem and is unavailable" msgstr "Aquest compte té un problema i no està disponible" #. Translators: Label for adding a generic email account -#: src/client/accounts/accounts-editor-list-pane.vala:430 +#: src/client/accounts/accounts-editor-list-pane.vala:443 msgid "Other email providers" msgstr "Altres proveïdors de correu" #. Translators: Notification shown after removing an #. account. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:547 +#: src/client/accounts/accounts-editor-list-pane.vala:560 #, c-format msgid "Account “%s” removed" msgstr "El compte «%s» ha estat eliminat" @@ -639,44 +666,44 @@ msgstr "El compte «%s» ha estat eliminat" #. Translators: Notification shown after removing an account #. is undone. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:554 +#: src/client/accounts/accounts-editor-list-pane.vala:567 #, c-format msgid "Account “%s” restored" msgstr "El compte «%s» ha estat restaurat" #. Translators: Tooltip for dragging list items -#: src/client/accounts/accounts-editor-row.vala:49 +#: src/client/accounts/accounts-editor-row.vala:50 msgid "Drag to move this item" -msgstr "Arrossega per moure aquest element" +msgstr "Arrossega per a moure aquest element" #. Translators: Label describes the service provider #. hosting the email account, e.g. Gmail, Yahoo, or some #. other generic IMAP service. -#: src/client/accounts/accounts-editor-row.vala:294 +#: src/client/accounts/accounts-editor-row.vala:295 msgid "Service provider" msgstr "Proveïdor de servei" #. Translators: This label describes what form of transport #. security (TLS, StartTLS, etc) used by an account's IMAP or SMTP #. service. -#: src/client/accounts/accounts-editor-row.vala:467 +#: src/client/accounts/accounts-editor-row.vala:468 msgid "Connection security" msgstr "Seguretat de la connexió" #. Translators: Label used when no auth scheme is used #. by an account's IMAP or SMTP service. -#: src/client/accounts/accounts-editor-row.vala:478 -#: src/client/accounts/accounts-editor-servers-pane.vala:752 -#: src/client/accounts/accounts-editor-servers-pane.vala:964 +#: src/client/accounts/accounts-editor-row.vala:479 +#: src/client/accounts/accounts-editor-servers-pane.vala:755 +#: src/client/accounts/accounts-editor-servers-pane.vala:970 #: src/engine/api/geary-special-folder-type.vala:58 msgid "None" msgstr "Cap" -#: src/client/accounts/accounts-editor-row.vala:485 +#: src/client/accounts/accounts-editor-row.vala:486 msgid "StartTLS" msgstr "StartTLS" -#: src/client/accounts/accounts-editor-row.vala:492 +#: src/client/accounts/accounts-editor-row.vala:493 msgid "TLS" msgstr "TLS" @@ -684,28 +711,29 @@ msgstr "TLS" #. credentials (none, use IMAP, custom) when adding a new #. account #. Button label for retrying when a login error has occurred -#: src/client/accounts/accounts-editor-row.vala:533 ui/main-window.ui:455 +#: src/client/accounts/accounts-editor-row.vala:534 +#: ui/application-main-window.ui:346 msgid "Login" msgstr "Nom d'usuari" #. Translators: ComboBox value for source of SMTP #. authentication credentials (none) when adding a new #. account -#: src/client/accounts/accounts-editor-row.vala:540 +#: src/client/accounts/accounts-editor-row.vala:541 msgid "No login needed" msgstr "No s’ha d'iniciar sessió" #. Translators: ComboBox value for source of SMTP #. authentication credentials (use IMAP) when adding a new #. account -#: src/client/accounts/accounts-editor-row.vala:548 +#: src/client/accounts/accounts-editor-row.vala:549 msgid "Use same login as receiving" msgstr "Usa el mateix nom d'usuari que en la recepció" #. Translators: ComboBox value for source of SMTP #. authentication credentials (custom) when adding a new #. account -#: src/client/accounts/accounts-editor-row.vala:556 +#: src/client/accounts/accounts-editor-row.vala:557 msgid "Use a different login" msgstr "Useu un nom d'usuari diferent" @@ -730,8 +758,8 @@ msgstr "Comptes en línia GNOME" #. Translators: This label describes an account #. preference. #: src/client/accounts/accounts-editor-servers-pane.vala:611 -msgid "Save drafts on server" -msgstr "Desa els esborranys al servidor" +msgid "Save draft email on server" +msgstr "Desa l'esborrany del missatge al servidor" #. Translators: This label describes an account #. preference. @@ -744,28 +772,189 @@ msgstr "Desa els missatges enviats al servidor" #. Translators: Label used when an account's IMAP or #. SMTP service uses OAuth2. The string replacement is #. the service's login name. -#: src/client/accounts/accounts-editor-servers-pane.vala:950 +#: src/client/accounts/accounts-editor-servers-pane.vala:956 #, c-format msgid "%s using OAuth2" msgstr "%s està emprant OAuth2" -#: src/client/accounts/accounts-editor-servers-pane.vala:960 +#: src/client/accounts/accounts-editor-servers-pane.vala:966 msgid "Use receiving server login" msgstr "Utilitza el nom d'usuari del servidor de recepció" -#: src/client/application/geary-application.vala:24 +#. Translators: File name used in save chooser when saving +#. attachments that do not otherwise have a name. +#: src/client/application/application-attachment-manager.vala:21 +msgid "Untitled" +msgstr "Sense títol" + +#. / Translators: Dialog primary label when prompting to +#. / overwrite a file. The string substitution is the file'sx +#. / name. +#: src/client/application/application-attachment-manager.vala:222 +#, c-format +msgid "A file named “%s” already exists. Do you want to replace it?" +msgstr "Ja existeix un fitxer anomenat «%s». Voleu reemplaçar-lo?" + +#. / Translators: Dialog secondary label when prompting to +#. / overwrite a file. The string substitution is the parent +#. / folder's name. +#: src/client/application/application-attachment-manager.vala:229 +#, c-format +msgid "" +"The file already exists in “%s”. Replacing it will overwrite its contents." +msgstr "" +"El fitxer ja existeix a «%s». Reemplaçant-lo sobreescriureu el seu contingut." + +#: src/client/application/application-attachment-manager.vala:236 +msgid "_Replace" +msgstr "_Reemplaça" + +#: src/client/application/application-client.vala:33 msgid "Copyright 2016 Software Freedom Conservancy Inc." msgstr "Copyright 2016 Software Freedom Conservancy Inc." -#: src/client/application/geary-application.vala:25 +#: src/client/application/application-client.vala:34 msgid "Copyright 2016-2019 Geary Development Team." msgstr "Copyright 2016-2019 equip de desenvolupament del Geary." -#: src/client/application/geary-application.vala:27 +#: src/client/application/application-client.vala:36 msgid "Visit the Geary web site" msgstr "Visiteu el lloc web de Geary" -#: src/client/application/geary-application.vala:454 +#. / Command line option +#: src/client/application/application-client.vala:94 +msgid "Print debug logging" +msgstr "Imprimeix el registre de depuració" + +#. / Command line option +#: src/client/application/application-client.vala:97 +msgid "Start with the main window hidden (deprecated)" +msgstr "Comença amb la finestra principal oculta (obsolet)" + +#. / Command line option +#: src/client/application/application-client.vala:100 +msgid "Enable WebKitGTK Inspector in web views" +msgstr "Habilita l'inspector WebKitGTK a les vistes web" + +#. / Command line option +#: src/client/application/application-client.vala:103 +msgid "Log conversation monitoring" +msgstr "Registra el seguiment de les converses" + +#. / Command line option +#: src/client/application/application-client.vala:106 +msgid "Log IMAP network deserialization" +msgstr "Registra la deserialització de xarxa IMAP" + +#. / Command line option. "Normalization" can also be called +#. / "synchronization". +#: src/client/application/application-client.vala:110 +msgid "Log folder normalization" +msgstr "Registra la normalització de carpetes" + +#. / Command line option +#: src/client/application/application-client.vala:113 +msgid "Log network activity" +msgstr "Registra l'activitat de xarxa" + +#. / Command line option +#: src/client/application/application-client.vala:116 +msgid "Log periodic activity" +msgstr "Registra l'activitat periòdica" + +#. / Command line option. The IMAP replay queue is how changes +#. / on the server are replicated on the client. It could +#. / also be called the IMAP events queue. +#: src/client/application/application-client.vala:121 +msgid "Log IMAP replay queue" +msgstr "Registra la cua de reproducció IMAP" + +#. / Command line option. Serialization is how commands and +#. / responses are converted into a stream of bytes for +#. / network transmission +#: src/client/application/application-client.vala:126 +msgid "Log IMAP network serialization" +msgstr "Registra la serialització de xarxa d'IMAP" + +#. / Command line option +#: src/client/application/application-client.vala:129 +msgid "Log database queries (generates lots of messages)" +msgstr "Registra les consultes a la base de dades (genera molts missatges)" + +#. / Command line option +#: src/client/application/application-client.vala:132 +msgid "Perform a graceful quit" +msgstr "Realitza la sortida amb èxit" + +#: src/client/application/application-client.vala:134 +msgid "Open a new window" +msgstr "Obre una finestra nova" + +#. / Command line option +#: src/client/application/application-client.vala:137 +#, fuzzy +#| msgid "Revoke all server certificates with TLS warnings" +msgid "Revoke all pinned TLS server certificates" +msgstr "Revoca tots els certificats del servidor amb advertències TLS" + +#. / Command line option +#: src/client/application/application-client.vala:140 +msgid "Display program version" +msgstr "Mostra la versió del programa" + +#. / Application runtime information label +#: src/client/application/application-client.vala:264 +msgid "Geary version" +msgstr "Versió del Geary" + +#. / Application runtime information label +#: src/client/application/application-client.vala:266 +msgid "Geary revision" +msgstr "Revisió del Geary" + +#. / Application runtime information label +#: src/client/application/application-client.vala:268 +msgid "GTK version" +msgstr "Versió de GTK" + +#. / Applciation runtime information label +#: src/client/application/application-client.vala:275 +msgid "GLib version" +msgstr "Versió de GLib" + +#. / Application runtime information label +#: src/client/application/application-client.vala:282 +msgid "WebKitGTK version" +msgstr "Versió de WebKitGTK" + +#. / Application runtime information label +#: src/client/application/application-client.vala:289 +msgid "Desktop environment" +msgstr "Entorn d'escriptori" + +#. Translators: This is the file type displayed for +#. attachments with unknown file types. +#: src/client/application/application-client.vala:291 +#: src/client/components/components-attachment-pane.vala:91 +msgid "Unknown" +msgstr "Desconegut" + +#. / Application runtime information label +#: src/client/application/application-client.vala:321 +msgid "Distribution name" +msgstr "Nom de la distribució" + +#. / Application runtime information label +#: src/client/application/application-client.vala:326 +msgid "Distribution release" +msgstr "Versió de la distribució " + +#. / Application runtime information label +#: src/client/application/application-client.vala:334 +msgid "Installation prefix" +msgstr "Prefix d'instal·lació" + +#: src/client/application/application-client.vala:587 #, c-format msgid "About %s" msgstr "Quant al %s" @@ -773,115 +962,135 @@ msgstr "Quant al %s" #. Translators: add your name and email address to receive #. credit in the About dialog For example: Yamada Taro #. -#: src/client/application/geary-application.vala:458 +#: src/client/application/application-client.vala:591 msgid "translator-credits" msgstr "" "Martin Steghöfer , 2013\n" "Gerard Bertran , 2017\n" -"Jordi Mas i Hernàndez , 2017\n" +"Jordi Mas i Hernàndez , 2017, 2020\n" "Carles Ferrando Garcia , 2019" -#: src/client/application/geary-args.vala:10 -msgid "Start Geary with hidden main window" -msgstr "Comença Geary amb la finestra principal oculta" +#. / Warning printed to the console when a deprecated +#. / command line option is used. +#: src/client/application/application-client.vala:937 +msgid "The `--hidden` option is deprecated and will be removed in the future." +msgstr "" -#: src/client/application/geary-args.vala:11 -msgid "Output debugging information" -msgstr "Sortida de la informació de depuració" - -#: src/client/application/geary-args.vala:12 -msgid "Log conversation monitoring" -msgstr "Registra el seguiment de les converses" - -#: src/client/application/geary-args.vala:13 -msgid "Log network deserialization" -msgstr "Registra la deserialització de xarxa" - -#: src/client/application/geary-args.vala:14 -msgid "Log network activity" -msgstr "Registra l'activitat de xarxa" - -#. / The IMAP replay queue is how changes on the server are replicated on the client. -#. / It could also be called the IMAP events queue. -#: src/client/application/geary-args.vala:17 -msgid "Log IMAP replay queue" -msgstr "Registra la cua de reproducció IMAP" - -#. / Serialization is how commands and responses are converted into a stream of bytes for -#. / network transmission -#: src/client/application/geary-args.vala:20 -msgid "Log network serialization" -msgstr "Registra la serialització de xarxa" - -#: src/client/application/geary-args.vala:21 -msgid "Log periodic activity" -msgstr "Registra l'activitat periòdica" - -#: src/client/application/geary-args.vala:22 -msgid "Log database queries (generates lots of messages)" -msgstr "Registra les consultes a la base de dades (genera molts missatges)" - -#. / "Normalization" can also be called "synchronization" -#: src/client/application/geary-args.vala:24 -msgid "Log folder normalization" -msgstr "Registra la normalització de carpetes" - -#: src/client/application/geary-args.vala:25 -msgid "Allow inspection of WebView" -msgstr "Permet la inspecció del WebView" - -#: src/client/application/geary-args.vala:26 -msgid "Revoke all server certificates with TLS warnings" -msgstr "Revoca tots els certificats del servidor amb advertències TLS" - -#: src/client/application/geary-args.vala:27 -msgid "Perform a graceful quit" -msgstr "Realitza la sortida amb èxit" - -#: src/client/application/geary-args.vala:28 -msgid "Display program version" -msgstr "Mostra la versió del programa" - -#. This gives a command-line hint on how to open new composer windows with mailto: -#: src/client/application/geary-args.vala:53 +#. / Command line warning, string substitution +#. / is the given argument +#: src/client/application/application-client.vala:970 #, c-format -msgid "Use %s to open a new composer window" -msgstr "Utilitza %s per obrir una nova finestra de l'editor" +msgid "Unrecognised program argument: “%s”" +msgstr "Paràmetre no reconegut: «%s»" -#: src/client/application/geary-args.vala:56 -msgid "Please report comments, suggestions and bugs to:" -msgstr "Envieu comentaris, suggeriments i errors a:" - -#. i18n: Command line arguments are invalid -#: src/client/application/geary-args.vala:63 +#. / Notification title. +#: src/client/application/application-controller.vala:458 #, c-format -msgid "Failed to parse command line options: %s\n" -msgstr "No s'han pogut interpretar les opcions de la línia d'ordres: %s\n" +msgid "A problem occurred sending email for %s" +msgstr "S'ha produït un error en enviar el correu per a %s" -#: src/client/application/geary-args.vala:74 +#. / Notification body +#: src/client/application/application-controller.vala:462 +msgid "Email will not be sent until re-connected" +msgstr "No s'enviarà el correu electrònic fins que us torneu a connectar" + +#. / Translators: Label for in-app notification +#: src/client/application/application-controller.vala:568 +msgid "Conversation marked" +msgid_plural "Conversations marked" +msgstr[0] "S'ha marcat la conversa" +msgstr[1] "S'han marcat les converses" + +#. / Translators: Label for in-app notification +#: src/client/application/application-controller.vala:574 +msgid "Conversation un-marked" +msgid_plural "Conversations un-marked" +msgstr[0] "S'ha desmarcat la conversa" +msgstr[1] "S'han desmarcat les converses" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:600 +#: src/client/application/application-controller.vala:684 #, c-format -msgid "Unrecognized command line option “%s”\n" -msgstr "Opció de la línia d'ordres no reconeguda «%s»\n" +msgid "Conversation moved to %s" +msgid_plural "Conversations moved to %s" +msgstr[0] "S'ha mogut la conversa a %s" +msgstr[1] "S'han mogut les converses a %s" -#. Translators: File name used in save chooser when saving -#. attachments that do not otherwise have a name. -#: src/client/application/geary-controller.vala:58 -msgid "Untitled" -msgstr "Sense títol" +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the source folder. +#. / Translators: Label for in-app notification. String +#. / substitution is the name of the destination folder. +#: src/client/application/application-controller.vala:608 +#: src/client/application/application-controller.vala:630 +#, c-format +msgid "Conversation restored to %s" +msgid_plural "Conversations restored to %s" +msgstr[0] "S'ha restaurat la conversa a %s" +msgstr[1] "S'han restaurat les converses a %s" -#: src/client/application/geary-controller.vala:959 -msgid "Labels" -msgstr "Etiquetes" +#. / Translators: Label for in-app notification. +#: src/client/application/application-controller.vala:651 +msgid "Conversation archived" +msgid_plural "Conversations archived" +msgstr[0] "S'ha arxivat la conversa" +msgstr[1] "S'han arxivat les converses" -#. give the user two options: reset the Account local store, or exit Geary. A third -#. could be done to leave the Account in an unopened state, but we don't currently -#. have provisions for that. -#: src/client/application/geary-controller.vala:972 +#. / Translators: Label for in-app notification. String +#. / substitution is the name of the destination folder. +#: src/client/application/application-controller.vala:707 +#, c-format +msgid "Message restored to %s" +msgid_plural "Messages restored to %s" +msgstr[0] "S'ha restaurat el missatge a %s" +msgstr[1] "S'han restaurat els missatges a %s" + +#. / Translators: Label for in-app notification. +#: src/client/application/application-controller.vala:728 +msgid "Message archived" +msgid_plural "Messages archived" +msgstr[0] "S'ha arxivat el missatge" +msgstr[1] "S'han arxivat el missatges" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:763 +#, c-format +msgid "Message moved to %s" +msgid_plural "Messages moved to %s" +msgstr[0] "S'ha mogut el missatge a %s" +msgstr[1] "S'han mogut els missatges a %s" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:791 +#, c-format +msgid "Conversation labelled as %s" +msgid_plural "Conversations labelled as %s" +msgstr[0] "S'ha etiquetat la conversa com a %s" +msgstr[1] "S'han etiquetat les converses com a %s" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:799 +#, c-format +msgid "Conversation un-labelled as %s" +msgid_plural "Conversations un-labelled as %s" +msgstr[0] "" +msgstr[1] "" + +#: src/client/application/application-controller.vala:1223 #, c-format msgid "Unable to open the database for %s" msgstr "No es pot obrir la base de dades per a %s" -#: src/client/application/geary-controller.vala:973 +#: src/client/application/application-controller.vala:1224 #, c-format msgid "" "There was an error opening the local mail database for this account. This is " @@ -906,20 +1115,20 @@ msgstr "" "La reconstrucció de la base de dades va destruir tot el correu local i els " "seus annexos. El correu al servidor no es veurà afectat." -#: src/client/application/geary-controller.vala:975 +#: src/client/application/application-controller.vala:1226 msgid "_Rebuild" msgstr "_Reconstrueix" -#: src/client/application/geary-controller.vala:975 +#: src/client/application/application-controller.vala:1226 msgid "E_xit" msgstr "_Surt" -#: src/client/application/geary-controller.vala:984 +#: src/client/application/application-controller.vala:1236 #, c-format msgid "Unable to rebuild database for “%s”" msgstr "No es pot reconstruir la base de dades de «%s»" -#: src/client/application/geary-controller.vala:985 +#: src/client/application/application-controller.vala:1237 #, c-format msgid "" "Error during rebuild:\n" @@ -930,15 +1139,112 @@ msgstr "" "\n" "%s" -#: src/client/application/geary-controller.vala:1840 -msgid "Undo move (Ctrl+Z)" -msgstr "Desfés el moviment (Ctrl+Z)" +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:1561 +#, c-format +msgid "Email sent to %s" +msgstr "Correu enviat a %s" -#: src/client/application/geary-controller.vala:1850 +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2656 +#, c-format +msgid "Email to %s queued for delivery" +msgstr "Correu a %s s'ha posat a la cua d'enviament" + +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2720 +#, c-format +msgid "Email to %s saved" +msgstr "Corre a %s desat" + +#. / Translators: A label for an in-app notification. +#: src/client/application/application-controller.vala:2735 +#: src/client/application/application-controller.vala:2793 +msgid "Composer could not be restored" +msgstr "" + +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2778 +#, c-format +msgid "Email to %s discarded" +msgstr "S'ha descartat el correu a %s" + +#. / Translators: Main window title, first string +#. / substitution being the currently selected folder name, +#. / the second being the selected account name. +#: src/client/application/application-main-window.vala:560 +#, c-format +msgid "%s — %s" +msgstr "%s — %s" + +#: src/client/application/application-main-window.vala:967 +msgid "Labels" +msgstr "Etiquetes" + +#. / Translators: Primary text for a confirmation dialog +#: src/client/application/application-main-window.vala:1306 +msgid "Do you want to permanently delete this conversation?" +msgid_plural "Do you want to permanently delete these conversations?" +msgstr[0] "Voleu suprimir aquesta conversa permanentment?" +msgstr[1] "Voleu suprimir aquestes converses permanentment?" + +#: src/client/application/application-main-window.vala:1311 +#: src/client/application/application-main-window.vala:1326 +msgid "Delete" +msgstr "Suprimeix" + +#. / Translators: Primary text for a confirmation dialog +#: src/client/application/application-main-window.vala:1321 +msgid "Do you want to permanently delete this message?" +msgid_plural "Do you want to permanently delete these messages?" +msgstr[0] "Voleu suprimir aquest missatge permanentment?" +msgstr[1] "Voleu suprimir aquests missatges permanentment?" + +#: src/client/application/application-main-window.vala:1334 +#, c-format +msgid "Empty all email from your %s folder?" +msgstr "Buida tot el correu electrònic de la carpeta %s?" + +#: src/client/application/application-main-window.vala:1337 +msgid "This removes the email from Geary and your email server." +msgstr "" +"Això elimina el correu electrònic del Geary i el seu servidor de correu " +"electrònic." + +#: src/client/application/application-main-window.vala:1338 +msgid "This cannot be undone." +msgstr "Això no es pot desfer." + +#: src/client/application/application-main-window.vala:1339 +#, c-format +msgid "Empty %s" +msgstr "Buit %s" + +#: src/client/application/application-main-window.vala:1669 +#, c-format +msgid "%s (%d)" +msgstr "%s (%d)" + +#. Translators: The first argument will be a +#. description of the document type, the second will +#. be a human-friendly size string. For example: +#. Document (100.9MB) +#. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" +#: src/client/components/components-attachment-pane.vala:107 +#: src/client/composer/composer-widget.vala:1834 +#, c-format +msgid "%s (%s)" +msgstr "%s (%s)" + +#: src/client/components/components-attachment-pane.vala:379 msgid "Are you sure you want to open these attachments?" msgstr "Esteu segur que voleu obrir aquests fitxers adjunts?" -#: src/client/application/geary-controller.vala:1851 +#: src/client/components/components-attachment-pane.vala:380 msgid "" "Attachments may cause damage to your system if opened. Only open files from " "trusted sources." @@ -946,375 +1252,231 @@ msgstr "" "Els fitxers adjunts podrien danyar el vostre sistema. Obriu només fitxers de " "fonts fiables." -#: src/client/application/geary-controller.vala:1852 +#: src/client/components/components-attachment-pane.vala:381 msgid "Don’t _ask me again" msgstr "No m'ho tornis a pregunt_ar" -#. Translators: Dialog primary label when prompting to -#. overwrite a file. The string substitution is the file'sx -#. name. -#: src/client/application/geary-controller.vala:1981 -#, c-format -msgid "A file named “%s” already exists. Do you want to replace it?" -msgstr "Ja existeix un fitxer anomenat «%s». Voleu reemplaçar-lo?" +#: src/client/components/components-inspector.vala:72 +msgid "Inspector" +msgstr "Inspector" -#. Translators: Dialog secondary label when prompting to -#. overwrite a file. The string substitution is the parent -#. folder's name. -#: src/client/application/geary-controller.vala:1988 -#, c-format +#. / Translators: Title for Inspector logs pane +#. / Translators: Title for problem report dialog logs pane +#: src/client/components/components-inspector.vala:87 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:102 +msgid "Logs" +msgstr "Registres" + +#. / Translators: Title for Inspector system system information pane +#. / Translators: Title for problem report system information +#. / pane +#: src/client/components/components-inspector.vala:91 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:105 +msgid "System" +msgstr "Sistema" + +#. Button label for saving problem report information +#: src/client/components/components-inspector.vala:208 +#: src/client/components/components-inspector.vala:211 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:221 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:224 +#: ui/problem-details-dialog.ui:42 +msgid "Save As" +msgstr "Desa i anomena..." + +#: src/client/components/components-inspector.vala:212 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:225 +#: ui/accounts_editor_servers_pane.ui:17 +msgid "Cancel" +msgstr "Cancel·la" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:43 +msgid "_Automatically select next message" +msgstr "Selecciona el missatge següent _automàticament" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:53 +msgid "_Display conversation preview" +msgstr "_Mostra la vista prèvia de la conversa" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:63 +msgid "Use _three pane view" +msgstr "Utilitza vista de _tres panells" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:73 +msgid "Use _single key email shortcuts" +msgstr "_Usa només les dreceres d'una tecla" + +#: src/client/components/components-preferences-window.vala:75 msgid "" -"The file already exists in “%s”. Replacing it will overwrite its contents." +"Enable keyboard shortcuts for email actions that do not require pressing " +"" msgstr "" -"El fitxer ja existeix a «%s». Reemplaçant-lo sobreescriureu el seu contingut." -#: src/client/application/geary-controller.vala:1992 -msgid "_Replace" -msgstr "_Reemplaça" +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:86 +msgid "_Watch for new mail when closed" +msgstr "_Vigila si arriba correu nou quan s'ha tancat" -#: src/client/application/geary-controller.vala:2268 -msgid "Close the draft message?" -msgid_plural "Close all draft messages?" -msgstr[0] "Tanca el missatge obert d'esborrany?" -msgstr[1] "Tanca els missatges oberts d'esborranys?" +#. / Translators: Preferences tooltip +#: src/client/components/components-preferences-window.vala:90 +msgid "Geary will keep running after all windows are closed" +msgstr "Geary continuarà funcionant després de tancar totes les finestres" -#: src/client/application/geary-controller.vala:2394 +#. / Translators: Search entry placeholder text +#: src/client/components/components-search-bar.vala:12 +#: src/client/folder-list/folder-list-search-branch.vala:53 +#: src/engine/api/geary-special-folder-type.vala:51 +msgid "Search" +msgstr "Cerca" + +#. / Translators: Search entry tooltip +#: src/client/components/components-search-bar.vala:32 +msgid "Search all mail in account for keywords" +msgstr "Cerca les paraules clau en tots els missatges en el compte" + +#. / Translators: Search entry placeholder, string +#. / replacement is the name of an account +#: src/client/components/components-search-bar.vala:81 +#: src/client/folder-list/folder-list-search-branch.vala:54 #, c-format -msgid "Empty all email from your %s folder?" -msgstr "Buida tot el correu electrònic de la carpeta %s?" - -#: src/client/application/geary-controller.vala:2395 -msgid "This removes the email from Geary and your email server." -msgstr "" -"Això elimina el correu electrònic del Geary i el seu servidor de correu " -"electrònic." - -#: src/client/application/geary-controller.vala:2396 -msgid "This cannot be undone." -msgstr "Això no es pot desfer." - -#: src/client/application/geary-controller.vala:2397 -#, c-format -msgid "Empty %s" -msgstr "Buit %s" - -#: src/client/application/geary-controller.vala:2414 -#, c-format -msgid "Error emptying %s" -msgstr "Error de buidatge %s" - -#: src/client/application/geary-controller.vala:2446 -msgid "Do you want to permanently delete this message?" -msgid_plural "Do you want to permanently delete these messages?" -msgstr[0] "Voleu descartar el missatge permanentment?" -msgstr[1] "Voleu descartar els missatges permanentment?" - -#: src/client/application/geary-controller.vala:2448 -msgid "Delete" -msgstr "_Suprimeix" - -#: src/client/application/geary-controller.vala:2462 -msgid "Undo trash (Ctrl+Z)" -msgstr "Desfés la paperera (Ctrl+Z)" - -#: src/client/application/geary-controller.vala:2512 -msgid "Undo archive (Ctrl+Z)" -msgstr "Desfés el fitxer (Ctrl+Z)" - -#: src/client/application/geary-controller.vala:2557 -msgid "Undo (Ctrl+Z)" -msgstr "Desfés (Ctrl+Z)" - -#. Translators: The label for an in-app notification. The -#. string substitution is a list of recipients of the email. -#: src/client/application/geary-controller.vala:2638 -#, c-format -msgid "Successfully sent mail to %s." -msgstr "S'ha enviat el missatge amb èxit a %s." - -#: src/client/application/geary-controller.vala:2720 -msgid "Failed to open default text editor." -msgstr "No s'ha pogut obrir l'editor de text predeterminat." +msgid "Search %s account" +msgstr "Compte de cerca %s" #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but one is not provided. -#: src/client/components/components-validator.vala:378 +#: src/client/components/components-validator.vala:390 msgid "An email address is required" msgstr "Cal una adreça de correu electrònic" #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but the address is invalid. -#: src/client/components/components-validator.vala:382 +#: src/client/components/components-validator.vala:394 msgid "Not a valid email address" msgstr "Adreça de correu electrònic no vàlida" #. Translators: Tooltip used when an entry requires a valid, #. resolvable server name to be entered, but one is not #. provided. -#: src/client/components/components-validator.vala:428 +#: src/client/components/components-validator.vala:440 msgid "A server name is required" msgstr "Cal un nom de servidor" #. Translators: Tooltip used when an entry requires a valid #. server name to be entered, but it was unable to be #. looked-up in the DNS. -#: src/client/components/components-validator.vala:433 +#: src/client/components/components-validator.vala:445 msgid "Could not look up server name" msgstr "No s’ha pogut cercar el nom del servidor" -#: src/client/components/main-toolbar.vala:151 +#: src/client/components/main-toolbar.vala:116 msgid "Mark conversation" msgid_plural "Mark conversations" msgstr[0] "Marca la conversa" msgstr[1] "Marca les converses" -#: src/client/components/main-toolbar.vala:156 +#: src/client/components/main-toolbar.vala:121 msgid "Add label to conversation" msgid_plural "Add label to conversations" msgstr[0] "Afegeix etiqueta a la conversa" msgstr[1] "Afegeix etiqueta a les converses" -#: src/client/components/main-toolbar.vala:161 +#: src/client/components/main-toolbar.vala:126 msgid "Move conversation" msgid_plural "Move conversations" msgstr[0] "Mou la conversa" msgstr[1] "Mou les converses" -#: src/client/components/main-toolbar.vala:166 -msgid "Archive conversation (A)" -msgid_plural "Archive conversations (A)" -msgstr[0] "Arxiva la conversa (A)" -msgstr[1] "Arxiva les converses (A)" +#: src/client/components/main-toolbar.vala:131 +msgid "Archive conversation" +msgid_plural "Archive conversations" +msgstr[0] "Arxiva la conversa" +msgstr[1] "Arxiva les converses" -#: src/client/components/main-toolbar.vala:175 -msgid "Move conversation to Trash (Delete, Backspace)" -msgid_plural "Move conversations to Trash (Delete, Backspace)" -msgstr[0] "Mou la conversa a la paperera (Esborrar, Retrocés)" -msgstr[1] "Mou les converses a la paperera (Esborrar, Retrocés)" +#: src/client/components/main-toolbar.vala:142 +msgid "Move conversation to Trash" +msgid_plural "Move conversations to Trash" +msgstr[0] "Mou la conversa a la paperera" +msgstr[1] "Mou les converses a la paperera" -#: src/client/components/main-toolbar.vala:183 -msgid "Delete conversation (Shift+Delete)" -msgid_plural "Delete conversations (Shift+Delete)" -msgstr[0] "Suprimeix la conversa (Maj + Supr)" -msgstr[1] "Suprimeix les converses (Maj + Supr)" +#: src/client/components/main-toolbar.vala:152 +msgid "Delete conversation" +msgid_plural "Delete conversations" +msgstr[0] "Suprimeix la conversa" +msgstr[1] "Suprimeix les converses" -#: src/client/components/main-window.vala:503 +#. Translators: Info bar title for a generic account +#. problem. +#: src/client/components/main-window-info-bar.vala:44 +msgid "Account problem" +msgstr "Problema al compte" + +#. Translators: Info bar sub-title for a generic account +#. problem. String substitution is the account name. +#: src/client/components/main-window-info-bar.vala:48 #, c-format -msgid "%s (%d)" -msgstr "%s (%d)" +msgid "Geary has encountered a problem with %s." +msgstr "El Geary ha tingut un problema amb %s." -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:47 +#. Translators: Info bar sub-title for a generic +#. account problem. String substitution is the +#. account name. +#: src/client/components/main-window-info-bar.vala:61 #, c-format -msgid "Problem connecting to incoming server for %s" -msgstr "Ha fallat la connexió al servidor d'entrada %s" - -#. Translators: String substitution is the server name -#: src/client/components/main-window-info-bar.vala:49 -#: src/client/components/main-window-info-bar.vala:58 -#, c-format -msgid "" -"Could not connect to %s, check your Internet access and the server name and " -"try again" -msgstr "" -"N0 s'ha pogut connectar amb %s, comproveu el accés a internet i el nom del " -"servidor i torneu a provar-ho" +msgid "Geary encountered a problem checking mail for %s." +msgstr "Geary ha trobat un problema en comprovar el correu per a %s." #. Translators: Tooltip label for Retry button -#. Button tooltip for retrying an account problem -#: src/client/components/main-window-info-bar.vala:51 -#: src/client/components/main-window-info-bar.vala:60 -#: src/client/components/main-window-info-bar.vala:69 -#: src/client/components/main-window-info-bar.vala:78 -#: src/client/components/main-window-info-bar.vala:87 -#: src/client/components/main-window-info-bar.vala:96 -#: src/client/components/main-window-info-bar.vala:136 ui/main-window.ui:265 +#: src/client/components/main-window-info-bar.vala:65 msgid "Try reconnecting" msgstr "Intenta connectar de nou" -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:56 +#. Translators: Info bar title for an outgoing +#. account problem. String substitution is the +#. account name +#: src/client/components/main-window-info-bar.vala:73 #, c-format -msgid "Problem connecting to outgoing server for %s" -msgstr "Ha fallat la connexió al servidor de sortida per %s" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:65 -#: src/client/components/main-window-info-bar.vala:83 -#, c-format -msgid "Problem communicating with incoming server for %s" -msgstr "Ha fallat la connexió al servidor d'entrada per %s" - -#. Translators: String substitution is the server name -#: src/client/components/main-window-info-bar.vala:67 -#: src/client/components/main-window-info-bar.vala:76 -#, c-format -msgid "Network error talking to %s, check your Internet access and try again" -msgstr "" -"Error de xarxa parlant amb %s, comproveu el accés a Internet i torneu-ho a " -"provar" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:74 -#: src/client/components/main-window-info-bar.vala:91 -msgid "Problem communicating with outgoing mail server" -msgstr "Ha fallat la connexió amb el servidor de correu de sortida" - -#. Translators: String substitution is the server name -#: src/client/components/main-window-info-bar.vala:85 -#, c-format -msgid "" -"Geary did not understand a message from %s or vice versa, please file a bug " -"report" -msgstr "" -"Geary no entén un missatge de %s o viceversa, envieu un informe d'error" - -#. Translators: First string substitution is the server -#. name, second is the account name -#: src/client/components/main-window-info-bar.vala:94 -#, c-format -msgid "" -"Could not communicate with %s for %s, check the server name and try again in " -"a moment" -msgstr "" -"Ha fallat la connexió amb %s de %s, comproveu el nom del servidor i torneu a " -"provar en un moment" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:101 -#, c-format -msgid "Incoming mail server password required for %s" -msgstr "Cal una contrasenya per al servidor d'entrada per a %s" - -#: src/client/components/main-window-info-bar.vala:102 -msgid "Messages cannot be received without the correct password." -msgstr "Els missatges no es poden rebre sense la contrasenya correcta." +msgid "Geary encountered a problem sending email for %s." +msgstr "Geary ha trobat un problema en enviar el correu per a %s." #. Translators: Tooltip label for Retry button -#: src/client/components/main-window-info-bar.vala:104 -msgid "Retry receiving email, you will be prompted for a password" -msgstr "Torneu a baixar el correu, se us preguntarà per la vostra contrasenya" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:109 -#, c-format -msgid "Outgoing mail server password required for %s" -msgstr "Cal una contrasenya per al servidor de sortida per a %s" - -#: src/client/components/main-window-info-bar.vala:110 -msgid "Messages cannot be sent without the correct password." -msgstr "Els missatges no es poden enviar sense la contrasenya correcta." - -#. Translators: Tooltip label for Retry button -#: src/client/components/main-window-info-bar.vala:112 -msgid "Retry sending queued messages, you will be prompted for a password" -msgstr "" -"Torneu a enviar la cua del missatges, se us preguntarà per la vostra " -"contrasenya" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:117 -#, c-format -msgid "Incoming mail server security is not trusted for %s" -msgstr "La seguretat del servidor d'entrada no és de confiança per a %s" - -#: src/client/components/main-window-info-bar.vala:118 -msgid "Messages will not be received until checked." -msgstr "Els missatges no es poden rebre fins que els comproveu." - -#. Translators: Tooltip label for Retry button -#: src/client/components/main-window-info-bar.vala:120 -#: src/client/components/main-window-info-bar.vala:128 -msgid "Check security details" -msgstr "Comprova els detalls de seguretat" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:125 -#, c-format -msgid "Outgoing mail server security is not trusted for %s" -msgstr "La seguretat del servidor de sortida no és de confiança per a %s" - -#: src/client/components/main-window-info-bar.vala:126 -msgid "Messages cannot be sent until checked." -msgstr "Els missatges no es poden enviar fins que els comproveu." - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:133 -#, c-format -msgid "A problem occurred checking mail for %s" -msgstr "Ha succeït un problema en comprovar el correu per a %s" - -#: src/client/components/main-window-info-bar.vala:134 -#: src/client/components/main-window-info-bar.vala:142 -msgid "Something went wrong, please file a bug report if the problem persists" -msgstr "Quelcom ha anat malament, envieu un informe si el problema persisteix" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:141 -#, c-format -msgid "A problem occurred sending mail for %s" -msgstr "Ha succeït un problema en enviar el correu per a %s" - -#. Translators: Tooltip label for Retry button -#: src/client/components/main-window-info-bar.vala:144 +#: src/client/components/main-window-info-bar.vala:77 msgid "Retry sending queued messages" msgstr "Intenteu enviar de nou els missatges de la cua" -#: src/client/components/main-window-info-bar.vala:155 -msgid "A database problem has occurred" -msgstr "Ha succuït un problema amb la base de dades" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:157 -#, c-format -msgid "Messages for %s must be downloaded again." -msgstr "Els missatges per %s es baixaran de nou." - -#: src/client/components/main-window-info-bar.vala:170 +#. Translators: Info bar title for a generic application +#. problem. +#: src/client/components/main-window-info-bar.vala:84 msgid "Geary has encountered a problem" msgstr "El Geary ha tingut un problema" -#: src/client/components/main-window-info-bar.vala:171 -msgid "" -"Please check the technical details and report the problem if it persists." -msgstr "" -"Comproveu els detalls tècnics i informeu del problema si aquest persisteix." +#. Translators: Info bar sub-title for a generic +#. application problem. +#: src/client/components/main-window-info-bar.vala:88 +msgid "Please report the details if it persists." +msgstr "Informeu dels detalls si aquest persisteix." -#: src/client/components/main-window-info-bar.vala:179 +#. Translators: Button label for viewing technical details +#. for a problem report. +#: src/client/components/main-window-info-bar.vala:99 msgid "_Details" msgstr "_Detalls" -#. Button tooltip for displaying technical details about an account problem -#: src/client/components/main-window-info-bar.vala:180 ui/main-window.ui:250 +#. Translators: Tooltip for viewing technical details for +#. a problem report. +#: src/client/components/main-window-info-bar.vala:102 msgid "View technical details about the error" msgstr "Mostra els detalls tècnics sobre l'error" -#: src/client/components/main-window-info-bar.vala:184 +#. Translators: Button label for retrying a server +#. connection +#: src/client/components/main-window-info-bar.vala:108 msgid "_Retry" msgstr "_Intenta de nou" -#: src/client/components/search-bar.vala:8 -#: src/client/folder-list/folder-list-search-branch.vala:38 -#: src/engine/api/geary-special-folder-type.vala:51 -msgid "Search" -msgstr "Cerca" - -#. Search entry. -#: src/client/components/search-bar.vala:23 -msgid "Search all mail in account for keywords (Ctrl+S)" -msgstr "Cerca tots els missatges en el compte de paraules clau (Ctrl+S)" - -#: src/client/components/search-bar.vala:101 -#, c-format -msgid "Indexing %s account" -msgstr "Compte d'indexació %s" - -#: src/client/components/search-bar.vala:112 -#: src/client/folder-list/folder-list-search-branch.vala:39 -#, c-format -msgid "Search %s account" -msgstr "Compte de cerca %s" - #. / Displayed in the space-limited status bar while a message is in the process of being sent. #: src/client/components/status-bar.vala:26 msgid "Sending…" @@ -1355,15 +1517,15 @@ msgstr "Tanc_a" msgid "_Discard" msgstr "_Descarta" -#: src/client/components/stock.vala:25 ui/main-toolbar-menus.ui:56 +#: src/client/components/stock.vala:25 ui/main-toolbar-menus.ui:52 msgid "_Help" msgstr "A_juda" -#: src/client/components/stock.vala:26 ui/conversation-email-menus.ui:77 +#: src/client/components/stock.vala:26 ui/components-attachment-pane-menus.ui:7 msgid "_Open" msgstr "_Obre" -#: src/client/components/stock.vala:27 ui/main-toolbar-menus.ui:46 +#: src/client/components/stock.vala:27 ui/main-toolbar-menus.ui:42 msgid "_Preferences" msgstr "_Preferències" @@ -1380,7 +1542,7 @@ msgstr "_Surt" msgid "_Remove" msgstr "_Elimina" -#: src/client/components/stock.vala:31 ui/conversation-email-menus.ui:83 +#: src/client/components/stock.vala:31 ui/components-attachment-pane-menus.ui:11 msgid "_Save" msgstr "De_sa" @@ -1388,40 +1550,46 @@ msgstr "De_sa" msgid "_Keep" msgstr "_Mantén" -#: src/client/composer/composer-link-popover.vala:149 +#: src/client/composer/composer-link-popover.vala:139 msgid "Link URL is not correctly formatted, e.g. http://example.com" msgstr "" "L'URL de l'enllaç no té el format correcte, per exemple, http://exemple.com" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid link URL" msgstr "Enllaç URL no vàlid" -#: src/client/composer/composer-link-popover.vala:156 +#: src/client/composer/composer-link-popover.vala:146 msgid "Invalid email address" msgstr "Adreça de correu electrònic no vàlida" -#: src/client/composer/composer-widget.vala:158 +#. / Translators: Title for an empty composer window +#: src/client/composer/composer-widget.vala:30 +msgid "New Message" +msgstr "Missatge nou" + +#: src/client/composer/composer-widget.vala:217 msgid "Saved" msgstr "Desat" -#: src/client/composer/composer-widget.vala:159 +#: src/client/composer/composer-widget.vala:218 msgid "Saving" msgstr "S'està desant" -#: src/client/composer/composer-widget.vala:160 +#: src/client/composer/composer-widget.vala:219 msgid "Error saving" msgstr "S'ha produït un error en desar" -#: src/client/composer/composer-widget.vala:161 +#: src/client/composer/composer-widget.vala:220 msgid "Press Backspace to delete quote" msgstr "Premi la tecla Retrocés per a esborrar la cita" #. Translators: This is list of keywords, separated by pipe ("|") #. characters, that suggest an attachment; since this is full-word -#. checking, include all variants of each word. No spaces are -#. allowed. -#: src/client/composer/composer-widget.vala:170 +#. checking, include all variants of each word. No spaces are +#. allowed. The words will be converted to lower case based on +#. locale and English versions included automatically. +#: src/client/composer/composer-widget.vala:236 msgid "" "attach|attaching|attaches|attachment|attachments|attached|enclose|enclosed|" "enclosing|encloses|enclosure|enclosures" @@ -1432,100 +1600,90 @@ msgstr "" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. Keep, Discard or Cancel. -#: src/client/composer/composer-widget.vala:1130 +#: src/client/composer/composer-widget.vala:843 msgid "Do you want to keep or discard this draft message?" msgstr "Vols mantenir o descartar aquest esborrany de missatge?" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. only Discard or Cancel. -#: src/client/composer/composer-widget.vala:1158 +#: src/client/composer/composer-widget.vala:869 msgid "Do you want to discard this draft message?" msgstr "Vols descartar aquest esborrany de missatge?" -#: src/client/composer/composer-widget.vala:1275 +#: src/client/composer/composer-widget.vala:1503 msgid "Send message with an empty subject and body?" msgstr "Vols enviar un missatge amb un assumpte buit i el cos?" -#: src/client/composer/composer-widget.vala:1277 +#: src/client/composer/composer-widget.vala:1505 msgid "Send message with an empty subject?" msgstr "Vols enviar un missatge amb un assumpte buit?" -#: src/client/composer/composer-widget.vala:1279 +#: src/client/composer/composer-widget.vala:1507 msgid "Send message with an empty body?" msgstr "Vols enviar un missatge amb un cos buit?" -#: src/client/composer/composer-widget.vala:1283 +#: src/client/composer/composer-widget.vala:1516 msgid "Send message without an attachment?" msgstr "Vols enviar un missatge sense un fitxer adjunt?" -#: src/client/composer/composer-widget.vala:1588 +#: src/client/composer/composer-widget.vala:1820 #, c-format msgid "“%s” already attached for delivery." msgstr "«%s» ja està seleccionat com a fitxer adjunt per a l'enviament." -#. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" -#. Translators: The first argument will be a -#. description of the document type, the second will -#. be a human-friendly size string. For example: -#. Document (100.9MB) -#: src/client/composer/composer-widget.vala:1596 -#: src/client/conversation-viewer/conversation-email.vala:173 -#, c-format -msgid "%s (%s)" -msgstr "%s (%s)" - -#: src/client/composer/composer-widget.vala:1633 -#, c-format -msgid "“%s” could not be found." -msgstr "No es pot conèixer «%s»." - -#: src/client/composer/composer-widget.vala:1639 -#, c-format -msgid "“%s” is a folder." -msgstr "«%s» és una carpeta." - -#: src/client/composer/composer-widget.vala:1645 +#: src/client/composer/composer-widget.vala:1856 +#: src/client/composer/composer-widget.vala:1906 #, c-format msgid "“%s” is an empty file." msgstr "«%s» és un fitxer buit." -#: src/client/composer/composer-widget.vala:1658 +#: src/client/composer/composer-widget.vala:1894 +#, c-format +msgid "“%s” could not be found." +msgstr "No es pot conèixer «%s»." + +#: src/client/composer/composer-widget.vala:1900 +#, c-format +msgid "“%s” is a folder." +msgstr "«%s» és una carpeta." + +#: src/client/composer/composer-widget.vala:1919 #, c-format msgid "“%s” could not be opened for reading." -msgstr "No s'ha pogut obrir «%s» per llegir." +msgstr "No s'ha pogut obrir «%s» per a llegir." -#: src/client/composer/composer-widget.vala:1666 +#: src/client/composer/composer-widget.vala:1927 msgid "Cannot add attachment" msgstr "No s'ha pogut afegir el fitxer adjunt" #. Translators: Human-readable version of the RFC 822 To header -#: src/client/composer/composer-widget.vala:1716 -#: src/client/conversation-viewer/conversation-email.vala:982 -#: src/engine/rfc822/rfc822-utils.vala:298 ui/conversation-message.ui:312 +#: src/client/composer/composer-widget.vala:1984 +#: src/client/conversation-viewer/conversation-email.vala:559 +#: src/client/util/util-email.vala:235 ui/conversation-message.ui:312 msgid "To:" msgstr "Per a:" #. Translators: Human-readable version of the RFC 822 CC header -#: src/client/composer/composer-widget.vala:1722 -#: src/client/conversation-viewer/conversation-email.vala:987 -#: src/engine/rfc822/rfc822-utils.vala:303 ui/conversation-message.ui:357 +#: src/client/composer/composer-widget.vala:1990 +#: src/client/conversation-viewer/conversation-email.vala:564 +#: src/client/util/util-email.vala:240 ui/conversation-message.ui:357 msgid "Cc:" msgstr "Cc:" #. Translators: Human-readable version of the RFC 822 BCC header -#: src/client/composer/composer-widget.vala:1728 -#: src/client/conversation-viewer/conversation-email.vala:992 +#: src/client/composer/composer-widget.vala:1996 +#: src/client/conversation-viewer/conversation-email.vala:569 #: ui/conversation-message.ui:402 msgid "Bcc:" msgstr "CCO:" #. Translators: Human-readable version of the RFC 822 Reply-To header -#: src/client/composer/composer-widget.vala:1734 +#: src/client/composer/composer-widget.vala:2002 msgid "Reply-To: " msgstr "Respon a:" -#: src/client/composer/composer-widget.vala:1874 +#: src/client/composer/composer-widget.vala:2254 msgid "Select Color" msgstr "Selecciona el color" @@ -1534,152 +1692,162 @@ msgstr "Selecciona el color" #. printf argument will be the alternate email address, #. and the second will be the account's primary email #. address. -#: src/client/composer/composer-widget.vala:2064 +#: src/client/composer/composer-widget.vala:2440 #, c-format msgid "%1$s via %2$s" msgstr "%1$s via %2$s" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: src/client/composer/composer-widget.vala:2125 +#: src/client/composer/composer-widget.vala:2496 msgid "_From:" msgstr "_De:" #. Translators: This is the name of the file chooser filter #. when inserting an image in the composer. -#: src/client/composer/composer-widget.vala:2357 +#: src/client/composer/composer-widget.vala:2801 msgid "Images" msgstr "Imatges" -#: src/client/composer/composer-window.vala:14 -msgid "New Message" -msgstr "Missatge nou" - -#: src/client/composer/spell-check-popover.vala:117 +#: src/client/composer/spell-check-popover.vala:125 msgid "Remove this language from the preferred list" msgstr "Elimina aquest idioma de la llista preferida" -#: src/client/composer/spell-check-popover.vala:121 +#: src/client/composer/spell-check-popover.vala:129 msgid "Add this language to the preferred list" msgstr "Afegeix aquest idioma a la llista preferida" -#: src/client/composer/spell-check-popover.vala:217 +#: src/client/composer/spell-check-popover.vala:225 msgid "Search for more languages" msgstr "Cerca més idiomes" -#: src/client/conversation-list/conversation-list-view.vala:283 -msgid "Delete conversation" -msgstr "Suprimeix la conversa" +#. / Translators: Context menu item +#: src/client/conversation-list/conversation-list-view.vala:335 +msgid "Move conversation to _Trash" +msgid_plural "Move conversations to _Trash" +msgstr[0] "_Mou la conversa a la paperera" +msgstr[1] "_Mou les converses a la paperera" -#: src/client/conversation-list/conversation-list-view.vala:286 +#. / Translators: Context menu item +#: src/client/conversation-list/conversation-list-view.vala:347 +msgid "_Delete conversation" +msgid_plural "_Delete conversations" +msgstr[0] "_Suprimeix la conversa" +msgstr[1] "_Suprimeix les converses" + +#: src/client/conversation-list/conversation-list-view.vala:360 #: ui/main-toolbar-menus.ui:5 msgid "Mark as _Read" msgstr "Ma_rca com a llegit" -#: src/client/conversation-list/conversation-list-view.vala:289 +#: src/client/conversation-list/conversation-list-view.vala:368 #: ui/main-toolbar-menus.ui:9 msgid "Mark as _Unread" msgstr "Marca com a no _llegit" -#: src/client/conversation-list/conversation-list-view.vala:292 +#: src/client/conversation-list/conversation-list-view.vala:376 #: ui/main-toolbar-menus.ui:17 msgid "U_nstar" msgstr "_No destaquis" -#: src/client/conversation-list/conversation-list-view.vala:294 +#: src/client/conversation-list/conversation-list-view.vala:383 #: ui/main-toolbar-menus.ui:13 msgid "_Star" msgstr "_Destaca" #. Translators: Menu item to reply to a specific message. -#: src/client/conversation-list/conversation-list-view.vala:297 +#: src/client/conversation-list/conversation-list-view.vala:392 #: ui/conversation-email-menus.ui:9 msgid "_Reply" msgstr "_Respon" -#: src/client/conversation-list/conversation-list-view.vala:298 +#: src/client/conversation-list/conversation-list-view.vala:398 msgid "R_eply All" msgstr "R_espon tot" #. Translators: Menu item to forward a specific message. -#: src/client/conversation-list/conversation-list-view.vala:299 +#: src/client/conversation-list/conversation-list-view.vala:404 #: ui/conversation-email-menus.ui:21 msgid "_Forward" msgstr "_Reenvia" -#: src/client/conversation-list/formatted-conversation-data.vala:11 +#: src/client/conversation-list/formatted-conversation-data.vala:18 msgid "Me" msgstr "En a mi" -#. Translators: This is the file type displayed for -#. attachments with unknown file types. -#: src/client/conversation-viewer/conversation-email.vala:159 -msgid "Unknown" -msgstr "Desconegut" - #. Translators: Human-readable version of the RFC 822 From header -#: src/client/conversation-viewer/conversation-email.vala:977 -#: src/engine/rfc822/rfc822-utils.vala:289 +#: src/client/conversation-viewer/conversation-email.vala:554 +#: src/client/util/util-email.vala:226 msgid "From:" msgstr "De:" #. Translators: Human-readable version of the RFC 822 Date header -#: src/client/conversation-viewer/conversation-email.vala:997 -#: src/engine/rfc822/rfc822-utils.vala:294 +#: src/client/conversation-viewer/conversation-email.vala:574 +#: src/client/util/util-email.vala:231 msgid "Date:" msgstr "Data:" #. Translators: Human-readable version of the RFC 822 Subject header -#: src/client/conversation-viewer/conversation-email.vala:1002 -#: src/engine/rfc822/rfc822-utils.vala:292 +#: src/client/conversation-viewer/conversation-email.vala:584 +#: src/client/util/util-email.vala:229 msgid "Subject:" msgstr "Assumpte:" -#: src/client/conversation-viewer/conversation-message.vala:65 +#: src/client/conversation-viewer/conversation-message.vala:128 msgid "This email address may have been forged" msgstr "Aquesta adreça de correu electrònic pot haver estat falsificada" -#. Compact headers +#: src/client/conversation-viewer/conversation-message.vala:231 +msgid "Show less" +msgstr "Mostra menys" + +#: src/client/conversation-viewer/conversation-message.vala:252 +#, c-format +msgid "%d more…" +msgstr "%d més…" + +#. Compact headers. These are partially done here and partially +#. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:394 +#: src/client/conversation-viewer/conversation-message.vala:521 msgid "No sender" msgstr "Sense remitent" #. Translators: This separates multiple 'from' #. addresses in the compact header for a message. -#: src/client/conversation-viewer/conversation-message.vala:766 +#: src/client/conversation-viewer/conversation-message.vala:913 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Imagemailing list or " +"attach to a new " +"bug report." +msgstr "" +"Si el problema és greu o persisteix, copieu i envieu aquestes dades a la llista de correu o " +"envieu un " +"informe d’error nou." + +#: ui/components-inspector-error-view.ui:49 +msgid "Details:" +msgstr "Detalls:" + +#. Tooltip for inspector button +#: ui/components-inspector.ui:20 +msgid "Toggle appending new log entries" +msgstr "Commuta afegir noves entrades de registre" + +#. Tooltip for inspector button +#. Tooltip for problem report button +#: ui/components-inspector.ui:37 ui/problem-details-dialog.ui:19 +msgid "Search for matching log entries" +msgstr "Cerca per a entrades de registre coincidents" + +#. Tooltip for inspector button +#. Tooltip for problem report button +#: ui/components-inspector.ui:63 ui/problem-details-dialog.ui:46 +msgid "Save logs entries and details" +msgstr "Desa les entrades de registre i els detalls" + +#. Tooltip for inspector button +#. Tooltip for problem report button +#: ui/components-inspector.ui:84 ui/problem-details-dialog.ui:62 +msgid "Copy to clipboard" +msgstr "Copia al porta-retalls" + +#: ui/conversation-contact-popover.ui:146 +msgid "New Conversation…" +msgstr "Mou la conversa…" + +#: ui/conversation-contact-popover.ui:159 +msgid "Copy Email Address" +msgstr "Copia l'adreça de correu" + +#: ui/conversation-contact-popover.ui:182 +msgid "Save in Contacts…" +msgstr "Desa als contactes…" + +#: ui/conversation-contact-popover.ui:195 +msgid "Show Conversations" +msgstr "Mostra les converses" + +#: ui/conversation-contact-popover.ui:208 +msgid "Open in Contacts" +msgstr "Obre als contactes" + +#: ui/conversation-contact-popover.ui:221 +msgid "Always Load Remote Images" +msgstr "Carrega sempre les imatges remotes" + +#. Title label on contact popover +#: ui/conversation-contact-popover.ui:264 +msgid "Deceptive email address" +msgstr "Adreça de correu electrònic enganyosa" + +#. Contact popover label +#: ui/conversation-contact-popover.ui:294 +msgid "This email address is:" +msgstr "Aquesta adreça de correu electrònic és:" + +#. Contact popover label +#: ui/conversation-contact-popover.ui:319 +msgid "But was forged as:" +msgstr "Però ha estat falsificada com a:" + +#. Contact popover label +#: ui/conversation-contact-popover.ui:344 +msgid "The sender may not be trustworthy" +msgstr "El remitent pot ser no és de confiança" + #: ui/conversation-email.ui:27 msgid "Save all attachments" msgstr "Desa tots els fitxers adjunts" @@ -2627,39 +3013,23 @@ msgstr "Marca aquest missatge com a destacat" msgid "Mark this message as not starred" msgstr "Marca aquest missatge com a no destacat" -#: ui/conversation-email.ui:95 -msgid "Display the message menu" -msgstr "Mostra el missatge del menú" - -#: ui/conversation-email.ui:161 -msgid "Open selected attachments" -msgstr "Obre els fitxers adjunts seleccionats" - -#: ui/conversation-email.ui:178 -msgid "Save selected attachments" -msgstr "Desa els fitxers adjunts seleccionats" - -#: ui/conversation-email.ui:195 -msgid "Select all attachments" -msgstr "Selecciona tots els fitxers adjunts" - -#: ui/conversation-email.ui:240 +#: ui/conversation-email.ui:124 msgid "Edit Draft" msgstr "Edita l'Esborrany" -#: ui/conversation-email.ui:267 +#: ui/conversation-email.ui:151 msgid "Draft message" msgstr "Missatge de l'esborrany" -#: ui/conversation-email.ui:283 +#: ui/conversation-email.ui:167 msgid "This message has not yet been sent." msgstr "Aquest missatge no s'ha enviat." -#: ui/conversation-email.ui:329 +#: ui/conversation-email.ui:213 msgid "Message not saved" msgstr "Missatge no desat" -#: ui/conversation-email.ui:345 +#: ui/conversation-email.ui:229 msgid "This message was sent, but has not been saved to your account." msgstr "Aquest missatge s'ha enviat, però no s'ha desat en el seu compte." @@ -2685,24 +3055,44 @@ msgid "Mark Unread From _Here" msgstr "Marca com a no llegit des _d'aquí" #. Translators: Menu item to move a single, specific message -#. to the trash +#. to the trash folder #: ui/conversation-email-menus.ui:50 -msgid "_Trash" -msgstr "_Paperera" +msgid "Move message to _Trash" +msgstr "_Mou el missatge a la paperera" #. Translators: Menu item to delete a single, specific message #: ui/conversation-email-menus.ui:57 -msgid "_Delete…" -msgstr "_Suprimeix…" +msgid "_Delete message…" +msgstr "_Suprimeix el missatge…" #. Translators: Menu item to view the source for a message #: ui/conversation-email-menus.ui:69 msgid "_View Source" msgstr "_Visualitza la font" -#: ui/conversation-email-menus.ui:87 -msgid "_Save All" -msgstr "De_sa-ho tot" +#: ui/conversation-message-link-popover.ui:54 +msgid "But actually goes to:" +msgstr "Però en realitat va a:" + +#: ui/conversation-message-link-popover.ui:84 +msgid "The link appears to go to:" +msgstr "L'enllaç sembla anar a:" + +#: ui/conversation-message-link-popover.ui:96 +msgid "Deceptive link found" +msgstr "L'enllaç trobat és enganyós" + +#: ui/conversation-message-link-popover.ui:111 +msgid "The email sender may be leading you to the wrong web site." +msgstr "" +"El remitent de correu electrònic pot ser que et condueixi a un lloc web " +"maliciós." + +#: ui/conversation-message-link-popover.ui:124 +msgid "If unsure, contact the sender and ask before continuing." +msgstr "" +"Si no esteu segur, poseu-vos en contacte amb el remitent i preguntar abans de " +"continuar." #: ui/conversation-message-menus.ui:7 msgid "_Open Link" @@ -2713,8 +3103,8 @@ msgid "Copy Link _Address" msgstr "Copi_a l'enllaç de l'adreça electrònica" #: ui/conversation-message-menus.ui:17 -msgid "Send New _Message…" -msgstr "_Envia el correu nou…" +msgid "_New Conversation…" +msgstr "Conversa _nova…" #: ui/conversation-message-menus.ui:21 msgid "Copy Email _Address" @@ -2728,10 +3118,6 @@ msgstr "Desa la _imatge com…" msgid "_Select All" msgstr "_Selecciona-ho tot" -#: ui/conversation-message-menus.ui:43 -msgid "Search for messages from" -msgstr "Cerca els missatges de" - #: ui/conversation-message.ui:63 msgid "From " msgstr "De " @@ -2772,39 +3158,15 @@ msgstr "Les imatges remotes no es mostren" msgid "Only show remote images from senders you trust." msgstr "Només es mostren les imatges remotes de remitents de confiança." -#: ui/conversation-message.ui:692 -msgid "But actually goes to:" -msgstr "Però en realitat va a:" - -#: ui/conversation-message.ui:723 -msgid "The link appears to go to:" -msgstr "L'enllaç sembla anar a:" - -#: ui/conversation-message.ui:735 -msgid "Deceptive link found" -msgstr "L'enllaç trobat és enganyós" - -#: ui/conversation-message.ui:750 -msgid "The email sender may be leading you to the wrong web site." -msgstr "" -"El remitent de correu electrònic pot ser que et condueixi a un lloc web " -"maliciós." - -#: ui/conversation-message.ui:763 -msgid "If unsure, contact the sender and ask before continuing." -msgstr "" -"Si no esteu segur, poseu-vos en contacte amb el remitent i preguntar abans " -"de continuar." - #: ui/conversation-viewer.ui:60 msgid "Find in conversation" msgstr "Troba en la conversa" -#: ui/conversation-viewer.ui:74 +#: ui/conversation-viewer.ui:75 msgid "Find the previous occurrence of the search string." msgstr "Troba l'aparició anterior de la cadena de cerca." -#: ui/conversation-viewer.ui:95 +#: ui/conversation-viewer.ui:96 msgid "Find the next occurrence of the search string." msgstr "Troba la següent aparició de la cadena de cerca." @@ -2832,397 +3194,342 @@ msgstr "etiqueta" msgid "Conversation Shortcuts" msgstr "Dreceres de conversa" -#: ui/gtk/help-overlay.ui:13 ui/gtk/help-overlay.ui:254 -msgctxt "shortcut window" -msgid "General" -msgstr "General" - -#: ui/gtk/help-overlay.ui:17 -msgctxt "shortcut window" -msgid "Move focus to the next/previous pane" -msgstr "Moure l'enfocament al panell següent/anterior" - -#: ui/gtk/help-overlay.ui:24 -msgctxt "shortcut window" -msgid "Move focus to conversation list" -msgstr "Mou el focus a la llista de conversa" - -#: ui/gtk/help-overlay.ui:31 -msgctxt "shortcut window" -msgid "Detach composer window" -msgstr "Separa finestra de l'editor" - -#: ui/gtk/help-overlay.ui:38 -msgctxt "shortcut window" -msgid "Close composer window" -msgstr "Tanca finestra de l'editor" - -#: ui/gtk/help-overlay.ui:45 -msgctxt "shortcut window" -msgid "Show keyboard shortcuts" -msgstr "Mostra dreceres de teclat" - -#: ui/gtk/help-overlay.ui:52 -msgctxt "shortcut window" -msgid "Show help" -msgstr "Mostra ajuda" - -#: ui/gtk/help-overlay.ui:59 -msgctxt "shortcut window" -msgid "Quit the application" -msgstr "Surt de l'aplicació" - -#: ui/gtk/help-overlay.ui:68 -msgctxt "shortcut window" -msgid "Search" -msgstr "Cerca" - -#: ui/gtk/help-overlay.ui:72 -msgctxt "shortcut window" -msgid "Jump to search box" -msgstr "Salta a la caixa de cerca" - -#: ui/gtk/help-overlay.ui:79 -msgctxt "shortcut window" -msgid "Find in current conversation" -msgstr "Troba en la conversa actual" - -#: ui/gtk/help-overlay.ui:86 -msgctxt "shortcut window" -msgid "Find next/previous in current conversation" -msgstr "Troba el següent/anterior a la conversa actual" - -#: ui/gtk/help-overlay.ui:95 ui/gtk/help-overlay.ui:274 +#: ui/gtk/help-overlay.ui:13 ui/gtk/help-overlay.ui:355 msgctxt "shortcut window" msgid "Actions" msgstr "Accions" -#: ui/gtk/help-overlay.ui:99 +#: ui/gtk/help-overlay.ui:17 msgctxt "shortcut window" -msgid "Compose a new message" -msgstr "Redacta un missatge nou" +msgid "New conversation" +msgstr "Conversació nova" -#: ui/gtk/help-overlay.ui:106 +#: ui/gtk/help-overlay.ui:24 msgctxt "shortcut window" -msgid "Reply to sender " -msgstr "Respon al remitent " +msgid "Reply to sender" +msgstr "Respon al remitent" -#: ui/gtk/help-overlay.ui:113 +#: ui/gtk/help-overlay.ui:31 ui/gtk/help-overlay.ui:269 msgctxt "shortcut window" msgid "Reply to all" msgstr "Respon a tots" -#: ui/gtk/help-overlay.ui:120 +#: ui/gtk/help-overlay.ui:38 ui/gtk/help-overlay.ui:276 msgctxt "shortcut window" msgid "Forward" msgstr "Reenvia" -#: ui/gtk/help-overlay.ui:127 +#: ui/gtk/help-overlay.ui:45 ui/gtk/help-overlay.ui:283 msgctxt "shortcut window" -msgid "Archive" -msgstr "Arxiva" +msgid "Un-mark/mark read" +msgstr "Desmarca o marca com a llegit" -#: ui/gtk/help-overlay.ui:134 +#: ui/gtk/help-overlay.ui:52 ui/gtk/help-overlay.ui:290 msgctxt "shortcut window" -msgid "Move to trash" -msgstr "Mou a la paperera" +msgid "Mark/un-mark starred" +msgstr "Desmarca o marca com a destacat" + +#: ui/gtk/help-overlay.ui:59 ui/gtk/help-overlay.ui:297 +msgctxt "shortcut window" +msgid "Archive conversations" +msgstr "Arxiva les converses" + +#: ui/gtk/help-overlay.ui:66 ui/gtk/help-overlay.ui:304 +msgctxt "shortcut window" +msgid "Move conversations" +msgstr "Mou les converses" + +#: ui/gtk/help-overlay.ui:73 ui/gtk/help-overlay.ui:311 +msgctxt "shortcut window" +msgid "Label conversations" +msgstr "Etiqueta les converses" + +#: ui/gtk/help-overlay.ui:80 +msgctxt "shortcut window" +msgid "Trash conversations" +msgstr "Envia les converses a la paperera" + +#: ui/gtk/help-overlay.ui:87 ui/gtk/help-overlay.ui:318 +msgctxt "shortcut window" +msgid "Junk conversations" +msgstr "Marca les converses com a brossa" + +#: ui/gtk/help-overlay.ui:95 ui/gtk/help-overlay.ui:325 +msgctxt "shortcut window" +msgid "Delete conversations" +msgstr "Suprimeix les converses" + +#: ui/gtk/help-overlay.ui:104 +msgctxt "shortcut window" +msgid "Search" +msgstr "Cerca" + +#: ui/gtk/help-overlay.ui:108 +msgctxt "shortcut window" +msgid "Search for conversations" +msgstr "Cerca a les converses" + +#: ui/gtk/help-overlay.ui:115 +msgctxt "shortcut window" +msgid "Find in current conversation" +msgstr "Troba en la conversa actual" #: ui/gtk/help-overlay.ui:141 msgctxt "shortcut window" -msgid "Toggle spam" -msgstr "Selecciona el correu brossa" +msgid "Undo" +msgstr "Desfés" -#: ui/gtk/help-overlay.ui:148 +#: ui/gtk/help-overlay.ui:145 msgctxt "shortcut window" -msgid "Move the conversation" -msgstr "Mou la conversa" +msgid "Undo the last action" +msgstr "Desfés la darrera acció" -#: ui/gtk/help-overlay.ui:155 +#: ui/gtk/help-overlay.ui:152 msgctxt "shortcut window" -msgid "Label the conversation" -msgstr "Etiqueta la conversa" +msgid "Redo the last action" +msgstr "Refés l'última acció" -#: ui/gtk/help-overlay.ui:163 -msgctxt "shortcut window" -msgid "Mark read" -msgstr "Marca com a llegit" - -#: ui/gtk/help-overlay.ui:170 -msgctxt "shortcut window" -msgid "Mark unread" -msgstr "Marca com a no llegit" - -#: ui/gtk/help-overlay.ui:179 +#: ui/gtk/help-overlay.ui:161 msgctxt "shortcut window" msgid "View" msgstr "Visualitza" -#: ui/gtk/help-overlay.ui:183 +#: ui/gtk/help-overlay.ui:165 msgctxt "shortcut window" msgid "Zoom in" msgstr "Amplia el zoom" -#: ui/gtk/help-overlay.ui:190 +#: ui/gtk/help-overlay.ui:172 msgctxt "shortcut window" msgid "Zoom out" msgstr "Disminueix el zoom" -#: ui/gtk/help-overlay.ui:197 +#: ui/gtk/help-overlay.ui:179 msgctxt "shortcut window" msgid "Reset zoom" msgstr "Restableix el zoom" +#: ui/gtk/help-overlay.ui:188 ui/gtk/help-overlay.ui:375 +msgctxt "shortcut window" +msgid "General" +msgstr "General" + +#: ui/gtk/help-overlay.ui:192 +msgctxt "shortcut window" +msgid "Show help" +msgstr "Mostra ajuda" + +#: ui/gtk/help-overlay.ui:199 +msgctxt "shortcut window" +msgid "Show keyboard shortcuts" +msgstr "Mostra dreceres de teclat" + #: ui/gtk/help-overlay.ui:206 msgctxt "shortcut window" -msgid "Additional Shortcuts" -msgstr "Dreceres addicionals" +msgid "Open a new window" +msgstr "Obre una finestra nova" -#: ui/gtk/help-overlay.ui:210 +#: ui/gtk/help-overlay.ui:213 msgctxt "shortcut window" -msgid "Star" -msgstr "Destaca" +msgid "Close the current window" +msgstr "Tanca la finestra actual" -#: ui/gtk/help-overlay.ui:217 +#: ui/gtk/help-overlay.ui:220 msgctxt "shortcut window" -msgid "Unstar" -msgstr "No destaquis" +msgid "Quit the application" +msgstr "Surt de l'aplicació" -#: ui/gtk/help-overlay.ui:224 +#: ui/gtk/help-overlay.ui:229 msgctxt "shortcut window" -msgid "Delete" -msgstr "Suprimeix" +msgid "Keyboard navigation" +msgstr "Navegació per teclat" -#: ui/gtk/help-overlay.ui:231 +#: ui/gtk/help-overlay.ui:233 msgctxt "shortcut window" -msgid "Jump to next (older) conversation" -msgstr "Salta a la següent conversa (més antiga)" +msgid "Go to next/previous pane" +msgstr "Vés al panell següent o anterior" -#: ui/gtk/help-overlay.ui:238 +#: ui/gtk/help-overlay.ui:241 msgctxt "shortcut window" -msgid "Jump to previous (newer) conversation" -msgstr "Salta a la conversa anterior (més recent)" +msgid "Select next/previous conversation" +msgstr "Selecciona la conversa següent o anterior" -#: ui/gtk/help-overlay.ui:250 -msgid "Composer Shortcuts" -msgstr "Dreceres d'editor" +#: ui/gtk/help-overlay.ui:248 +msgctxt "shortcut window" +msgid "Focus next/previous message" +msgstr "Moure l'enfocament al missatge següent o anterior" #: ui/gtk/help-overlay.ui:258 msgctxt "shortcut window" -msgid "Quote text" -msgstr "Cita text" +msgid "Single-key shortcuts" +msgstr "Dreceres de teclat d'una tecla" -#: ui/gtk/help-overlay.ui:265 +#: ui/gtk/help-overlay.ui:262 msgctxt "shortcut window" -msgid "Unquote text" -msgstr "No citis text" +msgid "Reply to sender " +msgstr "Respon al remitent " -#: ui/gtk/help-overlay.ui:278 +#: ui/gtk/help-overlay.ui:332 +msgctxt "shortcut window" +msgid "Find in current conversations" +msgstr "Troba en les converses actuals" + +#: ui/gtk/help-overlay.ui:339 +msgctxt "shortcut window" +msgid "Select next/previous conversations" +msgstr "Selecciona la la conversa següent o anterior" + +#: ui/gtk/help-overlay.ui:351 +msgid "Composer Shortcuts" +msgstr "Dreceres d'editor" + +#: ui/gtk/help-overlay.ui:359 msgctxt "shortcut window" msgid "Send" msgstr "Envia" -#: ui/gtk/help-overlay.ui:285 +#: ui/gtk/help-overlay.ui:366 msgctxt "shortcut window" msgid "Add attachment" msgstr "Afegeix el fitxer adjunt" -#: ui/gtk/help-overlay.ui:294 +#: ui/gtk/help-overlay.ui:379 msgctxt "shortcut window" -msgid "Rich text mode" -msgstr "Mode de text enriquit" +msgid "Close composer window" +msgstr "Tanca finestra de l'editor" -#: ui/gtk/help-overlay.ui:298 +#: ui/gtk/help-overlay.ui:386 +msgctxt "shortcut window" +msgid "Detach composer window" +msgstr "Separa finestra de l'editor" + +#: ui/gtk/help-overlay.ui:393 +msgctxt "shortcut window" +msgid "Editing" +msgstr "Edició" + +#: ui/gtk/help-overlay.ui:398 +msgctxt "shortcut window" +msgid "Move selection to the clipboard" +msgstr "Mou la selecció al porta-retalls" + +#: ui/gtk/help-overlay.ui:405 +msgctxt "shortcut window" +msgid "Copy selection to clipboard" +msgstr "Copia la selecció al porta-retalls" + +#: ui/gtk/help-overlay.ui:412 +msgid "Paste from the clipboard" +msgstr "Enganxa del porta-retalls" + +#: ui/gtk/help-overlay.ui:419 +msgctxt "shortcut window" +msgid "Quote text" +msgstr "Cita text" + +#: ui/gtk/help-overlay.ui:426 +msgctxt "shortcut window" +msgid "Unquote text" +msgstr "No citis text" + +#: ui/gtk/help-overlay.ui:435 +msgctxt "shortcut window" +msgid "Rich text editing" +msgstr "Edició en text enriquit" + +#: ui/gtk/help-overlay.ui:439 +msgctxt "shortcut window" +msgid "Paste without formatting" +msgstr "Enganxa sense format" + +#: ui/gtk/help-overlay.ui:446 msgctxt "shortcut window" msgid "Bold text" msgstr "Text en negreta" -#: ui/gtk/help-overlay.ui:305 +#: ui/gtk/help-overlay.ui:453 msgctxt "shortcut window" msgid "Italicize text" msgstr "Text en cursiva" -#: ui/gtk/help-overlay.ui:312 +#: ui/gtk/help-overlay.ui:460 msgctxt "shortcut window" msgid "Underline text" msgstr "Text subratllat" -#: ui/gtk/help-overlay.ui:319 +#: ui/gtk/help-overlay.ui:467 msgctxt "shortcut window" msgid "Strike text" msgstr "Text ratllat" -#: ui/gtk/help-overlay.ui:326 -msgctxt "shortcut window" -msgid "Insert a link" -msgstr "Insereix un enllaç" - -#: ui/gtk/help-overlay.ui:333 +#: ui/gtk/help-overlay.ui:474 msgctxt "shortcut window" msgid "Remove formatting" msgstr "Suprimeix la formatació" -#: ui/main-toolbar.ui:23 +#: ui/gtk/help-overlay.ui:481 +msgctxt "shortcut window" +msgid "Insert an image" +msgstr "Insereix una imatge" + +#: ui/gtk/help-overlay.ui:488 +msgctxt "shortcut window" +msgid "Insert a link" +msgstr "Insereix un enllaç" + +#: ui/main-toolbar.ui:24 msgctxt "tooltip" msgid "Compose Message" msgstr "Redacta un missatge" -#: ui/main-toolbar.ui:52 +#: ui/main-toolbar.ui:62 msgid "Toggle search bar" msgstr "Selecciona la barra de cerca" -#: ui/main-toolbar.ui:112 +#: ui/main-toolbar.ui:114 msgid "Reply" msgstr "Respon" -#: ui/main-toolbar.ui:135 +#: ui/main-toolbar.ui:137 msgid "Reply All" msgstr "Respon a tots" -#: ui/main-toolbar.ui:158 +#: ui/main-toolbar.ui:160 msgid "Forward" msgstr "Reenvia" -#: ui/main-toolbar.ui:264 +#: ui/main-toolbar.ui:265 msgid "Toggle find bar" msgstr "Selecciona la barra de cerca" -#: ui/main-toolbar.ui:306 +#: ui/main-toolbar.ui:286 msgid "_Archive" msgstr "_Arxiva" #: ui/main-toolbar-menus.ui:21 -msgid "Mark as S_pam" -msgstr "Marca com a correu _brossa" +msgid "Toggle as S_pam" +msgstr "_Commuta com a correu brossa" -#: ui/main-toolbar-menus.ui:25 -msgid "Mark as not S_pam" -msgstr "M_arca com a correu no brossa" - -#: ui/main-toolbar-menus.ui:32 +#: ui/main-toolbar-menus.ui:28 msgid "Empty _Spam…" msgstr "Buida _correu brossa…" -#: ui/main-toolbar-menus.ui:36 +#: ui/main-toolbar-menus.ui:32 msgid "Empty _Trash…" msgstr "Buida la _paperera…" -#: ui/main-toolbar-menus.ui:42 +#: ui/main-toolbar-menus.ui:38 msgid "_Accounts" msgstr "_Comptes" -#: ui/main-toolbar-menus.ui:50 +#: ui/main-toolbar-menus.ui:46 msgid "_Keyboard Shortcuts" msgstr "Dreceres de _teclat" -#: ui/main-toolbar-menus.ui:61 +#: ui/main-toolbar-menus.ui:57 msgid "_About Geary" msgstr "_Quant a Geary" -#. Infobar title when one or more accounts are offline -#: ui/main-window.ui:183 -msgid "Working offline" -msgstr "Treballa fora de línia" - -#. Label and tooltip for offline infobar -#: ui/main-window.ui:197 -msgid "" -"Your computer does not appear to be connected to the Internet.\n" -"You will not be able to send or receive email until it is re-connected." -msgstr "" -"Sembla que el vostre ordinador no està connectat a Internet.\n" -"No podreu enviar ni rebre correus electrònics fins que us torneu a connectar." - -#. Label and tooltip for offline infobar -#: ui/main-window.ui:200 -msgid "You will not be able to send or receive email until re-connected." -msgstr "" -"No podreu enviar ni rebre correus electrònics fins que us torneu a connectar." - -#. Button label for displaying technical details about an account problem -#. Dialog title for displaying technical details of a problem. Same as the button that invokes it. -#: ui/main-window.ui:247 ui/problem-details-dialog.ui:13 -msgid "Details" -msgstr "Detalls" - -#. Button label for retrying an account problem -#: ui/main-window.ui:261 -msgid "Retry" -msgstr "Intenta de nou" - -#. Infobar title when one or more accounts have encounted an error -#: ui/main-window.ui:294 -msgid "Account problem" -msgstr "Problema al compte" - -#. Label and tooltip for account service problem infobar -#: ui/main-window.ui:308 -msgid "" -"Geary encountered a problem connecting to an account.\n" -"Please check your Internet connection, the server configuration and try " -"again." -msgstr "" -"Geary ha trobat un problema en connectar-se amb un compte.\n" -"Comproveu la vostra connexió a Internet, la configuració del servidor i " -"torneu-ho a provar." - -#. Label and tooltip for account service problem infobar -#: ui/main-window.ui:311 -msgid "Geary encountered a problem connecting to an account." -msgstr "Geary ha trobat un problema en connectar amb el servidor." - -#. Button label for retrying TLS cert validation -#: ui/main-window.ui:358 -msgid "Check" -msgstr "Comprovació" - -#. Button tooltip for retrying TLS cert validation -#: ui/main-window.ui:362 -msgid "Check the security details for the connection" -msgstr "Comprova els detalls de seguretat per a la connexió" - -#. Infobar title when one or more accounts have a TLS cert validation error -#: ui/main-window.ui:391 -msgid "Security problem" -msgstr "Problema de seguretat" - -#. Label and tooltip for TLS cert validation error infobar -#: ui/main-window.ui:405 -msgid "" -"An account has reported an untrusted server.\n" -"Please check the server configuration and try again." -msgstr "" -"Un compte ha informat d’un servidor no fiable. \n" -"Comproveu la configuració del servidor i torneu-ho a provar." - -#. Label and tooltip for TLS cert validation error infobar -#: ui/main-window.ui:408 -msgid "An account has reported an untrusted server." -msgstr "Un compte ha informat d’un servidor no fiable." - -#. Button tooltip for retrying when a login error has occurred -#: ui/main-window.ui:459 -msgid "Retry login, you will be prompted for your password" -msgstr "Torneu a iniciar la sessió, se us preguntarà per la vostra contrasenya" - -#. Infobar title when one or more accounts have a login error -#: ui/main-window.ui:488 -msgid "Login problem" -msgstr "Problema amb l'inici de sessió" - -#. Label and tooltip for authentication problem infobar -#: ui/main-window.ui:502 -msgid "" -"An account has reported an incorrect login or password.\n" -"Please check your login name and try again." -msgstr "" -"Un compte ha informat d’un nom d'usuari o contrasenya incorrecte.\n" -"Comproveu el vostre nom d’usuari i torneu-ho a provar." - -#. Label and tooltip for authentication problem infobar -#: ui/main-window.ui:505 -msgid "An account has reported an incorrect login or password." -msgstr "Un compte ha informat d’un nom d'usuari o contrasenya incorrecte." - #: ui/password-dialog.glade:74 msgid "SMTP Credentials" msgstr "Credencials SMTP" @@ -3239,498 +3546,6 @@ msgstr "_Recorda la contrasenya" msgid "_Authenticate" msgstr "_Autenticació" -# N.T.: Títol de secció a les preferències -#: ui/preferences-dialog.ui:38 -msgid "Reading" -msgstr "Lectura" - -#: ui/preferences-dialog.ui:51 -msgid "_Automatically select next message" -msgstr "Selecciona el missatge següent _automàticament" - -#: ui/preferences-dialog.ui:70 -msgid "_Display conversation preview" -msgstr "_Mostra la vista prèvia de la conversació" - -#: ui/preferences-dialog.ui:89 -msgid "Use _three pane view" -msgstr "Utilitza vista de _tres panells" - -#: ui/preferences-dialog.ui:113 -msgid "Notifications" -msgstr "Notificacions" - -#: ui/preferences-dialog.ui:126 -msgid "_Play notification sounds" -msgstr "_Reprodueix un so per a les notificacions" - -#: ui/preferences-dialog.ui:145 -msgid "Show _notifications for new mail" -msgstr "Mostra les _notificacions quan arribi correu nou" - -#: ui/preferences-dialog.ui:164 -msgid "_Watch for new mail when closed" -msgstr "_Vigila si arriba correu nou quan s'ha tancat" - -#: ui/preferences-dialog.ui:168 -msgid "Geary will keep running after all windows are closed" -msgstr "Geary continuarà funcionant després de tancar totes les finestres" - -#: ui/preferences-dialog.ui:195 -msgid "Preferences" -msgstr "Preferències" - -#. Button label for copying technical information to the clipboard -#: ui/problem-details-dialog.ui:17 -msgid "Copy to Clipboard" -msgstr "Copia al porta-retalls" - -#. Button tooltip for copying technical information to the clipboard -#: ui/problem-details-dialog.ui:21 -msgid "" -"Copy technical details to clipboard for pasting into an email or bug report" -msgstr "" -"Copia els detalls tècnics al porta-retalls per enganxar-los a un informe de " -"correu electrònic o d'error" - -#: ui/problem-details-dialog.ui:73 -msgid "" -"If the problem is serious or persists, please copy and send these details to " -"the mailing list " -"or file a new " -"bug report." -msgstr "" -"Si el problema és greu o persisteix, copia i envia aquestes dades a la llista de correu o " -"envia un nou " -"informe d’error." - -#: ui/problem-details-dialog.ui:89 -msgid "Details:" -msgstr "_Detalls:" - #: ui/upgrade_dialog.glade:60 msgid "Geary update in progress…" msgstr "Actualització del Geary en curs…" - -#~ msgid "Geary Email" -#~ msgstr "Client de correu Geary" - -#~ msgid "Mail Client" -#~ msgstr "Client de correu" - -#~ msgid "Geary Mail" -#~ msgstr "Geary Mail" - -#~ msgid "Additional addresses for %s" -#~ msgstr "Adreces addicionals per a %s" - -#~ msgid "First Last" -#~ msgstr "Primer últim" - -#~ msgid "Enter your account information to get started." -#~ msgstr "Introduïu la informació del vostre compte per començar." - -#~ msgid "Edit" -#~ msgstr "Edita" - -#~ msgid "Preview" -#~ msgstr "Previsualització" - -#~ msgid "Remem_ber passwords" -#~ msgstr "Recorda _contrasenyes" - -#~ msgid "Remem_ber password" -#~ msgstr "Recorda la _contrasenya" - -#~ msgid "Unable to validate:\n" -#~ msgstr "No s'ha pogut validar:\n" - -#~ msgid " • Invalid account nickname.\n" -#~ msgstr " • Sobrenom de compte no vàlid .\n" - -#~ msgid " • Email address already added to Geary.\n" -#~ msgstr " • L'adreça de correu electrònic ja s'ha afegit a Geary.\n" - -#~ msgid " • IMAP connection error.\n" -#~ msgstr " • Error de connexió d'IMAP.\n" - -#~ msgid " • IMAP username or password incorrect.\n" -#~ msgstr " • Nom d'usuari o contrasenya d'IMAP incorrecte.\n" - -#~ msgid " • SMTP connection error.\n" -#~ msgstr " • Error de connexió SMTP.\n" - -#~ msgid " • SMTP username or password incorrect.\n" -#~ msgstr " • Nom d'usuari o contrasenya d'SMTP incorrecte.\n" - -#~ msgid " • Connection error.\n" -#~ msgstr " • Error de connexió.\n" - -#~ msgid " • Username or password incorrect.\n" -#~ msgstr " • Nom d'usuari o contrasenya incorrecte.\n" - -#~ msgid "Delete conversations (Shift+Delete)" -#~ msgstr "Suprimeix les converses (Maj + Supr)" - -#~ msgid "Move conversations to Trash (Delete, Backspace)" -#~ msgstr "Mou les converses a la paperera (Esborrar, Retrocés)" - -#~ msgid "Archive conversations (A)" -#~ msgstr "Arxiva les converses (A)" - -#~ msgid "Mark conversations" -#~ msgstr "Marca les converses" - -#~ msgid "Add label to conversations" -#~ msgstr "Afegeix etiqueta a les converses" - -#~ msgid "Move conversations" -#~ msgstr "Mou les converses" - -#~ msgid "_Mark as…" -#~ msgstr "_Marca com..." - -#~ msgid "Add label" -#~ msgstr "Afegeix etiqueta" - -#~ msgid "_Label" -#~ msgstr "_Etiqueta" - -#~ msgid "_Move" -#~ msgstr "_Mou" - -#~ msgid "Compose new message (Ctrl+N, N)" -#~ msgstr "Redacta un nou missatge (Ctrl+N, N)" - -#~ msgid "Reply (Ctrl+R, R)" -#~ msgstr "Respon (Ctrl+R, R)" - -#~ msgid "Reply all (Ctrl+Shift+R, Shift+R)" -#~ msgstr "Respon tot (Ctrl+Maj+R, Maj+R)" - -#~ msgid "Forward (Ctrl+L, F)" -#~ msgstr "Reenvia (Ctrl+L, F)" - -#~ msgid "Unable to store server trust exception" -#~ msgstr "No es pot emmagatzemar a excepció de la confiança del servidor" - -#~ msgid "Your settings are insecure" -#~ msgstr "La vostra configuració no és segura" - -#~ msgid "" -#~ "Your IMAP and/or SMTP settings do not specify SSL or TLS. This means " -#~ "your username and password could be read by another person on the " -#~ "network. Are you sure you want to do this?" -#~ msgstr "" -#~ "Els paràmetres IMAP i/o SMTP no especifiquen SSL o TLS. Això vol dir que " -#~ "el vostre nom d'usuari i la contrasenya podrien ser llegits per una altra " -#~ "persona de la xarxa. Esteu segur que voleu fer això?" - -#~ msgid "Co_ntinue" -#~ msgstr "Co_ntinua" - -#~ msgid "" -#~ "Geary encountered an error sending an email. If the problem persists, " -#~ "please manually delete the email from your Outbox folder." -#~ msgstr "" -#~ "Geary ha detectat un error enviant un correu electrònic. Si el problema " -#~ "persisteix, elimini manualment el correu electrònic de la seva carpeta: " -#~ "Safata de sortida." - -#~ msgid "" -#~ "Geary encountered an error saving a sent message to Sent Mail. The " -#~ "message will stay in your Outbox folder until you delete it." -#~ msgstr "" -#~ "Geary ha detectat un error en desar un missatge enviat al correu enviat. " -#~ "El missatge romandrà a la carpeta: Bústia de sortida fins que s'elimini." - -#~ msgid "Unable to open local mailbox for %s" -#~ msgstr "No es pot obrir la bústia local per a %s" - -#~ msgid "" -#~ "There was an error opening the local mail database for this account. This " -#~ "is possibly due to a file permissions problem.\n" -#~ "\n" -#~ "Please check that you have read/write permissions for all files in this " -#~ "directory:\n" -#~ "\n" -#~ "%s" -#~ msgstr "" -#~ "Hi ha hagut un error en obrir la base de dades de correu local per a " -#~ "aquest compte. Això és possiblement a causa d'un problema de permisos de " -#~ "fitxer.\n" -#~ "\n" -#~ "Comproveu que tingui permís de lectura/escriptura per a tots els fitxers " -#~ "en aquest directori:\n" -#~ "\n" -#~ "%s" - -#~ msgid "" -#~ "The version number of the local mail database is formatted for a newer " -#~ "version of Geary. Unfortunately, the database cannot be “rolled back” to " -#~ "work with this version of Geary.\n" -#~ "\n" -#~ "Please install the latest version of Geary and try again." -#~ msgstr "" -#~ "El número de versió de la base de dades de correu local està formatada " -#~ "per a una nova versió del Geary. La base de dades no pot ser «desfeta» " -#~ "per treballar amb aquesta versió del Geary.\n" -#~ "\n" -#~ "Instal·la l'última versió del Geary i torna a provar-ho." - -#~ msgid "" -#~ "There was an error opening the local account. This is probably due to " -#~ "connectivity issues.\n" -#~ "\n" -#~ "Please check your network connection and restart Geary." -#~ msgstr "" -#~ "Hi ha hagut un error en obrir el compte local. Això és probablement a " -#~ "causa de problemes de connectivitat.\n" -#~ "\n" -#~ "Comprovi la seva connexió a la xarxa i reinici el Geary." - -#~ msgid "To: " -#~ msgstr "Per a:" - -#~ msgid "Cc: " -#~ msgstr "Cc:" - -#~ msgid "Bcc: " -#~ msgstr "CCO:" - -#~ msgid "Geary will exit if you have no other open email accounts." -#~ msgstr "" -#~ "Geary es tancarà si no té altres comptes de correu electrònic oberts." - -#~ msgid "Other" -#~ msgstr "Un altre" - -#~ msgid "IMAP" -#~ msgstr "IMAP" - -#~ msgid "SMTP" -#~ msgstr "SMTP" - -#~ msgid "From: %s\n" -#~ msgstr "De: %s\n" - -#~ msgid "Subject: %s\n" -#~ msgstr "Assumpte: %s\n" - -#~ msgid "Date: %s\n" -#~ msgstr "Data: %s\n" - -#~ msgid "To: %s\n" -#~ msgstr "Per a: %s\n" - -#~ msgid "Cc: %s\n" -#~ msgstr "Cc: %s\n" - -#~ msgid "Cannot remove account " -#~ msgstr "" -#~ "No s'ha pogut eliminar el compte " - -#~ msgid "" -#~ "A composer window associated with this account is currently open. Send or " -#~ "discard the message and try again." -#~ msgstr "" -#~ "Hi ha una finestra de redacció associada a aquest compte que està oberta. " -#~ "Desa o descarta el missatge i torna-ho a intentar." - -#~ msgid "Please wait while Geary validates your account." -#~ msgstr "Espereu mentre Geary està validant el vostre compte." - -#~ msgid "Try Again" -#~ msgstr "Torna a provar" - -#~ msgid "" -#~ "Some email services require additional addresses be configured on the " -#~ "server. Contact your email provider for more information." -#~ msgstr "" -#~ "Alguns serveis de correu electrònic requereixen adreces addicionals per " -#~ "poder configurar el servidor. Poseu-vos en contacte amb el proveïdor de " -#~ "correu electrònic per obtenir més informació." - -#~ msgid "_Update" -#~ msgstr "Act_ualització" - -#~ msgid "A_ccounts" -#~ msgstr "_Comptes" - -#~ msgid "E_mail address" -#~ msgstr "_Adreça de correu electrònic" - -#~ msgid "_Password" -#~ msgstr "_Contrasenya" - -#~ msgid "S_ervice" -#~ msgstr "S_ervei" - -#~ msgid "N_ame" -#~ msgstr "N_om" - -#~ msgid "N_ickname" -#~ msgstr "_Sobrenom" - -#~ msgid "Work, Home, etc." -#~ msgstr "Treball, Casa, etc." - -#~ msgid "Addi_tional email addresses…" -#~ msgstr "_Adreces de correu electrònic addicionals..." - -#~ msgid "IMAP settings" -#~ msgstr "Configuració de l'IMAP" - -#~ msgid "Se_rver" -#~ msgstr "Se_rvidor" - -#~ msgid "P_ort" -#~ msgstr "P_ort" - -#~ msgid "Ser_ver" -#~ msgstr "Ser_vidor" - -#~ msgid "Por_t" -#~ msgstr "Por_t" - -#~ msgid "User_name" -#~ msgstr "_Nom d'usuari" - -#~ msgid "Pass_word" -#~ msgstr "Contrasen_ya" - -#~ msgid "SMTP password" -#~ msgstr "Contrasenya SMTP" - -#~ msgid "_Username" -#~ msgstr "Nom d'_usuari" - -#~ msgid "IMAP password" -#~ msgstr "Contrasenya IMAP" - -#~ msgid "Encr_yption" -#~ msgstr "Encr_iptació" - -#~ msgid "Encrypt_ion" -#~ msgstr "Encriptac_ió" - -#~ msgid "STARTTLS" -#~ msgstr "STARTTLS" - -#~ msgid "No authentication re_quired" -#~ msgstr "No es re_quereix autenticació" - -#~ msgid "Use IMAP cre_dentials" -#~ msgstr "_Utilitza credencials IMAP" - -#~ msgid "Composer" -#~ msgstr "Editor" - -#~ msgid "Si_gn emails (HTML allowed):" -#~ msgstr "_Signa missatges de correu electrònic (HTML permès):" - -#~ msgid "Storage" -#~ msgstr "Emmagatzematge" - -#~ msgid "Empty Spam or Trash folders" -#~ msgstr "Buida les carpetes de Correu brossa i la Paperera" - -#~ msgid "Geary will run in the background and notify of new mail" -#~ msgstr "" -#~ "El Geary s'executarà en segon pla i notifica els nous missatges de correu" - -#~ msgid "" -#~ "Are you sure you want to remove " -#~ "this account? " -#~ msgstr "" -#~ "N'esteu segur que voleu eliminar " -#~ "aquest compte? " - -#~ msgid "" -#~ "All email associated with this account will be removed from your " -#~ "computer. This will not affect email on the server." -#~ msgstr "" -#~ "Tots els missatges associats a aquest compte s'eliminaran del vostre " -#~ "ordinador. Això no afectarà els missatges al servidor." - -#~ msgid "Nickname:" -#~ msgstr "Sobrenom:" - -#, fuzzy -#~ msgid "Copyright 2011-2015 Yorba Foundation" -#~ msgstr "Copyright 2011-2013 Yorba Foundation" - -#~ msgid "_Save As..." -#~ msgstr "_Desa i anomena..." - -#~ msgid "Save A_ttachment..." -#~ msgid_plural "Save All A_ttachments..." -#~ msgstr[0] "Desa el fitxer ad_junt..." -#~ msgstr[1] "Desa tots els fitxers ad_junts..." - -#~ msgid "none" -#~ msgstr "cap" - -#~ msgid "_Left" -#~ msgstr "_Esquerra" - -#~ msgid "_Right" -#~ msgstr "_Dreta" - -#~ msgid "_Center" -#~ msgstr "_Centrat" - -#~ msgid "_Justify" -#~ msgstr "_Justificat" - -#~ msgid "Link (Ctrl+L)" -#~ msgstr "Enllaç (Ctrl+L)" - -#~ msgid "Large" -#~ msgstr "Gran" - -#~ msgid "Medium" -#~ msgstr "Mitjà" - -#~ msgid "Small" -#~ msgstr "Petit" - -#~ msgid "Sans Serif" -#~ msgstr "Sans Serif" - -#~ msgid "Serif" -#~ msgstr "Serif" - -#, fuzzy -#~ msgid "Detach" -#~ msgstr "_Adjunta" - -#~ msgid "_Attach File" -#~ msgstr "_Adjunta fitxer" - -#~ msgid "Archive conversation (Delete, Backspace, A)" -#~ msgstr "Arxiva la conversa (Suprimir, Retrocés, A)" - -#~ msgid "Password:" -#~ msgstr "Contrasenya:" - -#~ msgid "Port:" -#~ msgstr "Port:" - -#~ msgid "Real name:" -#~ msgstr "Nom real:" - -#~ msgid "SSL" -#~ msgstr "SSL" - -#~ msgid "SSL/TLS encryption:" -#~ msgstr "Xifrat SSL/TLS:" - -#~ msgid "Server:" -#~ msgstr "Servidor:" - -#~ msgid "Unable to login to email server" -#~ msgstr "" -#~ "No s'ha pogut entrar al teu compte al servidor del correu electrònic" From 0ddf290a30426845b895f94d7cb2659930da04e6 Mon Sep 17 00:00:00 2001 From: Anders Jonsson Date: Mon, 16 Mar 2020 18:37:39 +0000 Subject: [PATCH 064/336] Update Swedish translation --- po/sv.po | 43 ++++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/po/sv.po b/po/sv.po index 657a757b..87536757 100644 --- a/po/sv.po +++ b/po/sv.po @@ -18,8 +18,8 @@ msgid "" msgstr "" "Project-Id-Version: geary\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2020-02-25 11:10+0000\n" -"PO-Revision-Date: 2020-03-13 10:11+0100\n" +"POT-Creation-Date: 2020-03-16 11:21+0000\n" +"PO-Revision-Date: 2020-03-16 19:35+0100\n" "Last-Translator: Anders Jonsson \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -1094,12 +1094,12 @@ msgid_plural "Conversations un-labelled as %s" msgstr[0] "Konversation inte längre etiketterad som %s" msgstr[1] "Konversationer inte längre etiketterade som %s" -#: src/client/application/application-controller.vala:1222 +#: src/client/application/application-controller.vala:1223 #, c-format msgid "Unable to open the database for %s" msgstr "Kunde inte öppna databasen för %s" -#: src/client/application/application-controller.vala:1223 +#: src/client/application/application-controller.vala:1224 #, c-format msgid "" "There was an error opening the local mail database for this account. This is " @@ -1122,20 +1122,20 @@ msgstr "" "Att bygga om databasen medför att alla lokala e-postmeddelanden och bifogade " "filer förstörs. E-post på din server är inte berörda av felet." -#: src/client/application/application-controller.vala:1225 +#: src/client/application/application-controller.vala:1226 msgid "_Rebuild" msgstr "_Bygg om" -#: src/client/application/application-controller.vala:1225 +#: src/client/application/application-controller.vala:1226 msgid "E_xit" msgstr "_Avsluta" -#: src/client/application/application-controller.vala:1235 +#: src/client/application/application-controller.vala:1236 #, c-format msgid "Unable to rebuild database for “%s”" msgstr "Kunde inte bygga om databasen för ”%s”" -#: src/client/application/application-controller.vala:1236 +#: src/client/application/application-controller.vala:1237 #, c-format msgid "" "Error during rebuild:\n" @@ -1148,34 +1148,34 @@ msgstr "" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:1559 +#: src/client/application/application-controller.vala:1561 #, c-format msgid "Email sent to %s" msgstr "E-post skickad till %s" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2642 +#: src/client/application/application-controller.vala:2656 #, c-format msgid "Email to %s queued for delivery" msgstr "E-post till %s köad för leverans" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2706 +#: src/client/application/application-controller.vala:2720 #, c-format msgid "Email to %s saved" msgstr "E-post till %s sparad" #. / Translators: A label for an in-app notification. -#: src/client/application/application-controller.vala:2721 -#: src/client/application/application-controller.vala:2779 +#: src/client/application/application-controller.vala:2735 +#: src/client/application/application-controller.vala:2793 msgid "Composer could not be restored" msgstr "Redigeraren kunde inte återställas" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2764 +#: src/client/application/application-controller.vala:2778 #, c-format msgid "Email to %s discarded" msgstr "E-post till %s förkastad" @@ -1805,24 +1805,33 @@ msgstr "Ämne:" msgid "This email address may have been forged" msgstr "E-postadressen kan ha förfalskats" +#: src/client/conversation-viewer/conversation-message.vala:231 +msgid "Show less" +msgstr "Visa mindre" + +#: src/client/conversation-viewer/conversation-message.vala:252 +#, c-format +msgid "%d more…" +msgstr "%d till…" + #. Compact headers. These are partially done here and partially #. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:439 +#: src/client/conversation-viewer/conversation-message.vala:521 msgid "No sender" msgstr "Ingen avsändare" #. Translators: This separates multiple 'from' #. addresses in the compact header for a message. -#: src/client/conversation-viewer/conversation-message.vala:831 +#: src/client/conversation-viewer/conversation-message.vala:913 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Image Date: Tue, 17 Mar 2020 14:45:54 +1100 Subject: [PATCH 065/336] Util.Cache.Lru: Fix intermitted unit test failure Cache behaviour was undefined if two entries were added in the same microsecond. This adds a case to the comparison to stablise the sort order when that occurs. Fixes #739 --- src/client/util/util-cache.vala | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/client/util/util-cache.vala b/src/client/util/util-cache.vala index 44097d89..f054e32e 100644 --- a/src/client/util/util-cache.vala +++ b/src/client/util/util-cache.vala @@ -13,8 +13,15 @@ public class Util.Cache.Lru : Geary.BaseObject { public static int lru_compare(CacheEntry a, CacheEntry b) { - return (a.key == b.key) - ? 0 : (int) (a.last_used - b.last_used); + if (a.key == b.key) { + return 0; + } + if (a.last_used != b.last_used) { + return (int) (a.last_used - b.last_used); + } + // If all else is equal, use the keys themselves to + // stabilise the sorting order + return GLib.strcmp(a.key, b.key); } From dd053ebfbe93bd874332f88fed350bc5058b9a57 Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Mon, 16 Mar 2020 08:00:50 -0400 Subject: [PATCH 066/336] Make g_mime_filter_filter implementations more robust (closes #725) By default, vala appears to translate an "out uint8[]" argument's size as a gint*. but the g_mime_filter_filter implementation expects a gsize*. This Just Works accidentally on most architectures, but fails on big-endian 64-bit architectures where sizeof(int) == 4, like s390x. See #725 Signed-off-by: Daniel Kahn Gillmor --- src/engine/rfc822/rfc822-gmime-filter-blockquotes.vala | 6 +++--- src/engine/rfc822/rfc822-gmime-filter-flowed.vala | 4 ++-- src/engine/rfc822/rfc822-gmime-filter-plain.vala | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/engine/rfc822/rfc822-gmime-filter-blockquotes.vala b/src/engine/rfc822/rfc822-gmime-filter-blockquotes.vala index 6f8c118f..8cf7563d 100644 --- a/src/engine/rfc822/rfc822-gmime-filter-blockquotes.vala +++ b/src/engine/rfc822/rfc822-gmime-filter-blockquotes.vala @@ -49,7 +49,7 @@ private class Geary.RFC822.FilterBlockquotes : GMime.Filter { return new_filter; } - private void do_filter(uint8[] inbuf, size_t prespace, out unowned uint8[] processed_buffer, + private void do_filter([CCode (array_length_type = "gsize")] uint8[] inbuf, size_t prespace, [CCode (array_length_type = "gsize")] out unowned uint8[] processed_buffer, out size_t outprespace, bool flush) { // This may not be strictly necessary. @@ -122,12 +122,12 @@ private class Geary.RFC822.FilterBlockquotes : GMime.Filter { outprespace = this.outpre; } - public override void filter(uint8[] inbuf, size_t prespace, out unowned uint8[] processed_buffer, + public override void filter([CCode (array_length_type = "gsize")] uint8[] inbuf, size_t prespace, [CCode (array_length_type = "gsize")] out unowned uint8[] processed_buffer, out size_t outprespace) { do_filter(inbuf, prespace, out processed_buffer, out outprespace, false); } - public override void complete(uint8[] inbuf, size_t prespace, out unowned uint8[] processed_buffer, + public override void complete([CCode (array_length_type = "gsize")] uint8[] inbuf, size_t prespace, [CCode (array_length_type = "gsize")] out unowned uint8[] processed_buffer, out size_t outprespace) { do_filter(inbuf, prespace, out processed_buffer, out outprespace, true); } diff --git a/src/engine/rfc822/rfc822-gmime-filter-flowed.vala b/src/engine/rfc822/rfc822-gmime-filter-flowed.vala index d018c537..ffa19009 100644 --- a/src/engine/rfc822/rfc822-gmime-filter-flowed.vala +++ b/src/engine/rfc822/rfc822-gmime-filter-flowed.vala @@ -57,7 +57,7 @@ private class Geary.RFC822.FilterFlowed : GMime.Filter { return new_filter; } - public override void filter(uint8[] inbuf, size_t prespace, out unowned uint8[] processed_buffer, + public override void filter([CCode (array_length_type = "gsize")] uint8[] inbuf, size_t prespace, [CCode (array_length_type = "gsize")] out unowned uint8[] processed_buffer, out size_t outprespace) { // Worst-case scenario: We are about to leave the prefix, @@ -147,7 +147,7 @@ private class Geary.RFC822.FilterFlowed : GMime.Filter { outprespace = this.outpre; } - public override void complete(uint8[] inbuf, size_t prespace, out unowned uint8[] processed_buffer, + public override void complete([CCode (array_length_type = "gsize")] uint8[] inbuf, size_t prespace, [CCode (array_length_type = "gsize")] out unowned uint8[] processed_buffer, out size_t outprespace) { filter(inbuf, prespace, out processed_buffer, out outprespace); } diff --git a/src/engine/rfc822/rfc822-gmime-filter-plain.vala b/src/engine/rfc822/rfc822-gmime-filter-plain.vala index b38baac0..36c970df 100644 --- a/src/engine/rfc822/rfc822-gmime-filter-plain.vala +++ b/src/engine/rfc822/rfc822-gmime-filter-plain.vala @@ -26,7 +26,7 @@ private class Geary.RFC822.FilterPlain : GMime.Filter { return new_filter; } - public override void filter(uint8[] inbuf, size_t prespace, out unowned uint8[] processed_buffer, + public override void filter([CCode (array_length_type = "gsize")] uint8[] inbuf, size_t prespace, [CCode (array_length_type = "gsize")] out unowned uint8[] processed_buffer, out size_t outprespace) { // This may not be strictly necessary. @@ -56,7 +56,7 @@ private class Geary.RFC822.FilterPlain : GMime.Filter { outprespace = this.outpre; } - public override void complete(uint8[] inbuf, size_t prespace, out unowned uint8[] processed_buffer, + public override void complete([CCode (array_length_type = "gsize")] uint8[] inbuf, size_t prespace, [CCode (array_length_type = "gsize")] out unowned uint8[] processed_buffer, out size_t outprespace) { filter(inbuf, prespace, out processed_buffer, out outprespace); } From f2be8ef5272bfb3ffeda656a1769fc0f640bc1ba Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Tue, 17 Mar 2020 19:16:36 +1100 Subject: [PATCH 067/336] ConverationViewerMessage: Pull markup out of translatable strs Per GitLab comment on 58ffad83, this will make translations less error prone. --- .../conversation-viewer/conversation-message.vala | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/client/conversation-viewer/conversation-message.vala b/src/client/conversation-viewer/conversation-message.vala index 08a15b47..22782c4c 100644 --- a/src/client/conversation-viewer/conversation-message.vala +++ b/src/client/conversation-viewer/conversation-message.vala @@ -228,7 +228,10 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { base.add(this.show_more); this.show_less = this.create_label(); - this.show_less.label = _("Show less"); + // Translators: Label text displayed when there are too + // many email addresses to be shown by default in an + // email's header, but they are all being shown anyway. + this.show_less.label = "%s".printf(_("Show less")); this.show_less.activate_link.connect(() => { this.set_expanded(false); }); @@ -249,7 +252,13 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface { this.invalidate_filter(); } - this.show_more.label = _("%d more…").printf(this.children - SHORT_RESULTS); + this.show_more.label = "%s".printf( + // Translators: Label text displayed when there are + // too many email addresses to be shown by default in + // an email's header. The string substitution is the + // number of extra email to be shown. + _("%d more…").printf(this.children - SHORT_RESULTS) + ); } From c3946110379d806fb2714675a22a1c87567452fe Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Mon, 2 Mar 2020 10:36:30 +1100 Subject: [PATCH 068/336] Application.Controller: Make plugin manager public Allow other application components to access the plugin manager, rename property for brevity. --- .../application/application-controller.vala | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/client/application/application-controller.vala b/src/client/application/application-controller.vala index 4893ca56..e6980eb2 100644 --- a/src/client/application/application-controller.vala +++ b/src/client/application/application-controller.vala @@ -62,6 +62,9 @@ internal class Application.Controller : Geary.BaseObject { /** Account management for the application. */ public Accounts.Manager account_manager { get; private set; } + /** Plugin manager for the application. */ + public PluginManager plugins { get; private set; } + /** Certificate management for the application. */ public Application.CertificateManager certificate_manager { get; private set; @@ -82,8 +85,6 @@ internal class Application.Controller : Geary.BaseObject { private UpgradeDialog upgrade_dialog; private Folks.IndividualAggregator folks; - private PluginManager plugin_manager; - // List composers that have not yet been closed private Gee.Collection composer_widgets = new Gee.LinkedList(); @@ -162,13 +163,13 @@ internal class Application.Controller : Geary.BaseObject { } - this.plugin_manager = new PluginManager(application); - this.plugin_manager.notifications = new NotificationContext( + this.plugins = new PluginManager(application); + this.plugins.notifications = new NotificationContext( this.avatars, this.get_contact_store_for_account, this.should_notify_new_messages ); - this.plugin_manager.load(); + this.plugins.load(); // Migrate configuration if necessary. Migrate.xdg_config_dir(this.application.get_user_data_directory(), @@ -299,7 +300,7 @@ internal class Application.Controller : Geary.BaseObject { } // Release general resources now there's no more UI - this.plugin_manager.notifications.clear_folders(); + this.plugins.notifications.clear_folders(); this.avatars.close(); this.pending_mailtos.clear(); this.composer_widgets.clear(); @@ -860,7 +861,7 @@ internal class Application.Controller : Geary.BaseObject { internal void register_window(MainWindow window) { window.retry_service_problem.connect(on_retry_service_problem); window.folder_list.set_new_messages_monitor( - this.plugin_manager.notifications + this.plugins.notifications ); } @@ -1265,12 +1266,12 @@ internal class Application.Controller : Geary.BaseObject { Geary.SpecialFolderType old_type, Geary.SpecialFolderType new_type) { // Update notifications - this.plugin_manager.notifications.remove_folder(folder); + this.plugins.notifications.remove_folder(folder); if (folder.special_folder_type == Geary.SpecialFolderType.INBOX || (folder.special_folder_type == Geary.SpecialFolderType.NONE && is_inbox_descendant(folder))) { Geary.AccountInformation info = folder.account.information; - this.plugin_manager.notifications.add_folder( + this.plugins.notifications.add_folder( folder, this.accounts.get(info).cancellable ); } @@ -1300,7 +1301,7 @@ internal class Application.Controller : Geary.BaseObject { folder.open_async.begin(NO_DELAY, cancellable); // Always notify for new messages in the Inbox - this.plugin_manager.notifications.add_folder( + this.plugins.notifications.add_folder( folder, cancellable ); break; @@ -1309,7 +1310,7 @@ internal class Application.Controller : Geary.BaseObject { // Only notify for new messages in non-special // descendants of the Inbox if (is_inbox_descendant(folder)) { - this.plugin_manager.notifications.add_folder( + this.plugins.notifications.add_folder( folder, cancellable ); } @@ -1331,14 +1332,14 @@ internal class Application.Controller : Geary.BaseObject { switch (folder.special_folder_type) { case Geary.SpecialFolderType.INBOX: context.inbox = null; - this.plugin_manager.notifications.remove_folder(folder); + this.plugins.notifications.remove_folder(folder); break; case Geary.SpecialFolderType.NONE: // Only notify for new messages in non-special // descendants of the Inbox if (is_inbox_descendant(folder)) { - this.plugin_manager.notifications.remove_folder(folder); + this.plugins.notifications.remove_folder(folder); } break; } @@ -1373,7 +1374,7 @@ internal class Application.Controller : Geary.BaseObject { Geary.Folder? selected = ( (window != null) ? window.selected_folder : null ); - NotificationContext notifications = this.plugin_manager.notifications; + NotificationContext notifications = this.plugins.notifications; if (selected != null && ( !notifications.get_folders().contains(selected) || should_notify_new_messages(selected))) { @@ -1570,7 +1571,7 @@ internal class Application.Controller : Geary.BaseObject { AccountContext? context = this.accounts.get(service.account); if (context != null) { - this.plugin_manager.notifications.email_sent(context.account, sent); + this.plugins.notifications.email_sent(context.account, sent); } } From 655f1dcf831ea6c47c4b5f0f307376f570538b58 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Mon, 2 Mar 2020 10:38:08 +1100 Subject: [PATCH 069/336] Components.PreferencesWindow: Make application prop nullable It should be nullable because it can be null, update call sites to reflect this. --- .../components-preferences-window.vala | 62 ++++++++++--------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/src/client/components/components-preferences-window.vala b/src/client/components/components-preferences-window.vala index 0a159446..794f3650 100644 --- a/src/client/components/components-preferences-window.vala +++ b/src/client/components/components-preferences-window.vala @@ -23,7 +23,7 @@ public class Components.PreferencesWindow : Hdy.PreferencesWindow { /** Returns the window's associated client application instance. */ - public new Application.Client application { + public new Application.Client? application { get { return (Application.Client) base.get_application(); } set { base.set_application(value); } } @@ -115,32 +115,35 @@ public class Components.PreferencesWindow : Hdy.PreferencesWindow { window_actions.add_action_entries(WINDOW_ACTIONS, this); insert_action_group(Action.Window.GROUP_NAME, window_actions); - Application.Configuration config = this.application.config; - config.bind( - Application.Configuration.AUTOSELECT_KEY, - autoselect, - "state" - ); - config.bind( - Application.Configuration.DISPLAY_PREVIEW_KEY, - display_preview, - "state" - ); - config.bind( - Application.Configuration.FOLDER_LIST_PANE_HORIZONTAL_KEY, - three_pane_view, - "state" - ); - config.bind( - Application.Configuration.SINGLE_KEY_SHORTCUTS, - single_key_shortucts, - "state" - ); - config.bind( - Application.Configuration.STARTUP_NOTIFICATIONS_KEY, - startup_notifications, - "state" - ); + Application.Client? application = this.application; + if (application != null) { + Application.Configuration config = application.config; + config.bind( + Application.Configuration.AUTOSELECT_KEY, + autoselect, + "state" + ); + config.bind( + Application.Configuration.DISPLAY_PREVIEW_KEY, + display_preview, + "state" + ); + config.bind( + Application.Configuration.FOLDER_LIST_PANE_HORIZONTAL_KEY, + three_pane_view, + "state" + ); + config.bind( + Application.Configuration.SINGLE_KEY_SHORTCUTS, + single_key_shortucts, + "state" + ); + config.bind( + Application.Configuration.STARTUP_NOTIFICATIONS_KEY, + startup_notifications, + "state" + ); + } this.delete_event.connect(on_delete); } @@ -151,7 +154,10 @@ public class Components.PreferencesWindow : Hdy.PreferencesWindow { private bool on_delete() { // Sync startup notification option with file state - this.application.autostart.sync_with_config(); + Application.Client? application = this.application; + if (application != null) { + application.autostart.sync_with_config(); + } return Gdk.EVENT_PROPAGATE; } From 1143bb03f498ad9cf289a4b6150d20dbca33ce28 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Mon, 2 Mar 2020 10:54:57 +1100 Subject: [PATCH 070/336] Application.PluginManager: Convert ctor to RAII Do all loading up front in the manager's constructor so it's ready to go after being constructed. --- .../application/application-controller.vala | 28 ++++++++++--------- .../application-plugin-manager.vala | 12 ++++---- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/client/application/application-controller.vala b/src/client/application/application-controller.vala index e6980eb2..f4b6d5e4 100644 --- a/src/client/application/application-controller.vala +++ b/src/client/application/application-controller.vala @@ -79,6 +79,8 @@ internal class Application.Controller : Geary.BaseObject { private Gee.Map accounts = new Gee.HashMap(); + private NotificationContext notifications; + // Cancelled if the controller is closed private GLib.Cancellable controller_open; @@ -163,13 +165,13 @@ internal class Application.Controller : Geary.BaseObject { } - this.plugins = new PluginManager(application); - this.plugins.notifications = new NotificationContext( + this.notifications = new NotificationContext( this.avatars, this.get_contact_store_for_account, this.should_notify_new_messages ); - this.plugins.load(); + + this.plugins = new PluginManager(this.application, this.notifications); // Migrate configuration if necessary. Migrate.xdg_config_dir(this.application.get_user_data_directory(), @@ -300,7 +302,7 @@ internal class Application.Controller : Geary.BaseObject { } // Release general resources now there's no more UI - this.plugins.notifications.clear_folders(); + this.notifications.clear_folders(); this.avatars.close(); this.pending_mailtos.clear(); this.composer_widgets.clear(); @@ -861,7 +863,7 @@ internal class Application.Controller : Geary.BaseObject { internal void register_window(MainWindow window) { window.retry_service_problem.connect(on_retry_service_problem); window.folder_list.set_new_messages_monitor( - this.plugins.notifications + this.notifications ); } @@ -1266,12 +1268,12 @@ internal class Application.Controller : Geary.BaseObject { Geary.SpecialFolderType old_type, Geary.SpecialFolderType new_type) { // Update notifications - this.plugins.notifications.remove_folder(folder); + this.notifications.remove_folder(folder); if (folder.special_folder_type == Geary.SpecialFolderType.INBOX || (folder.special_folder_type == Geary.SpecialFolderType.NONE && is_inbox_descendant(folder))) { Geary.AccountInformation info = folder.account.information; - this.plugins.notifications.add_folder( + this.notifications.add_folder( folder, this.accounts.get(info).cancellable ); } @@ -1301,7 +1303,7 @@ internal class Application.Controller : Geary.BaseObject { folder.open_async.begin(NO_DELAY, cancellable); // Always notify for new messages in the Inbox - this.plugins.notifications.add_folder( + this.notifications.add_folder( folder, cancellable ); break; @@ -1310,7 +1312,7 @@ internal class Application.Controller : Geary.BaseObject { // Only notify for new messages in non-special // descendants of the Inbox if (is_inbox_descendant(folder)) { - this.plugins.notifications.add_folder( + this.notifications.add_folder( folder, cancellable ); } @@ -1332,14 +1334,14 @@ internal class Application.Controller : Geary.BaseObject { switch (folder.special_folder_type) { case Geary.SpecialFolderType.INBOX: context.inbox = null; - this.plugins.notifications.remove_folder(folder); + this.notifications.remove_folder(folder); break; case Geary.SpecialFolderType.NONE: // Only notify for new messages in non-special // descendants of the Inbox if (is_inbox_descendant(folder)) { - this.plugins.notifications.remove_folder(folder); + this.notifications.remove_folder(folder); } break; } @@ -1374,7 +1376,7 @@ internal class Application.Controller : Geary.BaseObject { Geary.Folder? selected = ( (window != null) ? window.selected_folder : null ); - NotificationContext notifications = this.plugins.notifications; + NotificationContext notifications = this.notifications; if (selected != null && ( !notifications.get_folders().contains(selected) || should_notify_new_messages(selected))) { @@ -1571,7 +1573,7 @@ internal class Application.Controller : Geary.BaseObject { AccountContext? context = this.accounts.get(service.account); if (context != null) { - this.plugins.notifications.email_sent(context.account, sent); + this.notifications.email_sent(context.account, sent); } } diff --git a/src/client/application/application-plugin-manager.vala b/src/client/application/application-plugin-manager.vala index 746d0568..177b8a5c 100644 --- a/src/client/application/application-plugin-manager.vala +++ b/src/client/application/application-plugin-manager.vala @@ -11,23 +11,23 @@ public class Application.PluginManager : GLib.Object { - public NotificationContext notifications { get; set; } - private Client application; private Peas.Engine engine; - private Peas.ExtensionSet? notification_extensions = null; private bool is_shutdown = false; + private Peas.ExtensionSet notification_extensions; + private NotificationContext notifications; - public PluginManager(Client application) { + + public PluginManager(Client application, + NotificationContext notifications) { this.application = application; this.engine = Peas.Engine.get_default(); this.engine.add_search_path( application.get_app_plugins_dir().get_path(), null ); - } - public void load() { + this.notifications = notifications; this.notification_extensions = new Peas.ExtensionSet( this.engine, typeof(Plugin.Notification), From f567777d4688148d7e094992f5ec1f6d7b7b3748 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Mon, 2 Mar 2020 12:02:12 +1100 Subject: [PATCH 071/336] Plugins: Use module name as plugin names Drop the library prefix and suffix from plugin module names, use that instead of the human-readable name in the plugin manager. --- .../application/application-plugin-manager.vala | 16 +++++++--------- .../desktop-notifications.plugin.in | 2 +- .../messaging-menu/messaging-menu.plugin.in | 2 +- .../notification-badge.plugin.in | 2 +- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/client/application/application-plugin-manager.vala b/src/client/application/application-plugin-manager.vala index 177b8a5c..ffc76de1 100644 --- a/src/client/application/application-plugin-manager.vala +++ b/src/client/application/application-plugin-manager.vala @@ -47,19 +47,17 @@ public class Application.PluginManager : GLib.Object { } }); - // Load built-in plugins by default foreach (Peas.PluginInfo info in this.engine.get_plugin_list()) { + string name = info.get_module_name(); try { - info.is_available(); - if (info.is_builtin()) { - debug("Loading built-in plugin: %s", info.get_name()); - this.engine.load_plugin(info); - } else { - debug("Not loading plugin: %s", info.get_name()); + if (info.is_available()) { + if (info.is_builtin()) { + debug("Loading built-in plugin: %s", name); + this.engine.load_plugin(info); + } } } catch (GLib.Error err) { - warning("Plugin %s not available: %s", - info.get_name(), err.message); + warning("Plugin %s not available: %s", name, err.message); } } } diff --git a/src/client/plugin/desktop-notifications/desktop-notifications.plugin.in b/src/client/plugin/desktop-notifications/desktop-notifications.plugin.in index 837778b9..6c8c9f39 100644 --- a/src/client/plugin/desktop-notifications/desktop-notifications.plugin.in +++ b/src/client/plugin/desktop-notifications/desktop-notifications.plugin.in @@ -1,5 +1,5 @@ [Plugin] -Module=libdesktop-notifications.so +Module=desktop-notifications Name=Desktop Notifications Description=Displays desktop notifications when new email is delivered Builtin=true diff --git a/src/client/plugin/messaging-menu/messaging-menu.plugin.in b/src/client/plugin/messaging-menu/messaging-menu.plugin.in index afa06422..f02a2e78 100644 --- a/src/client/plugin/messaging-menu/messaging-menu.plugin.in +++ b/src/client/plugin/messaging-menu/messaging-menu.plugin.in @@ -1,5 +1,5 @@ [Plugin] -Module=libmessaging-menu-geary.so +Module=messaging-menu-geary Name=Messaging Menu Description=Displays Unity Messaging Menu notifications for new email Builtin=true diff --git a/src/client/plugin/notification-badge/notification-badge.plugin.in b/src/client/plugin/notification-badge/notification-badge.plugin.in index ca4fdfdf..611ec691 100644 --- a/src/client/plugin/notification-badge/notification-badge.plugin.in +++ b/src/client/plugin/notification-badge/notification-badge.plugin.in @@ -1,5 +1,5 @@ [Plugin] -Module=libnotification-badge.so +Module=notification-badge Name=Notification Badge Description=Displays an application badge showing the number of unread messages Builtin=true From 627bfb7c89aa55ae7b1f8b05f3ef4e28002424c8 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Mon, 2 Mar 2020 12:04:16 +1100 Subject: [PATCH 072/336] Application.PluginManager: Only load builtins if in install dir Only trust builtin plugins if they have been installed. --- src/client/application/application-plugin-manager.vala | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/client/application/application-plugin-manager.vala b/src/client/application/application-plugin-manager.vala index ffc76de1..ffcc256d 100644 --- a/src/client/application/application-plugin-manager.vala +++ b/src/client/application/application-plugin-manager.vala @@ -23,9 +23,9 @@ public class Application.PluginManager : GLib.Object { NotificationContext notifications) { this.application = application; this.engine = Peas.Engine.get_default(); - this.engine.add_search_path( - application.get_app_plugins_dir().get_path(), null - ); + + string builtin_path = application.get_app_plugins_dir().get_path(); + this.engine.add_search_path(builtin_path, null); this.notifications = notifications; this.notification_extensions = new Peas.ExtensionSet( @@ -51,7 +51,8 @@ public class Application.PluginManager : GLib.Object { string name = info.get_module_name(); try { if (info.is_available()) { - if (info.is_builtin()) { + if (info.is_builtin() && + info.get_module_dir().has_prefix(builtin_path)) { debug("Loading built-in plugin: %s", name); this.engine.load_plugin(info); } From 0c526f66448360f6c4aa737d0e4aefd61d2c0feb Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Mon, 2 Mar 2020 12:08:31 +1100 Subject: [PATCH 073/336] Plugins: Support loading optional plugins Add optional-plugins GSetting, automatically load any plugins specified there at startup, and allow getting, loading and unloading optional plugins via Application.PluginManager. --- desktop/org.gnome.Geary.gschema.xml | 6 ++ .../application-configuration.vala | 15 +++++ .../application-plugin-manager.vala | 61 +++++++++++++++++++ 3 files changed, 82 insertions(+) diff --git a/desktop/org.gnome.Geary.gschema.xml b/desktop/org.gnome.Geary.gschema.xml index e23e26a9..ac477a43 100644 --- a/desktop/org.gnome.Geary.gschema.xml +++ b/desktop/org.gnome.Geary.gschema.xml @@ -141,6 +141,12 @@ be displayed. + + [] + List of optional plugins + Plugins listed here will be loaded on startup. + + false Whether we migrated the old settings diff --git a/src/client/application/application-configuration.vala b/src/client/application/application-configuration.vala index 6cce6a7d..170c98ee 100644 --- a/src/client/application/application-configuration.vala +++ b/src/client/application/application-configuration.vala @@ -25,6 +25,7 @@ public class Application.Configuration : Geary.BaseObject { public const string FOLDER_LIST_PANE_POSITION_VERTICAL_KEY = "folder-list-pane-position-vertical"; public const string FORMATTING_TOOLBAR_VISIBLE = "formatting-toolbar-visible"; public const string MESSAGES_PANE_POSITION_KEY = "messages-pane-position"; + public const string OPTIONAL_PLUGINS = "optional-plugins"; public const string SEARCH_STRATEGY_KEY = "search-strategy"; public const string SINGLE_KEY_SHORTCUTS = "single-key-shortcuts"; public const string SPELL_CHECK_LANGUAGES = "spell-check-languages"; @@ -204,6 +205,20 @@ public class Application.Configuration : Geary.BaseObject { this.settings.set_value(COMPOSER_WINDOW_SIZE_KEY, value); } + /** + * Returns list of optional plugins to load by default + */ + public string[] get_optional_plugins() { + return this.settings.get_strv(OPTIONAL_PLUGINS); + } + + /** + * Sets the list of optional plugins to load by default + */ + public void set_optional_plugins(string[] value) { + this.settings.set_strv(OPTIONAL_PLUGINS, value); + } + /** * Returns enabled spell checker languages. * diff --git a/src/client/application/application-plugin-manager.vala b/src/client/application/application-plugin-manager.vala index ffcc256d..fd2c7caf 100644 --- a/src/client/application/application-plugin-manager.vala +++ b/src/client/application/application-plugin-manager.vala @@ -47,6 +47,7 @@ public class Application.PluginManager : GLib.Object { } }); + string[] optional_names = application.config.get_optional_plugins(); foreach (Peas.PluginInfo info in this.engine.get_plugin_list()) { string name = info.get_module_name(); try { @@ -55,6 +56,9 @@ public class Application.PluginManager : GLib.Object { info.get_module_dir().has_prefix(builtin_path)) { debug("Loading built-in plugin: %s", name); this.engine.load_plugin(info); + } else if (name in optional_names) { + debug("Loading optional plugin: %s", name); + this.engine.load_plugin(info); } } } catch (GLib.Error err) { @@ -63,4 +67,61 @@ public class Application.PluginManager : GLib.Object { } } + public Gee.List get_optional_plugins() { + var plugins = new Gee.LinkedList(); + foreach (Peas.PluginInfo plugin in this.engine.get_plugin_list()) { + try { + plugin.is_available(); + if (!plugin.is_builtin()) { + plugins.add(plugin); + } + } catch (GLib.Error err) { + warning( + "Plugin %s not available: %s", + plugin.get_module_name(), err.message + ); + } + } + return plugins; + } + + public bool load_optional(Peas.PluginInfo plugin) throws GLib.Error { + bool loaded = false; + if (plugin.is_available() && + !plugin.is_loaded() && + !plugin.is_builtin()) { + this.engine.load_plugin(plugin); + loaded = true; + string name = plugin.get_module_name(); + string[] optional_names = + this.application.config.get_optional_plugins(); + if (!(name in optional_names)) { + optional_names += name; + this.application.config.set_optional_plugins(optional_names); + } + } + return loaded; + } + + public bool unload_optional(Peas.PluginInfo plugin) throws GLib.Error { + bool unloaded = false; + if (plugin.is_available() && + plugin.is_loaded() && + !plugin.is_builtin()) { + this.engine.unload_plugin(plugin); + unloaded = true; + string name = plugin.get_module_name(); + string[] old_names = + this.application.config.get_optional_plugins(); + string[] new_names = new string[0]; + for (int i = 0; i < old_names.length; i++) { + if (old_names[i] != name) { + new_names += old_names[i]; + } + } + this.application.config.set_optional_plugins(new_names); + } + return unloaded; + } + } From c29078728402094220cc82ce390b68260a52e2ff Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Mon, 2 Mar 2020 12:25:08 +1100 Subject: [PATCH 074/336] Add UI to preferences window for managing optional plugins --- meson.build | 1 + .../application/application-client.vala | 3 +- .../components-preferences-window.vala | 86 ++++++++++++++++++- src/client/meson.build | 1 + 4 files changed, 89 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 43a46c1b..84fe0710 100644 --- a/meson.build +++ b/meson.build @@ -87,6 +87,7 @@ json_glib = dependency('json-glib-1.0', version: '>= 1.0') libhandy = dependency('libhandy-0.0', version: '>= 0.0.10') libmath = cc.find_library('m') libpeas = dependency('libpeas-1.0', version: '>= 1.24.0') +libpeas_gtk = dependency('libpeas-gtk-1.0', version: '>= 1.24.0') libsecret = dependency('libsecret-1', version: '>= 0.11') libsoup = dependency('libsoup-2.4', version: '>= 2.48') libunwind_dep = dependency( diff --git a/src/client/application/application-client.vala b/src/client/application/application-client.vala index ff4e51c7..45472b49 100644 --- a/src/client/application/application-client.vala +++ b/src/client/application/application-client.vala @@ -632,7 +632,8 @@ public class Application.Client : Gtk.Application { yield this.present(); Components.PreferencesWindow prefs = new Components.PreferencesWindow( - get_active_main_window() + get_active_main_window(), + this.controller.plugins ); prefs.show(); } diff --git a/src/client/components/components-preferences-window.vala b/src/client/components/components-preferences-window.vala index 794f3650..e99e4ac7 100644 --- a/src/client/components/components-preferences-window.vala +++ b/src/client/components/components-preferences-window.vala @@ -28,13 +28,22 @@ public class Components.PreferencesWindow : Hdy.PreferencesWindow { set { base.set_application(value); } } + private Application.PluginManager plugins; - public PreferencesWindow(Application.MainWindow parent) { + + public PreferencesWindow(Application.MainWindow parent, + Application.PluginManager plugins) { Object( application: parent.application, transient_for: parent ); + this.plugins = plugins; + add_general_pane(); + add_plugin_pane(); + } + + private void add_general_pane() { var autoselect = new Gtk.Switch(); autoselect.valign = CENTER; @@ -104,6 +113,8 @@ public class Components.PreferencesWindow : Hdy.PreferencesWindow { group.add(startup_notifications_row); var page = new Hdy.PreferencesPage(); + /// Translators: Preferences page title + page.title = _("Preferences"); page.propagate_natural_height = true; page.propagate_natural_width = true; page.add(group); @@ -148,6 +159,79 @@ public class Components.PreferencesWindow : Hdy.PreferencesWindow { this.delete_event.connect(on_delete); } + private void add_plugin_pane() { + var group = new Hdy.PreferencesGroup(); + /// Translators: Preferences group title + //group.title = _("Plugins"); + /// Translators: Preferences group description + //group.description = _("Optional features for Geary"); + + Application.Client? application = this.application; + if (application != null) { + foreach (Peas.PluginInfo plugin in + this.plugins.get_optional_plugins()) { + group.add(new_plugin_row(plugin)); + } + } + + var page = new Hdy.PreferencesPage(); + /// Translators: Preferences page title + page.title = _("Plugins"); + page.propagate_natural_width = true; + page.add(group); + page.show_all(); + + add(page); + } + + private Hdy.ActionRow new_plugin_row(Peas.PluginInfo plugin) { + var @switch = new Gtk.Switch(); + @switch.active = plugin.is_loaded(); + @switch.notify["active"].connect_after( + () => enable_plugin(plugin, switch) + ); + @switch.valign = CENTER; + + var row = new Hdy.ActionRow(); + row.title = plugin.get_name(); + row.subtitle = plugin.get_description(); + row.activatable_widget = @switch; + row.add_action(@switch); + + return row; + } + + private void enable_plugin(Peas.PluginInfo plugin, Gtk.Switch @switch) { + if (@switch.active && !plugin.is_loaded()) { + bool loaded = false; + try { + loaded = this.plugins.load_optional(plugin); + } catch (GLib.Error err) { + warning( + "Plugin %s not able to be loaded: %s", + plugin.get_name(), err.message + ); + } + if (!loaded) { + @switch.active = false; + } + } else if (!@switch.active && plugin.is_loaded()) { + bool unloaded = false; + try { + unloaded = this.plugins.unload_optional(plugin); + } catch (GLib.Error err) { + warning( + "Plugin %s not able to be loaded: %s", + plugin.get_name(), err.message + ); + } + if (!unloaded) { + @switch.active = true; + } + } + } + + private void on_close() { close(); } diff --git a/src/client/meson.build b/src/client/meson.build index cf8d8a83..1960dd48 100644 --- a/src/client/meson.build +++ b/src/client/meson.build @@ -133,6 +133,7 @@ geary_client_dependencies = [ libhandy, libmath, libpeas, + libpeas_gtk, libsecret, libsoup, libxml, From 46e3ba7396019f499796e9809430b256ce1b531c Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Mon, 2 Mar 2020 13:56:54 +1100 Subject: [PATCH 075/336] Update releases notes to mention new plugin UI --- desktop/org.gnome.Geary.appdata.xml.in.in | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/desktop/org.gnome.Geary.appdata.xml.in.in b/desktop/org.gnome.Geary.appdata.xml.in.in index dc92487a..f930b0ab 100644 --- a/desktop/org.gnome.Geary.appdata.xml.in.in +++ b/desktop/org.gnome.Geary.appdata.xml.in.in @@ -89,6 +89,14 @@ geary + + +

    Enhancements included in this release:

    +
      +
    • New preferences pane for managing plugins
    • +
    +
    +

    Enhancements included in this release:

    From a88a67bd34bf87ddd85bccdf1b7f3ea96f0c9c6c Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Mon, 2 Mar 2020 18:30:59 +1100 Subject: [PATCH 076/336] Application.NotificationContext: Make API docs more concise --- .../application/application-notification-context.vala | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/client/application/application-notification-context.vala b/src/client/application/application-notification-context.vala index cf78ca9c..faa38d68 100644 --- a/src/client/application/application-notification-context.vala +++ b/src/client/application/application-notification-context.vala @@ -10,13 +10,15 @@ * Provides a context for notification plugins. * * The context provides an interface for notification plugins to - * interface with the Geary client application. Notification plugins - * will be passed an instance of this class as the `context` - * parameter. + * interface with the Geary client application. Plugins that implement + * the plugins will be passed an instance of this class as the + * `context` property. * * Plugins can connect to the "notify::count", the {@link * new_messages_arrived} or the {@link new_messages_retired} signals * and update their state as these change. + * + * @see Plugin.NotificationPlugin */ public class Application.NotificationContext : Geary.BaseObject { From 7ef62769feb8352f1a48fce55281a2cf8ce64dd1 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Mon, 2 Mar 2020 18:32:55 +1100 Subject: [PATCH 077/336] Plugin.Notification: Convert to an interface This enables a single plugin to implement other extension points. --- .../plugin/desktop-notifications/desktop-notifications.vala | 6 +++--- src/client/plugin/messaging-menu/messaging-menu.vala | 6 +++--- .../plugin/notification-badge/notification-badge.vala | 6 +++--- src/client/plugin/plugin-notification.vala | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/client/plugin/desktop-notifications/desktop-notifications.vala b/src/client/plugin/desktop-notifications/desktop-notifications.vala index 8c57a16e..7b6c9822 100644 --- a/src/client/plugin/desktop-notifications/desktop-notifications.vala +++ b/src/client/plugin/desktop-notifications/desktop-notifications.vala @@ -18,17 +18,17 @@ public void peas_register_types(TypeModule module) { /** * Manages standard desktop application notifications. */ -public class Plugin.DesktopNotifications : Notification { +public class Plugin.DesktopNotifications : Geary.BaseObject, Notification { public const Geary.Email.Field REQUIRED_FIELDS = Geary.Email.Field.ORIGINATORS | Geary.Email.Field.SUBJECT; - public override Application.Client application { + public Application.Client application { get; construct set; } - public override Application.NotificationContext context { + public Application.NotificationContext context { get; construct set; } diff --git a/src/client/plugin/messaging-menu/messaging-menu.vala b/src/client/plugin/messaging-menu/messaging-menu.vala index 4506b1c7..6fd3b69f 100644 --- a/src/client/plugin/messaging-menu/messaging-menu.vala +++ b/src/client/plugin/messaging-menu/messaging-menu.vala @@ -16,14 +16,14 @@ public void peas_register_types(TypeModule module) { } /** Updates the Unity messaging menu when new mail arrives. */ -public class Plugin.MessagingMenu : Notification { +public class Plugin.MessagingMenu : Geary.BaseObject, Notification { - public override Application.Client application { + public Application.Client application { get; construct set; } - public override Application.NotificationContext context { + public Application.NotificationContext context { get; construct set; } diff --git a/src/client/plugin/notification-badge/notification-badge.vala b/src/client/plugin/notification-badge/notification-badge.vala index 5119b36f..b3b343a7 100644 --- a/src/client/plugin/notification-badge/notification-badge.vala +++ b/src/client/plugin/notification-badge/notification-badge.vala @@ -16,14 +16,14 @@ public void peas_register_types(TypeModule module) { } /** Updates Unity application badge with total new message count. */ -public class Plugin.NotificationBadge : Notification { +public class Plugin.NotificationBadge : Geary.BaseObject, Notification { - public override Application.Client application { + public Application.Client application { get; construct set; } - public override Application.NotificationContext context { + public Application.NotificationContext context { get; construct set; } diff --git a/src/client/plugin/plugin-notification.vala b/src/client/plugin/plugin-notification.vala index 90513c6e..fd409644 100644 --- a/src/client/plugin/plugin-notification.vala +++ b/src/client/plugin/plugin-notification.vala @@ -6,9 +6,9 @@ */ /** - * A plugin for notifying of new mail being delivered. + * A plugin extension point for notifying of mail sending or arriving. */ -public abstract class Plugin.Notification : GLib.Object { +public interface Plugin.Notification : Geary.BaseObject { /** The application instance containing the plugin. */ public abstract Application.Client application { From 25b527fc2b7632bfdcd21e7282bab0ccc86e0e12 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Fri, 6 Mar 2020 08:51:10 +1100 Subject: [PATCH 078/336] Application.PluginManager: Add notion of trusted plugins Keep a list of trusted plugins and load those by default, rather than trusting the peas built-in flag. --- .../application-plugin-manager.vala | 39 +++++++++++++------ .../desktop-notifications.plugin.in | 1 - .../messaging-menu/messaging-menu.plugin.in | 1 - .../notification-badge.plugin.in | 1 - 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/client/application/application-plugin-manager.vala b/src/client/application/application-plugin-manager.vala index fd2c7caf..30ab8666 100644 --- a/src/client/application/application-plugin-manager.vala +++ b/src/client/application/application-plugin-manager.vala @@ -1,5 +1,5 @@ /* - * Copyright 2019 Michael Gratton + * Copyright © 2019-2020 Michael Gratton * * This software is licensed under the GNU Lesser General Public License * (version 2.1 or later). See the COPYING file in this distribution. @@ -11,9 +11,18 @@ public class Application.PluginManager : GLib.Object { + // Plugins that will be loaded automatically and trusted with + // access to the application if they have been installed + private const string[] TRUSTED_MODULES = { + "desktop-notifications", + "messaging-menu", + "notification-badge" + }; + private Client application; private Peas.Engine engine; private bool is_shutdown = false; + private string trusted_path; private Peas.ExtensionSet notification_extensions; private NotificationContext notifications; @@ -24,8 +33,8 @@ public class Application.PluginManager : GLib.Object { this.application = application; this.engine = Peas.Engine.get_default(); - string builtin_path = application.get_app_plugins_dir().get_path(); - this.engine.add_search_path(builtin_path, null); + this.trusted_path = application.get_app_plugins_dir().get_path(); + this.plugins.add_search_path(trusted_path, null); this.notifications = notifications; this.notification_extensions = new Peas.ExtensionSet( @@ -52,9 +61,8 @@ public class Application.PluginManager : GLib.Object { string name = info.get_module_name(); try { if (info.is_available()) { - if (info.is_builtin() && - info.get_module_dir().has_prefix(builtin_path)) { - debug("Loading built-in plugin: %s", name); + if (is_trusted(info)) { + debug("Loading trusted plugin: %s", name); this.engine.load_plugin(info); } else if (name in optional_names) { debug("Loading optional plugin: %s", name); @@ -67,12 +75,19 @@ public class Application.PluginManager : GLib.Object { } } - public Gee.List get_optional_plugins() { + public inline bool is_trusted(Peas.PluginInfo plugin) { + return ( + plugin.get_module_name() in TRUSTED_MODULES && + plugin.get_module_dir().has_prefix(trusted_path) + ); + } + + public Gee.Collection get_optional_plugins() { var plugins = new Gee.LinkedList(); foreach (Peas.PluginInfo plugin in this.engine.get_plugin_list()) { try { plugin.is_available(); - if (!plugin.is_builtin()) { + if (!is_trusted(plugin)) { plugins.add(plugin); } } catch (GLib.Error err) { @@ -89,8 +104,8 @@ public class Application.PluginManager : GLib.Object { bool loaded = false; if (plugin.is_available() && !plugin.is_loaded() && - !plugin.is_builtin()) { - this.engine.load_plugin(plugin); + !is_trusted(plugin)) { + this.plugins.load_plugin(plugin); loaded = true; string name = plugin.get_module_name(); string[] optional_names = @@ -107,8 +122,8 @@ public class Application.PluginManager : GLib.Object { bool unloaded = false; if (plugin.is_available() && plugin.is_loaded() && - !plugin.is_builtin()) { - this.engine.unload_plugin(plugin); + !is_trusted(plugin)) { + this.plugins.unload_plugin(plugin); unloaded = true; string name = plugin.get_module_name(); string[] old_names = diff --git a/src/client/plugin/desktop-notifications/desktop-notifications.plugin.in b/src/client/plugin/desktop-notifications/desktop-notifications.plugin.in index 6c8c9f39..2019963a 100644 --- a/src/client/plugin/desktop-notifications/desktop-notifications.plugin.in +++ b/src/client/plugin/desktop-notifications/desktop-notifications.plugin.in @@ -2,4 +2,3 @@ Module=desktop-notifications Name=Desktop Notifications Description=Displays desktop notifications when new email is delivered -Builtin=true diff --git a/src/client/plugin/messaging-menu/messaging-menu.plugin.in b/src/client/plugin/messaging-menu/messaging-menu.plugin.in index f02a2e78..4668e58d 100644 --- a/src/client/plugin/messaging-menu/messaging-menu.plugin.in +++ b/src/client/plugin/messaging-menu/messaging-menu.plugin.in @@ -2,4 +2,3 @@ Module=messaging-menu-geary Name=Messaging Menu Description=Displays Unity Messaging Menu notifications for new email -Builtin=true diff --git a/src/client/plugin/notification-badge/notification-badge.plugin.in b/src/client/plugin/notification-badge/notification-badge.plugin.in index 611ec691..7a729a6a 100644 --- a/src/client/plugin/notification-badge/notification-badge.plugin.in +++ b/src/client/plugin/notification-badge/notification-badge.plugin.in @@ -2,4 +2,3 @@ Module=notification-badge Name=Notification Badge Description=Displays an application badge showing the number of unread messages -Builtin=true From 45b519e25e8c416852b6692fffa53be9ade9d9da Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Tue, 10 Mar 2020 12:16:23 +1100 Subject: [PATCH 079/336] Geary.BaseObject: Use GObject ctor for ref'ing instances This ensures that objects constructed using both both Vala-style and GObject-style constructors are handled properly. --- src/engine/api/geary-base-object.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/api/geary-base-object.vala b/src/engine/api/geary-base-object.vala index bd3f575b..3bfdba67 100644 --- a/src/engine/api/geary-base-object.vala +++ b/src/engine/api/geary-base-object.vala @@ -56,7 +56,7 @@ public abstract class Geary.BaseObject : Geary.BaseInterface, Object { * by calling {@link BaseInterface.base_ref} if reference tracking * is enabled at compile-time, otherwise this is a no-op. */ - protected BaseObject() { + construct { #if REF_TRACKING base_ref(); #endif From 899c1aaa5dff4c3d2e532af7b0042a4726da1418 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Tue, 10 Mar 2020 12:18:01 +1100 Subject: [PATCH 080/336] Minor translatable string update for consistency --- src/client/util/util-email.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/util/util-email.vala b/src/client/util/util-email.vala index db321b8c..173c6a64 100644 --- a/src/client/util/util-email.vala +++ b/src/client/util/util-email.vala @@ -35,7 +35,7 @@ namespace Util.Email { /** Returns the stripped subject line, or a placeholder if none. */ public string strip_subject_prefixes(Geary.Email email) { string? cleaned = (email.subject != null) ? email.subject.strip_prefixes() : null; - return !Geary.String.is_empty(cleaned) ? cleaned : _("(no subject)"); + return !Geary.String.is_empty(cleaned) ? cleaned : _("(No subject)"); } /** From c50ab505e8378b273ada77886c6a0afe495ad0bb Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Tue, 10 Mar 2020 12:18:44 +1100 Subject: [PATCH 081/336] Application.ContactStore: Make ::close internal Prevent non-application-code from attempting to close it. --- .../application/application-contact-store.vala | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/client/application/application-contact-store.vala b/src/client/application/application-contact-store.vala index bc96b63c..bbb4db22 100644 --- a/src/client/application/application-contact-store.vala +++ b/src/client/application/application-contact-store.vala @@ -75,13 +75,6 @@ public class Application.ContactStore : Geary.BaseObject { ); } - /** Closes the store, flushing all caches. */ - public void close() { - this.folks_address_cache.clear(); - this.contact_id_cache.clear(); - this.engine_address_cache.clear(); - } - /** * Returns a contact for a specific mailbox. * @@ -183,6 +176,13 @@ public class Application.ContactStore : Geary.BaseObject { return results; } + /** Closes the store, flushing all caches. */ + internal void close() { + this.folks_address_cache.clear(); + this.contact_id_cache.clear(); + this.engine_address_cache.clear(); + } + internal async Geary.Contact lookup_engine_contact(Geary.RFC822.MailboxAddress mailbox, GLib.Cancellable cancellable) From 18df9462160fb93fc53619942c536e41d08b69a8 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Tue, 10 Mar 2020 12:20:28 +1100 Subject: [PATCH 082/336] FolderList.Tree: Remove use of a NotificationContext object Since these are becoming per-plugin only, use folder signals to update for now. --- .../application/application-controller.vala | 3 - src/client/folder-list/folder-list-tree.vala | 113 ++++++++++-------- 2 files changed, 60 insertions(+), 56 deletions(-) diff --git a/src/client/application/application-controller.vala b/src/client/application/application-controller.vala index f4b6d5e4..556da0ad 100644 --- a/src/client/application/application-controller.vala +++ b/src/client/application/application-controller.vala @@ -862,9 +862,6 @@ internal class Application.Controller : Geary.BaseObject { internal void register_window(MainWindow window) { window.retry_service_problem.connect(on_retry_service_problem); - window.folder_list.set_new_messages_monitor( - this.notifications - ); } internal void unregister_window(MainWindow window) { diff --git a/src/client/folder-list/folder-list-tree.vala b/src/client/folder-list/folder-list-tree.vala index f0a831d1..372ef90b 100644 --- a/src/client/folder-list/folder-list-tree.vala +++ b/src/client/folder-list/folder-list-tree.vala @@ -5,6 +5,8 @@ */ public class FolderList.Tree : Sidebar.Tree, Geary.BaseInterface { + + public const Gtk.TargetEntry[] TARGET_ENTRY_LIST = { { "application/x-geary-mail", Gtk.TargetFlags.SAME_APP, 0 } }; @@ -12,6 +14,12 @@ public class FolderList.Tree : Sidebar.Tree, Geary.BaseInterface { private const int INBOX_ORDINAL = -2; // First account branch is zero private const int SEARCH_ORDINAL = -1; + private const Geary.SpecialFolderType[] INTERESTING_FOLDERS = { + INBOX, + NONE + }; + + public signal void folder_selected(Geary.Folder? folder); public signal void copy_conversation(Geary.Folder folder); public signal void move_conversation(Geary.Folder folder); @@ -22,7 +30,7 @@ public class FolderList.Tree : Sidebar.Tree, Geary.BaseInterface { = new Gee.HashMap(); private InboxesBranch inboxes_branch = new InboxesBranch(); private SearchBranch? search_branch = null; - private Application.NotificationContext? monitor = null; + public Tree() { base(TARGET_ENTRY_LIST, Gdk.DragAction.COPY | Gdk.DragAction.MOVE, drop_handler); @@ -39,10 +47,24 @@ public class FolderList.Tree : Sidebar.Tree, Geary.BaseInterface { } ~Tree() { - set_new_messages_monitor(null); base_unref(); } + public void set_has_new(Geary.Folder folder, bool has_new) { + FolderEntry? entry = get_folder_entry(folder); + if (entry != null) { + entry.set_has_new(has_new); + } + + if (folder.special_folder_type == INBOX && + has_branch(inboxes_branch)) { + entry = inboxes_branch.get_entry_for_account(folder.account); + if (entry != null) { + entry.set_has_new(has_new); + } + } + } + private void drop_handler(Gdk.DragContext context, Sidebar.Entry? entry, Gtk.SelectionData data, uint info, uint time) { } @@ -63,35 +85,10 @@ public class FolderList.Tree : Sidebar.Tree, Geary.BaseInterface { } private void on_entry_selected(Sidebar.SelectableEntry selectable) { - AbstractFolderEntry? abstract_folder_entry = selectable as AbstractFolderEntry; - if (abstract_folder_entry != null) { - this.selected = abstract_folder_entry.folder; - folder_selected(abstract_folder_entry.folder); - } - } - - private void on_new_messages_changed(Geary.Folder folder, int count) { - FolderEntry? entry = get_folder_entry(folder); - if (entry != null) - entry.set_has_new(count > 0); - - if (has_branch(inboxes_branch)) { - InboxFolderEntry? inbox_entry = inboxes_branch.get_entry_for_account(folder.account); - if (inbox_entry != null) - inbox_entry.set_has_new(count > 0); - } - } - - public void set_new_messages_monitor(Application.NotificationContext? monitor) { - if (this.monitor != null) { - this.monitor.new_messages_arrived.disconnect(on_new_messages_changed); - this.monitor.new_messages_retired.disconnect(on_new_messages_changed); - } - - this.monitor = monitor; - if (this.monitor != null) { - this.monitor.new_messages_arrived.connect(on_new_messages_changed); - this.monitor.new_messages_retired.connect(on_new_messages_changed); + FolderEntry? entry = selectable as FolderEntry; + if (entry != null) { + this.selected = entry.folder; + folder_selected(entry.folder); } } @@ -101,8 +98,11 @@ public class FolderList.Tree : Sidebar.Tree, Geary.BaseInterface { } public void add_folder(Geary.Folder folder) { - if (!account_branches.has_key(folder.account)) - account_branches.set(folder.account, new AccountBranch(folder.account)); + Geary.Account account = folder.account; + if (!account_branches.has_key(account)) { + this.account_branches.set(account, new AccountBranch(account)); + account.information.notify["ordinal"].connect(on_ordinal_changed); + } AccountBranch account_branch = account_branches.get(folder.account); if (!has_branch(account_branch)) @@ -113,7 +113,7 @@ public class FolderList.Tree : Sidebar.Tree, Geary.BaseInterface { if (folder.special_folder_type == Geary.SpecialFolderType.INBOX) inboxes_branch.add_inbox(folder); - folder.account.information.notify["ordinal"].connect(on_ordinal_changed); + folder.email_locally_appended.connect(on_email_appended); account_branch.add_folder(folder); } @@ -141,6 +141,7 @@ public class FolderList.Tree : Sidebar.Tree, Geary.BaseInterface { if (folder.special_folder_type == Geary.SpecialFolderType.INBOX) inboxes_branch.remove_inbox(folder.account); + folder.email_locally_appended.disconnect(on_email_appended); account_branch.remove_folder(folder); } @@ -225,24 +226,6 @@ public class FolderList.Tree : Sidebar.Tree, Geary.BaseInterface { return ret; } - private void on_ordinal_changed() { - if (account_branches.size <= 1) - return; - - // Remove branches where the ordinal doesn't match the graft position. - Gee.ArrayList branches_to_reorder = new Gee.ArrayList(); - foreach (AccountBranch branch in account_branches.values) { - if (get_position_for_branch(branch) != branch.account.information.ordinal) { - prune(branch); - branches_to_reorder.add(branch); - } - } - - // Re-add branches with new positions. - foreach (AccountBranch branch in branches_to_reorder) - graft(branch, branch.account.information.ordinal); - } - public void set_search(Geary.Engine engine, Geary.App.SearchFolder search_folder) { if (search_branch != null && has_branch(search_branch)) { @@ -268,5 +251,29 @@ public class FolderList.Tree : Sidebar.Tree, Geary.BaseInterface { search_branch = null; } } -} + private void on_ordinal_changed() { + if (account_branches.size <= 1) + return; + // Remove branches where the ordinal doesn't match the graft position. + Gee.ArrayList branches_to_reorder = new Gee.ArrayList(); + foreach (AccountBranch branch in account_branches.values) { + if (get_position_for_branch(branch) != branch.account.information.ordinal) { + prune(branch); + branches_to_reorder.add(branch); + } + } + + // Re-add branches with new positions. + foreach (AccountBranch branch in branches_to_reorder) + graft(branch, branch.account.information.ordinal); + } + + private void on_email_appended(Geary.Folder folder, + Gee.Collection ids) { + if (folder.special_folder_type in INTERESTING_FOLDERS) { + set_has_new(folder, true); + } + } + +} From f72b1354f828dcdf513cf06b89109fabf194aa66 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Tue, 10 Mar 2020 12:46:23 +1100 Subject: [PATCH 083/336] Add stable public interfaces for plugins to use These interfaces provide a stable, public API for plugins that can provide API stability while the underlying client and engine APIs change. --- po/POTFILES.in | 7 +++ src/client/meson.build | 7 +++ src/client/plugin/plugin-account.vala | 21 ++++++++ src/client/plugin/plugin-application.vala | 20 ++++++++ src/client/plugin/plugin-contact-store.vala | 41 ++++++++++++++++ src/client/plugin/plugin-email-store.vala | 27 +++++++++++ src/client/plugin/plugin-email.vala | 53 +++++++++++++++++++++ src/client/plugin/plugin-folder-store.vala | 32 +++++++++++++ src/client/plugin/plugin-folder.vala | 40 ++++++++++++++++ 9 files changed, 248 insertions(+) create mode 100644 src/client/plugin/plugin-account.vala create mode 100644 src/client/plugin/plugin-application.vala create mode 100644 src/client/plugin/plugin-contact-store.vala create mode 100644 src/client/plugin/plugin-email-store.vala create mode 100644 src/client/plugin/plugin-email.vala create mode 100644 src/client/plugin/plugin-folder-store.vala create mode 100644 src/client/plugin/plugin-folder.vala diff --git a/po/POTFILES.in b/po/POTFILES.in index 7c983e35..1a1db9c1 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -89,6 +89,13 @@ src/client/plugin/messaging-menu/messaging-menu.plugin.in src/client/plugin/messaging-menu/messaging-menu.vala src/client/plugin/notification-badge/notification-badge.plugin.in src/client/plugin/notification-badge/notification-badge.vala +src/client/plugin/plugin-account.vala +src/client/plugin/plugin-application.vala +src/client/plugin/plugin-contact-store.vala +src/client/plugin/plugin-email-store.vala +src/client/plugin/plugin-email.vala +src/client/plugin/plugin-folder-store.vala +src/client/plugin/plugin-folder.vala src/client/plugin/plugin-notification.vala src/client/sidebar/sidebar-branch.vala src/client/sidebar/sidebar-common.vala diff --git a/src/client/meson.build b/src/client/meson.build index 1960dd48..847c8583 100644 --- a/src/client/meson.build +++ b/src/client/meson.build @@ -91,6 +91,13 @@ geary_client_vala_sources = files( 'folder-list/folder-list-search-branch.vala', 'folder-list/folder-list-special-grouping.vala', + 'plugin/plugin-account.vala', + 'plugin/plugin-application.vala', + 'plugin/plugin-contact-store.vala', + 'plugin/plugin-email-store.vala', + 'plugin/plugin-email.vala', + 'plugin/plugin-folder-store.vala', + 'plugin/plugin-folder.vala', 'plugin/plugin-notification.vala', 'sidebar/sidebar-branch.vala', diff --git a/src/client/plugin/plugin-account.vala b/src/client/plugin/plugin-account.vala new file mode 100644 index 00000000..cf1fbf69 --- /dev/null +++ b/src/client/plugin/plugin-account.vala @@ -0,0 +1,21 @@ +/* + * Copyright © 2020 Michael Gratton + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +/** + * An object representing an account for use by plugins. + * + * Instances of these may be obtained from their respective {@link + * Folder} objects. + */ +public interface Plugin.Account : Geary.BaseObject { + + + /** Returns the human-readable name of this account. */ + public abstract string display_name { get; } + + +} diff --git a/src/client/plugin/plugin-application.vala b/src/client/plugin/plugin-application.vala new file mode 100644 index 00000000..20310785 --- /dev/null +++ b/src/client/plugin/plugin-application.vala @@ -0,0 +1,20 @@ +/* + * Copyright © 2020 Michael Gratton + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +/** + * An object representing the client application for use by plugins. + * + * Plugins may obtain instances of this object from their context + * objects, for example {@link + * Application.NotificationContext.get_application}. + */ +public interface Plugin.Application : Geary.BaseObject { + + + public abstract void show_folder(Folder folder); + +} diff --git a/src/client/plugin/plugin-contact-store.vala b/src/client/plugin/plugin-contact-store.vala new file mode 100644 index 00000000..395cbabb --- /dev/null +++ b/src/client/plugin/plugin-contact-store.vala @@ -0,0 +1,41 @@ +/* + * Copyright © 2020 Michael Gratton + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +/** + * Provides plugins with access to contact information. + * + * Plugins may obtain instances of this object from their context + * objects, for example {@link + * Application.NotificationContext.get_contacts_for_folder}. + */ +public interface Plugin.ContactStore : Geary.BaseObject { + + + /** Searches for contacts based on a specific string */ + public abstract async Gee.Collection search( + string query, + uint min_importance, + uint limit, + GLib.Cancellable? cancellable + ) throws GLib.Error; + + + /** + * Returns a contact for a specific mailbox. + * + * Returns a contact that has the given mailbox address listed as + * a primary or secondary email. A contact will always be + * returned, so if no matching contact already exists a new, + * non-persistent contact will be returned. + */ + public abstract async global::Application.Contact load( + Geary.RFC822.MailboxAddress mailbox, + GLib.Cancellable? cancellable + ) throws GLib.Error; + + +} diff --git a/src/client/plugin/plugin-email-store.vala b/src/client/plugin/plugin-email-store.vala new file mode 100644 index 00000000..35dc9c18 --- /dev/null +++ b/src/client/plugin/plugin-email-store.vala @@ -0,0 +1,27 @@ +/* + * Copyright © 2020 Michael Gratton + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +/** + * Provides plugins with access to email. + * + * Plugins may obtain instances of this object from their context + * objects, for example {@link + * Application.NotificationContext.get_email}. + */ +public interface Plugin.EmailStore : Geary.BaseObject { + + + /** Emitted when an email message has been sent. */ + public signal void email_sent(Email message); + + /** Returns a read-only set of all known folders. */ + public async abstract Gee.Collection get_email( + Gee.Collection ids, + GLib.Cancellable? cancellable + ) throws GLib.Error; + +} diff --git a/src/client/plugin/plugin-email.vala b/src/client/plugin/plugin-email.vala new file mode 100644 index 00000000..8eb94ddb --- /dev/null +++ b/src/client/plugin/plugin-email.vala @@ -0,0 +1,53 @@ +/* + * Copyright © 2020 Michael Gratton + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +/** + * An object representing an email for use by plugins. + * + * Instances of these may be obtained from {@link EmailStore}. + */ +public interface Plugin.Email : Geary.BaseObject { + + + /** Returns a unique identifier for this email. */ + public abstract EmailIdentifier identifier { get; } + + /** Returns the subject header value for the this email. */ + public abstract string subject { get; } + + /** + * Returns the email's primary originator. + * + * This method returns the mailbox of the best originator of the + * email, if any. + * + * @see Util.Email.get_primary_originator + */ + public abstract Geary.RFC822.MailboxAddress? get_primary_originator(); + +} + + +// XXX this should be an inner interface of Email, but GNOME/vala#918 +// prevents that. + +/** + * An object representing an email's identifier. + */ +public interface Plugin.EmailIdentifier : + Geary.BaseObject, Gee.Hashable { + + /** + * Returns a variant version of this identifier. + * + * This value is suitable to be used as the `show-email` + * application action parameter. + */ + public abstract GLib.Variant to_variant(); + + +} diff --git a/src/client/plugin/plugin-folder-store.vala b/src/client/plugin/plugin-folder-store.vala new file mode 100644 index 00000000..982097e7 --- /dev/null +++ b/src/client/plugin/plugin-folder-store.vala @@ -0,0 +1,32 @@ +/* + * Copyright © 2020 Michael Gratton + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +/** + * Provides plugins with access to folders. + * + * Plugins may obtain instances of this object from their context + * objects, for example {@link + * Application.NotificationContext.get_folder_store}. + */ +public interface Plugin.FolderStore : Geary.BaseObject { + + + /** Emitted when new folders are available. */ + public signal void folders_available(Gee.Collection available); + + /** Emitted when existing folders have become unavailable. */ + public signal void folders_unavailable(Gee.Collection unavailable); + + /** Emitted when existing folders have become unavailable. */ + public signal void folders_type_changed(Gee.Collection changed); + + + /** Returns a read-only set of all known folders. */ + public abstract Gee.Collection get_folders(); + + +} diff --git a/src/client/plugin/plugin-folder.vala b/src/client/plugin/plugin-folder.vala new file mode 100644 index 00000000..0765dff1 --- /dev/null +++ b/src/client/plugin/plugin-folder.vala @@ -0,0 +1,40 @@ +/* + * Copyright © 2020 Michael Gratton + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +/** + * An object representing a folder for use by plugins. + * + * Instances of these may be obtained from {@link FolderStore}. + */ +public interface Plugin.Folder : Geary.BaseObject { + + + /** + * Returns a unique identifier for this account and folder. + * + * The value returned is persistent across application restarts. + */ + public abstract string persistent_id { get; } + + /** Returns the human-readable name of this folder. */ + public abstract string display_name { get; } + + /** Returns the type of this folder. */ + public abstract Geary.SpecialFolderType folder_type { get; } + + /** Returns the account the folder belongs to, if any. */ + public abstract Account? account { get; } + + /** + * Returns a variant identifying this account and folder. + * + * This value is suitable to be used as the `show-folder` + * application action parameter. + */ + public abstract GLib.Variant to_variant(); + +} From 03331fd231e09d36ca39d879fde3dc10383912bb Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Tue, 10 Mar 2020 13:00:16 +1100 Subject: [PATCH 084/336] Application.PluginManager: Add close method Add close method, call it from the controller when shutting down, so that plugins are actually deactivated and can release resources. --- src/client/application/application-controller.vala | 5 +++++ src/client/application/application-plugin-manager.vala | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/src/client/application/application-controller.vala b/src/client/application/application-controller.vala index 556da0ad..47143389 100644 --- a/src/client/application/application-controller.vala +++ b/src/client/application/application-controller.vala @@ -303,6 +303,11 @@ internal class Application.Controller : Geary.BaseObject { // Release general resources now there's no more UI this.notifications.clear_folders(); + try { + this.plugins.close(); + } catch (GLib.Error err) { + warning("Error closing plugin manager: %s", err.message); + } this.avatars.close(); this.pending_mailtos.clear(); this.composer_widgets.clear(); diff --git a/src/client/application/application-plugin-manager.vala b/src/client/application/application-plugin-manager.vala index 30ab8666..e052d0c0 100644 --- a/src/client/application/application-plugin-manager.vala +++ b/src/client/application/application-plugin-manager.vala @@ -139,4 +139,10 @@ public class Application.PluginManager : GLib.Object { return unloaded; } + internal void close() throws GLib.Error { + this.is_shutdown = true; + this.plugins.set_loaded_plugins(null); + this.folders_factory.destroy(); + } + } From ee4bd117ee1152f594861471d8157a64a4baae14 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Tue, 10 Mar 2020 13:08:40 +1100 Subject: [PATCH 085/336] Convert plugins to use isolated context model Convert the plugin implementation to use a model where each plugin has its own context object instances and has limited/no access to the client's and engine's objects. --- po/POTFILES.in | 1 + .../application/application-controller.vala | 137 +--- .../application-folder-store-factory.vala | 282 +++++++ .../application/application-main-window.vala | 13 +- .../application-notification-context.vala | 714 +++++++++++++----- .../application-plugin-manager.vala | 54 +- src/client/meson.build | 1 + .../desktop-notifications.vala | 263 ++++--- .../plugin/messaging-menu/messaging-menu.vala | 105 ++- .../notification-badge.vala | 64 +- src/client/plugin/plugin-notification.vala | 9 +- 11 files changed, 1144 insertions(+), 499 deletions(-) create mode 100644 src/client/application/application-folder-store-factory.vala diff --git a/po/POTFILES.in b/po/POTFILES.in index 1a1db9c1..7f3178e5 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -23,6 +23,7 @@ src/client/application/application-configuration.vala src/client/application/application-contact-store.vala src/client/application/application-contact.vala src/client/application/application-controller.vala +src/client/application/application-folder-store-factory.vala src/client/application/application-main-window.vala src/client/application/application-notification-context.vala src/client/application/application-plugin-manager.vala diff --git a/src/client/application/application-controller.vala b/src/client/application/application-controller.vala index 47143389..75ccb0cf 100644 --- a/src/client/application/application-controller.vala +++ b/src/client/application/application-controller.vala @@ -79,8 +79,6 @@ internal class Application.Controller : Geary.BaseObject { private Gee.Map accounts = new Gee.HashMap(); - private NotificationContext notifications; - // Cancelled if the controller is closed private GLib.Cancellable controller_open; @@ -165,13 +163,7 @@ internal class Application.Controller : Geary.BaseObject { } - this.notifications = new NotificationContext( - this.avatars, - this.get_contact_store_for_account, - this.should_notify_new_messages - ); - - this.plugins = new PluginManager(this.application, this.notifications); + this.plugins = new PluginManager(this.application); // Migrate configuration if necessary. Migrate.xdg_config_dir(this.application.get_user_data_directory(), @@ -270,7 +262,7 @@ internal class Application.Controller : Geary.BaseObject { try { yield composer_barrier.wait_async(); } catch (GLib.Error err) { - debug("Error waiting at composer barrier: %s", err.message); + warning("Error waiting at composer barrier: %s", err.message); } // Now that all composers are closed, we can shut down the @@ -298,11 +290,10 @@ internal class Application.Controller : Geary.BaseObject { try { yield window_barrier.wait_async(); } catch (GLib.Error err) { - debug("Error waiting at window barrier: %s", err.message); + warning("Error waiting at window barrier: %s", err.message); } // Release general resources now there's no more UI - this.notifications.clear_folders(); try { this.plugins.close(); } catch (GLib.Error err) { @@ -331,10 +322,10 @@ internal class Application.Controller : Geary.BaseObject { try { yield account_barrier.wait_async(); } catch (GLib.Error err) { - debug("Error waiting at account barrier: %s", err.message); + warning("Error waiting at account barrier: %s", err.message); } - debug("Closed Application.Controller"); + info("Closed Application.Controller"); } /** @@ -1254,33 +1245,6 @@ internal class Application.Controller : Geary.BaseObject { return retry; } - private bool is_inbox_descendant(Geary.Folder target) { - bool is_descendent = false; - - Geary.Account account = target.account; - Geary.Folder? inbox = account.get_special_folder(Geary.SpecialFolderType.INBOX); - - if (inbox != null) { - is_descendent = inbox.path.is_descendant(target.path); - } - return is_descendent; - } - - private void on_special_folder_type_changed(Geary.Folder folder, - Geary.SpecialFolderType old_type, - Geary.SpecialFolderType new_type) { - // Update notifications - this.notifications.remove_folder(folder); - if (folder.special_folder_type == Geary.SpecialFolderType.INBOX || - (folder.special_folder_type == Geary.SpecialFolderType.NONE && - is_inbox_descendant(folder))) { - Geary.AccountInformation info = folder.account.information; - this.notifications.add_folder( - folder, this.accounts.get(info).cancellable - ); - } - } - private void on_folders_available_unavailable( Geary.Account account, Gee.BidirSortedSet? available, @@ -1292,33 +1256,13 @@ internal class Application.Controller : Geary.BaseObject { if (!Controller.should_add_folder(available, folder)) { continue; } - folder.special_folder_type_changed.connect( - on_special_folder_type_changed - ); GLib.Cancellable cancellable = context.cancellable; - switch (folder.special_folder_type) { - case Geary.SpecialFolderType.INBOX: + if (folder.special_folder_type == INBOX) { if (context.inbox == null) { context.inbox = folder; } folder.open_async.begin(NO_DELAY, cancellable); - - // Always notify for new messages in the Inbox - this.notifications.add_folder( - folder, cancellable - ); - break; - - case Geary.SpecialFolderType.NONE: - // Only notify for new messages in non-special - // descendants of the Inbox - if (is_inbox_descendant(folder)) { - this.notifications.add_folder( - folder, cancellable - ); - } - break; } } } @@ -1329,23 +1273,9 @@ internal class Application.Controller : Geary.BaseObject { bool has_prev = unavailable_iterator.last(); while (has_prev) { Geary.Folder folder = unavailable_iterator.get(); - folder.special_folder_type_changed.disconnect( - on_special_folder_type_changed - ); - switch (folder.special_folder_type) { - case Geary.SpecialFolderType.INBOX: + if (folder.special_folder_type == INBOX) { context.inbox = null; - this.notifications.remove_folder(folder); - break; - - case Geary.SpecialFolderType.NONE: - // Only notify for new messages in non-special - // descendants of the Inbox - if (is_inbox_descendant(folder)) { - this.notifications.remove_folder(folder); - } - break; } has_prev = unavailable_iterator.previous(); @@ -1356,48 +1286,15 @@ internal class Application.Controller : Geary.BaseObject { } } - private bool should_notify_new_messages(Geary.Folder folder) { - // Don't show notifications if the top of the folder's - // conversations is visible. That is, if there is a main - // window, it's focused, the folder is selected, and the - // conversation list is at the top. - MainWindow? window = this.application.last_active_main_window; - return ( - window == null || - !window.has_toplevel_focus || - window.selected_folder != folder || - window.conversation_list_view.vadjustment.value > 0.0 - ); - } - - // Clears messages if conditions are true: anything in should_notify_new_messages() is - // false and the supplied visible messages are visible in the conversation list view - public void clear_new_messages(string caller, - Gee.Set? supplied) { - MainWindow? window = this.application.last_active_main_window; - Geary.Folder? selected = ( - (window != null) ? window.selected_folder : null - ); - NotificationContext notifications = this.notifications; - if (selected != null && ( - !notifications.get_folders().contains(selected) || - should_notify_new_messages(selected))) { - - Gee.Set visible = - supplied ?? window.conversation_list_view.get_visible_conversations(); - - foreach (Geary.App.Conversation conversation in visible) { - try { - if (notifications.are_any_new_messages(selected, - conversation.get_email_ids())) { - debug("Clearing new messages: %s", caller); - notifications.clear_new_messages(selected); - break; - } - } catch (Geary.EngineError.NOT_FOUND err) { - // all good - } - } + /** Clears new message counts in notification plugin contexts. */ + public void clear_new_messages(Geary.Folder source, + Gee.Set visible) { + foreach (MainWindow window in this.application.get_main_windows()) { + window.folder_list.set_has_new(source, false); + } + foreach (NotificationContext context in + this.plugins.get_notification_contexts()) { + context.clear_new_messages(source, visible); } } @@ -1575,7 +1472,7 @@ internal class Application.Controller : Geary.BaseObject { AccountContext? context = this.accounts.get(service.account); if (context != null) { - this.notifications.email_sent(context.account, sent); + //this.notifications.email_sent(context.account, sent); } } diff --git a/src/client/application/application-folder-store-factory.vala b/src/client/application/application-folder-store-factory.vala new file mode 100644 index 00000000..84384e3a --- /dev/null +++ b/src/client/application/application-folder-store-factory.vala @@ -0,0 +1,282 @@ +/* + * Copyright © 2020 Michael Gratton + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +/** + * A factory for constructing plugin folder stores and folder objects. + * + * This class provides a common implementation that shares folder + * objects between different plugin context instances. + */ +internal class Application.FolderStoreFactory : Geary.BaseObject { + + + private class FolderStoreImpl : Geary.BaseObject, Plugin.FolderStore { + + + private Gee.Map folders; + + + public FolderStoreImpl(Gee.Map folders) { + this.folders = folders; + } + + /** Returns a read-only set of all known folders. */ + public Gee.Collection get_folders() { + return this.folders.values.read_only_view; + } + + internal void destroy() { + this.folders = Gee.Map.empty(); + } + + } + + + private class AccountImpl : Geary.BaseObject, Plugin.Account { + + + public string display_name { + get { return this.backing.display_name; } + } + + + private Geary.AccountInformation backing; + + + public AccountImpl(Geary.AccountInformation backing) { + this.backing = backing; + } + + } + + + private class FolderImpl : Geary.BaseObject, Plugin.Folder { + + + // These constants are used to determine the persistent id of + // the folder. Changing these may break plugins. + private const string ID_FORMAT = "%s:%s"; + private const string ID_PATH_SEP = ">"; + + + public string persistent_id { + get { return this._persistent_id; } + } + private string _persistent_id; + + public string display_name { + get { return this._display_name; } + } + private string _display_name; + + public Geary.SpecialFolderType folder_type { + get { return this.backing.special_folder_type; } + } + + public Plugin.Account? account { + get { return this._account; } + } + private AccountImpl? _account; + + // The underlying engine folder being represented. + internal Geary.Folder backing { get; private set; } + + + public FolderImpl(Geary.Folder backing, AccountImpl? account) { + this.backing = backing; + this._account = account; + this._persistent_id = ID_FORMAT.printf( + backing.account.information.id, + string.join(ID_PATH_SEP, backing.path.as_array()) + ); + folder_type_changed(); + } + + public GLib.Variant to_variant() { + return new GLib.Variant.tuple({ + this.backing.account.information.id, + new GLib.Variant.variant(this.backing.path.to_variant()) + }); + } + + internal void folder_type_changed() { + notify_property("folder-type"); + this._display_name = this.backing.get_display_name(); + notify_property("display-name"); + } + + } + + + private Geary.Engine engine; + + private Gee.Map accounts = + new Gee.HashMap(); + private Gee.Map folders = + new Gee.HashMap(); + private Gee.Set stores = + new Gee.HashSet(); + + + /** + * Constructs a new factory instance. + */ + public FolderStoreFactory(Geary.Engine engine) throws GLib.Error { + this.engine = engine; + this.engine.account_available.connect(on_account_available); + this.engine.account_unavailable.connect(on_account_unavailable); + foreach (Geary.Account account in this.engine.get_accounts()) { + add_account(account.information); + } + } + + /** Clearing all state of the store. */ + public void destroy() throws GLib.Error { + foreach (FolderStoreImpl store in this.stores) { + store.destroy(); + } + this.stores.clear(); + + this.engine.account_available.disconnect(on_account_available); + this.engine.account_unavailable.disconnect(on_account_unavailable); + foreach (Geary.Account account in this.engine.get_accounts()) { + remove_account(account.information); + } + this.folders.clear(); + } + + /** Constructs a new folder store for use by plugin contexts. */ + public Plugin.FolderStore new_folder_store() { + var store = new FolderStoreImpl(this.folders); + this.stores.add(store); + return store; + } + + /** Destroys a folder store once is no longer required. */ + public void destroy_folder_store(Plugin.FolderStore plugin) { + FolderStoreImpl? impl = plugin as FolderStoreImpl; + if (impl != null) { + impl.destroy(); + this.stores.remove(impl); + } + } + + /** Returns the plugin folder for the given engine folder. */ + public Plugin.Folder? get_plugin_folder(Geary.Folder engine) { + return this.folders.get(engine); + } + + /** Returns the engine folder for the given plugin folder. */ + public Geary.Folder? get_engine_folder(Plugin.Folder plugin) { + FolderImpl? impl = plugin as FolderImpl; + return (impl != null) ? impl.backing : null; + } + + private void add_account(Geary.AccountInformation added) { + try { + this.accounts.set(added, new AccountImpl(added)); + Geary.Account account = this.engine.get_account(added); + account.folders_available_unavailable.connect( + on_folders_available_unavailable + ); + account.folders_special_type.connect( + on_folders_type_changed + ); + add_folders(account.list_folders()); + } catch (GLib.Error err) { + warning( + "Failed to add account %s to folder store: %s", + added.id, err.message + ); + } + } + + private void remove_account(Geary.AccountInformation removed) { + try { + Geary.Account account = this.engine.get_account(removed); + account.folders_available_unavailable.disconnect( + on_folders_available_unavailable + ); + account.folders_special_type.disconnect( + on_folders_type_changed + ); + remove_folders(account.list_folders()); + this.accounts.unset(removed); + } catch (GLib.Error err) { + warning( + "Error removing account %s from folder store: %s", + removed.id, err.message + ); + } + } + + private void add_folders(Gee.Collection to_add) { + foreach (Geary.Folder folder in to_add) { + this.folders.set( + folder, + new FolderImpl( + folder, this.accounts.get(folder.account.information) + ) + ); + } + foreach (FolderStoreImpl store in this.stores) { + store.folders_available(to_plugin_folders(to_add)); + } + } + + private void remove_folders(Gee.Collection to_remove) { + foreach (Geary.Folder folder in to_remove) { + this.folders.unset(folder); + } + foreach (FolderStoreImpl store in this.stores) { + store.folders_unavailable(to_plugin_folders(to_remove)); + } + } + + private Gee.Collection to_plugin_folders( + Gee.Collection folders + ) { + return Geary.traverse( + folders + ).map( + (f) => this.folders.get(f) + ).to_linked_list().read_only_view; + } + + private void on_account_available(Geary.AccountInformation to_add) { + add_account(to_add); + } + + private void on_account_unavailable(Geary.AccountInformation to_remove) { + remove_account(to_remove); + } + + private void on_folders_available_unavailable( + Geary.Account account, + Gee.BidirSortedSet? available, + Gee.BidirSortedSet? unavailable + ) { + if (available != null && !available.is_empty) { + add_folders(available); + } + if (unavailable != null && !unavailable.is_empty) { + remove_folders(available); + } + } + + private void on_folders_type_changed(Geary.Account account, + Gee.Collection changed) { + var folders = to_plugin_folders(changed); + foreach (FolderImpl folder in folders) { + folder.folder_type_changed(); + } + foreach (FolderStoreImpl store in this.stores) { + store.folders_type_changed(folders); + } + } + +} diff --git a/src/client/application/application-main-window.vala b/src/client/application/application-main-window.vala index e88d23fc..31d8ba8b 100644 --- a/src/client/application/application-main-window.vala +++ b/src/client/application/application-main-window.vala @@ -741,8 +741,6 @@ public class Application.MainWindow : ); yield open_conversation_monitor(this.conversations, cancellable); - this.controller.clear_new_messages(GLib.Log.METHOD, null); - this.controller.process_pending_composers(); } } @@ -2082,7 +2080,12 @@ public class Application.MainWindow : // this signal does not necessarily indicate that the application // previously didn't have focus and now it does private void on_has_toplevel_focus() { - this.controller.clear_new_messages(GLib.Log.METHOD, null); + if (this.selected_folder != null) { + this.controller.clear_new_messages( + this.selected_folder, + this.conversation_list_view.get_visible_conversations() + ); + } } private void on_folder_selected(Geary.Folder? folder) { @@ -2098,7 +2101,9 @@ public class Application.MainWindow : } private void on_visible_conversations_changed(Gee.Set visible) { - this.controller.clear_new_messages(GLib.Log.METHOD, visible); + if (this.selected_folder != null) { + this.controller.clear_new_messages(this.selected_folder, visible); + } } private void on_conversation_activated(Geary.App.Conversation activated) { diff --git a/src/client/application/application-notification-context.vala b/src/client/application/application-notification-context.vala index faa38d68..2152243e 100644 --- a/src/client/application/application-notification-context.vala +++ b/src/client/application/application-notification-context.vala @@ -1,9 +1,9 @@ /* - * Copyright 2016 Software Freedom Conservancy Inc. - * Copyright 2019 Michael Gratton + * Copyright © 2016 Software Freedom Conservancy Inc. + * Copyright © 2019-2020 Michael Gratton * * This software is licensed under the GNU Lesser General Public License - * (version 2.1 or later). See the COPYING file in this distribution. + * (version 2.1 or later). See the COPYING file in this distribution. */ /** @@ -14,195 +14,582 @@ * the plugins will be passed an instance of this class as the * `context` property. * - * Plugins can connect to the "notify::count", the {@link - * new_messages_arrived} or the {@link new_messages_retired} signals - * and update their state as these change. + * Plugins should register folders they wish to monitor by calling + * {@link start_monitoring_folder}. The context will then start + * keeping track of email being delivered to the folder and being seen + * in a main window updating {@link total_new_messages} and emitting + * the {@link new_messages_arrived} and {@link new_messages_retired} + * signals as appropriate. * * @see Plugin.NotificationPlugin */ public class Application.NotificationContext : Geary.BaseObject { - /** Monitor hook for obtaining a contact store for an account. */ - internal delegate Application.ContactStore? GetContactStore( - Geary.Account account - ); + private const Geary.Email.Field REQUIRED_FIELDS = FLAGS; - /** Monitor hook to determine if a folder should be notified about. */ - internal delegate bool ShouldNotifyNewMessages(Geary.Folder folder); + + private class ApplicationImpl : Geary.BaseObject, Plugin.Application { + + + private Client backing; + private FolderStoreFactory folders; + + + public ApplicationImpl(Client backing, + FolderStoreFactory folders) { + this.backing = backing; + this.folders = folders; + } + + public override void show_folder(Plugin.Folder folder) { + Geary.Folder? target = this.folders.get_engine_folder(folder); + if (target != null) { + this.backing.show_folder.begin(target); + } + } + + } + + + private class EmailStoreImpl : Geary.BaseObject, Plugin.EmailStore { + + + private class EmailImpl : Geary.BaseObject, Plugin.Email { + + + public Plugin.EmailIdentifier identifier { + get { + if (this._id == null) { + this._id = new IdImpl(this.backing.id, this.account); + } + return this._id; + } + } + private IdImpl? _id = null; + + public string subject { + get { return this._subject; } + } + string _subject; + + internal Geary.Email backing; + // Remove this when EmailIdentifier is updated to include + // the account + internal Geary.AccountInformation account { get; private set; } + + + public EmailImpl(Geary.Email backing, + Geary.AccountInformation account) { + this.backing = backing; + this.account = account; + Geary.RFC822.Subject? subject = this.backing.subject; + this._subject = subject != null ? subject.to_string() : ""; + } + + public Geary.RFC822.MailboxAddress? get_primary_originator() { + return Util.Email.get_primary_originator(this.backing); + } + + } + + + private class IdImpl : Geary.BaseObject, + Gee.Hashable, Plugin.EmailIdentifier { + + + internal Geary.EmailIdentifier backing { get; private set; } + // Remove this when EmailIdentifier is updated to include + // the account + internal Geary.AccountInformation account { get; private set; } + + + public IdImpl(Geary.EmailIdentifier backing, + Geary.AccountInformation account) { + this.backing = backing; + this.account = account; + } + + public GLib.Variant to_variant() { + return this.backing.to_variant(); + } + + public bool equal_to(Plugin.EmailIdentifier other) { + if (this == other) { + return true; + } + IdImpl? impl = other as IdImpl; + return ( + impl != null && + this.backing.equal_to(impl.backing) && + this.account.equal_to(impl.account) + ); + } + + public uint hash() { + return this.backing.hash(); + } + + } + + + private Client backing; + + + public EmailStoreImpl(Client backing) { + this.backing = backing; + } + + public async Gee.Collection get_email( + Gee.Collection plugin_ids, + GLib.Cancellable? cancellable + ) throws GLib.Error { + var emails = new Gee.HashSet(); + + // The email could theoretically come from any account, so + // group them by account up front. The common case will be + // only a single account, so optimise for that a bit. + + var accounts = new Gee.HashMap< + Geary.AccountInformation, + Gee.Set + >(); + Geary.AccountInformation? current_account = null; + Gee.Set? engine_ids = null; + foreach (Plugin.EmailIdentifier plugin_id in plugin_ids) { + IdImpl? id_impl = plugin_id as IdImpl; + if (id_impl != null) { + if (id_impl.account != current_account) { + current_account = id_impl.account; + engine_ids = accounts.get(current_account); + if (engine_ids == null) { + engine_ids = new Gee.HashSet(); + accounts.set(current_account, engine_ids); + } + } + engine_ids.add(id_impl.backing); + } + } + + foreach (var account in accounts.keys) { + AccountContext context = + this.backing.controller.get_context_for_account(account); + Gee.Collection batch = + yield context.emails.list_email_by_sparse_id_async( + accounts.get(account), + ENVELOPE, + NONE, + context.cancellable + ); + if (batch != null) { + foreach (var email in batch) { + emails.add(new EmailImpl(email, account)); + } + } + } + + return emails; + } + + internal Gee.Collection get_plugin_ids( + Gee.Collection engine_ids, + Geary.AccountInformation account + ) { + var plugin_ids = new Gee.HashSet(); + foreach (var id in engine_ids) { + plugin_ids.add(new IdImpl(id, account)); + } + return plugin_ids; + } + + } + + + private class ContactStoreImpl : Geary.BaseObject, Plugin.ContactStore { + + + private Application.ContactStore backing; + + + public ContactStoreImpl(Application.ContactStore backing) { + this.backing = backing; + } + + public async Gee.Collection search(string query, + uint min_importance, + uint limit, + GLib.Cancellable? cancellable + ) throws GLib.Error { + return yield this.backing.search( + query, min_importance, limit, cancellable + ); + } + + public async Contact load(Geary.RFC822.MailboxAddress mailbox, + GLib.Cancellable? cancellable + ) throws GLib.Error { + return yield this.backing.load(mailbox, cancellable); + } + + } private class MonitorInformation : Geary.BaseObject { + public Geary.Folder folder; public GLib.Cancellable? cancellable = null; - public int count = 0; - public Gee.HashSet new_ids - = new Gee.HashSet(); + public Gee.Set recent_ids = + new Gee.HashSet(); - public MonitorInformation(Geary.Folder folder, GLib.Cancellable? cancellable) { + public MonitorInformation(Geary.Folder folder, + GLib.Cancellable? cancellable) { this.folder = folder; this.cancellable = cancellable; } } - /** Current total new message count across all accounts and folders. */ + /** + * Returns the plugin application object. + * + * No special permissions are required to use access this. + */ + public Plugin.Application plugin_application { + get; private set; + } + + /** + * Current total new message count for all monitored folders. + * + * This is the sum of the the counts returned by {@link + * get_new_message_count} for all folders that are being monitored + * after a call to {@link start_monitoring_folder}. + */ public int total_new_messages { get; private set; default = 0; } - /** - * Folder containing the recent new message received, if any. - * - * @see last_new_message - */ - public Geary.Folder? last_new_message_folder { - get; private set; default = null; - } + private Gee.Map folder_information = + new Gee.HashMap(); + + private unowned Client application; + private FolderStoreFactory folders_factory; + private Plugin.FolderStore folders; + private EmailStoreImpl email; + private PluginManager.PluginFlags flags; + /** - * Most recent new message received, if any. + * Emitted when new messages have been downloaded. * - * @see last_new_message_folder + * This will only be emitted for folders that are being monitored + * by calling {@link start_monitoring_folder}. */ - public Geary.Email? last_new_message { - get; private set; default = null; - } + public signal void new_messages_arrived( + Plugin.Folder parent, + int total, + Gee.Collection added + ); - /** Returns a store to lookup avatars for notifications. */ - public Application.AvatarStore avatars { get; private set; } - - - private Geary.Email.Field required_fields { get; private set; default = FLAGS; } - - private Gee.Map folder_information = - new Gee.HashMap(); - - private unowned GetContactStore contact_store_delegate; - private unowned ShouldNotifyNewMessages notify_delegate; - - - /** Emitted when a new folder will be monitored. */ - public signal void folder_added(Geary.Folder folder); - - /** Emitted when a folder should no longer be monitored. */ - public signal void folder_removed(Geary.Folder folder); - - /** Emitted when new messages have been downloaded. */ - public signal void new_messages_arrived(Geary.Folder parent, int total, int added); - - /** Emitted when a folder has been cleared of new messages. */ - public signal void new_messages_retired(Geary.Folder parent, int total); - - /** Emitted when an email has been sent. */ - public signal void email_sent(Geary.Account account, - Geary.RFC822.Message sent); + /** + * Emitted when a folder has been cleared of new messages. + * + * This will only be emitted for folders that are being monitored + * after a call to {@link start_monitoring_folder}. + */ + public signal void new_messages_retired(Plugin.Folder parent, int total); /** Constructs a new context instance. */ - internal NotificationContext(AvatarStore avatars, - GetContactStore contact_store_delegate, - ShouldNotifyNewMessages notify_delegate) { - this.avatars = avatars; - this.contact_store_delegate = contact_store_delegate; - this.notify_delegate = notify_delegate; + internal NotificationContext(Client application, + FolderStoreFactory folders_factory, + PluginManager.PluginFlags flags) { + this.application = application; + this.folders_factory = folders_factory; + this.folders = folders_factory.new_folder_store(); + this.email = new EmailStoreImpl(application); + this.flags = flags; + + this.plugin_application = new ApplicationImpl( + application, folders_factory + ); } - /** Determines if notifications should be made for a specific folder. */ - public bool should_notify_new_messages(Geary.Folder folder) { - return this.notify_delegate(folder); + /** + * Returns a store to lookup folders for notifications. + * + * This method may prompt for permission before returning. + * + * @throws Geary.EngineError.PERMISSIONS if permission to access + * this resource was not given + */ + public async Plugin.FolderStore get_folders() + throws Geary.EngineError.PERMISSIONS { + return this.folders; } - /** Returns a contact store to lookup contacts for notifications. */ - public Application.ContactStore? get_contact_store(Geary.Account account) { - return this.contact_store_delegate(account); + /** + * Returns a store to lookup email for notifications. + * + * This method may prompt for permission before returning. + * + * @throws Geary.EngineError.PERMISSIONS if permission to access + * this resource was not given + */ + public async Plugin.EmailStore get_email() + throws Geary.EngineError.PERMISSIONS { + return this.email; } - /** Returns a read-only set the context's monitored folders. */ - public Gee.Collection get_folders() { - return this.folder_information.keys.read_only_view; + /** + * Returns a store to lookup contacts for notifications. + * + * This method may prompt for permission before returning. + * + * @throws Geary.EngineError.NOT_FOUND if the given account does + * not exist + * @throws Geary.EngineError.PERMISSIONS if permission to access + * this resource was not given + */ + public async Plugin.ContactStore get_contacts_for_folder(Plugin.Folder source) + throws Geary.EngineError.NOT_FOUND, + Geary.EngineError.PERMISSIONS { + Geary.Folder? folder = this.folders_factory.get_engine_folder(source); + AccountContext? context = null; + if (folder != null) { + context = this.application.controller.get_context_for_account( + folder.account.information + ); + } + if (context == null) { + throw new Geary.EngineError.NOT_FOUND( + "No account for folder: %s", source.display_name + ); + } + return new ContactStoreImpl(context.contacts); } - /** Returns the new message count for a specific folder. */ - public int get_new_message_count(Geary.Folder folder) + /** + * Returns the client's application object. + * + * Only plugins that are trusted by the client will be provided + * access to the application instance. + * + * @throws Geary.EngineError.PERMISSIONS if permission to access + * this resource was not given + */ + public Client get_client_application() + throws Geary.EngineError.PERMISSIONS { + if (!(PluginManager.PluginFlags.TRUSTED in this.flags)) { + throw new Geary.EngineError.PERMISSIONS("Plugin is not trusted"); + } + return this.application; + } + + /** + * Determines if notifications should be made for a specific folder. + * + * Notification plugins should call this to first before + * displaying a "new mail" notification for mail in a specific + * folder. It will return true for any monitored folder that is + * not currently visible in the currently focused main window, if + * any. + */ + public bool should_notify_new_messages(Plugin.Folder target) { + // Don't show notifications if the top of a monitored folder's + // conversations are visible. That is, if there is a main + // window, it's focused, the folder is selected, and the + // conversation list is at the top. + Geary.Folder? folder = this.folders_factory.get_engine_folder(target); + MainWindow? window = this.application.last_active_main_window; + return ( + folder != null && + this.folder_information.has_key(folder) && ( + window == null || + !window.has_toplevel_focus || + window.selected_folder != folder || + window.conversation_list_view.vadjustment.value > 0.0 + ) + ); + } + + /** + * Returns the new message count for a specific folder. + * + * The context must have already been requested to monitor the + * folder by a call to {@link start_monitoring_folder}. + */ + public int get_new_message_count(Plugin.Folder target) throws Geary.EngineError.NOT_FOUND { - MonitorInformation? info = folder_information.get(folder); + Geary.Folder? folder = this.folders_factory.get_engine_folder(target); + MonitorInformation? info = null; + if (folder != null) { + info = folder_information.get(folder); + } if (info == null) { throw new Geary.EngineError.NOT_FOUND( "No such folder: %s", folder.path.to_string() ); } - return info.count; + return info.recent_ids.size; } - /** Adds fields for loaded email required by a plugin. */ - public void add_required_fields(Geary.Email.Field fields) { - this.required_fields |= fields; - } - - /** Removes fields for loaded email no longer required by a plugin. */ - public void remove_required_fields(Geary.Email.Field fields) { - this.required_fields ^= fields; - } - - internal void add_folder(Geary.Folder folder, GLib.Cancellable? cancellable) { - if (!this.folder_information.has_key(folder)) { + /** + * Starts monitoring a folder for new messages. + * + * Notification plugins should call this to start the context + * recording new messages for a specific folder. + */ + public void start_monitoring_folder(Plugin.Folder target) { + Geary.Folder? folder = this.folders_factory.get_engine_folder(target); + AccountContext? context = + this.application.controller.get_context_for_account( + folder.account.information + ); + if (folder != null && + context != null && + !this.folder_information.has_key(folder)) { folder.email_locally_appended.connect(on_email_locally_appended); folder.email_flags_changed.connect(on_email_flags_changed); folder.email_removed.connect(on_email_removed); this.folder_information.set( - folder, new MonitorInformation(folder, cancellable) + folder, new MonitorInformation(folder, context.cancellable) ); - - folder_added(folder); } } - internal void remove_folder(Geary.Folder folder) { - if (folder_information.has_key(folder)) { - folder.email_locally_appended.disconnect(on_email_locally_appended); - folder.email_flags_changed.disconnect(on_email_flags_changed); - folder.email_removed.disconnect(on_email_removed); - - this.total_new_messages -= this.folder_information.get(folder).count; - - this.folder_information.unset(folder); - - folder_removed(folder); + /** Stops monitoring a folder for new messages. */ + public void stop_monitoring_folder(Plugin.Folder target) { + Geary.Folder? folder = this.folders_factory.get_engine_folder(target); + if (folder != null) { + remove_folder(folder); } } - internal void clear_folders() { + /** Determines if a folder is curently being monitored. */ + public bool is_monitoring_folder(Plugin.Folder target) { + return this.folder_information.has_key( + this.folders_factory.get_engine_folder(target) + ); + } + + internal void destroy() { + this.folders_factory.destroy_folder_store(this.folders); // Get an array so the loop does not blow up when removing values. foreach (Geary.Folder monitored in this.folder_information.keys.to_array()) { remove_folder(monitored); } } - internal bool are_any_new_messages(Geary.Folder folder, - Gee.Collection ids) - throws Geary.EngineError.NOT_FOUND { - MonitorInformation? info = folder_information.get(folder); - if (info == null) { - throw new Geary.EngineError.NOT_FOUND( - "No such folder: %s", folder.path.to_string() - ); + internal void clear_new_messages(Geary.Folder location, + Gee.Set? visible) { + MonitorInformation? info = this.folder_information.get(location); + if (info != null) { + foreach (Geary.App.Conversation conversation in visible) { + if (Geary.traverse( + conversation.get_email_ids() + ).any((id) => info.recent_ids.contains(id))) { + Gee.Set old_ids = info.recent_ids; + info.recent_ids = new Gee.HashSet(); + update_count(info, false, old_ids); + break; + } + } } - return Geary.traverse(ids).any((id) => info.new_ids.contains(id)); } - internal void clear_new_messages(Geary.Folder folder) - throws Geary.EngineError.NOT_FOUND { - MonitorInformation? info = folder_information.get(folder); - if (info == null) { - throw new Geary.EngineError.NOT_FOUND( - "No such folder: %s", folder.path.to_string() - ); + private void new_messages(MonitorInformation info, + Gee.Collection emails) { + Gee.Collection added = + new Gee.HashSet(); + foreach (Geary.Email email in emails) { + if (email.email_flags.is_unread() && + info.recent_ids.add(email.id)) { + added.add(email.id); + } + } + if (added.size > 0) { + update_count(info, true, added); + } + } + + private void retire_new_messages(Geary.Folder folder, + Gee.Collection email_ids + ) { + MonitorInformation info = folder_information.get(folder); + Gee.Collection removed = + new Gee.HashSet(); + foreach (Geary.EmailIdentifier email_id in email_ids) { + if (info.recent_ids.remove(email_id)) { + removed.add(email_id); + } } - info.new_ids.clear(); - last_new_message_folder = null; - last_new_message = null; + if (removed.size > 0) { + update_count(info, false, removed); + } + } - update_count(info, false, 0); + private void update_count(MonitorInformation info, + bool arrived, + Gee.Collection delta) { + Plugin.Folder folder = + this.folders_factory.get_plugin_folder(info.folder); + if (arrived) { + this.total_new_messages += delta.size; + new_messages_arrived( + folder, + info.recent_ids.size, + this.email.get_plugin_ids(delta, info.folder.account.information) + ); + } else { + this.total_new_messages -= delta.size; + new_messages_retired( + folder, info.recent_ids.size + ); + } + } + + private void remove_folder(Geary.Folder target) { + MonitorInformation? info = this.folder_information.get(target); + if (info != null) { + target.email_locally_appended.disconnect(on_email_locally_appended); + target.email_flags_changed.disconnect(on_email_flags_changed); + target.email_removed.disconnect(on_email_removed); + + this.total_new_messages -= info.recent_ids.size; + + this.folder_information.unset(target); + } + + } + + private async void do_process_new_email( + Geary.Folder folder, + Gee.Collection email_ids + ) { + MonitorInformation info = this.folder_information.get(folder); + if (info != null) { + Gee.List? list = null; + try { + list = yield folder.list_email_by_sparse_id_async( + email_ids, + REQUIRED_FIELDS, + NONE, + info.cancellable + ); + } catch (GLib.Error err) { + warning( + "Unable to list new email for notification: %s", err.message + ); + } + if (list != null && !list.is_empty) { + new_messages(info, list); + } else { + warning( + "%d new emails, but none could be listed for notification", + email_ids.size + ); + } + } } private void on_email_locally_appended(Geary.Folder folder, @@ -215,84 +602,9 @@ public class Application.NotificationContext : Geary.BaseObject { retire_new_messages(folder, ids.keys); } - private void on_email_removed(Geary.Folder folder, Gee.Collection ids) { + private void on_email_removed(Geary.Folder folder, + Gee.Collection ids) { retire_new_messages(folder, ids); } - private async void do_process_new_email(Geary.Folder folder, - Gee.Collection email_ids) { - MonitorInformation info = folder_information.get(folder); - - try { - Gee.List? list = yield folder.list_email_by_sparse_id_async(email_ids, - required_fields, Geary.Folder.ListFlags.NONE, info.cancellable); - if (list == null || list.size == 0) { - debug("Warning: %d new emails, but none could be listed", email_ids.size); - - return; - } - - new_messages(info, list); - - debug("do_process_new_email: %d messages listed, %d unread in folder %s", - list.size, info.count, folder.to_string()); - } catch (Error err) { - debug("Unable to notify of new email: %s", err.message); - } - } - - private void new_messages(MonitorInformation info, Gee.Collection emails) { - int appended_count = 0; - foreach (Geary.Email email in emails) { - if (!email.fields.fulfills(required_fields)) { - debug("Warning: new message %s (%Xh) does not fulfill NewMessagesMonitor required fields of %Xh", - email.id.to_string(), email.fields, required_fields); - } - - if (info.new_ids.contains(email.id)) - continue; - - if (!email.email_flags.is_unread()) - continue; - - last_new_message_folder = info.folder; - last_new_message = email; - - info.new_ids.add(email.id); - appended_count++; - } - - update_count(info, true, appended_count); - } - - private void retire_new_messages(Geary.Folder folder, - Gee.Collection email_ids) { - MonitorInformation info = folder_information.get(folder); - - int removed_count = 0; - foreach (Geary.EmailIdentifier email_id in email_ids) { - if (last_new_message != null && last_new_message.id.equal_to(email_id)) { - last_new_message_folder = null; - last_new_message = null; - } - - if (info.new_ids.remove(email_id)) - removed_count++; - } - - update_count(info, false, removed_count); - } - - private void update_count(MonitorInformation info, bool arrived, int delta) { - int new_size = info.new_ids.size; - - total_new_messages += new_size - info.count; - info.count = new_size; - - if (arrived) - new_messages_arrived(info.folder, info.count, delta); - else - new_messages_retired(info.folder, info.count); - } - } diff --git a/src/client/application/application-plugin-manager.vala b/src/client/application/application-plugin-manager.vala index e052d0c0..bdae6aba 100644 --- a/src/client/application/application-plugin-manager.vala +++ b/src/client/application/application-plugin-manager.vala @@ -19,33 +19,48 @@ public class Application.PluginManager : GLib.Object { "notification-badge" }; + /** Flags assigned to a plugin by the manager. */ + [Flags] + public enum PluginFlags { + /** If set, the plugin is in the set of trusted plugins. */ + TRUSTED; + } + + private Client application; - private Peas.Engine engine; + private Peas.Engine plugins; private bool is_shutdown = false; private string trusted_path; + private FolderStoreFactory folders_factory; + private Peas.ExtensionSet notification_extensions; - private NotificationContext notifications; + private Gee.Set notification_contexts = + new Gee.HashSet(); - public PluginManager(Client application, - NotificationContext notifications) { + public PluginManager(Client application) throws GLib.Error { this.application = application; - this.engine = Peas.Engine.get_default(); + this.plugins = Peas.Engine.get_default(); + this.folders_factory = new FolderStoreFactory(application.engine); this.trusted_path = application.get_app_plugins_dir().get_path(); this.plugins.add_search_path(trusted_path, null); - this.notifications = notifications; this.notification_extensions = new Peas.ExtensionSet( - this.engine, - typeof(Plugin.Notification), - "application", this.application, - "context", this.notifications + this.plugins, + typeof(Plugin.Notification) ); this.notification_extensions.extension_added.connect((info, extension) => { Plugin.Notification? plugin = extension as Plugin.Notification; if (plugin != null) { + var context = new NotificationContext( + this.application, + this.folders_factory, + to_plugin_flags(info) + ); + this.notification_contexts.add(context); + plugin.notifications = context; plugin.activate(); } }); @@ -54,19 +69,22 @@ public class Application.PluginManager : GLib.Object { if (plugin != null) { plugin.deactivate(this.is_shutdown); } + var context = plugin.notifications; + context.destroy(); + this.notification_contexts.remove(context); }); string[] optional_names = application.config.get_optional_plugins(); - foreach (Peas.PluginInfo info in this.engine.get_plugin_list()) { + foreach (Peas.PluginInfo info in this.plugins.get_plugin_list()) { string name = info.get_module_name(); try { if (info.is_available()) { if (is_trusted(info)) { debug("Loading trusted plugin: %s", name); - this.engine.load_plugin(info); + this.plugins.load_plugin(info); } else if (name in optional_names) { debug("Loading optional plugin: %s", name); - this.engine.load_plugin(info); + this.plugins.load_plugin(info); } } } catch (GLib.Error err) { @@ -82,9 +100,13 @@ public class Application.PluginManager : GLib.Object { ); } + public inline PluginFlags to_plugin_flags(Peas.PluginInfo plugin) { + return is_trusted(plugin) ? PluginFlags.TRUSTED : 0; + } + public Gee.Collection get_optional_plugins() { var plugins = new Gee.LinkedList(); - foreach (Peas.PluginInfo plugin in this.engine.get_plugin_list()) { + foreach (Peas.PluginInfo plugin in this.plugins.get_plugin_list()) { try { plugin.is_available(); if (!is_trusted(plugin)) { @@ -145,4 +167,8 @@ public class Application.PluginManager : GLib.Object { this.folders_factory.destroy(); } + internal Gee.Collection get_notification_contexts() { + return this.notification_contexts.read_only_view; + } + } diff --git a/src/client/meson.build b/src/client/meson.build index 847c8583..da3e81e5 100644 --- a/src/client/meson.build +++ b/src/client/meson.build @@ -9,6 +9,7 @@ geary_client_vala_sources = files( 'application/application-contact-store.vala', 'application/application-contact.vala', 'application/application-controller.vala', + 'application/application-folder-store-factory.vala', 'application/application-main-window.vala', 'application/application-notification-context.vala', 'application/application-plugin-manager.vala', diff --git a/src/client/plugin/desktop-notifications/desktop-notifications.vala b/src/client/plugin/desktop-notifications/desktop-notifications.vala index 7b6c9822..95c0c9bc 100644 --- a/src/client/plugin/desktop-notifications/desktop-notifications.vala +++ b/src/client/plugin/desktop-notifications/desktop-notifications.vala @@ -1,6 +1,6 @@ /* - * Copyright 2016 Software Freedom Conservancy Inc. - * Copyright 2019 Michael Gratton . + * Copyright © 2016 Software Freedom Conservancy Inc. + * Copyright © 2019-2020 Michael Gratton . * * This software is licensed under the GNU Lesser General Public License * (version 2.1 or later). See the COPYING file in this distribution. @@ -21,33 +21,40 @@ public void peas_register_types(TypeModule module) { public class Plugin.DesktopNotifications : Geary.BaseObject, Notification { - public const Geary.Email.Field REQUIRED_FIELDS = - Geary.Email.Field.ORIGINATORS | Geary.Email.Field.SUBJECT; + private const Geary.SpecialFolderType[] MONITORED_TYPES = { + INBOX, NONE + }; - public Application.Client application { - get; construct set; - } - - public Application.NotificationContext context { - get; construct set; + public global::Application.NotificationContext notifications { + get; set; } private const string ARRIVED_ID = "email-arrived"; + private global::Application.Client? application = null; + private EmailStore? email = null; private GLib.Notification? arrived_notification = null; private GLib.Cancellable? cancellable = null; public override void activate() { - this.context.add_required_fields(REQUIRED_FIELDS); - this.context.new_messages_arrived.connect(on_new_messages_arrived); + try { + this.application = this.notifications.get_client_application(); + } catch (GLib.Error error) { + warning( + "Failed obtain application instance: %s", + error.message + ); + } + + this.notifications.new_messages_arrived.connect(on_new_messages_arrived); this.cancellable = new GLib.Cancellable(); + + this.connect_signals.begin(); } public override void deactivate(bool is_shutdown) { this.cancellable.cancel(); - this.context.new_messages_arrived.disconnect(on_new_messages_arrived); - this.context.remove_required_fields(REQUIRED_FIELDS); // Keep existing notifications if shutting down since they are // persistent, but revoke if the plugin is being disabled. @@ -56,96 +63,116 @@ public class Plugin.DesktopNotifications : Geary.BaseObject, Notification { } } + private async void connect_signals() { + try { + this.email = yield this.notifications.get_email(); + } catch (GLib.Error error) { + warning( + "Unable to get folders for plugin: %s", + error.message + ); + } + + try { + FolderStore folders = yield this.notifications.get_folders(); + folders.folders_available.connect( + (folders) => check_folders(folders) + ); + folders.folders_unavailable.connect( + (folders) => check_folders(folders) + ); + folders.folders_type_changed.connect( + (folders) => check_folders(folders) + ); + check_folders(folders.get_folders()); + } catch (GLib.Error error) { + warning( + "Unable to get folders for plugin: %s", + error.message + ); + } + } + private void clear_arrived_notification() { this.application.withdraw_notification(ARRIVED_ID); this.arrived_notification = null; } - private void notify_new_mail(Geary.Folder folder, int added) { - string body = ngettext( - /// Notification body text for new email when no other - /// new messages are already awaiting. - "%d new message", "%d new messages", added - ).printf(added); - - int total = 0; - try { - total = this.context.get_new_message_count(folder); - } catch (Geary.EngineError err) { - // All good + private async void notify_specific_message(Folder folder, + int total, + Email email + ) throws GLib.Error { + string title = to_notitication_title(folder.account, total); + Geary.RFC822.MailboxAddress? originator = email.get_primary_originator(); + if (originator != null) { + ContactStore contacts = + yield this.notifications.get_contacts_for_folder(folder); + global::Application.Contact? contact = yield contacts.load( + originator, this.cancellable + ); + title = ( + contact.is_trusted + ? contact.display_name + : originator.to_short_display() + ); } + string body = email.subject; + if (total > 1) { + body = ngettext( + /// Notification body when a message as been received + /// and other unread messages have not been + /// seen. First string substitution is the message + /// subject, second is the number of unseen messages, + /// third is the name of the email account. + "%s\n(%d other new message for %s)", + "%s\n(%d other new messages for %s)", + total - 1 + ).printf( + body, + total - 1, + folder.account.display_name + ); + } + + issue_arrived_notification(title, body, folder, email.identifier); + } + + private void notify_general(Folder folder, int total, int added) { + string title = to_notitication_title(folder.account, total); + string body = ngettext( + /// Notification body when multiple messages have been + /// received at the same time and other unseen messages + /// exist. String substitution is the number of new + /// messages that have arrived. + "%d new message", "%d new messages", added + ).printf(added); if (total > added) { body = ngettext( - /// Notification body text for new email when - /// other new messages have already been notified - /// about + /// Notification body when multiple messages have been + /// received at the same time and some unseen messages + /// already exist. String substitution is the message + /// above with the number of new messages that have + /// arrived, number substitution is the total number + /// of unseen messages. "%s, %d new message total", "%s, %d new messages total", total ).printf(body, total); } - issue_arrived_notification( - folder.account.information.display_name, body, folder, null - ); - } - - private async void notify_one_message(Geary.Folder folder, - Geary.Email email, - GLib.Cancellable? cancellable) - throws GLib.Error { - Geary.RFC822.MailboxAddress? originator = - Util.Email.get_primary_originator(email); - if (originator != null) { - Application.ContactStore contacts = - this.context.get_contact_store(folder.account); - Application.Contact contact = yield contacts.load( - originator, cancellable - ); - - int count = 1; - try { - count = this.context.get_new_message_count(folder); - } catch (Geary.EngineError.NOT_FOUND err) { - // All good - } - - string body = ""; - if (count <= 1) { - body = Util.Email.strip_subject_prefixes(email); - } else { - body = ngettext( - "%s\n(%d other new message for %s)", - "%s\n(%d other new messages for %s)", count - 1).printf( - Util.Email.strip_subject_prefixes(email), - count - 1, - folder.account.information.display_name - ); - } - - issue_arrived_notification( - contact.is_trusted - ? contact.display_name : originator.to_short_display(), - body, - folder, - email.id - ); - } else { - notify_new_mail(folder, 1); - } + issue_arrived_notification(title, body, folder, null); } private void issue_arrived_notification(string summary, string body, - Geary.Folder folder, - Geary.EmailIdentifier? id) { + Folder folder, + EmailIdentifier? id) { // only one outstanding notification at a time clear_arrived_notification(); string? action = null; GLib.Variant[] target_param = new GLib.Variant[] { - folder.account.information.id, - new GLib.Variant.variant(folder.path.to_variant()) + new GLib.Variant.variant(folder.to_variant()) }; if (id == null) { @@ -172,11 +199,13 @@ public class Plugin.DesktopNotifications : Geary.BaseObject, Notification { GLib.Notification notification = new GLib.Notification(summary); notification.set_body(body); notification.set_icon( - new GLib.ThemedIcon("%s-symbolic".printf(Application.Client.APP_ID)) + new GLib.ThemedIcon( + "%s-symbolic".printf(global::Application.Client.APP_ID) + ) ); - /* We do not show notification action under Unity */ - + // Do not show notification actions under Unity, it's + // notifications daemon doesn't support them. if (this.application.config.desktop_environment == UNITY) { this.application.send_notification(id, notification); return notification; @@ -192,22 +221,60 @@ public class Plugin.DesktopNotifications : Geary.BaseObject, Notification { } } - private void on_new_messages_arrived(Geary.Folder folder, - int total, - int added) { - if (this.context.should_notify_new_messages(folder)) { - if (added == 1 && - this.context.last_new_message_folder != null && - this.context.last_new_message != null) { - this.notify_one_message.begin( - this.context.last_new_message_folder, - this.context.last_new_message, - this.cancellable - ); - } else if (added > 0) { - notify_new_mail(folder, added); + private async void handle_new_messages(Folder folder, + int total, + Gee.Collection added) { + if (this.notifications.should_notify_new_messages(folder)) { + // notify about a specific message if it's the only one + // present and it can be loaded, otherwise notify + // generally + bool notified = false; + if (this.email != null && + added.size == 1) { + try { + Email? message = Geary.Collection.first( + yield this.email.get_email(added, this.cancellable) + ); + if (message != null) { + yield notify_specific_message(folder, total, message); + notified = true; + } else { + warning("Could not load email for notification"); + } + } catch (GLib.Error error) { + warning("Error loading email for notification: %s", error.message); + } + } + + if (!notified) { + notify_general(folder, total, added.size); } } } + private void check_folders(Gee.Collection folders) { + foreach (Folder folder in folders) { + if (folder.folder_type in MONITORED_TYPES) { + this.notifications.start_monitoring_folder(folder); + } else { + this.notifications.stop_monitoring_folder(folder); + } + } + } + + private inline string to_notitication_title(Account account, int count) { + return ngettext( + /// Notification title when new messages have been + /// received. String substitution is the name of the email + /// account. + "New message for %s", "New messages for %s", count + ).printf(account.display_name); + } + + private void on_new_messages_arrived(Folder folder, + int total, + Gee.Collection added) { + this.handle_new_messages.begin(folder, total, added); + } + } diff --git a/src/client/plugin/messaging-menu/messaging-menu.vala b/src/client/plugin/messaging-menu/messaging-menu.vala index 6fd3b69f..a97840cd 100644 --- a/src/client/plugin/messaging-menu/messaging-menu.vala +++ b/src/client/plugin/messaging-menu/messaging-menu.vala @@ -1,6 +1,6 @@ /* - * Copyright 2016 Software Freedom Conservancy Inc. - * Copyright 2019 Michael Gratton . + * Copyright © 2016 Software Freedom Conservancy Inc. + * Copyright © 2019-2020 Michael Gratton . * * This software is licensed under the GNU Lesser General Public License * (version 2.1 or later). See the COPYING file in this distribution. @@ -19,66 +19,56 @@ public void peas_register_types(TypeModule module) { public class Plugin.MessagingMenu : Geary.BaseObject, Notification { - public Application.Client application { - get; construct set; + public global::Application.NotificationContext notifications { + get; set; } - public Application.NotificationContext context { - get; construct set; - } private global::MessagingMenu.App? app = null; + private FolderStore? folders = null; public override void activate() { this.app = new global::MessagingMenu.App( - "%s.desktop".printf(Application.Client.APP_ID) + "%s.desktop".printf(global::Application.Client.APP_ID) ); this.app.register(); this.app.activate_source.connect(on_activate_source); - this.context.folder_removed.connect(on_folder_removed); - this.context.new_messages_arrived.connect(on_new_messages_changed); - this.context.new_messages_retired.connect(on_new_messages_changed); + this.notifications.new_messages_arrived.connect(on_new_messages_changed); + this.notifications.new_messages_retired.connect(on_new_messages_changed); + this.connect_folders.begin(); } public override void deactivate(bool is_shutdown) { - this.context.folder_removed.disconnect(on_folder_removed); - this.context.new_messages_arrived.disconnect(on_new_messages_changed); - this.context.new_messages_retired.disconnect(on_new_messages_changed); - this.app.activate_source.disconnect(on_activate_source); this.app.unregister(); this.app = null; } - private string get_source_id(Geary.Folder folder) { - return "new-messages-id-%s-%s".printf(folder.account.information.id, folder.path.to_string()); - } - - private void on_activate_source(string source_id) { - foreach (Geary.Folder folder in this.context.get_folders()) { - if (source_id == get_source_id(folder)) { - this.application.show_folder.begin(folder); - break; - } + private async void connect_folders() { + try { + this.folders = yield this.notifications.get_folders(); + folders.folders_available.connect( + (folders) => check_folders(folders) + ); + folders.folders_unavailable.connect( + (folders) => check_folders(folders) + ); + folders.folders_type_changed.connect( + (folders) => check_folders(folders) + ); + check_folders(folders.get_folders()); + } catch (GLib.Error error) { + warning( + "Unable to get folders for plugin: %s", + error.message + ); } } - private void on_new_messages_changed(Geary.Folder folder, int count) { - if (count > 0) { - show_new_messages_count(folder, count); - } else { - remove_new_messages_count(folder); - } - } - - private void on_folder_removed(Geary.Folder folder) { - remove_new_messages_count(folder); - } - - private void show_new_messages_count(Geary.Folder folder, int count) { - if (this.context.should_notify_new_messages(folder)) { + private void show_new_messages_count(Folder folder, int count) { + if (this.notifications.should_notify_new_messages(folder)) { string source_id = get_source_id(folder); if (this.app.has_source(source_id)) { @@ -87,7 +77,7 @@ public class Plugin.MessagingMenu : Geary.BaseObject, Notification { this.app.append_source_with_count( source_id, null, - _("%s — New Messages").printf(folder.account.information.display_name), + _("%s — New Messages").printf(folder.display_name), count); } @@ -95,7 +85,7 @@ public class Plugin.MessagingMenu : Geary.BaseObject, Notification { } } - private void remove_new_messages_count(Geary.Folder folder) { + private void remove_new_messages_count(Folder folder) { string source_id = get_source_id(folder); if (this.app.has_source(source_id)) { this.app.remove_attention(source_id); @@ -103,4 +93,37 @@ public class Plugin.MessagingMenu : Geary.BaseObject, Notification { } } + private string get_source_id(Folder folder) { + return "geary%s".printf(folder.to_variant().print(false)); + } + + private void on_activate_source(string source_id) { + if (this.folders != null) { + foreach (Folder folder in this.folders.get_folders()) { + if (source_id == get_source_id(folder)) { + this.notifications.plugin_application.show_folder(folder); + break; + } + } + } + } + + private void on_new_messages_changed(Folder folder, int count) { + if (count > 0) { + show_new_messages_count(folder, count); + } else { + remove_new_messages_count(folder); + } + } + + private void check_folders(Gee.Collection folders) { + foreach (Folder folder in folders) { + if (folder.folder_type == INBOX) { + this.notifications.start_monitoring_folder(folder); + } else if (this.notifications.is_monitoring_folder(folder)) { + this.notifications.stop_monitoring_folder(folder); + } + } + } + } diff --git a/src/client/plugin/notification-badge/notification-badge.vala b/src/client/plugin/notification-badge/notification-badge.vala index b3b343a7..661ad662 100644 --- a/src/client/plugin/notification-badge/notification-badge.vala +++ b/src/client/plugin/notification-badge/notification-badge.vala @@ -1,6 +1,6 @@ /* - * Copyright 2016 Software Freedom Conservancy Inc. - * Copyright 2019 Michael Gratton . + * Copyright © 2016 Software Freedom Conservancy Inc. + * Copyright © 2019-2020 Michael Gratton . * * This software is licensed under the GNU Lesser General Public License * (version 2.1 or later). See the COPYING file in this distribution. @@ -19,21 +19,22 @@ public void peas_register_types(TypeModule module) { public class Plugin.NotificationBadge : Geary.BaseObject, Notification { - public Application.Client application { - get; construct set; - } + private const Geary.SpecialFolderType[] MONITORED_TYPES = { + INBOX, NONE + }; - public Application.NotificationContext context { - get; construct set; + public global::Application.NotificationContext notifications { + get; set; } private UnityLauncherEntry? entry = null; public override void activate() { - var connection = this.application.get_dbus_connection(); - var path = this.application.get_dbus_object_path(); try { + var application = this.notifications.get_client_application(); + var connection = application.get_dbus_connection(); + var path = application.get_dbus_object_path(); if (connection == null || path == null) { throw new GLib.IOError.NOT_CONNECTED( "Application does not have a DBus connection or path" @@ -42,7 +43,7 @@ public class Plugin.NotificationBadge : Geary.BaseObject, Notification { this.entry = new UnityLauncherEntry( connection, path + "/plugin/notificationbadge", - Application.Client.APP_ID + ".desktop" + global::Application.Client.APP_ID + ".desktop" ); } catch (GLib.Error error) { warning( @@ -51,18 +52,53 @@ public class Plugin.NotificationBadge : Geary.BaseObject, Notification { ); } - this.context.notify["total-new-messages"].connect(on_total_changed); - update_count(); + connect_folders.begin(); } public override void deactivate(bool is_shutdown) { - this.context.notify["total-new-messages"].disconnect(on_total_changed); + this.notifications.notify["total-new-messages"].disconnect( + on_total_changed + ); this.entry = null; } + public async void connect_folders() { + try { + FolderStore folders = yield this.notifications.get_folders(); + folders.folders_available.connect( + (folders) => check_folders(folders) + ); + folders.folders_unavailable.connect( + (folders) => check_folders(folders) + ); + folders.folders_type_changed.connect( + (folders) => check_folders(folders) + ); + check_folders(folders.get_folders()); + } catch (GLib.Error error) { + warning( + "Unable to get folders for plugin: %s", + error.message + ); + } + + this.notifications.notify["total-new-messages"].connect(on_total_changed); + update_count(); + } + + private void check_folders(Gee.Collection folders) { + foreach (Folder folder in folders) { + if (folder.folder_type in MONITORED_TYPES) { + this.notifications.start_monitoring_folder(folder); + } else { + this.notifications.stop_monitoring_folder(folder); + } + } + } + private void update_count() { if (this.entry != null) { - int count = this.context.total_new_messages; + int count = this.notifications.total_new_messages; if (count > 0) { this.entry.set_count(count); } else { diff --git a/src/client/plugin/plugin-notification.vala b/src/client/plugin/plugin-notification.vala index fd409644..b00549f9 100644 --- a/src/client/plugin/plugin-notification.vala +++ b/src/client/plugin/plugin-notification.vala @@ -10,14 +10,9 @@ */ public interface Plugin.Notification : Geary.BaseObject { - /** The application instance containing the plugin. */ - public abstract Application.Client application { - get; construct set; - } - /** Context object for notifications. */ - public abstract Application.NotificationContext context { - get; construct set; + public abstract global::Application.NotificationContext notifications { + get; set; } /* Invoked to activate the plugin, after loading. */ From ff7c0f245b2010383c95b5671df84e8fb468325f Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Tue, 10 Mar 2020 13:26:40 +1100 Subject: [PATCH 086/336] Application.Client: fix expected GVariant types for actions --- src/client/application/application-client.vala | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/client/application/application-client.vala b/src/client/application/application-client.vala index 45472b49..299ec777 100644 --- a/src/client/application/application-client.vala +++ b/src/client/application/application-client.vala @@ -82,8 +82,8 @@ public class Application.Client : Gtk.Application { { Action.Application.NEW_WINDOW, on_activate_new_window }, { Action.Application.PREFERENCES, on_activate_preferences}, { Action.Application.QUIT, on_activate_quit}, - { Action.Application.SHOW_EMAIL, on_activate_show_email, "(svv)"}, - { Action.Application.SHOW_FOLDER, on_activate_show_folder, "(sv)"} + { Action.Application.SHOW_EMAIL, on_activate_show_email, "(vv)"}, + { Action.Application.SHOW_FOLDER, on_activate_show_folder, "(v)"} }; // This is also the order in which they are presented to the user, @@ -603,13 +603,13 @@ public class Application.Client : Gtk.Application { this.controller.expunge_accounts.begin(); } - public async void show_email(Geary.Folder? folder, + public async void show_email(Geary.Folder folder, Geary.EmailIdentifier id) { MainWindow main = yield this.present(); main.show_email.begin(folder, Geary.Collection.single(id), true); } - public async void show_folder(Geary.Folder? folder) { + public async void show_folder(Geary.Folder folder) { MainWindow main = yield this.present(); yield main.select_folder(folder, true); } @@ -1022,12 +1022,13 @@ public class Application.Client : Gtk.Application { private Geary.Folder? get_folder_from_action_target(GLib.Variant target) { Geary.Folder? folder = null; - string id = (string) target.get_child_value(0); + GLib.Variant param = target.get_child_value(0).get_variant(); + string id = (string) param.get_child_value(0); try { Geary.Account account = this.engine.get_account_for_id(id); Geary.FolderPath? path = account.to_folder_path( - target.get_child_value(1).get_variant() + param.get_child_value(1).get_variant() ); folder = account.get_folder(path); } catch (GLib.Error err) { @@ -1089,13 +1090,12 @@ public class Application.Client : Gtk.Application { private void on_activate_show_email(GLib.SimpleAction action, GLib.Variant? target) { if (target != null) { - // Target is a (account_id,folder_path,email_id) tuple Geary.Folder? folder = get_folder_from_action_target(target); Geary.EmailIdentifier? email_id = null; if (folder != null) { try { email_id = folder.account.to_email_identifier( - target.get_child_value(2).get_variant() + target.get_child_value(1).get_variant() ); } catch (GLib.Error err) { debug("Could not find email id: %s", err.message); @@ -1111,7 +1111,6 @@ public class Application.Client : Gtk.Application { private void on_activate_show_folder(GLib.SimpleAction action, GLib.Variant? target) { if (target != null) { - // Target is a (account_id,folder_path) tuple Geary.Folder? folder = get_folder_from_action_target(target); if (folder != null) { this.show_folder.begin(folder); From dbf9b7578e48dfa438e38ae8ebfd9ed3ecd3acb2 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Tue, 10 Mar 2020 17:01:34 +1100 Subject: [PATCH 087/336] Plugin.MessagingMenu: Rename plugin module name Make it clear it's a Unity thing. --- src/client/application/application-plugin-manager.vala | 4 ++-- src/client/plugin/messaging-menu/meson.build | 2 +- src/client/plugin/messaging-menu/messaging-menu.plugin.in | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/client/application/application-plugin-manager.vala b/src/client/application/application-plugin-manager.vala index bdae6aba..6743f27e 100644 --- a/src/client/application/application-plugin-manager.vala +++ b/src/client/application/application-plugin-manager.vala @@ -15,8 +15,8 @@ public class Application.PluginManager : GLib.Object { // access to the application if they have been installed private const string[] TRUSTED_MODULES = { "desktop-notifications", - "messaging-menu", - "notification-badge" + "notification-badge", + "unity-messaging-menu" }; /** Flags assigned to a plugin by the manager. */ diff --git a/src/client/plugin/messaging-menu/meson.build b/src/client/plugin/messaging-menu/meson.build index d757e442..71bc973c 100644 --- a/src/client/plugin/messaging-menu/meson.build +++ b/src/client/plugin/messaging-menu/meson.build @@ -25,7 +25,7 @@ if libmessagingmenu_dep.found() shared_module( # Use a non-standard name for the lib since the standard one # conflicts with libmessagingmenu and causes linking to fail - plugin_name + '-geary', + 'unity-' + plugin_name, sources: plugin_src, dependencies: messaging_menu_dependencies, include_directories: config_h_dir, diff --git a/src/client/plugin/messaging-menu/messaging-menu.plugin.in b/src/client/plugin/messaging-menu/messaging-menu.plugin.in index 4668e58d..7f1b85ba 100644 --- a/src/client/plugin/messaging-menu/messaging-menu.plugin.in +++ b/src/client/plugin/messaging-menu/messaging-menu.plugin.in @@ -1,4 +1,4 @@ [Plugin] -Module=messaging-menu-geary +Module=unity-messaging-menu Name=Messaging Menu Description=Displays Unity Messaging Menu notifications for new email From 835eb04daa339df75539066c19204c6ac9bb5c18 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Tue, 10 Mar 2020 17:03:47 +1100 Subject: [PATCH 088/336] Plugin.MessagingMenu: Remove trusted status Doesn't need to be trusted since it doesn't access the client API, and don't load by default since Ubuntu doesn't ship the messaging menu UI any more after dropping Unity. --- src/client/application/application-plugin-manager.vala | 1 - 1 file changed, 1 deletion(-) diff --git a/src/client/application/application-plugin-manager.vala b/src/client/application/application-plugin-manager.vala index 6743f27e..3f3bcba7 100644 --- a/src/client/application/application-plugin-manager.vala +++ b/src/client/application/application-plugin-manager.vala @@ -16,7 +16,6 @@ public class Application.PluginManager : GLib.Object { private const string[] TRUSTED_MODULES = { "desktop-notifications", "notification-badge", - "unity-messaging-menu" }; /** Flags assigned to a plugin by the manager. */ From 154bb2d2c5e098968f961f478ed233e8b53e5924 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Wed, 11 Mar 2020 11:08:49 +1100 Subject: [PATCH 089/336] Rework and clean up how plugin extensions work Since libpeas doesn't allow a single plugin instance to have multiple extensions, define a single libpeas extension as a base class for all plugins and define extensions as non-libpeas interfaces shared by a single plugin. Manage loading/unloading these ourselves. This also defines a new trusted extension interface for plugins that need access to Geary's internals, new error domain for plugis, and made the notification context a plugin interface that is implemented by the application object. --- po/POTFILES.in | 19 +- .../application-notification-context.vala | 166 +++--------------- .../application-plugin-manager.vala | 155 ++++++++++------ src/client/meson.build | 6 +- .../desktop-notifications.vala | 35 ++-- .../plugin/messaging-menu/messaging-menu.vala | 10 +- .../notification-badge.vala | 22 ++- src/client/plugin/plugin-error.vala | 27 +++ .../plugin/plugin-notification-extension.vala | 148 ++++++++++++++++ src/client/plugin/plugin-notification.vala | 24 --- src/client/plugin/plugin-plugin-base.vala | 36 ++++ .../plugin/plugin-trusted-extension.vala | 40 +++++ 12 files changed, 430 insertions(+), 258 deletions(-) create mode 100644 src/client/plugin/plugin-error.vala create mode 100644 src/client/plugin/plugin-notification-extension.vala delete mode 100644 src/client/plugin/plugin-notification.vala create mode 100644 src/client/plugin/plugin-plugin-base.vala create mode 100644 src/client/plugin/plugin-trusted-extension.vala diff --git a/po/POTFILES.in b/po/POTFILES.in index 7f3178e5..10fdcaf5 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -84,20 +84,23 @@ src/client/folder-list/folder-list-inboxes-branch.vala src/client/folder-list/folder-list-search-branch.vala src/client/folder-list/folder-list-special-grouping.vala src/client/folder-list/folder-list-tree.vala +src/client/plugin/plugin-account.vala +src/client/plugin/plugin-application.vala +src/client/plugin/plugin-contact-store.vala +src/client/plugin/plugin-email-store.vala +src/client/plugin/plugin-email.vala +src/client/plugin/plugin-error.vala +src/client/plugin/plugin-folder-store.vala +src/client/plugin/plugin-folder.vala +src/client/plugin/plugin-notification-etension.vala +src/client/plugin/plugin-plugin-base.vala +src/client/plugin/plugin-trusted-etension.vala src/client/plugin/desktop-notifications/desktop-notifications.plugin.in src/client/plugin/desktop-notifications/desktop-notifications.vala src/client/plugin/messaging-menu/messaging-menu.plugin.in src/client/plugin/messaging-menu/messaging-menu.vala src/client/plugin/notification-badge/notification-badge.plugin.in src/client/plugin/notification-badge/notification-badge.vala -src/client/plugin/plugin-account.vala -src/client/plugin/plugin-application.vala -src/client/plugin/plugin-contact-store.vala -src/client/plugin/plugin-email-store.vala -src/client/plugin/plugin-email.vala -src/client/plugin/plugin-folder-store.vala -src/client/plugin/plugin-folder.vala -src/client/plugin/plugin-notification.vala src/client/sidebar/sidebar-branch.vala src/client/sidebar/sidebar-common.vala src/client/sidebar/sidebar-count-cell-renderer.vala diff --git a/src/client/application/application-notification-context.vala b/src/client/application/application-notification-context.vala index 2152243e..3c4c018a 100644 --- a/src/client/application/application-notification-context.vala +++ b/src/client/application/application-notification-context.vala @@ -7,51 +7,15 @@ */ /** - * Provides a context for notification plugins. - * - * The context provides an interface for notification plugins to - * interface with the Geary client application. Plugins that implement - * the plugins will be passed an instance of this class as the - * `context` property. - * - * Plugins should register folders they wish to monitor by calling - * {@link start_monitoring_folder}. The context will then start - * keeping track of email being delivered to the folder and being seen - * in a main window updating {@link total_new_messages} and emitting - * the {@link new_messages_arrived} and {@link new_messages_retired} - * signals as appropriate. - * - * @see Plugin.NotificationPlugin + * Implementation of the notification extension context. */ -public class Application.NotificationContext : Geary.BaseObject { +internal class Application.NotificationContext : + Geary.BaseObject, Plugin.NotificationContext { private const Geary.Email.Field REQUIRED_FIELDS = FLAGS; - private class ApplicationImpl : Geary.BaseObject, Plugin.Application { - - - private Client backing; - private FolderStoreFactory folders; - - - public ApplicationImpl(Client backing, - FolderStoreFactory folders) { - this.backing = backing; - this.folders = folders; - } - - public override void show_folder(Plugin.Folder folder) { - Geary.Folder? target = this.folders.get_engine_folder(folder); - if (target != null) { - this.backing.show_folder.begin(target); - } - } - - } - - private class EmailStoreImpl : Geary.BaseObject, Plugin.EmailStore { @@ -248,23 +212,8 @@ public class Application.NotificationContext : Geary.BaseObject { } } - /** - * Returns the plugin application object. - * - * No special permissions are required to use access this. - */ - public Plugin.Application plugin_application { - get; private set; - } - - /** - * Current total new message count for all monitored folders. - * - * This is the sum of the the counts returned by {@link - * get_new_message_count} for all folders that are being monitored - * after a call to {@link start_monitoring_folder}. - */ - public int total_new_messages { get; private set; default = 0; } + public int total_new_messages { get { return this._total_new_messages; } } + public int _total_new_messages = 0; private Gee.Map folder_information = new Gee.HashMap(); @@ -273,84 +222,28 @@ public class Application.NotificationContext : Geary.BaseObject { private FolderStoreFactory folders_factory; private Plugin.FolderStore folders; private EmailStoreImpl email; - private PluginManager.PluginFlags flags; - /** - * Emitted when new messages have been downloaded. - * - * This will only be emitted for folders that are being monitored - * by calling {@link start_monitoring_folder}. - */ - public signal void new_messages_arrived( - Plugin.Folder parent, - int total, - Gee.Collection added - ); - - /** - * Emitted when a folder has been cleared of new messages. - * - * This will only be emitted for folders that are being monitored - * after a call to {@link start_monitoring_folder}. - */ - public signal void new_messages_retired(Plugin.Folder parent, int total); - - - /** Constructs a new context instance. */ internal NotificationContext(Client application, - FolderStoreFactory folders_factory, - PluginManager.PluginFlags flags) { + FolderStoreFactory folders_factory) { this.application = application; this.folders_factory = folders_factory; this.folders = folders_factory.new_folder_store(); this.email = new EmailStoreImpl(application); - this.flags = flags; - - this.plugin_application = new ApplicationImpl( - application, folders_factory - ); } - /** - * Returns a store to lookup folders for notifications. - * - * This method may prompt for permission before returning. - * - * @throws Geary.EngineError.PERMISSIONS if permission to access - * this resource was not given - */ - public async Plugin.FolderStore get_folders() - throws Geary.EngineError.PERMISSIONS { - return this.folders; - } - - /** - * Returns a store to lookup email for notifications. - * - * This method may prompt for permission before returning. - * - * @throws Geary.EngineError.PERMISSIONS if permission to access - * this resource was not given - */ public async Plugin.EmailStore get_email() - throws Geary.EngineError.PERMISSIONS { + throws Plugin.Error.PERMISSION_DENIED { return this.email; } - /** - * Returns a store to lookup contacts for notifications. - * - * This method may prompt for permission before returning. - * - * @throws Geary.EngineError.NOT_FOUND if the given account does - * not exist - * @throws Geary.EngineError.PERMISSIONS if permission to access - * this resource was not given - */ + public async Plugin.FolderStore get_folders() + throws Plugin.Error.PERMISSION_DENIED { + return this.folders; + } + public async Plugin.ContactStore get_contacts_for_folder(Plugin.Folder source) - throws Geary.EngineError.NOT_FOUND, - Geary.EngineError.PERMISSIONS { + throws Plugin.Error.NOT_FOUND, Plugin.Error.PERMISSION_DENIED { Geary.Folder? folder = this.folders_factory.get_engine_folder(source); AccountContext? context = null; if (folder != null) { @@ -359,30 +252,13 @@ public class Application.NotificationContext : Geary.BaseObject { ); } if (context == null) { - throw new Geary.EngineError.NOT_FOUND( + throw new Plugin.Error.NOT_FOUND( "No account for folder: %s", source.display_name ); } return new ContactStoreImpl(context.contacts); } - /** - * Returns the client's application object. - * - * Only plugins that are trusted by the client will be provided - * access to the application instance. - * - * @throws Geary.EngineError.PERMISSIONS if permission to access - * this resource was not given - */ - public Client get_client_application() - throws Geary.EngineError.PERMISSIONS { - if (!(PluginManager.PluginFlags.TRUSTED in this.flags)) { - throw new Geary.EngineError.PERMISSIONS("Plugin is not trusted"); - } - return this.application; - } - /** * Determines if notifications should be made for a specific folder. * @@ -417,14 +293,14 @@ public class Application.NotificationContext : Geary.BaseObject { * folder by a call to {@link start_monitoring_folder}. */ public int get_new_message_count(Plugin.Folder target) - throws Geary.EngineError.NOT_FOUND { + throws Plugin.Error.NOT_FOUND { Geary.Folder? folder = this.folders_factory.get_engine_folder(target); MonitorInformation? info = null; if (folder != null) { info = folder_information.get(folder); } if (info == null) { - throw new Geary.EngineError.NOT_FOUND( + throw new Plugin.Error.NOT_FOUND( "No such folder: %s", folder.path.to_string() ); } @@ -534,18 +410,19 @@ public class Application.NotificationContext : Geary.BaseObject { Plugin.Folder folder = this.folders_factory.get_plugin_folder(info.folder); if (arrived) { - this.total_new_messages += delta.size; + this._total_new_messages += delta.size; new_messages_arrived( folder, info.recent_ids.size, this.email.get_plugin_ids(delta, info.folder.account.information) ); } else { - this.total_new_messages -= delta.size; + this._total_new_messages -= delta.size; new_messages_retired( folder, info.recent_ids.size ); } + notify_property("total-new-messages"); } private void remove_folder(Geary.Folder target) { @@ -555,7 +432,10 @@ public class Application.NotificationContext : Geary.BaseObject { target.email_flags_changed.disconnect(on_email_flags_changed); target.email_removed.disconnect(on_email_removed); - this.total_new_messages -= info.recent_ids.size; + if (!info.recent_ids.is_empty) { + this._total_new_messages -= info.recent_ids.size; + notify_property("total-new-messages"); + } this.folder_information.unset(target); } diff --git a/src/client/application/application-plugin-manager.vala b/src/client/application/application-plugin-manager.vala index 3f3bcba7..0299727c 100644 --- a/src/client/application/application-plugin-manager.vala +++ b/src/client/application/application-plugin-manager.vala @@ -11,18 +11,34 @@ public class Application.PluginManager : GLib.Object { - // Plugins that will be loaded automatically and trusted with - // access to the application if they have been installed - private const string[] TRUSTED_MODULES = { + // Plugins that will be loaded automatically when the client + // application stats up + private const string[] AUTOLOAD_MODULES = { "desktop-notifications", "notification-badge", }; - /** Flags assigned to a plugin by the manager. */ - [Flags] - public enum PluginFlags { - /** If set, the plugin is in the set of trusted plugins. */ - TRUSTED; + + private class ApplicationImpl : Geary.BaseObject, Plugin.Application { + + + private Client backing; + private FolderStoreFactory folders; + + + public ApplicationImpl(Client backing, + FolderStoreFactory folders) { + this.backing = backing; + this.folders = folders; + } + + public override void show_folder(Plugin.Folder folder) { + Geary.Folder? target = this.folders.get_engine_folder(folder); + if (target != null) { + this.backing.show_folder.begin(target); + } + } + } @@ -33,9 +49,10 @@ public class Application.PluginManager : GLib.Object { private FolderStoreFactory folders_factory; - private Peas.ExtensionSet notification_extensions; - private Gee.Set notification_contexts = - new Gee.HashSet(); + private Gee.Map plugin_set = + new Gee.HashMap(); + private Gee.Map notification_contexts = + new Gee.HashMap(); public PluginManager(Client application) throws GLib.Error { @@ -46,40 +63,16 @@ public class Application.PluginManager : GLib.Object { this.trusted_path = application.get_app_plugins_dir().get_path(); this.plugins.add_search_path(trusted_path, null); - this.notification_extensions = new Peas.ExtensionSet( - this.plugins, - typeof(Plugin.Notification) - ); - this.notification_extensions.extension_added.connect((info, extension) => { - Plugin.Notification? plugin = extension as Plugin.Notification; - if (plugin != null) { - var context = new NotificationContext( - this.application, - this.folders_factory, - to_plugin_flags(info) - ); - this.notification_contexts.add(context); - plugin.notifications = context; - plugin.activate(); - } - }); - this.notification_extensions.extension_removed.connect((info, extension) => { - Plugin.Notification? plugin = extension as Plugin.Notification; - if (plugin != null) { - plugin.deactivate(this.is_shutdown); - } - var context = plugin.notifications; - context.destroy(); - this.notification_contexts.remove(context); - }); + this.plugins.load_plugin.connect_after(on_load_plugin); + this.plugins.unload_plugin.connect(on_unload_plugin); string[] optional_names = application.config.get_optional_plugins(); foreach (Peas.PluginInfo info in this.plugins.get_plugin_list()) { string name = info.get_module_name(); try { if (info.is_available()) { - if (is_trusted(info)) { - debug("Loading trusted plugin: %s", name); + if (is_autoload(info)) { + debug("Loading autoload plugin: %s", name); this.plugins.load_plugin(info); } else if (name in optional_names) { debug("Loading optional plugin: %s", name); @@ -92,15 +85,9 @@ public class Application.PluginManager : GLib.Object { } } - public inline bool is_trusted(Peas.PluginInfo plugin) { - return ( - plugin.get_module_name() in TRUSTED_MODULES && - plugin.get_module_dir().has_prefix(trusted_path) - ); - } - - public inline PluginFlags to_plugin_flags(Peas.PluginInfo plugin) { - return is_trusted(plugin) ? PluginFlags.TRUSTED : 0; + /** Returns the engine folder for the given plugin folder, if any. */ + public Geary.Folder? get_engine_folder(Plugin.Folder plugin) { + return this.folders_factory.get_engine_folder(plugin); } public Gee.Collection get_optional_plugins() { @@ -108,7 +95,7 @@ public class Application.PluginManager : GLib.Object { foreach (Peas.PluginInfo plugin in this.plugins.get_plugin_list()) { try { plugin.is_available(); - if (!is_trusted(plugin)) { + if (!is_autoload(plugin)) { plugins.add(plugin); } } catch (GLib.Error err) { @@ -125,7 +112,7 @@ public class Application.PluginManager : GLib.Object { bool loaded = false; if (plugin.is_available() && !plugin.is_loaded() && - !is_trusted(plugin)) { + !is_autoload(plugin)) { this.plugins.load_plugin(plugin); loaded = true; string name = plugin.get_module_name(); @@ -143,7 +130,7 @@ public class Application.PluginManager : GLib.Object { bool unloaded = false; if (plugin.is_available() && plugin.is_loaded() && - !is_trusted(plugin)) { + !is_autoload(plugin)) { this.plugins.unload_plugin(plugin); unloaded = true; string name = plugin.get_module_name(); @@ -163,11 +150,75 @@ public class Application.PluginManager : GLib.Object { internal void close() throws GLib.Error { this.is_shutdown = true; this.plugins.set_loaded_plugins(null); + this.plugins.garbage_collect(); this.folders_factory.destroy(); } + internal inline bool is_autoload(Peas.PluginInfo info) { + return info.get_module_name() in AUTOLOAD_MODULES; + } + internal Gee.Collection get_notification_contexts() { - return this.notification_contexts.read_only_view; + return this.notification_contexts.values.read_only_view; + } + + private void on_load_plugin(Peas.PluginInfo info) { + var plugin = this.plugins.create_extension( + info, + typeof(Plugin.PluginBase), + "plugin_application", + new ApplicationImpl(this.application, this.folders_factory) + ) as Plugin.PluginBase; + if (plugin != null) { + bool do_activate = true; + var trusted = plugin as Plugin.TrustedExtension; + if (trusted != null) { + if (info.get_module_dir().has_prefix(this.trusted_path)) { + trusted.client_application = this.application; + trusted.client_plugins = this; + } else { + do_activate = false; + this.plugins.unload_plugin(info); + } + } + + var notification = plugin as Plugin.NotificationExtension; + if (notification != null) { + var context = new NotificationContext( + this.application, + this.folders_factory + ); + this.notification_contexts.set(info, context); + notification.notifications = context; + } + + if (do_activate) { + this.plugin_set.set(info, plugin); + plugin.activate(); + } + } else { + warning( + "Could not construct BasePlugin from %s", info.get_module_name() + ); + } + } + + private void on_unload_plugin(Peas.PluginInfo info) { + var plugin = this.plugin_set.get(info); + if (plugin != null) { + plugin.deactivate(this.is_shutdown); + + var notification = plugin as Plugin.NotificationExtension; + if (notification != null) { + var context = this.notification_contexts.get(info); + if (context != null) { + this.notification_contexts.unset(info); + context.destroy(); + } + } + + this.plugin_set.unset(info); + } } } diff --git a/src/client/meson.build b/src/client/meson.build index da3e81e5..d6dd9a4a 100644 --- a/src/client/meson.build +++ b/src/client/meson.build @@ -1,4 +1,5 @@ # Geary client + geary_client_vala_sources = files( 'application/application-attachment-manager.vala', 'application/application-avatar-store.vala', @@ -97,9 +98,12 @@ geary_client_vala_sources = files( 'plugin/plugin-contact-store.vala', 'plugin/plugin-email-store.vala', 'plugin/plugin-email.vala', + 'plugin/plugin-error.vala', 'plugin/plugin-folder-store.vala', 'plugin/plugin-folder.vala', - 'plugin/plugin-notification.vala', + 'plugin/plugin-notification-extension.vala', + 'plugin/plugin-plugin-base.vala', + 'plugin/plugin-trusted-extension.vala', 'sidebar/sidebar-branch.vala', 'sidebar/sidebar-common.vala', diff --git a/src/client/plugin/desktop-notifications/desktop-notifications.vala b/src/client/plugin/desktop-notifications/desktop-notifications.vala index 95c0c9bc..24769fc8 100644 --- a/src/client/plugin/desktop-notifications/desktop-notifications.vala +++ b/src/client/plugin/desktop-notifications/desktop-notifications.vala @@ -10,7 +10,7 @@ public void peas_register_types(TypeModule module) { Peas.ObjectModule obj = module as Peas.ObjectModule; obj.register_extension_type( - typeof(Plugin.Notification), + typeof(Plugin.PluginBase), typeof(Plugin.DesktopNotifications) ); } @@ -18,35 +18,34 @@ public void peas_register_types(TypeModule module) { /** * Manages standard desktop application notifications. */ -public class Plugin.DesktopNotifications : Geary.BaseObject, Notification { +public class Plugin.DesktopNotifications : + PluginBase, NotificationExtension, TrustedExtension { private const Geary.SpecialFolderType[] MONITORED_TYPES = { INBOX, NONE }; - public global::Application.NotificationContext notifications { - get; set; + public NotificationContext notifications { + get; set construct; + } + + public global::Application.Client client_application { + get; set construct; + } + + public global::Application.PluginManager client_plugins { + get; set construct; } private const string ARRIVED_ID = "email-arrived"; - private global::Application.Client? application = null; private EmailStore? email = null; private GLib.Notification? arrived_notification = null; private GLib.Cancellable? cancellable = null; public override void activate() { - try { - this.application = this.notifications.get_client_application(); - } catch (GLib.Error error) { - warning( - "Failed obtain application instance: %s", - error.message - ); - } - this.notifications.new_messages_arrived.connect(on_new_messages_arrived); this.cancellable = new GLib.Cancellable(); @@ -94,7 +93,7 @@ public class Plugin.DesktopNotifications : Geary.BaseObject, Notification { } private void clear_arrived_notification() { - this.application.withdraw_notification(ARRIVED_ID); + this.client_application.withdraw_notification(ARRIVED_ID); this.arrived_notification = null; } @@ -206,8 +205,8 @@ public class Plugin.DesktopNotifications : Geary.BaseObject, Notification { // Do not show notification actions under Unity, it's // notifications daemon doesn't support them. - if (this.application.config.desktop_environment == UNITY) { - this.application.send_notification(id, notification); + if (this.client_application.config.desktop_environment == UNITY) { + this.client_application.send_notification(id, notification); return notification; } else { if (action != null) { @@ -216,7 +215,7 @@ public class Plugin.DesktopNotifications : Geary.BaseObject, Notification { ); } - this.application.send_notification(id, notification); + this.client_application.send_notification(id, notification); return notification; } } diff --git a/src/client/plugin/messaging-menu/messaging-menu.vala b/src/client/plugin/messaging-menu/messaging-menu.vala index a97840cd..29f65fdd 100644 --- a/src/client/plugin/messaging-menu/messaging-menu.vala +++ b/src/client/plugin/messaging-menu/messaging-menu.vala @@ -10,17 +10,17 @@ public void peas_register_types(TypeModule module) { Peas.ObjectModule obj = module as Peas.ObjectModule; obj.register_extension_type( - typeof(Plugin.Notification), + typeof(Plugin.PluginBase), typeof(Plugin.MessagingMenu) ); } /** Updates the Unity messaging menu when new mail arrives. */ -public class Plugin.MessagingMenu : Geary.BaseObject, Notification { +public class Plugin.MessagingMenu : PluginBase, NotificationExtension { - public global::Application.NotificationContext notifications { - get; set; + public NotificationContext notifications { + get; set construct; } @@ -101,7 +101,7 @@ public class Plugin.MessagingMenu : Geary.BaseObject, Notification { if (this.folders != null) { foreach (Folder folder in this.folders.get_folders()) { if (source_id == get_source_id(folder)) { - this.notifications.plugin_application.show_folder(folder); + this.plugin_application.show_folder(folder); break; } } diff --git a/src/client/plugin/notification-badge/notification-badge.vala b/src/client/plugin/notification-badge/notification-badge.vala index 661ad662..58438f5c 100644 --- a/src/client/plugin/notification-badge/notification-badge.vala +++ b/src/client/plugin/notification-badge/notification-badge.vala @@ -10,21 +10,30 @@ public void peas_register_types(TypeModule module) { Peas.ObjectModule obj = module as Peas.ObjectModule; obj.register_extension_type( - typeof(Plugin.Notification), + typeof(Plugin.PluginBase), typeof(Plugin.NotificationBadge) ); } /** Updates Unity application badge with total new message count. */ -public class Plugin.NotificationBadge : Geary.BaseObject, Notification { +public class Plugin.NotificationBadge : + PluginBase, NotificationExtension, TrustedExtension { private const Geary.SpecialFolderType[] MONITORED_TYPES = { INBOX, NONE }; - public global::Application.NotificationContext notifications { - get; set; + public NotificationContext notifications { + get; set construct; + } + + public global::Application.Client client_application { + get; set construct; + } + + public global::Application.PluginManager client_plugins { + get; set construct; } private UnityLauncherEntry? entry = null; @@ -32,9 +41,8 @@ public class Plugin.NotificationBadge : Geary.BaseObject, Notification { public override void activate() { try { - var application = this.notifications.get_client_application(); - var connection = application.get_dbus_connection(); - var path = application.get_dbus_object_path(); + var connection = this.client_application.get_dbus_connection(); + var path = this.client_application.get_dbus_object_path(); if (connection == null || path == null) { throw new GLib.IOError.NOT_CONNECTED( "Application does not have a DBus connection or path" diff --git a/src/client/plugin/plugin-error.vala b/src/client/plugin/plugin-error.vala new file mode 100644 index 00000000..67fae4b9 --- /dev/null +++ b/src/client/plugin/plugin-error.vala @@ -0,0 +1,27 @@ +/* + * Copyright © 2020 Michael Gratton + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +/** + * The base class for objects implementing a client plugin. + * + * To implement a new plugin, have it derive from this type and + * implement any additional extension interfaces (such as {@link + * NotificationExtension}) as required. + */ + +/** + * Errors when plugins request resources from their contexts. + */ +public errordomain Plugin.Error { + + /** Raised when access to a requested resource was denied. */ + PERMISSION_DENIED, + + /** Raised when a requested resource was not found. */ + NOT_FOUND; + +} diff --git a/src/client/plugin/plugin-notification-extension.vala b/src/client/plugin/plugin-notification-extension.vala new file mode 100644 index 00000000..230e98c7 --- /dev/null +++ b/src/client/plugin/plugin-notification-extension.vala @@ -0,0 +1,148 @@ +/* + * Copyright © 2019-2020 Michael Gratton + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +/** + * A plugin extension point for notifying of mail sending or arriving. + */ +public interface Plugin.NotificationExtension : PluginBase { + + /** + * Context object for notifications. + * + * This will be set during (or just after) plugin construction, + * before {@link PluginBase.activate} is called. + */ + public abstract NotificationContext notifications { + get; set construct; + } + +} + + +// XXX this should be an inner interface of NotificationExtension, but +// GNOME/vala#918 prevents that. + +/** + * Provides a context for notification plugins. + * + * The context provides an interface for notification plugins to + * interface with the Geary client application. Plugins that implement + * the plugins will be passed an instance of this class as the + * `context` property. + * + * Plugins should register folders they wish to monitor by calling + * {@link start_monitoring_folder}. The context will then start + * keeping track of email being delivered to the folder and being seen + * in a main window updating {@link total_new_messages} and emitting + * the {@link new_messages_arrived} and {@link new_messages_retired} + * signals as appropriate. + * + * @see Plugin.NotificationExtension.notifications + */ +public interface Plugin.NotificationContext : Geary.BaseObject { + + + /** + * Current total new message count for all monitored folders. + * + * This is the sum of the the counts returned by {@link + * get_new_message_count} for all folders that are being monitored + * after a call to {@link start_monitoring_folder}. + */ + public abstract int total_new_messages { get; default = 0; } + + /** + * Emitted when new messages have been downloaded. + * + * This will only be emitted for folders that are being monitored + * by calling {@link start_monitoring_folder}. + */ + public signal void new_messages_arrived( + Plugin.Folder parent, + int total, + Gee.Collection added + ); + + /** + * Emitted when a folder has been cleared of new messages. + * + * This will only be emitted for folders that are being monitored + * after a call to {@link start_monitoring_folder}. + */ + public signal void new_messages_retired(Plugin.Folder parent, int total); + + + /** + * Returns a store to lookup email for notifications. + * + * This method may prompt for permission before returning. + * + * @throws Error.PERMISSIONS if permission to access + * this resource was not given + */ + public abstract async Plugin.EmailStore get_email() + throws Error.PERMISSION_DENIED; + + /** + * Returns a store to lookup folders for notifications. + * + * This method may prompt for permission before returning. + * + * @throws Error.PERMISSIONS if permission to access + * this resource was not given + */ + public abstract async Plugin.FolderStore get_folders() + throws Error.PERMISSION_DENIED; + + /** + * Returns a store to lookup contacts for notifications. + * + * This method may prompt for permission before returning. + * + * @throws Error.NOT_FOUND if the given account does + * not exist + * @throws Error.PERMISSIONS if permission to access + * this resource was not given + */ + public abstract async Plugin.ContactStore get_contacts_for_folder(Plugin.Folder source) + throws Error.NOT_FOUND, Error.PERMISSION_DENIED; + + /** + * Determines if notifications should be made for a specific folder. + * + * Notification plugins should call this to first before + * displaying a "new mail" notification for mail in a specific + * folder. It will return true for any monitored folder that is + * not currently visible in the currently focused main window, if + * any. + */ + public abstract bool should_notify_new_messages(Plugin.Folder target); + + /** + * Returns the new message count for a specific folder. + * + * The context must have already been requested to monitor the + * folder by a call to {@link start_monitoring_folder}. + */ + public abstract int get_new_message_count(Plugin.Folder target) + throws Error.NOT_FOUND; + + /** + * Starts monitoring a folder for new messages. + * + * Notification plugins should call this to start the context + * recording new messages for a specific folder. + */ + public abstract void start_monitoring_folder(Plugin.Folder target); + + /** Stops monitoring a folder for new messages. */ + public abstract void stop_monitoring_folder(Plugin.Folder target); + + /** Determines if a folder is curently being monitored. */ + public abstract bool is_monitoring_folder(Plugin.Folder target); + +} diff --git a/src/client/plugin/plugin-notification.vala b/src/client/plugin/plugin-notification.vala deleted file mode 100644 index b00549f9..00000000 --- a/src/client/plugin/plugin-notification.vala +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 2019 Michael Gratton - * - * This software is licensed under the GNU Lesser General Public License - * (version 2.1 or later). See the COPYING file in this distribution. - */ - -/** - * A plugin extension point for notifying of mail sending or arriving. - */ -public interface Plugin.Notification : Geary.BaseObject { - - /** Context object for notifications. */ - public abstract global::Application.NotificationContext notifications { - get; set; - } - - /* Invoked to activate the plugin, after loading. */ - public abstract void activate(); - - /* Invoked to deactivate the plugin, prior to unloading */ - public abstract void deactivate(bool is_shutdown); - -} diff --git a/src/client/plugin/plugin-plugin-base.vala b/src/client/plugin/plugin-plugin-base.vala new file mode 100644 index 00000000..c7f0c5b2 --- /dev/null +++ b/src/client/plugin/plugin-plugin-base.vala @@ -0,0 +1,36 @@ +/* + * Copyright © 2020 Michael Gratton + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +/** + * The base class for objects implementing a client plugin. + * + * To implement a new plugin, have it derive from this type and + * implement any additional extension interfaces (such as {@link + * NotificationExtension}) as required. + */ +public abstract class Plugin.PluginBase : Geary.BaseObject { + + /** + * Returns an object for interacting with the client application. + * + * No special permissions are required to use access this + * resource. + * + * This will be set during (or just after) plugin construction, + * before {@link PluginBase.activate} is called. + */ + public Plugin.Application plugin_application { + get; construct; + } + + /** Invoked to activate the plugin, after loading. */ + public abstract void activate(); + + /** Invoked to deactivate the plugin, prior to unloading */ + public abstract void deactivate(bool is_shutdown); + +} diff --git a/src/client/plugin/plugin-trusted-extension.vala b/src/client/plugin/plugin-trusted-extension.vala new file mode 100644 index 00000000..fc0d9bd3 --- /dev/null +++ b/src/client/plugin/plugin-trusted-extension.vala @@ -0,0 +1,40 @@ +/* + * Copyright © 2020 Michael Gratton + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +/** + * A plugin extension point for trusted plugins. + * + * In-tree plugins may implement this interface if they require access + * to the client application's internal machinery. + * + * Since the client application and engine objects have no API + * stability guarantee, Geary will refuse to load out-of-tree plugins + * that implement this extension point. + */ +public interface Plugin.TrustedExtension : PluginBase { + + /** + * Client application object. + * + * This will be set during (or just after) plugin construction, + * before {@link PluginBase.activate} is called. + */ + public abstract global::Application.Client client_application { + get; set construct; + } + + /** + * Client plugin manager object. + * + * This will be set during (or just after) plugin construction, + * before {@link PluginBase.activate} is called. + */ + public abstract global::Application.PluginManager client_plugins { + get; set construct; + } + +} From df7889d7326dfc0e04f1e3225a1d0d323ef0fb27 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Wed, 11 Mar 2020 12:09:43 +1100 Subject: [PATCH 090/336] Make plugin activation and deactivation async and throw errors This makes plugin implementation substatially less verbose. --- .../application-plugin-manager.vala | 112 +++++++++++++++--- .../desktop-notifications.vala | 50 +++----- .../plugin/messaging-menu/messaging-menu.vala | 38 +++--- .../notification-badge.vala | 70 ++++------- src/client/plugin/plugin-plugin-base.vala | 19 ++- 5 files changed, 166 insertions(+), 123 deletions(-) diff --git a/src/client/application/application-plugin-manager.vala b/src/client/application/application-plugin-manager.vala index 0299727c..bc2e809f 100644 --- a/src/client/application/application-plugin-manager.vala +++ b/src/client/application/application-plugin-manager.vala @@ -19,6 +19,29 @@ public class Application.PluginManager : GLib.Object { }; + private class PluginContext { + + + public Peas.PluginInfo info { get; private set; } + public Plugin.PluginBase plugin { get; private set; } + + + public PluginContext(Peas.PluginInfo info, Plugin.PluginBase plugin) { + this.info = info; + this.plugin = plugin; + } + + public async void activate() throws GLib.Error { + yield this.plugin.activate(); + } + + public async void deactivate(bool is_shutdown) throws GLib.Error { + yield this.plugin.deactivate(is_shutdown); + } + + } + + private class ApplicationImpl : Geary.BaseObject, Plugin.Application { @@ -42,6 +65,21 @@ public class Application.PluginManager : GLib.Object { } + /** Emitted when a plugin is successfully loaded and activated. */ + public signal void plugin_activated(Peas.PluginInfo info); + + /** Emitted when a plugin raised an error loading or activating. */ + public signal void plugin_error(Peas.PluginInfo info, GLib.Error error); + + /** + * Emitted when a plugin was unloaded. + * + * If the given error is not null, it was raised on deactivate. + */ + public signal void plugin_deactivated(Peas.PluginInfo info, + GLib.Error? error); + + private Client application; private Peas.Engine plugins; private bool is_shutdown = false; @@ -49,8 +87,8 @@ public class Application.PluginManager : GLib.Object { private FolderStoreFactory folders_factory; - private Gee.Map plugin_set = - new Gee.HashMap(); + private Gee.Map plugin_set = + new Gee.HashMap(); private Gee.Map notification_contexts = new Gee.HashMap(); @@ -193,8 +231,10 @@ public class Application.PluginManager : GLib.Object { } if (do_activate) { - this.plugin_set.set(info, plugin); - plugin.activate(); + var plugin_context = new PluginContext(info, plugin); + plugin_context.activate.begin((obj, res) => { + on_plugin_activated(plugin_context, res); + }); } } else { warning( @@ -204,21 +244,59 @@ public class Application.PluginManager : GLib.Object { } private void on_unload_plugin(Peas.PluginInfo info) { - var plugin = this.plugin_set.get(info); - if (plugin != null) { - plugin.deactivate(this.is_shutdown); - - var notification = plugin as Plugin.NotificationExtension; - if (notification != null) { - var context = this.notification_contexts.get(info); - if (context != null) { - this.notification_contexts.unset(info); - context.destroy(); + var plugin_context = this.plugin_set.get(info); + if (plugin_context != null) { + plugin_context.deactivate.begin( + this.is_shutdown, + (obj, res) => { + on_plugin_deactivated(plugin_context, res); } - } - - this.plugin_set.unset(info); + ); } } + private void on_plugin_activated(PluginContext context, + GLib.AsyncResult result) { + try { + context.activate.end(result); + this.plugin_set.set(context.info, context); + plugin_activated(context.info); + } catch (GLib.Error err) { + plugin_error(context.info, err); + warning( + "Activating plugin %s threw error, unloading: %s", + context.info.get_module_name(), + err.message + ); + this.plugins.unload_plugin(context.info); + } + } + + private void on_plugin_deactivated(PluginContext context, + GLib.AsyncResult result) { + GLib.Error? error = null; + try { + context.deactivate.end(result); + } catch (GLib.Error err) { + warning( + "Deactivating plugin %s threw error: %s", + context.info.get_module_name(), + err.message + ); + error = err; + } + + var notification = context.plugin as Plugin.NotificationExtension; + if (notification != null) { + var notifications = this.notification_contexts.get(context.info); + if (notifications != null) { + this.notification_contexts.unset(context.info); + notifications.destroy(); + } + } + + plugin_deactivated(context.info, error); + this.plugin_set.unset(context.info); + } + } diff --git a/src/client/plugin/desktop-notifications/desktop-notifications.vala b/src/client/plugin/desktop-notifications/desktop-notifications.vala index 24769fc8..4f533795 100644 --- a/src/client/plugin/desktop-notifications/desktop-notifications.vala +++ b/src/client/plugin/desktop-notifications/desktop-notifications.vala @@ -45,14 +45,26 @@ public class Plugin.DesktopNotifications : private GLib.Cancellable? cancellable = null; - public override void activate() { - this.notifications.new_messages_arrived.connect(on_new_messages_arrived); + public override async void activate() throws GLib.Error { this.cancellable = new GLib.Cancellable(); + this.email = yield this.notifications.get_email(); - this.connect_signals.begin(); + this.notifications.new_messages_arrived.connect(on_new_messages_arrived); + + FolderStore folders = yield this.notifications.get_folders(); + folders.folders_available.connect( + (folders) => check_folders(folders) + ); + folders.folders_unavailable.connect( + (folders) => check_folders(folders) + ); + folders.folders_type_changed.connect( + (folders) => check_folders(folders) + ); + check_folders(folders.get_folders()); } - public override void deactivate(bool is_shutdown) { + public override async void deactivate(bool is_shutdown) throws GLib.Error { this.cancellable.cancel(); // Keep existing notifications if shutting down since they are @@ -62,36 +74,6 @@ public class Plugin.DesktopNotifications : } } - private async void connect_signals() { - try { - this.email = yield this.notifications.get_email(); - } catch (GLib.Error error) { - warning( - "Unable to get folders for plugin: %s", - error.message - ); - } - - try { - FolderStore folders = yield this.notifications.get_folders(); - folders.folders_available.connect( - (folders) => check_folders(folders) - ); - folders.folders_unavailable.connect( - (folders) => check_folders(folders) - ); - folders.folders_type_changed.connect( - (folders) => check_folders(folders) - ); - check_folders(folders.get_folders()); - } catch (GLib.Error error) { - warning( - "Unable to get folders for plugin: %s", - error.message - ); - } - } - private void clear_arrived_notification() { this.client_application.withdraw_notification(ARRIVED_ID); this.arrived_notification = null; diff --git a/src/client/plugin/messaging-menu/messaging-menu.vala b/src/client/plugin/messaging-menu/messaging-menu.vala index 29f65fdd..7ce36ee8 100644 --- a/src/client/plugin/messaging-menu/messaging-menu.vala +++ b/src/client/plugin/messaging-menu/messaging-menu.vala @@ -28,7 +28,7 @@ public class Plugin.MessagingMenu : PluginBase, NotificationExtension { private FolderStore? folders = null; - public override void activate() { + public override async void activate() throws GLib.Error { this.app = new global::MessagingMenu.App( "%s.desktop".printf(global::Application.Client.APP_ID) ); @@ -37,36 +37,26 @@ public class Plugin.MessagingMenu : PluginBase, NotificationExtension { this.notifications.new_messages_arrived.connect(on_new_messages_changed); this.notifications.new_messages_retired.connect(on_new_messages_changed); - this.connect_folders.begin(); + + this.folders = yield this.notifications.get_folders(); + folders.folders_available.connect( + (folders) => check_folders(folders) + ); + folders.folders_unavailable.connect( + (folders) => check_folders(folders) + ); + folders.folders_type_changed.connect( + (folders) => check_folders(folders) + ); + check_folders(folders.get_folders()); } - public override void deactivate(bool is_shutdown) { + public override async void deactivate(bool is_shutdown) throws GLib.Error { this.app.activate_source.disconnect(on_activate_source); this.app.unregister(); this.app = null; } - private async void connect_folders() { - try { - this.folders = yield this.notifications.get_folders(); - folders.folders_available.connect( - (folders) => check_folders(folders) - ); - folders.folders_unavailable.connect( - (folders) => check_folders(folders) - ); - folders.folders_type_changed.connect( - (folders) => check_folders(folders) - ); - check_folders(folders.get_folders()); - } catch (GLib.Error error) { - warning( - "Unable to get folders for plugin: %s", - error.message - ); - } - } - private void show_new_messages_count(Folder folder, int count) { if (this.notifications.should_notify_new_messages(folder)) { string source_id = get_source_id(folder); diff --git a/src/client/plugin/notification-badge/notification-badge.vala b/src/client/plugin/notification-badge/notification-badge.vala index 58438f5c..304249a1 100644 --- a/src/client/plugin/notification-badge/notification-badge.vala +++ b/src/client/plugin/notification-badge/notification-badge.vala @@ -39,61 +39,43 @@ public class Plugin.NotificationBadge : private UnityLauncherEntry? entry = null; - public override void activate() { - try { - var connection = this.client_application.get_dbus_connection(); - var path = this.client_application.get_dbus_object_path(); - if (connection == null || path == null) { - throw new GLib.IOError.NOT_CONNECTED( - "Application does not have a DBus connection or path" - ); - } - this.entry = new UnityLauncherEntry( - connection, - path + "/plugin/notificationbadge", - global::Application.Client.APP_ID + ".desktop" - ); - } catch (GLib.Error error) { - warning( - "Failed to register Unity Launcher Entry: %s", - error.message + public override async void activate() throws GLib.Error { + var connection = this.client_application.get_dbus_connection(); + var path = this.client_application.get_dbus_object_path(); + if (connection == null || path == null) { + throw new GLib.IOError.NOT_CONNECTED( + "Application does not have a DBus connection or path" ); } + this.entry = new UnityLauncherEntry( + connection, + path + "/plugin/notificationbadge", + global::Application.Client.APP_ID + ".desktop" + ); - connect_folders.begin(); + FolderStore folders = yield this.notifications.get_folders(); + folders.folders_available.connect( + (folders) => check_folders(folders) + ); + folders.folders_unavailable.connect( + (folders) => check_folders(folders) + ); + folders.folders_type_changed.connect( + (folders) => check_folders(folders) + ); + check_folders(folders.get_folders()); + + this.notifications.notify["total-new-messages"].connect(on_total_changed); + update_count(); } - public override void deactivate(bool is_shutdown) { + public override async void deactivate(bool is_shutdown) throws GLib.Error { this.notifications.notify["total-new-messages"].disconnect( on_total_changed ); this.entry = null; } - public async void connect_folders() { - try { - FolderStore folders = yield this.notifications.get_folders(); - folders.folders_available.connect( - (folders) => check_folders(folders) - ); - folders.folders_unavailable.connect( - (folders) => check_folders(folders) - ); - folders.folders_type_changed.connect( - (folders) => check_folders(folders) - ); - check_folders(folders.get_folders()); - } catch (GLib.Error error) { - warning( - "Unable to get folders for plugin: %s", - error.message - ); - } - - this.notifications.notify["total-new-messages"].connect(on_total_changed); - update_count(); - } - private void check_folders(Gee.Collection folders) { foreach (Folder folder in folders) { if (folder.folder_type in MONITORED_TYPES) { diff --git a/src/client/plugin/plugin-plugin-base.vala b/src/client/plugin/plugin-plugin-base.vala index c7f0c5b2..0be37b0e 100644 --- a/src/client/plugin/plugin-plugin-base.vala +++ b/src/client/plugin/plugin-plugin-base.vala @@ -27,10 +27,21 @@ public abstract class Plugin.PluginBase : Geary.BaseObject { get; construct; } - /** Invoked to activate the plugin, after loading. */ - public abstract void activate(); + /** + * Invoked to activate the plugin, after loading. + * + * If this method raises an error, it will be unloaded without + * deactivating. + */ + public abstract async void activate() throws GLib.Error; - /** Invoked to deactivate the plugin, prior to unloading */ - public abstract void deactivate(bool is_shutdown); + /** + * Invoked to deactivate the plugin, prior to unloading. + * + * If `is_shutdown` is true, the plugin is being unloaded because + * the client application is quitting. Otherwise, the plugin is + * being unloaded at end-user request. + */ + public abstract async void deactivate(bool is_shutdown) throws GLib.Error; } From c72ce8d8daacade2f882a6cdcebbc444aaea08fb Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Wed, 11 Mar 2020 12:21:30 +1100 Subject: [PATCH 091/336] Replace FolderList.Tree mail hooks with plugin Using a plugin to manage folder new mail highlighting so it works in the same way as for other notifications. --- po/POTFILES.in | 2 + .../application-plugin-manager.vala | 1 + src/client/folder-list/folder-list-tree.vala | 14 --- .../folder-highlight.plugin.in | 4 + .../folder-highlight/folder-highlight.vala | 95 +++++++++++++++++++ .../plugin/folder-highlight/meson.build | 26 +++++ src/client/plugin/meson.build | 1 + 7 files changed, 129 insertions(+), 14 deletions(-) create mode 100644 src/client/plugin/folder-highlight/folder-highlight.plugin.in create mode 100644 src/client/plugin/folder-highlight/folder-highlight.vala create mode 100644 src/client/plugin/folder-highlight/meson.build diff --git a/po/POTFILES.in b/po/POTFILES.in index 10fdcaf5..2b5df3fd 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -97,6 +97,8 @@ src/client/plugin/plugin-plugin-base.vala src/client/plugin/plugin-trusted-etension.vala src/client/plugin/desktop-notifications/desktop-notifications.plugin.in src/client/plugin/desktop-notifications/desktop-notifications.vala +src/client/plugin/folder-highlight/folder-highlight.plugin.in +src/client/plugin/folder-highlight/folder-highlight.vala src/client/plugin/messaging-menu/messaging-menu.plugin.in src/client/plugin/messaging-menu/messaging-menu.vala src/client/plugin/notification-badge/notification-badge.plugin.in diff --git a/src/client/application/application-plugin-manager.vala b/src/client/application/application-plugin-manager.vala index bc2e809f..180075eb 100644 --- a/src/client/application/application-plugin-manager.vala +++ b/src/client/application/application-plugin-manager.vala @@ -15,6 +15,7 @@ public class Application.PluginManager : GLib.Object { // application stats up private const string[] AUTOLOAD_MODULES = { "desktop-notifications", + "folder-highlight", "notification-badge", }; diff --git a/src/client/folder-list/folder-list-tree.vala b/src/client/folder-list/folder-list-tree.vala index 372ef90b..bd562eac 100644 --- a/src/client/folder-list/folder-list-tree.vala +++ b/src/client/folder-list/folder-list-tree.vala @@ -14,11 +14,6 @@ public class FolderList.Tree : Sidebar.Tree, Geary.BaseInterface { private const int INBOX_ORDINAL = -2; // First account branch is zero private const int SEARCH_ORDINAL = -1; - private const Geary.SpecialFolderType[] INTERESTING_FOLDERS = { - INBOX, - NONE - }; - public signal void folder_selected(Geary.Folder? folder); public signal void copy_conversation(Geary.Folder folder); @@ -113,7 +108,6 @@ public class FolderList.Tree : Sidebar.Tree, Geary.BaseInterface { if (folder.special_folder_type == Geary.SpecialFolderType.INBOX) inboxes_branch.add_inbox(folder); - folder.email_locally_appended.connect(on_email_appended); account_branch.add_folder(folder); } @@ -141,7 +135,6 @@ public class FolderList.Tree : Sidebar.Tree, Geary.BaseInterface { if (folder.special_folder_type == Geary.SpecialFolderType.INBOX) inboxes_branch.remove_inbox(folder.account); - folder.email_locally_appended.disconnect(on_email_appended); account_branch.remove_folder(folder); } @@ -269,11 +262,4 @@ public class FolderList.Tree : Sidebar.Tree, Geary.BaseInterface { graft(branch, branch.account.information.ordinal); } - private void on_email_appended(Geary.Folder folder, - Gee.Collection ids) { - if (folder.special_folder_type in INTERESTING_FOLDERS) { - set_has_new(folder, true); - } - } - } diff --git a/src/client/plugin/folder-highlight/folder-highlight.plugin.in b/src/client/plugin/folder-highlight/folder-highlight.plugin.in new file mode 100644 index 00000000..f0ca9f97 --- /dev/null +++ b/src/client/plugin/folder-highlight/folder-highlight.plugin.in @@ -0,0 +1,4 @@ +[Plugin] +Module=folder-highlight +Name=Folder Highlight +Description=Highlights folders that have newly delivered mail diff --git a/src/client/plugin/folder-highlight/folder-highlight.vala b/src/client/plugin/folder-highlight/folder-highlight.vala new file mode 100644 index 00000000..398a1622 --- /dev/null +++ b/src/client/plugin/folder-highlight/folder-highlight.vala @@ -0,0 +1,95 @@ +/* + * Copyright © 2016 Software Freedom Conservancy Inc. + * Copyright © 2019-2020 Michael Gratton . + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +[ModuleInit] +public void peas_register_types(TypeModule module) { + Peas.ObjectModule obj = module as Peas.ObjectModule; + obj.register_extension_type( + typeof(Plugin.PluginBase), + typeof(Plugin.FolderHighlight) + ); +} + +/** + * Manages highlighting folders that have newly delivered mail + */ +public class Plugin.FolderHighlight : + PluginBase, NotificationExtension, TrustedExtension { + + + private const Geary.SpecialFolderType[] MONITORED_TYPES = { + INBOX, NONE + }; + + + public NotificationContext notifications { + get; construct set; + } + + public global::Application.Client client_application { + get; construct set; + } + + public global::Application.PluginManager client_plugins { + get; construct set; + } + + public override async void activate() throws GLib.Error { + this.notifications.new_messages_arrived.connect(on_new_messages_arrived); + this.notifications.new_messages_retired.connect(on_new_messages_retired); + + FolderStore folders = yield this.notifications.get_folders(); + folders.folders_available.connect( + (folders) => check_folders(folders) + ); + folders.folders_unavailable.connect( + (folders) => check_folders(folders) + ); + folders.folders_type_changed.connect( + (folders) => check_folders(folders) + ); + check_folders(folders.get_folders()); + } + + public override async void deactivate(bool is_shutdown) throws GLib.Error { + // no-op + } + + private void check_folders(Gee.Collection folders) { + foreach (Folder folder in folders) { + if (folder.folder_type in MONITORED_TYPES) { + this.notifications.start_monitoring_folder(folder); + } else { + this.notifications.stop_monitoring_folder(folder); + } + } + } + + private void on_new_messages_arrived(Folder folder, + int total, + Gee.Collection added) { + Geary.Folder? engine = this.client_plugins.get_engine_folder(folder); + if (engine != null) { + foreach (global::Application.MainWindow window + in this.client_application.get_main_windows()) { + window.folder_list.set_has_new(engine, true); + } + } + } + + private void on_new_messages_retired(Folder folder, int total) { + Geary.Folder? engine = this.client_plugins.get_engine_folder(folder); + if (engine != null) { + foreach (global::Application.MainWindow window + in this.client_application.get_main_windows()) { + window.folder_list.set_has_new(engine, false); + } + } + } + +} diff --git a/src/client/plugin/folder-highlight/meson.build b/src/client/plugin/folder-highlight/meson.build new file mode 100644 index 00000000..44ed29a2 --- /dev/null +++ b/src/client/plugin/folder-highlight/meson.build @@ -0,0 +1,26 @@ + +plugin_name = 'folder-highlight' + +plugin_src = join_paths(plugin_name + '.vala') +plugin_data = join_paths(plugin_name + '.plugin') +plugin_dest = join_paths(plugins_dir, plugin_name) + +shared_module( + plugin_name, + sources: plugin_src, + dependencies: plugin_dependencies, + include_directories: config_h_dir, + vala_args: geary_vala_args, + c_args: plugin_c_args, + install: true, + install_dir: plugin_dest +) + +i18n.merge_file( + input: plugin_data + '.in', + output: plugin_data, + type: 'desktop', + po_dir: po_dir, + install: true, + install_dir: plugin_dest +) diff --git a/src/client/plugin/meson.build b/src/client/plugin/meson.build index 4a508340..a4198c6a 100644 --- a/src/client/plugin/meson.build +++ b/src/client/plugin/meson.build @@ -23,5 +23,6 @@ plugin_dependencies = [ plugin_c_args = geary_c_args subdir('desktop-notifications') +subdir('folder-highlight') subdir('messaging-menu') subdir('notification-badge') From 196343807ccc3147f316c7ca966c2bece4f4c64a Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Wed, 11 Mar 2020 12:23:18 +1100 Subject: [PATCH 092/336] Plugin.DesktopNotification: Update notifications Update notification text since it's cross-account, and hide notifications on new mail being retired. --- .../desktop-notifications.vala | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/client/plugin/desktop-notifications/desktop-notifications.vala b/src/client/plugin/desktop-notifications/desktop-notifications.vala index 4f533795..add646f7 100644 --- a/src/client/plugin/desktop-notifications/desktop-notifications.vala +++ b/src/client/plugin/desktop-notifications/desktop-notifications.vala @@ -50,6 +50,7 @@ public class Plugin.DesktopNotifications : this.email = yield this.notifications.get_email(); this.notifications.new_messages_arrived.connect(on_new_messages_arrived); + this.notifications.new_messages_retired.connect(on_new_messages_retired); FolderStore folders = yield this.notifications.get_folders(); folders.folders_available.connect( @@ -104,15 +105,14 @@ public class Plugin.DesktopNotifications : /// Notification body when a message as been received /// and other unread messages have not been /// seen. First string substitution is the message - /// subject, second is the number of unseen messages, - /// third is the name of the email account. - "%s\n(%d other new message for %s)", - "%s\n(%d other new messages for %s)", + /// subject and the second is the number of unseen + /// messages + "%s\n(%d other new message)", + "%s\n(%d other new messages)", total - 1 ).printf( body, - total - 1, - folder.account.display_name + total - 1 ); } @@ -136,7 +136,8 @@ public class Plugin.DesktopNotifications : /// above with the number of new messages that have /// arrived, number substitution is the total number /// of unseen messages. - "%s, %d new message total", "%s, %d new messages total", + "%s, %d new message total", + "%s, %d new messages total", total ).printf(body, total); } @@ -246,10 +247,9 @@ public class Plugin.DesktopNotifications : private inline string to_notitication_title(Account account, int count) { return ngettext( /// Notification title when new messages have been - /// received. String substitution is the name of the email - /// account. - "New message for %s", "New messages for %s", count - ).printf(account.display_name); + /// received + "New message", "New messages", count + ); } private void on_new_messages_arrived(Folder folder, @@ -258,4 +258,8 @@ public class Plugin.DesktopNotifications : this.handle_new_messages.begin(folder, total, added); } + private void on_new_messages_retired(Folder folder, int total) { + clear_arrived_notification(); + } + } From 4b53370a47cace5b033d4712846a2a5517ee6ee4 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Wed, 11 Mar 2020 12:24:29 +1100 Subject: [PATCH 093/336] Plugin.NotificationBadge: Update plugin description --- .../plugin/notification-badge/notification-badge.plugin.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/plugin/notification-badge/notification-badge.plugin.in b/src/client/plugin/notification-badge/notification-badge.plugin.in index 7a729a6a..55330121 100644 --- a/src/client/plugin/notification-badge/notification-badge.plugin.in +++ b/src/client/plugin/notification-badge/notification-badge.plugin.in @@ -1,4 +1,4 @@ [Plugin] Module=notification-badge Name=Notification Badge -Description=Displays an application badge showing the number of unread messages +Description=Displays a dock badge showing the number of new messages From cfa414f08c0d1bd0c1a0e9b3e8086aa8f0b408a5 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Tue, 17 Mar 2020 22:43:50 +1100 Subject: [PATCH 094/336] Util.Avatar::extract_initials_from_name: Don't strip diacritics Normalise to composed forms rather than decomposed forms, which would replace diacritics on characters with combining chars, making them disappear from the generated initials. Fixes #735 --- src/client/util/util-avatar.vala | 2 +- test/client/util/util-avatar-test.vala | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/client/util/util-avatar.vala b/src/client/util/util-avatar.vala index 01075160..7405a9e1 100644 --- a/src/client/util/util-avatar.vala +++ b/src/client/util/util-avatar.vala @@ -72,7 +72,7 @@ namespace Util.Avatar { } public string? extract_initials_from_name(string name) { - string normalized = name.strip().up().normalize(); + string normalized = name.strip().up().normalize(-1, DEFAULT_COMPOSE); string? initials = null; if (normalized != "") { GLib.StringBuilder buf = new GLib.StringBuilder(); diff --git a/test/client/util/util-avatar-test.vala b/test/client/util/util-avatar-test.vala index 6fe612c3..87f2e5b5 100644 --- a/test/client/util/util-avatar-test.vala +++ b/test/client/util/util-avatar-test.vala @@ -22,6 +22,8 @@ public class Util.Avatar.Test : TestCase { assert_string("AB", extract_initials_from_name("aardvark !baardvark")); assert_string("AC", extract_initials_from_name("aardvark baardvark !caardvark")); + assert_string("Ó", extract_initials_from_name("óvári")); + assert_true(extract_initials_from_name("") == null); assert_true(extract_initials_from_name(" ") == null); assert_true(extract_initials_from_name(" ") == null); From ad6b58cf0a7b095e5aee5498608c5e119371542c Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Tue, 17 Mar 2020 22:46:42 +1100 Subject: [PATCH 095/336] Util.Avatar::extract_initials_from_name: Trivial optimisation Don't upper case the whole string, only upper-case characters that are used as the initials. --- src/client/util/util-avatar.vala | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/client/util/util-avatar.vala b/src/client/util/util-avatar.vala index 7405a9e1..a6cd3ee2 100644 --- a/src/client/util/util-avatar.vala +++ b/src/client/util/util-avatar.vala @@ -72,7 +72,7 @@ namespace Util.Avatar { } public string? extract_initials_from_name(string name) { - string normalized = name.strip().up().normalize(-1, DEFAULT_COMPOSE); + string normalized = name.strip().normalize(-1, DEFAULT_COMPOSE); string? initials = null; if (normalized != "") { GLib.StringBuilder buf = new GLib.StringBuilder(); @@ -82,7 +82,7 @@ namespace Util.Avatar { // Get the first alphanumeric char of the string for (int i = 0; normalized.get_next_char(ref index, out c); i++) { if (c.isalnum()) { - buf.append_unichar(c); + buf.append_unichar(c.toupper()); break; } } @@ -92,7 +92,7 @@ namespace Util.Avatar { if (index >= 0) { for (int i = 0; normalized.get_next_char(ref index, out c); i++) { if (c.isalnum()) { - buf.append_unichar(c); + buf.append_unichar(c.toupper()); break; } } From 3ff81d7a21af671e0cd8b93b7a2fd0d6f2ce3d08 Mon Sep 17 00:00:00 2001 From: Ask Hjorth Larsen Date: Tue, 17 Mar 2020 14:18:05 +0100 Subject: [PATCH 096/336] Updated Danish translation --- po/da.po | 3411 ++++++++++++++++++++++++++---------------------------- 1 file changed, 1659 insertions(+), 1752 deletions(-) diff --git a/po/da.po b/po/da.po index 59662536..c76d43c1 100644 --- a/po/da.po +++ b/po/da.po @@ -1,78 +1,66 @@ -# po/geary.pot -# PO message string template file for Geary email client +# Danish translation for Geary # Copyright 2018 Software Freedom Conservancy Inc. # This file is distributed under the GNU LGPL, version 2.1. -# -# Translators: -# # Nikolaj64 , 2013, 2014. # Ask Hjorth Larsen , 2016. # Alan Mortensen , 2016-19. +# scootergrisen, 2020. +# msgid "" msgstr "" -"Project-Id-Version: geary-0.4.1\n" +"Project-Id-Version: geary\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2019-01-10 06:53+0000\n" -"PO-Revision-Date: 2019-01-24 19:56+0100\n" -"Last-Translator: Alan Mortensen \n" -"Language-Team: Danish (http://www.transifex.com/projects/p/geary/language/" -"da/)\n" +"POT-Creation-Date: 2019-12-17 23:56+0000\n" +"PO-Revision-Date: 2020-03-09 00:00+0200\n" +"Last-Translator: scootergrisen\n" +"Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.0.6\n" #: desktop/geary-attach.contract.desktop.in:3 msgid "Send by email" msgstr "Send via e-mail" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: desktop/geary-attach.contract.desktop.in:5 -msgid "mail-send" -msgstr "mail-send" - #: desktop/geary-attach.contract.desktop.in:6 msgid "Send files using Geary" msgstr "Send filer med Geary" #. Translators: The application name -#: desktop/geary-autostart.desktop.in:3 -#: desktop/org.gnome.Geary.appdata.xml.in:11 -#: desktop/org.gnome.Geary.desktop.in:3 -#: src/client/accounts/accounts-editor-servers-pane.vala:539 +#: desktop/geary-autostart.desktop.in.in:3 +#: desktop/org.gnome.Geary.appdata.xml.in.in:12 +#: desktop/org.gnome.Geary.desktop.in.in:3 +#: src/client/accounts/accounts-editor-servers-pane.vala:555 +#: src/client/application/application-main-window.vala:547 msgid "Geary" msgstr "Geary" -#: desktop/geary-autostart.desktop.in:4 desktop/org.gnome.Geary.desktop.in:4 +#: desktop/geary-autostart.desktop.in.in:4 +#: desktop/org.gnome.Geary.desktop.in.in:4 msgid "Email" msgstr "E-mail" #. Translators: The application's summary / tagline -#: desktop/geary-autostart.desktop.in:5 -#: desktop/org.gnome.Geary.appdata.xml.in:15 -#: desktop/org.gnome.Geary.desktop.in:5 -#: src/client/application/geary-application.vala:21 +#: desktop/geary-autostart.desktop.in.in:5 +#: desktop/org.gnome.Geary.appdata.xml.in.in:16 +#: desktop/org.gnome.Geary.desktop.in.in:5 +#: src/client/application/application-client.vala:32 msgid "Send and receive email" msgstr "Send og modtag e-mail" #. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon. -#: desktop/geary-autostart.desktop.in:7 +#: desktop/geary-autostart.desktop.in.in:7 msgid "Email;E-mail;Mail;" msgstr "Email;E-mail;Mail;Post;E-brev;" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: desktop/geary-autostart.desktop.in:9 desktop/org.gnome.Geary.desktop.in:9 -msgid "org.gnome.Geary" -msgstr "org.gnome.Geary" - #. Translators: The development team's name -#: desktop/org.gnome.Geary.appdata.xml.in:13 +#: desktop/org.gnome.Geary.appdata.xml.in.in:14 msgid "Geary Development Team" msgstr "Gearys udviklerhold" -#: desktop/org.gnome.Geary.appdata.xml.in:17 +#: desktop/org.gnome.Geary.appdata.xml.in.in:18 msgid "" "Geary is an email application built around conversations, for the GNOME 3 " "desktop. It allows you to read, find and send email with a straightforward, " @@ -82,7 +70,7 @@ msgstr "" "omkring samtaler. Det lader dig læse, finde og sende e-mail via en enkel, " "moderne brugerflade." -#: desktop/org.gnome.Geary.appdata.xml.in:22 +#: desktop/org.gnome.Geary.appdata.xml.in.in:23 msgid "" "Conversations allow you to read a complete discussion without having to find " "and click from message to message." @@ -90,54 +78,58 @@ msgstr "" "Samtaler lader dig læse en hel samtale uden at skulle finde hver enkelt " "besked frem én ad gangen." -#: desktop/org.gnome.Geary.appdata.xml.in:26 +#: desktop/org.gnome.Geary.appdata.xml.in.in:27 msgid "Geary’s features include:" msgstr "Geary tilbyder:" -#: desktop/org.gnome.Geary.appdata.xml.in:28 +#: desktop/org.gnome.Geary.appdata.xml.in.in:29 msgid "Quick email account setup" msgstr "Hurtig opsætning af e-mailkonto" -#: desktop/org.gnome.Geary.appdata.xml.in:29 +#: desktop/org.gnome.Geary.appdata.xml.in.in:30 msgid "Shows related messages together in conversations" msgstr "Viser relaterede beskeder sammen i samtaler" -#: desktop/org.gnome.Geary.appdata.xml.in:30 +#: desktop/org.gnome.Geary.appdata.xml.in.in:31 msgid "Fast, full text and keyword search" msgstr "Hurtig fuldtekst- og nøgleordssøgning" -#: desktop/org.gnome.Geary.appdata.xml.in:31 +#: desktop/org.gnome.Geary.appdata.xml.in.in:32 msgid "Full-featured HTML and plain text message composer" msgstr "Mange funktioner til redigering af HTML-beskeder samt ren tekst" -#: desktop/org.gnome.Geary.appdata.xml.in:32 +#: desktop/org.gnome.Geary.appdata.xml.in.in:33 msgid "Desktop notification of new mail" msgstr "Skrivebordspåmindelser om ny e-mail" -#: desktop/org.gnome.Geary.appdata.xml.in:33 +#: desktop/org.gnome.Geary.appdata.xml.in.in:34 msgid "Compatible with GMail, Yahoo! Mail, Outlook.com and other IMAP servers" msgstr "Kompatibel med GMail, Yahoo! Mail, Outlook.com og andre IMAP-servere" #. Translators: A screenshot description. -#: desktop/org.gnome.Geary.appdata.xml.in:47 +#: desktop/org.gnome.Geary.appdata.xml.in.in:48 msgid "Geary displaying a conversation" msgstr "Geary som en samtale ser ud" #. Translators: A screenshot description. -#: desktop/org.gnome.Geary.appdata.xml.in:52 +#: desktop/org.gnome.Geary.appdata.xml.in.in:59 msgid "Geary showing the rich text composer" msgstr "Geary som redigering af formateret tekst ser ud" #. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon. -#: desktop/org.gnome.Geary.desktop.in:7 +#: desktop/org.gnome.Geary.desktop.in.in:7 msgid "Mail;E-mail;IMAP;GMail;Yahoo;Hotmail;Outlook;" msgstr "" "Mail;E-mail;Email;Post;E-post;Brev;E-brev;IMAP;GMail;Yahoo;Hotmail;Outlook;" -#: desktop/org.gnome.Geary.desktop.in:21 ui/gtk/menus.ui:7 +#: desktop/org.gnome.Geary.desktop.in.in:22 msgid "Compose Message" msgstr "Skriv besked" +#: desktop/org.gnome.Geary.desktop.in.in:26 +msgid "New Window" +msgstr "Nyt vindue" + #: desktop/org.gnome.Geary.gschema.xml:8 msgid "Maximize window" msgstr "Maksimér vindue" @@ -224,105 +216,107 @@ msgstr "" "Sand (true) hvis der skal vises en kort forhåndsvisning af hver besked." #: desktop/org.gnome.Geary.gschema.xml:68 +msgid "Use single key shortcuts" +msgstr "Brug genveje med én tast" + +#: desktop/org.gnome.Geary.gschema.xml:69 +msgid "" +"Enables shortcuts for email actions that do not require pressing to " +"emulate those used by Gmail." +msgstr "" +"Aktiverer genveje til e-mailhandlinger, som ikke kræver at trykkes " +"ned for at emulerer dem, der bruges af Gmail." + +#: desktop/org.gnome.Geary.gschema.xml:76 msgid "Languages that shall be used in the spell checker" msgstr "Sprog der skal bruges til stavekontrol" -#: desktop/org.gnome.Geary.gschema.xml:69 -msgid "List of the languages to use in the spell checker." -msgstr "Liste med sprog der skal bruges til stavekontrol." +#: desktop/org.gnome.Geary.gschema.xml:77 +msgid "" +"A list of POSIX locales, with the empty list disabling spell checking and " +"the null list using desktop languages by default." +msgstr "" +"En liste over POSIX-lokaliteter hvor den tomme liste deaktiverer " +"stavekontrol og nul-listen bruger skrivebordssprog som standard." -#: desktop/org.gnome.Geary.gschema.xml:74 +#: desktop/org.gnome.Geary.gschema.xml:84 msgid "Languages that are displayed in the spell checker popover" msgstr "Sprog der vises i pop-overen til stavekontrollen" -#: desktop/org.gnome.Geary.gschema.xml:75 +#: desktop/org.gnome.Geary.gschema.xml:85 msgid "" "List of languages that are always displayed in the popover of the spell " "checker." -msgstr "Liste med sprog der altid vises i pop-overen til stavekontrollen" +msgstr "Liste med sprog der altid vises i pop-overen til stavekontrollen." -#: desktop/org.gnome.Geary.gschema.xml:80 -msgid "Enable notification sounds" -msgstr "Aktivér påmindelseslyde" - -#: desktop/org.gnome.Geary.gschema.xml:81 -msgid "True to play sounds for notifications and sending." -msgstr "Sand (true) for at afspille lyde ved påmindelser og afsending." - -#: desktop/org.gnome.Geary.gschema.xml:86 -msgid "Show notifications for new mail" -msgstr "Vis påmindelse for ny e-mail" - -#: desktop/org.gnome.Geary.gschema.xml:87 -msgid "True to show notification bubbles." -msgstr "Sand (true) for at vise påmindelsesbobler." - -#: desktop/org.gnome.Geary.gschema.xml:92 +#: desktop/org.gnome.Geary.gschema.xml:90 msgid "Notify of new mail at startup" msgstr "Giv besked om ny e-mail ved opstart" -#: desktop/org.gnome.Geary.gschema.xml:93 +#: desktop/org.gnome.Geary.gschema.xml:91 msgid "True to notify of new mail at startup." msgstr "Sand (true) for at få besked om ny e-mail ved opstart." -#: desktop/org.gnome.Geary.gschema.xml:98 +#: desktop/org.gnome.Geary.gschema.xml:96 msgid "Ask when opening an attachment" msgstr "Spørg før en vedhæftet fil åbnes" -#: desktop/org.gnome.Geary.gschema.xml:99 +#: desktop/org.gnome.Geary.gschema.xml:97 msgid "True to ask when opening an attachment." msgstr "Sand (true) for at spørge inden en vedhæftet fil åbnes." -#: desktop/org.gnome.Geary.gschema.xml:104 +#: desktop/org.gnome.Geary.gschema.xml:102 msgid "Whether to compose emails in HTML" msgstr "Om e-mail skal formateres som HTML" -#: desktop/org.gnome.Geary.gschema.xml:105 +#: desktop/org.gnome.Geary.gschema.xml:103 msgid "True to compose emails in HTML; false for plain text." msgstr "" "Sand (true) for at formatere e-mail som HTML; falsk (false) for klartekst." -#: desktop/org.gnome.Geary.gschema.xml:110 +#: desktop/org.gnome.Geary.gschema.xml:108 msgid "Advisory strategy for full-text searching" msgstr "Vejledningsstrategi for fuldtekstsøgning" -#: desktop/org.gnome.Geary.gschema.xml:111 +#: desktop/org.gnome.Geary.gschema.xml:109 msgid "" "Acceptable values are “exact”, “conservative”, “aggressive”, and “horizon”." msgstr "Mulige værdier er “exact”, “conservative”, “aggressive” og “horizon”." -#: desktop/org.gnome.Geary.gschema.xml:116 +#: desktop/org.gnome.Geary.gschema.xml:114 msgid "Zoom of conversation viewer" msgstr "Zoomniveau på samtalevisningen" -#: desktop/org.gnome.Geary.gschema.xml:117 +#: desktop/org.gnome.Geary.gschema.xml:115 msgid "The zoom to apply on the conservation view." msgstr "Zoom der skal anvendes på samtalevisningen." -#: desktop/org.gnome.Geary.gschema.xml:122 +#: desktop/org.gnome.Geary.gschema.xml:120 msgid "Size of detached composer window" msgstr "Størrelse på løsrevet redigeringsvindue" -#: desktop/org.gnome.Geary.gschema.xml:123 +#: desktop/org.gnome.Geary.gschema.xml:121 msgid "The last recorded size of the detached composer window." msgstr "Den sidste registrerede størrelse på det løsrevede redigeringsvindue." -#: desktop/org.gnome.Geary.gschema.xml:128 -msgid "Base URL to look up contact avatars" -msgstr "Basis-URL til at slå kontaktavatarer op" +#: desktop/org.gnome.Geary.gschema.xml:126 +#| msgid "Error sending email" +msgid "Undo sending email delay" +msgstr "Forsinkelse hvor afsendelse af e-mail kan fortrydes" -#: desktop/org.gnome.Geary.gschema.xml:129 +#: desktop/org.gnome.Geary.gschema.xml:127 msgid "" -"A Gravatar or Libravatar compatible URL, set to the empty string to disable." +"The number of seconds to wait before sending an email. Set to zero or less " +"to disable." msgstr "" -"En URL som er kompatibel med Gravatar eller Libravatar; lad strengen være " -"tom for at deaktivere." +"Antal sekunder, der skal ventes, inden en e-mail sendes. Indstil til nul " +"eller mindre for at deaktivere." -#: desktop/org.gnome.Geary.gschema.xml:134 +#: desktop/org.gnome.Geary.gschema.xml:133 msgid "Whether we migrated the old settings" msgstr "Hvorvidt de gamle indstillinger blev overført" -#: desktop/org.gnome.Geary.gschema.xml:135 +#: desktop/org.gnome.Geary.gschema.xml:134 msgid "" "False to check for the old “org.yorba.geary”-schema and copy its values." msgstr "" @@ -332,25 +326,25 @@ msgstr "" #. Translators: In-app notification label, when #. the app had a problem pinning an otherwise #. untrusted TLS certificate -#: src/client/accounts/accounts-editor.vala:203 +#: src/client/accounts/accounts-editor.vala:210 msgid "Failed to store certificate" msgstr "Kunne ikke gemme certifikatet" #. Translators: Label for adding an email account #. account for a generic IMAP service provider. -#: src/client/accounts/accounts-editor-add-pane.vala:109 +#: src/client/accounts/accounts-editor-add-pane.vala:108 msgid "All others" msgstr "Alle andre" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:196 -#: src/client/accounts/accounts-editor-servers-pane.vala:300 +#: src/client/accounts/accounts-editor-add-pane.vala:195 +#: src/client/accounts/accounts-editor-servers-pane.vala:316 msgid "Check your receiving login and password" msgstr "Tjek indgående login og adgangskode" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:211 -#: src/client/accounts/accounts-editor-servers-pane.vala:313 +#: src/client/accounts/accounts-editor-add-pane.vala:210 +#: src/client/accounts/accounts-editor-servers-pane.vala:329 msgid "Check your receiving server details" msgstr "Gennemse detaljer for indgående server" @@ -359,47 +353,51 @@ msgstr "Gennemse detaljer for indgående server" #. succeeded, so the user probably needs to #. specify custom creds here #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:233 -#: src/client/accounts/accounts-editor-servers-pane.vala:334 +#: src/client/accounts/accounts-editor-add-pane.vala:232 +#: src/client/accounts/accounts-editor-servers-pane.vala:350 msgid "Check your sending login and password" msgstr "Tjek udgående login og adgangskode" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:247 -#: src/client/accounts/accounts-editor-servers-pane.vala:347 +#: src/client/accounts/accounts-editor-add-pane.vala:246 +#: src/client/accounts/accounts-editor-servers-pane.vala:363 msgid "Check your sending server details" msgstr "Gennemse detaljer for udgående server" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:262 +#: src/client/accounts/accounts-editor-add-pane.vala:261 msgid "Check your email address and password" msgstr "Tjek din e-mailadresse og adgangskode" #. Translators: In-app notification label -#: src/client/accounts/accounts-editor-add-pane.vala:273 +#: src/client/accounts/accounts-editor-add-pane.vala:272 msgid "Could not connect, check your network" msgstr "Kunne ikke forbinde, tjek dit netværk" #. Translators: In-app notification label for a #. generic error creating an account -#: src/client/accounts/accounts-editor-add-pane.vala:286 +#: src/client/accounts/accounts-editor-add-pane.vala:285 msgid "An unexpected problem occurred" msgstr "Der opstod et uventet problem" #. Translators: In-app notification label, the #. string substitution is a more detailed reason. -#: src/client/accounts/accounts-editor-add-pane.vala:304 +#: src/client/accounts/accounts-editor-add-pane.vala:303 #, c-format msgid "Account not created: %s" msgstr "Konto ikke oprettet: %s" #. Translators: Label for the person's actual name when adding #. an account -#: src/client/accounts/accounts-editor-add-pane.vala:552 +#: src/client/accounts/accounts-editor-add-pane.vala:558 msgid "Your name" msgstr "Dit navn" -#: src/client/accounts/accounts-editor-add-pane.vala:569 +#. Translators: Label used for the address part of an +#. email address when editing a user's sender address +#. preferences for an account. +#: src/client/accounts/accounts-editor-add-pane.vala:575 +#: src/client/accounts/accounts-editor-edit-pane.vala:513 msgid "Email address" msgstr "E-mailadresse" @@ -408,8 +406,8 @@ msgstr "E-mailadresse" #. Translators: This is used as a placeholder for the #. address part of an email address when editing a user's #. sender address preferences for an account. -#: src/client/accounts/accounts-editor-add-pane.vala:572 -#: src/client/accounts/accounts-editor-edit-pane.vala:469 +#: src/client/accounts/accounts-editor-add-pane.vala:579 +#: src/client/accounts/accounts-editor-edit-pane.vala:479 msgid "person@example.com" msgstr "person@eksempel.dk" @@ -417,15 +415,15 @@ msgstr "person@eksempel.dk" #. when adding an account #. Translators: Label for the user's login name for an #. IMAP, SMTP, etc service -#: src/client/accounts/accounts-editor-add-pane.vala:586 -#: src/client/accounts/accounts-editor-servers-pane.vala:809 +#: src/client/accounts/accounts-editor-add-pane.vala:593 +#: src/client/accounts/accounts-editor-servers-pane.vala:884 msgid "Login name" msgstr "Loginnavn" #. Translators: Label for the user's password for an IMAP, #. SMTP, etc service -#: src/client/accounts/accounts-editor-add-pane.vala:600 -#: src/client/accounts/accounts-editor-servers-pane.vala:928 +#: src/client/accounts/accounts-editor-add-pane.vala:607 +#: src/client/accounts/accounts-editor-servers-pane.vala:1006 #: ui/password-dialog.glade:108 msgid "Password" msgstr "Adgangskode" @@ -434,14 +432,14 @@ msgstr "Adgangskode" #. adding an account. #. Translators: This label describes the host name or IP #. address and port used by an account's IMAP service. -#: src/client/accounts/accounts-editor-add-pane.vala:622 -#: src/client/accounts/accounts-editor-servers-pane.vala:656 +#: src/client/accounts/accounts-editor-add-pane.vala:629 +#: src/client/accounts/accounts-editor-servers-pane.vala:728 msgid "IMAP server" msgstr "IMAP-server" #. Translators: Placeholder for the IMAP server hostname #. when adding an account. -#: src/client/accounts/accounts-editor-add-pane.vala:625 +#: src/client/accounts/accounts-editor-add-pane.vala:632 msgid "imap.example.com" msgstr "imap.eksempel.dk" @@ -449,21 +447,20 @@ msgstr "imap.eksempel.dk" #. adding an account. #. Translators: This label describes the host name or IP #. address and port used by an account's SMTP service. -#: src/client/accounts/accounts-editor-add-pane.vala:631 -#: src/client/accounts/accounts-editor-servers-pane.vala:662 -#| msgid "SMTP username" +#: src/client/accounts/accounts-editor-add-pane.vala:638 +#: src/client/accounts/accounts-editor-servers-pane.vala:734 msgid "SMTP server" msgstr "SMTP-server" #. Translators: Placeholder for the SMTP server hostname #. when adding an account. -#: src/client/accounts/accounts-editor-add-pane.vala:634 +#: src/client/accounts/accounts-editor-add-pane.vala:641 msgid "smtp.example.com" msgstr "smtp.eksempel.dk" #. Translators: Label in the account editor for the user's #. custom name for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:278 +#: src/client/accounts/accounts-editor-edit-pane.vala:277 #: ui/accounts_editor_remove_pane.ui:123 msgid "Account name" msgstr "Kontonavn" @@ -472,53 +469,47 @@ msgstr "Kontonavn" #. the name of an account. The string #. substitution is the old name of the #. account. -#: src/client/accounts/accounts-editor-edit-pane.vala:312 +#: src/client/accounts/accounts-editor-edit-pane.vala:318 #, c-format msgid "Change account name back to “%s”" msgstr "Skift kontonavnet tilbage til “%s”" #. Translators: Tooltip for adding a new email sender/from #. address's address to an account -#: src/client/accounts/accounts-editor-edit-pane.vala:336 +#: src/client/accounts/accounts-editor-edit-pane.vala:342 msgid "Add a new sender email address" msgstr "Tilføj en ny e-mailadresse for afsender" #. Translators: Label used to indicate the user has #. provided no display name for one of their sender #. email addresses in their account settings. -#: src/client/accounts/accounts-editor-edit-pane.vala:417 +#: src/client/accounts/accounts-editor-edit-pane.vala:423 msgid "Name not set" msgstr "Navn ikke angivet" #. Translators: This is used as a placeholder for the #. display name for an email address when editing a user's #. sender address preferences for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:456 +#: src/client/accounts/accounts-editor-edit-pane.vala:464 msgid "Sender Name" msgstr "Navn på afsender" -#: src/client/accounts/accounts-editor-edit-pane.vala:479 +#: src/client/accounts/accounts-editor-edit-pane.vala:491 msgid "Remove" msgstr "Fjern" #. Translators: Label used for the display name part of an #. email address when editing a user's sender address #. preferences for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:494 -msgid "Sender name:" -msgstr "Navn på afsender:" - -#. Translators: Label used for the address part of an -#. email address when editing a user's sender address -#. preferences for an account. -#: src/client/accounts/accounts-editor-edit-pane.vala:501 -msgid "Email address:" -msgstr "E-mailadresse:" +#: src/client/accounts/accounts-editor-edit-pane.vala:506 +#| msgid "Sender name:" +msgid "Sender name" +msgstr "Navn på afsender" #. Translators: Label used as the undo tooltip after adding an #. new sender email address to an account. The string #. substitution is the email address added. -#: src/client/accounts/accounts-editor-edit-pane.vala:561 +#: src/client/accounts/accounts-editor-edit-pane.vala:573 #, c-format msgid "Remove “%s”" msgstr "Fjern “%s”" @@ -526,7 +517,7 @@ msgstr "Fjern “%s”" #. Translators: Label used as the undo tooltip after editing a #. sender address for an account. The string substitution is #. the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:601 +#: src/client/accounts/accounts-editor-edit-pane.vala:613 #, c-format msgid "Undo changes to “%s”" msgstr "Fortryd ændringer af “%s”" @@ -534,7 +525,7 @@ msgstr "Fortryd ændringer af “%s”" #. Translators: Label used as the undo tooltip after removing #. a sender address from an account. The string substitution #. is the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:690 +#: src/client/accounts/accounts-editor-edit-pane.vala:700 #, c-format msgid "Add “%s” back" msgstr "Tilføj “%s” igen" @@ -542,14 +533,14 @@ msgstr "Tilføj “%s” igen" #. Translators: Label used as the undo tooltip after removing #. a sender address from an account. The string substitution #. is the email address edited. -#: src/client/accounts/accounts-editor-edit-pane.vala:728 +#: src/client/accounts/accounts-editor-edit-pane.vala:742 msgid "Undo signature changes" msgstr "Fortryd ændringer af signatur" #. Translators: This label describes the account #. preference for the length of time (weeks, months or #. years) that past email should be downloaded. -#: src/client/accounts/accounts-editor-edit-pane.vala:772 +#: src/client/accounts/accounts-editor-edit-pane.vala:790 msgid "Download mail" msgstr "Hent mail" @@ -558,98 +549,100 @@ msgstr "Hent mail" #. should be downloaded for an account. The #. string substitution is the duration, #. e.g. "1 month back". -#: src/client/accounts/accounts-editor-edit-pane.vala:804 +#: src/client/accounts/accounts-editor-edit-pane.vala:822 #, c-format msgid "Change download period back to: %s" msgstr "Skift downloadperiode tilbage til: %s" -#: src/client/accounts/accounts-editor-edit-pane.vala:825 +#: src/client/accounts/accounts-editor-edit-pane.vala:843 msgid "Everything" msgstr "Alle" -#: src/client/accounts/accounts-editor-edit-pane.vala:829 +#: src/client/accounts/accounts-editor-edit-pane.vala:847 msgid "2 weeks back" msgstr "2 uger" -#: src/client/accounts/accounts-editor-edit-pane.vala:833 +#: src/client/accounts/accounts-editor-edit-pane.vala:851 msgid "1 month back" msgstr "1 måned" -#: src/client/accounts/accounts-editor-edit-pane.vala:837 +#: src/client/accounts/accounts-editor-edit-pane.vala:855 msgid "3 months back" msgstr "3 måneder" -#: src/client/accounts/accounts-editor-edit-pane.vala:841 +#: src/client/accounts/accounts-editor-edit-pane.vala:859 msgid "6 months back" msgstr "6 måneder" -#: src/client/accounts/accounts-editor-edit-pane.vala:845 +#: src/client/accounts/accounts-editor-edit-pane.vala:863 msgid "1 year back" msgstr "1 år" -#: src/client/accounts/accounts-editor-edit-pane.vala:849 +#: src/client/accounts/accounts-editor-edit-pane.vala:867 msgid "2 years back" msgstr "2 år" -#: src/client/accounts/accounts-editor-edit-pane.vala:853 +#: src/client/accounts/accounts-editor-edit-pane.vala:871 msgid "4 years back" msgstr "4 år" -#: src/client/accounts/accounts-editor-edit-pane.vala:859 +#: src/client/accounts/accounts-editor-edit-pane.vala:877 #, c-format msgid "%d day back" msgid_plural "%d days back" msgstr[0] "%d dag" msgstr[1] "%d dage" -#: src/client/accounts/accounts-editor-list-pane.vala:243 +#: src/client/accounts/accounts-editor-list-pane.vala:248 +#: src/client/application/application-main-window.vala:2037 msgid "Undo" msgstr "Fortryd" -#: src/client/accounts/accounts-editor-list-pane.vala:251 +#: src/client/accounts/accounts-editor-list-pane.vala:257 +#: src/client/application/application-main-window.vala:2027 msgid "Redo" msgstr "Genskab" -#: src/client/accounts/accounts-editor-list-pane.vala:345 -#: src/client/accounts/accounts-editor-list-pane.vala:433 -#: src/client/accounts/accounts-editor-row.vala:278 +#: src/client/accounts/accounts-editor-list-pane.vala:351 +#: src/client/accounts/accounts-editor-list-pane.vala:439 +#: src/client/accounts/accounts-editor-row.vala:279 msgid "Gmail" msgstr "Gmail" -#: src/client/accounts/accounts-editor-list-pane.vala:349 -#: src/client/accounts/accounts-editor-list-pane.vala:437 -#: src/client/accounts/accounts-editor-row.vala:282 +#: src/client/accounts/accounts-editor-list-pane.vala:355 +#: src/client/accounts/accounts-editor-list-pane.vala:443 +#: src/client/accounts/accounts-editor-row.vala:283 msgid "Outlook.com" msgstr "Outlook.com" -#: src/client/accounts/accounts-editor-list-pane.vala:353 -#: src/client/accounts/accounts-editor-list-pane.vala:441 -#: src/client/accounts/accounts-editor-row.vala:286 +#: src/client/accounts/accounts-editor-list-pane.vala:359 +#: src/client/accounts/accounts-editor-list-pane.vala:447 +#: src/client/accounts/accounts-editor-row.vala:287 msgid "Yahoo" msgstr "Yahoo" #. Translators: Tooltip for accounts that have been #. loaded but disabled by the user. -#: src/client/accounts/accounts-editor-list-pane.vala:371 +#: src/client/accounts/accounts-editor-list-pane.vala:377 msgid "This account has been disabled" msgstr "Denne konto er deaktiveret" #. Translators: Tooltip for accounts that have been #. loaded but because of some error are not able to be #. used. -#: src/client/accounts/accounts-editor-list-pane.vala:380 +#: src/client/accounts/accounts-editor-list-pane.vala:386 msgid "This account has encountered a problem and is unavailable" msgstr "Denne konto er stødt på et problem og er utilgængelig" #. Translators: Label for adding a generic email account -#: src/client/accounts/accounts-editor-list-pane.vala:430 +#: src/client/accounts/accounts-editor-list-pane.vala:436 msgid "Other email providers" msgstr "Andre e-mailudbydere" #. Translators: Notification shown after removing an #. account. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:547 +#: src/client/accounts/accounts-editor-list-pane.vala:553 #, c-format msgid "Account “%s” removed" msgstr "Konto “%s” fjernet" @@ -657,47 +650,44 @@ msgstr "Konto “%s” fjernet" #. Translators: Notification shown after removing an account #. is undone. The string substitution is the name of the #. account. -#: src/client/accounts/accounts-editor-list-pane.vala:554 +#: src/client/accounts/accounts-editor-list-pane.vala:560 #, c-format msgid "Account “%s” restored" msgstr "Konto “%s” genskabt" #. Translators: Tooltip for dragging list items -#: src/client/accounts/accounts-editor-row.vala:49 +#: src/client/accounts/accounts-editor-row.vala:50 msgid "Drag to move this item" msgstr "Træk for at flytte dette element" #. Translators: Label describes the service provider #. hosting the email account, e.g. Gmail, Yahoo, or some #. other generic IMAP service. -#: src/client/accounts/accounts-editor-row.vala:294 +#: src/client/accounts/accounts-editor-row.vala:295 msgid "Service provider" msgstr "Serviceudbyder" #. Translators: This label describes what form of transport #. security (TLS, StartTLS, etc) used by an account's IMAP or SMTP #. service. -#: src/client/accounts/accounts-editor-row.vala:467 +#: src/client/accounts/accounts-editor-row.vala:468 msgid "Connection security" msgstr "Forbindelsessikkerhed" #. Translators: Label used when no auth scheme is used #. by an account's IMAP or SMTP service. -#: src/client/accounts/accounts-editor-row.vala:478 -#: src/client/accounts/accounts-editor-servers-pane.vala:681 -#: src/client/accounts/accounts-editor-servers-pane.vala:893 +#: src/client/accounts/accounts-editor-row.vala:479 +#: src/client/accounts/accounts-editor-servers-pane.vala:755 +#: src/client/accounts/accounts-editor-servers-pane.vala:970 #: src/engine/api/geary-special-folder-type.vala:58 msgid "None" msgstr "Ingen" -#: src/client/accounts/accounts-editor-row.vala:485 -#| msgctxt "shortcut window" -#| msgid "Star" +#: src/client/accounts/accounts-editor-row.vala:486 msgid "StartTLS" msgstr "StartTLS" -#: src/client/accounts/accounts-editor-row.vala:492 -#| msgid "SSL/TLS" +#: src/client/accounts/accounts-editor-row.vala:493 msgid "TLS" msgstr "TLS" @@ -705,34 +695,35 @@ msgstr "TLS" #. credentials (none, use IMAP, custom) when adding a new #. account #. Button label for retrying when a login error has occurred -#: src/client/accounts/accounts-editor-row.vala:533 ui/main-window.ui:455 +#: src/client/accounts/accounts-editor-row.vala:534 +#: ui/application-main-window.ui:346 msgid "Login" msgstr "Login" #. Translators: ComboBox value for source of SMTP #. authentication credentials (none) when adding a new #. account -#: src/client/accounts/accounts-editor-row.vala:540 +#: src/client/accounts/accounts-editor-row.vala:541 msgid "No login needed" msgstr "Login ikke nødvendig" #. Translators: ComboBox value for source of SMTP #. authentication credentials (use IMAP) when adding a new #. account -#: src/client/accounts/accounts-editor-row.vala:548 +#: src/client/accounts/accounts-editor-row.vala:549 msgid "Use same login as receiving" msgstr "Brug samme login som indgående" #. Translators: ComboBox value for source of SMTP #. authentication credentials (custom) when adding a new #. account -#: src/client/accounts/accounts-editor-row.vala:556 +#: src/client/accounts/accounts-editor-row.vala:557 msgid "Use a different login" msgstr "Brug et andet login" #. Translators: In-app notification label, the #. string substitution is a more detailed reason. -#: src/client/accounts/accounts-editor-servers-pane.vala:361 +#: src/client/accounts/accounts-editor-servers-pane.vala:377 #, c-format msgid "Account not updated: %s" msgstr "Konto ikke opdateret: %s" @@ -740,165 +731,380 @@ msgstr "Konto ikke opdateret: %s" #. Translators: This label describes the program that #. created the account, e.g. an SSO service like GOA, or #. locally by Geary. -#: src/client/accounts/accounts-editor-servers-pane.vala:524 +#: src/client/accounts/accounts-editor-servers-pane.vala:540 msgid "Account source" msgstr "Kontokilde" -#: src/client/accounts/accounts-editor-servers-pane.vala:536 +#: src/client/accounts/accounts-editor-servers-pane.vala:552 msgid "GNOME Online Accounts" msgstr "GNOME Onlinekonti" #. Translators: This label describes an account #. preference. -#: src/client/accounts/accounts-editor-servers-pane.vala:595 -msgid "Save drafts on server" -msgstr "Gem kladder på serveren" +#: src/client/accounts/accounts-editor-servers-pane.vala:611 +#| msgid "Save drafts on server" +msgid "Save draft email on server" +msgstr "Gem e-mail med kladde på serveren" + +#. Translators: This label describes an account +#. preference. +#: src/client/accounts/accounts-editor-servers-pane.vala:666 +#| msgid "_Save sent mail" +msgid "Save sent email on server" +msgstr "Gem sendt e-mail på serveren" #. Add a suffix for OAuth2 auth so people know they #. shouldn't expect to be prompted for a password #. Translators: Label used when an account's IMAP or #. SMTP service uses OAuth2. The string replacement is #. the service's login name. -#: src/client/accounts/accounts-editor-servers-pane.vala:879 +#: src/client/accounts/accounts-editor-servers-pane.vala:956 #, c-format msgid "%s using OAuth2" msgstr "%s gennem OAuth2" -#: src/client/accounts/accounts-editor-servers-pane.vala:889 +#: src/client/accounts/accounts-editor-servers-pane.vala:966 msgid "Use receiving server login" msgstr "Brug login til indgående server" -#: src/client/application/geary-application.vala:22 +#. Translators: File name used in save chooser when saving +#. attachments that do not otherwise have a name. +#: src/client/application/application-attachment-manager.vala:21 +msgid "Untitled" +msgstr "Unavngivet" + +#. / Translators: Dialog primary label when prompting to +#. / overwrite a file. The string substitution is the file'sx +#. / name. +#: src/client/application/application-attachment-manager.vala:222 +#, c-format +msgid "A file named “%s” already exists. Do you want to replace it?" +msgstr "Filen “%s” findes allerede. Vil du erstatte den?" + +#. / Translators: Dialog secondary label when prompting to +#. / overwrite a file. The string substitution is the parent +#. / folder's name. +#: src/client/application/application-attachment-manager.vala:229 +#, c-format +msgid "" +"The file already exists in “%s”. Replacing it will overwrite its contents." +msgstr "" +"Filen findes allerede i “%s”. Hvis du erstatter den, overskrives dens " +"indhold." + +#: src/client/application/application-attachment-manager.vala:236 +msgid "_Replace" +msgstr "_Erstat" + +#: src/client/application/application-client.vala:33 msgid "Copyright 2016 Software Freedom Conservancy Inc." msgstr "Ophavsret 2016 Software Freedom Conservancy Inc." -#: src/client/application/geary-application.vala:23 -msgid "Copyright 2016-2018 Geary Development Team." -msgstr "Ophavsret 2016-2018 Gearys udviklerhold." +#: src/client/application/application-client.vala:34 +#| msgid "Copyright 2016-2018 Geary Development Team." +msgid "Copyright 2016-2019 Geary Development Team." +msgstr "Ophavsret 2016-2019 Gearys udviklerhold." -#: src/client/application/geary-application.vala:25 +#: src/client/application/application-client.vala:36 msgid "Visit the Geary web site" msgstr "Besøg Gearys hjemmeside" -#: src/client/application/geary-application.vala:414 +#. / Command line option +#: src/client/application/application-client.vala:94 +msgid "Print debug logging" +msgstr "" + +#. / Command line option +#: src/client/application/application-client.vala:97 +#| msgid "Start Geary with hidden main window" +msgid "Start with the main window hidden (deprecated)" +msgstr "Start med skjult hovedvindue (forældet)" + +#. / Command line option +#: src/client/application/application-client.vala:100 +msgid "Enable WebKitGTK Inspector in web views" +msgstr "Aktivér WebKitGTK-inspektør i webvisninger" + +#. / Command line option +#: src/client/application/application-client.vala:103 +msgid "Log conversation monitoring" +msgstr "Log samtaleovervågning" + +#. / Command line option +#: src/client/application/application-client.vala:106 +#| msgid "Log network deserialization" +msgid "Log IMAP network deserialization" +msgstr "Log IMAP-netværksdeserialisering" + +#. / Command line option. "Normalization" can also be called +#. / "synchronization". +#: src/client/application/application-client.vala:110 +msgid "Log folder normalization" +msgstr "Log mappenormalisering" + +#. / Command line option +#: src/client/application/application-client.vala:113 +msgid "Log network activity" +msgstr "Log netværksaktivitet" + +#. / Command line option +#: src/client/application/application-client.vala:116 +msgid "Log periodic activity" +msgstr "Log periodisk aktivitet" + +#. / Command line option. The IMAP replay queue is how changes +#. / on the server are replicated on the client. It could +#. / also be called the IMAP events queue. +#: src/client/application/application-client.vala:121 +msgid "Log IMAP replay queue" +msgstr "Log køen af IMAP-hændelser" + +#. / Command line option. Serialization is how commands and +#. / responses are converted into a stream of bytes for +#. / network transmission +#: src/client/application/application-client.vala:126 +#| msgid "Log network serialization" +msgid "Log IMAP network serialization" +msgstr "Log IMAP-netværksserialisering" + +#. / Command line option +#: src/client/application/application-client.vala:129 +msgid "Log database queries (generates lots of messages)" +msgstr "Log databaseforespørgsler (genererer mange beskeder)" + +#. / Command line option +#: src/client/application/application-client.vala:132 +msgid "Perform a graceful quit" +msgstr "Afslut på kontrolleret vis" + +#: src/client/application/application-client.vala:134 +#| msgid "Use %s to open a new composer window" +msgid "Open a new window" +msgstr "Åbn et nyt vindue" + +#. / Command line option +#: src/client/application/application-client.vala:137 +#| msgid "Revoke all server certificates with TLS warnings" +msgid "Revoke all pinned TLS server certificates" +msgstr "Tilbagekald alle fastgjorte TLS-servercertifikater" + +#. / Command line option +#: src/client/application/application-client.vala:140 +msgid "Display program version" +msgstr "Vis programversion" + +#. / Application runtime information label +#: src/client/application/application-client.vala:264 +#| msgid "Mark conversation" +msgid "Geary version" +msgstr "Geary-version" + +#. / Application runtime information label +#: src/client/application/application-client.vala:266 +msgid "Geary revision" +msgstr "Geary-revision" + +#. / Application runtime information label +#: src/client/application/application-client.vala:268 +msgid "GTK version" +msgstr "GTK-version" + +#. / Applciation runtime information label +#: src/client/application/application-client.vala:275 +msgid "GLib version" +msgstr "GLib-version" + +#. / Application runtime information label +#: src/client/application/application-client.vala:282 +msgid "WebKitGTK version" +msgstr "WebKitGTK-version" + +#. / Application runtime information label +#: src/client/application/application-client.vala:289 +msgid "Desktop environment" +msgstr "Skrivebordsmiljø" + +#. Translators: This is the file type displayed for +#. attachments with unknown file types. +#: src/client/application/application-client.vala:291 +#: src/client/components/components-attachment-pane.vala:91 +msgid "Unknown" +msgstr "Ukendt" + +#. / Application runtime information label +#: src/client/application/application-client.vala:321 +msgid "Distribution name" +msgstr "Distributionsnavn" + +#. / Application runtime information label +#: src/client/application/application-client.vala:326 +msgid "Distribution release" +msgstr "Distributionsudgivelse" + +#. / Application runtime information label +#: src/client/application/application-client.vala:334 +msgid "Installation prefix" +msgstr "Installationspræfiks" + +#: src/client/application/application-client.vala:566 #, c-format msgid "About %s" msgstr "Om %s" +# scootergrisen: måske ".sm@" skal ændres til ".am@" #. Translators: add your name and email address to receive #. credit in the About dialog For example: Yamada Taro #. -#: src/client/application/geary-application.vala:418 +#: src/client/application/application-client.vala:570 msgid "translator-credits" msgstr "" "Nikolaj Holmquist Pedersen \n" "Ask Hjorth Larsen \n" "Alan Mortensen \n" "\n" -"Dansk-gruppen \n" -"Mere info: http://www.dansk-gruppen.dk" +"Dansk-gruppen\n" +"Websted http://dansk-gruppen.dk\n" +"E-mail " -#: src/client/application/geary-args.vala:10 -msgid "Start Geary with hidden main window" -msgstr "Start Geary med skjult hovedvindue" +#. / Warning printed to the console when a deprecated +#. / command line option is used. +#: src/client/application/application-client.vala:938 +msgid "The `--hidden` option is deprecated and will be removed in the future." +msgstr "Tilvalget “--hidden” er forældet og vil blive fjernet i fremtiden." -#: src/client/application/geary-args.vala:11 -msgid "Output debugging information" -msgstr "Vis fejlretningsinformation" - -#: src/client/application/geary-args.vala:12 -msgid "Log conversation monitoring" -msgstr "Log samtaleovervågning" - -#: src/client/application/geary-args.vala:13 -msgid "Log network deserialization" -msgstr "Log netværksdeserialisering" - -#: src/client/application/geary-args.vala:14 -msgid "Log network activity" -msgstr "Log netværksaktivitet" - -#. / The IMAP replay queue is how changes on the server are replicated on the client. -#. / It could also be called the IMAP events queue. -#: src/client/application/geary-args.vala:17 -msgid "Log IMAP replay queue" -msgstr "Log køen af IMAP-hændelser" - -#. / Serialization is how commands and responses are converted into a stream of bytes for -#. / network transmission -#: src/client/application/geary-args.vala:20 -msgid "Log network serialization" -msgstr "Log netværksserialisering" - -#: src/client/application/geary-args.vala:21 -msgid "Log periodic activity" -msgstr "Log periodisk aktivitet" - -#: src/client/application/geary-args.vala:22 -msgid "Log database queries (generates lots of messages)" -msgstr "Log databaseforespørgsler (genererer mange beskeder)" - -#. / "Normalization" can also be called "synchronization" -#: src/client/application/geary-args.vala:24 -msgid "Log folder normalization" -msgstr "Log mappenormalisering" - -#: src/client/application/geary-args.vala:25 -msgid "Allow inspection of WebView" -msgstr "Aktiver undersøgelse af web-visning" - -#: src/client/application/geary-args.vala:26 -msgid "Revoke all server certificates with TLS warnings" -msgstr "Tilbagekald alle servercertifikater med TLS-advarsler" - -#: src/client/application/geary-args.vala:27 -msgid "Perform a graceful quit" -msgstr "Afslut på kontrolleret vis" - -#: src/client/application/geary-args.vala:28 -msgid "Display program version" -msgstr "Vis programversion" - -#. This gives a command-line hint on how to open new composer windows with mailto: -#: src/client/application/geary-args.vala:53 -#, c-format -msgid "Use %s to open a new composer window" -msgstr "Brug %s for at åbne et nyt redigeringsvindue" - -#: src/client/application/geary-args.vala:56 -msgid "Please report comments, suggestions and bugs to:" -msgstr "Send kommentarer, idéer og fejlrapporter til:" - -#. i18n: Command line arguments are invalid -#: src/client/application/geary-args.vala:63 -#, c-format -msgid "Failed to parse command line options: %s\n" -msgstr "Kunne ikke genkende indstillingerne på kommandolinjen: %s\n" - -#: src/client/application/geary-args.vala:74 -#, c-format -msgid "Unrecognized command line option “%s”\n" +#. / Command line warning, string substitution +#. / is the given argument +#: src/client/application/application-client.vala:971 +#, fuzzy, c-format +#| msgid "Unrecognized command line option “%s”\n" +msgid "Unrecognised program argument: “%s”" msgstr "Ukendt kommandolinje-indstilling “%s”\n" -#. Translators: File name used in save chooser when saving -#. attachments that do not otherwise have a name. -#: src/client/application/geary-controller.vala:61 -msgid "Untitled" -msgstr "Unavngivet" +#. / Notification title. +#: src/client/application/application-controller.vala:457 +#, fuzzy, c-format +#| msgid "A problem occurred sending mail for %s" +msgid "A problem occurred sending email for %s" +msgstr "Der opstod et problem, da der skulle sendes mail for %s" -#: src/client/application/geary-controller.vala:899 -msgid "Labels" -msgstr "Etiketter" +#. / Notification body +#: src/client/application/application-controller.vala:461 +#, fuzzy +#| msgid "You will not be able to send or receive email until re-connected." +msgid "Email will not be sent until re-connected" +msgstr "" +"Du kan ikke sende eller modtage e-mails, indtil forbindelsen er genoprettet." -#. give the user two options: reset the Account local store, or exit Geary. A third -#. could be done to leave the Account in an unopened state, but we don't currently -#. have provisions for that. -#: src/client/application/geary-controller.vala:911 +#. / Translators: Label for in-app notification +#: src/client/application/application-controller.vala:567 +#, fuzzy +#| msgid "Conversation Shortcuts" +msgid "Conversation marked" +msgid_plural "Conversations marked" +msgstr[0] "Samtalegenveje" +msgstr[1] "Samtalegenveje" + +#. / Translators: Label for in-app notification +#: src/client/application/application-controller.vala:573 +#, fuzzy +#| msgid "No conversations found" +msgid "Conversation un-marked" +msgid_plural "Conversations un-marked" +msgstr[0] "Ingen samtaler fundet" +msgstr[1] "Ingen samtaler fundet" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:599 +#: src/client/application/application-controller.vala:683 +#, fuzzy, c-format +#| msgid "Conversation Shortcuts" +msgid "Conversation moved to %s" +msgid_plural "Conversations moved to %s" +msgstr[0] "Samtalegenveje" +msgstr[1] "Samtalegenveje" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the source folder. +#. / Translators: Label for in-app notification. String +#. / substitution is the name of the destination folder. +#: src/client/application/application-controller.vala:607 +#: src/client/application/application-controller.vala:629 +#, fuzzy, c-format +#| msgid "Conversation Shortcuts" +msgid "Conversation restored to %s" +msgid_plural "Conversations restored to %s" +msgstr[0] "Samtalegenveje" +msgstr[1] "Samtalegenveje" + +#. / Translators: Label for in-app notification. +#: src/client/application/application-controller.vala:650 +#, fuzzy +#| msgid "Conversation Shortcuts" +msgid "Conversation archived" +msgid_plural "Conversations archived" +msgstr[0] "Samtalegenveje" +msgstr[1] "Samtalegenveje" + +#. / Translators: Label for in-app notification. String +#. / substitution is the name of the destination folder. +#: src/client/application/application-controller.vala:706 +#, fuzzy, c-format +#| msgid "Message not saved" +msgid "Message restored to %s" +msgid_plural "Messages restored to %s" +msgstr[0] "Besked ikke gemt" +msgstr[1] "Besked ikke gemt" + +#. / Translators: Label for in-app notification. +#: src/client/application/application-controller.vala:727 +#, fuzzy +#| msgid "Message not saved" +msgid "Message archived" +msgid_plural "Messages archived" +msgstr[0] "Besked ikke gemt" +msgstr[1] "Besked ikke gemt" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:762 +#, fuzzy, c-format +#| msgid "Message not saved" +msgid "Message moved to %s" +msgid_plural "Messages moved to %s" +msgstr[0] "Besked ikke gemt" +msgstr[1] "Besked ikke gemt" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:790 +#, fuzzy, c-format +#| msgid "No conversations selected" +msgid "Conversation labelled as %s" +msgid_plural "Conversations labelled as %s" +msgstr[0] "Ingen samtaler valgt" +msgstr[1] "Ingen samtaler valgt" + +#. / Translators: Label for in-app +#. / notification. String substitution is the name +#. / of the destination folder. +#: src/client/application/application-controller.vala:798 +#, c-format +msgid "Conversation un-labelled as %s" +msgid_plural "Conversations un-labelled as %s" +msgstr[0] "" +msgstr[1] "" + +#: src/client/application/application-controller.vala:1221 #, c-format msgid "Unable to open the database for %s" msgstr "Kunne ikke åbne databasen for %s" -#: src/client/application/geary-controller.vala:912 +#: src/client/application/application-controller.vala:1222 #, c-format msgid "" "There was an error opening the local mail database for this account. This is " @@ -922,20 +1128,20 @@ msgstr "" "Genopbygning af databasen vil slette al lokal e-mail og dets vedhæftede " "filer. Mail'en på serveren vil ikke blive rørt." -#: src/client/application/geary-controller.vala:914 +#: src/client/application/application-controller.vala:1224 msgid "_Rebuild" msgstr "_Genopbyg" -#: src/client/application/geary-controller.vala:914 +#: src/client/application/application-controller.vala:1224 msgid "E_xit" msgstr "_Afslut" -#: src/client/application/geary-controller.vala:923 +#: src/client/application/application-controller.vala:1234 #, c-format msgid "Unable to rebuild database for “%s”" msgstr "Kunne ikke genopbygge databasen for “%s”" -#: src/client/application/geary-controller.vala:924 +#: src/client/application/application-controller.vala:1235 #, c-format msgid "" "Error during rebuild:\n" @@ -946,15 +1152,113 @@ msgstr "" "\n" "%s" -#: src/client/application/geary-controller.vala:1738 -msgid "Undo move (Ctrl+Z)" -msgstr "Fortryd flyt (Ctrl+Z)" +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:1558 +#, c-format +msgid "Email sent to %s" +msgstr "E-mail sendt til %s" -#: src/client/application/geary-controller.vala:1748 +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2636 +#, c-format +msgid "Email to %s queued for delivery" +msgstr "E-mail til %s er sat i kø til levering" + +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2701 +#, c-format +msgid "Email to %s saved" +msgstr "E-mail til %s blev gemt" + +#. / Translators: A label for an in-app notification. +#: src/client/application/application-controller.vala:2716 +#: src/client/application/application-controller.vala:2774 +msgid "Composer could not be restored" +msgstr "Redigering kunne ikke genskabes" + +#. / Translators: The label for an in-app notification. The +#. / string substitution is a list of recipients of the email. +#: src/client/application/application-controller.vala:2759 +#, c-format +msgid "Email to %s discarded" +msgstr "E-mail til %s blev kasseret" + +#. / Translators: Main window title, first string +#. / substitution being the currently selected folder name, +#. / the second being the selected account name. +#: src/client/application/application-main-window.vala:552 +#, c-format +msgid "%s — %s" +msgstr "%s — %s" + +#: src/client/application/application-main-window.vala:961 +msgid "Labels" +msgstr "Etiketter" + +#. / Translators: Primary text for a confirmation dialog +#: src/client/application/application-main-window.vala:1297 +#, fuzzy +#| msgid "Do you want to permanently delete this message?" +#| msgid_plural "Do you want to permanently delete these messages?" +msgid "Do you want to permanently delete this conversation?" +msgid_plural "Do you want to permanently delete these conversations?" +msgstr[0] "Ønsker du at slette denne besked permanent?" +msgstr[1] "Ønsker du at slette disse beskeder permanent?" + +#: src/client/application/application-main-window.vala:1302 +#: src/client/application/application-main-window.vala:1317 +msgid "Delete" +msgstr "Slet" + +#. / Translators: Primary text for a confirmation dialog +#: src/client/application/application-main-window.vala:1312 +msgid "Do you want to permanently delete this message?" +msgid_plural "Do you want to permanently delete these messages?" +msgstr[0] "Ønsker du at slette denne besked permanent?" +msgstr[1] "Ønsker du at slette disse beskeder permanent?" + +#: src/client/application/application-main-window.vala:1325 +#, c-format +msgid "Empty all email from your %s folder?" +msgstr "Tøm al e-mail fra din %s-mappe?" + +#: src/client/application/application-main-window.vala:1328 +msgid "This removes the email from Geary and your email server." +msgstr "Dette fjerner e-mail fra Geary samt din e-mailserver." + +#: src/client/application/application-main-window.vala:1329 +msgid "This cannot be undone." +msgstr "Dette kan ikke fortrydes." + +#: src/client/application/application-main-window.vala:1330 +#, c-format +msgid "Empty %s" +msgstr "Tøm %s" + +#: src/client/application/application-main-window.vala:1660 +#, c-format +msgid "%s (%d)" +msgstr "%s (%d)" + +#. Translators: The first argument will be a +#. description of the document type, the second will +#. be a human-friendly size string. For example: +#. Document (100.9MB) +#. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" +#: src/client/components/components-attachment-pane.vala:107 +#: src/client/composer/composer-widget.vala:1815 +#, c-format +msgid "%s (%s)" +msgstr "%s (%s)" + +#: src/client/components/components-attachment-pane.vala:379 msgid "Are you sure you want to open these attachments?" msgstr "Er du sikker på, at du vil åbne disse vedhæftede filer?" -#: src/client/application/geary-controller.vala:1749 +#: src/client/components/components-attachment-pane.vala:380 msgid "" "Attachments may cause damage to your system if opened. Only open files from " "trusted sources." @@ -962,401 +1266,256 @@ msgstr "" "Vedhæftede filer kan skade dit system, når de åbnes. Åbn kun filer fra " "folk, du stoler på." -#: src/client/application/geary-controller.vala:1750 +#: src/client/components/components-attachment-pane.vala:381 msgid "Don’t _ask me again" msgstr "S_pørg mig ikke igen" -#. Translators: Dialog primary label when prompting to -#. overwrite a file. The string substitution is the file'sx -#. name. -#: src/client/application/geary-controller.vala:1879 -#, c-format -msgid "A file named “%s” already exists. Do you want to replace it?" -msgstr "Filen “%s” findes allerede. Vil du erstatte den?" +#: src/client/components/components-inspector.vala:72 +#| msgid "_Inspect" +msgid "Inspector" +msgstr "Inspektør" -#. Translators: Dialog secondary label when prompting to -#. overwrite a file. The string substitution is the parent -#. folder's name. -#: src/client/application/geary-controller.vala:1886 -#, c-format +#. / Translators: Title for Inspector logs pane +#. / Translators: Title for problem report dialog logs pane +#: src/client/components/components-inspector.vala:87 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:102 +msgid "Logs" +msgstr "Logge" + +#. / Translators: Title for Inspector system system information pane +#. / Translators: Title for problem report system information +#. / pane +#: src/client/components/components-inspector.vala:91 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:105 +msgid "System" +msgstr "System" + +#. Button label for saving problem report information +#: src/client/components/components-inspector.vala:208 +#: src/client/components/components-inspector.vala:211 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:221 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:224 +#: ui/problem-details-dialog.ui:42 +#| msgid "_Save As..." +msgid "Save As" +msgstr "Gem som" + +#: src/client/components/components-inspector.vala:212 +#: src/client/dialogs/dialogs-problem-details-dialog.vala:225 +#: ui/accounts_editor_servers_pane.ui:17 +msgid "Cancel" +msgstr "Annullér" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:43 +msgid "_Automatically select next message" +msgstr "_Vælg automatisk næste besked" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:53 +msgid "_Display conversation preview" +msgstr "_Vis samtaleforudvisning" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:63 +msgid "Use _three pane view" +msgstr "Vis _tre ruder" + +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:73 +msgid "Use _single key email shortcuts" +msgstr "Brug genveje med én _tast til e-mail" + +#: src/client/components/components-preferences-window.vala:75 msgid "" -"The file already exists in “%s”. Replacing it will overwrite its contents." +"Enable keyboard shortcuts for email actions that do not require pressing " +"" msgstr "" -"Filen findes allerede i “%s”. Hvis du erstatter den, overskrives dens " -"indhold." -#: src/client/application/geary-controller.vala:1890 -msgid "_Replace" -msgstr "_Erstat" +# oversættelse med vilje indirekte (se forklaring nedenfor) +#. / Translators: Preferences label +#: src/client/components/components-preferences-window.vala:86 +msgid "_Watch for new mail when closed" +msgstr "_Tjek for ny mail når lukket" -#: src/client/application/geary-controller.vala:2160 -msgid "Close the draft message?" -msgid_plural "Close all draft messages?" -msgstr[0] "Luk kladden?" -msgstr[1] "Luk alle kladder?" +#. / Translators: Preferences tooltip +#: src/client/components/components-preferences-window.vala:90 +msgid "Geary will keep running after all windows are closed" +msgstr "Geary fortsætter med at køre, efter alle vinduer er blevet lukket" -#: src/client/application/geary-controller.vala:2286 +#. / Translators: Search entry placeholder text +#: src/client/components/components-search-bar.vala:12 +#: src/client/folder-list/folder-list-search-branch.vala:53 +#: src/engine/api/geary-special-folder-type.vala:51 +msgid "Search" +msgstr "Søg" + +#. / Translators: Search entry tooltip +#: src/client/components/components-search-bar.vala:32 +#, fuzzy +#| msgid "Search all mail in account for keywords (Ctrl+S)" +msgid "Search all mail in account for keywords" +msgstr "Søg efter ord i al e-mail tilhørende kontoen (Ctrl+S)" + +#. / Translators: Search entry placeholder, string +#. / replacement is the name of an account +#: src/client/components/components-search-bar.vala:81 +#: src/client/folder-list/folder-list-search-branch.vala:54 #, c-format -msgid "Empty all email from your %s folder?" -msgstr "Tøm al e-mail fra din %s-mappe?" - -#: src/client/application/geary-controller.vala:2287 -msgid "This removes the email from Geary and your email server." -msgstr "Dette fjerner e-mail fra Geary samt din e-mailserver." - -#: src/client/application/geary-controller.vala:2288 -msgid "This cannot be undone." -msgstr "Dette kan ikke fortrydes." - -#: src/client/application/geary-controller.vala:2289 -#, c-format -msgid "Empty %s" -msgstr "Tøm %s" - -#: src/client/application/geary-controller.vala:2306 -#, c-format -msgid "Error emptying %s" -msgstr "Fejl ved tømning af %s" - -#: src/client/application/geary-controller.vala:2338 -msgid "Do you want to permanently delete this message?" -msgid_plural "Do you want to permanently delete these messages?" -msgstr[0] "Ønsker du at slette denne besked permanent?" -msgstr[1] "Ønsker du at slette disse beskeder permanent?" - -#: src/client/application/geary-controller.vala:2340 -msgid "Delete" -msgstr "Slet" - -#: src/client/application/geary-controller.vala:2354 -msgid "Undo trash (Ctrl+Z)" -msgstr "Fortryd smid i papirkurv (Ctrl+Z)" - -#: src/client/application/geary-controller.vala:2404 -msgid "Undo archive (Ctrl+Z)" -msgstr "Fortryd arkivér (Ctrl+Z)" - -#: src/client/application/geary-controller.vala:2449 -msgid "Undo (Ctrl+Z)" -msgstr "Fortryd (Ctrl+Z)" - -#. Translators: The label for an in-app notification. The -#. string substitution is a list of recipients of the email. -#: src/client/application/geary-controller.vala:2526 -#, c-format -msgid "Successfully sent mail to %s." -msgstr "Sendte mail til %s." - -#: src/client/application/geary-controller.vala:2607 -msgid "Failed to open default text editor." -msgstr "Kunne ikke åbne standardprogrammet til tekstredigéring." +msgid "Search %s account" +msgstr "Søg %s-konto" #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but one is not provided. -#: src/client/components/components-validator.vala:341 +#: src/client/components/components-validator.vala:390 msgid "An email address is required" msgstr "En e-mailadresse er påkrævet" #. Translators: Tooltip used when an entry requires a valid #. email address to be entered, but the address is invalid. -#: src/client/components/components-validator.vala:345 +#: src/client/components/components-validator.vala:394 msgid "Not a valid email address" msgstr "Ikke en gyldig e-mailadresse" #. Translators: Tooltip used when an entry requires a valid, #. resolvable server name to be entered, but one is not #. provided. -#: src/client/components/components-validator.vala:391 +#: src/client/components/components-validator.vala:440 msgid "A server name is required" msgstr "Et servernavn er påkrævet" #. Translators: Tooltip used when an entry requires a valid #. server name to be entered, but it was unable to be #. looked-up in the DNS. -#: src/client/components/components-validator.vala:396 +#: src/client/components/components-validator.vala:445 msgid "Could not look up server name" msgstr "Kunne ikke slå servernavnet op" -#. Tooltips -#: src/client/components/main-toolbar.vala:69 -msgid "Delete conversation (Shift+Delete)" -msgstr "Slet samtale (skift+delete)" - -#: src/client/components/main-toolbar.vala:70 -msgid "Delete conversations (Shift+Delete)" -msgstr "Slet samtaler (skift+delete)" - -#: src/client/components/main-toolbar.vala:71 -msgid "Move conversation to Trash (Delete, Backspace)" -msgstr "Flyt samtalen til papirkurven (delete, tilbagetast)" - -#: src/client/components/main-toolbar.vala:72 -msgid "Move conversations to Trash (Delete, Backspace)" -msgstr "Flyt samtalerne til papirkurven (delete, tilbagetast)" - -#: src/client/components/main-toolbar.vala:73 -msgid "Archive conversation (A)" -msgstr "Arkivér samtale (A)" - -#: src/client/components/main-toolbar.vala:74 -msgid "Archive conversations (A)" -msgstr "Arkivér samtaler (A)" - -#: src/client/components/main-toolbar.vala:75 +#: src/client/components/main-toolbar.vala:142 +#, fuzzy +#| msgid "Mark conversation" msgid "Mark conversation" -msgstr "Markér samtale" +msgid_plural "Mark conversations" +msgstr[0] "Markér samtale" +msgstr[1] "Markér samtale" -#: src/client/components/main-toolbar.vala:76 -msgid "Mark conversations" -msgstr "Markér samtaler" - -#: src/client/components/main-toolbar.vala:77 +#: src/client/components/main-toolbar.vala:147 +#, fuzzy +#| msgid "Add label to conversation" msgid "Add label to conversation" -msgstr "Tilføj label til samtale" +msgid_plural "Add label to conversations" +msgstr[0] "Tilføj label til samtale" +msgstr[1] "Tilføj label til samtale" -#: src/client/components/main-toolbar.vala:78 -msgid "Add label to conversations" -msgstr "Tilføj label til samtaler" - -#: src/client/components/main-toolbar.vala:79 +#: src/client/components/main-toolbar.vala:152 +#, fuzzy +#| msgid "Move conversation" msgid "Move conversation" -msgstr "Flyt samtale" +msgid_plural "Move conversations" +msgstr[0] "Flyt samtale" +msgstr[1] "Flyt samtale" -#: src/client/components/main-toolbar.vala:80 -msgid "Move conversations" -msgstr "Flyt samtaler" +#: src/client/components/main-toolbar.vala:157 +#, fuzzy +#| msgid "Archive conversation (A)" +msgid "Archive conversation" +msgid_plural "Archive conversations" +msgstr[0] "Arkivér samtale (A)" +msgstr[1] "Arkivér samtale (A)" -#: src/client/components/main-window.vala:497 -#, c-format -msgid "%s (%d)" -msgstr "%s (%d)" +#: src/client/components/main-toolbar.vala:168 +#, fuzzy +#| msgid "Move conversations" +msgid "Move conversation to Trash" +msgid_plural "Move conversations to Trash" +msgstr[0] "Flyt samtaler" +msgstr[1] "Flyt samtaler" -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:47 -#, c-format -msgid "Problem connecting to incoming server for %s" -msgstr "Problem med at forbinde til indgående server for %s" +#: src/client/components/main-toolbar.vala:178 +#, fuzzy +#| msgid "Delete conversation" +msgid "Delete conversation" +msgid_plural "Delete conversations" +msgstr[0] "Slet samtale" +msgstr[1] "Slet samtale" -#. Translators: String substitution is the server name -#: src/client/components/main-window-info-bar.vala:49 -#: src/client/components/main-window-info-bar.vala:57 -#, c-format -msgid "" -"Could not connect to %s, check your Internet access and the server name and " -"try again" -msgstr "" -"Kunne ikke forbinde til %s. Tjek din internetadgang og servernavnet og prøv " -"igen" +#. Translators: Info bar title for a generic account +#. problem. +#: src/client/components/main-window-info-bar.vala:44 +msgid "Account problem" +msgstr "Kontoproblem" -# Eller skal det være: Prøver nu at forbinde igen -#. Button tooltip for retrying an account problem -#: src/client/components/main-window-info-bar.vala:50 -#: src/client/components/main-window-info-bar.vala:59 ui/main-window.ui:265 -msgid "Retry connecting now" -msgstr "Prøv igen at forbinde nu" +#. Translators: Info bar sub-title for a generic account +#. problem. String substitution is the account name. +#: src/client/components/main-window-info-bar.vala:48 +#, fuzzy, c-format +#| msgid "Geary has encountered a problem" +msgid "Geary has encountered a problem with %s." +msgstr "Geary er stødt på et problem" -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:55 -#, c-format -msgid "Problem connecting to outgoing server for %s" -msgstr "Problem med at forbinde til udgående server for %s" +#. Translators: Info bar sub-title for a generic +#. account problem. String substitution is the +#. account name. +#: src/client/components/main-window-info-bar.vala:61 +#, fuzzy, c-format +#| msgid "Geary encountered a problem connecting to an account." +msgid "Geary encountered a problem checking mail for %s." +msgstr "Geary kunne ikke forbinde til en konto." -#: src/client/components/main-window-info-bar.vala:58 -msgid "Try reconnecting now" -msgstr "Prøv at forbinde igen nu" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:64 -#, c-format -msgid "Problem with connection to incoming server for %s" -msgstr "Problem med forbindelsen til indgående server for %s" - -#. Translators: String substitution is the server name -#: src/client/components/main-window-info-bar.vala:66 -#: src/client/components/main-window-info-bar.vala:74 -#, c-format -msgid "Network error talking to %s, check your Internet access and try again" -msgstr "" -"Netværksfejl ved kommunikation med %s. Tjek din internetadgang og prøv igen" - -#: src/client/components/main-window-info-bar.vala:67 -#: src/client/components/main-window-info-bar.vala:75 -#: src/client/components/main-window-info-bar.vala:83 -#: src/client/components/main-window-info-bar.vala:91 -#: src/client/components/main-window-info-bar.vala:126 +#. Translators: Tooltip label for Retry button +#: src/client/components/main-window-info-bar.vala:65 msgid "Try reconnecting" msgstr "Prøv at forbinde igen" -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:72 -#, c-format -msgid "Problem with connection to outgoing server for %s" -msgstr "Problem med forbindelsen til udgående server for %s" +#. Translators: Info bar title for an outgoing +#. account problem. String substitution is the +#. account name +#: src/client/components/main-window-info-bar.vala:73 +#, fuzzy, c-format +#| msgid "Geary encountered a problem connecting to an account." +msgid "Geary encountered a problem sending email for %s." +msgstr "Geary kunne ikke forbinde til en konto." -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:80 -#, c-format -msgid "Problem communicating with incoming server for %s" -msgstr "Problem med kommunikationen til indgående server for %s" - -#. Translators: String substitution is the server name -#: src/client/components/main-window-info-bar.vala:82 -#, c-format -msgid "" -"Geary did not understand a message from %s or vice versa, please file a bug " -"report" -msgstr "" -"Geary forstod ikke en besked fra %s eller omvendt. Indsend venligst en " -"fejlrapport" - -#: src/client/components/main-window-info-bar.vala:87 -msgid "Problem communicating with outgoing mail server" -msgstr "Problem med kommunikationen til udgående mailserver" - -#. Translators: First string substitution is the server -#. name, second is the account name -#: src/client/components/main-window-info-bar.vala:90 -#, c-format -msgid "" -"Could not communicate with %s for %s, check the server name and try again in " -"a moment" -msgstr "" -"Kunne ikke kommunikere med %s for %s. Tjek servernavnet og prøv igen om lidt" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:96 -#, c-format -msgid "Incoming mail server password required for %s" -msgstr "Der kræves en adgangskode for %s til den indgående mailserver" - -#: src/client/components/main-window-info-bar.vala:97 -msgid "Messages cannot be received without the correct password." -msgstr "Beskeder kan ikke modtages uden den rigtige adgangskode." - -#: src/client/components/main-window-info-bar.vala:98 -msgid "Retry receiving email, you will be prompted for a password" -msgstr "Prøv igen at modtage e-mail; du vil blive bedt om en adgangskode" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:103 -#, c-format -msgid "Outgoing mail server password required for %s" -msgstr "Der kræves en adgangskode for %s til den udgående mailserver" - -#: src/client/components/main-window-info-bar.vala:104 -msgid "Messages cannot be sent without the correct password." -msgstr "Beskeder kan ikke sendes uden den rigtige adgangskode." - -#: src/client/components/main-window-info-bar.vala:105 -msgid "Retry sending queued messages, you will be prompted for a password" -msgstr "" -"Prøv igen at sende beskederne i køen; du vil blive bedt om en adgangskode" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:110 -#, c-format -msgid "Incoming mail server security is not trusted for %s" -msgstr "Indgående mailservers sikkerhed er ikke pålidelig for %s" - -# Går ud fra der henvises til sikkerheden i foregående -#: src/client/components/main-window-info-bar.vala:111 -msgid "Messages will not be received until checked." -msgstr "Beskeder vil ikke modtages, indtil den er undersøgt." - -#: src/client/components/main-window-info-bar.vala:112 -#: src/client/components/main-window-info-bar.vala:119 -msgid "Check security details" -msgstr "Undersøg sikkerhedsdetaljer" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:117 -#, c-format -msgid "Outgoing mail server security is not trusted for %s" -msgstr "Udgående mailservers sikkerhed er ikke betroet for %s" - -#: src/client/components/main-window-info-bar.vala:118 -msgid "Messages cannot be sent until checked." -msgstr "Beskeder kan ikke sendes, indtil den er undersøgt." - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:124 -#, c-format -msgid "A problem occurred checking mail for %s" -msgstr "Der opstod et problem, da der skulle tjekkes for mail for %s" - -#: src/client/components/main-window-info-bar.vala:125 -#: src/client/components/main-window-info-bar.vala:132 -msgid "Something went wrong, please file a bug report if the problem persists" -msgstr "" -"Noget gik galt. Indsend venligst en fejlrapport, hvis der vedbliver at være " -"et problem" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:131 -#, c-format -msgid "A problem occurred sending mail for %s" -msgstr "Der opstod et problem, da der skulle sendes mail for %s" - -#: src/client/components/main-window-info-bar.vala:133 +#. Translators: Tooltip label for Retry button +#: src/client/components/main-window-info-bar.vala:77 msgid "Retry sending queued messages" msgstr "Prøv igen at sende beskederne i køen" -#: src/client/components/main-window-info-bar.vala:144 -msgid "A database problem has occurred" -msgstr "Der opstod et problem med databasen" - -#. Translators: String substitution is the account name -#: src/client/components/main-window-info-bar.vala:146 -#, c-format -msgid "Messages for %s must be downloaded again." -msgstr "Beskeder for %s skal hentes igen." - -#: src/client/components/main-window-info-bar.vala:159 +#. Translators: Info bar title for a generic application +#. problem. +#: src/client/components/main-window-info-bar.vala:84 msgid "Geary has encountered a problem" msgstr "Geary er stødt på et problem" -#: src/client/components/main-window-info-bar.vala:160 -msgid "" -"Please check the technical details and report the problem if it persists." +#. Translators: Info bar sub-title for a generic +#. application problem. +#: src/client/components/main-window-info-bar.vala:88 +#, fuzzy +#| msgid "" +#| "Please check the technical details and report the problem if it persists." +msgid "Please report the details if it persists." msgstr "" "Undersøg venligst de tekniske detaljer og rapportér, hvis der vedbliver at " "være et problem." -#: src/client/components/main-window-info-bar.vala:168 +#. Translators: Button label for viewing technical details +#. for a problem report. +#: src/client/components/main-window-info-bar.vala:99 msgid "_Details" msgstr "_Detaljer" -#. Button tooltip for displaying technical details about an account problem -#: src/client/components/main-window-info-bar.vala:169 ui/main-window.ui:250 +#. Translators: Tooltip for viewing technical details for +#. a problem report. +#: src/client/components/main-window-info-bar.vala:102 msgid "View technical details about the error" msgstr "Vis tekniske detaljer om fejlen" -#: src/client/components/main-window-info-bar.vala:173 +#. Translators: Button label for retrying a server +#. connection +#: src/client/components/main-window-info-bar.vala:108 msgid "_Retry" msgstr "_Prøv igen" -#: src/client/components/search-bar.vala:8 -#: src/client/folder-list/folder-list-search-branch.vala:38 -#: src/engine/api/geary-special-folder-type.vala:51 -msgid "Search" -msgstr "Søg" - -#. Search entry. -#: src/client/components/search-bar.vala:23 -msgid "Search all mail in account for keywords (Ctrl+S)" -msgstr "Søg efter ord i al e-mail tilhørende kontoen (Ctrl+S)" - -#: src/client/components/search-bar.vala:101 -#, c-format -msgid "Indexing %s account" -msgstr "Indeksérer %s konto" - -#: src/client/components/search-bar.vala:112 -#: src/client/folder-list/folder-list-search-branch.vala:39 -#, c-format -msgid "Search %s account" -msgstr "Søg %s-konto" - #. / Displayed in the space-limited status bar while a message is in the process of being sent. #: src/client/components/status-bar.vala:26 msgid "Sending…" @@ -1381,7 +1540,7 @@ msgstr "_OK" msgid "_Cancel" msgstr "_Annullér" -#: src/client/components/stock.vala:21 ui/gtk/menus.ui:34 +#: src/client/components/stock.vala:21 msgid "_About" msgstr "_Om" @@ -1397,15 +1556,15 @@ msgstr "_Luk" msgid "_Discard" msgstr "_Kassér" -#: src/client/components/stock.vala:25 ui/gtk/menus.ui:29 +#: src/client/components/stock.vala:25 ui/main-toolbar-menus.ui:52 msgid "_Help" msgstr "_Hjælp" -#: src/client/components/stock.vala:26 ui/conversation-email-menus.ui:77 +#: src/client/components/stock.vala:26 ui/components-attachment-pane-menus.ui:7 msgid "_Open" msgstr "_Åbn" -#: src/client/components/stock.vala:27 ui/gtk/menus.ui:17 +#: src/client/components/stock.vala:27 ui/main-toolbar-menus.ui:42 msgid "_Preferences" msgstr "_Indstillinger" @@ -1414,7 +1573,7 @@ msgstr "_Indstillinger" msgid "_Print…" msgstr "_Udskriv …" -#: src/client/components/stock.vala:29 ui/gtk/menus.ui:38 +#: src/client/components/stock.vala:29 msgid "_Quit" msgstr "Af_slut" @@ -1422,7 +1581,8 @@ msgstr "Af_slut" msgid "_Remove" msgstr "_Fjern" -#: src/client/components/stock.vala:31 ui/conversation-email-menus.ui:83 +#: src/client/components/stock.vala:31 +#: ui/components-attachment-pane-menus.ui:11 msgid "_Save" msgstr "_Gem" @@ -1442,27 +1602,33 @@ msgstr "Ugyldig link-URL" msgid "Invalid email address" msgstr "Ugyldig e-mailadresse" -#: src/client/composer/composer-widget.vala:158 +#. / Translators: Title for an empty composer window +#: src/client/composer/composer-widget.vala:28 +msgid "New Message" +msgstr "Ny besked" + +#: src/client/composer/composer-widget.vala:210 msgid "Saved" msgstr "Gemt" -#: src/client/composer/composer-widget.vala:159 +#: src/client/composer/composer-widget.vala:211 msgid "Saving" msgstr "Gemmer" -#: src/client/composer/composer-widget.vala:160 +#: src/client/composer/composer-widget.vala:212 msgid "Error saving" msgstr "Der opstod en fejl under lagring" -#: src/client/composer/composer-widget.vala:161 +#: src/client/composer/composer-widget.vala:213 msgid "Press Backspace to delete quote" msgstr "Tryk tilbagetast for at slette citat" #. Translators: This is list of keywords, separated by pipe ("|") #. characters, that suggest an attachment; since this is full-word -#. checking, include all variants of each word. No spaces are -#. allowed. -#: src/client/composer/composer-widget.vala:170 +#. checking, include all variants of each word. No spaces are +#. allowed. The words will be converted to lower case based on +#. locale and English versions included automatically. +#: src/client/composer/composer-widget.vala:229 msgid "" "attach|attaching|attaches|attachment|attachments|attached|enclose|enclosed|" "enclosing|encloses|enclosure|enclosures" @@ -1474,90 +1640,90 @@ msgstr "" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. Keep, Discard or Cancel. -#: src/client/composer/composer-widget.vala:1103 +#: src/client/composer/composer-widget.vala:814 msgid "Do you want to keep or discard this draft message?" msgstr "Ønsker du at beholde eller kassere denne kladde?" #. Translators: This dialog text is displayed to the #. user when closing a composer where the options are #. only Discard or Cancel. -#: src/client/composer/composer-widget.vala:1131 +#: src/client/composer/composer-widget.vala:840 msgid "Do you want to discard this draft message?" msgstr "Ønsker du at kassere denne kladde?" -#: src/client/composer/composer-widget.vala:1248 +#: src/client/composer/composer-widget.vala:1484 msgid "Send message with an empty subject and body?" msgstr "Send beskeden uden tekst og emne?" -#: src/client/composer/composer-widget.vala:1250 +#: src/client/composer/composer-widget.vala:1486 msgid "Send message with an empty subject?" msgstr "Send beskeden uden et emne?" -#: src/client/composer/composer-widget.vala:1252 +#: src/client/composer/composer-widget.vala:1488 msgid "Send message with an empty body?" msgstr "Send beskeden uden nogen tekst?" -#: src/client/composer/composer-widget.vala:1256 +#: src/client/composer/composer-widget.vala:1497 msgid "Send message without an attachment?" msgstr "Send beskeden uden en vedhæftet fil?" -#: src/client/composer/composer-widget.vala:1561 +#: src/client/composer/composer-widget.vala:1807 #, c-format msgid "“%s” already attached for delivery." msgstr "“%s” er allerede vedhæftet." -#. / In the composer, the filename followed by its filesize, i.e. "notes.txt (1.12KB)" -#. Translators: The first argument will be a -#. description of the document type, the second will -#. be a human-friendly size string. For example: -#. Document (100.9MB) -#: src/client/composer/composer-widget.vala:1569 -#: src/client/conversation-viewer/conversation-email.vala:136 -#, c-format -msgid "%s (%s)" -msgstr "%s (%s)" - -#: src/client/composer/composer-widget.vala:1606 -#, c-format -msgid "“%s” could not be found." -msgstr "“%s” blev ikke fundet." - -#: src/client/composer/composer-widget.vala:1612 -#, c-format -msgid "“%s” is a folder." -msgstr "“%s” er en mappe." - -#: src/client/composer/composer-widget.vala:1618 +#: src/client/composer/composer-widget.vala:1837 +#: src/client/composer/composer-widget.vala:1887 #, c-format msgid "“%s” is an empty file." msgstr "“%s” er en tom fil." -#: src/client/composer/composer-widget.vala:1631 +#: src/client/composer/composer-widget.vala:1875 +#, c-format +msgid "“%s” could not be found." +msgstr "“%s” blev ikke fundet." + +#: src/client/composer/composer-widget.vala:1881 +#, c-format +msgid "“%s” is a folder." +msgstr "“%s” er en mappe." + +#: src/client/composer/composer-widget.vala:1900 #, c-format msgid "“%s” could not be opened for reading." msgstr "“%s” kunne ikke åbnes til læsning." -#: src/client/composer/composer-widget.vala:1639 +#: src/client/composer/composer-widget.vala:1908 msgid "Cannot add attachment" msgstr "Kan ikke tilføje filen" -#: src/client/composer/composer-widget.vala:1688 -msgid "To: " -msgstr "Til: " +#. Translators: Human-readable version of the RFC 822 To header +#: src/client/composer/composer-widget.vala:1965 +#: src/client/conversation-viewer/conversation-email.vala:559 +#: src/client/util/util-email.vala:235 ui/conversation-message.ui:312 +msgid "To:" +msgstr "Til:" -#: src/client/composer/composer-widget.vala:1691 -msgid "Cc: " -msgstr "Cc: " +#. Translators: Human-readable version of the RFC 822 CC header +#: src/client/composer/composer-widget.vala:1971 +#: src/client/conversation-viewer/conversation-email.vala:564 +#: src/client/util/util-email.vala:240 ui/conversation-message.ui:357 +msgid "Cc:" +msgstr "Cc:" -#: src/client/composer/composer-widget.vala:1694 -msgid "Bcc: " -msgstr "Bcc: " +#. Translators: Human-readable version of the RFC 822 BCC header +#: src/client/composer/composer-widget.vala:1977 +#: src/client/conversation-viewer/conversation-email.vala:569 +#: ui/conversation-message.ui:402 +msgid "Bcc:" +msgstr "Bcc:" -#: src/client/composer/composer-widget.vala:1697 +#. Translators: Human-readable version of the RFC 822 Reply-To header +#: src/client/composer/composer-widget.vala:1983 msgid "Reply-To: " msgstr "Svar-Til: " -#: src/client/composer/composer-widget.vala:1835 +#: src/client/composer/composer-widget.vala:2172 msgid "Select Color" msgstr "Vælg farve" @@ -1566,166 +1732,176 @@ msgstr "Vælg farve" #. printf argument will be the alternate email address, #. and the second will be the account's primary email #. address. -#: src/client/composer/composer-widget.vala:2030 +#: src/client/composer/composer-widget.vala:2364 #, c-format msgid "%1$s via %2$s" msgstr "%1$s via %2$s" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: src/client/composer/composer-widget.vala:2090 +#: src/client/composer/composer-widget.vala:2420 msgid "_From:" msgstr "_Fra:" #. Translators: This is the name of the file chooser filter #. when inserting an image in the composer. -#: src/client/composer/composer-widget.vala:2315 +#: src/client/composer/composer-widget.vala:2723 msgid "Images" msgstr "Billeder" -#: src/client/composer/composer-window.vala:14 -msgid "New Message" -msgstr "Ny besked" - -#: src/client/composer/spell-check-popover.vala:117 +#: src/client/composer/spell-check-popover.vala:108 msgid "Remove this language from the preferred list" msgstr "Fjern dette sprog fra listen over foretrukne" -#: src/client/composer/spell-check-popover.vala:121 +#: src/client/composer/spell-check-popover.vala:112 msgid "Add this language to the preferred list" msgstr "Tilføj dette sprog til listen over foretrukne" -#: src/client/composer/spell-check-popover.vala:217 +#: src/client/composer/spell-check-popover.vala:199 msgid "Search for more languages" msgstr "Søg efter flere sprog" -#: src/client/conversation-list/conversation-list-view.vala:283 -msgid "Delete conversation" -msgstr "Slet samtale" +#. / Translators: Context menu item +#: src/client/conversation-list/conversation-list-view.vala:335 +#| msgid "Move conversations" +msgid "Move conversation to _Trash" +msgid_plural "Move conversations to _Trash" +msgstr[0] "Flyt samtale til _papirkurv" +msgstr[1] "Flyt samtaler til _papirkurv" -#: src/client/conversation-list/conversation-list-view.vala:286 -#: ui/main-toolbar-menus.ui:16 +#. / Translators: Context menu item +#: src/client/conversation-list/conversation-list-view.vala:347 +#| msgid "Delete conversation" +msgid "_Delete conversation" +msgid_plural "_Delete conversations" +msgstr[0] "_Slet samtale" +msgstr[1] "_Slet samtaler" + +#: src/client/conversation-list/conversation-list-view.vala:360 +#: ui/main-toolbar-menus.ui:5 msgid "Mark as _Read" msgstr "Markér som _læst" -#: src/client/conversation-list/conversation-list-view.vala:289 -#: ui/main-toolbar-menus.ui:20 +#: src/client/conversation-list/conversation-list-view.vala:368 +#: ui/main-toolbar-menus.ui:9 msgid "Mark as _Unread" msgstr "Markér som _ulæst" -#: src/client/conversation-list/conversation-list-view.vala:292 -#: ui/main-toolbar-menus.ui:28 +#: src/client/conversation-list/conversation-list-view.vala:376 +#: ui/main-toolbar-menus.ui:17 msgid "U_nstar" msgstr "Stj_ern ikke" -#: src/client/conversation-list/conversation-list-view.vala:294 -#: ui/main-toolbar-menus.ui:24 +#: src/client/conversation-list/conversation-list-view.vala:383 +#: ui/main-toolbar-menus.ui:13 msgid "_Star" msgstr "St_jern" #. Translators: Menu item to reply to a specific message. -#: src/client/conversation-list/conversation-list-view.vala:297 +#: src/client/conversation-list/conversation-list-view.vala:392 #: ui/conversation-email-menus.ui:9 msgid "_Reply" msgstr "_Svar" -#: src/client/conversation-list/conversation-list-view.vala:298 +#: src/client/conversation-list/conversation-list-view.vala:398 msgid "R_eply All" msgstr "S_var til alle" #. Translators: Menu item to forward a specific message. -#: src/client/conversation-list/conversation-list-view.vala:299 +#: src/client/conversation-list/conversation-list-view.vala:404 #: ui/conversation-email-menus.ui:21 msgid "_Forward" msgstr "_Videresend" -#: src/client/conversation-list/formatted-conversation-data.vala:11 +#: src/client/conversation-list/formatted-conversation-data.vala:18 msgid "Me" msgstr "Mig" -#. Translators: This is the file type displayed for -#. attachments with unknown file types. -#: src/client/conversation-viewer/conversation-email.vala:122 -msgid "Unknown" -msgstr "Ukendt" - -#: src/client/conversation-viewer/conversation-email.vala:811 +#. Translators: Human-readable version of the RFC 822 From header +#: src/client/conversation-viewer/conversation-email.vala:554 +#: src/client/util/util-email.vala:226 msgid "From:" msgstr "Fra:" -#: src/client/conversation-viewer/conversation-email.vala:815 -#: ui/conversation-message.ui:313 -msgid "To:" -msgstr "Til:" - -#: src/client/conversation-viewer/conversation-email.vala:819 -#: ui/conversation-message.ui:358 -msgid "Cc:" -msgstr "Cc:" - -#: src/client/conversation-viewer/conversation-email.vala:823 -#: ui/conversation-message.ui:403 -msgid "Bcc:" -msgstr "Bcc:" - -#: src/client/conversation-viewer/conversation-email.vala:827 +#. Translators: Human-readable version of the RFC 822 Date header +#: src/client/conversation-viewer/conversation-email.vala:574 +#: src/client/util/util-email.vala:231 msgid "Date:" msgstr "Dato:" -#: src/client/conversation-viewer/conversation-email.vala:831 +#. Translators: Human-readable version of the RFC 822 Subject header +#: src/client/conversation-viewer/conversation-email.vala:584 +#: src/client/util/util-email.vala:229 msgid "Subject:" msgstr "Emne:" -#: src/client/conversation-viewer/conversation-message.vala:60 +#: src/client/conversation-viewer/conversation-message.vala:128 msgid "This email address may have been forged" msgstr "Denne e-mailadresse kan være forfalsket" -#. Preview headers +#. Compact headers. These are partially done here and partially +#. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:330 +#: src/client/conversation-viewer/conversation-message.vala:465 msgid "No sender" msgstr "Ingen afsender" #. Translators: This separates multiple 'from' -#. addresses in the header preview for a message. -#: src/client/conversation-viewer/conversation-message.vala:589 +#. addresses in the compact header for a message. +#: src/client/conversation-viewer/conversation-message.vala:959 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Imagemailing " +#| "list or file a new bug report." +msgid "" +"If the problem is serious or persists, please save and send these details to " +"the mailing list " +"or attach to a new bug report." +msgstr "" +"Hvis problemet er alvorligt eller vedbliver, så kopiér og send disse " +"detaljer til mailinglisten eller " +"registrér en ny " +"fejlrapport." + +#: ui/components-inspector-error-view.ui:49 +msgid "Details:" +msgstr "Detaljer:" + +#. Tooltip for inspector button +#: ui/components-inspector.ui:20 +msgid "Toggle appending new log entries" +msgstr "" + +#. Tooltip for inspector button +#. Tooltip for problem report button +#: ui/components-inspector.ui:37 ui/problem-details-dialog.ui:19 +#, fuzzy +#| msgid "Search for more languages" +msgid "Search for matching log entries" +msgstr "Søg efter flere sprog" + +#. Tooltip for inspector button +#. Tooltip for problem report button +#: ui/components-inspector.ui:63 ui/problem-details-dialog.ui:46 +msgid "Save logs entries and details" +msgstr "" + +#. Tooltip for inspector button +#. Tooltip for problem report button +#: ui/components-inspector.ui:84 ui/problem-details-dialog.ui:62 +#, fuzzy +#| msgid "Copy to Clipboard" +msgid "Copy to clipboard" +msgstr "Kopiér til udklipsholderen" + +#: ui/conversation-contact-popover.ui:146 +#| msgid "Move conversation" +msgid "New Conversation…" +msgstr "Ny samtale …" + +#: ui/conversation-contact-popover.ui:159 +#| msgid "Copy Email _Address" +msgid "Copy Email Address" +msgstr "Kopiér e-mailadresse" + +#: ui/conversation-contact-popover.ui:182 +#| msgid "Save and Close" +msgid "Save in Contacts…" +msgstr "Gem i kontakter …" + +#: ui/conversation-contact-popover.ui:195 +#| msgid "Move conversations" +msgid "Show Conversations" +msgstr "Vis samtaler" + +#: ui/conversation-contact-popover.ui:208 +msgid "Open in Contacts" +msgstr "Åbn i kontakter" + +#: ui/conversation-contact-popover.ui:221 +msgid "Always Load Remote Images" +msgstr "" + +#. Title label on contact popover +#: ui/conversation-contact-popover.ui:264 +#, fuzzy +#| msgid "Invalid email address" +msgid "Deceptive email address" +msgstr "Ugyldig e-mailadresse" + +#. Contact popover label +#: ui/conversation-contact-popover.ui:294 +#, fuzzy +#| msgid "Email address:" +msgid "This email address is:" +msgstr "E-mailadresse:" + +#. Contact popover label +#: ui/conversation-contact-popover.ui:319 +msgid "But was forged as:" +msgstr "" + +#. Contact popover label +#: ui/conversation-contact-popover.ui:344 +msgid "The sender may not be trustworthy" +msgstr "" + #: ui/conversation-email.ui:27 msgid "Save all attachments" msgstr "Gem alle vedhæftede filer" @@ -2675,39 +3071,23 @@ msgstr "Markér denne besked med stjerne" msgid "Mark this message as not starred" msgstr "Markér denne besked som uden stjerne" -#: ui/conversation-email.ui:95 -msgid "Display the message menu" -msgstr "Vis beskedmenuen" - -#: ui/conversation-email.ui:161 -msgid "Open selected attachments" -msgstr "Åbn valgte bilag" - -#: ui/conversation-email.ui:178 -msgid "Save selected attachments" -msgstr "Gem valgte bilag" - -#: ui/conversation-email.ui:195 -msgid "Select all attachments" -msgstr "Vælg alle bilag" - -#: ui/conversation-email.ui:240 +#: ui/conversation-email.ui:124 msgid "Edit Draft" msgstr "Redigér kladde" -#: ui/conversation-email.ui:267 +#: ui/conversation-email.ui:151 msgid "Draft message" msgstr "Kladde" -#: ui/conversation-email.ui:283 +#: ui/conversation-email.ui:167 msgid "This message has not yet been sent." msgstr "Denne besked er endnu ikke blevet sendt." -#: ui/conversation-email.ui:329 +#: ui/conversation-email.ui:213 msgid "Message not saved" msgstr "Besked ikke gemt" -#: ui/conversation-email.ui:345 +#: ui/conversation-email.ui:229 msgid "This message was sent, but has not been saved to your account." msgstr "Denne besked blev sendt, men er ikke blevet gemt på din konto." @@ -2733,14 +3113,19 @@ msgid "Mark Unread From _Here" msgstr "Markér som ulæst _herfra" #. Translators: Menu item to move a single, specific message -#. to the trash +#. to the trash folder #: ui/conversation-email-menus.ui:50 -msgid "_Trash" -msgstr "Flyt til _Papirkurven" +#, fuzzy +#| msgctxt "shortcut window" +#| msgid "Move to trash" +msgid "Move message to _Trash" +msgstr "Flyt til papirkurv" #. Translators: Menu item to delete a single, specific message #: ui/conversation-email-menus.ui:57 -msgid "_Delete…" +#, fuzzy +#| msgid "_Delete…" +msgid "_Delete message…" msgstr "_Slet …" #. Translators: Menu item to view the source for a message @@ -2748,9 +3133,28 @@ msgstr "_Slet …" msgid "_View Source" msgstr "Vis _kilde" -#: ui/conversation-email-menus.ui:87 -msgid "_Save All" -msgstr "_Gem alle" +#: ui/conversation-message-link-popover.ui:54 +msgid "But actually goes to:" +msgstr "men fører faktisk til:" + +#: ui/conversation-message-link-popover.ui:84 +msgid "The link appears to go to:" +msgstr "Linket ser ud til at føre til:" + +#: ui/conversation-message-link-popover.ui:96 +msgid "Deceptive link found" +msgstr "Bedragerisk link fundet" + +#: ui/conversation-message-link-popover.ui:111 +msgid "The email sender may be leading you to the wrong web site." +msgstr "" +"Afsenderen af denne e-mail forsøger måske at lede dig til det forkerte " +"websted." + +#: ui/conversation-message-link-popover.ui:124 +msgid "If unsure, contact the sender and ask before continuing." +msgstr "" +"Hvis du er i tvivl, så kontakt afsenderen og spørg, inden du fortsætter." #: ui/conversation-message-menus.ui:7 msgid "_Open Link" @@ -2761,8 +3165,10 @@ msgid "Copy Link _Address" msgstr "Kopiér link-_adresse" #: ui/conversation-message-menus.ui:17 -msgid "Send New _Message…" -msgstr "Send ny _besked …" +#, fuzzy +#| msgid "Move conversation" +msgid "_New Conversation…" +msgstr "Flyt samtale" #: ui/conversation-message-menus.ui:21 msgid "Copy Email _Address" @@ -2776,31 +3182,27 @@ msgstr "Gem _billede som …" msgid "_Select All" msgstr "Markér _alt" -#: ui/conversation-message-menus.ui:43 -msgid "Search for messages from" -msgstr "Søg efter beskeder fra" - -#: ui/conversation-message.ui:64 +#: ui/conversation-message.ui:63 msgid "From " msgstr "Fra " -#: ui/conversation-message.ui:80 ui/conversation-message.ui:179 +#: ui/conversation-message.ui:79 ui/conversation-message.ui:178 msgid "1/1/1970\t" msgstr "1/1/1970\t" -#: ui/conversation-message.ui:103 +#: ui/conversation-message.ui:102 msgid "Preview body text." msgstr "Forhåndsvisning af tekst." -#: ui/conversation-message.ui:203 +#: ui/conversation-message.ui:202 msgid "Sent by:" msgstr "Sendt af:" -#: ui/conversation-message.ui:248 +#: ui/conversation-message.ui:247 msgid "Reply to:" msgstr "Svar til:" -#: ui/conversation-message.ui:292 +#: ui/conversation-message.ui:291 msgid "Subject" msgstr "Emne" @@ -2820,38 +3222,15 @@ msgstr "Fjernt lagrede billeder vises ikke" msgid "Only show remote images from senders you trust." msgstr "Vis kun fjernlagrede billeder fra afsendere, du stoler på." -#: ui/conversation-message.ui:692 -msgid "But actually goes to:" -msgstr "men fører faktisk til:" - -#: ui/conversation-message.ui:723 -msgid "The link appears to go to:" -msgstr "Linket ser ud til at føre til:" - -#: ui/conversation-message.ui:735 -msgid "Deceptive link found" -msgstr "Bedragerisk link fundet" - -#: ui/conversation-message.ui:750 -msgid "The email sender may be leading you to the wrong web site." -msgstr "" -"Afsenderen af denne e-mail forsøger måske at lede dig til det forkerte " -"websted." - -#: ui/conversation-message.ui:763 -msgid "If unsure, contact the sender and ask before continuing." -msgstr "" -"Hvis du er i tvivl, så kontakt afsenderen og spørg, inden du fortsætter." - #: ui/conversation-viewer.ui:60 msgid "Find in conversation" msgstr "Find i samtale" -#: ui/conversation-viewer.ui:74 +#: ui/conversation-viewer.ui:75 msgid "Find the previous occurrence of the search string." msgstr "Find forrige forekomst af søgestrengen." -#: ui/conversation-viewer.ui:95 +#: ui/conversation-viewer.ui:96 msgid "Find the next occurrence of the search string." msgstr "Find næste forekomst af søgestrengen." @@ -2879,393 +3258,411 @@ msgstr "etiket" msgid "Conversation Shortcuts" msgstr "Samtalegenveje" -#: ui/gtk/help-overlay.ui:13 ui/gtk/help-overlay.ui:254 -msgctxt "shortcut window" -msgid "General" -msgstr "Generelle" - -#: ui/gtk/help-overlay.ui:17 -msgctxt "shortcut window" -msgid "Move focus to the next/previous pane" -msgstr "Flyt fokus til næste/forrige rude" - -#: ui/gtk/help-overlay.ui:24 -msgctxt "shortcut window" -msgid "Move focus to conversation list" -msgstr "Flyt fokus til samtalelisten" - -#: ui/gtk/help-overlay.ui:31 -msgctxt "shortcut window" -msgid "Detach composer window" -msgstr "Løsriv redigeringsvindue" - -#: ui/gtk/help-overlay.ui:38 -msgctxt "shortcut window" -msgid "Close composer window" -msgstr "Luk redigeringsvindue" - -#: ui/gtk/help-overlay.ui:45 -msgctxt "shortcut window" -msgid "Show keyboard shortcuts" -msgstr "Vis tastaturgenveje" - -#: ui/gtk/help-overlay.ui:52 -msgctxt "shortcut window" -msgid "Show help" -msgstr "Vis hjælp" - -#: ui/gtk/help-overlay.ui:59 -msgctxt "shortcut window" -msgid "Quit the application" -msgstr "Afslut programmet" - -#: ui/gtk/help-overlay.ui:68 -msgctxt "shortcut window" -msgid "Search" -msgstr "Søg" - -#: ui/gtk/help-overlay.ui:72 -msgctxt "shortcut window" -msgid "Jump to search box" -msgstr "Hop til søgeboks" - -#: ui/gtk/help-overlay.ui:79 -msgctxt "shortcut window" -msgid "Find in current conversation" -msgstr "Find i nuværende samtale" - -#: ui/gtk/help-overlay.ui:86 -msgctxt "shortcut window" -msgid "Find next/previous in current conversation" -msgstr "Find næste/forrige i nuværende samtale" - -#: ui/gtk/help-overlay.ui:95 ui/gtk/help-overlay.ui:274 +#: ui/gtk/help-overlay.ui:13 ui/gtk/help-overlay.ui:355 msgctxt "shortcut window" msgid "Actions" msgstr "Handlinger" -#: ui/gtk/help-overlay.ui:99 +#: ui/gtk/help-overlay.ui:17 +#, fuzzy +#| msgid "Move conversation" msgctxt "shortcut window" -msgid "Compose a new message" -msgstr "Skriv ny besked" +msgid "New conversation" +msgstr "Flyt samtale" -#: ui/gtk/help-overlay.ui:106 +#: ui/gtk/help-overlay.ui:24 +#, fuzzy +#| msgctxt "shortcut window" +#| msgid "Reply to sender " msgctxt "shortcut window" -msgid "Reply to sender " +msgid "Reply to sender" msgstr "Svar til afsender " -#: ui/gtk/help-overlay.ui:113 +#: ui/gtk/help-overlay.ui:31 ui/gtk/help-overlay.ui:269 msgctxt "shortcut window" msgid "Reply to all" msgstr "Svar til alle" -#: ui/gtk/help-overlay.ui:120 +#: ui/gtk/help-overlay.ui:38 ui/gtk/help-overlay.ui:276 msgctxt "shortcut window" msgid "Forward" msgstr "Videresend" -#: ui/gtk/help-overlay.ui:127 +#: ui/gtk/help-overlay.ui:45 ui/gtk/help-overlay.ui:283 +#, fuzzy +#| msgctxt "shortcut window" +#| msgid "Mark read" msgctxt "shortcut window" -msgid "Archive" -msgstr "Arkivér" - -#: ui/gtk/help-overlay.ui:134 -msgctxt "shortcut window" -msgid "Move to trash" -msgstr "Flyt til papirkurv" - -#: ui/gtk/help-overlay.ui:141 -msgctxt "shortcut window" -msgid "Toggle spam" -msgstr "Slå spam til/fra" - -#: ui/gtk/help-overlay.ui:148 -msgctxt "shortcut window" -msgid "Move the conversation" -msgstr "Flyt samtalen" - -#: ui/gtk/help-overlay.ui:155 -msgctxt "shortcut window" -msgid "Label the conversation" -msgstr "Tilføj etiket til samtalen" - -#: ui/gtk/help-overlay.ui:163 -msgctxt "shortcut window" -msgid "Mark read" +msgid "Un-mark/mark read" msgstr "Markér som læst" -#: ui/gtk/help-overlay.ui:170 +#: ui/gtk/help-overlay.ui:52 ui/gtk/help-overlay.ui:290 msgctxt "shortcut window" -msgid "Mark unread" -msgstr "Markér som ulæst" +msgid "Mark/un-mark starred" +msgstr "" -#: ui/gtk/help-overlay.ui:179 +#: ui/gtk/help-overlay.ui:59 ui/gtk/help-overlay.ui:297 +#, fuzzy +#| msgid "Archive conversations (A)" +msgctxt "shortcut window" +msgid "Archive conversations" +msgstr "Arkivér samtaler (A)" + +#: ui/gtk/help-overlay.ui:66 ui/gtk/help-overlay.ui:304 +#, fuzzy +#| msgid "Move conversations" +msgctxt "shortcut window" +msgid "Move conversations" +msgstr "Flyt samtaler" + +#: ui/gtk/help-overlay.ui:73 ui/gtk/help-overlay.ui:311 +#, fuzzy +#| msgctxt "shortcut window" +#| msgid "Label the conversation" +msgctxt "shortcut window" +msgid "Label conversations" +msgstr "Tilføj etiket til samtalen" + +#: ui/gtk/help-overlay.ui:80 +#, fuzzy +#| msgid "Mark conversations" +msgctxt "shortcut window" +msgid "Trash conversations" +msgstr "Markér samtaler" + +#: ui/gtk/help-overlay.ui:87 ui/gtk/help-overlay.ui:318 +#, fuzzy +#| msgid "Mark conversations" +msgctxt "shortcut window" +msgid "Junk conversations" +msgstr "Markér samtaler" + +#: ui/gtk/help-overlay.ui:95 ui/gtk/help-overlay.ui:325 +#, fuzzy +#| msgid "Delete conversation" +msgctxt "shortcut window" +msgid "Delete conversations" +msgstr "Slet samtale" + +#: ui/gtk/help-overlay.ui:104 +msgctxt "shortcut window" +msgid "Search" +msgstr "Søg" + +#: ui/gtk/help-overlay.ui:108 +#, fuzzy +#| msgid "Mark conversations" +msgctxt "shortcut window" +msgid "Search for conversations" +msgstr "Markér samtaler" + +#: ui/gtk/help-overlay.ui:115 +msgctxt "shortcut window" +msgid "Find in current conversation" +msgstr "Find i nuværende samtale" + +#: ui/gtk/help-overlay.ui:141 +#, fuzzy +#| msgid "Undo" +msgctxt "shortcut window" +msgid "Undo" +msgstr "Fortryd" + +#: ui/gtk/help-overlay.ui:145 +msgctxt "shortcut window" +msgid "Undo the last action" +msgstr "" + +#: ui/gtk/help-overlay.ui:152 +msgctxt "shortcut window" +msgid "Redo the last action" +msgstr "" + +#: ui/gtk/help-overlay.ui:161 msgctxt "shortcut window" msgid "View" msgstr "Vis" -#: ui/gtk/help-overlay.ui:183 +#: ui/gtk/help-overlay.ui:165 msgctxt "shortcut window" msgid "Zoom in" msgstr "Zoom ind" -#: ui/gtk/help-overlay.ui:190 +#: ui/gtk/help-overlay.ui:172 msgctxt "shortcut window" msgid "Zoom out" msgstr "Zoom ud" -#: ui/gtk/help-overlay.ui:197 +#: ui/gtk/help-overlay.ui:179 msgctxt "shortcut window" msgid "Reset zoom" msgstr "Gendan zoom" +#: ui/gtk/help-overlay.ui:188 ui/gtk/help-overlay.ui:375 +msgctxt "shortcut window" +msgid "General" +msgstr "Generelt" + +#: ui/gtk/help-overlay.ui:192 +msgctxt "shortcut window" +msgid "Show help" +msgstr "Vis hjælp" + +#: ui/gtk/help-overlay.ui:199 +msgctxt "shortcut window" +msgid "Show keyboard shortcuts" +msgstr "Vis tastaturgenveje" + #: ui/gtk/help-overlay.ui:206 +#, fuzzy +#| msgid "Use %s to open a new composer window" msgctxt "shortcut window" -msgid "Additional Shortcuts" -msgstr "Yderligere genveje" +msgid "Open a new window" +msgstr "Brug %s for at åbne et nyt redigeringsvindue" -#: ui/gtk/help-overlay.ui:210 +#: ui/gtk/help-overlay.ui:213 +#, fuzzy +#| msgctxt "shortcut window" +#| msgid "Close composer window" msgctxt "shortcut window" -msgid "Star" -msgstr "Tilføj stjerne" +msgid "Close the current window" +msgstr "Luk redigeringsvindue" -#: ui/gtk/help-overlay.ui:217 +#: ui/gtk/help-overlay.ui:220 msgctxt "shortcut window" -msgid "Unstar" -msgstr "Fjern stjerne" +msgid "Quit the application" +msgstr "Afslut programmet" -#: ui/gtk/help-overlay.ui:224 +#: ui/gtk/help-overlay.ui:229 msgctxt "shortcut window" -msgid "Delete" -msgstr "Slet" +msgid "Keyboard navigation" +msgstr "" -#: ui/gtk/help-overlay.ui:231 +#: ui/gtk/help-overlay.ui:233 +#, fuzzy +#| msgctxt "shortcut window" +#| msgid "Move focus to the next/previous pane" msgctxt "shortcut window" -msgid "Jump to next (older) conversation" -msgstr "Hop til næste (ældre) samtale" +msgid "Go to next/previous pane" +msgstr "Flyt fokus til næste/forrige rude" -#: ui/gtk/help-overlay.ui:238 +#: ui/gtk/help-overlay.ui:241 +#, fuzzy +#| msgctxt "shortcut window" +#| msgid "Find next/previous in current conversation" msgctxt "shortcut window" -msgid "Jump to previous (newer) conversation" -msgstr "Hop til forrige (nyere) samtale" +msgid "Select next/previous conversation" +msgstr "Find næste/forrige i nuværende samtale" -#: ui/gtk/help-overlay.ui:250 +#: ui/gtk/help-overlay.ui:248 +#, fuzzy +#| msgctxt "shortcut window" +#| msgid "Move focus to the next/previous pane" +msgctxt "shortcut window" +msgid "Focus next/previous message" +msgstr "Flyt fokus til næste/forrige rude" + +#: ui/gtk/help-overlay.ui:258 +#, fuzzy +#| msgctxt "shortcut window" +#| msgid "Show keyboard shortcuts" +msgctxt "shortcut window" +msgid "Single-key shortcuts" +msgstr "Vis tastaturgenveje" + +#: ui/gtk/help-overlay.ui:262 +msgctxt "shortcut window" +msgid "Reply to sender " +msgstr "Svar til afsender " + +#: ui/gtk/help-overlay.ui:332 +#, fuzzy +#| msgctxt "shortcut window" +#| msgid "Find in current conversation" +msgctxt "shortcut window" +msgid "Find in current conversations" +msgstr "Find i nuværende samtale" + +#: ui/gtk/help-overlay.ui:339 +#, fuzzy +#| msgctxt "shortcut window" +#| msgid "Find next/previous in current conversation" +msgctxt "shortcut window" +msgid "Select next/previous conversations" +msgstr "Find næste/forrige i nuværende samtale" + +#: ui/gtk/help-overlay.ui:351 msgid "Composer Shortcuts" msgstr "Genveje i redigering" -#: ui/gtk/help-overlay.ui:258 -msgctxt "shortcut window" -msgid "Quote text" -msgstr "Citér tekst" - -#: ui/gtk/help-overlay.ui:265 -msgctxt "shortcut window" -msgid "Unquote text" -msgstr "Fjern citat" - -#: ui/gtk/help-overlay.ui:278 +#: ui/gtk/help-overlay.ui:359 msgctxt "shortcut window" msgid "Send" msgstr "Send" -#: ui/gtk/help-overlay.ui:285 +#: ui/gtk/help-overlay.ui:366 msgctxt "shortcut window" msgid "Add attachment" msgstr "Vedhæft bilag" -#: ui/gtk/help-overlay.ui:294 +#: ui/gtk/help-overlay.ui:379 msgctxt "shortcut window" -msgid "Rich text mode" +msgid "Close composer window" +msgstr "Luk redigeringsvindue" + +#: ui/gtk/help-overlay.ui:386 +msgctxt "shortcut window" +msgid "Detach composer window" +msgstr "Løsriv redigeringsvindue" + +#: ui/gtk/help-overlay.ui:393 +#, fuzzy +#| msgid "Edit" +msgctxt "shortcut window" +msgid "Editing" +msgstr "Redigér" + +#: ui/gtk/help-overlay.ui:398 +msgctxt "shortcut window" +msgid "Move selection to the clipboard" +msgstr "" + +#: ui/gtk/help-overlay.ui:405 +#, fuzzy +#| msgid "Copy to Clipboard" +msgctxt "shortcut window" +msgid "Copy selection to clipboard" +msgstr "Kopiér til udklipsholderen" + +#: ui/gtk/help-overlay.ui:412 +msgctxt "shortcut window" +msgid "Paste from the clipboard" +msgstr "" + +#: ui/gtk/help-overlay.ui:419 +msgctxt "shortcut window" +msgid "Quote text" +msgstr "Citér tekst" + +#: ui/gtk/help-overlay.ui:426 +msgctxt "shortcut window" +msgid "Unquote text" +msgstr "Fjern citat" + +#: ui/gtk/help-overlay.ui:435 +#, fuzzy +#| msgctxt "shortcut window" +#| msgid "Rich text mode" +msgctxt "shortcut window" +msgid "Rich text editing" msgstr "Formateret tekst" -#: ui/gtk/help-overlay.ui:298 +#: ui/gtk/help-overlay.ui:439 +#, fuzzy +#| msgctxt "Clipboard paste as plain text" +#| msgid "Paste _Without Formatting" +msgctxt "shortcut window" +msgid "Paste without formatting" +msgstr "Sæt ind _uden formatering" + +#: ui/gtk/help-overlay.ui:446 msgctxt "shortcut window" msgid "Bold text" msgstr "Fed tekst" -#: ui/gtk/help-overlay.ui:305 +#: ui/gtk/help-overlay.ui:453 msgctxt "shortcut window" msgid "Italicize text" msgstr "Kursiv tekst" -#: ui/gtk/help-overlay.ui:312 +#: ui/gtk/help-overlay.ui:460 msgctxt "shortcut window" msgid "Underline text" msgstr "Understreget tekst" -#: ui/gtk/help-overlay.ui:319 +#: ui/gtk/help-overlay.ui:467 msgctxt "shortcut window" msgid "Strike text" msgstr "Gennemgstreget tekst" -#: ui/gtk/help-overlay.ui:326 -msgctxt "shortcut window" -msgid "Insert a link" -msgstr "Indsæt link" - -#: ui/gtk/help-overlay.ui:333 +#: ui/gtk/help-overlay.ui:474 msgctxt "shortcut window" msgid "Remove formatting" msgstr "Fjern formatering" -#: ui/gtk/menus.ui:13 -msgid "A_ccounts" -msgstr "_Konti" +#: ui/gtk/help-overlay.ui:481 +#, fuzzy +#| msgid "Insert an image (Ctrl+G)" +msgctxt "shortcut window" +msgid "Insert an image" +msgstr "Indsæt et billede (Ctrl+G)" -#: ui/gtk/menus.ui:23 -msgid "_Keyboard Shortcuts" -msgstr "_Tastaturgenveje" +#: ui/gtk/help-overlay.ui:488 +msgctxt "shortcut window" +msgid "Insert a link" +msgstr "Indsæt link" -#: ui/main-toolbar.ui:51 +#: ui/main-toolbar.ui:23 +#, fuzzy +#| msgid "Compose Message" +msgctxt "tooltip" +msgid "Compose Message" +msgstr "Skriv besked" + +#: ui/main-toolbar.ui:61 msgid "Toggle search bar" msgstr "Slå søgebjælke til/fra" -#: ui/main-toolbar.ui:72 -msgid "Empty Spam or Trash folders" -msgstr "Tøm spam- eller papirkurvsmapper" - -#: ui/main-toolbar.ui:112 +#: ui/main-toolbar.ui:114 msgid "Reply" msgstr "Svar" -#: ui/main-toolbar.ui:135 +#: ui/main-toolbar.ui:137 msgid "Reply All" msgstr "Svar til alle" -#: ui/main-toolbar.ui:158 +#: ui/main-toolbar.ui:160 msgid "Forward" msgstr "Videresend" -#: ui/main-toolbar.ui:264 +#: ui/main-toolbar.ui:265 msgid "Toggle find bar" msgstr "Slå find-bjælke til/fra" -#: ui/main-toolbar.ui:306 +#: ui/main-toolbar.ui:286 msgid "_Archive" msgstr "_Arkivér" -#: ui/main-toolbar-menus.ui:5 +#: ui/main-toolbar-menus.ui:21 +#, fuzzy +#| msgctxt "shortcut window" +#| msgid "Toggle spam" +msgid "Toggle as S_pam" +msgstr "Slå spam til/fra" + +#: ui/main-toolbar-menus.ui:28 msgid "Empty _Spam…" msgstr "Tøm _spam …" -#: ui/main-toolbar-menus.ui:9 +#: ui/main-toolbar-menus.ui:32 msgid "Empty _Trash…" msgstr "Tøm _papirkurv …" -#: ui/main-toolbar-menus.ui:32 -msgid "Mark as S_pam" -msgstr "Markér som s_pam" +#: ui/main-toolbar-menus.ui:38 +#, fuzzy +#| msgid "Accounts" +msgid "_Accounts" +msgstr "Konti" -#: ui/main-toolbar-menus.ui:36 -msgid "Mark as not S_pam" -msgstr "Marker som ikke s_pam" +#: ui/main-toolbar-menus.ui:46 +msgid "_Keyboard Shortcuts" +msgstr "_Tastaturgenveje" -#. Infobar title when one or more accounts are offline -#: ui/main-window.ui:183 -msgid "Working offline" -msgstr "Arbejder offline" - -#. Label and tooltip for offline infobar -#: ui/main-window.ui:197 -msgid "" -"Your computer does not appear to be connected to the Internet.\n" -"You will not be able to send or receive email until it is re-connected." -msgstr "" -"Det lader ikke til, din computer er på internettet.\n" -"Du kan ikke sende eller modtage e-mails, indtil forbindelsen er " -"genoprettet." - -#. Label and tooltip for offline infobar -#: ui/main-window.ui:200 -msgid "You will not be able to send or receive email until re-connected." -msgstr "" -"Du kan ikke sende eller modtage e-mails, indtil forbindelsen er " -"genoprettet." - -#. Button label for displaying technical details about an account problem -#. Dialog title for displaying technical details of a problem. Same as the button that invokes it. -#: ui/main-window.ui:247 ui/problem-details-dialog.ui:13 -msgid "Details" -msgstr "Detaljer" - -#. Button label for retrying an account problem -#: ui/main-window.ui:261 -msgid "Retry" -msgstr "Prøv igen" - -#. Infobar title when one or more accounts have encounted an error -#: ui/main-window.ui:294 -msgid "Account problem" -msgstr "Kontoproblem" - -#. Label and tooltip for account service problem infobar -#: ui/main-window.ui:308 -msgid "" -"Geary encountered a problem connecting to an account.\n" -"Please check your Internet connection, the server configuration and try " -"again." -msgstr "" -"Geary kunne ikke forbinde til en konto.\n" -"Tjek din internetadgang og serverkonfiguration og prøv igen" - -#. Label and tooltip for account service problem infobar -#: ui/main-window.ui:311 -msgid "Geary encountered a problem connecting to an account." -msgstr "Geary kunne ikke forbinde til en konto." - -#. Button label for retrying TLS cert validation -#: ui/main-window.ui:358 -msgid "Check" -msgstr "Undersøg" - -#. Button tooltip for retrying TLS cert validation -#: ui/main-window.ui:362 -msgid "Check the security details for the connection" -msgstr "Undersøg forbindelsens sikkerhedsdetaljer" - -#. Infobar title when one or more accounts have a TLS cert validation error -#: ui/main-window.ui:391 -msgid "Security problem" -msgstr "Sikkerhedsproblem" - -#. Label and tooltip for TLS cert validation error infobar -#: ui/main-window.ui:405 -msgid "" -"An account has reported an untrusted server.\n" -"Please check the server configuration and try again." -msgstr "" -"En konto har rapporteret en ubetroet server.\n" -"Tjek serverkonfigurationen og prøv igen." - -#. Label and tooltip for TLS cert validation error infobar -#: ui/main-window.ui:408 -msgid "An account has reported an untrusted server." -msgstr "En konto har rapporteret en ubetroet server." - -#. Button tooltip for retrying when a login error has occurred -#: ui/main-window.ui:459 -msgid "Retry login, you will be prompted for your password" -msgstr "Prøv igen at logge på; du vil blive bedt om en adgangskode" - -#. Infobar title when one or more accounts have a login error -#: ui/main-window.ui:488 -msgid "Login problem" -msgstr "Loginproblem" - -#. Label and tooltip for authentication problem infobar -#: ui/main-window.ui:502 -msgid "" -"An account has reported an incorrect login or password.\n" -"Please check your login name and try again." -msgstr "" -"En konto har rapporteret et forkert login eller en forkert adgangskode.\n" -"Tjek dit loginnavn og prøv igen." - -#. Label and tooltip for authentication problem infobar -#: ui/main-window.ui:505 -msgid "An account has reported an incorrect login or password." -msgstr "" -"En konto har rapporteret et forkert login eller en forkert adgangskode." +#: ui/main-toolbar-menus.ui:57 +#, fuzzy +#| msgid "_About" +msgid "_About Geary" +msgstr "_Om" #: ui/password-dialog.glade:74 msgid "SMTP Credentials" @@ -3283,496 +3680,6 @@ msgstr "_Husk adgangskode" msgid "_Authenticate" msgstr "_Godkend" -#: ui/preferences-dialog.ui:38 -msgid "Reading" -msgstr "Læsning" - -#: ui/preferences-dialog.ui:51 -msgid "_Automatically select next message" -msgstr "_Vælg automatisk næste besked" - -#: ui/preferences-dialog.ui:70 -msgid "_Display conversation preview" -msgstr "_Vis samtaleforudvisning" - -#: ui/preferences-dialog.ui:89 -msgid "Use _three pane view" -msgstr "Vis _tre ruder" - -#: ui/preferences-dialog.ui:113 -msgid "Notifications" -msgstr "Påmindelser" - -#: ui/preferences-dialog.ui:126 -msgid "_Play notification sounds" -msgstr "_Afspil påmindelseslyde" - -#: ui/preferences-dialog.ui:145 -msgid "Show _notifications for new mail" -msgstr "Vis _påmindelse om ny e-mail" - -# oversættelse med vilje indirekte (se forklaring nedenfor) -#: ui/preferences-dialog.ui:164 -msgid "_Watch for new mail when closed" -msgstr "_Tjek for ny mail når lukket" - -#: ui/preferences-dialog.ui:168 -msgid "Geary will keep running after all windows are closed" -msgstr "Geary fortsætter med at køre, efter alle vinduer er blevet lukket" - -#: ui/preferences-dialog.ui:195 -msgid "Preferences" -msgstr "Indstillinger" - -#. Button label for copying technical information to the clipboard -#: ui/problem-details-dialog.ui:17 -msgid "Copy to Clipboard" -msgstr "Kopiér til udklipsholderen" - -#. Button tooltip for copying technical information to the clipboard -#: ui/problem-details-dialog.ui:21 -msgid "" -"Copy technical details to clipboard for pasting into an email or bug report" -msgstr "" -"Kopiér tekniske detaljer til udklipsholderen for at sætte dem ind i en e-" -"mail eller en fejlrapport" - -#: ui/problem-details-dialog.ui:73 -msgid "" -"If the problem is serious or persists, please copy and send these details to " -"the mailing list " -"or file a new " -"bug report." -msgstr "" -"Hvis problemet er alvorligt eller vedbliver, så kopiér og send disse " -"detaljer til mailinglisten eller registrér en ny fejlrapport." - -#: ui/problem-details-dialog.ui:89 -msgid "Details:" -msgstr "Detaljer:" - #: ui/upgrade_dialog.glade:60 msgid "Geary update in progress…" msgstr "Geary er ved at blive opgraderet …" - -#~ msgid "Additional addresses for %s" -#~ msgstr "Yderligere adresser for %s" - -#~ msgid "First Last" -#~ msgstr "Fornavn Efternavn" - -#~ msgid "Enter your account information to get started." -#~ msgstr "Indtast kontoinformation for at starte." - -#~ msgid "Edit" -#~ msgstr "Redigér" - -#~ msgid "Preview" -#~ msgstr "Forhåndsvisning" - -#~ msgid "Remem_ber passwords" -#~ msgstr "Hus_k adgangskoder" - -#~ msgid "Remem_ber password" -#~ msgstr "Hu_sk adgangskode" - -#~ msgid "Unable to validate:\n" -#~ msgstr "Kunne ikke validere:\n" - -#~ msgid " • Invalid account nickname.\n" -#~ msgstr " • Ugyldigt kaldenavn til bruger.\n" - -#~ msgid " • Email address already added to Geary.\n" -#~ msgstr " • E-mailadressen er allerede tilføjet til Geary.\n" - -#~ msgid " • IMAP connection error.\n" -#~ msgstr " • IMAP-forbindelsesfejl.\n" - -#~ msgid " • IMAP username or password incorrect.\n" -#~ msgstr " • Forkert brugernavn eller adgangskode til IMAP.\n" - -#~ msgid " • SMTP connection error.\n" -#~ msgstr " • SMTP-forbindelsesfejl.\n" - -#~ msgid " • SMTP username or password incorrect.\n" -#~ msgstr " • Forkert brugernavn eller adgangskode til SMTP.\n" - -#~ msgid " • Connection error.\n" -#~ msgstr " • Forbindelsesfejl.\n" - -#~ msgid " • Username or password incorrect.\n" -#~ msgstr " • Forkert brugernavn eller adgangskode.\n" - -#~ msgid "Unable to store server trust exception" -#~ msgstr "Kan ikke gemme undtagelse for tillid til server" - -#~ msgid "Your settings are insecure" -#~ msgstr "Dine indstillinger er usikre" - -#~ msgid "" -#~ "Your IMAP and/or SMTP settings do not specify SSL or TLS. This means " -#~ "your username and password could be read by another person on the " -#~ "network. Are you sure you want to do this?" -#~ msgstr "" -#~ "Dine IMAP- og/eller SMTP-indstillinger anvender ikke SSL eller TLS. Dette " -#~ "betyder, at dit brugernavn og din adgangskode kan læses af andre på " -#~ "netværket. Er du sikker på, at du vil gære dette?" - -#~ msgid "Co_ntinue" -#~ msgstr "F_ortsæt" - -#~ msgid "" -#~ "Geary encountered an error sending an email. If the problem persists, " -#~ "please manually delete the email from your Outbox folder." -#~ msgstr "" -#~ "Geary stødte ind i en fejl under afsendelse af en e-mail. Hvis dette " -#~ "problem fortsætter, bør du manuelt slette beskeden fra din “Udbakke”-" -#~ "mappe." - -#~ msgid "" -#~ "Geary encountered an error saving a sent message to Sent Mail. The " -#~ "message will stay in your Outbox folder until you delete it." -#~ msgstr "" -#~ "Der opstod en fejl, da Geary forsøgte at gemme en sendt besked til mappen " -#~ "med afsendt e-mail. Beskeden vil blive i din Udbakke, indtil du sletter " -#~ "den." - -#~ msgid "Unable to open local mailbox for %s" -#~ msgstr "Kunne ikke åbne den lokale postkasse for %s" - -#~ msgid "" -#~ "There was an error opening the local mail database for this account. This " -#~ "is possibly due to a file permissions problem.\n" -#~ "\n" -#~ "Please check that you have read/write permissions for all files in this " -#~ "directory:\n" -#~ "\n" -#~ "%s" -#~ msgstr "" -#~ "Der opstod en fejl under åbningen af den lokale e-maildatabase til denne " -#~ "konto. Dette sker sikkert på grund af problemer med filrettigheder.\n" -#~ "\n" -#~ "Tjek at du har læse- og skriverettigheder for alle filer i denne mappe.\n" -#~ "\n" -#~ "%s" - -#~ msgid "" -#~ "The version number of the local mail database is formatted for a newer " -#~ "version of Geary. Unfortunately, the database cannot be “rolled back” to " -#~ "work with this version of Geary.\n" -#~ "\n" -#~ "Please install the latest version of Geary and try again." -#~ msgstr "" -#~ "Den lokale e-maildatabases versionsnummer er til en nyere version af " -#~ "Geary. Desværre kan databasen ikke blive “rullet tilbage”, så den virker " -#~ "med denne version of Geary.\n" -#~ "\n" -#~ "Installér venligst den nyeste version af Geary og prøv igen." - -#~ msgid "" -#~ "There was an error opening the local account. This is probably due to " -#~ "connectivity issues.\n" -#~ "\n" -#~ "Please check your network connection and restart Geary." -#~ msgstr "" -#~ "Der opstod en felj under åbning af den lokele konto. Dette sker sikkert " -#~ "på grund af forbindelsesproblemer.\n" -#~ "\n" -#~ "Tjek, at din internetforbindelse virker og genstart derefter Geary." - -#~ msgid "Geary will exit if you have no other open email accounts." -#~ msgstr "Geary vil afsluttes, hvis du ikke har nogen andre åbne e-mailkonti." - -#~ msgid "IMAP" -#~ msgstr "IMAP" - -#~ msgid "SMTP" -#~ msgstr "SMTP" - -#~ msgid "Other" -#~ msgstr "Andet" - -#~ msgid "Cannot remove account " -#~ msgstr "Kan ikke fjerne konto " - -#~ msgid "" -#~ "A composer window associated with this account is currently open. Send or " -#~ "discard the message and try again." -#~ msgstr "" -#~ "Et beskedskrivningsvindue associéret med denne bruger er i forvejen " -#~ "åbent. Send eller kassér beskeden og prøv igen." - -#~ msgid "Please wait while Geary validates your account." -#~ msgstr "Vent venligst mens Geary validérer din konto." - -#~ msgid "" -#~ "Some email services require additional addresses be configured on the " -#~ "server. Contact your email provider for more information." -#~ msgstr "" -#~ "Visse e-mailtjenester kræver at der konfigureres yderligere adresser på " -#~ "serveren. Kontakt din e-mailudbyder for at få yderligere information." - -#~ msgid "_Update" -#~ msgstr "_Opdatér" - -#~ msgid "E_mail address" -#~ msgstr "E-_mailadresse" - -#~ msgid "_Password" -#~ msgstr "_Adgangskode" - -#~ msgid "S_ervice" -#~ msgstr "_Tjeneste" - -#~ msgid "N_ame" -#~ msgstr "Na_vn" - -#~ msgid "N_ickname" -#~ msgstr "_Kaldenavn" - -#~ msgid "Work, Home, etc." -#~ msgstr "Arbejde, hjem osv." - -#~ msgid "_Save sent mail" -#~ msgstr "_Gem sendt mail" - -#~ msgid "Addi_tional email addresses…" -#~ msgstr "_Yderligere e-mailadresser …" - -#~ msgid "IMAP settings" -#~ msgstr "IMAP-indstillinger" - -#~ msgid "Se_rver" -#~ msgstr "_Server" - -#~ msgid "P_ort" -#~ msgstr "_Port" - -#~ msgid "Ser_ver" -#~ msgstr "Se_rver" - -#~ msgid "Por_t" -#~ msgstr "Por_t" - -#~ msgid "User_name" -#~ msgstr "Bruger_navn" - -#~ msgid "Pass_word" -#~ msgstr "A_dgangskode" - -#~ msgid "SMTP password" -#~ msgstr "SMTP-adgangskode" - -#~ msgid "_Username" -#~ msgstr "_Brugernavn" - -#~ msgid "IMAP password" -#~ msgstr "IMAP-adgangskode" - -#~ msgid "Encr_yption" -#~ msgstr "Kr_yptering" - -#~ msgid "Encrypt_ion" -#~ msgstr "Krypter_ing" - -#~ msgid "STARTTLS" -#~ msgstr "STARTTLS" - -#~ msgid "No authentication re_quired" -#~ msgstr "Ingen autentifikation kr_ævet" - -#~ msgid "Use IMAP cre_dentials" -#~ msgstr "Br_ug IMAP-akkreditiver" - -#~ msgid "Composer" -#~ msgstr "Beskedskriver" - -#~ msgid "Si_gn emails (HTML allowed):" -#~ msgstr "Si_gnér e-mail (HTML er tilladt):" - -#~ msgid "Storage" -#~ msgstr "Lager" - -#~ msgid "" -#~ "Are you sure you want to remove " -#~ "this account? " -#~ msgstr "" -#~ "Er du sikker på, at du vil fjerne " -#~ "denne konto? " - -#~ msgid "" -#~ "All email associated with this account will be removed from your " -#~ "computer. This will not affect email on the server." -#~ msgstr "" -#~ "Al e-mail, der tilhører denne konto vil blive fjernet fra din computer. " -#~ "Dette vil ikke fjerne e-mailen på serveren." - -#~ msgid "Nickname:" -#~ msgstr "Kaldenavn:" - -#~ msgid "Default attachments directory" -#~ msgstr "Standardmappe til vedhæftede filer" - -#~ msgid "Location used when opening and saving attachments." -#~ msgstr "Placering der bruges, når vedhæftede filer åbnes og gemmes." - -#~ msgid "Default print output directory" -#~ msgstr "Standardmappe til output ved udskrivning" - -#~ msgid "Location used when printing to a file." -#~ msgstr "Placering der bruges ved udskrivning til en fil." - -#, fuzzy -#~ msgid "geary" -#~ msgstr "Geary" - -#~ msgid "" -#~ "Geary encountered an error while connecting to the server. Please try " -#~ "again in a few moments." -#~ msgstr "" -#~ "Geary stødte på en fejl i forsøget på at forbinde til serveren. Prøv igen " -#~ "om lidt." - -#~ msgid "Geary will run in the background and notify of new mail" -#~ msgstr "Geary vil køre i baggrunden og vise, når der kommer ny post" - -#~ msgid "Geary Email" -#~ msgstr "Geary E-mail" - -#~ msgid "Geary Mail" -#~ msgstr "Geary mail" - -#~ msgid "Try Again" -#~ msgstr "Prøv igen" - -#~ msgid "_Mark as…" -#~ msgstr "_Markér som …" - -#~ msgid "Add label" -#~ msgstr "Tilføj etiket" - -#~ msgid "_Label" -#~ msgstr "_Etiket" - -#~ msgid "_Move" -#~ msgstr "_Flyt" - -#~ msgid "Compose new message (Ctrl+N, N)" -#~ msgstr "Skriv ny besked (Ctrl+N, N)" - -#~ msgid "Reply (Ctrl+R, R)" -#~ msgstr "Svar (Ctrl+R, R)" - -#~ msgid "Reply all (Ctrl+Shift+R, Shift+R)" -#~ msgstr "Svar til alle (Ctrl+Skift+R, Skift+R)" - -#~ msgid "Forward (Ctrl+L, F)" -#~ msgstr "Videresend (Ctrl+L, F)" - -#~ msgid "Mail Client" -#~ msgstr "E-mailklient" - -#~ msgid "_Inspect" -#~ msgstr "_Undersøg" - -#~ msgid "%s — Composer Inspector" -#~ msgstr "%s — Redigeringsundersøger" - -#~ msgid " (Invalid?)" -#~ msgstr "(Ugyldig?)" - -#~ msgid "%s — Conversation Inspector" -#~ msgstr "%s — Samtaleundersøger" - -#~ msgid "none" -#~ msgstr "intet" - -#~ msgid "Copy _Link" -#~ msgstr "Kopiér _link" - -#~ msgid "Link (Ctrl+L)" -#~ msgstr "Link (Ctrl+L)" - -#~ msgid "Enable _spell checking" -#~ msgstr "Aktiver _stavekontrol" - -# Ifl. kildekoden er dette navn på en menu og ikke f.eks. en tilstand -#~ msgid "Empty" -#~ msgstr "Tøm" - -#~ msgid "_Inspect..." -#~ msgstr "_Undersøg …" - -#~ msgid "Copyright 2011-2014 Yorba Foundation" -#~ msgstr "Copyright 2011-2014 Yorba Foundation" - -#~ msgid "_Donate" -#~ msgstr "_Donér" - -#~ msgid "%i match" -#~ msgid_plural "%i matches" -#~ msgstr[0] "%i match" -#~ msgstr[1] "%i matchende" - -#~ msgid "%i match (wrapped)" -#~ msgid_plural "%i matches (wrapped)" -#~ msgstr[0] "%i match (ombrudt)" -#~ msgstr[1] "%i matchende (ombrudt)" - -#~ msgid "not found" -#~ msgstr "ikke fundet" - -#~ msgid "Do you want to discard the unsaved message?" -#~ msgstr "Vil du kassére denne ugemte besked?" - -#~ msgid "No search results found." -#~ msgstr "Ingen søgeresultater blev fundet." - -#~ msgid "Select _Message" -#~ msgstr "Vælg _besked" - -#~ msgid "_Save As..." -#~ msgstr "Gem _som …" - -#~ msgid "Save A_ttachment..." -#~ msgid_plural "Save All A_ttachments..." -#~ msgstr[0] "Gem v_edhæftet fil …" -#~ msgstr[1] "Gem alle v_edhæftede filer …" - -#~ msgid "_Left" -#~ msgstr "_Venstre" - -#~ msgid "_Right" -#~ msgstr "_Højre" - -#~ msgid "_Center" -#~ msgstr "_Centrér" - -#~ msgid "_Justify" -#~ msgstr "_Juster" - -#~ msgid "More options" -#~ msgstr "Flere valgmuligheder" - -#~ msgid "Large" -#~ msgstr "Stor" - -#~ msgid "Medium" -#~ msgstr "Mellem" - -#~ msgid "Small" -#~ msgstr "Lille" - -#~ msgid "Sans Serif" -#~ msgstr "Sans Serif" - -#~ msgid "Serif" -#~ msgstr "Serif" - -#~ msgid "Fixed Width" -#~ msgstr "Fast bredde" - -#~ msgid "_Attach File" -#~ msgstr "_Vedhæft fil" From a14553f6b76c77f6725acacb610081134ac56d0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jiri=20Gr=C3=B6nroos?= Date: Tue, 17 Mar 2020 14:19:15 +0000 Subject: [PATCH 097/336] Update Finnish translation --- po/fi.po | 64 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 37 insertions(+), 27 deletions(-) diff --git a/po/fi.po b/po/fi.po index dc4ff5d7..662aaef9 100644 --- a/po/fi.po +++ b/po/fi.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: geary-0.4.1\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/geary/issues\n" -"POT-Creation-Date: 2020-02-16 20:26+0000\n" -"PO-Revision-Date: 2020-02-23 14:43+0200\n" +"POT-Creation-Date: 2020-03-17 08:39+0000\n" +"PO-Revision-Date: 2020-03-17 16:18+0200\n" "Last-Translator: Jiri Grönroos \n" "Language-Team: suomi \n" "Language: fi\n" @@ -893,7 +893,6 @@ msgstr "Avaa uusi ikkuna" #. / Command line option #: src/client/application/application-client.vala:137 -#| msgid "Revoke all server certificates with TLS warnings" msgid "Revoke all pinned TLS server certificates" msgstr "Kumoa kaikki kiinnitetyt TLS-palvelinvarmenteet" @@ -977,7 +976,6 @@ msgstr "" #. / is the given argument #: src/client/application/application-client.vala:970 #, c-format -#| msgid "Unrecognized command line option “%s”\n" msgid "Unrecognised program argument: “%s”" msgstr "Tunnistamaton ohjelma-argumentti: “%s”" @@ -1041,7 +1039,6 @@ msgstr[1] "Keskustelut arkistoitu" #. / substitution is the name of the destination folder. #: src/client/application/application-controller.vala:707 #, c-format -#| msgid "Message not saved" msgid "Message restored to %s" msgid_plural "Messages restored to %s" msgstr[0] "Viesti palautettu kansioon %s" @@ -1059,7 +1056,6 @@ msgstr[1] "Viestit arkistoitu" #. / of the destination folder. #: src/client/application/application-controller.vala:763 #, c-format -#| msgid "Message not saved" msgid "Message moved to %s" msgid_plural "Messages moved to %s" msgstr[0] "Viesti siirretty kansioon %s" @@ -1070,7 +1066,6 @@ msgstr[1] "Viestit siirretty kansioon %s" #. / of the destination folder. #: src/client/application/application-controller.vala:791 #, c-format -#| msgid "No conversations selected" msgid "Conversation labelled as %s" msgid_plural "Conversations labelled as %s" msgstr[0] "Keskustelu merkitty tunnisteella %s" @@ -1086,12 +1081,12 @@ msgid_plural "Conversations un-labelled as %s" msgstr[0] "" msgstr[1] "" -#: src/client/application/application-controller.vala:1222 +#: src/client/application/application-controller.vala:1223 #, c-format msgid "Unable to open the database for %s" msgstr "Kohteen %s tietokannan avaaminen epäonnistui" -#: src/client/application/application-controller.vala:1223 +#: src/client/application/application-controller.vala:1224 #, c-format msgid "" "There was an error opening the local mail database for this account. This is " @@ -1117,20 +1112,20 @@ msgstr "" "niiden liitteet. Toimenpiteellä ei ole vaikutusta palvelimella oleviin " "viesteihin ja liitteisiin." -#: src/client/application/application-controller.vala:1225 +#: src/client/application/application-controller.vala:1226 msgid "_Rebuild" msgstr "Ra_kenna uudelleen" -#: src/client/application/application-controller.vala:1225 +#: src/client/application/application-controller.vala:1226 msgid "E_xit" msgstr "_Poistu" -#: src/client/application/application-controller.vala:1235 +#: src/client/application/application-controller.vala:1236 #, c-format msgid "Unable to rebuild database for “%s”" msgstr "Tietokannan jälleenrakennus tilille “%s” epäonnistui" -#: src/client/application/application-controller.vala:1236 +#: src/client/application/application-controller.vala:1237 #, c-format msgid "" "Error during rebuild:\n" @@ -1143,34 +1138,34 @@ msgstr "" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:1559 +#: src/client/application/application-controller.vala:1561 #, c-format msgid "Email sent to %s" msgstr "Viesti vastaanottajalle %s lähetetty" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2642 +#: src/client/application/application-controller.vala:2656 #, c-format msgid "Email to %s queued for delivery" msgstr "Viesti vastaanottajalle %s asetettu jonoon toimitusta varten" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2706 +#: src/client/application/application-controller.vala:2720 #, c-format msgid "Email to %s saved" msgstr "Viesti vastaanottajalle %s tallennettu" #. / Translators: A label for an in-app notification. -#: src/client/application/application-controller.vala:2721 -#: src/client/application/application-controller.vala:2779 +#: src/client/application/application-controller.vala:2735 +#: src/client/application/application-controller.vala:2793 msgid "Composer could not be restored" msgstr "Lähetintä ei voitu palauttaa" #. / Translators: The label for an in-app notification. The #. / string substitution is a list of recipients of the email. -#: src/client/application/application-controller.vala:2764 +#: src/client/application/application-controller.vala:2778 #, c-format msgid "Email to %s discarded" msgstr "Viesti vastaanottajalle %s hylätty" @@ -1308,7 +1303,7 @@ msgstr "Kä_ytä kolmen paneelin näkymää" #. / Translators: Preferences label #: src/client/components/components-preferences-window.vala:73 msgid "Use _single key email shortcuts" -msgstr "Näytä _yhden näppäimen pikanäppäimiä" +msgstr "Käytä _yhden näppäimen pikanäppäimiä" #: src/client/components/components-preferences-window.vala:75 msgid "" @@ -1695,20 +1690,20 @@ msgstr "Valitse väri" #. printf argument will be the alternate email address, #. and the second will be the account's primary email #. address. -#: src/client/composer/composer-widget.vala:2439 +#: src/client/composer/composer-widget.vala:2440 #, c-format msgid "%1$s via %2$s" msgstr "%1$s välityksellä %2$s" #. Composer label (with mnemonic underscore) for the account selector #. when choosing what address to send a message from. -#: src/client/composer/composer-widget.vala:2495 +#: src/client/composer/composer-widget.vala:2496 msgid "_From:" msgstr "_Lähettäjä:" #. Translators: This is the name of the file chooser filter #. when inserting an image in the composer. -#: src/client/composer/composer-widget.vala:2800 +#: src/client/composer/composer-widget.vala:2801 msgid "Images" msgstr "Kuvat" @@ -1800,24 +1795,40 @@ msgstr "Aihe:" msgid "This email address may have been forged" msgstr "Tämä sähköpostiosoite saattaa olla väärennetty" +#. Translators: Label text displayed when there are too +#. many email addresses to be shown by default in an +#. email's header, but they are all being shown anyway. +#: src/client/conversation-viewer/conversation-message.vala:234 +msgid "Show less" +msgstr "Näytä vähemmän" + +#. Translators: Label text displayed when there are +#. too many email addresses to be shown by default in +#. an email's header. The string substitution is the +#. number of extra email to be shown. +#: src/client/conversation-viewer/conversation-message.vala:260 +#, c-format +msgid "%d more…" +msgstr "%d lisää…" + #. Compact headers. These are partially done here and partially #. in load_contacts. #. Translators: This is displayed in place of the from address #. when the message has no from address. -#: src/client/conversation-viewer/conversation-message.vala:438 +#: src/client/conversation-viewer/conversation-message.vala:530 msgid "No sender" msgstr "Ei lähettäjää" #. Translators: This separates multiple 'from' #. addresses in the compact header for a message. -#: src/client/conversation-viewer/conversation-message.vala:830 +#: src/client/conversation-viewer/conversation-message.vala:922 msgid ", " msgstr ", " #. Translators: This string is used as the HTML IMG ALT #. attribute value when displaying an inline image in an email #. that did not specify a file name. E.g. Image Date: Tue, 17 Mar 2020 16:42:28 +0100 Subject: [PATCH 098/336] Update POTFILES.in --- po/POTFILES.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/POTFILES.in b/po/POTFILES.in index 2b5df3fd..78eca534 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -92,9 +92,9 @@ src/client/plugin/plugin-email.vala src/client/plugin/plugin-error.vala src/client/plugin/plugin-folder-store.vala src/client/plugin/plugin-folder.vala -src/client/plugin/plugin-notification-etension.vala +src/client/plugin/plugin-notification-extension.vala src/client/plugin/plugin-plugin-base.vala -src/client/plugin/plugin-trusted-etension.vala +src/client/plugin/plugin-trusted-extension.vala src/client/plugin/desktop-notifications/desktop-notifications.plugin.in src/client/plugin/desktop-notifications/desktop-notifications.vala src/client/plugin/folder-highlight/folder-highlight.plugin.in From 190c4464997a0ad2916f659efecec34774e445d5 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Mon, 16 Mar 2020 11:33:27 +1100 Subject: [PATCH 099/336] Components.InfoBarStack: New class for stacking Gtk InfoBars --- po/POTFILES.in | 1 + .../components/components-info-bar-stack.vala | 193 ++++++++++++++++++ src/client/meson.build | 1 + 3 files changed, 195 insertions(+) create mode 100644 src/client/components/components-info-bar-stack.vala diff --git a/po/POTFILES.in b/po/POTFILES.in index 78eca534..9ece7de1 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -36,6 +36,7 @@ src/client/components/client-web-view.vala src/client/components/components-attachment-pane.vala src/client/components/components-entry-undo.vala src/client/components/components-in-app-notification.vala +src/client/components/components-info-bar-stack.vala src/client/components/components-inspector.vala src/client/components/components-placeholder-pane.vala src/client/components/components-preferences-window.vala diff --git a/src/client/components/components-info-bar-stack.vala b/src/client/components/components-info-bar-stack.vala new file mode 100644 index 00000000..3328418d --- /dev/null +++ b/src/client/components/components-info-bar-stack.vala @@ -0,0 +1,193 @@ +/* + * Copyright © 2020 Michael Gratton + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +/** + * A stack-like widget for displaying Gtk InfoBar widgets. + * + * The stack ensures only one info bar is shown at once, shows a frame + * around the info bar, and manages revealing and hiding itself and + * the info bars as needed. + */ +public class Components.InfoBarStack : Gtk.Frame, Geary.BaseInterface { + + + private class SingletonQueue : Gee.AbstractQueue { + + public override bool read_only { + get { return false; } + } + + public override int size { + get { return (this.element == null) ? 0 : 1; } + } + + public override int capacity { + get { return 1; } + } + + public override bool is_full { + get { return (this.element != null); } + } + + public override int remaining_capacity { + get { return (this.element != null) ? 0 : 1; } + } + + private Gtk.InfoBar? element = null; + + + public override bool add(Gtk.InfoBar to_add) { + var added = false; + if (this.element != to_add) { + this.element = to_add; + added = true; + } + return added; + } + + public override void clear() { + this.element = null; + } + + public override bool contains(Gtk.InfoBar other) { + return (this.element == other); + } + + public override Gee.Iterator iterator() { + // This sucks but it won't ever be used so oh well + return ( + this.element == null + ? Gee.Collection.empty().iterator() + : Geary.Collection.single(this.element).iterator() + ); + } + + public override bool remove(Gtk.InfoBar to_remove) { + var removed = false; + if (this.element == to_remove) { + this.element = null; + removed = true; + } + return removed; + } + + public override Gtk.InfoBar peek() { + return this.element; + } + + public override Gtk.InfoBar poll() { + var element = this.element; + this.element = null; + return element; + } + + } + + + /** Determines if an info bar is currently being shown. */ + public bool has_current { + get { return (this.current_info_bar != null); } + } + + /** Returns the currently displayed info bar, if any. */ + public Gtk.InfoBar? current_info_bar { + get { return get_child() as Gtk.InfoBar; } + } + + private Gee.Queue available; + + + /** + * Constructs a stack that shows the most recently added info bar. + */ + public InfoBarStack.exclusive() { + this.shadow_type = IN; + this.visible = false; + get_style_context().add_class("geary-info-bar-frame"); + + this.available = new SingletonQueue(); + } + + /** + * Adds an info bar to the stack. + * + * If this is the first info bar added, the stack will show itself + * and reveal the info bar. Otherwise, depending on the type of + * stack constructed, the info bar may or may not be revealed + * immediately. + */ + public new void add(Gtk.InfoBar to_add) { + if (this.available.offer(to_add)) { + update(); + } + } + + /** + * Removes an info bar to the stack. + * + * If the info bar is currently visible, it will be hidden and + * replaced with the next info bar added. If the only info bar + * present is removed, the stack also hides itself. + */ + public new void remove(Gtk.InfoBar to_remove) { + if (this.available.remove(to_remove)) { + update(); + } + } + + /** + * Removes all info bars from the stack, hiding the stack. + */ + public new void remove_all() { + this.available.clear(); + update(); + } + + private void update() { + var current = this.current_info_bar; + var next = this.available.peek(); + if (current == null && next != null) { + // Not currently showing an info bar but have one to show, + // so show it + this.visible = true; + base.add(next); + this.size_allocate.connect(on_allocation_changed); + next.revealed = true; + next.notify["revealed"].connect(on_revealed); + } else if (current != null && next != current) { + // Currently showing an info bar but should be showing + // something else, so start hiding it + current.notify["revealed"].disconnect(on_revealed); + current.revealed = false; + } else if (current == null && next == null) { + // Not currently showing anything and there's nothing to + // show, so hide the frame + this.visible = false; + } + } + + private void on_allocation_changed() { + var current = this.current_info_bar; + if (current != null) { + Gtk.Allocation alloc; + get_allocation(out alloc); + if (alloc.height < 2) { + this.size_allocate.disconnect(on_allocation_changed); + base.remove(current); + update(); + } + } + } + + private void on_revealed(GLib.Object target, GLib.ParamSpec param) { + var current = this.current_info_bar; + if (current == target && !current.revealed) { + remove(current); + } + } + +} diff --git a/src/client/meson.build b/src/client/meson.build index d6dd9a4a..556e06ae 100644 --- a/src/client/meson.build +++ b/src/client/meson.build @@ -33,6 +33,7 @@ geary_client_vala_sources = files( 'components/client-web-view.vala', 'components/components-attachment-pane.vala', 'components/components-entry-undo.vala', + 'components/components-info-bar-stack.vala', 'components/components-inspector.vala', 'components/components-in-app-notification.vala', 'components/components-inspector-error-view.vala', From 88516377cae97cfbaff745abacab88641f472766 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Mon, 16 Mar 2020 12:06:45 +1100 Subject: [PATCH 100/336] Components.InfoBar: New subclass of Gtk InfoBars with labels --- po/POTFILES.in | 1 + .../components/components-info-bar.vala | 75 +++++++++++++++++++ src/client/meson.build | 1 + 3 files changed, 77 insertions(+) create mode 100644 src/client/components/components-info-bar.vala diff --git a/po/POTFILES.in b/po/POTFILES.in index 9ece7de1..4db962c4 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -37,6 +37,7 @@ src/client/components/components-attachment-pane.vala src/client/components/components-entry-undo.vala src/client/components/components-in-app-notification.vala src/client/components/components-info-bar-stack.vala +src/client/components/components-info-bar.vala src/client/components/components-inspector.vala src/client/components/components-placeholder-pane.vala src/client/components/components-preferences-window.vala diff --git a/src/client/components/components-info-bar.vala b/src/client/components/components-info-bar.vala new file mode 100644 index 00000000..0944cff8 --- /dev/null +++ b/src/client/components/components-info-bar.vala @@ -0,0 +1,75 @@ +/* + * Copyright © 2020 Michael Gratton + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +/** + * A standard info bar widget with status message and description. + */ +public class Components.InfoBar : Gtk.InfoBar { + + + /** + * A short, human-readable status message. + * + * This should ideally be less than 20 characters long. + */ + public Gtk.Label status { get; private set; } + + /** + * An optional, longer human-readable explanation of the status. + * + * This provides additional information and context for {@link + * status}. + */ + public Gtk.Label? description { get; private set; default = null; } + + + /** + * Constructs a new info bar. + * + * @param status a short, human-readable status message, ideally + * less than 20 characters long + * @param description an optional, longer human-readable + * explanation of {@link status}. + */ + public InfoBar(string status, string? description = null) { + this.status = new Gtk.Label(status); + this.status.halign = START; + + var attrs = new Pango.AttrList(); + attrs.change(Pango.attr_weight_new(BOLD)); + this.status.attributes = attrs; + + if (!Geary.String.is_empty_or_whitespace(description)) { + // There is both a status and a description, so they + // should be vertical-aligned next to each other in the + // centre + this.status.valign = END; + + this.description = new Gtk.Label(description); + this.description.halign = START; + this.description.valign = START; + + // Set the description to be ellipsised and set and the + // tool-tip to be the same, in case it is too long for the + // info bar's width + this.description.ellipsize = END; + this.description.tooltip_text = description; + } + + var container = new Gtk.Grid(); + container.orientation = VERTICAL; + container.valign = CENTER; + container.add(this.status); + if (this.description != null) { + container.add(this.description); + } + get_content_area().add(container); + + show_all(); + } + +} diff --git a/src/client/meson.build b/src/client/meson.build index 556e06ae..de4c651e 100644 --- a/src/client/meson.build +++ b/src/client/meson.build @@ -34,6 +34,7 @@ geary_client_vala_sources = files( 'components/components-attachment-pane.vala', 'components/components-entry-undo.vala', 'components/components-info-bar-stack.vala', + 'components/components-info-bar.vala', 'components/components-inspector.vala', 'components/components-in-app-notification.vala', 'components/components-inspector-error-view.vala', From feece66c6e5f7eabfe54905ad63c78970b9b2a09 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Mon, 16 Mar 2020 13:10:03 +1100 Subject: [PATCH 101/336] MainWindowInfobar: Rename and derive from common InfoBar widget Rename to Components.ProblemReportInfoBar to better describe what it does, and to fit with the code convention for package and file names. Derive from Components.InfoBar so we can drop the custom GTK Builder file for it. --- po/POTFILES.in | 3 +- .../application/application-controller.vala | 6 +- .../application/application-main-window.vala | 8 +- ...> components-problem-report-info-bar.vala} | 50 +++--------- src/client/meson.build | 2 +- ui/main-window-info-bar.ui | 80 ------------------- ui/org.gnome.Geary.gresource.xml | 1 - 7 files changed, 21 insertions(+), 129 deletions(-) rename src/client/components/{main-window-info-bar.vala => components-problem-report-info-bar.vala} (77%) delete mode 100644 ui/main-window-info-bar.ui diff --git a/po/POTFILES.in b/po/POTFILES.in index 4db962c4..2859b0c0 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -41,13 +41,13 @@ src/client/components/components-info-bar.vala src/client/components/components-inspector.vala src/client/components/components-placeholder-pane.vala src/client/components/components-preferences-window.vala +src/client/components/components-problem-report-info-bar.vala src/client/components/components-search-bar.vala src/client/components/components-validator.vala src/client/components/count-badge.vala src/client/components/folder-popover.vala src/client/components/icon-factory.vala src/client/components/main-toolbar.vala -src/client/components/main-window-info-bar.vala src/client/components/monitored-progress-bar.vala src/client/components/monitored-spinner.vala src/client/components/status-bar.vala @@ -449,7 +449,6 @@ ui/folder-popover.ui ui/gtk/help-overlay.ui ui/main-toolbar.ui ui/main-toolbar-menus.ui -ui/main-window-info-bar.ui ui/password-dialog.glade ui/problem-details-dialog.ui ui/upgrade_dialog.glade diff --git a/src/client/application/application-controller.vala b/src/client/application/application-controller.vala index 75ccb0cf..4a149596 100644 --- a/src/client/application/application-controller.vala +++ b/src/client/application/application-controller.vala @@ -444,9 +444,9 @@ internal class Application.Controller : Geary.BaseObject { if (report.error == null || !(report.error.thrown is IOError.CANCELLED)) { - MainWindowInfoBar info_bar = new MainWindowInfoBar.for_problem(report); + var info_bar = new Components.ProblemReportInfoBar(report); info_bar.retry.connect(on_retry_problem); - this.application.get_active_main_window().show_infobar(info_bar); + this.application.get_active_main_window().show_info_bar(info_bar); } Geary.ServiceProblemReport? service_report = @@ -1589,7 +1589,7 @@ internal class Application.Controller : Geary.BaseObject { report_problem(problem); } - private void on_retry_problem(MainWindowInfoBar info_bar) { + private void on_retry_problem(Components.ProblemReportInfoBar info_bar) { Geary.ServiceProblemReport? service_report = info_bar.report as Geary.ServiceProblemReport; if (service_report != null) { diff --git a/src/client/application/application-main-window.vala b/src/client/application/application-main-window.vala index 31d8ba8b..a2609eaa 100644 --- a/src/client/application/application-main-window.vala +++ b/src/client/application/application-main-window.vala @@ -348,7 +348,7 @@ public class Application.MainWindow : [GtkChild] private Gtk.InfoBar auth_problem_infobar; - private MainWindowInfoBar? service_problem_infobar = null; + private Components.ProblemReportInfoBar? service_problem_infobar = null; /** Fired when the user requests an account status be retried. */ public signal void retry_service_problem(Geary.ClientService.Status problem); @@ -607,7 +607,7 @@ public class Application.MainWindow : ? problem_source.incoming : problem_source.outgoing ); - this.service_problem_infobar = new MainWindowInfoBar.for_problem( + this.service_problem_infobar = new Components.ProblemReportInfoBar( new Geary.ServiceProblemReport( problem_source.information, service.configuration, @@ -616,7 +616,7 @@ public class Application.MainWindow : ); this.service_problem_infobar.retry.connect(on_service_problem_retry); - show_infobar(this.service_problem_infobar); + show_info_bar(this.service_problem_infobar); } this.offline_infobar.set_visible(show_offline); @@ -833,7 +833,7 @@ public class Application.MainWindow : } /** Displays an infobar in the window. */ - public void show_infobar(MainWindowInfoBar info_bar) { + public void show_info_bar(Gtk.InfoBar info_bar) { this.info_bar_container.add(info_bar); this.info_bar_frame.show(); } diff --git a/src/client/components/main-window-info-bar.vala b/src/client/components/components-problem-report-info-bar.vala similarity index 77% rename from src/client/components/main-window-info-bar.vala rename to src/client/components/components-problem-report-info-bar.vala index 5b20660c..63a6dfa1 100644 --- a/src/client/components/main-window-info-bar.vala +++ b/src/client/components/components-problem-report-info-bar.vala @@ -1,34 +1,26 @@ /* - * Copyright 2017 Michael Gratton + * Copyright © 2017,2020 Michael Gratton * * This software is licensed under the GNU Lesser General Public License * (version 2.1 or later). See the COPYING file in this distribution. */ /** - * Displays application-wide or important account-related messages. + * Displays a Geary problem report as an info bar. */ -[GtkTemplate (ui = "/org/gnome/Geary/main-window-info-bar.ui")] -public class MainWindowInfoBar : Gtk.InfoBar { +public class Components.ProblemReportInfoBar : InfoBar { private enum ResponseType { DETAILS, RETRY; } /** If reporting a problem, returns the problem report else null. */ - public Geary.ProblemReport? report { get; private set; default = null; } + public Geary.ProblemReport report { get; private set; } /** Emitted when the user clicks the Retry button, if any. */ public signal void retry(); - [GtkChild] - private Gtk.Label title; - - [GtkChild] - private Gtk.Label description; - - - public MainWindowInfoBar.for_problem(Geary.ProblemReport report) { + public ProblemReportInfoBar(Geary.ProblemReport report) { Gtk.MessageType type = Gtk.MessageType.WARNING; string title = ""; string descr = ""; @@ -89,9 +81,12 @@ public class MainWindowInfoBar : Gtk.InfoBar { ); } - // Only show a close button if retrying not possible - this(type, title, descr, (retry == null)); + base(title, descr); + this.message_type = type; this.report = report; + this.show_close_button = (retry == null); + + this.response.connect(on_info_bar_response); if (this.report.error != null) { // Translators: Button label for viewing technical details @@ -110,21 +105,6 @@ public class MainWindowInfoBar : Gtk.InfoBar { } } - protected MainWindowInfoBar(Gtk.MessageType type, - string title, - string description, - bool show_close) { - this.message_type = type; - this.title.label = title; - - // Set the label and tooltip for the description in case it is - // long enough to be ellipsized - this.description.label = description; - this.description.tooltip_text = description; - - this.show_close_button = show_close; - } - private void show_details() { var main = get_toplevel() as Application.MainWindow; if (main != null) { @@ -138,7 +118,6 @@ public class MainWindowInfoBar : Gtk.InfoBar { } } - [GtkCallback] private void on_info_bar_response(int response) { switch(response) { case ResponseType.DETAILS: @@ -147,18 +126,13 @@ public class MainWindowInfoBar : Gtk.InfoBar { case ResponseType.RETRY: retry(); - this.hide(); + this.revealed = false; break; default: - this.hide(); + this.revealed = false; break; } } - [GtkCallback] - private void on_hide() { - this.parent.remove(this); - } - } diff --git a/src/client/meson.build b/src/client/meson.build index de4c651e..1ab46740 100644 --- a/src/client/meson.build +++ b/src/client/meson.build @@ -42,6 +42,7 @@ geary_client_vala_sources = files( 'components/components-inspector-system-view.vala', 'components/components-placeholder-pane.vala', 'components/components-preferences-window.vala', + 'components/components-problem-report-info-bar.vala', 'components/components-reflow-box.c', 'components/components-search-bar.vala', 'components/components-validator.vala', @@ -49,7 +50,6 @@ geary_client_vala_sources = files( 'components/folder-popover.vala', 'components/icon-factory.vala', 'components/main-toolbar.vala', - 'components/main-window-info-bar.vala', 'components/monitored-progress-bar.vala', 'components/monitored-spinner.vala', 'components/status-bar.vala', diff --git a/ui/main-window-info-bar.ui b/ui/main-window-info-bar.ui deleted file mode 100644 index f649291d..00000000 --- a/ui/main-window-info-bar.ui +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - diff --git a/ui/org.gnome.Geary.gresource.xml b/ui/org.gnome.Geary.gresource.xml index f74a48e8..f0d5b32c 100644 --- a/ui/org.gnome.Geary.gresource.xml +++ b/ui/org.gnome.Geary.gresource.xml @@ -40,7 +40,6 @@ gtk/help-overlay.ui main-toolbar.ui main-toolbar-menus.ui - main-window-info-bar.ui password-dialog.glade problem-details-dialog.ui signature-web-view.js From 058a314e405a197d01b22ff9a9617e40e40519ce Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Tue, 17 Mar 2020 15:11:13 +1100 Subject: [PATCH 102/336] Application.MainWindow: Construct infobars programatically Construct infobars programatically so they can derive from Components.Infobar and don't need to be initially part of the widget hierarchy. --- .../application/application-main-window.vala | 49 ++- ui/application-main-window.ui | 308 +----------------- 2 files changed, 43 insertions(+), 314 deletions(-) diff --git a/src/client/application/application-main-window.vala b/src/client/application/application-main-window.vala index a2609eaa..d337be10 100644 --- a/src/client/application/application-main-window.vala +++ b/src/client/application/application-main-window.vala @@ -1,6 +1,6 @@ /* - * Copyright 2016 Software Freedom Conservancy Inc. - * Copyright 2016, 2019 Michael Gratton + * Copyright © 2016 Software Freedom Conservancy Inc. + * Copyright © 2016, 2019-2020 Michael Gratton * * This software is licensed under the GNU Lesser General Public License * (version 2.1 or later). See the COPYING file in this distribution. @@ -339,13 +339,10 @@ public class Application.MainWindow : [GtkChild] private Gtk.Grid info_bar_container; - [GtkChild] private Gtk.InfoBar offline_infobar; - [GtkChild] private Gtk.InfoBar cert_problem_infobar; - [GtkChild] private Gtk.InfoBar auth_problem_infobar; private Components.ProblemReportInfoBar? service_problem_infobar = null; @@ -529,6 +526,45 @@ public class Application.MainWindow : add_account(context); } + this.offline_infobar = new Components.InfoBar( + // Translators: An info bar status label + _("Working offline"), + // Translators: An info bar description label + _("You will not be able to send or receive email until re-connected.") + ); + this.offline_infobar.show_close_button = true; + this.offline_infobar.response.connect(on_offline_infobar_response); + + this.auth_problem_infobar = new Components.InfoBar( + // Translators: An info bar status label + _("Login problem"), + // Translators: An info bar description label + _("An account has reported an incorrect login or password.") + ); + // Translators: An info bar button label + var auth_retry = new Gtk.Button.with_label(_("Login")); + // Translators: An info bar button tool-tip + auth_retry.tooltip_text = _( + "Retry login, you will be prompted for your password" + ); + auth_retry.clicked.connect(on_auth_problem_retry); + this.auth_problem_infobar.get_action_area().add(auth_retry); + + this.cert_problem_infobar = new Components.InfoBar( + // Translators: An info bar status label + _("Security problem"), + // Translators: An info bar description label + _("An account has reported an untrusted server..") + ); + // Translators: An info bar button label + var cert_retry = new Gtk.Button.with_label(_("Check")); + // Translators: An info bar button tool-tip + cert_retry.tooltip_text = _( + "Check the security details for the connection" + ); + cert_retry.clicked.connect(on_cert_problem_retry); + this.cert_problem_infobar.get_action_area().add(cert_retry); + this.conversation_list_view.grab_focus(); } @@ -1919,7 +1955,6 @@ public class Application.MainWindow : return Gdk.EVENT_STOP; } - [GtkCallback] private void on_offline_infobar_response() { this.offline_infobar.hide(); update_infobar_frame(); @@ -1930,14 +1965,12 @@ public class Application.MainWindow : retry_service_problem(Geary.ClientService.Status.CONNECTION_FAILED); } - [GtkCallback] private void on_cert_problem_retry() { this.cert_problem_infobar.hide(); update_infobar_frame(); retry_service_problem(Geary.ClientService.Status.TLS_VALIDATION_FAILED); } - [GtkCallback] private void on_auth_problem_retry() { this.auth_problem_infobar.hide(); update_infobar_frame(); diff --git a/ui/application-main-window.ui b/ui/application-main-window.ui index 2166b836..981da65f 100644 --- a/ui/application-main-window.ui +++ b/ui/application-main-window.ui @@ -1,5 +1,5 @@ - +