浏览代码

New release 3.0.1

JC Brand 8 年之前
父节点
当前提交
21bc95a9f3
共有 45 个文件被更改,包括 4350 次插入3764 次删除
  1. 1 1
      Makefile
  2. 1 1
      bower.json
  3. 1 1
      dist/converse-mobile.js
  4. 1 1
      dist/converse-no-dependencies.js
  5. 1 1
      dist/converse.js
  6. 0 0
      dist/locales.js
  7. 1 1
      docs/CHANGES.md
  8. 2 2
      docs/source/conf.py
  9. 137 40
      locale/af/LC_MESSAGES/converse.json
  10. 210 199
      locale/af/LC_MESSAGES/converse.po
  11. 13 5
      locale/ca/LC_MESSAGES/converse.json
  12. 200 191
      locale/ca/LC_MESSAGES/converse.po
  13. 240 228
      locale/converse.pot
  14. 29 17
      locale/de/LC_MESSAGES/converse.json
  15. 203 195
      locale/de/LC_MESSAGES/converse.po
  16. 14 6
      locale/es/LC_MESSAGES/converse.json
  17. 201 193
      locale/es/LC_MESSAGES/converse.po
  18. 135 47
      locale/fr/LC_MESSAGES/converse.json
  19. 210 199
      locale/fr/LC_MESSAGES/converse.po
  20. 13 5
      locale/he/LC_MESSAGES/converse.json
  21. 201 191
      locale/he/LC_MESSAGES/converse.po
  22. 13 5
      locale/hu/LC_MESSAGES/converse.json
  23. 201 193
      locale/hu/LC_MESSAGES/converse.po
  24. 14 6
      locale/id/LC_MESSAGES/converse.json
  25. 200 191
      locale/id/LC_MESSAGES/converse.po
  26. 184 64
      locale/it/LC_MESSAGES/converse.json
  27. 207 197
      locale/it/LC_MESSAGES/converse.po
  28. 14 6
      locale/ja/LC_MESSAGES/converse.json
  29. 200 191
      locale/ja/LC_MESSAGES/converse.po
  30. 13 5
      locale/nb/LC_MESSAGES/converse.json
  31. 202 195
      locale/nb/LC_MESSAGES/converse.po
  32. 16 8
      locale/nl/LC_MESSAGES/converse.json
  33. 202 193
      locale/nl/LC_MESSAGES/converse.po
  34. 13 5
      locale/pl/LC_MESSAGES/converse.json
  35. 201 193
      locale/pl/LC_MESSAGES/converse.po
  36. 14 6
      locale/pt_BR/LC_MESSAGES/converse.json
  37. 200 191
      locale/pt_BR/LC_MESSAGES/converse.po
  38. 13 5
      locale/ru/LC_MESSAGES/converse.json
  39. 200 191
      locale/ru/LC_MESSAGES/converse.po
  40. 13 5
      locale/uk/LC_MESSAGES/converse.json
  41. 200 191
      locale/uk/LC_MESSAGES/converse.po
  42. 14 6
      locale/zh/LC_MESSAGES/converse.json
  43. 200 191
      locale/zh/LC_MESSAGES/converse.po
  44. 1 1
      package.json
  45. 1 1
      src/start.frag

+ 1 - 1
Makefile

@@ -61,7 +61,7 @@ serve: stamp-npm
 ########################################################################
 ## Translation machinery
 
-GETTEXT = xgettext --keyword=__ --keyword=___ --from-code=UTF-8 --output=locale/converse.pot src/*.js --package-name=Converse.js --copyright-holder="Jan-Carel Brand" --package-version=3.0.0 -c
+GETTEXT = xgettext --keyword=__ --keyword=___ --from-code=UTF-8 --output=locale/converse.pot src/*.js --package-name=Converse.js --copyright-holder="Jan-Carel Brand" --package-version=3.0.1 -c
 
 .PHONY: pot
 pot:

+ 1 - 1
bower.json

@@ -1,7 +1,7 @@
 {
   "name": "converse.js",
   "description": "Web-based XMPP/Jabber chat client written in javascript",
-  "version": "3.0.0",
+  "version": "3.0.1",
   "license": "MPL-2.0",
   "devDependencies": {},
   "dependencies": {},

文件差异内容过多而无法显示
+ 1 - 1
dist/converse-mobile.js


文件差异内容过多而无法显示
+ 1 - 1
dist/converse-no-dependencies.js


文件差异内容过多而无法显示
+ 1 - 1
dist/converse.js


文件差异内容过多而无法显示
+ 0 - 0
dist/locales.js


+ 1 - 1
docs/CHANGES.md

@@ -1,6 +1,6 @@
 # Changelog
 
-## 3.0.1 (Unreleased)
+## 3.0.1 ((2017-04-04))
 
 - Bugfix. Endless spinner when trying to log in after rendering the registration form. [jcbrand]
 - #585 Duplicate contact created due to JID case sensivity [saganshul]

+ 2 - 2
docs/source/conf.py

@@ -48,9 +48,9 @@ copyright = u'2014, JC Brand'
 # built documents.
 #
 # The short X.Y version.
-version = '3.0.0'
+version = '3.0.1'
 # The full version, including alpha/beta/rc tags.
-release = '3.0.0'
+release = '3.0.1'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.

+ 137 - 40
locale/af/LC_MESSAGES/converse.json

@@ -4,23 +4,24 @@
       "converse": {
          "": {
             "domain": "converse",
+            "plural_forms": "nplurals=2; plural=n != 1;",
             "lang": "af"
          },
          "Bookmark this room": [
             null,
-            ""
+            "Boekmerk hierdie kletskamer"
          ],
          "The name for this bookmark:": [
             null,
-            ""
+            "Die naam vir hierdie boekmerk:"
          ],
          "Would you like this room to be automatically joined upon startup?": [
             null,
-            ""
+            "Moet hierdie kletskamer outomaties betree word tydens aanmelding?"
          ],
          "What should your nickname for this room be?": [
             null,
-            ""
+            "Wat sal u bynaam vir hierdie kletskamer wees?"
          ],
          "Save": [
             null,
@@ -30,9 +31,21 @@
             null,
             "Kanseleer"
          ],
+         "Sorry, something went wrong while trying to save your bookmark.": [
+            null,
+            "Jammer, 'n fout het voorgekom tydens storing van u boekmerk."
+         ],
+         "Click to toggle the bookmarks list": [
+            null,
+            "Klik om die boekmerklys te skakel"
+         ],
          "Bookmarked Rooms": [
             null,
-            ""
+            "Kletskamerboekmerke"
+         ],
+         "Are you sure you want to remove the bookmark \"%1$s\"?": [
+            null,
+            "Is u seker u wil die boekmerk \"%1$s\" verwyder?"
          ],
          "Click to open this room": [
             null,
@@ -44,7 +57,7 @@
          ],
          "Remove this bookmark": [
             null,
-            ""
+            "Verwyder hierdie boekmerk"
          ],
          "You have unread messages": [
             null,
@@ -63,6 +76,10 @@
             "ek"
          ],
          "A very large message has been received.This might be due to an attack meant to degrade the chat performance.Output has been shortened.": [
+            null,
+            "'n Baie groot boodskap is ontvang. Dit mag dalk 'n aanval wees om werkverrigting te ontwrig. Die boodskap word dus slegs in verkorte weergawe vertoon."
+         ],
+         "Typing from another device": [
             null,
             ""
          ],
@@ -70,6 +87,10 @@
             null,
             "tik tans"
          ],
+         "Stopped typing on the other device": [
+            null,
+            ""
+         ],
          "has stopped typing": [
             null,
             "het opgehou tik"
@@ -124,7 +145,7 @@
          ],
          "Password:": [
             null,
-            "Wagwoord"
+            "Wagwoord:"
          ],
          "Click here to log in anonymously": [
             null,
@@ -252,7 +273,7 @@
          ],
          "The connection has dropped, attempting to reconnect.": [
             null,
-            ""
+            "Die konneksie is onderbreek, probeer tans tans om te herkonnekteer."
          ],
          "Connection error": [
             null,
@@ -260,7 +281,7 @@
          ],
          "An error occurred while connecting to the chat server.": [
             null,
-            "A fout het voorgekom tydens verbinding met die kletsbediener"
+            "A fout het voorgekom tydens verbinding met die kletsbediener."
          ],
          "Connecting": [
             null,
@@ -284,7 +305,7 @@
          ],
          "Sorry, there was an error while trying to add ": [
             null,
-            ""
+            "Jammer, 'n ander fout het voorgekom tydens byvoeging. "
          ],
          "This client does not allow presence subscriptions": [
             null,
@@ -360,12 +381,40 @@
          ],
          "You have been removed from this room because the room has changed to members-only and you're not a member": [
             null,
-            "Jy is vanuit die kamer verwyder omdat die kamer nou slegs tot lede beperk word en jy nie 'n lid is nie."
+            "Jy is vanuit die kamer verwyder omdat die kamer nou slegs tot lede beperk word en jy nie 'n lid is nie"
          ],
          "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
             null,
             "Jy is van hierdie kamer verwyder aangesien die MUC (Multi-user chat) diens nou afgeskakel word."
          ],
+         "%1$s has been banned": [
+            null,
+            "%1$s is verban"
+         ],
+         "%1$s's nickname has changed": [
+            null,
+            "%1$s se bynaam het verander"
+         ],
+         "%1$s has been kicked out": [
+            null,
+            "%1$s is uitgeskop"
+         ],
+         "%1$s has been removed because of an affiliation change": [
+            null,
+            "%1$s is verwyder a.g.v 'n verandering van affiliasie"
+         ],
+         "%1$s has been removed for not being a member": [
+            null,
+            "%1$s is nie 'n lid nie, en dus verwyder"
+         ],
+         "Your nickname has been automatically set to: %1$s": [
+            null,
+            "U bynaam is outomaties gestel na: %1$s"
+         ],
+         "Your nickname has been changed to: %1$s": [
+            null,
+            "U bynaam is verander na: %1$s"
+         ],
          "Message": [
             null,
             "Boodskap"
@@ -384,7 +433,7 @@
          ],
          "Error: the \"": [
             null,
-            ""
+            "Fout: die \""
          ],
          "Are you sure you want to clear the messages from this room?": [
             null,
@@ -438,9 +487,13 @@
             null,
             "Herroep gebruiker se lidmaatskap"
          ],
+         "Set room subject": [
+            null,
+            "Stel onderwerp vir kletskamer"
+         ],
          "Set room subject (alias for /subject)": [
             null,
-            ""
+            "Verskaf kamer onderwerp (alias vir /subject)"
          ],
          "Allow muted user to post messages": [
             null,
@@ -448,7 +501,7 @@
          ],
          "The nickname you chose is reserved or currently in use, please choose a different one.": [
             null,
-            ""
+            "Die bynaam wat u gekies het is gereserveer of tans in gebruik, kies asb. 'n ander een."
          ],
          "Please choose your nickname": [
             null,
@@ -468,19 +521,19 @@
          ],
          "Password: ": [
             null,
-            "Wagwoord:"
+            "Wagwoord: "
          ],
          "Submit": [
             null,
             "Dien in"
          ],
-         "This action was done by <strong>%1$s</strong>.": [
+         "This action was done by %1$s.": [
             null,
-            "Hierdie aksie is uitgevoer deur: <strong>%1$s</strong>"
+            "Hierdie aksie is uitgevoer deur: %1$s."
          ],
-         "The reason given is: <em>\"%1$s\"</em>.": [
+         "The reason given is: \"%1$s\".": [
             null,
-            "Die gegewe rede is: <em>\"%1$s\"</em>."
+            "Die gegewe rede is: \"%1$s\"."
          ],
          "The reason given is: \"": [
             null,
@@ -488,15 +541,19 @@
          ],
          " has left the room. \"": [
             null,
-            ""
+            " het die kamer verlaat.\""
+         ],
+         " has left the room": [
+            null,
+            " het die kletskamer verlaat"
          ],
          " has joined the room. \"": [
             null,
-            ""
+            " het die kamer binnegekom.\""
          ],
          " has joined the room.": [
             null,
-            ""
+            " het die kamer bygetree."
          ],
          "You are not on the member list of this room": [
             null,
@@ -526,17 +583,21 @@
             null,
             "Onderwerp deur %1$s bygewerk na: %2$s"
          ],
+         "Click to mention ": [
+            null,
+            "Klik om te noem "
+         ],
          "This user is a moderator.": [
             null,
-            "Hierdie gebruiker is 'n moderator"
+            "Hierdie gebruiker is 'n moderator."
          ],
          "This user can send messages in this room.": [
             null,
-            "Hierdie gebruiker kan boodskappe na die kamer stuur"
+            "Hierdie gebruiker kan boodskappe na die kamer stuur."
          ],
          "This user can NOT send messages in this room.": [
             null,
-            "Hierdie gebruiker kan NIE boodskappe na die kamer stuur nie"
+            "Hierdie gebruiker kan NIE boodskappe na die kamer stuur nie."
          ],
          "Occupants": [
             null,
@@ -546,17 +607,21 @@
             null,
             "Nooi uit"
          ],
+         "Features": [
+            null,
+            "Eienskappe"
+         ],
          "Hidden": [
             null,
             "Verskuil"
          ],
          "Message archiving": [
             null,
-            ""
+            "Boodskap-argivering"
          ],
          "Members only": [
             null,
-            ""
+            "Slegs lede"
          ],
          "Moderated": [
             null,
@@ -566,9 +631,17 @@
             null,
             "Nie-anoniem"
          ],
+         "Open": [
+            null,
+            "Oop kletskamer"
+         ],
+         "Password protected": [
+            null,
+            "Wagwoord"
+         ],
          "Persistent": [
             null,
-            ""
+            "Blywend"
          ],
          "Public": [
             null,
@@ -578,41 +651,61 @@
             null,
             "Deels anoniem"
          ],
+         "Temporary": [
+            null,
+            "Tydelike kamer"
+         ],
          "Unmoderated": [
             null,
             "Ongemodereer"
          ],
          "Unsecured": [
             null,
-            ""
+            "Onversekerd"
          ],
          "Messages are archived on the server": [
             null,
-            ""
+            "Boodskappe word op die bediener gestoor"
+         ],
+         "This room is restricted to members only": [
+            null,
+            "Hierdie kletskamer is slegs tot lede beperk"
+         ],
+         "This room is being moderated": [
+            null,
+            "Hierdie kletskamer word gemodereer"
          ],
          "All other room occupants can see your Jabber ID": [
             null,
-            ""
+            "Alle ander deelnemers can u Jabber ID sien"
          ],
-         "This room pesists even if it's unoccupied": [
+         "Anyone can join this room": [
             null,
-            ""
+            "Enige iemand kan hierdie kletskamer binnekom"
          ],
-         "This room is publically searchable": [
+         "This room requires a password before entry": [
             null,
-            ""
+            "Hierdie kletskamer benodig 'n wagwoord"
          ],
          "Only moderators can see your Jabber ID": [
             null,
-            ""
+            "Slegs moderators kan u Jabber ID sien"
          ],
          "This room will disappear once the last person leaves": [
             null,
-            ""
+            "Hierdie kletskamer sal verdwyn sodra die laaste persoon dit verlaat"
+         ],
+         "This room is not being moderated": [
+            null,
+            "Hierdie kletskamer word nie gemodereer nie"
+         ],
+         "This room does not require a password upon entry": [
+            null,
+            "Hiedie kletskamer benodig nie 'n wagwoord nie"
          ],
          "You are about to invite %1$s to the chat room \"%2$s\". ": [
             null,
-            "U is op die punt om %1$s na die kletskamer \"%2$s\" uit te nooi."
+            "U is op die punt om %1$s na die kletskamer \"%2$s\" uit te nooi. "
          ],
          "You may optionally include a message, explaining the reason for the invitation.": [
             null,
@@ -756,7 +849,7 @@
          ],
          "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
             null,
-            "Hier is die vingerafdrukke, bevestig hulle met %1$s, buite hierdie kletskanaal \n\nU vingerafdruk, %2$s: %3$s\n\nVingerafdruk vir %1$s: %4$s\n\nIndien u die vingerafdrukke bevestig het, klik OK, andersinds klik Kanselleer"
+            "Hier is die vingerafdrukke, bevestig hulle met %1$s, buite hierdie kletskanaal \n\nU vingerafdruk, %2$s: %3$s\n\nVingerafdruk vir %1$s: %4$s\n\nIndien u die vingerafdrukke bevestig het, klik OK, andersinds klik Kanselleer."
          ],
          "You will be prompted to provide a security question and then an answer to that question.\n\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.": [
             null,
@@ -832,7 +925,7 @@
          ],
          " e.g. conversejs.org": [
             null,
-            "bv. conversejs.org"
+            " bv. conversejs.org"
          ],
          "Your XMPP provider's domain name:": [
             null,
@@ -882,6 +975,10 @@
             null,
             "Die verskaffer het u registrasieversoek verwerp. Kontrolleer asb. jou gegewe waardes vir korrektheid."
          ],
+         "Retry": [
+            null,
+            ""
+         ],
          "This contact is busy": [
             null,
             "Hierdie persoon is besig"

文件差异内容过多而无法显示
+ 210 - 199
locale/af/LC_MESSAGES/converse.po


+ 13 - 5
locale/ca/LC_MESSAGES/converse.json

@@ -63,10 +63,18 @@
             null,
             ""
          ],
+         "Typing from another device": [
+            null,
+            ""
+         ],
          "is typing": [
             null,
             "està escrivint"
          ],
+         "Stopped typing on the other device": [
+            null,
+            ""
+         ],
          "has stopped typing": [
             null,
             "ha deixat d'escriure"
@@ -507,11 +515,7 @@
             null,
             ""
          ],
-         "This room pesists even if it's unoccupied": [
-            null,
-            ""
-         ],
-         "This room is publically searchable": [
+         "This room persists even if it's unoccupied": [
             null,
             ""
          ],
@@ -791,6 +795,10 @@
             null,
             "El proveïdor ha rebutjat l'intent de registre. Comproveu que els valors que heu introduït siguin correctes."
          ],
+         "Retry": [
+            null,
+            ""
+         ],
          "This contact is busy": [
             null,
             "Aquest contacte està ocupat"

文件差异内容过多而无法显示
+ 200 - 191
locale/ca/LC_MESSAGES/converse.po


+ 240 - 228
locale/converse.pot

@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: Converse.js 3.0.0\n"
+"Project-Id-Version: Converse.js 3.0.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-03-15 10:58+0000\n"
+"POT-Creation-Date: 2017-04-04 15:11+0000\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,134 +17,142 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: src/converse-bookmarks.js:77 src/converse-bookmarks.js:136
+#: src/converse-bookmarks.js:75 src/converse-bookmarks.js:134
 msgid "Bookmark this room"
 msgstr ""
 
-#: src/converse-bookmarks.js:137
+#: src/converse-bookmarks.js:135
 msgid "The name for this bookmark:"
 msgstr ""
 
-#: src/converse-bookmarks.js:138
+#: src/converse-bookmarks.js:136
 msgid "Would you like this room to be automatically joined upon startup?"
 msgstr ""
 
-#: src/converse-bookmarks.js:139
+#: src/converse-bookmarks.js:137
 msgid "What should your nickname for this room be?"
 msgstr ""
 
-#: src/converse-bookmarks.js:141 src/converse-controlbox.js:514
-#: src/converse-muc.js:1198
+#: src/converse-bookmarks.js:139 src/converse-controlbox.js:515
+#: src/converse-muc.js:1218
 msgid "Save"
 msgstr ""
 
-#: src/converse-bookmarks.js:142 src/converse-muc.js:1199
-#: src/converse-register.js:232 src/converse-register.js:346
+#: src/converse-bookmarks.js:140 src/converse-muc.js:1219
+#: src/converse-register.js:246 src/converse-register.js:384
 msgid "Cancel"
 msgstr ""
 
-#: src/converse-bookmarks.js:294
+#: src/converse-bookmarks.js:292
 msgid "Sorry, something went wrong while trying to save your bookmark."
 msgstr ""
 
-#: src/converse-bookmarks.js:377
+#: src/converse-bookmarks.js:375
 msgid "Click to toggle the bookmarks list"
 msgstr ""
 
-#: src/converse-bookmarks.js:378
+#: src/converse-bookmarks.js:376
 msgid "Bookmarked Rooms"
 msgstr ""
 
-#: src/converse-bookmarks.js:395
+#: src/converse-bookmarks.js:393
 msgid "Are you sure you want to remove the bookmark \"%1$s\"?"
 msgstr ""
 
-#: src/converse-bookmarks.js:404 src/converse-muc.js:2303
+#: src/converse-bookmarks.js:402 src/converse-muc.js:2351
 msgid "Click to open this room"
 msgstr ""
 
-#: src/converse-bookmarks.js:405 src/converse-muc.js:2304
+#: src/converse-bookmarks.js:403 src/converse-muc.js:2352
 msgid "Show more information on this room"
 msgstr ""
 
-#: src/converse-bookmarks.js:406
+#: src/converse-bookmarks.js:404
 msgid "Remove this bookmark"
 msgstr ""
 
-#: src/converse-chatview.js:123 src/converse-headline.js:77
-#: src/converse-muc.js:393
+#: src/converse-chatview.js:126 src/converse-headline.js:78
+#: src/converse-muc.js:412
 msgid "You have unread messages"
 msgstr ""
 
-#: src/converse-chatview.js:124
+#: src/converse-chatview.js:127
 msgid "Close this chat box"
 msgstr ""
 
-#: src/converse-chatview.js:125
+#: src/converse-chatview.js:128
 msgid "Personal message"
 msgstr ""
 
-#: src/converse-chatview.js:335
+#: src/converse-chatview.js:338
 msgid "me"
 msgstr ""
 
-#: src/converse-chatview.js:342
+#: src/converse-chatview.js:345
 msgid ""
 "A very large message has been received.This might be due to an attack meant "
 "to degrade the chat performance.Output has been shortened."
 msgstr ""
 
-#: src/converse-chatview.js:379
+#: src/converse-chatview.js:383
+msgid "Typing from another device"
+msgstr ""
+
+#: src/converse-chatview.js:385
 msgid "is typing"
 msgstr ""
 
-#: src/converse-chatview.js:382
+#: src/converse-chatview.js:390
+msgid "Stopped typing on the other device"
+msgstr ""
+
+#: src/converse-chatview.js:392
 msgid "has stopped typing"
 msgstr ""
 
-#: src/converse-chatview.js:386 src/converse-chatview.js:641
+#: src/converse-chatview.js:397 src/converse-chatview.js:668
 #: src/converse-notification.js:185
 msgid "has gone away"
 msgstr ""
 
-#: src/converse-chatview.js:510 src/converse-muc.js:942
+#: src/converse-chatview.js:521 src/converse-muc.js:962
 msgid "Show this menu"
 msgstr ""
 
-#: src/converse-chatview.js:511
+#: src/converse-chatview.js:522
 msgid "Write in the third person"
 msgstr ""
 
-#: src/converse-chatview.js:512 src/converse-muc.js:940
+#: src/converse-chatview.js:523 src/converse-muc.js:960
 msgid "Remove messages"
 msgstr ""
 
-#: src/converse-chatview.js:594
+#: src/converse-chatview.js:621
 msgid "Are you sure you want to clear the messages from this chat box?"
 msgstr ""
 
-#: src/converse-chatview.js:639 src/converse-notification.js:183
+#: src/converse-chatview.js:666 src/converse-notification.js:183
 msgid "has gone offline"
 msgstr ""
 
-#: src/converse-chatview.js:643 src/converse-notification.js:187
+#: src/converse-chatview.js:670 src/converse-notification.js:187
 msgid "is busy"
 msgstr ""
 
-#: src/converse-chatview.js:682
+#: src/converse-chatview.js:709
 msgid "Clear all messages"
 msgstr ""
 
-#: src/converse-chatview.js:683
+#: src/converse-chatview.js:710
 msgid "Insert a smiley"
 msgstr ""
 
-#: src/converse-chatview.js:684
+#: src/converse-chatview.js:711
 msgid "Start a call"
 msgstr ""
 
-#: src/converse-controlbox.js:201 src/converse-core.js:733
-#: src/converse-rosterview.js:87
+#: src/converse-controlbox.js:201 src/converse-core.js:734
+#: src/converse-rosterview.js:89
 msgid "Contacts"
 msgstr ""
 
@@ -182,95 +190,95 @@ msgstr ""
 
 #. For translators: the %1$s part gets replaced with the status
 #. Example, I am online
-#: src/converse-controlbox.js:485 src/converse-controlbox.js:560
+#: src/converse-controlbox.js:486 src/converse-controlbox.js:561
 msgid "I am %1$s"
 msgstr ""
 
-#: src/converse-controlbox.js:487 src/converse-controlbox.js:565
+#: src/converse-controlbox.js:488 src/converse-controlbox.js:566
 msgid "Click here to write a custom status message"
 msgstr ""
 
-#: src/converse-controlbox.js:488 src/converse-controlbox.js:566
+#: src/converse-controlbox.js:489 src/converse-controlbox.js:567
 msgid "Click to change your chat status"
 msgstr ""
 
-#: src/converse-controlbox.js:513
+#: src/converse-controlbox.js:514
 msgid "Custom status"
 msgstr ""
 
-#: src/converse-controlbox.js:542 src/converse-controlbox.js:552
+#: src/converse-controlbox.js:543 src/converse-controlbox.js:553
 msgid "online"
 msgstr ""
 
-#: src/converse-controlbox.js:544
+#: src/converse-controlbox.js:545
 msgid "busy"
 msgstr ""
 
-#: src/converse-controlbox.js:546
+#: src/converse-controlbox.js:547
 msgid "away for long"
 msgstr ""
 
-#: src/converse-controlbox.js:548
+#: src/converse-controlbox.js:549
 msgid "away"
 msgstr ""
 
-#: src/converse-controlbox.js:550
+#: src/converse-controlbox.js:551
 msgid "offline"
 msgstr ""
 
-#: src/converse-controlbox.js:591 src/converse-rosterview.js:155
+#: src/converse-controlbox.js:592 src/converse-rosterview.js:157
 msgid "Online"
 msgstr ""
 
-#: src/converse-controlbox.js:592 src/converse-rosterview.js:157
+#: src/converse-controlbox.js:593 src/converse-rosterview.js:159
 msgid "Busy"
 msgstr ""
 
-#: src/converse-controlbox.js:593 src/converse-rosterview.js:158
+#: src/converse-controlbox.js:594 src/converse-rosterview.js:160
 msgid "Away"
 msgstr ""
 
-#: src/converse-controlbox.js:594 src/converse-rosterview.js:160
+#: src/converse-controlbox.js:595 src/converse-rosterview.js:162
 msgid "Offline"
 msgstr ""
 
-#: src/converse-controlbox.js:595
+#: src/converse-controlbox.js:596
 msgid "Log out"
 msgstr ""
 
-#: src/converse-controlbox.js:606
+#: src/converse-controlbox.js:607
 msgid "Contact name"
 msgstr ""
 
-#: src/converse-controlbox.js:607
+#: src/converse-controlbox.js:608
 msgid "Search"
 msgstr ""
 
-#: src/converse-controlbox.js:611
+#: src/converse-controlbox.js:612
 msgid "e.g. user@example.org"
 msgstr ""
 
-#: src/converse-controlbox.js:612
+#: src/converse-controlbox.js:613
 msgid "Add"
 msgstr ""
 
-#: src/converse-controlbox.js:617
+#: src/converse-controlbox.js:618
 msgid "Click to add new chat contacts"
 msgstr ""
 
-#: src/converse-controlbox.js:618
+#: src/converse-controlbox.js:619
 msgid "Add a contact"
 msgstr ""
 
-#: src/converse-controlbox.js:645
+#: src/converse-controlbox.js:646
 msgid "No users found"
 msgstr ""
 
-#: src/converse-controlbox.js:651
+#: src/converse-controlbox.js:652
 msgid "Click to add as a chat contact"
 msgstr ""
 
-#: src/converse-controlbox.js:715
+#: src/converse-controlbox.js:716
 msgid "Toggle chat"
 msgstr ""
 
@@ -278,51 +286,51 @@ msgstr ""
 msgid "Click to hide these contacts"
 msgstr ""
 
-#: src/converse-core.js:422
+#: src/converse-core.js:423
 msgid "Reconnecting"
 msgstr ""
 
-#: src/converse-core.js:424
+#: src/converse-core.js:425
 msgid "The connection has dropped, attempting to reconnect."
 msgstr ""
 
-#: src/converse-core.js:504
+#: src/converse-core.js:505
 msgid "Connection error"
 msgstr ""
 
-#: src/converse-core.js:505
+#: src/converse-core.js:506
 msgid "An error occurred while connecting to the chat server."
 msgstr ""
 
-#: src/converse-core.js:508
+#: src/converse-core.js:509
 msgid "Connecting"
 msgstr ""
 
-#: src/converse-core.js:510
+#: src/converse-core.js:511
 msgid "Authenticating"
 msgstr ""
 
-#: src/converse-core.js:512
+#: src/converse-core.js:513
 msgid "Authentication Failed"
 msgstr ""
 
-#: src/converse-core.js:517
+#: src/converse-core.js:518
 msgid "Connection failed"
 msgstr ""
 
-#: src/converse-core.js:518
+#: src/converse-core.js:519
 msgid "An error occurred while connecting to the chat server: "
 msgstr ""
 
-#: src/converse-core.js:1083
+#: src/converse-core.js:1084
 msgid "Sorry, there was an error while trying to add "
 msgstr ""
 
-#: src/converse-core.js:1234
+#: src/converse-core.js:1235
 msgid "This client does not allow presence subscriptions"
 msgstr ""
 
-#: src/converse-headline.js:78
+#: src/converse-headline.js:79
 msgid "Close this box"
 msgstr ""
 
@@ -338,65 +346,65 @@ msgstr ""
 msgid "Minimized"
 msgstr ""
 
-#: src/converse-muc.js:237
+#: src/converse-muc.js:252
 msgid "This room is not anonymous"
 msgstr ""
 
-#: src/converse-muc.js:238
+#: src/converse-muc.js:253
 msgid "This room now shows unavailable members"
 msgstr ""
 
-#: src/converse-muc.js:239
+#: src/converse-muc.js:254
 msgid "This room does not show unavailable members"
 msgstr ""
 
-#: src/converse-muc.js:240
+#: src/converse-muc.js:255
 msgid "The room configuration has changed"
 msgstr ""
 
-#: src/converse-muc.js:241
+#: src/converse-muc.js:256
 msgid "Room logging is now enabled"
 msgstr ""
 
-#: src/converse-muc.js:242
+#: src/converse-muc.js:257
 msgid "Room logging is now disabled"
 msgstr ""
 
-#: src/converse-muc.js:243
+#: src/converse-muc.js:258
 msgid "This room is now no longer anonymous"
 msgstr ""
 
-#: src/converse-muc.js:244
+#: src/converse-muc.js:259
 msgid "This room is now semi-anonymous"
 msgstr ""
 
-#: src/converse-muc.js:245
+#: src/converse-muc.js:260
 msgid "This room is now fully-anonymous"
 msgstr ""
 
-#: src/converse-muc.js:246
+#: src/converse-muc.js:261
 msgid "A new room has been created"
 msgstr ""
 
-#: src/converse-muc.js:250 src/converse-muc.js:1749
+#: src/converse-muc.js:265 src/converse-muc.js:1770
 msgid "You have been banned from this room"
 msgstr ""
 
-#: src/converse-muc.js:251
+#: src/converse-muc.js:266
 msgid "You have been kicked from this room"
 msgstr ""
 
-#: src/converse-muc.js:252
+#: src/converse-muc.js:267
 msgid "You have been removed from this room because of an affiliation change"
 msgstr ""
 
-#: src/converse-muc.js:253
+#: src/converse-muc.js:268
 msgid ""
 "You have been removed from this room because the room has changed to members-"
 "only and you're not a member"
 msgstr ""
 
-#: src/converse-muc.js:254
+#: src/converse-muc.js:269
 msgid ""
 "You have been removed from this room because the MUC (Multi-user chat) "
 "service is being shut down."
@@ -412,414 +420,414 @@ msgstr ""
 #. * can then at least tell gettext to scan for it so that these
 #. * strings are picked up by the translation machinery.
 #.
-#: src/converse-muc.js:268
+#: src/converse-muc.js:283
 msgid "%1$s has been banned"
 msgstr ""
 
-#: src/converse-muc.js:269
+#: src/converse-muc.js:284
 msgid "%1$s's nickname has changed"
 msgstr ""
 
-#: src/converse-muc.js:270
+#: src/converse-muc.js:285
 msgid "%1$s has been kicked out"
 msgstr ""
 
-#: src/converse-muc.js:271
+#: src/converse-muc.js:286
 msgid "%1$s has been removed because of an affiliation change"
 msgstr ""
 
-#: src/converse-muc.js:272
+#: src/converse-muc.js:287
 msgid "%1$s has been removed for not being a member"
 msgstr ""
 
-#: src/converse-muc.js:276
+#: src/converse-muc.js:291
 msgid "Your nickname has been automatically set to: %1$s"
 msgstr ""
 
-#: src/converse-muc.js:277
+#: src/converse-muc.js:292
 msgid "Your nickname has been changed to: %1$s"
 msgstr ""
 
-#: src/converse-muc.js:395
+#: src/converse-muc.js:414
 msgid "Message"
 msgstr ""
 
-#: src/converse-muc.js:436
+#: src/converse-muc.js:456
 msgid "Close and leave this room"
 msgstr ""
 
-#: src/converse-muc.js:437
+#: src/converse-muc.js:457
 msgid "Configure this room"
 msgstr ""
 
-#: src/converse-muc.js:482
+#: src/converse-muc.js:502
 msgid "Hide the list of occupants"
 msgstr ""
 
-#: src/converse-muc.js:876
+#: src/converse-muc.js:896
 msgid "Error: the \""
 msgstr ""
 
-#: src/converse-muc.js:888
+#: src/converse-muc.js:908
 msgid "Are you sure you want to clear the messages from this room?"
 msgstr ""
 
-#: src/converse-muc.js:896
+#: src/converse-muc.js:916
 msgid "Error: could not execute the command"
 msgstr ""
 
-#: src/converse-muc.js:938
+#: src/converse-muc.js:958
 msgid "Change user's affiliation to admin"
 msgstr ""
 
-#: src/converse-muc.js:939
+#: src/converse-muc.js:959
 msgid "Ban user from room"
 msgstr ""
 
-#: src/converse-muc.js:941
+#: src/converse-muc.js:961
 msgid "Change user role to occupant"
 msgstr ""
 
-#: src/converse-muc.js:943
+#: src/converse-muc.js:963
 msgid "Kick user from room"
 msgstr ""
 
-#: src/converse-muc.js:944
+#: src/converse-muc.js:964
 msgid "Write in 3rd person"
 msgstr ""
 
-#: src/converse-muc.js:945
+#: src/converse-muc.js:965
 msgid "Grant membership to a user"
 msgstr ""
 
-#: src/converse-muc.js:946
+#: src/converse-muc.js:966
 msgid "Remove user's ability to post messages"
 msgstr ""
 
-#: src/converse-muc.js:947
+#: src/converse-muc.js:967
 msgid "Change your nickname"
 msgstr ""
 
-#: src/converse-muc.js:948
+#: src/converse-muc.js:968
 msgid "Grant moderator role to user"
 msgstr ""
 
-#: src/converse-muc.js:949
+#: src/converse-muc.js:969
 msgid "Grant ownership of this room"
 msgstr ""
 
-#: src/converse-muc.js:950
+#: src/converse-muc.js:970
 msgid "Revoke user's membership"
 msgstr ""
 
-#: src/converse-muc.js:951
+#: src/converse-muc.js:971
 msgid "Set room subject"
 msgstr ""
 
-#: src/converse-muc.js:952
+#: src/converse-muc.js:972
 msgid "Set room subject (alias for /subject)"
 msgstr ""
 
-#: src/converse-muc.js:953
+#: src/converse-muc.js:973
 msgid "Allow muted user to post messages"
 msgstr ""
 
-#: src/converse-muc.js:1519
+#: src/converse-muc.js:1539
 msgid ""
 "The nickname you chose is reserved or currently in use, please choose a "
 "different one."
 msgstr ""
 
-#: src/converse-muc.js:1536
+#: src/converse-muc.js:1556
 msgid "Please choose your nickname"
 msgstr ""
 
-#: src/converse-muc.js:1537 src/converse-muc.js:2245
+#: src/converse-muc.js:1557 src/converse-muc.js:2293
 msgid "Nickname"
 msgstr ""
 
-#: src/converse-muc.js:1538
+#: src/converse-muc.js:1558
 msgid "Enter room"
 msgstr ""
 
-#: src/converse-muc.js:1557
+#: src/converse-muc.js:1577
 msgid "This chatroom requires a password"
 msgstr ""
 
-#: src/converse-muc.js:1558
+#: src/converse-muc.js:1578
 msgid "Password: "
 msgstr ""
 
-#: src/converse-muc.js:1559
+#: src/converse-muc.js:1579
 msgid "Submit"
 msgstr ""
 
-#: src/converse-muc.js:1670
+#: src/converse-muc.js:1691
 msgid "This action was done by %1$s."
 msgstr ""
 
-#: src/converse-muc.js:1673
+#: src/converse-muc.js:1694
 msgid "The reason given is: \"%1$s\"."
 msgstr ""
 
-#: src/converse-muc.js:1682
+#: src/converse-muc.js:1703
 msgid "The reason given is: \""
 msgstr ""
 
-#: src/converse-muc.js:1700
+#: src/converse-muc.js:1721
 msgid " has left the room. \""
 msgstr ""
 
-#: src/converse-muc.js:1702
+#: src/converse-muc.js:1723
 msgid " has left the room"
 msgstr ""
 
-#: src/converse-muc.js:1710
+#: src/converse-muc.js:1731
 msgid " has joined the room. \""
 msgstr ""
 
-#: src/converse-muc.js:1712
+#: src/converse-muc.js:1733
 msgid " has joined the room."
 msgstr ""
 
-#: src/converse-muc.js:1747
+#: src/converse-muc.js:1768
 msgid "You are not on the member list of this room"
 msgstr ""
 
-#: src/converse-muc.js:1753
+#: src/converse-muc.js:1774
 msgid "No nickname was specified"
 msgstr ""
 
-#: src/converse-muc.js:1757
+#: src/converse-muc.js:1778
 msgid "You are not allowed to create new rooms"
 msgstr ""
 
-#: src/converse-muc.js:1759
+#: src/converse-muc.js:1780
 msgid "Your nickname doesn't conform to this room's policies"
 msgstr ""
 
-#: src/converse-muc.js:1763
+#: src/converse-muc.js:1784
 msgid "This room does not (yet) exist"
 msgstr ""
 
-#: src/converse-muc.js:1765
+#: src/converse-muc.js:1786
 msgid "This room has reached its maximum number of occupants"
 msgstr ""
 
-#: src/converse-muc.js:1866
+#: src/converse-muc.js:1890
 msgid "Topic set by %1$s to: %2$s"
 msgstr ""
 
-#: src/converse-muc.js:1936
+#: src/converse-muc.js:1960
 msgid "Click to mention "
 msgstr ""
 
-#: src/converse-muc.js:1937
+#: src/converse-muc.js:1961
 msgid "This user is a moderator."
 msgstr ""
 
-#: src/converse-muc.js:1938
+#: src/converse-muc.js:1962
 msgid "This user can send messages in this room."
 msgstr ""
 
-#: src/converse-muc.js:1939
+#: src/converse-muc.js:1963
 msgid "This user can NOT send messages in this room."
 msgstr ""
 
-#: src/converse-muc.js:1996
+#: src/converse-muc.js:2016
 msgid "Occupants"
 msgstr ""
 
-#: src/converse-muc.js:2011
+#: src/converse-muc.js:2033
 msgid "Invite"
 msgstr ""
 
-#: src/converse-muc.js:2032
+#: src/converse-muc.js:2054
 msgid "Features"
 msgstr ""
 
-#: src/converse-muc.js:2033 src/converse-muc.js:2376
+#: src/converse-muc.js:2055 src/converse-muc.js:2424
 msgid "Hidden"
 msgstr ""
 
-#: src/converse-muc.js:2034
+#: src/converse-muc.js:2056
 msgid "Message archiving"
 msgstr ""
 
-#: src/converse-muc.js:2035
+#: src/converse-muc.js:2057
 msgid "Members only"
 msgstr ""
 
-#: src/converse-muc.js:2036 src/converse-muc.js:2378
+#: src/converse-muc.js:2058 src/converse-muc.js:2426
 msgid "Moderated"
 msgstr ""
 
-#: src/converse-muc.js:2037 src/converse-muc.js:2379
+#: src/converse-muc.js:2059 src/converse-muc.js:2427
 msgid "Non-anonymous"
 msgstr ""
 
-#: src/converse-muc.js:2038
+#: src/converse-muc.js:2060
 msgid "Open"
 msgstr ""
 
-#: src/converse-muc.js:2039
+#: src/converse-muc.js:2061
 msgid "Password protected"
 msgstr ""
 
-#: src/converse-muc.js:2040
+#: src/converse-muc.js:2062
 msgid "Persistent"
 msgstr ""
 
-#: src/converse-muc.js:2041 src/converse-muc.js:2382
+#: src/converse-muc.js:2063 src/converse-muc.js:2430
 msgid "Public"
 msgstr ""
 
-#: src/converse-muc.js:2042 src/converse-muc.js:2383
+#: src/converse-muc.js:2064 src/converse-muc.js:2431
 msgid "Semi-anonymous"
 msgstr ""
 
-#: src/converse-muc.js:2043
+#: src/converse-muc.js:2065
 msgid "Temporary"
 msgstr ""
 
-#: src/converse-muc.js:2044 src/converse-muc.js:2385
+#: src/converse-muc.js:2066 src/converse-muc.js:2433
 msgid "Unmoderated"
 msgstr ""
 
-#: src/converse-muc.js:2045
+#: src/converse-muc.js:2067
 msgid "Unsecured"
 msgstr ""
 
-#: src/converse-muc.js:2046
-msgid "This room is not publically searchable"
+#: src/converse-muc.js:2068
+msgid "This room is not publicly searchable"
 msgstr ""
 
-#: src/converse-muc.js:2047
+#: src/converse-muc.js:2069
 msgid "Messages are archived on the server"
 msgstr ""
 
-#: src/converse-muc.js:2048
+#: src/converse-muc.js:2070
 msgid "This room is restricted to members only"
 msgstr ""
 
-#: src/converse-muc.js:2049
+#: src/converse-muc.js:2071
 msgid "This room is being moderated"
 msgstr ""
 
-#: src/converse-muc.js:2050
+#: src/converse-muc.js:2072
 msgid "All other room occupants can see your Jabber ID"
 msgstr ""
 
-#: src/converse-muc.js:2051
+#: src/converse-muc.js:2073
 msgid "Anyone can join this room"
 msgstr ""
 
-#: src/converse-muc.js:2052
+#: src/converse-muc.js:2074
 msgid "This room requires a password before entry"
 msgstr ""
 
-#: src/converse-muc.js:2053
-msgid "This room pesists even if it's unoccupied"
+#: src/converse-muc.js:2075
+msgid "This room persists even if it's unoccupied"
 msgstr ""
 
-#: src/converse-muc.js:2054
-msgid "This room is publically searchable"
+#: src/converse-muc.js:2076
+msgid "This room is publicly searchable"
 msgstr ""
 
-#: src/converse-muc.js:2055
+#: src/converse-muc.js:2077
 msgid "Only moderators can see your Jabber ID"
 msgstr ""
 
-#: src/converse-muc.js:2056
+#: src/converse-muc.js:2078
 msgid "This room will disappear once the last person leaves"
 msgstr ""
 
-#: src/converse-muc.js:2057
+#: src/converse-muc.js:2079
 msgid "This room is not being moderated"
 msgstr ""
 
-#: src/converse-muc.js:2058
+#: src/converse-muc.js:2080
 msgid "This room does not require a password upon entry"
 msgstr ""
 
-#: src/converse-muc.js:2167
+#: src/converse-muc.js:2215
 msgid "You are about to invite %1$s to the chat room \"%2$s\". "
 msgstr ""
 
-#: src/converse-muc.js:2168
+#: src/converse-muc.js:2216
 msgid ""
 "You may optionally include a message, explaining the reason for the "
 "invitation."
 msgstr ""
 
-#: src/converse-muc.js:2244
+#: src/converse-muc.js:2292
 msgid "Room name"
 msgstr ""
 
-#: src/converse-muc.js:2246
+#: src/converse-muc.js:2294
 msgid "Server"
 msgstr ""
 
-#: src/converse-muc.js:2247
+#: src/converse-muc.js:2295
 msgid "Join Room"
 msgstr ""
 
-#: src/converse-muc.js:2248
+#: src/converse-muc.js:2296
 msgid "Show rooms"
 msgstr ""
 
-#: src/converse-muc.js:2255
+#: src/converse-muc.js:2303
 msgid "Rooms"
 msgstr ""
 
 #. For translators: %1$s is a variable and will be replaced with the XMPP server name
-#: src/converse-muc.js:2280
+#: src/converse-muc.js:2328
 msgid "No rooms on %1$s"
 msgstr ""
 
 #. For translators: %1$s is a variable and will be
 #. replaced with the XMPP server name
-#: src/converse-muc.js:2294
+#: src/converse-muc.js:2342
 msgid "Rooms on %1$s"
 msgstr ""
 
-#: src/converse-muc.js:2372
+#: src/converse-muc.js:2420
 msgid "Description:"
 msgstr ""
 
-#: src/converse-muc.js:2373
+#: src/converse-muc.js:2421
 msgid "Occupants:"
 msgstr ""
 
-#: src/converse-muc.js:2374
+#: src/converse-muc.js:2422
 msgid "Features:"
 msgstr ""
 
-#: src/converse-muc.js:2375
+#: src/converse-muc.js:2423
 msgid "Requires authentication"
 msgstr ""
 
-#: src/converse-muc.js:2377
+#: src/converse-muc.js:2425
 msgid "Requires an invitation"
 msgstr ""
 
-#: src/converse-muc.js:2380
+#: src/converse-muc.js:2428
 msgid "Open room"
 msgstr ""
 
-#: src/converse-muc.js:2381
+#: src/converse-muc.js:2429
 msgid "Permanent room"
 msgstr ""
 
-#: src/converse-muc.js:2384
+#: src/converse-muc.js:2432
 msgid "Temporary room"
 msgstr ""
 
-#: src/converse-muc.js:2473
+#: src/converse-muc.js:2521
 msgid "%1$s has invited you to join a chat room: %2$s"
 msgstr ""
 
-#: src/converse-muc.js:2478
+#: src/converse-muc.js:2526
 msgid ""
 "%1$s has invited you to join a chat room: %2$s, and left the following "
 "reason: \"%3$s\""
@@ -1001,156 +1009,160 @@ msgstr ""
 msgid "finished"
 msgstr ""
 
-#: src/converse-register.js:97
+#: src/converse-register.js:108
 msgid " e.g. conversejs.org"
 msgstr ""
 
-#: src/converse-register.js:119
+#: src/converse-register.js:132
 msgid "Your XMPP provider's domain name:"
 msgstr ""
 
-#: src/converse-register.js:120
+#: src/converse-register.js:133
 msgid "Fetch registration form"
 msgstr ""
 
-#: src/converse-register.js:121
+#: src/converse-register.js:134
 msgid "Tip: A list of public XMPP providers is available"
 msgstr ""
 
-#: src/converse-register.js:122
+#: src/converse-register.js:135
 msgid "here"
 msgstr ""
 
-#: src/converse-register.js:127 src/converse-register.js:344
+#: src/converse-register.js:140 src/converse-register.js:382
 msgid "Register"
 msgstr ""
 
-#: src/converse-register.js:173
+#: src/converse-register.js:185
 msgid ""
 "Sorry, the given provider does not support in band account registration. "
 "Please try with a different provider."
 msgstr ""
 
-#: src/converse-register.js:233
+#: src/converse-register.js:271
 msgid "Requesting a registration form from the XMPP server"
 msgstr ""
 
-#: src/converse-register.js:268
+#: src/converse-register.js:304
 msgid ""
 "Something went wrong while establishing a connection with \"%1$s\". Are you "
 "sure it exists?"
 msgstr ""
 
-#: src/converse-register.js:287
+#: src/converse-register.js:323
 msgid "Now logging you in"
 msgstr ""
 
-#: src/converse-register.js:290
+#: src/converse-register.js:326
 msgid "Registered successfully"
 msgstr ""
 
-#: src/converse-register.js:349
+#: src/converse-register.js:387
 msgid "Return"
 msgstr ""
 
-#: src/converse-register.js:381
+#: src/converse-register.js:422
 msgid ""
 "The provider rejected your registration attempt. Please check the values you "
 "entered for correctness."
 msgstr ""
 
-#: src/converse-rosterview.js:80
+#: src/converse-register.js:439
+msgid "Retry"
+msgstr ""
+
+#: src/converse-rosterview.js:82
 msgid "This contact is busy"
 msgstr ""
 
-#: src/converse-rosterview.js:81
+#: src/converse-rosterview.js:83
 msgid "This contact is online"
 msgstr ""
 
-#: src/converse-rosterview.js:82
+#: src/converse-rosterview.js:84
 msgid "This contact is offline"
 msgstr ""
 
-#: src/converse-rosterview.js:83
+#: src/converse-rosterview.js:85
 msgid "This contact is unavailable"
 msgstr ""
 
-#: src/converse-rosterview.js:84
+#: src/converse-rosterview.js:86
 msgid "This contact is away for an extended period"
 msgstr ""
 
-#: src/converse-rosterview.js:85
+#: src/converse-rosterview.js:87
 msgid "This contact is away"
 msgstr ""
 
-#: src/converse-rosterview.js:88
+#: src/converse-rosterview.js:90
 msgid "Groups"
 msgstr ""
 
-#: src/converse-rosterview.js:89
+#: src/converse-rosterview.js:91
 msgid "My contacts"
 msgstr ""
 
-#: src/converse-rosterview.js:90
+#: src/converse-rosterview.js:92
 msgid "Pending contacts"
 msgstr ""
 
-#: src/converse-rosterview.js:91
+#: src/converse-rosterview.js:93
 msgid "Contact requests"
 msgstr ""
 
-#: src/converse-rosterview.js:92
+#: src/converse-rosterview.js:94
 msgid "Ungrouped"
 msgstr ""
 
-#: src/converse-rosterview.js:150
+#: src/converse-rosterview.js:152
 msgid "Filter"
 msgstr ""
 
-#: src/converse-rosterview.js:153
+#: src/converse-rosterview.js:155
 msgid "State"
 msgstr ""
 
-#: src/converse-rosterview.js:154
+#: src/converse-rosterview.js:156
 msgid "Any"
 msgstr ""
 
-#: src/converse-rosterview.js:156
+#: src/converse-rosterview.js:158
 msgid "Chatty"
 msgstr ""
 
-#: src/converse-rosterview.js:159
+#: src/converse-rosterview.js:161
 msgid "Extended Away"
 msgstr ""
 
-#: src/converse-rosterview.js:599 src/converse-rosterview.js:619
+#: src/converse-rosterview.js:605 src/converse-rosterview.js:625
 msgid "Click to remove this contact"
 msgstr ""
 
-#: src/converse-rosterview.js:607
+#: src/converse-rosterview.js:613
 msgid "Click to accept this contact request"
 msgstr ""
 
-#: src/converse-rosterview.js:608
+#: src/converse-rosterview.js:614
 msgid "Click to decline this contact request"
 msgstr ""
 
-#: src/converse-rosterview.js:618
+#: src/converse-rosterview.js:624
 msgid "Click to chat with this contact"
 msgstr ""
 
-#: src/converse-rosterview.js:620
+#: src/converse-rosterview.js:626
 msgid "Name"
 msgstr ""
 
-#: src/converse-rosterview.js:675
+#: src/converse-rosterview.js:681
 msgid "Are you sure you want to remove this contact?"
 msgstr ""
 
-#: src/converse-rosterview.js:686
+#: src/converse-rosterview.js:692
 msgid "Sorry, there was an error while trying to remove "
 msgstr ""
 
-#: src/converse-rosterview.js:705
+#: src/converse-rosterview.js:711
 msgid "Are you sure you want to decline this contact request?"
 msgstr ""

+ 29 - 17
locale/de/LC_MESSAGES/converse.json

@@ -4,7 +4,7 @@
       "converse": {
          "": {
             "domain": "converse",
-            "plural_forms": "nplurals=2; plural=(n != 1);",
+            "plural_forms": "nplurals=2; plural=n != 1;",
             "lang": "de"
          },
          "Bookmark this room": [
@@ -63,10 +63,18 @@
             null,
             ""
          ],
+         "Typing from another device": [
+            null,
+            ""
+         ],
          "is typing": [
             null,
             "tippt"
          ],
+         "Stopped typing on the other device": [
+            null,
+            ""
+         ],
          "has stopped typing": [
             null,
             "tippt nicht mehr"
@@ -113,7 +121,7 @@
          ],
          "XMPP Username:": [
             null,
-            "XMPP Benutzername"
+            "XMPP Benutzername:"
          ],
          "Password:": [
             null,
@@ -229,7 +237,7 @@
          ],
          "Reconnecting": [
             null,
-            "Verbindung wiederherstellen"
+            "Verbindung wiederherstellen"
          ],
          "The connection has dropped, attempting to reconnect.": [
             null,
@@ -237,7 +245,7 @@
          ],
          "Connecting": [
             null,
-            "Verbindungsaufbau"
+            "Verbindungsaufbau"
          ],
          "Authenticating": [
             null,
@@ -281,11 +289,11 @@
          ],
          "Room logging is now enabled": [
             null,
-            "Nachrichten in diesem Raum werden ab jetzt protokolliert."
+            "Nachrichten in diesem Raum werden ab jetzt protokolliert"
          ],
          "Room logging is now disabled": [
             null,
-            "Nachrichten in diesem Raum werden nicht mehr protokolliert."
+            "Nachrichten in diesem Raum werden nicht mehr protokolliert"
          ],
          "This room is now semi-anonymous": [
             null,
@@ -313,12 +321,16 @@
          ],
          "You have been removed from this room because the room has changed to members-only and you're not a member": [
             null,
-            "Sie wurden aus diesem Raum entfernt, da Sie kein Mitglied sind."
+            ""
          ],
          "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
             null,
             "Sie wurden aus diesem Raum entfernt, da der MUC (Multi-User Chat) Dienst gerade heruntergefahren wird."
          ],
+         "%1$s has been banned": [
+            null,
+            "%1$s ist verbannt worden"
+         ],
          "Message": [
             null,
             "Nachricht"
@@ -341,11 +353,11 @@
          ],
          "Ban user from room": [
             null,
-            "Verbanne einen Benutzer aus dem Raum."
+            "Verbanne einen Benutzer aus dem Raum"
          ],
          "Kick user from room": [
             null,
-            "Werfe einen Benutzer aus dem Raum."
+            "Werfe einen Benutzer aus dem Raum"
          ],
          "Write in 3rd person": [
             null,
@@ -499,11 +511,7 @@
             null,
             ""
          ],
-         "This room pesists even if it's unoccupied": [
-            null,
-            ""
-         ],
-         "This room is publically searchable": [
+         "This room persists even if it's unoccupied": [
             null,
             ""
          ],
@@ -553,11 +561,11 @@
          ],
          "Description:": [
             null,
-            "Beschreibung"
+            "Beschreibung:"
          ],
          "Occupants:": [
             null,
-            "Teilnehmer"
+            "Teilnehmer:"
          ],
          "Features:": [
             null,
@@ -733,7 +741,7 @@
          ],
          " e.g. conversejs.org": [
             null,
-            "z. B. conversejs.org"
+            " z. B. conversejs.org"
          ],
          "Your XMPP provider's domain name:": [
             null,
@@ -783,6 +791,10 @@
             null,
             ""
          ],
+         "Retry": [
+            null,
+            ""
+         ],
          "This contact is busy": [
             null,
             "Dieser Kontakt ist beschäftigt"

文件差异内容过多而无法显示
+ 203 - 195
locale/de/LC_MESSAGES/converse.po


+ 14 - 6
locale/es/LC_MESSAGES/converse.json

@@ -63,10 +63,18 @@
             null,
             ""
          ],
+         "Typing from another device": [
+            null,
+            ""
+         ],
          "is typing": [
             null,
             ""
          ],
+         "Stopped typing on the other device": [
+            null,
+            ""
+         ],
          "has stopped typing": [
             null,
             ""
@@ -371,7 +379,7 @@
             null,
             "Enviar"
          ],
-         "The reason given is: <em>\"%1$s\"</em>.": [
+         "The reason given is: \"%1$s\".": [
             null,
             ""
          ],
@@ -471,11 +479,7 @@
             null,
             ""
          ],
-         "This room pesists even if it's unoccupied": [
-            null,
-            ""
-         ],
-         "This room is publically searchable": [
+         "This room persists even if it's unoccupied": [
             null,
             ""
          ],
@@ -715,6 +719,10 @@
             null,
             ""
          ],
+         "Retry": [
+            null,
+            ""
+         ],
          "This contact is busy": [
             null,
             "Este contacto está ocupado"

文件差异内容过多而无法显示
+ 201 - 193
locale/es/LC_MESSAGES/converse.po


+ 135 - 47
locale/fr/LC_MESSAGES/converse.json

@@ -4,7 +4,7 @@
       "converse": {
          "": {
             "domain": "converse",
-            "plural_forms": "nplurals=2; plural=(n != 1);",
+            "plural_forms": "nplurals=2; plural=n > 1;",
             "lang": "fr"
          },
          "Bookmark this room": [
@@ -79,10 +79,18 @@
             null,
             "Un message très long a été reçu. Cela pourrait être lié à une attaque visant à dégrader la performance de la conversation. La sortie a été tronquée."
          ],
+         "Typing from another device": [
+            null,
+            ""
+         ],
          "is typing": [
             null,
             "écrit"
          ],
+         "Stopped typing on the other device": [
+            null,
+            ""
+         ],
          "has stopped typing": [
             null,
             "a arrêté d’écrire"
@@ -133,7 +141,7 @@
          ],
          "XMPP Username:": [
             null,
-            "Nom d’utilisateur XMPP/Jabber"
+            "Nom d’utilisateur XMPP :"
          ],
          "Password:": [
             null,
@@ -301,7 +309,7 @@
          ],
          "This client does not allow presence subscriptions": [
             null,
-            ""
+            "Ce client ne permet pas les mises à jour de disponibilité"
          ],
          "Close this box": [
             null,
@@ -371,10 +379,42 @@
             null,
             "Vous avez été retiré de ce salon du fait d’un changement d’affiliation"
          ],
+         "You have been removed from this room because the room has changed to members-only and you're not a member": [
+            null,
+            "Vous avez été retiré de ce salon parce que ce salon est devenu réservé aux membres et vous n’êtes pas membre"
+         ],
          "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
             null,
             "Vous avez été retiré de ce salon parce que le service de chat multi-utilisateur a été désactivé."
          ],
+         "%1$s has been banned": [
+            null,
+            "%1$s a été banni"
+         ],
+         "%1$s's nickname has changed": [
+            null,
+            "L’alias de %1$s a changé"
+         ],
+         "%1$s has been kicked out": [
+            null,
+            "%1$s a été expulsé"
+         ],
+         "%1$s has been removed because of an affiliation change": [
+            null,
+            "%1$s a été supprimé à cause d’un changement d’affiliation"
+         ],
+         "%1$s has been removed for not being a member": [
+            null,
+            "%1$s a été supprimé car il n’est pas membre"
+         ],
+         "Your nickname has been automatically set to: %1$s": [
+            null,
+            "Votre alias a été automatiquement déterminé en : %1$s"
+         ],
+         "Your nickname has been changed to: %1$s": [
+            null,
+            "Votre alias a été modifié en : %1$s"
+         ],
          "Message": [
             null,
             "Message"
@@ -447,9 +487,13 @@
             null,
             "Révoquer l’utilisateur des membres"
          ],
+         "Set room subject": [
+            null,
+            "Indiquer le sujet du salon"
+         ],
          "Set room subject (alias for /subject)": [
             null,
-            ""
+            "Définir le sujet de la salle (alias pour /subject)"
          ],
          "Allow muted user to post messages": [
             null,
@@ -473,23 +517,23 @@
          ],
          "This chatroom requires a password": [
             null,
-            "Ce salon nécessite un mot de passe."
+            "Ce salon nécessite un mot de passe"
          ],
          "Password: ": [
             null,
-            "Mot de passe :  "
+            "Mot de passe : "
          ],
          "Submit": [
             null,
             "Soumettre"
          ],
-         "This action was done by <strong>%1$s</strong>.": [
+         "This action was done by %1$s.": [
             null,
-            "L’action a été réalisée par : <strong>%1$s</strong>"
+            "L’action a été réalisée par %1$s."
          ],
-         "The reason given is: <em>\"%1$s\"</em>.": [
+         "The reason given is: \"%1$s\".": [
             null,
-            "La raison indiquée est : <em>\"%1$s\"</em>."
+            "La raison indiquée est : « %1$s »."
          ],
          "The reason given is: \"": [
             null,
@@ -497,15 +541,19 @@
          ],
          " has left the room. \"": [
             null,
-            ""
+            " a quitté le salon. \""
+         ],
+         " has left the room": [
+            null,
+            " a quitté le salon"
          ],
          " has joined the room. \"": [
             null,
-            ""
+            " a rejoint le salon. \""
          ],
          " has joined the room.": [
             null,
-            ""
+            " a rejoint le salon."
          ],
          "You are not on the member list of this room": [
             null,
@@ -535,6 +583,10 @@
             null,
             "Le sujet « %2$s » a été défini par %1$s"
          ],
+         "Click to mention ": [
+            null,
+            "Cliquer pour citer "
+         ],
          "This user is a moderator.": [
             null,
             "Cet utilisateur est un modérateur."
@@ -555,17 +607,21 @@
             null,
             "Inviter"
          ],
+         "Features": [
+            null,
+            "Caractéristiques"
+         ],
          "Hidden": [
             null,
             "Masqué"
          ],
          "Message archiving": [
             null,
-            ""
+            "Archivage du message"
          ],
          "Members only": [
             null,
-            ""
+            "Membres uniquement"
          ],
          "Moderated": [
             null,
@@ -575,9 +631,17 @@
             null,
             "Non-anonyme"
          ],
+         "Open": [
+            null,
+            "Ouvrir"
+         ],
+         "Password protected": [
+            null,
+            "Protégé par mot de passe"
+         ],
          "Persistent": [
             null,
-            ""
+            "Persistant"
          ],
          "Public": [
             null,
@@ -587,37 +651,57 @@
             null,
             "Semi-anonyme"
          ],
+         "Temporary": [
+            null,
+            "Temporaire"
+         ],
          "Unmoderated": [
             null,
             "Non modéré"
          ],
          "Unsecured": [
             null,
-            ""
+            "Non sécurisé"
          ],
          "Messages are archived on the server": [
             null,
-            ""
+            "Les messages sont archivés sur le serveur"
+         ],
+         "This room is restricted to members only": [
+            null,
+            "Ce salon est restreint aux membres uniquement"
+         ],
+         "This room is being moderated": [
+            null,
+            "Ce salon est modéré"
          ],
          "All other room occupants can see your Jabber ID": [
             null,
-            ""
+            "Tous les autres occupants de ce salon peuvent voir votre ID Jabber"
          ],
-         "This room pesists even if it's unoccupied": [
+         "Anyone can join this room": [
             null,
-            ""
+            "N’importe qui peut rejoindre ce salon"
          ],
-         "This room is publically searchable": [
+         "This room requires a password before entry": [
             null,
-            ""
+            "Ce salon nécessite un mot de passe pour y accéder"
          ],
          "Only moderators can see your Jabber ID": [
             null,
-            ""
+            "Seuls les modérateurs peuvent voir votre identifiant Jabber"
          ],
          "This room will disappear once the last person leaves": [
             null,
-            ""
+            "Ce salon disparaîtra au départ de la dernière personne"
+         ],
+         "This room is not being moderated": [
+            null,
+            "Ce salon n’est pas modéré"
+         ],
+         "This room does not require a password upon entry": [
+            null,
+            "Ce salon nécessite un mot de passe pour y accéder"
          ],
          "You are about to invite %1$s to the chat room \"%2$s\". ": [
             null,
@@ -713,15 +797,15 @@
          ],
          "Re-establishing encrypted session": [
             null,
-            "Rétablissement de la session encryptée"
+            "Rétablissement d’une session chiffrée"
          ],
          "Generating private key.": [
             null,
-            "Génération de la clé privée"
+            "Génération de la clé privée."
          ],
          "Your browser might become unresponsive.": [
             null,
-            "Votre navigateur pourrait ne plus répondre"
+            "Votre navigateur pourrait ne plus répondre."
          ],
          "Authentication request from %1$s\n\nYour chat contact is attempting to verify your identity, by asking you the question below.\n\n%2$s": [
             null,
@@ -729,27 +813,27 @@
          ],
          "Could not verify this user's identify.": [
             null,
-            "L’identité de cet utilisateur ne peut pas être vérifiée"
+            "L’identité de cet utilisateur ne peut pas être vérifiée."
          ],
          "Exchanging private key with contact.": [
             null,
-            "Échange de clé privée avec le contact"
+            "Échange de la clef privée avec le contact."
          ],
          "Your messages are not encrypted anymore": [
             null,
-            "Vos messages ne sont plus cryptés"
+            "Vos messages ne sont plus chiffrés"
          ],
          "Your messages are now encrypted but your contact's identity has not been verified.": [
             null,
-            "Vos messages sont maintenant cryptés mais l’identité de votre contact n’a pas econre été véfifiée"
+            "Vos messages sont maintenant chiffrés mais l’identité de votre contact n’a pas encore été vérifiée."
          ],
          "Your contact's identify has been verified.": [
             null,
-            "L’identité de votre contact a été vérifiée"
+            "L’identité de votre contact a été vérifiée."
          ],
          "Your contact has ended encryption on their end, you should do the same.": [
             null,
-            "Votre contact a arrêté le cryptage de son côté, vous devriez le faire aussi"
+            "Votre contact a arrêté le chiffrement de son côté, vous devriez le faire aussi."
          ],
          "Your message could not be sent": [
             null,
@@ -757,11 +841,11 @@
          ],
          "We received an unencrypted message": [
             null,
-            "Un message non crypté a été reçu"
+            "Un message non chiffré a été reçu"
          ],
          "We received an unreadable encrypted message": [
             null,
-            "Un message crypté illisible a été reçu"
+            "Un message chiffré illisible a été reçu"
          ],
          "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
             null,
@@ -773,11 +857,11 @@
          ],
          "What is your security question?": [
             null,
-            "Quelle est votre question de sécurité?"
+            "Quelle est votre question de sécurité ?"
          ],
          "What is the answer to the security question?": [
             null,
-            "Quelle est la réponse à la question de sécurité?"
+            "Quelle est la réponse à la question de sécurité ?"
          ],
          "Invalid authentication scheme provided": [
             null,
@@ -785,15 +869,15 @@
          ],
          "Your messages are not encrypted. Click here to enable OTR encryption.": [
             null,
-            "Vos messges ne sont pas cryptés. Cliquez ici pour activer le cryptage OTR"
+            "Vos messages ne sont pas chiffrés. Cliquez ici pour activer le chiffrement OTR."
          ],
          "Your messages are encrypted, but your contact has not been verified.": [
             null,
-            "Vos messges sont cryptés, mais votre contact n’a pas été vérifié"
+            "Vos messages sont chiffrés, mais votre contact n’a pas été vérifié."
          ],
          "Your messages are encrypted and your contact verified.": [
             null,
-            "Vos messages sont cryptés et votre contact est vérifié"
+            "Vos messages sont chiffrés et votre contact est vérifié."
          ],
          "Your contact has closed their end of the private session, you should do the same": [
             null,
@@ -801,15 +885,15 @@
          ],
          "End encrypted conversation": [
             null,
-            "Terminer la conversation cryptée"
+            "Terminer la conversation chiffrée"
          ],
          "Refresh encrypted conversation": [
             null,
-            "Actualiser la conversation cryptée"
+            "Actualiser la conversation chiffrée"
          ],
          "Start encrypted conversation": [
             null,
-            "Démarrer une conversation cryptée"
+            "Démarrer une conversation chiffrée"
          ],
          "Verify with fingerprints": [
             null,
@@ -821,11 +905,11 @@
          ],
          "What's this?": [
             null,
-            "Qu’est-ce qu’une conversation cryptée?"
+            "Qu’est-ce que c’est ?"
          ],
          "unencrypted": [
             null,
-            "non crypté"
+            "chiffré"
          ],
          "unverified": [
             null,
@@ -841,7 +925,7 @@
          ],
          " e.g. conversejs.org": [
             null,
-            "e.g. conversejs.org"
+            " e.g. conversejs.org"
          ],
          "Your XMPP provider's domain name:": [
             null,
@@ -891,6 +975,10 @@
             null,
             "Le fournisseur a rejeté votre demande d’enregistrement."
          ],
+         "Retry": [
+            null,
+            ""
+         ],
          "This contact is busy": [
             null,
             "Ce contact est occupé"

文件差异内容过多而无法显示
+ 210 - 199
locale/fr/LC_MESSAGES/converse.po


+ 13 - 5
locale/he/LC_MESSAGES/converse.json

@@ -59,10 +59,18 @@
             null,
             ""
          ],
+         "Typing from another device": [
+            null,
+            ""
+         ],
          "is typing": [
             null,
             "מקליד(ה) כעת"
          ],
+         "Stopped typing on the other device": [
+            null,
+            ""
+         ],
          "has stopped typing": [
             null,
             "חדל(ה) להקליד"
@@ -503,11 +511,7 @@
             null,
             ""
          ],
-         "This room pesists even if it's unoccupied": [
-            null,
-            ""
-         ],
-         "This room is publically searchable": [
+         "This room persists even if it's unoccupied": [
             null,
             ""
          ],
@@ -783,6 +787,10 @@
             null,
             "חזור"
          ],
+         "Retry": [
+            null,
+            ""
+         ],
          "This contact is busy": [
             null,
             "איש קשר זה עסוק"

文件差异内容过多而无法显示
+ 201 - 191
locale/he/LC_MESSAGES/converse.po


+ 13 - 5
locale/hu/LC_MESSAGES/converse.json

@@ -62,10 +62,18 @@
             null,
             ""
          ],
+         "Typing from another device": [
+            null,
+            ""
+         ],
          "is typing": [
             null,
             "gépel..."
          ],
+         "Stopped typing on the other device": [
+            null,
+            ""
+         ],
          "has stopped typing": [
             null,
             "már nem gépel"
@@ -514,11 +522,7 @@
             null,
             ""
          ],
-         "This room pesists even if it's unoccupied": [
-            null,
-            ""
-         ],
-         "This room is publically searchable": [
+         "This room persists even if it's unoccupied": [
             null,
             ""
          ],
@@ -798,6 +802,10 @@
             null,
             "A szolgáltató visszautasította a regisztrációs kérelmet. Kérem ellenőrízze a bevitt adatok pontosságát."
          ],
+         "Retry": [
+            null,
+            ""
+         ],
          "This contact is busy": [
             null,
             "Elfoglalt"

文件差异内容过多而无法显示
+ 201 - 193
locale/hu/LC_MESSAGES/converse.po


+ 14 - 6
locale/id/LC_MESSAGES/converse.json

@@ -62,10 +62,18 @@
             null,
             ""
          ],
+         "Typing from another device": [
+            null,
+            ""
+         ],
          "is typing": [
             null,
             ""
          ],
+         "Stopped typing on the other device": [
+            null,
+            ""
+         ],
          "has stopped typing": [
             null,
             ""
@@ -358,7 +366,7 @@
             null,
             "Kirim"
          ],
-         "The reason given is: <em>\"%1$s\"</em>.": [
+         "The reason given is: \"%1$s\".": [
             null,
             ""
          ],
@@ -454,11 +462,7 @@
             null,
             ""
          ],
-         "This room pesists even if it's unoccupied": [
-            null,
-            ""
-         ],
-         "This room is publically searchable": [
+         "This room persists even if it's unoccupied": [
             null,
             ""
          ],
@@ -702,6 +706,10 @@
             null,
             ""
          ],
+         "Retry": [
+            null,
+            ""
+         ],
          "This contact is busy": [
             null,
             "Teman ini sedang sibuk"

文件差异内容过多而无法显示
+ 200 - 191
locale/id/LC_MESSAGES/converse.po


+ 184 - 64
locale/it/LC_MESSAGES/converse.json

@@ -4,24 +4,24 @@
       "converse": {
          "": {
             "domain": "converse",
-            "plural_forms": "nplurals=2; plural=(n != 1);",
+            "plural_forms": "nplurals=2; plural=n != 1;",
             "lang": "it"
          },
          "Bookmark this room": [
             null,
-            ""
+            "Salva questa stanza"
          ],
          "The name for this bookmark:": [
             null,
-            ""
+            "Nome per questo bookmark:"
          ],
          "Would you like this room to be automatically joined upon startup?": [
             null,
-            ""
+            "Vuoi collegarti automaticamente a questa stanza quando fai il login?"
          ],
          "What should your nickname for this room be?": [
             null,
-            ""
+            "Qual è il nickname per questa stanza?"
          ],
          "Save": [
             null,
@@ -31,9 +31,21 @@
             null,
             "Annulla"
          ],
+         "Sorry, something went wrong while trying to save your bookmark.": [
+            null,
+            "Si è verificato un errore nel salvataggio del bookmark."
+         ],
+         "Click to toggle the bookmarks list": [
+            null,
+            "Clicca per aprire/chiudere la lista bookmarks"
+         ],
          "Bookmarked Rooms": [
             null,
-            ""
+            "Stanza Salvate"
+         ],
+         "Are you sure you want to remove the bookmark \"%1$s\"?": [
+            null,
+            "Sei sicuro di voler rimuovere il segnalibro \"%1$s\"?"
          ],
          "Click to open this room": [
             null,
@@ -45,7 +57,7 @@
          ],
          "Remove this bookmark": [
             null,
-            ""
+            "Rimuovi questo bookmark"
          ],
          "You have unread messages": [
             null,
@@ -64,6 +76,10 @@
             "me"
          ],
          "A very large message has been received.This might be due to an attack meant to degrade the chat performance.Output has been shortened.": [
+            null,
+            "Un grande messaggio è stato ricevuto. Questo potrebbe essere dovuto ad un attacco destinato a degradare le performance della chat. L'output è stato accorciato."
+         ],
+         "Typing from another device": [
             null,
             ""
          ],
@@ -71,6 +87,10 @@
             null,
             "sta scrivendo"
          ],
+         "Stopped typing on the other device": [
+            null,
+            ""
+         ],
          "has stopped typing": [
             null,
             "ha smesso di scrivere"
@@ -253,7 +273,7 @@
          ],
          "The connection has dropped, attempting to reconnect.": [
             null,
-            ""
+            "La connessione è caduta, attendi la riconnessione."
          ],
          "Connection error": [
             null,
@@ -275,9 +295,17 @@
             null,
             "Autenticazione fallita"
          ],
+         "Connection failed": [
+            null,
+            "Errore di connessione"
+         ],
+         "An error occurred while connecting to the chat server: ": [
+            null,
+            "Si è verificato un errore durante la connessione al server. "
+         ],
          "Sorry, there was an error while trying to add ": [
             null,
-            "Si è verificato un errore durante il tentativo di aggiunta"
+            "Si è verificato un errore durante il tentativo di aggiunta "
          ],
          "This client does not allow presence subscriptions": [
             null,
@@ -311,6 +339,10 @@
             null,
             "Questa stanza non mostra i membri non disponibili"
          ],
+         "The room configuration has changed": [
+            null,
+            "La configurazione della stanza è cambiata"
+         ],
          "Room logging is now enabled": [
             null,
             "La registrazione è abilitata nella stanza"
@@ -319,6 +351,10 @@
             null,
             "La registrazione è disabilitata nella stanza"
          ],
+         "This room is now no longer anonymous": [
+            null,
+            "Questa stanza è non-anonima"
+         ],
          "This room is now semi-anonymous": [
             null,
             "Questa stanza è semi-anonima"
@@ -349,19 +385,55 @@
          ],
          "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
             null,
-            "Sei stato rimosso da questa stanza poiché il servizio MUC (Chat multi utente) è in fase di spegnimento"
+            "Sei stato rimosso da questa stanza poiché il servizio MUC (Chat multi utente) è in fase di spegnimento."
+         ],
+         "%1$s has been banned": [
+            null,
+            "%1$s è stato bannato"
+         ],
+         "%1$s's nickname has changed": [
+            null,
+            "%1$s nickname è cambiato"
+         ],
+         "%1$s has been kicked out": [
+            null,
+            "%1$s è stato espulso"
+         ],
+         "%1$s has been removed because of an affiliation change": [
+            null,
+            "%1$s è stato rimosso a causa di un cambio di affiliazione"
+         ],
+         "%1$s has been removed for not being a member": [
+            null,
+            "%1$s è stato rimosso in quanto non membro"
+         ],
+         "Your nickname has been automatically set to: %1$s": [
+            null,
+            "Il tuo nickname è stato cambiato automaticamente in: %1$s"
+         ],
+         "Your nickname has been changed to: %1$s": [
+            null,
+            "Il tuo nickname è stato cambiato: %1$s"
          ],
          "Message": [
             null,
             "Messaggio"
          ],
+         "Close and leave this room": [
+            null,
+            "Chiudi e lascia questa stanza"
+         ],
+         "Configure this room": [
+            null,
+            "Configura questa stanza"
+         ],
          "Hide the list of occupants": [
             null,
             "Nascondi la lista degli occupanti"
          ],
          "Error: the \"": [
             null,
-            ""
+            "Errore: il \""
          ],
          "Are you sure you want to clear the messages from this room?": [
             null,
@@ -369,7 +441,7 @@
          ],
          "Error: could not execute the command": [
             null,
-            ""
+            "Errore: impossibile eseguire il comando"
          ],
          "Change user's affiliation to admin": [
             null,
@@ -397,11 +469,11 @@
          ],
          "Remove user's ability to post messages": [
             null,
-            ""
+            "Rimuovi la possibilità di inviare messaggi all'utente"
          ],
          "Change your nickname": [
             null,
-            ""
+            "Cambia il tuo nickname"
          ],
          "Grant moderator role to user": [
             null,
@@ -415,13 +487,17 @@
             null,
             ""
          ],
+         "Set room subject": [
+            null,
+            "Cambia oggetto della stanza"
+         ],
          "Set room subject (alias for /subject)": [
             null,
-            ""
+            "Imposta oggetto della stanza (alias per /subject)"
          ],
          "Allow muted user to post messages": [
             null,
-            ""
+            "Abilita l'utente mutato ad inviare nuovamente messaggi"
          ],
          "The nickname you chose is reserved or currently in use, please choose a different one.": [
             null,
@@ -451,25 +527,25 @@
             null,
             "Invia"
          ],
-         "The reason given is: <em>\"%1$s\"</em>.": [
-            null,
-            ""
-         ],
          "The reason given is: \"": [
             null,
-            ""
+            "La ragione data è: \""
          ],
          " has left the room. \"": [
             null,
-            ""
+            " ha lasciato la stanza. \""
+         ],
+         " has left the room": [
+            null,
+            " ha lasciato la stanza"
          ],
          " has joined the room. \"": [
             null,
-            ""
+            " è entrato nella stanza. \""
          ],
          " has joined the room.": [
             null,
-            ""
+            " è entrato nella stanza."
          ],
          "You are not on the member list of this room": [
             null,
@@ -499,6 +575,10 @@
             null,
             "Topic impostato da %1$s a: %2$s"
          ],
+         "Click to mention ": [
+            null,
+            "Clicca per citare "
+         ],
          "This user is a moderator.": [
             null,
             "Questo utente è un moderatore."
@@ -519,17 +599,21 @@
             null,
             "Invita"
          ],
+         "Features": [
+            null,
+            "Impostazioni"
+         ],
          "Hidden": [
             null,
             "Nascosta"
          ],
          "Message archiving": [
             null,
-            ""
+            "Archivio Messaggi"
          ],
          "Members only": [
             null,
-            ""
+            "Solo membri"
          ],
          "Moderated": [
             null,
@@ -539,9 +623,17 @@
             null,
             "Non-anonima"
          ],
+         "Open": [
+            null,
+            "Aperta"
+         ],
+         "Password protected": [
+            null,
+            "Con Password"
+         ],
          "Persistent": [
             null,
-            ""
+            "Persistente"
          ],
          "Public": [
             null,
@@ -551,45 +643,69 @@
             null,
             "Semi-anonima"
          ],
+         "Temporary": [
+            null,
+            "Temporanea"
+         ],
          "Unmoderated": [
             null,
             "Non moderata"
          ],
          "Unsecured": [
             null,
-            ""
+            "Non Sicura"
          ],
          "Messages are archived on the server": [
             null,
-            ""
+            "Messaggi sono archiviati sul server"
+         ],
+         "This room is restricted to members only": [
+            null,
+            "Questa stanza è ristretta ai soli membri"
+         ],
+         "This room is being moderated": [
+            null,
+            "Questa stanza è moderata"
          ],
          "All other room occupants can see your Jabber ID": [
             null,
-            ""
+            "Tutti gli occupanti della stanza possono vedere il tuo Jabber ID"
          ],
-         "This room pesists even if it's unoccupied": [
+         "Anyone can join this room": [
             null,
-            ""
+            "Chiunque può collegarsi a questa stanza"
          ],
-         "This room is publically searchable": [
+         "This room requires a password before entry": [
+            null,
+            "Questa stanza richiede una password"
+         ],
+         "This room persists even if it's unoccupied": [
             null,
             ""
          ],
          "Only moderators can see your Jabber ID": [
             null,
-            ""
+            "Solo il moderatore può vedere il tuo Jabber ID"
          ],
          "This room will disappear once the last person leaves": [
             null,
             ""
          ],
+         "This room is not being moderated": [
+            null,
+            "Questa stanza non è moderata"
+         ],
+         "This room does not require a password upon entry": [
+            null,
+            "Questa stanza non richiede una password"
+         ],
          "You are about to invite %1$s to the chat room \"%2$s\". ": [
             null,
-            ""
+            "Stai per invitare %1$s nella stanza \"%2$s\". "
          ],
          "You may optionally include a message, explaining the reason for the invitation.": [
             null,
-            ""
+            "Puoi includere un messaggio per spiegare le ragioni dell'invito."
          ],
          "Room name": [
             null,
@@ -673,7 +789,7 @@
          ],
          "wants to be your contact": [
             null,
-            ""
+            "vuole essere un tuo contatto"
          ],
          "Re-establishing encrypted session": [
             null,
@@ -685,7 +801,7 @@
          ],
          "Your browser might become unresponsive.": [
             null,
-            ""
+            "Il tuo browser potrebbe bloccarsi."
          ],
          "Authentication request from %1$s\n\nYour chat contact is attempting to verify your identity, by asking you the question below.\n\n%2$s": [
             null,
@@ -693,23 +809,23 @@
          ],
          "Could not verify this user's identify.": [
             null,
-            ""
+            "Non posso verificare l'identità dell'utente."
          ],
          "Exchanging private key with contact.": [
             null,
-            ""
+            "Scambio la chiave privata col contatto."
          ],
          "Your messages are not encrypted anymore": [
             null,
-            ""
+            "I tuoi messaggi non sono più criptati"
          ],
          "Your messages are now encrypted but your contact's identity has not been verified.": [
             null,
-            ""
+            "I tuoi messaggi sono ora criptati ma l'identità del tuo contatto non è verificata."
          ],
          "Your contact's identify has been verified.": [
             null,
-            ""
+            "L'identità del contatto è verificata."
          ],
          "Your contact has ended encryption on their end, you should do the same.": [
             null,
@@ -717,15 +833,15 @@
          ],
          "Your message could not be sent": [
             null,
-            ""
+            "Il tuo messaggio non può essere spedito"
          ],
          "We received an unencrypted message": [
             null,
-            ""
+            "Abbiamo ricevuto un messaggio non criptato"
          ],
          "We received an unreadable encrypted message": [
             null,
-            ""
+            "Abbiamo ricevuto un messaggio criptato non leggibile"
          ],
          "Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.": [
             null,
@@ -737,27 +853,27 @@
          ],
          "What is your security question?": [
             null,
-            ""
+            "Qual è la tua domanda di sicurezza?"
          ],
          "What is the answer to the security question?": [
             null,
-            ""
+            "Qual è la risposta alla domanda di sicurezza?"
          ],
          "Invalid authentication scheme provided": [
             null,
-            ""
+            "Schema di autenticazione non valido"
          ],
          "Your messages are not encrypted. Click here to enable OTR encryption.": [
             null,
-            ""
+            "I tuoi messaggi non sono criptati. Clicca qui per attivare OTR encryption."
          ],
          "Your messages are encrypted, but your contact has not been verified.": [
             null,
-            ""
+            "I tuoi messaggi sono criptati ma il tuo contatto non è verificato."
          ],
          "Your messages are encrypted and your contact verified.": [
             null,
-            ""
+            "Il tuoi messaggi sono criptati e il tuo contatto verificato."
          ],
          "Your contact has closed their end of the private session, you should do the same": [
             null,
@@ -765,27 +881,27 @@
          ],
          "End encrypted conversation": [
             null,
-            ""
+            "Fine della conversazione criptata"
          ],
          "Refresh encrypted conversation": [
             null,
-            ""
+            "Aggiorna conversazione criptata"
          ],
          "Start encrypted conversation": [
             null,
-            ""
+            "Inizio conversazione criptata"
          ],
          "Verify with fingerprints": [
             null,
-            ""
+            "Verifica con fingerprints"
          ],
          "Verify with SMP": [
             null,
-            ""
+            "Verifica con SMP"
          ],
          "What's this?": [
             null,
-            ""
+            "Che cos'è?"
          ],
          "unencrypted": [
             null,
@@ -805,7 +921,7 @@
          ],
          " e.g. conversejs.org": [
             null,
-            "es. conversejs.org"
+            " es. conversejs.org"
          ],
          "Your XMPP provider's domain name:": [
             null,
@@ -849,12 +965,16 @@
          ],
          "Return": [
             null,
-            ""
+            "Ritorna"
          ],
          "The provider rejected your registration attempt. Please check the values you entered for correctness.": [
             null,
             "Il provider ha respinto il tentativo di registrazione. Controlla i dati inseriti."
          ],
+         "Retry": [
+            null,
+            ""
+         ],
          "This contact is busy": [
             null,
             "Questo contatto è occupato"
@@ -905,15 +1025,15 @@
          ],
          "State": [
             null,
-            ""
+            "Stato"
          ],
          "Any": [
             null,
-            ""
+            "Ogni"
          ],
          "Chatty": [
             null,
-            ""
+            "Chatty"
          ],
          "Extended Away": [
             null,
@@ -945,7 +1065,7 @@
          ],
          "Sorry, there was an error while trying to remove ": [
             null,
-            "Si è verificato un errore durante il tentativo di rimozione"
+            "Si è verificato un errore durante il tentativo di rimozione "
          ],
          "Are you sure you want to decline this contact request?": [
             null,

文件差异内容过多而无法显示
+ 207 - 197
locale/it/LC_MESSAGES/converse.po


+ 14 - 6
locale/ja/LC_MESSAGES/converse.json

@@ -63,10 +63,18 @@
             null,
             ""
          ],
+         "Typing from another device": [
+            null,
+            ""
+         ],
          "is typing": [
             null,
             ""
          ],
+         "Stopped typing on the other device": [
+            null,
+            ""
+         ],
          "has stopped typing": [
             null,
             ""
@@ -359,7 +367,7 @@
             null,
             "送信"
          ],
-         "The reason given is: <em>\"%1$s\"</em>.": [
+         "The reason given is: \"%1$s\".": [
             null,
             ""
          ],
@@ -455,11 +463,7 @@
             null,
             ""
          ],
-         "This room pesists even if it's unoccupied": [
-            null,
-            ""
-         ],
-         "This room is publically searchable": [
+         "This room persists even if it's unoccupied": [
             null,
             ""
          ],
@@ -703,6 +707,10 @@
             null,
             ""
          ],
+         "Retry": [
+            null,
+            ""
+         ],
          "This contact is busy": [
             null,
             "この相手先は取り込み中です"

文件差异内容过多而无法显示
+ 200 - 191
locale/ja/LC_MESSAGES/converse.po


+ 13 - 5
locale/nb/LC_MESSAGES/converse.json

@@ -63,10 +63,18 @@
             null,
             ""
          ],
+         "Typing from another device": [
+            null,
+            ""
+         ],
          "is typing": [
             null,
             "skriver"
          ],
+         "Stopped typing on the other device": [
+            null,
+            ""
+         ],
          "has stopped typing": [
             null,
             "har stoppet å skrive"
@@ -483,11 +491,7 @@
             null,
             ""
          ],
-         "This room pesists even if it's unoccupied": [
-            null,
-            ""
-         ],
-         "This room is publically searchable": [
+         "This room persists even if it's unoccupied": [
             null,
             ""
          ],
@@ -759,6 +763,10 @@
             null,
             "Tilbake"
          ],
+         "Retry": [
+            null,
+            ""
+         ],
          "This contact is busy": [
             null,
             "Denne kontakten er opptatt"

文件差异内容过多而无法显示
+ 202 - 195
locale/nb/LC_MESSAGES/converse.po


+ 16 - 8
locale/nl/LC_MESSAGES/converse.json

@@ -4,7 +4,7 @@
       "converse": {
          "": {
             "domain": "converse",
-            "plural_forms": "nplurals=2; plural=(n != 1);",
+            "plural_forms": "nplurals=2; plural=n != 1;",
             "lang": "nl"
          },
          "Bookmark this room": [
@@ -63,6 +63,14 @@
             null,
             ""
          ],
+         "Typing from another device": [
+            null,
+            ""
+         ],
+         "Stopped typing on the other device": [
+            null,
+            ""
+         ],
          "Show this menu": [
             null,
             "Toon dit menu"
@@ -349,7 +357,7 @@
          ],
          "Nickname": [
             null,
-            "Nickname"
+            "Bijnaam"
          ],
          "This chatroom requires a password": [
             null,
@@ -363,7 +371,7 @@
             null,
             "Indienen"
          ],
-         "The reason given is: <em>\"%1$s\"</em>.": [
+         "The reason given is: \"%1$s\".": [
             null,
             ""
          ],
@@ -459,11 +467,7 @@
             null,
             ""
          ],
-         "This room pesists even if it's unoccupied": [
-            null,
-            ""
-         ],
-         "This room is publically searchable": [
+         "This room persists even if it's unoccupied": [
             null,
             ""
          ],
@@ -715,6 +719,10 @@
             null,
             ""
          ],
+         "Retry": [
+            null,
+            ""
+         ],
          "This contact is busy": [
             null,
             "Contact is bezet"

文件差异内容过多而无法显示
+ 202 - 193
locale/nl/LC_MESSAGES/converse.po


+ 13 - 5
locale/pl/LC_MESSAGES/converse.json

@@ -67,10 +67,18 @@
             null,
             ""
          ],
+         "Typing from another device": [
+            null,
+            ""
+         ],
          "is typing": [
             null,
             "pisze"
          ],
+         "Stopped typing on the other device": [
+            null,
+            ""
+         ],
          "has stopped typing": [
             null,
             "przestał pisać"
@@ -555,11 +563,7 @@
             null,
             ""
          ],
-         "This room pesists even if it's unoccupied": [
-            null,
-            ""
-         ],
-         "This room is publically searchable": [
+         "This room persists even if it's unoccupied": [
             null,
             ""
          ],
@@ -843,6 +847,10 @@
             null,
             "Dostawca odrzucił twoją próbę rejestracji. Sprawdź proszę poprawność danych które zostały wprowadzone."
          ],
+         "Retry": [
+            null,
+            ""
+         ],
          "This contact is busy": [
             null,
             "Kontakt jest zajęty"

文件差异内容过多而无法显示
+ 201 - 193
locale/pl/LC_MESSAGES/converse.po


+ 14 - 6
locale/pt_BR/LC_MESSAGES/converse.json

@@ -63,6 +63,14 @@
             null,
             ""
          ],
+         "Typing from another device": [
+            null,
+            ""
+         ],
+         "Stopped typing on the other device": [
+            null,
+            ""
+         ],
          "Show this menu": [
             null,
             "Mostrar o menu"
@@ -351,7 +359,7 @@
             null,
             "Enviar"
          ],
-         "The reason given is: <em>\"%1$s\"</em>.": [
+         "The reason given is: \"%1$s\".": [
             null,
             ""
          ],
@@ -447,11 +455,7 @@
             null,
             ""
          ],
-         "This room pesists even if it's unoccupied": [
-            null,
-            ""
-         ],
-         "This room is publically searchable": [
+         "This room persists even if it's unoccupied": [
             null,
             ""
          ],
@@ -691,6 +695,10 @@
             null,
             ""
          ],
+         "Retry": [
+            null,
+            ""
+         ],
          "This contact is busy": [
             null,
             "Este contato está ocupado"

文件差异内容过多而无法显示
+ 200 - 191
locale/pt_BR/LC_MESSAGES/converse.po


+ 13 - 5
locale/ru/LC_MESSAGES/converse.json

@@ -62,10 +62,18 @@
             null,
             ""
          ],
+         "Typing from another device": [
+            null,
+            ""
+         ],
          "is typing": [
             null,
             "набирает текст"
          ],
+         "Stopped typing on the other device": [
+            null,
+            ""
+         ],
          "has stopped typing": [
             null,
             "перестал набирать"
@@ -498,11 +506,7 @@
             null,
             ""
          ],
-         "This room pesists even if it's unoccupied": [
-            null,
-            ""
-         ],
-         "This room is publically searchable": [
+         "This room persists even if it's unoccupied": [
             null,
             ""
          ],
@@ -766,6 +770,10 @@
             null,
             "Провайдер отклонил вашу попытку зарегистрироваться. Пожалуйста, проверьте, правильно ли введены значения."
          ],
+         "Retry": [
+            null,
+            ""
+         ],
          "This contact is busy": [
             null,
             "Занят"

文件差异内容过多而无法显示
+ 200 - 191
locale/ru/LC_MESSAGES/converse.po


+ 13 - 5
locale/uk/LC_MESSAGES/converse.json

@@ -63,10 +63,18 @@
             null,
             ""
          ],
+         "Typing from another device": [
+            null,
+            ""
+         ],
          "is typing": [
             null,
             "друкує"
          ],
+         "Stopped typing on the other device": [
+            null,
+            ""
+         ],
          "has stopped typing": [
             null,
             "припинив друкувати"
@@ -499,11 +507,7 @@
             null,
             ""
          ],
-         "This room pesists even if it's unoccupied": [
-            null,
-            ""
-         ],
-         "This room is publically searchable": [
+         "This room persists even if it's unoccupied": [
             null,
             ""
          ],
@@ -779,6 +783,10 @@
             null,
             "Вернутися"
          ],
+         "Retry": [
+            null,
+            ""
+         ],
          "This contact is busy": [
             null,
             "Цей контакт зайнятий"

文件差异内容过多而无法显示
+ 200 - 191
locale/uk/LC_MESSAGES/converse.po


+ 14 - 6
locale/zh/LC_MESSAGES/converse.json

@@ -62,10 +62,18 @@
             null,
             ""
          ],
+         "Typing from another device": [
+            null,
+            ""
+         ],
          "is typing": [
             null,
             ""
          ],
+         "Stopped typing on the other device": [
+            null,
+            ""
+         ],
          "has stopped typing": [
             null,
             ""
@@ -358,7 +366,7 @@
             null,
             "发送"
          ],
-         "The reason given is: <em>\"%1$s\"</em>.": [
+         "The reason given is: \"%1$s\".": [
             null,
             ""
          ],
@@ -454,11 +462,7 @@
             null,
             ""
          ],
-         "This room pesists even if it's unoccupied": [
-            null,
-            ""
-         ],
-         "This room is publically searchable": [
+         "This room persists even if it's unoccupied": [
             null,
             ""
          ],
@@ -698,6 +702,10 @@
             null,
             ""
          ],
+         "Retry": [
+            null,
+            ""
+         ],
          "This contact is busy": [
             null,
             "对方忙碌中"

文件差异内容过多而无法显示
+ 200 - 191
locale/zh/LC_MESSAGES/converse.po


+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "converse.js",
-  "version": "3.0.0",
+  "version": "3.0.1",
   "description": "Browser based XMPP instant messaging client",
   "main": "main.js",
   "directories": {

+ 1 - 1
src/start.frag

@@ -2,7 +2,7 @@
  *
  *  An XMPP chat client that runs in the browser.
  *
- *  Version: 3.0.0
+ *  Version: 3.0.1
  */
 
 /* jshint ignore:start */

部分文件因为文件数量过多而无法显示