improve some strings

This commit is contained in:
Yann Leboulanger 2018-03-25 16:26:29 +02:00
parent f7d9c16735
commit faa88819a1
22 changed files with 74 additions and 73 deletions

View File

@ -3,11 +3,11 @@ Categories=Network;InstantMessaging;GTK;GNOME;
Name=Gajim Name=Gajim
GenericName=Jabber IM Client GenericName=Jabber IM Client
Comment=A GTK+ Jabber 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; Keywords=chat;messaging;im;xmpp;bonjour;voip;
Version=1.0 Version=1.0
Exec=gajim %u 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 Icon=org.gajim.Gajim
StartupNotify=true StartupNotify=true
StartupWMClass=Gajim StartupWMClass=Gajim

View File

@ -922,7 +922,7 @@ class ChatControl(ChatControlBase):
if not self.session.verified_identity: 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) ChatControlBase.print_conversation_line(self, _("Remote contact's identity not verified. Click the shield button for more details."), 'status', '', None)
else: else:
msg = _('E2E encryption disabled') msg = _('end-to-end encryption disabled')
ChatControlBase.print_conversation_line(self, msg, 'status', '', None) ChatControlBase.print_conversation_line(self, msg, 'status', '', None)
self._show_lock_image(e2e_is_active, 'E2E', self._show_lock_image(e2e_is_active, 'E2E',

View File

@ -1170,8 +1170,8 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
contact = app.contacts.get_contact(self.account, gc_contact.jid) contact = app.contacts.get_contact(self.account, gc_contact.jid)
if not contact or contact.sub not in ('both', 'to'): if not contact or contact.sub not in ('both', 'to'):
prim_text = _('Really send file?') prim_text = _('Really send file?')
sec_text = _('If you send a file to %s, he/she will know your ' sec_text = _('If you send a file to %s, your real JID will '
'real JID.') % gc_contact.name 'be revealed.') % gc_contact.name
dialog = dialogs.NonModalConfirmationDialog(prim_text, dialog = dialogs.NonModalConfirmationDialog(prim_text,
sec_text, on_response_ok=(_on_ok, gc_contact)) sec_text, on_response_ok=(_on_ok, gc_contact))
dialog.popup() dialog.popup()

View File

@ -296,7 +296,7 @@ class StandardGroupChatCommands(CommandContainer):
'room_jid': self.room_jid} 'room_jid': self.room_jid}
@command(raw=True, empty=True) @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): def join(self, jid):
if '@' not in jid: if '@' not in jid:
jid = jid + '@' + app.get_server_from_jid(self.room_jid) jid = jid + '@' + app.get_server_from_jid(self.room_jid)
@ -310,9 +310,9 @@ class StandardGroupChatCommands(CommandContainer):
@command(raw=True, empty=True) @command(raw=True, empty=True)
@doc(_(""" @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): def ban(self, who, reason):
if who in app.contacts.get_nick_list(self.account, self.room_jid): if who in app.contacts.get_nick_list(self.account, self.room_jid):

View File

@ -127,7 +127,7 @@ class Config:
'ascii_emoticons': [opt_bool, True, _('Enable ASCII emoticons'), True], 'ascii_emoticons': [opt_bool, True, _('Enable ASCII emoticons'), True],
'ascii_formatting': [ opt_bool, True, 'ascii_formatting': [ opt_bool, True,
_('Treat * / _ pairs as possible formatting characters.'), 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.')], 'remove */_ . So *abc* will be bold but with * * not removed.')],
'rst_formatting_outgoing_messages': [ opt_bool, False, '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)')], _('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-y-position': [opt_int, 0],
'single-msg-width': [opt_int, 400], 'single-msg-width': [opt_int, 400],
'single-msg-height': [opt_int, 280], '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_x-position': [ opt_int, 0 ],
'roster_y-position': [ opt_int, 0 ], 'roster_y-position': [ opt_int, 0 ],
'roster_width': [ opt_int, 200 ], '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_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_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_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).')], '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], 'last_roster_visible': [opt_bool, True],
'key_up_lines': [opt_int, 25, _('How many lines to store for Ctrl+KeyUP.')], 'key_up_lines': [opt_int, 25, _('How many lines to store for Ctrl+KeyUP.')],
'version': [ opt_str, gajim.__version__ ], # which version created the config 'version': [ opt_str, gajim.__version__ ], # which version created the config
'search_engine': [opt_str, 'https://www.google.com/search?&q=%s&sourceid=gajim'], '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_wikipedia': [opt_bool, False],
'always_english_wiktionary': [opt_bool, True], 'always_english_wiktionary': [opt_bool, True],
'remote_control': [opt_bool, False, _('If checked, Gajim can be controlled remotely using gajim-remote.'), 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)')], '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], 'notify_on_file_complete': [opt_bool, True],
'file_transfers_port': [opt_int, 28011], '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, ''], 'conversation_font': [opt_str, ''],
'use_kib_mib': [opt_bool, False, _('IEC standard says KiB = 1024 bytes, KB = 1000 bytes.')], 'use_kib_mib': [opt_bool, False, _('IEC standard says KiB = 1024 bytes, KB = 1000 bytes.')],
'notify_on_all_muc_messages': [opt_bool, False], 'notify_on_all_muc_messages': [opt_bool, False],
@ -235,10 +235,10 @@ class Config:
'notification_position_x': [opt_int, -1], 'notification_position_x': [opt_int, -1],
'notification_position_y': [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.')], '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.')], '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.')], '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_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_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_avatars_in_roster': [opt_bool, True, '', True],
'show_mood_in_roster': [opt_bool, True, '', True], 'show_mood_in_roster': [opt_bool, True, '', True],
'show_activity_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_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.')], 'just_disconnected_bg_color': [opt_str, '#ab6161', _('Background color of contacts when they just signed out.')],
'restored_messages_color': [opt_color, '#555753'], '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.')], '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.')], '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], '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.')], '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', '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.')], _('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_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.')], '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_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_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.')], '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.')], '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 ], '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.')], '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_metacontacts': [ opt_str, '', _('Show the confirm metacontacts creation dialog or not? Empty string means 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_block': [ opt_str, '', _('Show the confirm block contact dialog or not? Empty string means 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.')], '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.')], '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.')], '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')], '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.')], '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.')], '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.')], '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], '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], '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_input_device': [opt_str, 'autoaudiosrc ! volume name=gajim_vol'],
'audio_output_device': [opt_str, 'autoaudiosink'], 'audio_output_device': [opt_str, 'autoaudiosink'],
@ -291,20 +291,20 @@ class Config:
'video_output_device': [opt_str, 'autovideosink'], 'video_output_device': [opt_str, 'autovideosink'],
'video_framerate': [opt_str, '', _('Optionally fix jingle output video framerate. Example: 10/1 or 25/2')], '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_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_input_volume': [opt_int, 50],
'audio_output_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')], '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')], '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.')], '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')], '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')], '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], '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')], '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 ], '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.') ], 'restore_last_status': [ opt_bool, False, _('If enabled, restore the last status that was used.') ],
'autoreconnect': [ opt_bool, True ], '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], 'active': [ opt_bool, True, _('If False, this account will be disabled and will not appear in roster window.'), True],
'proxy': [ opt_str, '', '', True ], 'proxy': [ opt_str, '', '', True ],
'keyid': [ opt_str, '', '', True ], 'keyid': [ opt_str, '', '', True ],
@ -365,7 +365,7 @@ class Config:
# send keepalive every N seconds of inactivity # send keepalive every N seconds of inactivity
'keep_alive_every_foo_secs': [ opt_int, 55 ], 'keep_alive_every_foo_secs': [ opt_int, 55 ],
'ping_alive_every_foo_secs': [ opt_int, 120 ], '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 for 1 minutes before giving up (aka. timeout after those seconds)
'try_connecting_for_foo_secs': [ opt_int, 60 ], 'try_connecting_for_foo_secs': [ opt_int, 60 ],
'http_auth': [opt_str, 'ask'], # yes, no, ask 'http_auth': [opt_str, 'ask'], # yes, no, ask
@ -373,7 +373,7 @@ class Config:
# proxy65 for FT # proxy65 for FT
'file_transfer_proxies': [opt_str, ''], '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], '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-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-y-position': [opt_int, -1], # Default is to let the wm decide
'msgwin-width': [opt_int, 480], 'msgwin-width': [opt_int, 480],
@ -407,7 +407,7 @@ class Config:
'oauth2_refresh_token': [ opt_str, '', _('Latest token for OAuth 2.0 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_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.')], '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, '' ], 'recent_groupchats': [ opt_str, '' ],
'httpupload_verify': [ opt_bool, True, _('HTTP Upload: Enable HTTPS Verification')], '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\'')], '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' ], 'state_muc_directed_msg_color': [ opt_color, 'red2' ],
}, {}), }, {}),
'contacts': ({ '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')], 'encryption': ({'encryption': [ opt_str, '', _('The currently active encryption for that contact')],
},{}), },{}),
'rooms': ({ '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_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')], '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': ({ '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.')], '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.')],

View File

@ -121,7 +121,7 @@ class JingleRTPContent(JingleContent):
InformationEvent( InformationEvent(
None, conn=self.session.connection, level='error', None, conn=self.session.connection, level='error',
pri_txt=_('%s configuration error') % text.capitalize(), pri_txt=_('%s configuration error') % text.capitalize(),
sec_txt=_('Couldnt setup %(text)s. Check your ' sec_txt=_('Couldnt set up %(text)s. Check your '
'configuration.\n\nPipeline was:\n%(pipeline)s\n\n' 'configuration.\n\nPipeline was:\n%(pipeline)s\n\n'
'Error was:\n%(error)s') % {'text': text, 'Error was:\n%(error)s') % {'text': text,
'pipeline': pipeline, 'error': str(e)})) 'pipeline': pipeline, 'error': str(e)}))

View File

@ -213,7 +213,7 @@ LOCATION_DATA = {
'street': _('street'), 'street': _('street'),
'text': _('text'), 'text': _('text'),
'timestamp': _('timestamp'), 'timestamp': _('timestamp'),
'uri': _('uri')} 'uri': _('URI')}
from gi.repository import GLib from gi.repository import GLib

View File

@ -802,7 +802,7 @@ audio-mic-volume-low</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="receives_default">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> <property name="relief">none</property>
<child> <child>
<placeholder/> <placeholder/>

View File

@ -280,7 +280,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="receives_default">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> <property name="relief">none</property>
<child> <child>
<placeholder/> <placeholder/>

View File

@ -48,7 +48,7 @@
<object class="GtkSwitch" id="autojoin_switch"> <object class="GtkSwitch" id="autojoin_switch">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">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="halign">start</property>
<property name="valign">center</property> <property name="valign">center</property>
<property name="active">True</property> <property name="active">True</property>

View File

@ -75,7 +75,7 @@
</child> </child>
<child> <child>
<object class="GtkButton" id="install_plugin_button"> <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="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="receives_default">True</property> <property name="receives_default">True</property>

View File

@ -2659,7 +2659,7 @@ to discover one from server.</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="receives_default">False</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="use_underline">True</property>
<property name="xalign">0</property> <property name="xalign">0</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>

View File

@ -21,7 +21,7 @@
<object class="GtkShortcutsShortcut"> <object class="GtkShortcutsShortcut">
<property name="visible">1</property> <property name="visible">1</property>
<property name="accelerator">&lt;shift&gt;Return &lt;ctrl&gt;Return</property> <property name="accelerator">&lt;shift&gt;Return &lt;ctrl&gt;Return</property>
<property name="title" translatable="yes">Create a new line</property> <property name="title" translatable="yes">Add new line</property>
</object> </object>
</child> </child>
<child> <child>
@ -42,7 +42,7 @@
<object class="GtkShortcutsShortcut"> <object class="GtkShortcutsShortcut">
<property name="visible">1</property> <property name="visible">1</property>
<property name="accelerator">&lt;ctrl&gt;Up</property> <property name="accelerator">&lt;ctrl&gt;Up</property>
<property name="title" translatable="yes">Previous sent message</property> <property name="title" translatable="yes">Previously sent message</property>
</object> </object>
</child> </child>
<child> <child>

View File

@ -155,7 +155,7 @@ messages = {
'unsecure-error': Message( 'unsecure-error': Message(
_('Unsecure'), _('Unsecure'),
_('Server returned unsecure transport (http)'), _('Server returned unsecure transport (HTTP)'),
ErrorDialog), ErrorDialog),
'httpupload-response-error': Message( 'httpupload-response-error': Message(
@ -170,7 +170,7 @@ messages = {
'httpupload-encryption-not-available': Message( 'httpupload-encryption-not-available': Message(
_('Encryption Error'), _('Encryption Error'),
_('For the choosen encryption is no encryption method available'), _('For the choosen encryption there is no encryption method available'),
ErrorDialog), ErrorDialog),
} }

View File

@ -4073,9 +4073,9 @@ class Archiving313PreferencesWindow:
except Exception as e: except Exception as e:
log.debug(e) log.debug(e)
if not obj: if not obj:
msg = _('We got no response from the Server') msg = _('No response from the Server')
else: else:
msg = _('We received an error: {}').format(self.error_msg) msg = _('Error received: {}').format(self.error_msg)
dialog = HigDialog( dialog = HigDialog(
self.window, Gtk.MessageType.INFO, Gtk.ButtonsType.OK, self.window, Gtk.MessageType.INFO, Gtk.ButtonsType.OK,
@ -5369,7 +5369,7 @@ Expires on: %(eo)s
<b>Fingerprint</b> <b>Fingerprint</b>
SHA-1 Fingerprint: %(sha1)s SHA-1 Fingerprint: %(sha1)s
SHA256 Fingerprint: %(sha256)s SHA-256 Fingerprint: %(sha256)s
''') % { ''') % {
'scn': subject.commonName, 'sorg': subject.organizationName, 'scn': subject.commonName, 'sorg': subject.organizationName,
'sou': subject.organizationalUnitName, 'sou': subject.organizationalUnitName,
@ -5456,15 +5456,15 @@ class ProgressWindow(Gtk.ApplicationWindow):
if self.file != obj.file: if self.file != obj.file:
return return
if obj.status == 'request': if obj.status == 'request':
self.label.set_text(_('Requesting HTTP Upload Slot...')) self.label.set_text(_('Requesting HTTP Upload Slot'))
elif obj.status == 'close': elif obj.status == 'close':
self.destroy() self.destroy()
elif obj.status == 'upload': 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': elif obj.status == 'update':
self.update_progress(obj.seen, obj.total) self.update_progress(obj.seen, obj.total)
elif obj.status == 'encrypt': elif obj.status == 'encrypt':
self.label.set_text(_('Encrypting file...')) self.label.set_text(_('Encrypting file'))
def _pulse_progressbar(self): def _pulse_progressbar(self):
self.progressbar.pulse() self.progressbar.pulse()

View File

@ -48,14 +48,14 @@ class FeaturesWindow:
_('Bonjour / Zeroconf'): (self.zeroconf_available, _('Bonjour / Zeroconf'): (self.zeroconf_available,
_('Serverless chatting with autodetected clients in a local network.'), _('Serverless chatting with autodetected clients in a local network.'),
_('Requires python-avahi.'), _('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, _('Command line'): (self.dbus_available,
_('A script to control Gajim via commandline.'), _('A script to control Gajim via commandline.'),
_('Requires python-dbus.'), _('Requires python-dbus.'),
_('Feature not available under Windows.')), _('Feature not available under Windows.')),
_('OpenPGP message encryption'): (self.gpg_available, _('OpenPGP message encryption'): (self.gpg_available,
_('Ability to encrypting chat messages with OpenPGP.'), _('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.')), _('Requires gpg.exe in PATH.')),
_('Password encryption'): (self.some_keyring_available, _('Password encryption'): (self.some_keyring_available,
_('Passwords can be stored securely and not just in plaintext.'), _('Passwords can be stored securely and not just in plaintext.'),

View File

@ -78,7 +78,7 @@ class GajimApplication(Gtk.Application):
self.add_main_option('separate', ord('s'), GLib.OptionFlags.NONE, self.add_main_option('separate', ord('s'), GLib.OptionFlags.NONE,
GLib.OptionArg.NONE, GLib.OptionArg.NONE,
_('Separate profile files completely (even ' _('Separate profile files completely (even '
'history db and plugins)')) 'history DB and plugins)'))
self.add_main_option('verbose', ord('v'), GLib.OptionFlags.NONE, self.add_main_option('verbose', ord('v'), GLib.OptionFlags.NONE,
GLib.OptionArg.NONE, GLib.OptionArg.NONE,
_('Print XML stanzas and other debug ' _('Print XML stanzas and other debug '

View File

@ -1389,7 +1389,7 @@ class Interface:
if obj.error_num in (18, 27): if obj.error_num in (18, 27):
checktext1 = _('Add this certificate to the list of trusted ' checktext1 = _('Add this certificate to the list of trusted '
'certificates.\nSHA-1 fingerprint of the certificate:\n%(sha1)s' '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} {'sha1': obj.fingerprint_sha1, 'sha256': obj.fingerprint_sha256}
else: else:
checktext1 = '' checktext1 = ''

View File

@ -609,8 +609,8 @@ Build dynamic Application Menus
def get_singlechat_menu(control_id): def get_singlechat_menu(control_id):
singlechat_menu = [ singlechat_menu = [
(_('Send File…'), [ (_('Send File…'), [
('win.send-file-httpupload-', _('Upload File…')), ('win.send-file-httpupload-', 'HTTP Upload'),
('win.send-file-jingle-', _('Send File Directly…')), ('win.send-file-jingle-', 'Jingle'),
]), ]),
('win.invite-contacts-', _('Invite Contacts')), ('win.invite-contacts-', _('Invite Contacts')),
('win.add-to-roster-', _('Add to Roster')), ('win.add-to-roster-', _('Add to Roster')),
@ -728,11 +728,11 @@ def get_account_menu(account):
sub menu: list sub menu: list
''' '''
account_menu = [ account_menu = [
('-add-contact', _('Add Contact...')), ('-add-contact', _('Add Contact')),
('-join-groupchat', _('Join Group Chat')), ('-join-groupchat', _('Join Group Chat')),
('-profile', _('Profile')), ('-profile', _('Profile')),
('-services', _('Discover Services')), ('-services', _('Discover Services')),
('-start-single-chat', _('Send Single Message...')), ('-start-single-chat', _('Send Single Message')),
(_('Advanced'), [ (_('Advanced'), [
('-archive', _('Archiving Preferences')), ('-archive', _('Archiving Preferences')),
('-sync-history', _('Synchronise History')), ('-sync-history', _('Synchronise History')),
@ -741,10 +741,10 @@ def get_account_menu(account):
('-xml-console', _('XML Console')) ('-xml-console', _('XML Console'))
]), ]),
(_('Admin'), [ (_('Admin'), [
('-send-server-message', _('Send Server Message...')), ('-send-server-message', _('Send Server Message')),
('-set-motd', _('Set MOTD...')), ('-set-motd', _('Set MOTD')),
('-update-motd', _('Update MOTD...')), ('-update-motd', _('Update MOTD')),
('-delete-motd', _('Delete MOTD...')) ('-delete-motd', _('Delete MOTD'))
]), ]),
] ]

View File

@ -40,7 +40,7 @@ class MessageTextView(Gtk.TextView):
chat/groupchat windows chat/groupchat windows
""" """
UNDO_LIMIT = 20 UNDO_LIMIT = 20
PLACEHOLDER = _('Write a message..') PLACEHOLDER = _('Write a message')
def __init__(self): def __init__(self):
Gtk.TextView.__init__(self) Gtk.TextView.__init__(self)

View File

@ -100,6 +100,7 @@ text=None, timeout=-1):
'type_': GLib.Variant('s', type_)} 'type_': GLib.Variant('s', type_)}
variant_dict = GLib.Variant('a{sv}', dict_) variant_dict = GLib.Variant('a{sv}', dict_)
action = 'app.{}-open-event'.format(account) action = 'app.{}-open-event'.format(account)
#Button in notification
notification.add_button_with_target(_('Open'), action, variant_dict) notification.add_button_with_target(_('Open'), action, variant_dict)
notification.set_default_action_and_target(action, variant_dict) notification.set_default_action_and_target(action, variant_dict)
if event_type in (_('New Message'), _('New Single Message'), if event_type in (_('New Message'), _('New Single Message'),

View File

@ -2108,7 +2108,7 @@ class RosterWindow:
if keyid and not app.connections[account].gpg: if keyid and not app.connections[account].gpg:
dialogs.WarningDialog(_('OpenPGP is not usable'), dialogs.WarningDialog(_('OpenPGP is not usable'),
_('Gajim needs python-gnupg >= 0.3.8\n' _('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) 'You will be connected to %s without OpenPGP.') % account)
self.send_status_continue(account, status, txt, auto, to) self.send_status_continue(account, status, txt, auto, to)
@ -4277,7 +4277,7 @@ class RosterWindow:
'want to continue?') 'want to continue?')
sectext = _('Metacontacts are a way to regroup several contacts in one ' sectext = _('Metacontacts are a way to regroup several contacts in one '
'line. Generally it is used when the same person has several ' '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, dlg = dialogs.ConfirmationDialogCheck(pritext, sectext,
_('_Do not ask me again'), on_response_ok=merge_contacts) _('_Do not ask me again'), on_response_ok=merge_contacts)
if not confirm_metacontacts: # First time we see this window if not confirm_metacontacts: # First time we see this window