Kaynağa Gözat

Add webpack.nodeps.js

Use it to generate dist/converse-no-dependencies.js which we use to
generate the converse.pot file.
JC Brand 5 yıl önce
ebeveyn
işleme
cf7d2fb648
6 değiştirilmiş dosya ile 1075 ekleme ve 1038 silme
  1. 8 9
      Makefile
  2. 990 1025
      locale/converse.pot
  3. 1 0
      package.json
  4. 8 3
      src/converse-chatview.js
  5. 0 1
      src/headless/utils/core.js
  6. 68 0
      webpack.nodeps.js

+ 8 - 9
Makefile

@@ -21,6 +21,7 @@ SED				?= sed
 SPHINXBUILD	 	?= ./bin/sphinx-build
 SPHINXOPTS	  	=
 UGLIFYJS		?= node_modules/.bin/uglifyjs
+XGETTEXT		= xgettext
 
 
 # Internal variables.
@@ -65,10 +66,13 @@ serve_bg: stamp-npm
 ########################################################################
 ## Translation machinery
 
-GETTEXT = xgettext --language="JavaScript" --keyword=__ --keyword=___ --from-code=UTF-8 --output=locale/converse.pot dist/converse-no-dependencies.js --package-name=Converse.js --copyright-holder="Jan-Carel Brand" --package-version=5.0.1 -c
+dist/converse-no-dependencies.js: src webpack.common.js webpack.nodeps.js stamp-npm @converse/headless
+	npm run nodeps
+
+GETTEXT = $(XGETTEXT) --from-code=UTF-8 --language=JavaScript --keyword=__ -keyword=___ --force-po --output=locale/converse.pot --package-name=Converse.js --copyright-holder="Jan-Carel Brand" --package-version=5.0.1 dist/converse-no-dependencies.js -c
 
 .PHONY: pot
-pot: dist/converse-no-dependencies-es2015.js
+pot: dist/converse-no-dependencies.js
 	$(GETTEXT) 2>&1 > /dev/null; exit $$?;
 
 .PHONY: po
@@ -155,18 +159,13 @@ logo/conversejs-filled%.png:: logo/conversejs-filled.svg
 	$(OXIPNG) $@
 
 BUILDS = src/headless/dist/converse-headless.js \
-	src/headless/dist/converse-headless.min.js \
-	dist/converse-no-dependencies.js \
-	dist/converse-no-dependencies-es2015.js
+		 src/headless/dist/converse-headless.min.js
 
 src/headless/dist/converse-headless.js: src webpack.common.js stamp-npm @converse/headless
 	npm run converse-headless.js
 src/headless/dist/converse-headless.min.js: src webpack.common.js stamp-npm @converse/headless
 	npm run converse-headless.min.js
-dist/converse-no-dependencies.js: src webpack.common.js stamp-npm @converse/headless
-	$(NPX)  webpack --mode=development --type=nodeps
-dist/converse-no-dependencies-es2015.js: src webpack.common.js stamp-npm @converse/headless
-	$(NPX)  webpack --mode=development --type=nodeps --lang=es2015
+
 
 @converse/headless: src/headless
 

+ 990 - 1025
locale/converse.pot

@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Converse.js 5.0.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-14 12:46+0200\n"
+"POT-Creation-Date: 2019-08-23 21:18+0200\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,1865 +17,1830 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: dist/converse-no-dependencies.js:26952
-#, javascript-format
-msgid "Are you sure you want to remove the bookmark \"%1$s\"?"
+#: dist/converse-no-dependencies.js:7905
+msgid "Uploading file:"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:26987
-#: dist/converse-no-dependencies.js:27103
-#: dist/converse-no-dependencies.js:37800
-msgid "Unbookmark this groupchat"
+#: dist/converse-no-dependencies.js:8014
+msgid "This message has been edited"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:26987
-#: dist/converse-no-dependencies.js:27065
-#: dist/converse-no-dependencies.js:37801
-msgid "Bookmark this groupchat"
+#: dist/converse-no-dependencies.js:8020
+msgid "Edit this message"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27066
-msgid "Would you like this groupchat to be automatically joined upon startup?"
+#: dist/converse-no-dependencies.js:8036
+msgid "Message versions"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27067
-#: dist/converse-no-dependencies.js:36531
-#: dist/converse-no-dependencies.js:74070
-#: dist/converse-no-dependencies.js:75714
-msgid "Cancel"
+#: dist/converse-no-dependencies.js:8050 dist/converse-no-dependencies.js:8327
+#: dist/converse-no-dependencies.js:8441 dist/converse-no-dependencies.js:8999
+#: dist/converse-no-dependencies.js:48847
+#: dist/converse-no-dependencies.js:48936
+msgid "Close"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27068
-msgid "The name for this bookmark:"
+#: dist/converse-no-dependencies.js:8331
+msgid "The User's Profile Image"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27069
-msgid "What should your nickname for this groupchat be?"
+#: dist/converse-no-dependencies.js:8341
+msgid "Full Name:"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27070
-#: dist/converse-no-dependencies.js:36535
-#: dist/converse-no-dependencies.js:74068
-msgid "Save"
+#: dist/converse-no-dependencies.js:8347 dist/converse-no-dependencies.js:8523
+msgid "XMPP Address:"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27101
-#: dist/converse-no-dependencies.js:37799
-msgid "Leave this groupchat"
+#: dist/converse-no-dependencies.js:8355
+msgid "Nickname:"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27102
-msgid "Remove this bookmark"
+#: dist/converse-no-dependencies.js:8363
+msgid "URL:"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27104
-#: dist/converse-no-dependencies.js:32500
-#: dist/converse-no-dependencies.js:37802
-msgid "Show more information on this groupchat"
+#: dist/converse-no-dependencies.js:8373
+msgid "Email:"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27107
-#: dist/converse-no-dependencies.js:32499
-#: dist/converse-no-dependencies.js:37804
-msgid "Click to open this groupchat"
+#: dist/converse-no-dependencies.js:8383
+msgid "Role:"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27156
-msgid "Click to toggle the bookmarks list"
+#: dist/converse-no-dependencies.js:8391
+msgid "OMEMO Fingerprints"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27157
-msgid "Bookmarks"
+#: dist/converse-no-dependencies.js:8415
+msgid "Trusted"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27740
-msgid "Close this chat box"
+#: dist/converse-no-dependencies.js:8429
+msgid "Untrusted"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27828
-msgid "Sorry, something went wrong while trying to refresh"
+#: dist/converse-no-dependencies.js:8443
+msgid "Refresh"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27843
-#: dist/converse-no-dependencies.js:38581
-msgid "Are you sure you want to remove this contact?"
+#: dist/converse-no-dependencies.js:8447
+msgid "Remove as contact"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27852
-#: dist/converse-no-dependencies.js:34959
-#: dist/converse-no-dependencies.js:35271
-#: dist/converse-no-dependencies.js:35275
-#: dist/converse-no-dependencies.js:35325
-#: dist/converse-no-dependencies.js:36481
-#: dist/converse-no-dependencies.js:38599
-#: dist/converse-no-dependencies.js:39662
-msgid "Error"
+#: dist/converse-no-dependencies.js:8529
+msgid "Password:"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27852
-#: dist/converse-no-dependencies.js:38599
-#, javascript-format
-msgid "Sorry, there was an error while trying to remove %1$s as a contact."
+#: dist/converse-no-dependencies.js:8531
+msgid "password"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27923
-#: dist/converse-no-dependencies.js:27964
-msgid "You have unread messages"
+#: dist/converse-no-dependencies.js:8541
+msgid "This is a trusted device"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27958
-msgid "Hidden message"
+#: dist/converse-no-dependencies.js:8543
+msgid ""
+"To improve performance, we cache your data in this browser. Uncheck this box "
+"if this is a public computer or if you want your data to be deleted when you "
+"log out. It's important that you explicitly log out, otherwise not all "
+"cached data might be deleted. Please note, when using an untrusted device, "
+"OMEMO encryption is NOT available."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27958
-msgid "Message"
+#: dist/converse-no-dependencies.js:8547
+msgid "Log in"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27959
-msgid "Send"
+#: dist/converse-no-dependencies.js:8553
+msgid "Click here to log in anonymously"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:27960
-msgid "Optional hint"
+#: dist/converse-no-dependencies.js:8599
+msgid "Search"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:28026
-msgid "Choose a file to send"
+#: dist/converse-no-dependencies.js:8621
+msgid "Search results"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:28082
-msgid "Click to write as a normal (non-spoiler) message"
+#: dist/converse-no-dependencies.js:8767
+msgid "Enter a new Groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:28084
-msgid "Click to write your message as a spoiler"
+#: dist/converse-no-dependencies.js:8775 dist/converse-no-dependencies.js:48006
+#: dist/converse-no-dependencies.js:48851
+msgid "Nickname"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:28088
-msgid "Clear all messages"
+#: dist/converse-no-dependencies.js:8777
+msgid "This field is required"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:28089
-msgid "Message characters remaining"
+#: dist/converse-no-dependencies.js:8783
+msgid "Join"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:28094
-msgid "Insert emojis"
+#: dist/converse-no-dependencies.js:8823
+msgid "You're not allowed to send messages in this room"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:28095
-msgid "Start a call"
+#: dist/converse-no-dependencies.js:8837
+msgid "This groupchat no longer exists"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:28443
-msgid "Remove messages"
+#: dist/converse-no-dependencies.js:8843
+msgid "The conversation has moved. Click below to enter."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:28443
-msgid "Write in the third person"
+#: dist/converse-no-dependencies.js:8865
+msgid "Name"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:28443
-#: dist/converse-no-dependencies.js:33362
-msgid "Show this menu"
+#: dist/converse-no-dependencies.js:8869
+msgid "Groupchat address (JID)"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:28619
-msgid ""
-"You have an unsent message which will be lost if you continue. Are you sure?"
+#: dist/converse-no-dependencies.js:8873
+msgid "Description"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:28703
-msgid "Are you sure you want to clear the messages from this conversation?"
+#: dist/converse-no-dependencies.js:8879
+msgid "Topic"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:28833
-#, javascript-format
-msgid "%1$s has gone offline"
+#: dist/converse-no-dependencies.js:8883
+msgid "Topic author"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:28835
-#: dist/converse-no-dependencies.js:31018
-#, javascript-format
-msgid "%1$s has gone away"
+#: dist/converse-no-dependencies.js:8889
+msgid "Online users"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:28837
-#, javascript-format
-msgid "%1$s is busy"
+#: dist/converse-no-dependencies.js:8893 dist/converse-no-dependencies.js:9033
+msgid "Features"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:28839
-#, javascript-format
-msgid "%1$s is online"
+#: dist/converse-no-dependencies.js:8897 dist/converse-no-dependencies.js:9039
+msgid "Password protected"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:29573
-msgid "Username"
+#: dist/converse-no-dependencies.js:8899 dist/converse-no-dependencies.js:9037
+msgid "This groupchat requires a password before entry"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:29573
-msgid "user@domain"
+#: dist/converse-no-dependencies.js:8905
+msgid "No password required"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:29593
-#: dist/converse-no-dependencies.js:34227
-#: dist/converse-no-dependencies.js:38130
-msgid "Please enter a valid XMPP address"
+#: dist/converse-no-dependencies.js:8907 dist/converse-no-dependencies.js:9045
+msgid "This groupchat does not require a password upon entry"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:29698
-msgid "Chat Contacts"
+#: dist/converse-no-dependencies.js:8913 dist/converse-no-dependencies.js:9055
+#: dist/converse-no-dependencies.js:46137
+msgid "Hidden"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:29698
-msgid "Toggle chat"
+#: dist/converse-no-dependencies.js:8915 dist/converse-no-dependencies.js:9053
+msgid "This groupchat is not publicly searchable"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:30954
-msgid "Show more"
+#: dist/converse-no-dependencies.js:8921 dist/converse-no-dependencies.js:9063
+#: dist/converse-no-dependencies.js:46143
+msgid "Public"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:31007
-msgid "Typing from another device"
+#: dist/converse-no-dependencies.js:8923 dist/converse-no-dependencies.js:9061
+msgid "This groupchat is publicly searchable"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:31009
-#, javascript-format
-msgid "%1$s is typing"
+#: dist/converse-no-dependencies.js:8929 dist/converse-no-dependencies.js:9071
+msgid "Members only"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:31013
-msgid "Stopped typing on the other device"
+#: dist/converse-no-dependencies.js:8931
+msgid "This groupchat is restricted to members only"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:31015
-#, javascript-format
-msgid "%1$s has stopped typing"
+#: dist/converse-no-dependencies.js:8937 dist/converse-no-dependencies.js:9079
+#: dist/converse-no-dependencies.js:46141
+msgid "Open"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:31237
-#: dist/converse-no-dependencies.js:31282
-msgid "Minimize this chat box"
+#: dist/converse-no-dependencies.js:8939 dist/converse-no-dependencies.js:9077
+msgid "Anyone can join this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:31557
-msgid "Click to restore this chat"
+#: dist/converse-no-dependencies.js:8945 dist/converse-no-dependencies.js:9087
+msgid "Persistent"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:31739
-msgid "Minimized"
+#: dist/converse-no-dependencies.js:8947 dist/converse-no-dependencies.js:9085
+msgid "This groupchat persists even if it's unoccupied"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32217
-msgid "Description:"
+#: dist/converse-no-dependencies.js:8953 dist/converse-no-dependencies.js:9095
+#: dist/converse-no-dependencies.js:46145
+msgid "Temporary"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32218
-msgid "Groupchat Address (JID):"
+#: dist/converse-no-dependencies.js:8955 dist/converse-no-dependencies.js:9093
+msgid "This groupchat will disappear once the last person leaves"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32219
-msgid "Participants:"
+#: dist/converse-no-dependencies.js:8961 dist/converse-no-dependencies.js:9103
+msgid "Not anonymous"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32220
-msgid "Features:"
+#: dist/converse-no-dependencies.js:8963 dist/converse-no-dependencies.js:9101
+msgid "All other groupchat participants can see your XMPP address"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32221
-msgid "Requires authentication"
+#: dist/converse-no-dependencies.js:8969 dist/converse-no-dependencies.js:9111
+#: dist/converse-no-dependencies.js:46144
+msgid "Semi-anonymous"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32222
-#: dist/converse-no-dependencies.js:73801
-#: dist/converse-no-dependencies.js:73953
-msgid "Hidden"
+#: dist/converse-no-dependencies.js:8971 dist/converse-no-dependencies.js:9109
+msgid "Only moderators can see your XMPP address"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32223
-msgid "Requires an invitation"
+#: dist/converse-no-dependencies.js:8977 dist/converse-no-dependencies.js:9119
+#: dist/converse-no-dependencies.js:46139
+msgid "Moderated"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32224
-#: dist/converse-no-dependencies.js:73865
-#: dist/converse-no-dependencies.js:74017
-msgid "Moderated"
+#: dist/converse-no-dependencies.js:8979 dist/converse-no-dependencies.js:9117
+msgid ""
+"Participants entering this groupchat need to request permission to write"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32225
-msgid "Non-anonymous"
+#: dist/converse-no-dependencies.js:8985 dist/converse-no-dependencies.js:9127
+msgid "Not moderated"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32226
-#: dist/converse-no-dependencies.js:73825
-#: dist/converse-no-dependencies.js:73977
-msgid "Open"
+#: dist/converse-no-dependencies.js:8987 dist/converse-no-dependencies.js:9125
+msgid "Participants entering this groupchat can write right away"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32227
-msgid "Permanent"
+#: dist/converse-no-dependencies.js:8993 dist/converse-no-dependencies.js:9135
+msgid "Message archiving"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32228
-#: dist/converse-no-dependencies.js:73809
-#: dist/converse-no-dependencies.js:73961
-msgid "Public"
+#: dist/converse-no-dependencies.js:8995 dist/converse-no-dependencies.js:9133
+msgid "Messages are archived on the server"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32229
-#: dist/converse-no-dependencies.js:73857
-#: dist/converse-no-dependencies.js:74009
-msgid "Semi-anonymous"
+#: dist/converse-no-dependencies.js:9047
+msgid "No password"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32230
-#: dist/converse-no-dependencies.js:73841
-#: dist/converse-no-dependencies.js:73993
-msgid "Temporary"
+#: dist/converse-no-dependencies.js:9069
+msgid "this groupchat is restricted to members only"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32231
-msgid "Unmoderated"
+#: dist/converse-no-dependencies.js:9165 dist/converse-no-dependencies.js:39369
+#: dist/converse-no-dependencies.js:48942
+msgid "Save"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32384
-msgid "Affiliation changed"
+#: dist/converse-no-dependencies.js:9167 dist/converse-no-dependencies.js:10015
+#: dist/converse-no-dependencies.js:39366
+#: dist/converse-no-dependencies.js:48938
+msgid "Cancel"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32395
-msgid "Sorry, something went wrong while trying to set the affiliation"
+#: dist/converse-no-dependencies.js:9302
+msgid "Moderator Tools"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32411
-msgid "Role changed"
+#: dist/converse-no-dependencies.js:9304 dist/converse-no-dependencies.js:48852
+msgid "Role"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32422
-msgid "You're not allowed to make that change"
+#: dist/converse-no-dependencies.js:9318 dist/converse-no-dependencies.js:9376
+msgid "Show users"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32424
-msgid "Sorry, something went wrong while trying to set the role"
+#: dist/converse-no-dependencies.js:9326
+msgid "No users with that role found."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32455
-msgid "Query for Groupchats"
+#: dist/converse-no-dependencies.js:9342
+msgid "New Role"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32456
-msgid "Server address"
+#: dist/converse-no-dependencies.js:9356 dist/converse-no-dependencies.js:9418
+msgid "Reason"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32457
-msgid "Show groupchats"
+#: dist/converse-no-dependencies.js:9358
+msgid "Change role"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32459
-msgid "conference.example.org"
+#: dist/converse-no-dependencies.js:9362
+msgid "Affiliation"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32512
-msgid "No groupchats found"
+#: dist/converse-no-dependencies.js:9384
+msgid "No users with that affiliation found."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32528
-msgid "Groupchats found:"
+#: dist/converse-no-dependencies.js:9404
+msgid "New affiliation"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32590
-msgid "name@conference.example.org"
+#: dist/converse-no-dependencies.js:9420
+msgid "Change affiliation"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32596
-msgid "Groupchat name"
+#: dist/converse-no-dependencies.js:9779
+msgid "Save and close"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32596
-msgid "Groupchat address"
+#: dist/converse-no-dependencies.js:9783
+msgid "This device's OMEMO fingerprint"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32668
-#, javascript-format
-msgid "Groupchat info for %1$s"
+#: dist/converse-no-dependencies.js:9793
+msgid "Generate new keys and fingerprint"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32903
-#, javascript-format
-msgid "%1$s is no longer an admin of this groupchat"
+#: dist/converse-no-dependencies.js:9797
+msgid "Select all"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32905
-#, javascript-format
-msgid "%1$s is no longer an owner of this groupchat"
+#: dist/converse-no-dependencies.js:9799
+msgid "Checkbox to select fingerprints of all other OMEMO devices"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32907
-#, javascript-format
-msgid "%1$s is no longer banned from this groupchat"
+#: dist/converse-no-dependencies.js:9801
+msgid "Other OMEMO-enabled devices"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32911
-#, javascript-format
-msgid "%1$s is no longer a member of this groupchat"
+#: dist/converse-no-dependencies.js:9809 dist/converse-no-dependencies.js:9817
+msgid "Checkbox for selecting the following fingerprint"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32915
-#, javascript-format
-msgid "%1$s is now a member of this groupchat"
+#: dist/converse-no-dependencies.js:9819
+msgid "Device without a fingerprint"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32917
-#, javascript-format
-msgid "%1$s has been banned from this groupchat"
+#: dist/converse-no-dependencies.js:9825
+msgid "Remove checked devices and close"
 msgstr ""
 
-#. For example: AppleJack is now an (admin|owner) of this groupchat
-#: dist/converse-no-dependencies.js:32920
-#, javascript-format
-msgid "%1$s is now an %2$s of this groupchat"
+#: dist/converse-no-dependencies.js:9907
+msgid "Messages are being sent in plaintext"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32941
-#, javascript-format
-msgid "%1$s is no longer a moderator"
+#: dist/converse-no-dependencies.js:9923
+msgid "Don't have a chat account?"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32945
-#, javascript-format
-msgid "%1$s has been given a voice"
+#: dist/converse-no-dependencies.js:9925
+msgid "Create an account"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32949
-#, javascript-format
-msgid "%1$s has been muted"
+#: dist/converse-no-dependencies.js:9941
+msgid "Create your account"
 msgstr ""
 
-#. We only show this message if the user isn't already
-#. an admin or owner, otherwise this isn't new
-#. information.
-#: dist/converse-no-dependencies.js:32957
-#, javascript-format
-msgid "%1$s is now a moderator"
+#: dist/converse-no-dependencies.js:9943
+msgid "Please enter the XMPP provider to register with:"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32970
-msgid "Close and leave this groupchat"
+#: dist/converse-no-dependencies.js:9961 dist/converse-no-dependencies.js:9995
+msgid "Already have a chat account?"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32971
-msgid "Configure this groupchat"
+#: dist/converse-no-dependencies.js:9963 dist/converse-no-dependencies.js:9997
+msgid "Log in here"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:32972
-msgid "Show more details about this groupchat"
+#: dist/converse-no-dependencies.js:9979
+msgid "Account Registration:"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33018
-msgid "Hide the list of participants"
+#: dist/converse-no-dependencies.js:9987
+msgid "Register"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33116
-msgid "Forbidden: you do not have the necessary role in order to do that."
+#: dist/converse-no-dependencies.js:9991
+msgid "Choose a different provider"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33146
-msgid ""
-"Forbidden: you do not have the necessary affiliation in order to do that."
+#: dist/converse-no-dependencies.js:10011
+msgid "Hold tight, we're fetching the registration form…"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33154
-#, javascript-format
-msgid ""
-"Error: the \"%1$s\" command takes two arguments, the user's nickname and "
-"optionally a reason."
+#: dist/converse-no-dependencies.js:28069
+msgid "Smileys and emotions"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33169
-#: dist/converse-no-dependencies.js:33182
-msgid "Error: couldn't find a groupchat participant based on your arguments"
+#: dist/converse-no-dependencies.js:28070
+msgid "People"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33174
-msgid "Error: found multiple groupchat participant based on your arguments"
+#: dist/converse-no-dependencies.js:28071
+msgid "Activities"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33266
-msgid ""
-"Sorry, an error happened while running the command. Check your browser's "
-"developer console for details."
+#: dist/converse-no-dependencies.js:28072
+msgid "Travel"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33361
-msgid "You can run the following commands"
+#: dist/converse-no-dependencies.js:28073
+msgid "Objects"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33362
-msgid "Change user's affiliation to admin"
+#: dist/converse-no-dependencies.js:28074
+msgid "Animals and nature"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33362
-msgid "Ban user by changing their affiliation to outcast"
+#: dist/converse-no-dependencies.js:28075
+msgid "Food and drink"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33362
-msgid "Clear the chat area"
+#: dist/converse-no-dependencies.js:28076
+msgid "Symbols"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33362
-msgid "Change user role to participant"
+#: dist/converse-no-dependencies.js:28077
+msgid "Flags"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33362
-msgid "Remove this groupchat"
+#: dist/converse-no-dependencies.js:28711
+msgid "This groupchat is not anonymous"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33362
-msgid "Kick user from groupchat"
+#: dist/converse-no-dependencies.js:28712
+msgid "This groupchat now shows unavailable members"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33362
-msgid "Write in 3rd person"
+#: dist/converse-no-dependencies.js:28713
+msgid "This groupchat does not show unavailable members"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33362
-msgid "Grant membership to a user"
+#: dist/converse-no-dependencies.js:28714
+msgid "The groupchat configuration has changed"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33362
-msgid "Opens up the moderator tools GUI"
+#: dist/converse-no-dependencies.js:28715
+msgid "groupchat logging is now enabled"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33362
-msgid "Remove user's ability to post messages"
+#: dist/converse-no-dependencies.js:28716
+msgid "groupchat logging is now disabled"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33362
-msgid "Change your nickname"
+#: dist/converse-no-dependencies.js:28717
+msgid "This groupchat is now no longer anonymous"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33362
-msgid "Grant moderator role to user"
+#: dist/converse-no-dependencies.js:28718
+msgid "This groupchat is now semi-anonymous"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33362
-msgid "Grant ownership of this groupchat"
+#: dist/converse-no-dependencies.js:28719
+msgid "This groupchat is now fully-anonymous"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33362
-msgid "Register your nickname"
+#: dist/converse-no-dependencies.js:28720
+msgid "A new groupchat has been created"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33362
-msgid "Revoke the user's current affiliation"
+#: dist/converse-no-dependencies.js:28728
+msgid "You have been banned from this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33362
-msgid "Set groupchat subject"
+#: dist/converse-no-dependencies.js:28729
+msgid "You have been kicked from this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33362
-msgid "Set groupchat subject (alias for /subject)"
+#: dist/converse-no-dependencies.js:28730
+msgid ""
+"You have been removed from this groupchat because of an affiliation change"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33362
-msgid "Allow muted user to post messages"
+#: dist/converse-no-dependencies.js:28731
+msgid ""
+"You have been removed from this groupchat because the groupchat has changed "
+"to members-only and you're not a member"
 msgstr ""
 
-#. e.g. Your nickname is "coolguy69"
-#: dist/converse-no-dependencies.js:33390
-#, javascript-format
-msgid "Your nickname is \"%1$s\""
+#: dist/converse-no-dependencies.js:28732
+msgid ""
+"You have been removed from this groupchat because the service hosting it is "
+"being shut down"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33417
-msgid "Error: invalid number of arguments"
+#: dist/converse-no-dependencies.js:30414
+msgid "You're not allowed to register yourself in this groupchat."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33612
-#: dist/converse-no-dependencies.js:47323
-#, javascript-format
-msgid "This action was done by %1$s."
+#: dist/converse-no-dependencies.js:30416
+msgid ""
+"You're not allowed to register in this groupchat because it's members-only."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33618
-#: dist/converse-no-dependencies.js:47327
-#, javascript-format
-msgid "The reason given is: \"%1$s\"."
+#: dist/converse-no-dependencies.js:30462
+msgid ""
+"Can't register your nickname in this groupchat, it doesn't support "
+"registration."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33737
-#, javascript-format
-msgid "%1$s has left and re-entered the groupchat. \"%2$s\""
+#: dist/converse-no-dependencies.js:30464
+msgid ""
+"Can't register your nickname in this groupchat, invalid data form supplied."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33739
-#, javascript-format
-msgid "%1$s has left and re-entered the groupchat"
+#: dist/converse-no-dependencies.js:30847
+msgid ""
+"Your message was not delivered because you're not allowed to send messages "
+"in this groupchat."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33758
-#, javascript-format
-msgid "%1$s has entered the groupchat. \"%2$s\""
+#: dist/converse-no-dependencies.js:30849
+msgid ""
+"Your message was not delivered because you're not present in the groupchat."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33760
+#: dist/converse-no-dependencies.js:31010
+#: dist/converse-no-dependencies.js:47582
 #, javascript-format
-msgid "%1$s has entered the groupchat"
+msgid "This action was done by %1$s."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33797
+#: dist/converse-no-dependencies.js:31014
+#: dist/converse-no-dependencies.js:47588
 #, javascript-format
-msgid "%1$s has entered and left the groupchat. \"%2$s\""
+msgid "The reason given is: \"%1$s\"."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33799
-#, javascript-format
-msgid "%1$s has entered and left the groupchat"
+#: dist/converse-no-dependencies.js:31059
+msgid ""
+"The nickname you chose is reserved or currently in use, please choose a "
+"different one."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33818
-#, javascript-format
-msgid "%1$s has left the groupchat. \"%2$s\""
+#: dist/converse-no-dependencies.js:31083
+msgid "Password incorrect"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33820
-#, javascript-format
-msgid "%1$s has left the groupchat"
+#: dist/converse-no-dependencies.js:31089
+msgid "You are not on the member list of this groupchat."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33887
-#, javascript-format
-msgid "Topic set by %1$s"
+#: dist/converse-no-dependencies.js:31093
+msgid "You have been banned from this groupchat."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33887
-#, javascript-format
-msgid "Topic cleared by %1$s"
+#: dist/converse-no-dependencies.js:31099
+msgid "You are not allowed to create new groupchats."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33923
-msgid "Groupchats"
+#: dist/converse-no-dependencies.js:31103
+msgid "Your nickname doesn't conform to this groupchat's policies."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33924
-msgid "Add a new groupchat"
+#: dist/converse-no-dependencies.js:31117
+msgid "This groupchat does not (yet) exist."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:33925
-msgid "Query for groupchats"
+#: dist/converse-no-dependencies.js:31121
+msgid "This groupchat has reached its maximum number of participants."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34015
-msgid "This groupchat requires a password"
+#: dist/converse-no-dependencies.js:31125
+msgid "Remote server not found"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34016
-msgid "Password: "
+#: dist/converse-no-dependencies.js:31127
+#, javascript-format
+msgid "The explanation given is: \"%1$s\"."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34017
-msgid "Submit"
+#: dist/converse-no-dependencies.js:31485
+#, javascript-format
+msgid "%1$s has invited you to join a groupchat: %2$s"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34046
-msgid "Please choose your nickname"
+#: dist/converse-no-dependencies.js:31487
+#, javascript-format
+msgid ""
+"%1$s has invited you to join a groupchat: %2$s, and left the following "
+"reason: \"%3$s\""
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34047
-#: dist/converse-no-dependencies.js:36448
-#: dist/converse-no-dependencies.js:73161
-msgid "Nickname"
+#: dist/converse-no-dependencies.js:32078
+#: dist/converse-no-dependencies.js:41600
+#: dist/converse-no-dependencies.js:48888
+#: dist/converse-no-dependencies.js:49420
+#: dist/converse-no-dependencies.js:49869
+#: dist/converse-no-dependencies.js:49873
+#: dist/converse-no-dependencies.js:49920
+#: dist/converse-no-dependencies.js:53660
+msgid "Error"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34048
-msgid "Enter groupchat"
+#: dist/converse-no-dependencies.js:32078
+msgid "Sorry, something went wrong while trying to save your bookmark."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34071
-msgid "You need to provide a nickname"
+#: dist/converse-no-dependencies.js:32843
+msgid "Unencryptable OMEMO message"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34091
-#, javascript-format
-msgid "Click to mention %1$s in your message."
+#: dist/converse-no-dependencies.js:32904
+msgid "Sorry, could not determine upload URL."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34092
-msgid "This user is a moderator."
+#: dist/converse-no-dependencies.js:32926
+msgid "Sorry, could not determine file upload URL."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34093
-msgid "This user can send messages in this groupchat."
+#: dist/converse-no-dependencies.js:32975
+#, javascript-format
+msgid ""
+"Sorry, could not succesfully upload your file. Your server’s response: \"%1$s"
+"\""
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34094
-msgid "This user can NOT send messages in this groupchat."
+#: dist/converse-no-dependencies.js:32977
+msgid "Sorry, could not succesfully upload your file."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34095
-msgid "Moderator"
+#: dist/converse-no-dependencies.js:33753
+#: dist/converse-no-dependencies.js:33773
+msgid "Sorry, looks like file upload is not supported by your server."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34096
-msgid "Visitor"
+#: dist/converse-no-dependencies.js:33783
+#, javascript-format
+msgid ""
+"The size of your file, %1$s, exceeds the maximum allowed by your server, "
+"which is %2$s."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34097
-msgid "Owner"
+#: dist/converse-no-dependencies.js:33871
+msgid "Sorry, an error occurred:"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34098
-msgid "Member"
+#: dist/converse-no-dependencies.js:36188
+msgid "My contacts"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34099
-msgid "Admin"
+#: dist/converse-no-dependencies.js:36189
+msgid "Pending contacts"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34132
-msgid "Participants"
+#: dist/converse-no-dependencies.js:36190
+msgid "Contact requests"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34166
-#: dist/converse-no-dependencies.js:34228
-msgid "Invite"
+#: dist/converse-no-dependencies.js:36191
+msgid "Ungrouped"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34202
+#: dist/converse-no-dependencies.js:36864
 #, javascript-format
-msgid ""
-"You are about to invite %1$s to the groupchat \"%2$s\". You may optionally "
-"include a message, explaining the reason for the invitation."
+msgid "Sorry, there was an error while trying to add %1$s as a contact."
 msgstr ""
 
-#. workaround for Prosody which doesn't give type "headline"
-#: dist/converse-no-dependencies.js:34620
-#: dist/converse-no-dependencies.js:34626
-#, javascript-format
-msgid "Notification from %1$s"
+#: dist/converse-no-dependencies.js:37156
+msgid "This client does not allow presence subscriptions"
+msgstr ""
+
+#: dist/converse-no-dependencies.js:37266
+msgid "Click to hide these contacts"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34628
-#: dist/converse-no-dependencies.js:34639
-#: dist/converse-no-dependencies.js:34642
+#: dist/converse-no-dependencies.js:39261
 #, javascript-format
-msgid "%1$s says"
+msgid "Are you sure you want to remove the bookmark \"%1$s\"?"
 msgstr ""
 
-#. TODO: we should suppress notifications if we cannot decrypt
-#. the message...
-#: dist/converse-no-dependencies.js:34651
-msgid "OMEMO Message received"
+#: dist/converse-no-dependencies.js:39290
+#: dist/converse-no-dependencies.js:39399
+#: dist/converse-no-dependencies.js:52782
+msgid "Unbookmark this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34682
-msgid "has gone offline"
+#: dist/converse-no-dependencies.js:39290
+#: dist/converse-no-dependencies.js:39364
+#: dist/converse-no-dependencies.js:52783
+msgid "Bookmark this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34684
-msgid "has gone away"
+#: dist/converse-no-dependencies.js:39365
+msgid "Would you like this groupchat to be automatically joined upon startup?"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34686
-msgid "is busy"
+#: dist/converse-no-dependencies.js:39367
+msgid "The name for this bookmark:"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34688
-msgid "has come online"
+#: dist/converse-no-dependencies.js:39368
+msgid "What should your nickname for this groupchat be?"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34705
-msgid "wants to be your contact"
+#: dist/converse-no-dependencies.js:39397
+#: dist/converse-no-dependencies.js:52781
+msgid "Leave this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34959
-msgid "Sorry, an error occurred while trying to remove the devices."
+#: dist/converse-no-dependencies.js:39398
+msgid "Remove this bookmark"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:34973
-msgid ""
-"Are you sure you want to generate new OMEMO keys? This will remove your old "
-"keys and all previously encrypted messages will no longer be decryptable on "
-"this device."
+#: dist/converse-no-dependencies.js:39400
+#: dist/converse-no-dependencies.js:46472
+#: dist/converse-no-dependencies.js:52784
+msgid "Show more information on this groupchat"
+msgstr ""
+
+#: dist/converse-no-dependencies.js:39403
+#: dist/converse-no-dependencies.js:46471
+#: dist/converse-no-dependencies.js:52786
+msgid "Click to open this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:35158
-msgid "Sorry, could not decrypt a received OMEMO message due to an error."
+#: dist/converse-no-dependencies.js:39452
+msgid "Click to toggle the bookmarks list"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:35263
+#: dist/converse-no-dependencies.js:39453
+msgid "Bookmarks"
+msgstr ""
+
+#: dist/converse-no-dependencies.js:39967
 #, javascript-format
-msgid ""
-"Sorry, we're unable to send an encrypted message because %1$s requires you "
-"to be subscribed to their presence in order to see their OMEMO information"
+msgid "Download audio file \"%1$s\""
 msgstr ""
 
-#: dist/converse-no-dependencies.js:35265
+#: dist/converse-no-dependencies.js:39985
 #, javascript-format
-msgid ""
-"Sorry, we're unable to send an encrypted message because the remote server "
-"for %1$s could not be found"
+msgid "Download file \"%1$s\""
 msgstr ""
 
-#: dist/converse-no-dependencies.js:35267
-msgid "Unable to send an encrypted message due to an unexpected error."
+#: dist/converse-no-dependencies.js:40000
+#, javascript-format
+msgid "Download image \"%1$s\""
 msgstr ""
 
-#: dist/converse-no-dependencies.js:35320
-msgid ""
-"Cannot use end-to-end encryption in this groupchat, either the groupchat has "
-"some anonymity or not all participants support OMEMO."
+#: dist/converse-no-dependencies.js:40032
+msgid "Download"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:35322
+#: dist/converse-no-dependencies.js:40050
 #, javascript-format
-msgid ""
-"Cannot use end-to-end encryption because %1$s uses a client that doesn't "
-"support OMEMO."
+msgid "Download video file \"%1$s\""
 msgstr ""
 
-#: dist/converse-no-dependencies.js:35436
-msgid ""
-"Sorry, no devices found to which we can send an OMEMO encrypted message."
+#: dist/converse-no-dependencies.js:40966
+msgid "Show more"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:35510
-msgid ""
-"This is an OMEMO encrypted message which your client doesn’t seem to "
-"support. Find more information on https://conversations.im/omemo"
+#: dist/converse-no-dependencies.js:41039
+msgid "Typing from another device"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36214
+#: dist/converse-no-dependencies.js:41041
 #, javascript-format
-msgid ""
-"%1$s doesn't appear to have a client that supports OMEMO. Encrypted chat "
-"will no longer be possible in this grouchat."
-msgstr ""
-
-#: dist/converse-no-dependencies.js:36442
-msgid "Your avatar image"
+msgid "%1$s is typing"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36443
-msgid "Your Profile"
+#: dist/converse-no-dependencies.js:41045
+msgid "Stopped typing on the other device"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36444
-#: dist/converse-no-dependencies.js:36529
-#: dist/converse-no-dependencies.js:73887
-#: dist/converse-no-dependencies.js:75121
-#: dist/converse-no-dependencies.js:76500
-#: dist/converse-no-dependencies.js:76614
-msgid "Close"
+#: dist/converse-no-dependencies.js:41047
+#, javascript-format
+msgid "%1$s has stopped typing"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36445
-msgid "Email"
+#: dist/converse-no-dependencies.js:41050
+#: dist/converse-no-dependencies.js:42758
+#, javascript-format
+msgid "%1$s has gone away"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36446
-msgid "Full Name"
+#: dist/converse-no-dependencies.js:41456
+msgid "Close this chat box"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36447
-msgid "XMPP Address (JID)"
+#: dist/converse-no-dependencies.js:41561
+msgid "Sorry, something went wrong while trying to refresh"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36449
-#: dist/converse-no-dependencies.js:75142
-msgid "Role"
+#: dist/converse-no-dependencies.js:41591
+#: dist/converse-no-dependencies.js:53629
+msgid "Are you sure you want to remove this contact?"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36450
-msgid ""
-"Use commas to separate multiple roles. Your roles are shown next to your "
-"name on your chat messages."
+#: dist/converse-no-dependencies.js:41600
+#: dist/converse-no-dependencies.js:53660
+#, javascript-format
+msgid "Sorry, there was an error while trying to remove %1$s as a contact."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36451
-msgid "URL"
+#: dist/converse-no-dependencies.js:41691
+#: dist/converse-no-dependencies.js:41732
+msgid "You have unread messages"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36481
-msgid "Sorry, an error happened while trying to save your profile data."
+#: dist/converse-no-dependencies.js:41726
+msgid "Hidden message"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36481
-msgid "You can check your browser's developer console for any error output."
+#: dist/converse-no-dependencies.js:41726
+msgid "Message"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36528
-#: dist/converse-no-dependencies.js:38303
-msgid "Away"
+#: dist/converse-no-dependencies.js:41727
+msgid "Send"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36530
-#: dist/converse-no-dependencies.js:38302
-msgid "Busy"
+#: dist/converse-no-dependencies.js:41728
+msgid "Optional hint"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36532
-msgid "Custom status"
+#: dist/converse-no-dependencies.js:41804
+msgid "Choose a file to send"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36533
-#: dist/converse-no-dependencies.js:38305
-msgid "Offline"
+#: dist/converse-no-dependencies.js:41837
+msgid "1111"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36534
-#: dist/converse-no-dependencies.js:38300
-msgid "Online"
+#: dist/converse-no-dependencies.js:41847
+msgid "2222"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36536
-msgid "Away for long"
+#: dist/converse-no-dependencies.js:41859
+msgid "3333"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36537
-msgid "Change chat status"
+#: dist/converse-no-dependencies.js:41869
+msgid "4444"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36538
-msgid "Personal status message"
+#: dist/converse-no-dependencies.js:41880
+msgid "hello world"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36573
-msgid "About"
+#: dist/converse-no-dependencies.js:41915
+msgid "Click to write as a normal (non-spoiler) message"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36575
-#, javascript-format
-msgid ""
-"%1$s Open Source %2$s XMPP chat client brought to you by %3$s Opkode %2$s"
+#: dist/converse-no-dependencies.js:41917
+msgid "Click to write your message as a spoiler"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36576
-#, javascript-format
-msgid "%1$s Translate %2$s it into your own language"
+#: dist/converse-no-dependencies.js:41921
+msgid "Clear all messages"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36600
-#, javascript-format
-msgid "I am %1$s"
+#: dist/converse-no-dependencies.js:41922
+msgid "Message characters remaining"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36603
-msgid "Change settings"
+#: dist/converse-no-dependencies.js:41927
+msgid "Start a call"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36604
-msgid "Click to change your chat status"
+#: dist/converse-no-dependencies.js:42353
+msgid "Remove messages"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36605
-msgid "Log out"
+#: dist/converse-no-dependencies.js:42353
+msgid "Write in the third person"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36606
-msgid "Show details about this chat client"
+#: dist/converse-no-dependencies.js:42353
+#: dist/converse-no-dependencies.js:47318
+msgid "Show this menu"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36607
-msgid "Your profile"
+#: dist/converse-no-dependencies.js:42569
+msgid ""
+"You have an unsent message which will be lost if you continue. Are you sure?"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36647
-msgid "Are you sure you want to log out?"
+#: dist/converse-no-dependencies.js:42651
+msgid "Are you sure you want to clear the messages from this conversation?"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36656
-#: dist/converse-no-dependencies.js:36666
-msgid "online"
+#: dist/converse-no-dependencies.js:42756
+#, javascript-format
+msgid "%1$s has gone offline"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36658
-msgid "busy"
+#: dist/converse-no-dependencies.js:42760
+#, javascript-format
+msgid "%1$s is busy"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36660
-msgid "away for long"
+#: dist/converse-no-dependencies.js:42762
+#, javascript-format
+msgid "%1$s is online"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36662
-msgid "away"
+#: dist/converse-no-dependencies.js:43432
+msgid "Username"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36664
-msgid "offline"
+#: dist/converse-no-dependencies.js:43432
+msgid "user@domain"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:36980
-msgid " e.g. conversejs.org"
+#: dist/converse-no-dependencies.js:43452
+#: dist/converse-no-dependencies.js:48202
+#: dist/converse-no-dependencies.js:53172
+msgid "Please enter a valid XMPP address"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:37095
-msgid "Fetch registration form"
+#: dist/converse-no-dependencies.js:43550
+msgid "Chat Contacts"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:37096
-msgid "Tip: A list of public XMPP providers is available"
+#: dist/converse-no-dependencies.js:43550
+msgid "Toggle chat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:37097
-msgid "here"
+#: dist/converse-no-dependencies.js:44569
+msgid "Insert emojis"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:37146
-msgid "Sorry, we're unable to connect to your chosen provider."
+#: dist/converse-no-dependencies.js:45226
+#: dist/converse-no-dependencies.js:45264
+msgid "Minimize this chat box"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:37162
-msgid ""
-"Sorry, the given provider does not support in band account registration. "
-"Please try with a different provider."
+#: dist/converse-no-dependencies.js:45575
+msgid "Click to restore this chat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:37188
-#, javascript-format
-msgid ""
-"Something went wrong while establishing a connection with \"%1$s\". Are you "
-"sure it exists?"
+#: dist/converse-no-dependencies.js:45742
+msgid "Minimized"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:37357
-msgid "Now logging you in"
+#: dist/converse-no-dependencies.js:46132
+msgid "Description:"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:37361
-msgid "Registered successfully"
+#: dist/converse-no-dependencies.js:46133
+msgid "Groupchat Address (JID):"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:37465
-msgid ""
-"The provider rejected your registration attempt. Please check the values you "
-"entered for correctness."
+#: dist/converse-no-dependencies.js:46134
+msgid "Participants:"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:37871
-msgid "Click to toggle the list of open groupchats"
+#: dist/converse-no-dependencies.js:46135
+msgid "Features:"
 msgstr ""
 
-#. Note to translators, "Open Groupchats" refers to groupchats that are open, NOT a command.
-#: dist/converse-no-dependencies.js:37873
-msgid "Open Groupchats"
+#: dist/converse-no-dependencies.js:46136
+msgid "Requires authentication"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:37923
-#, javascript-format
-msgid "Are you sure you want to leave the groupchat %1$s?"
+#: dist/converse-no-dependencies.js:46138
+msgid "Requires an invitation"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38100
-msgid "This contact is busy"
+#: dist/converse-no-dependencies.js:46140
+msgid "Non-anonymous"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38101
-msgid "This contact is online"
+#: dist/converse-no-dependencies.js:46142
+msgid "Permanent"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38102
-msgid "This contact is offline"
+#: dist/converse-no-dependencies.js:46146
+msgid "Unmoderated"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38103
-msgid "This contact is unavailable"
+#: dist/converse-no-dependencies.js:46344
+msgid "Affiliation changed"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38104
-msgid "This contact is away for an extended period"
+#: dist/converse-no-dependencies.js:46367
+msgid "Sorry, something went wrong while trying to set the affiliation"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38105
-msgid "This contact is away"
+#: dist/converse-no-dependencies.js:46384
+msgid "Role changed"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38108
-msgid "Groups"
+#: dist/converse-no-dependencies.js:46397
+msgid "You're not allowed to make that change"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38122
-msgid "Contact name"
+#: dist/converse-no-dependencies.js:46399
+msgid "Sorry, something went wrong while trying to set the role"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38122
-msgid "Optional nickname"
+#: dist/converse-no-dependencies.js:46427
+msgid "Query for Groupchats"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38125
-msgid "Add a Contact"
+#: dist/converse-no-dependencies.js:46428
+msgid "Server address"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38126
-msgid "XMPP Address"
+#: dist/converse-no-dependencies.js:46429
+msgid "Show groupchats"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38128
-msgid "name@example.org"
+#: dist/converse-no-dependencies.js:46431
+msgid "conference.example.org"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38129
-msgid "Add"
+#: dist/converse-no-dependencies.js:46482
+msgid "No groupchats found"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38207
-msgid "Sorry, could not find a contact with that name"
+#: dist/converse-no-dependencies.js:46497
+msgid "Groupchats found:"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38231
-msgid "This contact has already been added"
+#: dist/converse-no-dependencies.js:46563
+msgid "name@conference.example.org"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38294
-msgid "Filter"
+#: dist/converse-no-dependencies.js:46569
+msgid "Groupchat name"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38295
-msgid "Filter by contact name"
+#: dist/converse-no-dependencies.js:46569
+msgid "Groupchat address"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38296
-msgid "Filter by group name"
+#: dist/converse-no-dependencies.js:46638
+#, javascript-format
+msgid "Groupchat info for %1$s"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38297
-msgid "Filter by status"
+#: dist/converse-no-dependencies.js:46865
+#, javascript-format
+msgid "%1$s is no longer an admin of this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38298
-msgid "Any"
+#: dist/converse-no-dependencies.js:46867
+#, javascript-format
+msgid "%1$s is no longer an owner of this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38299
-msgid "Unread"
+#: dist/converse-no-dependencies.js:46869
+#, javascript-format
+msgid "%1$s is no longer banned from this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38301
-msgid "Chatty"
+#: dist/converse-no-dependencies.js:46873
+#, javascript-format
+msgid "%1$s is no longer a member of this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38304
-msgid "Extended Away"
+#: dist/converse-no-dependencies.js:46877
+#, javascript-format
+msgid "%1$s is now a member of this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38478
-#: dist/converse-no-dependencies.js:38534
+#: dist/converse-no-dependencies.js:46879
 #, javascript-format
-msgid "Click to remove %1$s as a contact"
+msgid "%1$s has been banned from this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38486
+#. For example: AppleJack is now an (admin|owner) of this groupchat
+#: dist/converse-no-dependencies.js:46882
 #, javascript-format
-msgid "Click to accept the contact request from %1$s"
+msgid "%1$s is now an %2$s of this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38487
+#: dist/converse-no-dependencies.js:46901
 #, javascript-format
-msgid "Click to decline the contact request from %1$s"
+msgid "%1$s is no longer a moderator"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38533
+#: dist/converse-no-dependencies.js:46905
 #, javascript-format
-msgid "Click to chat with %1$s (JID: %2$s)"
+msgid "%1$s has been given a voice"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38617
-msgid "Are you sure you want to decline this contact request?"
+#: dist/converse-no-dependencies.js:46909
+#, javascript-format
+msgid "%1$s has been muted"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38892
-msgid "Contacts"
+#. We only show this message if the user isn't already
+#. an admin or owner, otherwise this isn't new
+#. information.
+#: dist/converse-no-dependencies.js:46917
+#, javascript-format
+msgid "%1$s is now a moderator"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38893
-msgid "Add a contact"
+#: dist/converse-no-dependencies.js:46929
+msgid "Close and leave this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:38894
-msgid "Re-sync your contacts"
+#: dist/converse-no-dependencies.js:46930
+msgid "Configure this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:39662
-msgid "Sorry, something went wrong while trying to save your bookmark."
+#: dist/converse-no-dependencies.js:46931
+msgid "Show more details about this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:40249
-msgid "Unencryptable OMEMO message"
+#: dist/converse-no-dependencies.js:46973
+msgid "Hide the list of participants"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:40297
-msgid "Sorry, could not determine upload URL."
+#: dist/converse-no-dependencies.js:47066
+msgid "Forbidden: you do not have the necessary role in order to do that."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:40312
-msgid "Sorry, could not determine file upload URL."
+#: dist/converse-no-dependencies.js:47095
+msgid ""
+"Forbidden: you do not have the necessary affiliation in order to do that."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:40347
+#: dist/converse-no-dependencies.js:47102
 #, javascript-format
 msgid ""
-"Sorry, could not succesfully upload your file. Your server’s response: \"%1$s"
-"\""
+"Error: the \"%1$s\" command takes two arguments, the user's nickname and "
+"optionally a reason."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:40349
-msgid "Sorry, could not succesfully upload your file."
+#: dist/converse-no-dependencies.js:47119
+#: dist/converse-no-dependencies.js:47132
+msgid "Error: couldn't find a groupchat participant based on your arguments"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:41047
-#: dist/converse-no-dependencies.js:41065
-msgid "Sorry, looks like file upload is not supported by your server."
+#: dist/converse-no-dependencies.js:47124
+msgid "Error: found multiple groupchat participant based on your arguments"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:41075
-#, javascript-format
+#: dist/converse-no-dependencies.js:47218
 msgid ""
-"The size of your file, %1$s, exceeds the maximum allowed by your server, "
-"which is %2$s."
+"Sorry, an error happened while running the command. Check your browser's "
+"developer console for details."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:41147
-msgid "Sorry, an error occurred:"
+#: dist/converse-no-dependencies.js:47317
+msgid "You can run the following commands"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:42254
-msgid "The connection has dropped, attempting to reconnect."
+#: dist/converse-no-dependencies.js:47318
+msgid "Change user's affiliation to admin"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:42875
-msgid "An error occurred while connecting to the chat server."
+#: dist/converse-no-dependencies.js:47318
+msgid "Ban user by changing their affiliation to outcast"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:42882
-msgid "Your Jabber ID and/or password is incorrect. Please try again."
+#: dist/converse-no-dependencies.js:47318
+msgid "Clear the chat area"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:42894
-#, javascript-format
-msgid "Sorry, we could not connect to the XMPP host with domain: %1$s"
+#: dist/converse-no-dependencies.js:47318
+msgid "Change user role to participant"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:42896
-msgid "The XMPP server did not offer a supported authentication mechanism"
+#: dist/converse-no-dependencies.js:47318
+msgid "Remove this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45651
-msgid "This groupchat is not anonymous"
+#: dist/converse-no-dependencies.js:47318
+msgid "Kick user from groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45652
-msgid "This groupchat now shows unavailable members"
+#: dist/converse-no-dependencies.js:47318
+msgid "Write in 3rd person"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45653
-msgid "This groupchat does not show unavailable members"
+#: dist/converse-no-dependencies.js:47318
+msgid "Grant membership to a user"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45654
-msgid "The groupchat configuration has changed"
+#: dist/converse-no-dependencies.js:47318
+msgid "Opens up the moderator tools GUI"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45655
-msgid "groupchat logging is now enabled"
+#: dist/converse-no-dependencies.js:47318
+msgid "Remove user's ability to post messages"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45656
-msgid "groupchat logging is now disabled"
+#: dist/converse-no-dependencies.js:47318
+msgid "Change your nickname"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45657
-msgid "This groupchat is now no longer anonymous"
+#: dist/converse-no-dependencies.js:47318
+msgid "Grant moderator role to user"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45658
-msgid "This groupchat is now semi-anonymous"
+#: dist/converse-no-dependencies.js:47318
+msgid "Grant ownership of this groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45659
-msgid "This groupchat is now fully-anonymous"
+#: dist/converse-no-dependencies.js:47318
+msgid "Register your nickname"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45660
-msgid "A new groupchat has been created"
+#: dist/converse-no-dependencies.js:47318
+msgid "Revoke the user's current affiliation"
 msgstr ""
 
-#. XXX: Note the triple underscore function and not double underscore.
-#: dist/converse-no-dependencies.js:45664
-#, javascript-format
-msgid "Your nickname has been automatically set to %1$s"
+#: dist/converse-no-dependencies.js:47318
+msgid "Set groupchat subject"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45665
-#, javascript-format
-msgid "Your nickname has been changed to %1$s"
+#: dist/converse-no-dependencies.js:47318
+msgid "Set groupchat subject (alias for /subject)"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45668
-msgid "You have been banned from this groupchat"
+#: dist/converse-no-dependencies.js:47318
+msgid "Allow muted user to post messages"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45669
-msgid "You have been kicked from this groupchat"
+#. e.g. Your nickname is "coolguy69"
+#: dist/converse-no-dependencies.js:47354
+#, javascript-format
+msgid "Your nickname is \"%1$s\""
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45670
-msgid ""
-"You have been removed from this groupchat because of an affiliation change"
+#: dist/converse-no-dependencies.js:47381
+msgid "Error: invalid number of arguments"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45671
-msgid ""
-"You have been removed from this groupchat because the groupchat has changed "
-"to members-only and you're not a member"
+#: dist/converse-no-dependencies.js:47701
+#, javascript-format
+msgid "%1$s has left and re-entered the groupchat. \"%2$s\""
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45672
-msgid ""
-"You have been removed from this groupchat because the service hosting it is "
-"being shut down"
+#: dist/converse-no-dependencies.js:47703
+#, javascript-format
+msgid "%1$s has left and re-entered the groupchat"
 msgstr ""
 
-#. XXX: Note the triple underscore function and not double underscore.
-#: dist/converse-no-dependencies.js:45676
+#: dist/converse-no-dependencies.js:47726
 #, javascript-format
-msgid "%1$s has been banned"
+msgid "%1$s has entered the groupchat. \"%2$s\""
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45677
+#: dist/converse-no-dependencies.js:47728
 #, javascript-format
-msgid "%1$s's nickname has changed"
+msgid "%1$s has entered the groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45678
+#: dist/converse-no-dependencies.js:47764
 #, javascript-format
-msgid "%1$s has been kicked out"
+msgid "%1$s has entered and left the groupchat. \"%2$s\""
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45679
+#: dist/converse-no-dependencies.js:47766
 #, javascript-format
-msgid "%1$s has been removed because of an affiliation change"
+msgid "%1$s has entered and left the groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:45680
+#: dist/converse-no-dependencies.js:47789
 #, javascript-format
-msgid "%1$s has been removed for not being a member"
+msgid "%1$s has left the groupchat. \"%2$s\""
 msgstr ""
 
-#: dist/converse-no-dependencies.js:46882
-msgid "You're not allowed to register yourself in this groupchat."
+#: dist/converse-no-dependencies.js:47791
+#, javascript-format
+msgid "%1$s has left the groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:46884
-msgid ""
-"You're not allowed to register in this groupchat because it's members-only."
+#: dist/converse-no-dependencies.js:47854
+#, javascript-format
+msgid "Topic set by %1$s"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:46915
-msgid ""
-"Can't register your nickname in this groupchat, it doesn't support "
-"registration."
+#: dist/converse-no-dependencies.js:47854
+#, javascript-format
+msgid "Topic cleared by %1$s"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:46917
-msgid ""
-"Can't register your nickname in this groupchat, invalid data form supplied."
+#: dist/converse-no-dependencies.js:47888
+msgid "Groupchats"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:47198
-msgid ""
-"Your message was not delivered because you're not allowed to send messages "
-"in this groupchat."
+#: dist/converse-no-dependencies.js:47889
+msgid "Add a new groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:47200
-msgid ""
-"Your message was not delivered because you're not present in the groupchat."
+#: dist/converse-no-dependencies.js:47890
+msgid "Query for groupchats"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:47373
-msgid ""
-"The nickname you chose is reserved or currently in use, please choose a "
-"different one."
+#: dist/converse-no-dependencies.js:47978
+msgid "This groupchat requires a password"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:47397
-msgid "Password incorrect"
+#: dist/converse-no-dependencies.js:47979
+msgid "Password: "
 msgstr ""
 
-#: dist/converse-no-dependencies.js:47403
-msgid "You are not on the member list of this groupchat."
+#: dist/converse-no-dependencies.js:47980
+msgid "Submit"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:47407
-msgid "You have been banned from this groupchat."
+#: dist/converse-no-dependencies.js:48005
+msgid "Please choose your nickname"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:47413
-msgid "You are not allowed to create new groupchats."
+#: dist/converse-no-dependencies.js:48007
+msgid "Enter groupchat"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:47417
-msgid "Your nickname doesn't conform to this groupchat's policies."
+#: dist/converse-no-dependencies.js:48029
+msgid "You need to provide a nickname"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:47431
-msgid "This groupchat does not (yet) exist."
+#: dist/converse-no-dependencies.js:48046
+#, javascript-format
+msgid "Click to mention %1$s in your message."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:47435
-msgid "This groupchat has reached its maximum number of participants."
+#: dist/converse-no-dependencies.js:48047
+msgid "This user is a moderator."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:47439
-msgid "Remote server not found"
+#: dist/converse-no-dependencies.js:48048
+msgid "This user can send messages in this groupchat."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:47441
-#, javascript-format
-msgid "The explanation given is: \"%1$s\"."
+#: dist/converse-no-dependencies.js:48049
+msgid "This user can NOT send messages in this groupchat."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:47760
-#, javascript-format
-msgid "%1$s has invited you to join a groupchat: %2$s"
+#: dist/converse-no-dependencies.js:48050
+msgid "Moderator"
+msgstr ""
+
+#: dist/converse-no-dependencies.js:48051
+msgid "Visitor"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:47762
-#, javascript-format
-msgid ""
-"%1$s has invited you to join a groupchat: %2$s, and left the following "
-"reason: \"%3$s\""
+#: dist/converse-no-dependencies.js:48052
+msgid "Owner"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:48422
-msgid "My contacts"
+#: dist/converse-no-dependencies.js:48053
+msgid "Member"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:48423
-msgid "Pending contacts"
+#: dist/converse-no-dependencies.js:48054
+msgid "Admin"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:48424
-msgid "Contact requests"
+#: dist/converse-no-dependencies.js:48110
+msgid "Participants"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:48425
-msgid "Ungrouped"
+#: dist/converse-no-dependencies.js:48143
+#: dist/converse-no-dependencies.js:48203
+msgid "Invite"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:49000
+#: dist/converse-no-dependencies.js:48178
 #, javascript-format
-msgid "Sorry, there was an error while trying to add %1$s as a contact."
+msgid ""
+"You are about to invite %1$s to the groupchat \"%2$s\". You may optionally "
+"include a message, explaining the reason for the invitation."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:49238
-msgid "This client does not allow presence subscriptions"
+#. workaround for Prosody which doesn't give type "headline"
+#: dist/converse-no-dependencies.js:48586
+#: dist/converse-no-dependencies.js:48592
+#, javascript-format
+msgid "Notification from %1$s"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:49351
-msgid "Click to hide these contacts"
+#: dist/converse-no-dependencies.js:48594
+#: dist/converse-no-dependencies.js:48605
+#: dist/converse-no-dependencies.js:48608
+#, javascript-format
+msgid "%1$s says"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73153
-msgid "Enter a new Groupchat"
+#. TODO: we should suppress notifications if we cannot decrypt
+#. the message...
+#: dist/converse-no-dependencies.js:48617
+msgid "OMEMO Message received"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73163
-msgid "This field is required"
+#: dist/converse-no-dependencies.js:48648
+msgid "has gone offline"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73169
-msgid "Join"
+#: dist/converse-no-dependencies.js:48650
+msgid "has gone away"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73701
-msgid "You're not allowed to send messages in this room"
+#: dist/converse-no-dependencies.js:48652
+msgid "is busy"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73720
-msgid "This groupchat no longer exists"
+#: dist/converse-no-dependencies.js:48654
+msgid "has come online"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73726
-msgid "The conversation has moved. Click below to enter."
+#: dist/converse-no-dependencies.js:48671
+msgid "wants to be your contact"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73753
-msgid "Name"
+#: dist/converse-no-dependencies.js:48845
+msgid "Your avatar image"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73757
-msgid "Groupchat address (JID)"
+#: dist/converse-no-dependencies.js:48846
+msgid "Your Profile"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73761
-msgid "Description"
+#: dist/converse-no-dependencies.js:48848
+msgid "Email"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73767
-msgid "Topic"
+#: dist/converse-no-dependencies.js:48849
+msgid "Full Name"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73771
-msgid "Topic author"
+#: dist/converse-no-dependencies.js:48850
+msgid "XMPP Address (JID)"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73777
-msgid "Online users"
+#: dist/converse-no-dependencies.js:48853
+msgid ""
+"Use commas to separate multiple roles. Your roles are shown next to your "
+"name on your chat messages."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73781
-#: dist/converse-no-dependencies.js:73931
-msgid "Features"
+#: dist/converse-no-dependencies.js:48854
+msgid "URL"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73785
-#: dist/converse-no-dependencies.js:73937
-msgid "Password protected"
+#: dist/converse-no-dependencies.js:48888
+msgid "Sorry, an error happened while trying to save your profile data."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73787
-#: dist/converse-no-dependencies.js:73935
-msgid "This groupchat requires a password before entry"
+#: dist/converse-no-dependencies.js:48888
+msgid "You can check your browser's developer console for any error output."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73793
-msgid "No password required"
+#: dist/converse-no-dependencies.js:48935
+#: dist/converse-no-dependencies.js:53352
+msgid "Away"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73795
-#: dist/converse-no-dependencies.js:73943
-msgid "This groupchat does not require a password upon entry"
+#: dist/converse-no-dependencies.js:48937
+#: dist/converse-no-dependencies.js:53351
+msgid "Busy"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73803
-#: dist/converse-no-dependencies.js:73951
-msgid "This groupchat is not publicly searchable"
+#: dist/converse-no-dependencies.js:48939
+msgid "Custom status"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73811
-#: dist/converse-no-dependencies.js:73959
-msgid "This groupchat is publicly searchable"
+#: dist/converse-no-dependencies.js:48940
+#: dist/converse-no-dependencies.js:53354
+msgid "Offline"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73817
-#: dist/converse-no-dependencies.js:73969
-msgid "Members only"
+#: dist/converse-no-dependencies.js:48941
+#: dist/converse-no-dependencies.js:53349
+msgid "Online"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73819
-msgid "This groupchat is restricted to members only"
+#: dist/converse-no-dependencies.js:48943
+msgid "Away for long"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73827
-#: dist/converse-no-dependencies.js:73975
-msgid "Anyone can join this groupchat"
+#: dist/converse-no-dependencies.js:48944
+msgid "Change chat status"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73833
-#: dist/converse-no-dependencies.js:73985
-msgid "Persistent"
+#: dist/converse-no-dependencies.js:48945
+msgid "Personal status message"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73835
-#: dist/converse-no-dependencies.js:73983
-msgid "This groupchat persists even if it's unoccupied"
+#: dist/converse-no-dependencies.js:48978
+msgid "About"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73843
-#: dist/converse-no-dependencies.js:73991
-msgid "This groupchat will disappear once the last person leaves"
+#: dist/converse-no-dependencies.js:48980
+#, javascript-format
+msgid ""
+"%1$s Open Source %2$s XMPP chat client brought to you by %3$s Opkode %2$s"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73849
-#: dist/converse-no-dependencies.js:74001
-msgid "Not anonymous"
+#: dist/converse-no-dependencies.js:48981
+#, javascript-format
+msgid "%1$s Translate %2$s it into your own language"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73851
-#: dist/converse-no-dependencies.js:73999
-msgid "All other groupchat participants can see your XMPP address"
+#: dist/converse-no-dependencies.js:49002
+#, javascript-format
+msgid "I am %1$s"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73859
-#: dist/converse-no-dependencies.js:74007
-msgid "Only moderators can see your XMPP address"
+#: dist/converse-no-dependencies.js:49005
+msgid "Change settings"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73867
-#: dist/converse-no-dependencies.js:74015
-msgid ""
-"Participants entering this groupchat need to request permission to write"
+#: dist/converse-no-dependencies.js:49006
+msgid "Click to change your chat status"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73873
-#: dist/converse-no-dependencies.js:74025
-msgid "Not moderated"
+#: dist/converse-no-dependencies.js:49007
+msgid "Log out"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73875
-#: dist/converse-no-dependencies.js:74023
-msgid "Participants entering this groupchat can write right away"
+#: dist/converse-no-dependencies.js:49008
+msgid "Show details about this chat client"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73881
-#: dist/converse-no-dependencies.js:74033
-msgid "Message archiving"
+#: dist/converse-no-dependencies.js:49009
+msgid "Your profile"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73883
-#: dist/converse-no-dependencies.js:74031
-msgid "Messages are archived on the server"
+#: dist/converse-no-dependencies.js:49044
+msgid "Are you sure you want to log out?"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73945
-msgid "No password"
+#: dist/converse-no-dependencies.js:49052
+#: dist/converse-no-dependencies.js:49062
+msgid "online"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:73967
-msgid "this groupchat is restricted to members only"
+#: dist/converse-no-dependencies.js:49054
+msgid "busy"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:74478
-msgid "Uploading file:"
+#: dist/converse-no-dependencies.js:49056
+msgid "away for long"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:74934
-#: dist/converse-no-dependencies.js:76520
-msgid "XMPP Address:"
+#: dist/converse-no-dependencies.js:49058
+msgid "away"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:74940
-msgid "Password:"
+#: dist/converse-no-dependencies.js:49060
+msgid "offline"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:74942
-msgid "password"
+#: dist/converse-no-dependencies.js:49420
+msgid "Sorry, an error occurred while trying to remove the devices."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:74952
-msgid "This is a trusted device"
+#: dist/converse-no-dependencies.js:49429
+msgid ""
+"Are you sure you want to generate new OMEMO keys? This will remove your old "
+"keys and all previously encrypted messages will no longer be decryptable on "
+"this device."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:74954
+#: dist/converse-no-dependencies.js:49861
+#, javascript-format
 msgid ""
-"To improve performance, we cache your data in this browser. Uncheck this box "
-"if this is a public computer or if you want your data to be deleted when you "
-"log out. It's important that you explicitly log out, otherwise not all "
-"cached data might be deleted. Please note, when using an untrusted device, "
-"OMEMO encryption is NOT available."
+"Sorry, we're unable to send an encrypted message because %1$s requires you "
+"to be subscribed to their presence in order to see their OMEMO information"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:74958
-msgid "Log in"
+#: dist/converse-no-dependencies.js:49863
+#, javascript-format
+msgid ""
+"Sorry, we're unable to send an encrypted message because the remote server "
+"for %1$s could not be found"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:74964
-msgid "Click here to log in anonymously"
+#: dist/converse-no-dependencies.js:49865
+msgid "Unable to send an encrypted message due to an unexpected error."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75080
-msgid "This message has been edited"
+#: dist/converse-no-dependencies.js:49915
+msgid ""
+"Cannot use end-to-end encryption in this groupchat, either the groupchat has "
+"some anonymity or not all participants support OMEMO."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75086
-msgid "Edit this message"
+#: dist/converse-no-dependencies.js:49917
+#, javascript-format
+msgid ""
+"Cannot use end-to-end encryption because %1$s uses a client that doesn't "
+"support OMEMO."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75107
-msgid "Message versions"
+#: dist/converse-no-dependencies.js:50213
+msgid ""
+"Sorry, no devices found to which we can send an OMEMO encrypted message."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75140
-msgid "Moderator Tools"
+#: dist/converse-no-dependencies.js:50343
+msgid ""
+"This is an OMEMO encrypted message which your client doesn’t seem to "
+"support. Find more information on https://conversations.im/omemo"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75156
-#: dist/converse-no-dependencies.js:75214
-msgid "Show users"
+#: dist/converse-no-dependencies.js:51329
+#, javascript-format
+msgid ""
+"%1$s doesn't appear to have a client that supports OMEMO. Encrypted chat "
+"will no longer be possible in this grouchat."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75164
-msgid "No users with that role found."
+#: dist/converse-no-dependencies.js:51955
+msgid " e.g. conversejs.org"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75180
-msgid "New Role"
+#: dist/converse-no-dependencies.js:52062
+msgid "Fetch registration form"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75194
-#: dist/converse-no-dependencies.js:75256
-msgid "Reason"
+#: dist/converse-no-dependencies.js:52063
+msgid "Tip: A list of public XMPP providers is available"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75196
-msgid "Change role"
+#: dist/converse-no-dependencies.js:52064
+msgid "here"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75200
-msgid "Affiliation"
+#: dist/converse-no-dependencies.js:52115
+msgid "Sorry, we're unable to connect to your chosen provider."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75222
-msgid "No users with that affiliation found."
+#: dist/converse-no-dependencies.js:52131
+msgid ""
+"Sorry, the given provider does not support in band account registration. "
+"Please try with a different provider."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75242
-msgid "New affiliation"
+#: dist/converse-no-dependencies.js:52157
+#, javascript-format
+msgid ""
+"Something went wrong while establishing a connection with \"%1$s\". Are you "
+"sure it exists?"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75258
-msgid "Change affiliation"
+#: dist/converse-no-dependencies.js:52320
+msgid "Now logging you in"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75477
-msgid "Save and close"
+#: dist/converse-no-dependencies.js:52324
+msgid "Registered successfully"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75481
-msgid "This device's OMEMO fingerprint"
+#: dist/converse-no-dependencies.js:52436
+msgid ""
+"The provider rejected your registration attempt. Please check the values you "
+"entered for correctness."
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75491
-msgid "Generate new keys and fingerprint"
+#: dist/converse-no-dependencies.js:52848
+msgid "Click to toggle the list of open groupchats"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75495
-msgid "Select all"
+#. Note to translators, "Open Groupchats" refers to groupchats that are open, NOT a command.
+#: dist/converse-no-dependencies.js:52850
+msgid "Open Groupchats"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75497
-msgid "Checkbox to select fingerprints of all other OMEMO devices"
+#: dist/converse-no-dependencies.js:52919
+#, javascript-format
+msgid "Are you sure you want to leave the groupchat %1$s?"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75499
-msgid "Other OMEMO-enabled devices"
+#: dist/converse-no-dependencies.js:53144
+msgid "This contact is busy"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75507
-#: dist/converse-no-dependencies.js:75515
-msgid "Checkbox for selecting the following fingerprint"
+#: dist/converse-no-dependencies.js:53145
+msgid "This contact is online"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75517
-msgid "Device without a fingerprint"
+#: dist/converse-no-dependencies.js:53146
+msgid "This contact is offline"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75523
-msgid "Remove checked devices and close"
+#: dist/converse-no-dependencies.js:53147
+msgid "This contact is unavailable"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75607
-msgid "Don't have a chat account?"
+#: dist/converse-no-dependencies.js:53148
+msgid "This contact is away for an extended period"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75609
-msgid "Create an account"
+#: dist/converse-no-dependencies.js:53149
+msgid "This contact is away"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75630
-msgid "Create your account"
+#: dist/converse-no-dependencies.js:53152
+msgid "Groups"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75632
-msgid "Please enter the XMPP provider to register with:"
+#: dist/converse-no-dependencies.js:53164
+msgid "Contact name"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75650
-#: dist/converse-no-dependencies.js:75689
-msgid "Already have a chat account?"
+#: dist/converse-no-dependencies.js:53164
+msgid "Optional nickname"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75652
-#: dist/converse-no-dependencies.js:75691
-msgid "Log in here"
+#: dist/converse-no-dependencies.js:53167
+msgid "Add a Contact"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75673
-msgid "Account Registration:"
+#: dist/converse-no-dependencies.js:53168
+msgid "XMPP Address"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75681
-msgid "Register"
+#: dist/converse-no-dependencies.js:53170
+msgid "name@example.org"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75685
-msgid "Choose a different provider"
+#: dist/converse-no-dependencies.js:53171
+msgid "Add"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:75710
-msgid "Hold tight, we're fetching the registration form…"
+#: dist/converse-no-dependencies.js:53261
+msgid "Sorry, could not find a contact with that name"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:76450
-msgid "Messages are being sent in plaintext"
+#: dist/converse-no-dependencies.js:53286
+msgid "This contact has already been added"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:76504
-msgid "The User's Profile Image"
+#: dist/converse-no-dependencies.js:53343
+msgid "Filter"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:76514
-msgid "Full Name:"
+#: dist/converse-no-dependencies.js:53344
+msgid "Filter by contact name"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:76528
-msgid "Nickname:"
+#: dist/converse-no-dependencies.js:53345
+msgid "Filter by group name"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:76536
-msgid "URL:"
+#: dist/converse-no-dependencies.js:53346
+msgid "Filter by status"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:76546
-msgid "Email:"
+#: dist/converse-no-dependencies.js:53347
+msgid "Any"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:76556
-msgid "Role:"
+#: dist/converse-no-dependencies.js:53348
+msgid "Unread"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:76564
-msgid "OMEMO Fingerprints"
+#: dist/converse-no-dependencies.js:53350
+msgid "Chatty"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:76588
-msgid "Trusted"
+#: dist/converse-no-dependencies.js:53353
+msgid "Extended Away"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:76602
-msgid "Untrusted"
+#: dist/converse-no-dependencies.js:53518
+#: dist/converse-no-dependencies.js:53573
+#, javascript-format
+msgid "Click to remove %1$s as a contact"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:76616
-msgid "Refresh"
+#: dist/converse-no-dependencies.js:53527
+#, javascript-format
+msgid "Click to accept the contact request from %1$s"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:76620
-msgid "Remove as contact"
+#: dist/converse-no-dependencies.js:53528
+#, javascript-format
+msgid "Click to decline the contact request from %1$s"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:76825
+#: dist/converse-no-dependencies.js:53572
 #, javascript-format
-msgid "Download audio file \"%1$s\""
+msgid "Click to chat with %1$s (JID: %2$s)"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:76845
-#, javascript-format
-msgid "Download file \"%1$s\""
+#: dist/converse-no-dependencies.js:53713
+msgid "Are you sure you want to decline this contact request?"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:76862
-#, javascript-format
-msgid "Download image \"%1$s\""
+#: dist/converse-no-dependencies.js:54024
+msgid "Contacts"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:76894
-msgid "Download"
+#: dist/converse-no-dependencies.js:54025
+msgid "Add a contact"
 msgstr ""
 
-#: dist/converse-no-dependencies.js:76912
-#, javascript-format
-msgid "Download video file \"%1$s\""
+#: dist/converse-no-dependencies.js:54026
+msgid "Re-sync your contacts"
 msgstr ""

+ 1 - 0
package.json

@@ -19,6 +19,7 @@
     "clean": "rm -rf node_modules stamp-npm dist *.zip",
     "converse-headless.js": "webpack --mode=development --type=headless",
     "converse-headless.min.js": "npm run converse-headless.js && webpack --mode=production --type=headless",
+    "nodeps": "webpack --config webpack.nodeps.js",
     "build": "webpack --config webpack.prod.js",
     "lerna": "lerna bootstrap --hoist --ignore-scripts",
     "prepare": "npm run lerna && npm run build"

+ 8 - 3
src/converse-chatview.js

@@ -399,23 +399,28 @@ converse.plugins.add('converse-chatview', {
              * @method _converse.ChatBoxView#addSpoilerButton
              */
             async addSpoilerButton (options) {
+                __('1111')
                 if (!options.show_spoiler_button || this.model.get('type') === _converse.CHATROOMS_TYPE) {
                     return;
                 }
+                __('2222')
                 const contact_jid = this.model.get('jid');
                 if (this.model.presence.resources.length === 0) {
                     return;
                 }
+                __('3333')
                 const results = await Promise.all(
                     this.model.presence.resources.map(
                         r => _converse.api.disco.supports(Strophe.NS.SPOILER, `${contact_jid}/${r.get('name')}`)
                     )
                 );
+                __('4444')
                 const all_resources_support_spolers = results.reduce((acc, val) => (acc && val), true);
                 if (all_resources_support_spolers) {
                     const html = tpl_spoiler_button(this.model.toJSON());
                     this.el.querySelector('.chat-toolbar').insertAdjacentHTML('afterBegin', html);
                 }
+                __('hello world')
             },
 
             insertHeading () {
@@ -434,9 +439,9 @@ converse.plugins.add('converse-chatview', {
             getToolbarOptions () {
                 let label_toggle_spoiler;
                 if (this.model.get('composing_spoiler')) {
-                    label_toggle_spoiler = __('Click to write as a normal (non-spoiler) message');
+                    label_toggle_spoiler = __("Click to write as a normal (non-spoiler) message");
                 } else {
-                    label_toggle_spoiler = __('Click to write your message as a spoiler');
+                    label_toggle_spoiler = __("Click to write your message as a spoiler");
                 }
                 return {
                     'label_clear': __('Clear all messages'),
@@ -445,7 +450,7 @@ converse.plugins.add('converse-chatview', {
                     'message_limit': _converse.message_limit,
                     'show_call_button': _converse.visible_toolbar_buttons.call,
                     'show_spoiler_button': _converse.visible_toolbar_buttons.spoiler,
-                    'tooltip_start_call': __('Start a call'),
+                    'tooltip_start_call': __('Start a call')
                 }
             },
 

+ 0 - 1
src/headless/utils/core.js

@@ -8,7 +8,6 @@
 //
 import * as strophe from 'strophe.js/src/core';
 import Backbone from "backbone";
-import Promise from "es6-promise/dist/es6-promise.auto";
 import _ from "../lodash.noconflict";
 import sizzle from "sizzle";
 

+ 68 - 0
webpack.nodeps.js

@@ -0,0 +1,68 @@
+/* global module, __dirname */
+const MiniCssExtractPlugin = require('mini-css-extract-plugin');
+const common = require("./webpack.common.js");
+const merge = require("webpack-merge");
+const path = require('path');
+
+module.exports = merge(common, {
+    mode: "production",
+    output: {
+        filename: 'converse-no-dependencies.js'
+    },
+    optimization: {
+        minimizer: []
+    },
+    plugins: [
+        new MiniCssExtractPlugin({filename: ''})
+    ],
+    module: {
+        rules: [
+        {
+            test: /\.js$/,
+            use: {
+                loader: 'babel-loader',
+                options: {
+                    presets: [
+                        ["@babel/preset-env", {
+                            "targets": {
+                                "browsers": ["ie 8"]
+                            }
+                        }]
+                    ]
+                }
+            }
+        },
+        {
+            test: /\.scss$/,
+            use: [
+                MiniCssExtractPlugin.loader,
+                'css-loader',
+                {
+                    loader: 'sass-loader',
+                    options: {
+                        includePaths: [path.resolve(__dirname, 'node_modules/')]
+                    }
+                }
+            ]
+        }]
+    },
+    externals: [{
+        "backbone": "backbone",
+        "backbone.nativeview": "backbone.nativeview",
+        "backbone.vdomview": "backbone.vdomview",
+        "backbone.browserStorage": "backbone.browserStorage",
+        "backbone.overview": "backbone.overview",
+        "es6-promise": "es6-promise",
+        "formdata-polyfill": "formdata-polyfill",
+        "lodash": "lodash",
+        "lodash.converter": "lodash.converter",
+        "lodash.noconflict": "lodash.noconflict",
+        "strophe": "strophe",
+        "window": "window",
+        "filesize": "filesize",
+        "jed": "jed",
+        "sizzle": "sizzle",
+        "twemoji": "twemoji",
+        "urijs": "urijs"
+    }]
+});