Yann Leboulanger pushed to branch master at gajim / gajim
Commits:
faa88819 by Yann Leboulanger at 2018-03-25T16:26:29+02:00
improve some strings
- - - - -
22 changed files:
- data/org.gajim.Gajim.desktop.in
- gajim/chat_control.py
- gajim/chat_control_base.py
- gajim/command_system/implementation/standard.py
- gajim/common/config.py
- gajim/common/jingle_rtp.py
- gajim/common/pep.py
- gajim/data/gui/chat_control.ui
- gajim/data/gui/groupchat_control.ui
- gajim/data/gui/join_groupchat_window.ui
- gajim/data/gui/plugins_window.ui
- gajim/data/gui/preferences_window.ui
- gajim/data/gui/shortcuts_window.ui
- gajim/dialog_messages.py
- gajim/dialogs.py
- gajim/features_window.py
- gajim/gajim.py
- gajim/gui_interface.py
- gajim/gui_menu_builder.py
- gajim/message_textview.py
- gajim/notify.py
- gajim/roster_window.py
Changes:
=====================================
data/org.gajim.Gajim.desktop.in
=====================================
--- a/data/org.gajim.Gajim.desktop.in
+++ b/data/org.gajim.Gajim.desktop.in
@@ -3,11 +3,11 @@ Categories=Network;InstantMessaging;GTK;GNOME;
Name=Gajim
GenericName=Jabber IM Client
Comment=A GTK+ Jabber client
-# Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
+#Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
Keywords=chat;messaging;im;xmpp;bonjour;voip;
Version=1.0
Exec=gajim %u
-# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
+#Translators: Do NOT translate or transliterate this text (this is an icon file name)!
Icon=org.gajim.Gajim
StartupNotify=true
StartupWMClass=Gajim
=====================================
gajim/chat_control.py
=====================================
--- a/gajim/chat_control.py
+++ b/gajim/chat_control.py
@@ -922,7 +922,7 @@ class ChatControl(ChatControlBase):
if not self.session.verified_identity:
ChatControlBase.print_conversation_line(self, _("Remote contact's identity not verified. Click the shield button for more details."), 'status', '', None)
else:
- msg = _('E2E encryption disabled')
+ msg = _('end-to-end encryption disabled')
ChatControlBase.print_conversation_line(self, msg, 'status', '', None)
self._show_lock_image(e2e_is_active, 'E2E',
=====================================
gajim/chat_control_base.py
=====================================
--- a/gajim/chat_control_base.py
+++ b/gajim/chat_control_base.py
@@ -1170,8 +1170,8 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
contact = app.contacts.get_contact(self.account, gc_contact.jid)
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 JID.') % gc_contact.name
+ sec_text = _('If you send a file to %s, your real JID will '
+ 'be revealed.') % gc_contact.name
dialog = dialogs.NonModalConfirmationDialog(prim_text,
sec_text, on_response_ok=(_on_ok, gc_contact))
dialog.popup()
=====================================
gajim/command_system/implementation/standard.py
=====================================
--- a/gajim/command_system/implementation/standard.py
+++ b/gajim/command_system/implementation/standard.py
@@ -296,7 +296,7 @@ class StandardGroupChatCommands(CommandContainer):
'room_jid': self.room_jid}
@command(raw=True, empty=True)
- @doc(_("Join a group chat given by a jid"))
+ @doc(_("Join a group chat given by a JID"))
def join(self, jid):
if '@' not in jid:
jid = jid + '@' + app.get_server_from_jid(self.room_jid)
@@ -310,9 +310,9 @@ class StandardGroupChatCommands(CommandContainer):
@command(raw=True, empty=True)
@doc(_("""
- Ban user by a nick or a jid from a groupchat
+ Ban user by a nick or a JID from a groupchat
- If given nickname is not found it will be treated as a jid.
+ If given nickname is not found it will be treated as a JID.
"""))
def ban(self, who, reason):
if who in app.contacts.get_nick_list(self.account, self.room_jid):
=====================================
gajim/common/config.py
=====================================
--- a/gajim/common/config.py
+++ b/gajim/common/config.py
@@ -127,7 +127,7 @@ class Config:
'ascii_emoticons': [opt_bool, True, _('Enable ASCII emoticons'), True],
'ascii_formatting': [ opt_bool, True,
_('Treat * / _ pairs as possible formatting characters.'), True],
- 'show_ascii_formatting_chars': [ opt_bool, True, _('If True, do not '
+ 'show_ascii_formatting_chars': [ opt_bool, True, _('If true, do not '
'remove */_ . So *abc* will be bold but with * * not removed.')],
'rst_formatting_outgoing_messages': [ opt_bool, False,
_('Uses ReStructured text markup to send HTML, plus ascii formatting if selected. For syntax, see http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html (If you want to use this, install docutils)')],
@@ -162,7 +162,7 @@ class Config:
'single-msg-y-position': [opt_int, 0],
'single-msg-width': [opt_int, 400],
'single-msg-height': [opt_int, 280],
- 'save-roster-position': [opt_bool, True, _('If True, Gajim will save roster position when hiding roster, and restore it when showing roster.')],
+ 'save-roster-position': [opt_bool, True, _('If true, Gajim will save roster position when hiding roster, and restore it when showing roster.')],
'roster_x-position': [ opt_int, 0 ],
'roster_y-position': [ opt_int, 0 ],
'roster_width': [ opt_int, 200 ],
@@ -184,13 +184,13 @@ class Config:
'muc_restore_lines': [opt_int, 100, _('How many lines to request from server when entering a groupchat. -1 means no limit')],
'muc_restore_timeout': [opt_int, -1, _('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?')],
+ 'muc_autorejoin_on_kick': [opt_bool, False, _('Should autorejoin be activated when 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).')],
'last_roster_visible': [opt_bool, True],
'key_up_lines': [opt_int, 25, _('How many lines to store for Ctrl+KeyUP.')],
'version': [ opt_str, gajim.__version__ ], # which version created the config
'search_engine': [opt_str, 'https://www.google.com/search?&q=%s&sourceid=gajim'],
- 'dictionary_url': [opt_str, 'WIKTIONARY', _("Either custom url with %%s in it where %%s is the word/phrase or 'WIKTIONARY' which means use wiktionary.")],
+ 'dictionary_url': [opt_str, 'WIKTIONARY', _("Either custom URL with %%s in it where %%s is the word/phrase or 'WIKTIONARY' which means use Wikitionary.")],
'always_english_wikipedia': [opt_bool, False],
'always_english_wiktionary': [opt_bool, True],
'remote_control': [opt_bool, False, _('If checked, Gajim can be controlled remotely using gajim-remote.'), True],
@@ -204,7 +204,7 @@ class Config:
'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],
- 'ft_add_hosts_to_send': [opt_str, '', _('Comma separated list of hosts that we send, in addition of local interfaces, for File Transfer in case of address translation/port forwarding.')],
+ 'ft_add_hosts_to_send': [opt_str, '', _('Comma separated list of sent hosts, in addition of local interfaces, for File Transfer in case of address translation/port forwarding.')],
'conversation_font': [opt_str, ''],
'use_kib_mib': [opt_bool, False, _('IEC standard says KiB = 1024 bytes, KB = 1000 bytes.')],
'notify_on_all_muc_messages': [opt_bool, False],
@@ -235,10 +235,10 @@ class Config:
'notification_position_x': [opt_int, -1],
'notification_position_y': [opt_int, -1],
'muc_highlight_words': [opt_str, '', _('A semicolon-separated list of words that will be highlighted in group chats.')],
- 'quit_on_roster_x_button': [opt_bool, False, _('If True, quits Gajim when X button of Window Manager is clicked. This setting is taken into account only if notification icon is used.')],
- 'hide_on_roster_x_button': [opt_bool, False, _('If True, Gajim hides the Roster window on pressing the X button instead of minimizing into the Dock.')],
- 'show_unread_tab_icon': [opt_bool, False, _('If True, Gajim will display an icon on each tab containing unread messages. Depending on the theme, this icon may be animated.')],
- 'show_status_msgs_in_roster': [opt_bool, True, _('If True, Gajim will display the status message, if not empty, for every contact under the contact name in roster window.'), True],
+ 'quit_on_roster_x_button': [opt_bool, False, _('If true, quits Gajim when X button of Window Manager is clicked. This setting is taken into account only if notification icon is used.')],
+ 'hide_on_roster_x_button': [opt_bool, False, _('If true, Gajim hides the Roster window on pressing the X button instead of minimizing into the Dock.')],
+ 'show_unread_tab_icon': [opt_bool, False, _('If true, Gajim will display an icon on each tab containing unread messages. Depending on the theme, this icon may be animated.')],
+ 'show_status_msgs_in_roster': [opt_bool, True, _('If true, Gajim will display the status message, if not empty, for every contact under the contact name in roster window.'), True],
'show_avatars_in_roster': [opt_bool, True, '', True],
'show_mood_in_roster': [opt_bool, True, '', True],
'show_activity_in_roster': [opt_bool, True, '', True],
@@ -252,10 +252,10 @@ class Config:
'just_connected_bg_color': [opt_str, '#adc3c6', _('Background color of contacts when they just signed in.')],
'just_disconnected_bg_color': [opt_str, '#ab6161', _('Background color of contacts when they just signed out.')],
'restored_messages_color': [opt_color, '#555753'],
- 'restored_messages_small': [opt_bool, True, _('If True, restored messages will use a smaller font than the default one.')],
+ 'restored_messages_small': [opt_bool, True, _('If true, restored messages will use a smaller font than the default one.')],
'hide_avatar_of_transport': [opt_bool, False, _('Don\'t show avatar for the transport itself.')],
'roster_window_skip_taskbar': [opt_bool, False, _('Don\'t show roster in the system taskbar.')],
- 'use_urgency_hint': [opt_bool, True, _('If True and installed GTK+ and PyGTK versions are at least 2.8, make the window flash (the default behaviour in most Window Managers) when holding pending events.')],
+ 'use_urgency_hint': [opt_bool, True, _('If true and installed GTK+ and PyGTK versions are at least 2.8, make the window flash (the default behaviour in most Window Managers) when holding pending events.')],
'notification_timeout': [opt_int, 5],
'send_sha_in_gc_presence': [opt_bool, True, _('Jabberd1.4 does not like sha info when one join a password protected group chat. Turn this option to False to stop sending sha info in group chat presences.')],
'one_message_window': [opt_str, 'always',
@@ -263,7 +263,7 @@ class Config:
_('Controls the window where new messages are placed.\n\'always\' - All messages are sent to a single window.\n\'always_with_roster\' - Like \'always\' but the messages are in a single window along with the roster.\n\'never\' - All messages get their own window.\n\'peracct\' - Messages for each account are sent to a specific window.\n\'pertype\' - Each message type (e.g. chats vs. groupchats) is sent to a specific window.')],
'show_roster_on_startup':[opt_str, 'always', _('Show roster on startup.\n\'always\' - Always show roster.\n\'never\' - Never show roster.\n\'last_state\' - Restore the last state roster.')],
'show_avatar_in_chat': [opt_bool, True, _('If False, you will no longer see the avatar in the chat window.')],
- 'escape_key_closes': [opt_bool, True, _('If True, pressing the escape key closes a tab/window.')],
+ 'escape_key_closes': [opt_bool, True, _('If true, pressing the escape key closes a tab/window.')],
'hide_groupchat_banner': [opt_bool, False, _('Hides the banner in a group chat window')],
'hide_chat_banner': [opt_bool, False, _('Hides the banner in two persons chat window')],
'hide_groupchat_occupants_list': [opt_bool, False, _('Hides the group chat occupants list in group chat window.')],
@@ -271,19 +271,19 @@ class Config:
'chat_merge_consecutive_nickname_indent': [opt_str, ' ', _('Indentation when using merge consecutive nickname.')],
'gc_nicknames_colors': [ opt_str, '#4e9a06:#f57900:#ce5c00:#3465a4:#204a87:#75507b:#5c3566:#c17d11:#8f5902:#ef2929:#cc0000:#a40000', _('List of colors, separated by ":", that will be used to color nicknames in group chats.'), True ],
'ctrl_tab_go_to_next_composing': [opt_bool, True, _('Ctrl-Tab go to next composing tab when none is unread.')],
- 'confirm_metacontacts': [ opt_str, '', _('Should we show the confirm metacontacts creation dialog or not? Empty string means we never show the dialog.')],
- 'confirm_block': [ opt_str, '', _('Should we show the confirm block contact dialog or not? Empty string means we never show the dialog.')],
- 'confirm_custom_status': [ opt_str, '', _('Should we show the confirm custom status dialog or not? Empty string means we never show the dialog.')],
- 'enable_negative_priority': [ opt_bool, False, _('If True, you will be able to set a negative priority to your account in account modification window. BE CAREFUL, when you are logged in with a negative priority, you will NOT receive any message from your server.')],
- 'show_contacts_number': [opt_bool, True, _('If True, Gajim will show number of online and total contacts in account and group rows.')],
+ 'confirm_metacontacts': [ opt_str, '', _('Show the confirm metacontacts creation dialog or not? Empty string means never show the dialog.')],
+ 'confirm_block': [ opt_str, '', _('Show the confirm block contact dialog or not? Empty string means never show the dialog.')],
+ 'confirm_custom_status': [ opt_str, '', _('Show the confirm custom status dialog or not? Empty string means never show the dialog.')],
+ 'enable_negative_priority': [ opt_bool, False, _('If true, you will be able to set a negative priority to your account in account modification window. BE CAREFUL, when you are logged in with a negative priority, you will NOT receive any message from your server.')],
+ 'show_contacts_number': [opt_bool, True, _('If true, Gajim will show number of online and total contacts in account and group rows.')],
'treat_incoming_messages': [ opt_str, '', _('Can be empty, \'chat\' or \'normal\'. If not empty, treat all incoming messages as if they were of this type')],
- 'scroll_roster_to_last_message': [opt_bool, True, _('If True, Gajim will scroll and select the contact who sent you the last message, if chat window is not already opened.')],
+ 'scroll_roster_to_last_message': [opt_bool, True, _('If true, Gajim will scroll and select the contact who sent you the last message, if chat window is not already opened.')],
'change_status_window_timeout': [opt_int, 15, _('Time of inactivity needed before the change status window closes down.')],
'max_conversation_lines': [opt_int, 500, _('Maximum number of lines that are printed in conversations. Oldest lines are cleared.')],
- 'attach_notifications_to_systray': [opt_bool, False, _('If True, notification windows from notification-daemon will be attached to notification icon.')],
+ '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:// aesgcm://', _('Valid uri schemes. Only schemes in this list will be accepted as "real" uri. (mailto and xmpp are handled separately)'), True],
- 'shell_like_completion': [ opt_bool, False, _('If True, completion in groupchats will be like a shell auto-completion')],
+ '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'],
'audio_output_device': [opt_str, 'autoaudiosink'],
@@ -291,20 +291,20 @@ class Config:
'video_output_device': [opt_str, 'autovideosink'],
'video_framerate': [opt_str, '', _('Optionally fix jingle output video framerate. Example: 10/1 or 25/2')],
'video_size': [opt_str, '', _('Optionally resize jingle output video. Example: 320x240')],
- 'video_see_self': [opt_bool, True, _('If True, You will also see your webcam')],
+ '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 XMPP server.')],
+ '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')],
+ '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").')],
+ 'ignore_incoming_attention': [opt_bool, False, _('If true, Gajim will ignore incoming attention requestd ("wizz").')],
'remember_opened_chat_controls': [ opt_bool, True, _('If enabled, Gajim will reopen chat windows that were opened last time Gajim was closed.')],
'positive_184_ack': [ opt_bool, False, _('If enabled, Gajim will show an icon to show that sent message has been received by your contact')],
'show_avatar_in_tabs': [ opt_bool, False, _('Show a mini avatar in chat window tabs and in window icon')],
- 'use_keyring': [opt_bool, True, _('If True, Gajim will use the Systems Keyring to store account passwords.')],
+ 'use_keyring': [opt_bool, True, _('If true, Gajim will use the Systems Keyring to store account passwords.')],
'pgp_encoding': [ opt_str, '', _('Sets the encoding used by python-gnupg'), True],
- 'remote_commands': [opt_bool, False, _('If True, Gajim will execute XEP-0146 Commands.')],
+ 'remote_commands': [opt_bool, False, _('If true, Gajim will execute XEP-0146 Commands.')],
'mam_blacklist': [opt_str, '', _('All non-compliant MAM Groupchats')],
}, {})
@@ -332,7 +332,7 @@ class Config:
'autoconnect_as': [ opt_str, 'online', _('Status used to autoconnect as. Can be online, chat, away, xa, dnd, invisible. NOTE: this option is used only if restore_last_status is disabled'), True ],
'restore_last_status': [ opt_bool, False, _('If enabled, restore the last status that was used.') ],
'autoreconnect': [ opt_bool, True ],
- 'autoauth': [ opt_bool, False, _('If True, Contacts requesting authorization will be automatically accepted.')],
+ 'autoauth': [ opt_bool, False, _('If true, Contacts requesting authorization will be automatically accepted.')],
'active': [ opt_bool, True, _('If False, this account will be disabled and will not appear in roster window.'), True],
'proxy': [ opt_str, '', '', True ],
'keyid': [ opt_str, '', '', True ],
@@ -365,7 +365,7 @@ class Config:
# send keepalive every N seconds of inactivity
'keep_alive_every_foo_secs': [ opt_int, 55 ],
'ping_alive_every_foo_secs': [ opt_int, 120 ],
- 'time_for_ping_alive_answer': [ opt_int, 60, _('How many seconds to wait for the answer of ping alive packet before we try to reconnect?') ],
+ 'time_for_ping_alive_answer': [ opt_int, 60, _('How many seconds to wait for the answer of ping alive packet before trying to reconnect?') ],
# try for 1 minutes before giving up (aka. timeout after those seconds)
'try_connecting_for_foo_secs': [ opt_int, 60 ],
'http_auth': [opt_str, 'ask'], # yes, no, ask
@@ -373,7 +373,7 @@ class Config:
# proxy65 for FT
'file_transfer_proxies': [opt_str, ''],
'use_ft_proxies': [opt_bool, False, _('If checked, Gajim will use your IP and proxies defined in file_transfer_proxies option for file transfer.'), True],
- 'test_ft_proxies_on_startup': [opt_bool, False, _('If True, Gajim will test file transfer proxies on startup to be sure it works. Openfire\'s proxies are known to fail this test even if they work.')],
+ 'test_ft_proxies_on_startup': [opt_bool, False, _('If true, Gajim will test file transfer proxies on startup to be sure it works. Openfire\'s proxies are known to fail this test even if they work.')],
'msgwin-x-position': [opt_int, -1], # Default is to let the wm decide
'msgwin-y-position': [opt_int, -1], # Default is to let the wm decide
'msgwin-width': [opt_int, 480],
@@ -407,7 +407,7 @@ class Config:
'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.')],
+ 'opened_chat_controls': [opt_str, '', _('Space separated list of JIDs for which chat window will be re-opened on next startup.')],
'recent_groupchats': [ opt_str, '' ],
'httpupload_verify': [ opt_bool, True, _('HTTP Upload: Enable HTTPS Verification')],
'filetransfer_preference' : [ opt_str, 'httpupload', _('Preferred file transfer mechanism for file drag&drop on chat window. Can be \'httpupload\' (default) or \'jingle\'')],
@@ -473,15 +473,15 @@ class Config:
'state_muc_directed_msg_color': [ opt_color, 'red2' ],
}, {}),
'contacts': ({
- 'speller_language': [ opt_str, '', _('Language for which we want to check misspelled words')],
+ 'speller_language': [ opt_str, '', _('Language for which misspelled words will be checked')],
}, {}),
'encryption': ({'encryption': [ opt_str, '', _('The currently active encryption for that contact')],
},{}),
'rooms': ({
- 'speller_language': [ opt_str, '', _('Language for which we want to check misspelled words')],
+ 'speller_language': [ opt_str, '', _('Language for which misspelled words will be checked')],
'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, _('Minutes of backlog to request when entering a groupchat. -1 means no limit, -2 means global value')],
- 'notify_on_all_messages': [opt_bool, False, _('State whether we want a notification for every message in this room')],
+ 'notify_on_all_messages': [opt_bool, False, _('State whether a notification is created for every message in this room')],
}, {}),
'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.')],
=====================================
gajim/common/jingle_rtp.py
=====================================
--- a/gajim/common/jingle_rtp.py
+++ b/gajim/common/jingle_rtp.py
@@ -121,7 +121,7 @@ class JingleRTPContent(JingleContent):
InformationEvent(
None, conn=self.session.connection, level='error',
pri_txt=_('%s configuration error') % text.capitalize(),
- sec_txt=_('Couldn’t setup %(text)s. Check your '
+ sec_txt=_('Couldn’t set up %(text)s. Check your '
'configuration.\n\nPipeline was:\n%(pipeline)s\n\n'
'Error was:\n%(error)s') % {'text': text,
'pipeline': pipeline, 'error': str(e)}))
=====================================
gajim/common/pep.py
=====================================
--- a/gajim/common/pep.py
+++ b/gajim/common/pep.py
@@ -213,7 +213,7 @@ LOCATION_DATA = {
'street': _('street'),
'text': _('text'),
'timestamp': _('timestamp'),
- 'uri': _('uri')}
+ 'uri': _('URI')}
from gi.repository import GLib
=====================================
gajim/data/gui/chat_control.ui
=====================================
--- a/gajim/data/gui/chat_control.ui
+++ b/gajim/data/gui/chat_control.ui
@@ -802,7 +802,7 @@ audio-mic-volume-low</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes">Choose an encryption</property>
+ <property name="tooltip_text" translatable="yes">Choose encryption</property>
<property name="relief">none</property>
<child>
<placeholder/>
=====================================
gajim/data/gui/groupchat_control.ui
=====================================
--- a/gajim/data/gui/groupchat_control.ui
+++ b/gajim/data/gui/groupchat_control.ui
@@ -280,7 +280,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes">Choose an encryption</property>
+ <property name="tooltip_text" translatable="yes">Choose encryption</property>
<property name="relief">none</property>
<child>
<placeholder/>
=====================================
gajim/data/gui/join_groupchat_window.ui
=====================================
--- a/gajim/data/gui/join_groupchat_window.ui
+++ b/gajim/data/gui/join_groupchat_window.ui
@@ -48,7 +48,7 @@
<object class="GtkSwitch" id="autojoin_switch">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="tooltip_text" translatable="yes">Join this Groupchat everytime Gajim is started</property>
+ <property name="tooltip_text" translatable="yes">Join this Groupchat every time Gajim is started</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="active">True</property>
=====================================
gajim/data/gui/plugins_window.ui
=====================================
--- a/gajim/data/gui/plugins_window.ui
+++ b/gajim/data/gui/plugins_window.ui
@@ -75,7 +75,7 @@
</child>
<child>
<object class="GtkButton" id="install_plugin_button">
- <property name="label" translatable="yes">Install from zip</property>
+ <property name="label" translatable="yes">Install from ZIP</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
=====================================
gajim/data/gui/preferences_window.ui
=====================================
--- a/gajim/data/gui/preferences_window.ui
+++ b/gajim/data/gui/preferences_window.ui
@@ -2659,7 +2659,7 @@ to discover one from server.</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
- <property name="tooltip_text" translatable="yes">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.</property>
+ <property name="tooltip_text" translatable="yes">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.</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
=====================================
gajim/data/gui/shortcuts_window.ui
=====================================
--- a/gajim/data/gui/shortcuts_window.ui
+++ b/gajim/data/gui/shortcuts_window.ui
@@ -21,7 +21,7 @@
<object class="GtkShortcutsShortcut">
<property name="visible">1</property>
<property name="accelerator"><shift>Return <ctrl>Return</property>
- <property name="title" translatable="yes">Create a new line</property>
+ <property name="title" translatable="yes">Add new line</property>
</object>
</child>
<child>
@@ -42,7 +42,7 @@
<object class="GtkShortcutsShortcut">
<property name="visible">1</property>
<property name="accelerator"><ctrl>Up</property>
- <property name="title" translatable="yes">Previous sent message</property>
+ <property name="title" translatable="yes">Previously sent message</property>
</object>
</child>
<child>
=====================================
gajim/dialog_messages.py
=====================================
--- a/gajim/dialog_messages.py
+++ b/gajim/dialog_messages.py
@@ -155,7 +155,7 @@ messages = {
'unsecure-error': Message(
_('Unsecure'),
- _('Server returned unsecure transport (http)'),
+ _('Server returned unsecure transport (HTTP)'),
ErrorDialog),
'httpupload-response-error': Message(
@@ -170,7 +170,7 @@ messages = {
'httpupload-encryption-not-available': Message(
_('Encryption Error'),
- _('For the choosen encryption is no encryption method available'),
+ _('For the choosen encryption there is no encryption method available'),
ErrorDialog),
}
=====================================
gajim/dialogs.py
=====================================
--- a/gajim/dialogs.py
+++ b/gajim/dialogs.py
@@ -4073,9 +4073,9 @@ class Archiving313PreferencesWindow:
except Exception as e:
log.debug(e)
if not obj:
- msg = _('We got no response from the Server')
+ msg = _('No response from the Server')
else:
- msg = _('We received an error: {}').format(self.error_msg)
+ msg = _('Error received: {}').format(self.error_msg)
dialog = HigDialog(
self.window, Gtk.MessageType.INFO, Gtk.ButtonsType.OK,
@@ -5369,7 +5369,7 @@ Expires on: %(eo)s
<b>Fingerprint</b>
SHA-1 Fingerprint: %(sha1)s
-SHA256 Fingerprint: %(sha256)s
+SHA-256 Fingerprint: %(sha256)s
''') % {
'scn': subject.commonName, 'sorg': subject.organizationName,
'sou': subject.organizationalUnitName,
@@ -5456,15 +5456,15 @@ class ProgressWindow(Gtk.ApplicationWindow):
if self.file != obj.file:
return
if obj.status == 'request':
- self.label.set_text(_('Requesting HTTP Upload Slot...'))
+ self.label.set_text(_('Requesting HTTP Upload Slot…'))
elif obj.status == 'close':
self.destroy()
elif obj.status == 'upload':
- self.label.set_text(_('Uploading file via HTTP File Upload...'))
+ self.label.set_text(_('Uploading file via HTTP File Upload…'))
elif obj.status == 'update':
self.update_progress(obj.seen, obj.total)
elif obj.status == 'encrypt':
- self.label.set_text(_('Encrypting file...'))
+ self.label.set_text(_('Encrypting file…'))
def _pulse_progressbar(self):
self.progressbar.pulse()
=====================================
gajim/features_window.py
=====================================
--- a/gajim/features_window.py
+++ b/gajim/features_window.py
@@ -48,14 +48,14 @@ class FeaturesWindow:
_('Bonjour / Zeroconf'): (self.zeroconf_available,
_('Serverless chatting with autodetected clients in a local network.'),
_('Requires python-avahi.'),
- _('Requires pybonjour and bonjour SDK running (http://developer.apple.com/opensource/).')),
+ _('Requires pybonjour and bonjour SDK running (https://developer.apple.com/opensource/).')),
_('Command line'): (self.dbus_available,
_('A script to control Gajim via commandline.'),
_('Requires python-dbus.'),
_('Feature not available under Windows.')),
_('OpenPGP message encryption'): (self.gpg_available,
_('Ability to encrypting chat messages with OpenPGP.'),
- _('Requires gpg and python-gnupg (http://code.google.com/p/python-gnupg/).'),
+ _('Requires gpg and python-gnupg (%(url)s).') % {'url': 'https://bitbucket.org/vinay.sajip/python-gnupg'},
_('Requires gpg.exe in PATH.')),
_('Password encryption'): (self.some_keyring_available,
_('Passwords can be stored securely and not just in plaintext.'),
=====================================
gajim/gajim.py
=====================================
--- a/gajim/gajim.py
+++ b/gajim/gajim.py
@@ -78,7 +78,7 @@ class GajimApplication(Gtk.Application):
self.add_main_option('separate', ord('s'), GLib.OptionFlags.NONE,
GLib.OptionArg.NONE,
_('Separate profile files completely (even '
- 'history db and plugins)'))
+ 'history DB and plugins)'))
self.add_main_option('verbose', ord('v'), GLib.OptionFlags.NONE,
GLib.OptionArg.NONE,
_('Print XML stanzas and other debug '
=====================================
gajim/gui_interface.py
=====================================
--- a/gajim/gui_interface.py
+++ b/gajim/gui_interface.py
@@ -1389,7 +1389,7 @@ class Interface:
if obj.error_num in (18, 27):
checktext1 = _('Add this certificate to the list of trusted '
'certificates.\nSHA-1 fingerprint of the certificate:\n%(sha1)s'
- '\nSHA256 fingerprint of the certificate:\n%(sha256)s') % \
+ '\nSHA-256 fingerprint of the certificate:\n%(sha256)s') % \
{'sha1': obj.fingerprint_sha1, 'sha256': obj.fingerprint_sha256}
else:
checktext1 = ''
=====================================
gajim/gui_menu_builder.py
=====================================
--- a/gajim/gui_menu_builder.py
+++ b/gajim/gui_menu_builder.py
@@ -609,8 +609,8 @@ Build dynamic Application Menus
def get_singlechat_menu(control_id):
singlechat_menu = [
(_('Send File…'), [
- ('win.send-file-httpupload-', _('Upload File…')),
- ('win.send-file-jingle-', _('Send File Directly…')),
+ ('win.send-file-httpupload-', 'HTTP Upload'),
+ ('win.send-file-jingle-', 'Jingle'),
]),
('win.invite-contacts-', _('Invite Contacts')),
('win.add-to-roster-', _('Add to Roster')),
@@ -728,11 +728,11 @@ def get_account_menu(account):
sub menu: list
'''
account_menu = [
- ('-add-contact', _('Add Contact...')),
+ ('-add-contact', _('Add Contact…')),
('-join-groupchat', _('Join Group Chat')),
('-profile', _('Profile')),
('-services', _('Discover Services')),
- ('-start-single-chat', _('Send Single Message...')),
+ ('-start-single-chat', _('Send Single Message…')),
(_('Advanced'), [
('-archive', _('Archiving Preferences')),
('-sync-history', _('Synchronise History')),
@@ -741,10 +741,10 @@ def get_account_menu(account):
('-xml-console', _('XML Console'))
]),
(_('Admin'), [
- ('-send-server-message', _('Send Server Message...')),
- ('-set-motd', _('Set MOTD...')),
- ('-update-motd', _('Update MOTD...')),
- ('-delete-motd', _('Delete MOTD...'))
+ ('-send-server-message', _('Send Server Message…')),
+ ('-set-motd', _('Set MOTD…')),
+ ('-update-motd', _('Update MOTD…')),
+ ('-delete-motd', _('Delete MOTD…'))
]),
]
=====================================
gajim/message_textview.py
=====================================
--- a/gajim/message_textview.py
+++ b/gajim/message_textview.py
@@ -40,7 +40,7 @@ class MessageTextView(Gtk.TextView):
chat/groupchat windows
"""
UNDO_LIMIT = 20
- PLACEHOLDER = _('Write a message..')
+ PLACEHOLDER = _('Write a message…')
def __init__(self):
Gtk.TextView.__init__(self)
=====================================
gajim/notify.py
=====================================
--- a/gajim/notify.py
+++ b/gajim/notify.py
@@ -100,6 +100,7 @@ text=None, timeout=-1):
'type_': GLib.Variant('s', type_)}
variant_dict = GLib.Variant('a{sv}', dict_)
action = 'app.{}-open-event'.format(account)
+ #Button in notification
notification.add_button_with_target(_('Open'), action, variant_dict)
notification.set_default_action_and_target(action, variant_dict)
if event_type in (_('New Message'), _('New Single Message'),
=====================================
gajim/roster_window.py
=====================================
--- a/gajim/roster_window.py
+++ b/gajim/roster_window.py
@@ -2108,7 +2108,7 @@ class RosterWindow:
if keyid and not app.connections[account].gpg:
dialogs.WarningDialog(_('OpenPGP is not usable'),
_('Gajim needs python-gnupg >= 0.3.8\n'
- 'Beware there is an incompatible python package called gnupg.\n'
+ 'Beware there is an incompatible Python package called gnupg.\n'
'You will be connected to %s without OpenPGP.') % account)
self.send_status_continue(account, status, txt, auto, to)
@@ -4277,7 +4277,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 '
- 'XMPP accounts or transport accounts.')
+ 'XMPP- 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
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/faa88819a1f5badcc3a7030b76c0f310e6…
---
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/faa88819a1f5badcc3a7030b76c0f310e6…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / gajim
Commits:
6bd6294a by Philipp Hörist at 2018-03-25T01:16:20+01:00
Disable autoscroll when moving the slider
- - - - -
1 changed file:
- gajim/chat_control_base.py
Changes:
=====================================
gajim/chat_control_base.py
=====================================
--- a/gajim/chat_control_base.py
+++ b/gajim/chat_control_base.py
@@ -308,6 +308,12 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
id_ = widget.connect('changed',
self.on_conversation_vadjustment_changed)
self.handlers[id_] = widget
+
+ vscrollbar = self.conv_scrolledwindow.get_vscrollbar()
+ id_ = vscrollbar.connect('button-release-event',
+ self._on_scrollbar_button_release)
+ self.handlers[id_] = vscrollbar
+
self.correcting = False
self.last_sent_msg = None
@@ -1256,6 +1262,14 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
# There were events to remove
self.redraw_after_event_removed(jid)
+ def _on_scrollbar_button_release(self, scrollbar, event):
+ if event.get_button()[1] != 1:
+ # We want only to catch the left mouse button
+ return
+ if not gtkgui_helpers.at_the_end(scrollbar.get_parent()):
+ app.log('autoscroll').info('Autoscroll disabled')
+ self.conv_textview.autoscroll = False
+
def _on_scroll(self, widget, event):
if not self.conv_textview.autoscroll:
# autoscroll is already disabled
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/6bd6294ab25f6941a4fa9619a102896e76…
---
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/6bd6294ab25f6941a4fa9619a102896e76…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / gajim
Commits:
04052139 by Philipp Hörist at 2018-03-25T00:48:29+01:00
Dont use invalid sound devices
PulseAudio has devices that are None
Fixes #8797
- - - - -
1 changed file:
- gajim/common/multimedia_helpers.py
Changes:
=====================================
gajim/common/multimedia_helpers.py
=====================================
--- a/gajim/common/multimedia_helpers.py
+++ b/gajim/common/multimedia_helpers.py
@@ -44,6 +44,8 @@ class DeviceManager(object):
if devices:
self.devices[text % _('Default device')] = pipe % name
for device in devices:
+ if device is None:
+ continue
element.set_state(Gst.State.NULL)
element.set_property('device', device)
element.set_state(Gst.State.READY)
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/040521397e96535867be96c30b7fbf7803…
---
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/040521397e96535867be96c30b7fbf7803…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / gajim
Commits:
af9552d7 by Philipp Hörist at 2018-03-25T00:36:48+01:00
Fix Autoscroll (for real this time)
Fixes #8992
- - - - -
1 changed file:
- gajim/chat_control_base.py
Changes:
=====================================
gajim/chat_control_base.py
=====================================
--- a/gajim/chat_control_base.py
+++ b/gajim/chat_control_base.py
@@ -1268,9 +1268,26 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
return
else:
# On scrolliung UP disable autoscroll
- # has_direction is on some systems always False
- # so we cant use it
+ # get_scroll_direction() sets has_direction only TRUE
+ # if smooth scrolling is deactivated. If we have smooth
+ # smooth scrolling we have to use get_scroll_deltas()
has_direction, direction = event.get_scroll_direction()
+ if not has_direction:
+ direction = None
+ smooth, delta_x, delta_y = event.get_scroll_deltas()
+ if smooth:
+ if delta_y < 0:
+ direction = Gdk.ScrollDirection.UP
+ elif delta_y > 0:
+ direction = Gdk.ScrollDirection.DOWN
+ elif delta_x < 0:
+ direction = Gdk.ScrollDirection.LEFT
+ elif delta_x > 0:
+ direction = Gdk.ScrollDirection.RIGHT
+ else:
+ app.log('autoscroll').warning(
+ 'Scroll directions cant be determined')
+
if direction != Gdk.ScrollDirection.UP:
return
# Check if we have a Scrollbar
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/af9552d7044c6962154369da81b13af4f0…
---
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/af9552d7044c6962154369da81b13af4f0…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / gajim
Commits:
6207e607 by Philipp Hörist at 2018-03-24T21:57:40+01:00
Fix NoneType Error
element can be None if there was a error while calling Gst.ElementFactory.make()
- - - - -
1 changed file:
- gajim/common/multimedia_helpers.py
Changes:
=====================================
gajim/common/multimedia_helpers.py
=====================================
--- a/gajim/common/multimedia_helpers.py
+++ b/gajim/common/multimedia_helpers.py
@@ -14,9 +14,12 @@
## along with Gajim. If not, see <http://www.gnu.org/licenses/>.
import gi
+import logging
gi.require_version('Gst', '1.0')
from gi.repository import Gst
+log = logging.getLogger('gajim.c.multimedia_helpers')
+
class DeviceManager(object):
def __init__(self):
@@ -33,6 +36,8 @@ class DeviceManager(object):
def detect_element(self, name, text, pipe='%s'):
if Gst.ElementFactory.find(name):
element = Gst.ElementFactory.make(name, '%spresencetest' % name)
+ if element is None:
+ log.warning('could not create %spresencetest', name)
if hasattr(element.props, 'device'):
element.set_state(Gst.State.READY)
devices = element.get_properties('device')
@@ -49,7 +54,7 @@ class DeviceManager(object):
else:
self.devices[text] = pipe % name
else:
- print('element \'%s\' not found' % name)
+ log.info('element %s not found', name)
class AudioInputManager(DeviceManager):
@@ -108,4 +113,3 @@ class VideoOutputManager(DeviceManager):
# ximagesink
self.detect_element('ximagesink', _('X Window System (without Xv)'))
self.detect_element('autovideosink', _('Autodetect'))
-
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/6207e607a857c522997c94e79da08056cb…
---
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/6207e607a857c522997c94e79da08056cb…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / gajim
Commits:
0fb19c2b by Philipp Hörist at 2018-03-24T17:55:32+01:00
Show error message on account registration
Prefer the error message text over the error code
- - - - -
1 changed file:
- gajim/common/connection.py
Changes:
=====================================
gajim/common/connection.py
=====================================
--- a/gajim/common/connection.py
+++ b/gajim/common/connection.py
@@ -895,8 +895,9 @@ class Connection(CommonConnection, ConnectionHandlers):
if self.new_account_form:
def _on_register_result(result):
if not nbxmpp.isResultNode(result):
+ reason = result.getErrorMsg() or result.getError()
app.nec.push_incoming_event(AccountNotCreatedEvent(
- None, conn=self, reason=result.getError()))
+ None, conn=self, reason=reason))
return
if app.HAVE_GPG:
self.USE_GPG = True
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/0fb19c2b1c1e0962499e90cb42c686dda4…
---
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/0fb19c2b1c1e0962499e90cb42c686dda4…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / gajim
Commits:
e134e47d by Philipp Hörist at 2018-03-24T17:25:49+01:00
HistoryManager: Clear logs TextView when nothing is selected
- - - - -
1 changed file:
- gajim/history_manager.py
Changes:
=====================================
gajim/history_manager.py
=====================================
--- a/gajim/history_manager.py
+++ b/gajim/history_manager.py
@@ -264,11 +264,10 @@ class HistoryManager:
def on_jids_listview_selection_changed(self, widget, data=None):
liststore, list_of_paths = self.jids_listview.get_selection()\
.get_selected_rows()
- paths_len = len(list_of_paths)
- if paths_len == 0: # nothing is selected
- return
- self.logs_liststore.clear() # clear the store
+ self.logs_liststore.clear()
+ if not list_of_paths:
+ return
self.welcome_vbox.hide()
self.search_results_scrolledwindow.hide()
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/e134e47debad1d8ccda33771849dcfbbc5…
---
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/e134e47debad1d8ccda33771849dcfbbc5…
You're receiving this email because of your account on dev.gajim.org.