From d338572271205c1889c7803dfae1a437f33a48dc Mon Sep 17 00:00:00 2001 From: Yann Leboulanger Date: Sat, 4 Feb 2017 23:29:45 +0100 Subject: [PATCH] =?UTF-8?q?Update=20strings=20for=20better=20english.=20Th?= =?UTF-8?q?anks=20to=20Allan=20Nordh=C3=B8y=20for=20the=20suggestions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/gajim-remote.1 | 4 +- data/gajim.desktop.in.in | 2 +- data/gui/accounts_window.ui | 2 +- data/gui/history_window.ui | 2 +- data/gui/preferences_window.ui | 4 +- data/gui/roster_item_exchange_window.ui | 4 +- plugins/dbus_plugin/plugin.py | 6 +-- src/application.py | 2 +- src/chat_control.py | 4 +- src/chat_control_base.py | 2 +- src/command_system/mapping.py | 2 +- src/common/config.py | 25 ++++++------ src/common/connection.py | 8 ++-- src/common/connection_handlers_events.py | 4 +- src/common/helpers.py | 6 +-- src/config.py | 28 ++++++------- src/conversation_textview.py | 2 +- src/dataforms_widget.py | 6 +-- src/dialogs.py | 52 ++++++++++++------------ src/features_window.py | 2 +- src/filetransfers_window.py | 14 +++---- src/gajim-remote.py | 30 +++++++------- src/gajim.py | 4 +- src/gajim_themes_window.py | 6 +-- src/groupchat_control.py | 14 +++---- src/gtkgui_helpers.py | 2 +- src/gui_interface.py | 36 ++++++++-------- src/gui_menu_builder.py | 6 +-- src/history_manager.py | 14 +++---- src/htmltextview.py | 4 +- src/logind_listener.py | 2 +- src/message_window.py | 4 +- src/notify.py | 2 +- src/profile_window.py | 4 +- src/roster_window.py | 24 +++++------ src/statusicon.py | 4 +- src/tooltips.py | 4 +- src/vcard.py | 8 ++-- 38 files changed, 174 insertions(+), 175 deletions(-) diff --git a/data/gajim-remote.1 b/data/gajim-remote.1 index 81b1786ca..d08b5765e 100644 --- a/data/gajim-remote.1 +++ b/data/gajim-remote.1 @@ -57,13 +57,13 @@ Sets value of 'key' to 'value'. Writes the current state of Gajim preferences to the .config file .Ss remove_contact Ao jid Ac Bq account Removes contact from roster -.Ss send_chat_message Ao jid Ac Ao message Ac Bo pgp key Bc Bq account +.Ss send_chat_message Ao jid Ac Ao message Ac Bo PGP key Bc Bq account Sends new chat message to a contact in the roster. Both OpenPGP key and account are optional. If you want to set only 'account', without 'OpenPGP key', just set 'OpenPGP key' to ''. .Ss send_file Ao file Ac Ao jid Ac Bq account Sends file to a contact .Ss send_groupchat_message Ao room_jid Ac Ao message Ac Bq account Sends new message to a groupchat you've joined. -.Ss send_single_message Ao jid subject Ac Ao message Ac Bo pgp key Bc Bq account +.Ss send_single_message Ao jid subject Ac Ao message Ac Bo PGP key Bc Bq account Sends new single message to a contact in the roster. Both OpenPGP key and account are optional. If you want to set only 'account', without 'OpenPGP key', just set 'OpenPGP key' to ''. .Ss send_xml Ao xml Ac Bq account Sends custom XML diff --git a/data/gajim.desktop.in.in b/data/gajim.desktop.in.in index ea0b1da44..dcd235c57 100644 --- a/data/gajim.desktop.in.in +++ b/data/gajim.desktop.in.in @@ -3,7 +3,7 @@ Categories=Network;InstantMessaging;GTK;GNOME; _Name=Gajim _GenericName=Jabber IM Client _Comment=A GTK+ Jabber client -_Keywords=chat;messaging;im;jabber;xmpp;bonjour;voip; +_Keywords=chat;messaging;im;xmpp;bonjour;voip; Version=1.0 Exec=gajim Icon=gajim diff --git a/data/gui/accounts_window.ui b/data/gui/accounts_window.ui index db5e308ef..de0e541c6 100644 --- a/data/gui/accounts_window.ui +++ b/data/gui/accounts_window.ui @@ -621,7 +621,7 @@ - Receive conversations from other resources (If server supports it) + Receive conversations from other resources (provided the server has support for it) True True False diff --git a/data/gui/history_window.ui b/data/gui/history_window.ui index 8c612d275..99e3d3dcc 100644 --- a/data/gui/history_window.ui +++ b/data/gui/history_window.ui @@ -76,7 +76,7 @@ True False False - Searching only in the selected day + Only searching within selected day True 0.5 True diff --git a/data/gui/preferences_window.ui b/data/gui/preferences_window.ui index f1bf248c9..a8b667471 100644 --- a/data/gui/preferences_window.ui +++ b/data/gui/preferences_window.ui @@ -480,7 +480,7 @@ - Show icon when your messages are received + Notify by icon when your messages are received True True False @@ -2745,7 +2745,7 @@ to discover one from server. True True False - If checked, Gajim will keep logs for encrypted messages. Please note that when using E2E encryption the remote party has to agree on logging, else the messages will not be logged. + If checked, Gajim will keep logs for encrypted messages. Please note that when using End-to-End encryption the remote party has to agree on logging, else the messages will not be logged. True 0 True diff --git a/data/gui/roster_item_exchange_window.ui b/data/gui/roster_item_exchange_window.ui index 59c857bfa..930764d49 100644 --- a/data/gui/roster_item_exchange_window.ui +++ b/data/gui/roster_item_exchange_window.ui @@ -2,9 +2,7 @@ - - Message Body <currently unused, so it's hidden by default> - + False Roster Item Exchange diff --git a/plugins/dbus_plugin/plugin.py b/plugins/dbus_plugin/plugin.py index fa7842b16..562c9d69c 100644 --- a/plugins/dbus_plugin/plugin.py +++ b/plugins/dbus_plugin/plugin.py @@ -294,14 +294,14 @@ if dbus_support.supported: @dbus.service.method(INTERFACE, in_signature='ssss', out_signature='b') def send_chat_message(self, jid, message, keyID, account): '''Send chat 'message' to 'jid', using account (optional) 'account'. - if keyID is specified, encrypt the message with the pgp key ''' + if keyID is specified, encrypt the message with the PGP key ''' jid = self._get_real_jid(jid, account) return self._send_message(jid, message, keyID, account) @dbus.service.method(INTERFACE, in_signature='sssss', out_signature='b') def send_single_message(self, jid, subject, message, keyID, account): '''Send single 'message' to 'jid', using account (optional) 'account'. - if keyID is specified, encrypt the message with the pgp key ''' + if keyID is specified, encrypt the message with the PGP key ''' jid = self._get_real_jid(jid, account) return self._send_message(jid, message, keyID, account, type, subject) @@ -626,7 +626,7 @@ if dbus_support.supported: elif len(prim_contact.keyID) == 16: keyID = prim_contact.keyID[8:] if keyID: - contact_dict['openpgp'] = keyID + contact_dict['openPGP'] = keyID contact_dict['resources'] = dbus.Array([], signature='(sis)') for contact in contacts: resource_props = dbus.Struct((DBUS_STRING(contact.resource), diff --git a/src/application.py b/src/application.py index 61ce00455..4ab29f3be 100644 --- a/src/application.py +++ b/src/application.py @@ -56,7 +56,7 @@ class GajimApplication(Gtk.Application): 'history db and plugins)')) self.add_main_option('verbose', ord('v'), GLib.OptionFlags.NONE, GLib.OptionArg.NONE, - _('Print xml stanzas and other debug ' + _('Print XML stanzas and other debug ' 'information')) self.add_main_option('windev', ord('w'), GLib.OptionFlags.NONE, GLib.OptionArg.NONE, diff --git a/src/chat_control.py b/src/chat_control.py index d399043a6..669e025eb 100644 --- a/src/chat_control.py +++ b/src/chat_control.py @@ -366,8 +366,8 @@ class ChatControl(ChatControlBase): else: self._formattings_button.set_sensitive(False) if self.contact.supports(NS_XHTML_IM): - self._formattings_button.set_tooltip_text(_('Formattings are ' - 'not available when GPG is active')) + self._formattings_button.set_tooltip_text(_('Formatting is not ' + 'available so long as GPG is active')) else: self._formattings_button.set_tooltip_text(_('This contact does ' 'not support HTML')) diff --git a/src/chat_control_base.py b/src/chat_control_base.py index b487a6082..b38b6874b 100644 --- a/src/chat_control_base.py +++ b/src/chat_control_base.py @@ -1004,7 +1004,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools): if not contact or contact.sub not in ('both', 'to'): prim_text = _('Really send file?') sec_text = _('If you send a file to %s, he/she will know your ' - 'real Jabber ID.') % gc_contact.name + 'real JID.') % gc_contact.name dialog = dialogs.NonModalConfirmationDialog(prim_text, sec_text, on_response_ok=(_on_ok, gc_contact)) dialog.popup() diff --git a/src/command_system/mapping.py b/src/command_system/mapping.py index 7e224907a..e2cd0c47b 100644 --- a/src/command_system/mapping.py +++ b/src/command_system/mapping.py @@ -258,7 +258,7 @@ def adapt_arguments(command, arguments, args, opts): for arg, (spec_key, spec_value) in zip(overlapped, spec_kwargs): opts.append((spec_key, arg)) else: - raise CommandError(_("Excessive arguments"), command) + raise CommandError(_("Too many arguments"), command) # Detect every switch and ensure it will not receive any arguments. # Normally this does not happen unless overlapping is enabled. diff --git a/src/common/config.py b/src/common/config.py index e46b20b10..5ce3f7981 100644 --- a/src/common/config.py +++ b/src/common/config.py @@ -177,10 +177,10 @@ class Config: 'notify_on_new_gmail_email_command': [ opt_str, '', _('Specify the command to run when new mail arrives, e.g.: /usr/bin/getmail -q') ], 'use_gpg_agent': [ opt_bool, False ], 'change_roster_title': [ opt_bool, True, _('Add * and [n] in roster title?')], - 'restore_lines': [opt_int, 4, _('How many lines to remember from previous conversation when a chat tab/window is reopened?')], + 'restore_lines': [opt_int, 4, _('Amount of previous messages to include when reopening a chat')], 'restore_timeout': [opt_int, 60, _('How many minutes should last lines from previous conversation last.')], 'muc_restore_lines': [opt_int, 20, _('How many lines to request from server when entering a groupchat. -1 means no limit')], - 'muc_restore_timeout': [opt_int, 60, _('How many minutes back to request logs when entering a groupchat. -1 means no limit')], + 'muc_restore_timeout': [opt_int, 60, _('Minutes of backlog to request when entering a groupchat. -1 means no limit')], 'muc_autorejoin_timeout': [opt_int, 1, _('How many seconds to wait before trying to autorejoin to a conference you are being disconnected from. Set to 0 to disable autorejoining.')], 'muc_autorejoin_on_kick': [opt_bool, False, _('Should autorejoin be activated when we are being kicked from a conference?')], 'send_on_ctrl_enter': [opt_bool, False, _('Send message on Ctrl+Enter and with Enter make new line (Mirabilis ICQ Client default behaviour).')], @@ -198,8 +198,8 @@ class Config: 'autodetect_browser_mailer': [opt_bool, True, '', True], 'print_ichat_every_foo_minutes': [opt_int, 5, _('When not printing time for every message (print_time==sometimes), print it every x minutes.')], 'confirm_close_muc': [opt_bool, True, _('Ask before closing a group chat tab/window.')], - 'confirm_close_muc_rooms': [opt_str, '', _('Always ask before closing group chat tab/window in this space separated list of group chat JIDs.')], - 'noconfirm_close_muc_rooms': [opt_str, '', _('Never ask before closing group chat tab/window in this space separated list of group chat JIDs.')], + 'confirm_close_muc_rooms': [opt_str, '', _('Always ask for confirmation before closing groupchats with any of the JIDs on this space separated list.')], + 'noconfirm_close_muc_rooms': [opt_str, '', _('Never ask for confirmation before closing groupchats with any of the JIDs on this space separated list.')], 'confirm_close_multiple_tabs': [opt_bool, True, _('Ask before closing tabbed chat window if there are controls that can lose data (chat, private chat, groupchat that will not be minimized)')], 'notify_on_file_complete': [opt_bool, True], 'file_transfers_port': [opt_int, 28011], @@ -294,7 +294,7 @@ class Config: 'attach_notifications_to_systray': [opt_bool, False, _('If True, notification windows from notification-daemon will be attached to notification icon.')], 'check_idle_every_foo_seconds': [opt_int, 2, _('Choose interval between 2 checks of idleness.')], 'uri_schemes': [opt_str, 'aaa:// aaas:// acap:// cap:// cid: crid:// data: dav: dict:// dns: fax: file:/ ftp:// geo: go: gopher:// h323: http:// https:// iax: icap:// im: imap:// info: ipp:// iris: iris.beep: iris.xpc: iris.xpcs: iris.lwz: ldap:// mid: modem: msrp:// msrps:// mtqp:// mupdate:// news: nfs:// nntp:// opaquelocktoken: pop:// pres: prospero:// rtsp:// service: shttp:// sip: sips: sms: snmp:// soap.beep:// soap.beeps:// tag: tel: telnet:// tftp:// thismessage:/ tip:// tv: urn:// vemmi:// xmlrpc.beep:// xmlrpc.beeps:// z39.50r:// z39.50s:// about: apt: cvs:// daap:// ed2k:// feed: fish:// git:// iax2: irc:// ircs:// ldaps:// magnet: mms:// rsync:// ssh:// svn:// sftp:// smb:// webcal://', _('Valid uri schemes. Only schemes in this list will be accepted as "real" uri. (mailto and xmpp are handled separately)'), True], - 'ask_offline_status_on_connection': [ opt_bool, False, _('Ask offline status message to all offline contacts when connection to an account is established. WARNING: This causes a lot of requests to be sent!') ], + 'ask_offline_status_on_connection': [ opt_bool, False, _('Request offline status messages from all contacts upon connecting. WARNING: This causes a lot of requests to be sent!') ], 'shell_like_completion': [ opt_bool, False, _('If True, completion in groupchats will be like a shell auto-completion')], 'show_self_contact': [opt_str, 'when_other_resource', _('When is self contact row displayed. Can be "always", "when_other_resource" or "never"'), True], 'audio_input_device': [opt_str, 'autoaudiosrc ! volume name=gajim_vol'], @@ -306,8 +306,8 @@ class Config: 'video_see_self': [opt_bool, True, _('If True, You will also see your webcam')], 'audio_input_volume': [opt_int, 50], 'audio_output_volume': [opt_int, 50], - 'use_stun_server': [opt_bool, False, _('If True, Gajim will try to use a STUN server when using jingle. The one in "stun_server" option, or the one given by the jabber server.')], - 'stun_server': [opt_str, '', _('STUN server to use when using jingle')], + 'use_stun_server': [opt_bool, False, _('If True, Gajim will try to use a STUN server when using Jingle. The one in "stun_server" option, or the one given by the XMPP server.')], + 'stun_server': [opt_str, '', _('STUN server to use when using Jingle')], 'show_affiliation_in_groupchat': [opt_bool, True, _('If True, Gajim will show affiliation of groupchat occupants by adding a colored square to the status icon')], 'global_proxy': [opt_str, '', _('Proxy used for all outgoing connections if the account does not have a specific proxy configured')], 'ignore_incoming_attention': [opt_bool, False, _('If True, Gajim will ignore incoming attention requestd ("wizz").')], @@ -347,6 +347,7 @@ class Config: 'keyname': [ opt_str, '', '', True ], 'enable_esessions': [opt_bool, True, _('Enable ESessions encryption for this account.'), True], 'autonegotiate_esessions': [opt_bool, False, _('Should Gajim automatically start an encrypted session when possible?')], + #keep tls, ssl and plain lowercase 'connection_types': [ opt_str, 'tls', _('Ordered list (space separated) of connection type to try. Can contain tls, ssl or plain')], 'tls_version': [ opt_str, '1.0', '' ], 'cipher_list': [ opt_str, 'HIGH:!aNULL:RC4-SHA', '' ], @@ -363,7 +364,7 @@ class Config: 'custom_host': [ opt_str, '', '', True ], 'sync_with_global_status': [ opt_bool, False, ], 'no_log_for': [ opt_str, '', _('Space separated list of JIDs for which you do not want to store logs. You can also add account name to log nothing for this account.')], - 'sync_logs_with_server': [ opt_bool, True, _('Download logs stored on server on Gajim startup if server supports XEP-0136 or XEP-0313')], + 'sync_logs_with_server': [ opt_bool, True, _('On startup, Gajim will download logs stored on server, provided it supports XEP-0136 or XEP-0313')], 'allow_no_log_for': [ opt_str, '', _('Space separated list of JIDs for which you accept to not log conversations if he does not want to.')], 'non_minimized_gc': [ opt_str, '' ], 'attached_gpg_keys': [ opt_str, '' ], @@ -413,9 +414,9 @@ class Config: 'last_archiving_time': [opt_str, '1970-01-01T00:00:00Z', _('Last time we syncronized with logs from server.')], 'enable_message_carbons': [ opt_bool, True, _('If enabled and if server supports this feature, Gajim will receive messages sent and received by other resources.')], 'ft_send_local_ips': [ opt_bool, True, _('If enabled, Gajim will send your local IPs so your contact can connect to your machine to transfer files.')], - 'oauth2_refresh_token': [ opt_str, '', _('Latest token for Oauth2 authentication.')], - 'oauth2_client_id': [ opt_str, '0000000044077801', _('client_id for Oauth2 authentication.')], - 'oauth2_redirect_url': [ opt_str, 'https%3A%2F%2Fgajim.org%2Fmsnauth%2Findex.cgi', _('redirect_url for Oauth2 authentication.')], + 'oauth2_refresh_token': [ opt_str, '', _('Latest token for OAuth 2.0 authentication.')], + 'oauth2_client_id': [ opt_str, '0000000044077801', _('client_id for OAuth 2.0 authentication.')], + 'oauth2_redirect_url': [ opt_str, 'https%3A%2F%2Fgajim.org%2Fmsnauth%2Findex.cgi', _('redirect_url for OAuth 2.0 authentication.')], 'opened_chat_controls': [opt_str, '', _('Space separated list of JIDs for which we want to re-open a chat window on next startup.')], 'last_mam_id': [opt_str, '', _('Last MAM id we are syncronized with')], }, {}), @@ -486,7 +487,7 @@ class Config: 'rooms': ({ 'speller_language': [ opt_str, '', _('Language for which we want to check misspelled words')], 'muc_restore_lines': [opt_int, -2, _('How many lines to request from server when entering a groupchat. -1 means no limit, -2 means global value')], - 'muc_restore_timeout': [opt_int, -2, _('How many minutes back to request logs when entering a groupchat. -1 means no limit, -2 means global value')], + 'muc_restore_timeout': [opt_int, -2, _('Minutes of backlog to request when entering a groupchat. -1 means no limit, -2 means global value')], }, {}), 'plugins': ({ 'active': [opt_bool, False, _('State whether plugins should be activated on startup (this is saved on Gajim exit). This option SHOULD NOT be used to (de)activate plug-ins. Use GUI instead.')], diff --git a/src/common/connection.py b/src/common/connection.py index 644574423..b2ee7d0f4 100644 --- a/src/common/connection.py +++ b/src/common/connection.py @@ -276,8 +276,8 @@ class CommonConnection: new_list.append(self.check_jid(j)) except helpers.InvalidFormat: gajim.nec.push_incoming_event(InformationEvent(None, - conn=self, level='error', pri_txt=_('Invalid Jabber ' - 'ID'), sec_txt=_('It is not possible to send a message ' + conn=self, level='error', pri_txt=_('Invalid JID'), + sec_txt=_('It is not possible to send a message ' 'to %s, this JID is not valid.') % j)) return fjid = new_list @@ -286,7 +286,7 @@ class CommonConnection: jid = self.check_jid(jid) except helpers.InvalidFormat: gajim.nec.push_incoming_event(InformationEvent(None, conn=self, - level='error', pri_txt=_('Invalid Jabber ID'), sec_txt=_( + level='error', pri_txt=_('Invalid JID'), sec_txt=_( 'It is not possible to send a message to %s, this JID is not ' 'valid.') % jid)) return @@ -1117,7 +1117,7 @@ class Connection(CommonConnection, ConnectionHandlers): def connect(self, data=None): """ - Start a connection to the Jabber server + Start a connection to the XMPP server Returns connection, and connection type ('tls', 'ssl', 'plain', '') data MUST contain hostname, usessl, proxy, use_custom_host, custom_host (if diff --git a/src/common/connection_handlers_events.py b/src/common/connection_handlers_events.py index e8cbe7557..a16ef0c16 100644 --- a/src/common/connection_handlers_events.py +++ b/src/common/connection_handlers_events.py @@ -1153,7 +1153,7 @@ class MessageReceivedEvent(nec.NetworkIncomingEvent, HelperEvent): self.get_jid_resource() except helpers.InvalidFormat: gajim.nec.push_incoming_event(InformationEvent(None, conn=self.conn, - level='error', pri_txt=_('Invalid Jabber ID'), + level='error', pri_txt=_('Invalid JID'), sec_txt=_('A message from a non-valid JID arrived, it has been ' 'ignored.'))) return @@ -1199,7 +1199,7 @@ class MessageReceivedEvent(nec.NetworkIncomingEvent, HelperEvent): except helpers.InvalidFormat: gajim.nec.push_incoming_event(InformationEvent(None, conn=self.conn, level='error', - pri_txt=_('Invalid Jabber ID'), + pri_txt=_('Invalid JID'), sec_txt=_('A message from a non-valid JID arrived, it ' 'has been ignored.'))) return diff --git a/src/common/helpers.py b/src/common/helpers.py index 341fbfd95..38fc4f12c 100644 --- a/src/common/helpers.py +++ b/src/common/helpers.py @@ -383,7 +383,7 @@ def get_uf_chatstate(chatstate): elif chatstate == 'inactive': return _('is doing something else') elif chatstate == 'composing': - return _('is composing a message...') + return _('is composing a message…') elif chatstate == 'paused': #paused means he or she was composing but has stopped for a while return _('paused composing a message') @@ -498,7 +498,7 @@ def reduce_chars_newlines(text, max_chars = 0, max_lines = 0): """ def _cut_if_long(string): if len(string) > max_chars: - string = string[:max_chars - 3] + '...' + string = string[:max_chars - 3] + '…' return string if max_lines == 0: @@ -511,7 +511,7 @@ def reduce_chars_newlines(text, max_chars = 0, max_lines = 0): if lines: reduced_text = '\n'.join(lines) if reduced_text != text: - reduced_text += '...' + reduced_text += '…' else: reduced_text = '' return reduced_text diff --git a/src/config.py b/src/config.py index d21029587..48abbf212 100644 --- a/src/config.py +++ b/src/config.py @@ -1877,7 +1877,7 @@ class AccountsWindow: jid = gajim.config.get_per('accounts', account, 'hostname') else: self.xml.get_object('anonymous_checkbutton1').set_active(False) - self.xml.get_object('jid_label1').set_text(_('Jabber ID:')) + self.xml.get_object('jid_label1').set_text(_('JID:')) savepass = gajim.config.get_per('accounts', account, 'savepass') save_password = self.xml.get_object('save_password_checkbutton1') save_password.set_sensitive(True) @@ -2173,7 +2173,7 @@ class AccountsWindow: jid = helpers.parse_jid(jid) except helpers.InvalidFormat as s: if not widget.is_focus(): - pritext = _('Invalid Jabber ID') + pritext = _('Invalid JID') dialogs.ErrorDialog(pritext, str(s), transient_for=self.window) GLib.idle_add(lambda: widget.grab_focus()) return True @@ -2182,9 +2182,9 @@ class AccountsWindow: if len(jid_splited) != 2 and not gajim.config.get_per('accounts', self.current_account, 'anonymous_auth'): if not widget.is_focus(): - pritext = _('Invalid Jabber ID') + pritext = _('Invalid JID') sectext = \ - _('A Jabber ID must be in the form "user@servername".') + _('A JID must be in the form "user@servername".') dialogs.ErrorDialog(pritext, sectext, transient_for=self.window) GLib.idle_add(lambda: widget.grab_focus()) return True @@ -2250,7 +2250,7 @@ class AccountsWindow: resource = helpers.parse_resource(resource) except helpers.InvalidFormat as s: if not widget.is_focus(): - pritext = _('Invalid Jabber ID') + pritext = _('Invalid JID') dialogs.ErrorDialog(pritext, str(s), transient_for=self.window) GLib.idle_add(lambda: widget.grab_focus()) return True @@ -2507,7 +2507,7 @@ class AccountsWindow: return if not gajim.connections[self.current_account].vcard_supported: - dialogs.ErrorDialog(_("Your server doesn't support vCard"), + dialogs.ErrorDialog(_("Your server does not have vCard support"), _("Your server can't save your personal information."), transient_for=self.window) return @@ -2949,17 +2949,17 @@ class GroupchatConfigWindow: def on_add_button_clicked(self, widget, affiliation): if affiliation == 'outcast': - title = _('Banning...') + title = _('Banning…') #You can move '\n' before user@domain if that line is TOO BIG prompt = _('Whom do you want to ban?\n\n') elif affiliation == 'member': - title = _('Adding Member...') + title = _('Adding Member…') prompt = _('Whom do you want to make a member?\n\n') elif affiliation == 'owner': - title = _('Adding Owner...') + title = _('Adding Owner…') prompt = _('Whom do you want to make an owner?\n\n') else: - title = _('Adding Administrator...') + title = _('Adding Administrator…') prompt = _('Whom do you want to make an administrator?\n\n') prompt += _('Can be one of the following:\n' '1. user@domain/resource (only that resource matches).\n' @@ -3719,7 +3719,7 @@ class AccountCreationWizardWindow: try: jid = helpers.parse_jid(jid) except helpers.InvalidFormat as s: - pritext = _('Invalid Jabber ID') + pritext = _('Invalid JID') dialogs.ErrorDialog(pritext, str(s)) return @@ -3820,7 +3820,7 @@ class AccountCreationWizardWindow: self.is_form) self.xml.get_object('form_vbox').remove(self.data_form_widget) self.xml.get_object('progressbar_label').set_markup( - 'Account is being created\n\nPlease wait...') + 'Account is being created\n\nPlease wait…') self.notebook.set_current_page(5) # show creating page self.back_button.hide() self.forward_button.hide() @@ -3899,8 +3899,8 @@ class AccountCreationWizardWindow: 'hostname': hostname, 'error': obj.ssl_msg}) if obj.errnum in (18, 27): text = _('Add this certificate to the list of trusted ' - 'certificates.\nSHA1 fingerprint of the certificate:\n%s' - '\nSHA256 fingerprint of the certificate:\n%s') \ + 'certificates.\nSHA-1 fingerprint of the certificate:\n%s' + '\nSHA-256 fingerprint of the certificate:\n%s') \ % (obj.ssl_fingerprint_sha1, obj.ssl_fingerprint_sha256) self.xml.get_object('ssl_checkbutton').set_label(text) else: diff --git a/src/conversation_textview.py b/src/conversation_textview.py index 900cd807c..054c92e0a 100644 --- a/src/conversation_textview.py +++ b/src/conversation_textview.py @@ -1294,7 +1294,7 @@ class ConversationTextview(GObject.GObject): index, insert_mark, old_txt = \ self.correct_message(correct_id, kind, name) self.corrected_text_list[msg_stanza_id] = \ - 'Message was corrected. Last message was:\n{}' \ + 'Message corrected. Previous message:\n{}' \ .format(GLib.markup_escape_text(old_txt)) corrected = True except TypeError: diff --git a/src/dataforms_widget.py b/src/dataforms_widget.py index 19117325f..3f087381a 100644 --- a/src/dataforms_widget.py +++ b/src/dataforms_widget.py @@ -639,12 +639,12 @@ class SingleForm(Gtk.Table, object): try: newtext = helpers.parse_jid(newtext) except helpers.InvalidFormat as s: - dialogs.ErrorDialog(_('Invalid Jabber ID'), str(s)) + dialogs.ErrorDialog(_('Invalid JID'), str(s)) return if newtext in field.values: dialogs.ErrorDialog( - _('Jabber ID already in list'), - _('The Jabber ID you entered is already in the list. Choose another one.')) + _('JID already in list'), + _('The JID you entered is already in the list. Choose another one.')) GLib.idle_add(treeview.set_cursor, path) return model[path][0]=newtext diff --git a/src/dialogs.py b/src/dialogs.py index 494e1bb99..06a781146 100644 --- a/src/dialogs.py +++ b/src/dialogs.py @@ -92,7 +92,7 @@ class EditGroupsDialog: self.xml.get_object('nickname_label').set_markup( _('Contact name: %s') % contact.get_shown_name()) self.xml.get_object('jid_label').set_markup( - _('Jabber ID: %s') % contact.jid) + _('JID: %s') % contact.jid) else: self.xml.get_object('nickname_label').set_no_show_all(True) self.xml.get_object('nickname_label').hide() @@ -851,7 +851,7 @@ class AddNewContactWindow: Class for AddNewContactWindow """ - uid_labels = {'jabber': _('Jabber ID:'), + uid_labels = {'jabber': _('JID:'), 'aim': _('AIM Address:'), 'gadu-gadu': _('GG Number:'), 'icq': _('ICQ Number:'), @@ -936,11 +936,11 @@ class AddNewContactWindow: self.protocol_combobox.pack_start(cell, True) self.protocol_combobox.add_attribute(cell, 'text', 0) self.protocol_combobox.set_model(liststore) - uf_type = {'jabber': 'Jabber', 'aim': 'AIM', 'gadu-gadu': 'Gadu Gadu', + uf_type = {'jabber': 'XMPP', 'aim': 'AIM', 'gadu-gadu': 'Gadu Gadu', 'icq': 'ICQ', 'msn': 'MSN', 'yahoo': 'Yahoo'} # Jabber as first img = gajim.interface.jabber_state_images['16']['online'] - liststore.append(['Jabber', img.get_pixbuf(), 'jabber']) + liststore.append(['XMPP', img.get_pixbuf(), 'jabber']) for type_ in self.agents: if type_ == 'jabber': continue @@ -1305,7 +1305,7 @@ class AboutDialog(Gtk.AboutDialog): Gtk.get_minor_version(), Gtk.get_micro_version()) gobject_ver = self.tuple2str(GObject.pygobject_version) nbxmpp_ver = nbxmpp.__version__ - self.set_comments('%s\n%s %s\n%s %s\n%s %s' % (_('A GTK+ Jabber/XMPP client'), + self.set_comments('%s\n%s %s\n%s %s\n%s %s' % (_('A GTK+ XMPP client'), _('GTK+ Version:'), gtk_ver, _('PyGobject Version:'), gobject_ver, _('python-nbxmpp Version:'), nbxmpp_ver)) self.set_website('https://gajim.org/') @@ -1875,10 +1875,9 @@ class PlainConnectionDialog(ConfirmationDialogDoubleCheck): def __init__(self, account, on_ok, on_cancel): pritext = _('Insecure connection') sectext = _('You are about to connect to the account %(account)s ' - '(%(server)s) with an insecure connection. This means all your ' - 'conversations will be exchanged unencrypted. This type of ' - 'connection is really discouraged.\nAre you sure you want to do ' - 'that?') % {'account': account, + '(%(server)s) insecurely. This means conversations will not be ' + 'encrypted, and is strongly discouraged.\nAre you sure you want ' + 'to do that?') % {'account': account, 'server': gajim.get_hostname_from_account(account)} checktext1 = _('Yes, I really want to connect insecurely') tooltip1 = _('Gajim will NOT connect unless you check this box') @@ -2662,14 +2661,14 @@ class JoinGroupchatWindow: return user, server, resource = helpers.decompose_jid(room_jid) if not user or not server or resource: - ErrorDialog(_('Invalid group chat Jabber ID'), - _('Please enter the group chat Jabber ID as room@server.')) + ErrorDialog(_('Invalid group chat JID'), + _('Please enter the group chat JID as room@server.')) return try: room_jid = helpers.parse_jid(room_jid) except Exception: - ErrorDialog(_('Invalid group chat Jabber ID'), - _('The group chat Jabber ID contains invalid characters.')) + ErrorDialog(_('Invalid group chat JID'), + _('The group chat JID contains invalid characters.')) return if gajim.contacts.get_contact(self.account, room_jid) and \ @@ -2851,9 +2850,10 @@ class NewChatDialog(InputDialog): title = _('Start Chat with account %s') % account else: title = _('Start Chat') - prompt_text = _('Fill in the nickname or the Jabber ID of the contact you would like\nto send a chat message to:') + prompt_text = _('Fill in the nickname or the JID of the contact you ' + 'would like\nto send a chat message to:') InputDialog.__init__(self, title, prompt_text, is_modal=False) - self.input_entry.set_placeholder_text(_('Nickname / Jabber ID')) + self.input_entry.set_placeholder_text(_('Nickname / JID')) self.completion_dict = {} liststore = gtkgui_helpers.get_completion_liststore(self.input_entry) @@ -3299,7 +3299,7 @@ class SingleMessageWindow: try: to_whom_jid = helpers.parse_jid(to_whom_jid) except helpers.InvalidFormat: - ErrorDialog(_('Invalid Jabber ID'), + ErrorDialog(_('Invalid JID'), _('It is not possible to send a message to %s, this JID is not ' 'valid.') % to_whom_jid) return True @@ -3573,7 +3573,7 @@ class RosterItemExchangeWindow: self.items_list_treeview.insert_column_with_attributes(-1, title, renderer1, active=0) renderer2 = Gtk.CellRendererText() - self.items_list_treeview.insert_column_with_attributes(-1, _('Jabber ID'), + self.items_list_treeview.insert_column_with_attributes(-1, _('JID'), renderer2, text=1) renderer3 = Gtk.CellRendererText() self.items_list_treeview.insert_column_with_attributes(-1, _('Name'), @@ -4243,7 +4243,7 @@ class ItemArchiving313PreferencesWindow: for widget in ('jid_entry', 'pref_cb'): setattr(self, widget, self.xml.get_object(widget)) - self.window.set_title(_('Add Jabber ID')) + self.window.set_title(_('Add JID')) self.pref_cb.set_active(0) self.window.show_all() self.xml.connect_signals(self) @@ -5334,7 +5334,7 @@ class ESessionInfoWindow: '%s' % verification_status) self.xml.get_object('dialog-action_area1').set_no_show_all(True) - self.button_label.set_text(_('Verify again...')) + self.button_label.set_text(_('Verify again…')) else: if self.session.control: self.session.control._show_lock_image(True, 'E2E', True, @@ -5347,7 +5347,7 @@ class ESessionInfoWindow: self.xml.get_object('verification_status_label').set_markup( '%s' % verification_status) - self.button_label.set_text(_('Verify...')) + self.button_label.set_text(_('Verify…')) path = gtkgui_helpers.get_icon_path(security_image, 32) self.security_image.set_from_file(path) @@ -5409,13 +5409,13 @@ class GPGInfoWindow: if error: verification_status = _('''Contact's identity NOT verified''') info = _('OpenPGP key is assigned to this contact, but you ' - 'do not trust his key, so message cannot be ' - 'encrypted. Use your OpenPGP client to trust this key.') + 'do not trust their key, so message cannot be ' + 'encrypted. Use your OpenPGP client to trust their key.') image = 'security-low' else: verification_status = _('''Contact's identity verified''') info = _('OpenPGP Key is assigned to this contact, and you ' - 'trust his key, so messages will be encrypted.') + 'trust their key, so messages will be encrypted.') image = 'security-high' status_label.set_markup('%s' % \ @@ -5609,7 +5609,7 @@ Issued on: %(io)s Expires on: %(eo)s Fingerprint -SHA1 Fingerprint: %(sha1)s +SHA-1 Fingerprint: %(sha1)s SHA256 Fingerprint: %(sha256)s ''') % { @@ -5641,7 +5641,7 @@ class CheckFingerprintDialog(YesNoDialog): checktext=checktext, on_response_yes=on_response_yes, on_response_no=on_response_no) self.set_title(_('SSL Certificate Verification for %s') % account) - b = Gtk.Button(label=_('View cert...')) + b = Gtk.Button(label=_('View cert…')) b.connect('clicked', self.on_cert_clicked) b.show_all() area = self.get_action_area() @@ -5658,7 +5658,7 @@ class SSLErrorDialog(ConfirmationDialogDoubleCheck): ConfirmationDialogDoubleCheck.__init__(self, pritext, sectext, checktext1, checktext2, on_response_ok=on_response_ok, on_response_cancel=on_response_cancel, is_modal=False) - b = Gtk.Button(_('View cert...')) + b = Gtk.Button(_('View cert…')) b.connect('clicked', self.on_cert_clicked) b.show_all() area = self.get_action_area() diff --git a/src/features_window.py b/src/features_window.py index 23ea84897..f28f5ab3c 100644 --- a/src/features_window.py +++ b/src/features_window.py @@ -59,7 +59,7 @@ class FeaturesWindow: _('Requires python-dbus.'), _('Feature not available under Windows.')), _('OpenPGP message encryption'): (self.gpg_available, - _('Encrypting chat messages with OpenPGP keys.'), + _('Ability to encrypting chat messages with OpenPGP.'), _('Requires gpg and python-gnupg (http://code.google.com/p/python-gnupg/).'), _('Requires gpg.exe in PATH.')), _('Network-manager'): (self.network_manager_available, diff --git a/src/filetransfers_window.py b/src/filetransfers_window.py index 9537fff6b..b27230803 100644 --- a/src/filetransfers_window.py +++ b/src/filetransfers_window.py @@ -280,8 +280,8 @@ class FileTransfersWindow: else: file_name = file_props.name dialogs.YesNoDialog(('File transfer error'), - _('The file %(file)s has been fully received, but it seems to be ' - 'wrongly received.\nDo you want to reload it?') % \ + _('The file %(file)s has been received, but it seems to have ' + 'been damaged along the way.\nDo you want to download it again?') % \ {'file': file_name}, on_response_yes=(on_yes, jid, file_props, account), type_=Gtk.MessageType.ERROR) @@ -308,7 +308,7 @@ class FileTransfersWindow: gajim.config.set('last_send_dir', file_dir) dialog.destroy() - dialog = dialogs.FileChooserDialog(_('Choose File to Send...'), + dialog = dialogs.FileChooserDialog(_('Choose File to Send…'), Gtk.FileChooserAction.OPEN, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL), Gtk.ResponseType.OK, True, # select multiple true as we can select many files to send @@ -338,8 +338,8 @@ class FileTransfersWindow: Start the real transfer(upload) of the file """ if gtkgui_helpers.file_is_locked(file_path): - pritext = _('Gajim cannot access this file') - sextext = _('This file is being used by another process.') + pritext = _('Gajim can not read this file') + sextext = _('Another process is using this file.') dialogs.ErrorDialog(pritext, sextext) return @@ -424,7 +424,7 @@ class FileTransfersWindow: gajim.connections[account].send_file_rejection(file_props) dialog2 = dialogs.FileChooserDialog( - title_text=_('Save File as...'), + title_text=_('Save File as…'), action=Gtk.FileChooserAction.SAVE, buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_SAVE, Gtk.ResponseType.OK), @@ -494,7 +494,7 @@ class FileTransfersWindow: self.model.set(iter_, C_PULSE, GLib.MAXINT32) elif status == 'computing': self.model.set(iter_, C_PULSE, 1) - text = _('Checking file...') + '\n' + text = _('Checking file…') + '\n' received_size = int(file_props.received_len) full_size = file_props.size text += helpers.convert_bytes(received_size) + '/' + \ diff --git a/src/gajim-remote.py b/src/gajim-remote.py index 9c730f9f7..d48adb228 100644 --- a/src/gajim-remote.py +++ b/src/gajim-remote.py @@ -92,8 +92,7 @@ class GajimRemote: [] ], 'list_contacts': [ - _('Prints a list of all contacts in the roster. Each contact ' - 'appears on a separate line'), + _('Lists all contacts in roster, one for each line'), [ (Q_('?CLI:account'), _('show only contacts of the given account'), False) @@ -105,7 +104,7 @@ class GajimRemote: [] ], 'change_status': [ - _('Changes the status of account or accounts'), + _('Changes the status of account(s)'), [ #offline, online, chat, away, xa, dnd, invisible should not be translated (Q_('?CLI:status'), _('one of: offline, online, chat, away, xa, dnd, invisible. If not set, use account\'s previous status'), False), @@ -116,7 +115,7 @@ class GajimRemote: ] ], 'set_priority': [ - _('Changes the priority of account or accounts'), + _('Changes the priority of account(s)'), [ (Q_('?CLI:priority'), _('priority you want to give to the account'), True), @@ -144,21 +143,21 @@ class GajimRemote: [ ('jid', _('JID of the contact that will receive the message'), True), (Q_('?CLI:message'), _('message contents'), True), - (_('pgp key'), _('if specified, the message will be encrypted ' + (_('PGP key'), _('if specified, the message will be encrypted ' 'using this public key'), False), (Q_('?CLI:account'), _('if specified, the message will be sent ' 'using this account'), False), ] ], 'send_single_message': [ - _('Sends new single message to a contact in the roster. Both OpenPGP key ' - 'and account are optional. If you want to set only \'account\', ' - 'without \'OpenPGP key\', just set \'OpenPGP key\' to \'\'.'), + _('Sends a chat message to someone on your roster. ' + 'Optionally with OpenPGP key and account. If you want ' + 'to only set the latter, set OpenPGP key to "".'), [ ('jid', _('JID of the contact that will receive the message'), True), (_('subject'), _('message subject'), True), (Q_('?CLI:message'), _('message contents'), True), - (_('pgp key'), _('if specified, the message will be encrypted ' + (_('PGP key'), _('if specified, the message will be encrypted ' 'using this public key'), False), (Q_('?CLI:account'), _('if specified, the message will be sent ' 'using this account'), False), @@ -202,7 +201,7 @@ class GajimRemote: _('Sets value of \'key\' to \'value\'.'), [ (_('key=value'), _('\'key\' is the name of the preference, ' - '\'value\' is the value to set it to'), True) + '\'value\' is what to set it to'), True) ] ], 'prefs_del': [ @@ -261,8 +260,8 @@ class GajimRemote: _('Sends custom XML'), [ ('xml', _('XML to send'), True), - ('account', _('Account in which the xml will be sent; ' - 'if not specified, xml will be sent to all accounts'), + ('account', _('Account to which the XML will be sent; ' + 'if not specified, XML will be sent to all accounts'), False) ] ], @@ -276,7 +275,7 @@ class GajimRemote: ] ], 'handle_uri': [ - _('Handle a xmpp:/ uri'), + _('Handle a xmpp:/ URI'), [ (Q_('?CLI:uri'), _('URI to handle'), True), (Q_('?CLI:account'), _('Account in which you want to handle it'), @@ -399,6 +398,7 @@ class GajimRemote: raise exceptions.SessionBusNotPresent if not self.check_gajim_running(): + #Do not translate "gajim-remote" send_error(_('It seems Gajim is not running. So you can\'t use gajim-remote.')) obj = self.sbus.get_object(SERVICE, OBJ_PATH) interface = dbus.Interface(obj, INTERFACE) @@ -534,9 +534,9 @@ class GajimRemote: def handle_uri(self): if len(sys.argv) < 3: - send_error(_('No uri given')) + send_error(_('No URI given')) if not sys.argv[2].startswith('xmpp:'): - send_error(_('Wrong uri')) + send_error(_('Wrong URI')) sys.argv[2] = sys.argv[2][5:] uri = sys.argv[2] if not '?' in uri: diff --git a/src/gajim.py b/src/gajim.py index a627cb98a..5560a9207 100644 --- a/src/gajim.py +++ b/src/gajim.py @@ -96,12 +96,12 @@ MIN_NBXMPP_VER = "0.5.3" try: import nbxmpp except ImportError: - print('Gajim needs python-nbxmpp to run. Quiting...') + print('Gajim needs python-nbxmpp to run. Quiting…') sys.exit(1) from distutils.version import LooseVersion as V if V(nbxmpp.__version__) < V(MIN_NBXMPP_VER): - print('Gajim needs python-nbxmpp >= %s to run. Quiting...' % MIN_NBXMPP_VER) + print('Gajim needs python-nbxmpp >= %s to run. Quiting…' % MIN_NBXMPP_VER) sys.exit(1) from application import GajimApplication diff --git a/src/gajim_themes_window.py b/src/gajim_themes_window.py index f25fb1bce..b8b40afa6 100644 --- a/src/gajim_themes_window.py +++ b/src/gajim_themes_window.py @@ -95,8 +95,8 @@ class GajimThemesWindow: return if old_name == 'default': dialogs.ErrorDialog( - _('You cannot make changes to the default theme'), - _('Please create a clean new theme with your desired name.')) + _('You cannot make changes to the default theme'), + _('Please create a new clean theme.')) return new_config_name = new_name.replace(' ', '_') if new_config_name in gajim.config.get_per('themes'): @@ -185,7 +185,7 @@ class GajimThemesWindow: if self.current_theme == gajim.config.get('roster_theme'): dialogs.ErrorDialog( _('You cannot delete your current theme'), - _('Please first choose another theme as your current theme.')) + _('Pick another theme to use first.')) return self.theme_options_vbox.set_sensitive(False) self.theme_options_table.set_sensitive(False) diff --git a/src/groupchat_control.py b/src/groupchat_control.py index 17f5f4f9e..878cd1aa8 100644 --- a/src/groupchat_control.py +++ b/src/groupchat_control.py @@ -1333,8 +1333,8 @@ class GroupchatControl(ChatControlBase): if '103' in obj.status_code: changes.append(_('Room now does not show unavailable members')) if '104' in obj.status_code: - changes.append(_('A non-privacy-related room configuration change ' - 'has occurred')) + changes.append(_('A setting not related to privacy has been ' + 'changed')) if '170' in obj.status_code: # Can be a presence (see chg_contact_status in groupchat_control.py) changes.append(_('Room logging is now enabled')) @@ -1347,7 +1347,7 @@ class GroupchatControl(ChatControlBase): changes.append(_('Room is now semi-anonymous')) self.is_anonymous = True if '174' in obj.status_code: - changes.append(_('Room is now fully-anonymous')) + changes.append(_('Room is now fully anonymous')) self.is_anonymous = True for change in changes: @@ -2257,16 +2257,16 @@ class GroupchatControl(ChatControlBase): try: jid = helpers.parse_jid(jid) except Exception: - dialogs.ErrorDialog(_('Invalid group chat Jabber ID'), - _('The group chat Jabber ID has not allowed characters.')) + dialogs.ErrorDialog(_('Invalid group chat JID'), + _('The group chat JID has not allowed characters.')) return gajim.connections[self.account].destroy_gc_room(self.room_jid, reason, jid) # Ask for a reason dialogs.DoubleInputDialog(_('Destroying %s') % '\u200E' + \ - self.room_jid, _('You are going to definitively destroy this ' - 'room.\nYou may specify a reason below:'), + self.room_jid, _('You are going to remove this room permanently.' + '\nYou may specify a reason below:'), _('You may also enter an alternate venue:'), ok_handler=on_ok, transient_for=self.parent_win.window) diff --git a/src/gtkgui_helpers.py b/src/gtkgui_helpers.py index 643cfd052..1f4515756 100644 --- a/src/gtkgui_helpers.py +++ b/src/gtkgui_helpers.py @@ -803,7 +803,7 @@ def on_avatar_save_as_menuitem_activate(widget, jid, default_name=''): def on_cancel(widget): dialog.destroy() - dialog = dialogs.FileChooserDialog(title_text=_('Save Image as...'), + dialog = dialogs.FileChooserDialog(title_text=_('Save Image as…'), action=Gtk.FileChooserAction.SAVE, buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_SAVE, Gtk.ResponseType.OK), default_response=Gtk.ResponseType.OK, diff --git a/src/gui_interface.py b/src/gui_interface.py index f0570a3e0..a50a82ba3 100644 --- a/src/gui_interface.py +++ b/src/gui_interface.py @@ -162,7 +162,7 @@ class Interface: if obj.msg: sec_msg = obj.msg + '\n' + sec_msg dialog = dialogs.YesNoDialog(_('HTTP (%(method)s) Authorization for ' - '%(url)s (id: %(id)s)') % {'method': obj.method, 'url': obj.url, + '%(url)s (ID: %(id)s)') % {'method': obj.method, 'url': obj.url, 'id': obj.iq_id}, sec_msg, on_response_yes=(on_yes, obj), on_response_no=(response, obj, 'no')) @@ -303,7 +303,7 @@ class Interface: # maximum user number reached self.handle_gc_error(gc_control, _('Unable to join group chat'), - _('Maximum number of users for %s has been reached')\ + _('%s is full')\ % obj.room_jid) elif (obj.errcode == '401') or (obj.errcon == 'not-authorized'): # password required to join @@ -321,11 +321,11 @@ class Interface: _('Group chat %s does not exist.') % obj.room_jid) elif (obj.errcode == '405') or (obj.errcon == 'not-allowed'): self.handle_gc_error(gc_control, _('Unable to join group chat'), - _('Group chat creation is restricted.')) + _('Group chat creation is not permitted.')) elif (obj.errcode == '406') or (obj.errcon == 'not-acceptable'): - self.handle_gc_error(gc_control, _('Unable to join group chat'), - _('Your registered nickname must be used in group chat ' - '%s.') % obj.room_jid) + self.handle_gc_error(gc_control, _('Unable to join groupchat'), + _('You must use your registered nickname in %s.')\ + % obj.room_jid) elif (obj.errcode == '407') or (obj.errcon == \ 'registration-required'): self.handle_gc_error(gc_control, _('Unable to join group chat'), @@ -679,12 +679,12 @@ class Interface: '\n') sectext += _('You are currently connected without your OpenPGP ' 'key.') - dialogs.WarningDialog(_('Your passphrase is incorrect'), sectext) + dialogs.WarningDialog(_('Wrong passphrase'), sectext) else: path = gtkgui_helpers.get_icon_path('gtk-dialog-warning', 48) account = obj.conn.name notify.popup('warning', account, account, '', path, - _('OpenPGP Passphrase Incorrect'), + _('Wrong OpenPGP passphrase'), _('You are currently connected without your OpenPGP key.')) self.forget_gpg_passphrase(obj.keyID) @@ -698,7 +698,7 @@ class Interface: obj.secure_tuple) dialogs.PassphraseDialog(_('Certificate Passphrase Required'), - _('Enter the passphrase for the certificate for account %s') % \ + _('Enter the certificate passphrase for account %s') % \ obj.conn.name, ok_handler=on_ok, cancel_handler=on_cancel) def handle_event_gpg_password_required(self, obj): @@ -720,7 +720,7 @@ class Interface: def on_no(): obj.callback(False) - dialogs.YesNoDialog(_('OpenPGP key not trusted'), _('The OpenPGP key ' + dialogs.YesNoDialog(_('Untrusted OpenPGP key'), _('The OpenPGP key ' 'used to encrypt this chat is not trusted. Do you really want to ' 'encrypt this message?'), checktext=_('_Do not ask me again'), on_response_yes=on_yes, on_response_no=on_no) @@ -868,10 +868,10 @@ class Interface: if not gajim.config.get('notify_on_new_gmail_email'): return path = gtkgui_helpers.get_icon_path('gajim-new_email_recv', 48) - title = _('New mail on %(gmail_mail_address)s') % \ + title = _('New e-mail on %(gmail_mail_address)s') % \ {'gmail_mail_address': jid} - text = i18n.ngettext('You have %d new mail conversation', - 'You have %d new mail conversations', gmail_new_messages, + text = i18n.ngettext('You have %d new e-mail conversation', + 'You have %d new e-mail conversations', gmail_new_messages, gmail_new_messages, gmail_new_messages) if gajim.config.get('notify_on_new_gmail_email_extra'): @@ -1084,8 +1084,8 @@ class Interface: sender).get_shown_name() filename = os.path.basename(file_props.file_name) if event_type == _('File Transfer Completed'): - txt = _('You successfully received %(filename)s from ' - '%(name)s.') % {'filename': filename, 'name': name} + txt = _('%(filename)s received from %(name)s.')\ + % {'filename': filename, 'name': name} img_name = 'gajim-ft_done' elif event_type == _('File Transfer Stopped'): txt = _('File transfer of %(filename)s from %(name)s ' @@ -1376,11 +1376,11 @@ class Interface: pritext = _('Error verifying SSL certificate') sectext = _('There was an error verifying the SSL certificate of your ' - 'jabber server: %(error)s\nDo you still want to connect to this ' + 'XMPP server: %(error)s\nDo you still want to connect to this ' 'server?') % {'error': obj.error_text} if obj.error_num in (18, 27): checktext1 = _('Add this certificate to the list of trusted ' - 'certificates.\nSHA1 fingerprint of the certificate:\n%s' + 'certificates.\nSHA-1 fingerprint of the certificate:\n%s' '\nSHA256 fingerprint of the certificate:\n%s') % \ (obj.fingerprint_sha1, obj.fingerprint_sha256) else: @@ -1423,7 +1423,7 @@ class Interface: pritext = _('SSL certificate error') sectext = _('It seems the SSL certificate of account %(account)s has ' - 'changed and is not valid or your connection is being hacked.\n\n' + 'changed and is not valid or your connection is being compromised.\n\n' 'Old SHA-1 fingerprint: ' '%(old_sha1)s\nOld SHA-256 fingerprint: %(old_sha256)s\n\n' 'New SHA-1 fingerprint: %(new_sha1)s\nNew SHA-256 fingerprint: ' diff --git a/src/gui_menu_builder.py b/src/gui_menu_builder.py index 2ff388129..5a643c6e1 100644 --- a/src/gui_menu_builder.py +++ b/src/gui_menu_builder.py @@ -538,7 +538,7 @@ def get_transport_menu(contact, account): menu = Gtk.Menu() # Send single message - item = Gtk.MenuItem.new_with_mnemonic(_('Send Single _Message...')) + item = Gtk.MenuItem.new_with_mnemonic(_('Send Single _Message…')) item.connect('activate', roster.on_send_single_message_menuitem_activate, account, contact) menu.append(item) @@ -571,7 +571,7 @@ def get_transport_menu(contact, account): menu.append(item) # Execute Command - item = Gtk.MenuItem.new_with_mnemonic(_('E_xecute Command...')) + item = Gtk.MenuItem.new_with_mnemonic(_('E_xecute Command…')) menu.append(item) item.connect('activate', roster.on_execute_command, contact, account, contact.resource) @@ -592,7 +592,7 @@ def get_transport_menu(contact, account): item.set_sensitive(False) # Rename - item = Gtk.MenuItem.new_with_mnemonic(_('_Rename...')) + item = Gtk.MenuItem.new_with_mnemonic(_('_Rename…')) manage_transport_submenu.append(item) item.connect('activate', roster.on_rename, 'agent', jid, account) if gajim.account_is_disconnected(account): diff --git a/src/history_manager.py b/src/history_manager.py index b32935b5f..7b910a8e0 100644 --- a/src/history_manager.py +++ b/src/history_manager.py @@ -78,7 +78,7 @@ def parseOpts(): _('Options:') + \ '\n -h, --help ' + \ _('Show this help message and exit') + \ - '\n -c, --config-path ' + _('Set logs directory') + '\n') + '\n -c, --config-path ' + _('Choose folder for logfile') + '\n') sys.exit() elif o in ('-c', '--config-path'): config_path = a @@ -165,7 +165,7 @@ class HistoryManager: self.jids_listview.get_selection().set_mode(Gtk.SelectionMode.MULTIPLE) renderer_text = Gtk.CellRendererText() # holds jid - col = Gtk.TreeViewColumn(_('Jabber ID'), renderer_text, text=0) + col = Gtk.TreeViewColumn(_('JID'), renderer_text, text=0) self.jids_listview.append_column(col) self.jids_listview.get_selection().connect('changed', @@ -266,7 +266,7 @@ class HistoryManager: _('Normally allocated database size will not be freed, ' 'it will just become reusable. If you really want to reduce ' 'database filesize, click YES, else click NO.' - '\n\nIn case you click YES, please wait...'), + '\n\nIn case you click YES, please wait…'), on_response_yes=on_yes, on_response_no=on_no) dialog.set_title(_('Database Cleanup')) button_box = dialog.get_children()[0].get_children()[1] @@ -483,7 +483,7 @@ class HistoryManager: xml.connect_signals(self) dlg = xml.get_object('filechooserdialog') - dlg.set_title(_('Exporting History Logs...')) + dlg.set_title(_('Exporting History Logs…')) dlg.set_current_folder(gajim.HOME_DIR) dlg.props.do_overwrite_confirmation = True response = dlg.run() @@ -597,13 +597,13 @@ class HistoryManager: if paths_len == 1: jid_id = '%s' % liststore[list_of_paths[0]][0] - pri_text = _('Do you really want to delete the logs of %(jid)s?') \ + pri_text = _('Do you wish to delete all correspondence with %(jid)s?') \ % {'jid': jid_id} else: pri_text = _( - 'Do you really want to delete logs of the selected contacts?') + 'Do you wish to delete all correspondence with the selected contacts?') dialog = dialogs.ConfirmationDialog('', - _('This is an irreversible operation.'), on_response_ok=(on_ok, + _('This can not be undone.'), on_response_ok=(on_ok, liststore, list_of_paths)) dialog.set_title(_('Deletion Confirmation')) dialog.set_markup(pri_text) diff --git a/src/htmltextview.py b/src/htmltextview.py index decd31076..1b0092eea 100644 --- a/src/htmltextview.py +++ b/src/htmltextview.py @@ -914,7 +914,7 @@ class HtmlTextView(Gtk.TextView): text = getattr(tag, 'title', False) if text: if len(text) > 50: - text = text[:47] + '...' + text = text[:47] + '…' position = w.get_origin()[1:] self.tooltip.show_tooltip(text, 8, position[1] + y) @@ -1284,7 +1284,7 @@ return faciter(n,1)

examples@example.org wrote:

-

this cite - bla bla bla, smile- :-) ...

+

this cite - bla bla bla, smile- :-) …

some text

diff --git a/src/logind_listener.py b/src/logind_listener.py index 7ca35ac05..8b1285ce0 100644 --- a/src/logind_listener.py +++ b/src/logind_listener.py @@ -45,7 +45,7 @@ def on_suspend(active): return # we're going for suspend, let's disconnect - log.debug('System suspend detected, disconnecting from network...') + log.debug('System suspend detected, disconnecting from network…') for name, conn in gajim.connections.items(): if gajim.account_is_connected(name): conn.old_show = gajim.SHOW_LIST[conn.connected] diff --git a/src/message_window.py b/src/message_window.py index ce722c5ee..fa1b0b4bd 100644 --- a/src/message_window.py +++ b/src/message_window.py @@ -526,9 +526,9 @@ class MessageWindow(object): if window_mode == MessageWindowMgr.ONE_MSG_WINDOW_PERTYPE: # Show the plural form since number of tabs > 1 if self.type_ == 'chat': - label = _('Chats') + label = _('?Noun:Chats') elif self.type_ == 'gc': - label = _('Group Chats') + label = _('Groupchats') else: label = _('Private Chats') elif window_mode == MessageWindowMgr.ONE_MSG_WINDOW_ALWAYS_WITH_ROSTER: diff --git a/src/notify.py b/src/notify.py index 72066bccb..855b7edaa 100644 --- a/src/notify.py +++ b/src/notify.py @@ -382,7 +382,7 @@ class DesktopNotification: if self.text: text = self.text if len(self.text) > 200: - text = '%s\n...' % self.text[:200] + text = '%s\n…' % self.text[:200] else: text = ' ' if os.environ.get('KDE_FULL_SESSION') == 'true': diff --git a/src/profile_window.py b/src/profile_window.py index 729cb01c4..793db20ac 100644 --- a/src/profile_window.py +++ b/src/profile_window.py @@ -60,7 +60,7 @@ class ProfileWindow: self.avatar_mime_type = None self.avatar_encoded = None self.message_id = self.statusbar.push(self.context_id, - _('Retrieving profile...')) + _('Retrieving profile…')) self.update_progressbar_timeout_id = GLib.timeout_add(100, self.update_progressbar) self.remove_statusbar_timeout_id = None @@ -386,7 +386,7 @@ class ProfileWindow: gajim.nicks[self.account] = nick gajim.connections[self.account].send_vcard(vcard_) self.message_id = self.statusbar.push(self.context_id, - _('Sending profile...')) + _('Sending profile…')) self.progressbar.show() self.update_progressbar_timeout_id = GLib.timeout_add(100, self.update_progressbar) diff --git a/src/roster_window.py b/src/roster_window.py index a924288d6..24d77d941 100644 --- a/src/roster_window.py +++ b/src/roster_window.py @@ -2068,8 +2068,8 @@ class RosterWindow: Authorize a contact (by re-sending auth menuitem) """ gajim.connections[account].send_authorization(jid) - dialogs.InformationDialog(_('Authorization has been sent'), - _('Now "%s" will know your status.') %jid) + dialogs.InformationDialog(_('Authorization sent'), + _('"%s" will now see your status.') %jid) def req_sub(self, widget, jid, txt, account, groups=None, nickname=None, auto_auth=False): @@ -2107,8 +2107,8 @@ class RosterWindow: Revoke a contact's authorization """ gajim.connections[account].refuse_authorization(jid) - dialogs.InformationDialog(_('Authorization has been removed'), - _('Now "%s" will always see you as offline.') %jid) + dialogs.InformationDialog(_('Authorization removed'), + _('Now "%s" will always see you as offline.') %jid) def set_state(self, account, state): child_iterA = self._get_account_iter(account, self.model) @@ -2982,7 +2982,7 @@ class RosterWindow: pritext = _('You are about to block a contact. Are you sure you want' ' to continue?') sectext = _('This contact will see you offline and you will not ' - 'receive messages he will send you.') + 'receive messages it sends you.') dialogs.ConfirmationDialogCheck(pritext, sectext, _('_Do not ask me again'), on_response_ok=_block_it) @@ -3661,7 +3661,7 @@ class RosterWindow: pritext = _('You are about to send a custom status. Are you sure you ' 'want to continue?') sectext = _('This contact will temporarily see you as %(status)s, ' - 'but only until you change your status. Then he or she will see ' + 'but only until you change your status. Then they will see ' 'your global status.') % {'status': show} dialogs.ConfirmationDialogCheck(pritext, sectext, _('_Do not ask me again'), on_response_ok=send_it) @@ -4490,7 +4490,7 @@ class RosterWindow: 'want to continue?') sectext = _('Metacontacts are a way to regroup several contacts in one ' 'line. Generally it is used when the same person has several ' - 'Jabber accounts or transport accounts.') + 'XMPP accounts or transport accounts.') dlg = dialogs.ConfirmationDialogCheck(pritext, sectext, _('_Do not ask me again'), on_response_ok=merge_contacts) if not confirm_metacontacts: # First time we see this window @@ -5363,7 +5363,7 @@ class RosterWindow: newitem = Gtk.SeparatorMenuItem.new() # separator gc_sub_menu.append(newitem) - newitem = Gtk.MenuItem.new_with_mnemonic(_('_Manage Bookmarks...')) + newitem = Gtk.MenuItem.new_with_mnemonic(_('_Manage Bookmarks…')) newitem.connect('activate', self.on_manage_bookmarks_menuitem_activate) gc_sub_menu.append(newitem) gc_sub_menu.show_all() @@ -5513,7 +5513,7 @@ class RosterWindow: self.on_publish_location_toggled) pep_config = Gtk.MenuItem.new_with_label( - _('Configure Services...')) + _('Configure Services…')) item = Gtk.SeparatorMenuItem.new() pep_submenu.append(item) pep_config.set_sensitive(True) @@ -5722,7 +5722,7 @@ class RosterWindow: menu.append(item) # Rename - rename_item = Gtk.MenuItem.new_with_mnemonic(_('_Rename...')) + rename_item = Gtk.MenuItem.new_with_mnemonic(_('_Rename…')) menu.append(rename_item) rename_item.connect('activate', self.on_rename, 'group', group, account) @@ -5845,7 +5845,7 @@ class RosterWindow: menu.append(item) # Edit Groups - edit_groups_item = Gtk.MenuItem.new_with_mnemonic(_('Edit _Groups...')) + edit_groups_item = Gtk.MenuItem.new_with_mnemonic(_('Edit _Groups…')) manage_contacts_submenu.append(edit_groups_item) edit_groups_item.connect('activate', self.on_edit_groups, list_) @@ -6296,7 +6296,7 @@ class RosterWindow: img.set_from_file(path) # sensitivity to False because by default we're offline self.status_message_menuitem_iter = liststore.append( - [_('Change Status Message...'), img, '', False]) + [_('Change Status Message…'), img, '', False]) # Add a Separator (self._iter_is_separator() checks on string SEPARATOR) liststore.append(['SEPARATOR', None, '', True]) diff --git a/src/statusicon.py b/src/statusicon.py index fb452a9aa..84795982f 100644 --- a/src/statusicon.py +++ b/src/statusicon.py @@ -232,7 +232,7 @@ class StatusIcon: item = Gtk.SeparatorMenuItem.new() sub_menu.append(item) - item = Gtk.MenuItem.new_with_mnemonic(_('_Change Status Message...')) + item = Gtk.MenuItem.new_with_mnemonic(_('_Change Status Message…')) sub_menu.append(item) item.connect('activate', self.on_change_status_message_activate) @@ -332,7 +332,7 @@ class StatusIcon: newitem = Gtk.SeparatorMenuItem.new() # separator gc_sub_menu.append(newitem) - newitem = Gtk.MenuItem.new_with_mnemonic(_('_Manage Bookmarks...')) + newitem = Gtk.MenuItem.new_with_mnemonic(_('_Manage Bookmarks…')) newitem.connect('activate', gajim.interface.roster.on_manage_bookmarks_menuitem_activate) gc_sub_menu.append(newitem) diff --git a/src/tooltips.py b/src/tooltips.py index 2cb8fa6bc..bfdf48688 100644 --- a/src/tooltips.py +++ b/src/tooltips.py @@ -835,13 +835,13 @@ class FileTransfersTooltip(BaseTooltip): file_name = file_props.name properties.append((_('Name: '), GLib.markup_escape_text(file_name))) if file_props.type_ == 'r': - type_ = _('Download') + type_ = _('?Noun:Download') actor = _('Sender: ') sender = file_props.sender.split('/')[0] name = gajim.contacts.get_first_contact_from_jid( file_props.tt_account, sender).get_shown_name() else: - type_ = _('Upload') + type_ = _('?Noun:Upload') actor = _('Recipient: ') receiver = file_props.receiver if hasattr(receiver, 'name'): diff --git a/src/vcard.py b/src/vcard.py index 58ca517a7..f7e485a62 100644 --- a/src/vcard.py +++ b/src/vcard.py @@ -438,13 +438,13 @@ class VcardWindow: subscription_label.set_text(uf_sub) eb = self.xml.get_object('subscription_label_eventbox') if self.contact.sub == 'from': - tt_text = _("This contact is interested in your presence information, but you are not interested in his/her presence") + tt_text = _("This contact is interested in your presence information, but you are not interested in their presence") elif self.contact.sub == 'to': - tt_text = _("You are interested in the contact's presence information, but he/she is not interested in yours") + tt_text = _("You are interested in the contact's presence information, but it is not mutual") elif self.contact.sub == 'both': - tt_text = _("You and the contact are interested in each other's presence information") + tt_text = _("The contact and you want to exchange presence information") else: # None - tt_text = _("You are not interested in the contact's presence, and neither he/she is interested in yours") + tt_text = _("You and the contact have a mutual disinterest in each-others presence information") eb.set_tooltip_text(tt_text) uf_ask = helpers.get_uf_ask(self.contact.ask)