# HG changeset patch # User Goffi # Date 1623688645 -7200 # Node ID 828fc830633a0e075fc3e0147c95df65dc1a128f # Parent 04283582966fa8926e4f5d71f46b40c399ccc541 i18n: extraction update diff -r 04283582966f -r 828fc830633a i18n/sat.pot --- a/i18n/sat.pot Mon Jun 14 18:35:12 2021 +0200 +++ b/i18n/sat.pot Mon Jun 14 18:37:25 2021 +0200 @@ -1,2201 +1,1003 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# Translations template for Libervia. +# Copyright (C) 2021 ORGANIZATION +# This file is distributed under the same license as the Libervia project. +# FIRST AUTHOR , 2021. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-03-06 21:21+0100\n" +"Project-Id-Version: Libervia VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2021-06-15 10:11+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" -"Language: \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" - -#: frontends/src/bridge/dbus_bridge.py:78 -#: src/bridge/bridge_constructor/constructors/dbus/dbus_core_template.py:227 -#: src/bridge/bridge_constructor/constructors/dbus/dbus_frontend_template.py:78 -#: src/bridge/bridge_constructor/generated/dbus_bridge.py:78 -#: src/bridge/dbus_bridge.py:578 +"Generated-By: Babel 2.9.0\n" + +#: sat/bridge/bridge_constructor/constructors/dbus/dbus_core_template.py:273 +#: sat/bridge/bridge_constructor/constructors/dbus/dbus_frontend_template.py:85 +#: sat/bridge/bridge_constructor/generated/dbus_bridge.py:85 +#: sat/bridge/dbus_bridge.py:747 sat_frontends/bridge/dbus_bridge.py:85 msgid "" "D-Bus is not launched, please see README to see instructions on how to " "launch it" msgstr "" -#: frontends/src/bridge/dbus_bridge.py:91 -#: src/bridge/bridge_constructor/constructors/dbus/dbus_frontend_template.py:91 -#: src/bridge/bridge_constructor/generated/dbus_bridge.py:91 +#: sat/bridge/bridge_constructor/constructors/dbus/dbus_frontend_template.py:99 +#: sat/bridge/bridge_constructor/generated/dbus_bridge.py:99 +#: sat_frontends/bridge/dbus_bridge.py:99 msgid "Unknown interface" msgstr "" -#: frontends/src/jp/base.py:115 -msgid "" -"ProgressBar not available, please download it at http://pypi.python.org/pypi/" -"progressbar" -msgstr "" - -#: frontends/src/jp/base.py:116 -msgid "" -"Progress bar deactivated\n" -"--\n" -msgstr "" - -#: frontends/src/jp/base.py:173 -msgid "Available commands" -msgstr "" - -#: frontends/src/jp/base.py:188 frontends/src/quick_frontend/quick_app.py:299 -msgid "Can't connect to SàT backend, are you sure it's launched ?" -msgstr "" - -#: frontends/src/jp/base.py:190 frontends/src/quick_frontend/quick_app.py:302 -msgid "Can't init bridge" -msgstr "" - -#: frontends/src/jp/base.py:192 frontends/src/quick_frontend/quick_app.py:305 -msgid "Error while initialising bridge: {}" -msgstr "" - -#: frontends/src/jp/base.py:291 -#, python-format -msgid "Use PROFILE profile key (default: %(default)s)" -msgstr "" - -#: frontends/src/jp/base.py:292 -msgid "Password used to connect profile, if necessary" -msgstr "" - -#: frontends/src/jp/base.py:296 -msgid "Connect the profile before doing anything else" -msgstr "" - -#: frontends/src/jp/base.py:301 -msgid "Start a profile session without connecting" -msgstr "" - -#: frontends/src/jp/base.py:305 -msgid "Show progress bar" -msgstr "" - -#: frontends/src/jp/base.py:308 -msgid "Add a verbosity level (can be used multiple times)" -msgstr "" - -#: frontends/src/jp/base.py:336 -msgid "Can't import {} plugin, ignoring it" -msgstr "" - -#: frontends/src/jp/base.py:340 -#, python-brace-format -msgid "Missing module for plugin {name}: {missing}" -msgstr "" - -#: frontends/src/jp/base.py:354 -#, python-brace-format -msgid "Invalid plugin module [{type}] {module}" -msgstr "" - -#: frontends/src/jp/base.py:368 -msgid "User interruption: good bye" -msgstr "" - -#: frontends/src/jp/base.py:437 -#, python-format -msgid "%s is not a valid JID !" -msgstr "" - -#: frontends/src/jp/base.py:461 -#, python-brace-format -msgid "Can't connect profile: {reason}" -msgstr "" - -#: frontends/src/jp/base.py:465 -#, python-brace-format -msgid "Can't start {profile}'s session: {reason}" -msgstr "" - -#: frontends/src/jp/base.py:471 -#, python-brace-format -msgid "The profile [{profile}] doesn't exist" -msgstr "" - -#: frontends/src/jp/base.py:485 -#, python-brace-format -msgid "" -"Session for [{profile}] is not started, please start it before using jp, or " -"use either --start-session or --connect option" -msgstr "" - -#: frontends/src/jp/base.py:501 -#, python-brace-format -msgid "" -"Profile [{profile}] is not connected, please connect it before using jp, or " -"use --connect option" -msgstr "" - -#: frontends/src/jp/base.py:582 -msgid "select output format (default: {})" -msgstr "" - -#: frontends/src/jp/base.py:583 -msgid "output specific option" -msgstr "" - -#: frontends/src/jp/base.py:667 -msgid "file size is not known, we can't show a progress bar" -msgstr "" - -#: frontends/src/jp/base.py:672 -msgid "Progress: " -msgstr "" - -#: frontends/src/jp/base.py:696 -msgid "Operation started" -msgstr "" - -#: frontends/src/jp/base.py:712 -msgid "Operation successfully finished" -msgstr "" - -#: frontends/src/jp/base.py:719 -msgid "Error while doing operation: {}" -msgstr "" - -#: frontends/src/jp/cmd_adhoc.py:30 -msgid "Remote control a software" -msgstr "" - -#: frontends/src/jp/cmd_adhoc.py:33 -msgid "Software name" -msgstr "" - -#: frontends/src/jp/cmd_adhoc.py:34 -msgid "Jids allowed to use the command" -msgstr "" - -#: frontends/src/jp/cmd_adhoc.py:35 -msgid "Groups allowed to use the command" -msgstr "" - -#: frontends/src/jp/cmd_adhoc.py:36 -msgid "Groups that are *NOT* allowed to use the command" -msgstr "" - -#: frontends/src/jp/cmd_adhoc.py:37 -msgid "Jids that are *NOT* allowed to use the command" -msgstr "" - -#: frontends/src/jp/cmd_adhoc.py:38 -msgid "Loop on the commands" -msgstr "" - -#: frontends/src/jp/cmd_adhoc.py:52 -msgid "No bus name found" -msgstr "" - -#: frontends/src/jp/cmd_adhoc.py:54 -#, python-format -msgid "Bus name found: [%s]" -msgstr "" - -#: frontends/src/jp/cmd_adhoc.py:57 -#, python-format -msgid "Command found: (path:%(path)s, iface: %(iface)s) [%(command)s]" -msgstr "" - -#: frontends/src/jp/cmd_adhoc.py:66 -msgid "Ad-hoc commands" -msgstr "" - -#: frontends/src/jp/cmd_avatar.py:36 -msgid "set avatar of the profile" -msgstr "" - -#: frontends/src/jp/cmd_avatar.py:40 -msgid "path to the image to upload" -msgstr "" - -#: frontends/src/jp/cmd_avatar.py:46 frontends/src/jp/cmd_file.py:82 -#: frontends/src/jp/cmd_file.py:264 -msgid "file [{}] doesn't exist !" -msgstr "" - -#: frontends/src/jp/cmd_avatar.py:52 -msgid "avatar has been set" -msgstr "" - -#: frontends/src/jp/cmd_avatar.py:56 -#, python-brace-format -msgid "error while uploading avatar: {msg}" -msgstr "" - -#: frontends/src/jp/cmd_avatar.py:63 -msgid "retrieve avatar of an entity" -msgstr "" - -#: frontends/src/jp/cmd_avatar.py:67 -msgid "entity" -msgstr "" - -#: frontends/src/jp/cmd_avatar.py:68 -msgid "show avatar" -msgstr "" - -#: frontends/src/jp/cmd_avatar.py:90 -msgid "No avatar found." -msgstr "" - -#: frontends/src/jp/cmd_avatar.py:100 -#, python-brace-format -msgid "error while getting avatar: {msg}" -msgstr "" - -#: frontends/src/jp/cmd_avatar.py:111 -msgid "avatar uploading/retrieving" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:197 -msgid "get blog item(s)" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:201 -msgid "PubSub node to request" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:203 -msgid "item(s) id(s) to get (default: request all items)" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:204 -msgid "maximum number of items to get ({} to get all items)" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:207 -msgid "microblog data key(s) to display (default: depend of verbosity)" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:209 -msgid "JID of the PubSub service (default: request profile own blog)" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:369 -msgid "edit an existing or new blog post" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:373 -msgid "URL of the item to edit, or keyword" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:374 -msgid "launch a blog preview in parallel" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:375 -msgid "title of the item" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:376 -msgid "tag (category) of your item" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:377 -msgid "disable comments" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:633 -msgid "preview a blog content" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:637 -msgid "use inotify to handle preview" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:638 -msgid "path to the content file" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:775 -msgid "import an external blog" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:779 -msgid "importer name, nothing to display importers list" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:780 -msgid "original blog host" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:781 -msgid "do *NOT* upload images (default: do upload images)" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:782 -msgid "do not upload images from this host (default: upload all images)" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:783 -msgid "ignore invalide TLS certificate for uploads" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:785 -msgid "importer specific options (see importer description)" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:787 -msgid "PubSub service where the items must be uploaded (default: server)" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:789 -msgid "" -"importer data location (see importer description), nothing to show importer " -"description" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:792 -msgid "Blog upload started" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:795 -msgid "Blog uploaded successfully" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:805 -#, python-brace-format -msgid "" -"\n" -"To redirect old URLs to new ones, put the following lines in your sat.conf " -"file, in [libervia] section:\n" -"\n" -"{conf}" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:808 -msgid "Error while uploading blog: {}" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:811 -#, python-brace-format -msgid "Error while trying to upload a blog: {reason}" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:818 -#, python-brace-format -msgid "{name} argument can't be used without location argument" -msgstr "" - -#: frontends/src/jp/cmd_blog.py:854 -msgid "blog/microblog management" -msgstr "" - -#: frontends/src/jp/cmd_bookmarks.py:32 -#, python-format -msgid "storage location (default: %(default)s)" -msgstr "" - -#: frontends/src/jp/cmd_bookmarks.py:33 -#, python-format -msgid "bookmarks type (default: %(default)s)" -msgstr "" - -#: frontends/src/jp/cmd_bookmarks.py:42 -msgid "list bookmarks" -msgstr "" - -#: frontends/src/jp/cmd_bookmarks.py:70 -msgid "remove a bookmark" -msgstr "" - -#: frontends/src/jp/cmd_bookmarks.py:75 frontends/src/jp/cmd_bookmarks.py:89 -msgid "jid (for muc bookmark) or url of to remove" -msgstr "" - -#: frontends/src/jp/cmd_bookmarks.py:84 src/plugins/plugin_xep_0048.py:252 -msgid "add a bookmark" -msgstr "" - -#: frontends/src/jp/cmd_bookmarks.py:90 -msgid "bookmark name" -msgstr "" - -#: frontends/src/jp/cmd_bookmarks.py:91 -msgid "MUC specific options" -msgstr "" - -#: frontends/src/jp/cmd_bookmarks.py:92 -msgid "nickname" -msgstr "" - -#: frontends/src/jp/cmd_bookmarks.py:93 -msgid "join room on profile connection" -msgstr "" - -#: frontends/src/jp/cmd_bookmarks.py:98 -msgid "You can't use --autojoin or --nick with --type url" -msgstr "" - -#: frontends/src/jp/cmd_bookmarks.py:114 -msgid "manage bookmarks" -msgstr "" - -#: frontends/src/jp/cmd_debug.py:49 -msgid "call a bridge method" -msgstr "" - -#: frontends/src/jp/cmd_debug.py:54 -msgid "name of the method to execute" -msgstr "" - -#: frontends/src/jp/cmd_debug.py:55 -msgid "argument of the method" -msgstr "" - -#: frontends/src/jp/cmd_debug.py:63 -msgid "Error while executing {}: {}" -msgstr "" - -#: frontends/src/jp/cmd_debug.py:76 -msgid "bad arguments" -msgstr "" - -#: frontends/src/jp/cmd_debug.py:82 -msgid "send a fake signal from backend" -msgstr "" - -#: frontends/src/jp/cmd_debug.py:86 -msgid "name of the signal to send" -msgstr "" - -#: frontends/src/jp/cmd_debug.py:87 -msgid "argument of the signal" -msgstr "" - -#: frontends/src/jp/cmd_debug.py:101 -msgid "bridge s(t)imulation" -msgstr "" - -#: frontends/src/jp/cmd_debug.py:108 -msgid "debugging tools" -msgstr "" - -#: frontends/src/jp/cmd_file.py:38 -msgid "Send a file to a contact" -msgstr "" - -#: frontends/src/jp/cmd_file.py:42 -msgid "a list of file" -msgstr "" - -#: frontends/src/jp/cmd_file.py:43 frontends/src/jp/cmd_message.py:44 -#: frontends/src/jp/cmd_pipe.py:42 -msgid "the destination jid" -msgstr "" - -#: frontends/src/jp/cmd_file.py:44 -msgid "make a bzip2 tarball" -msgstr "" - -#: frontends/src/jp/cmd_file.py:51 frontends/src/jp/cmd_file.py:121 -msgid "File copy started" -msgstr "" - -#: frontends/src/jp/cmd_file.py:54 -msgid "File sent successfully" -msgstr "" - -#: frontends/src/jp/cmd_file.py:57 -msgid "Error while sending file: {}" -msgstr "" - -#: frontends/src/jp/cmd_file.py:66 -#, python-brace-format -msgid "File request sent to {jid}" -msgstr "" - -#: frontends/src/jp/cmd_file.py:71 -#, python-brace-format -msgid "Can't send file to {jid}" -msgstr "" - -#: frontends/src/jp/cmd_file.py:75 -#, python-brace-format -msgid "Error while trying to send a file: {reason}" -msgstr "" - -#: frontends/src/jp/cmd_file.py:85 -msgid "[{}] is a dir ! Please send files inside or use compression" -msgstr "" - -#: frontends/src/jp/cmd_file.py:93 -msgid "bz2 is an experimental option, use with caution" -msgstr "" - -#: frontends/src/jp/cmd_file.py:95 -msgid "Starting compression, please wait..." -msgstr "" - -#: frontends/src/jp/cmd_file.py:100 -msgid "Adding {}" -msgstr "" - -#: frontends/src/jp/cmd_file.py:103 -msgid "Done !" -msgstr "" - -#: frontends/src/jp/cmd_file.py:115 -msgid "Wait for a file to be sent by a contact" -msgstr "" - -#: frontends/src/jp/cmd_file.py:124 -msgid "File received successfully" -msgstr "" - -#: frontends/src/jp/cmd_file.py:127 -#, python-brace-format -msgid "hash checked: {algo}:{checksum}" -msgstr "" - -#: frontends/src/jp/cmd_file.py:132 -msgid "hash is checked but hash value is missing" -msgstr "" - -#: frontends/src/jp/cmd_file.py:134 -msgid "hash can't be verified" -msgstr "" - -#: frontends/src/jp/cmd_file.py:137 -msgid "Error while receiving file: {}" -msgstr "" - -#: frontends/src/jp/cmd_file.py:146 frontends/src/jp/cmd_pipe.py:73 -msgid "Action has no XMLUI" -msgstr "" - -#: frontends/src/jp/cmd_file.py:151 frontends/src/jp/cmd_pipe.py:78 -msgid "Invalid XMLUI received" -msgstr "" - -#: frontends/src/jp/cmd_file.py:161 frontends/src/jp/cmd_pipe.py:88 -msgid "Ignoring action without from_jid data" -msgstr "" - -#: frontends/src/jp/cmd_file.py:166 frontends/src/jp/cmd_file.py:185 -msgid "ignoring action without progress id" -msgstr "" - -#: frontends/src/jp/cmd_file.py:171 -msgid "File refused because overwrite is needed" -msgstr "" - -#: frontends/src/jp/cmd_file.py:187 -msgid "Overwriting needed" -msgstr "" - -#: frontends/src/jp/cmd_file.py:191 -msgid "Overwrite accepted" -msgstr "" - -#: frontends/src/jp/cmd_file.py:193 -msgid "Refused to overwrite" -msgstr "" - -#: frontends/src/jp/cmd_file.py:200 -msgid "JIDs accepted (accept everything if none is specified)" -msgstr "" - -#: frontends/src/jp/cmd_file.py:201 -msgid "accept multiple files (you'll have to stop manually)" -msgstr "" - -#: frontends/src/jp/cmd_file.py:202 -msgid "force overwritting of existing files (/!\\ name is choosed by sended)" -msgstr "" - -#: frontends/src/jp/cmd_file.py:203 -msgid "destination path (default: working directory)" -msgstr "" - -#: frontends/src/jp/cmd_file.py:209 -msgid "Given path is not a directory !" -msgstr "" - -#: frontends/src/jp/cmd_file.py:213 -msgid "waiting for incoming file request" -msgstr "" - -#: frontends/src/jp/cmd_file.py:219 -msgid "Upload a file" -msgstr "" - -#: frontends/src/jp/cmd_file.py:223 -msgid "file to upload" -msgstr "" - -#: frontends/src/jp/cmd_file.py:224 -msgid "jid of upload component (nothing to autodetect)" -msgstr "" - -#: frontends/src/jp/cmd_file.py:225 -msgid "ignore invalide TLS certificate" -msgstr "" - -#: frontends/src/jp/cmd_file.py:228 -msgid "File upload started" -msgstr "" - -#: frontends/src/jp/cmd_file.py:231 -msgid "File uploaded successfully" -msgstr "" - -#: frontends/src/jp/cmd_file.py:237 -msgid "URL to retrieve the file:" -msgstr "" - -#: frontends/src/jp/cmd_file.py:242 -msgid "Error while uploading file: {}" -msgstr "" - -#: frontends/src/jp/cmd_file.py:254 -msgid "Can't upload file" -msgstr "" - -#: frontends/src/jp/cmd_file.py:258 -#, python-brace-format -msgid "Error while trying to upload a file: {reason}" -msgstr "" - -#: frontends/src/jp/cmd_file.py:267 -msgid "[{}] is a dir! Can't upload a dir" -msgstr "" - -#: frontends/src/jp/cmd_file.py:283 -msgid "File sending/receiving" -msgstr "" - -#: frontends/src/jp/cmd_info.py:30 -msgid "service discovery" -msgstr "" - -#: frontends/src/jp/cmd_info.py:34 -msgid "entity to discover" -msgstr "" - -#: frontends/src/jp/cmd_info.py:35 -msgid "node to use" -msgstr "" - -#: frontends/src/jp/cmd_info.py:43 -#, python-format -msgid "Error while doing discovery [%s]" -msgstr "" - -#: frontends/src/jp/cmd_info.py:90 -#, python-brace-format -msgid "" -"Features:\n" -"\n" -"{features}" -msgstr "" - -#: frontends/src/jp/cmd_info.py:92 -#, python-brace-format -msgid "" -"Identities:\n" -"\n" -"{identities}" -msgstr "" - -#: frontends/src/jp/cmd_info.py:94 -#, python-brace-format -msgid "" -"Extensions:\n" -"\n" -"{extensions}" -msgstr "" - -#: frontends/src/jp/cmd_info.py:96 -#, python-brace-format -msgid "" -"Items:\n" -"\n" -"{items}" -msgstr "" - -#: frontends/src/jp/cmd_info.py:109 -msgid "running session" -msgstr "" - -#: frontends/src/jp/cmd_info.py:113 -msgid "Entity to request" -msgstr "" - -#: frontends/src/jp/cmd_info.py:121 -#, python-format -msgid "Error while trying to get version [%s]" -msgstr "" - -#: frontends/src/jp/cmd_info.py:128 src/plugins/plugin_xep_0092.py:107 -#, python-format -msgid "Client name: %s" -msgstr "" - -#: frontends/src/jp/cmd_info.py:130 src/plugins/plugin_xep_0092.py:109 -#, python-format -msgid "Client version: %s" -msgstr "" - -#: frontends/src/jp/cmd_info.py:132 -#, python-format -msgid "Operating System: %s" -msgstr "" - -#: frontends/src/jp/cmd_info.py:141 -msgid "client version" -msgstr "" - -#: frontends/src/jp/cmd_info.py:155 -msgid "Error getting session infos: {}" -msgstr "" - -#: frontends/src/jp/cmd_info.py:163 -msgid "Get various pieces of information on entities" -msgstr "" - -#: frontends/src/jp/cmd_message.py:32 -msgid "send a message to a contact" -msgstr "" - -#: frontends/src/jp/cmd_message.py:35 -msgid "language of the message" -msgstr "" - -#: frontends/src/jp/cmd_message.py:36 -msgid "" -"separate xmpp messages: send one message per line instead of one message " -"alone." -msgstr "" - -#: frontends/src/jp/cmd_message.py:37 -msgid "add a new line at the beginning of the input (usefull for ascii art ;))" -msgstr "" - -#: frontends/src/jp/cmd_message.py:38 -msgid "subject of the message" -msgstr "" - -#: frontends/src/jp/cmd_message.py:39 -msgid "language of subject" -msgstr "" - -#: frontends/src/jp/cmd_message.py:40 -msgid "type of the message" -msgstr "" - -#: frontends/src/jp/cmd_message.py:42 -msgid "XHTML body" -msgstr "" - -#: frontends/src/jp/cmd_message.py:43 -msgid "rich body" -msgstr "" - -#: frontends/src/jp/cmd_message.py:91 -msgid "messages handling" -msgstr "" - -#: frontends/src/jp/cmd_param.py:29 -msgid "Get a parameter value" -msgstr "" - -#: frontends/src/jp/cmd_param.py:32 frontends/src/jp/cmd_param.py:64 -msgid "Category of the parameter" -msgstr "" - -#: frontends/src/jp/cmd_param.py:33 frontends/src/jp/cmd_param.py:65 -#: frontends/src/jp/cmd_param.py:66 -msgid "Name of the parameter" -msgstr "" - -#: frontends/src/jp/cmd_param.py:34 -msgid "Name of the attribute to get" -msgstr "" - -#: frontends/src/jp/cmd_param.py:35 frontends/src/jp/cmd_param.py:67 -msgid "Security limit" -msgstr "" - -#: frontends/src/jp/cmd_param.py:61 -msgid "Set a parameter value" -msgstr "" - -#: frontends/src/jp/cmd_param.py:78 -msgid "Save parameters template to xml file" -msgstr "" - -#: frontends/src/jp/cmd_param.py:81 -msgid "Output file" -msgstr "" - -#: frontends/src/jp/cmd_param.py:86 -#, python-format -msgid "Parameters saved to file %s" -msgstr "" - -#: frontends/src/jp/cmd_param.py:88 -#, python-format -msgid "Can't save parameters to file %s" -msgstr "" - -#: frontends/src/jp/cmd_param.py:94 -msgid "Load parameters template from xml file" -msgstr "" - -#: frontends/src/jp/cmd_param.py:97 -msgid "Input file" -msgstr "" - -#: frontends/src/jp/cmd_param.py:102 -#, python-format -msgid "Parameters loaded from file %s" -msgstr "" - -#: frontends/src/jp/cmd_param.py:104 -#, python-format -msgid "Can't load parameters from file %s" -msgstr "" - -#: frontends/src/jp/cmd_param.py:111 -msgid "Save/load parameters template" -msgstr "" - -#: frontends/src/jp/cmd_pipe.py:38 -msgid "send a pipe a stream" -msgstr "" - -#: frontends/src/jp/cmd_pipe.py:60 -msgid "receive a pipe stream" -msgstr "" - -#: frontends/src/jp/cmd_pipe.py:64 -msgid "Jids accepted (none means \"accept everything\")" -msgstr "" - -#: frontends/src/jp/cmd_pipe.py:111 -msgid "stream piping through XMPP" -msgstr "" - -#: frontends/src/jp/cmd_profile.py:30 -msgid "The name of the profile" -msgstr "" - -#: frontends/src/jp/cmd_profile.py:62 -msgid "delete profile without confirmation" -msgstr "" - -#: frontends/src/jp/cmd_profile.py:72 -msgid "Profile deletion cancelled" -msgstr "" - -#: frontends/src/jp/cmd_profile.py:80 -msgid "get information about a profile" -msgstr "" - -#: frontends/src/jp/cmd_profile.py:82 src/plugins/plugin_xep_0048.py:256 -msgid "jid" -msgstr "" - -#: frontends/src/jp/cmd_profile.py:87 -msgid "show the XMPP password IN CLEAR TEXT" -msgstr "" - -#: frontends/src/jp/cmd_profile.py:103 -msgid "XMPP password" -msgstr "" - -#: frontends/src/jp/cmd_profile.py:113 -msgid "the password of the profile" -msgstr "" - -#: frontends/src/jp/cmd_profile.py:139 -msgid "set to component import name (entry point) if this is a component" -msgstr "" - -#: frontends/src/jp/cmd_profile.py:171 -msgid "set as default profile" -msgstr "" - -#: frontends/src/jp/cmd_roster.py:35 -msgid "Purge the roster from its contacts with no subscription" -msgstr "" - -#: frontends/src/jp/cmd_roster.py:39 -msgid "Also purge contacts with no 'from' subscription" -msgstr "" - -#: frontends/src/jp/cmd_roster.py:40 -msgid "Also purge contacts with no 'to' subscription" -msgstr "" - -#: frontends/src/jp/cmd_roster.py:46 frontends/src/jp/cmd_roster.py:110 -#: frontends/src/jp/cmd_roster.py:181 -#, python-format -msgid "Error while retrieving the contacts [%s]" -msgstr "" - -#: frontends/src/jp/cmd_roster.py:100 -msgid "Show statistics about a roster" -msgstr "" - -#: frontends/src/jp/cmd_roster.py:169 -msgid "Retrieve the roster contacts" -msgstr "" - -#: frontends/src/jp/cmd_roster.py:173 -msgid "Show the contacts' subscriptions" -msgstr "" - -#: frontends/src/jp/cmd_roster.py:174 -msgid "Show the contacts' groups" -msgstr "" - -#: frontends/src/jp/cmd_roster.py:175 -msgid "Show the contacts' names" -msgstr "" - -#: frontends/src/jp/cmd_roster.py:214 -msgid "Manage an entity's roster" -msgstr "" - -#: frontends/src/jp/output_template.py:100 -msgid "" -"Browser opening requested.\n" -"Temporary files are put in the following directory, you'll have to delete it " -"yourself once finished viewing: {}" -msgstr "" - -#: frontends/src/primitivus/chat.py:37 -msgid "{} occupants" -msgstr "" - -#: frontends/src/primitivus/chat.py:346 -msgid "Game" -msgstr "" - -#: frontends/src/primitivus/chat.py:429 -#, python-brace-format -msgid "<= {nick} has left the room ({count})" -msgstr "" - -#: frontends/src/primitivus/chat.py:431 -#, python-brace-format -msgid "<=> {nick} re-entered the room ({count})" -msgstr "" - -#: frontends/src/primitivus/chat.py:466 -#, python-brace-format -msgid "You have been mentioned by {nick} in {room}" -msgstr "" - -#: frontends/src/primitivus/chat.py:473 -#, python-brace-format -msgid "{entity} is talking to you" -msgstr "" - -#: frontends/src/primitivus/chat.py:560 -msgid "Results for searching the globbing pattern: {}" -msgstr "" - -#: frontends/src/primitivus/chat.py:561 -msgid "Type ':history ' to reset the chat history" -msgstr "" - -#: frontends/src/primitivus/chat.py:591 -#, python-format -msgid "Primitivus: %s is talking to you" -msgstr "" - -#: frontends/src/primitivus/chat.py:593 -#, python-format -msgid "Primitivus: %(user)s mentioned you in room '%(room)s'" -msgstr "" - -#: frontends/src/primitivus/chat.py:599 -msgid "Can't start game" -msgstr "" - -#: frontends/src/primitivus/chat.py:599 -msgid "You need to be exactly 4 peoples in the room to start a Tarot game" -msgstr "" - -#: frontends/src/primitivus/chat.py:623 -msgid "Change title" -msgstr "" - -#: frontends/src/primitivus/chat.py:624 -msgid "Enter the new title" -msgstr "" - -#: frontends/src/primitivus/contact_list.py:47 -#: frontends/src/primitivus/primitivus:533 src/plugins/plugin_xep_0055.py:80 -#: src/stdui/ui_contact_list.py:36 src/stdui/ui_contact_list.py:37 -#: src/stdui/ui_contact_list.py:38 -msgid "Contacts" -msgstr "" - -#: frontends/src/primitivus/game_tarot.py:267 -msgid "Please choose your contrat" -msgstr "" - -#: frontends/src/primitivus/game_tarot.py:283 -#: src/plugins/plugin_misc_tarot.py:244 -msgid "Draw game" -msgstr "" - -#: frontends/src/primitivus/game_tarot.py:285 -msgid "You win \\o/" -msgstr "" - -#: frontends/src/primitivus/game_tarot.py:285 -msgid "You loose :(" -msgstr "" - -#: frontends/src/primitivus/game_tarot.py:297 -msgid "Cards played are invalid !" -msgstr "" - -#: frontends/src/primitivus/game_tarot.py:330 -msgid "Do you put these cards in chien ?" -msgstr "" - -#: frontends/src/primitivus/primitivus:91 -msgid "Error while sending message ({})" -msgstr "" - -#: frontends/src/primitivus/primitivus:136 -msgid "Please specify the globbing pattern to search for" -msgstr "" - -#: frontends/src/primitivus/primitivus:371 -msgid "Configuration Error" -msgstr "" - -#: frontends/src/primitivus/primitivus:371 -msgid "" -"Something went wrong while reading the configuration, please check :messages" -msgstr "" - -#: frontends/src/primitivus/primitivus:498 -msgid "Pleeeeasse, I can't even breathe !" -msgstr "" - -#: frontends/src/primitivus/primitivus:527 src/memory/params.py:81 -msgid "General" -msgstr "" - -#: frontends/src/primitivus/primitivus:528 -#: frontends/src/primitivus/profile_manager.py:53 -msgid "Connect" -msgstr "" - -#: frontends/src/primitivus/primitivus:529 src/plugins/plugin_xep_0050.py:59 -msgid "Disconnect" -msgstr "" - -#: frontends/src/primitivus/primitivus:530 -msgid "Parameters" -msgstr "" - -#: frontends/src/primitivus/primitivus:531 -#: frontends/src/primitivus/primitivus:821 -msgid "About" -msgstr "" - -#: frontends/src/primitivus/primitivus:532 -msgid "Exit" -msgstr "" - -#: frontends/src/primitivus/primitivus:534 src/plugins/plugin_xep_0048.py:61 -msgid "Groups" -msgstr "" - -#: frontends/src/primitivus/primitivus:536 -msgid "Join room" -msgstr "" - -#: frontends/src/primitivus/primitivus:541 -msgid "Main menu" -msgstr "" - -#: frontends/src/primitivus/primitivus:636 -#, python-brace-format -msgid "{app}: a new event has just happened{entity}" -msgstr "" - -#: frontends/src/primitivus/primitivus:706 -msgid "Chat menu" -msgstr "" - -#: frontends/src/primitivus/primitivus:760 -#: frontends/src/primitivus/primitivus:801 -#: frontends/src/quick_frontend/quick_profile_manager.py:130 -#: src/plugins/plugin_misc_account.py:495 -#: src/plugins/plugin_misc_account.py:538 -#: src/plugins/plugin_misc_account.py:595 -msgid "Error" -msgstr "" - -#: frontends/src/primitivus/primitivus:760 -msgid "Unmanaged action" -msgstr "" - -#: frontends/src/primitivus/primitivus:771 -msgid "unkown" -msgstr "" - -#: frontends/src/primitivus/primitivus:801 -#, python-format -msgid "Can't get parameters (%s)" -msgstr "" - -#: frontends/src/primitivus/primitivus:816 -msgid "Entering a MUC room" -msgstr "" - -#: frontends/src/primitivus/primitivus:816 -msgid "Please enter MUC's JID" -msgstr "" - -#: frontends/src/primitivus/profile_manager.py:36 -msgid "Login:" -msgstr "" - -#: frontends/src/primitivus/profile_manager.py:37 -msgid "Password:" -msgstr "" - -#: frontends/src/primitivus/profile_manager.py:45 -msgid "New" -msgstr "" - -#: frontends/src/primitivus/profile_manager.py:46 -msgid "Delete" -msgstr "" - -#: frontends/src/primitivus/profile_manager.py:58 -msgid "Profile Manager" -msgstr "" - -#: frontends/src/primitivus/profile_manager.py:108 -msgid "Can't create profile" -msgstr "" - -#: frontends/src/primitivus/profile_manager.py:115 -msgid "New profile" -msgstr "" - -#: frontends/src/primitivus/profile_manager.py:115 -msgid "Please enter a new profile name" -msgstr "" - -#: frontends/src/primitivus/profile_manager.py:120 -msgid "Are you sure you want to delete the profile {} ?" -msgstr "" - -#: frontends/src/primitivus/progress.py:37 -msgid "Clear progress list" -msgstr "" - -#: frontends/src/primitivus/status.py:46 -msgid "Set your presence" -msgstr "" - -#: frontends/src/primitivus/status.py:52 -msgid "Set your status" -msgstr "" - -#: frontends/src/primitivus/status.py:52 -msgid "New status" -msgstr "" - -#: frontends/src/primitivus/xmlui.py:81 -msgid "Unknown div_char" -msgstr "" - -#: frontends/src/primitivus/xmlui.py:405 -msgid "Submit" -msgstr "" - -#: frontends/src/primitivus/xmlui.py:407 frontends/src/primitivus/xmlui.py:418 -msgid "Cancel" -msgstr "" - -#: frontends/src/primitivus/xmlui.py:409 -msgid "OK" -msgstr "" - -#: frontends/src/primitivus/xmlui.py:417 src/plugins/plugin_xep_0048.py:263 -msgid "Save" -msgstr "" - -#: frontends/src/quick_frontend/constants.py:27 -#: src/plugins/plugin_xep_0050.py:54 -msgid "Online" -msgstr "" - -#: frontends/src/quick_frontend/constants.py:28 -#: src/plugins/plugin_xep_0050.py:56 -msgid "Free for chat" -msgstr "" - -#: frontends/src/quick_frontend/constants.py:29 -msgid "Away from keyboard" -msgstr "" - -#: frontends/src/quick_frontend/constants.py:30 -#: src/plugins/plugin_xep_0050.py:57 -msgid "Do not disturb" -msgstr "" - -#: frontends/src/quick_frontend/constants.py:31 -msgid "Extended away" -msgstr "" - -#: frontends/src/quick_frontend/quick_app.py:81 -msgid "Error while trying to get autodisconnect param, ignoring: {}" -msgstr "" - -#: frontends/src/quick_frontend/quick_app.py:174 -#, python-brace-format -msgid "Can't get profile parameter: {msg}" -msgstr "" - -#: frontends/src/quick_frontend/quick_app.py:453 -#, python-format -msgid "Can't connect profile [%s]" -msgstr "" - -#: frontends/src/quick_frontend/quick_app.py:510 -msgid "Connected" -msgstr "" - -#: frontends/src/quick_frontend/quick_app.py:517 -msgid "Disconnected" -msgstr "" - -#: frontends/src/quick_frontend/quick_app.py:574 -#, python-format -msgid "" -"presence update for %(entity)s (show=%(show)s, priority=%(priority)s, " -"statuses=%(statuses)s) [profile:%(profile)s]" -msgstr "" - -#: frontends/src/quick_frontend/quick_app.py:783 -#, python-format -msgid "The contact %s has accepted your subscription" -msgstr "" - -#: frontends/src/quick_frontend/quick_app.py:783 -#: frontends/src/quick_frontend/quick_app.py:790 -msgid "Subscription confirmation" -msgstr "" - -#: frontends/src/quick_frontend/quick_app.py:786 -#, python-format -msgid "The contact %s has refused your subscription" -msgstr "" - -#: frontends/src/quick_frontend/quick_app.py:786 -msgid "Subscription refusal" -msgstr "" - -#: frontends/src/quick_frontend/quick_app.py:790 -#, python-format -msgid "" -"The contact %s wants to subscribe to your presence.\n" -"Do you accept ?" -msgstr "" - -#: frontends/src/quick_frontend/quick_app.py:813 -#, python-format -msgid "param update: [%(namespace)s] %(name)s = %(value)s" -msgstr "" - -#: frontends/src/quick_frontend/quick_app.py:815 -#, python-format -msgid "Changing JID to %s" -msgstr "" - -#: frontends/src/quick_frontend/quick_chat.py:434 -msgid "now we print the history" -msgstr "" - -#: frontends/src/quick_frontend/quick_chat.py:436 -msgid " ({} messages)" -msgstr "" - -#: frontends/src/quick_frontend/quick_chat.py:478 -msgid "Can't get history: {}" -msgstr "" - -#: frontends/src/quick_frontend/quick_contact_list.py:495 -msgid "Trying to delete an unknow entity [{}]" -msgstr "" - -#: frontends/src/quick_frontend/quick_contact_list.py:536 -msgid "received presence from entity without resource: {}" -msgstr "" - -#: frontends/src/quick_frontend/quick_contact_management.py:71 -msgid "Trying to get attribute for an unknown contact" -msgstr "" - -#: frontends/src/quick_frontend/quick_contact_management.py:87 -msgid "INTERNAL ERROR: Key log.error" -msgstr "" - -#: frontends/src/quick_frontend/quick_contact_management.py:99 -#, python-format -msgid "Trying to update an unknown contact: %s" -msgstr "" - -#: frontends/src/quick_frontend/quick_games.py:74 -#, python-brace-format -msgid "" -"A {game} activity between {players} has been started, but you couldn't take " -"part because your client doesn't support it." -msgstr "" - -#: frontends/src/quick_frontend/quick_games.py:75 -#, python-brace-format -msgid "{game} Game" -msgstr "" - -#: frontends/src/quick_frontend/quick_profile_manager.py:116 -msgid "Trying to plug an unknown profile key ({})" -msgstr "" - -#: frontends/src/quick_frontend/quick_profile_manager.py:118 -msgid "Profile plugging in error" -msgstr "" - -#: frontends/src/quick_frontend/quick_profile_manager.py:130 -msgid "Can't get profile parameter" -msgstr "" - -#: frontends/src/quick_frontend/quick_profile_manager.py:141 -msgid "A profile with this name already exists" -msgstr "" - -#: frontends/src/quick_frontend/quick_profile_manager.py:143 -msgid "Profile creation cancelled by backend" -msgstr "" - -#: frontends/src/quick_frontend/quick_profile_manager.py:145 -msgid "You profile name is not valid" -msgstr "" - -#: frontends/src/quick_frontend/quick_profile_manager.py:147 -msgid "Can't create profile ({})" -msgstr "" - -#: frontends/src/quick_frontend/quick_profile_manager.py:163 -#: src/stdui/ui_profile_manager.py:65 -msgid "Internal error" -msgstr "" - -#: frontends/src/quick_frontend/quick_profile_manager.py:163 -msgid "You can't connect manually and automatically at the same time" -msgstr "" - -#: frontends/src/quick_frontend/quick_profile_manager.py:168 -msgid "No profile selected" -msgstr "" - -#: frontends/src/quick_frontend/quick_profile_manager.py:168 -msgid "You need to create and select at least one profile before connecting" -msgstr "" - -#: frontends/src/quick_frontend/quick_utils.py:38 -msgid "" -"\n" -" %prog [options]\n" -"\n" -" %prog --help for options list\n" -" " -msgstr "" - -#: frontends/src/quick_frontend/quick_utils.py:45 -msgid "Select the profile to use" -msgstr "" - -#: frontends/src/tools/xmlui.py:193 -msgid "Nothing to submit" -msgstr "" - -#: frontends/src/tools/xmlui.py:337 -msgid "XMLUI can have only one main container" -msgstr "" - -#: frontends/src/tools/xmlui.py:385 -#, python-format -msgid "Unknown container [%s], using default one" -msgstr "" - -#: frontends/src/tools/xmlui.py:394 -msgid "Internal Error, container has not _xmluiAppend method" -msgstr "" - -#: frontends/src/tools/xmlui.py:472 -#, python-format -msgid "FIXME FIXME FIXME: widget type [%s] is not implemented" -msgstr "" - -#: frontends/src/tools/xmlui.py:473 -#, python-format -msgid "FIXME FIXME FIXME: type [%s] is not implemented" -msgstr "" - -#: frontends/src/tools/xmlui.py:481 -#, python-format -msgid "No change listener on [%s]" -msgstr "" - -#: frontends/src/tools/xmlui.py:498 -#, python-format -msgid "Unknown tag [%s]" -msgstr "" - -#: frontends/src/tools/xmlui.py:548 -msgid "No callback_id found" -msgstr "" - -#: frontends/src/tools/xmlui.py:580 -#, python-format -msgid "FIXME: XMLUI internal action [%s] is not implemented" -msgstr "" - -#: frontends/src/tools/xmlui.py:667 frontends/src/tools/xmlui.py:677 -msgid "The form data is not sent back, the type is not managed properly" -msgstr "" - -#: frontends/src/tools/xmlui.py:672 -msgid "Cancelling form" -msgstr "" - -#: frontends/src/tools/xmlui.py:778 -msgid "You must register classes with registerClass before creating a XMLUI" -msgstr "" - -#: src/core/sat_main.py:149 +#: sat/core/sat_main.py:212 msgid "Memory initialised" msgstr "" -#: src/core/sat_main.py:154 +#: sat/core/sat_main.py:219 +msgid "Could not initialize backend: {reason}" +msgstr "" + +#: sat/core/sat_main.py:227 msgid "Backend is ready" msgstr "" -#: src/core/sat_main.py:189 -#, python-brace-format +#: sat/core/sat_main.py:238 +msgid "Following profiles will be connected automatically: {profiles}" +msgstr "" + +#: sat/core/sat_main.py:251 +msgid "Can't autoconnect profile {profile}: {reason}" +msgstr "" + +#: sat/core/sat_main.py:321 msgid "" "Can't import plugin [{path}]:\n" "{error}" msgstr "" -#: src/core/sat_main.py:202 -#, python-brace-format +#: sat/core/sat_main.py:340 msgid "{type} type must be used with {mode} mode, ignoring plugin" msgstr "" -#: src/core/sat_main.py:208 -#, python-brace-format -msgid "" -"Name conflict for import name [{import_name}], can't import plugin [{name}]" -msgstr "" - -#: src/core/sat_main.py:234 +#: sat/core/sat_main.py:349 +msgid "" +"Name conflict for import name [{import_name}], can't import plugin " +"[{name}]" +msgstr "" + +#: sat/core/sat_main.py:385 msgid "Recommended plugin not found: {}" msgstr "" -#: src/core/sat_main.py:248 -#, python-brace-format +#: sat/core/sat_main.py:406 msgid "Can't import plugin {name}: {error}" msgstr "" -#: src/core/sat_main.py:311 +#: sat/core/sat_main.py:478 msgid "already connected !" msgstr "" -#: src/core/sat_main.py:331 +#: sat/core/sat_main.py:495 msgid "not connected !" msgstr "" -#: src/core/sat_main.py:406 +#: sat/core/sat_main.py:591 msgid "Trying to remove reference to a client not referenced" msgstr "" -#: src/core/sat_main.py:418 +#: sat/core/sat_main.py:604 msgid "running app" msgstr "" -#: src/core/sat_main.py:422 +#: sat/core/sat_main.py:608 msgid "stopping app" msgstr "" -#: src/core/sat_main.py:482 -msgid "Unexpected error: {}" -msgstr "" - -#: src/core/sat_main.py:498 +#: sat/core/sat_main.py:646 +msgid "profile_key must not be empty" +msgstr "" + +#: sat/core/sat_main.py:666 +msgid "Unexpected error: {failure_}" +msgstr "" + +#: sat/core/sat_main.py:921 msgid "asking connection status for a non-existant profile" msgstr "" -#: src/core/sat_main.py:538 +#: sat/core/sat_main.py:1020 #, python-format msgid "subsciption request [%(subs_type)s] for %(jid)s" msgstr "" -#: src/core/sat_main.py:654 +#: sat/core/sat_main.py:1162 +msgid "Can't find features for service {service_jid}, ignoring" +msgstr "" + +#: sat/core/sat_main.py:1221 +msgid "Can't retrieve {full_jid} infos, ignoring" +msgstr "" + +#: sat/core/sat_main.py:1292 msgid "Trying to remove an unknow progress callback" msgstr "" -#: src/core/sat_main.py:738 +#: sat/core/sat_main.py:1382 msgid "id already registered" msgstr "" -#: src/core/sat_main.py:776 +#: sat/core/sat_main.py:1424 msgid "trying to launch action with a non-existant profile" msgstr "" -#: src/core/sat_main.py:858 +#: sat/core/sat_main.py:1520 msgid "A menu with the same path and type already exists" msgstr "" -#: src/core/xmpp.py:120 +#: sat/core/sat_main.py:1619 +msgid "help_string" +msgstr "" + +#: sat/core/xmpp.py:196 msgid "Can't parse port value, using default value" msgstr "" -#: src/core/xmpp.py:141 +#: sat/core/xmpp.py:223 +msgid "We'll use the stable resource {resource}" +msgstr "" + +#: sat/core/xmpp.py:255 msgid "setting plugins parents" msgstr "" -#: src/core/xmpp.py:160 +#: sat/core/xmpp.py:275 msgid "Plugins initialisation error" msgstr "" -#: src/core/xmpp.py:177 +#: sat/core/xmpp.py:297 msgid "Error while disconnecting: {}" msgstr "" -#: src/core/xmpp.py:191 -#, python-format -msgid "********** [%s] CONNECTED **********" -msgstr "" - -#: src/core/xmpp.py:200 +#: sat/core/xmpp.py:301 +msgid "{profile} identified" +msgstr "" + +#: sat/core/xmpp.py:309 msgid "XML stream is initialized" msgstr "" -#: src/core/xmpp.py:216 -#, python-format -msgid "ERROR: XMPP connection failed for profile '%(profile)s': %(reason)s" -msgstr "" - -#: src/core/xmpp.py:230 -msgid "No keep_alife" -msgstr "" - -#: src/core/xmpp.py:235 -#, python-format -msgid "********** [%s] DISCONNECTED **********" -msgstr "" - -#: src/core/xmpp.py:257 +#: sat/core/xmpp.py:317 +msgid "********** [{profile}] CONNECTED **********" +msgstr "" + +#: sat/core/xmpp.py:343 +#, python-format +msgid "ERROR: XMPP connection failed for profile '%(profile)s': %(reason)sprofile" +msgstr "" + +#: sat/core/xmpp.py:398 +msgid "stopping connection because of network disabled" +msgstr "" + +#: sat/core/xmpp.py:421 +msgid "network is available, trying to connect" +msgstr "" + +#: sat/core/xmpp.py:445 +msgid "********** [{profile}] DISCONNECTED **********" +msgstr "" + +#: sat/core/xmpp.py:464 +msgid "" +"Your server certificate is not valid (its identity can't be checked).\n" +"\n" +"This should never happen and may indicate that somebody is trying to spy " +"on you.\n" +"Please contact your server administrator." +msgstr "" + +#: sat/core/xmpp.py:515 msgid "Disconnecting..." msgstr "" -#: src/core/xmpp.py:401 -#, python-brace-format +#: sat/core/xmpp.py:688 msgid "Sending message (type {type}, to {to})" msgstr "" -#: src/core/xmpp.py:407 -msgid "" -"Triggers, storage and echo have been inhibited by the 'send_only' parameter" -msgstr "" - -#: src/core/xmpp.py:447 +#: sat/core/xmpp.py:696 +msgid "" +"Triggers, storage and echo have been inhibited by the 'send_only' " +"parameter" +msgstr "" + +#: sat/core/xmpp.py:762 msgid "No message found" msgstr "" -#: src/core/xmpp.py:581 -#, python-brace-format +#: sat/core/xmpp.py:814 +msgid "invalid data used for host: {data}" +msgstr "" + +#: sat/core/xmpp.py:839 +msgid "" +"Certificate validation is deactivated, this is unsecure and somebody may " +"be spying on you. If you have no good reason to disable certificate " +"validation, please activate \"Check certificate\" in your settings in " +"\"Connection\" tab." +msgstr "" + +#: sat/core/xmpp.py:843 +msgid "Security notice" +msgstr "" + +#: sat/core/xmpp.py:978 msgid "The requested entry point ({entry_point}) is not available" msgstr "" -#: src/core/xmpp.py:615 -#, python-brace-format -msgid "" -"Plugin {current_name} if needed for {entry_name}, but it doesn't handle " +#: sat/core/xmpp.py:1016 +msgid "" +"Plugin {current_name} is needed for {entry_name}, but it doesn't handle " "component mode" msgstr "" -#: src/core/xmpp.py:619 +#: sat/core/xmpp.py:1024 msgid "invalid plugin mode" msgstr "" -#: src/core/xmpp.py:717 -#, python-brace-format +#: sat/core/xmpp.py:1128 +msgid "parseMessage used with a non stanza, ignoring: {xml}" +msgstr "" + +#: sat/core/xmpp.py:1140 +msgid "received with a wrong namespace: {xml}" +msgstr "" + +#: sat/core/xmpp.py:1226 msgid "got message from: {from_}" msgstr "" -#: src/core/xmpp.py:793 +#: sat/core/xmpp.py:1341 msgid "There's no subscription between you and [{}]!" msgstr "" -#: src/core/xmpp.py:795 +#: sat/core/xmpp.py:1346 msgid "You are not subscribed to [{}]!" msgstr "" -#: src/core/xmpp.py:797 +#: sat/core/xmpp.py:1348 msgid "[{}] is not subscribed to you!" msgstr "" -#: src/core/xmpp.py:954 -#, python-format -msgid "" -"presence update for [%(entity)s] (available, show=%(show)s statuses=" -"%(statuses)s priority=%(priority)d)" -msgstr "" - -#: src/core/xmpp.py:975 +#: sat/core/xmpp.py:1384 +msgid "our server support roster versioning, we use it" +msgstr "" + +#: sat/core/xmpp.py:1390 +msgid "no roster in cache, we start fresh" +msgstr "" + +#: sat/core/xmpp.py:1394 +msgid "We have roster v{version} in cache" +msgstr "" + +#: sat/core/xmpp.py:1405 +msgid "our server doesn't support roster versioning" +msgstr "" + +#: sat/core/xmpp.py:1462 +msgid "adding {entity} to roster" +msgstr "" + +#: sat/core/xmpp.py:1486 +msgid "removing {entity} from roster" +msgstr "" + +#: sat/core/xmpp.py:1640 #, python-format msgid "presence update for [%(entity)s] (unavailable, statuses=%(statuses)s)" msgstr "" -#: src/core/xmpp.py:1038 +#: sat/core/xmpp.py:1724 msgid "sending automatic \"from\" subscription request" msgstr "" -#: src/core/xmpp.py:1046 +#: sat/core/xmpp.py:1732 #, python-format msgid "subscription approved for [%s]" msgstr "" -#: src/core/xmpp.py:1050 +#: sat/core/xmpp.py:1736 #, python-format msgid "unsubscription confirmed for [%s]" msgstr "" -#: src/core/xmpp.py:1055 +#: sat/core/xmpp.py:1741 #, python-format msgid "subscription request from [%s]" msgstr "" -#: src/core/xmpp.py:1060 +#: sat/core/xmpp.py:1747 msgid "sending automatic subscription acceptance" msgstr "" -#: src/core/xmpp.py:1068 +#: sat/core/xmpp.py:1759 #, python-format msgid "unsubscription asked for [%s]" msgstr "" -#: src/core/xmpp.py:1072 +#: sat/core/xmpp.py:1763 msgid "automatic contact deletion" msgstr "" -#: src/core/xmpp.py:1104 -#, python-format -msgid "Registration asked for %(user)s@%(host)s" -msgstr "" - -#: src/core/xmpp.py:1107 -#, python-format -msgid "Connection made with %s" -msgstr "" - -#: src/core/xmpp.py:1125 -#, python-format -msgid "Registration answer: %s" -msgstr "" - -#: src/core/xmpp.py:1129 src/plugins/plugin_xep_0077.py:87 -#: src/plugins/plugin_xep_0077.py:97 -#, python-format -msgid "Registration failure: %s" -msgstr "" - -#: src/memory/disco.py:219 +#: sat/memory/cache.py:69 +msgid "Can't read metadata file at {path}" +msgstr "" + +#: sat/memory/cache.py:80 +msgid "Invalid cache metadata at {path}" +msgstr "" + +#: sat/memory/cache.py:87 +msgid "cache {cache_file!r} references an inexisting file: {filepath!r}" +msgstr "" + +#: sat/memory/cache.py:102 +msgid "following file is missing while purging cache: {path}" +msgstr "" + +#: sat/memory/cache.py:200 +msgid "missing filename for cache {uid!r}" +msgstr "" + +#: sat/memory/cache.py:207 +msgid "missing file referenced in cache {uid!r}: {filename}" +msgstr "" + +#: sat/memory/disco.py:95 +msgid "" +"no feature/identity found in disco element (hash: {cap_hash}), ignoring: " +"{xml}" +msgstr "" + +#: sat/memory/disco.py:274 #, python-format msgid "Error while requesting [%(jid)s]: %(error)s" msgstr "" -#: src/memory/disco.py:307 -#, python-format -msgid "Capability hash generated: [%s]" -msgstr "" - -#: src/memory/disco.py:348 +#: sat/memory/disco.py:338 +msgid "received an item without jid" +msgstr "" + +#: sat/memory/disco.py:410 +msgid "Capability hash generated: [{cap_hash}]" +msgstr "" + +#: sat/memory/disco.py:459 msgid "invalid item (no jid)" msgstr "" -#: src/memory/memory.py:219 -msgid "" -"A database has been found in the default local_dir for previous versions (< " -"0.5)" -msgstr "" - -#: src/memory/memory.py:227 +#: sat/memory/encryption.py:71 +msgid "Could not restart {namespace!r} encryption with {entity}: {err}" +msgstr "" + +#: sat/memory/encryption.py:74 +msgid "encryption sessions restored" +msgstr "" + +#: sat/memory/encryption.py:116 +msgid "Encryption plugin registered: {name}" +msgstr "" + +#: sat/memory/encryption.py:127 +msgid "Can't find requested encryption plugin: {namespace}" +msgstr "" + +#: sat/memory/encryption.py:148 +msgid "Can't find a plugin with the name \"{name}\"." +msgstr "" + +#: sat/memory/encryption.py:213 +msgid "No encryption plugin is registered, an encryption session can't be started" +msgstr "" + +#: sat/memory/encryption.py:226 +msgid "Session with {bare_jid} is already encrypted with {name}. Nothing to do." +msgstr "" + +#: sat/memory/encryption.py:237 +msgid "" +"Session with {bare_jid} is already encrypted with {name}. Please stop " +"encryption session before changing algorithm." +msgstr "" + +#: sat/memory/encryption.py:249 +msgid "No resource found for {destinee}, can't encrypt with {name}" +msgstr "" + +#: sat/memory/encryption.py:251 +msgid "No resource specified to encrypt with {name}, using {destinee}." +msgstr "" + +#: sat/memory/encryption.py:257 +msgid "{name} encryption must be used with bare jids." +msgstr "" + +#: sat/memory/encryption.py:261 +msgid "Encryption session has been set for {entity_jid} with {encryption_name}" +msgstr "" + +#: sat/memory/encryption.py:268 +msgid "" +"Encryption session started: your messages with {destinee} are now end to " +"end encrypted using {name} algorithm." +msgstr "" + +#: sat/memory/encryption.py:273 +msgid "Message are encrypted only for {nb_devices} device(s): {devices_list}." +msgstr "" + +#: sat/memory/encryption.py:291 +msgid "There is no encryption session with this entity." +msgstr "" + +#: sat/memory/encryption.py:295 +msgid "" +"The encryption session is not run with the expected plugin: encrypted " +"with {current_name} and was expecting {expected_name}" +msgstr "" + +#: sat/memory/encryption.py:304 +msgid "" +"There is a session for the whole entity (i.e. all devices of the entity)," +" not a directed one. Please use bare jid if you want to stop the whole " +"encryption with this entity." +msgstr "" + +#: sat/memory/encryption.py:312 +msgid "There is no directed session with this entity." +msgstr "" + +#: sat/memory/encryption.py:327 +msgid "encryption session stopped with entity {entity}" +msgstr "" + +#: sat/memory/encryption.py:335 +msgid "" +"Encryption session finished: your messages with {destinee} are NOT end to" +" end encrypted anymore.\n" +"Your server administrators or {destinee} server administrators will be " +"able to read them." +msgstr "" + +#: sat/memory/encryption.py:389 sat/memory/encryption.py:397 +#: sat/memory/encryption.py:404 +msgid "Encryption" +msgstr "" + +#: sat/memory/encryption.py:389 +msgid "unencrypted (plain text)" +msgstr "" + +#: sat/memory/encryption.py:392 +msgid "End encrypted session" +msgstr "" + +#: sat/memory/encryption.py:400 +msgid "Start {name} session" +msgstr "" + +#: sat/memory/encryption.py:404 +msgid "⛨ {name} trust" +msgstr "" + +#: sat/memory/encryption.py:407 +msgid "Manage {name} trust" +msgstr "" + +#: sat/memory/encryption.py:470 +msgid "Starting e2e session with {peer_jid} as we receive encrypted messages" +msgstr "" + +#: sat/memory/memory.py:230 msgid "Memory manager init" msgstr "" -#: src/memory/memory.py:244 +#: sat/memory/memory.py:249 msgid "Loading default params template" msgstr "" -#: src/memory/memory.py:276 +#: sat/memory/memory.py:281 #, python-format msgid "Parameters loaded from file: %s" msgstr "" -#: src/memory/memory.py:279 +#: sat/memory/memory.py:284 #, python-format msgid "Can't load parameters from file: %s" msgstr "" -#: src/memory/memory.py:294 +#: sat/memory/memory.py:299 #, python-format msgid "Parameters saved to file: %s" msgstr "" -#: src/memory/memory.py:297 +#: sat/memory/memory.py:302 #, python-format msgid "Can't save parameters to file: %s" msgstr "" -#: src/memory/memory.py:426 +#: sat/memory/memory.py:404 +msgid "Authentication failure of profile {profile}" +msgstr "" + +#: sat/memory/memory.py:431 #, python-format msgid "[%s] Profile session purge" msgstr "" -#: src/memory/memory.py:431 +#: sat/memory/memory.py:437 #, python-format msgid "Trying to purge roster status cache for a profile not in memory: [%s]" msgstr "" -#: src/memory/memory.py:441 +#: sat/memory/memory.py:451 msgid "requesting no profiles at all" msgstr "" -#: src/memory/memory.py:496 -#, python-brace-format +#: sat/memory/memory.py:508 msgid "Can't find component {component} entry point" msgstr "" -#: src/memory/memory.py:740 -msgid "Trying to get entity data for a non-existant profile" -msgstr "" - -#: src/memory/memory.py:929 +#: sat/memory/memory.py:996 msgid "Need a bare jid to delete all resources" msgstr "" -#: src/memory/memory.py:954 +#: sat/memory/memory.py:1028 #, python-format msgid "Trying to encrypt a value for %s while the personal key is undefined!" msgstr "" -#: src/memory/memory.py:969 +#: sat/memory/memory.py:1048 #, python-format msgid "Trying to decrypt a value for %s while the personal key is undefined!" msgstr "" -#: src/memory/memory.py:992 +#: sat/memory/memory.py:1069 #, python-format msgid "Personal data (%(ns)s, %(key)s) has been successfuly encrypted" msgstr "" -#: src/memory/memory.py:1019 +#: sat/memory/memory.py:1097 msgid "Asking waiting subscriptions for a non-existant profile" msgstr "" -#: src/memory/params.py:82 +#: sat/memory/memory.py:1218 +msgid "invalid permission" +msgstr "" + +#: sat/memory/memory.py:1249 +msgid "unknown access type: {type}" +msgstr "" + +#: sat/memory/memory.py:1284 +msgid "You can't use path and parent at the same time" +msgstr "" + +#: sat/memory/memory.py:1288 +msgid "\"..\" or \".\" can't be used in path" +msgstr "" + +#: sat/memory/memory.py:1307 +msgid "Several directories found, this should not happen" +msgstr "" + +#: sat/memory/memory.py:1766 +msgid "Can't delete directory, it is not empty" +msgstr "" + +#: sat/memory/memory.py:1778 +msgid "deleting file {name} with hash {file_hash}" +msgstr "" + +#: sat/memory/memory.py:1787 +msgid "no reference left to {file_path}, deleting" +msgstr "" + +#: sat/memory/params.py:85 sat_frontends/primitivus/base.py:533 +msgid "General" +msgstr "" + +#: sat/memory/params.py:86 msgid "Connection" msgstr "" -#: src/memory/params.py:84 +#: sat/memory/params.py:88 msgid "Chat history limit" msgstr "" -#: src/memory/params.py:86 +#: sat/memory/params.py:90 msgid "Show offline contacts" msgstr "" -#: src/memory/params.py:88 +#: sat/memory/params.py:92 msgid "Show empty groups" msgstr "" -#: src/memory/params.py:91 src/plugins/plugin_misc_register_account.py:74 -msgid "Register new account" -msgstr "" - -#: src/memory/params.py:92 +#: sat/memory/params.py:95 +msgid "Connect on backend startup" +msgstr "" + +#: sat/memory/params.py:96 msgid "Connect on frontend startup" msgstr "" -#: src/memory/params.py:93 +#: sat/memory/params.py:97 msgid "Disconnect on frontend closure" msgstr "" -#: src/memory/params.py:154 +#: sat/memory/params.py:98 +msgid "Check certificate (don't uncheck if unsure)" +msgstr "" + +#: sat/memory/params.py:163 #, python-format msgid "Trying to purge cache of a profile not in memory: [%s]" msgstr "" -#: src/memory/params.py:178 +#: sat/memory/params.py:188 msgid "The profile name already exists" msgstr "" -#: src/memory/params.py:193 +#: sat/memory/params.py:203 msgid "Trying to delete an unknown profile" msgstr "" -#: src/memory/params.py:199 +#: sat/memory/params.py:209 msgid "Trying to delete a connected profile" msgstr "" -#: src/memory/params.py:217 +#: sat/memory/params.py:228 msgid "No default profile, returning first one" msgstr "" -#: src/memory/params.py:221 +#: sat/memory/params.py:234 msgid "No profile exist yet" msgstr "" -#: src/memory/params.py:229 +#: sat/memory/params.py:244 #, python-format msgid "Trying to access an unknown profile (%s)" msgstr "" -#: src/memory/params.py:314 +#: sat/memory/params.py:338 msgid "Trying to register frontends parameters with no specified app: aborted" msgstr "" -#: src/memory/params.py:319 -#, python-format -msgid "Trying to register twice frontends parameters for %(app)s: aborted" -msgstr "" - -#: src/memory/params.py:330 +#: sat/memory/params.py:347 +#, python-format +msgid "Trying to register twice frontends parameters for %(app)s: abortedapp" +msgstr "" + +#: sat/memory/params.py:363 #, python-format msgid "Can't determine default value for [%(category)s/%(name)s]: %(reason)s" msgstr "" -#: src/memory/params.py:346 src/memory/params.py:478 src/memory/params.py:523 +#: sat/memory/params.py:385 sat/memory/params.py:563 sat/memory/params.py:624 #, python-format msgid "Requested param [%(name)s] in category [%(category)s] doesn't exist !" msgstr "" -#: src/memory/params.py:381 +#: sat/memory/params.py:440 #, python-format msgid "" "Unset parameter (%(cat)s, %(param)s) of type list will use the default " "option '%(value)s'" msgstr "" -#: src/memory/params.py:385 +#: sat/memory/params.py:448 #, python-format msgid "Parameter (%(cat)s, %(param)s) of type list has no default option!" msgstr "" -#: src/memory/params.py:387 -#, python-format -msgid "" -"Parameter (%(cat)s, %(param)s) of type list has more than one default option!" -msgstr "" - -#: src/memory/params.py:444 -msgid "The stored password could not be decrypted!" -msgstr "" - -#: src/memory/params.py:494 +#: sat/memory/params.py:455 +#, python-format +msgid "" +"Parameter (%(cat)s, %(param)s) of type list has more than one default " +"option!" +msgstr "" + +#: sat/memory/params.py:585 msgid "Requesting a param for an non-existant profile" msgstr "" -#: src/memory/params.py:498 +#: sat/memory/params.py:589 msgid "Requesting synchronous param for not connected profile" msgstr "" -#: src/memory/params.py:527 +#: sat/memory/params.py:633 #, python-format msgid "" "Trying to get parameter '%(param)s' in category '%(cat)s' without " -"authorization!!!" -msgstr "" - -#: src/memory/params.py:539 +"authorization!!!param" +msgstr "" + +#: sat/memory/params.py:649 msgid "Requesting a param for a non-existant profile" msgstr "" -#: src/memory/params.py:564 src/memory/params.py:742 src/memory/params.py:759 -msgid "Asking params for inexistant profile" -msgstr "" - -#: src/memory/params.py:817 +#: sat/memory/params.py:962 msgid "Trying to set parameter for an unknown profile" msgstr "" -#: src/memory/params.py:822 +#: sat/memory/params.py:968 #, python-format msgid "Requesting an unknown parameter (%(category)s/%(name)s)" msgstr "" -#: src/memory/params.py:827 -#, python-format -msgid "" -"Trying to set parameter '%(param)s' in category '%(cat)s' without " -"authorization!!!" -msgstr "" - -#: src/memory/params.py:839 -#, python-format -msgid "" -"Trying to set parameter '%(param)s' in category '%(cat)s' with an non-" -"integer value" -msgstr "" - -#: src/memory/params.py:851 +#: sat/memory/params.py:974 +msgid "" +"{profile!r} is trying to set parameter {name!r} in category {category!r} " +"without authorization!!!" +msgstr "" + +#: sat/memory/params.py:992 +msgid "" +"Trying to set parameter {name} in category {category} withan non-integer " +"value" +msgstr "" + +#: sat/memory/params.py:1011 #, python-format msgid "Setting parameter (%(category)s, %(name)s) = %(value)s" msgstr "" -#: src/memory/params.py:873 +#: sat/memory/params.py:1043 msgid "Trying to encrypt a password while the personal key is undefined!" msgstr "" -#: src/memory/persistent.py:39 +#: sat/memory/persistent.py:45 msgid "PersistentDict can't be used before memory initialisation" msgstr "" -#: src/memory/sqlite.py:127 +#: sat/memory/persistent.py:175 +msgid "Calling load on LazyPersistentBinaryDict while it's not needed" +msgstr "" + +#: sat/memory/sqlite.py:163 +msgid "" +"too many db tries, we abandon! Error message: {msg}\n" +"query was {query}" +msgstr "" + +#: sat/memory/sqlite.py:166 +msgid "exception while running query, retrying ({try_}): {msg}" +msgstr "" + +#: sat/memory/sqlite.py:188 +msgid "" +"too many interaction tries, we abandon! Error message: {msg}\n" +"interaction method was: {interaction}\n" +"interaction arguments were: {args}" +msgstr "" + +#: sat/memory/sqlite.py:191 +msgid "exception while running interaction, retrying ({try_}): {msg}" +msgstr "" + +#: sat/memory/sqlite.py:210 msgid "Connecting database" msgstr "" -#: src/memory/sqlite.py:139 -msgid "Can't activate foreign keys" -msgstr "" - -#: src/memory/sqlite.py:142 +#: sat/memory/sqlite.py:223 msgid "The database is new, creating the tables" msgstr "" -#: src/memory/sqlite.py:251 +#: sat/memory/sqlite.py:337 #, python-format msgid "Can't delete profile [%s]" msgstr "" -#: src/memory/sqlite.py:269 +#: sat/memory/sqlite.py:354 #, python-format msgid "Profile [%s] deleted" msgstr "" -#: src/memory/sqlite.py:285 +#: sat/memory/sqlite.py:370 msgid "loading general parameters from database" msgstr "" -#: src/memory/sqlite.py:300 +#: sat/memory/sqlite.py:385 msgid "loading individual parameters from database" msgstr "" -#: src/memory/sqlite.py:324 -#, python-format -msgid "Can't set general parameter (%(category)s/%(name)s) in database" -msgstr "" - -#: src/memory/sqlite.py:337 -#, python-format -msgid "" -"Can't set individual parameter (%(category)s/%(name)s) for [%(profile)s] in " -"database" -msgstr "" - -#: src/memory/sqlite.py:350 -#, python-brace-format -msgid "" -"Can't save following {key} in history (uid: {uid}, lang:{lang}): {value}" -msgstr "" - -#: src/memory/sqlite.py:360 -#, python-brace-format -msgid "" -"Can't save following thread in history (uid: {uid}): thread:{thread}), " +#: sat/memory/sqlite.py:426 +#, python-format +msgid "Can't set general parameter (%(category)s/%(name)s) in databasecategory" +msgstr "" + +#: sat/memory/sqlite.py:439 +#, python-format +msgid "" +"Can't set individual parameter (%(category)s/%(name)s) for [%(profile)s] " +"in databasecategory" +msgstr "" + +#: sat/memory/sqlite.py:459 +msgid "Can't save following {key} in history (uid: {uid}, lang:{lang}): {value}" +msgstr "" + +#: sat/memory/sqlite.py:473 +msgid "" +"Can't save following thread in history (uid: {uid}): thread: {thread}), " "parent:{parent}" msgstr "" -#: src/memory/sqlite.py:379 -#, python-brace-format +#: sat/memory/sqlite.py:498 msgid "" "Can't save following message in history: from [{from_jid}] to [{to_jid}] " "(uid: {uid})" msgstr "" -#: src/memory/sqlite.py:535 -#, python-format -msgid "loading general private values [namespace: %s] from database" -msgstr "" - -#: src/memory/sqlite.py:537 src/memory/sqlite.py:555 -#, python-format -msgid "No data present in database for namespace %s" -msgstr "" - -#: src/memory/sqlite.py:552 -#, python-format -msgid "loading individual private values [namespace: %s] from database" -msgstr "" - -#: src/memory/sqlite.py:566 -#, python-format -msgid "" -"Can't set general private value (%(key)s) [namespace:%(namespace)s] in " -"database" -msgstr "" - -#: src/memory/sqlite.py:580 -#, python-format -msgid "" -"Can't set individual private value (%(key)s) [namespace: %(namespace)s] for " -"[%(profile)s] in database" -msgstr "" - -#: src/memory/sqlite.py:592 -#, python-format -msgid "" -"Can't delete general private value (%(key)s) [namespace:%(namespace)s] in " -"database" -msgstr "" - -#: src/memory/sqlite.py:605 -#, python-format -msgid "" -"Can't delete individual private value (%(key)s) [namespace: %(namespace)s] " -"for [%(profile)s] in database" -msgstr "" - -#: src/memory/sqlite.py:621 -#, python-format -msgid "loading general private binary values [namespace: %s] from database" -msgstr "" - -#: src/memory/sqlite.py:623 src/memory/sqlite.py:641 -#, python-format -msgid "No binary data present in database for namespace %s" -msgstr "" - -#: src/memory/sqlite.py:638 -#, python-format -msgid "loading individual private binary values [namespace: %s] from database" -msgstr "" - -#: src/memory/sqlite.py:652 -#, python-format -msgid "" -"Can't set general private binary value (%(key)s) [namespace:%(namespace)s] " -"in database" -msgstr "" - -#: src/memory/sqlite.py:666 -#, python-format -msgid "" -"Can't set individual binary private value (%(key)s) [namespace: " -"%(namespace)s] for [%(profile)s] in database" -msgstr "" - -#: src/memory/sqlite.py:678 -#, python-format -msgid "" -"Can't delete general private binary value (%(key)s) [namespace:" -"%(namespace)s] in database" -msgstr "" - -#: src/memory/sqlite.py:691 -#, python-format -msgid "" -"Can't delete individual private binary value (%(key)s) [namespace: " -"%(namespace)s] for [%(profile)s] in database" -msgstr "" - -#: src/memory/sqlite.py:761 -msgid "" -"Your local schema is up-to-date, but database versions mismatch, fixing it..." -msgstr "" - -#: src/memory/sqlite.py:771 -msgid "" -"There is a schema mismatch, but as we are on a dev version, database will be " -"updated" -msgstr "" - -#: src/memory/sqlite.py:775 -msgid "" -"schema version is up-to-date, but local schema differ from expected current " -"schema" -msgstr "" - -#: src/memory/sqlite.py:778 -#, python-format -msgid "" -"Here are the commands that should fix the situation, use at your own risk " -"(do a backup before modifying database), you can go to SàT's MUC room at " -"sat@chat.jabberfr.org for help\n" +#: sat/memory/sqlite.py:701 +msgid "" +"Can't {operation} data in database for namespace " +"{namespace}{and_key}{for_profile}: {msg}" +msgstr "" + +#: sat/memory/sqlite.py:752 +msgid "" +"getting {type}{binary} private values from database for namespace " +"{namespace}{keys}" +msgstr "" + +#: sat/memory/sqlite.py:986 +msgid "Can't save file metadata for [{profile}]: {reason}" +msgstr "" + +#: sat/memory/sqlite.py:1025 +msgid "table not updated, probably due to race condition, trying again ({tries})" +msgstr "" + +#: sat/memory/sqlite.py:1027 +msgid "Can't update file table" +msgstr "" + +#: sat/memory/sqlite.py:1132 +msgid "" +"Your local schema is up-to-date, but database versions mismatch, fixing " +"it..." +msgstr "" + +#: sat/memory/sqlite.py:1142 +msgid "" +"There is a schema mismatch, but as we are on a dev version, database will" +" be updated" +msgstr "" + +#: sat/memory/sqlite.py:1146 +msgid "" +"schema version is up-to-date, but local schema differ from expected " +"current schema" +msgstr "" + +#: sat/memory/sqlite.py:1149 +#, python-format +msgid "" +"Here are the commands that should fix the situation, use at your own risk" +" (do a backup before modifying database), you can go to SàT's MUC room at" +" sat@chat.jabberfr.org for help\n" "### SQL###\n" "%s\n" "### END SQL ###\n" msgstr "" -#: src/memory/sqlite.py:783 -msgid "" -"Database content needs a specific processing, local database will be updated" -msgstr "" - -#: src/memory/sqlite.py:785 +#: sat/memory/sqlite.py:1153 +msgid "" +"You database version is higher than the one used in this SàT version, are" +" you using several version at the same time? We can't run SàT with this " +"database." +msgstr "" + +#: sat/memory/sqlite.py:1161 +msgid "" +"Database content needs a specific processing, local database will be " +"updated" +msgstr "" + +#: sat/memory/sqlite.py:1163 msgid "Database schema has changed, local database will be updated" msgstr "" -#: src/plugins/plugin_adhoc_dbus.py:53 +#: sat/plugins/plugin_adhoc_dbus.py:91 msgid "Add D-Bus management to Ad-Hoc commands" msgstr "" -#: src/plugins/plugin_adhoc_dbus.py:60 +#: sat/plugins/plugin_adhoc_dbus.py:98 msgid "plugin Ad-Hoc D-Bus initialization" msgstr "" -#: src/plugins/plugin_adhoc_dbus.py:169 +#: sat/plugins/plugin_adhoc_dbus.py:127 +msgid "Media Players" +msgstr "" + +#: sat/plugins/plugin_adhoc_dbus.py:255 msgid "Command selection" msgstr "" -#: src/plugins/plugin_adhoc_dbus.py:206 src/plugins/plugin_xep_0050.py:439 +#: sat/plugins/plugin_adhoc_dbus.py:298 msgid "Updated" msgstr "" -#: src/plugins/plugin_adhoc_dbus.py:210 +#: sat/plugins/plugin_adhoc_dbus.py:302 msgid "Command sent" msgstr "" -#: src/plugins/plugin_blog_import_dokuwiki.py:52 +#: sat/plugins/plugin_adhoc_dbus.py:367 +msgid "Can't retrieve remote controllers on {device_jid}: {reason}" +msgstr "" + +#: sat/plugins/plugin_adhoc_dbus.py:405 +msgid "No media player found." +msgstr "" + +#: sat/plugins/plugin_adhoc_dbus.py:409 sat/plugins/plugin_adhoc_dbus.py:451 +msgid "Media Player Selection" +msgstr "" + +#: sat/plugins/plugin_adhoc_dbus.py:414 +msgid "Ignoring MPRIS bus without suffix" +msgstr "" + +#: sat/plugins/plugin_adhoc_dbus.py:428 +msgid "missing media_player value" +msgstr "" + +#: sat/plugins/plugin_adhoc_dbus.py:431 +msgid "" +"Media player ad-hoc command trying to use non MPRIS bus. Hack attempt? " +"Refused bus: {bus_name}" +msgstr "" + +#: sat/plugins/plugin_adhoc_dbus.py:434 +msgid "Invalid player name." +msgstr "" + +#: sat/plugins/plugin_adhoc_dbus.py:440 +msgid "Can't get D-Bus proxy: {reason}" +msgstr "" + +#: sat/plugins/plugin_adhoc_dbus.py:441 +msgid "Media player is not available anymore" +msgstr "" + +#: sat/plugins/plugin_adhoc_dbus.py:460 +msgid "Can't retrieve attribute {name}: {reason}" +msgstr "" + +#: sat/plugins/plugin_blog_import.py:45 +msgid "" +"Blog import management:\n" +"This plugin manage the different blog importers which can register to it," +" and handle generic importing tasks." +msgstr "" + +#: sat/plugins/plugin_blog_import.py:64 +msgid "plugin Blog Import initialization" +msgstr "" + +#: sat/plugins/plugin_blog_import_dokuwiki.py:58 msgid "Blog importer for Dokuwiki blog engine." msgstr "" -#: src/plugins/plugin_blog_import_dokuwiki.py:55 +#: sat/plugins/plugin_blog_import_dokuwiki.py:61 msgid "import posts from Dokuwiki blog engine" msgstr "" -#: src/plugins/plugin_blog_import_dokuwiki.py:57 +#: sat/plugins/plugin_blog_import_dokuwiki.py:63 msgid "" "This importer handle Dokuwiki blog engine.\n" "\n" @@ -2236,168 +1038,512 @@ "pointing to http://media.diekulturvermittlung.at.\n" msgstr "" -#: src/plugins/plugin_blog_import_dokuwiki.py:341 +#: sat/plugins/plugin_blog_import_dokuwiki.py:351 msgid "plugin Dokuwiki Import initialization" msgstr "" -#: src/plugins/plugin_blog_import_dokuwiki.py:371 -#, python-brace-format +#: sat/plugins/plugin_blog_import_dokuwiki.py:383 msgid "" "DokuWiki media files will be *downloaded* to {temp_dir} - to finish the " "import you have to upload them *manually* to {media_repo}" msgstr "" -#: src/plugins/plugin_blog_import_dokuwiki.py:375 -msgid "" -"DokuWiki media files will be *uploaded* to the XMPP server. Hyperlinks to " -"these media may not been updated though." -msgstr "" - -#: src/plugins/plugin_blog_import_dokuwiki.py:377 -#, python-brace-format +#: sat/plugins/plugin_blog_import_dokuwiki.py:389 +msgid "" +"DokuWiki media files will be *uploaded* to the XMPP server. Hyperlinks to" +" these media may not been updated though." +msgstr "" + +#: sat/plugins/plugin_blog_import_dokuwiki.py:393 msgid "" "DokuWiki media files will *stay* on {location} - some of them may be " "protected by DokuWiki ACL and will not be accessible." msgstr "" -#: src/plugins/plugin_blog_import_dotclear.py:41 +#: sat/plugins/plugin_blog_import_dotclear.py:42 msgid "Blog importer for Dotclear blog engine." msgstr "" -#: src/plugins/plugin_blog_import_dotclear.py:44 +#: sat/plugins/plugin_blog_import_dotclear.py:45 msgid "import posts from Dotclear blog engine" msgstr "" -#: src/plugins/plugin_blog_import_dotclear.py:46 +#: sat/plugins/plugin_blog_import_dotclear.py:47 msgid "" "This importer handle Dotclear blog engine.\n" "\n" "To use it, you'll need to export your blog to a flat file.\n" "You must go in your admin interface and select Plugins/Maintenance then " "Backup.\n" -"Export only one blog if you have many, i.e. select \"Download database of " -"current blog\"\n" -"Depending on your configuration, your may need to use Import/Export plugin " -"and export as a flat file.\n" +"Export only one blog if you have many, i.e. select \"Download database of" +" current blog\"\n" +"Depending on your configuration, your may need to use Import/Export " +"plugin and export as a flat file.\n" "\n" "location: you must use the absolute path to your backup for the location " "parameter\n" msgstr "" -#: src/plugins/plugin_blog_import_dotclear.py:242 +#: sat/plugins/plugin_blog_import_dotclear.py:266 msgid "plugin Dotclear Import initialization" msgstr "" -#: src/plugins/plugin_blog_import.py:44 -msgid "" -"Blog import management:\n" -"This plugin manage the different blog importers which can register to it, " -"and handler generic importing tasks." -msgstr "" - -#: src/plugins/plugin_blog_import.py:62 -msgid "plugin Blog Import initialization" -msgstr "" - -#: src/plugins/plugin_comp_ep_test.py:36 src/plugins/plugin_exp_parrot.py:38 -msgid "Implementation of parrot mode (repeat messages between 2 entities)" -msgstr "" - -#: src/plugins/plugin_comp_ep_test.py:44 -msgid "Plugin Test initialization" -msgstr "" - -#: src/plugins/plugin_exp_command_export.py:38 +#: sat/plugins/plugin_comp_file_sharing.py:69 +msgid "Component hosting and sharing files" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing.py:79 +msgid "" +"You are over quota, your maximum allowed size is {quota} and you are " +"already using {used_space}, you can't upload {file_size} more." +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing.py:350 +msgid "File Sharing initialization" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing.py:431 +#: sat/plugins/plugin_comp_file_sharing_management.py:422 +msgid "Can't create thumbnail: {reason}" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing.py:454 +msgid "Reusing already generated hash" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing.py:485 +msgid "Can't get thumbnail for {final_path}: {e}" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing.py:574 +msgid "{peer_jid} is trying to access an unauthorized file: {name}" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing.py:582 +msgid "no matching file found ({file_data})" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing_management.py:43 +msgid "" +"Experimental handling of file management for file sharing. This plugins " +"allows to change permissions of stored files/directories or remove them." +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing_management.py:72 +msgid "File Sharing Management plugin initialization" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing_management.py:185 +msgid "file not found" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing_management.py:187 +#: sat/plugins/plugin_comp_file_sharing_management.py:192 +#: sat/plugins/plugin_comp_file_sharing_management.py:474 +msgid "forbidden" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing_management.py:191 +msgid "Only owner can manage files" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing_management.py:258 +msgid "Please select permissions for this directory" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing_management.py:260 +msgid "Please select permissions for this file" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing_management.py:305 +msgid "Can't use read_allowed values: {reason}" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing_management.py:332 +msgid "management session done" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing_management.py:358 +msgid "" +"Are you sure to delete directory {name} and all files and directories " +"under it?" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing_management.py:362 +msgid "Are you sure to delete file {name}?" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing_management.py:387 +msgid "file deleted" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing_management.py:465 +msgid "thumbnails generated" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing_management.py:481 +msgid "You are currently using {size_used} on {size_quota}" +msgstr "" + +#: sat/plugins/plugin_comp_file_sharing_management.py:484 +msgid "unlimited quota" +msgstr "" + +#: sat/plugins/plugin_dbg_manhole.py:39 +msgid "Debug plugin to have a telnet server" +msgstr "" + +#: sat/plugins/plugin_dbg_manhole.py:53 +msgid "" +"/!\\ Manhole debug server activated, be sure to not use it in production," +" this is dangerous /!\\" +msgstr "" + +#: sat/plugins/plugin_dbg_manhole.py:55 +msgid "You can connect to manhole server using telnet on port {port}" +msgstr "" + +#: sat/plugins/plugin_exp_command_export.py:39 msgid "Implementation of command export" msgstr "" -#: src/plugins/plugin_exp_command_export.py:89 +#: sat/plugins/plugin_exp_command_export.py:92 msgid "Plugin command export initialization" msgstr "" -#: src/plugins/plugin_exp_lang_detect.py:42 +#: sat/plugins/plugin_exp_events.py:50 +msgid "Experimental implementation of XMPP events management" +msgstr "" + +#: sat/plugins/plugin_exp_events.py:60 +msgid "Event plugin initialization" +msgstr "" + +#: sat/plugins/plugin_exp_events.py:177 +msgid "no src found for image" +msgstr "" + +#: sat/plugins/plugin_exp_events.py:187 +msgid "no {uri_type} element found!" +msgstr "" + +#: sat/plugins/plugin_exp_events.py:189 +msgid "incomplete {uri_type} element" +msgstr "" + +#: sat/plugins/plugin_exp_events.py:191 +msgid "bad {uri_type} element" +msgstr "" + +#: sat/plugins/plugin_exp_events.py:231 +msgid "No event element has been found" +msgstr "" + +#: sat/plugins/plugin_exp_events.py:233 +msgid "No event with this id has been found" +msgstr "" + +#: sat/plugins/plugin_exp_events.py:290 +msgid "event_id must be set" +msgstr "" + +#: sat/plugins/plugin_exp_events.py:333 +msgid "The given URI is not valid: {uri}" +msgstr "" + +#: sat/plugins/plugin_exp_events.py:354 +#: sat/plugins/plugin_exp_list_of_interest.py:100 +msgid "requested node already exists" +msgstr "" + +#: sat/plugins/plugin_exp_events.py:373 +msgid "missing node" +msgstr "" + +#: sat/plugins/plugin_exp_events.py:426 +msgid "No event found in item {item_id}, ignoring" +msgstr "" + +#: sat/plugins/plugin_exp_events.py:519 +msgid "no data found for {item_id} (service: {service}, node: {node})" +msgstr "" + +#: sat/plugins/plugin_exp_events.py:542 sat/plugins/plugin_exp_events.py:623 +msgid "\"XEP-0277\" (blog) plugin is needed for this feature" +msgstr "" + +#: sat/plugins/plugin_exp_events.py:548 +msgid "got event data" +msgstr "" + +#: sat/plugins/plugin_exp_events.py:579 +msgid "affiliation set on blog and comments nodes" +msgstr "" + +#: sat/plugins/plugin_exp_events.py:619 +msgid "\"Invitations\" plugin is needed for this feature" +msgstr "" + +#: sat/plugins/plugin_exp_events.py:632 +msgid "invitation created" +msgstr "" + +#: sat/plugins/plugin_exp_invitation.py:44 +msgid "Experimental handling of invitations" +msgstr "" + +#: sat/plugins/plugin_exp_invitation.py:57 +msgid "Invitation plugin initialization" +msgstr "" + +#: sat/plugins/plugin_exp_invitation.py:251 +msgid "Can't get item linked with invitation: {reason}" +msgstr "" + +#: sat/plugins/plugin_exp_invitation.py:256 +msgid "Invitation was linking to a non existing item" +msgstr "" + +#: sat/plugins/plugin_exp_invitation.py:262 +msgid "Can't retrieve namespace of invitation: {reason}" +msgstr "" + +#: sat/plugins/plugin_exp_invitation.py:281 +msgid "Bad invitation, ignoring" +msgstr "" + +#: sat/plugins/plugin_exp_invitation.py:321 +msgid "No handler for namespace \"{namespace}\", invitation ignored" +msgstr "" + +#: sat/plugins/plugin_exp_invitation_file.py:39 +msgid "Experimental handling of invitations for file sharing" +msgstr "" + +#: sat/plugins/plugin_exp_invitation_file.py:46 +msgid "File Sharing Invitation plugin initialization" +msgstr "" + +#: sat/plugins/plugin_exp_invitation_file.py:85 +#: sat/plugins/plugin_exp_invitation_file.py:92 +msgid "file sharing" +msgstr "" + +#: sat/plugins/plugin_exp_invitation_file.py:87 +msgid "photo album" +msgstr "" + +#: sat/plugins/plugin_exp_invitation_file.py:93 +msgid "" +"{profile} has received an invitation for a files repository " +"({type_human}) with namespace {sharing_ns!r} at path [{path}]" +msgstr "" + +#: sat/plugins/plugin_exp_invitation_pubsub.py:42 +msgid "Invitations for pubsub based features" +msgstr "" + +#: sat/plugins/plugin_exp_invitation_pubsub.py:49 +msgid "Pubsub Invitation plugin initialization" +msgstr "" + +#: sat/plugins/plugin_exp_jingle_stream.py:52 +msgid "Jingle Stream plugin" +msgstr "" + +#: sat/plugins/plugin_exp_jingle_stream.py:55 +msgid "{peer} wants to send you a stream, do you accept ?" +msgstr "" + +#: sat/plugins/plugin_exp_jingle_stream.py:56 +msgid "Stream Request" +msgstr "" + +#: sat/plugins/plugin_exp_jingle_stream.py:123 +msgid "stream can't be used with multiple consumers" +msgstr "" + +#: sat/plugins/plugin_exp_jingle_stream.py:170 +msgid "No client connected, can't send data" +msgstr "" + +#: sat/plugins/plugin_exp_jingle_stream.py:180 +msgid "Plugin Stream initialization" +msgstr "" + +#: sat/plugins/plugin_exp_jingle_stream.py:270 +msgid "given port is invalid" +msgstr "" + +#: sat/plugins/plugin_exp_lang_detect.py:45 msgid "Detect and set message language when unknown" msgstr "" -#: src/plugins/plugin_exp_lang_detect.py:45 -#: src/plugins/plugin_misc_watched.py:40 src/plugins/plugin_xep_0249.py:73 +#: sat/plugins/plugin_exp_lang_detect.py:48 +#: sat/plugins/plugin_misc_watched.py:43 sat/plugins/plugin_xep_0249.py:73 msgid "Misc" msgstr "" -#: src/plugins/plugin_exp_lang_detect.py:47 +#: sat/plugins/plugin_exp_lang_detect.py:50 msgid "language detection" msgstr "" -#: src/plugins/plugin_exp_lang_detect.py:65 +#: sat/plugins/plugin_exp_lang_detect.py:66 msgid "Language detection plugin initialization" msgstr "" -#: src/plugins/plugin_exp_parrot.py:51 +#: sat/plugins/plugin_exp_list_of_interest.py:46 +msgid "Experimental handling of interesting XMPP locations" +msgstr "" + +#: sat/plugins/plugin_exp_list_of_interest.py:56 +msgid "List of Interest plugin initialization" +msgstr "" + +#: sat/plugins/plugin_exp_list_of_interest.py:287 +msgid "Missing interest element: {xml}" +msgstr "" + +#: sat/plugins/plugin_exp_parrot.py:40 +msgid "Implementation of parrot mode (repeat messages between 2 entities)" +msgstr "" + +#: sat/plugins/plugin_exp_parrot.py:56 msgid "Plugin Parrot initialization" msgstr "" -#: src/plugins/plugin_exp_parrot.py:58 src/plugins/plugin_xep_0045.py:99 -#: src/plugins/plugin_xep_0048.py:73 src/plugins/plugin_xep_0092.py:54 -#: src/plugins/plugin_xep_0249.py:89 +#: sat/plugins/plugin_exp_parrot.py:63 sat/plugins/plugin_xep_0045.py:150 +#: sat/plugins/plugin_xep_0048.py:102 sat/plugins/plugin_xep_0092.py:61 +#: sat/plugins/plugin_xep_0199.py:56 sat/plugins/plugin_xep_0249.py:95 +#: sat/plugins/plugin_xep_0384.py:476 msgid "Text commands not available" msgstr "" -#: src/plugins/plugin_exp_pipe.py:40 -msgid "Jingle Pipe Transfer experimental plugin" -msgstr "" - -#: src/plugins/plugin_exp_pipe.py:43 -#, python-brace-format -msgid "{peer} wants to send you a pipe stream, do you accept ?" -msgstr "" - -#: src/plugins/plugin_exp_pipe.py:44 -msgid "Pipe stream" -msgstr "" - -#: src/plugins/plugin_exp_pipe.py:50 -msgid "Plugin Pipe initialization" -msgstr "" - -#: src/plugins/plugin_misc_account.py:48 -msgid "SàT account creation" -msgstr "" - -#: src/plugins/plugin_misc_account.py:105 -msgid "Prosody command succeed" -msgstr "" - -#: src/plugins/plugin_misc_account.py:108 -#, python-format -msgid "Can't complete Prosody command (error code: %(code)d): %(message)s" -msgstr "" - -#: src/plugins/plugin_misc_account.py:135 -msgid "Plugin Account initialization" -msgstr "" - -#: src/plugins/plugin_misc_account.py:145 -#, python-format -msgid "Can't find %s" -msgstr "" - -#: src/plugins/plugin_misc_account.py:148 -#, python-format -msgid "Prosody path found: %s" -msgstr "" - -#: src/plugins/plugin_misc_account.py:314 -msgid "New Libervia account created" -msgstr "" - -#: src/plugins/plugin_misc_account.py:326 -#, python-brace-format +#: sat/plugins/plugin_exp_pubsub_admin.py:40 +msgid "" +"\\Implementation of Pubsub Administrator\n" +"This allows a pubsub administrator to overwrite completly items, " +"including publisher.\n" +"Specially useful when importing a node." +msgstr "" + +#: sat/plugins/plugin_exp_pubsub_hook.py:40 +msgid "Experimental plugin to launch on action on Pubsub notifications" +msgstr "" + +#: sat/plugins/plugin_exp_pubsub_hook.py:56 +msgid "PubSub Hook initialization" +msgstr "" + +#: sat/plugins/plugin_exp_pubsub_hook.py:93 +msgid "node manager already set for {node}" +msgstr "" + +#: sat/plugins/plugin_exp_pubsub_hook.py:101 +msgid "node manager installed on {node}" +msgstr "" + +#: sat/plugins/plugin_exp_pubsub_hook.py:107 +msgid "trying to remove a {node} without hook" +msgstr "" + +#: sat/plugins/plugin_exp_pubsub_hook.py:112 +msgid "hook removed" +msgstr "" + +#: sat/plugins/plugin_exp_pubsub_hook.py:114 +msgid "node still needed for an other hook" +msgstr "" + +#: sat/plugins/plugin_exp_pubsub_hook.py:119 +msgid "{hook_type} is not handled" +msgstr "" + +#: sat/plugins/plugin_exp_pubsub_hook.py:123 +#: sat/plugins/plugin_exp_pubsub_hook.py:167 +msgid "{hook_type} hook type not implemented yet" +msgstr "" + +#: sat/plugins/plugin_exp_pubsub_hook.py:139 +msgid "{persistent} hook installed on {node} for {profile}" +msgstr "" + +#: sat/plugins/plugin_exp_pubsub_hook.py:140 +msgid "persistent" +msgstr "" + +#: sat/plugins/plugin_exp_pubsub_hook.py:140 +msgid "temporary" +msgstr "" + +#: sat/plugins/plugin_exp_pubsub_hook.py:173 +msgid "Can't load Pubsub hook at node {node}, it will be removed: {reason}" +msgstr "" + +#: sat/plugins/plugin_exp_pubsub_hook.py:185 +msgid "Error while running Pubsub hook for node {node}: {msg}" +msgstr "" + +#: sat/plugins/plugin_import.py:41 +msgid "Generic import plugin, base for specialized importers" +msgstr "" + +#: sat/plugins/plugin_import.py:49 +msgid "plugin Import initialization" +msgstr "" + +#: sat/plugins/plugin_import.py:67 +msgid "initializing {name} import handler" +msgstr "" + +#: sat/plugins/plugin_import.py:158 +msgid "invalid json option: {option}" +msgstr "" + +#: sat/plugins/plugin_import.py:296 +msgid "uploading subitems" +msgstr "" + +#: sat/plugins/plugin_import.py:327 +msgid "An {handler_name} importer with the name {name} already exist" +msgstr "" + +#: sat/plugins/plugin_merge_req_mercurial.py:37 +msgid "Merge request handler for Mercurial" +msgstr "" + +#: sat/plugins/plugin_merge_req_mercurial.py:40 +msgid "handle Mercurial repository" +msgstr "" + +#: sat/plugins/plugin_merge_req_mercurial.py:71 +msgid "Mercurial merge request handler initialization" +msgstr "" + +#: sat/plugins/plugin_merge_req_mercurial.py:75 +msgid "Mercurial executable (hg) not found, can't use Mercurial handler" +msgstr "" + +#: sat/plugins/plugin_merge_req_mercurial.py:116 +msgid "invalid changeset signature" +msgstr "" + +#: sat/plugins/plugin_merge_req_mercurial.py:136 +msgid "unexpected time data: {data}" +msgstr "" + +#: sat/plugins/plugin_misc_account.py:50 +msgid "Libervia account creation" +msgstr "" + +#: sat/plugins/plugin_misc_account.py:75 msgid "" "Welcome to Libervia, the web interface of Salut à Toi.\n" "\n" -"Your account on {domain} has been successfully created. This is a " -"demonstration version to show you the current status of the project. It is " -"still under development, please keep it in mind!\n" +"Your account on {domain} has been successfully created.\n" +"This is a demonstration version to show you the current status of the " +"project.\n" +"It is still under development, please keep it in mind!\n" "\n" "Here is your connection information:\n" "\n" @@ -2405,232 +1551,430 @@ "Jabber ID (JID): {jid}\n" "Your password has been chosen by yourself during registration.\n" "\n" -"In the beginning, you have nobody to talk to. To find some contacts, you may " -"use the users' directory:\n" +"In the beginning, you have nobody to talk to. To find some contacts, you " +"may use the users' directory:\n" " - make yourself visible in \"Service / Directory subscription\".\n" " - search for people with \"Contacts\" / Search directory\".\n" "\n" "Any feedback welcome. Thank you!\n" "\n" "Salut à Toi association\n" -"http://www.salut-a-toi.org\n" -msgstr "" - -#: src/plugins/plugin_misc_account.py:346 -msgid "Libervia account created" -msgstr "" - -#: src/plugins/plugin_misc_account.py:372 +"https://www.salut-a-toi.org\n" +msgstr "" + +#: sat/plugins/plugin_misc_account.py:109 +msgid "Plugin Account initialization" +msgstr "" + +#: sat/plugins/plugin_misc_account.py:294 +msgid "Failed to send account creation confirmation to {email}: {msg}" +msgstr "" + +#: sat/plugins/plugin_misc_account.py:313 +msgid "New Libervia account created" +msgstr "" + +#: sat/plugins/plugin_misc_account.py:339 +msgid "Your Libervia account has been created" +msgstr "" + +#: sat/plugins/plugin_misc_account.py:363 +msgid "xmpp_domain needs to be set in sat.conf. Using \"{default}\" meanwhile" +msgstr "" + +#: sat/plugins/plugin_misc_account.py:379 msgid "Manage your account" msgstr "" -#: src/plugins/plugin_misc_account.py:375 +#: sat/plugins/plugin_misc_account.py:385 msgid "Change your password" msgstr "" -#: src/plugins/plugin_misc_account.py:376 +#: sat/plugins/plugin_misc_account.py:387 msgid "Current profile password" msgstr "" -#: src/plugins/plugin_misc_account.py:378 +#: sat/plugins/plugin_misc_account.py:389 msgid "New password" msgstr "" -#: src/plugins/plugin_misc_account.py:380 +#: sat/plugins/plugin_misc_account.py:391 msgid "New password (again)" msgstr "" -#: src/plugins/plugin_misc_account.py:418 src/stdui/ui_profile_manager.py:62 +#: sat/plugins/plugin_misc_account.py:431 sat/stdui/ui_profile_manager.py:73 msgid "The provided profile password doesn't match." msgstr "" -#: src/plugins/plugin_misc_account.py:419 +#: sat/plugins/plugin_misc_account.py:432 msgid "Attempt failure" msgstr "" -#: src/plugins/plugin_misc_account.py:462 +#: sat/plugins/plugin_misc_account.py:477 msgid "The values entered for the new password are not equal." msgstr "" -#: src/plugins/plugin_misc_account.py:474 +#: sat/plugins/plugin_misc_account.py:495 msgid "Change your password?" msgstr "" -#: src/plugins/plugin_misc_account.py:475 +#: sat/plugins/plugin_misc_account.py:500 msgid "" "Note for advanced users: this will actually change both your SàT profile " "password AND your XMPP account password." msgstr "" -#: src/plugins/plugin_misc_account.py:476 +#: sat/plugins/plugin_misc_account.py:504 msgid "Continue with changing the password?" msgstr "" -#: src/plugins/plugin_misc_account.py:490 -#: src/plugins/plugin_misc_register_account.py:108 +#: sat/plugins/plugin_misc_account.py:528 +#: sat/plugins/plugin_misc_register_account.py:133 msgid "Confirmation" msgstr "" -#: src/plugins/plugin_misc_account.py:491 +#: sat/plugins/plugin_misc_account.py:529 msgid "Your password has been changed." msgstr "" -#: src/plugins/plugin_misc_account.py:496 +#: sat/plugins/plugin_misc_account.py:533 +#: sat/plugins/plugin_misc_account.py:606 +#: sat/plugins/plugin_misc_account.py:716 sat_frontends/primitivus/base.py:790 +#: sat_frontends/primitivus/base.py:831 +#: sat_frontends/quick_frontend/quick_profile_manager.py:133 +msgid "Error" +msgstr "" + +#: sat/plugins/plugin_misc_account.py:535 #, python-format msgid "Your password could not be changed: %s" msgstr "" -#: src/plugins/plugin_misc_account.py:507 +#: sat/plugins/plugin_misc_account.py:548 msgid "Delete your account?" msgstr "" -#: src/plugins/plugin_misc_account.py:508 +#: sat/plugins/plugin_misc_account.py:551 msgid "" "If you confirm this dialog, you will be disconnected and then your XMPP " "account AND your SàT profile will both be DELETED." msgstr "" -#: src/plugins/plugin_misc_account.py:509 +#: sat/plugins/plugin_misc_account.py:555 +msgid "contact list, messages history, blog posts and commentsGROUPBLOG" +msgstr "" + +#: sat/plugins/plugin_misc_account.py:558 msgid "contact list and messages history" msgstr "" -#: src/plugins/plugin_misc_account.py:509 -msgid "contact list, messages history, blog posts and comments" -msgstr "" - -#: src/plugins/plugin_misc_account.py:510 -#, python-format -msgid "" -"All your data stored on %(server)s, including your %(target)s will be erased." -msgstr "" - -#: src/plugins/plugin_misc_account.py:511 -#: src/plugins/plugin_misc_account.py:558 -#: src/plugins/plugin_misc_account.py:562 -#: src/plugins/plugin_misc_account.py:566 -msgid "" -"There is no other confirmation dialog, this is the very last one! Are you " -"sure?" -msgstr "" - -#: src/plugins/plugin_misc_account.py:539 +#: sat/plugins/plugin_misc_account.py:561 +#, python-format +msgid "" +"All your data stored on %(server)s, including your %(target)s will be " +"erased." +msgstr "" + +#: sat/plugins/plugin_misc_account.py:567 +#: sat/plugins/plugin_misc_account.py:642 +#: sat/plugins/plugin_misc_account.py:658 +#: sat/plugins/plugin_misc_account.py:674 +msgid "" +"There is no other confirmation dialog, this is the very last one! Are you" +" sure?" +msgstr "" + +#: sat/plugins/plugin_misc_account.py:608 #, python-format msgid "Your XMPP account could not be deleted: %s" msgstr "" -#: src/plugins/plugin_misc_account.py:555 +#: sat/plugins/plugin_misc_account.py:628 msgid "Delete all your (micro-)blog posts and comments?" msgstr "" -#: src/plugins/plugin_misc_account.py:556 -msgid "" -"If you confirm this dialog, all the (micro-)blog data you submitted will be " -"erased." -msgstr "" - -#: src/plugins/plugin_misc_account.py:557 -msgid "" -"These are the public and private posts and comments you sent to any group." -msgstr "" - -#: src/plugins/plugin_misc_account.py:560 +#: sat/plugins/plugin_misc_account.py:632 +msgid "" +"If you confirm this dialog, all the (micro-)blog data you submitted will " +"be erased." +msgstr "" + +#: sat/plugins/plugin_misc_account.py:637 +msgid "These are the public and private posts and comments you sent to any group." +msgstr "" + +#: sat/plugins/plugin_misc_account.py:649 msgid "Delete all your (micro-)blog posts?" msgstr "" -#: src/plugins/plugin_misc_account.py:561 -msgid "" -"If you confirm this dialog, all the public and private posts you sent to any " -"group will be erased." -msgstr "" - -#: src/plugins/plugin_misc_account.py:564 +#: sat/plugins/plugin_misc_account.py:653 +msgid "" +"If you confirm this dialog, all the public and private posts you sent to " +"any group will be erased." +msgstr "" + +#: sat/plugins/plugin_misc_account.py:665 msgid "Delete all your (micro-)blog comments?" msgstr "" -#: src/plugins/plugin_misc_account.py:565 -msgid "" -"If you confirm this dialog, all the public and private comments you made on " -"other people's posts will be erased." -msgstr "" - -#: src/plugins/plugin_misc_account.py:578 +#: sat/plugins/plugin_misc_account.py:669 +msgid "" +"If you confirm this dialog, all the public and private comments you made " +"on other people's posts will be erased." +msgstr "" + +#: sat/plugins/plugin_misc_account.py:689 msgid "blog posts and comments" msgstr "" -#: src/plugins/plugin_misc_account.py:581 +#: sat/plugins/plugin_misc_account.py:694 msgid "blog posts" msgstr "" -#: src/plugins/plugin_misc_account.py:584 +#: sat/plugins/plugin_misc_account.py:699 msgid "comments" msgstr "" -#: src/plugins/plugin_misc_account.py:588 +#: sat/plugins/plugin_misc_account.py:705 msgid "Deletion confirmation" msgstr "" -#: src/plugins/plugin_misc_account.py:590 +#: sat/plugins/plugin_misc_account.py:707 #, python-format msgid "Your %(target)s have been deleted." msgstr "" -#: src/plugins/plugin_misc_account.py:591 -msgid "" -"Known issue of the demo version: you need to refresh the page to make the " -"deleted posts actually disappear." -msgstr "" - -#: src/plugins/plugin_misc_account.py:596 +#: sat/plugins/plugin_misc_account.py:709 +msgid "" +"Known issue of the demo version: you need to refresh the page to make the" +" deleted posts actually disappear." +msgstr "" + +#: sat/plugins/plugin_misc_account.py:718 #, python-format msgid "Your %(target)s could not be deleted: %(message)s" msgstr "" -#: src/plugins/plugin_misc_android.py:35 +#: sat/plugins/plugin_misc_android.py:50 msgid "Manage Android platform specificities, like pause or notifications" msgstr "" -#: src/plugins/plugin_misc_android.py:45 +#: sat/plugins/plugin_misc_android.py:92 +msgid "sound on notifications" +msgstr "" + +#: sat/plugins/plugin_misc_android.py:94 +msgid "Normal" +msgstr "" + +#: sat/plugins/plugin_misc_android.py:95 sat/plugins/plugin_misc_android.py:103 +msgid "Never" +msgstr "" + +#: sat/plugins/plugin_misc_android.py:99 msgid "Vibrate on notifications" msgstr "" -#: src/plugins/plugin_misc_android.py:65 +#: sat/plugins/plugin_misc_android.py:101 +msgid "Always" +msgstr "" + +#: sat/plugins/plugin_misc_android.py:102 +msgid "In vibrate mode" +msgstr "" + +#: sat/plugins/plugin_misc_android.py:243 msgid "plugin Android initialization" msgstr "" -#: src/plugins/plugin_misc_debug.py:34 +#: sat/plugins/plugin_misc_android.py:362 +msgid "new message from {contact}" +msgstr "" + +#: sat/plugins/plugin_misc_app_manager.py:64 +msgid "" +"Applications Manager\n" +"\n" +"Manage external applications using packagers, OS " +"virtualization/containers or other\n" +"software management tools.\n" +msgstr "" + +#: sat/plugins/plugin_misc_app_manager.py:80 +msgid "plugin Applications Manager initialization" +msgstr "" + +#: sat/plugins/plugin_misc_app_manager.py:166 +msgid "" +"No value found for \"public_url\", using \"example.org\" for now, please " +"set the proper value in libervia.conf" +msgstr "" + +#: sat/plugins/plugin_misc_app_manager.py:170 +msgid "" +"invalid value for \"public_url\" ({value}), it musts not start with " +"schema (\"http\"), ignoring it and using \"example.org\" instead" +msgstr "" + +#: sat/plugins/plugin_misc_attach.py:43 +msgid "Attachments handler" +msgstr "" + +#: sat/plugins/plugin_misc_attach.py:53 +msgid "plugin Attach initialization" +msgstr "" + +#: sat/plugins/plugin_misc_attach.py:109 +msgid "Can't resize attachment of unknown type: {attachment}" +msgstr "" + +#: sat/plugins/plugin_misc_attach.py:125 +msgid "Attachment {path!r} has been resized at {new_path!r}" +msgstr "" + +#: sat/plugins/plugin_misc_attach.py:129 +msgid "Can't resize attachment of type {main_type!r}: {attachment}" +msgstr "" + +#: sat/plugins/plugin_misc_attach.py:143 +msgid "No plugin can handle attachment with {destinee}" +msgstr "" + +#: sat/plugins/plugin_misc_attach.py:210 +msgid "certificate check disabled for upload, this is dangerous!" +msgstr "" + +#: sat/plugins/plugin_misc_debug.py:35 msgid "Set of method to make development and debugging easier" msgstr "" -#: src/plugins/plugin_misc_debug.py:41 +#: sat/plugins/plugin_misc_debug.py:41 msgid "Plugin Debug initialization" msgstr "" -#: src/plugins/plugin_misc_extra_pep.py:37 +#: sat/plugins/plugin_misc_download.py:43 +msgid "File download management" +msgstr "" + +#: sat/plugins/plugin_misc_download.py:50 +msgid "plugin Download initialization" +msgstr "" + +#: sat/plugins/plugin_misc_download.py:95 +msgid "Can't download file: {reason}" +msgstr "" + +#: sat/plugins/plugin_misc_download.py:99 sat_frontends/jp/cmd_file.py:498 +msgid "Can't download file" +msgstr "" + +#: sat/plugins/plugin_misc_download.py:176 +msgid "certificate check disabled for download, this is dangerous!" +msgstr "" + +#: sat/plugins/plugin_misc_download.py:187 +msgid "Can't download URI {uri}: {reason}" +msgstr "" + +#: sat/plugins/plugin_misc_email_invitation.py:44 +msgid "invitation of people without XMPP account" +msgstr "" + +#: sat/plugins/plugin_misc_email_invitation.py:59 +msgid "You have been invited by {host_name} to {app_name}" +msgstr "" + +#: sat/plugins/plugin_misc_email_invitation.py:60 +msgid "" +"Hello {name}!\n" +"\n" +"You have received an invitation from {host_name} to participate to " +"\"{app_name}\".\n" +"To join, you just have to click on the following URL:\n" +"{url}\n" +"\n" +"Please note that this URL should not be shared with anybody!\n" +"If you want more details on {app_name}, you can check {app_url}.\n" +"\n" +"Welcome!\n" +msgstr "" + +#: sat/plugins/plugin_misc_email_invitation.py:76 +msgid "plugin Invitations initialization" +msgstr "" + +#: sat/plugins/plugin_misc_email_invitation.py:105 +msgid "You can't use following key(s) in extra, they are reserved: {}" +msgstr "" + +#: sat/plugins/plugin_misc_email_invitation.py:198 +msgid "You can't use following key(s) in both args and extra: {}" +msgstr "" + +#: sat/plugins/plugin_misc_email_invitation.py:207 +msgid "You need to provide a main email address before using emails_extra" +msgstr "" + +#: sat/plugins/plugin_misc_email_invitation.py:213 +msgid "You need to provide url_template if you use default message body" +msgstr "" + +#: sat/plugins/plugin_misc_email_invitation.py:216 +msgid "creating an invitation" +msgstr "" + +#: sat/plugins/plugin_misc_email_invitation.py:237 +msgid "You need to specify xmpp_domain in sat.conf" +msgstr "" + +#: sat/plugins/plugin_misc_email_invitation.py:251 +msgid "Can't create XMPP account" +msgstr "" + +#: sat/plugins/plugin_misc_email_invitation.py:254 +msgid "requested jid already exists, trying with {}" +msgstr "" + +#: sat/plugins/plugin_misc_email_invitation.py:265 +msgid "account {jid_} created" +msgstr "" + +#: sat/plugins/plugin_misc_email_invitation.py:317 +msgid "somebody" +msgstr "" + +#: sat/plugins/plugin_misc_email_invitation.py:345 +msgid "Not all arguments have been consumed: {}" +msgstr "" + +#: sat/plugins/plugin_misc_email_invitation.py:443 +msgid "Skipping reserved key {key}" +msgstr "" + +#: sat/plugins/plugin_misc_extra_pep.py:38 msgid "Display messages from extra PEP services" msgstr "" -#: src/plugins/plugin_misc_extra_pep.py:68 +#: sat/plugins/plugin_misc_extra_pep.py:69 msgid "Plugin Extra PEP initialization" msgstr "" -#: src/plugins/plugin_misc_file.py:39 +#: sat/plugins/plugin_misc_file.py:45 msgid "" "File Tansfer Management:\n" -"This plugin manage the various ways of sending a file, and choose the best " -"one." -msgstr "" - -#: src/plugins/plugin_misc_file.py:44 -#, python-brace-format +"This plugin manage the various ways of sending a file, and choose the " +"best one." +msgstr "" + +#: sat/plugins/plugin_misc_file.py:52 msgid "Please select a file to send to {peer}" msgstr "" -#: src/plugins/plugin_misc_file.py:45 +#: sat/plugins/plugin_misc_file.py:53 msgid "File sending" msgstr "" -#: src/plugins/plugin_misc_file.py:46 -#, python-brace-format +#: sat/plugins/plugin_misc_file.py:54 msgid "" "{peer} wants to send the file \"{name}\" to you:\n" "{desc}\n" @@ -2640,421 +1984,599 @@ "Do you accept ?" msgstr "" -#: src/plugins/plugin_misc_file.py:47 +#: sat/plugins/plugin_misc_file.py:58 msgid "Confirm file transfer" msgstr "" -#: src/plugins/plugin_misc_file.py:48 +#: sat/plugins/plugin_misc_file.py:59 msgid "File {} already exists, are you sure you want to overwrite ?" msgstr "" -#: src/plugins/plugin_misc_file.py:49 +#: sat/plugins/plugin_misc_file.py:60 msgid "File exists" msgstr "" -#: src/plugins/plugin_misc_file.py:194 +#: sat/plugins/plugin_misc_file.py:70 msgid "plugin File initialization" msgstr "" -#: src/plugins/plugin_misc_file.py:198 +#: sat/plugins/plugin_misc_file.py:82 msgid "Action" msgstr "" -#: src/plugins/plugin_misc_file.py:198 +#: sat/plugins/plugin_misc_file.py:82 msgid "send file" msgstr "" -#: src/plugins/plugin_misc_file.py:198 +#: sat/plugins/plugin_misc_file.py:85 msgid "Send a file" msgstr "" -#: src/plugins/plugin_misc_file.py:244 src/plugins/plugin_xep_0100.py:77 +#: sat/plugins/plugin_misc_file.py:121 +msgid "{name} method will be used to send the file" +msgstr "" + +#: sat/plugins/plugin_misc_file.py:132 +msgid "Can't send {filepath} to {peer_jid} with {method_name}: {reason}" +msgstr "" + +#: sat/plugins/plugin_misc_file.py:166 sat/plugins/plugin_xep_0100.py:101 msgid "Invalid JID" msgstr "" -#: src/plugins/plugin_misc_groupblog.py:51 +#: sat/plugins/plugin_misc_forums.py:36 +msgid "forums management" +msgstr "" + +#: sat/plugins/plugin_misc_forums.py:43 +msgid "forums management plugin" +msgstr "" + +#: sat/plugins/plugin_misc_forums.py:54 +msgid "forums plugin initialization" +msgstr "" + +#: sat/plugins/plugin_misc_forums.py:97 +msgid "forums arguments must be a list of forums" +msgstr "" + +#: sat/plugins/plugin_misc_forums.py:109 +msgid "A forum item must be a dictionary" +msgstr "" + +#: sat/plugins/plugin_misc_forums.py:114 +msgid "following forum name is not unique: {name}" +msgstr "" + +#: sat/plugins/plugin_misc_forums.py:116 +msgid "creating missing forum node" +msgstr "" + +#: sat/plugins/plugin_misc_forums.py:130 +msgid "Unknown forum attribute: {key}" +msgstr "" + +#: sat/plugins/plugin_misc_forums.py:136 +msgid "forum need a title or a name" +msgstr "" + +#: sat/plugins/plugin_misc_forums.py:138 +msgid "forum need uri or sub-forums" +msgstr "" + +#: sat/plugins/plugin_misc_forums.py:154 +msgid "missing element" +msgstr "" + +#: sat/plugins/plugin_misc_forums.py:160 +msgid "Unexpected element: {xml}" +msgstr "" + +#: sat/plugins/plugin_misc_forums.py:168 +msgid "Following attributes are unknown: {unknown}" +msgstr "" + +#: sat/plugins/plugin_misc_forums.py:176 +msgid "invalid forum, ignoring: {xml}" +msgstr "" + +#: sat/plugins/plugin_misc_forums.py:180 +msgid "unkown forums sub element: {xml}" +msgstr "" + +#: sat/plugins/plugin_misc_groupblog.py:53 msgid "Implementation of microblogging fine permissions" msgstr "" -#: src/plugins/plugin_misc_groupblog.py:59 +#: sat/plugins/plugin_misc_groupblog.py:61 msgid "Group blog plugin initialization" msgstr "" -#: src/plugins/plugin_misc_groupblog.py:77 -msgid "" -"Server is not able to manage item-access pubsub, we can't use group blog" -msgstr "" - -#: src/plugins/plugin_misc_groupblog.py:80 +#: sat/plugins/plugin_misc_groupblog.py:80 +msgid "Server is not able to manage item-access pubsub, we can't use group blog" +msgstr "" + +#: sat/plugins/plugin_misc_groupblog.py:86 msgid "Server can manage group blogs" msgstr "" -#: src/plugins/plugin_misc_imap.py:44 -msgid "" -"Create an Imap server that you can use to read your \"normal\" type messages" -msgstr "" - -#: src/plugins/plugin_misc_imap.py:62 -msgid "Plugin Imap Server initialization" -msgstr "" - -#: src/plugins/plugin_misc_imap.py:69 -#, python-format -msgid "Launching IMAP server on port %d" -msgstr "" - -#: src/plugins/plugin_misc_imap.py:437 -msgid "IMAP server connection started" -msgstr "" - -#: src/plugins/plugin_misc_imap.py:440 -#, python-format -msgid "IMAP server connection lost (reason: %s)" -msgstr "" - -#: src/plugins/plugin_misc_ip.py:52 +#: sat/plugins/plugin_misc_identity.py:49 +msgid "Identity manager" +msgstr "" + +#: sat/plugins/plugin_misc_identity.py:58 +msgid "Plugin Identity initialization" +msgstr "" + +#: sat/plugins/plugin_misc_identity.py:293 +#: sat/plugins/plugin_misc_identity.py:365 +msgid "No callback registered for {metadata_name}" +msgstr "" + +#: sat/plugins/plugin_misc_identity.py:316 +msgid "Error while trying to get {metadata_name} with {callback}: {e}" +msgstr "" + +#: sat/plugins/plugin_misc_identity.py:376 +msgid "Error while trying to set {metadata_name} with {callback}: {e}" +msgstr "" + +#: sat/plugins/plugin_misc_identity.py:691 +msgid "Can't set metadata {metadata_name!r}: {reason}" +msgstr "" + +#: sat/plugins/plugin_misc_ip.py:57 msgid "This plugin help to discover our external IP address." msgstr "" -#: src/plugins/plugin_misc_ip.py:57 +#: sat/plugins/plugin_misc_ip.py:64 msgid "Allow external get IP" msgstr "" -#: src/plugins/plugin_misc_ip.py:60 +#: sat/plugins/plugin_misc_ip.py:67 msgid "Confirm external site request" msgstr "" -#: src/plugins/plugin_misc_ip.py:61 -#, python-brace-format +#: sat/plugins/plugin_misc_ip.py:68 msgid "" "To facilitate data transfer, we need to contact a website.\n" "A request will be done on {page}\n" "That means that administrators of {domain} can know that you use " "\"{app_name}\" and your IP Address.\n" "\n" -"IP address is an identifier to locate you on Internet (similar to a phone " -"number).\n" +"IP address is an identifier to locate you on Internet (similar to a phone" +" number).\n" "\n" "Do you agree to do this request ?\n" msgstr "" -#: src/plugins/plugin_misc_ip.py:90 +#: sat/plugins/plugin_misc_ip.py:100 msgid "plugin IP discovery initialization" msgstr "" -#: src/plugins/plugin_misc_maildir.py:42 -msgid "Intercept \"normal\" type messages, and put them in a Maildir type box" -msgstr "" - -#: src/plugins/plugin_misc_maildir.py:46 -msgid "Mail Server" -msgstr "" - -#: src/plugins/plugin_misc_maildir.py:47 -msgid "Block \"normal\" messages propagation" -msgstr "" - -#: src/plugins/plugin_misc_maildir.py:71 -msgid "Plugin Maildir initialization" -msgstr "" - -#: src/plugins/plugin_misc_maildir.py:141 -msgid "Trying to remove an mailboxUser not referenced" -msgstr "" - -#: src/plugins/plugin_misc_maildir.py:142 -#: src/plugins/plugin_misc_maildir.py:161 -#: src/plugins/plugin_misc_maildir.py:300 -#: src/plugins/plugin_misc_maildir.py:304 -#: src/plugins/plugin_misc_maildir.py:308 -msgid "INTERNAL ERROR: " -msgstr "" - -#: src/plugins/plugin_misc_maildir.py:160 -msgid "Boxname doesn't exist in internal data" -msgstr "" - -#: src/plugins/plugin_misc_maildir.py:299 -msgid "Trying to remove an observer for an inexistant mailbox" -msgstr "" - -#: src/plugins/plugin_misc_maildir.py:303 -msgid "Trying to remove an inexistant observer, no observer for this signal" -msgstr "" - -#: src/plugins/plugin_misc_maildir.py:307 -msgid "Trying to remove an inexistant observer" -msgstr "" - -#: src/plugins/plugin_misc_nat-port.py:42 +#: sat/plugins/plugin_misc_lists.py:39 +msgid "Pubsub Lists" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:47 +msgid "Pubsub lists management plugin" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:52 +msgid "TODO List" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:63 sat/plugins/plugin_misc_lists.py:113 +#: sat/plugins/plugin_misc_lists.py:156 +msgid "status" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:67 +msgid "to do" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:71 +msgid "in progress" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:75 +msgid "done" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:83 sat/plugins/plugin_misc_lists.py:180 +msgid "priority" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:87 sat/plugins/plugin_misc_lists.py:184 +msgid "major" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:91 sat/plugins/plugin_misc_lists.py:188 +msgid "normal" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:95 sat/plugins/plugin_misc_lists.py:192 +msgid "minor" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:106 +msgid "Grocery List" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:109 sat_frontends/jp/cmd_info.py:69 +#: sat_frontends/jp/cmd_info.py:111 +msgid "name" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:110 +msgid "quantity" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:117 +msgid "to buy" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:121 +msgid "bought" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:130 +msgid "Tickets" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:140 sat_frontends/jp/cmd_info.py:69 +msgid "type" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:144 +msgid "bug" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:148 +msgid "feature request" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:160 +msgid "queued" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:164 +msgid "started" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:168 +msgid "review" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:172 +msgid "closed" +msgstr "" + +#: sat/plugins/plugin_misc_lists.py:208 +msgid "Pubsub lists plugin initialization" +msgstr "" + +#: sat/plugins/plugin_misc_merge_requests.py:35 +msgid "Merge requests management" +msgstr "" + +#: sat/plugins/plugin_misc_merge_requests.py:42 +msgid "Merge requests management plugin" +msgstr "" + +#: sat/plugins/plugin_misc_merge_requests.py:69 +msgid "Merge requests plugin initialization" +msgstr "" + +#: sat/plugins/plugin_misc_merge_requests.py:121 +msgid "a handler with name {name} already exists!" +msgstr "" + +#: sat/plugins/plugin_misc_merge_requests.py:134 +msgid "" +"merge requests of type {type} are already handled by {old_handler}, " +"ignoring {new_handler}" +msgstr "" + +#: sat/plugins/plugin_misc_merge_requests.py:241 +msgid "repository must be specified" +msgstr "" + +#: sat/plugins/plugin_misc_merge_requests.py:244 +msgid "{field} is set by backend, you must not set it in frontend" +msgstr "" + +#: sat/plugins/plugin_misc_merge_requests.py:253 +msgid "{name} handler will be used" +msgstr "" + +#: sat/plugins/plugin_misc_merge_requests.py:256 +msgid "repository {path} can't be handled by any installed handler" +msgstr "" + +#: sat/plugins/plugin_misc_merge_requests.py:259 +msgid "no handler for this repository has been found" +msgstr "" + +#: sat/plugins/plugin_misc_merge_requests.py:265 +msgid "No handler of this name found" +msgstr "" + +#: sat/plugins/plugin_misc_merge_requests.py:269 +msgid "export data is empty, do you have any change to send?" +msgstr "" + +#: sat/plugins/plugin_misc_merge_requests.py:312 +msgid "No handler can handle data type \"{type}\"" +msgstr "" + +#: sat/plugins/plugin_misc_merge_requests.py:348 +msgid "No handler found to import {data_type}" +msgstr "" + +#: sat/plugins/plugin_misc_merge_requests.py:350 +msgid "Importing patch [{item_id}] using {name} handler" +msgstr "" + +#: sat/plugins/plugin_misc_nat_port.py:45 msgid "Automatic NAT port mapping using UPnP" msgstr "" -#: src/plugins/plugin_misc_nat-port.py:57 +#: sat/plugins/plugin_misc_nat_port.py:62 msgid "plugin NAT Port initialization" msgstr "" -#: src/plugins/plugin_misc_quiz.py:41 +#: sat/plugins/plugin_misc_nat_port.py:177 +msgid "addportmapping error: {msg}" +msgstr "" + +#: sat/plugins/plugin_misc_nat_port.py:215 +msgid "error while trying to map ports: {msg}" +msgstr "" + +#: sat/plugins/plugin_misc_quiz.py:42 msgid "Implementation of Quiz game" msgstr "" -#: src/plugins/plugin_misc_quiz.py:53 +#: sat/plugins/plugin_misc_quiz.py:55 msgid "Plugin Quiz initialization" msgstr "" -#: src/plugins/plugin_misc_quiz.py:253 -msgid "" -"Bienvenue dans cette partie rapide de quizz, le premier à atteindre le score " -"de 9 remporte le jeu\n" +#: sat/plugins/plugin_misc_quiz.py:345 +msgid "" +"Bienvenue dans cette partie rapide de quizz, le premier à atteindre le " +"score de 9 remporte le jeu\n" "\n" "Attention, tu es prêt ?" msgstr "" -#: src/plugins/plugin_misc_quiz.py:282 src/plugins/plugin_misc_tarot.py:507 +#: sat/plugins/plugin_misc_quiz.py:380 sat/plugins/plugin_misc_tarot.py:664 #, python-format msgid "Player %(player)s is ready to start [status: %(status)s]" msgstr "" -#: src/plugins/plugin_misc_quiz.py:330 src/plugins/plugin_misc_radiocol.py:252 +#: sat/plugins/plugin_misc_quiz.py:456 sat/plugins/plugin_misc_radiocol.py:353 #, python-format msgid "Unmanaged game element: %s" msgstr "" -#: src/plugins/plugin_misc_radiocol.py:53 +#: sat/plugins/plugin_misc_radiocol.py:57 msgid "Implementation of radio collective" msgstr "" -#: src/plugins/plugin_misc_radiocol.py:71 +#: sat/plugins/plugin_misc_radiocol.py:76 msgid "Radio collective initialization" msgstr "" -#: src/plugins/plugin_misc_radiocol.py:127 +#: sat/plugins/plugin_misc_radiocol.py:180 msgid "" "The uploaded file has been rejected, only Ogg Vorbis and MP3 songs are " "accepted." msgstr "" -#: src/plugins/plugin_misc_radiocol.py:146 +#: sat/plugins/plugin_misc_radiocol.py:210 msgid "No more participants in the radiocol: cleaning data" msgstr "" -#: src/plugins/plugin_misc_radiocol.py:182 +#: sat/plugins/plugin_misc_radiocol.py:249 msgid "INTERNAL ERROR: can't find full path of the song to delete" msgstr "" -#: src/plugins/plugin_misc_radiocol.py:189 +#: sat/plugins/plugin_misc_radiocol.py:258 #, python-format msgid "INTERNAL ERROR: can't find %s on the file system" msgstr "" -#: src/plugins/plugin_misc_register_account.py:42 +#: sat/plugins/plugin_misc_register_account.py:41 msgid "Register XMPP account" msgstr "" -#: src/plugins/plugin_misc_register_account.py:49 +#: sat/plugins/plugin_misc_register_account.py:49 msgid "Plugin Register Account initialization" msgstr "" -#: src/plugins/plugin_misc_register_account.py:67 +#: sat/plugins/plugin_misc_register_account.py:76 msgid "Missing values" msgstr "" -#: src/plugins/plugin_misc_register_account.py:68 +#: sat/plugins/plugin_misc_register_account.py:78 msgid "No user JID or password given: can't register new account." msgstr "" -#: src/plugins/plugin_misc_register_account.py:75 -#, python-format -msgid "" -"Do you want to register a new XMPP account [%(user)s] on server %(server)s ?" -msgstr "" - -#: src/plugins/plugin_misc_register_account.py:109 +#: sat/plugins/plugin_misc_register_account.py:87 +msgid "Register new account" +msgstr "" + +#: sat/plugins/plugin_misc_register_account.py:92 +msgid "Do you want to register a new XMPP account {jid}?" +msgstr "" + +#: sat/plugins/plugin_misc_register_account.py:134 msgid "Registration successful." msgstr "" -#: src/plugins/plugin_misc_register_account.py:113 +#: sat/plugins/plugin_misc_register_account.py:138 msgid "Failure" msgstr "" -#: src/plugins/plugin_misc_register_account.py:114 +#: sat/plugins/plugin_misc_register_account.py:139 #, python-format msgid "Registration failed: %s" msgstr "" -#: src/plugins/plugin_misc_register_account.py:117 +#: sat/plugins/plugin_misc_register_account.py:143 msgid "Username already exists, please choose an other one." msgstr "" -#: src/plugins/plugin_misc_room_game.py:47 +#: sat/plugins/plugin_misc_room_game.py:49 msgid "Base class for MUC games" msgstr "" -#: src/plugins/plugin_misc_room_game.py:212 +#: sat/plugins/plugin_misc_room_game.py:221 #, python-format msgid "%(user)s not allowed to join the game %(game)s in %(room)s" msgstr "" -#: src/plugins/plugin_misc_room_game.py:348 +#: sat/plugins/plugin_misc_room_game.py:380 #, python-format msgid "%(user)s not allowed to invite for the game %(game)s in %(room)s" msgstr "" -#: src/plugins/plugin_misc_room_game.py:394 -#, python-format -msgid "" -"Still waiting for %(users)s before starting the game %(game)s in %(room)s" -msgstr "" - -#: src/plugins/plugin_misc_room_game.py:423 +#: sat/plugins/plugin_misc_room_game.py:433 +#, python-format +msgid "Still waiting for %(users)s before starting the game %(game)s in %(room)s" +msgstr "" + +#: sat/plugins/plugin_misc_room_game.py:472 #, python-format msgid "Preparing room for %s game" msgstr "" -#: src/plugins/plugin_misc_room_game.py:426 +#: sat/plugins/plugin_misc_room_game.py:475 msgid "Unknown profile" msgstr "" -#: src/plugins/plugin_misc_room_game.py:521 +#: sat/plugins/plugin_misc_room_game.py:583 #, python-format msgid "%(game)s game already created in room %(room)s" msgstr "" -#: src/plugins/plugin_misc_room_game.py:524 +#: sat/plugins/plugin_misc_room_game.py:589 #, python-format msgid "%(game)s game in room %(room)s can only be created by %(user)s" msgstr "" -#: src/plugins/plugin_misc_room_game.py:542 +#: sat/plugins/plugin_misc_room_game.py:610 #, python-format msgid "Creating %(game)s game in room %(room)s" msgstr "" -#: src/plugins/plugin_misc_room_game.py:545 -#: src/plugins/plugin_misc_room_game.py:574 -#: src/plugins/plugin_misc_tarot.py:438 +#: sat/plugins/plugin_misc_room_game.py:615 +#: sat/plugins/plugin_misc_room_game.py:646 +#: sat/plugins/plugin_misc_tarot.py:581 #, python-format msgid "profile %s is unknown" msgstr "" -#: src/plugins/plugin_misc_room_game.py:589 +#: sat/plugins/plugin_misc_room_game.py:661 #, python-format msgid "new round for %s game" msgstr "" -#: src/plugins/plugin_misc_smtp.py:45 -msgid "" -"Create a SMTP server that you can use to send your \"normal\" type messages" -msgstr "" - -#: src/plugins/plugin_misc_smtp.py:62 -msgid "Plugin SMTP Server initialization" -msgstr "" - -#: src/plugins/plugin_misc_smtp.py:69 -#, python-format -msgid "Launching SMTP server on port %d" -msgstr "" - -#: src/plugins/plugin_misc_smtp.py:95 -#, python-format -msgid "Can't send message: %s" -msgstr "" - -#: src/plugins/plugin_misc_smtp.py:200 -msgid "SMTP server connection started" -msgstr "" - -#: src/plugins/plugin_misc_smtp.py:204 -#, python-format -msgid "SMTP server connection lost (reason: %s)" -msgstr "" - -#: src/plugins/plugin_misc_static_blog.py:41 +#: sat/plugins/plugin_misc_static_blog.py:44 msgid "Plugin for static blogs" msgstr "" -#: src/plugins/plugin_misc_static_blog.py:62 +#: sat/plugins/plugin_misc_static_blog.py:66 msgid "Page title" msgstr "" -#: src/plugins/plugin_misc_static_blog.py:64 +#: sat/plugins/plugin_misc_static_blog.py:68 msgid "Banner URL" msgstr "" -#: src/plugins/plugin_misc_static_blog.py:66 +#: sat/plugins/plugin_misc_static_blog.py:70 +msgid "Background image URL" +msgstr "" + +#: sat/plugins/plugin_misc_static_blog.py:72 msgid "Keywords" msgstr "" -#: src/plugins/plugin_misc_static_blog.py:68 +#: sat/plugins/plugin_misc_static_blog.py:74 msgid "Description" msgstr "" -#: src/plugins/plugin_misc_static_blog.py:91 src/plugins/plugin_sec_otr.py:290 -#: src/plugins/plugin_sec_otr.py:316 src/plugins/plugin_sec_otr.py:339 -#: src/plugins/plugin_sec_otr.py:418 +#: sat/plugins/plugin_misc_static_blog.py:97 sat/plugins/plugin_sec_otr.py:508 +#: sat/plugins/plugin_sec_otr.py:542 sat/plugins/plugin_sec_otr.py:568 +#: sat/plugins/plugin_sec_otr.py:592 msgid "jid key is not present !" msgstr "" -#: src/plugins/plugin_misc_static_blog.py:96 +#: sat/plugins/plugin_misc_static_blog.py:102 msgid "Not available" msgstr "" -#: src/plugins/plugin_misc_static_blog.py:97 +#: sat/plugins/plugin_misc_static_blog.py:104 msgid "Retrieving a blog from an external domain is not implemented yet." msgstr "" -#: src/plugins/plugin_misc_tarot.py:46 +#: sat/plugins/plugin_misc_tarot.py:47 msgid "Implementation of Tarot card game" msgstr "" -#: src/plugins/plugin_misc_tarot.py:58 +#: sat/plugins/plugin_misc_tarot.py:60 msgid "Plugin Tarot initialization" msgstr "" -#: src/plugins/plugin_misc_tarot.py:64 +#: sat/plugins/plugin_misc_tarot.py:78 msgid "Passe" msgstr "" -#: src/plugins/plugin_misc_tarot.py:64 +#: sat/plugins/plugin_misc_tarot.py:79 msgid "Petite" msgstr "" -#: src/plugins/plugin_misc_tarot.py:64 +#: sat/plugins/plugin_misc_tarot.py:80 msgid "Garde" msgstr "" -#: src/plugins/plugin_misc_tarot.py:64 +#: sat/plugins/plugin_misc_tarot.py:81 msgid "Garde Sans" msgstr "" -#: src/plugins/plugin_misc_tarot.py:64 +#: sat/plugins/plugin_misc_tarot.py:82 msgid "Garde Contre" msgstr "" -#: src/plugins/plugin_misc_tarot.py:107 +#: sat/plugins/plugin_misc_tarot.py:171 msgid "contrat selection" msgstr "" -#: src/plugins/plugin_misc_tarot.py:120 +#: sat/plugins/plugin_misc_tarot.py:189 msgid "scores" msgstr "" -#: src/plugins/plugin_misc_tarot.py:201 src/plugins/plugin_misc_tarot.py:232 +#: sat/plugins/plugin_misc_tarot.py:273 sat/plugins/plugin_misc_tarot.py:313 #, python-format msgid "" "Player %(excuse_owner)s give %(card_waited)s to %(player_waiting)s for " "Excuse compensation" msgstr "" -#: src/plugins/plugin_misc_tarot.py:237 +#: sat/plugins/plugin_misc_tarot.py:327 #, python-format msgid "" "%(excuse_owner)s keep the Excuse but has not card to give, %(winner)s is " "waiting for one" msgstr "" -#: src/plugins/plugin_misc_tarot.py:247 src/plugins/plugin_misc_tarot.py:319 +#: sat/plugins/plugin_misc_tarot.py:338 +#: sat_frontends/primitivus/game_tarot.py:309 +msgid "Draw game" +msgstr "" + +#: sat/plugins/plugin_misc_tarot.py:341 sat/plugins/plugin_misc_tarot.py:436 #, python-format msgid "" "\n" @@ -3064,207 +2586,236 @@ "total score ==> %(total_score)i" msgstr "" -#: src/plugins/plugin_misc_tarot.py:297 +#: sat/plugins/plugin_misc_tarot.py:397 msgid "INTERNAL ERROR: contrat not managed (mispelled ?)" msgstr "" -#: src/plugins/plugin_misc_tarot.py:316 +#: sat/plugins/plugin_misc_tarot.py:422 #, python-format msgid "" "The attacker (%(attaquant)s) makes %(points)i and needs to make " -"%(point_limit)i (%(nb_bouts)s oulder%(plural)s%(separator)s%(bouts)s): (s)he " -"%(victory)s" -msgstr "" - -#: src/plugins/plugin_misc_tarot.py:377 +"%(point_limit)i (%(nb_bouts)s oulder%(plural)s%(separator)s%(bouts)s): " +"(s)he %(victory)s" +msgstr "" + +#: sat/plugins/plugin_misc_tarot.py:507 msgid "Internal error: unmanaged game stage" msgstr "" -#: src/plugins/plugin_misc_tarot.py:396 src/plugins/plugin_misc_tarot.py:419 +#: sat/plugins/plugin_misc_tarot.py:530 sat/plugins/plugin_misc_tarot.py:562 msgid "session id doesn't exist, session has probably expired" msgstr "" -#: src/plugins/plugin_misc_tarot.py:405 +#: sat/plugins/plugin_misc_tarot.py:540 #, python-format msgid "contrat [%(contrat)s] choosed by %(profile)s" msgstr "" -#: src/plugins/plugin_misc_tarot.py:440 +#: sat/plugins/plugin_misc_tarot.py:584 #, python-format msgid "Cards played by %(profile)s: [%(cards)s]" msgstr "" -#: src/plugins/plugin_misc_tarot.py:542 +#: sat/plugins/plugin_misc_tarot.py:709 msgid "Everybody is passing, round ended" msgstr "" -#: src/plugins/plugin_misc_tarot.py:549 +#: sat/plugins/plugin_misc_tarot.py:723 #, python-format msgid "%(player)s win the bid with %(contrat)s" msgstr "" -#: src/plugins/plugin_misc_tarot.py:570 +#: sat/plugins/plugin_misc_tarot.py:751 msgid "tarot: chien received" msgstr "" -#: src/plugins/plugin_misc_tarot.py:621 +#: sat/plugins/plugin_misc_tarot.py:828 #, python-format msgid "The winner of this trick is %s" msgstr "" -#: src/plugins/plugin_misc_tarot.py:667 +#: sat/plugins/plugin_misc_tarot.py:896 #, python-format msgid "Unmanaged error type: %s" msgstr "" -#: src/plugins/plugin_misc_tarot.py:669 +#: sat/plugins/plugin_misc_tarot.py:898 #, python-format msgid "Unmanaged card game element: %s" msgstr "" -#: src/plugins/plugin_misc_text_commands.py:38 +#: sat/plugins/plugin_misc_text_commands.py:40 msgid "IRC like text commands" msgstr "" -#: src/plugins/plugin_misc_text_commands.py:57 -msgid "" -"Type '/help' to get a list of the available commands. If you didn't want to " -"use a command, please start your message with '//' to escape the slash." -msgstr "" - -#: src/plugins/plugin_misc_text_commands.py:60 +#: sat/plugins/plugin_misc_text_commands.py:60 +msgid "" +"Type '/help' to get a list of the available commands. If you didn't want " +"to use a command, please start your message with '//' to escape the " +"slash." +msgstr "" + +#: sat/plugins/plugin_misc_text_commands.py:66 msgid "Text commands initialization" msgstr "" -#: src/plugins/plugin_misc_text_commands.py:143 +#: sat/plugins/plugin_misc_text_commands.py:162 #, python-format msgid "Skipping not callable [%s] attribute" msgstr "" -#: src/plugins/plugin_misc_text_commands.py:147 +#: sat/plugins/plugin_misc_text_commands.py:166 msgid "Skipping cmd_ method" msgstr "" -#: src/plugins/plugin_misc_text_commands.py:153 -#, python-brace-format +#: sat/plugins/plugin_misc_text_commands.py:173 msgid "Conflict for command [{old_name}], renaming it to [{new_name}]" msgstr "" -#: src/plugins/plugin_misc_text_commands.py:157 +#: sat/plugins/plugin_misc_text_commands.py:180 #, python-format msgid "Registered text command [%s]" msgstr "" -#: src/plugins/plugin_misc_text_commands.py:236 +#: sat/plugins/plugin_misc_text_commands.py:244 +#, python-format +msgid "Invalid command /%s. " +msgstr "" + +#: sat/plugins/plugin_misc_text_commands.py:277 #, python-format msgid "Unknown command /%s. " msgstr "" -#: src/plugins/plugin_misc_text_commands.py:242 +#: sat/plugins/plugin_misc_text_commands.py:286 msgid "group discussions" msgstr "" -#: src/plugins/plugin_misc_text_commands.py:242 +#: sat/plugins/plugin_misc_text_commands.py:288 msgid "one to one discussions" msgstr "" -#: src/plugins/plugin_misc_text_commands.py:243 -#, python-brace-format +#: sat/plugins/plugin_misc_text_commands.py:290 msgid "/{command} command only applies in {context}." msgstr "" -#: src/plugins/plugin_misc_text_commands.py:322 +#: sat/plugins/plugin_misc_text_commands.py:374 msgid "Invalid jid, can't whois" msgstr "" -#: src/plugins/plugin_misc_text_commands.py:328 +#: sat/plugins/plugin_misc_text_commands.py:380 #, python-format msgid "whois for %(jid)s" msgstr "" -#: src/plugins/plugin_misc_text_commands.py:379 +#: sat/plugins/plugin_misc_text_commands.py:436 msgid "Invalid command name [{}]\n" msgstr "" -#: src/plugins/plugin_misc_text_commands.py:397 +#: sat/plugins/plugin_misc_text_commands.py:457 #, python-format msgid "" "Text commands available:\n" "%s" msgstr "" -#: src/plugins/plugin_misc_text_commands.py:402 -#, python-brace-format +#: sat/plugins/plugin_misc_text_commands.py:462 msgid "" "/{name}: {short_help}\n" "{syntax}{args_help}" msgstr "" -#: src/plugins/plugin_misc_text_commands.py:405 -msgid " " -msgstr "" - -#: src/plugins/plugin_misc_text_syntaxes.py:37 src/test/constants.py:44 +#: sat/plugins/plugin_misc_text_commands.py:465 +msgid " syntax: {}\n" +msgstr "" + +#: sat/plugins/plugin_misc_text_syntaxes.py:43 sat/test/constants.py:56 msgid "Composition" msgstr "" -#: src/plugins/plugin_misc_text_syntaxes.py:63 +#: sat/plugins/plugin_misc_text_syntaxes.py:142 msgid "Management of various text syntaxes (XHTML-IM, Markdown, etc)" msgstr "" -#: src/plugins/plugin_misc_text_syntaxes.py:102 +#: sat/plugins/plugin_misc_text_syntaxes.py:184 msgid "Text syntaxes plugin initialization" msgstr "" -#: src/plugins/plugin_misc_upload.py:38 +#: sat/plugins/plugin_misc_upload.py:41 msgid "File upload management" msgstr "" -#: src/plugins/plugin_misc_upload.py:42 +#: sat/plugins/plugin_misc_upload.py:45 msgid "Please select a file to upload" msgstr "" -#: src/plugins/plugin_misc_upload.py:43 +#: sat/plugins/plugin_misc_upload.py:46 msgid "File upload" msgstr "" -#: src/plugins/plugin_misc_upload.py:51 +#: sat/plugins/plugin_misc_upload.py:53 msgid "plugin Upload initialization" msgstr "" -#: src/plugins/plugin_misc_watched.py:36 +#: sat/plugins/plugin_misc_upload.py:92 +msgid "Can't upload file: {reason}" +msgstr "" + +#: sat/plugins/plugin_misc_upload.py:96 sat_frontends/jp/cmd_file.py:586 +msgid "Can't upload file" +msgstr "" + +#: sat/plugins/plugin_misc_uri_finder.py:32 +msgid "URI finder" +msgstr "" + +#: sat/plugins/plugin_misc_uri_finder.py:39 +msgid "" +" Plugin to find URIs in well know location.\n" +" This allows to retrieve settings to work with a project (e.g. pubsub " +"node used for merge-requests).\n" +" " +msgstr "" + +#: sat/plugins/plugin_misc_uri_finder.py:52 +msgid "URI finder plugin initialization" +msgstr "" + +#: sat/plugins/plugin_misc_uri_finder.py:87 +msgid "Ignoring already found uri for key \"{key}\"" +msgstr "" + +#: sat/plugins/plugin_misc_watched.py:37 msgid "Watch for entities presence, and send notification accordingly" msgstr "" -#: src/plugins/plugin_misc_watched.py:42 -#, python-brace-format +#: sat/plugins/plugin_misc_watched.py:45 msgid "Watched entity {entity} is connected" msgstr "" -#: src/plugins/plugin_misc_watched.py:61 +#: sat/plugins/plugin_misc_watched.py:62 msgid "Watched initialisation" msgstr "" -#: src/plugins/plugin_misc_welcome.py:33 -msgid "" -"Plugin which manage welcome message and things to to on first connection." -msgstr "" - -#: src/plugins/plugin_misc_welcome.py:39 +#: sat/plugins/plugin_misc_welcome.py:34 +msgid "Plugin which manage welcome message and things to to on first connection." +msgstr "" + +#: sat/plugins/plugin_misc_welcome.py:42 msgid "Display welcome message" msgstr "" -#: src/plugins/plugin_misc_welcome.py:40 +#: sat/plugins/plugin_misc_welcome.py:43 msgid "Welcome to Libervia/Salut à Toi" msgstr "" -#: src/plugins/plugin_misc_welcome.py:43 +#: sat/plugins/plugin_misc_welcome.py:46 msgid "" "Welcome to a free (as in freedom) network!\n" "\n" -"If you have any trouble, or you want to help us for the bug hunting, you can " -"contact us in real time chat by using the “Help / Official chat room” " -"menu.\n" +"If you have any trouble, or you want to help us for the bug hunting, you " +"can contact us in real time chat by using the “Help / Official chat room”" +" menu.\n" "\n" "To use Libervia, you'll need to add contacts, either people you know, or " "people you discover by using the “Contacts / Search directory” menu.\n" @@ -3274,138 +2825,120 @@ "The Libervia/Salut à Toi Team\n" msgstr "" -#: src/plugins/plugin_misc_welcome.py:69 +#: sat/plugins/plugin_misc_welcome.py:75 msgid "plugin Welcome initialization" msgstr "" -#: src/plugins/plugin_misc_xmllog.py:35 +#: sat/plugins/plugin_misc_xmllog.py:36 msgid "Send raw XML logs to bridge" msgstr "" -#: src/plugins/plugin_misc_xmllog.py:48 -msgid "INTERNAL ERROR: Unmanaged XML type" -msgstr "" - -#: src/plugins/plugin_misc_xmllog.py:69 +#: sat/plugins/plugin_misc_xmllog.py:51 msgid "Activate XML log" msgstr "" -#: src/plugins/plugin_misc_xmllog.py:72 +#: sat/plugins/plugin_misc_xmllog.py:55 msgid "Plugin XML Log initialization" msgstr "" -#: src/plugins/plugin_misc_xmllog.py:83 +#: sat/plugins/plugin_misc_xmllog.py:69 msgid "XML log activated" msgstr "" -#: src/plugins/plugin_sec_otr.py:47 +#: sat/plugins/plugin_misc_xmllog.py:81 +msgid "INTERNAL ERROR: Unmanaged XML type" +msgstr "" + +#: sat/plugins/plugin_sec_aesgcm.py:48 +msgid "" +" Implementation of AES-GCM scheme, a way to encrypt files (not " +"official XMPP standard).\n" +" See https://xmpp.org/extensions/inbox/omemo-media-sharing.html for " +"details\n" +" " +msgstr "" + +#: sat/plugins/plugin_sec_aesgcm.py:63 +msgid "AESGCM plugin initialization" +msgstr "" + +#: sat/plugins/plugin_sec_otr.py:50 msgid "Implementation of OTR" msgstr "" -#: src/plugins/plugin_sec_otr.py:52 +#: sat/plugins/plugin_sec_otr.py:55 msgid "OTR" msgstr "" -#: src/plugins/plugin_sec_otr.py:53 -msgid "" -"To authenticate your correspondent, you need to give your below fingerprint " -"*BY AN EXTERNAL CANAL* (i.e. not in this chat), and check that the one he " -"gives you is the same as below. If there is a mismatch, there can be a spy " -"between you!" -msgstr "" - -#: src/plugins/plugin_sec_otr.py:54 -msgid "" -"You private key is used to encrypt messages for your correspondent, nobody " -"except you must know it, if you are in doubt, you should drop it!\n" +#: sat/plugins/plugin_sec_otr.py:56 +msgid "" +"To authenticate your correspondent, you need to give your below " +"fingerprint *BY AN EXTERNAL CANAL* (i.e. not in this chat), and check " +"that the one he gives you is the same as below. If there is a mismatch, " +"there can be a spy between you!" +msgstr "" + +#: sat/plugins/plugin_sec_otr.py:61 +msgid "" +"You private key is used to encrypt messages for your correspondent, " +"nobody except you must know it, if you are in doubt, you should drop it!" +"\n" "\n" "Are you sure you want to drop your private key?" msgstr "" -#: src/plugins/plugin_sec_otr.py:56 +#: sat/plugins/plugin_sec_otr.py:67 msgid "Some of advanced features are disabled !" msgstr "" -#: src/plugins/plugin_sec_otr.py:120 +#: sat/plugins/plugin_sec_otr.py:169 #, python-format msgid "/!\\ conversation with %(other_jid)s is now UNENCRYPTED" msgstr "" -#: src/plugins/plugin_sec_otr.py:127 +#: sat/plugins/plugin_sec_otr.py:182 msgid "trusted" msgstr "" -#: src/plugins/plugin_sec_otr.py:127 +#: sat/plugins/plugin_sec_otr.py:182 msgid "untrusted" msgstr "" -#: src/plugins/plugin_sec_otr.py:130 -#, python-brace-format +#: sat/plugins/plugin_sec_otr.py:185 msgid "{trusted} OTR conversation with {other_jid} REFRESHED" msgstr "" -#: src/plugins/plugin_sec_otr.py:134 -#, python-brace-format +#: sat/plugins/plugin_sec_otr.py:189 msgid "" "{trusted} encrypted OTR conversation started with {other_jid}\n" "{extra_info}" msgstr "" -#: src/plugins/plugin_sec_otr.py:140 -#, python-brace-format +#: sat/plugins/plugin_sec_otr.py:201 msgid "OTR conversation with {other_jid} is FINISHED" msgstr "" -#: src/plugins/plugin_sec_otr.py:143 +#: sat/plugins/plugin_sec_otr.py:209 msgid "Unknown OTR state" msgstr "" -#: src/plugins/plugin_sec_otr.py:178 +#: sat/plugins/plugin_sec_otr.py:249 msgid "Save is called but privkey is None !" msgstr "" -#: src/plugins/plugin_sec_otr.py:230 +#: sat/plugins/plugin_sec_otr.py:308 msgid "OTR plugin initialization" msgstr "" -#: src/plugins/plugin_sec_otr.py:241 -msgid "Start/Refresh" -msgstr "" - -#: src/plugins/plugin_sec_otr.py:241 -msgid "Start or refresh an OTR session" -msgstr "" - -#: src/plugins/plugin_sec_otr.py:242 -msgid "End session" -msgstr "" - -#: src/plugins/plugin_sec_otr.py:242 -msgid "Finish an OTR session" -msgstr "" - -#: src/plugins/plugin_sec_otr.py:243 -msgid "Authenticate" -msgstr "" - -#: src/plugins/plugin_sec_otr.py:243 -msgid "Authenticate user/see your fingerprint" -msgstr "" - -#: src/plugins/plugin_sec_otr.py:244 -msgid "Drop private key" -msgstr "" - -#: src/plugins/plugin_sec_otr.py:355 +#: sat/plugins/plugin_sec_otr.py:418 msgid "You have no private key yet, start an OTR conversation to have one" msgstr "" -#: src/plugins/plugin_sec_otr.py:358 +#: sat/plugins/plugin_sec_otr.py:424 msgid "No private key" msgstr "" -#: src/plugins/plugin_sec_otr.py:368 -#, python-brace-format +#: sat/plugins/plugin_sec_otr.py:436 msgid "" "Your fingerprint is:\n" "{fingerprint}\n" @@ -3413,1530 +2946,5739 @@ "Start an OTR conversation to have your correspondent one." msgstr "" -#: src/plugins/plugin_sec_otr.py:371 +#: sat/plugins/plugin_sec_otr.py:442 sat/plugins/plugin_xep_0384.py:687 msgid "Fingerprint" msgstr "" -#: src/plugins/plugin_sec_otr.py:380 -#, python-brace-format +#: sat/plugins/plugin_sec_otr.py:453 msgid "Your correspondent {correspondent} is now TRUSTED" msgstr "" -#: src/plugins/plugin_sec_otr.py:384 -#, python-brace-format +#: sat/plugins/plugin_sec_otr.py:459 msgid "Your correspondent {correspondent} is now UNTRUSTED" msgstr "" -#: src/plugins/plugin_sec_otr.py:395 -#, python-format -msgid "Authentication (%s)" -msgstr "" - -#: src/plugins/plugin_sec_otr.py:398 -#, python-brace-format +#: sat/plugins/plugin_sec_otr.py:477 +msgid "Authentication ({entity_jid})" +msgstr "" + +#: sat/plugins/plugin_sec_otr.py:483 msgid "" "Your own fingerprint is:\n" "{fingerprint}" msgstr "" -#: src/plugins/plugin_sec_otr.py:399 -#, python-brace-format +#: sat/plugins/plugin_sec_otr.py:486 msgid "" "Your correspondent fingerprint should be:\n" "{fingerprint}" msgstr "" -#: src/plugins/plugin_sec_otr.py:402 +#: sat/plugins/plugin_sec_otr.py:492 msgid "Is your correspondent fingerprint the same as here ?" msgstr "" -#: src/plugins/plugin_sec_otr.py:403 +#: sat/plugins/plugin_sec_otr.py:494 msgid "yes" msgstr "" -#: src/plugins/plugin_sec_otr.py:403 +#: sat/plugins/plugin_sec_otr.py:494 msgid "no" msgstr "" -#: src/plugins/plugin_sec_otr.py:423 +#: sat/plugins/plugin_sec_otr.py:520 +msgid "" +"Can't start an OTR session, there is already an encrypted session with " +"{name}" +msgstr "" + +#: sat/plugins/plugin_sec_otr.py:598 msgid "You don't have a private key yet !" msgstr "" -#: src/plugins/plugin_sec_otr.py:432 +#: sat/plugins/plugin_sec_otr.py:611 msgid "Your private key has been dropped" msgstr "" -#: src/plugins/plugin_sec_otr.py:437 +#: sat/plugins/plugin_sec_otr.py:620 msgid "Confirm private key drop" msgstr "" -#: src/plugins/plugin_sec_otr.py:454 +#: sat/plugins/plugin_sec_otr.py:649 msgid "WARNING: received unencrypted data in a supposedly encrypted context" msgstr "" -#: src/plugins/plugin_sec_otr.py:531 -msgid "" -"Your message was not sent because your correspondent closed the encrypted " -"conversation on his/her side. Either close your own side, or refresh the " -"session." -msgstr "" - -#: src/plugins/plugin_sec_otr.py:533 +#: sat/plugins/plugin_sec_otr.py:656 +msgid "WARNING: received OTR encrypted data in an unencrypted context" +msgstr "" + +#: sat/plugins/plugin_sec_otr.py:662 +msgid "WARNING: received OTR error message: {msg}" +msgstr "" + +#: sat/plugins/plugin_sec_otr.py:668 +msgid "Error while trying de decrypt OTR message: {msg}" +msgstr "" + +#: sat/plugins/plugin_sec_otr.py:780 +msgid "" +"Your message was not sent because your correspondent closed the encrypted" +" conversation on his/her side. Either close your own side, or refresh the" +" session." +msgstr "" + +#: sat/plugins/plugin_sec_otr.py:785 msgid "Message discarded because closed encryption channel" msgstr "" -#: src/plugins/plugin_syntax_wiki_dotclear.py:39 +#: sat/plugins/plugin_syntax_wiki_dotclear.py:40 msgid "Implementation of Dotclear wiki syntax" msgstr "" -#: src/plugins/plugin_syntax_wiki_dotclear.py:635 +#: sat/plugins/plugin_syntax_wiki_dotclear.py:664 msgid "Dotclear wiki syntax plugin initialization" msgstr "" -#: src/plugins/plugin_tmp_directory_subscription.py:36 +#: sat/plugins/plugin_tickets_import.py:38 +msgid "" +"Tickets import management:\n" +"This plugin manage the different tickets importers which can register to " +"it, and handle generic importing tasks." +msgstr "" + +#: sat/plugins/plugin_tickets_import.py:57 +msgid "plugin Tickets Import initialization" +msgstr "" + +#: sat/plugins/plugin_tickets_import.py:111 +msgid "comments_uri key will be generated and must not be used by importer" +msgstr "" + +#: sat/plugins/plugin_tickets_import.py:115 +msgid "{key} must be a list" +msgstr "" + +#: sat/plugins/plugin_tickets_import.py:174 +msgid "mapping option must be a dictionary" +msgstr "" + +#: sat/plugins/plugin_tickets_import.py:179 +msgid "keys and values of mapping must be sources and destinations ticket fields" +msgstr "" + +#: sat/plugins/plugin_tickets_import_bugzilla.py:41 +msgid "Tickets importer for Bugzilla" +msgstr "" + +#: sat/plugins/plugin_tickets_import_bugzilla.py:44 +msgid "import tickets from Bugzilla xml export file" +msgstr "" + +#: sat/plugins/plugin_tickets_import_bugzilla.py:46 +msgid "" +"This importer handle Bugzilla xml export file.\n" +"\n" +"To use it, you'll need to export tickets using XML.\n" +"Tickets will be uploaded with the same ID as for Bugzilla, any existing " +"ticket with this ID will be replaced.\n" +"\n" +"location: you must use the absolute path to your .xml file\n" +msgstr "" + +#: sat/plugins/plugin_tickets_import_bugzilla.py:128 +msgid "Bugilla Import plugin initialization" +msgstr "" + +#: sat/plugins/plugin_tmp_directory_subscription.py:37 msgid "Implementation of directory subscription" msgstr "" -#: src/plugins/plugin_tmp_directory_subscription.py:47 +#: sat/plugins/plugin_tmp_directory_subscription.py:47 msgid "Directory subscription plugin initialization" msgstr "" -#: src/plugins/plugin_tmp_directory_subscription.py:49 -#: src/plugins/plugin_xep_0050.py:222 src/plugins/plugin_xep_0100.py:66 +#: sat/plugins/plugin_tmp_directory_subscription.py:50 +#: sat/plugins/plugin_xep_0050.py:315 sat/plugins/plugin_xep_0100.py:84 msgid "Service" msgstr "" -#: src/plugins/plugin_tmp_directory_subscription.py:49 +#: sat/plugins/plugin_tmp_directory_subscription.py:50 msgid "Directory subscription" msgstr "" -#: src/plugins/plugin_tmp_directory_subscription.py:49 +#: sat/plugins/plugin_tmp_directory_subscription.py:53 msgid "User directory subscription" msgstr "" -#: src/plugins/plugin_xep_0020.py:45 +#: sat/plugins/plugin_xep_0020.py:46 msgid "Implementation of Feature Negotiation" msgstr "" -#: src/plugins/plugin_xep_0020.py:52 +#: sat/plugins/plugin_xep_0020.py:52 msgid "Plugin XEP_0020 initialization" msgstr "" -#: src/plugins/plugin_xep_0020.py:103 +#: sat/plugins/plugin_xep_0020.py:104 msgid "More than one value choosed for {}, keeping the first one" msgstr "" -#: src/plugins/plugin_xep_0033.py:64 +#: sat/plugins/plugin_xep_0033.py:66 msgid "Implementation of Extended Stanza Addressing" msgstr "" -#: src/plugins/plugin_xep_0033.py:73 +#: sat/plugins/plugin_xep_0033.py:76 msgid "Extended Stanza Addressing plugin initialization" msgstr "" -#: src/plugins/plugin_xep_0033.py:89 +#: sat/plugins/plugin_xep_0033.py:97 msgid "XEP-0033 is being used but the server doesn't support it!" msgstr "" -#: src/plugins/plugin_xep_0033.py:92 +#: sat/plugins/plugin_xep_0033.py:103 msgid " or " msgstr "" -#: src/plugins/plugin_xep_0033.py:93 -#, python-format -msgid "" -"Stanzas using XEP-0033 should be addressed to %(expected)s, not %(current)s!" -msgstr "" - -#: src/plugins/plugin_xep_0033.py:94 -msgid "" -"TODO: addressing has been fixed by the backend... fix it in the frontend!" -msgstr "" - -#: src/plugins/plugin_xep_0045.py:52 +#: sat/plugins/plugin_xep_0033.py:105 +#, python-format +msgid "" +"Stanzas using XEP-0033 should be addressed to %(expected)s, not " +"%(current)s!" +msgstr "" + +#: sat/plugins/plugin_xep_0033.py:111 +msgid "TODO: addressing has been fixed by the backend... fix it in the frontend!" +msgstr "" + +#: sat/plugins/plugin_xep_0045.py:56 msgid "Implementation of Multi-User Chat" msgstr "" -#: src/plugins/plugin_xep_0045.py:78 +#: sat/plugins/plugin_xep_0045.py:89 msgid "Plugin XEP_0045 initialization" msgstr "" -#: src/plugins/plugin_xep_0045.py:95 +#: sat/plugins/plugin_xep_0045.py:145 msgid "MUC" msgstr "" -#: src/plugins/plugin_xep_0045.py:95 +#: sat/plugins/plugin_xep_0045.py:145 msgid "configure" msgstr "" -#: src/plugins/plugin_xep_0045.py:95 +#: sat/plugins/plugin_xep_0045.py:146 msgid "Configure Multi-User Chat room" msgstr "" -#: src/plugins/plugin_xep_0045.py:135 src/plugins/plugin_xep_0045.py:728 +#: sat/plugins/plugin_xep_0045.py:194 +msgid "" +"Received non delayed message in a room before its initialisation: " +"state={state}, msg={msg}" +msgstr "" + +#: sat/plugins/plugin_xep_0045.py:216 sat/plugins/plugin_xep_0045.py:224 +#: sat/plugins/plugin_xep_0045.py:880 msgid "This room has not been joined" msgstr "" -#: src/plugins/plugin_xep_0045.py:168 +#: sat/plugins/plugin_xep_0045.py:283 msgid "Room joining cancelled by user" msgstr "" -#: src/plugins/plugin_xep_0045.py:173 +#: sat/plugins/plugin_xep_0045.py:288 msgid "Rooms in {}" msgstr "" -#: src/plugins/plugin_xep_0045.py:188 +#: sat/plugins/plugin_xep_0045.py:303 msgid "room locked !" msgstr "" -#: src/plugins/plugin_xep_0045.py:190 -msgid "Error while configuring the room" -msgstr "" - -#: src/plugins/plugin_xep_0045.py:206 +#: sat/plugins/plugin_xep_0045.py:306 +msgid "Error while configuring the room: {failure_}" +msgstr "" + +#: sat/plugins/plugin_xep_0045.py:322 msgid "Room {} is restricted" msgstr "" -#: src/plugins/plugin_xep_0045.py:207 +#: sat/plugins/plugin_xep_0045.py:323 msgid "This room is restricted, please enter the password" msgstr "" -#: src/plugins/plugin_xep_0045.py:215 -#, python-brace-format +#: sat/plugins/plugin_xep_0045.py:332 msgid "Error while joining the room {room}{suffix}" msgstr "" -#: src/plugins/plugin_xep_0045.py:218 +#: sat/plugins/plugin_xep_0045.py:334 msgid "Group chat error" msgstr "" -#: src/plugins/plugin_xep_0045.py:307 +#: sat/plugins/plugin_xep_0045.py:401 msgid "room_jid key is not present !" msgstr "" -#: src/plugins/plugin_xep_0045.py:340 src/plugins/plugin_xep_0045.py:342 +#: sat/plugins/plugin_xep_0045.py:406 +msgid "No configuration available for this room" +msgstr "" + +#: sat/plugins/plugin_xep_0045.py:440 sat/plugins/plugin_xep_0045.py:442 msgid "Session ID doesn't exist, session has probably expired." msgstr "" -#: src/plugins/plugin_xep_0045.py:341 +#: sat/plugins/plugin_xep_0045.py:441 msgid "Room configuration failed" msgstr "" -#: src/plugins/plugin_xep_0045.py:347 +#: sat/plugins/plugin_xep_0045.py:447 msgid "Room configuration succeed" msgstr "" -#: src/plugins/plugin_xep_0045.py:348 +#: sat/plugins/plugin_xep_0045.py:448 msgid "The new settings have been saved." msgstr "" -#: src/plugins/plugin_xep_0045.py:395 +#: sat/plugins/plugin_xep_0045.py:509 msgid "No MUC service found on main server" msgstr "" -#: src/plugins/plugin_xep_0045.py:424 -#, python-brace-format +#: sat/plugins/plugin_xep_0045.py:538 msgid "" "Invalid room identifier: {room_id}'. Please give a room short or full " "identifier like 'room' or 'room@{muc_service}'." msgstr "" -#: src/plugins/plugin_xep_0045.py:449 -#, python-brace-format +#: sat/plugins/plugin_xep_0045.py:558 msgid "{profile} is already in room {room_jid}" msgstr "" -#: src/plugins/plugin_xep_0045.py:451 -#, python-brace-format +#: sat/plugins/plugin_xep_0045.py:561 msgid "[{profile}] is joining room {room} with nick {nick}" msgstr "" -#: src/plugins/plugin_xep_0045.py:590 +#: sat/plugins/plugin_xep_0045.py:729 msgid "You must provide a member's nick to kick." msgstr "" -#: src/plugins/plugin_xep_0045.py:597 +#: sat/plugins/plugin_xep_0045.py:738 msgid "You have kicked {}" msgstr "" -#: src/plugins/plugin_xep_0045.py:599 src/plugins/plugin_xep_0045.py:628 -msgid " for the following reason: {}" -msgstr "" - -#: src/plugins/plugin_xep_0045.py:619 +#: sat/plugins/plugin_xep_0045.py:740 sat/plugins/plugin_xep_0045.py:776 +msgid " for the following reason: {reason}" +msgstr "" + +#: sat/plugins/plugin_xep_0045.py:763 msgid "You must provide a valid JID to ban, like in '/ban contact@example.net'" msgstr "" -#: src/plugins/plugin_xep_0045.py:626 +#: sat/plugins/plugin_xep_0045.py:774 msgid "You have banned {}" msgstr "" -#: src/plugins/plugin_xep_0045.py:652 +#: sat/plugins/plugin_xep_0045.py:802 msgid "" "You must provide a valid JID to affiliate, like in '/affiliate " "contact@example.net member'" msgstr "" -#: src/plugins/plugin_xep_0045.py:658 +#: sat/plugins/plugin_xep_0045.py:808 #, python-format msgid "You must provide a valid affiliation: %s" msgstr "" -#: src/plugins/plugin_xep_0045.py:665 -#, python-format -msgid "New affiliation for %(entity)s: %(affiliation)s" -msgstr "" - -#: src/plugins/plugin_xep_0045.py:711 -msgid "No known default MUC service" -msgstr "" - -#: src/plugins/plugin_xep_0045.py:715 +#: sat/plugins/plugin_xep_0045.py:815 +msgid "New affiliation for {entity}: {affiliation}" +msgstr "" + +#: sat/plugins/plugin_xep_0045.py:862 +msgid "No known default MUC service {unparsed}" +msgstr "" + +#: sat/plugins/plugin_xep_0045.py:867 msgid "{} is not a valid JID!" msgstr "" -#: src/plugins/plugin_xep_0045.py:733 +#: sat/plugins/plugin_xep_0045.py:885 #, python-format msgid "Nickname: %s" msgstr "" -#: src/plugins/plugin_xep_0045.py:735 +#: sat/plugins/plugin_xep_0045.py:887 #, python-format msgid "Entity: %s" msgstr "" -#: src/plugins/plugin_xep_0045.py:737 +#: sat/plugins/plugin_xep_0045.py:889 #, python-format msgid "Affiliation: %s" msgstr "" -#: src/plugins/plugin_xep_0045.py:739 +#: sat/plugins/plugin_xep_0045.py:891 #, python-format msgid "Role: %s" msgstr "" -#: src/plugins/plugin_xep_0045.py:741 +#: sat/plugins/plugin_xep_0045.py:893 #, python-format msgid "Status: %s" msgstr "" -#: src/plugins/plugin_xep_0045.py:743 +#: sat/plugins/plugin_xep_0045.py:895 #, python-format msgid "Show: %s" msgstr "" -#: src/plugins/plugin_xep_0045.py:868 -#, python-brace-format +#: sat/plugins/plugin_xep_0045.py:960 +msgid "" +"room {room} is not in expected state: room is in state {current_state} " +"while we were expecting {expected_state}" +msgstr "" + +#: sat/plugins/plugin_xep_0045.py:1093 +msgid "No message received while offline in {room_jid}" +msgstr "" + +#: sat/plugins/plugin_xep_0045.py:1097 +msgid "We have received {num_mess} message(s) in {room_jid} while offline." +msgstr "" + +#: sat/plugins/plugin_xep_0045.py:1141 +msgid "missing nick in presence: {xml}" +msgstr "" + +#: sat/plugins/plugin_xep_0045.py:1217 msgid "user {nick} has joined room {room_id}" msgstr "" -#: src/plugins/plugin_xep_0045.py:883 +#: sat/plugins/plugin_xep_0045.py:1234 msgid "=> {} has joined the room" msgstr "" -#: src/plugins/plugin_xep_0045.py:899 -#, python-brace-format +#: sat/plugins/plugin_xep_0045.py:1253 msgid "Room ({room}) left ({profile})" msgstr "" -#: src/plugins/plugin_xep_0045.py:910 -#, python-brace-format +#: sat/plugins/plugin_xep_0045.py:1267 msgid "user {nick} left room {room_id}" msgstr "" -#: src/plugins/plugin_xep_0045.py:922 +#: sat/plugins/plugin_xep_0045.py:1279 msgid "<= {} has left the room" msgstr "" -#: src/plugins/plugin_xep_0045.py:1034 -#, python-brace-format +#: sat/plugins/plugin_xep_0045.py:1342 +msgid "received history in unexpected state in room {room} (state: {state})" +msgstr "" + +#: sat/plugins/plugin_xep_0045.py:1350 +msgid "storing the unexpected message anyway, to avoid loss" +msgstr "" + +#: sat/plugins/plugin_xep_0045.py:1437 msgid "New subject for room ({room_id}): {subject}" msgstr "" -#: src/plugins/plugin_xep_0047.py:60 +#: sat/plugins/plugin_xep_0047.py:62 msgid "Implementation of In-Band Bytestreams" msgstr "" -#: src/plugins/plugin_xep_0047.py:69 +#: sat/plugins/plugin_xep_0047.py:71 msgid "In-Band Bytestreams plugin initialization" msgstr "" -#: src/plugins/plugin_xep_0047.py:158 +#: sat/plugins/plugin_xep_0047.py:162 msgid "IBB stream opening" msgstr "" -#: src/plugins/plugin_xep_0047.py:168 +#: sat/plugins/plugin_xep_0047.py:171 #, python-format msgid "Ignoring unexpected IBB transfer: %s" msgstr "" -#: src/plugins/plugin_xep_0047.py:172 +#: sat/plugins/plugin_xep_0047.py:176 msgid "sended jid inconsistency (man in the middle attack attempt ?)" msgstr "" -#: src/plugins/plugin_xep_0047.py:201 +#: sat/plugins/plugin_xep_0047.py:206 msgid "IBB stream closing" msgstr "" -#: src/plugins/plugin_xep_0047.py:225 +#: sat/plugins/plugin_xep_0047.py:228 msgid "Received data for an unknown session id" msgstr "" -#: src/plugins/plugin_xep_0047.py:232 -#, python-brace-format +#: sat/plugins/plugin_xep_0047.py:236 msgid "" "sended jid inconsistency (man in the middle attack attempt ?)\n" "initial={initial}\n" "given={given}" msgstr "" -#: src/plugins/plugin_xep_0047.py:239 +#: sat/plugins/plugin_xep_0047.py:246 msgid "Sequence error" msgstr "" -#: src/plugins/plugin_xep_0047.py:254 +#: sat/plugins/plugin_xep_0047.py:261 msgid "Invalid base64 data" msgstr "" -#: src/plugins/plugin_xep_0048.py:44 +#: sat/plugins/plugin_xep_0048.py:45 msgid "Implementation of bookmarks" msgstr "" -#: src/plugins/plugin_xep_0048.py:57 +#: sat/plugins/plugin_xep_0048.py:58 msgid "Bookmarks plugin initialization" msgstr "" -#: src/plugins/plugin_xep_0048.py:61 +#: sat/plugins/plugin_xep_0048.py:63 sat_frontends/primitivus/base.py:540 +msgid "Groups" +msgstr "" + +#: sat/plugins/plugin_xep_0048.py:63 msgid "Bookmarks" msgstr "" -#: src/plugins/plugin_xep_0048.py:61 +#: sat/plugins/plugin_xep_0048.py:66 msgid "Use and manage bookmarks" msgstr "" -#: src/plugins/plugin_xep_0048.py:109 +#: sat/plugins/plugin_xep_0048.py:147 msgid "Private XML storage not available" msgstr "" -#: src/plugins/plugin_xep_0048.py:218 +#: sat/plugins/plugin_xep_0048.py:260 msgid "No room jid selected" msgstr "" -#: src/plugins/plugin_xep_0048.py:236 +#: sat/plugins/plugin_xep_0048.py:280 msgid "Bookmarks manager" msgstr "" -#: src/plugins/plugin_xep_0048.py:254 +#: sat/plugins/plugin_xep_0048.py:310 sat_frontends/jp/cmd_bookmarks.py:126 +msgid "add a bookmark" +msgstr "" + +#: sat/plugins/plugin_xep_0048.py:312 msgid "Name" msgstr "" -#: src/plugins/plugin_xep_0048.py:258 +#: sat/plugins/plugin_xep_0048.py:314 sat_frontends/jp/cmd_profile.py:175 +msgid "jid" +msgstr "" + +#: sat/plugins/plugin_xep_0048.py:316 msgid "Nickname" msgstr "" -#: src/plugins/plugin_xep_0048.py:260 +#: sat/plugins/plugin_xep_0048.py:318 msgid "Autojoin" msgstr "" -#: src/plugins/plugin_xep_0048.py:307 +#: sat/plugins/plugin_xep_0048.py:321 sat_frontends/primitivus/xmlui.py:470 +msgid "Save" +msgstr "" + +#: sat/plugins/plugin_xep_0048.py:367 msgid "Bookmarks will be local only" msgstr "" -#: src/plugins/plugin_xep_0048.py:308 +#: sat/plugins/plugin_xep_0048.py:368 #, python-format msgid "Type selected for \"auto\" storage: %s" msgstr "" -#: src/plugins/plugin_xep_0048.py:431 +#: sat/plugins/plugin_xep_0048.py:500 msgid "Bad arguments" msgstr "" -#: src/plugins/plugin_xep_0048.py:438 +#: sat/plugins/plugin_xep_0048.py:509 #, python-format msgid "All [%s] bookmarks are being removed" msgstr "" -#: src/plugins/plugin_xep_0048.py:446 +#: sat/plugins/plugin_xep_0048.py:520 msgid "Bookmark added" msgstr "" -#: src/plugins/plugin_xep_0049.py:37 +#: sat/plugins/plugin_xep_0049.py:37 msgid "Implementation of private XML storage" msgstr "" -#: src/plugins/plugin_xep_0049.py:45 +#: sat/plugins/plugin_xep_0049.py:45 msgid "Plugin XEP-0049 initialization" msgstr "" -#: src/plugins/plugin_xep_0050.py:55 +#: sat/plugins/plugin_xep_0050.py:51 +#: sat_frontends/quick_frontend/constants.py:29 +msgid "Online" +msgstr "" + +#: sat/plugins/plugin_xep_0050.py:52 msgid "Away" msgstr "" -#: src/plugins/plugin_xep_0050.py:58 +#: sat/plugins/plugin_xep_0050.py:53 +#: sat_frontends/quick_frontend/constants.py:30 +msgid "Free for chat" +msgstr "" + +#: sat/plugins/plugin_xep_0050.py:54 +#: sat_frontends/quick_frontend/constants.py:32 +msgid "Do not disturb" +msgstr "" + +#: sat/plugins/plugin_xep_0050.py:55 msgid "Left" msgstr "" -#: src/plugins/plugin_xep_0050.py:68 +#: sat/plugins/plugin_xep_0050.py:56 sat_frontends/primitivus/base.py:535 +msgid "Disconnect" +msgstr "" + +#: sat/plugins/plugin_xep_0050.py:67 msgid "Implementation of Ad-Hoc Commands" msgstr "" -#: src/plugins/plugin_xep_0050.py:110 -#, python-format -msgid "The groups [%(group)s] is unknown for profile [%(profile)s])" -msgstr "" - -#: src/plugins/plugin_xep_0050.py:214 +#: sat/plugins/plugin_xep_0050.py:126 +msgid "The groups [{group}] is unknown for profile [{profile}])" +msgstr "" + +#: sat/plugins/plugin_xep_0050.py:284 msgid "plugin XEP-0050 initialization" msgstr "" -#: src/plugins/plugin_xep_0050.py:222 +#: sat/plugins/plugin_xep_0050.py:315 msgid "Commands" msgstr "" -#: src/plugins/plugin_xep_0050.py:222 +#: sat/plugins/plugin_xep_0050.py:318 msgid "Execute ad-hoc commands" msgstr "" -#: src/plugins/plugin_xep_0050.py:228 +#: sat/plugins/plugin_xep_0050.py:329 msgid "Status" msgstr "" -#: src/plugins/plugin_xep_0050.py:241 +#: sat/plugins/plugin_xep_0050.py:364 +msgid "Missing command element" +msgstr "" + +#: sat/plugins/plugin_xep_0050.py:379 msgid "Please select a command" msgstr "" -#: src/plugins/plugin_xep_0050.py:259 +#: sat/plugins/plugin_xep_0050.py:397 #, python-format msgid "Invalid note type [%s], using info" msgstr "" -#: src/plugins/plugin_xep_0050.py:269 +#: sat/plugins/plugin_xep_0050.py:408 msgid "WARNING" msgstr "" -#: src/plugins/plugin_xep_0050.py:270 +#: sat/plugins/plugin_xep_0050.py:409 msgid "ERROR" msgstr "" -#: src/plugins/plugin_xep_0050.py:302 +#: sat/plugins/plugin_xep_0050.py:457 msgid "No known payload found in ad-hoc command result, aborting" msgstr "" -#: src/plugins/plugin_xep_0050.py:306 +#: sat/plugins/plugin_xep_0050.py:464 msgid "No payload found" msgstr "" -#: src/plugins/plugin_xep_0050.py:401 +#: sat/plugins/plugin_xep_0050.py:574 msgid "Please enter target jid" msgstr "" -#: src/plugins/plugin_xep_0050.py:415 +#: sat/plugins/plugin_xep_0050.py:588 msgid "status selection" msgstr "" -#: src/plugins/plugin_xep_0050.py:443 +#: sat/plugins/plugin_xep_0050.py:618 msgid "Status updated" msgstr "" -#: src/plugins/plugin_xep_0054.py:73 +#: sat/plugins/plugin_xep_0054.py:64 msgid "Implementation of vcard-temp" msgstr "" -#: src/plugins/plugin_xep_0054.py:83 +#: sat/plugins/plugin_xep_0054.py:84 msgid "Plugin XEP_0054 initialization" msgstr "" -#: src/plugins/plugin_xep_0054.py:234 +#: sat/plugins/plugin_xep_0054.py:99 +msgid "No avatar in cache for {profile}" +msgstr "" + +#: sat/plugins/plugin_xep_0054.py:137 msgid "Decoding binary" msgstr "" -#: src/plugins/plugin_xep_0054.py:294 +#: sat/plugins/plugin_xep_0054.py:242 +msgid "vCard element not found for {entity_jid}: {xml}" +msgstr "" + +#: sat/plugins/plugin_xep_0054.py:287 +msgid "Can't get vCard for {entity_jid}: {e}" +msgstr "" + +#: sat/plugins/plugin_xep_0054.py:291 msgid "VCard found" msgstr "" -#: src/plugins/plugin_xep_0055.py:51 +#: sat/plugins/plugin_xep_0055.py:53 msgid "Implementation of Jabber Search" msgstr "" -#: src/plugins/plugin_xep_0055.py:66 +#: sat/plugins/plugin_xep_0055.py:70 msgid "Jabber search plugin initialization" msgstr "" -#: src/plugins/plugin_xep_0055.py:80 +#: sat/plugins/plugin_xep_0055.py:100 sat/stdui/ui_contact_list.py:39 +#: sat/stdui/ui_contact_list.py:45 sat/stdui/ui_contact_list.py:51 +#: sat_frontends/primitivus/base.py:539 +#: sat_frontends/primitivus/contact_list.py:50 +msgid "Contacts" +msgstr "" + +#: sat/plugins/plugin_xep_0055.py:100 msgid "Search directory" msgstr "" -#: src/plugins/plugin_xep_0055.py:80 +#: sat/plugins/plugin_xep_0055.py:103 msgid "Search user directory" msgstr "" -#: src/plugins/plugin_xep_0055.py:118 +#: sat/plugins/plugin_xep_0055.py:143 msgid "Search users" msgstr "" -#: src/plugins/plugin_xep_0055.py:139 +#: sat/plugins/plugin_xep_0055.py:174 msgid "Search for" msgstr "" -#: src/plugins/plugin_xep_0055.py:141 +#: sat/plugins/plugin_xep_0055.py:181 msgid "Simple search" msgstr "" -#: src/plugins/plugin_xep_0055.py:149 src/plugins/plugin_xep_0055.py:249 +#: sat/plugins/plugin_xep_0055.py:191 sat/plugins/plugin_xep_0055.py:305 msgid "Search" msgstr "" -#: src/plugins/plugin_xep_0055.py:178 +#: sat/plugins/plugin_xep_0055.py:226 msgid "Advanced search" msgstr "" -#: src/plugins/plugin_xep_0055.py:196 +#: sat/plugins/plugin_xep_0055.py:246 msgid "Search on" msgstr "" -#: src/plugins/plugin_xep_0055.py:198 +#: sat/plugins/plugin_xep_0055.py:248 msgid "Other service" msgstr "" -#: src/plugins/plugin_xep_0055.py:205 +#: sat/plugins/plugin_xep_0055.py:256 msgid "Refresh fields" msgstr "" -#: src/plugins/plugin_xep_0055.py:208 +#: sat/plugins/plugin_xep_0055.py:260 msgid "Displaying the search form for" msgstr "" -#: src/plugins/plugin_xep_0055.py:281 +#: sat/plugins/plugin_xep_0055.py:341 msgid "Search results" msgstr "" -#: src/plugins/plugin_xep_0055.py:286 +#: sat/plugins/plugin_xep_0055.py:346 msgid "The search gave no result" msgstr "" -#: src/plugins/plugin_xep_0055.py:328 src/plugins/plugin_xep_0055.py:429 +#: sat/plugins/plugin_xep_0055.py:386 sat/plugins/plugin_xep_0055.py:493 msgid "No query element found" msgstr "" -#: src/plugins/plugin_xep_0055.py:333 src/plugins/plugin_xep_0055.py:434 +#: sat/plugins/plugin_xep_0055.py:391 sat/plugins/plugin_xep_0055.py:498 msgid "No data form found" msgstr "" -#: src/plugins/plugin_xep_0055.py:343 +#: sat/plugins/plugin_xep_0055.py:403 #, python-format msgid "Fields request failure: %s" msgstr "" -#: src/plugins/plugin_xep_0055.py:415 +#: sat/plugins/plugin_xep_0055.py:478 msgid "The search could not be performed" msgstr "" -#: src/plugins/plugin_xep_0055.py:444 +#: sat/plugins/plugin_xep_0055.py:510 #, python-format msgid "Search request failure: %s" msgstr "" -#: src/plugins/plugin_xep_0059.py:41 +#: sat/plugins/plugin_xep_0059.py:42 msgid "Implementation of Result Set Management" msgstr "" -#: src/plugins/plugin_xep_0059.py:49 +#: sat/plugins/plugin_xep_0059.py:52 msgid "Result Set Management plugin initialization" msgstr "" -#: src/plugins/plugin_xep_0060.py:53 +#: sat/plugins/plugin_xep_0059.py:65 +msgid "rsm_max can't be negative" +msgstr "" + +#: sat/plugins/plugin_xep_0060.py:56 msgid "Implementation of PubSub Protocol" msgstr "" -#: src/plugins/plugin_xep_0060.py:83 +#: sat/plugins/plugin_xep_0060.py:95 msgid "PubSub plugin initialization" msgstr "" -#: src/plugins/plugin_xep_0065.py:95 +#: sat/plugins/plugin_xep_0060.py:323 +msgid "Can't retrieve pubsub_service from conf, we'll use first one that we find" +msgstr "" + +#: sat/plugins/plugin_xep_0060.py:487 +msgid "Can't parse items: {msg}" +msgstr "" + +#: sat/plugins/plugin_xep_0060.py:556 +msgid "Invalid item: {xml}" +msgstr "" + +#: sat/plugins/plugin_xep_0060.py:572 +msgid "" +"Can't use publish-options ({options}) on node {node}, re-publishing " +"without them: {reason}" +msgstr "" + +#: sat/plugins/plugin_xep_0060.py:905 sat/plugins/plugin_xep_0060.py:948 +msgid "Invalid result: missing element: {}" +msgstr "" + +#: sat/plugins/plugin_xep_0060.py:916 sat/plugins/plugin_xep_0060.py:961 +msgid "Invalid result: bad element: {}" +msgstr "" + +#: sat/plugins/plugin_xep_0060.py:1284 +msgid "Invalid result: missing element: {}" +msgstr "" + +#: sat/plugins/plugin_xep_0060.py:1289 +msgid "Invalid result: {}" +msgstr "" + +#: sat/plugins/plugin_xep_0060.py:1299 +msgid "Invalid result: bad element: {}" +msgstr "" + +#: sat/plugins/plugin_xep_0065.py:90 msgid "Implementation of SOCKS5 Bytestreams" msgstr "" -#: src/plugins/plugin_xep_0065.py:515 +#: sat/plugins/plugin_xep_0065.py:528 msgid "File transfer completed, closing connection" msgstr "" -#: src/plugins/plugin_xep_0065.py:667 +#: sat/plugins/plugin_xep_0065.py:695 #, python-format msgid "Socks 5 client connection lost (reason: %s)" msgstr "" -#: src/plugins/plugin_xep_0065.py:695 +#: sat/plugins/plugin_xep_0065.py:723 msgid "Plugin XEP_0065 initialization" msgstr "" -#: src/plugins/plugin_xep_0065.py:750 +#: sat/plugins/plugin_xep_0065.py:781 msgid "Socks5 Stream server launched on port {}" msgstr "" -#: src/plugins/plugin_xep_0070.py:54 +#: sat/plugins/plugin_xep_0070.py:56 msgid "Implementation of HTTP Requests via XMPP" msgstr "" -#: src/plugins/plugin_xep_0070.py:64 +#: sat/plugins/plugin_xep_0070.py:66 msgid "Plugin XEP_0070 initialization" msgstr "" -#: src/plugins/plugin_xep_0070.py:77 +#: sat/plugins/plugin_xep_0070.py:79 msgid "XEP-0070 Verifying HTTP Requests via XMPP (iq)" msgstr "" -#: src/plugins/plugin_xep_0070.py:86 +#: sat/plugins/plugin_xep_0070.py:88 msgid "XEP-0070 Verifying HTTP Requests via XMPP (message)" msgstr "" -#: src/plugins/plugin_xep_0070.py:97 +#: sat/plugins/plugin_xep_0070.py:98 msgid "Auth confirmation" msgstr "" -#: src/plugins/plugin_xep_0070.py:98 -msgid "{} needs to validate your identity, do you agree ?" -msgstr "" - -#: src/plugins/plugin_xep_0070.py:99 -msgid "Validation code : {}" -msgstr "" - -#: src/plugins/plugin_xep_0070.py:100 -msgid "Please check that this code is the same as on {}" -msgstr "" - -#: src/plugins/plugin_xep_0070.py:102 -msgid "Submit to authorize, cancel otherwise." -msgstr "" - -#: src/plugins/plugin_xep_0070.py:131 +#: sat/plugins/plugin_xep_0070.py:99 +msgid "" +"{auth_url} needs to validate your identity, do you agree?\n" +"Validation code : {auth_id}\n" +"\n" +"Please check that this code is the same as on {auth_url}" +msgstr "" + +#: sat/plugins/plugin_xep_0070.py:117 msgid "XEP-0070 reply iq" msgstr "" -#: src/plugins/plugin_xep_0070.py:136 +#: sat/plugins/plugin_xep_0070.py:122 msgid "XEP-0070 reply message" msgstr "" -#: src/plugins/plugin_xep_0070.py:141 +#: sat/plugins/plugin_xep_0070.py:127 msgid "XEP-0070 reply error" msgstr "" -#: src/plugins/plugin_xep_0071.py:51 +#: sat/plugins/plugin_xep_0071.py:55 msgid "Implementation of XHTML-IM" msgstr "" -#: src/plugins/plugin_xep_0071.py:79 +#: sat/plugins/plugin_xep_0071.py:94 msgid "XHTML-IM plugin initialization" msgstr "" -#: src/plugins/plugin_xep_0071.py:196 +#: sat/plugins/plugin_xep_0071.py:223 msgid "Can't have XHTML and rich content at the same time" msgstr "" -#: src/plugins/plugin_xep_0077.py:40 +#: sat/plugins/plugin_xep_0077.py:41 msgid "Implementation of in-band registration" msgstr "" -#: src/plugins/plugin_xep_0077.py:47 +#: sat/plugins/plugin_xep_0077.py:54 +msgid "Registration asked for {jid}" +msgstr "" + +#: sat/plugins/plugin_xep_0077.py:79 +msgid "Stream started with {server}, now registering" +msgstr "" + +#: sat/plugins/plugin_xep_0077.py:85 +msgid "Registration answer: {}" +msgstr "" + +#: sat/plugins/plugin_xep_0077.py:89 +msgid "Registration failure: {}" +msgstr "" + +#: sat/plugins/plugin_xep_0077.py:116 msgid "Plugin XEP_0077 initialization" msgstr "" -#: src/plugins/plugin_xep_0077.py:65 +#: sat/plugins/plugin_xep_0077.py:176 msgid "Can't find data form" msgstr "" -#: src/plugins/plugin_xep_0077.py:66 +#: sat/plugins/plugin_xep_0077.py:178 msgid "This gateway can't be managed by SàT, sorry :(" msgstr "" -#: src/plugins/plugin_xep_0077.py:91 +#: sat/plugins/plugin_xep_0077.py:202 sat/plugins/plugin_xep_0077.py:212 +#, python-format +msgid "Registration failure: %s" +msgstr "" + +#: sat/plugins/plugin_xep_0077.py:206 #, python-format msgid "registration answer: %s" msgstr "" -#: src/plugins/plugin_xep_0077.py:99 +#: sat/plugins/plugin_xep_0077.py:215 msgid "Username already exists, please choose an other one" msgstr "" -#: src/plugins/plugin_xep_0077.py:108 -#, python-format -msgid "Asking registration for [%s]" -msgstr "" - -#: src/plugins/plugin_xep_0085.py:53 +#: sat/plugins/plugin_xep_0077.py:229 +msgid "Asking registration for {}" +msgstr "" + +#: sat/plugins/plugin_xep_0085.py:55 msgid "Implementation of Chat State Notifications Protocol" msgstr "" -#: src/plugins/plugin_xep_0085.py:93 +#: sat/plugins/plugin_xep_0085.py:97 msgid "Enable chat state notifications" msgstr "" -#: src/plugins/plugin_xep_0085.py:97 +#: sat/plugins/plugin_xep_0085.py:101 msgid "Chat State Notifications plugin initialization" msgstr "" -#: src/plugins/plugin_xep_0092.py:41 +#: sat/plugins/plugin_xep_0092.py:42 msgid "Implementation of Software Version" msgstr "" -#: src/plugins/plugin_xep_0092.py:48 +#: sat/plugins/plugin_xep_0092.py:48 msgid "Plugin XEP_0092 initialization" msgstr "" -#: src/plugins/plugin_xep_0092.py:111 +#: sat/plugins/plugin_xep_0092.py:119 +#, python-format +msgid "Client name: %s" +msgstr "" + +#: sat/plugins/plugin_xep_0092.py:121 +#, python-format +msgid "Client version: %s" +msgstr "" + +#: sat/plugins/plugin_xep_0092.py:123 #, python-format msgid "Operating system: %s" msgstr "" -#: src/plugins/plugin_xep_0092.py:115 +#: sat/plugins/plugin_xep_0092.py:128 msgid "Software version not available" msgstr "" -#: src/plugins/plugin_xep_0092.py:117 +#: sat/plugins/plugin_xep_0092.py:130 msgid "Client software version request timeout" msgstr "" -#: src/plugins/plugin_xep_0095.py:40 +#: sat/plugins/plugin_xep_0095.py:41 msgid "Implementation of Stream Initiation" msgstr "" -#: src/plugins/plugin_xep_0095.py:54 +#: sat/plugins/plugin_xep_0095.py:54 msgid "Plugin XEP_0095 initialization" msgstr "" -#: src/plugins/plugin_xep_0095.py:80 +#: sat/plugins/plugin_xep_0095.py:84 msgid "XEP-0095 Stream initiation" msgstr "" -#: src/plugins/plugin_xep_0095.py:122 +#: sat/plugins/plugin_xep_0095.py:127 msgid "sending stream initiation accept answer" msgstr "" -#: src/plugins/plugin_xep_0095.py:159 +#: sat/plugins/plugin_xep_0095.py:168 #, python-format msgid "Stream Session ID: %s" msgstr "" -#: src/plugins/plugin_xep_0096.py:45 +#: sat/plugins/plugin_xep_0096.py:48 msgid "Implementation of SI File Transfer" msgstr "" -#: src/plugins/plugin_xep_0096.py:53 +#: sat/plugins/plugin_xep_0096.py:55 +msgid "Stream Initiation" +msgstr "" + +#: sat/plugins/plugin_xep_0096.py:58 msgid "Plugin XEP_0096 initialization" msgstr "" -#: src/plugins/plugin_xep_0096.py:119 +#: sat/plugins/plugin_xep_0096.py:129 msgid "XEP-0096 file transfer requested" msgstr "" -#: src/plugins/plugin_xep_0096.py:337 +#: sat/plugins/plugin_xep_0096.py:377 msgid "The contact {} has refused your file" msgstr "" -#: src/plugins/plugin_xep_0096.py:338 +#: sat/plugins/plugin_xep_0096.py:378 msgid "File refused" msgstr "" -#: src/plugins/plugin_xep_0096.py:341 +#: sat/plugins/plugin_xep_0096.py:381 msgid "Error during file transfer" msgstr "" -#: src/plugins/plugin_xep_0096.py:342 -#, python-brace-format +#: sat/plugins/plugin_xep_0096.py:382 msgid "" "Something went wrong during the file transfer session initialisation: " "{reason}" msgstr "" -#: src/plugins/plugin_xep_0096.py:343 +#: sat/plugins/plugin_xep_0096.py:385 msgid "File transfer error" msgstr "" -#: src/plugins/plugin_xep_0096.py:351 -#, python-brace-format +#: sat/plugins/plugin_xep_0096.py:394 msgid "transfer {sid} successfuly finished [{profile}]" msgstr "" -#: src/plugins/plugin_xep_0096.py:357 -#, python-brace-format +#: sat/plugins/plugin_xep_0096.py:402 msgid "transfer {sid} failed [{profile}]: {reason}" msgstr "" -#: src/plugins/plugin_xep_0100.py:36 +#: sat/plugins/plugin_xep_0100.py:37 msgid "Implementation of Gateways protocol" msgstr "" -#: src/plugins/plugin_xep_0100.py:39 -msgid "" -"Be careful ! Gateways allow you to use an external IM (legacy IM), so you " -"can see your contact as XMPP contacts.\n" -"But when you do this, all your messages go throught the external legacy IM " -"server, it is a huge privacy issue (i.e.: all your messages throught the " -"gateway can be monitored, recorded, analysed by the external server, most of " -"time a private company)." -msgstr "" - -#: src/plugins/plugin_xep_0100.py:44 +#: sat/plugins/plugin_xep_0100.py:40 +msgid "" +"Be careful ! Gateways allow you to use an external IM (legacy IM), so you" +" can see your contact as XMPP contacts.\n" +"But when you do this, all your messages go throught the external legacy " +"IM server, it is a huge privacy issue (i.e.: all your messages throught " +"the gateway can be monitored, recorded, analysed by the external server, " +"most of time a private company)." +msgstr "" + +#: sat/plugins/plugin_xep_0100.py:48 msgid "Internet Relay Chat" msgstr "" -#: src/plugins/plugin_xep_0100.py:45 +#: sat/plugins/plugin_xep_0100.py:49 msgid "XMPP" msgstr "" -#: src/plugins/plugin_xep_0100.py:46 +#: sat/plugins/plugin_xep_0100.py:50 msgid "Tencent QQ" msgstr "" -#: src/plugins/plugin_xep_0100.py:47 +#: sat/plugins/plugin_xep_0100.py:51 msgid "SIP/SIMPLE" msgstr "" -#: src/plugins/plugin_xep_0100.py:48 +#: sat/plugins/plugin_xep_0100.py:52 msgid "ICQ" msgstr "" -#: src/plugins/plugin_xep_0100.py:49 +#: sat/plugins/plugin_xep_0100.py:53 msgid "Yahoo! Messenger" msgstr "" -#: src/plugins/plugin_xep_0100.py:50 +#: sat/plugins/plugin_xep_0100.py:54 msgid "Gadu-Gadu" msgstr "" -#: src/plugins/plugin_xep_0100.py:51 +#: sat/plugins/plugin_xep_0100.py:55 msgid "AOL Instant Messenger" msgstr "" -#: src/plugins/plugin_xep_0100.py:52 +#: sat/plugins/plugin_xep_0100.py:56 msgid "Windows Live Messenger" msgstr "" -#: src/plugins/plugin_xep_0100.py:59 +#: sat/plugins/plugin_xep_0100.py:62 msgid "Gateways plugin initialization" msgstr "" -#: src/plugins/plugin_xep_0100.py:66 +#: sat/plugins/plugin_xep_0100.py:84 msgid "Gateways" msgstr "" -#: src/plugins/plugin_xep_0100.py:66 +#: sat/plugins/plugin_xep_0100.py:87 msgid "Find gateways" msgstr "" -#: src/plugins/plugin_xep_0100.py:84 +#: sat/plugins/plugin_xep_0100.py:108 #, python-format msgid "Gateways manager (%s)" msgstr "" -#: src/plugins/plugin_xep_0100.py:92 +#: sat/plugins/plugin_xep_0100.py:121 #, python-format msgid "Failed (%s)" msgstr "" -#: src/plugins/plugin_xep_0100.py:105 +#: sat/plugins/plugin_xep_0100.py:134 msgid "Use external XMPP server" msgstr "" -#: src/plugins/plugin_xep_0100.py:107 +#: sat/plugins/plugin_xep_0100.py:136 msgid "Go !" msgstr "" -#: src/plugins/plugin_xep_0100.py:114 +#: sat/plugins/plugin_xep_0100.py:143 msgid "No gateway index selected" msgstr "" -#: src/plugins/plugin_xep_0100.py:128 +#: sat/plugins/plugin_xep_0100.py:158 #, python-format msgid "" "INTERNAL ERROR: identity category should always be \"gateway\" in " "_getTypeString, got \"%s\"" msgstr "" -#: src/plugins/plugin_xep_0100.py:132 +#: sat/plugins/plugin_xep_0100.py:166 msgid "Unknown IM" msgstr "" -#: src/plugins/plugin_xep_0100.py:136 +#: sat/plugins/plugin_xep_0100.py:170 msgid "Registration successful, doing the rest" msgstr "" -#: src/plugins/plugin_xep_0100.py:159 +#: sat/plugins/plugin_xep_0100.py:195 msgid "Timeout" msgstr "" -#: src/plugins/plugin_xep_0100.py:170 +#: sat/plugins/plugin_xep_0100.py:211 #, python-format msgid "Found gateway [%(jid)s]: %(identity_name)s" msgstr "" -#: src/plugins/plugin_xep_0100.py:173 +#: sat/plugins/plugin_xep_0100.py:222 #, python-format msgid "Skipping [%(jid)s] which is not a gateway" msgstr "" -#: src/plugins/plugin_xep_0100.py:180 +#: sat/plugins/plugin_xep_0100.py:231 msgid "No gateway found" msgstr "" -#: src/plugins/plugin_xep_0100.py:185 +#: sat/plugins/plugin_xep_0100.py:236 #, python-format msgid "item found: %s" msgstr "" -#: src/plugins/plugin_xep_0100.py:206 +#: sat/plugins/plugin_xep_0100.py:260 #, python-format msgid "find gateways (target = %(target)s, profile = %(profile)s)" msgstr "" -#: src/plugins/plugin_xep_0115.py:48 +#: sat/plugins/plugin_xep_0106.py:38 +msgid "(Un)escape JID to use disallowed chars in local parts" +msgstr "" + +#: sat/plugins/plugin_xep_0115.py:50 msgid "Implementation of entity capabilities" msgstr "" -#: src/plugins/plugin_xep_0115.py:56 +#: sat/plugins/plugin_xep_0115.py:58 msgid "Plugin XEP_0115 initialization" msgstr "" -#: src/plugins/plugin_xep_0115.py:73 +#: sat/plugins/plugin_xep_0115.py:73 msgid "Caps optimisation enabled" msgstr "" -#: src/plugins/plugin_xep_0115.py:76 +#: sat/plugins/plugin_xep_0115.py:76 msgid "Caps optimisation not available" msgstr "" -#: src/plugins/plugin_xep_0115.py:143 +#: sat/plugins/plugin_xep_0115.py:154 #, python-format msgid "Received invalid capabilities tag: %s" msgstr "" -#: src/plugins/plugin_xep_0115.py:153 -#, python-format -msgid "" -"Unknown hash method for entity capabilities: [%(hash_method)s] (entity: " -"%(jid)s, node: %(node)s)" -msgstr "" - -#: src/plugins/plugin_xep_0115.py:158 -#, python-format +#: sat/plugins/plugin_xep_0115.py:170 +msgid "" +"Unknown hash method for entity capabilities: [{hash_method}] (entity: " +"{entity_jid}, node: {node})" +msgstr "" + +#: sat/plugins/plugin_xep_0115.py:183 msgid "" "Computed hash differ from given hash:\n" -"given: [%(given_hash)s]\n" -"computed: [%(computed_hash)s]\n" -"(entity: %(jid)s, node: %(node)s)" -msgstr "" - -#: src/plugins/plugin_xep_0115.py:164 -#, python-brace-format +"given: [{given}]\n" +"computed: [{computed}]\n" +"(entity: {entity_jid}, node: {node})" +msgstr "" + +#: sat/plugins/plugin_xep_0115.py:205 msgid "Couldn't retrieve disco info for {jid}: {error}" msgstr "" -#: src/plugins/plugin_xep_0163.py:40 +#: sat/plugins/plugin_xep_0163.py:42 msgid "Implementation of Personal Eventing Protocol" msgstr "" -#: src/plugins/plugin_xep_0163.py:47 +#: sat/plugins/plugin_xep_0163.py:48 msgid "PEP plugin initialization" msgstr "" -#: src/plugins/plugin_xep_0163.py:114 +#: sat/plugins/plugin_xep_0163.py:131 #, python-format msgid "Trying to send personal event with an unknown profile key [%s]" msgstr "" -#: src/plugins/plugin_xep_0163.py:117 +#: sat/plugins/plugin_xep_0163.py:136 msgid "Trying to send personal event for an unknown type" msgstr "" -#: src/plugins/plugin_xep_0163.py:123 +#: sat/plugins/plugin_xep_0163.py:142 msgid "No item found" msgstr "" -#: src/plugins/plugin_xep_0163.py:128 +#: sat/plugins/plugin_xep_0163.py:149 msgid "Can't find mood element in mood event" msgstr "" -#: src/plugins/plugin_xep_0163.py:132 +#: sat/plugins/plugin_xep_0163.py:153 msgid "No mood found" msgstr "" -#: src/plugins/plugin_xep_0166.py:48 -#, python-brace-format +#: sat/plugins/plugin_xep_0166.py:50 msgid "{entity} want to start a jingle session with you, do you accept ?" msgstr "" -#: src/plugins/plugin_xep_0166.py:57 +#: sat/plugins/plugin_xep_0166.py:60 msgid "Implementation of Jingle" msgstr "" -#: src/plugins/plugin_xep_0166.py:91 +#: sat/plugins/plugin_xep_0166.py:98 msgid "plugin Jingle initialization" msgstr "" -#: src/plugins/plugin_xep_0166.py:429 +#: sat/plugins/plugin_xep_0166.py:156 +msgid "Error while terminating session: {msg}" +msgstr "" + +#: sat/plugins/plugin_xep_0166.py:395 +msgid "You can't do a jingle session with yourself" +msgstr "" + +#: sat/plugins/plugin_xep_0166.py:511 msgid "Confirm Jingle session" msgstr "" -#: src/plugins/plugin_xep_0184.py:61 +#: sat/plugins/plugin_xep_0184.py:71 msgid "Implementation of Message Delivery Receipts" msgstr "" -#: src/plugins/plugin_xep_0184.py:85 +#: sat/plugins/plugin_xep_0184.py:96 msgid "Enable message delivery receipts" msgstr "" -#: src/plugins/plugin_xep_0184.py:89 +#: sat/plugins/plugin_xep_0184.py:100 msgid "Plugin XEP_0184 (message delivery receipts) initialization" msgstr "" -#: src/plugins/plugin_xep_0184.py:114 +#: sat/plugins/plugin_xep_0184.py:136 msgid "[XEP-0184] Request acknowledgment for message id {}" msgstr "" -#: src/plugins/plugin_xep_0184.py:147 +#: sat/plugins/plugin_xep_0184.py:180 msgid "[XEP-0184] Receive acknowledgment for message id {}" msgstr "" -#: src/plugins/plugin_xep_0184.py:154 +#: sat/plugins/plugin_xep_0184.py:190 msgid "[XEP-0184] Delete waiting acknowledgment for message id {}" msgstr "" -#: src/plugins/plugin_xep_0203.py:43 +#: sat/plugins/plugin_xep_0198.py:46 +msgid "Implementation of Stream Management" +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:134 +msgid "Plugin Stream Management initialization" +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:144 +msgid "Invalid ack_timeout value, please check your configuration" +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:147 +msgid "Ack timeout disabled" +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:149 +msgid "Ack timeout set to {timeout}s" +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:171 +msgid "" +"Your server doesn't support stream management ({namespace}), this is used" +" to improve connection problems detection (like network outages). Please " +"ask your server administrator to enable this feature." +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:302 +msgid "" +"Connection failed using location given by server (host: {host}, port: " +"{port}), switching to normal host and port (host: {normal_host}, port: " +"{normal_port})" +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:317 +msgid "Incorrect element received, no \"id\" attribute" +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:319 +msgid "" +"You're server doesn't support session resuming with stream management, " +"please contact your server administrator to enable it" +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:341 +msgid "Invalid location received: {location}" +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:359 +msgid "Invalid \"max\" attribute" +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:361 +msgid "Using default session max value ({max_s} s)." +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:363 +msgid "Stream Management enabled" +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:367 +msgid "Stream Management enabled, with a resumption time of {res_m:.2f} min" +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:382 +msgid "" +"Stream session resumed (disconnected for {d_time} s, {count} stanza(s) " +"resent)" +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:395 +msgid "Can't use stream management" +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:399 +msgid "{msg}: {reason}" +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:408 +msgid "stream resumption not possible, restarting full session" +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:495 +msgid "Server returned invalid ack element, disabling stream management: {xml}" +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:501 +msgid "Server acked more stanzas than we have sent, disabling stream management." +msgstr "" + +#: sat/plugins/plugin_xep_0198.py:511 +msgid "Ack was not received in time, aborting connection" +msgstr "" + +#: sat/plugins/plugin_xep_0199.py:39 +msgid "Implementation of XMPP Ping" +msgstr "" + +#: sat/plugins/plugin_xep_0199.py:49 +msgid "XMPP Ping plugin initialization" +msgstr "" + +#: sat/plugins/plugin_xep_0199.py:109 +msgid "ping error ({err_msg}). Response time: {time} s" +msgstr "" + +#: sat/plugins/plugin_xep_0199.py:123 +msgid "Invalid jid: \"{entity_jid}\"" +msgstr "" + +#: sat/plugins/plugin_xep_0199.py:134 +msgid "XMPP PING received from {from_jid} [{profile}]" +msgstr "" + +#: sat/plugins/plugin_xep_0203.py:45 msgid "Implementation of Delayed Delivery" msgstr "" -#: src/plugins/plugin_xep_0203.py:50 +#: sat/plugins/plugin_xep_0203.py:51 msgid "Delayed Delivery plugin initialization" msgstr "" -#: src/plugins/plugin_xep_0231.py:39 +#: sat/plugins/plugin_xep_0231.py:48 msgid "Implementation of bits of binary (used for small images/files)" msgstr "" -#: src/plugins/plugin_xep_0231.py:48 +#: sat/plugins/plugin_xep_0231.py:59 msgid "plugin Bits of Binary initialization" msgstr "" -#: src/plugins/plugin_xep_0234.py:48 +#: sat/plugins/plugin_xep_0234.py:54 msgid "Implementation of Jingle File Transfer" msgstr "" -#: src/plugins/plugin_xep_0234.py:57 +#: sat/plugins/plugin_xep_0234.py:67 +msgid "file transfer" +msgstr "" + +#: sat/plugins/plugin_xep_0234.py:70 msgid "plugin Jingle File Transfer initialization" msgstr "" -#: src/plugins/plugin_xep_0249.py:55 +#: sat/plugins/plugin_xep_0234.py:380 +msgid "hash_algo must be set if file_hash is set" +msgstr "" + +#: sat/plugins/plugin_xep_0234.py:385 +msgid "file_hash must be set if hash_algo is set" +msgstr "" + +#: sat/plugins/plugin_xep_0234.py:419 +msgid "only the following keys are allowed in extra: {keys}" +msgstr "" + +#: sat/plugins/plugin_xep_0234.py:454 +msgid "you need to provide at least name or file hash" +msgstr "" + +#: sat/plugins/plugin_xep_0234.py:524 +msgid "File continue is not implemented yet" +msgstr "" + +#: sat/plugins/plugin_xep_0249.py:55 msgid "Implementation of Direct MUC Invitations" msgstr "" -#: src/plugins/plugin_xep_0249.py:75 +#: sat/plugins/plugin_xep_0249.py:75 msgid "Auto-join MUC on invitation" msgstr "" -#: src/plugins/plugin_xep_0249.py:82 +#: sat/plugins/plugin_xep_0249.py:86 msgid "Plugin XEP_0249 initialization" msgstr "" -#: src/plugins/plugin_xep_0249.py:131 +#: sat/plugins/plugin_xep_0249.py:140 #, python-format msgid "Invitation accepted for room %(room)s [%(profile)s]" msgstr "" -#: src/plugins/plugin_xep_0249.py:144 +#: sat/plugins/plugin_xep_0249.py:155 +msgid "invalid invitation received: {xml}" +msgstr "" + +#: sat/plugins/plugin_xep_0249.py:159 #, python-format msgid "Invitation received for room %(room)s [%(profile)s]" msgstr "" -#: src/plugins/plugin_xep_0249.py:146 -msgid "Error while parsing invitation" -msgstr "" - -#: src/plugins/plugin_xep_0249.py:155 +#: sat/plugins/plugin_xep_0249.py:170 msgid "Invitation silently discarded because user is already in the room." msgstr "" -#: src/plugins/plugin_xep_0249.py:163 +#: sat/plugins/plugin_xep_0249.py:181 #, python-format msgid "" "An invitation from %(user)s to join the room %(room)s has been declined " "according to your personal settings." msgstr "" -#: src/plugins/plugin_xep_0249.py:164 src/plugins/plugin_xep_0249.py:168 +#: sat/plugins/plugin_xep_0249.py:185 sat/plugins/plugin_xep_0249.py:192 msgid "MUC invitation" msgstr "" -#: src/plugins/plugin_xep_0249.py:167 -#, python-format -msgid "" -"You have been invited by %(user)s to join the room %(room)s. Do you accept?" -msgstr "" - -#: src/plugins/plugin_xep_0249.py:187 -#, python-brace-format -msgid "" -"You must provide a valid JID to invite, like in '/invite contact@{host}'" -msgstr "" - -#: src/plugins/plugin_xep_0260.py:49 +#: sat/plugins/plugin_xep_0249.py:188 +#, python-format +msgid "" +"You have been invited by %(user)s to join the room %(room)s. Do you " +"accept?" +msgstr "" + +#: sat/plugins/plugin_xep_0249.py:215 +msgid "You must provide a valid JID to invite, like in '/invite contact@{host}'" +msgstr "" + +#: sat/plugins/plugin_xep_0260.py:51 msgid "Implementation of Jingle SOCKS5 Bytestreams" msgstr "" -#: src/plugins/plugin_xep_0260.py:63 +#: sat/plugins/plugin_xep_0260.py:64 msgid "plugin Jingle SOCKS5 Bytestreams" msgstr "" -#: src/plugins/plugin_xep_0261.py:45 +#: sat/plugins/plugin_xep_0261.py:47 msgid "Implementation of Jingle In-Band Bytestreams" msgstr "" -#: src/plugins/plugin_xep_0261.py:53 +#: sat/plugins/plugin_xep_0261.py:55 msgid "plugin Jingle In-Band Bytestreams" msgstr "" -#: src/plugins/plugin_xep_0277.py:57 +#: sat/plugins/plugin_xep_0264.py:67 +msgid "Thumbnails handling" +msgstr "" + +#: sat/plugins/plugin_xep_0264.py:79 +msgid "Plugin XEP_0264 initialization" +msgstr "" + +#: sat/plugins/plugin_xep_0277.py:71 msgid "Implementation of microblogging Protocol" msgstr "" -#: src/plugins/plugin_xep_0277.py:69 +#: sat/plugins/plugin_xep_0277.py:83 msgid "Microblogging plugin initialization" msgstr "" -#: src/plugins/plugin_xep_0277.py:171 +#: sat/plugins/plugin_xep_0277.py:286 msgid "Content of type XHTML must declare its namespace!" msgstr "" -#: src/plugins/plugin_xep_0277.py:360 +#: sat/plugins/plugin_xep_0277.py:557 msgid "Can't have xhtml and rich content at the same time" msgstr "" -#: src/plugins/plugin_xep_0277.py:636 -msgid "Can't find profile's jid" -msgstr "" - -#: src/plugins/plugin_xep_0277.py:642 +#: sat/plugins/plugin_xep_0277.py:1041 #, python-format msgid "Microblog node has now access %s" msgstr "" -#: src/plugins/plugin_xep_0277.py:646 +#: sat/plugins/plugin_xep_0277.py:1045 msgid "Can't set microblog access" msgstr "" -#: src/plugins/plugin_xep_0280.py:38 +#: sat/plugins/plugin_xep_0280.py:39 msgid "Message carbons" msgstr "" -#: src/plugins/plugin_xep_0280.py:49 +#: sat/plugins/plugin_xep_0280.py:50 msgid "Implementation of Message Carbons" msgstr "" -#: src/plugins/plugin_xep_0280.py:74 +#: sat/plugins/plugin_xep_0280.py:75 msgid "Plugin XEP_0280 initialization" msgstr "" -#: src/plugins/plugin_xep_0280.py:99 +#: sat/plugins/plugin_xep_0280.py:102 msgid "Not activating message carbons as requested in params" msgstr "" -#: src/plugins/plugin_xep_0280.py:104 +#: sat/plugins/plugin_xep_0280.py:107 msgid "server doesn't handle message carbons" msgstr "" -#: src/plugins/plugin_xep_0280.py:106 +#: sat/plugins/plugin_xep_0280.py:109 msgid "message carbons available, enabling it" msgstr "" -#: src/plugins/plugin_xep_0280.py:114 +#: sat/plugins/plugin_xep_0280.py:117 msgid "message carbons activated" msgstr "" -#: src/plugins/plugin_xep_0297.py:44 +#: sat/plugins/plugin_xep_0297.py:44 msgid "Implementation of Stanza Forwarding" msgstr "" -#: src/plugins/plugin_xep_0297.py:52 +#: sat/plugins/plugin_xep_0297.py:52 msgid "Stanza Forwarding plugin initialization" msgstr "" -#: src/plugins/plugin_xep_0300.py:42 +#: sat/plugins/plugin_xep_0300.py:45 msgid "Management of cryptographic hashes" msgstr "" -#: src/plugins/plugin_xep_0300.py:60 +#: sat/plugins/plugin_xep_0300.py:66 msgid "plugin Hashes initialization" msgstr "" -#: src/plugins/plugin_xep_0313.py:48 +#: sat/plugins/plugin_xep_0313.py:51 msgid "Implementation of Message Archive Management" msgstr "" -#: src/plugins/plugin_xep_0313.py:55 +#: sat/plugins/plugin_xep_0313.py:64 msgid "Message Archive Management plugin initialization" msgstr "" -#: src/plugins/plugin_xep_0334.py:44 +#: sat/plugins/plugin_xep_0313.py:92 +msgid "It seems that we have no MAM history yet" +msgstr "" + +#: sat/plugins/plugin_xep_0313.py:126 +msgid "missing \"to\" attribute in forwarded message" +msgstr "" + +#: sat/plugins/plugin_xep_0313.py:137 +msgid "missing \"from\" attribute in forwarded message" +msgstr "" + +#: sat/plugins/plugin_xep_0313.py:140 +msgid "" +"was expecting a message sent by our jid, but this one if from {from_jid}," +" ignoring\n" +"{xml}" +msgstr "" + +#: sat/plugins/plugin_xep_0313.py:158 +msgid "We have received no message while offline" +msgstr "" + +#: sat/plugins/plugin_xep_0313.py:160 +msgid "We have received {num_mess} message(s) while offline." +msgstr "" + +#: sat/plugins/plugin_xep_0329.py:50 +msgid "Implementation of File Information Sharing" +msgstr "" + +#: sat/plugins/plugin_xep_0329.py:86 +msgid "path change chars found in name [{name}], hack attempt?" +msgstr "" + +#: sat/plugins/plugin_xep_0329.py:107 +msgid "path can only be set on path nodes" +msgstr "" + +#: sat/plugins/plugin_xep_0329.py:141 +msgid "a node can't have several parents" +msgstr "" + +#: sat/plugins/plugin_xep_0329.py:210 +msgid "" +"parent dir (\"..\") found in path, hack attempt? path is {path} " +"[{profile}]" +msgstr "" + +#: sat/plugins/plugin_xep_0329.py:271 +msgid "File Information Sharing initialization" +msgstr "" + +#: sat/plugins/plugin_xep_0329.py:394 +msgid "invalid path: {path}" +msgstr "" + +#: sat/plugins/plugin_xep_0329.py:428 +msgid "{peer_jid} requested a file (s)he can't access [{profile}]" +msgstr "" + +#: sat/plugins/plugin_xep_0329.py:461 +msgid "error while retrieving files: {msg}" +msgstr "" + +#: sat/plugins/plugin_xep_0329.py:513 +msgid "ignoring invalid unicode name ({name}): {msg}" +msgstr "" + +#: sat/plugins/plugin_xep_0329.py:534 +msgid "unexpected type: {type}" +msgstr "" + +#: sat/plugins/plugin_xep_0329.py:573 +msgid "unknown node type: {type}" +msgstr "" + +#: sat/plugins/plugin_xep_0329.py:711 +msgid "unexpected element, ignoring: {elt}" +msgstr "" + +#: sat/plugins/plugin_xep_0329.py:1184 +msgid "This path doesn't exist!" +msgstr "" + +#: sat/plugins/plugin_xep_0329.py:1186 +msgid "A path need to be specified" +msgstr "" + +#: sat/plugins/plugin_xep_0329.py:1188 +msgid "access must be a dict" +msgstr "" + +#: sat/plugins/plugin_xep_0329.py:1200 +msgid "Can't find a proper name" +msgstr "" + +#: sat/plugins/plugin_xep_0329.py:1211 +msgid "" +"A directory with this name is already shared, renamed to {new_name} " +"[{profile}]" +msgstr "" + +#: sat/plugins/plugin_xep_0334.py:43 msgid "Implementation of Message Processing Hints" msgstr "" -#: src/plugins/plugin_xep_0334.py:45 -msgid "" -" Frontends can use HINT_* constants in mess_data['extra'] in a " -"serialized 'hints' dict.\n" -" Internal plugins can use directly addHint([HINT_* constant]).\n" +#: sat/plugins/plugin_xep_0334.py:45 +msgid "" +" Frontends can use HINT_* constants in mess_data['extra'] in " +"a serialized 'hints' dict.\n" +" Internal plugins can use directly addHint([HINT_* " +"constant]).\n" " Will set mess_data['extra']['history'] to 'skipped' when no " "store is requested and message is not saved in history." msgstr "" -#: src/plugins/plugin_xep_0334.py:63 +#: sat/plugins/plugin_xep_0334.py:65 msgid "Message Processing Hints plugin initialization" msgstr "" -#: src/plugins/plugin_xep_0363.py:52 +#: sat/plugins/plugin_xep_0346.py:54 +msgid "Handle Pubsub data schemas" +msgstr "" + +#: sat/plugins/plugin_xep_0346.py:60 +msgid "PubSub Schema initialization" +msgstr "" + +#: sat/plugins/plugin_xep_0346.py:208 +msgid "unspecified schema, we need to request it" +msgstr "" + +#: sat/plugins/plugin_xep_0346.py:212 +msgid "" +"no schema specified, and this node has no schema either, we can't " +"construct the data form" +msgstr "" + +#: sat/plugins/plugin_xep_0346.py:233 +msgid "Invalid Schema: {msg}" +msgstr "" + +#: sat/plugins/plugin_xep_0346.py:246 +msgid "nodeIndentifier needs to be set" +msgstr "" + +#: sat/plugins/plugin_xep_0346.py:310 +msgid "empty node is not allowed" +msgstr "" + +#: sat/plugins/plugin_xep_0346.py:354 +msgid "default_node must be set if nodeIdentifier is not set" +msgstr "" + +#: sat/plugins/plugin_xep_0346.py:457 +msgid "field {name} doesn't exist, ignoring it" +msgstr "" + +#: sat/plugins/plugin_xep_0346.py:551 +msgid "Can't parse date field: {msg}" +msgstr "" + +#: sat/plugins/plugin_xep_0346.py:652 +msgid "Can't get previous item, update ignored: {reason}" +msgstr "" + +#: sat/plugins/plugin_xep_0346.py:661 +msgid "Can't parse previous item, update ignored: data form not found" +msgstr "" + +#: sat/plugins/plugin_xep_0346.py:719 +msgid "default_node must be set if node is not set" +msgstr "" + +#: sat/plugins/plugin_xep_0346.py:728 +msgid "if extra[\"update\"] is set, item_id must be set too" +msgstr "" + +#: sat/plugins/plugin_xep_0352.py:35 +msgid "" +"Notify server when frontend is not actively used, to limit traffic and " +"save bandwidth and battery life" +msgstr "" + +#: sat/plugins/plugin_xep_0352.py:45 +msgid "Client State Indication plugin initialization" +msgstr "" + +#: sat/plugins/plugin_xep_0352.py:63 +msgid "Client State Indication is available on this server" +msgstr "" + +#: sat/plugins/plugin_xep_0352.py:67 +msgid "" +"Client State Indication is not available on this server, some bandwidth " +"optimisations can't be used." +msgstr "" + +#: sat/plugins/plugin_xep_0353.py:46 +msgid "Implementation of Jingle Message Initiation" +msgstr "" + +#: sat/plugins/plugin_xep_0353.py:53 +msgid "plugin {name} initialization" +msgstr "" + +#: sat/plugins/plugin_xep_0353.py:122 +msgid "Message initiation with {peer_jid} timed out" +msgstr "" + +#: sat/plugins/plugin_xep_0353.py:166 +msgid "" +"Somebody not in your contact list ({peer_jid}) wants to do a " +"\"{human_name}\" session with you, this would leak your presence and " +"possibly you IP (internet localisation), do you accept?" +msgstr "" + +#: sat/plugins/plugin_xep_0353.py:171 +msgid "Invitation from an unknown contact" +msgstr "" + +#: sat/plugins/plugin_xep_0353.py:211 +msgid "no pending session found with id {session_id}, did it timed out?" +msgstr "" + +#: sat/plugins/plugin_xep_0359.py:40 +msgid "Implementation of Unique and Stable Stanza IDs" +msgstr "" + +#: sat/plugins/plugin_xep_0359.py:49 +msgid "Unique and Stable Stanza IDs plugin initialization" +msgstr "" + +#: sat/plugins/plugin_xep_0363.py:51 msgid "Implementation of HTTP File Upload" msgstr "" -#: src/plugins/plugin_xep_0363.py:91 +#: sat/plugins/plugin_xep_0363.py:83 msgid "plugin HTTP File Upload initialization" msgstr "" -#: src/stdui/ui_contact_list.py:36 src/stdui/ui_contact_list.py:165 -#: src/stdui/ui_contact_list.py:239 +#: sat/plugins/plugin_xep_0363.py:200 +msgid "Can't get upload slot: {reason}" +msgstr "" + +#: sat/plugins/plugin_xep_0363.py:265 +msgid "upload failed: {reason}" +msgstr "" + +#: sat/plugins/plugin_xep_0363.py:349 +msgid "Invalid header element: {xml}" +msgstr "" + +#: sat/plugins/plugin_xep_0363.py:355 +msgid "Ignoring unauthorised header \"{name}\": {xml}" +msgstr "" + +#: sat/plugins/plugin_xep_0363.py:400 +msgid "no service can handle HTTP Upload request: {elt}" +msgstr "" + +#: sat/plugins/plugin_xep_0380.py:35 +msgid "Implementation of Explicit Message Encryption" +msgstr "" + +#: sat/plugins/plugin_xep_0380.py:94 +msgid "" +"Message from {sender} is encrypted with {algorithm} and we can't decrypt " +"it." +msgstr "" + +#: sat/plugins/plugin_xep_0380.py:96 +msgid "" +"User {sender} sent you an encrypted message (encrypted with {algorithm})," +" and we can't decrypt it." +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:62 +msgid "Implementation of OMEMO" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:440 +msgid "Security" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:442 +msgid "OMEMO default trust policy" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:443 +msgid "Manual trust (more secure)" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:445 +msgid "Blind Trust Before Verification (more user friendly)" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:449 +msgid "OMEMO plugin initialization (omemo module v{version})" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:453 +msgid "" +"Your version of omemo module is too old: {v[0]}.{v[1]}.{v[2]} is minimum " +"required, please update." +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:488 +msgid "You need to have OMEMO encryption activated to reset the session" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:503 +msgid "OMEMO session has been reset" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:551 +msgid "device {device} from {peer_jid} is not an auto-trusted device anymore" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:612 +msgid "Can't find bundle for device {device_id} of user {bare_jid}, ignoring" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:642 +msgid "OMEMO trust management" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:645 +msgid "" +"This is OMEMO trusting system. You'll see below the devices of your " +"contacts, and a checkbox to trust them or not. A trusted device can read " +"your messages in plain text, so be sure to only validate devices that you" +" are sure are belonging to your contact. It's better to do this when you " +"are next to your contact and her/his device, so you can check the " +"\"fingerprint\" (the number next to the device) yourself. Do *not* " +"validate a device if the fingerprint is wrong!" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:655 +msgid "This device ID" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:657 +msgid "This device fingerprint" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:669 +msgid "Automatically trust new devices?" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:683 +msgid "Contact" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:685 +msgid "Device ID" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:691 +msgid "Trust this device?" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:696 +msgid "(automatically trusted)" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:724 +msgid "We have no identity for this device yet, let's generate one" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:749 +msgid "Saving public bundle for this device ({device_id})" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:770 +msgid "OMEMO devices list is stored in more that one items, this is not expected" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:776 +msgid "no list element found in OMEMO devices list" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:782 +msgid "device element is missing \"id\" attribute: {elt}" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:785 +msgid "invalid device id: {device_id}" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:804 +msgid "there is no node to handle OMEMO devices" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:826 +msgid "Can't set devices: {reason}" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:850 +msgid "Bundle missing for device {device_id}" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:855 +msgid "Can't get bundle for device {device_id}: {reason}" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:859 +msgid "" +"no item found in node {node}, can't get public bundle for device " +"{device_id}" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:864 +msgid "more than one item found in {node}, this is not expected" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:878 +msgid "invalid bundle for device {device_id}, ignoring" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:902 +msgid "error while decoding key for device {device_id}: {msg}" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:916 +msgid "updating bundle for {device_id}" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:949 +msgid "Can't set bundle: {reason}" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:969 +msgid "Our own device is missing from devices list, fixing it" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:988 +msgid "" +"Not all destination devices are trusted, unknown devices will be blind " +"trusted due to the OMEMO Blind Trust Before Verification policy. If you " +"want a more secure workflow, please activate \"manual\" OMEMO policy in " +"settings' \"Security\" tab.\n" +"Following fingerprint have been automatically trusted:\n" +"{devices}" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:1010 +msgid "" +"Not all destination devices are trusted, we can't encrypt message in such" +" a situation. Please indicate if you trust those devices or not in the " +"trust manager before we can send this message" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:1053 +msgid "discarding untrusted device {device_id} with key {device_key} for {entity}" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:1095 +msgid "" +"Can't retrieve bundle for device(s) {devices} of entity {peer}, the " +"message will not be readable on this/those device(s)" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:1100 +msgid "" +"You're destinee {peer} has missing encryption data on some of his/her " +"device(s) (bundle on device {devices}), the message won't be readable on" +" this/those device." +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:1151 +msgid "Too many iterations in encryption loop" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:1180 +msgid "Can't encrypt message for {entities}: {reason}" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:1270 +msgid "Invalid OMEMO encrypted stanza, ignoring: {xml}" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:1276 +msgid "Invalid OMEMO encrypted stanza, missing sender device ID, ignoring: {xml}" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:1284 +msgid "" +"This OMEMO encrypted stanza has not been encrypted for our device " +"(device_id: {device_id}, fingerprint: {fingerprint}): {xml}" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:1290 +msgid "" +"An OMEMO message from {sender} has not been encrypted for our device, we " +"can't decrypt it" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:1297 +msgid "Invalid recipient ID: {msg}" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:1330 +msgid "" +"Can't decrypt message: {reason}\n" +"{xml}" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:1332 +msgid "An OMEMO message from {sender} can't be decrypted: {reason}" +msgstr "" + +#: sat/plugins/plugin_xep_0384.py:1364 +msgid "" +"Our message with UID {uid} has not been received in time, it has probably" +" been lost. The message was: {msg!r}" +msgstr "" + +#: sat/plugins/plugin_app_manager_docker/__init__.py:38 +msgid "Applications Manager for Docker" +msgstr "" + +#: sat/plugins/plugin_app_manager_docker/__init__.py:48 +msgid "Docker App Manager initialization" +msgstr "" + +#: sat/stdui/ui_contact_list.py:39 sat/stdui/ui_contact_list.py:42 +#: sat/stdui/ui_contact_list.py:190 sat/stdui/ui_contact_list.py:276 msgid "Add contact" msgstr "" -#: src/stdui/ui_contact_list.py:37 src/stdui/ui_contact_list.py:183 +#: sat/stdui/ui_contact_list.py:45 sat/stdui/ui_contact_list.py:48 +#: sat/stdui/ui_contact_list.py:209 msgid "Update contact" msgstr "" -#: src/stdui/ui_contact_list.py:38 +#: sat/stdui/ui_contact_list.py:51 sat/stdui/ui_contact_list.py:54 msgid "Remove contact" msgstr "" -#: src/stdui/ui_contact_list.py:135 +#: sat/stdui/ui_contact_list.py:157 msgid "Select in which groups your contact is:" msgstr "" -#: src/stdui/ui_contact_list.py:148 +#: sat/stdui/ui_contact_list.py:172 msgid "Add group" msgstr "" -#: src/stdui/ui_contact_list.py:150 +#: sat/stdui/ui_contact_list.py:174 msgid "Add" msgstr "" -#: src/stdui/ui_contact_list.py:166 +#: sat/stdui/ui_contact_list.py:191 msgid "New contact identifier (JID):" msgstr "" -#: src/stdui/ui_contact_list.py:178 +#: sat/stdui/ui_contact_list.py:203 msgid "Nothing to update" msgstr "" -#: src/stdui/ui_contact_list.py:179 src/stdui/ui_contact_list.py:197 +#: sat/stdui/ui_contact_list.py:204 sat/stdui/ui_contact_list.py:223 msgid "Your contact list is empty." msgstr "" -#: src/stdui/ui_contact_list.py:184 +#: sat/stdui/ui_contact_list.py:210 msgid "Which contact do you want to update?" msgstr "" -#: src/stdui/ui_contact_list.py:196 +#: sat/stdui/ui_contact_list.py:222 msgid "Nothing to delete" msgstr "" -#: src/stdui/ui_contact_list.py:200 +#: sat/stdui/ui_contact_list.py:228 msgid "Who do you want to remove from your contacts?" msgstr "" -#: src/stdui/ui_contact_list.py:219 +#: sat/stdui/ui_contact_list.py:251 msgid "Delete contact" msgstr "" -#: src/stdui/ui_contact_list.py:220 +#: sat/stdui/ui_contact_list.py:253 #, python-format msgid "Are you sure you want to remove %s from your contact list?" msgstr "" -#: src/stdui/ui_contact_list.py:240 +#: sat/stdui/ui_contact_list.py:277 #, python-format msgid "Please enter a valid JID (like \"contact@%s\"):" msgstr "" -#: src/stdui/ui_profile_manager.py:52 +#: sat/stdui/ui_profile_manager.py:62 msgid "Profile password for {}" msgstr "" -#: src/stdui/ui_profile_manager.py:61 src/stdui/ui_profile_manager.py:98 +#: sat/stdui/ui_profile_manager.py:72 sat/stdui/ui_profile_manager.py:119 msgid "Connection error" msgstr "" -#: src/stdui/ui_profile_manager.py:66 +#: sat/stdui/ui_profile_manager.py:76 +#: sat_frontends/quick_frontend/quick_profile_manager.py:171 +msgid "Internal error" +msgstr "" + +#: sat/stdui/ui_profile_manager.py:77 msgid "Internal error: {}" msgstr "" -#: src/stdui/ui_profile_manager.py:99 +#: sat/stdui/ui_profile_manager.py:121 #, python-format msgid "Can't connect to %s. Please check your connection details." msgstr "" -#: src/stdui/ui_profile_manager.py:103 +#: sat/stdui/ui_profile_manager.py:127 #, python-format msgid "XMPP password for %(profile)s%(counter)s" msgstr "" -#: src/stdui/ui_profile_manager.py:105 +#: sat/stdui/ui_profile_manager.py:135 #, python-format msgid "" "Can't connect to %s. Please check your connection details or try with " "another password." msgstr "" -#: src/test/constants.py:45 +#: sat/test/constants.py:57 msgid "Enable unibox" msgstr "" -#: src/test/constants.py:46 +#: sat/test/constants.py:58 msgid "'Wysiwyg' edition" msgstr "" -#: src/test/test_plugin_misc_room_game.py:43 +#: sat/test/test_plugin_misc_room_game.py:43 msgid "Dummy plugin to test room game" msgstr "" -#: src/tools/config.py:51 +#: sat/tools/config.py:53 #, python-format msgid "Testing file %s" msgstr "" -#: src/tools/config.py:68 -#, python-format -msgid "" -"Config auto-update: %(option)s set to %(value)s in the file %(config_file)s" -msgstr "" - -#: src/tools/config.py:77 -msgid "Can't read main config !" -msgstr "" - -#: src/tools/trigger.py:63 +#: sat/tools/config.py:72 +msgid "Config auto-update: {option} set to {value} in the file {config_file}." +msgstr "" + +#: sat/tools/config.py:86 +msgid "Can't read main config: {msg}" +msgstr "" + +#: sat/tools/config.py:91 +msgid "Configuration was read from: {filenames}" +msgstr "" + +#: sat/tools/config.py:95 +msgid "No configuration file found, using default settings" +msgstr "" + +#: sat/tools/image.py:35 +msgid "SVG support not available, please install cairosvg: {e}" +msgstr "" + +#: sat/tools/trigger.py:66 #, python-format msgid "There is already a bound priority [%s]" msgstr "" -#: src/tools/trigger.py:65 +#: sat/tools/trigger.py:69 #, python-format msgid "There is already a trigger with the same priority [%s]" msgstr "" -#: src/tools/xml_tools.py:60 +#: sat/tools/video.py:38 +msgid "ffmpeg executable not found, video thumbnails won't be available" +msgstr "" + +#: sat/tools/video.py:56 +msgid "ffmpeg executable is not available, can't generate video thumbnail" +msgstr "" + +#: sat/tools/xml_tools.py:86 msgid "Fixed field has neither value nor label, ignoring it" msgstr "" -#: src/tools/xml_tools.py:296 +#: sat/tools/xml_tools.py:485 msgid "INTERNAL ERROR: parameters xml not valid" msgstr "" -#: src/tools/xml_tools.py:305 +#: sat/tools/xml_tools.py:495 msgid "INTERNAL ERROR: params categories must have a name" msgstr "" -#: src/tools/xml_tools.py:314 +#: sat/tools/xml_tools.py:505 msgid "INTERNAL ERROR: params must have a name" msgstr "" -#: src/tools/xml_tools.py:357 +#: sat/tools/xml_tools.py:557 msgid "The 'options' tag is not allowed in parameter of type 'list'!" msgstr "" -#: src/tools/xml_tools.py:433 +#: sat/tools/xml_tools.py:655 msgid "TabElement must be a child of TabsContainer" msgstr "" -#: src/tools/xml_tools.py:532 +#: sat/tools/xml_tools.py:760 msgid "Can't set row index if auto_index is True" msgstr "" -#: src/tools/xml_tools.py:645 +#: sat/tools/xml_tools.py:893 msgid "either items or columns need do be filled" msgstr "" -#: src/tools/xml_tools.py:658 +#: sat/tools/xml_tools.py:907 msgid "Headers lenght doesn't correspond to columns" msgstr "" -#: src/tools/xml_tools.py:704 +#: sat/tools/xml_tools.py:954 msgid "Incorrect number of items in list" msgstr "" -#: src/tools/xml_tools.py:862 +#: sat/tools/xml_tools.py:978 +msgid "A widget with the name \"{name}\" already exists." +msgstr "" + +#: sat/tools/xml_tools.py:1171 msgid "Value must be an integer" msgstr "" -#: src/tools/xml_tools.py:877 +#: sat/tools/xml_tools.py:1186 msgid "Value must be 0, 1, false or true" msgstr "" -#: src/tools/xml_tools.py:927 +#: sat/tools/xml_tools.py:1249 +msgid "" +"\"multi\" flag and \"selected\" option are not compatible with " +"\"noselect\" flag" +msgstr "" + +#: sat/tools/xml_tools.py:1258 msgid "empty \"options\" list" msgstr "" -#: src/tools/xml_tools.py:929 src/tools/xml_tools.py:963 +#: sat/tools/xml_tools.py:1277 sat/tools/xml_tools.py:1311 msgid "invalid styles" msgstr "" -#: src/tools/xml_tools.py:985 +#: sat/tools/xml_tools.py:1335 msgid "DialogElement must be a direct child of TopElement" msgstr "" -#: src/tools/xml_tools.py:997 +#: sat/tools/xml_tools.py:1350 msgid "MessageElement must be a direct child of DialogElement" msgstr "" -#: src/tools/xml_tools.py:1009 +#: sat/tools/xml_tools.py:1365 msgid "ButtonsElement must be a direct child of DialogElement" msgstr "" -#: src/tools/xml_tools.py:1020 +#: sat/tools/xml_tools.py:1379 msgid "FileElement must be a direct child of DialogElement" msgstr "" -#: src/tools/xml_tools.py:1076 +#: sat/tools/xml_tools.py:1458 #, python-format msgid "Unknown panel type [%s]" msgstr "" -#: src/tools/xml_tools.py:1078 +#: sat/tools/xml_tools.py:1460 msgid "form XMLUI need a submit_id" msgstr "" -#: src/tools/xml_tools.py:1080 +#: sat/tools/xml_tools.py:1462 msgid "container argument must be a string" msgstr "" -#: src/tools/xml_tools.py:1082 +#: sat/tools/xml_tools.py:1465 msgid "dialog_opt can only be used with dialog panels" msgstr "" -#: src/tools/xml_tools.py:1124 -msgid "addXXX can't be used with dialogs" -msgstr "" - -#: src/tools/xml_tools.py:1182 +#: sat/tools/xml_tools.py:1492 +msgid "createWidget can't be used with dialogs" +msgstr "" + +#: sat/tools/xml_tools.py:1590 msgid "Submit ID must be filled for this kind of dialog" msgstr "" -#: src/tools/xml_tools.py:1209 +#: sat/tools/xml_tools.py:1618 #, python-format msgid "Unknown container type [%s]" msgstr "" -#: src/tools/xml_tools.py:1229 -#, python-format -msgid "Invalid type [%s]" -msgstr "" - -#: src/twisted/plugins/sat_plugin.py:58 -#, python-format -msgid "%s XMPP client backend" -msgstr "" +#: sat/tools/xml_tools.py:1648 +msgid "Invalid type [{type_}]" +msgstr "" + +#: sat/tools/common/async_process.py:86 +msgid "" +"Can't complete {name} command (error code: {code}):\n" +"stderr:\n" +"{stderr}\n" +"{stdout}\n" +msgstr "" + +#: sat/tools/common/date_utils.py:76 +msgid "You can't use a direction (+ or -) and \"ago\" at the same time" +msgstr "" + +#: sat/tools/common/template.py:149 +msgid "{site} can't be used as site name, it's reserved." +msgstr "" + +#: sat/tools/common/template.py:157 +msgid "{theme} contain forbidden char. Following chars are forbidden: {reserved}" +msgstr "" + +#: sat/tools/common/template.py:212 +msgid "Unregistered site requested: {site_to_check}" +msgstr "" + +#: sat/tools/common/template.py:241 +msgid "" +"Absolute template used while unsecure is disabled, hack attempt? " +"Template: {template}" +msgstr "" + +#: sat/tools/common/template.py:314 +msgid "Invalid attribute, please use one of \"defer\", \"async\" or \"\"" +msgstr "" + +#: sat/tools/common/template.py:332 +msgid "Can't find {libary} javascript library" +msgstr "" + +#: sat/tools/common/template.py:389 +msgid "" +"Can't add \"{name}\" site, it contains forbidden characters. Forbidden " +"characters are {forbidden}." +msgstr "" + +#: sat/tools/common/template.py:395 +msgid "Can't add \"{name}\" site, it should map to an absolute path" +msgstr "" + +#: sat/tools/common/template.py:416 +msgid "Can't load theme settings at {path}: {e}" +msgstr "" + +#: sat/tools/common/template.py:523 +msgid "Can't find template translation at {path}" +msgstr "" + +#: sat/tools/common/template.py:526 +msgid "{site}Invalid locale name: {msg}" +msgstr "" + +#: sat/tools/common/template.py:529 +msgid "{site}loaded {lang} templates translations" +msgstr "" + +#: sat/tools/common/template.py:560 +msgid "invalid locale value: {msg}" +msgstr "" + +#: sat/tools/common/template.py:569 +msgid "Can't find locale {locale}" +msgstr "" + +#: sat/tools/common/template.py:574 +msgid "Switched to {lang}" +msgstr "" + +#: sat/tools/common/template.py:774 sat_frontends/jp/cmd_event.py:134 +msgid "Can't parse date: {msg}" +msgstr "" + +#: sat/tools/common/template.py:801 +msgid "ignoring field \"{name}\": it doesn't exists" +msgstr "" + +#: sat_frontends/jp/arg_tools.py:88 +msgid "ignoring {name}={value}, not corresponding to any argument (in USE)" +msgstr "" + +#: sat_frontends/jp/arg_tools.py:95 +msgid "arg {name}={value} (in USE)" +msgstr "" + +#: sat_frontends/jp/base.py:64 +msgid "" +"ProgressBar not available, please download it at " +"http://pypi.python.org/pypi/progressbar\n" +"Progress bar deactivated\n" +"--\n" +msgstr "" + +#: sat_frontends/jp/base.py:155 +msgid "" +"Invalid value set for \"background\" ({background}), please check your " +"settings in libervia.conf" +msgstr "" + +#: sat_frontends/jp/base.py:178 +msgid "Available commands" +msgstr "" + +#: sat_frontends/jp/base.py:287 +#, python-format +msgid "Use PROFILE profile key (default: %(default)s)" +msgstr "" + +#: sat_frontends/jp/base.py:290 +msgid "Password used to connect profile, if necessary" +msgstr "" + +#: sat_frontends/jp/base.py:297 +msgid "Connect the profile before doing anything else" +msgstr "" + +#: sat_frontends/jp/base.py:307 +msgid "Start a profile session without connecting" +msgstr "" + +#: sat_frontends/jp/base.py:313 +msgid "Show progress bar" +msgstr "" + +#: sat_frontends/jp/base.py:318 +msgid "Add a verbosity level (can be used multiple times)" +msgstr "" + +#: sat_frontends/jp/base.py:323 +msgid "be quiet (only output machine readable data)" +msgstr "" + +#: sat_frontends/jp/base.py:326 +msgid "draft handling" +msgstr "" + +#: sat_frontends/jp/base.py:328 +msgid "load current draft" +msgstr "" + +#: sat_frontends/jp/base.py:330 +msgid "path to a draft file to retrieve" +msgstr "" + +#: sat_frontends/jp/base.py:346 +msgid "Pubsub URL (xmpp or http)" +msgstr "" + +#: sat_frontends/jp/base.py:348 +msgid "JID of the PubSub service" +msgstr "" + +#: sat_frontends/jp/base.py:350 +msgid "PEP service" +msgstr "" + +#: sat_frontends/jp/base.py:352 sat_frontends/jp/base.py:360 +#: sat_frontends/jp/base.py:368 +msgid " (DEFAULT: {default})" +msgstr "" + +#: sat_frontends/jp/base.py:356 +msgid "node to request" +msgstr "" + +#: sat_frontends/jp/base.py:358 +msgid "standard node" +msgstr "" + +#: sat_frontends/jp/base.py:366 +msgid "last item" +msgstr "" + +#: sat_frontends/jp/base.py:372 +msgid "retrieve last item" +msgstr "" + +#: sat_frontends/jp/base.py:378 +msgid "items to retrieve (DEFAULT: all)" +msgstr "" + +#: sat_frontends/jp/base.py:385 +msgid "maximum number of items to get ({no_limit} to get all items)" +msgstr "" + +#: sat_frontends/jp/base.py:391 +msgid "maximum number of items to get per page (DEFAULT: 10)" +msgstr "" + +#: sat_frontends/jp/base.py:398 sat_frontends/jp/cmd_message.py:217 +msgid "find page after this item" +msgstr "" + +#: sat_frontends/jp/base.py:401 sat_frontends/jp/cmd_message.py:220 +msgid "find page before this item" +msgstr "" + +#: sat_frontends/jp/base.py:404 sat_frontends/jp/cmd_message.py:223 +msgid "index of the page to retrieve" +msgstr "" + +#: sat_frontends/jp/base.py:411 +msgid "MAM filters to use" +msgstr "" + +#: sat_frontends/jp/base.py:424 +msgid "how items should be ordered" +msgstr "" + +#: sat_frontends/jp/base.py:454 +msgid "there is already a default output for {type}, ignoring new one" +msgstr "" + +#: sat_frontends/jp/base.py:475 +msgid "The following output options are invalid: {invalid_options}" +msgstr "" + +#: sat_frontends/jp/base.py:499 +msgid "Can't import {module_path} plugin, ignoring it: {e}" +msgstr "" + +#: sat_frontends/jp/base.py:505 +msgid "Missing module for plugin {name}: {missing}" +msgstr "" + +#: sat_frontends/jp/base.py:520 +msgid "Invalid plugin module [{type}] {module}" +msgstr "" + +#: sat_frontends/jp/base.py:552 +msgid "Can't parse HTML page : {msg}" +msgstr "" + +#: sat_frontends/jp/base.py:558 +msgid "" +"Could not find alternate \"xmpp:\" URI, can't find associated XMPP PubSub" +" node/item" +msgstr "" + +#: sat_frontends/jp/base.py:576 +msgid "invalid XMPP URL: {url}" +msgstr "" + +#: sat_frontends/jp/base.py:596 +msgid "item specified in URL but not needed in command, ignoring it" +msgstr "" + +#: sat_frontends/jp/base.py:612 +msgid "XMPP URL is not a pubsub one: {url}" +msgstr "" + +#: sat_frontends/jp/base.py:618 +msgid "argument -s/--service is required" +msgstr "" + +#: sat_frontends/jp/base.py:620 +msgid "argument -n/--node is required" +msgstr "" + +#: sat_frontends/jp/base.py:622 +msgid "argument -i/--item is required" +msgstr "" + +#: sat_frontends/jp/base.py:629 +msgid "--item and --item-last can't be used at the same time" +msgstr "" + +#: sat_frontends/jp/base.py:659 sat_frontends/quick_frontend/quick_app.py:370 +msgid "Can't connect to SàT backend, are you sure it's launched ?" +msgstr "" + +#: sat_frontends/jp/base.py:662 sat_frontends/quick_frontend/quick_app.py:373 +msgid "Can't init bridge" +msgstr "" + +#: sat_frontends/jp/base.py:666 +msgid "Error while initialising bridge: {e}" +msgstr "" + +#: sat_frontends/jp/base.py:714 +msgid "action cancelled by user" +msgstr "" + +#: sat_frontends/jp/base.py:785 +#, python-format +msgid "%s is not a valid JID !" +msgstr "" + +#: sat_frontends/jp/base.py:837 +msgid "invalid password" +msgstr "" + +#: sat_frontends/jp/base.py:839 +msgid "please enter profile password:" +msgstr "" + +#: sat_frontends/jp/base.py:859 +msgid "The profile [{profile}] doesn't exist" +msgstr "" + +#: sat_frontends/jp/base.py:881 +msgid "" +"Session for [{profile}] is not started, please start it before using jp, " +"or use either --start-session or --connect option" +msgstr "" + +#: sat_frontends/jp/base.py:901 +msgid "" +"Profile [{profile}] is not connected, please connect it before using jp, " +"or use --connect option" +msgstr "" + +#: sat_frontends/jp/base.py:1002 +msgid "select output format (default: {})" +msgstr "" + +#: sat_frontends/jp/base.py:1005 +msgid "output specific option" +msgstr "" + +#: sat_frontends/jp/base.py:1111 +msgid "file size is not known, we can't show a progress bar" +msgstr "" + +#: sat_frontends/jp/base.py:1126 sat_frontends/jp/cmd_list.py:304 +msgid "Progress: " +msgstr "" + +#: sat_frontends/jp/base.py:1156 +msgid "Operation started" +msgstr "" + +#: sat_frontends/jp/base.py:1172 +msgid "Operation successfully finished" +msgstr "" + +#: sat_frontends/jp/base.py:1179 +msgid "Error while doing operation: {e}" +msgstr "" + +#: sat_frontends/jp/base.py:1189 +msgid "trying to use output when use_output has not been set" +msgstr "" + +#: sat_frontends/jp/cmd_account.py:42 +msgid "create a XMPP account" +msgstr "" + +#: sat_frontends/jp/cmd_account.py:47 +msgid "jid to create" +msgstr "" + +#: sat_frontends/jp/cmd_account.py:50 +msgid "password of the account" +msgstr "" + +#: sat_frontends/jp/cmd_account.py:55 +msgid "create a profile to use this account (default: don't create profile)" +msgstr "" + +#: sat_frontends/jp/cmd_account.py:63 +msgid "email (usage depends of XMPP server)" +msgstr "" + +#: sat_frontends/jp/cmd_account.py:69 +msgid "server host (IP address or domain, default: use localhost)" +msgstr "" + +#: sat_frontends/jp/cmd_account.py:76 +msgid "server port (default: {port})" +msgstr "" + +#: sat_frontends/jp/cmd_account.py:107 +msgid "XMPP account created" +msgstr "" + +#: sat_frontends/jp/cmd_account.py:113 +msgid "creating profile" +msgstr "" + +#: sat_frontends/jp/cmd_account.py:129 +msgid "Can't create profile {profile} to associate with jid {jid}: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_account.py:142 +msgid "profile created" +msgstr "" + +#: sat_frontends/jp/cmd_account.py:183 +msgid "change password for XMPP account" +msgstr "" + +#: sat_frontends/jp/cmd_account.py:188 +msgid "new XMPP password" +msgstr "" + +#: sat_frontends/jp/cmd_account.py:207 +msgid "delete a XMPP account" +msgstr "" + +#: sat_frontends/jp/cmd_account.py:215 +msgid "delete account without confirmation" +msgstr "" + +#: sat_frontends/jp/cmd_account.py:236 +msgid "Account deletion cancelled" +msgstr "" + +#: sat_frontends/jp/cmd_adhoc.py:34 +msgid "remote control a software" +msgstr "" + +#: sat_frontends/jp/cmd_adhoc.py:38 +msgid "software name" +msgstr "" + +#: sat_frontends/jp/cmd_adhoc.py:44 +msgid "jids allowed to use the command" +msgstr "" + +#: sat_frontends/jp/cmd_adhoc.py:51 +msgid "groups allowed to use the command" +msgstr "" + +#: sat_frontends/jp/cmd_adhoc.py:57 +msgid "groups that are *NOT* allowed to use the command" +msgstr "" + +#: sat_frontends/jp/cmd_adhoc.py:63 +msgid "jids that are *NOT* allowed to use the command" +msgstr "" + +#: sat_frontends/jp/cmd_adhoc.py:66 +msgid "loop on the commands" +msgstr "" + +#: sat_frontends/jp/cmd_adhoc.py:93 +msgid "No bus name found" +msgstr "" + +#: sat_frontends/jp/cmd_adhoc.py:96 +#, python-format +msgid "Bus name found: [%s]" +msgstr "" + +#: sat_frontends/jp/cmd_adhoc.py:100 +msgid "Command found: (path:{path}, iface: {iface}) [{command}]" +msgstr "" + +#: sat_frontends/jp/cmd_adhoc.py:112 +msgid "run an Ad-Hoc command" +msgstr "" + +#: sat_frontends/jp/cmd_adhoc.py:120 sat_frontends/jp/cmd_message.py:200 +msgid "jid of the service (default: profile's server" +msgstr "" + +#: sat_frontends/jp/cmd_adhoc.py:128 +msgid "submit form/page" +msgstr "" + +#: sat_frontends/jp/cmd_adhoc.py:137 +msgid "field value" +msgstr "" + +#: sat_frontends/jp/cmd_adhoc.py:143 +msgid "node of the command (default: list commands)" +msgstr "" + +#: sat_frontends/jp/cmd_adhoc.py:171 +msgid "list Ad-Hoc commands of a service" +msgstr "" + +#: sat_frontends/jp/cmd_adhoc.py:179 +msgid "jid of the service (default: profile's server)" +msgstr "" + +#: sat_frontends/jp/cmd_adhoc.py:202 +msgid "Ad-hoc commands" +msgstr "" + +#: sat_frontends/jp/cmd_application.py:33 +msgid "list available applications" +msgstr "" + +#: sat_frontends/jp/cmd_application.py:45 +msgid "show applications with this status" +msgstr "" + +#: sat_frontends/jp/cmd_application.py:72 +msgid "start an application" +msgstr "" + +#: sat_frontends/jp/cmd_application.py:78 +msgid "name of the application to start" +msgstr "" + +#: sat_frontends/jp/cmd_application.py:98 +msgid "stop a running application" +msgstr "" + +#: sat_frontends/jp/cmd_application.py:106 +msgid "name of the application to stop" +msgstr "" + +#: sat_frontends/jp/cmd_application.py:111 +msgid "identifier of the instance to stop" +msgstr "" + +#: sat_frontends/jp/cmd_application.py:142 +msgid "show data exposed by a running application" +msgstr "" + +#: sat_frontends/jp/cmd_application.py:150 +msgid "name of the application to check" +msgstr "" + +#: sat_frontends/jp/cmd_application.py:155 +msgid "identifier of the instance to check" +msgstr "" + +#: sat_frontends/jp/cmd_application.py:189 +msgid "manage applications" +msgstr "" + +#: sat_frontends/jp/cmd_avatar.py:38 +msgid "retrieve avatar of an entity" +msgstr "" + +#: sat_frontends/jp/cmd_avatar.py:43 sat_frontends/jp/cmd_identity.py:42 +msgid "do no use cached values" +msgstr "" + +#: sat_frontends/jp/cmd_avatar.py:46 +msgid "show avatar" +msgstr "" + +#: sat_frontends/jp/cmd_avatar.py:48 sat_frontends/jp/cmd_info.py:111 +msgid "entity" +msgstr "" + +#: sat_frontends/jp/cmd_avatar.py:87 +msgid "No avatar found." +msgstr "" + +#: sat_frontends/jp/cmd_avatar.py:103 +msgid "set avatar of the profile or an entity" +msgstr "" + +#: sat_frontends/jp/cmd_avatar.py:108 +msgid "entity whose avatar must be changed" +msgstr "" + +#: sat_frontends/jp/cmd_avatar.py:110 +msgid "path to the image to upload" +msgstr "" + +#: sat_frontends/jp/cmd_avatar.py:116 +msgid "file {path} doesn't exist!" +msgstr "" + +#: sat_frontends/jp/cmd_avatar.py:125 +msgid "avatar has been set" +msgstr "" + +#: sat_frontends/jp/cmd_avatar.py:134 +msgid "avatar uploading/retrieving" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:129 +msgid "unknown syntax requested ({syntax})" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:138 +msgid "title of the item" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:143 +msgid "tag (category) of your item" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:148 +msgid "language of the item (ISO 639 code)" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:158 +msgid "" +"enable comments (default: comments not enabled except if they already " +"exist)" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:168 +msgid "disable comments (will remove comments node if it exist)" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:174 +msgid "syntax to use (default: get profile's default syntax)" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:211 +msgid "publish a new blog item or update an existing one" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:257 +msgid "get blog item(s)" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:267 +msgid "microblog data key(s) to display (default: depend of verbosity)" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:462 +msgid "edit an existing or new blog post" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:473 +msgid "launch a blog preview in parallel" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:478 +msgid "add \"publish: False\" to metadata" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:628 +msgid "You need lxml to edit pretty XHTML" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:662 +msgid "rename an blog item" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:666 sat_frontends/jp/cmd_pubsub.py:996 +msgid "new item id to use" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:690 +msgid "preview a blog content" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:700 +msgid "use inotify to handle preview" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:706 +msgid "path to the content file" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:810 +msgid "File \"{file}\" doesn't exist!" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:898 +msgid "import an external blog" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:905 sat_frontends/jp/cmd_list.py:207 +msgid "importer name, nothing to display importers list" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:907 +msgid "original blog host" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:911 +msgid "do *NOT* upload images (default: do upload images)" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:915 +msgid "do not upload images from this host (default: upload all images)" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:920 +msgid "ignore invalide TLS certificate for uploads" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:929 sat_frontends/jp/cmd_list.py:216 +msgid "importer specific options (see importer description)" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:934 sat_frontends/jp/cmd_list.py:250 +msgid "" +"importer data location (see importer description), nothing to show " +"importer description" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:941 +msgid "Blog upload started" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:944 +msgid "Blog uploaded successfully" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:965 +msgid "" +"\n" +"To redirect old URLs to new ones, put the following lines in your " +"sat.conf file, in [libervia] section:\n" +"\n" +"{conf}" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:973 +msgid "Error while uploading blog: {error_msg}" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:982 sat_frontends/jp/cmd_list.py:274 +msgid "{name} argument can't be used without location argument" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:1037 +msgid "Error while trying to import a blog: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_blog.py:1050 +msgid "blog/microblog management" +msgstr "" + +#: sat_frontends/jp/cmd_bookmarks.py:40 +#, python-format +msgid "storage location (default: %(default)s)" +msgstr "" + +#: sat_frontends/jp/cmd_bookmarks.py:48 +#, python-format +msgid "bookmarks type (default: %(default)s)" +msgstr "" + +#: sat_frontends/jp/cmd_bookmarks.py:54 +msgid "list bookmarks" +msgstr "" + +#: sat_frontends/jp/cmd_bookmarks.py:94 +msgid "remove a bookmark" +msgstr "" + +#: sat_frontends/jp/cmd_bookmarks.py:99 sat_frontends/jp/cmd_bookmarks.py:131 +msgid "jid (for muc bookmark) or url of to remove" +msgstr "" + +#: sat_frontends/jp/cmd_bookmarks.py:105 +msgid "delete bookmark without confirmation" +msgstr "" + +#: sat_frontends/jp/cmd_bookmarks.py:110 +msgid "Are you sure to delete this bookmark?" +msgstr "" + +#: sat_frontends/jp/cmd_bookmarks.py:117 +msgid "can't delete bookmark: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_bookmarks.py:120 +msgid "bookmark deleted" +msgstr "" + +#: sat_frontends/jp/cmd_bookmarks.py:133 +msgid "bookmark name" +msgstr "" + +#: sat_frontends/jp/cmd_bookmarks.py:134 +msgid "MUC specific options" +msgstr "" + +#: sat_frontends/jp/cmd_bookmarks.py:135 +msgid "nickname" +msgstr "" + +#: sat_frontends/jp/cmd_bookmarks.py:140 +msgid "join room on profile connection" +msgstr "" + +#: sat_frontends/jp/cmd_bookmarks.py:145 +msgid "You can't use --autojoin or --nick with --type url" +msgstr "" + +#: sat_frontends/jp/cmd_bookmarks.py:165 +msgid "bookmark successfully added" +msgstr "" + +#: sat_frontends/jp/cmd_bookmarks.py:174 +msgid "manage bookmarks" +msgstr "" + +#: sat_frontends/jp/cmd_debug.py:49 +msgid "call a bridge method" +msgstr "" + +#: sat_frontends/jp/cmd_debug.py:54 +msgid "name of the method to execute" +msgstr "" + +#: sat_frontends/jp/cmd_debug.py:56 +msgid "argument of the method" +msgstr "" + +#: sat_frontends/jp/cmd_debug.py:79 +msgid "Error while executing {method}: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_debug.py:94 +msgid "send a fake signal from backend" +msgstr "" + +#: sat_frontends/jp/cmd_debug.py:99 +msgid "name of the signal to send" +msgstr "" + +#: sat_frontends/jp/cmd_debug.py:100 +msgid "argument of the signal" +msgstr "" + +#: sat_frontends/jp/cmd_debug.py:112 +msgid "Can't send fake signal: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_debug.py:123 +msgid "bridge s(t)imulation" +msgstr "" + +#: sat_frontends/jp/cmd_debug.py:135 +msgid "monitor XML stream" +msgstr "" + +#: sat_frontends/jp/cmd_debug.py:144 +msgid "stream direction filter" +msgstr "" + +#: sat_frontends/jp/cmd_debug.py:195 +msgid "print colours used with your background" +msgstr "" + +#: sat_frontends/jp/cmd_debug.py:226 +msgid "debugging tools" +msgstr "" + +#: sat_frontends/jp/cmd_encryption.py:38 +msgid "show available encryption algorithms" +msgstr "" + +#: sat_frontends/jp/cmd_encryption.py:45 +msgid "No encryption plugin registered!" +msgstr "" + +#: sat_frontends/jp/cmd_encryption.py:47 +msgid "Following encryption algorithms are available: {algos}" +msgstr "" + +#: sat_frontends/jp/cmd_encryption.py:68 +msgid "get encryption session data" +msgstr "" + +#: sat_frontends/jp/cmd_encryption.py:73 +msgid "jid of the entity to check" +msgstr "" + +#: sat_frontends/jp/cmd_encryption.py:99 +msgid "start encrypted session with an entity" +msgstr "" + +#: sat_frontends/jp/cmd_encryption.py:105 sat_frontends/jp/cmd_message.py:77 +msgid "don't replace encryption algorithm if an other one is already used" +msgstr "" + +#: sat_frontends/jp/cmd_encryption.py:108 +msgid "algorithm name (DEFAULT: choose automatically)" +msgstr "" + +#: sat_frontends/jp/cmd_encryption.py:111 +msgid "algorithm namespace (DEFAULT: choose automatically)" +msgstr "" + +#: sat_frontends/jp/cmd_encryption.py:114 +#: sat_frontends/jp/cmd_encryption.py:153 +#: sat_frontends/jp/cmd_encryption.py:178 +msgid "jid of the entity to stop encrypted session with" +msgstr "" + +#: sat_frontends/jp/cmd_encryption.py:148 +msgid "stop encrypted session with an entity" +msgstr "" + +#: sat_frontends/jp/cmd_encryption.py:173 +msgid "get UI to manage trust" +msgstr "" + +#: sat_frontends/jp/cmd_encryption.py:182 +msgid "algorithm name (DEFAULT: current algorithm)" +msgstr "" + +#: sat_frontends/jp/cmd_encryption.py:185 +msgid "algorithm namespace (DEFAULT: current algorithm)" +msgstr "" + +#: sat_frontends/jp/cmd_encryption.py:220 +msgid "trust manangement" +msgstr "" + +#: sat_frontends/jp/cmd_encryption.py:230 +msgid "encryption sessions handling" +msgstr "" + +#: sat_frontends/jp/cmd_event.py:47 +msgid "get list of registered events" +msgstr "" + +#: sat_frontends/jp/cmd_event.py:78 +msgid "get event data" +msgstr "" + +#: sat_frontends/jp/cmd_event.py:108 +msgid "ID of the PubSub Item" +msgstr "" + +#: sat_frontends/jp/cmd_event.py:110 +msgid "date of the event" +msgstr "" + +#: sat_frontends/jp/cmd_event.py:118 sat_frontends/jp/cmd_event.py:257 +#: sat_frontends/jp/cmd_pubsub.py:129 +msgid "configuration field to set" +msgstr "" + +#: sat_frontends/jp/cmd_event.py:150 +msgid "create or replace event" +msgstr "" + +#: sat_frontends/jp/cmd_event.py:170 +msgid "Event created successfuly on node {node}" +msgstr "" + +#: sat_frontends/jp/cmd_event.py:181 +msgid "modify an existing event" +msgstr "" + +#: sat_frontends/jp/cmd_event.py:214 sat_frontends/jp/cmd_event.py:288 +msgid "get event attendance" +msgstr "" + +#: sat_frontends/jp/cmd_event.py:219 +msgid "bare jid of the invitee" +msgstr "" + +#: sat_frontends/jp/cmd_event.py:246 +msgid "set event attendance" +msgstr "" + +#: sat_frontends/jp/cmd_event.py:296 +msgid "show missing people (invited but no R.S.V.P. so far)" +msgstr "" + +#: sat_frontends/jp/cmd_event.py:302 +msgid "don't show people which gave R.S.V.P." +msgstr "" + +#: sat_frontends/jp/cmd_event.py:371 +msgid "Attendees: " +msgstr "" + +#: sat_frontends/jp/cmd_event.py:374 +msgid " (" +msgstr "" + +#: sat_frontends/jp/cmd_event.py:376 +msgid "yes: " +msgstr "" + +#: sat_frontends/jp/cmd_event.py:379 +msgid ", maybe: " +msgstr "" + +#: sat_frontends/jp/cmd_event.py:383 +msgid "no: " +msgstr "" + +#: sat_frontends/jp/cmd_event.py:390 +msgid "confirmed guests: " +msgstr "" + +#: sat_frontends/jp/cmd_event.py:395 +msgid "unconfirmed guests: " +msgstr "" + +#: sat_frontends/jp/cmd_event.py:401 +msgid "total: " +msgstr "" + +#: sat_frontends/jp/cmd_event.py:408 +msgid "missing people (no reply): " +msgstr "" + +#: sat_frontends/jp/cmd_event.py:416 +msgid "you need to use --missing if you use --no-rsvp" +msgstr "" + +#: sat_frontends/jp/cmd_event.py:489 +msgid "invite someone to the event through email" +msgstr "" + +#: sat_frontends/jp/cmd_event.py:568 +msgid "manage invities" +msgstr "" + +#: sat_frontends/jp/cmd_event.py:577 +msgid "event management" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:50 +msgid "send a file to a contact" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:55 +msgid "a list of file" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:57 sat_frontends/jp/cmd_file.py:191 +#: sat_frontends/jp/cmd_message.py:82 sat_frontends/jp/cmd_pipe.py:42 +msgid "the destination jid" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:59 +msgid "make a bzip2 tarball" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:79 sat_frontends/jp/cmd_file.py:236 +#: sat_frontends/jp/cmd_file.py:330 +msgid "File copy started" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:82 +msgid "File sent successfully" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:86 +msgid "The file has been refused by your contact" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:88 +msgid "Error while sending file: {}" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:97 +msgid "File request sent to {jid}" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:102 +msgid "Can't send file to {jid}" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:109 +msgid "file {file_} doesn't exist!" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:114 +msgid "{file_} is a dir! Please send files inside or use compression" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:129 +msgid "bz2 is an experimental option, use with caution" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:131 +msgid "Starting compression, please wait..." +msgstr "" + +#: sat_frontends/jp/cmd_file.py:138 +msgid "Adding {}" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:141 +msgid "Done !" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:183 +msgid "request a file from a contact" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:195 +msgid "" +"destination path where the file will be saved (default: " +"[current_dir]/[name|hash])" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:204 +msgid "name of the file" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:210 +msgid "hash of the file" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:216 +msgid "hash algorithm use for --hash (default: sha-256)" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:232 sat_frontends/jp/cmd_file.py:476 +msgid "overwrite existing file without confirmation" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:239 sat_frontends/jp/cmd_file.py:333 +msgid "File received successfully" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:243 +msgid "The file request has been refused" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:245 +msgid "Error while requesting file: {}" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:249 +msgid "at least one of --name or --hash must be provided" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:258 sat_frontends/jp/cmd_file.py:510 +msgid "File {path} already exists! Do you want to overwrite?" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:261 +msgid "file request cancelled" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:280 +msgid "can't request file: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:293 +msgid "wait for a file to be sent by a contact" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:306 +msgid "jids accepted (accept everything if none is specified)" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:312 +msgid "accept multiple files (you'll have to stop manually)" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:318 +msgid "force overwritting of existing files (/!\\ name is choosed by sender)" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:326 +msgid "destination path (default: working directory)" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:337 +msgid "hash checked: {metadata['hash_algo']}:{metadata['hash']}" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:340 +msgid "hash is checked but hash value is missing" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:342 +msgid "hash can't be verified" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:345 +msgid "Error while receiving file: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:354 sat_frontends/jp/cmd_pipe.py:111 +msgid "Action has no XMLUI" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:359 sat_frontends/jp/cmd_pipe.py:115 +msgid "Invalid XMLUI received" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:369 sat_frontends/jp/cmd_pipe.py:126 +msgid "Ignoring action without from_jid data" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:374 sat_frontends/jp/cmd_file.py:395 +msgid "ignoring action without progress id" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:379 +msgid "File refused because overwrite is needed" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:397 +msgid "Overwriting needed" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:401 +msgid "Overwrite accepted" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:403 +msgid "Refused to overwrite" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:417 +msgid "invalid \"from_jid\" value received, ignoring: {value}" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:424 +msgid "ignoring action without \"from_jid\" value" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:426 +msgid "Confirmation needed for request from an entity not in roster" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:431 +msgid "Sender confirmed because she or he is explicitly expected" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:439 +msgid "Session refused for {from_jid}" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:446 +msgid "Given path is not a directory !" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:450 +msgid "waiting for incoming file request" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:461 +msgid "download a file from URI" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:470 +msgid "destination file (DEFAULT: filename from URL)" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:478 +msgid "URI of the file to retrieve" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:481 +msgid "File download started" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:484 +msgid "File downloaded successfully" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:487 +msgid "Error while downloading file: {}" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:513 +msgid "file download cancelled" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:534 +msgid "upload a file" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:542 +msgid "encrypt file using AES-GCM" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:544 +msgid "file to upload" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:548 +msgid "jid of upload component (nothing to autodetect)" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:553 +msgid "ignore invalide TLS certificate (/!\\ Dangerous /!\\)" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:557 +msgid "File upload started" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:560 +msgid "File uploaded successfully" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:566 +msgid "URL to retrieve the file:" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:571 +msgid "Error while uploading file: {}" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:593 +msgid "file {file_} doesn't exist !" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:597 +msgid "{file_} is a dir! Can't upload a dir" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:633 +msgid "set affiliations for a shared file/directory" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:641 sat_frontends/jp/cmd_file.py:695 +#: sat_frontends/jp/cmd_file.py:747 sat_frontends/jp/cmd_file.py:801 +#: sat_frontends/jp/cmd_file.py:1002 +msgid "namespace of the repository" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:647 sat_frontends/jp/cmd_file.py:701 +#: sat_frontends/jp/cmd_file.py:753 sat_frontends/jp/cmd_file.py:807 +#: sat_frontends/jp/cmd_file.py:1007 +msgid "path to the repository" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:657 sat_frontends/jp/cmd_pubsub.py:453 +msgid "entity/affiliation couple(s)" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:661 sat_frontends/jp/cmd_file.py:767 +msgid "jid of file sharing entity" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:687 +msgid "retrieve affiliations of a shared file/directory" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:705 sat_frontends/jp/cmd_file.py:811 +msgid "jid of sharing entity" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:729 +msgid "affiliations management" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:739 +msgid "set configuration for a shared file/directory" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:763 sat_frontends/jp/cmd_pubsub.py:282 +msgid "configuration field to set (required)" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:793 +msgid "retrieve configuration of a shared file/directory" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:838 +msgid "file sharing node configuration" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:850 +msgid "retrieve files shared by an entity" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:859 +msgid "path to the directory containing the files" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:865 +msgid "jid of sharing entity (nothing to check our own jid)" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:874 +msgid "unknown file type: {type}" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:923 +msgid "share a file or directory" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:931 +msgid "virtual name to use (default: use directory/file name)" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:941 +msgid "jid of contacts allowed to retrieve the files" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:946 +msgid "share publicly the file(s) (/!\\ *everybody* will be able to access them)" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:953 +msgid "path to a file or directory to share" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:978 +msgid "{path} shared under the name \"{name}\"" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:988 +msgid "send invitation for a shared repository" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:996 +msgid "name of the repository" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:1014 +msgid "type of the repository" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:1019 +msgid "https URL of a image to use as thumbnail" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:1023 +msgid "jid of the file sharing service hosting the repository" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:1027 +msgid "jid of the person to invite" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:1035 +msgid "only http(s) links are allowed with --thumbnail" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:1053 +msgid "invitation sent to {jid}" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:1068 +msgid "files sharing management" +msgstr "" + +#: sat_frontends/jp/cmd_file.py:1077 +msgid "files sending/receiving/management" +msgstr "" + +#: sat_frontends/jp/cmd_forums.py:45 +msgid "edit forums" +msgstr "" + +#: sat_frontends/jp/cmd_forums.py:54 sat_frontends/jp/cmd_forums.py:123 +msgid "forum key (DEFAULT: default forums)" +msgstr "" + +#: sat_frontends/jp/cmd_forums.py:74 +msgid "forums have been edited" +msgstr "" + +#: sat_frontends/jp/cmd_forums.py:115 +msgid "get forums structure" +msgstr "" + +#: sat_frontends/jp/cmd_forums.py:168 sat_frontends/jp/cmd_pubsub.py:733 +msgid "no schema found" +msgstr "" + +#: sat_frontends/jp/cmd_forums.py:180 +msgid "Forums structure edition" +msgstr "" + +#: sat_frontends/jp/cmd_identity.py:37 +msgid "get identity data" +msgstr "" + +#: sat_frontends/jp/cmd_identity.py:45 +msgid "entity to check" +msgstr "" + +#: sat_frontends/jp/cmd_identity.py:68 +msgid "update identity data" +msgstr "" + +#: sat_frontends/jp/cmd_identity.py:77 +msgid "nicknames of the entity" +msgstr "" + +#: sat_frontends/jp/cmd_identity.py:101 +msgid "identity management" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:38 +msgid "service discovery" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:42 +msgid "entity to discover" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:49 +msgid "type of data to discover" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:51 +msgid "node to use" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:57 +msgid "ignore cache" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:69 +msgid "category" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:111 +msgid "node" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:116 +msgid "Features" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:118 +msgid "Identities" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:120 +msgid "Extensions" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:122 +msgid "Items" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:151 sat_frontends/jp/cmd_info.py:166 +msgid "error while doing discovery: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:190 +msgid "software version" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:193 sat_frontends/jp/cmd_info.py:258 +msgid "Entity to request" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:201 +msgid "error while trying to get version: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:207 +msgid "Software name: {name}" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:209 +msgid "Software version: {version}" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:211 +msgid "Operating System: {os}" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:225 +msgid "running session" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:243 +msgid "Error getting session infos: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:253 +msgid "devices of an entity" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:267 +msgid "Error getting devices infos: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_info.py:283 +msgid "Get various pieces of information on entities" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:61 +msgid "encoding of the input data" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:69 +msgid "standard input" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:77 +msgid "short option" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:85 +msgid "long option" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:93 +msgid "positional argument" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:101 +msgid "ignore value" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:107 +msgid "don't actually run commands but echo what would be launched" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:110 +msgid "log stdout to FILE" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:113 +msgid "log stderr to FILE" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:128 sat_frontends/jp/cmd_input.py:193 +msgid "arguments in input data and in arguments sequence don't match" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:155 sat_frontends/jp/cmd_input.py:207 +msgid "values: " +msgstr "" + +#: sat_frontends/jp/cmd_input.py:161 +msgid "**SKIPPING**\n" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:184 +msgid "Invalid argument, an option type is expected, got {type_}:{name}" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:199 +msgid "command {idx}" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:252 sat_frontends/primitivus/xmlui.py:461 +msgid "OK" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:254 +msgid "FAILED" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:274 +msgid "comma-separated values" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:283 +msgid "starting row (previous ones will be ignored)" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:291 +msgid "split value in several options" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:299 +msgid "action to do on empty value ({choices})" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:314 +msgid "--empty value must be one of {choices}" +msgstr "" + +#: sat_frontends/jp/cmd_input.py:349 +msgid "launch command with external input" +msgstr "" + +#: sat_frontends/jp/cmd_invitation.py:38 +msgid "create and send an invitation" +msgstr "" + +#: sat_frontends/jp/cmd_invitation.py:127 +msgid "you need to specify an email address to send email invitation" +msgstr "" + +#: sat_frontends/jp/cmd_invitation.py:161 +msgid "get invitation data" +msgstr "" + +#: sat_frontends/jp/cmd_invitation.py:165 +#: sat_frontends/jp/cmd_invitation.py:225 +#: sat_frontends/jp/cmd_invitation.py:289 +msgid "invitation UUID" +msgstr "" + +#: sat_frontends/jp/cmd_invitation.py:170 +msgid "start profile session and retrieve jid" +msgstr "" + +#: sat_frontends/jp/cmd_invitation.py:185 +msgid "can't get invitation data: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_invitation.py:198 +msgid "can't start session: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_invitation.py:208 +msgid "can't retrieve jid: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_invitation.py:221 +msgid "delete guest account" +msgstr "" + +#: sat_frontends/jp/cmd_invitation.py:233 +msgid "can't delete guest account: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_invitation.py:242 +msgid "modify existing invitation" +msgstr "" + +#: sat_frontends/jp/cmd_invitation.py:299 +msgid "you can't set {arg_name} in both optional argument and extra" +msgstr "" + +#: sat_frontends/jp/cmd_invitation.py:314 +msgid "invitations have been modified successfuly" +msgstr "" + +#: sat_frontends/jp/cmd_invitation.py:328 +msgid "list invitations data" +msgstr "" + +#: sat_frontends/jp/cmd_invitation.py:346 +msgid "return only invitations linked to this profile" +msgstr "" + +#: sat_frontends/jp/cmd_invitation.py:370 +msgid "invitation of user(s) without XMPP account" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:43 sat_frontends/jp/cmd_list.py:81 +#: sat_frontends/jp/cmd_list.py:150 sat_frontends/jp/cmd_merge_request.py:39 +#: sat_frontends/jp/cmd_merge_request.py:124 +#: sat_frontends/jp/cmd_merge_request.py:169 +msgid "auto" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:45 +msgid "get lists" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:82 +msgid "set a list item" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:94 +msgid "field(s) to set (required)" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:101 +msgid "update existing item instead of replacing it (DEFAULT: auto)" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:107 +msgid "id, URL of the item to update, or nothing for new item" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:151 +msgid "delete a list item" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:156 sat_frontends/jp/cmd_pubsub.py:884 +#: sat_frontends/jp/cmd_roster.py:135 +msgid "delete without confirmation" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:159 sat_frontends/jp/cmd_pubsub.py:887 +msgid "notify deletion" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:163 +msgid "id of the item to delete" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:169 +msgid "You need to specify a list item to delete" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:171 +msgid "Are you sure to delete list item {item_id} ?" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:174 sat_frontends/jp/cmd_pubsub.py:897 +msgid "item deletion cancelled" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:184 sat_frontends/jp/cmd_pubsub.py:907 +msgid "can't delete item: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:187 sat_frontends/jp/cmd_pubsub.py:910 +msgid "item {item} has been deleted" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:200 +msgid "import tickets from external software/dataset" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:225 +msgid "" +"specified field in import data will be put in dest field (default: use " +"same field name, or ignore if it doesn't exist)" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:235 +msgid "PubSub service where the items must be uploaded (default: server)" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:242 +msgid "PubSub node where the items must be uploaded (default: tickets' defaults)" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:257 +msgid "Tickets upload started" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:260 +msgid "Tickets uploaded successfully" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:264 +msgid "Error while uploading tickets: {error_msg}" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:319 +msgid "" +"fields_map must be specified either preencoded in --option or using " +"--map, but not both at the same time" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:337 +msgid "Error while trying to import tickets: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_list.py:350 +msgid "pubsub lists handling" +msgstr "" + +#: sat_frontends/jp/cmd_merge_request.py:40 +msgid "publish or update a merge request" +msgstr "" + +#: sat_frontends/jp/cmd_merge_request.py:48 +msgid "id or URL of the request to update, or nothing for a new one" +msgstr "" + +#: sat_frontends/jp/cmd_merge_request.py:55 +#: sat_frontends/jp/cmd_merge_request.py:179 +msgid "path of the repository (DEFAULT: current directory)" +msgstr "" + +#: sat_frontends/jp/cmd_merge_request.py:61 +msgid "publish merge request without confirmation" +msgstr "" + +#: sat_frontends/jp/cmd_merge_request.py:68 +msgid "labels to categorize your request" +msgstr "" + +#: sat_frontends/jp/cmd_merge_request.py:75 +msgid "" +"You are going to publish your changes to service [{service}], are you " +"sure ?" +msgstr "" + +#: sat_frontends/jp/cmd_merge_request.py:80 +msgid "merge request publication cancelled" +msgstr "" + +#: sat_frontends/jp/cmd_merge_request.py:105 +msgid "Merge request published at {published_id}" +msgstr "" + +#: sat_frontends/jp/cmd_merge_request.py:110 +msgid "Merge request published" +msgstr "" + +#: sat_frontends/jp/cmd_merge_request.py:125 +msgid "get a merge request" +msgstr "" + +#: sat_frontends/jp/cmd_merge_request.py:170 +msgid "import a merge request" +msgstr "" + +#: sat_frontends/jp/cmd_merge_request.py:209 +msgid "merge-request management" +msgstr "" + +#: sat_frontends/jp/cmd_message.py:34 +msgid "send a message to a contact" +msgstr "" + +#: sat_frontends/jp/cmd_message.py:38 +msgid "language of the message" +msgstr "" + +#: sat_frontends/jp/cmd_message.py:44 +msgid "" +"separate xmpp messages: send one message per line instead of one message " +"alone." +msgstr "" + +#: sat_frontends/jp/cmd_message.py:53 +msgid "add a new line at the beginning of the input (usefull for ascii art ;))" +msgstr "" + +#: sat_frontends/jp/cmd_message.py:60 +msgid "subject of the message" +msgstr "" + +#: sat_frontends/jp/cmd_message.py:63 +msgid "language of subject" +msgstr "" + +#: sat_frontends/jp/cmd_message.py:70 +msgid "type of the message" +msgstr "" + +#: sat_frontends/jp/cmd_message.py:73 +msgid "encrypt message using given algorithm" +msgstr "" + +#: sat_frontends/jp/cmd_message.py:79 +msgid "XHTML body" +msgstr "" + +#: sat_frontends/jp/cmd_message.py:80 +msgid "rich body" +msgstr "" + +#: sat_frontends/jp/cmd_message.py:195 +msgid "query archives using MAM" +msgstr "" + +#: sat_frontends/jp/cmd_message.py:203 +msgid "start fetching archive from this date (default: from the beginning)" +msgstr "" + +#: sat_frontends/jp/cmd_message.py:207 +msgid "end fetching archive after this date (default: no limit)" +msgstr "" + +#: sat_frontends/jp/cmd_message.py:210 +msgid "retrieve only archives with this jid" +msgstr "" + +#: sat_frontends/jp/cmd_message.py:213 +msgid "maximum number of items to retrieve, using RSM (default: 20))" +msgstr "" + +#: sat_frontends/jp/cmd_message.py:276 +msgid "messages handling" +msgstr "" + +#: sat_frontends/jp/cmd_param.py:32 +msgid "get a parameter value" +msgstr "" + +#: sat_frontends/jp/cmd_param.py:37 sat_frontends/jp/cmd_param.py:94 +msgid "category of the parameter" +msgstr "" + +#: sat_frontends/jp/cmd_param.py:39 sat_frontends/jp/cmd_param.py:95 +#: sat_frontends/jp/cmd_param.py:96 +msgid "name of the parameter" +msgstr "" + +#: sat_frontends/jp/cmd_param.py:45 +msgid "name of the attribute to get" +msgstr "" + +#: sat_frontends/jp/cmd_param.py:48 sat_frontends/jp/cmd_param.py:98 +msgid "security limit" +msgstr "" + +#: sat_frontends/jp/cmd_param.py:62 +msgid "can't find requested parameters: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_param.py:79 +msgid "can't find requested parameter: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_param.py:90 +msgid "set a parameter value" +msgstr "" + +#: sat_frontends/jp/cmd_param.py:111 +msgid "can't set requested parameter: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_param.py:125 +msgid "save parameters template to xml file" +msgstr "" + +#: sat_frontends/jp/cmd_param.py:129 +msgid "output file" +msgstr "" + +#: sat_frontends/jp/cmd_param.py:136 +msgid "can't save parameters to file: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_param.py:140 +msgid "parameters saved to file {filename}" +msgstr "" + +#: sat_frontends/jp/cmd_param.py:155 +msgid "load parameters template from xml file" +msgstr "" + +#: sat_frontends/jp/cmd_param.py:159 +msgid "input file" +msgstr "" + +#: sat_frontends/jp/cmd_param.py:166 +msgid "can't load parameters from file: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_param.py:170 +msgid "parameters loaded from file {filename}" +msgstr "" + +#: sat_frontends/jp/cmd_param.py:182 +msgid "Save/load parameters template" +msgstr "" + +#: sat_frontends/jp/cmd_ping.py:29 +msgid "ping XMPP entity" +msgstr "" + +#: sat_frontends/jp/cmd_ping.py:32 +msgid "jid to ping" +msgstr "" + +#: sat_frontends/jp/cmd_ping.py:34 +msgid "output delay only (in s)" +msgstr "" + +#: sat_frontends/jp/cmd_ping.py:41 +msgid "can't do the ping: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_pipe.py:38 +msgid "send a pipe a stream" +msgstr "" + +#: sat_frontends/jp/cmd_pipe.py:97 +msgid "receive a pipe stream" +msgstr "" + +#: sat_frontends/jp/cmd_pipe.py:104 +msgid "Jids accepted (none means \"accept everything\")" +msgstr "" + +#: sat_frontends/jp/cmd_pipe.py:159 +msgid "stream piping through XMPP" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:33 +msgid "The name of the profile" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:51 +msgid "You need to use either --connect or --start-session" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:78 +msgid "the name of the profile" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:81 +msgid "the password of the profile" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:83 sat_frontends/jp/cmd_profile.py:238 +msgid "the jid of the profile" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:86 +msgid "the password of the XMPP account (use profile password if not specified)" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:93 sat_frontends/jp/cmd_profile.py:247 +msgid "connect this profile automatically when backend starts" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:97 +msgid "set to component import name (entry point) if this is a component" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:154 +msgid "delete profile without confirmation" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:174 +msgid "get information about a profile" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:180 +msgid "show the XMPP password IN CLEAR TEXT" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:184 +msgid "XMPP password" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:185 +msgid "autoconnect (backend)" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:209 +msgid "get clients profiles only" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:229 +msgid "modify an existing profile" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:234 +msgid "change the password of the profile" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:237 +msgid "disable profile password (dangerous!)" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:240 +msgid "change the password of the XMPP account" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:243 +msgid "set as default profile" +msgstr "" + +#: sat_frontends/jp/cmd_profile.py:280 +msgid "profile commands" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:59 +msgid "retrieve node configuration" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:68 +msgid "data key to filter" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:116 +msgid "create a node" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:135 sat_frontends/jp/cmd_pubsub.py:288 +msgid "don't prepend \"pubsub#\" prefix to field names" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:158 +msgid "can't create node: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:162 +msgid "node created successfully: " +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:176 +msgid "purge a node (i.e. remove all items from it)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:184 +msgid "purge node without confirmation" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:190 +msgid "" +"Are you sure to purge PEP node [{node}]? This will delete ALL items from " +"it!" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:195 +msgid "" +"Are you sure to delete node [{node}] on service [{service}]? This will " +"delete ALL items from it!" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:199 +msgid "node purge cancelled" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:208 +msgid "can't purge node: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:211 +msgid "node [{node}] purged successfully" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:223 +msgid "delete a node" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:231 +msgid "delete node without confirmation" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:237 +msgid "Are you sure to delete PEP node [{node}] ?" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:241 +msgid "Are you sure to delete node [{node}] on service [{service}]?" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:244 +msgid "node deletion cancelled" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:256 +msgid "node [{node}] deleted successfully" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:270 +msgid "set node configuration" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:309 +msgid "node configuration successful" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:320 +msgid "import raw XML to a node" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:327 sat_frontends/jp/cmd_pubsub.py:1608 +msgid "do a pubsub admin request, needed to change publisher" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:332 +msgid "" +"path to the XML file with data to import. The file must contain whole XML" +" of each item to import." +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:359 +msgid "You are not using list of pubsub items, we can't import this file" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:370 +msgid "Items are imported without using admin mode, publisher can't be changed" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:391 +msgid "items published with id(s) {items_ids}" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:396 sat_frontends/jp/cmd_pubsub.py:1641 +msgid "items published" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:409 +msgid "retrieve node affiliations (for node owner)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:439 +msgid "set affiliations (for node owner)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:469 +msgid "affiliations have been set" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:481 +msgid "set or retrieve node affiliations" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:494 +msgid "retrieve node subscriptions (for node owner)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:532 +msgid "subscription must be one of {}" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:548 +msgid "set/modify subscriptions (for node owner)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:563 +msgid "entity/subscription couple(s)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:578 +msgid "subscriptions have been set" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:590 +msgid "get or modify node subscriptions" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:603 +msgid "set/replace a schema" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:607 +msgid "schema to set (must be XML)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:621 sat_frontends/jp/cmd_pubsub.py:656 +msgid "schema has been set" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:637 +msgid "edit a schema" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:709 +msgid "get schema" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:742 +msgid "data schema manipulation" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:761 +msgid "node handling" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:774 +msgid "publish a new item or update an existing one" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:783 +msgid "id, URL of the item to update, keyword, or nothing for new item" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:805 +msgid "can't send item: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:827 +msgid "get pubsub item(s)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:835 +msgid "subscription id" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:879 +msgid "delete an item" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:892 +msgid "You need to specify an item to delete" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:894 +msgid "Are you sure to delete item {item_id} ?" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:924 +msgid "edit an existing or new pubsub item" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:968 +msgid "Item has not payload" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:992 +msgid "rename a pubsub item" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1024 +msgid "subscribe to a node" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1039 +msgid "can't subscribe to node: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1042 +msgid "subscription done" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1044 +msgid "subscription id: {sub_id}" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1059 +msgid "unsubscribe from a node" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1073 +msgid "can't unsubscribe from node: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1076 +msgid "subscription removed" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1088 +msgid "retrieve all subscriptions on a service" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1102 +msgid "can't retrieve subscriptions: {e}" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1117 +msgid "retrieve all affiliations on a service" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1160 +msgid "search items corresponding to filters" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1185 +msgid "maximum depth of recursion (will search linked nodes if > 0, DEFAULT: 0)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1197 +msgid "maximum number of items to get per node ({} to get all items, DEFAULT: 30)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1207 +msgid "namespace to use for xpath" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1216 +msgid "filters" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1217 +msgid "only items corresponding to following filters will be kept" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1226 +msgid "full text filter, item must contain this string (XML included)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1235 +msgid "like --text but using a regular expression" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1244 +msgid "filter items which has elements matching this xpath" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1253 +msgid "" +"Python expression which much return a bool (True to keep item, False to " +"reject it). \"item\" is raw text item, \"item_xml\" is lxml's " +"etree.Element" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1266 +msgid "filters flags" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1267 +msgid "filters modifiers (change behaviour of following filters)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1278 +msgid "(don't) ignore case in following filters (DEFAULT: case sensitive)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1289 +msgid "(don't) invert effect of following filters (DEFAULT: don't invert)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1300 +msgid "(don't) use DOTALL option for regex (DEFAULT: don't use)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1311 +msgid "keep only the matching part of the item" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1320 +msgid "action to do on found items (DEFAULT: print)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1383 +msgid "" +"item doesn't looks like XML, you have probably used --only-matching " +"somewhere before and we have no more XML" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1420 +msgid "--only-matching used with fixed --text string, are you sure?" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1441 +msgid "can't use xpath: {reason}" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1476 +msgid "unknown filter type {type}" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1534 +msgid "executed command failed with exit code {ret}" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1566 +msgid "Command can only be used with {actions} actions" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1572 +msgid "you need to specify a command to execute" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1575 +msgid "empty node is not handled yet" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1596 +msgid "modify items of a node using an external command/script" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1603 +msgid "apply transformation (DEFAULT: do a dry run)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1614 +msgid "if command return a non zero exit code, ignore the item and continue" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1622 +msgid "get all items by looping over all pages using RSM" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1626 +msgid "" +"path to the command to use. Will be called repetitivly with an item as " +"input. Output (full item XML) will be used as new one. Return \"DELETE\" " +"string to delete the item, and \"SKIP\" to ignore it" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1636 +msgid "items published with ids {item_ids}" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1659 +msgid "Can't retrieve all items, RSM metadata not available" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1664 +msgid "Can't retrieve all items, bad RSM metadata: {msg}" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1670 +msgid "All items transformed" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1674 +msgid "Retrieving next page ({page_idx}/{page_total})" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1712 +msgid "Duplicate found on item {item_id}, we have probably handled all items." +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1749 +msgid "Deleting item {item_id}" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1766 +msgid "Skipping item {item_id}" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1860 sat_frontends/jp/cmd_uri.py:53 +msgid "build URI" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1868 +msgid "profile (used when no server is specified)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1908 +msgid "create a Pubsub hook" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1917 +msgid "hook type" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1923 +msgid "make hook persistent across restarts" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1927 +msgid "argument of the hook (depend of the type)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1936 +msgid "{path} is not a file" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1965 +msgid "delete a Pubsub hook" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1974 +msgid "hook type to remove, empty to remove all (DEFAULT: remove all)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:1981 +msgid "argument of the hook to remove, empty to remove all (DEFAULT: remove all)" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:2001 +msgid "{nb_deleted} hook(s) have been deleted" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:2013 +msgid "list hooks of a profile" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:2029 +msgid "No hook found." +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:2043 +msgid "trigger action on Pubsub notifications" +msgstr "" + +#: sat_frontends/jp/cmd_pubsub.py:2067 +msgid "PubSub nodes/items management" +msgstr "" + +#: sat_frontends/jp/cmd_roster.py:36 +msgid "retrieve the roster entities" +msgstr "" + +#: sat_frontends/jp/cmd_roster.py:89 +msgid "set metadata for a roster entity" +msgstr "" + +#: sat_frontends/jp/cmd_roster.py:93 +msgid "name to use for this entity" +msgstr "" + +#: sat_frontends/jp/cmd_roster.py:96 +msgid "groups for this entity" +msgstr "" + +#: sat_frontends/jp/cmd_roster.py:99 +msgid "replace all metadata instead of adding them" +msgstr "" + +#: sat_frontends/jp/cmd_roster.py:101 sat_frontends/jp/cmd_roster.py:138 +msgid "jid of the roster entity" +msgstr "" + +#: sat_frontends/jp/cmd_roster.py:131 +msgid "remove an entity from roster" +msgstr "" + +#: sat_frontends/jp/cmd_roster.py:142 +msgid "Are you sure to delete {entity} fril your roster?" +msgstr "" + +#: sat_frontends/jp/cmd_roster.py:145 +msgid "entity deletion cancelled" +msgstr "" + +#: sat_frontends/jp/cmd_roster.py:158 +msgid "Show statistics about a roster" +msgstr "" + +#: sat_frontends/jp/cmd_roster.py:226 +msgid "purge the roster from its contacts with no subscription" +msgstr "" + +#: sat_frontends/jp/cmd_roster.py:231 +msgid "also purge contacts with no 'from' subscription" +msgstr "" + +#: sat_frontends/jp/cmd_roster.py:234 +msgid "also purge contacts with no 'to' subscription" +msgstr "" + +#: sat_frontends/jp/cmd_roster.py:306 +msgid "do a full resynchronisation of roster with server" +msgstr "" + +#: sat_frontends/jp/cmd_roster.py:318 +msgid "Roster resynchronized" +msgstr "" + +#: sat_frontends/jp/cmd_roster.py:327 +msgid "Manage an entity's roster" +msgstr "" + +#: sat_frontends/jp/cmd_shell.py:33 +msgid "" +"Welcome to {app_name} shell, the Salut à Toi shell !\n" +"\n" +"This enrironment helps you using several {app_name} commands with similar" +" parameters.\n" +"\n" +"To quit, just enter \"quit\" or press C-d.\n" +"Enter \"help\" or \"?\" to know what to do\n" +msgstr "" + +#: sat_frontends/jp/cmd_shell.py:48 +msgid "launch jp in shell (REPL) mode" +msgstr "" + +#: sat_frontends/jp/cmd_shell.py:63 +msgid "bad command path" +msgstr "" + +#: sat_frontends/jp/cmd_shell.py:104 +msgid "COMMAND {external}=> {args}" +msgstr "" + +#: sat_frontends/jp/cmd_shell.py:105 +msgid "(external) " +msgstr "" + +#: sat_frontends/jp/cmd_shell.py:149 +msgid "Shell commands:" +msgstr "" + +#: sat_frontends/jp/cmd_shell.py:152 +msgid "Action commands:" +msgstr "" + +#: sat_frontends/jp/cmd_shell.py:172 +msgid "verbose mode is {status}" +msgstr "" + +#: sat_frontends/jp/cmd_shell.py:173 +msgid "ENABLED" +msgstr "" + +#: sat_frontends/jp/cmd_shell.py:173 +msgid "DISABLED" +msgstr "" + +#: sat_frontends/jp/cmd_shell.py:214 +msgid "arg profile={profile} (logged profile)" +msgstr "" + +#: sat_frontends/jp/cmd_shell.py:236 +msgid "no argument in USE" +msgstr "" + +#: sat_frontends/jp/cmd_shell.py:238 +msgid "arguments in USE:" +msgstr "" + +#: sat_frontends/jp/cmd_shell.py:274 +msgid "argument {name} not found" +msgstr "" + +#: sat_frontends/jp/cmd_shell.py:280 +msgid "argument {name} removed" +msgstr "" + +#: sat_frontends/jp/cmd_shell.py:288 +msgid "good bye!" +msgstr "" + +#: sat_frontends/jp/cmd_uri.py:37 +msgid "parse URI" +msgstr "" + +#: sat_frontends/jp/cmd_uri.py:42 +msgid "XMPP URI to parse" +msgstr "" + +#: sat_frontends/jp/cmd_uri.py:57 +msgid "URI type" +msgstr "" + +#: sat_frontends/jp/cmd_uri.py:58 +msgid "URI path" +msgstr "" + +#: sat_frontends/jp/cmd_uri.py:66 +msgid "URI fields" +msgstr "" + +#: sat_frontends/jp/cmd_uri.py:80 +msgid "XMPP URI parsing/generation" +msgstr "" + +#: sat_frontends/jp/common.py:437 +msgid "no item found at all, we create a new one" +msgstr "" + +#: sat_frontends/jp/common.py:440 +msgid "item \"{item}\" not found, we create a new item withthis id" +msgstr "" + +#: sat_frontends/jp/common.py:458 +msgid "item \"{item}\" found, we edit it" +msgstr "" + +#: sat_frontends/jp/common.py:785 +msgid "No {key} URI specified for this project, please specify service and node" +msgstr "" + +#: sat_frontends/jp/common.py:821 +msgid "Invalid URI found: {uri}" +msgstr "" + +#: sat_frontends/jp/loops.py:28 +msgid "User interruption: good bye" +msgstr "" + +#: sat_frontends/jp/output_template.py:53 +msgid "Can't find requested template: {template_path}" +msgstr "" + +#: sat_frontends/jp/output_template.py:74 +msgid "" +"no default template set for this command, you need to specify a template " +"using --oo template=[path/to/template.html]" +msgstr "" + +#: sat_frontends/jp/output_template.py:89 +msgid "Can't parse template, please check its syntax" +msgstr "" + +#: sat_frontends/jp/output_template.py:109 +msgid "" +"Browser opening requested.\n" +"Temporary files are put in the following directory, you'll have to delete" +" it yourself once finished viewing: {}" +msgstr "" + +#: sat_frontends/jp/output_xml.py:56 +msgid "" +"Pygments is not available, syntax highlighting is not possible. Please " +"install if from http://pygments.org or with pip install pygments" +msgstr "" + +#: sat_frontends/jp/xml_tools.py:50 +msgid "Can't parse the payload XML in input: {msg}" +msgstr "" + +#: sat_frontends/jp/xml_tools.py:62 +msgid " can only have one child element (the payload)" +msgstr "" + +#: sat_frontends/jp/xmlui_manager.py:224 +msgid "(enter: {value})" +msgstr "" + +#: sat_frontends/jp/xmlui_manager.py:318 +msgid "your choice (0-{limit_max}): " +msgstr "" + +#: sat_frontends/jp/xmlui_manager.py:348 +msgid "your choice (0,1): " +msgstr "" + +#: sat_frontends/primitivus/base.py:90 +msgid "Error while sending message ({})" +msgstr "" + +#: sat_frontends/primitivus/base.py:135 +msgid "Please specify the globbing pattern to search for" +msgstr "" + +#: sat_frontends/primitivus/base.py:377 +msgid "Configuration Error" +msgstr "" + +#: sat_frontends/primitivus/base.py:377 +msgid "" +"Something went wrong while reading the configuration, please check " +":messages" +msgstr "" + +#: sat_frontends/primitivus/base.py:504 +msgid "Pleeeeasse, I can't even breathe !" +msgstr "" + +#: sat_frontends/primitivus/base.py:534 +#: sat_frontends/primitivus/profile_manager.py:64 +msgid "Connect" +msgstr "" + +#: sat_frontends/primitivus/base.py:536 +msgid "Parameters" +msgstr "" + +#: sat_frontends/primitivus/base.py:537 sat_frontends/primitivus/base.py:851 +msgid "About" +msgstr "" + +#: sat_frontends/primitivus/base.py:538 +msgid "Exit" +msgstr "" + +#: sat_frontends/primitivus/base.py:542 +msgid "Join room" +msgstr "" + +#: sat_frontends/primitivus/base.py:547 +msgid "Main menu" +msgstr "" + +#: sat_frontends/primitivus/base.py:658 +msgid "{app}: a new event has just happened{entity}" +msgstr "" + +#: sat_frontends/primitivus/base.py:736 +msgid "Chat menu" +msgstr "" + +#: sat_frontends/primitivus/base.py:790 +msgid "Unmanaged action" +msgstr "" + +#: sat_frontends/primitivus/base.py:801 +msgid "unkown" +msgstr "" + +#: sat_frontends/primitivus/base.py:831 +#, python-format +msgid "Can't get parameters (%s)" +msgstr "" + +#: sat_frontends/primitivus/base.py:846 +msgid "Entering a MUC room" +msgstr "" + +#: sat_frontends/primitivus/base.py:846 +msgid "Please enter MUC's JID" +msgstr "" + +#: sat_frontends/primitivus/chat.py:40 +msgid "{} occupants" +msgstr "" + +#: sat_frontends/primitivus/chat.py:381 +msgid "Game" +msgstr "" + +#: sat_frontends/primitivus/chat.py:502 +msgid "You have been mentioned by {nick} in {room}" +msgstr "" + +#: sat_frontends/primitivus/chat.py:513 +msgid "{entity} is talking to you" +msgstr "" + +#: sat_frontends/primitivus/chat.py:612 +msgid "Results for searching the globbing pattern: {}" +msgstr "" + +#: sat_frontends/primitivus/chat.py:618 +msgid "Type ':history ' to reset the chat history" +msgstr "" + +#: sat_frontends/primitivus/chat.py:652 +#, python-format +msgid "Primitivus: %s is talking to you" +msgstr "" + +#: sat_frontends/primitivus/chat.py:656 +#, python-format +msgid "Primitivus: %(user)s mentioned you in room '%(room)s'" +msgstr "" + +#: sat_frontends/primitivus/chat.py:666 +msgid "Can't start game" +msgstr "" + +#: sat_frontends/primitivus/chat.py:667 +msgid "You need to be exactly 4 peoples in the room to start a Tarot game" +msgstr "" + +#: sat_frontends/primitivus/chat.py:698 +msgid "Change title" +msgstr "" + +#: sat_frontends/primitivus/chat.py:699 +msgid "Enter the new title" +msgstr "" + +#: sat_frontends/primitivus/game_tarot.py:290 +msgid "Please choose your contrat" +msgstr "" + +#: sat_frontends/primitivus/game_tarot.py:311 +msgid "You win \\o/" +msgstr "" + +#: sat_frontends/primitivus/game_tarot.py:311 +msgid "You loose :(" +msgstr "" + +#: sat_frontends/primitivus/game_tarot.py:331 +msgid "Cards played are invalid !" +msgstr "" + +#: sat_frontends/primitivus/game_tarot.py:369 +msgid "Do you put these cards in chien ?" +msgstr "" + +#: sat_frontends/primitivus/profile_manager.py:36 +msgid "Login:" +msgstr "" + +#: sat_frontends/primitivus/profile_manager.py:37 +msgid "Password:" +msgstr "" + +#: sat_frontends/primitivus/profile_manager.py:48 +msgid "New" +msgstr "" + +#: sat_frontends/primitivus/profile_manager.py:49 +msgid "Delete" +msgstr "" + +#: sat_frontends/primitivus/profile_manager.py:81 +msgid "Profile Manager" +msgstr "" + +#: sat_frontends/primitivus/profile_manager.py:142 +msgid "Can't create profile" +msgstr "" + +#: sat_frontends/primitivus/profile_manager.py:150 +msgid "New profile" +msgstr "" + +#: sat_frontends/primitivus/profile_manager.py:151 +msgid "Please enter a new profile name" +msgstr "" + +#: sat_frontends/primitivus/profile_manager.py:160 +msgid "Are you sure you want to delete the profile {} ?" +msgstr "" + +#: sat_frontends/primitivus/progress.py:37 +msgid "Clear progress list" +msgstr "" + +#: sat_frontends/primitivus/status.py:57 +msgid "Set your presence" +msgstr "" + +#: sat_frontends/primitivus/status.py:67 +msgid "Set your status" +msgstr "" + +#: sat_frontends/primitivus/status.py:68 +msgid "New status" +msgstr "" + +#: sat_frontends/primitivus/xmlui.py:78 +msgid "Unknown div_char" +msgstr "" + +#: sat_frontends/primitivus/xmlui.py:456 +msgid "Submit" +msgstr "" + +#: sat_frontends/primitivus/xmlui.py:458 sat_frontends/primitivus/xmlui.py:473 +msgid "Cancel" +msgstr "" + +#: sat_frontends/quick_frontend/constants.py:31 +msgid "Away from keyboard" +msgstr "" + +#: sat_frontends/quick_frontend/constants.py:33 +msgid "Extended away" +msgstr "" + +#: sat_frontends/quick_frontend/quick_app.py:85 +msgid "Error while trying to get autodisconnect param, ignoring: {}" +msgstr "" + +#: sat_frontends/quick_frontend/quick_app.py:200 +msgid "Can't get profile parameter: {msg}" +msgstr "" + +#: sat_frontends/quick_frontend/quick_app.py:324 +msgid "Can't get namespaces map: {msg}" +msgstr "" + +#: sat_frontends/quick_frontend/quick_app.py:330 +msgid "Can't retrieve encryption plugins: {msg}" +msgstr "" + +#: sat_frontends/quick_frontend/quick_app.py:376 +msgid "Error while initialising bridge: {}" +msgstr "" + +#: sat_frontends/quick_frontend/quick_app.py:662 +#, python-format +msgid "Can't connect profile [%s]" +msgstr "" + +#: sat_frontends/quick_frontend/quick_app.py:723 +msgid "Connected" +msgstr "" + +#: sat_frontends/quick_frontend/quick_app.py:739 +msgid "Disconnected" +msgstr "" + +#: sat_frontends/quick_frontend/quick_app.py:1154 +msgid "The contact {contact} has accepted your subscription" +msgstr "" + +#: sat_frontends/quick_frontend/quick_app.py:1157 +#: sat_frontends/quick_frontend/quick_app.py:1176 +msgid "Subscription confirmation" +msgstr "" + +#: sat_frontends/quick_frontend/quick_app.py:1162 +msgid "The contact {contact} has refused your subscription" +msgstr "" + +#: sat_frontends/quick_frontend/quick_app.py:1165 +msgid "Subscription refusal" +msgstr "" + +#: sat_frontends/quick_frontend/quick_app.py:1172 +msgid "" +"The contact {contact} wants to subscribe to your presence.\n" +"Do you accept ?" +msgstr "" + +#: sat_frontends/quick_frontend/quick_app.py:1229 +#, python-format +msgid "param update: [%(namespace)s] %(name)s = %(value)s" +msgstr "" + +#: sat_frontends/quick_frontend/quick_app.py:1233 +#, python-format +msgid "Changing JID to %s" +msgstr "" + +#: sat_frontends/quick_frontend/quick_chat.py:624 +msgid "now we print the history" +msgstr "" + +#: sat_frontends/quick_frontend/quick_chat.py:626 +msgid " ({} messages)" +msgstr "" + +#: sat_frontends/quick_frontend/quick_chat.py:683 +msgid "Can't get history: {}" +msgstr "" + +#: sat_frontends/quick_frontend/quick_chat.py:705 +msgid "Can't get encryption state: {reason}" +msgstr "" + +#: sat_frontends/quick_frontend/quick_chat.py:775 +msgid "message encryption started with {target} using {encryption}" +msgstr "" + +#: sat_frontends/quick_frontend/quick_chat.py:780 +msgid "message encryption stopped with {target} (was using {encryption})" +msgstr "" + +#: sat_frontends/quick_frontend/quick_chat.py:833 +msgid "<= {nick} has left the room ({count})" +msgstr "" + +#: sat_frontends/quick_frontend/quick_chat.py:837 +msgid "<=> {nick} re-entered the room ({count})" +msgstr "" + +#: sat_frontends/quick_frontend/quick_contact_list.py:611 +msgid "Trying to delete an unknow entity [{}]" +msgstr "" + +#: sat_frontends/quick_frontend/quick_contact_list.py:664 +msgid "received presence from entity without resource: {}" +msgstr "" + +#: sat_frontends/quick_frontend/quick_contact_management.py:73 +msgid "Trying to get attribute for an unknown contact" +msgstr "" + +#: sat_frontends/quick_frontend/quick_contact_management.py:89 +msgid "INTERNAL ERROR: Key log.error" +msgstr "" + +#: sat_frontends/quick_frontend/quick_contact_management.py:101 +#, python-format +msgid "Trying to update an unknown contact: %s" +msgstr "" + +#: sat_frontends/quick_frontend/quick_games.py:84 +msgid "" +"A {game} activity between {players} has been started, but you couldn't " +"take part because your client doesn't support it." +msgstr "" + +#: sat_frontends/quick_frontend/quick_games.py:87 +msgid "{game} Game" +msgstr "" + +#: sat_frontends/quick_frontend/quick_profile_manager.py:116 +msgid "Trying to plug an unknown profile key ({})" +msgstr "" + +#: sat_frontends/quick_frontend/quick_profile_manager.py:118 +msgid "Profile plugging in error" +msgstr "" + +#: sat_frontends/quick_frontend/quick_profile_manager.py:133 +msgid "Can't get profile parameter" +msgstr "" + +#: sat_frontends/quick_frontend/quick_profile_manager.py:144 +msgid "A profile with this name already exists" +msgstr "" + +#: sat_frontends/quick_frontend/quick_profile_manager.py:146 +msgid "Profile creation cancelled by backend" +msgstr "" + +#: sat_frontends/quick_frontend/quick_profile_manager.py:148 +msgid "You profile name is not valid" +msgstr "" + +#: sat_frontends/quick_frontend/quick_profile_manager.py:152 +msgid "Can't create profile ({})" +msgstr "" + +#: sat_frontends/quick_frontend/quick_profile_manager.py:172 +msgid "You can't connect manually and automatically at the same time" +msgstr "" + +#: sat_frontends/quick_frontend/quick_profile_manager.py:180 +msgid "No profile selected" +msgstr "" + +#: sat_frontends/quick_frontend/quick_profile_manager.py:181 +msgid "You need to create and select at least one profile before connecting" +msgstr "" + +#: sat_frontends/quick_frontend/quick_utils.py:40 +msgid "" +"\n" +" %prog [options]\n" +"\n" +" %prog --help for options list\n" +" " +msgstr "" + +#: sat_frontends/quick_frontend/quick_utils.py:49 +msgid "Select the profile to use" +msgstr "" + +#: sat_frontends/tools/xmlui.py:233 +msgid "Nothing to submit" +msgstr "" + +#: sat_frontends/tools/xmlui.py:449 +msgid "XMLUI can have only one main container" +msgstr "" + +#: sat_frontends/tools/xmlui.py:514 +#, python-format +msgid "Unknown container [%s], using default one" +msgstr "" + +#: sat_frontends/tools/xmlui.py:527 +msgid "Internal Error, container has not _xmluiAppend method" +msgstr "" + +#: sat_frontends/tools/xmlui.py:674 +#, python-format +msgid "FIXME FIXME FIXME: widget type [%s] is not implemented" +msgstr "" + +#: sat_frontends/tools/xmlui.py:678 +#, python-format +msgid "FIXME FIXME FIXME: type [%s] is not implemented" +msgstr "" + +#: sat_frontends/tools/xmlui.py:696 +#, python-format +msgid "No change listener on [%s]" +msgstr "" + +#: sat_frontends/tools/xmlui.py:722 +#, python-format +msgid "Unknown tag [%s]" +msgstr "" + +#: sat_frontends/tools/xmlui.py:780 +msgid "No callback_id found" +msgstr "" + +#: sat_frontends/tools/xmlui.py:813 +#, python-format +msgid "FIXME: XMLUI internal action [%s] is not implemented" +msgstr "" + +#: sat_frontends/tools/xmlui.py:909 sat_frontends/tools/xmlui.py:921 +#: sat_frontends/tools/xmlui.py:971 sat_frontends/tools/xmlui.py:983 +msgid "The form data is not sent back, the type is not managed properly" +msgstr "" + +#: sat_frontends/tools/xmlui.py:915 sat_frontends/tools/xmlui.py:977 +msgid "Cancelling form" +msgstr "" + +#: sat_frontends/tools/xmlui.py:1096 +msgid "XMLUI class already registered for {type_}, ignoring" +msgstr "" + +#: sat_frontends/tools/xmlui.py:1135 +msgid "You must register classes with registerClass before creating a XMLUI" +msgstr "" +