changeset 2170:d246666ebe25

i18n: updated sat.po
author Goffi <goffi@goffi.org>
date Mon, 06 Mar 2017 21:22:59 +0100
parents f472179305a1
children 978011533892
files i18n/sat.po src/plugins/plugin_xep_0045.py
diffstat 2 files changed, 3634 insertions(+), 2390 deletions(-) [+]
line wrap: on
line diff
--- a/i18n/sat.po	Sun Mar 05 23:41:10 2017 +0100
+++ b/i18n/sat.po	Mon Mar 06 21:22:59 2017 +0100
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-02-24 19:12+0100\n"
+"POT-Creation-Date: 2017-03-06 21:21+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,629 +17,1196 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: frontends/src/bridge/DBus.py:62
-#: src/bridge/bridge_constructor/dbus_frontend_template.py:62
-#: src/bridge/bridge_constructor/generated/DBus.py:62
+#: 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
+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
 msgid "Unknown interface"
 msgstr ""
 
-#: frontends/src/constants.py:38 frontends/src/constants.py:44
-#: frontends/src/wix/constants.py:39 src/plugins/plugin_xep_0050.py:52
-msgid "Online"
-msgstr ""
-
-#: frontends/src/constants.py:39 frontends/src/constants.py:45
-#: frontends/src/wix/constants.py:40 src/plugins/plugin_xep_0050.py:54
-msgid "Free for chat"
-msgstr ""
-
-#: frontends/src/constants.py:40 frontends/src/constants.py:46
-msgid "Away from keyboard"
-msgstr ""
-
-#: frontends/src/constants.py:41 frontends/src/constants.py:47
-#: src/plugins/plugin_xep_0050.py:55
-msgid "Do not disturb"
-msgstr ""
-
-#: frontends/src/constants.py:42 frontends/src/constants.py:48
-#: frontends/src/wix/constants.py:43 src/plugins/plugin_xep_0050.py:53
-msgid "Away"
-msgstr ""
-
-#: frontends/src/jp/base.py:46
+#: 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:47
+#: frontends/src/jp/base.py:116
 msgid ""
 "Progress bar deactivated\n"
 "--\n"
 msgstr ""
 
-#: frontends/src/jp/base.py:79 frontends/src/quick_frontend/quick_app.py:43
+#: 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:82 frontends/src/quick_frontend/quick_app.py:46
+#: 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:90
-msgid "Available commands"
-msgstr ""
-
-#: frontends/src/jp/base.py:112
+#: 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:113
+#: 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:117
+#: 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:145
-#, python-format
-msgid "Invalid module %s"
-msgstr ""
-
-#: frontends/src/jp/base.py:161
+#: 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:203
+#: frontends/src/jp/base.py:437
 #, python-format
 msgid "%s is not a valid JID !"
 msgstr ""
 
-#: frontends/src/jp/base.py:226
-msgid "Can't connect profile"
-msgstr ""
-
-#: frontends/src/jp/base.py:232
-#, python-format
-msgid "The profile [%s] doesn't exist"
-msgstr ""
-
-#: frontends/src/jp/base.py:241
-#, python-format
+#: 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)s] is not connected, please connect it before using jp, "
-"or use --connect option"
-msgstr ""
-
-#: frontends/src/jp/base.py:269
+"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 "Remote control a software"
+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 "Software name"
+msgid "Jids that are *NOT* allowed to use the command"
 msgstr ""
 
 #: frontends/src/jp/cmd_adhoc.py:38
-msgid "Jids allowed to use the command"
-msgstr ""
-
-#: frontends/src/jp/cmd_adhoc.py:39
-msgid "Groups allowed to use the command"
-msgstr ""
-
-#: frontends/src/jp/cmd_adhoc.py:40
-msgid "Groups that are *NOT* allowed to use the command"
-msgstr ""
-
-#: frontends/src/jp/cmd_adhoc.py:41
-msgid "Jids that are *NOT* allowed to use the command"
-msgstr ""
-
-#: frontends/src/jp/cmd_adhoc.py:42
 msgid "Loop on the commands"
 msgstr ""
 
-#: frontends/src/jp/cmd_adhoc.py:56
+#: 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:59
+#: 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:68
+#: frontends/src/jp/cmd_adhoc.py:66
 msgid "Ad-hoc commands"
 msgstr ""
 
-#: frontends/src/jp/cmd_file.py:33
-msgid "Send a file to a contact"
-msgstr ""
-
-#: frontends/src/jp/cmd_file.py:36
-msgid "A list of file"
-msgstr ""
-
-#: frontends/src/jp/cmd_file.py:37 frontends/src/jp/cmd_message.py:36
-#: frontends/src/jp/cmd_pipe.py:37
-msgid "The destination jid"
+#: 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 "Make a bzip2 tarball"
-msgstr ""
-
-#: frontends/src/jp/cmd_file.py:50
-#, python-format
-msgid "file [%s] doesn't exist !"
-msgstr ""
-
-#: frontends/src/jp/cmd_file.py:53
-#, python-format
-msgid "[%s] is a dir ! Please send files inside or use compression"
-msgstr ""
-
-#: frontends/src/jp/cmd_file.py:61
-#, python-format
-msgid "tmp file_ (%s) already exists ! Please remove it"
-msgstr ""
-
-#: frontends/src/jp/cmd_file.py:63
-msgid "bz2 is an experimental option at an early dev stage, use with caution"
-msgstr ""
-
-#: frontends/src/jp/cmd_file.py:65
-msgid "Starting compression, please wait..."
-msgstr ""
-
-#: frontends/src/jp/cmd_file.py:69
-#, python-format
-msgid "Adding %s"
-msgstr ""
-
-#: frontends/src/jp/cmd_file.py:72
-msgid "Done !"
+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 "Wait for a file to be sent by a contact"
-msgstr ""
-
-#: frontends/src/jp/cmd_file.py:92 frontends/src/jp/cmd_pipe.py:68
-msgid "Jids accepted (none means \"accept everything\")"
+msgid "[{}] is a dir ! Please send files inside or use compression"
 msgstr ""
 
 #: frontends/src/jp/cmd_file.py:93
-msgid "Accept multiple files (you'll have to stop manually)"
-msgstr ""
-
-#: frontends/src/jp/cmd_file.py:94
-msgid "Force overwritting of existing files"
+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 "Accepted file [%(filename)s] from %(sender)s"
-msgstr ""
-
-#: frontends/src/jp/cmd_file.py:107
-#, python-format
+msgid "Error while doing discovery [%s]"
+msgstr ""
+
+#: frontends/src/jp/cmd_info.py:90
+#, python-brace-format
 msgid ""
-"Refused file [%(filename)s] from %(sender)s: a file with the same name "
-"already exist"
-msgstr ""
-
-#: frontends/src/jp/cmd_file.py:125
-msgid "File sending/receiving"
-msgstr ""
-
-#: frontends/src/jp/cmd_message.py:31
-msgid "Send a message to a contact"
-msgstr ""
-
-#: frontends/src/jp/cmd_message.py:34
+"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 ""
-"Separate xmpp messages: send one message per line instead of one message "
-"alone."
+"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 "Add a new line at the beginning of the input (usefull for ascii art ;))"
-msgstr ""
-
-#: frontends/src/jp/cmd_pipe.py:34
-msgid "Pipe a stream out"
-msgstr ""
-
-#: frontends/src/jp/cmd_pipe.py:61
-msgid "Wait for the reception of a pipe stream"
-msgstr ""
-
-#: frontends/src/jp/cmd_pipe.py:87
-msgid "Stream piping through XMPP"
+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:35
-msgid "Delete a profile"
-msgstr ""
-
-#: frontends/src/jp/cmd_profile.py:50
-msgid "Get information about a profile"
-msgstr ""
-
-#: frontends/src/jp/cmd_profile.py:76
-msgid "List profiles"
-msgstr ""
-
-#: frontends/src/jp/cmd_profile.py:89
-msgid "Create a new profile"
-msgstr ""
-
-#: frontends/src/jp/cmd_profile.py:92
-msgid "the name of the profile"
-msgstr ""
-
-#: frontends/src/jp/cmd_profile.py:93
-msgid "the jid of the profile"
-msgstr ""
-
-#: frontends/src/jp/cmd_profile.py:94
+#: 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:115
-msgid "Profile commands"
-msgstr ""
-
-#: frontends/src/primitivus/card_game.py:266
-#: frontends/src/wix/card_game.py:103
-msgid "Please choose your contrat"
-msgstr ""
-
-#: frontends/src/primitivus/card_game.py:288
-#: frontends/src/wix/card_game.py:114 src/plugins/plugin_misc_tarot.py:239
-msgid "Draw game"
-msgstr ""
-
-#: frontends/src/primitivus/card_game.py:290
-#: frontends/src/wix/card_game.py:116
-msgid "You win \\o/"
-msgstr ""
-
-#: frontends/src/primitivus/card_game.py:290
-#: frontends/src/wix/card_game.py:116
-msgid "You loose :("
-msgstr ""
-
-#: frontends/src/primitivus/card_game.py:302
-#: frontends/src/wix/card_game.py:134
-msgid "Cards played are invalid !"
-msgstr ""
-
-#: frontends/src/primitivus/card_game.py:335
-#: frontends/src/wix/card_game.py:242
-msgid "Do you put these cards in chien ?"
-msgstr ""
-
-#: frontends/src/primitivus/chat.py:134
+#: 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:135
-msgid "MUC"
-msgstr ""
-
-#: frontends/src/primitivus/chat.py:137
-msgid "Configure room"
-msgstr ""
-
-#: frontends/src/primitivus/chat.py:139
-msgid "Action"
-msgstr ""
-
-#: frontends/src/primitivus/chat.py:139
-msgid "Send file"
-msgstr ""
-
-#: frontends/src/primitivus/chat.py:318
+#: 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 <lines>' 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:320
+#: frontends/src/primitivus/chat.py:593
 #, python-format
 msgid "Primitivus: %(user)s mentioned you in room '%(room)s'"
 msgstr ""
 
-#: frontends/src/primitivus/chat.py:337 frontends/src/wix/chat.py:273
+#: frontends/src/primitivus/chat.py:599
 msgid "Can't start game"
 msgstr ""
 
-#: frontends/src/primitivus/chat.py:337 frontends/src/wix/chat.py:273
+#: 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:345
-#: frontends/src/primitivus/primitivus:458
-#: frontends/src/primitivus/primitivus:460
-#: frontends/src/primitivus/primitivus:523
-#: frontends/src/primitivus/primitivus:549
-#: frontends/src/primitivus/primitivus:559
-#: frontends/src/primitivus/primitivus:578
-#: frontends/src/primitivus/primitivus:597 frontends/src/wix/card_game.py:134
-#: frontends/src/wix/main_window.py:248 frontends/src/wix/main_window.py:255
-#: frontends/src/wix/main_window.py:323 frontends/src/wix/main_window.py:410
-#: frontends/src/wix/main_window.py:458 frontends/src/wix/main_window.py:481
-msgid "Error"
-msgstr ""
-
-#: frontends/src/primitivus/contact_list.py:44
+#: 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/primitivus:108
-#, python-format
-msgid "Error while sending message (%s)"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:273
+#: 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:285 frontends/src/wix/profile.py:83
+#: frontends/src/primitivus/primitivus:527 src/memory/params.py:81
 msgid "General"
 msgstr ""
 
-#: frontends/src/primitivus/primitivus:286
-#: frontends/src/primitivus/profile_manager.py:49
-#: frontends/src/wix/profile_manager.py:69
+#: frontends/src/primitivus/primitivus:528
+#: frontends/src/primitivus/profile_manager.py:53
 msgid "Connect"
 msgstr ""
 
-#: frontends/src/primitivus/primitivus:287 src/plugins/plugin_xep_0050.py:57
+#: frontends/src/primitivus/primitivus:529 src/plugins/plugin_xep_0050.py:59
 msgid "Disconnect"
 msgstr ""
 
-#: frontends/src/primitivus/primitivus:288
+#: frontends/src/primitivus/primitivus:530
 msgid "Parameters"
 msgstr ""
 
-#: frontends/src/primitivus/primitivus:289
-#: frontends/src/primitivus/primitivus:603
+#: frontends/src/primitivus/primitivus:531
+#: frontends/src/primitivus/primitivus:821
 msgid "About"
 msgstr ""
 
-#: frontends/src/primitivus/primitivus:290
+#: frontends/src/primitivus/primitivus:532
 msgid "Exit"
 msgstr ""
 
-#: frontends/src/primitivus/primitivus:291
-msgid "Contact"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:292
-msgid "Add contact"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:293
-msgid "Remove contact"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:294 src/plugins/plugin_xep_0055.py:56
-msgid "Communication"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:295
+#: 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:307
+#: frontends/src/primitivus/primitivus:541
 msgid "Main menu"
 msgstr ""
 
-#: frontends/src/primitivus/primitivus:354
-#: frontends/src/primitivus/primitivus:382
+#: 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:420
-#: frontends/src/wix/main_window.py:203
+#: 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 "unmanaged dialog type: %s"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:435
-msgid "INTERNAL ERROR: Unexpected class for main widget's footer"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:458
-#: frontends/src/wix/main_window.py:247
-msgid "Unmanaged action result"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:477
-#: frontends/src/wix/main_window.py:277
-msgid "Where do you want to save the file ?"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:489
-#: frontends/src/wix/main_window.py:271
-#, python-format
-msgid ""
-"The contact %(jid)s wants to send you the file %(filename)s\n"
-"Do you accept ?"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:502
-#: frontends/src/wix/main_window.py:308
-msgid "unknown id, ignoring"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:508
-#: frontends/src/wix/main_window.py:244 frontends/src/wix/main_window.py:330
-msgid "XML user interface received"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:511
-#: frontends/src/wix/main_window.py:333
-msgid "Form"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:513
-#: frontends/src/wix/main_window.py:335
-msgid "Registration"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:537
-#: frontends/src/wix/main_window.py:352
-#, python-format
-msgid "FIXME FIXME FIXME: type [%s] not implemented"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:547
-#: frontends/src/primitivus/primitivus:557
-#: frontends/src/wix/main_window.py:448 frontends/src/wix/main_window.py:508
-#, python-format
-msgid "'%s' is an invalid JID !"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:563
-#: frontends/src/wix/main_window.py:471
-#, python-format
-msgid "Unsubscribing %s presence"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:578
-msgid "Can't get parameters"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:587
-#: frontends/src/wix/main_window.py:502
+msgid "Can't get parameters (%s)"
+msgstr ""
+
+#: frontends/src/primitivus/primitivus:816
 msgid "Entering a MUC room"
 msgstr ""
 
-#: frontends/src/primitivus/primitivus:587
-#: frontends/src/wix/main_window.py:500
+#: frontends/src/primitivus/primitivus:816
 msgid "Please enter MUC's JID"
 msgstr ""
 
-#: frontends/src/primitivus/primitivus:591
-#: frontends/src/wix/main_window.py:441
-msgid "Adding a contact"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:591
-#: frontends/src/wix/main_window.py:440
-msgid "Please enter new contact JID"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:597
-msgid "You have not selected any contact to delete !"
-msgstr ""
-
-#: frontends/src/primitivus/primitivus:599
-#, python-format
-msgid "Are you sure you want to delete the contact [%s] ?"
-msgstr ""
-
-#: frontends/src/primitivus/profile_manager.py:35
-msgid "Login:"
-msgstr ""
-
 #: frontends/src/primitivus/profile_manager.py:36
-#: frontends/src/wix/profile_manager.py:66
+msgid "Login:"
+msgstr ""
+
+#: frontends/src/primitivus/profile_manager.py:37
 msgid "Password:"
 msgstr ""
 
-#: frontends/src/primitivus/profile_manager.py:41
-#: frontends/src/wix/profile_manager.py:51
+#: frontends/src/primitivus/profile_manager.py:45
 msgid "New"
 msgstr ""
 
-#: frontends/src/primitivus/profile_manager.py:42
-#: frontends/src/wix/profile_manager.py:52
+#: frontends/src/primitivus/profile_manager.py:46
 msgid "Delete"
 msgstr ""
 
-#: frontends/src/primitivus/profile_manager.py:54
+#: frontends/src/primitivus/profile_manager.py:58
 msgid "Profile Manager"
 msgstr ""
 
-#: frontends/src/primitivus/profile_manager.py:82
-msgid "A profile with this name already exists"
-msgstr ""
-
-#: frontends/src/primitivus/profile_manager.py:84
-msgid "Profile creation cancelled by backend"
-msgstr ""
-
-#: frontends/src/primitivus/profile_manager.py:86
-msgid "Database error"
-msgstr ""
-
-#: frontends/src/primitivus/profile_manager.py:88
-#, python-format
-msgid "Unknown reason (%s)"
-msgstr ""
-
-#: frontends/src/primitivus/profile_manager.py:89
+#: frontends/src/primitivus/profile_manager.py:108
 msgid "Can't create profile"
 msgstr ""
 
-#: frontends/src/primitivus/profile_manager.py:100
-#: frontends/src/wix/profile_manager.py:95
+#: frontends/src/primitivus/profile_manager.py:115
 msgid "New profile"
 msgstr ""
 
-#: frontends/src/primitivus/profile_manager.py:100
+#: frontends/src/primitivus/profile_manager.py:115
 msgid "Please enter a new profile name"
 msgstr ""
 
-#: frontends/src/primitivus/profile_manager.py:104
-#, python-format
-msgid "Are you sure you want to delete the profile %s ?"
-msgstr ""
-
-#: frontends/src/primitivus/profile_manager.py:123
-#: frontends/src/wix/profile_manager.py:131
-msgid "No profile selected"
-msgstr ""
-
-#: frontends/src/primitivus/profile_manager.py:123
-msgid "You need to create and select a profile before connecting"
-msgstr ""
-
-#: frontends/src/primitivus/profile_manager.py:126
-#: frontends/src/wix/profile_manager.py:100
-#: frontends/src/wix/profile_manager.py:134
-msgid "Bad profile name"
-msgstr ""
-
-#: frontends/src/primitivus/profile_manager.py:126
-#: frontends/src/wix/profile_manager.py:100
-#: frontends/src/wix/profile_manager.py:134
-msgid "A profile name can't start with a @"
-msgstr ""
-
-#: frontends/src/primitivus/profile_manager.py:152
-#: frontends/src/quick_frontend/quick_app.py:119
-#: frontends/src/wix/profile_manager.py:158
-msgid "Can't get profile parameter"
-msgstr ""
-
-#: frontends/src/primitivus/progress.py:33
+#: 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 ""
 
@@ -647,300 +1214,140 @@
 msgid "Set your presence"
 msgstr ""
 
-#: frontends/src/primitivus/status.py:50
+#: frontends/src/primitivus/status.py:52
 msgid "Set your status"
 msgstr ""
 
-#: frontends/src/primitivus/status.py:50
+#: frontends/src/primitivus/status.py:52
 msgid "New status"
 msgstr ""
 
-#: frontends/src/primitivus/xmlui.py:76
+#: frontends/src/primitivus/xmlui.py:81
 msgid "Unknown div_char"
 msgstr ""
 
-#: frontends/src/primitivus/xmlui.py:225 frontends/src/wix/xmlui.py:255
+#: frontends/src/primitivus/xmlui.py:405
 msgid "Submit"
 msgstr ""
 
-#: frontends/src/primitivus/xmlui.py:227 frontends/src/primitivus/xmlui.py:235
+#: frontends/src/primitivus/xmlui.py:407 frontends/src/primitivus/xmlui.py:418
 msgid "Cancel"
 msgstr ""
 
-#: frontends/src/primitivus/xmlui.py:234
+#: 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/quick_app.py:98
-#, python-format
-msgid "Trying to plug an unknown profile (%s)"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:104
-msgid ""
-"\n"
-"        %prog [options]\n"
-"\n"
-"        %prog --help for options list\n"
-"        "
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:111
-msgid "Select the profile to use"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:124
-msgid "There is already one profile plugged (we are in single profile mode) !"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:128
-msgid "The profile asked doesn't exist"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:131
-msgid "The profile is already plugged"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:153
-msgid "Error during autoconnection"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:207
-msgid "This profile is not plugged"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:218
-msgid "Connected"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:225
-msgid "Disconnected"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:233
-msgid "Connection Error"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:236
-msgid "Can't connect to account, please check your password"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:236
-msgid "Connection error"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:238
-#, python-format
-msgid "FIXME: error_type %s not implemented"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:290
-msgid "sendMessage Error"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:306
-#, python-format
-msgid ""
-"presence update for %(jid)s (show=%(show)s, priority=%(priority)s, statuses="
-"%(statuses)s) [profile:%(profile)s]"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:323
-#, python-format
-msgid "Watched jid [%s] is connected !"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:336
-#, python-format
-msgid "Room [%(room_jid)s] joined by %(profile)s, users presents:%(users)s"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:347
-#, python-format
-msgid "Room [%(room_jid)s] left by %(profile)s"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:357
-#, python-format
-msgid "user [%(user_nick)s] joined room [%(room_jid)s]"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:365
-#, python-format
-msgid "user [%(user_nick)s] left room [%(room_jid)s]"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:373
-#, python-format
-msgid ""
-"user [%(old_nick)s] is now known as [%(new_nick)s] in room [%(room_jid)s]"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:381
-#, python-format
-msgid "new subject for room [%(room_jid)s]: %(subject)s"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:386
-msgid "Tarot Game Started \\o/"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:389
-#, python-format
-msgid ""
-"new Tarot game started by [%(referee)s] in room [%(room_jid)s] with "
-"%(players)s"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:394
-msgid "New Tarot Game"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:402
-msgid "Tarot: need to select a contrat"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:409
-msgid "Show cards"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:416
-msgid "My turn to play"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:424
-msgid "Tarot: score received"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:431
-#, python-format
-msgid "Card(s) played (%(player)s): %(cards)s"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:438
-#, python-format
-msgid "Cards played are not valid: %s"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:445
-msgid "Quiz Game Started \\o/"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:448
-#, python-format
-msgid ""
-"new Quiz game started by [%(referee)s] in room [%(room_jid)s] with "
-"%(players)s"
+#: 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
-msgid "New Quiz Game"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:461
 #, python-format
-msgid "Quiz: new question: %s"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:514
-#, python-format
-msgid "The contact %s has accepted your subscription"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_app.py:514
-#: frontends/src/quick_frontend/quick_app.py:520
-msgid "Subscription confirmation"
+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:517
+#: frontends/src/quick_frontend/quick_app.py:786
 msgid "Subscription refusal"
 msgstr ""
 
-#: frontends/src/quick_frontend/quick_app.py:520
+#: 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:531
+#: 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:533
+#: frontends/src/quick_frontend/quick_app.py:815
 #, python-format
 msgid "Changing JID to %s"
 msgstr ""
 
-#: frontends/src/quick_frontend/quick_chat.py:47
-#, python-format
-msgid "Adding users %s to room"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_chat.py:49
-msgid "[INTERNAL] trying to set presents nicks for a non group chat window"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_chat.py:55 frontends/src/wix/chat.py:146
-#, python-format
-msgid "Replacing user %s"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_chat.py:57 frontends/src/wix/chat.py:148
-msgid "[INTERNAL] trying to replace user for a non group chat window"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_chat.py:66
-#, python-format
-msgid "Removing user %s"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_chat.py:68
-msgid "[INTERNAL] trying to remove user for a non group chat window"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_chat.py:83
-#, python-format
-msgid "Changing nick of user %(old_nick)s to %(new_nick)s"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_chat.py:85
-msgid "[INTERNAL] trying to change user nick for a non group chat window"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_chat.py:93
-#, python-format
-msgid "Setting subject to %s"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_chat.py:95
-msgid "[INTERNAL] trying to set subject for a non group chat window"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_chat.py:100
-msgid "now we print history"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_chat.py:110
-msgid "Can't get history"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_chat.py:149
-msgid "startGame is not implemented in this frontend"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_chat.py:154
-msgid "getGame is not implemented in this frontend"
-msgstr ""
-
-#: frontends/src/quick_frontend/quick_contact_list.py:28
-msgid "Contact List init"
+#: 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
@@ -948,7 +1355,7 @@
 msgstr ""
 
 #: frontends/src/quick_frontend/quick_contact_management.py:87
-msgid "INTERNAL ERROR: Key error"
+msgid "INTERNAL ERROR: Key log.error"
 msgstr ""
 
 #: frontends/src/quick_frontend/quick_contact_management.py:99
@@ -956,1076 +1363,791 @@
 msgid "Trying to update an unknown contact: %s"
 msgstr ""
 
-#: frontends/src/tools/xmlui.py:191
+#: 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:240
+#: frontends/src/tools/xmlui.py:385
 #, python-format
 msgid "Unknown container [%s], using default one"
 msgstr ""
 
-#: frontends/src/tools/xmlui.py:249
+#: frontends/src/tools/xmlui.py:394
 msgid "Internal Error, container has not _xmluiAppend method"
 msgstr ""
 
-#: frontends/src/tools/xmlui.py:315
+#: frontends/src/tools/xmlui.py:472
 #, python-format
 msgid "FIXME FIXME FIXME: widget type [%s] is not implemented"
 msgstr ""
 
-#: frontends/src/tools/xmlui.py:316
+#: frontends/src/tools/xmlui.py:473
 #, python-format
 msgid "FIXME FIXME FIXME: type [%s] is not implemented"
 msgstr ""
 
-#: frontends/src/tools/xmlui.py:324
+#: frontends/src/tools/xmlui.py:481
 #, python-format
 msgid "No change listener on [%s]"
 msgstr ""
 
-#: frontends/src/tools/xmlui.py:330
+#: frontends/src/tools/xmlui.py:498
 #, python-format
 msgid "Unknown tag [%s]"
 msgstr ""
 
-#: frontends/src/tools/xmlui.py:395
+#: frontends/src/tools/xmlui.py:548
 msgid "No callback_id found"
 msgstr ""
 
-#: frontends/src/tools/xmlui.py:436
-msgid "The form data is not sent back, the type is not managed properly"
-msgstr ""
-
-#: frontends/src/tools/xmlui.py:441
-msgid "Cancelling form"
-msgstr ""
-
-#: frontends/src/wix/card_game.py:95
-msgid "Contrat choosed"
-msgstr ""
-
-#: frontends/src/wix/card_game.py:242
-msgid "Écart"
-msgstr ""
-
-#: frontends/src/wix/chat.py:114
-msgid "configure chat window for Tarot game"
-msgstr ""
-
-#: frontends/src/wix/chat.py:121
-msgid "configure chat window for Quiz game"
-msgstr ""
-
-#: frontends/src/wix/chat.py:175
-msgid "&SendFile\tCTRL-s"
-msgstr ""
-
-#: frontends/src/wix/chat.py:175
-msgid " Send a file to contact"
-msgstr ""
-
-#: frontends/src/wix/chat.py:176
-msgid "&Action"
-msgstr ""
-
-#: frontends/src/wix/chat.py:187
-msgid "Start &Tarot game\tCTRL-t"
-msgstr ""
-
-#: frontends/src/wix/chat.py:187
-msgid " Start a Tarot card game"
-msgstr ""
-
-#: frontends/src/wix/chat.py:188
-msgid "&Games"
-msgstr ""
-
-#: frontends/src/wix/chat.py:256
-msgid "Send File"
-msgstr ""
-
-#: frontends/src/wix/chat.py:257
-msgid "Choose a file to send"
-msgstr ""
-
-#: frontends/src/wix/chat.py:259
-#, python-format
-msgid "filename: %s"
-msgstr ""
-
-#: frontends/src/wix/chat.py:267 frontends/src/wix/main_window.py:281
-msgid "File Transfer"
-msgstr ""
-
-#: frontends/src/wix/chat.py:267 frontends/src/wix/main_window.py:281
-#, python-format
-msgid "Copying %s"
-msgstr ""
-
-#: frontends/src/wix/chat.py:270
-msgid "Starting Tarot game"
-msgstr ""
-
-#: frontends/src/wix/chat.py:271
-msgid "FIXME: temporary menu, must be changed"
-msgstr ""
-
-#: frontends/src/wix/constants.py:36
-msgid "offline"
-msgstr ""
-
-#: frontends/src/wix/constants.py:37
-msgid "online"
-msgstr ""
-
-#: frontends/src/wix/constants.py:41
-msgid "AFK"
-msgstr ""
-
-#: frontends/src/wix/constants.py:42
-msgid "DND"
-msgstr ""
-
-#: frontends/src/wix/contact_list.py:79
-#, python-format
-msgid "update %s"
-msgstr ""
-
-#: frontends/src/wix/contact_list.py:153
-#, python-format
-msgid "adding %s"
-msgstr ""
-
-#: frontends/src/wix/contact_list.py:192
-#, python-format
-msgid "removing %s"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:87
-msgid "Wix jabber client"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:109
-#, python-format
-msgid "plugin profile %s"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:118
-msgid "Creating menus"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:120
-msgid "&Connect\tCTRL-c"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:120
-msgid " Connect to the server"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:121
-msgid "&Disconnect\tCTRL-d"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:121
-msgid " Disconnect from the server"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:122
-msgid "&Parameters"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:122
-msgid " Configure the program"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:124
-msgid "A&bout"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:124
+#: frontends/src/tools/xmlui.py:580
 #, python-format
-msgid " About %s"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:125
-msgid "E&xit"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:125
-msgid " Terminate the program"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:127
-msgid "&Add contact"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:127
-msgid " Add a contact to your list"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:128
-msgid "&Remove contact"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:128
-msgid " Remove the selected contact from your list"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:130
-msgid "&Show profile"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:130
-msgid " Show contact's profile"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:132
-msgid "&Join Room"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:132
-msgid " Join a Multi-User Chat room"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:134
-msgid "&General"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:135
-msgid "&Contacts"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:136
-msgid "&Communication"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:267
-msgid "Confirmation asked"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:270
-msgid "File transfer confirmation asked"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:272
-msgid "File Request"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:290
-msgid "Yes/No confirmation asked"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:292
-#: frontends/src/wix/profile_manager.py:111
-msgid "Confirmation"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:306
-#, python-format
-msgid "actionResult: type = [%(type)s] id = [%(id)s] data = [%(data)s]"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:315
-msgid "Success"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:334
-msgid "registration"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:382
-#, python-format
-msgid "onContactActivated: %s"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:400
-msgid "Status change request"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:404
-msgid "Param request"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:406
-msgid "Configuration"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:422
-#, python-format
-msgid "%(name)s is a SàT (Salut à Toi) frontend\n"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:438
-msgid "Add contact request"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:441
-msgid "name@server.tld"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:454
-msgid "Remove contact request"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:457 frontends/src/wix/main_window.py:480
-msgid "You haven't selected any contact !"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:465
-#, python-format
-msgid "Are you sure you want to delete %s from your roster list ?"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:466
-msgid "Contact suppression"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:477
-msgid "Show contact's profile request"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:493
-#, python-format
-msgid "Profile received: [%s]"
-msgstr ""
-
-#: frontends/src/wix/main_window.py:512
-msgid "Exiting..."
-msgstr ""
-
-#: frontends/src/wix/main_window.py:519
-msgid "Tray Click"
-msgstr ""
-
-#: frontends/src/wix/profile_manager.py:46
-msgid "Profile:"
-msgstr ""
-
-#: frontends/src/wix/profile_manager.py:59
-msgid "Login"
-msgstr ""
-
-#: frontends/src/wix/profile_manager.py:95
-msgid "Please enter the new profile name"
-msgstr ""
-
-#: frontends/src/wix/profile_manager.py:111
-#, python-format
-msgid "Are you sure to delete the profile [%s]"
-msgstr ""
-
-#: frontends/src/wix/profile_manager.py:131
-msgid "You must select a profile or create a new one before connecting"
-msgstr ""
-
-#: frontends/src/wix/profile_manager.py:148
-msgid "Saving new JID and server"
-msgstr ""
-
-#: frontends/src/wix/profile_manager.py:152
-msgid "Saving new password"
-msgstr ""
-
-#: frontends/src/wix/profile_manager.py:158
-msgid "Profile error"
-msgstr ""
-
-#: frontends/src/wix/profile.py:34
-msgid "Full Name"
-msgstr ""
-
-#: frontends/src/wix/profile.py:35
-msgid "Nickname"
-msgstr ""
-
-#: frontends/src/wix/profile.py:36
-msgid "Birthday"
-msgstr ""
-
-#: frontends/src/wix/profile.py:37
-msgid "Phone #"
-msgstr ""
-
-#: frontends/src/wix/profile.py:38
-msgid "Website"
-msgstr ""
-
-#: frontends/src/wix/profile.py:39
-msgid "E-mail"
-msgstr ""
-
-#: frontends/src/wix/profile.py:40
-msgid "Avatar"
-msgstr ""
-
-#: frontends/src/wix/profile.py:88 frontends/src/wix/xmlui.py:297
-msgid "close"
-msgstr ""
-
-#: frontends/src/wix/quiz_game.py:168
+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
+msgid "Memory initialised"
+msgstr ""
+
+#: src/core/sat_main.py:154
+msgid "Backend is ready"
+msgstr ""
+
+#: src/core/sat_main.py:189
+#, python-brace-format
 msgid ""
-"Quel dommage, personne n'a trouvé la réponse\n"
-"\n"
-"Attention, la prochaine question arrive..."
-msgstr ""
-
-#: frontends/src/wix/xmlui.py:137
-#, python-format
-msgid "Can't find value [%s] to select"
-msgstr ""
-
-#: frontends/src/wix/xmlui.py:175
-msgid "select"
-msgstr ""
-
-#: src/core/sat_main.py:97
-#, python-format
-msgid "Constant %(name)s overrided with [%(value)s]"
-msgstr ""
-
-#: src/core/sat_main.py:102
-msgid "Trying to access an undefined constant"
-msgstr ""
-
-#: src/core/sat_main.py:109
-msgid "Trying to redefine a constant"
-msgstr ""
-
-#: src/core/sat_main.py:177
-msgid "Memory initialised"
-msgstr ""
-
-#: src/core/sat_main.py:207
-#, python-format
-msgid "Dependency plugin not found: [%s]"
-msgstr ""
-
-#: src/core/sat_main.py:214
-#, python-format
-msgid "importing plugin: %s"
-msgstr ""
-
-#: src/core/sat_main.py:233
-msgid "Trying to connect a non-exsitant profile"
-msgstr ""
-
-#: src/core/sat_main.py:237
+"Can't import plugin [{path}]:\n"
+"{error}"
+msgstr ""
+
+#: src/core/sat_main.py:202
+#, python-brace-format
+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
+msgid "Recommended plugin not found: {}"
+msgstr ""
+
+#: src/core/sat_main.py:248
+#, python-brace-format
+msgid "Can't import plugin {name}: {error}"
+msgstr ""
+
+#: src/core/sat_main.py:311
 msgid "already connected !"
 msgstr ""
 
-#: src/core/sat_main.py:255
-msgid "Can't parse port value, using default value"
-msgstr ""
-
-#: src/core/sat_main.py:283
-msgid "setting plugins parents"
-msgstr ""
-
-#: src/core/sat_main.py:304
+#: src/core/sat_main.py:331
 msgid "not connected !"
 msgstr ""
 
-#: src/core/sat_main.py:307
-msgid "Disconnecting..."
-msgstr ""
-
-#: src/core/sat_main.py:317 src/memory/memory.py:1027
-msgid "Asking contacts for a non-existant profile"
-msgstr ""
-
-#: src/core/sat_main.py:328
-msgid "Asking group's contacts for a non-existant profile"
-msgstr ""
-
-#: src/core/sat_main.py:337
+#: src/core/sat_main.py:406
 msgid "Trying to remove reference to a client not referenced"
 msgstr ""
 
-#: src/core/sat_main.py:349
+#: src/core/sat_main.py:418
 msgid "running app"
 msgstr ""
 
-#: src/core/sat_main.py:353
-msgid "stopping app"
-msgstr ""
-
-#: src/core/sat_main.py:414
-msgid "No user, password or server given, can't register new account."
-msgstr ""
-
 #: src/core/sat_main.py:422
-#, python-format
-msgid "Are you sure to register new account [%(user)s] to server %(server)s ?"
-msgstr ""
-
-#: src/core/sat_main.py:427
-#, python-format
-msgid "register Confirmation CB ! (%s)"
-msgstr ""
-
-#: src/core/sat_main.py:442
-#, python-format
-msgid "setting param: %(name)s=%(value)s in category %(category)s"
-msgstr ""
-
-#: src/core/sat_main.py:452
+msgid "stopping app"
+msgstr ""
+
+#: src/core/sat_main.py:482
+msgid "Unexpected error: {}"
+msgstr ""
+
+#: src/core/sat_main.py:498
 msgid "asking connection status for a non-existant profile"
 msgstr ""
 
-#: src/core/sat_main.py:518
-#, python-format
-msgid "Sending jabber message of type [%(type)s] to %(to)s..."
-msgstr ""
-
-#: src/core/sat_main.py:556
-msgid "Trying to send a message with no profile"
-msgstr ""
-
-#: src/core/sat_main.py:603
+#: src/core/sat_main.py:538
 #, python-format
 msgid "subsciption request [%(subs_type)s] for %(jid)s"
 msgstr ""
 
-#: src/core/sat_main.py:716 src/core/sat_main.py:733
-#, python-format
-msgid "Requested disco info on %s"
-msgstr ""
-
-#: src/core/sat_main.py:718
-#, python-format
-msgid "Feature found: %s"
-msgstr ""
-
-#: src/core/sat_main.py:721
-#, python-format
-msgid "Identity found: [%(category)s/%(type)s] %(identity)s"
-msgstr ""
-
-#: src/core/sat_main.py:735
-#, python-format
-msgid "Identity added: (%(category)s,%(type)s) ==> %(entity)s [%(profile)s]"
-msgstr ""
-
-#: src/core/sat_main.py:742
-#, python-format
-msgid ""
-"Can't get information on identity [%(entity)s] for profile [%(profile)s]"
-msgstr ""
-
-#: src/core/sat_main.py:747
-msgid ""
-"Using jabberfr workaround, be sure your domain has at least two levels (e.g. "
-"\"example.tld\", not \"example\" alone)"
-msgstr ""
-
-#: src/core/sat_main.py:771
-msgid "action_type for actionResultExt must be DICT_DICT, fixing it"
-msgstr ""
-
-#: src/core/sat_main.py:785
-msgid "Asking confirmation a non-existant profile"
-msgstr ""
-
-#: src/core/sat_main.py:787
-msgid "Attempt to register two callbacks for the same confirmation"
-msgstr ""
-
-#: src/core/sat_main.py:796
-msgid "Confirmation answer from a non-existant profile"
-msgstr ""
-
-#: src/core/sat_main.py:797
-#, python-format
-msgid "Received confirmation answer for conf_id [%(conf_id)s]: %(success)s"
-msgstr ""
-
-#: src/core/sat_main.py:797
-msgid "accepted"
-msgstr ""
-
-#: src/core/sat_main.py:797
-msgid "refused"
-msgstr ""
-
-#: src/core/sat_main.py:799
-#, python-format
-msgid "Received an unknown confirmation (%(id)s for %(profile)s)"
-msgstr ""
-
-#: src/core/sat_main.py:818
+#: src/core/sat_main.py:654
 msgid "Trying to remove an unknow progress callback"
 msgstr ""
 
-#: src/core/sat_main.py:851
+#: src/core/sat_main.py:738
 msgid "id already registered"
 msgstr ""
 
-#: src/core/sat_main.py:880
+#: src/core/sat_main.py:776
 msgid "trying to launch action with a non-existant profile"
 msgstr ""
 
-#: src/core/sat_main.py:935
+#: src/core/sat_main.py:858
 msgid "A menu with the same path and type already exists"
 msgstr ""
 
-#: src/core/xmpp.py:57
-#, python-format
-msgid "********** [%s] CONNECTED **********"
-msgstr ""
-
-#: src/core/xmpp.py:63
-msgid "XML stream is initialized"
-msgstr ""
-
-#: src/core/xmpp.py:100
-#, python-format
-msgid "********** [%s] DISCONNECTED **********"
-msgstr ""
-
-#: src/core/xmpp.py:104
-msgid "No keep_alife"
-msgstr ""
-
 #: src/core/xmpp.py:120
+msgid "Can't parse port value, using default value"
+msgstr ""
+
+#: src/core/xmpp.py:141
+msgid "setting plugins parents"
+msgstr ""
+
+#: src/core/xmpp.py:160
+msgid "Plugins initialisation error"
+msgstr ""
+
+#: src/core/xmpp.py:177
+msgid "Error while disconnecting: {}"
+msgstr ""
+
+#: src/core/xmpp.py:191
 #, python-format
-msgid "got message from: %s"
-msgstr ""
-
-#: src/core/xmpp.py:224
+msgid "********** [%s] CONNECTED **********"
+msgstr ""
+
+#: src/core/xmpp.py:200
+msgid "XML stream is initialized"
+msgstr ""
+
+#: src/core/xmpp.py:216
 #, python-format
-msgid "new contact in roster list: %s"
+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 "removing %s from roster list"
-msgstr ""
-
-#: src/core/xmpp.py:293
+msgid "********** [%s] DISCONNECTED **********"
+msgstr ""
+
+#: src/core/xmpp.py:257
+msgid "Disconnecting..."
+msgstr ""
+
+#: src/core/xmpp.py:401
+#, python-brace-format
+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
+msgid "No message found"
+msgstr ""
+
+#: src/core/xmpp.py:581
+#, python-brace-format
+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 "
+"component mode"
+msgstr ""
+
+#: src/core/xmpp.py:619
+msgid "invalid plugin mode"
+msgstr ""
+
+#: src/core/xmpp.py:717
+#, python-brace-format
+msgid "got message from: {from_}"
+msgstr ""
+
+#: src/core/xmpp.py:793
+msgid "There's no subscription between you and [{}]!"
+msgstr ""
+
+#: src/core/xmpp.py:795
+msgid "You are not subscribed to [{}]!"
+msgstr ""
+
+#: src/core/xmpp.py:797
+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:312
+#: src/core/xmpp.py:975
 #, python-format
 msgid "presence update for [%(entity)s] (unavailable, statuses=%(statuses)s)"
 msgstr ""
 
-#: src/core/xmpp.py:355
+#: src/core/xmpp.py:1038
 msgid "sending automatic \"from\" subscription request"
 msgstr ""
 
-#: src/core/xmpp.py:363
+#: src/core/xmpp.py:1046
 #, python-format
 msgid "subscription approved for [%s]"
 msgstr ""
 
-#: src/core/xmpp.py:367
+#: src/core/xmpp.py:1050
 #, python-format
 msgid "unsubscription confirmed for [%s]"
 msgstr ""
 
-#: src/core/xmpp.py:371
+#: src/core/xmpp.py:1055
 #, python-format
 msgid "subscription request from [%s]"
 msgstr ""
 
-#: src/core/xmpp.py:375
+#: src/core/xmpp.py:1060
 msgid "sending automatic subscription acceptance"
 msgstr ""
 
-#: src/core/xmpp.py:382
+#: src/core/xmpp.py:1068
 #, python-format
 msgid "unsubscription asked for [%s]"
 msgstr ""
 
-#: src/core/xmpp.py:385
+#: src/core/xmpp.py:1072
 msgid "automatic contact deletion"
 msgstr ""
 
-#: src/core/xmpp.py:417
-msgid "Registration asked for"
-msgstr ""
-
-#: src/core/xmpp.py:438 src/plugins/plugin_xep_0077.py:90
+#: src/core/xmpp.py:1104
+#, python-format
+msgid "Registration asked for %(user)s@%(host)s"
+msgstr ""
+
+#: src/core/xmpp.py:1107
 #, python-format
-msgid "registration answer: %s"
-msgstr ""
-
-#: src/core/xmpp.py:440
-msgid "Registration successfull"
-msgstr ""
-
-#: src/core/xmpp.py:445 src/plugins/plugin_xep_0077.py:86
-#: src/plugins/plugin_xep_0077.py:96
+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/core/xmpp.py:450 src/plugins/plugin_xep_0077.py:98
-msgid "Username already exists, please choose an other one"
-msgstr ""
-
-#: src/core/xmpp.py:453
+#: src/memory/disco.py:219
+#, 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
+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
+msgid "Memory manager init"
+msgstr ""
+
+#: src/memory/memory.py:244
+msgid "Loading default params template"
+msgstr ""
+
+#: src/memory/memory.py:276
+#, python-format
+msgid "Parameters loaded from file: %s"
+msgstr ""
+
+#: src/memory/memory.py:279
+#, python-format
+msgid "Can't load parameters from file: %s"
+msgstr ""
+
+#: src/memory/memory.py:294
+#, python-format
+msgid "Parameters saved to file: %s"
+msgstr ""
+
+#: src/memory/memory.py:297
+#, python-format
+msgid "Can't save parameters to file: %s"
+msgstr ""
+
+#: src/memory/memory.py:426
+#, python-format
+msgid "[%s] Profile session purge"
+msgstr ""
+
+#: src/memory/memory.py:431
 #, python-format
-msgid "Registration failed (%s)"
-msgstr ""
-
-#: src/memory/memory.py:143
+msgid "Trying to purge roster status cache for a profile not in memory: [%s]"
+msgstr ""
+
+#: src/memory/memory.py:441
+msgid "requesting no profiles at all"
+msgstr ""
+
+#: src/memory/memory.py:496
+#, python-brace-format
+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
+msgid "Need a bare jid to delete all resources"
+msgstr ""
+
+#: src/memory/memory.py:954
+#, python-format
+msgid "Trying to encrypt a value for %s while the personal key is undefined!"
+msgstr ""
+
+#: src/memory/memory.py:969
+#, python-format
+msgid "Trying to decrypt a value for %s while the personal key is undefined!"
+msgstr ""
+
+#: src/memory/memory.py:992
+#, python-format
+msgid "Personal data (%(ns)s, %(key)s) has been successfuly encrypted"
+msgstr ""
+
+#: src/memory/memory.py:1019
+msgid "Asking waiting subscriptions for a non-existant profile"
+msgstr ""
+
+#: src/memory/params.py:82
 msgid "Connection"
 msgstr ""
 
-#: src/memory/memory.py:144
+#: src/memory/params.py:84
+msgid "Chat history limit"
+msgstr ""
+
+#: src/memory/params.py:86
+msgid "Show offline contacts"
+msgstr ""
+
+#: src/memory/params.py:88
+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/memory.py:145
+#: src/memory/params.py:92
 msgid "Connect on frontend startup"
 msgstr ""
 
-#: src/memory/memory.py:146
+#: src/memory/params.py:93
 msgid "Disconnect on frontend closure"
 msgstr ""
 
-#: src/memory/memory.py:147 src/plugins/plugin_xep_0249.py:69
-msgid "Misc"
-msgstr ""
-
-#: src/memory/memory.py:202
+#: src/memory/params.py:154
 #, python-format
 msgid "Trying to purge cache of a profile not in memory: [%s]"
 msgstr ""
 
-#: src/memory/memory.py:223
-#, python-format
-msgid "The profile [%s] already exists"
-msgstr ""
-
-#: src/memory/memory.py:239
+#: src/memory/params.py:178
 msgid "The profile name already exists"
 msgstr ""
 
-#: src/memory/memory.py:250
+#: src/memory/params.py:193
 msgid "Trying to delete an unknown profile"
 msgstr ""
 
-#: src/memory/memory.py:253
+#: src/memory/params.py:199
 msgid "Trying to delete a connected profile"
 msgstr ""
 
-#: src/memory/memory.py:268
+#: src/memory/params.py:217
 msgid "No default profile, returning first one"
 msgstr ""
 
-#: src/memory/memory.py:272
+#: src/memory/params.py:221
 msgid "No profile exist yet"
 msgstr ""
 
-#: src/memory/memory.py:280
-msgid "Trying to access an unknown profile"
-msgstr ""
-
-#: src/memory/memory.py:361
+#: src/memory/params.py:229
+#, python-format
+msgid "Trying to access an unknown profile (%s)"
+msgstr ""
+
+#: src/memory/params.py:314
 msgid "Trying to register frontends parameters with no specified app: aborted"
 msgstr ""
 
-#: src/memory/memory.py:366
+#: src/memory/params.py:319
 #, python-format
 msgid "Trying to register twice frontends parameters for %(app)s: aborted"
 msgstr ""
 
-#: src/memory/memory.py:377
+#: src/memory/params.py:330
 #, python-format
 msgid "Can't determine default value for [%(category)s/%(name)s]: %(reason)s"
 msgstr ""
 
-#: src/memory/memory.py:392 src/memory/memory.py:437 src/memory/memory.py:472
+#: src/memory/params.py:346 src/memory/params.py:478 src/memory/params.py:523
 #, python-format
 msgid "Requested param [%(name)s] in category [%(category)s] doesn't exist !"
 msgstr ""
 
-#: src/memory/memory.py:448
+#: src/memory/params.py:381
+#, 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
+#, 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
 msgid "Requesting a param for an non-existant profile"
 msgstr ""
 
-#: src/memory/memory.py:452
+#: src/memory/params.py:498
 msgid "Requesting synchronous param for not connected profile"
 msgstr ""
 
-#: src/memory/memory.py:476
+#: src/memory/params.py:527
 #, python-format
 msgid ""
 "Trying to get parameter '%(param)s' in category '%(cat)s' without "
 "authorization!!!"
 msgstr ""
 
-#: src/memory/memory.py:488
+#: src/memory/params.py:539
 msgid "Requesting a param for a non-existant profile"
 msgstr ""
 
-#: src/memory/memory.py:622 src/memory/memory.py:638 src/memory/memory.py:661
+#: src/memory/params.py:564 src/memory/params.py:742 src/memory/params.py:759
 msgid "Asking params for inexistant profile"
 msgstr ""
 
-#: src/memory/memory.py:713
+#: src/memory/params.py:817
 msgid "Trying to set parameter for an unknown profile"
 msgstr ""
 
-#: src/memory/memory.py:718
+#: src/memory/params.py:822
 #, python-format
 msgid "Requesting an unknown parameter (%(category)s/%(name)s)"
 msgstr ""
 
-#: src/memory/memory.py:723
+#: src/memory/params.py:827
 #, python-format
 msgid ""
 "Trying to set parameter '%(param)s' in category '%(cat)s' without "
 "authorization!!!"
 msgstr ""
 
-#: src/memory/memory.py:776
-msgid "Memory manager init"
-msgstr ""
-
-#: src/memory/memory.py:791
-msgid "Loading default params template"
-msgstr ""
-
-#: src/memory/memory.py:804
-msgid "Can't read main config !"
-msgstr ""
-
-#: src/memory/memory.py:838
-#, python-format
-msgid "Parameters loaded from file: %s"
-msgstr ""
-
-#: src/memory/memory.py:841
-#, python-format
-msgid "Can't load parameters from file: %s"
-msgstr ""
-
-#: src/memory/memory.py:857
-#, python-format
-msgid "[%s] Profile session started"
-msgstr ""
-
-#: src/memory/memory.py:863
-#, python-format
-msgid "[%s] Profile session purge"
-msgstr ""
-
-#: src/memory/memory.py:868
-#, python-format
-msgid "Trying to purge roster status cache for a profile not in memory: [%s]"
-msgstr ""
-
-#: src/memory/memory.py:878
-#, python-format
-msgid "Parameters saved to file: %s"
-msgstr ""
-
-#: src/memory/memory.py:881
-#, python-format
-msgid "Can't save parameters to file: %s"
-msgstr ""
-
-#: src/memory/memory.py:967
+#: src/memory/params.py:839
 #, python-format
 msgid ""
-"Entities (%(category)s/%(type)s) of %(server)s not available, maybe they "
-"haven't been asked yet?"
-msgstr ""
-
-#: src/memory/memory.py:996
-msgid "Trying find server feature for a non-existant profile"
-msgstr ""
-
-#: src/memory/memory.py:1004
+"Trying to set parameter '%(param)s' in category '%(cat)s' with an non-"
+"integer value"
+msgstr ""
+
+#: src/memory/params.py:851
 #, python-format
-msgid "Features of %s not available, maybe they haven't been asked yet?"
-msgstr ""
-
-#: src/memory/memory.py:1013
-msgid "Asking contacts for a non-existant or not connected profile"
-msgstr ""
-
-#: src/memory/memory.py:1017
-msgid "Entity not in cache"
-msgstr ""
-
-#: src/memory/memory.py:1041
-msgid "Trying to add presence status to a non-existant profile"
-msgstr ""
-
-#: src/memory/memory.py:1061 src/memory/memory.py:1092
-msgid "Trying to get entity data for a non-existant profile"
-msgstr ""
-
-#: src/memory/memory.py:1135
-msgid "Asking waiting subscriptions for a non-existant profile"
-msgstr ""
-
-#: src/memory/persistent.py:38
+msgid "Setting parameter (%(category)s, %(name)s) = %(value)s"
+msgstr ""
+
+#: src/memory/params.py:873
+msgid "Trying to encrypt a password while the personal key is undefined!"
+msgstr ""
+
+#: src/memory/persistent.py:39
 msgid "PersistentDict can't be used before memory initialisation"
 msgstr ""
 
-#: src/memory/sqlite.py:83
+#: src/memory/sqlite.py:127
 msgid "Connecting database"
 msgstr ""
 
-#: src/memory/sqlite.py:88
+#: src/memory/sqlite.py:139
 msgid "Can't activate foreign keys"
 msgstr ""
 
-#: src/memory/sqlite.py:91
+#: src/memory/sqlite.py:142
 msgid "The database is new, creating the tables"
 msgstr ""
 
-#: src/memory/sqlite.py:162
+#: src/memory/sqlite.py:251
 #, python-format
 msgid "Can't delete profile [%s]"
 msgstr ""
 
-#: src/memory/sqlite.py:167
+#: src/memory/sqlite.py:269
 #, python-format
 msgid "Profile [%s] deleted"
 msgstr ""
 
-#: src/memory/sqlite.py:181
+#: src/memory/sqlite.py:285
 msgid "loading general parameters from database"
 msgstr ""
 
-#: src/memory/sqlite.py:194
+#: src/memory/sqlite.py:300
 msgid "loading individual parameters from database"
 msgstr ""
 
-#: src/memory/sqlite.py:216
+#: src/memory/sqlite.py:324
 #, python-format
 msgid "Can't set general parameter (%(category)s/%(name)s) in database"
 msgstr ""
 
-#: src/memory/sqlite.py:227
+#: 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:247
-#, python-format
+#: 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 message in history: from [%(from_jid)s] to [%(to_jid)s] "
-"==> [%(message)s]"
-msgstr ""
-
-#: src/memory/sqlite.py:312
+"Can't save following thread in history (uid: {uid}): thread:{thread}), "
+"parent:{parent}"
+msgstr ""
+
+#: src/memory/sqlite.py:379
+#, python-brace-format
+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:314 src/memory/sqlite.py:330
+#: 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:327
+#: src/memory/sqlite.py:552
 #, python-format
 msgid "loading individual private values [namespace: %s] from database"
 msgstr ""
 
-#: src/memory/sqlite.py:339
+#: 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:351
+#: 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:361
+#: 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:372
+#: 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:386
+#: src/memory/sqlite.py:621
 #, python-format
 msgid "loading general private binary values [namespace: %s] from database"
 msgstr ""
 
-#: src/memory/sqlite.py:388 src/memory/sqlite.py:404
+#: 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:401
+#: src/memory/sqlite.py:638
 #, python-format
 msgid "loading individual private binary values [namespace: %s] from database"
 msgstr ""
 
-#: src/memory/sqlite.py:413
+#: 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:425
+#: 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:435
+#: 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:446
+#: 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:512
+#: src/memory/sqlite.py:761
 msgid ""
 "Your local schema is up-to-date, but database versions mismatch, fixing it..."
 msgstr ""
 
-#: src/memory/sqlite.py:522
+#: 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:526
+#: 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:528
+#: src/memory/sqlite.py:778
 #, python-format
 msgid ""
 "Here are the commands that should fix the situation, use at your own risk "
@@ -2036,410 +2158,651 @@
 "### END SQL ###\n"
 msgstr ""
 
-#: src/memory/sqlite.py:532
-msgid "Database schema has changed, local database will be updated"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:50
+#: src/memory/sqlite.py:783
 msgid ""
-"This plugin allow to manage your CouchSurfing account throught your SàT "
-"frontend"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:70
-msgid "Plugin CS initialization"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:75
-msgid "Plugin"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:75
-msgid "Launch CoushSurfing management interface"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:95
-msgid ""
-"Impossible to contact CS website, please check your login/password, "
-"connection or try again later"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:103
+"Database content needs a specific processing, local database will be updated"
+msgstr ""
+
+#: src/memory/sqlite.py:785
+msgid "Database schema has changed, local database will be updated"
+msgstr ""
+
+#: src/plugins/plugin_adhoc_dbus.py:53
+msgid "Add D-Bus management to Ad-Hoc commands"
+msgstr ""
+
+#: src/plugins/plugin_adhoc_dbus.py:60
+msgid "plugin Ad-Hoc D-Bus initialization"
+msgstr ""
+
+#: src/plugins/plugin_adhoc_dbus.py:169
+msgid "Command selection"
+msgstr ""
+
+#: src/plugins/plugin_adhoc_dbus.py:206 src/plugins/plugin_xep_0050.py:439
+msgid "Updated"
+msgstr ""
+
+#: src/plugins/plugin_adhoc_dbus.py:210
+msgid "Command sent"
+msgstr ""
+
+#: src/plugins/plugin_blog_import_dokuwiki.py:52
+msgid "Blog importer for Dokuwiki blog engine."
+msgstr ""
+
+#: src/plugins/plugin_blog_import_dokuwiki.py:55
+msgid "import posts from Dokuwiki blog engine"
+msgstr ""
+
+#: src/plugins/plugin_blog_import_dokuwiki.py:57
 msgid ""
-"You have to fill your CouchSurfing login & password in parameters before "
-"using this interface"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:162
-msgid "Messages"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:163
-#, python-format
+"This importer handle Dokuwiki blog engine.\n"
+"\n"
+"To use it, you need an admin access to a running Dokuwiki website\n"
+"(local or on the Internet). The importer retrieves the data using\n"
+"the XMLRPC Dokuwiki API.\n"
+"\n"
+"You can specify a namespace (that could be a namespace directory\n"
+"or a single post) or leave it empty to use the root namespace \"/\"\n"
+"and import all the posts.\n"
+"\n"
+"You can specify a new media repository to modify the internal\n"
+"media links and make them point to the URL of your choice, but\n"
+"note that the upload is not done automatically: a temporary\n"
+"directory will be created on your local drive and you will\n"
+"need to upload it yourself to your repository via SSH or FTP.\n"
+"\n"
+"Following options are recognized:\n"
+"\n"
+"location: DokuWiki site URL\n"
+"user: DokuWiki admin user\n"
+"passwd: DokuWiki admin password\n"
+"namespace: DokuWiki namespace to import (default: root namespace \"/\")\n"
+"media_repo: URL to the new remote media repository (default: none)\n"
+"limit: maximal number of posts to import (default: 100)\n"
+"\n"
+"Example of usage (with jp frontend):\n"
+"\n"
+"jp import dokuwiki -p dave --pwd xxxxxx --connect\n"
+"    http://127.0.1.1 -o user souliane -o passwd qwertz\n"
+"    -o namespace public:2015:10\n"
+"    -o media_repo http://media.diekulturvermittlung.at\n"
+"\n"
+"This retrieves the 100 last blog posts from http://127.0.1.1 that\n"
+"are inside the namespace \"public:2015:10\" using the Dokuwiki user\n"
+"\"souliane\", and it imports them to sat profile dave's microblog node.\n"
+"Internal Dokuwiki media that were hosted on http://127.0.1.1 are now\n"
+"pointing to http://media.diekulturvermittlung.at.\n"
+msgstr ""
+
+#: src/plugins/plugin_blog_import_dokuwiki.py:341
+msgid "plugin Dokuwiki Import initialization"
+msgstr ""
+
+#: src/plugins/plugin_blog_import_dokuwiki.py:371
+#, python-brace-format
 msgid ""
-"G'day %(name)s, you have %(nb_message)i unread message%(plural_mess)s and "
-"%(unread_CR_mess)s unread couch request message%(plural_CR)s\n"
-"If you want to send a message, select the recipient(s) in the list below"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:165
-#, python-format
-msgid "Show unread message%(plural)s in external web browser"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:168
-msgid "Subject"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:171
-msgid "Message"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:174
-msgid "send"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:195
-#, python-format
-msgid ""
-"CS friend found: %(friend_name)s (id: %(friend_id)s, link: %(friend_link)s)"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:218
+"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 ""
-"INTERNAL ERROR: no confirmation of message sent by CS, maybe the site has "
-"been modified ?"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:229
-#, python-format
-msgid "Sending message to %s"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:230
-#, python-format
+"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
 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
+msgid "Blog importer for Dotclear blog engine."
+msgstr ""
+
+#: src/plugins/plugin_blog_import_dotclear.py:44
+msgid "import posts from Dotclear blog engine"
+msgstr ""
+
+#: src/plugins/plugin_blog_import_dotclear.py:46
+msgid ""
+"This importer handle Dotclear blog engine.\n"
 "\n"
-"subject: %(subject)s\n"
-"message: \n"
-"---\n"
-"%(message)s\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"
 "\n"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:236
-msgid "Message sent"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:237
-msgid "The message has been sent to every recipients"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:250
-msgid "There is not recipient selected for this message !"
-msgstr ""
-
-#: src/plugins/deprecated_misc_cs.py:256
-#, python-format
-msgid "sending message to %(friends)s with subject [%(subject)s]"
-msgstr ""
-
-#: src/plugins/plugin_adhoc_dbus.py:48
-msgid "Add D-Bus management to Ad-Hoc commands"
-msgstr ""
-
-#: src/plugins/plugin_adhoc_dbus.py:55
-msgid "plugin Ad-Hoc D-Bus initialization"
-msgstr ""
-
-#: src/plugins/plugin_adhoc_dbus.py:164
-msgid "Command selection"
-msgstr ""
-
-#: src/plugins/plugin_adhoc_dbus.py:201 src/plugins/plugin_xep_0050.py:372
-msgid "Updated"
-msgstr ""
-
-#: src/plugins/plugin_adhoc_dbus.py:205
-msgid "Command sent"
-msgstr ""
-
-#: src/plugins/plugin_exp_command_export.py:36
+"location: you must use the absolute path to your backup for the location "
+"parameter\n"
+msgstr ""
+
+#: src/plugins/plugin_blog_import_dotclear.py:242
+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
 msgid "Implementation of command export"
 msgstr ""
 
-#: src/plugins/plugin_exp_command_export.py:86
+#: src/plugins/plugin_exp_command_export.py:89
 msgid "Plugin command export initialization"
 msgstr ""
 
-#: src/plugins/plugin_exp_parrot.py:35
-msgid "Implementation of parrot mode (repeat messages between 2 entities)"
-msgstr ""
-
-#: src/plugins/plugin_exp_parrot.py:47
+#: src/plugins/plugin_exp_lang_detect.py:42
+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
+msgid "Misc"
+msgstr ""
+
+#: src/plugins/plugin_exp_lang_detect.py:47
+msgid "language detection"
+msgstr ""
+
+#: src/plugins/plugin_exp_lang_detect.py:65
+msgid "Language detection plugin initialization"
+msgstr ""
+
+#: src/plugins/plugin_exp_parrot.py:51
 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
+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
-msgid "Implementation of SI Pipe Transfer"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:51
+#, 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_exp_pipe.py:66
+#: 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 "SI Pipe Transfer: TimeOut reached for id %s"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:71 src/plugins/plugin_xep_0096.py:70
-msgid "kill id called on a non existant approval id"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:81
-msgid "EXP-PIPE file transfer requested"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:90
-msgid "No pipe element found"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:100 src/plugins/plugin_xep_0096.py:117
-msgid "No stream method found"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:104 src/plugins/plugin_xep_0096.py:121
-msgid "Can't find a valid stream method"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:108 src/plugins/plugin_xep_0096.py:125
-msgid "No feature element found"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:133 src/plugins/plugin_xep_0096.py:159
-msgid "dest path not found in frontend_data"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:143 src/plugins/plugin_xep_0096.py:171
+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
 msgid ""
-"Unknown stream method, this should not happen at this stage, cancelling "
-"transfer"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:153 src/plugins/plugin_xep_0096.py:186
-#, python-format
-msgid "Transfer [%s] refused"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:164 src/plugins/plugin_exp_pipe.py:249
-#: src/plugins/plugin_xep_0096.py:197
-#, python-format
-msgid "Transfer %s successfuly finished"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:175
+"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"
+"\n"
+"Here is your connection information:\n"
+"\n"
+"Login on {domain}: {profile}\n"
+"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"
+"    - 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
+msgid "Manage your account"
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:375
+msgid "Change your password"
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:376
+msgid "Current profile password"
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:378
+msgid "New password"
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:380
+msgid "New password (again)"
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:418 src/stdui/ui_profile_manager.py:62
+msgid "The provided profile password doesn't match."
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:419
+msgid "Attempt failure"
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:462
+msgid "The values entered for the new password are not equal."
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:474
+msgid "Change your password?"
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:475
+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
+msgid "Continue with changing the password?"
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:490
+#: src/plugins/plugin_misc_register_account.py:108
+msgid "Confirmation"
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:491
+msgid "Your password has been changed."
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:496
 #, python-format
-msgid "Transfer %(id)s failed with stream method %(s_method)s"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:180 src/plugins/plugin_xep_0096.py:216
-msgid "All stream methods failed, can't transfer the file"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:187
-#, python-format
-msgid "Pipe transfer refused by %s"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:188
-#, python-format
-msgid "The contact %s refused your pipe stream"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:188
-msgid "Pipe stream refused"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:190
-#, python-format
-msgid "Error during pipe stream transfer with %s"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:191
+msgid "Your password could not be changed: %s"
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:507
+msgid "Delete your account?"
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:508
+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
+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 ""
-"Something went wrong during the pipe stream session intialisation with %s"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:191
-msgid "Pipe stream error"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:197 src/plugins/plugin_xep_0096.py:233
-msgid "Protocol error during file transfer"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:202 src/plugins/plugin_xep_0096.py:238
-msgid "No feature element"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:209 src/plugins/plugin_xep_0096.py:245
-msgid "No stream method choosed"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:223 src/plugins/plugin_xep_0096.py:267
-msgid "Invalid stream method received"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:235 src/plugins/plugin_xep_0096.py:280
-msgid "Trying to send a file from an unknown profile"
-msgstr ""
-
-#: src/plugins/plugin_exp_pipe.py:254
+"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
 #, python-format
-msgid "Transfer %(id)s failed with stream method %(s_method)s %(profile)s"
-msgstr ""
-
-#: src/plugins/plugin_misc_account.py:38
-msgid "SàT account creation"
-msgstr ""
-
-#: src/plugins/plugin_misc_account.py:79
-msgid "Prosody registration success"
-msgstr ""
-
-#: src/plugins/plugin_misc_account.py:82
+msgid "Your XMPP account could not be deleted: %s"
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:555
+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
+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
+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
+msgid "blog posts and comments"
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:581
+msgid "blog posts"
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:584
+msgid "comments"
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:588
+msgid "Deletion confirmation"
+msgstr ""
+
+#: src/plugins/plugin_misc_account.py:590
+#, 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
 #, python-format
-msgid "Can't register Prosody account (error code: %(code)d): %(message)s"
-msgstr ""
-
-#: src/plugins/plugin_misc_account.py:92
-msgid "Plugin Account initialization"
-msgstr ""
-
-#: src/plugins/plugin_misc_account.py:100
-#, python-format
-msgid "Can't find %s"
-msgstr ""
-
-#: src/plugins/plugin_misc_account.py:103
-#, python-format
-msgid "Prosody path found: %s"
-msgstr ""
-
-#: src/plugins/plugin_misc_groupblog.py:61
-msgid "Implementation of microblogging with roster access"
-msgstr ""
-
-#: src/plugins/plugin_misc_groupblog.py:85
+msgid "Your %(target)s could not be deleted: %(message)s"
+msgstr ""
+
+#: src/plugins/plugin_misc_android.py:35
+msgid "Manage Android platform specificities, like pause or notifications"
+msgstr ""
+
+#: src/plugins/plugin_misc_android.py:45
+msgid "Vibrate on notifications"
+msgstr ""
+
+#: src/plugins/plugin_misc_android.py:65
+msgid "plugin Android initialization"
+msgstr ""
+
+#: src/plugins/plugin_misc_debug.py:34
+msgid "Set of method to make development and debugging easier"
+msgstr ""
+
+#: src/plugins/plugin_misc_debug.py:41
+msgid "Plugin Debug initialization"
+msgstr ""
+
+#: src/plugins/plugin_misc_extra_pep.py:37
+msgid "Display messages from extra PEP services"
+msgstr ""
+
+#: src/plugins/plugin_misc_extra_pep.py:68
+msgid "Plugin Extra PEP initialization"
+msgstr ""
+
+#: src/plugins/plugin_misc_file.py:39
+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
+msgid "Please select a file to send to {peer}"
+msgstr ""
+
+#: src/plugins/plugin_misc_file.py:45
+msgid "File sending"
+msgstr ""
+
+#: src/plugins/plugin_misc_file.py:46
+#, python-brace-format
+msgid ""
+"{peer} wants to send the file \"{name}\" to you:\n"
+"{desc}\n"
+"\n"
+"The file has a size of {size_human}\n"
+"\n"
+"Do you accept ?"
+msgstr ""
+
+#: src/plugins/plugin_misc_file.py:47
+msgid "Confirm file transfer"
+msgstr ""
+
+#: src/plugins/plugin_misc_file.py:48
+msgid "File {} already exists, are you sure you want to overwrite ?"
+msgstr ""
+
+#: src/plugins/plugin_misc_file.py:49
+msgid "File exists"
+msgstr ""
+
+#: src/plugins/plugin_misc_file.py:194
+msgid "plugin File initialization"
+msgstr ""
+
+#: src/plugins/plugin_misc_file.py:198
+msgid "Action"
+msgstr ""
+
+#: src/plugins/plugin_misc_file.py:198
+msgid "send file"
+msgstr ""
+
+#: src/plugins/plugin_misc_file.py:198
+msgid "Send a file"
+msgstr ""
+
+#: src/plugins/plugin_misc_file.py:244 src/plugins/plugin_xep_0100.py:77
+msgid "Invalid JID"
+msgstr ""
+
+#: src/plugins/plugin_misc_groupblog.py:51
+msgid "Implementation of microblogging fine permissions"
+msgstr ""
+
+#: src/plugins/plugin_misc_groupblog.py:59
 msgid "Group blog plugin initialization"
 msgstr ""
 
-#: src/plugins/plugin_misc_groupblog.py:147
-#: src/plugins/plugin_misc_room_game.py:422
-#, python-format
-msgid "No client for this profile key: %s"
-msgstr ""
-
-#: src/plugins/plugin_misc_groupblog.py:153
-msgid "Looking for item-access power pubsub server"
-msgstr ""
-
-#: src/plugins/plugin_misc_groupblog.py:161
-#, python-format
-msgid "item-access powered pubsub service found: [%s]"
-msgstr ""
-
-#: src/plugins/plugin_misc_groupblog.py:171
-msgid "No item-access powered pubsub server found, can't use group blog"
-msgstr ""
-
-#: src/plugins/plugin_misc_groupblog.py:320
-msgid "Unknown access_type"
-msgstr ""
-
-#: src/plugins/plugin_misc_groupblog.py:376
-msgid "Unknown access type"
-msgstr ""
-
-#: src/plugins/plugin_misc_imap.py:46
+#: 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
+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:64
+#: src/plugins/plugin_misc_imap.py:62
 msgid "Plugin Imap Server initialization"
 msgstr ""
 
-#: src/plugins/plugin_misc_imap.py:71
+#: src/plugins/plugin_misc_imap.py:69
 #, python-format
 msgid "Launching IMAP server on port %d"
 msgstr ""
 
-#: src/plugins/plugin_misc_imap.py:439
+#: src/plugins/plugin_misc_imap.py:437
 msgid "IMAP server connection started"
 msgstr ""
 
-#: src/plugins/plugin_misc_imap.py:442
+#: src/plugins/plugin_misc_imap.py:440
 #, python-format
 msgid "IMAP server connection lost (reason: %s)"
 msgstr ""
 
+#: src/plugins/plugin_misc_ip.py:52
+msgid "This plugin help to discover our external IP address."
+msgstr ""
+
+#: src/plugins/plugin_misc_ip.py:57
+msgid "Allow external get IP"
+msgstr ""
+
+#: src/plugins/plugin_misc_ip.py:60
+msgid "Confirm external site request"
+msgstr ""
+
+#: src/plugins/plugin_misc_ip.py:61
+#, python-brace-format
+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"
+"\n"
+"Do you agree to do this request ?\n"
+msgstr ""
+
+#: src/plugins/plugin_misc_ip.py:90
+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 "Intercept \"normal\" type messages, and put them in a Maildir type box"
-msgstr ""
-
-#: src/plugins/plugin_misc_maildir.py:60
+msgid "Block \"normal\" messages propagation"
+msgstr ""
+
+#: src/plugins/plugin_misc_maildir.py:71
 msgid "Plugin Maildir initialization"
 msgstr ""
 
-#: src/plugins/plugin_misc_maildir.py:127
+#: src/plugins/plugin_misc_maildir.py:141
 msgid "Trying to remove an mailboxUser not referenced"
 msgstr ""
 
-#: src/plugins/plugin_misc_maildir.py:128
-#: src/plugins/plugin_misc_maildir.py:147
-#: src/plugins/plugin_misc_maildir.py:286
-#: src/plugins/plugin_misc_maildir.py:290
-#: src/plugins/plugin_misc_maildir.py:294
+#: 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:146
+#: src/plugins/plugin_misc_maildir.py:160
 msgid "Boxname doesn't exist in internal data"
 msgstr ""
 
-#: src/plugins/plugin_misc_maildir.py:285
+#: src/plugins/plugin_misc_maildir.py:299
 msgid "Trying to remove an observer for an inexistant mailbox"
 msgstr ""
 
-#: src/plugins/plugin_misc_maildir.py:289
+#: 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:293
+#: src/plugins/plugin_misc_maildir.py:307
 msgid "Trying to remove an inexistant observer"
 msgstr ""
 
-#: src/plugins/plugin_misc_quiz.py:44
+#: src/plugins/plugin_misc_nat-port.py:42
+msgid "Automatic NAT port mapping using UPnP"
+msgstr ""
+
+#: src/plugins/plugin_misc_nat-port.py:57
+msgid "plugin NAT Port initialization"
+msgstr ""
+
+#: src/plugins/plugin_misc_quiz.py:41
 msgid "Implementation of Quiz game"
 msgstr ""
 
-#: src/plugins/plugin_misc_quiz.py:56
+#: src/plugins/plugin_misc_quiz.py:53
 msgid "Plugin Quiz initialization"
 msgstr ""
 
-#: src/plugins/plugin_misc_quiz.py:182
-#: src/plugins/plugin_misc_room_game.py:522
-#: src/plugins/plugin_misc_room_game.py:545
-#: src/plugins/plugin_misc_tarot.py:392 src/plugins/plugin_misc_tarot.py:406
-#, python-format
-msgid "profile %s is unknown"
-msgstr ""
-
-#: src/plugins/plugin_misc_quiz.py:254
+#: 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"
@@ -2447,173 +2810,251 @@
 "Attention, tu es prêt ?"
 msgstr ""
 
-#: src/plugins/plugin_misc_quiz.py:282 src/plugins/plugin_misc_tarot.py:474
+#: src/plugins/plugin_misc_quiz.py:282 src/plugins/plugin_misc_tarot.py:507
 #, 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:231
+#: src/plugins/plugin_misc_quiz.py:330 src/plugins/plugin_misc_radiocol.py:252
 #, python-format
 msgid "Unmanaged game element: %s"
 msgstr ""
 
-#: src/plugins/plugin_misc_radiocol.py:45
+#: src/plugins/plugin_misc_radiocol.py:53
 msgid "Implementation of radio collective"
 msgstr ""
 
-#: src/plugins/plugin_misc_radiocol.py:63
+#: src/plugins/plugin_misc_radiocol.py:71
 msgid "Radio collective initialization"
 msgstr ""
 
-#: src/plugins/plugin_misc_radiocol.py:101
-msgid "Can't access profile's data"
-msgstr ""
-
-#: src/plugins/plugin_misc_radiocol.py:125
+#: src/plugins/plugin_misc_radiocol.py:127
+msgid ""
+"The uploaded file has been rejected, only Ogg Vorbis and MP3 songs are "
+"accepted."
+msgstr ""
+
+#: src/plugins/plugin_misc_radiocol.py:146
 msgid "No more participants in the radiocol: cleaning data"
 msgstr ""
 
-#: src/plugins/plugin_misc_radiocol.py:161
+#: src/plugins/plugin_misc_radiocol.py:182
 msgid "INTERNAL ERROR: can't find full path of the song to delete"
 msgstr ""
 
-#: src/plugins/plugin_misc_radiocol.py:168
+#: src/plugins/plugin_misc_radiocol.py:189
 #, python-format
 msgid "INTERNAL ERROR: can't find %s on the file system"
 msgstr ""
 
-#: src/plugins/plugin_misc_room_game.py:45
+#: src/plugins/plugin_misc_register_account.py:42
+msgid "Register XMPP account"
+msgstr ""
+
+#: src/plugins/plugin_misc_register_account.py:49
+msgid "Plugin Register Account initialization"
+msgstr ""
+
+#: src/plugins/plugin_misc_register_account.py:67
+msgid "Missing values"
+msgstr ""
+
+#: src/plugins/plugin_misc_register_account.py:68
+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
+msgid "Registration successful."
+msgstr ""
+
+#: src/plugins/plugin_misc_register_account.py:113
+msgid "Failure"
+msgstr ""
+
+#: src/plugins/plugin_misc_register_account.py:114
+#, python-format
+msgid "Registration failed: %s"
+msgstr ""
+
+#: src/plugins/plugin_misc_register_account.py:117
+msgid "Username already exists, please choose an other one."
+msgstr ""
+
+#: src/plugins/plugin_misc_room_game.py:47
 msgid "Base class for MUC games"
 msgstr ""
 
-#: src/plugins/plugin_misc_room_game.py:197
+#: src/plugins/plugin_misc_room_game.py:212
 #, python-format
 msgid "%(user)s not allowed to join the game %(game)s in %(room)s"
 msgstr ""
 
-#: src/plugins/plugin_misc_room_game.py:331
+#: src/plugins/plugin_misc_room_game.py:348
 #, 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:376
-#, 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: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
+#, python-format
 msgid "Preparing room for %s game"
 msgstr ""
 
-#: src/plugins/plugin_misc_room_game.py:397 src/plugins/plugin_xep_0045.py:259
+#: src/plugins/plugin_misc_room_game.py:426
 msgid "Unknown profile"
 msgstr ""
 
-#: src/plugins/plugin_misc_room_game.py:503
+#: src/plugins/plugin_misc_room_game.py:521
 #, python-format
 msgid "%(game)s game already created in room %(room)s"
 msgstr ""
 
-#: src/plugins/plugin_misc_room_game.py:506
+#: src/plugins/plugin_misc_room_game.py:524
 #, 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:519
+#: src/plugins/plugin_misc_room_game.py:542
 #, python-format
 msgid "Creating %(game)s game in room %(room)s"
 msgstr ""
 
-#: src/plugins/plugin_misc_room_game.py:559
+#: src/plugins/plugin_misc_room_game.py:545
+#: src/plugins/plugin_misc_room_game.py:574
+#: src/plugins/plugin_misc_tarot.py:438
+#, python-format
+msgid "profile %s is unknown"
+msgstr ""
+
+#: src/plugins/plugin_misc_room_game.py:589
 #, python-format
 msgid "new round for %s game"
 msgstr ""
 
-#: src/plugins/plugin_misc_room_game.py:624
-msgid "Message can not be sent without a sender profile"
-msgstr ""
-
-#: src/plugins/plugin_misc_smtp.py:46
+#: 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:63
+#: src/plugins/plugin_misc_smtp.py:62
 msgid "Plugin SMTP Server initialization"
 msgstr ""
 
-#: src/plugins/plugin_misc_smtp.py:70
+#: src/plugins/plugin_misc_smtp.py:69
 #, python-format
 msgid "Launching SMTP server on port %d"
 msgstr ""
 
-#: src/plugins/plugin_misc_smtp.py:96
+#: src/plugins/plugin_misc_smtp.py:95
 #, python-format
 msgid "Can't send message: %s"
 msgstr ""
 
-#: src/plugins/plugin_misc_smtp.py:201
+#: src/plugins/plugin_misc_smtp.py:200
 msgid "SMTP server connection started"
 msgstr ""
 
-#: src/plugins/plugin_misc_smtp.py:205
+#: src/plugins/plugin_misc_smtp.py:204
 #, python-format
 msgid "SMTP server connection lost (reason: %s)"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:43
+#: src/plugins/plugin_misc_static_blog.py:41
+msgid "Plugin for static blogs"
+msgstr ""
+
+#: src/plugins/plugin_misc_static_blog.py:62
+msgid "Page title"
+msgstr ""
+
+#: src/plugins/plugin_misc_static_blog.py:64
+msgid "Banner URL"
+msgstr ""
+
+#: src/plugins/plugin_misc_static_blog.py:66
+msgid "Keywords"
+msgstr ""
+
+#: src/plugins/plugin_misc_static_blog.py:68
+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
+msgid "jid key is not present !"
+msgstr ""
+
+#: src/plugins/plugin_misc_static_blog.py:96
+msgid "Not available"
+msgstr ""
+
+#: src/plugins/plugin_misc_static_blog.py:97
+msgid "Retrieving a blog from an external domain is not implemented yet."
+msgstr ""
+
+#: src/plugins/plugin_misc_tarot.py:46
 msgid "Implementation of Tarot card game"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:55
+#: src/plugins/plugin_misc_tarot.py:58
 msgid "Plugin Tarot initialization"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:60
+#: src/plugins/plugin_misc_tarot.py:64
 msgid "Passe"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:60
+#: src/plugins/plugin_misc_tarot.py:64
 msgid "Petite"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:60
+#: src/plugins/plugin_misc_tarot.py:64
 msgid "Garde"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:60
+#: src/plugins/plugin_misc_tarot.py:64
 msgid "Garde Sans"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:60
+#: src/plugins/plugin_misc_tarot.py:64
 msgid "Garde Contre"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:102
+#: src/plugins/plugin_misc_tarot.py:107
 msgid "contrat selection"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:115
+#: src/plugins/plugin_misc_tarot.py:120
 msgid "scores"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:196 src/plugins/plugin_misc_tarot.py:227
+#: src/plugins/plugin_misc_tarot.py:201 src/plugins/plugin_misc_tarot.py:232
 #, 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:232
+#: src/plugins/plugin_misc_tarot.py:237
 #, 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:242 src/plugins/plugin_misc_tarot.py:314
+#: src/plugins/plugin_misc_tarot.py:247 src/plugins/plugin_misc_tarot.py:319
 #, python-format
 msgid ""
 "\n"
@@ -2623,127 +3064,466 @@
 "total score ==> %(total_score)i"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:292
+#: src/plugins/plugin_misc_tarot.py:297
 msgid "INTERNAL ERROR: contrat not managed (mispelled ?)"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:311
+#: src/plugins/plugin_misc_tarot.py:316
 #, 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): he "
+"%(point_limit)i (%(nb_bouts)s oulder%(plural)s%(separator)s%(bouts)s): (s)he "
 "%(victory)s"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:372
+#: src/plugins/plugin_misc_tarot.py:377
 msgid "Internal error: unmanaged game stage"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:394
+#: src/plugins/plugin_misc_tarot.py:396 src/plugins/plugin_misc_tarot.py:419
+msgid "session id doesn't exist, session has probably expired"
+msgstr ""
+
+#: src/plugins/plugin_misc_tarot.py:405
 #, python-format
 msgid "contrat [%(contrat)s] choosed by %(profile)s"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:408
+#: src/plugins/plugin_misc_tarot.py:440
 #, python-format
 msgid "Cards played by %(profile)s: [%(cards)s]"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:507
+#: src/plugins/plugin_misc_tarot.py:542
 msgid "Everybody is passing, round ended"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:514
+#: src/plugins/plugin_misc_tarot.py:549
 #, python-format
 msgid "%(player)s win the bid with %(contrat)s"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:535
+#: src/plugins/plugin_misc_tarot.py:570
 msgid "tarot: chien received"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:586
+#: src/plugins/plugin_misc_tarot.py:621
 #, python-format
 msgid "The winner of this trick is %s"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:630
+#: src/plugins/plugin_misc_tarot.py:667
 #, python-format
 msgid "Unmanaged error type: %s"
 msgstr ""
 
-#: src/plugins/plugin_misc_tarot.py:632
+#: src/plugins/plugin_misc_tarot.py:669
 #, python-format
 msgid "Unmanaged card game element: %s"
 msgstr ""
 
-#: src/plugins/plugin_misc_text_commands.py:32
+#: src/plugins/plugin_misc_text_commands.py:38
 msgid "IRC like text commands"
 msgstr ""
 
-#: src/plugins/plugin_misc_text_commands.py:42
+#: 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
 msgid "Text commands initialization"
 msgstr ""
 
-#: src/plugins/plugin_misc_text_commands.py:230
+#: src/plugins/plugin_misc_text_commands.py:143
+#, python-format
+msgid "Skipping not callable [%s] attribute"
+msgstr ""
+
+#: src/plugins/plugin_misc_text_commands.py:147
+msgid "Skipping cmd_ method"
+msgstr ""
+
+#: src/plugins/plugin_misc_text_commands.py:153
+#, python-brace-format
+msgid "Conflict for command [{old_name}], renaming it to [{new_name}]"
+msgstr ""
+
+#: src/plugins/plugin_misc_text_commands.py:157
+#, python-format
+msgid "Registered text command [%s]"
+msgstr ""
+
+#: src/plugins/plugin_misc_text_commands.py:236
+#, python-format
+msgid "Unknown command /%s. "
+msgstr ""
+
+#: src/plugins/plugin_misc_text_commands.py:242
+msgid "group discussions"
+msgstr ""
+
+#: src/plugins/plugin_misc_text_commands.py:242
+msgid "one to one discussions"
+msgstr ""
+
+#: src/plugins/plugin_misc_text_commands.py:243
+#, python-brace-format
+msgid "/{command} command only applies in {context}."
+msgstr ""
+
+#: src/plugins/plugin_misc_text_commands.py:322
 msgid "Invalid jid, can't whois"
 msgstr ""
 
-#: src/plugins/plugin_misc_text_commands.py:233
+#: src/plugins/plugin_misc_text_commands.py:328
 #, python-format
 msgid "whois for %(jid)s"
 msgstr ""
 
-#: src/plugins/plugin_misc_text_commands.py:255
+#: src/plugins/plugin_misc_text_commands.py:379
+msgid "Invalid command name [{}]\n"
+msgstr ""
+
+#: src/plugins/plugin_misc_text_commands.py:397
 #, python-format
 msgid ""
 "Text commands available:\n"
 "%s"
 msgstr ""
 
-#: src/plugins/plugin_misc_text_syntaxes.py:33 src/test/constants.py:42
+#: src/plugins/plugin_misc_text_commands.py:402
+#, python-brace-format
+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
 msgid "Composition"
 msgstr ""
 
-#: src/plugins/plugin_misc_text_syntaxes.py:58
+#: src/plugins/plugin_misc_text_syntaxes.py:63
 msgid "Management of various text syntaxes (XHTML-IM, Markdown, etc)"
 msgstr ""
 
-#: src/plugins/plugin_misc_text_syntaxes.py:99
+#: src/plugins/plugin_misc_text_syntaxes.py:102
 msgid "Text syntaxes plugin initialization"
 msgstr ""
 
-#: src/plugins/plugin_misc_xmllog.py:33
+#: src/plugins/plugin_misc_upload.py:38
+msgid "File upload management"
+msgstr ""
+
+#: src/plugins/plugin_misc_upload.py:42
+msgid "Please select a file to upload"
+msgstr ""
+
+#: src/plugins/plugin_misc_upload.py:43
+msgid "File upload"
+msgstr ""
+
+#: src/plugins/plugin_misc_upload.py:51
+msgid "plugin Upload initialization"
+msgstr ""
+
+#: src/plugins/plugin_misc_watched.py:36
+msgid "Watch for entities presence, and send notification accordingly"
+msgstr ""
+
+#: src/plugins/plugin_misc_watched.py:42
+#, python-brace-format
+msgid "Watched entity {entity} is connected"
+msgstr ""
+
+#: src/plugins/plugin_misc_watched.py:61
+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
+msgid "Display welcome message"
+msgstr ""
+
+#: src/plugins/plugin_misc_welcome.py:40
+msgid "Welcome to Libervia/Salut à Toi"
+msgstr ""
+
+#: src/plugins/plugin_misc_welcome.py:43
+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"
+"\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"
+"\n"
+"We hope that you'll enjoy using this project.\n"
+"\n"
+"The Libervia/Salut à Toi Team\n"
+msgstr ""
+
+#: src/plugins/plugin_misc_welcome.py:69
+msgid "plugin Welcome initialization"
+msgstr ""
+
+#: src/plugins/plugin_misc_xmllog.py:35
 msgid "Send raw XML logs to bridge"
 msgstr ""
 
-#: src/plugins/plugin_misc_xmllog.py:46
+#: src/plugins/plugin_misc_xmllog.py:48
 msgid "INTERNAL ERROR: Unmanaged XML type"
 msgstr ""
 
-#: src/plugins/plugin_misc_xmllog.py:65
+#: src/plugins/plugin_misc_xmllog.py:69
 msgid "Activate XML log"
 msgstr ""
 
-#: src/plugins/plugin_misc_xmllog.py:68
+#: src/plugins/plugin_misc_xmllog.py:72
 msgid "Plugin XML Log initialization"
 msgstr ""
 
-#: src/plugins/plugin_misc_xmllog.py:79
+#: src/plugins/plugin_misc_xmllog.py:83
 msgid "XML log activated"
 msgstr ""
 
-#: src/plugins/plugin_xep_0020.py:43
+#: src/plugins/plugin_sec_otr.py:47
+msgid "Implementation of OTR"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:52
+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"
+"\n"
+"Are you sure you want to drop your private key?"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:56
+msgid "Some of advanced features are disabled !"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:120
+#, python-format
+msgid "/!\\ conversation with %(other_jid)s is now UNENCRYPTED"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:127
+msgid "trusted"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:127
+msgid "untrusted"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:130
+#, python-brace-format
+msgid "{trusted} OTR conversation with {other_jid} REFRESHED"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:134
+#, python-brace-format
+msgid ""
+"{trusted} encrypted OTR conversation started with {other_jid}\n"
+"{extra_info}"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:140
+#, python-brace-format
+msgid "OTR conversation with {other_jid} is FINISHED"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:143
+msgid "Unknown OTR state"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:178
+msgid "Save is called but privkey is None !"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:230
+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
+msgid "You have no private key yet, start an OTR conversation to have one"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:358
+msgid "No private key"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:368
+#, python-brace-format
+msgid ""
+"Your fingerprint is:\n"
+"{fingerprint}\n"
+"\n"
+"Start an OTR conversation to have your correspondent one."
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:371
+msgid "Fingerprint"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:380
+#, python-brace-format
+msgid "Your correspondent {correspondent} is now TRUSTED"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:384
+#, python-brace-format
+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
+msgid ""
+"Your own fingerprint is:\n"
+"{fingerprint}"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:399
+#, python-brace-format
+msgid ""
+"Your correspondent fingerprint should be:\n"
+"{fingerprint}"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:402
+msgid "Is your correspondent fingerprint the same as here ?"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:403
+msgid "yes"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:403
+msgid "no"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:423
+msgid "You don't have a private key yet !"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:432
+msgid "Your private key has been dropped"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:437
+msgid "Confirm private key drop"
+msgstr ""
+
+#: src/plugins/plugin_sec_otr.py:454
+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
+msgid "Message discarded because closed encryption channel"
+msgstr ""
+
+#: src/plugins/plugin_syntax_wiki_dotclear.py:39
+msgid "Implementation of Dotclear wiki syntax"
+msgstr ""
+
+#: src/plugins/plugin_syntax_wiki_dotclear.py:635
+msgid "Dotclear wiki syntax plugin initialization"
+msgstr ""
+
+#: src/plugins/plugin_tmp_directory_subscription.py:36
+msgid "Implementation of directory subscription"
+msgstr ""
+
+#: src/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
+msgid "Service"
+msgstr ""
+
+#: src/plugins/plugin_tmp_directory_subscription.py:49
+msgid "Directory subscription"
+msgstr ""
+
+#: src/plugins/plugin_tmp_directory_subscription.py:49
+msgid "User directory subscription"
+msgstr ""
+
+#: src/plugins/plugin_xep_0020.py:45
 msgid "Implementation of Feature Negotiation"
 msgstr ""
 
-#: src/plugins/plugin_xep_0020.py:50
+#: src/plugins/plugin_xep_0020.py:52
 msgid "Plugin XEP_0020 initialization"
 msgstr ""
 
-#: src/plugins/plugin_xep_0020.py:71
-#, python-format
-msgid "More than one value choosed for %s, keeping the first one"
+#: src/plugins/plugin_xep_0020.py:103
+msgid "More than one value choosed for {}, keeping the first one"
 msgstr ""
 
 #: src/plugins/plugin_xep_0033.py:64
@@ -2754,590 +3534,739 @@
 msgid "Extended Stanza Addressing plugin initialization"
 msgstr ""
 
-#: src/plugins/plugin_xep_0033.py:88
+#: src/plugins/plugin_xep_0033.py:89
 msgid "XEP-0033 is being used but the server doesn't support it!"
 msgstr ""
 
-#: src/plugins/plugin_xep_0033.py:90
+#: src/plugins/plugin_xep_0033.py:92
+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:91
-msgid "TODO: addressing has be fixed by the backend... fix it in the frontend!"
-msgstr ""
-
-#: src/plugins/plugin_xep_0045.py:47
+#: 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
 msgid "Implementation of Multi-User Chat"
 msgstr ""
 
-#: src/plugins/plugin_xep_0045.py:58
+#: src/plugins/plugin_xep_0045.py:78
 msgid "Plugin XEP_0045 initialization"
 msgstr ""
 
-#: src/plugins/plugin_xep_0045.py:83
-#, python-format
-msgid "Unknown or disconnected profile (%s)"
-msgstr ""
-
-#: src/plugins/plugin_xep_0045.py:103
+#: src/plugins/plugin_xep_0045.py:95
+msgid "MUC"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:95
+msgid "configure"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:95
+msgid "Configure Multi-User Chat room"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:135 src/plugins/plugin_xep_0045.py:728
+msgid "This room has not been joined"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:168
+msgid "Room joining cancelled by user"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:173
+msgid "Rooms in {}"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:188
+msgid "room locked !"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:190
 msgid "Error while configuring the room"
 msgstr ""
 
-#: src/plugins/plugin_xep_0045.py:114
-#, python-format
-msgid "Error while joining the room %s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0045.py:116 src/plugins/plugin_xep_0045.py:308
+#: src/plugins/plugin_xep_0045.py:206
+msgid "Room {} is restricted"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:207
+msgid "This room is restricted, please enter the password"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:215
+#, python-brace-format
+msgid "Error while joining the room {room}{suffix}"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:218
 msgid "Group chat error"
 msgstr ""
 
-#: src/plugins/plugin_xep_0045.py:266
-msgid "Can't find a MUC service"
-msgstr ""
-
-#: src/plugins/plugin_xep_0045.py:281
-#, python-format
-msgid "%(profile)s is already in room %(room_jid)s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0045.py:283
-#, python-format
-msgid "[%(profile)s] is joining room %(room)s with nick %(nick)s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0045.py:306
+#: src/plugins/plugin_xep_0045.py:307
+msgid "room_jid key is not present !"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:340 src/plugins/plugin_xep_0045.py:342
+msgid "Session ID doesn't exist, session has probably expired."
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:341
+msgid "Room configuration failed"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:347
+msgid "Room configuration succeed"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:348
+msgid "The new settings have been saved."
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:395
+msgid "No MUC service found on main server"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:424
+#, python-brace-format
+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
+msgid "{profile} is already in room {room_jid}"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:451
+#, python-brace-format
+msgid "[{profile}] is joining room {room} with nick {nick}"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:590
+msgid "You must provide a member's nick to kick."
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:597
+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
+msgid "You must provide a valid JID to ban, like in '/ban contact@example.net'"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:626
+msgid "You have banned {}"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:652
+msgid ""
+"You must provide a valid JID to affiliate, like in '/affiliate "
+"contact@example.net member'"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:658
 #, python-format
-msgid "Invalid room jid: %s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0045.py:397
+msgid "You must provide a valid affiliation: %s"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:665
 #, python-format
-msgid "user %(nick)s has joined room (%(room_id)s)"
-msgstr ""
-
-#: src/plugins/plugin_xep_0045.py:409
+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
+msgid "{} is not a valid JID!"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:733
 #, python-format
-msgid "Room [%(room)s] left (%(profile)s))"
-msgstr ""
-
-#: src/plugins/plugin_xep_0045.py:415
+msgid "Nickname: %s"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:735
+#, python-format
+msgid "Entity: %s"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:737
 #, python-format
-msgid "user %(nick)s left room (%(room_id)s)"
-msgstr ""
-
-#: src/plugins/plugin_xep_0045.py:427
+msgid "Affiliation: %s"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:739
+#, python-format
+msgid "Role: %s"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:741
 #, python-format
-msgid "New subject for room (%(room_id)s): %(subject)s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0047.py:56
-msgid "Implementation of In-Band Bytestreams"
-msgstr ""
-
-#: src/plugins/plugin_xep_0047.py:64
-msgid "In-Band Bytestreams plugin initialization"
-msgstr ""
-
-#: src/plugins/plugin_xep_0047.py:79
+msgid "Status: %s"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:743
 #, python-format
-msgid "In-Band Bytestream: TimeOut reached for id %(sid)s [%(profile)s]"
-msgstr ""
-
-#: src/plugins/plugin_xep_0047.py:89 src/plugins/plugin_xep_0065.py:517
-msgid "Client no more in cache"
-msgstr ""
-
-#: src/plugins/plugin_xep_0047.py:92 src/plugins/plugin_xep_0065.py:520
-msgid "kill id called on a non existant id"
-msgstr ""
-
-#: src/plugins/plugin_xep_0047.py:148
-msgid "IBB stream opening"
+msgid "Show: %s"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:868
+#, python-brace-format
+msgid "user {nick} has joined room {room_id}"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:883
+msgid "=> {} has joined the room"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:899
+#, python-brace-format
+msgid "Room ({room}) left ({profile})"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:910
+#, python-brace-format
+msgid "user {nick} left room {room_id}"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:922
+msgid "<= {} has left the room"
+msgstr ""
+
+#: src/plugins/plugin_xep_0045.py:1034
+#, python-brace-format
+msgid "New subject for room ({room_id}): {subject}"
+msgstr ""
+
+#: src/plugins/plugin_xep_0047.py:60
+msgid "Implementation of In-Band Bytestreams"
+msgstr ""
+
+#: src/plugins/plugin_xep_0047.py:69
+msgid "In-Band Bytestreams plugin initialization"
 msgstr ""
 
 #: src/plugins/plugin_xep_0047.py:158
-#, python-format
-msgid "malformed IBB transfer: %s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0047.py:162
+msgid "IBB stream opening"
+msgstr ""
+
+#: src/plugins/plugin_xep_0047.py:168
 #, python-format
 msgid "Ignoring unexpected IBB transfer: %s"
 msgstr ""
 
-#: src/plugins/plugin_xep_0047.py:166 src/plugins/plugin_xep_0047.py:242
+#: src/plugins/plugin_xep_0047.py:172
 msgid "sended jid inconsistency (man in the middle attack attempt ?)"
 msgstr ""
 
-#: src/plugins/plugin_xep_0047.py:195
+#: src/plugins/plugin_xep_0047.py:201
 msgid "IBB stream closing"
 msgstr ""
 
-#: src/plugins/plugin_xep_0047.py:235
+#: src/plugins/plugin_xep_0047.py:225
 msgid "Received data for an unknown session id"
 msgstr ""
 
-#: src/plugins/plugin_xep_0047.py:249
+#: src/plugins/plugin_xep_0047.py:232
+#, python-brace-format
+msgid ""
+"sended jid inconsistency (man in the middle attack attempt ?)\n"
+"initial={initial}\n"
+"given={given}"
+msgstr ""
+
+#: src/plugins/plugin_xep_0047.py:239
 msgid "Sequence error"
 msgstr ""
 
-#: src/plugins/plugin_xep_0047.py:262
+#: src/plugins/plugin_xep_0047.py:254
 msgid "Invalid base64 data"
 msgstr ""
 
-#: src/plugins/plugin_xep_0047.py:295 src/plugins/plugin_xep_0065.py:561
-msgid "stream length not managed yet"
-msgstr ""
-
-#: src/plugins/plugin_xep_0047.py:324 src/plugins/plugin_xep_0065.py:604
-msgid "Transfer failed"
-msgstr ""
-
-#: src/plugins/plugin_xep_0050.py:56
+#: src/plugins/plugin_xep_0048.py:44
+msgid "Implementation of bookmarks"
+msgstr ""
+
+#: src/plugins/plugin_xep_0048.py:57
+msgid "Bookmarks plugin initialization"
+msgstr ""
+
+#: src/plugins/plugin_xep_0048.py:61
+msgid "Bookmarks"
+msgstr ""
+
+#: src/plugins/plugin_xep_0048.py:61
+msgid "Use and manage bookmarks"
+msgstr ""
+
+#: src/plugins/plugin_xep_0048.py:109
+msgid "Private XML storage not available"
+msgstr ""
+
+#: src/plugins/plugin_xep_0048.py:218
+msgid "No room jid selected"
+msgstr ""
+
+#: src/plugins/plugin_xep_0048.py:236
+msgid "Bookmarks manager"
+msgstr ""
+
+#: src/plugins/plugin_xep_0048.py:254
+msgid "Name"
+msgstr ""
+
+#: src/plugins/plugin_xep_0048.py:258
+msgid "Nickname"
+msgstr ""
+
+#: src/plugins/plugin_xep_0048.py:260
+msgid "Autojoin"
+msgstr ""
+
+#: src/plugins/plugin_xep_0048.py:307
+msgid "Bookmarks will be local only"
+msgstr ""
+
+#: src/plugins/plugin_xep_0048.py:308
+#, python-format
+msgid "Type selected for \"auto\" storage: %s"
+msgstr ""
+
+#: src/plugins/plugin_xep_0048.py:431
+msgid "Bad arguments"
+msgstr ""
+
+#: src/plugins/plugin_xep_0048.py:438
+#, python-format
+msgid "All [%s] bookmarks are being removed"
+msgstr ""
+
+#: src/plugins/plugin_xep_0048.py:446
+msgid "Bookmark added"
+msgstr ""
+
+#: src/plugins/plugin_xep_0049.py:37
+msgid "Implementation of private XML storage"
+msgstr ""
+
+#: src/plugins/plugin_xep_0049.py:45
+msgid "Plugin XEP-0049 initialization"
+msgstr ""
+
+#: src/plugins/plugin_xep_0050.py:55
+msgid "Away"
+msgstr ""
+
+#: src/plugins/plugin_xep_0050.py:58
 msgid "Left"
 msgstr ""
 
-#: src/plugins/plugin_xep_0050.py:66
+#: src/plugins/plugin_xep_0050.py:68
 msgid "Implementation of Ad-Hoc Commands"
 msgstr ""
 
-#: src/plugins/plugin_xep_0050.py:108
+#: 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:210
+#: src/plugins/plugin_xep_0050.py:214
 msgid "plugin XEP-0050 initialization"
 msgstr ""
 
-#: src/plugins/plugin_xep_0050.py:218 src/plugins/plugin_xep_0100.py:65
-msgid "Service"
-msgstr ""
-
-#: src/plugins/plugin_xep_0050.py:218
-msgid "commands"
-msgstr ""
-
-#: src/plugins/plugin_xep_0050.py:218
+#: src/plugins/plugin_xep_0050.py:222
+msgid "Commands"
+msgstr ""
+
+#: src/plugins/plugin_xep_0050.py:222
 msgid "Execute ad-hoc commands"
 msgstr ""
 
-#: src/plugins/plugin_xep_0050.py:224
+#: src/plugins/plugin_xep_0050.py:228
 msgid "Status"
 msgstr ""
 
-#: src/plugins/plugin_xep_0050.py:237
+#: src/plugins/plugin_xep_0050.py:241
 msgid "Please select a command"
 msgstr ""
 
-#: src/plugins/plugin_xep_0050.py:334
-msgid "Please enter target jid"
-msgstr ""
-
-#: src/plugins/plugin_xep_0050.py:348
-msgid "status selection"
-msgstr ""
-
-#: src/plugins/plugin_xep_0050.py:376
-msgid "Status updated"
-msgstr ""
-
-#: src/plugins/plugin_xep_0054.py:65
-msgid "Implementation of vcard-temp"
-msgstr ""
-
-#: src/plugins/plugin_xep_0054.py:75
-msgid "Plugin XEP_0054 initialization"
-msgstr ""
-
-#: src/plugins/plugin_xep_0054.py:144
+#: src/plugins/plugin_xep_0050.py:259
 #, python-format
-msgid "Photo of type [%s] found"
-msgstr ""
-
-#: src/plugins/plugin_xep_0054.py:146
-msgid "Decoding binary"
-msgstr ""
-
-#: src/plugins/plugin_xep_0054.py:153
-#, python-format
-msgid "file saved to %s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0054.py:155
-#, python-format
-msgid "file [%s] already in cache"
-msgstr ""
-
-#: src/plugins/plugin_xep_0054.py:161
-msgid "parsing vcard"
-msgstr ""
-
-#: src/plugins/plugin_xep_0054.py:183
-#, python-format
-msgid "FIXME: [%s] VCard tag is not managed yet"
-msgstr ""
-
-#: src/plugins/plugin_xep_0054.py:189
-msgid "VCard found"
-msgstr ""
-
-#: src/plugins/plugin_xep_0054.py:200
-msgid "FIXME: vCard not found as first child element"
-msgstr ""
-
-#: src/plugins/plugin_xep_0054.py:206
-#, python-format
-msgid "Can't find VCard of %s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0054.py:215
-msgid "Asking vcard for a non-existant or not connected profile"
-msgstr ""
-
-#: src/plugins/plugin_xep_0054.py:219
-#, python-format
-msgid "Asking for %s's VCard"
+msgid "Invalid note type [%s], using info"
+msgstr ""
+
+#: src/plugins/plugin_xep_0050.py:269
+msgid "WARNING"
+msgstr ""
+
+#: src/plugins/plugin_xep_0050.py:270
+msgid "ERROR"
+msgstr ""
+
+#: src/plugins/plugin_xep_0050.py:302
+msgid "No known payload found in ad-hoc command result, aborting"
+msgstr ""
+
+#: src/plugins/plugin_xep_0050.py:306
+msgid "No payload found"
+msgstr ""
+
+#: src/plugins/plugin_xep_0050.py:401
+msgid "Please enter target jid"
+msgstr ""
+
+#: src/plugins/plugin_xep_0050.py:415
+msgid "status selection"
+msgstr ""
+
+#: src/plugins/plugin_xep_0050.py:443
+msgid "Status updated"
+msgstr ""
+
+#: src/plugins/plugin_xep_0054.py:73
+msgid "Implementation of vcard-temp"
+msgstr ""
+
+#: src/plugins/plugin_xep_0054.py:83
+msgid "Plugin XEP_0054 initialization"
 msgstr ""
 
 #: src/plugins/plugin_xep_0054.py:234
-#, python-format
-msgid "Asking for an uncached avatar [%s]"
-msgstr ""
-
-#: src/plugins/plugin_xep_0054.py:263
-msgid "Trying to set avatar for a non-existant or not connected profile"
-msgstr ""
-
-#: src/plugins/plugin_xep_0054.py:308
-msgid "New avatar found, requesting vcard"
-msgstr ""
-
-#: src/plugins/plugin_xep_0055.py:38
+msgid "Decoding binary"
+msgstr ""
+
+#: src/plugins/plugin_xep_0054.py:294
+msgid "VCard found"
+msgstr ""
+
+#: src/plugins/plugin_xep_0055.py:51
 msgid "Implementation of Jabber Search"
 msgstr ""
 
-#: src/plugins/plugin_xep_0055.py:45
+#: src/plugins/plugin_xep_0055.py:66
 msgid "Jabber search plugin initialization"
 msgstr ""
 
-#: src/plugins/plugin_xep_0055.py:56 src/plugins/plugin_xep_0055.py:76
+#: src/plugins/plugin_xep_0055.py:80
 msgid "Search directory"
 msgstr ""
 
-#: src/plugins/plugin_xep_0055.py:56
-msgid "Search use directory"
-msgstr ""
-
-#: src/plugins/plugin_xep_0055.py:77
-msgid "Please enter the search jid"
-msgstr ""
-
-#: src/plugins/plugin_xep_0055.py:107 src/plugins/plugin_xep_0055.py:165
+#: src/plugins/plugin_xep_0055.py:80
+msgid "Search user directory"
+msgstr ""
+
+#: src/plugins/plugin_xep_0055.py:118
+msgid "Search users"
+msgstr ""
+
+#: src/plugins/plugin_xep_0055.py:139
+msgid "Search for"
+msgstr ""
+
+#: src/plugins/plugin_xep_0055.py:141
+msgid "Simple search"
+msgstr ""
+
+#: src/plugins/plugin_xep_0055.py:149 src/plugins/plugin_xep_0055.py:249
+msgid "Search"
+msgstr ""
+
+#: src/plugins/plugin_xep_0055.py:178
+msgid "Advanced search"
+msgstr ""
+
+#: src/plugins/plugin_xep_0055.py:196
+msgid "Search on"
+msgstr ""
+
+#: src/plugins/plugin_xep_0055.py:198
+msgid "Other service"
+msgstr ""
+
+#: src/plugins/plugin_xep_0055.py:205
+msgid "Refresh fields"
+msgstr ""
+
+#: src/plugins/plugin_xep_0055.py:208
+msgid "Displaying the search form for"
+msgstr ""
+
+#: src/plugins/plugin_xep_0055.py:281
+msgid "Search results"
+msgstr ""
+
+#: src/plugins/plugin_xep_0055.py:286
+msgid "The search gave no result"
+msgstr ""
+
+#: src/plugins/plugin_xep_0055.py:328 src/plugins/plugin_xep_0055.py:429
 msgid "No query element found"
 msgstr ""
 
-#: src/plugins/plugin_xep_0055.py:112 src/plugins/plugin_xep_0055.py:170
+#: src/plugins/plugin_xep_0055.py:333 src/plugins/plugin_xep_0055.py:434
 msgid "No data form found"
 msgstr ""
 
-#: src/plugins/plugin_xep_0055.py:119
+#: src/plugins/plugin_xep_0055.py:343
 #, python-format
 msgid "Fields request failure: %s"
 msgstr ""
 
-#: src/plugins/plugin_xep_0055.py:176
+#: src/plugins/plugin_xep_0055.py:415
+msgid "The search could not be performed"
+msgstr ""
+
+#: src/plugins/plugin_xep_0055.py:444
 #, python-format
 msgid "Search request failure: %s"
 msgstr ""
 
-#: src/plugins/plugin_xep_0060.py:34
+#: src/plugins/plugin_xep_0059.py:41
+msgid "Implementation of Result Set Management"
+msgstr ""
+
+#: src/plugins/plugin_xep_0059.py:49
+msgid "Result Set Management plugin initialization"
+msgstr ""
+
+#: src/plugins/plugin_xep_0060.py:53
 msgid "Implementation of PubSub Protocol"
 msgstr ""
 
-#: src/plugins/plugin_xep_0060.py:51
+#: src/plugins/plugin_xep_0060.py:83
 msgid "PubSub plugin initialization"
 msgstr ""
 
-#: src/plugins/plugin_xep_0060.py:85
-#, python-format
-msgid "Trying to %(action)s with an unknown profile key [%(profile_key)s]"
-msgstr ""
-
-#: src/plugins/plugin_xep_0060.py:93
-msgid "INTERNAL ERROR: no handler for required profile"
-msgstr ""
-
-#: src/plugins/plugin_xep_0060.py:170
-msgid "Publish node deleted"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:90
+#: src/plugins/plugin_xep_0065.py:95
 msgid "Implementation of SOCKS5 Bytestreams"
 msgstr ""
 
-#: src/plugins/plugin_xep_0065.py:142
-msgid "Protocol init"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:338
+#: src/plugins/plugin_xep_0065.py:515
 msgid "File transfer completed, closing connection"
 msgstr ""
 
-#: src/plugins/plugin_xep_0065.py:404
-msgid "Socks 5 server connection started"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:407
-#, python-format
-msgid "Socks 5 server connection lost (reason: %s)"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:432
-msgid "Socks 5 client connection started"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:435
+#: src/plugins/plugin_xep_0065.py:667
 #, python-format
 msgid "Socks 5 client connection lost (reason: %s)"
 msgstr ""
 
-#: src/plugins/plugin_xep_0065.py:462
+#: src/plugins/plugin_xep_0065.py:695
 msgid "Plugin XEP_0065 initialization"
 msgstr ""
 
-#: src/plugins/plugin_xep_0065.py:468
-msgid "registering"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:476
-#, python-format
-msgid "Launching Socks5 Stream server on port %d"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:507
-#, python-format
-msgid "Socks5 Bytestream: TimeOut reached for id %(sid)s [%(profile)s]"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:557
-msgid "Unknown profile, this should not happen"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:614
-msgid "Internal error, can't do transfer"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:624 src/plugins/plugin_xep_0065.py:797
-msgid "No streamhost found in stream query"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:629
-msgid "A proxy server is used"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:634
-msgid "Proxy jid is not the same as in parameters, this should not happen"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:642 src/plugins/plugin_xep_0065.py:736
-msgid "activating stream"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:660
-msgid "Can't activate the proxy stream"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:690
-msgid "BS stream query"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:704
-#, python-format
-msgid "Ignoring unexpected BS transfer: %s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:713
-#, python-format
-msgid "No streamhost found in stream query %s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:722
-msgid "incomplete streamhost element"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:728
-#, python-format
-msgid "Stream proposed: host=[%(host)s] port=[%(port)s]"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:789
-msgid "Can't determine proxy information"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:793
-msgid "Bad answer received from proxy"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:800
-msgid ""
-"Multiple streamhost elements in proxy not managed, keeping only the first one"
-msgstr ""
-
-#: src/plugins/plugin_xep_0065.py:813
-msgid "No proxy found on this server"
-msgstr ""
-
-#: src/plugins/plugin_xep_0071.py:44
+#: src/plugins/plugin_xep_0065.py:750
+msgid "Socks5 Stream server launched on port {}"
+msgstr ""
+
+#: src/plugins/plugin_xep_0070.py:54
+msgid "Implementation of HTTP Requests via XMPP"
+msgstr ""
+
+#: src/plugins/plugin_xep_0070.py:64
+msgid "Plugin XEP_0070 initialization"
+msgstr ""
+
+#: src/plugins/plugin_xep_0070.py:77
+msgid "XEP-0070 Verifying HTTP Requests via XMPP (iq)"
+msgstr ""
+
+#: src/plugins/plugin_xep_0070.py:86
+msgid "XEP-0070 Verifying HTTP Requests via XMPP (message)"
+msgstr ""
+
+#: src/plugins/plugin_xep_0070.py:97
+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
+msgid "XEP-0070 reply iq"
+msgstr ""
+
+#: src/plugins/plugin_xep_0070.py:136
+msgid "XEP-0070 reply message"
+msgstr ""
+
+#: src/plugins/plugin_xep_0070.py:141
+msgid "XEP-0070 reply error"
+msgstr ""
+
+#: src/plugins/plugin_xep_0071.py:51
 msgid "Implementation of XHTML-IM"
 msgstr ""
 
-#: src/plugins/plugin_xep_0071.py:72
+#: src/plugins/plugin_xep_0071.py:79
 msgid "XHTML-IM plugin initialization"
 msgstr ""
 
-#: src/plugins/plugin_xep_0071.py:114 src/plugins/plugin_xep_0277.py:259
-msgid "Can't have xhtml and rich content at the same time"
-msgstr ""
-
-#: src/plugins/plugin_xep_0077.py:39
+#: src/plugins/plugin_xep_0071.py:196
+msgid "Can't have XHTML and rich content at the same time"
+msgstr ""
+
+#: src/plugins/plugin_xep_0077.py:40
 msgid "Implementation of in-band registration"
 msgstr ""
 
-#: src/plugins/plugin_xep_0077.py:46
+#: src/plugins/plugin_xep_0077.py:47
 msgid "Plugin XEP_0077 initialization"
 msgstr ""
 
-#: src/plugins/plugin_xep_0077.py:64
-msgid "Can't find data form"
-msgstr ""
-
 #: src/plugins/plugin_xep_0077.py:65
+msgid "Can't find data form"
+msgstr ""
+
+#: src/plugins/plugin_xep_0077.py:66
 msgid "This gateway can't be managed by SàT, sorry :("
 msgstr ""
 
-#: src/plugins/plugin_xep_0077.py:109
+#: src/plugins/plugin_xep_0077.py:91
+#, python-format
+msgid "registration answer: %s"
+msgstr ""
+
+#: src/plugins/plugin_xep_0077.py:99
+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:49
+#: src/plugins/plugin_xep_0085.py:53
 msgid "Implementation of Chat State Notifications Protocol"
 msgstr ""
 
-#: src/plugins/plugin_xep_0085.py:89
-msgid "Enable chat state notifications"
-msgstr ""
-
 #: src/plugins/plugin_xep_0085.py:93
+msgid "Enable chat state notifications"
+msgstr ""
+
+#: src/plugins/plugin_xep_0085.py:97
 msgid "Chat State Notifications plugin initialization"
 msgstr ""
 
-#: src/plugins/plugin_xep_0095.py:51
+#: src/plugins/plugin_xep_0092.py:41
+msgid "Implementation of Software Version"
+msgstr ""
+
+#: src/plugins/plugin_xep_0092.py:48
+msgid "Plugin XEP_0092 initialization"
+msgstr ""
+
+#: src/plugins/plugin_xep_0092.py:111
+#, python-format
+msgid "Operating system: %s"
+msgstr ""
+
+#: src/plugins/plugin_xep_0092.py:115
+msgid "Software version not available"
+msgstr ""
+
+#: src/plugins/plugin_xep_0092.py:117
+msgid "Client software version request timeout"
+msgstr ""
+
+#: src/plugins/plugin_xep_0095.py:40
 msgid "Implementation of Stream Initiation"
 msgstr ""
 
-#: src/plugins/plugin_xep_0095.py:58
+#: src/plugins/plugin_xep_0095.py:54
 msgid "Plugin XEP_0095 initialization"
 msgstr ""
 
-#: src/plugins/plugin_xep_0095.py:75
+#: src/plugins/plugin_xep_0095.py:80
 msgid "XEP-0095 Stream initiation"
 msgstr ""
 
-#: src/plugins/plugin_xep_0095.py:161
+#: src/plugins/plugin_xep_0095.py:122
 msgid "sending stream initiation accept answer"
 msgstr ""
 
-#: src/plugins/plugin_xep_0095.py:183
-msgid "Asking for an non-existant or not connected profile"
-msgstr ""
-
-#: src/plugins/plugin_xep_0095.py:188
+#: src/plugins/plugin_xep_0095.py:159
 #, python-format
 msgid "Stream Session ID: %s"
 msgstr ""
 
-#: src/plugins/plugin_xep_0096.py:43
+#: src/plugins/plugin_xep_0096.py:45
 msgid "Implementation of SI File Transfer"
 msgstr ""
 
-#: src/plugins/plugin_xep_0096.py:50
+#: src/plugins/plugin_xep_0096.py:53
 msgid "Plugin XEP_0096 initialization"
 msgstr ""
 
-#: src/plugins/plugin_xep_0096.py:65
-#, python-format
-msgid "SI File Transfer: TimeOut reached for id %s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0096.py:80
+#: src/plugins/plugin_xep_0096.py:119
 msgid "XEP-0096 file transfer requested"
 msgstr ""
 
-#: src/plugins/plugin_xep_0096.py:100
-#, python-format
-msgid "File proposed: name=[%(name)s] size=%(size)s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0096.py:107
-msgid "No file element found"
-msgstr ""
-
-#: src/plugins/plugin_xep_0096.py:208
-#, python-format
-msgid "Transfer %(id)s failed with stream method %(s_method)s: %(reason)s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0096.py:223
-#, python-format
-msgid "File transfer refused by %s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0096.py:224
-#, python-format
-msgid "The contact %s refused your file"
-msgstr ""
-
-#: src/plugins/plugin_xep_0096.py:224
+#: src/plugins/plugin_xep_0096.py:337
+msgid "The contact {} has refused your file"
+msgstr ""
+
+#: src/plugins/plugin_xep_0096.py:338
 msgid "File refused"
 msgstr ""
 
-#: src/plugins/plugin_xep_0096.py:226
-#, python-format
-msgid "Error during file transfer with %s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0096.py:227
-#, python-format
+#: src/plugins/plugin_xep_0096.py:341
+msgid "Error during file transfer"
+msgstr ""
+
+#: src/plugins/plugin_xep_0096.py:342
+#, python-brace-format
 msgid ""
-"Something went wrong during the file transfer session intialisation with %s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0096.py:227
+"Something went wrong during the file transfer session initialisation: "
+"{reason}"
+msgstr ""
+
+#: src/plugins/plugin_xep_0096.py:343
 msgid "File transfer error"
 msgstr ""
 
-#: src/plugins/plugin_xep_0096.py:299
-#, python-format
-msgid "Transfer %(sid)s successfuly finished [%(profile)s]"
-msgstr ""
-
-#: src/plugins/plugin_xep_0096.py:305
-#, python-format
-msgid ""
-"Transfer %(id)s failed with stream method %(s_method)s: %(reason)s "
-"[%(profile)s]"
-msgstr ""
-
-#: src/plugins/plugin_xep_0100.py:35
+#: src/plugins/plugin_xep_0096.py:351
+#, python-brace-format
+msgid "transfer {sid} successfuly finished [{profile}]"
+msgstr ""
+
+#: src/plugins/plugin_xep_0096.py:357
+#, python-brace-format
+msgid "transfer {sid} failed [{profile}]: {reason}"
+msgstr ""
+
+#: src/plugins/plugin_xep_0100.py:36
 msgid "Implementation of Gateways protocol"
 msgstr ""
 
-#: src/plugins/plugin_xep_0100.py:38
+#: 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"
@@ -3347,58 +4276,54 @@
 "time a private company)."
 msgstr ""
 
-#: src/plugins/plugin_xep_0100.py:43
+#: src/plugins/plugin_xep_0100.py:44
 msgid "Internet Relay Chat"
 msgstr ""
 
-#: src/plugins/plugin_xep_0100.py:44
-msgid "XMPP"
-msgstr ""
-
 #: src/plugins/plugin_xep_0100.py:45
-msgid "Tencent QQ"
+msgid "XMPP"
 msgstr ""
 
 #: src/plugins/plugin_xep_0100.py:46
-msgid "SIP/SIMPLE"
+msgid "Tencent QQ"
 msgstr ""
 
 #: src/plugins/plugin_xep_0100.py:47
-msgid "ICQ"
+msgid "SIP/SIMPLE"
 msgstr ""
 
 #: src/plugins/plugin_xep_0100.py:48
-msgid "Yahoo! Messenger"
+msgid "ICQ"
 msgstr ""
 
 #: src/plugins/plugin_xep_0100.py:49
-msgid "Gadu-Gadu"
+msgid "Yahoo! Messenger"
 msgstr ""
 
 #: src/plugins/plugin_xep_0100.py:50
-msgid "AOL Instant Messenger"
+msgid "Gadu-Gadu"
 msgstr ""
 
 #: src/plugins/plugin_xep_0100.py:51
+msgid "AOL Instant Messenger"
+msgstr ""
+
+#: src/plugins/plugin_xep_0100.py:52
 msgid "Windows Live Messenger"
 msgstr ""
 
-#: src/plugins/plugin_xep_0100.py:58
+#: src/plugins/plugin_xep_0100.py:59
 msgid "Gateways plugin initialization"
 msgstr ""
 
-#: src/plugins/plugin_xep_0100.py:65
-msgid "gateways"
-msgstr ""
-
-#: src/plugins/plugin_xep_0100.py:65
+#: src/plugins/plugin_xep_0100.py:66
+msgid "Gateways"
+msgstr ""
+
+#: src/plugins/plugin_xep_0100.py:66
 msgid "Find gateways"
 msgstr ""
 
-#: src/plugins/plugin_xep_0100.py:77
-msgid "Invalid JID"
-msgstr ""
-
 #: src/plugins/plugin_xep_0100.py:84
 #, python-format
 msgid "Gateways manager (%s)"
@@ -3459,162 +4384,419 @@
 msgid "item found: %s"
 msgstr ""
 
-#: src/plugins/plugin_xep_0100.py:209
+#: src/plugins/plugin_xep_0100.py:206
 #, python-format
 msgid "find gateways (target = %(target)s, profile = %(profile)s)"
 msgstr ""
 
-#: src/plugins/plugin_xep_0115.py:54
+#: src/plugins/plugin_xep_0115.py:48
 msgid "Implementation of entity capabilities"
 msgstr ""
 
-#: src/plugins/plugin_xep_0115.py:82
+#: src/plugins/plugin_xep_0115.py:56
 msgid "Plugin XEP_0115 initialization"
 msgstr ""
 
-#: src/plugins/plugin_xep_0115.py:148
+#: src/plugins/plugin_xep_0115.py:73
+msgid "Caps optimisation enabled"
+msgstr ""
+
+#: src/plugins/plugin_xep_0115.py:76
+msgid "Caps optimisation not available"
+msgstr ""
+
+#: src/plugins/plugin_xep_0115.py:143
+#, python-format
+msgid "Received invalid capabilities tag: %s"
+msgstr ""
+
+#: src/plugins/plugin_xep_0115.py:153
 #, python-format
-msgid "Capability hash generated: [%s]"
-msgstr ""
-
-#: src/plugins/plugin_xep_0163.py:42
+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
+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
+msgid "Couldn't retrieve disco info for {jid}: {error}"
+msgstr ""
+
+#: src/plugins/plugin_xep_0163.py:40
 msgid "Implementation of Personal Eventing Protocol"
 msgstr ""
 
-#: src/plugins/plugin_xep_0163.py:49
+#: src/plugins/plugin_xep_0163.py:47
 msgid "PEP plugin initialization"
 msgstr ""
 
-#: src/plugins/plugin_xep_0163.py:97
+#: src/plugins/plugin_xep_0163.py:114
 #, python-format
 msgid "Trying to send personal event with an unknown profile key [%s]"
 msgstr ""
 
-#: src/plugins/plugin_xep_0163.py:100
+#: src/plugins/plugin_xep_0163.py:117
 msgid "Trying to send personal event for an unknown type"
 msgstr ""
 
-#: src/plugins/plugin_xep_0163.py:106
+#: src/plugins/plugin_xep_0163.py:123
 msgid "No item found"
 msgstr ""
 
-#: src/plugins/plugin_xep_0163.py:111
+#: src/plugins/plugin_xep_0163.py:128
 msgid "Can't find mood element in mood event"
 msgstr ""
 
-#: src/plugins/plugin_xep_0163.py:115
+#: src/plugins/plugin_xep_0163.py:132
 msgid "No mood found"
 msgstr ""
 
-#: src/plugins/plugin_xep_0249.py:51
+#: src/plugins/plugin_xep_0166.py:48
+#, python-brace-format
+msgid "{entity} want to start a jingle session with you, do you accept ?"
+msgstr ""
+
+#: src/plugins/plugin_xep_0166.py:57
+msgid "Implementation of Jingle"
+msgstr ""
+
+#: src/plugins/plugin_xep_0166.py:91
+msgid "plugin Jingle initialization"
+msgstr ""
+
+#: src/plugins/plugin_xep_0166.py:429
+msgid "Confirm Jingle session"
+msgstr ""
+
+#: src/plugins/plugin_xep_0184.py:61
+msgid "Implementation of Message Delivery Receipts"
+msgstr ""
+
+#: src/plugins/plugin_xep_0184.py:85
+msgid "Enable message delivery receipts"
+msgstr ""
+
+#: src/plugins/plugin_xep_0184.py:89
+msgid "Plugin XEP_0184 (message delivery receipts) initialization"
+msgstr ""
+
+#: src/plugins/plugin_xep_0184.py:114
+msgid "[XEP-0184] Request acknowledgment for message id {}"
+msgstr ""
+
+#: src/plugins/plugin_xep_0184.py:147
+msgid "[XEP-0184] Receive acknowledgment for message id {}"
+msgstr ""
+
+#: src/plugins/plugin_xep_0184.py:154
+msgid "[XEP-0184] Delete waiting acknowledgment for message id {}"
+msgstr ""
+
+#: src/plugins/plugin_xep_0203.py:43
+msgid "Implementation of Delayed Delivery"
+msgstr ""
+
+#: src/plugins/plugin_xep_0203.py:50
+msgid "Delayed Delivery plugin initialization"
+msgstr ""
+
+#: src/plugins/plugin_xep_0231.py:39
+msgid "Implementation of bits of binary (used for small images/files)"
+msgstr ""
+
+#: src/plugins/plugin_xep_0231.py:48
+msgid "plugin Bits of Binary initialization"
+msgstr ""
+
+#: src/plugins/plugin_xep_0234.py:48
+msgid "Implementation of Jingle File Transfer"
+msgstr ""
+
+#: src/plugins/plugin_xep_0234.py:57
+msgid "plugin Jingle File Transfer initialization"
+msgstr ""
+
+#: src/plugins/plugin_xep_0249.py:55
 msgid "Implementation of Direct MUC Invitations"
 msgstr ""
 
-#: src/plugins/plugin_xep_0249.py:71
+#: src/plugins/plugin_xep_0249.py:75
 msgid "Auto-join MUC on invitation"
 msgstr ""
 
-#: src/plugins/plugin_xep_0249.py:77
+#: src/plugins/plugin_xep_0249.py:82
 msgid "Plugin XEP_0249 initialization"
 msgstr ""
 
-#: src/plugins/plugin_xep_0249.py:95 src/plugins/plugin_xep_0249.py:123
-msgid "Profile doesn't exists !"
-msgstr ""
-
-#: src/plugins/plugin_xep_0249.py:125
+#: src/plugins/plugin_xep_0249.py:131
 #, python-format
 msgid "Invitation accepted for room %(room)s [%(profile)s]"
 msgstr ""
 
-#: src/plugins/plugin_xep_0249.py:137
+#: src/plugins/plugin_xep_0249.py:144
 #, python-format
 msgid "Invitation received for room %(room)s [%(profile)s]"
 msgstr ""
 
-#: src/plugins/plugin_xep_0249.py:139
+#: src/plugins/plugin_xep_0249.py:146
 msgid "Error while parsing invitation"
 msgstr ""
 
-#: src/plugins/plugin_xep_0249.py:143
+#: src/plugins/plugin_xep_0249.py:155
 msgid "Invitation silently discarded because user is already in the room."
 msgstr ""
 
-#: src/plugins/plugin_xep_0249.py:154
-#, 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:154 src/plugins/plugin_xep_0249.py:157
-msgid "MUC invitation"
-msgstr ""
-
-#: src/plugins/plugin_xep_0249.py:157
+#: src/plugins/plugin_xep_0249.py:163
 #, 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_0277.py:47
-msgid "Implementation of microblogging Protocol"
-msgstr ""
-
-#: src/plugins/plugin_xep_0277.py:58
-msgid "Microblogging plugin initialization"
-msgstr ""
-
-#: src/plugins/plugin_xep_0277.py:132
-#, python-format
-msgid "No entry found in the pubsub item %s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0277.py:155
-#, python-format
-msgid "Atom entry %s misses a required element"
-msgstr ""
-
-#: src/plugins/plugin_xep_0277.py:181
+#: src/plugins/plugin_xep_0249.py:164 src/plugins/plugin_xep_0249.py:168
+msgid "MUC invitation"
+msgstr ""
+
+#: src/plugins/plugin_xep_0249.py:167
 #, python-format
-msgid "Can't parse the link element of pubsub entry %s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0277.py:190
-#, python-format
-msgid "Can't find author element in pubsub entry %s"
-msgstr ""
-
-#: src/plugins/plugin_xep_0277.py:218
+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
+msgid "Implementation of Jingle SOCKS5 Bytestreams"
+msgstr ""
+
+#: src/plugins/plugin_xep_0260.py:63
+msgid "plugin Jingle SOCKS5 Bytestreams"
+msgstr ""
+
+#: src/plugins/plugin_xep_0261.py:45
+msgid "Implementation of Jingle In-Band Bytestreams"
+msgstr ""
+
+#: src/plugins/plugin_xep_0261.py:53
+msgid "plugin Jingle In-Band Bytestreams"
+msgstr ""
+
+#: src/plugins/plugin_xep_0277.py:57
+msgid "Implementation of microblogging Protocol"
+msgstr ""
+
+#: src/plugins/plugin_xep_0277.py:69
+msgid "Microblogging plugin initialization"
+msgstr ""
+
+#: src/plugins/plugin_xep_0277.py:171
 msgid "Content of type XHTML must declare its namespace!"
 msgstr ""
 
-#: src/plugins/plugin_xep_0277.py:302
-msgid "Microblog data must contain at least 'content' key"
-msgstr ""
-
-#: src/plugins/plugin_xep_0277.py:306
-msgid "Microblog data's content value must not be empty"
-msgstr ""
-
-#: src/plugins/plugin_xep_0277.py:340
+#: src/plugins/plugin_xep_0277.py:360
+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:347
+#: src/plugins/plugin_xep_0277.py:642
 #, python-format
 msgid "Microblog node has now access %s"
 msgstr ""
 
-#: src/plugins/plugin_xep_0277.py:351
+#: src/plugins/plugin_xep_0277.py:646
 msgid "Can't set microblog access"
 msgstr ""
 
-#: src/test/constants.py:43
+#: src/plugins/plugin_xep_0280.py:38
+msgid "Message carbons"
+msgstr ""
+
+#: src/plugins/plugin_xep_0280.py:49
+msgid "Implementation of Message Carbons"
+msgstr ""
+
+#: src/plugins/plugin_xep_0280.py:74
+msgid "Plugin XEP_0280 initialization"
+msgstr ""
+
+#: src/plugins/plugin_xep_0280.py:99
+msgid "Not activating message carbons as requested in params"
+msgstr ""
+
+#: src/plugins/plugin_xep_0280.py:104
+msgid "server doesn't handle message carbons"
+msgstr ""
+
+#: src/plugins/plugin_xep_0280.py:106
+msgid "message carbons available, enabling it"
+msgstr ""
+
+#: src/plugins/plugin_xep_0280.py:114
+msgid "message carbons activated"
+msgstr ""
+
+#: src/plugins/plugin_xep_0297.py:44
+msgid "Implementation of Stanza Forwarding"
+msgstr ""
+
+#: src/plugins/plugin_xep_0297.py:52
+msgid "Stanza Forwarding plugin initialization"
+msgstr ""
+
+#: src/plugins/plugin_xep_0300.py:42
+msgid "Management of cryptographic hashes"
+msgstr ""
+
+#: src/plugins/plugin_xep_0300.py:60
+msgid "plugin Hashes initialization"
+msgstr ""
+
+#: src/plugins/plugin_xep_0313.py:48
+msgid "Implementation of Message Archive Management"
+msgstr ""
+
+#: src/plugins/plugin_xep_0313.py:55
+msgid "Message Archive Management plugin initialization"
+msgstr ""
+
+#: src/plugins/plugin_xep_0334.py:44
+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"
+"             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
+msgid "Message Processing Hints plugin initialization"
+msgstr ""
+
+#: src/plugins/plugin_xep_0363.py:52
+msgid "Implementation of HTTP File Upload"
+msgstr ""
+
+#: src/plugins/plugin_xep_0363.py:91
+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
+msgid "Add contact"
+msgstr ""
+
+#: src/stdui/ui_contact_list.py:37 src/stdui/ui_contact_list.py:183
+msgid "Update contact"
+msgstr ""
+
+#: src/stdui/ui_contact_list.py:38
+msgid "Remove contact"
+msgstr ""
+
+#: src/stdui/ui_contact_list.py:135
+msgid "Select in which groups your contact is:"
+msgstr ""
+
+#: src/stdui/ui_contact_list.py:148
+msgid "Add group"
+msgstr ""
+
+#: src/stdui/ui_contact_list.py:150
+msgid "Add"
+msgstr ""
+
+#: src/stdui/ui_contact_list.py:166
+msgid "New contact identifier (JID):"
+msgstr ""
+
+#: src/stdui/ui_contact_list.py:178
+msgid "Nothing to update"
+msgstr ""
+
+#: src/stdui/ui_contact_list.py:179 src/stdui/ui_contact_list.py:197
+msgid "Your contact list is empty."
+msgstr ""
+
+#: src/stdui/ui_contact_list.py:184
+msgid "Which contact do you want to update?"
+msgstr ""
+
+#: src/stdui/ui_contact_list.py:196
+msgid "Nothing to delete"
+msgstr ""
+
+#: src/stdui/ui_contact_list.py:200
+msgid "Who do you want to remove from your contacts?"
+msgstr ""
+
+#: src/stdui/ui_contact_list.py:219
+msgid "Delete contact"
+msgstr ""
+
+#: src/stdui/ui_contact_list.py:220
+#, python-format
+msgid "Are you sure you want to remove %s from your contact list?"
+msgstr ""
+
+#: src/stdui/ui_contact_list.py:240
+#, python-format
+msgid "Please enter a valid JID (like \"contact@%s\"):"
+msgstr ""
+
+#: src/stdui/ui_profile_manager.py:52
+msgid "Profile password for {}"
+msgstr ""
+
+#: src/stdui/ui_profile_manager.py:61 src/stdui/ui_profile_manager.py:98
+msgid "Connection error"
+msgstr ""
+
+#: src/stdui/ui_profile_manager.py:66
+msgid "Internal error: {}"
+msgstr ""
+
+#: src/stdui/ui_profile_manager.py:99
+#, python-format
+msgid "Can't connect to %s. Please check your connection details."
+msgstr ""
+
+#: src/stdui/ui_profile_manager.py:103
+#, python-format
+msgid "XMPP password for %(profile)s%(counter)s"
+msgstr ""
+
+#: src/stdui/ui_profile_manager.py:105
+#, python-format
+msgid ""
+"Can't connect to %s. Please check your connection details or try with "
+"another password."
+msgstr ""
+
+#: src/test/constants.py:45
 msgid "Enable unibox"
 msgstr ""
 
-#: src/test/constants.py:44
+#: src/test/constants.py:46
 msgid "'Wysiwyg' edition"
 msgstr ""
 
@@ -3622,79 +4804,139 @@
 msgid "Dummy plugin to test room game"
 msgstr ""
 
-#: src/tools/misc.py:58
+#: src/tools/config.py:51
+#, 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
 #, python-format
 msgid "There is already a bound priority [%s]"
 msgstr ""
 
-#: src/tools/misc.py:60
+#: src/tools/trigger.py:65
 #, python-format
 msgid "There is already a trigger with the same priority [%s]"
 msgstr ""
 
-#: src/tools/xml_tools.py:177
+#: src/tools/xml_tools.py:60
+msgid "Fixed field has neither value nor label, ignoring it"
+msgstr ""
+
+#: src/tools/xml_tools.py:296
 msgid "INTERNAL ERROR: parameters xml not valid"
 msgstr ""
 
-#: src/tools/xml_tools.py:186
+#: src/tools/xml_tools.py:305
 msgid "INTERNAL ERROR: params categories must have a name"
 msgstr ""
 
-#: src/tools/xml_tools.py:194
+#: src/tools/xml_tools.py:314
 msgid "INTERNAL ERROR: params must have a name"
 msgstr ""
 
-#: src/tools/xml_tools.py:276
+#: src/tools/xml_tools.py:357
+msgid "The 'options' tag is not allowed in parameter of type 'list'!"
+msgstr ""
+
+#: src/tools/xml_tools.py:433
 msgid "TabElement must be a child of TabsContainer"
 msgstr ""
 
-#: src/tools/xml_tools.py:316
+#: src/tools/xml_tools.py:532
 msgid "Can't set row index if auto_index is True"
 msgstr ""
 
-#: src/tools/xml_tools.py:416
+#: src/tools/xml_tools.py:645
 msgid "either items or columns need do be filled"
 msgstr ""
 
-#: src/tools/xml_tools.py:429
+#: src/tools/xml_tools.py:658
 msgid "Headers lenght doesn't correspond to columns"
 msgstr ""
 
-#: src/tools/xml_tools.py:475
+#: src/tools/xml_tools.py:704
 msgid "Incorrect number of items in list"
 msgstr ""
 
-#: src/tools/xml_tools.py:578
+#: src/tools/xml_tools.py:862
+msgid "Value must be an integer"
+msgstr ""
+
+#: src/tools/xml_tools.py:877
 msgid "Value must be 0, 1, false or true"
 msgstr ""
 
-#: src/tools/xml_tools.py:612
+#: src/tools/xml_tools.py:927
 msgid "empty \"options\" list"
 msgstr ""
 
-#: src/tools/xml_tools.py:614
+#: src/tools/xml_tools.py:929 src/tools/xml_tools.py:963
 msgid "invalid styles"
 msgstr ""
 
-#: src/tools/xml_tools.py:652
+#: src/tools/xml_tools.py:985
+msgid "DialogElement must be a direct child of TopElement"
+msgstr ""
+
+#: src/tools/xml_tools.py:997
+msgid "MessageElement must be a direct child of DialogElement"
+msgstr ""
+
+#: src/tools/xml_tools.py:1009
+msgid "ButtonsElement must be a direct child of DialogElement"
+msgstr ""
+
+#: src/tools/xml_tools.py:1020
+msgid "FileElement must be a direct child of DialogElement"
+msgstr ""
+
+#: src/tools/xml_tools.py:1076
 #, python-format
 msgid "Unknown panel type [%s]"
 msgstr ""
 
-#: src/tools/xml_tools.py:654
+#: src/tools/xml_tools.py:1078
 msgid "form XMLUI need a submit_id"
 msgstr ""
 
-#: src/tools/xml_tools.py:656
+#: src/tools/xml_tools.py:1080
 msgid "container argument must be a string"
 msgstr ""
 
-#: src/tools/xml_tools.py:748
+#: src/tools/xml_tools.py:1082
+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
+msgid "Submit ID must be filled for this kind of dialog"
+msgstr ""
+
+#: src/tools/xml_tools.py:1209
 #, python-format
 msgid "Unknown container type [%s]"
 msgstr ""
 
-#: src/tools/xml_tools.py:767
+#: 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 ""
--- a/src/plugins/plugin_xep_0045.py	Sun Mar 05 23:41:10 2017 +0100
+++ b/src/plugins/plugin_xep_0045.py	Mon Mar 06 21:22:59 2017 +0100
@@ -421,7 +421,9 @@
             try:
                 room_jid = jid.JID(room_jid_s)
             except (RuntimeError, jid.InvalidFormat, AttributeError):
-                return defer.fail(jid.InvalidFormat(_(u"Invalid room identifier: '%s'. Please give a room short or full identifier like 'room' or 'room@%s'.") % (room_jid_s, unicode(muc_service))))
+                return defer.fail(jid.InvalidFormat(_(u"Invalid room identifier: {room_id}'. Please give a room short or full identifier like 'room' or 'room@{muc_service}'.").format(
+                    room_id=room_jid_s,
+                    muc_service=unicode(muc_service))))
             if not room_jid.user:
                 room_jid.user, room_jid.host = room_jid.host, muc_service
         else: