Use Unicode in translatable strings
See https://developer.gnome.org/hig/stable/typography.html https://bugzilla.gnome.org/show_bug.cgi?id=776142
This commit is contained in:
parent
bc4c1e1579
commit
bfea6be048
13 changed files with 41 additions and 41 deletions
|
|
@ -17,7 +17,7 @@
|
|||
Conversations allow you to read a complete discussion without
|
||||
having to find and click from message to message.
|
||||
</_p>
|
||||
<_p>Geary's features include:</_p>
|
||||
<_p>Geary’s features include:</_p>
|
||||
<ul>
|
||||
<_li>Quick email account setup</_li>
|
||||
<_li>Shows related messages together in conversations</_li>
|
||||
|
|
|
|||
|
|
@ -778,31 +778,31 @@ public class AddEditPage : Gtk.Box {
|
|||
|
||||
string error_string = _("Unable to validate:\n");
|
||||
if (last_validation_result.is_all_set(Geary.Engine.ValidationResult.INVALID_NICKNAME))
|
||||
error_string += _(" • Invalid account nickname.\n");
|
||||
error_string += _(" • Invalid account nickname.\n");
|
||||
|
||||
if (last_validation_result.is_all_set(Geary.Engine.ValidationResult.EMAIL_EXISTS))
|
||||
error_string += _(" • Email address already added to Geary.\n");
|
||||
error_string += _(" • Email address already added to Geary.\n");
|
||||
|
||||
if (get_service_provider() == Geary.ServiceProvider.OTHER) {
|
||||
if (last_validation_result.is_all_set(Geary.Engine.ValidationResult.IMAP_CONNECTION_FAILED))
|
||||
error_string += _(" • IMAP connection error.\n");
|
||||
error_string += _(" • IMAP connection error.\n");
|
||||
|
||||
if (last_validation_result.is_all_set(Geary.Engine.ValidationResult.IMAP_CREDENTIALS_INVALID))
|
||||
error_string += _(" • IMAP username or password incorrect.\n");
|
||||
error_string += _(" • IMAP username or password incorrect.\n");
|
||||
|
||||
if (last_validation_result.is_all_set(Geary.Engine.ValidationResult.SMTP_CONNECTION_FAILED))
|
||||
error_string += _(" • SMTP connection error.\n");
|
||||
error_string += _(" • SMTP connection error.\n");
|
||||
|
||||
if (last_validation_result.is_all_set(Geary.Engine.ValidationResult.SMTP_CREDENTIALS_INVALID))
|
||||
error_string += _(" • SMTP username or password incorrect.\n");
|
||||
error_string += _(" • SMTP username or password incorrect.\n");
|
||||
} else {
|
||||
if (last_validation_result.is_all_set(Geary.Engine.ValidationResult.IMAP_CONNECTION_FAILED) ||
|
||||
last_validation_result.is_all_set(Geary.Engine.ValidationResult.SMTP_CONNECTION_FAILED))
|
||||
error_string += _(" • Connection error.\n");
|
||||
error_string += _(" • Connection error.\n");
|
||||
|
||||
if (last_validation_result.is_all_set(Geary.Engine.ValidationResult.IMAP_CREDENTIALS_INVALID) ||
|
||||
last_validation_result.is_all_set(Geary.Engine.ValidationResult.SMTP_CREDENTIALS_INVALID))
|
||||
error_string += _(" • Username or password incorrect.\n");
|
||||
error_string += _(" • Username or password incorrect.\n");
|
||||
}
|
||||
|
||||
label_error.label = "<span color=\"red\">" + error_string + "</span>";
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ public bool parse(string[] args) {
|
|||
string arg = args[ctr];
|
||||
|
||||
if (!arg.has_prefix(Geary.ComposedEmail.MAILTO_SCHEME)) {
|
||||
stdout.printf(_("Unrecognized command line option \"%s\"\n").printf(arg));
|
||||
stdout.printf(_("Unrecognized command line option “%s”\n").printf(arg));
|
||||
stdout.printf("\n%s", context.get_help(true, null));
|
||||
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -431,7 +431,7 @@ public class GearyController : Geary.BaseObject {
|
|||
|
||||
Gtk.ActionEntry mark_menu = { ACTION_MARK_AS_MENU, null, TRANSLATABLE, null, _("Mark conversation"),
|
||||
on_show_mark_menu };
|
||||
mark_menu.label = _("_Mark as...");
|
||||
mark_menu.label = _("_Mark as…");
|
||||
mark_menu.tooltip = MARK_MESSAGE_MENU_TOOLTIP_SINGLE;
|
||||
entries += mark_menu;
|
||||
|
||||
|
|
@ -1159,7 +1159,7 @@ public class GearyController : Geary.BaseObject {
|
|||
yield account.rebuild_async();
|
||||
} catch (Error err) {
|
||||
ErrorDialog errdialog = new ErrorDialog(main_window,
|
||||
_("Unable to rebuild database for \"%s\"").printf(account.information.id),
|
||||
_("Unable to rebuild database for “%s”").printf(account.information.id),
|
||||
_("Error during rebuild:\n\n%s").printf(err.message));
|
||||
errdialog.run();
|
||||
|
||||
|
|
@ -1193,7 +1193,7 @@ public class GearyController : Geary.BaseObject {
|
|||
private async void account_database_version_async(Geary.Account account) {
|
||||
ErrorDialog dialog = new ErrorDialog(main_window,
|
||||
_("Unable to open local mailbox for %s").printf(account.information.id),
|
||||
_("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\nPlease install the latest version of Geary and try again."));
|
||||
_("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\nPlease install the latest version of Geary and try again."));
|
||||
dialog.run();
|
||||
|
||||
this.application.exit(1);
|
||||
|
|
@ -1989,7 +1989,7 @@ public class GearyController : Geary.BaseObject {
|
|||
QuestionDialog ask_to_open = new QuestionDialog.with_checkbox(main_window,
|
||||
_("Are you sure you want to open these attachments?"),
|
||||
_("Attachments may cause damage to your system if opened. Only open files from trusted sources."),
|
||||
Stock._OPEN_BUTTON, Stock._CANCEL, _("Don't _ask me again"), false);
|
||||
Stock._OPEN_BUTTON, Stock._CANCEL, _("Don’t _ask me again"), false);
|
||||
if (ask_to_open.run() != Gtk.ResponseType.OK) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -2033,9 +2033,9 @@ public class GearyController : Geary.BaseObject {
|
|||
}
|
||||
|
||||
private bool do_overwrite_confirmation(File to_overwrite) {
|
||||
string primary = _("A file named \"%s\" already exists. Do you want to replace it?").printf(
|
||||
string primary = _("A file named “%s” already exists. Do you want to replace it?").printf(
|
||||
to_overwrite.get_basename());
|
||||
string secondary = _("The file already exists in \"%s\". Replacing it will overwrite its contents.").printf(
|
||||
string secondary = _("The file already exists in “%s”. Replacing it will overwrite its contents.").printf(
|
||||
to_overwrite.get_parent().get_basename());
|
||||
|
||||
ConfirmationDialog dialog = new ConfirmationDialog(main_window, primary, secondary, _("_Replace"), "destructive-action");
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ public class StatusBar : Gtk.Statusbar {
|
|||
switch (this) {
|
||||
case Message.OUTBOX_SENDING:
|
||||
/// Displayed in the space-limited status bar while a message is in the process of being sent.
|
||||
return _("Sending...");
|
||||
return _("Sending…");
|
||||
case Message.OUTBOX_SEND_FAILURE:
|
||||
/// Displayed in the space-limited status bar when a message fails to be sent due to error.
|
||||
return _("Error sending email");
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ public const string _DISCARD = _("_Discard");
|
|||
public const string _HELP = _("_Help");
|
||||
public const string _OPEN_BUTTON = _("_Open");
|
||||
public const string _PREFERENCES = _("_Preferences");
|
||||
public const string _PRINT_MENU = _("_Print...");
|
||||
public const string _PRINT_MENU = _("_Print…");
|
||||
public const string _QUIT = _("_Quit");
|
||||
public const string _REMOVE = _("_Remove");
|
||||
public const string _SAVE = _("_Save");
|
||||
|
|
|
|||
|
|
@ -1605,19 +1605,19 @@ public class ComposerWidget : Gtk.EventBox {
|
|||
FileQueryInfoFlags.NONE);
|
||||
} catch (Error e) {
|
||||
throw new AttachmentError.FILE(
|
||||
_("\"%s\" could not be found.").printf(target.get_path())
|
||||
_("“%s” could not be found.").printf(target.get_path())
|
||||
);
|
||||
}
|
||||
|
||||
if (target_info.get_file_type() == FileType.DIRECTORY) {
|
||||
throw new AttachmentError.FILE(
|
||||
_("\"%s\" is a folder.").printf(target.get_path())
|
||||
_("“%s” is a folder.").printf(target.get_path())
|
||||
);
|
||||
}
|
||||
|
||||
if (target_info.get_size() == 0){
|
||||
throw new AttachmentError.FILE(
|
||||
_("\"%s\" is an empty file.").printf(target.get_path())
|
||||
_("“%s” is an empty file.").printf(target.get_path())
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -1630,14 +1630,14 @@ public class ComposerWidget : Gtk.EventBox {
|
|||
e.message);
|
||||
|
||||
throw new AttachmentError.FILE(
|
||||
_("\"%s\" could not be opened for reading.").printf(target.get_path())
|
||||
_("“%s” could not be opened for reading.").printf(target.get_path())
|
||||
);
|
||||
}
|
||||
|
||||
if (disposition != Geary.Mime.DispositionType.INLINE) {
|
||||
if (!this.attached_files.add(target)) {
|
||||
throw new AttachmentError.DUPLICATE(
|
||||
_("\"%s\" already attached for delivery.").printf(target.get_path())
|
||||
_("“%s” already attached for delivery.").printf(target.get_path())
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -2419,7 +2419,7 @@ public class ComposerWidget : Gtk.EventBox {
|
|||
// ported to WebKit2 in Bug 728002.
|
||||
Gtk.Window window = new Gtk.Window();
|
||||
window.set_default_size(600, 600);
|
||||
window.set_title(_("%s - Composer Inspector").printf(GearyApplication.NAME));
|
||||
window.set_title(_("%s — Composer Inspector").printf(GearyApplication.NAME));
|
||||
Gtk.ScrolledWindow scrolled = new Gtk.ScrolledWindow(null, null);
|
||||
WebKit.WebView inspector_view = new WebKit.WebView();
|
||||
scrolled.add(inspector_view);
|
||||
|
|
|
|||
|
|
@ -195,7 +195,7 @@ public class ConversationWebView : StylishWebView {
|
|||
private unowned WebKit.WebView activate_inspector(WebKit.WebInspector inspector, WebKit.WebView target_view) {
|
||||
Gtk.Window window = new Gtk.Window();
|
||||
window.set_default_size(600, 600);
|
||||
window.set_title(_("%s - Conversation Inspector").printf(GearyApplication.NAME));
|
||||
window.set_title(_("%s — Conversation Inspector").printf(GearyApplication.NAME));
|
||||
Gtk.ScrolledWindow scrolled = new Gtk.ScrolledWindow(null, null);
|
||||
WebKit.WebView inspector_view = new WebKit.WebView();
|
||||
scrolled.add(inspector_view);
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ public class CertificateWarningDialog {
|
|||
|
||||
trust_label.label =
|
||||
"<b>"
|
||||
+_("Selecting \"Trust This Server\" or \"Always Trust This Server\" may cause your username and password to be transmitted insecurely.")
|
||||
+_("Selecting “Trust This Server” or “Always Trust This Server” may cause your username and password to be transmitted insecurely.")
|
||||
+ "</b>";
|
||||
trust_label.use_markup = true;
|
||||
|
||||
|
|
@ -49,14 +49,14 @@ public class CertificateWarningDialog {
|
|||
// could be a new or existing account
|
||||
dont_trust_label.label =
|
||||
"<b>"
|
||||
+ _("Selecting \"Don't Trust This Server\" will cause Geary not to access this server.")
|
||||
+ _("Selecting “Don’t Trust This Server” will cause Geary not to access this server.")
|
||||
+ "</b> "
|
||||
+ _("Geary will not add or update this email account.");
|
||||
} else {
|
||||
// a registered account
|
||||
dont_trust_label.label =
|
||||
"<b>"
|
||||
+ _("Selecting \"Don't Trust This Server\" will cause Geary to stop accessing this account.")
|
||||
+ _("Selecting “Don’t Trust This Server” will cause Geary to stop accessing this account.")
|
||||
+ "</b> "
|
||||
+ _("Geary will exit if you have no other open email accounts.");
|
||||
}
|
||||
|
|
@ -70,25 +70,25 @@ public class CertificateWarningDialog {
|
|||
StringBuilder builder = new StringBuilder();
|
||||
|
||||
if ((warnings & TlsCertificateFlags.UNKNOWN_CA) != 0)
|
||||
builder.append(BULLET + _("The server's certificate is not signed by a known authority") + "\n");
|
||||
builder.append(BULLET + _("The server’s certificate is not signed by a known authority") + "\n");
|
||||
|
||||
if ((warnings & TlsCertificateFlags.BAD_IDENTITY) != 0)
|
||||
builder.append(BULLET + _("The server's identity does not match the identity in the certificate") + "\n");
|
||||
builder.append(BULLET + _("The server’s identity does not match the identity in the certificate") + "\n");
|
||||
|
||||
if ((warnings & TlsCertificateFlags.EXPIRED) != 0)
|
||||
builder.append(BULLET + _("The server's certificate has expired") + "\n");
|
||||
builder.append(BULLET + _("The server’s certificate has expired") + "\n");
|
||||
|
||||
if ((warnings & TlsCertificateFlags.NOT_ACTIVATED) != 0)
|
||||
builder.append(BULLET + _("The server's certificate has not been activated") + "\n");
|
||||
builder.append(BULLET + _("The server’s certificate has not been activated") + "\n");
|
||||
|
||||
if ((warnings & TlsCertificateFlags.REVOKED) != 0)
|
||||
builder.append(BULLET + _("The server's certificate has been revoked and is now invalid") + "\n");
|
||||
builder.append(BULLET + _("The server’s certificate has been revoked and is now invalid") + "\n");
|
||||
|
||||
if ((warnings & TlsCertificateFlags.INSECURE) != 0)
|
||||
builder.append(BULLET + _("The server's certificate is considered insecure") + "\n");
|
||||
builder.append(BULLET + _("The server’s certificate is considered insecure") + "\n");
|
||||
|
||||
if ((warnings & TlsCertificateFlags.GENERIC_ERROR) != 0)
|
||||
builder.append(BULLET + _("An error has occurred processing the server's certificate") + "\n");
|
||||
builder.append(BULLET + _("An error has occurred processing the server’s certificate") + "\n");
|
||||
|
||||
return builder.str;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ public class Libmessagingmenu : NewMessagesIndicator {
|
|||
app.set_source_count(source_id, count);
|
||||
else
|
||||
app.append_source_with_count(source_id, null,
|
||||
_("%s - New Messages").printf(folder.account.information.nickname), count);
|
||||
_("%s — New Messages").printf(folder.account.information.nickname), count);
|
||||
|
||||
app.draw_attention(source_id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@
|
|||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="dont_trust_button">
|
||||
<property name="label" translatable="yes">_Don't Trust This Server</property>
|
||||
<property name="label" translatable="yes">_Don’t Trust This Server</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
</section>
|
||||
<section>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_Print...</attribute>
|
||||
<attribute name="label" translatable="yes">_Print…</attribute>
|
||||
<attribute name="action">eml.print</attribute>
|
||||
</item>
|
||||
<item>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
</section>
|
||||
<section id="context_menu_email">
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">Send New _Message...</attribute>
|
||||
<attribute name="label" translatable="yes">Send New _Message…</attribute>
|
||||
<attribute name="action">msg.open_link</attribute>
|
||||
</item>
|
||||
<item>
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
</section>
|
||||
<section id="context_menu_image">
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">Save _Image As...</attribute>
|
||||
<attribute name="label" translatable="yes">Save _Image As…</attribute>
|
||||
<attribute name="action">msg.save_image</attribute>
|
||||
</item>
|
||||
</section>
|
||||
|
|
@ -46,7 +46,7 @@
|
|||
</section>
|
||||
<section id="context_menu_inspector">
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_Inspect...</attribute>
|
||||
<attribute name="label" translatable="yes">_Inspect…</attribute>
|
||||
<attribute name="action">msg.open_inspector</attribute>
|
||||
</item>
|
||||
</section>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue