Conflicts: converse.js
@@ -1,7 +1,7 @@
{
"name": "converse.js",
"description": "Web-based XMPP/Jabber chat client written in javascript",
- "version": "0.9.0",
+ "version": "0.9.1",
"license": "MPL",
"devDependencies": {
"jasmine": "https://github.com/jcbrand/jasmine.git#1_3_x",
@@ -18,7 +18,7 @@
"backbone.browserStorage": "*",
"backbone.overview": "*",
"otr": "0.2.12",
- "crypto-js-evanvosberg": "~3.1.2",
+ "crypto-js-evanvosberg": "3.1.2-5",
"almond": "~0.3.0",
"requirejs-text": "~2.0.12",
"requirejs-tpl-jcbrand": "*",
@@ -483,7 +483,7 @@ var __t, __p = '', __e = _.escape;
with (obj) {
__p += '<form id="converse-login" method="post">\n <label>' +
((__t = (label_username)) == null ? '' : __t) +
-'</label>\n <input type="username" name="jid" placeholder="user@server">\n <label>' +
+'</label>\n <input type="email" name="jid" placeholder="user@server">\n <label>' +
((__t = (label_password)) == null ? '' : __t) +
'</label>\n <input type="password" name="password" placeholder="password">\n <input class="submit" type="submit" value="' +
((__t = (label_login)) == null ? '' : __t) +
@@ -829,7 +829,9 @@ __p += '<form class="add-chatroom" action="" method="post">\n <label>' +
((__t = (label_nickname)) == null ? '' : __t) +
'</label>\n <input type="text" name="nick" class="new-chatroom-nick"\n placeholder="' +
-'"/>\n <label>' +
+'"/>\n <label' +
+((__t = (server_label_global_attr)) == null ? '' : __t) +
+'>' +
((__t = (label_server)) == null ? '' : __t) +
'</label>\n <input type="' +
((__t = (server_input_type)) == null ? '' : __t) +
@@ -863,7 +865,8 @@ return __p
this["templates"]["roster_item"] = function(obj) {
obj || (obj = {});
-var __t, __p = '', __e = _.escape;
+var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
+function print() { __p += __j.call(arguments, '') }
__p += '<a class="open-chat" title="Name: ' +
((__t = (fullname)) == null ? '' : __t) +
@@ -877,9 +880,13 @@ __p += '<a class="open-chat" title="Name: ' +
((__t = (desc_status)) == null ? '' : __t) +
'"></span>' +
-'</a>\n<a class="remove-xmpp-contact icon-remove" title="' +
+'</a>\n';
+ if (allow_contact_removal) { ;
+__p += '\n<a class="remove-xmpp-contact icon-remove" title="' +
((__t = (desc_remove)) == null ? '' : __t) +
'" href="#"></a>\n';
+ } ;
+__p += '\n';
}
return __p
@@ -74,7 +74,7 @@
} else if (typeof attr === 'string') {
return item.get(attr).toLowerCase().indexOf(query.toLowerCase()) !== -1;
} else {
- throw new Error('Wrong attribute type. Must be string or array.');
+ throw new TypeError('contains: wrong attribute type. Must be string or array.');
};
@@ -864,7 +864,7 @@
break;
default:
- throw new Error('Unknown type.');
+ throw new TypeError('ChatBox.onSMP: Unknown type for SMP');
},
@@ -1032,12 +1032,7 @@
this.updateVCard();
this.$el.insertAfter(converse.chatboxviews.get("controlbox").$el);
- this.render().model.messages.fetch({add: true});
- if (this.model.get('minimized')) {
- this.hide();
- } else {
- this.show();
- }
+ this.hide().render().model.messages.fetch({add: true});
if ((_.contains([UNVERIFIED, VERIFIED], this.model.get('otr_status'))) || converse.use_otr_by_default) {
this.model.initiateOTR();
@@ -1175,7 +1170,10 @@
if ((message.get('sender') != 'me') && (converse.windowState == 'blur')) {
converse.incrementMsgCounter();
- return this.scrollDown();
+ this.scrollDown();
+ if (!this.model.get('minimized') && !this.$el.is(':visible')) {
+ this.show();
+ }
sendMessageStanza: function (text) {
@@ -1633,7 +1631,7 @@
this.initDragResize();
this.setChatState(ACTIVE);
- return this;
+ return this.focus();
scrollDown: function () {
@@ -2204,11 +2202,7 @@
});
this.ChatRoomOccupants = Backbone.Collection.extend({
- model: converse.ChatRoomOccupant,
- initialize: function (options) {
- this.browserStorage = new Backbone.BrowserStorage[converse.storage](
- b64_sha1('converse.occupants'+converse.bare_jid+options.nick));
+ model: converse.ChatRoomOccupant
this.ChatRoomOccupantsView = Backbone.Overview.extend({
@@ -2366,6 +2360,10 @@
this.occupantsview = new converse.ChatRoomOccupantsView({
model: new converse.ChatRoomOccupants({nick: this.model.get('nick')})
+ var id = b64_sha1('converse.occupants'+converse.bare_jid+this.model.get('id')+this.model.get('nick'));
+ this.occupantsview.model.id = id; // Appears to be necessary for backbone.browserStorage
+ this.occupantsview.model.browserStorage = new Backbone.BrowserStorage[converse.storage](id);
+
this.occupantsview.chatroomview = this;
this.render();
this.occupantsview.model.fetch({add:true});
@@ -3091,6 +3089,8 @@
onMessage: function (message) {
+ /* Handler method for all incoming single-user chat "message" stanzas.
+ */
var $message = $(message);
var contact_jid, $forwarded, $received, $sent,
msgid = $message.attr('id'),
@@ -3135,12 +3135,15 @@
chatbox = this.get(contact_jid);
if (!chatbox) {
- /* FIXME: there is a bug here. If chat state notifications
- * (because a roster contact closed a chat box of yours
- * they had open) are received and we don't have a chat with
- * the user, then a chat box is created here which then
- * opens automatically :(
+ /* If chat state notifications (because a roster contact
+ * closed a chat box of yours they had open) are received
+ * and we don't have a chat with the user, then we do not
+ * want to open a chat box. We only open a new chat box when
+ * the message has a body.
*/
+ if ($message.find('body').length === 0) {
+ return true;
var fullname = roster_item.get('fullname');
fullname = _.isEmpty(fullname)? contact_jid: fullname;
chatbox = this.create({
@@ -3153,13 +3156,6 @@
if (msgid && chatbox.messages.findWhere({msgid: msgid})) {
- // FIXME: There's still a bug here..
- // If a duplicate message is received just after the chat
- // box was closed, then it'll open again (due to it being
- // created here above), with now new messages.
- // The solution is mostly likely to not let chat boxes show
- // automatically when they are created, but to require
- // "show" to be called explicitly.
return true; // We already have this message stored.
if (!this.isOnlyChatStateNotification($message) && from !== converse.bare_jid) {
@@ -3293,7 +3289,6 @@
showChat: function (attrs) {
/* Find the chat box and show it. If it doesn't exist, create it.
- // TODO: Send the chat state ACTIVE to the contact once the chat box is opened.
var chatbox = this.model.get(attrs.jid);
chatbox = this.model.create(attrs, {
@@ -5350,14 +5345,14 @@
this.onConnected();
if (!this.bosh_service_url && ! this.websocket_url) {
- throw("Config Error: you must supply a value for the bosh_service_url or websocket_url");
+ throw new Error("initConnection: you must supply a value for either the bosh_service_url or websocket_url or both.");
if (('WebSocket' in window || 'MozWebSocket' in window) && this.websocket_url) {
this.connection = new Strophe.Connection(this.websocket_url);
} else if (this.bosh_service_url) {
this.connection = new Strophe.Connection(this.bosh_service_url);
- throw("Config Error: this browser does not support websockets and no bosh_service_url specified.");
+ throw new Error("initConnection: this browser does not support websockets and bosh_service_url wasn't specified.");
this.setUpXMLLogging();
@@ -5367,8 +5362,7 @@
jid = this.session.get('jid');
if (this.authentication === "prebind") {
if (!this.jid) {
- throw("Config Eror: When using 'keepalive' with authentication='prebind', " +
- "you must supply the JID of the current user.");
+ throw new Error("initConnection: when using 'keepalive' with 'prebind, you must supply the JID of the current user.");
if (rid && sid && jid && Strophe.getBareJidFromJid(jid) === Strophe.getBareJidFromJid(this.jid)) {
this.session.save({rid: rid}); // The RID needs to be increased with each request.
@@ -5393,8 +5387,8 @@
if (this.jid && this.sid && this.rid) {
this.connection.attach(this.jid, this.sid, this.rid, this.onConnect);
- throw("Config Error: If you use authentication='prebind' and don't use keepalive, "+
- "then you MUST supply JID, RID and SID values");
+ throw new Error("initConnection: If you use prebind and not keepalive, "+
+ "then you MUST supply JID, RID and SID values");
@@ -5460,6 +5454,7 @@
var wrappedChatBox = function (chatbox) {
var view = converse.chatboxviews.get(chatbox.get('jid'));
return {
+ 'open': $.proxy(view.show, view),
'close': $.proxy(view.close, view),
'endOTR': $.proxy(chatbox.endOTR, chatbox),
'focus': $.proxy(view.focus, view),
@@ -5470,6 +5465,27 @@
'set': $.proxy(chatbox.set, chatbox)
+ var getWrappedChatBox = function (jid) {
+ var chatbox = converse.chatboxes.get(jid);
+ if (!chatbox) {
+ var roster_item = converse.roster.get(jid);
+ if (roster_item === undefined) {
+ converse.log('Could not get roster item for JID '+jid, 'error');
+ return null;
+ chatbox = converse.chatboxes.create({
+ 'id': jid,
+ 'jid': jid,
+ 'fullname': _.isEmpty(roster_item.get('fullname'))? jid: roster_item.get('fullname'),
+ 'image_type': roster_item.get('image_type'),
+ 'image': roster_item.get('image'),
+ 'url': roster_item.get('url')
+ });
+ return wrappedChatBox(chatbox);
+ };
'initialize': function (settings, callback) {
converse.initialize(settings, callback);
@@ -5513,51 +5529,42 @@
return _transform(jids);
return _.map(jids, _transform);
+ },
+ 'add': function (jid, name) {
+ if (typeof jid !== "string" || jid.indexOf('@') < 0) {
+ throw new TypeError('contacts.add: invalid jid');
+ converse.connection.roster.add(jid, _.isEmpty(name)? jid: name, [], function (iq) {
+ converse.connection.roster.subscribe(jid, null, converse.xmppstatus.get('fullname'));
'chats': {
'open': function (jids) {
- var _transform = function (jid) {
- var chatbox = converse.chatboxes.get(jid);
- if (!chatbox) {
- var roster_item = converse.roster.get(jid);
- if (roster_item === undefined) {
- converse.log('Could not get roster item for JID '+jid, 'error');
- return null;
- chatbox = converse.chatboxes.create({
- 'id': jid,
- 'jid': jid,
- 'fullname': _.isEmpty(roster_item.get('fullname'))? jid: roster_item.get('fullname'),
- 'image_type': roster_item.get('image_type'),
- 'image': roster_item.get('image'),
- 'url': roster_item.get('url')
- });
- return wrappedChatBox(chatbox);
- };
+ var chatbox;
if (typeof jids === "undefined") {
converse.log("chats.open: You need to provide at least one JID", "error");
return null;
} else if (typeof jids === "string") {
- return _transform(jids);
- return _.map(jids, _transform);
+ chatbox = getWrappedChatBox(jids);
+ chatbox.open();
+ return chatbox;
+ return _.map(jids, function (jid) {
+ var chatbox = getWrappedChatBox(jid);
'get': function (jids) {
- jids = converse.roster.pluck('jid');
+ converse.log("chats.get: You need to provide at least one JID", "error");
+ return getWrappedChatBox(jids);
- return _.filter(_.map(jids, _transform), function (i) {return i !== null;});
+ return _.map(jids, getWrappedChatBox);
'tokens': {
@@ -5609,7 +5616,7 @@
if (key === 'events') {
obj.prototype[key] = _.extend(value, obj.prototype[key]);
- if (typeof key === 'function') {
+ if (typeof value === 'function') {
obj.prototype._super[key] = obj.prototype[key];
obj.prototype[key] = value;
@@ -886,6 +886,8 @@
white-space: nowrap; }
#conversejs .chatroom .participant-list li.moderator {
color: #8f2831; }
+ #conversejs .chatroom .participant-list li.visitor {
+ color: #A3A3A3; }
#conversejs .chatroom .chat-textarea {
border-bottom-right-radius: 0; }
#conversejs .chatroom .chat-area {
@@ -1,17 +1,26 @@
Changelog
=========
-0.9.1 (Unreleased)
+0.9.2 (Undefined)
+-----------------
+* Bugfix. Prevent attaching twice during initialization. [jcbrand]
+* API method chats.get can now also return chat boxes which haven't been opened yet. [jcbrand]
+* Add API method contacts.add. [pzia]
+* #356 Fix the plugin extend function. [floriancargoet]
+* #357 Fix the known bug where a state notification reopens a chat box. [floriancargoet]
+* #358 Bugfix. Chat rooms show the same occupants bug. [floriancargoet]
+0.9.1 (2015-03-26)
------------------
* Set the JID input field in the login form to ``type=email``. [chatme]
-* New configuration setting ``allow_contact_removal``. [jcbrand]
+* New configuration setting `allow_contact_removal <https://conversejs.org/docs/html/configuration.html#allow-contact-removal>`_ [jcbrand]
* Document that event handlers receive 'event' obj as first arg. [jcbrand]
* Add a test to check that notifications are played in chat rooms. [jcbrand]
-* Enable automatic reconnection when ``prebind`` and ``prebind_url`` are
- specified. [jcbrand]
-* #339 Require the JID to be specified when using ``keepalive`` with
- ``prebind``. Also add a logout API method. [jcbrand]
+* #333 Enable automatic reconnection when ``prebind`` and ``prebind_url`` are specified. [jcbrand]
+* #339 Require the JID to be specified when using ``keepalive`` with ``prebind``. Also add a logout API method. [jcbrand]
+* #349 Indicate visitors in chat rooms. [c143]
0.9.0 (2015-03-06)
@@ -48,9 +48,9 @@ copyright = u'2014, JC Brand'
# built documents.
#
# The short X.Y version.
-version = '0.9.0'
+version = '0.9.1'
# The full version, including alpha/beta/rc tags.
-release = '0.9.0'
+release = '0.9.1'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
@@ -41,9 +41,8 @@ directory:
make dev
-On Windows you need to specify Makefile.win to be used by running:
-
-::
+On Windows you need to specify Makefile.win to be used by running: ::
make -f Makefile.win dev
Or alternatively, if you don't have GNU Make:
@@ -272,14 +271,26 @@ The returned roster contact objects have these attributes:
| vcard_updated | When last the buddy's VCard was updated. |
+----------------+--------------------------------------------------------------------------------------------------------------------------------------+
+add
+~~~
+Add a contact.
+Provide the JID of the contact you want to add::
+ converse.chats.add('buddy@example.com')
+You may also provide the fullname. If not present, we use the jid as fullname.
+ converse.chats.add('buddy@example.com', 'Buddy')
"chats" grouping
----------------
get
~~~
-Returns an object representing a chat box, if that chat box is already open.
-If the chat box is not already open, this method will return ``null``.
+Returns an object representing a chat box.
To return a single chat box, provide the JID of the contact you're chatting
with in that chat box::
@@ -308,7 +319,7 @@ To return an array of chat boxes, provide an array of JIDs::
converse.chats.open(['buddy1@example.com', 'buddy2@example.com'])
-*The returned chat box contains the following methods:*
+*The returned chat box object contains the following methods:*
+-------------+------------------------------------------+
| Method | Description |
@@ -327,6 +338,8 @@ To return an array of chat boxes, provide an array of JIDs::
| close | Close the chat box. |
+| open | Opens the chat box. |
++-------------+------------------------------------------+
*The get and set methods can be used to retrieve and change the following attributes:*
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Converse.js 0.7.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-03-06 18:44+0100\n"
+"POT-Creation-Date: 2015-03-26 09:53+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,111 +17,111 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: converse.js:260
+#: converse.js:248
msgid " e.g. conversejs.org"
-#: converse.js:324
+#: converse.js:312
msgid "unencrypted"
-#: converse.js:325
+#: converse.js:313
msgid "unverified"
-#: converse.js:326
+#: converse.js:314
msgid "verified"
-#: converse.js:327
+#: converse.js:315
msgid "finished"
-#: converse.js:330
+#: converse.js:318
msgid "This contact is busy"
-#: converse.js:331
+#: converse.js:319
msgid "This contact is online"
-#: converse.js:332
+#: converse.js:320
msgid "This contact is offline"
-#: converse.js:333
+#: converse.js:321
msgid "This contact is unavailable"
-#: converse.js:334
+#: converse.js:322
msgid "This contact is away for an extended period"
-#: converse.js:335
+#: converse.js:323
msgid "This contact is away"
-#: converse.js:337
+#: converse.js:325
msgid "Click to hide these contacts"
-#: converse.js:339
+#: converse.js:327
msgid "My contacts"
-#: converse.js:340
+#: converse.js:328
msgid "Pending contacts"
-#: converse.js:341
+#: converse.js:329
msgid "Contact requests"
-#: converse.js:342
+#: converse.js:330
msgid "Ungrouped"
-#: converse.js:344 converse.js:624 converse.js:667
+#: converse.js:332 converse.js:629 converse.js:672
msgid "Contacts"
-#: converse.js:345
+#: converse.js:333
msgid "Groups"
-#: converse.js:432
+#: converse.js:433
msgid "Reconnecting"
-#: converse.js:472
+#: converse.js:476
msgid "Error"
-#: converse.js:474
+#: converse.js:478
msgid "Connecting"
-#: converse.js:476
+#: converse.js:480
msgid "Authenticating"
-#: converse.js:478 converse.js:479
+#: converse.js:482 converse.js:483
msgid "Authentication Failed"
-#: converse.js:783
+#: converse.js:788
msgid "Re-establishing encrypted session"
-#: converse.js:795
+#: converse.js:800
msgid "Generating private key."
-#: converse.js:796
+#: converse.js:801
msgid "Your browser might become unresponsive."
-#: converse.js:831
+#: converse.js:836
msgid ""
"Authentication request from %1$s\n"
"\n"
@@ -131,67 +131,67 @@ msgid ""
"%2$s"
-#: converse.js:840
+#: converse.js:845
msgid "Could not verify this user's identify."
-#: converse.js:879
+#: converse.js:884
msgid "Exchanging private key with contact."
-#: converse.js:1030
+#: converse.js:1035
msgid "Personal message"
-#: converse.js:1062
+#: converse.js:1067
msgid "Are you sure you want to clear the messages from this room?"
-#: converse.js:1084
+#: converse.js:1089
msgid "me"
-#: converse.js:1139
+#: converse.js:1144
msgid "is typing"
-#: converse.js:1142
+#: converse.js:1147
msgid "has stopped typing"
-#: converse.js:1148 converse.js:1426
+#: converse.js:1153 converse.js:1431
msgid "has gone away"
-#: converse.js:1190 converse.js:2509
+#: converse.js:1195 converse.js:2515
msgid "Show this menu"
-#: converse.js:1191
+#: converse.js:1196
msgid "Write in the third person"
-#: converse.js:1192 converse.js:2507
+#: converse.js:1197 converse.js:2513
msgid "Remove messages"
-#: converse.js:1319
+#: converse.js:1324
msgid "Are you sure you want to clear the messages from this chat box?"
-#: converse.js:1354
+#: converse.js:1359
msgid "Your message could not be sent"
-#: converse.js:1357
+#: converse.js:1362
msgid "We received an unencrypted message"
-#: converse.js:1360
+#: converse.js:1365
msgid "We received an unreadable encrypted message"
-#: converse.js:1386
+#: converse.js:1391
"Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n"
@@ -204,7 +204,7 @@ msgid ""
"Cancel."
-#: converse.js:1399
+#: converse.js:1404
"You will be prompted to provide a security question and then an answer to "
"that question.\n"
@@ -213,639 +213,639 @@ msgid ""
"exact same answer (case sensitive), their identity will be verified."
-#: converse.js:1400
+#: converse.js:1405
msgid "What is your security question?"
-#: converse.js:1402
+#: converse.js:1407
msgid "What is the answer to the security question?"
-#: converse.js:1406
+#: converse.js:1411
msgid "Invalid authentication scheme provided"
-#: converse.js:1424
+#: converse.js:1429
msgid "has gone offline"
-#: converse.js:1428
+#: converse.js:1433
msgid "is busy"
-#: converse.js:1515
+#: converse.js:1520
msgid "Your messages are not encrypted anymore"
-#: converse.js:1517
+#: converse.js:1522
"Your messages are now encrypted but your contact's identity has not been "
"verified."
-#: converse.js:1519
+#: converse.js:1524
msgid "Your contact's identify has been verified."
-#: converse.js:1521
+#: converse.js:1526
msgid "Your contact has ended encryption on their end, you should do the same."
-#: converse.js:1530
+#: converse.js:1535
msgid "Your messages are not encrypted. Click here to enable OTR encryption."
-#: converse.js:1532
+#: converse.js:1537
msgid "Your messages are encrypted, but your contact has not been verified."
-#: converse.js:1534
+#: converse.js:1539
msgid "Your messages are encrypted and your contact verified."
-#: converse.js:1536
+#: converse.js:1541
"Your contact has closed their end of the private session, you should do the "
"same"
-#: converse.js:1546
+#: converse.js:1551
msgid "Clear all messages"
-#: converse.js:1547
+#: converse.js:1552
msgid "End encrypted conversation"
-#: converse.js:1548
+#: converse.js:1553
msgid "Hide the list of participants"
-#: converse.js:1549
+#: converse.js:1554
msgid "Refresh encrypted conversation"
-#: converse.js:1550
+#: converse.js:1555
msgid "Start a call"
-#: converse.js:1551
+#: converse.js:1556
msgid "Start encrypted conversation"
-#: converse.js:1552
+#: converse.js:1557
msgid "Verify with fingerprints"
-#: converse.js:1553
+#: converse.js:1558
msgid "Verify with SMP"
-#: converse.js:1554
+#: converse.js:1559
msgid "What's this?"
-#: converse.js:1646
+#: converse.js:1651
msgid "Online"
-#: converse.js:1647
+#: converse.js:1652
msgid "Busy"
-#: converse.js:1648
+#: converse.js:1653
msgid "Away"
-#: converse.js:1649
+#: converse.js:1654
msgid "Offline"
-#: converse.js:1650
+#: converse.js:1655
msgid "Log out"
-#: converse.js:1656
+#: converse.js:1661
msgid "Contact name"
-#: converse.js:1657
+#: converse.js:1662
msgid "Search"
-#: converse.js:1661
+#: converse.js:1666
msgid "Contact username"
-#: converse.js:1662
+#: converse.js:1667
msgid "Add"
-#: converse.js:1667
+#: converse.js:1672
msgid "Click to add new chat contacts"
-#: converse.js:1668
+#: converse.js:1673
msgid "Add a contact"
-#: converse.js:1692
+#: converse.js:1697
msgid "No users found"
-#: converse.js:1698
+#: converse.js:1703
msgid "Click to add as a chat contact"
-#: converse.js:1762
+#: converse.js:1768
msgid "Room name"
-#: converse.js:1763
+#: converse.js:1769
msgid "Nickname"
-#: converse.js:1764
+#: converse.js:1770
msgid "Server"
-#: converse.js:1765
+#: converse.js:1771
msgid "Join Room"
-#: converse.js:1766
+#: converse.js:1772
msgid "Show rooms"
-#: converse.js:1770
+#: converse.js:1776
msgid "Rooms"
#. For translators: %1$s is a variable and will be replaced with the XMPP server name
-#: converse.js:1790
+#: converse.js:1796
msgid "No rooms on %1$s"
#. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name
-#: converse.js:1805
+#: converse.js:1811
msgid "Rooms on %1$s"
-#: converse.js:1814
+#: converse.js:1820
msgid "Click to open this room"
-#: converse.js:1815
+#: converse.js:1821
msgid "Show more information on this room"
-#: converse.js:1887
+#: converse.js:1893
msgid "Description:"
-#: converse.js:1888
+#: converse.js:1894
msgid "Occupants:"
-#: converse.js:1889
+#: converse.js:1895
msgid "Features:"
-#: converse.js:1890
+#: converse.js:1896
msgid "Requires authentication"
-#: converse.js:1891
+#: converse.js:1897
msgid "Hidden"
-#: converse.js:1892
+#: converse.js:1898
msgid "Requires an invitation"
-#: converse.js:1893
+#: converse.js:1899
msgid "Moderated"
-#: converse.js:1894
+#: converse.js:1900
msgid "Non-anonymous"
-#: converse.js:1895
+#: converse.js:1901
msgid "Open room"
-#: converse.js:1896
+#: converse.js:1902
msgid "Permanent room"
-#: converse.js:1897
+#: converse.js:1903
msgid "Public"
-#: converse.js:1898
+#: converse.js:1904
msgid "Semi-anonymous"
-#: converse.js:1899
+#: converse.js:1905
msgid "Temporary room"
-#: converse.js:1900
+#: converse.js:1906
msgid "Unmoderated"
-#: converse.js:2169
+#: converse.js:2175
msgid "This user is a moderator"
-#: converse.js:2170
+#: converse.js:2176
msgid "This user can send messages in this room"
-#: converse.js:2171
+#: converse.js:2177
msgid "This user can NOT send messages in this room"
-#: converse.js:2203
+#: converse.js:2209
msgid "Invite..."
-#: converse.js:2204
+#: converse.js:2210
msgid "Occupants"
-#: converse.js:2300
+#: converse.js:2306
msgid "You are about to invite %1$s to the chat room \"%2$s\". "
-#: converse.js:2301
+#: converse.js:2307
"You may optionally include a message, explaining the reason for the "
"invitation."
-#: converse.js:2378
+#: converse.js:2384
msgid "Message"
-#: converse.js:2430
+#: converse.js:2436
msgid "Error: could not execute the command"
-#: converse.js:2505
+#: converse.js:2511
msgid "Change user's affiliation to admin"
-#: converse.js:2506
+#: converse.js:2512
msgid "Ban user from room"
-#: converse.js:2508
+#: converse.js:2514
msgid "Change user role to participant"
-#: converse.js:2510
+#: converse.js:2516
msgid "Kick user from room"
-#: converse.js:2511
+#: converse.js:2517
msgid "Write in 3rd person"
-#: converse.js:2512
+#: converse.js:2518
msgid "Grant membership to a user"
-#: converse.js:2513
+#: converse.js:2519
msgid "Remove user's ability to post messages"
-#: converse.js:2514
+#: converse.js:2520
msgid "Change your nickname"
-#: converse.js:2515
+#: converse.js:2521
msgid "Grant moderator role to user"
-#: converse.js:2516
+#: converse.js:2522
msgid "Grant ownership of this room"
-#: converse.js:2517
+#: converse.js:2523
msgid "Revoke user's membership"
-#: converse.js:2518
+#: converse.js:2524
msgid "Set room topic"
-#: converse.js:2519
+#: converse.js:2525
msgid "Allow muted user to post messages"
-#: converse.js:2664 converse.js:4595
+#: converse.js:2670 converse.js:4603
msgid "Save"
-#: converse.js:2665 converse.js:4860 converse.js:4964
+#: converse.js:2671 converse.js:4868 converse.js:4972
msgid "Cancel"
-#: converse.js:2708
+#: converse.js:2714
msgid "An error occurred while trying to save the form."
-#: converse.js:2755
+#: converse.js:2761
msgid "This chatroom requires a password"
-#: converse.js:2756
+#: converse.js:2762
msgid "Password: "
-#: converse.js:2757
+#: converse.js:2763
msgid "Submit"
-#: converse.js:2792
+#: converse.js:2798
msgid "This room is not anonymous"
-#: converse.js:2793
+#: converse.js:2799
msgid "This room now shows unavailable members"
-#: converse.js:2794
+#: converse.js:2800
msgid "This room does not show unavailable members"
-#: converse.js:2795
+#: converse.js:2801
msgid "Non-privacy-related room configuration has changed"
-#: converse.js:2796
+#: converse.js:2802
msgid "Room logging is now enabled"
-#: converse.js:2797
+#: converse.js:2803
msgid "Room logging is now disabled"
-#: converse.js:2798
+#: converse.js:2804
msgid "This room is now non-anonymous"
-#: converse.js:2799
+#: converse.js:2805
msgid "This room is now semi-anonymous"
-#: converse.js:2800
+#: converse.js:2806
msgid "This room is now fully-anonymous"
-#: converse.js:2801
+#: converse.js:2807
msgid "A new room has been created"
-#: converse.js:2805 converse.js:2904
+#: converse.js:2811 converse.js:2910
msgid "You have been banned from this room"
-#: converse.js:2806
+#: converse.js:2812
msgid "You have been kicked from this room"
-#: converse.js:2807
+#: converse.js:2813
msgid "You have been removed from this room because of an affiliation change"
-#: converse.js:2808
+#: converse.js:2814
"You have been removed from this room because the room has changed to members-"
"only and you're not a member"
-#: converse.js:2809
+#: converse.js:2815
"You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down."
-#: converse.js:2823
+#: converse.js:2829
msgid "<strong>%1$s</strong> has been banned"
-#: converse.js:2824
+#: converse.js:2830
msgid "<strong>%1$s</strong>'s nickname has changed"
-#: converse.js:2825
+#: converse.js:2831
msgid "<strong>%1$s</strong> has been kicked out"
-#: converse.js:2826
+#: converse.js:2832
msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
-#: converse.js:2827
+#: converse.js:2833
msgid "<strong>%1$s</strong> has been removed for not being a member"
-#: converse.js:2831
+#: converse.js:2837
msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>"
-#: converse.js:2832
+#: converse.js:2838
msgid "Your nickname has been changed to: <strong>%1$s</strong>"
-#: converse.js:2880 converse.js:2890
+#: converse.js:2886 converse.js:2896
msgid "The reason given is: \""
-#: converse.js:2902
+#: converse.js:2908
msgid "You are not on the member list of this room"
-#: converse.js:2908
+#: converse.js:2914
msgid "No nickname was specified"
-#: converse.js:2912
+#: converse.js:2918
msgid "You are not allowed to create new rooms"
-#: converse.js:2914
+#: converse.js:2920
msgid "Your nickname doesn't conform to this room's policies"
-#: converse.js:2918
+#: converse.js:2924
msgid "Your nickname is already taken"
-#: converse.js:2920
+#: converse.js:2926
msgid "This room does not (yet) exist"
-#: converse.js:2922
+#: converse.js:2928
msgid "This room has reached it's maximum number of occupants"
-#: converse.js:2966
+#: converse.js:2972
msgid "Topic set by %1$s to: %2$s"
-#: converse.js:3044
+#: converse.js:3050
msgid "%1$s has invited you to join a chat room: %2$s"
-#: converse.js:3048
+#: converse.js:3054
"%1$s has invited you to join a chat room: %2$s, and left the following "
"reason: \"%3$s\""
-#: converse.js:3314
+#: converse.js:3320
msgid "Click to restore this chat"
-#: converse.js:3456
+#: converse.js:3462
msgid "Minimized"
-#: converse.js:3557 converse.js:3575
+#: converse.js:3563 converse.js:3581
msgid "Click to remove this contact"
-#: converse.js:3564
+#: converse.js:3570
msgid "Click to accept this contact request"
-#: converse.js:3565
+#: converse.js:3571
msgid "Click to decline this contact request"
-#: converse.js:3574
+#: converse.js:3580
msgid "Click to chat with this contact"
-#: converse.js:3589
+#: converse.js:3597
msgid "Are you sure you want to remove this contact?"
-#: converse.js:3612
+#: converse.js:3620
msgid "Are you sure you want to decline this contact request?"
-#: converse.js:4138
+#: converse.js:4146
msgid "Type to filter"
#. For translators: the %1$s part gets replaced with the status
#. Example, I am online
-#: converse.js:4566 converse.js:4639
+#: converse.js:4574 converse.js:4647
msgid "I am %1$s"
-#: converse.js:4568 converse.js:4644
+#: converse.js:4576 converse.js:4652
msgid "Click here to write a custom status message"
-#: converse.js:4569 converse.js:4645
+#: converse.js:4577 converse.js:4653
msgid "Click to change your chat status"
-#: converse.js:4594
+#: converse.js:4602
msgid "Custom status"
-#: converse.js:4622 converse.js:4630
+#: converse.js:4630 converse.js:4638
msgid "online"
-#: converse.js:4624
+#: converse.js:4632
msgid "busy"
-#: converse.js:4626
+#: converse.js:4634
msgid "away for long"
-#: converse.js:4628
+#: converse.js:4636
msgid "away"
-#: converse.js:4745
+#: converse.js:4753
msgid "Your XMPP provider's domain name:"
-#: converse.js:4746
+#: converse.js:4754
msgid "Fetch registration form"
-#: converse.js:4747
+#: converse.js:4755
msgid "Tip: A list of public XMPP providers is available"
-#: converse.js:4748
+#: converse.js:4756
msgid "here"
-#: converse.js:4753 converse.js:4962
+#: converse.js:4761 converse.js:4970
msgid "Register"
-#: converse.js:4800
+#: converse.js:4808
"Sorry, the given provider does not support in band account registration. "
"Please try with a different provider."
-#: converse.js:4861
+#: converse.js:4869
msgid "Requesting a registration form from the XMPP server"
-#: converse.js:4896
+#: converse.js:4904
"Something went wrong while establishing a connection with \"%1$s\". Are you "
"sure it exists?"
-#: converse.js:4915
+#: converse.js:4923
msgid "Now logging you in"
-#: converse.js:4919
+#: converse.js:4927
msgid "Registered successfully"
-#: converse.js:4967
+#: converse.js:4975
msgid "Return"
-#: converse.js:4999
+#: converse.js:5007
msgid "The provider rejected your registration attempt. "
-#: converse.js:5144
+#: converse.js:5152
msgid "XMPP Username:"
-#: converse.js:5145
+#: converse.js:5153
msgid "Password:"
-#: converse.js:5146
+#: converse.js:5154
msgid "Log In"
-#: converse.js:5153
+#: converse.js:5161
msgid "Sign in"
-#: converse.js:5227
+#: converse.js:5235
msgid "Toggle chat"
@@ -7,7 +7,7 @@ msgid ""
"Project-Id-Version: Converse.js 0.4\n"
+"POT-Creation-Date: 2015-03-26 09:46+0100\n"
"PO-Revision-Date: 2013-09-15 22:03+0200\n"
"Last-Translator: JC Brand <jc@opkode.com>\n"
"Language-Team: German\n"
@@ -20,113 +20,113 @@ msgstr ""
"lang: de\n"
"plural_forms: nplurals=2; plural=(n != 1);\n"
msgstr "Dieser Kontakt ist beschäfticht"
msgstr "Dieser Kontakt ist online"
msgstr "Dieser Kontakt ist offline"
msgstr "Dieser Kontakt ist nicht verfügbar"
msgstr "Dieser Kontakt is für längere Zeit abwesend"
msgstr "Dieser Kontakt ist abwesend"
#, fuzzy
msgstr "Hier klicken um diesen Kontakt zu entfernen"
msgstr "Meine Kontakte"
msgstr "Unbestätigte Kontakte"
msgstr "Kontaktanfragen"
msgstr "Kontakte"
msgstr "Verbindungsaufbau …"
msgstr "Fehler"
msgstr "Authentifizierung"
msgstr "Authentifizierung gescheitert"
@@ -136,71 +136,71 @@ msgid ""
msgstr "Persönliche Nachricht"
msgstr "Sie sind nicht auf der Mitgliederliste dieses Raums"
msgstr "Ich"
msgstr "%1$s tippt"
msgstr "Dieses Menü anzeigen"
msgstr "In der dritten Person schreiben"
msgstr "Nachrichten entfernen"
@@ -213,7 +213,7 @@ msgid ""
@@ -222,435 +222,435 @@ msgid ""
msgstr "beschäfticht"
msgstr "Online"
msgstr "Beschäfticht"
msgstr "Abwesend"
msgstr "Abgemeldet"
msgstr "Anmelden"
msgstr "Name des Kontakts"
msgstr "Suche"
msgstr "Benutzername"
msgstr "Hinzufügen"
msgstr "Klicken Sie, um einen neuen Kontakt hinzuzufügen"
msgstr "Kontakte hinzufügen"
msgstr "Keine Benutzer gefunden"
msgstr "Hier klicken um als Kontakt hinzuzufügen"
msgstr "Raumname"
msgstr "Spitzname"
msgstr "Server"
msgstr "Beitreten"
msgstr "Räume anzeigen"
msgstr "Räume"
msgstr "Keine Räume auf %1$s"
msgstr "Räume auf %1$s"
msgstr "Hier klicken um diesen Raum zu öffnen"
msgstr "Mehr Information über diesen Raum zeigen"
msgstr "Beschreibung"
msgstr "Teilnehmer"
msgstr "Funktionen:"
msgstr "Authentifizierung erforderlich"
msgstr "Versteckt"
msgstr "Einladung erforderlich"
msgstr "Moderiert"
msgstr "Nicht anonym"
msgstr "Offener Raum"
msgstr "Dauerhafter Raum"
msgstr "Öffentlich"
msgstr "Teils anonym"
msgstr "Vorübergehender Raum"
msgstr "Unmoderiert"
msgstr "Dieser Benutzer ist ein Moderator"
msgstr "Dieser Benutzer kann Nachrichten in diesem Raum verschicken"
msgstr "Dieser Benutzer kann keine Nachrichten in diesem Raum verschicken"
msgstr "Nachricht"
msgstr "Verbanne einen Benutzer aus dem Raum."
msgstr "Werfe einen Benutzer aus dem Raum."
msgstr "Chatraum Thema festlegen"
msgstr "Speichern"
msgstr "Abbrechen"
msgstr "Beim Speichern der Formular is ein Fehler aufgetreten."
msgstr "Passwort wird für die Anmeldung benötigt."
msgstr "Passwort: "
msgstr "Einreichen"
msgstr "Dieser Raum ist nicht anonym"
msgstr "Dieser Raum zeigt jetzt unferfügbare Mitglieder"
msgstr "Dieser Raum zeigt nicht unverfügbare Mitglieder"
"Die Konfiguration, die nicht auf die Privatsphäre bezogen ist, hat sich "
"geändert"
msgstr "Zukünftige Nachrichten dieses Raums werden protokolliert."
msgstr "Zukünftige Nachrichten dieses Raums werden nicht protokolliert."
msgstr "Dieser Raum ist jetzt nicht anonym"
msgstr "Dieser Raum ist jetzt teils anonym"
msgstr "Dieser Raum ist jetzt anonym"
msgstr "Einen neuen Raum ist erstellen"
msgstr "Sie sind aus diesem Raum verbannt worden"
msgstr "Sie wurden aus diesem Raum hinausgeworfen"
msgstr "Sie wurden wegen einer Zugehörigkeitsänderung entfernt"
msgstr "Sie wurden aus diesem Raum entfernt da Sie kein Mitglied sind."
@@ -658,229 +658,229 @@ msgstr ""
"Sie werden aus diesem Raum entfernt da der MUC (Muli-user chat) Dienst "
"gerade abgeschalten wird."
msgstr "<strong>%1$s</strong> ist verbannt"
msgstr "<strong>%1$s</strong> ist hinausgeworfen"
"<strong>%1$s</strong> wurde wegen einer Zugehörigkeitsänderung entfernt"
msgstr "<strong>%1$s</strong> ist kein Mitglied und wurde daher entfernt"
msgstr "Spitzname festgelegen"
msgstr "Kein Spitzname festgelegt"
msgstr "Es ist Ihnen nicht erlaubt, neue Räume anzulegen"
msgstr "Ungültiger Spitzname"
msgstr "Ihre Spitzname existiert bereits."
msgstr "Dieser Raum existiert (noch) nicht"
msgstr "Dieser Raum hat die maximale Mitgliederanzahl erreicht"
msgstr "%1$s hat das Thema zu \"%2$s\" abgeändert"
msgstr "Hier klicken um mit diesem Kontakt zu chatten"
msgstr "Ich bin %1$s"
msgstr "Klicken Sie hier, um ihrer Status-Nachricht to ändern"
msgstr "Klicken Sie, um ihrer Status to ändern"
msgstr "Status-Nachricht"
msgstr "online"
msgstr "länger abwesend"
msgstr "abwesend"
msgstr "XMPP/Jabber Benutzername"
msgstr "Passwort:"
"PO-Revision-Date: 2013-09-15 22:15+0200\n"
"Language-Team: English\n"
@@ -17,113 +17,113 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgstr "unencrypted"
msgstr "unverified"
msgstr "verified"
msgstr "finished"
msgstr "Click to remove this contact"
msgstr "My contacts"
msgstr "Pending contacts"
msgstr "Contact requests"
msgstr "Contacts"
msgstr "Connecting"
msgstr "Error"
msgstr "Authenticating"
msgstr "Authentication Failed"
msgstr "Re-establishing encrypted session"
@@ -133,68 +133,68 @@ msgid ""
msgstr "Personal message"
msgstr "You are not on the member list of this room"
msgstr "Show this menu"
msgstr "Write in the third person"
msgstr "Remove messages"
@@ -207,7 +207,7 @@ msgid ""
@@ -216,426 +216,426 @@ msgid ""
msgstr "busy"
msgstr "Busy"
msgstr "Away"
msgstr "Offline"
msgstr "Log In"
msgstr "Contact name"
msgstr "Search"
msgstr "Contact username"
msgstr "Add"
msgstr "Click to add new chat contacts"
msgstr "Add a contact"
msgstr "No users found"
msgstr "Click to add as a chat contact"
msgstr "Room name"
msgstr "Nickname"
msgstr "Join"
msgstr "Show rooms"
msgstr "Rooms"
msgstr "No rooms on %1$s"
msgstr "Rooms on %1$s"
msgstr "Click to open this room"
msgstr "Show more information on this room"
msgstr "Description:"
msgstr "Occupants:"
msgstr "Features:"
msgstr "Requires authentication"
msgstr "Hidden"
msgstr "Requires an invitation"
msgstr "Moderated"
msgstr "Non-anonymous"
msgstr "Open room"
msgstr "Permanent room"
msgstr "Public"
msgstr "Semi-anonymous"
msgstr "Temporary room"
msgstr "Unmoderated"
msgstr "This user is a moderator"
msgstr "This user can send messages in this room"
msgstr "This user can NOT send messages in this room"
msgstr "Message"
msgstr "Ban user from chatroom"
msgstr "Kick user from chatroom"
msgstr "Set chatroom topic"
msgstr "Save"
msgstr "Cancel"
msgstr "An error occurred while trying to save the form."
msgstr "This chatroom requires a password"
msgstr "Password: "
msgstr "Submit"
msgstr "This room is not anonymous"
msgstr "This room now shows unavailable members"
msgstr "This room does not show unavailable members"
msgstr "Non-privacy-related room configuration has changed"
msgstr "Room logging is now enabled"
msgstr "Room logging is now disabled"
msgstr "This room is now non-anonymous"
msgstr "This room is now semi-anonymous"
msgstr "This room is now fully-anonymous"
msgstr "A new room has been created"
msgstr "You have been banned from this room"
msgstr "You have been kicked from this room"
msgstr "You have been removed from this room because of an affiliation change"
@@ -643,7 +643,7 @@ msgstr ""
@@ -651,229 +651,229 @@ msgstr ""
msgstr "<strong>%1$s</strong> has been banned"
msgstr "<strong>%1$s</strong> has been kicked out"
"<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr "<strong>%1$s</strong> has been removed for not being a member"
msgstr "Your nickname has been changed"
msgstr "No nickname was specified"
msgstr "You are not allowed to create new rooms"
msgstr "Your nickname doesn't conform to this room's policies"
msgstr "Your nickname is already taken"
msgstr "This room does not (yet) exist"
msgstr "This room has reached it's maximum number of occupants"
msgstr "Topic set by %1$s to: %2$s"
msgstr "Click to chat with this contact"
msgstr "I am %1$s"
msgstr "Click here to write a custom status message"
msgstr "Click to change your chat status"
msgstr "Custom status"
msgstr "away for long"
msgstr "away"
msgstr "XMPP/Jabber Username:"
msgstr "Password:"
msgstr "Sign in"
@@ -6,7 +6,7 @@ msgid ""
"PO-Revision-Date: 2013-09-15 21:59+0200\n"
"Last-Translator: Javier Lopez <m@javier.io>\n"
"Language-Team: ES <LL@li.org>\n"
@@ -25,112 +25,112 @@ msgstr ""
"X-Is-Fallback-For: es-ar es-bo es-cl es-co es-cr es-do es-ec es-es es-sv es-"
"gt es-hn es-mx es-ni es-pa es-py es-pe es-pr es-us es-uy es-ve\n"
msgstr "texto plano"
msgstr "sin verificar"
msgstr "verificado"
msgstr "finalizado"
msgstr "Este contacto está ocupado"
msgstr "Este contacto está en línea"
msgstr "Este contacto está desconectado"
msgstr "Este contacto no está disponible"
msgstr "Este contacto está ausente por un largo periodo de tiempo"
msgstr "Este contacto está ausente"
msgstr "Haga click para eliminar este contacto"
msgstr "Mis contactos"
msgstr "Contactos pendientes"
msgstr "Solicitudes de contacto"
msgstr "Contactos"
msgstr "Reconectando"
msgstr "Conectando"
msgstr "Autenticando"
msgstr "La autenticación falló"
msgstr "Re-estableciendo sesión cifrada"
msgstr "Generando llave privada"
msgstr "Su navegador podría dejar de responder por un momento"
@@ -146,69 +146,69 @@ msgstr ""
msgstr "No se pudo verificar la identidad de este usuario"
msgstr "Intercambiando llaves privadas"
msgstr "Mensaje personal"
msgstr "¿Está seguro de querer limpiar los mensajes de esta sala?"
msgstr "yo"
msgstr "Mostrar este menú"
msgstr "Escribir en tercera persona"
msgstr "Eliminar mensajes"
msgstr "¿Está seguro de querer limpiar los mensajes de esta conversación?"
msgstr "Su mensaje no se pudo enviar"
msgstr "Se recibío un mensaje sin cifrar"
msgstr "Se recibío un mensaje cifrado corrupto"
@@ -229,7 +229,7 @@ msgstr ""
"Después de confirmar los identificadores haga click en OK, cancele si no "
"concuerdan."
@@ -243,33 +243,33 @@ msgstr ""
"La pregunta que responda se le hará a su contacto, si las respuestas "
"concuerdan (cuidando mayúsculas/minúsculas) su identidad quedará verificada."
msgstr "Introduzca su pregunta de seguridad"
msgstr "Introduzca la respuesta a su pregunta de seguridad"
msgstr "Esquema de autenticación inválido"
msgstr "ocupado"
msgstr "Sus mensajes han dejado de cifrarse"
@@ -278,405 +278,405 @@ msgstr ""
"Sus mensajes están ahora cifrados pero la identidad de su contacto no ha "
"sido verificada."
msgstr "La identidad de su contacto ha sido confirmada"
msgstr "Su contacto finalizó la sesión cifrada, debería hacer lo mismo"
"Sus mensajes no están cifrados. Haga click aquí para habilitar el cifrado OTR"
"Sus mensajes están cifrados pero la identidad de su contacto no ha sido "
"verificada"
msgstr "Sus mensajes están cifrados y su contacto ha sido verificado"
msgstr "Finalizar sesión cifrada"
msgstr "Actualizar sesión cifrada"
msgstr "Iniciar sesión cifrada"
msgstr "Verificar con identificadores"
msgstr "Verificar con SMP"
msgstr "¿Qué es esto?"
msgstr "En línea"
msgstr "Ocupado"
msgstr "Ausente"
msgstr "Desconectado"
msgstr "Iniciar sesión"
msgstr "Nombre de contacto"
msgstr "Búsqueda"
msgstr "Nombre de usuario de contacto"
msgstr "Agregar"
msgstr "Haga click para agregar nuevos contactos al chat"
msgstr "Agregar un contacto"
msgstr "Sin usuarios encontrados"
msgstr "Haga click para agregar como contacto de chat"
msgstr "Nombre de sala"
msgstr "Apodo"
msgstr "Servidor"
msgstr "Unirse"
msgstr "Mostrar salas"
msgstr "Salas"
msgstr "Sin salas en %1$s"
msgstr "Salas en %1$s"
msgstr "Haga click para abrir esta sala"
msgstr "Mostrar más información en esta sala"
msgstr "Descripción"
msgstr "Ocupantes:"
msgstr "Características:"
msgstr "Autenticación requerida"
msgstr "Oculto"
msgstr "Requiere una invitación"
msgstr "Moderado"
msgstr "No anónimo"
msgstr "Abrir sala"
msgstr "Sala permanente"
msgstr "Pública"
msgstr "Semi anónimo"
msgstr "Sala temporal"
msgstr "Sin moderar"
msgstr "Este usuario es un moderador"
msgstr "Este usuario puede enviar mensajes en esta sala"
msgstr "Este usuario NO puede enviar mensajes en esta"
msgstr "Mensaje"
msgstr "Prohibir usuario de sala de chat."
msgstr "Expulsar usuario de sala de chat."
msgstr "Usted no está en la lista de miembros de esta sala"
msgstr "Definir tema de sala de chat"
msgstr "Guardar"
msgstr "Cancelar"
msgstr "Un error ocurrío mientras se guardaba el formulario."
msgstr "Esta sala de chat requiere una contraseña."
msgstr "Contraseña: "
msgstr "Enviar"
msgstr "Esta sala no es para usuarios anónimos"
msgstr "Esta sala ahora muestra los miembros no disponibles"
msgstr "Esta sala no muestra los miembros no disponibles"
"Una configuración de la sala no relacionada con la privacidad ha sido "
"cambiada"
msgstr "El registro de la sala ahora está habilitado"
msgstr "El registro de la sala ahora está deshabilitado"
msgstr "Esta sala ahora es pública"
msgstr "Esta sala ahora es semi-anónima"
msgstr "Esta sala ahora es completamente anónima"
msgstr "Una nueva sala ha sido creada"
msgstr "Usted ha sido bloqueado de esta sala"
msgstr "Usted ha sido expulsado de esta sala"
msgstr "Usted ha sido eliminado de esta sala debido a un cambio de afiliación"
@@ -684,7 +684,7 @@ msgstr ""
"Usted ha sido eliminado de esta sala debido a que la sala cambio su "
"configuración a solo-miembros y usted no es un miembro"
@@ -692,227 +692,227 @@ msgstr ""
"Usted ha sido eliminado de esta sala debido a que el servicio MUC (Multi-"
"user chat) está deshabilitado."
msgstr "<strong>%1$s</strong> ha sido bloqueado"
msgstr "<strong>%1$s</strong> ha sido expulsado"
"<strong>%1$s</strong> ha sido eliminado debido a un cambio de afiliación"
msgstr "<strong>%1$s</strong> ha sido eliminado debido a que no es miembro"
msgstr "Su apodo ha sido cambiado"
msgstr "Sin apodo especificado"
msgstr "Usted no esta autorizado para crear nuevas salas"
msgstr "Su apodo no se ajusta a la política de esta sala"
msgstr "Su apodo ya ha sido tomando por otro usuario"
msgstr "Esta sala (aún) no existe"
msgstr "Esta sala ha alcanzado su número máximo de ocupantes"
msgstr "Tema fijado por %1$s a: %2$s"
msgstr "Minimizado"
msgstr "Haga click para conversar con este contacto"
msgstr "¿Esta seguro de querer eliminar este contacto?"
msgstr "Estoy %1$s"
msgstr "Haga click para escribir un mensaje de estatus personalizado"
msgstr "Haga click para cambiar su estatus de chat"
msgstr "Personalizar estatus"
msgstr "en línea"
msgstr "ausente por mucho tiempo"
msgstr "ausente"
msgstr "Nombre de usuario XMPP/Jabber"
msgstr "Contraseña:"
msgstr "Registrar"
msgstr "Chat"
@@ -5,7 +5,7 @@ msgid ""
"PO-Revision-Date: 2013-09-15 21:58+0200\n"
"Language-Team: FR <LL@li.org>\n"
"Language: fr\n"
@@ -20,114 +20,114 @@ msgstr ""
"Domain: converse\n"
"domain: converse\n"
msgstr "Ce salon affiche maintenant des membres indisponibles"
msgstr "Cliquez pour supprimer ce contact"
msgstr "Mes contacts"
msgstr "Contacts en attente"
msgstr "Demandes de contacts"
msgstr "Connection"
msgstr "Erreur"
msgstr "Authentification"
msgstr "L'authentification a échoué"
@@ -137,68 +137,68 @@ msgid ""
msgstr "Message personnel"
msgstr "Vous n'êtes pas dans la liste des membres de ce salon"
msgstr "Afficher ce menu"
msgstr "Écrire à la troisième personne"
msgstr "Effacer les messages"
@@ -211,7 +211,7 @@ msgid ""
@@ -220,426 +220,426 @@ msgid ""
msgstr "occupé"
msgstr "En ligne"
msgstr "Occupé"
msgstr "Absent"
msgstr "Déconnecté"
msgstr "Se connecter"
msgstr "Nom du contact"
msgstr "Rechercher"
msgstr "Ajouter"
msgstr "Cliquez pour ajouter de nouveaux contacts"
msgstr "Ajouter un contact"
msgstr "Aucun utilisateur trouvé"
msgstr "Cliquer pour ajouter aux contacts de chat"
msgstr "Numéro de salon"
msgstr "Alias"
msgstr "Serveur"
msgstr "Rejoindre"
msgstr "Afficher les salons"
msgstr "Salons"
msgstr "Aucun salon dans %1$s"
msgstr "Salons dans %1$s"
msgstr "Cliquer pour ouvrir ce salon"
msgstr "Afficher davantage d'informations sur ce salon"
msgstr "Description :"
msgstr "Participants :"
msgstr "Caractéristiques :"
msgstr "Nécessite une authentification"
msgstr "Masqué"
msgstr "Nécessite une invitation"
msgstr "Modéré"
msgstr "Non-anonyme"
msgstr "Ouvrir un salon"
msgstr "Salon permanent"
msgstr "Semi-anonyme"
msgstr "Salon temporaire"
msgstr "Non modéré"
msgstr "Cet utilisateur est modérateur"
msgstr "Cet utilisateur peut envoyer des messages dans ce salon"
msgstr "Cet utilisateur ne peut PAS envoyer de messages dans ce salon"
msgstr "Bannir l'utilisateur du salon."
msgstr "Expulser l'utilisateur du salon."
msgstr "Indiquer le sujet du salon"
msgstr "Enregistrer"
msgstr "Annuler"
msgstr "Une erreur est survenue lors de l'enregistrement du formulaire."
msgstr "Ce salon nécessite un mot de passe."
msgstr "Mot de passe : "
msgstr "Soumettre"
msgstr "Ce salon n'est pas anonyme"
msgstr "Ce salon n'affiche pas les membres indisponibles"
msgstr "Les paramètres du salon non liés à la confidentialité ont été modifiés"
msgstr "Le logging du salon est activé"
msgstr "Le logging du salon est désactivé"
msgstr "Ce salon est maintenant non-anonyme"
msgstr "Ce salon est maintenant semi-anonyme"
msgstr "Ce salon est maintenant entièrement anonyme"
msgstr "Un nouveau salon a été créé"
msgstr "Vous avez été banni de ce salon"
msgstr "Vous avez été expulsé de ce salon"
msgstr "Vous avez été retiré de ce salon du fait d'un changement d'affiliation"
@@ -647,7 +647,7 @@ msgstr ""
"Vous avez été retiré de ce salon parce que ce salon est devenu réservé aux "
"membres et vous n'êtes pas membre"
@@ -655,229 +655,229 @@ msgstr ""
"Vous avez été retiré de ce salon parce que le service de chat multi-"
"utilisateur a été désactivé."
msgstr "<strong>%1$s</strong> a été banni"
msgstr "<strong>%1$s</strong> a été expulsé"
"<strong>%1$s</strong> a été supprimé à cause d'un changement d'affiliation"
msgstr "<strong>%1$s</strong> a été supprimé car il n'est pas membre"
msgstr "Votre alias a été modifié"
msgstr "Aucun alias n'a été indiqué"
msgstr "Vous n'êtes pas autorisé à créer des salons"
msgstr "Votre alias n'est pas conforme à la politique de ce salon"
msgstr "Votre alias est déjà utilisé"
msgstr "Ce salon n'existe pas encore"
msgstr "Ce salon a atteint la limite maximale d'occupants"
msgstr "Le sujet '%1$s' a été défini par %2$s"
msgstr "Cliquez pour discuter avec ce contact"
msgstr "Je suis %1$s"
msgstr "Cliquez ici pour indiquer votre statut personnel"
msgstr "Cliquez pour changer votre statut"
msgstr "Statut personnel"
msgstr "en ligne"
msgstr "absent pour une longue durée"
msgstr "absent"
msgstr "Nom d'utilisateur XMPP/Jabber"
msgstr "Mot de passe :"
msgstr "S'inscrire"
"Project-Id-Version: Converse.js 0.8.8\n"
"PO-Revision-Date: 2015-02-08 06:07+0200\n"
"Last-Translator: GreenLunar <https://github.com/GreenLunar>\n"
"Language-Team: Rahut <http://sourceforge.net/projects/rahut/>\n"
"X-Language: he\n"
"X-Source-Language: en\n"
msgstr "לא מוצפנת"
msgstr "לא מאומתת"
msgstr "מאומתת"
msgstr "מוגמרת"
# איש קשר זה הינו
msgstr "איש קשר זה עסוק"
msgstr "איש קשר זה מקוון"
# איש קשר זה אינו
msgstr "איש קשר זה לא מקוון"
msgstr "איש קשר זה לא זמין"
msgstr "איש קשר זה נעדר למשך זמן ממושך"
msgstr "איש קשר זה הינו נעדר"
msgstr "לחץ כדי להסתיר את אנשי קשר אלה"
msgstr "האנשי קשר שלי"
msgstr "אנשי קשר ממתינים"
msgstr "בקשות איש קשר"
msgstr "ללא קבוצה"
msgstr "אנשי קשר"
msgstr "קבוצות"
msgstr "כעת מתחבר"
msgstr "שגיאה"
msgstr "כעת מאמת"
msgstr "אימות נכשל"
msgstr "בסס מחדש ישיבה מוצפנת"
msgstr "כעת מפיק מפתח פרטי."
msgstr "הדפדפן שלך עשוי שלא להגיב."
@@ -141,68 +141,68 @@ msgstr ""
msgstr "לא היתה אפשרות לאמת את זהות משתמש זה."
msgstr "מחליף מפתח פרטי עם איש קשר."
msgstr "הודעה אישית"
msgstr "האם אתה בטוח כי ברצונך לטהר את ההודעות מתוך חדר זה?"
msgstr "אני"
msgstr "מקליד/ה כעת"
msgstr "חדל/ה מלהקליד"
msgstr "הצג את תפריט זה"
msgstr "כתוב בגוף השלישי"
msgstr "הסר הודעות"
msgstr "האם אתה בטוח כי ברצונך לטהר את ההודעות מתוך תיבת שיחה זה?"
msgstr "ההודעה שלך לא היתה יכולה להישלח"
msgstr "אנחנו קיבלנו הודעה לא מוצפנת"
msgstr "אנחנו קיבלנו הודעה מוצפנת לא קריאה"
@@ -223,7 +223,7 @@ msgstr ""
"היה ואימתת כי טביעות האצבע תואמות, לחץ אישור (OK), אחרת לחץ ביטול (Cancel)."
# הקצה השני
@@ -236,429 +236,429 @@ msgstr ""
"האיש קשר יתבקש עובר זאת לאותה שאלת אבטחה ואם אלו יקלידו את אותה התשובה "
"במדויק (case sensitive), זהותם תאומת."
msgstr "מהי שאלת האבטחה שלך?"
msgstr "מהי התשובה לשאלת האבטחה?"
# תרשים
msgstr "סופקה סכימת אימות שגויה"
msgstr "עסוק"
msgstr "ההודעות שלך אינן מוצפנות עוד"
msgstr "ההודעות שלך מוצפנות כעת אך זהות האיש קשר שלך טרם אומתה."
msgstr "זהות האיש קשר שלך אומתה."
msgstr "האיש קשר סיים הצפנה בקצה שלהם, עליך לעשות זאת גם כן."
msgstr "ההודעות שלך אינן מוצפנות. לחץ כאן כדי לאפשר OTR."
msgstr "ההודעות שלך מוצפנות כעת, אך האיש קשר שלך טרם אומת."
msgstr "ההודעות שלך מוצפנות כעת והאיש קשר שלך אומת."
msgstr "האיש קשר סגר את קצה ישיבה פרטית שלהם, עליך לעשות זאת גם כן"
msgstr "טהר את כל ההודעות"
msgstr "סיים ישיבה מוצפנת"
msgstr "הסתר רשימת משתתפים"
msgstr "רענן ישיבה מוצפנת"
msgstr "התחל שיחה"
msgstr "התחל ישיבה מוצפנת"
msgstr "אמת בעזרת טביעות אצבע"
msgstr "אמת בעזרת SMP"
msgstr "מה זה?"
msgstr "מקוון"
msgstr "נעדר"
msgstr "בלתי מקוון"
msgstr "התנתקות"
msgstr "שם איש קשר"
msgstr "חיפוש"
msgstr "שם משתמש איש קשר"
msgstr "הוסף"
msgstr "לחץ כדי להוסיף אנשי קשר שיחה חדשים"
msgstr "הוסף איש קשר"
msgstr "לא נמצאו משתמשים"
msgstr "לחץ כדי להוסיף בתור איש קשר שיחה"
msgstr "שם חדר"
msgstr "שם כינוי"
msgstr "שרת"
msgstr "הצטרף"
msgstr "הצג חדרים"
msgstr "חדרים"
msgstr "אין חדרים על %1$s"
msgstr "חדרים על %1$s"
msgstr "לחץ כדי לפתוח את חדר זה"
msgstr "הצג עוד מידע אודות חדר זה"
msgstr "תיאור:"
msgstr "נוכחים:"
msgstr "תכונות:"
msgstr "מצריך אישור"
msgstr "נסתר"
msgstr "מצריך הזמנה"
msgstr "מבוקר"
msgstr "לא אנונימי"
msgstr "חדר פתוח"
msgstr "חדר צמיתה"
msgstr "פומבי"
msgstr "אנונימי למחצה"
msgstr "חדר זמני"
msgstr "לא מבוקר"
msgstr "משתמש זה הינו אחראי"
msgstr "משתמש זה מסוגל לשלוח הודעות בתוך חדר זה"
msgstr "משתמש זה ﬥﬡ מסוגל לשלוח הודעות בתוך חדר זה"
msgstr "הזמנה..."
msgstr "נוכחים"
msgstr "אתה עומד להזמין את %1$s לחדר שיחה \"%2$s\". "
msgstr "באפשרותך להכליל הודעה, אשר מסבירה את הסיבה להזמנה."
msgstr "הודעה"
msgstr "שגיאה: לא היתה אפשרות לבצע פקודה"
msgstr "אסור משתמש מתוך חדר"
msgstr "בעט משתמש מתוך חדר"
msgstr "כתוב בגוף שלישי"
msgstr "הסר יכולת משתמש לפרסם הודעות"
msgstr "שנה את השם כינוי שלך"
msgstr "אינך ברשימת החברים של חדר זה"
msgstr "קבע נושא חדר"
msgstr "התר למשתמש מושתק לפרסם הודעות"
msgstr "שמור"
msgstr "ביטול"
msgstr "אירעה שגיאה במהלך ניסיון שמירת הטופס."
msgstr "חדר שיחה זה מצריך סיסמה"
msgstr "סיסמה: "
msgstr "שלח"
msgstr "חדר זה אינו אנונימי"
msgstr "חדר זה כעת מציג חברים לא זמינים"
msgstr "חדר זה לא מציג חברים לא זמינים"
msgstr "תצורת חדר אשר לא-קשורה-בפרטיות שונתה"
msgstr "יומן חדר הינו מופעל כעת"
msgstr "יומן חדר הינו מנוטרל כעת"
msgstr "חדר זה אינו אנונימי כעת"
msgstr "חדר זה הינו אנונימי למחצה כעת"
msgstr "חדר זה הינו אנונימי לחלוטין כעת"
msgstr "חדר חדש נוצר"
msgstr "נאסרת מתוך חדר זה"
msgstr "נבעטת מתוך חדר זה"
msgstr "הוסרת מתוך חדר זה משום שינוי שיוך"
msgstr "הוסרת מתוך חדר זה משום שהחדר שונה לחברים-בלבד ואינך במעמד של חבר"
@@ -666,224 +666,224 @@ msgstr ""
"הוסרת מתוך חדר זה משום ששירות שמ״מ (שיחה מרובת משתמשים) זה כעת מצוי בהליכי "
"סגירה."
msgstr "<strong>%1$s</strong> נאסר(ה)"
msgstr "השם כינוי של<strong>%1$s</strong> השתנה"
msgstr "<strong>%1$s</strong> נבעט(ה)"
msgstr "<strong>%1$s</strong> הוסרה(ה) משום שינוי שיוך"
# היותו(ה)
msgstr "<strong>%1$s</strong> הוסר(ה) משום אי הימצאות במסגרת מעמד של חבר"
msgstr "השם כינוי שלך שונה אוטומטית בשם: <strong>%1$s</strong>"
msgstr "השם כינוי שלך שונה בשם: <strong>%1$s</strong>"
msgstr "הסיבה שניתנה היא: \""
# אף שם כינוי לא צוין
msgstr "לא צוין שום שם כינוי"
# אינך מורשה
msgstr "אין לך רשות ליצור חדרים חדשים"
msgstr "השם כינוי שלך לא תואם את המדינויות של חדר זה"
# נלקח כבר
msgstr "השם כינוי שלך הינו תפוס"
msgstr "חדר זה (עדיין) לא קיים"
msgstr "חדר זה הגיע לסף הנוכחים המרבי שלו"
msgstr "נושא חדר זה נקבע על ידי %1$s אל: %2$s"
msgstr "%1$s הזמינך להצטרף לחדר שיחה: %2$s"
msgstr "%1$s הזמינך להצטרף לחדר שיחה: %2$s, והשאיר את הסיבה הבאה: \"%3$s\""
msgstr "לחץ כדי לשחזר את שיחה זו"
msgstr "ממוזער"
msgstr "לחץ כדי להסיר את איש קשר זה"
msgstr "לחץ כדי לקבל את בקשת איש קשר זה"
msgstr "לחץ כדי לסרב את בקשת איש קשר זה"
msgstr "לחץ כדי לשוחח עם איש קשר זה"
msgstr "האם אתה בטוח כי ברצונך להסיר את איש קשר זה?"
msgstr "האם אתה בטוח כי ברצונך לסרב את בקשת איש קשר זה?"
msgstr "הקלד כדי לסנן"
# אני במצב
msgstr "מצבי כעת הינו %1$s"
msgstr "לחץ כאן כדי לכתוב הודעת מצב מותאמת"
msgstr "לחץ כדי לשנות את הודעת השיחה שלך"
msgstr "מצב מותאם"
msgstr "נעדר לזמן מה"
msgstr "שם מתחם של ספק XMPP שלך:"
msgstr "משוך טופס הרשמה"
msgstr "טיפ: רשימה פומבית של ספקי XMPP הינה זמינה"
msgstr "כאן"
msgstr "הירשם"
msgstr "מצטערים, הספק שניתן לא תומך ברישום חשבונות in band. אנא נסה ספק אחר."
msgstr "כעת מבקש טופס הרשמה מתוך שרת XMPP"
msgstr "משהו השתבש במהלך ביסוס חיבור עם \"%1$s\". האם אתה בטוח כי זה קיים?"
msgstr "כעת מחבר אותך פנימה"
msgstr "נרשם בהצלחה"
msgstr "חזור"
msgstr "הספק דחה את ניסיון הרישום שלך. "
msgstr "שם משתמש XMPP:"
msgstr "סיסמה:"
msgstr "כניסה"
msgstr "התחברות"
msgstr "הפעל שיח"
"PO-Revision-Date: 2014-01-25 21:30+0700\n"
"Last-Translator: Priyadi Iman Nurcahyo <priyadi@priyadi.net>\n"
"Language-Team: Bahasa Indonesia\n"
"Content-Type: text/plain; charset=UTF-8\n"
msgstr "tak dienkripsi"
msgstr "tak diverifikasi"
msgstr "diverifikasi"
msgstr "selesai"
msgstr "Teman ini sedang sibuk"
msgstr "Teman ini terhubung"
msgstr "Teman ini tidak terhubung"
msgstr "Teman ini tidak tersedia"
msgstr "Teman ini tidak di tempat untuk waktu yang lama"
msgstr "Teman ini tidak di tempat"
msgstr "Klik untuk menghapus teman ini"
msgstr "Teman saya"
msgstr "Teman yang menunggu"
msgstr "Permintaan pertemanan"
msgstr "Teman"
msgstr "Menyambung"
msgstr "Kesalahan"
msgstr "Melakukan otentikasi"
msgstr "Otentikasi gagal"
msgstr "Menyambung kembali sesi terenkripsi"
@@ -140,69 +140,69 @@ msgstr ""
msgstr "Tak dapat melakukan verifikasi identitas pengguna ini."
msgstr "Pesan pribadi"
msgstr "Anda bukan anggota dari ruangan ini"
msgstr "saya"
msgstr "Tampilkan menu ini"
msgstr "Tulis ini menggunakan bahasa pihak ketiga"
msgstr "Hapus pesan"
msgstr "Pesan anda tak dapat dikirim"
msgstr "Kami menerima pesan terenkripsi"
msgstr "Kami menerima pesan terenkripsi yang gagal dibaca"
@@ -224,7 +224,7 @@ msgstr ""
"Jika anda bisa mengkonfirmasi sidik jadi cocok, klik Lanjutkan, jika tidak "
"klik Batal."
@@ -240,33 +240,33 @@ msgstr ""
"jawaban yang sama (huruf kapital diperhatikan), identitas mereka "
"diverifikasi."
msgstr "Apakah pertanyaan keamanan anda?"
msgstr "Apa jawaban dari pertanyaan keamanan tersebut?"
msgstr "Skema otentikasi salah"
msgstr "sibuk"
msgstr "Pesan anda tidak lagi terenkripsi"
@@ -275,34 +275,34 @@ msgstr ""
"Pesan anda sekarang terenkripsi, namun identitas teman anda belum dapat "
msgstr "Identitas teman anda telah diverifikasi."
"Teman anda menghentikan percakapan terenkripsi, anda sebaiknya melakukan hal "
"yang sama."
"Pesan anda tak terenkripsi. Klik di sini untuk menyalakan enkripsi OTR."
msgstr "Pesan anda terenkripsi, tetapi teman anda belum diverifikasi."
msgstr "Pesan anda terenkripsi dan teman anda telah diverifikasi."
@@ -311,369 +311,369 @@ msgstr ""
"Teman anda telah mematikan sesi terenkripsi, dan anda juga sebaiknya "
"melakukan hal yang sama"
msgstr "Sudahi percakapan terenkripsi"
msgstr "Setel ulang percakapan terenkripsi"
msgstr "Mulai sesi terenkripsi"
msgstr "Verifikasi menggunakan sidik jari"
msgstr "Verifikasi menggunakan SMP"
msgstr "Apakah ini?"
msgstr "Terhubung"
msgstr "Sibuk"
msgstr "Pergi"
msgstr "Tak Terhubung"
msgstr "Masuk"
msgstr "Nama teman"
msgstr "Cari"
msgstr "Username teman"
msgstr "Tambah"
msgstr "Klik untuk menambahkan teman baru"
msgstr "Tambah teman"
msgstr "Pengguna tak ditemukan"
msgstr "Klik untuk menambahkan sebagai teman"
msgstr "Nama ruangan"
msgstr "Nama panggilan"
msgstr "Ikuti"
msgstr "Perlihatkan ruangan"
msgstr "Ruangan"
msgstr "Tak ada ruangan di %1$s"
msgstr "Ruangan di %1$s"
msgstr "Klik untuk membuka ruangan ini"
msgstr "Tampilkan informasi ruangan ini"
msgstr "Keterangan:"
msgstr "Penghuni:"
msgstr "Fitur:"
msgstr "Membutuhkan otentikasi"
msgstr "Tersembunyi"
msgstr "Membutuhkan undangan"
msgstr "Dimoderasi"
msgstr "Tidak anonim"
msgstr "Ruangan terbuka"
msgstr "Ruangan permanen"
msgstr "Umum"
msgstr "Semi-anonim"
msgstr "Ruangan sementara"
msgstr "Tak dimoderasi"
msgstr "Pengguna ini adalah moderator"
msgstr "Pengguna ini dapat mengirim pesan di ruangan ini"
msgstr "Pengguna ini tak dapat mengirim pesan di ruangan ini"
msgstr "Pesan"
msgstr "Larang pengguna dari ruangan"
msgstr "Tendang pengguna dari ruangan"
msgstr "Setel topik ruangan"
msgstr "Simpan"
msgstr "Batal"
msgstr "Kesalahan terjadi saat menyimpan formulir ini."
msgstr "Ruangan ini membutuhkan kata sandi"
msgstr "Kata sandi: "
msgstr "Kirim"
msgstr "Ruangan ini tidak anonim"
msgstr "Ruangan ini menampilkan anggota yang tak tersedia"
msgstr "Ruangan ini tidak menampilkan anggota yang tak tersedia"
msgstr "Konfigurasi ruangan yang tak berhubungan dengan privasi telah diubah"
msgstr "Pencatatan di ruangan ini sekarang dinyalakan"
msgstr "Pencatatan di ruangan ini sekarang dimatikan"
msgstr "Ruangan ini sekarang tak-anonim"
msgstr "Ruangan ini sekarang semi-anonim"
msgstr "Ruangan ini sekarang anonim"
msgstr "Ruangan baru telah dibuat"
msgstr "Anda telah dicekal dari ruangan ini"
msgstr "Anda telah ditendang dari ruangan ini"
msgstr "Anda telah dihapus dari ruangan ini karena perubahan afiliasi"
@@ -681,7 +681,7 @@ msgstr ""
"Anda telah dihapus dari ruangan ini karena ruangan ini hanya terbuka untuk "
"anggota dan anda bukan anggota"
@@ -689,228 +689,228 @@ msgstr ""
"Anda telah dihapus dari ruangan ini karena layanan MUC (Multi-user chat) "
"telah dimatikan."
msgstr "<strong>%1$s</strong> telah dicekal"
msgstr "<strong>%1$s</strong> telah ditendang keluar"
msgstr "<strong>%1$s</strong> telah dihapus karena perubahan afiliasi"
msgstr "<strong>%1$s</strong> telah dihapus karena bukan anggota"
msgstr "Nama panggilan anda telah diubah"
msgstr "Nama panggilan belum ditentukan"
msgstr "Anda tak diizinkan untuk membuat ruangan baru"
msgstr "Nama panggilan anda tidak sesuai aturan ruangan ini"
msgstr "Nama panggilan anda telah digunakan orang lain"
msgstr "Ruangan ini belum dibuat"
msgstr "Ruangan ini telah mencapai jumlah penghuni maksimum"
msgstr "Topik diganti oleh %1$s menjadi: %2$s"
msgstr "Klik untuk mulai perbinjangan dengan teman ini"
msgstr "Saya %1$s"
msgstr "Klik untuk menulis status kustom"
msgstr "Klik untuk mengganti status"
msgstr "Status kustom"
msgstr "terhubung"
msgstr "lama tak di tempat"
msgstr "tak di tempat"
msgstr "Nama pengguna XMPP/Jabber:"
msgstr "Kata sandi:"
"PO-Revision-Date: 2013-09-15 22:00+0200\n"
"Last-Translator: Fabio Bas <ctrlaltca@gmail.com>\n"
"Language-Team: Italian\n"
"lang: it\n"
msgstr "Questa stanza mostra i membri non disponibili al momento"
msgstr "Clicca per rimuovere questo contatto"
msgstr "I miei contatti"
msgstr "Contatti in attesa"
msgstr "Richieste dei contatti"
msgstr "Contatti"
msgstr "Connessione in corso"
msgstr "Errore"
msgstr "Autenticazione in corso"
msgstr "Autenticazione fallita"
msgstr "Messaggio personale"
msgstr "Non sei nella lista dei membri di questa stanza"
msgstr "Mostra questo menu"
msgstr "Scrivi in terza persona"
msgstr "Rimuovi messaggi"
@@ -220,435 +220,435 @@ msgid ""
msgstr "occupato"
msgstr "In linea"
msgstr "Occupato"
msgstr "Assente"
msgstr "Non in linea"
msgstr "Entra"
msgstr "Nome del contatto"
msgstr "Cerca"
msgstr "Nome utente del contatto"
msgstr "Aggiungi"
msgstr "Clicca per aggiungere nuovi contatti alla chat"
msgstr "Aggiungi contatti"
msgstr "Nessun utente trovato"
msgstr "Clicca per aggiungere il contatto alla chat"
msgstr "Nome stanza"
msgstr "Soprannome"
msgstr "Mostra stanze"
msgstr "Stanze"
msgstr "Nessuna stanza su %1$s"
msgstr "Stanze su %1$s"
msgstr "Clicca per aprire questa stanza"
msgstr "Mostra più informazioni su questa stanza"
msgstr "Descrizione:"
msgstr "Utenti presenti:"
msgstr "Funzionalità:"
msgstr "Richiede autenticazione"
msgstr "Nascosta"
msgstr "Richiede un invito"
msgstr "Moderata"
msgstr "Non-anonima"
msgstr "Stanza aperta"
msgstr "Stanza permanente"
msgstr "Pubblica"
msgstr "Semi-anonima"
msgstr "Stanza temporanea"
msgstr "Non moderata"
msgstr "Questo utente è un moderatore"
msgstr "Questo utente può inviare messaggi in questa stanza"
msgstr "Questo utente NON può inviare messaggi in questa stanza"
msgstr "Messaggio"
msgstr "Bandisci utente dalla stanza"
msgstr "Espelli utente dalla stanza"
msgstr "Cambia oggetto della stanza"
msgstr "Salva"
msgstr "Annulla"
msgstr "Errore durante il salvataggio del modulo"
msgstr "Questa stanza richiede una password"
msgstr "Invia"
msgstr "Questa stanza non è anonima"
msgstr "Questa stanza non mostra i membri non disponibili"
"Una configurazione della stanza non legata alla privacy è stata modificata"
msgstr "La registrazione è abilitata nella stanza"
msgstr "La registrazione è disabilitata nella stanza"
msgstr "Questa stanza è non-anonima"
msgstr "Questa stanza è semi-anonima"
msgstr "Questa stanza è completamente-anonima"
msgstr "Una nuova stanza è stata creata"
msgstr "Sei stato bandito da questa stanza"
msgstr "Sei stato espulso da questa stanza"
"Sei stato rimosso da questa stanza a causa di un cambio di affiliazione"
"Sei stato rimosso da questa stanza poiché ora la stanza accetta solo membri"
@@ -656,229 +656,229 @@ msgstr ""
"Sei stato rimosso da questa stanza poiché il servizio MUC (Chat multi "
"utente) è in fase di spegnimento"
msgstr "<strong>%1$s</strong> è stato bandito"
msgstr "<strong>%1$s</strong> è stato espulso"
"<strong>%1$s</strong> è stato rimosso a causa di un cambio di affiliazione"
msgstr "<strong>%1$s</strong> è stato rimosso in quanto non membro"
msgstr "Il tuo soprannome è stato cambiato"
msgstr "Nessun soprannome specificato"
msgstr "Non ti è permesso creare nuove stanze"
msgstr "Il tuo soprannome non è conforme alle regole di questa stanza"
msgstr "Il tuo soprannome è già utilizzato"
msgstr "Questa stanza non esiste (per ora)"
msgstr "Questa stanza ha raggiunto il limite massimo di utenti"
msgstr "Topic impostato da %1$s a: %2$s"
msgstr "Clicca per parlare con questo contatto"
msgstr "Sono %1$s"
msgstr "Clicca qui per scrivere un messaggio di stato personalizzato"
msgstr "Clicca per cambiare il tuo stato"
msgstr "Stato personalizzato"
msgstr "in linea"
msgstr "assente da molto"
msgstr "assente"
msgstr "Nome utente:"
msgstr "Accesso"
"PO-Revision-Date: 2014-01-07 11:32+0900\n"
"Last-Translator: Mako N <mako@pasero.net>\n"
"Language-Team: Language JA\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgstr "暗号化されていません"
msgstr "検証されていません"
msgstr "検証されました"
msgstr "完了"
msgstr "この相手先は取り込み中です"
msgstr "この相手先は在席しています"
msgstr "この相手先はオフラインです"
msgstr "この相手先は不通です"
msgstr "この相手先は不在です"
msgstr "この相手先は離席中です"
msgstr "クリックしてこの相手先を削除"
msgstr "相手先一覧"
msgstr "保留中の相手先"
msgstr "会話に呼び出し"
msgstr "相手先"
msgstr "接続中です"
msgstr "エラー"
msgstr "認証中"
msgstr "認証に失敗"
msgstr "暗号化セッションの再接続"
@@ -139,69 +139,69 @@ msgstr ""
msgstr "このユーザーの本人性を検証できませんでした。"
msgstr "私信"
msgstr "この談話室のメンバー一覧にいません"
msgstr "私"
msgstr "このメニューを表示"
msgstr "第三者に書く"
msgstr "メッセージを削除"
msgstr "メッセージを送信できませんでした"
msgstr "暗号化されていないメッセージを受信しました"
msgstr "読めない暗号化メッセージを受信しました"
@@ -222,7 +222,7 @@ msgstr ""
"確認して、鍵指紋が正しければ「OK」を、正しくなければ「キャンセル」をクリック"
"してください。"
@@ -236,33 +236,33 @@ msgstr ""
"相手にも、同じ質問が表示され、正しく同じ答(大文字・小文字は区別されます)を入"
"力することで、本人性を検証します。"
msgstr "秘密の質問はなんですか?"
msgstr "秘密の質問の答はなんですか?"
msgstr "認証の方式が正しくありません"
msgstr "取り込み中"
msgstr "メッセージはもう暗号化されません"
@@ -270,402 +270,402 @@ msgid ""
"メッセージは暗号化されますが、相手が本人であることは検証されていません。"
msgstr "相手の本人性を検証しました。"
msgstr "相手は、暗号化を終了しました。あなたもそれに合わせる必要があります。"
"メッセージは暗号化されません。OTR 暗号化を有効にするにはここをクリックしてく"
"ださい。"
msgstr "メッセージは暗号化されますが、相手は検証されていません。"
msgstr "メッセージは暗号化され、相手も検証されています。"
msgstr "相手は私信を終了しました。あなたも同じようにしてください"
msgstr "暗号化された会話を終了"
msgstr "暗号化された会話をリフレッシュ"
msgstr "暗号化された会話を開始"
msgstr "鍵指紋で検証"
msgstr "SMP で検証"
msgstr "これは何ですか?"
msgstr "オンライン"
msgstr "離席中"
msgstr "オフライン"
msgstr "ログイン"
msgstr "名前"
msgstr "検索"
msgstr "相手先の名前"
msgstr "追加"
msgstr "クリックして新しいチャットの相手先を追加"
msgstr "相手先を追加"
msgstr "ユーザーが見つかりません"
msgstr "クリックしてチャットの相手先として追加"
msgstr "談話室の名前"
msgstr "ニックネーム"
msgstr "サーバー"
msgstr "入室"
msgstr "談話室一覧を見る"
msgstr "談話室"
msgstr "%1$s に談話室はありません"
msgstr "%1$s の談話室一覧"
msgstr "クリックしてこの談話室を開く"
msgstr "この談話室についての詳細を見る"
msgstr "説明: "
msgstr "入室者:"
msgstr "特徴:"
msgstr "認証の要求"
msgstr "非表示"
msgstr "招待の要求"
msgstr "発言制限"
msgstr "非匿名"
msgstr "開放談話室"
msgstr "常設談話室"
msgstr "公開談話室"
msgstr "半匿名"
msgstr "臨時談話室"
msgstr "発言制限なし"
msgstr "このユーザーは司会者です"
msgstr "このユーザーはこの談話室で発言できます"
msgstr "このユーザーはこの談話室で発言できません"
msgstr "メッセージ"
msgstr "ユーザーを談話室から締め出す"
msgstr "ユーザーを談話室から蹴り出す"
msgstr "談話室の話題を設定"
msgstr "保存"
msgstr "キャンセル"
msgstr "フォームを保存する際にエラーが発生しました。"
msgstr "この談話室にはパスワードが必要です"
msgstr "パスワード:"
msgstr "送信"
msgstr "この談話室は非匿名です"
msgstr "この談話室はメンバー以外にも見えます"
msgstr "この談話室はメンバー以外には見えません"
msgstr "談話室の設定(プライバシーに無関係)が変更されました"
msgstr "談話室の記録を取りはじめます"
msgstr "談話室の記録を止めます"
msgstr "この談話室はただいま非匿名です"
msgstr "この談話室はただいま半匿名です"
msgstr "この談話室はただいま匿名です"
msgstr "新しい談話室が作成されました"
msgstr "この談話室から締め出されました"
msgstr "この談話室から蹴り出されました"
msgstr "分掌の変更のため、この談話室から削除されました"
@@ -673,235 +673,235 @@ msgstr ""
"談話室がメンバー制に変更されました。メンバーではないため、この談話室から削除"
"されました"
"MUC(グループチャット)のサービスが停止したため、この談話室から削除されました。"
msgstr "<strong>%1$s</strong> を締め出しました"
msgstr "<strong>%1$s</strong> を蹴り出しました"
msgstr "分掌の変更のため、<strong>%1$s</strong> を削除しました"
msgstr "メンバーでなくなったため、<strong>%1$s</strong> を削除しました"
msgstr "ニックネームを変更しました"
msgstr "ニックネームがありません"
msgstr "新しい談話室を作成する権限がありません"
msgstr "ニックネームがこの談話室のポリシーに従っていません"
msgstr "ニックネームは既に使われています"
msgstr "この談話室は存在しません"
msgstr "この談話室は入室者数の上限に達しています"
msgstr "%1$s が話題を設定しました: %2$s"
msgstr "クリックしてこの相手先とチャット"
msgstr "私はいま %1$s"
msgstr "状況メッセージを入力するには、ここをクリック"
msgstr "クリックして、在席状況を変更"
msgstr "独自の在席状況"
msgstr "在席"
msgstr "不在"
msgstr "XMPP/Jabber ユーザー名:"
msgstr "サインイン"
"Last-Translator: Maarten Kling <maarten@fourdigits.nl>\n"
"Language-Team: Dutch\n"
"lang: nl\n"
msgstr "ongecodeerde"
msgstr "niet geverifieerd"
msgstr "geverifieerd"
msgstr "klaar"
msgstr "Contact is bezet"
msgstr "Contact is online"
msgstr "Contact is offline"
msgstr "Contact is niet beschikbaar"
msgstr "Contact is afwezig voor lange periode"
msgstr "Conact is afwezig"
msgstr "Klik om contact te verwijderen"
msgstr "Mijn contacts"
msgstr "Conacten in afwachting van"
msgstr "Contact uitnodiging"
msgstr "Contacten"
msgstr "Verbinden"
msgstr "Authenticeren"
msgstr "Authenticeren mislukt"
msgstr "Bezig versleutelde sessie te herstellen"
msgstr "Niet kon de identiteit van deze gebruiker niet identificeren."
msgstr "Persoonlijk bericht"
msgstr "Je bent niet een gebruiker van deze room"
msgstr "ikzelf"
msgstr "%1$s is aan typen"
msgstr "Toon dit menu"
msgstr "Schrijf in de 3de persoon"
msgstr "Verwijder bericht"
msgstr "Je bericht kon niet worden verzonden"
msgstr "We ontvingen een unencrypted bericht "
msgstr "We ontvangen een onleesbaar unencrypted bericht"
@@ -222,667 +222,667 @@ msgid ""
msgstr "Wat is jou sericury vraag?"
msgstr "Wat is het antwoord op de security vraag?"
msgstr "bezet"
msgstr "Je berichten zijn niet meer encrypted"
msgstr "Jou berichten zijn encrypted, maar je contact is niet geverifieerd."
msgstr "Jou contact is geverifieerd"
msgstr "Jou contact heeft encryption aanstaan, je moet het zelfde doen."
"Jou bericht is niet encrypted. KLik hier om ORC encrytion aan te zetten."
msgstr "Jou bericht is encrypted en jou contact is geverifieerd."
msgstr "Beeindig encrypted gesprek"
msgstr "Ververs encrypted gesprek"
msgstr "Start encrypted gesprek"
msgstr "Wat is dit?"
msgstr "Bezet"
msgstr "Afwezig"
msgstr "Aanmelden"
msgstr "Contact naam"
msgstr "Zoeken"
msgstr "Contact gebruikernaam"
msgstr "Toevoegen"
msgstr "Klik om nieuwe contacten toe te voegen"
msgstr "Voeg contact toe"
msgstr "Geen gebruikers gevonden"
msgstr "Klik om contact toe te voegen"
msgstr "Room naam"
msgstr "Deelnemen"
msgstr "Toon rooms"
msgstr "Geen room op %1$s"
msgstr "Room op %1$s"
msgstr "Klik om room te openen"
msgstr "Toon meer informatie over deze room"
msgstr "Beschrijving"
msgstr "Deelnemers:"
msgstr "Functies:"
msgstr "Verificatie vereist"
msgstr "Verborgen"
msgstr "Veriest een uitnodiging"
msgstr "Gemodereerd"
msgstr "Niet annoniem"
msgstr "Blijvend room"
msgstr "Publiek"
msgstr "Semi annoniem"
msgstr "Tijdelijke room"
msgstr "Niet gemodereerd"
msgstr "Dit is een moderator"
msgstr "Deze gebruiker kan berichten sturen in deze room"
msgstr "Deze gebruiker kan NIET een bericht sturen in deze room"
msgstr "Bericht"
msgstr "Ban gebruiker van chatroom"
msgstr "Goei gebruiker uit chatroom"
msgstr "Zet chatroom topic"
msgstr "Opslaan"
msgstr "Annuleren"
msgstr "Een error tijdens het opslaan van het formulier."
msgstr "Chatroom heeft een wachtwoord"
msgstr "Wachtwoord: "
msgstr "Indienen"
msgstr "Deze room is niet annoniem"
msgstr "Deze room is nu niet annoniem"
msgstr "Deze room is nu semie annoniem"
msgstr "Deze room is nu volledig annoniem"
msgstr "Een nieuwe room is gemaakt"
msgstr "Je bent verbannen uit deze room"
msgstr "Je bent uit de room gegooid"
msgstr "<strong>%1$s</strong> is verbannen"
msgstr "Je nickname is veranderd"
msgstr "Geen nickname ingegeven"
msgstr "Je bent niet toegestaan nieuwe rooms te maken"
msgstr "Je nickname is niet conform policy"
msgstr "Je nickname bestaat al"
msgstr "Deze room bestaat niet"
msgstr "Deze room heeft het maximale aantal gebruikers"
msgstr "Klik om te chatten met contact"
msgstr "Ik ben %1$s"
msgstr "Klik hier om custom status bericht te maken"
msgstr "Klik hier om status te wijzigen"
msgstr "afwezig lange tijd"
msgstr "afwezig"
msgstr "Wachtwoord:"
"Project-Id-Version: Converse.js 0.6.3\n"
"PO-Revision-Date: 2014-07-07 11:02+0200\n"
"Last-Translator: Alan Meira <alan@engarte.com>\n"
"Language-Team: Brazilian Portuguese\n"
"lang: pt_BR\n"
msgstr "não-criptografado"
msgstr "não-verificado"
msgstr "Este contato está ocupado"
msgstr "Este contato está online"
msgstr "Este contato está offline"
msgstr "Este contato está indisponível"
msgstr "Este contato está ausente por um longo período"
msgstr "Este contato está ausente"
msgstr "Clique para remover o contato"
msgstr "Meus contatos"
msgstr "Contados pendentes"
msgstr "Solicitação de contatos"
msgstr "Contatos"
msgstr "Erro"
msgstr "Falha de autenticação"
msgstr "Reestabelecendo sessão criptografada"
msgstr "Gerando chave-privada."
msgstr "Seu navegador pode parar de responder."
@@ -143,72 +143,72 @@ msgstr ""
msgstr "Não foi possível verificar a identidade deste usuário."
msgstr "Trocando chave-privada com o contato."
msgstr "Mensagem pessoal"
msgstr "Você não é membro dessa sala"
msgstr "eu"
msgstr "%1$s está digitando"
msgstr "Mostrar o menu"
msgstr "Escrever em terceira pessoa"
msgstr "Remover mensagens"
msgstr "Tem certeza que deseja limpar as mensagens dessa caixa?"
msgstr "Sua mensagem não pode ser enviada"
msgstr "Recebemos uma mensagem não-criptografada"
msgstr "Recebemos uma mensagem não-criptografada ilegível"
@@ -230,7 +230,7 @@ msgstr ""
"Se você tiver confirmado que as assinaturas conferem, clique OK, caso "
"contrário, clique Cancelar."
@@ -246,33 +246,33 @@ msgstr ""
"corretamente a mesma resposta (caso sensitivo), a identidade dele será "
"verificada."
msgstr "Qual é a sua pergunta de segurança?"
msgstr "Qual é a resposta para a pergunta de segurança?"
msgstr "Schema de autenticação fornecido é inválido"
msgstr "Suas mensagens não estão mais criptografadas"
@@ -281,403 +281,403 @@ msgstr ""
"Suas mensagens estão agora criptografadas mas a identidade do contatonão foi "
"confirmada."
msgstr "A identidade do contato foi verificada."
msgstr "Seu contato parou de usar criptografia, você deveria fazer o mesmo."
"Suas mensagens não estão criptografadas. Clique aqui para habilitar "
"criptografia OTR."
"Suas mensagens estão criptografadas, mas seu contato não foi verificado."
msgstr "Suas mensagens estão criptografadas e seu contato verificado."
msgstr "Seu contato fechou a sessão privada, você deveria fazer o mesmo"
msgstr "Finalizar conversa criptografada"
msgstr "Atualizar conversa criptografada"
msgstr "Iniciar conversa criptografada"
msgstr "Verificar com assinatura digital"
msgstr "Verificar com SMP"
msgstr "O que é isso?"
msgstr "Entrar"
msgstr "Nome do contato"
msgstr "Procurar"
msgstr "Usuário do contatt"
msgstr "Adicionar"
msgstr "Clique para adicionar novos contatos ao chat"
msgstr "Adicionar contato"
msgstr "Não foram encontrados usuários"
msgstr "Clique para adicionar como um contato do chat"
msgstr "Nome da sala"
msgstr "Apelido"
msgstr "Mostar salas"
msgstr "Sem salas em %1$s"
msgstr "Salas em %1$s"
msgstr "CLique para abrir a sala"
msgstr "Mostrar mais informações nessa sala"
msgstr "Descrição:"
msgstr "Recursos:"
msgstr "Requer autenticação"
msgstr "Escondido"
msgstr "Requer um convite"
msgstr "Não anônimo"
msgstr "Sala aberta"
msgstr "Público"
msgstr "Semi anônimo"
msgstr "Sala temporária"
msgstr "Sem moderação"
msgstr "Esse usuário é o moderador"
msgstr "Esse usuário pode enviar mensagens nessa sala"
msgstr "Esse usuário NÃO pode enviar mensagens nessa sala"
msgstr "Mensagem"
msgstr "Banir usuário do chat"
msgstr "Expulsar usuário do chat"
msgstr "Definir tópico do chat"
msgstr "Salvar"
msgstr "Ocorreu um erro enquanto tentava salvar o formulário"
msgstr "Esse chat precisa de senha"
msgstr "Senha: "
msgstr "Essa sala não é anônima"
msgstr "Agora esta sala mostra membros indisponíveis"
msgstr "Essa sala não mostra membros indisponíveis"
msgstr "Configuraçõs não relacionadas à privacidade mudaram"
msgstr "O log da sala está ativado"
msgstr "O log da sala está desativado"
msgstr "Esse sala é não anônima"
msgstr "Essa sala agora é semi anônima"
msgstr "Essa sala agora é totalmente anônima"
msgstr "Uma nova sala foi criada"
msgstr "Você foi banido dessa sala"
msgstr "Você foi expulso dessa sala"
msgstr "Você foi removido da sala devido a uma mudança de associação"
@@ -685,7 +685,7 @@ msgstr ""
"Você foi removido da sala porque ela foi mudada para somente membrose você "
"não é um membro"
@@ -693,228 +693,228 @@ msgstr ""
"Você foi removido da sala devido a MUC (Multi-user chat)o serviço está sendo "
"desligado"
msgstr "<strong>%1$s</strong> foi banido"
msgstr "<strong>%1$s</strong> foi expulso"
msgstr "<srtong>%1$s</strong> foi removido por causa de troca de associação"
msgstr "<strong>%1$s</strong> foi removido por não ser um membro"
msgstr "Seu apelido foi mudado"
msgstr "Você não escolheu um apelido "
msgstr "Você não tem permitição de criar novas salas"
msgstr "Seu apelido não está de acordo com as regras da sala"
msgstr "Seu apelido já foi escolhido"
msgstr "A sala não existe (ainda)"
msgstr "A sala atingiu o número máximo de ocupantes"
msgstr "Topico definido por %1$s para: %2$s"
msgstr "Clique para conversar com o contato"
msgstr "Estou %1$s"
msgstr "Clique aqui para customizar a mensagem de status"
msgstr "Clique para mudar seu status no chat"
msgstr "Status customizado"
msgstr "ausente a bastante tempo"
msgstr "Usuário XMPP/Jabber:"
msgstr "Senha:"
msgstr "Conectar-se"
msgstr "Alternar bate-papo"
"PO-Revision-Date: 2013-09-29 17:24+0300\n"
"Last-Translator: Boris Kocherov <bk@raskon.org>\n"
"Language-Team: <bk@raskon.ru>\n"
"X-Generator: Poedit 1.5.5\n"
msgstr "не зашифровано"
msgstr "непроверено"
msgstr "проверено"
msgstr "закончено"
msgstr "Занят"
msgstr "В сети"
msgstr "Не в сети"
msgstr "Не доступен"
msgstr "На долго отошёл"
msgstr "Отошёл"
msgstr "Удалить контакт"
msgstr "Контакты"
msgstr "Собеседники ожидающие авторизации"
msgstr "Запросы на авторизацию"
msgstr "Соединение"
msgstr "Ошибка"
msgstr "Авторизация"
msgstr "Не удалось авторизоваться"
@@ -133,69 +133,69 @@ msgid ""
msgstr "Введите сообщение"
msgstr "Вас нет в списке этой конференции"
msgstr "Я"
msgstr "Показать это меню"
msgstr "Удалить сообщения"
msgstr "Ваше сообщение не послано"
@@ -208,7 +208,7 @@ msgid ""
@@ -217,33 +217,33 @@ msgid ""
msgstr "занят"
msgstr "Ваши сообщения больше не шифруются"
@@ -252,633 +252,633 @@ msgstr ""
"Ваши сообщения шифруются, но ваша учётная запись не проверена вашим "
"собеседником."
msgstr "Ваша учётная запись проверена вашим собеседником."
msgstr "Ваши сообщения не шифруются. Нажмите здесь чтобы настроить шифрование."
msgstr "Ваши сообщения шифруются, но ваш контакт не проверен."
msgstr "Ваши сообщения шифруются и ваш контакт проверен"
msgstr "Что это?"
msgstr "Войти"
msgstr "Имя контакта"
msgstr "Поиск"
msgstr "Имя пользователя"
msgstr "Добавить"
msgstr "Добавить новую конференцию"
msgstr "Добавть контакт"
msgstr "Пользователи не найдены"
msgstr "Добавить контакт"
msgstr "Имя конференции"
msgstr "Псевдоним"
msgstr "Сервер"
msgstr "Подключиться"
msgstr "Обновить"
msgstr "Конфер."
msgstr "Нет доступных конференций %1$s"
msgstr "Конференции %1$s:"
msgstr "Зайти в конференцию"
msgstr "Показать больше информации об этой конференции"
msgstr "Описание:"
msgstr "Участники:"
msgstr "Свойства:"
msgstr "Требуется авторизация"
msgstr "Скрыто"
msgstr "Требуется приглашение"
msgstr "Модерируемая"
msgstr "Не анонимная"
msgstr "Открыть конференцию"
msgstr "Перманентная конференция"
msgstr "Публичный"
msgstr "Частично анонимная"
msgstr "Временная конференция"
msgstr "Немодерируемая"
msgstr "Модератор"
msgstr "Собеседник"
msgstr "Пользователь не может посылать сообщения в эту комнату"
msgstr "Сообщение"
msgstr "Забанить пользователя в этой конф."
msgstr "Отключить пользователя от кнофер."
msgstr "Установить тему"
msgstr "Сохранить"
msgstr "Отменить"
msgstr "При сохранение формы произошла ошибка."
msgstr "Для доступа в конфер. необходим пароль."
msgstr "Пароль: "
msgstr "Отправить"
msgstr "Эта комната не анонимная"
msgstr "Эта комната показывает доступных собеседников"
msgstr "Эта комната не показывает недоступных собеседников"
msgstr "Эта комната частично анонимная"
msgstr "Эта комната стала полностью анонимной"
msgstr "Новая комната была создана"
msgstr "Вам запрещено подключатся к этой конференции"
msgstr "<strong>%1$s</strong> удалён потому что изменились права"
"Вы отключены от этой конференции потому что режим изменился: только-участники"
"Вы отключены от этой конференции потому что сервись конференций выключен."
msgstr "<strong>%1$s</strong> забанен"
msgstr "<strong>%1$s</strong> выдворен"
msgstr "<strong>%1$s</strong> удалён потому что не участник"
msgstr "Ваш псевдоним уже используется другим пользователем"
msgstr "Вы не указали псевдоним"
msgstr "Вы не имеете права создавать конфер."
msgstr "Псевдоним не согласуется с правилами конфер."
msgstr "Ваш ник уже используется другим пользователем"
msgstr "Эта комната не существует"
msgstr "Конференция достигла максимального количества участников"
msgstr "Тема %2$s устатновлена %1$s"
msgstr "Начать общение"
msgstr "%1$s"
msgstr "Редактировать произвольный статус"
msgstr "Изменить ваш статус"
msgstr "Произвольный статус"
msgstr "на связи"
msgstr "отошёл на долго"
msgstr "отошёл"
msgstr "JID:"
msgstr "Пароль:"
msgstr "Подписать"
"PO-Revision-Date: 2014-07-06 18:05+0200\n"
"Last-Translator: Huxisuz Hu <huxisuz@gmail.com>\n"
"Language-Team: Language zh\n"
@@ -19,113 +19,113 @@ msgstr ""
"lang: zh\n"
msgstr "未加密"
msgstr "未验证"
msgstr "已验证"
msgstr "结束了"
msgstr "对方忙碌中"
msgstr "对方在线中"
msgstr "对方已下线"
msgstr "对方免打扰"
msgstr "对方暂时离开"
msgstr "对方离开"
msgstr "点击移除联系人"
msgstr "我的好友列表"
msgstr "保留中的联系人"
msgstr "来自好友的请求"
msgstr "联系人"
msgstr "连接中"
msgstr "错误"
msgstr "验证中"
msgstr "验证失败"
msgstr "重新建立加密会话"
msgstr "正在生成私钥"
msgstr "您的浏览器可能会暂时无响应"
@@ -141,70 +141,70 @@ msgstr ""
msgstr "无法验证对方信息。"
msgstr "正在与对方交换私钥"
msgstr "您并非此房间成员"
msgstr "我"
msgstr "显示此项菜单"
msgstr "以第三者身份写"
msgstr "移除消息"
msgstr "你确定清除此次的聊天记录吗?"
msgstr "您的消息无法送出"
msgstr "我们收到了一条未加密的信息"
msgstr "我们收到一条无法读取的信息"
"如果确认符合,请点击OK,否则点击取消"
@@ -237,666 +237,666 @@ msgstr ""
"对方需要回答相同的问题(区分大小写),如果答案一致,身份将被验证。"
msgstr "您的安全问题是?"
msgstr "此安全问题的答案是?"
msgstr "非法的认证方式"
msgstr "忙碌"
msgstr "您的消息将不再被加密"
msgstr "您的消息现已加密,但是对方身份尚未验证"
msgstr "对方的身份已通过验证。"
msgstr "对方已结束加密,您也需要做同样的操作。"
msgstr "您的消息未加密。点击这里来启用OTR加密"
msgstr "您的消息已加密,但对方未通过验证"
msgstr "您的消息已加密,对方已验证。"
msgstr "对方已关闭私有会话,您也应该关闭"
msgstr "结束加密的会话"
msgstr "刷新加密的会话"
msgstr "开始加密的会话"
msgstr "验证指纹"
msgstr "验证SMP"
msgstr "这是什么?"
msgstr "在线"
msgstr "忙碌中"
msgstr "离开"
msgstr "离线"
msgstr "登录"
msgstr "联系人名称"
msgstr "搜索"
msgstr "联系人姓名"
msgstr "添加"
msgstr "点击添加新联系人"
msgstr "添加联系人"
msgstr "未找到用户"
msgstr "点击添加为好友"
msgstr "聊天室名称"
msgstr "昵称"
msgstr "服务器"
msgstr "加入"
msgstr "显示所有聊天室"
msgstr "聊天室"
msgstr "%1$s 上没有聊天室"
msgstr "%1$s 上的聊天室"
msgstr "打开聊天室"
msgstr "显示次聊天室的更多信息"
msgstr "描述: "
msgstr "成员:"
msgstr "特性:"
msgstr "需要验证"
msgstr "隐藏的"
msgstr "需要被邀请"
msgstr "发言受限"
msgstr "永久聊天室"
msgstr "公开的"
msgstr "临时聊天室"
msgstr "无发言限制"
msgstr "此用户是主持人"
msgstr "此用户在这房间里可发消息"
msgstr "此用户不可在此房间发消息"
msgstr "信息"
msgstr "阻止此用户进入房间"
msgstr "把用户踢出房间"
msgstr "设置房间主题"
msgstr "取消"
msgstr "保存表单是出错。"
msgstr "此聊天室需要密码"
msgstr "密码:"
msgstr "发送"
msgstr "此为非匿名聊天室"
msgstr "此聊天室显示不可用用户"
msgstr "此聊天室不显示不可用用户"
msgstr "此聊天室设置(非私密性)已改变"
msgstr "聊天室聊天记录已启用"
msgstr "聊天室聊天记录已禁用"
msgstr "此聊天室非匿名"
msgstr "此聊天室半匿名"
msgstr "此聊天室完全匿名"
msgstr "新聊天室已创建"
msgstr "您已被此聊天室禁止入内"
msgstr "您已被踢出次房间"
msgstr "由于关系变化,您已被移除此房间"
msgstr "您已被移除此房间因为此房间更改为只允许成员加入,而您非成员"
msgstr "由于服务不可用,您已被移除此房间。"
msgstr "<strong>%1$s</strong> 已被禁止"
msgstr "<strong>%1$s</strong> 已被踢出"
msgstr "由于关系解除、<strong>%1$s</strong> 已被移除"
msgstr "由于不是成员、<strong>%1$s</strong> 已被移除"
msgstr "您的昵称被更改了"
msgstr "未指定昵称"
msgstr "您可此创建新房间了"
msgstr "您的昵称不符合此房间标准"
msgstr "您的昵称已被占用"
msgstr "此房间不存在"
msgstr "此房间人数已达上线"
msgstr "%1$s 设置话题为: %2$s"
msgstr "点击恢复聊天窗口"
msgstr "最小化的"
msgstr "点击与对方交谈"
msgstr "确定移除联系人吗?"
msgstr "我现在%1$s"
msgstr "点击这里,填写状态信息"
msgstr "点击这里改变聊天状态"
msgstr "DIY状态"
msgstr "长时间离开"
msgstr "XMPP/Jabber用户名:"
msgstr "折叠聊天窗口"
@@ -1,6 +1,6 @@
"description": "Browser based XMPP instant messaging client",
"main": "main.js",
"directories": {
@@ -431,7 +431,7 @@
this.chatboxes.onMessage(msg);
expect(converse.emit).toHaveBeenCalledWith('message', msg);
}, converse));
- waits(250);
+ waits(50);
runs($.proxy(function () {
// Check that the chatbox and its view now exist
var chatbox = this.chatboxes.get(sender_jid);
@@ -462,61 +462,46 @@
var contact_name = mock.cur_names[0];
var contact_jid = contact_name.replace(/ /g,'.').toLowerCase() + '@localhost';
spyOn(this, 'emit');
- runs(function () {
- test_utils.openChatBoxFor(contact_jid);
- var chatview = converse.chatboxviews.get(contact_jid);
- expect(chatview.model.get('minimized')).toBeFalsy();
- chatview.$el.find('.toggle-chatbox-button').click();
- waits(50);
- runs($.proxy(function () {
- var chatview = this.chatboxviews.get(contact_jid);
- expect(chatview.model.get('minimized')).toBeTruthy();
- var message = 'This message is sent to a minimized chatbox';
- var sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
- msg = $msg({
- from: sender_jid,
+ test_utils.openChatBoxFor(contact_jid);
+ var chatview = this.chatboxviews.get(contact_jid);
+ expect(chatview.$el.is(':visible')).toBeTruthy();
+ expect(chatview.model.get('minimized')).toBeFalsy();
+ chatview.$el.find('.toggle-chatbox-button').click();
+ expect(chatview.model.get('minimized')).toBeTruthy();
+ var message = 'This message is sent to a minimized chatbox';
+ var sender_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
+ msg = $msg({
+ from: sender_jid,
+ to: this.connection.jid,
+ type: 'chat',
+ id: (new Date()).getTime()
+ }).c('body').t(message).up()
+ .c('active', {'xmlns': 'http://jabber.org/protocol/chatstates'}).tree();
+ this.chatboxes.onMessage(msg);
+ expect(this.emit).toHaveBeenCalledWith('message', msg);
+ var trimmed_chatboxes = this.minimized_chats;
+ var trimmedview = trimmed_chatboxes.get(contact_jid);
+ var $count = trimmedview.$el.find('.chat-head-message-count');
+ expect(chatview.$el.is(':visible')).toBeFalsy();
+ expect(trimmedview.model.get('minimized')).toBeTruthy();
+ expect($count.is(':visible')).toBeTruthy();
+ expect($count.html()).toBe('1');
+ this.chatboxes.onMessage(
+ $msg({
+ from: mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost',
to: this.connection.jid,
type: 'chat',
id: (new Date()).getTime()
- }).c('body').t(message).up()
- .c('active', {'xmlns': 'http://jabber.org/protocol/chatstates'}).tree();
- this.chatboxes.onMessage(msg);
- expect(this.emit).toHaveBeenCalledWith('message', msg);
- }, converse));
- var trimmed_chatboxes = this.minimized_chats;
- var trimmedview = trimmed_chatboxes.get(contact_jid);
- var $count = trimmedview.$el.find('.chat-head-message-count');
- expect(trimmedview.model.get('minimized')).toBeTruthy();
- expect($count.is(':visible')).toBeTruthy();
- expect($count.html()).toBe('1');
- this.chatboxes.onMessage(
- $msg({
- from: mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost',
- to: this.connection.jid,
- type: 'chat',
- id: (new Date()).getTime()
- }).c('body').t('This message is also sent to a minimized chatbox').up()
- .c('active', {'xmlns': 'http://jabber.org/protocol/chatstates'}).tree()
- );
- expect($count.html()).toBe('2');
- trimmedview.$el.find('.restore-chat').click();
- expect(trimmed_chatboxes.keys().length).toBe(0);
+ }).c('body').t('This message is also sent to a minimized chatbox').up()
+ .c('active', {'xmlns': 'http://jabber.org/protocol/chatstates'}).tree()
+ );
+ $count = trimmedview.$el.find('.chat-head-message-count');
+ expect($count.html()).toBe('2');
+ trimmedview.$el.find('.restore-chat').click();
+ expect(trimmed_chatboxes.keys().length).toBe(0);
it("will indicate when it has a time difference of more than a day between it and its predecessor", $.proxy(function () {
@@ -591,21 +576,16 @@
it("can be sent from a chatbox, and will appear inside it", $.proxy(function () {
spyOn(converse, 'emit');
var contact_jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
- expect(converse.emit).toHaveBeenCalledWith('chatBoxFocused', jasmine.any(Object));
- var view = this.chatboxviews.get(contact_jid);
- var message = 'This message is sent from this chatbox';
- spyOn(view, 'sendMessage').andCallThrough();
- test_utils.sendMessage(view, message);
- expect(view.sendMessage).toHaveBeenCalled();
- expect(view.model.messages.length, 2);
- expect(converse.emit.mostRecentCall.args, ['messageSend', message]);
- expect(view.$el.find('.chat-content').find('.chat-message').last().find('.chat-message-content').text()).toEqual(message);
- }.bind(converse));
+ expect(converse.emit).toHaveBeenCalledWith('chatBoxFocused', jasmine.any(Object));
+ var view = this.chatboxviews.get(contact_jid);
+ var message = 'This message is sent from this chatbox';
+ spyOn(view, 'sendMessage').andCallThrough();
+ test_utils.sendMessage(view, message);
+ expect(view.sendMessage).toHaveBeenCalled();
+ expect(view.model.messages.length, 2);
+ expect(converse.emit.mostRecentCall.args, ['messageSend', message]);
+ expect(view.$el.find('.chat-content').find('.chat-message').last().find('.chat-message-content').text()).toEqual(message);
it("is sanitized to prevent Javascript injection attacks", $.proxy(function () {
@@ -697,6 +677,23 @@
describe("A Chat Status Notification", $.proxy(function () {
+ it("does not open automatically if a chat state notification is received", $.proxy(function () {
+ spyOn(converse, 'emit');
+ var sender_jid = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@localhost';
+ // <composing> state
+ var msg = $msg({
+ }).c('body').c('composing', {'xmlns': Strophe.NS.CHATSTATES}).tree();
+ expect(converse.emit).toHaveBeenCalledWith('message', msg);
+ var chatboxview = this.chatboxviews.get(sender_jid);
+ expect(chatboxview).toBeDefined();
+ expect(chatboxview.$el.is(':visible')).toBeFalsy(); // The chat box is not visible
+ }, converse));
describe("An active notification", $.proxy(function () {
it("is sent when the user opens a chat box", $.proxy(function () {
spyOn(converse.connection, 'send');
@@ -11,13 +11,57 @@
var b64_sha1 = converse_api.env.b64_sha1;
return describe("Converse", $.proxy(function(mock, test_utils) {
+ describe("Authentication", function () {
+ it("needs either a bosh_service_url a websocket_url or both", function () {
+ expect(converse.initConnection.bind({})).toThrow(
+ new Error("initConnection: you must supply a value for either the bosh_service_url or websocket_url or both."));
+ describe("with prebind", function () {
+ it("needs a jid when also using keepalive", function () {
+ var connection = converse.connection;
+ var jid = converse.jid;
+ converse.bosh_service_url = "localhost";
+ converse.connection = undefined;
+ converse.jid = undefined;
+ converse.keepalive = true;
+ converse.prebind = true;
+ expect(converse.initConnection.bind(converse)).toThrow(
+ new Error("initConnection: when using 'keepalive' with 'prebind, you must supply the JID of the current user."));
+ converse.bosh_service_url = undefined;
+ converse.connection = connection;
+ converse.jid = jid;
+ converse.keepalive = undefined;
+ converse.prebind = undefined;
+ it("needs jid, rid and sid values when not using keepalive", function () {
+ converse.keepalive = false;
+ new Error("initConnection: If you use prebind and not keepalive, then you MUST supply JID, RID and SID values"));
describe("The \"tokens\" API", $.proxy(function () {
- beforeEach($.proxy(function () {
+ beforeEach(function () {
test_utils.closeAllChatBoxes();
test_utils.clearBrowserStorage();
converse.rosterview.model.reset();
test_utils.createContacts('current');
it("has a method for retrieving the next RID", $.proxy(function () {
var old_connection = converse.connection;
@@ -57,26 +101,32 @@
it("has a method 'get' which returns wrapped contacts", $.proxy(function () {
// Check that it returns nothing if a non-existing JID is given
expect(converse_api.contacts.get('non-existing@jabber.org')).toBeFalsy();
// Check when a single jid is given
var jid = mock.cur_names[0].replace(/ /g,'.').toLowerCase() + '@localhost';
var attrs = converse_api.contacts.get(jid);
expect(typeof attrs).toBe('object');
expect(attrs.fullname).toBe(mock.cur_names[0]);
expect(attrs.jid).toBe(jid);
// You can retrieve multiple contacts by passing in an array
var jid2 = mock.cur_names[1].replace(/ /g,'.').toLowerCase() + '@localhost';
var list = converse_api.contacts.get([jid, jid2]);
expect(Array.isArray(list)).toBeTruthy();
expect(list[0].fullname).toBe(mock.cur_names[0]);
expect(list[1].fullname).toBe(mock.cur_names[1]);
// Check that all JIDs are returned if you call without any parameters
list = converse_api.contacts.get();
expect(list.length).toBe(mock.cur_names.length);
+ it("has a method 'add' with which contacts can be added", $.proxy(function () {
+ var error = new TypeError('contacts.add: invalid jid');
+ expect(converse_api.contacts.add).toThrow(error);
+ expect(converse_api.contacts.add.bind(converse_api, "invalid jid")).toThrow(error);
+ spyOn(converse.connection.roster, 'add');
+ converse_api.contacts.add("newcontact@example.org");
+ expect(converse.connection.roster.add).toHaveBeenCalled();
describe("The \"chats\" API", $.proxy(function() {
@@ -87,21 +137,23 @@
- it("has a method 'get' which returns a wrapped chat box if it's already open", $.proxy(function () {
+ it("has a method 'get' which returns a wrapped chat box", $.proxy(function () {
// Test on chat that doesn't exist.
expect(converse_api.chats.get('non-existing@jabber.org')).toBeFalsy();
// Test on chat that's not open
var box = converse_api.chats.get(jid);
- expect(box).toBe(null);
+ expect(box instanceof Object).toBeTruthy();
+ var chatboxview = this.chatboxviews.get(jid);
+ expect(chatboxview.$el.is(':visible')).toBeFalsy();
// Test for single JID
test_utils.openChatBoxFor(jid);
box = converse_api.chats.get(jid);
expect(box instanceof Object).toBeTruthy();
expect(box.get('box_id')).toBe(b64_sha1(jid));
- var chatboxview = this.chatboxviews.get(jid);
+ chatboxview = this.chatboxviews.get(jid);
expect(chatboxview.$el.is(':visible')).toBeTruthy();
// Test for multiple JIDs