Commit 2523847d801afb4f70191638f58c1ecbec976a0f

Authored by Matheus Figueiredo
1 parent 92f8eaf1

Updating conversejs to development version

Showing 33 changed files with 4528 additions and 358 deletions   Show diff stats
src/colab/static/conversejs/.gitignore 0 → 100644
... ... @@ -0,0 +1,14 @@
  1 +*~
  2 +*.mo
  3 +*.kpf
  4 +*.swp
  5 +.*.cfg
  6 +.hg/
  7 +.bzr/
  8 +.svn/
  9 +.project
  10 +.pydevproject
  11 +node_modules
  12 +
  13 +# OSX
  14 +.DS_Store
... ...
src/colab/static/conversejs/CHANGES.rst
1 1 Changelog
2 2 =========
3 3  
4   -0.4 (Unreleased)
  4 +0.5 (Unreleased)
  5 +----------------
  6 +- #22 Fixed compare operator in strophe.muc [sonata82]
  7 +- #23 Add Italian translations [ctrlaltca]
  8 +- #24 Add Spanish translations [macagua]
  9 +- #25 Using span with css instead of img [matheus-morfi]
  10 +- #26 Only the first minute digit shown in chatbox. [jcbrand]
  11 +
  12 +0.4 (2013-06-03)
5 13 ----------------
6 14  
7 15 - CSS tweaks: fixed overflowing text in status message and chatrooms list. [jcbrand]
... ... @@ -23,7 +31,7 @@ Changelog
23 31 - Fixed user status handling, which wasn't 100% according to the spec. [jcbrand]
24 32 - Separate messages according to day in chats. [jcbrand]
25 33 - Add support for specifying the BOSH bind URL as configuration setting. [jcbrand]
26   -- Improve the message counter to only increment when the window is not focused [witekdev]
  34 +- #8 Improve the message counter to only increment when the window is not focused [witekdev]
27 35 - Make fetching of list of chatrooms on a server a configuration option. [jcbrand]
28 36 - Use service discovery to show all available features on a room. [jcbrand]
29 37 - Multi-user chatrooms are now configurable. [jcbrand]
... ...
src/colab/static/conversejs/Gruntfile.js 0 → 100644
... ... @@ -0,0 +1,20 @@
  1 +module.exports = function(grunt) {
  2 + grunt.initConfig({
  3 + jshint: {
  4 + options: {
  5 + trailing: true
  6 + },
  7 + target: {
  8 + src : [
  9 + 'converse.js',
  10 + 'mock.js',
  11 + 'main.js',
  12 + 'tests_main.js',
  13 + 'spec/*.js'
  14 + ]
  15 + }
  16 + }
  17 + });
  18 + grunt.loadNpmTasks('grunt-contrib-jshint');
  19 + grunt.registerTask('default', ['jshint']);
  20 +};
... ...
src/colab/static/conversejs/Libraries/jarnxmpp.core.handlers.js
... ... @@ -1,251 +0,0 @@
1   -/*global $:false, document:false, window:false, portal_url:false,
2   -$msg:false, Strophe:false, setTimeout:false, navigator:false, jarn:false, google:false, jarnxmpp:false, jQuery:false, sessionStorage:false, $iq:false, $pres:false, Image:false, */
3   -
4   -(function (jarnxmpp, $, portal_url) {
5   -
6   - portal_url = portal_url || '';
7   -
8   - jarnxmpp.Storage = {
9   - storage: null,
10   - init: function () {
11   - try {
12   - if ('sessionStorage' in window && window.sessionStorage !== null && JSON in window && window.JSON !== null) {
13   - jarnxmpp.Storage.storage = sessionStorage;
14   - if (!('_user_info' in jarnxmpp.Storage.storage)) {
15   - jarnxmpp.Storage.set('_user_info', {});
16   - }
17   - if (!('_vCards' in jarnxmpp.Storage.storage)) {
18   - jarnxmpp.Storage.set('_vCards', {});
19   - }
20   - if (!('_subscriptions' in jarnxmpp.Storage.storage)) {
21   - jarnxmpp.Storage.set('_subscriptions', null);
22   - }
23   - }
24   - } catch (e) {}
25   - },
26   -
27   - get: function (key) {
28   - if (key in sessionStorage) {
29   - return JSON.parse(sessionStorage[key]);
30   - }
31   - return null;
32   - },
33   -
34   - set: function (key, value) {
35   - sessionStorage[key] = JSON.stringify(value);
36   - },
37   -
38   - xmppGet: function (key, callback) {
39   - var stanza = $iq({type: 'get'})
40   - .c('query', {xmlns: 'jabber:iq:private'})
41   - .c('jarnxmpp', {xmlns: 'http://jarn.com/ns/jarnxmpp:prefs:' + key})
42   - .tree();
43   - jarnxmpp.connection.sendIQ(stanza, function success(result) {
44   - callback($('jarnxmpp ' + 'value', result).first().text());
45   - });
46   - },
47   -
48   - xmppSet: function (key, value) {
49   - var stanza = $iq({type: 'set'})
50   - .c('query', {xmlns: 'jabber:iq:private'})
51   - .c('jarnxmpp', {xmlns: 'http://jarn.com/ns/jarnxmpp:prefs:' + key})
52   - .c('value', value)
53   - .tree();
54   - jarnxmpp.connection.sendIQ(stanza);
55   - }
56   - };
57   -
58   - jarnxmpp.Storage.init();
59   -
60   - jarnxmpp.Presence = {
61   - online: {},
62   - _user_info: {},
63   -
64   - onlineCount: function () {
65   - var me = Strophe.getNodeFromJid(jarnxmpp.connection.jid),
66   - counter = 0,
67   - user;
68   - for (user in jarnxmpp.Presence.online) {
69   - if ((jarnxmpp.Presence.online.hasOwnProperty(user)) && user !== me) {
70   - counter += 1;
71   - }
72   - }
73   - return counter;
74   - },
75   -
76   - getUserInfo: function (user_id, callback) {
77   - // User info on browsers without storage
78   - if (jarnxmpp.Storage.storage === null) {
79   - if (user_id in jarnxmpp.Presence._user_info) {
80   - callback(jarnxmpp.Presence._user_info[user_id]);
81   - } else {
82   - $.getJSON(portal_url + "/xmpp-userinfo?user_id=" + user_id, function (data) {
83   - jarnxmpp.Presence._user_info[user_id] = data;
84   - callback(data);
85   - });
86   - }
87   - } else {
88   - var _user_info = jarnxmpp.Storage.get('_user_info');
89   - if (user_id in _user_info) {
90   - callback(_user_info[user_id]);
91   - } else {
92   - $.getJSON(portal_url + "/xmpp-userinfo?user_id=" + user_id, function (data) {
93   - _user_info[user_id] = data;
94   - jarnxmpp.Storage.set('_user_info', _user_info);
95   - callback(data);
96   - });
97   - }
98   - }
99   - }
100   - };
101   -
102   - jarnxmpp.vCard = {
103   -
104   - _vCards: {},
105   -
106   - _getVCard: function (jid, callback) {
107   - var stanza =
108   - $iq({type: 'get', to: jid})
109   - .c('vCard', {xmlns: 'vcard-temp'}).tree();
110   - jarnxmpp.connection.sendIQ(stanza, function (data) {
111   - var result = {};
112   - $('vCard[xmlns="vcard-temp"]', data).children().each(function (idx, element) {
113   - result[element.nodeName] = element.textContent;
114   - });
115   - if (typeof (callback) !== 'undefined') {
116   - callback(result);
117   - }
118   - });
119   - },
120   -
121   - getVCard: function (jid, callback) {
122   - jid = Strophe.getBareJidFromJid(jid);
123   - if (jarnxmpp.Storage.storage === null) {
124   - if (jid in jarnxmpp.vCard._vCards) {
125   - callback(jarnxmpp.vCard._vCards[jid]);
126   - } else {
127   - jarnxmpp.vCard._getVCard(jid, function (result) {
128   - jarnxmpp.vCard._vCards[jid] = result;
129   - callback(result);
130   - });
131   - }
132   - } else {
133   - var _vCards = jarnxmpp.Storage.get('_vCards');
134   - if (jid in _vCards) {
135   - callback(_vCards[jid]);
136   - } else {
137   - jarnxmpp.vCard._getVCard(jid, function (result) {
138   - _vCards[jid] = result;
139   - jarnxmpp.Storage.set('_vCards', _vCards);
140   - callback(result);
141   - });
142   - }
143   - }
144   - },
145   -
146   - setVCard: function (params, photoUrl) {
147   - var key,
148   - vCard = Strophe.xmlElement('vCard', [['xmlns', 'vcard-temp'], ['version', '2.0']]);
149   - for (key in params) {
150   - if (params.hasOwnProperty(key)) {
151   - vCard.appendChild(Strophe.xmlElement(key, [], params[key]));
152   - }
153   - }
154   - var send = function () {
155   - var stanza = $iq({type: 'set'}).cnode(vCard).tree();
156   - jarnxmpp.connection.sendIQ(stanza);
157   - };
158   - if (typeof (photoUrl) === 'undefined') {
159   - send();
160   - } else {
161   - jarnxmpp.vCard.getBase64Image(photoUrl, function (base64img) {
162   - base64img = base64img.replace(/^data:image\/png;base64,/, "");
163   - var photo = Strophe.xmlElement('PHOTO');
164   - photo.appendChild(Strophe.xmlElement('TYPE', [], 'image/png'));
165   - photo.appendChild(Strophe.xmlElement('BINVAL', [], base64img));
166   - vCard.appendChild(photo);
167   - send();
168   - });
169   - }
170   - },
171   -
172   - getBase64Image: function (url, callback) {
173   - // Create the element, then draw it on a canvas to get the base64 data.
174   - var img = new Image();
175   - $(img).load(function () {
176   - var canvas = document.createElement('canvas');
177   - canvas.width = img.width;
178   - canvas.height = img.height;
179   - var ctx = canvas.getContext("2d");
180   - ctx.drawImage(img, 0, 0);
181   - callback(canvas.toDataURL('image/png'));
182   - }).attr('src', url);
183   - }
184   - };
185   -
186   - jarnxmpp.onConnect = function (status) {
187   - if ((status === Strophe.Status.ATTACHED) || (status === Strophe.Status.CONNECTED)) {
188   - $(window).bind('beforeunload', function () {
189   - $(document).trigger('jarnxmpp.disconnecting');
190   - var presence = $pres({type: 'unavailable'});
191   - jarnxmpp.connection.send(presence);
192   - jarnxmpp.connection.disconnect();
193   - jarnxmpp.connection.flush();
194   - });
195   - $(document).trigger('jarnxmpp.connected');
196   - } else if (status === Strophe.Status.DISCONNECTED) {
197   - $(document).trigger('jarnxmpp.disconnected');
198   - }
199   - };
200   -
201   - jarnxmpp.rawInput = function (data) {
202   - var event = jQuery.Event('jarnxmpp.dataReceived');
203   - event.text = data;
204   - $(document).trigger(event);
205   - };
206   -
207   - jarnxmpp.rawOutput = function (data) {
208   - var event = jQuery.Event('jarnxmpp.dataSent');
209   - event.text = data;
210   - $(document).trigger(event);
211   - };
212   -
213   - $(document).bind('jarnxmpp.connected', function () {
214   - // Logging
215   - jarnxmpp.connection.rawInput = jarnxmpp.rawInput;
216   - jarnxmpp.connection.rawOutput = jarnxmpp.rawOutput;
217   - });
218   -
219   - $(document).bind('jarnxmpp.disconnecting', function () {
220   - if (jarnxmpp.Storage.storage !== null) {
221   - jarnxmpp.Storage.set('online-count', jarnxmpp.Presence.onlineCount());
222   - }
223   - });
224   -
225   - $(document).ready(function () {
226   - var resource = jarnxmpp.Storage.get('xmppresource');
227   - if (resource) {
228   - data = {'resource': resource};
229   - } else {
230   - data = {};
231   - }
232   - $.ajax({
233   - 'url':portal_url + '/@@xmpp-loader',
234   - 'dataType': 'json',
235   - 'data': data,
236   - 'success': function (data) {
237   - if (!(('rid' in data) && ('sid' in data) && ('BOSH_SERVICE' in data))) {
238   - return;
239   - }
240   - if (!resource) {
241   - jarnxmpp.Storage.set('xmppresource', Strophe.getResourceFromJid(data.jid));
242   - }
243   - jarnxmpp.BOSH_SERVICE = data.BOSH_SERVICE;
244   - jarnxmpp.jid = data.jid;
245   - jarnxmpp.connection = new Strophe.Connection(jarnxmpp.BOSH_SERVICE);
246   - jarnxmpp.connection.attach(jarnxmpp.jid, data.sid, data.rid, jarnxmpp.onConnect);
247   - }
248   - });
249   - });
250   -
251   -})(window.jarnxmpp = window.jarnxmpp || {}, jQuery, portal_url);
src/colab/static/conversejs/Libraries/strophe.muc.js
... ... @@ -180,7 +180,7 @@
180 180 xmlns: Strophe.NS.CLIENT
181 181 }).t(message);
182 182 msg.up();
183   - if (html_message !== null) {
  183 + if (html_message != null) {
184 184 msg.c("html", {xmlns: Strophe.NS.XHTML_IM}).c("body", {xmlns: Strophe.NS.XHTML}).h(html_message);
185 185  
186 186 if (msg.node.childNodes.length === 0) {
... ...
src/colab/static/conversejs/build.js
... ... @@ -7,7 +7,9 @@
7 7 "af": "locale/af/LC_MESSAGES/af",
8 8 "en": "locale/en/LC_MESSAGES/en",
9 9 "de": "locale/de/LC_MESSAGES/de",
  10 + "es": "locale/es/LC_MESSAGES/es",
10 11 "hu": "locale/hu/LC_MESSAGES/hu",
  12 + "it": "locale/it/LC_MESSAGES/it",
11 13 "sjcl": "Libraries/sjcl",
12 14 "tinysort": "Libraries/jquery.tinysort",
13 15 "underscore": "Libraries/underscore",
... ...
src/colab/static/conversejs/converse.css
... ... @@ -15,29 +15,18 @@ span.spinner {
15 15 display: block;
16 16 }
17 17  
18   -span.spinner.hor_centered {
19   - left: 40%;
20   - position: absolute;
21   -}
22   -
23   -
24   -img.spinner {
25   - width: auto;
26   - border: none;
27   - box-shadow: none;
28   - -moz-box-shadow: none;
29   - -webkit-box-shadow: none;
30   - margin: 0;
31   - padding: 0 5px 0 5px;
32   -}
33   -
34   -img.centered {
  18 +span.spinner.centered {
35 19 position: absolute;
36 20 top: 30%;
37 21 left: 50%;
38 22 margin: 0 0 0 -25%;
39 23 }
40 24  
  25 +span.spinner.hor_centered {
  26 + left: 40%;
  27 + position: absolute;
  28 +}
  29 +
41 30 #chatpanel {
42 31 z-index: 99; /*--Keeps the panel on top of all other elements--*/
43 32 position: fixed;
... ...
src/colab/static/conversejs/converse.js
... ... @@ -313,6 +313,7 @@
313 313 match = text.match(/^\/(.*?)(?: (.*))?$/),
314 314 sender = msg_dict.sender,
315 315 template, username;
  316 +
316 317 if ((match) && (match[1] === 'me')) {
317 318 text = text.replace(/^\/me/, '');
318 319 template = this.action_template;
... ... @@ -325,7 +326,7 @@
325 326 $el.append(
326 327 template({
327 328 'sender': sender,
328   - 'time': this_date.toLocaleTimeString().substring(0,4),
  329 + 'time': this_date.toTimeString().substring(0,5),
329 330 'message': text,
330 331 'username': username,
331 332 'extra_classes': msg_dict.delayed && 'delayed' || ''
... ... @@ -1161,7 +1162,7 @@
1161 1162 '<p class="chatroom-topic"><p/>' +
1162 1163 '</div>' +
1163 1164 '<div class="chat-body">' +
1164   - '<img class="spinner centered" src="images/spinner.gif"/>' +
  1165 + '<span class="spinner centered"/>' +
1165 1166 '</div>'),
1166 1167  
1167 1168 chatarea_template: _.template(
... ... @@ -1246,7 +1247,7 @@
1246 1247 'hidden': 'hidden',
1247 1248 'list-single': 'dropdown'
1248 1249 };
1249   - $form.find('img.spinner').remove();
  1250 + $form.find('span.spinner').remove();
1250 1251 $form.append($('<legend>').text(title));
1251 1252 if (instructions != title) {
1252 1253 $form.append($('<p>').text(instructions));
... ... @@ -1355,7 +1356,7 @@
1355 1356 this.$el.find('.chat-body').append(
1356 1357 $('<div class="chatroom-form-container">'+
1357 1358 '<form class="chatroom-form">'+
1358   - '<img class="spinner centered" src="images/spinner.gif"/>'+
  1359 + '<span class="spinner centered"/>'+
1359 1360 '</form>'+
1360 1361 '</div>'));
1361 1362 converse.connection.muc.configure(
... ... @@ -1368,12 +1369,12 @@
1368 1369 ev.preventDefault();
1369 1370 var password = this.$el.find('.chatroom-form').find('input[type=password]').val();
1370 1371 this.$el.find('.chatroom-form-container').replaceWith(
1371   - '<img class="spinner centered" src="images/spinner.gif"/>');
  1372 + '<span class="spinner centered"/>');
1372 1373 this.connect(password);
1373 1374 },
1374 1375  
1375 1376 renderPasswordForm: function () {
1376   - this.$el.find('img.centered.spinner').remove();
  1377 + this.$el.find('span.centered.spinner').remove();
1377 1378 this.$el.find('.chat-body').append(
1378 1379 $('<div class="chatroom-form-container">'+
1379 1380 '<form class="chatroom-form">'+
... ... @@ -1388,7 +1389,7 @@
1388 1389 showDisconnectMessage: function (msg) {
1389 1390 this.$el.find('.chat-area').remove();
1390 1391 this.$el.find('.participants').remove();
1391   - this.$el.find('img.centered.spinner').remove();
  1392 + this.$el.find('span.centered.spinner').remove();
1392 1393 this.$el.find('.chat-body').append($('<p>'+msg+'</p>'));
1393 1394 },
1394 1395  
... ... @@ -2509,7 +2510,7 @@
2509 2510 connection = new Strophe.Connection(converse.bosh_service_url);
2510 2511 if ($form) {
2511 2512 $button = $form.find('input[type=submit]');
2512   - $button.hide().after('<img class="spinner login-submit" src="images/spinner.gif"/>');
  2513 + $button.hide().after('<span class="spinner login-submit"/>');
2513 2514 }
2514 2515 connection.connect(jid, password, $.proxy(function (status, message) {
2515 2516 if (status === Strophe.Status.CONNECTED) {
... ...
src/colab/static/conversejs/converse.json 0 → 100644
src/colab/static/conversejs/converse.min.css
1   -.hidden{display:none;}.locked{background:url(images/emblem-readonly.png) no-repeat right;padding-right:22px;}span.spinner{background:url(images/spinner.gif) no-repeat center;width:22px;height:22px;padding:0 2px 0 2px;display:block;}span.spinner.hor_centered{left:40%;position:absolute;}img.spinner{width:auto;border:none;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;margin:0;padding:0 5px 0 5px;}img.centered{position:absolute;top:30%;left:50%;margin:0 0 0 -25%;}#chatpanel{z-index:99;position:fixed;bottom:0;right:0;height:332px;width:auto;}#toggle-controlbox{position:fixed;font-size:80%;bottom:0;right:0;border-top-right-radius:4px;border-top-left-radius:4px;background:#e3e2e2;border:1px solid #c3c3c3;border-bottom:none;padding:.25em .5em;margin-right:1em;height:1.1em;}#connecting-to-chat{background:url(images/spinner.gif) no-repeat left;padding-left:1.4em;}.chat-head{color:#fff;margin:0;font-size:100%;border-top-right-radius:4px;border-top-left-radius:4px;padding:3px 0 3px 7px;}.chat-head-chatbox{background-color:#596a72;background-color:rgba(89,106,114,1);}.chat-head-chatroom{background-color:#2D617A;}.chatroom .chat-body{height:272px;background-color:white;border-bottom-right-radius:4px;border-bottom-left-radius:4px;}.chatroom .chat-area{float:left;width:200px;}.chatroom .chat{overflow:auto;height:400px;border:solid 1px #ccc;}.chatroom .participants{float:left;width:99px;height:272px;background-color:white;overflow:auto;border-right:1px solid #999;border-bottom:1px solid #999;border-bottom-right-radius:4px;}.participants ul.participant-list li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;font-size:12px;padding:.5em 0 0 .5em;cursor:default;}ul.participant-list li.moderator{color:#FE0007;}.chatroom form.sendXMPPMessage{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;}.chatroom .participant-list{list-style:none;}.chat-blink{background-color:#176689;border-right:1px solid #176689;border-left:1px solid #176689;}.chat-content{padding:.3em;font-size:13px;color:#333;height:193px;overflow-y:auto;border:1px solid #999;border-bottom:0;border-top:0;background-color:#fff;line-height:1.3em;}.chat-textarea{border:0;height:50px;}.chat-textarea-chatbox-selected{border:1px solid #578308;margin:0;}.chat-textarea-chatroom-selected{border:2px solid #2D617A;margin:0;}.chat-info{color:#666;}.chat-message-room,.chat-message-them,.chat-message-me{font-weight:bold;white-space:nowrap;max-width:100px;text-overflow:ellipsis;overflow:hidden;display:inline-block;float:left;padding-right:3px;}.chat-message-them{color:#F62817;}.chat-message-me{color:#436976;}.chat-message-room{color:#4B7003;}.chat-event,.chat-date,.chat-info{color:#808080;}li.chat-info{padding-left:10px;}.chat-date{display:inline-block;padding-top:10px;}div#settings,div#chatrooms,div#login-dialog{height:272px;}p.not-implemented{margin-top:3em;margin-left:.3em;color:#808080;}div.delayed .chat-message-them{color:#FB5D50;}div.delayed .chat-message-me{color:#7EABBB;}input.error{border:1px solid red;}.conn-feedback.error{color:red;}.chat-message-error{color:#76797C;font-size:90%;font-weight:normal;}.chat-head .avatar{float:left;margin-right:6px;}div.chat-title{color:white;font-weight:bold;line-height:15px;display:block;margin-top:2px;margin-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:rgba(0,0,0,0.51) 0 -1px 0;height:1em;}.chat-head-chatbox,.chat-head-chatroom{background:linear-gradient(top,rgba(206,220,231,1) 0,rgba(89,106,114,1) 100%);height:35px;position:relative;}p.user-custom-message,p.chatroom-topic{font-size:80%;font-style:italic;height:1.3em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0;}.activated{display:block!important;}a.subscribe-to-user{padding-left:2em;font-weight:bold;}dl.add-converse-contact{margin:0 0 0 .5em;}.fancy-dropdown{border:1px solid #ddd;height:22px;}.fancy-dropdown a.choose-xmpp-status,.fancy-dropdown a.toggle-xmpp-contact-form{text-shadow:0 1px 0 rgba(255,255,255,1);padding-left:2em;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;float:left;width:130px;}#fancy-xmpp-status-select a.change-xmpp-status-message{background:url('images/pencil_icon.png') no-repeat right 3px;float:right;clear:right;height:22px;}ul#found-users{padding:10px 0 5px 5px;border:0;}form.search-xmpp-contact{margin:0;padding-left:5px;padding:0 0 5px 5px;}form.search-xmpp-contact input{width:8em;}.oc-chat-head{margin:0;color:#FFF;border-top-right-radius:4px;border-top-left-radius:4px;height:35px;clear:right;background-color:#5390C8;padding:3px 0 0 0;}a.configure-chatroom-button,a.close-chatbox-button{margin-top:.2em;margin-right:.5em;cursor:pointer;float:right;width:12px;-moz-box-shadow:inset 0 1px 0 0 #fff;-webkit-box-shadow:inset 0 1px 0 0 #fff;box-shadow:inset 0 1px 0 0 #fff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0.05,#fff),color-stop(1,#f6f6f6));background:-moz-linear-gradient(center top,#fff 5%,#f6f6f6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#f6f6f6');-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px;border:1px solid #888;display:inline-block;color:#666!important;font-family:arial;font-size:12px;font-weight:bold;text-decoration:none;text-shadow:1px 1px 0 #fff;}a.configure-chatroom-button{padding:0 4px;background:#fff url('images/preferences-system.png') no-repeat center center;}.close-chatbox-button{padding:0 2px 0 6px;}.close-chatbox-button:hover{background:-webkit-gradient(linear,left top,left bottom,color-stop(0.05,#f6f6f6),color-stop(1,#fff));background:-moz-linear-gradient(center top,#f6f6f6 5%,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f6f6f6',endColorstr='#ffffff');background-color:#f6f6f6;}.close-chatbox-button:active{position:relative;top:1px;}.oc-chat-content dt{margin:0;padding-top:.5em;}.chatroom-form-container{color:#666;padding:5px;height:262px;overflow-y:auto;border-bottom-right-radius:4px;border-bottom-left-radius:4px;}.chatroom-form{background:white;font-size:12px;padding:0;}.chat-body p{font-size:14px;color:#666;padding:5px;margin:0;}.chatroom-form legend{font-size:14px;font-weight:bold;margin-bottom:5px;}.chatroom-form label{font-weight:bold;display:block;clear:both;}.chatroom-form label input,.chatroom-form label select{float:right;}#converse-roster dd.odd{background-color:#DCEAC5;}#converse-roster dd.current-xmpp-contact{clear:both;}#converse-roster dd.current-xmpp-contact,#converse-roster dd.current-xmpp-contact:hover{background:url(images/user_online_panel.png) no-repeat 5px 2px;}#converse-roster dd.current-xmpp-contact.offline:hover,#converse-roster dd.current-xmpp-contact.unavailable:hover,#converse-roster dd.current-xmpp-contact.offline,#converse-roster dd.current-xmpp-contact.unavailable{background:url(images/user_offline_panel.png) no-repeat 5px 2px;}#converse-roster dd.current-xmpp-contact.dnd,#converse-roster dd.current-xmpp-contact.dnd:hover{background:url(images/user_busy_panel.png) no-repeat 5px 2px;}#converse-roster dd.current-xmpp-contact.xa,#converse-roster dd.current-xmpp-contact.xa:hover,#converse-roster dd.current-xmpp-contact.away,#converse-roster dd.current-xmpp-contact.away:hover{background:url(images/user_away_panel.png) no-repeat 5px 2px;}#converse-roster dd.requesting-xmpp-contact button{margin-left:.5em;}#converse-roster dd a,#converse-roster dd span{text-shadow:0 1px 0 rgba(250,250,250,1);display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}#converse-roster dd a{margin-left:1.3em;}#converse-roster dd span{width:125px;}.remove-xmpp-contact-dialog .ui-dialog-buttonpane{border:none;}#converse-roster{height:200px;overflow-y:auto;overflow-x:hidden;width:100%;margin:0;position:relative;top:0;border:none;margin-top:.5em;}#available-chatrooms dd{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;width:165px;}#available-chatrooms dt,#converse-roster dt{font-weight:normal;font-size:13px;color:#666;border:none;padding:0 0 .3em .5em;text-shadow:0 1px 0 rgba(250,250,250,1);}#converse-roster dt{display:none;}dd.available-chatroom,#converse-roster dd{font-weight:bold;border:none;display:block;padding:0 0 0 .5em;color:#666;text-shadow:0 1px 0 rgba(250,250,250,1);}.room-info{font-size:11px;font-style:normal;font-weight:normal;}li.room-info{display:block;margin-left:5px;}div.room-info{clear:left;}p.room-info{margin:0;padding:0;display:block;white-space:normal;}a.room-info{background:url('images/information.png') no-repeat right top;width:22px;float:right;display:none;clear:right;}a.open-room{float:left;white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden;}dd.available-chatroom:hover a.room-info{display:inline-block;}dd.available-chatroom:hover a.open-room{width:75%;}#converse-roster dd a.remove-xmpp-contact{background:url('images/delete_icon.png') no-repeat right top;padding:0 0 1em 0;float:right;width:22px;margin:0;display:none;}#converse-roster dd:hover a.remove-xmpp-contact{display:inline-block;}#converse-roster dd:hover a.open-chat{width:75%;}.chatbox,.chatroom{box-shadow:1px 1px 5px 1px rgba(0,0,0,0.4);display:none;float:right;margin-right:15px;z-index:20;border-radius:4px;}.chatbox{width:201px;}.chatroom{width:300px;height:311px;}.oc-chat-content{height:272px;width:199px;padding:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px;}.oc-chat-content dd{margin-left:0;margin-bottom:0;padding:1em;}.oc-chat-content dd.odd{background-color:#DCEAC5;}div#controlbox-panes{background:-moz-linear-gradient(top,rgba(255,255,255,1) 0,rgba(240,240,240,1) 100%);background:-ms-linear-gradient(top,rgba(255,255,255,1) 0,rgba(240,240,240,1) 100%);background:-o-linear-gradient(top,rgba(255,255,255,1) 0,rgba(240,240,240,1) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(255,255,255,1)),color-stop(100%,rgba(240,240,240,1)));background:-webkit-linear-gradient(top,rgba(255,255,255,1) 0,rgba(240,240,240,1) 100%);background:linear-gradient(top,rgba(255,255,255,1) 0,rgba(240,240,240,1) 100%);background-color:white;border-bottom-left-radius:4px;border-bottom-right-radius:4px;border:1px solid #999;width:199px;}form#converse-login{background:white;padding:2em 0 .3em .5em;}form#converse-login input{display:block;width:90%;}form#converse-login .login-submit{margin-top:1em;width:auto;}form.set-xmpp-status{background:none;padding:.5em 0 .5em .5em;}form.add-chatroom{background:none;padding:3px;}form.add-chatroom input[type=text]{width:95%;margin:3px;}form.add-chatroom input[type=button],form.add-chatroom input[type=submit]{width:50%;}select#select-xmpp-status{float:right;margin-right:.5em;}.chat-head #controlbox-tabs{text-align:center;display:inline;overflow:hidden;font-size:12px;list-style-type:none;}.chat-head #controlbox-tabs li{float:left;list-style:none;padding-left:0;text-shadow:white 0 1px 0;width:40%;}ul#controlbox-tabs li a{display:block;font-size:12px;height:34px;line-height:34px;margin:0;text-align:center;text-decoration:none;border:1px solid #999;border-top-right-radius:4px;border-top-left-radius:4px;color:#666;text-shadow:0 1px 0 rgba(250,250,250,1);}.chat-head #controlbox-tabs li a:hover{color:black;}.chat-head #controlbox-tabs li a{background-color:white;box-shadow:inset 0 0 8px rgba(0,0,0,0.2);}ul#controlbox-tabs a.current,ul#controlbox-tabs a.current:hover{box-shadow:none;color:#000;border-bottom:0;height:35px;}div#users,div#chatrooms,div#login-dialog,div#settings{border:0;font-size:14px;width:199px;background-color:white;border-bottom-right-radius:4px;border-bottom-left-radius:4px;}div#chatrooms{overflow-y:auto;}form.sendXMPPMessage{background:white;border:1px solid #999;padding:.5em;margin:0;position:relative;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box;border-top-left-radius:0;border-top-right-radius:0;height:54px;}form#set-custom-xmpp-status{float:left;padding:0;}#set-custom-xmpp-status button{padding:1px 2px 1px 1px;}.chatbox dl.dropdown{margin-right:.5em;margin-bottom:0;background-color:#f0f0f0;}.chatbox .dropdown dd,.dropdown dt,.dropdown ul{margin:0;padding:0;}.chatbox .dropdown dd{position:relative;}input.custom-xmpp-status{width:138px;}form.add-xmpp-contact{background:none;padding:5px;}form.add-xmpp-contact input{width:125px;}.chatbox .dropdown dt a span{cursor:pointer;display:block;padding:5px;}.chatbox .dropdown dd ul{padding:5px 0 5px 0;list-style:none;position:absolute;left:0;top:0;border:1px solid #ddd;border-top:0;width:99%;z-index:21;background-color:#f0f0f0;}.chatbox .dropdown li{list-style:none;padding-left:0;}.set-xmpp-status .dropdown dd ul{z-index:22;}.chatbox .dropdown a{padding:3px 0 0 25px;display:block;height:22px;}.chatbox .dropdown a.toggle-xmpp-contact-form{background:url('images/add_icon.png') no-repeat 4px 2px;}.chatbox .dropdown a.online{background:url(images/user_online_panel.png) no-repeat 3px 4px;}.chatbox .dropdown a.offline{background:url(images/user_offline_panel.png) no-repeat 3px 4px;}.chatbox .dropdown a.dnd{background:url(images/user_busy_panel.png) no-repeat 3px 4px;}.chatbox .dropdown a.away{background:url(images/user_away_panel.png) no-repeat 3px 4px;}.chatbox .dropdown dd ul a:hover{background-color:#bed6e5;}
2 1 \ No newline at end of file
  2 +.hidden{display:none;}.locked{background:url(images/emblem-readonly.png) no-repeat right;padding-right:22px;}span.spinner{background:url(images/spinner.gif) no-repeat center;width:22px;height:22px;padding:0 2px 0 2px;display:block;}span.spinner.centered{position:absolute;top:30%;left:50%;margin:0 0 0 -25%;}span.spinner.hor_centered{left:40%;position:absolute;}#chatpanel{z-index:99;position:fixed;bottom:0;right:0;height:332px;width:auto;}#toggle-controlbox{position:fixed;font-size:80%;bottom:0;right:0;border-top-right-radius:4px;border-top-left-radius:4px;background:#e3e2e2;border:1px solid #c3c3c3;border-bottom:none;padding:.25em .5em;margin-right:1em;height:1.1em;}#connecting-to-chat{background:url(images/spinner.gif) no-repeat left;padding-left:1.4em;}.chat-head{color:#fff;margin:0;font-size:100%;border-top-right-radius:4px;border-top-left-radius:4px;padding:3px 0 3px 7px;}.chat-head-chatbox{background-color:#596a72;background-color:rgba(89,106,114,1);}.chat-head-chatroom{background-color:#2D617A;}.chatroom .chat-body{height:272px;background-color:white;border-bottom-right-radius:4px;border-bottom-left-radius:4px;}.chatroom .chat-area{float:left;width:200px;}.chatroom .chat{overflow:auto;height:400px;border:solid 1px #ccc;}.chatroom .participants{float:left;width:99px;height:272px;background-color:white;overflow:auto;border-right:1px solid #999;border-bottom:1px solid #999;border-bottom-right-radius:4px;}.participants ul.participant-list li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;font-size:12px;padding:.5em 0 0 .5em;cursor:default;}ul.participant-list li.moderator{color:#FE0007;}.chatroom form.sendXMPPMessage{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;}.chatroom .participant-list{list-style:none;}.chat-blink{background-color:#176689;border-right:1px solid #176689;border-left:1px solid #176689;}.chat-content{padding:.3em;font-size:13px;color:#333;height:193px;overflow-y:auto;border:1px solid #999;border-bottom:0;border-top:0;background-color:#fff;line-height:1.3em;}.chat-textarea{border:0;height:50px;}.chat-textarea-chatbox-selected{border:1px solid #578308;margin:0;}.chat-textarea-chatroom-selected{border:2px solid #2D617A;margin:0;}.chat-info{color:#666;}.chat-message-room,.chat-message-them,.chat-message-me{font-weight:bold;white-space:nowrap;max-width:100px;text-overflow:ellipsis;overflow:hidden;display:inline-block;float:left;padding-right:3px;}.chat-message-them{color:#F62817;}.chat-message-me{color:#436976;}.chat-message-room{color:#4B7003;}.chat-event,.chat-date,.chat-info{color:#808080;}li.chat-info{padding-left:10px;}.chat-date{display:inline-block;padding-top:10px;}div#settings,div#chatrooms,div#login-dialog{height:272px;}p.not-implemented{margin-top:3em;margin-left:.3em;color:#808080;}div.delayed .chat-message-them{color:#FB5D50;}div.delayed .chat-message-me{color:#7EABBB;}input.error{border:1px solid red;}.conn-feedback.error{color:red;}.chat-message-error{color:#76797C;font-size:90%;font-weight:normal;}.chat-head .avatar{float:left;margin-right:6px;}div.chat-title{color:white;font-weight:bold;line-height:15px;display:block;margin-top:2px;margin-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:rgba(0,0,0,0.51) 0 -1px 0;height:1em;}.chat-head-chatbox,.chat-head-chatroom{background:linear-gradient(top,rgba(206,220,231,1) 0,rgba(89,106,114,1) 100%);height:35px;position:relative;}p.user-custom-message,p.chatroom-topic{font-size:80%;font-style:italic;height:1.3em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0;}.activated{display:block!important;}a.subscribe-to-user{padding-left:2em;font-weight:bold;}dl.add-converse-contact{margin:0 0 0 .5em;}.fancy-dropdown{border:1px solid #ddd;height:22px;}.fancy-dropdown a.choose-xmpp-status,.fancy-dropdown a.toggle-xmpp-contact-form{text-shadow:0 1px 0 rgba(255,255,255,1);padding-left:2em;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;float:left;width:130px;}#fancy-xmpp-status-select a.change-xmpp-status-message{background:url('images/pencil_icon.png') no-repeat right 3px;float:right;clear:right;height:22px;}ul#found-users{padding:10px 0 5px 5px;border:0;}form.search-xmpp-contact{margin:0;padding-left:5px;padding:0 0 5px 5px;}form.search-xmpp-contact input{width:8em;}.oc-chat-head{margin:0;color:#FFF;border-top-right-radius:4px;border-top-left-radius:4px;height:35px;clear:right;background-color:#5390C8;padding:3px 0 0 0;}a.configure-chatroom-button,a.close-chatbox-button{margin-top:.2em;margin-right:.5em;cursor:pointer;float:right;width:12px;-moz-box-shadow:inset 0 1px 0 0 #fff;-webkit-box-shadow:inset 0 1px 0 0 #fff;box-shadow:inset 0 1px 0 0 #fff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0.05,#fff),color-stop(1,#f6f6f6));background:-moz-linear-gradient(center top,#fff 5%,#f6f6f6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#f6f6f6');-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px;border:1px solid #888;display:inline-block;color:#666!important;font-family:arial;font-size:12px;font-weight:bold;text-decoration:none;text-shadow:1px 1px 0 #fff;}a.configure-chatroom-button{padding:0 4px;background:#fff url('images/preferences-system.png') no-repeat center center;}.close-chatbox-button{padding:0 2px 0 6px;}.close-chatbox-button:hover{background:-webkit-gradient(linear,left top,left bottom,color-stop(0.05,#f6f6f6),color-stop(1,#fff));background:-moz-linear-gradient(center top,#f6f6f6 5%,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f6f6f6',endColorstr='#ffffff');background-color:#f6f6f6;}.close-chatbox-button:active{position:relative;top:1px;}.oc-chat-content dt{margin:0;padding-top:.5em;}.chatroom-form-container{color:#666;padding:5px;height:262px;overflow-y:auto;border-bottom-right-radius:4px;border-bottom-left-radius:4px;}.chatroom-form{background:white;font-size:12px;padding:0;}.chat-body p{font-size:14px;color:#666;padding:5px;margin:0;}.chatroom-form legend{font-size:14px;font-weight:bold;margin-bottom:5px;}.chatroom-form label{font-weight:bold;display:block;clear:both;}.chatroom-form label input,.chatroom-form label select{float:right;}#converse-roster dd.odd{background-color:#DCEAC5;}#converse-roster dd.current-xmpp-contact{clear:both;}#converse-roster dd.current-xmpp-contact,#converse-roster dd.current-xmpp-contact:hover{background:url(images/user_online_panel.png) no-repeat 5px 2px;}#converse-roster dd.current-xmpp-contact.offline:hover,#converse-roster dd.current-xmpp-contact.unavailable:hover,#converse-roster dd.current-xmpp-contact.offline,#converse-roster dd.current-xmpp-contact.unavailable{background:url(images/user_offline_panel.png) no-repeat 5px 2px;}#converse-roster dd.current-xmpp-contact.dnd,#converse-roster dd.current-xmpp-contact.dnd:hover{background:url(images/user_busy_panel.png) no-repeat 5px 2px;}#converse-roster dd.current-xmpp-contact.xa,#converse-roster dd.current-xmpp-contact.xa:hover,#converse-roster dd.current-xmpp-contact.away,#converse-roster dd.current-xmpp-contact.away:hover{background:url(images/user_away_panel.png) no-repeat 5px 2px;}#converse-roster dd.requesting-xmpp-contact button{margin-left:.5em;}#converse-roster dd a,#converse-roster dd span{text-shadow:0 1px 0 rgba(250,250,250,1);display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}#converse-roster dd a{margin-left:1.3em;}#converse-roster dd span{width:125px;}.remove-xmpp-contact-dialog .ui-dialog-buttonpane{border:none;}#converse-roster{height:200px;overflow-y:auto;overflow-x:hidden;width:100%;margin:0;position:relative;top:0;border:none;margin-top:.5em;}#available-chatrooms dd{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;width:165px;}#available-chatrooms dt,#converse-roster dt{font-weight:normal;font-size:13px;color:#666;border:none;padding:0 0 .3em .5em;text-shadow:0 1px 0 rgba(250,250,250,1);}#converse-roster dt{display:none;}dd.available-chatroom,#converse-roster dd{font-weight:bold;border:none;display:block;padding:0 0 0 .5em;color:#666;text-shadow:0 1px 0 rgba(250,250,250,1);}.room-info{font-size:11px;font-style:normal;font-weight:normal;}li.room-info{display:block;margin-left:5px;}div.room-info{clear:left;}p.room-info{margin:0;padding:0;display:block;white-space:normal;}a.room-info{background:url('images/information.png') no-repeat right top;width:22px;float:right;display:none;clear:right;}a.open-room{float:left;white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden;}dd.available-chatroom:hover a.room-info{display:inline-block;}dd.available-chatroom:hover a.open-room{width:75%;}#converse-roster dd a.remove-xmpp-contact{background:url('images/delete_icon.png') no-repeat right top;padding:0 0 1em 0;float:right;width:22px;margin:0;display:none;}#converse-roster dd:hover a.remove-xmpp-contact{display:inline-block;}#converse-roster dd:hover a.open-chat{width:75%;}.chatbox,.chatroom{box-shadow:1px 1px 5px 1px rgba(0,0,0,0.4);display:none;float:right;margin-right:15px;z-index:20;border-radius:4px;}.chatbox{width:201px;}.chatroom{width:300px;height:311px;}.oc-chat-content{height:272px;width:199px;padding:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px;}.oc-chat-content dd{margin-left:0;margin-bottom:0;padding:1em;}.oc-chat-content dd.odd{background-color:#DCEAC5;}div#controlbox-panes{background:-moz-linear-gradient(top,rgba(255,255,255,1) 0,rgba(240,240,240,1) 100%);background:-ms-linear-gradient(top,rgba(255,255,255,1) 0,rgba(240,240,240,1) 100%);background:-o-linear-gradient(top,rgba(255,255,255,1) 0,rgba(240,240,240,1) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(255,255,255,1)),color-stop(100%,rgba(240,240,240,1)));background:-webkit-linear-gradient(top,rgba(255,255,255,1) 0,rgba(240,240,240,1) 100%);background:linear-gradient(top,rgba(255,255,255,1) 0,rgba(240,240,240,1) 100%);background-color:white;border-bottom-left-radius:4px;border-bottom-right-radius:4px;border:1px solid #999;width:199px;}form#converse-login{background:white;padding:2em 0 .3em .5em;}form#converse-login input{display:block;width:90%;}form#converse-login .login-submit{margin-top:1em;width:auto;}form.set-xmpp-status{background:none;padding:.5em 0 .5em .5em;}form.add-chatroom{background:none;padding:3px;}form.add-chatroom input[type=text]{width:95%;margin:3px;}form.add-chatroom input[type=button],form.add-chatroom input[type=submit]{width:50%;}select#select-xmpp-status{float:right;margin-right:.5em;}.chat-head #controlbox-tabs{text-align:center;display:inline;overflow:hidden;font-size:12px;list-style-type:none;}.chat-head #controlbox-tabs li{float:left;list-style:none;padding-left:0;text-shadow:white 0 1px 0;width:40%;}ul#controlbox-tabs li a{display:block;font-size:12px;height:34px;line-height:34px;margin:0;text-align:center;text-decoration:none;border:1px solid #999;border-top-right-radius:4px;border-top-left-radius:4px;color:#666;text-shadow:0 1px 0 rgba(250,250,250,1);}.chat-head #controlbox-tabs li a:hover{color:black;}.chat-head #controlbox-tabs li a{background-color:white;box-shadow:inset 0 0 8px rgba(0,0,0,0.2);}ul#controlbox-tabs a.current,ul#controlbox-tabs a.current:hover{box-shadow:none;color:#000;border-bottom:0;height:35px;}div#users,div#chatrooms,div#login-dialog,div#settings{border:0;font-size:14px;width:199px;background-color:white;border-bottom-right-radius:4px;border-bottom-left-radius:4px;}div#chatrooms{overflow-y:auto;}form.sendXMPPMessage{background:white;border:1px solid #999;padding:.5em;margin:0;position:relative;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box;border-top-left-radius:0;border-top-right-radius:0;height:54px;}form#set-custom-xmpp-status{float:left;padding:0;}#set-custom-xmpp-status button{padding:1px 2px 1px 1px;}.chatbox dl.dropdown{margin-right:.5em;margin-bottom:0;background-color:#f0f0f0;}.chatbox .dropdown dd,.dropdown dt,.dropdown ul{margin:0;padding:0;}.chatbox .dropdown dd{position:relative;}input.custom-xmpp-status{width:138px;}form.add-xmpp-contact{background:none;padding:5px;}form.add-xmpp-contact input{width:125px;}.chatbox .dropdown dt a span{cursor:pointer;display:block;padding:5px;}.chatbox .dropdown dd ul{padding:5px 0 5px 0;list-style:none;position:absolute;left:0;top:0;border:1px solid #ddd;border-top:0;width:99%;z-index:21;background-color:#f0f0f0;}.chatbox .dropdown li{list-style:none;padding-left:0;}.set-xmpp-status .dropdown dd ul{z-index:22;}.chatbox .dropdown a{padding:3px 0 0 25px;display:block;height:22px;}.chatbox .dropdown a.toggle-xmpp-contact-form{background:url('images/add_icon.png') no-repeat 4px 2px;}.chatbox .dropdown a.online{background:url(images/user_online_panel.png) no-repeat 3px 4px;}.chatbox .dropdown a.offline{background:url(images/user_offline_panel.png) no-repeat 3px 4px;}.chatbox .dropdown a.dnd{background:url(images/user_busy_panel.png) no-repeat 3px 4px;}.chatbox .dropdown a.away{background:url(images/user_away_panel.png) no-repeat 3px 4px;}.chatbox .dropdown dd ul a:hover{background-color:#bed6e5;}
3 3 \ No newline at end of file
... ...
src/colab/static/conversejs/converse.min.js
No preview for this file type
src/colab/static/conversejs/docs/doctrees/environment.pickle
No preview for this file type
src/colab/static/conversejs/docs/doctrees/index.doctree
No preview for this file type
src/colab/static/conversejs/docs/html/_sources/index.txt
... ... @@ -99,6 +99,8 @@ website. This will remove the need for any cross-domain XHR support.
99 99 Server-side authentication
100 100 ==========================
101 101  
  102 +.. _`Session Support`:
  103 +
102 104 Pre-binding and Single Session Support
103 105 --------------------------------------
104 106  
... ... @@ -110,7 +112,7 @@ Jack Moffitt has a great `blogpost`_ about this and even provides an `example Dj
110 112  
111 113 .. Note::
112 114 If you want to enable single session support, make sure to pass **prebind: true**
113   - when you call **converse.initialize** (see ./main.js).
  115 + when you call **converse.initialize** (see ./index.html).
114 116  
115 117 When you authenticate to the XMPP server on your backend, you'll receive two
116 118 tokens, RID (request ID) and SID (session ID).
... ... @@ -153,21 +155,36 @@ connection object.
153 155 Quickstart (to get a demo up and running)
154 156 =========================================
155 157  
156   -When you download a specific release of *Converse.js*, say for example version 0.3,
157   -there will be two minified files inside the zip file.
158   -
159   -For version 0.3 they will be:
  158 +When you download a specific release of *Converse.js* there will be two minified files inside the zip file.
160 159  
161   -* converse.0.3.min.js
162   -* converse.0.3.min.css
  160 +* converse.min.js
  161 +* converse.min.css
163 162  
164   -You can include these two files in your website via the *script* and *link*
  163 +You can include these two files inside the *<head>* element of your website via the *script* and *link*
165 164 tags:
166 165  
167 166 ::
168 167  
169   - <link rel="stylesheet" type="text/css" media="screen" href="converse.0.3.min.css">
170   - <script src="converse.0.3.min.js"></script>
  168 + <link rel="stylesheet" type="text/css" media="screen" href="converse.min.css">
  169 + <script src="converse.min.js"></script>
  170 +
  171 +Then, at the bottom of your page, after the closing *</body>* element, put the
  172 +following inline Javascript code:
  173 +
  174 +::
  175 +
  176 + <script>
  177 + converse.initialize({
  178 + auto_list_rooms: false,
  179 + auto_subscribe: false,
  180 + bosh_service_url: 'https://bind.opkode.im', // Please use this connection manager only for testing purposes
  181 + hide_muc_server: false,
  182 + i18n: locales.en, // Refer to ./locale/locales.js to see which locales are supported
  183 + prebind: false,
  184 + show_controlbox_by_default: true,
  185 + xhr_user_search: false
  186 + });
  187 + </script>
171 188  
172 189 The *index.html* file inside the Converse.js folder serves as a nice usable
173 190 example of this.
... ... @@ -180,7 +197,7 @@ You&#39;ll most likely want to implement some kind of single-signon solution for
180 197 your website, where users authenticate once in your website and then stay
181 198 logged into their XMPP session upon page reload.
182 199  
183   -For more info on this, read `Session Support`_.
  200 +For more info on this, read: `Pre-binding and Single Session Support`_.
184 201  
185 202 You might also want to have more fine-grained control of what gets included in
186 203 the minified Javascript file. Read `Configuration`_ and `Minification`_ for more info on how to do
... ... @@ -198,6 +215,9 @@ on your website.
198 215 *Converse.js* is passed its configuration settings when you call its
199 216 *initialize* method.
200 217  
  218 +You'll most likely want to call the *initialize* method in your HTML page. For
  219 +an example of how this is done, please see the bottom of the *./index.html* page.
  220 +
201 221 Please refer to the `Configuration variables`_ section below for info on
202 222 all the available configuration settings.
203 223  
... ... @@ -358,6 +378,14 @@ CSS can be minimized with Yahoo&#39;s yuicompressor tool:
358 378 Translations
359 379 ============
360 380  
  381 +.. Note ::
  382 + Translations take up a lot of space and will bloat your minified file.
  383 + At the time of writing, all the translations add about 50KB of extra data to
  384 + the minified javascript file. Therefore, make sure to only
  385 + include those languages that you intend to support and remove from
  386 + ./locale/locales.js those which you don't need. Remember to rebuild the
  387 + minified file afterwards.
  388 +
361 389 The gettext POT file located in ./locale/converse.pot is the template
362 390 containing all translations and from which for each language an individual PO
363 391 file is generated.
... ...
src/colab/static/conversejs/docs/html/index.html
... ... @@ -115,7 +115,7 @@ properly configure and integrate it into your site.&lt;/p&gt;
115 115 webchat experience and that you have control over the data. The latter being a
116 116 requirement for many sites dealing with sensitive information.</p>
117 117 <p>You&#8217;ll need to set up your own XMPP server and in order to have
118   -<a href="#id24"><span class="problematic" id="id25">`Session Support`_</span></a> (i.e. single-signon functionality whereby users are authenticated once and stay
  118 +<a class="reference internal" href="#session-support">Session Support</a> (i.e. single-signon functionality whereby users are authenticated once and stay
119 119 logged in to XMPP upon page reload) you will also have to add some server-side
120 120 code.</p>
121 121 <p>The <a class="reference internal" href="#what-you-will-need">What you will need</a> section has more information on all these
... ... @@ -128,7 +128,7 @@ requirements.&lt;/p&gt;
128 128 <p><em>Converse.js</em> implements <a class="reference external" href="https://en.wikipedia.org/wiki/Xmpp">XMPP</a> as its messaging protocol, and therefore needs
129 129 to connect to an XMPP/Jabber server (Jabber is really just a synonym for XMPP).</p>
130 130 <p>You can connect to public XMPP servers like <tt class="docutils literal"><span class="pre">jabber.org</span></tt> but if you want to
131   -have <a href="#id26"><span class="problematic" id="id27">`Session Support`_</span></a> you&#8217;ll have to set up your own XMPP server.</p>
  131 +have <a class="reference internal" href="#session-support">Session Support</a> you&#8217;ll have to set up your own XMPP server.</p>
132 132 <p>You can find a list of public XMPP servers/providers on <a class="reference external" href="http://xmpp.net">xmpp.net</a> and a list of
133 133 servers that you can set up yourself on <a class="reference external" href="http://xmpp.org/xmpp-software/servers/">xmpp.org</a>.</p>
134 134 </div>
... ... @@ -168,7 +168,7 @@ website. This will remove the need for any cross-domain XHR support.&lt;/p&gt;
168 168 <div class="section" id="server-side-authentication">
169 169 <h2><a class="toc-backref" href="#id6">Server-side authentication</a><a class="headerlink" href="#server-side-authentication" title="Permalink to this headline">¶</a></h2>
170 170 <div class="section" id="pre-binding-and-single-session-support">
171   -<h3><a class="toc-backref" href="#id7">Pre-binding and Single Session Support</a><a class="headerlink" href="#pre-binding-and-single-session-support" title="Permalink to this headline">¶</a></h3>
  171 +<span id="session-support"></span><h3><a class="toc-backref" href="#id7">Pre-binding and Single Session Support</a><a class="headerlink" href="#pre-binding-and-single-session-support" title="Permalink to this headline">¶</a></h3>
172 172 <p>It&#8217;s possible to enable single-site login, whereby users already
173 173 authenticated in your website will also automatically be logged in on the chat server,
174 174 but this will require custom code on your server.</p>
... ... @@ -176,7 +176,7 @@ but this will require custom code on your server.&lt;/p&gt;
176 176 <div class="admonition note">
177 177 <p class="first admonition-title">Note</p>
178 178 <p class="last">If you want to enable single session support, make sure to pass <strong>prebind: true</strong>
179   -when you call <strong>converse.initialize</strong> (see ./main.js).</p>
  179 +when you call <strong>converse.initialize</strong> (see ./index.html).</p>
180 180 </div>
181 181 <p>When you authenticate to the XMPP server on your backend, you&#8217;ll receive two
182 182 tokens, RID (request ID) and SID (session ID).</p>
... ... @@ -209,17 +209,30 @@ connection object.&lt;/p&gt;
209 209 </div>
210 210 <div class="section" id="quickstart-to-get-a-demo-up-and-running">
211 211 <h1><a class="toc-backref" href="#id8">Quickstart (to get a demo up and running)</a><a class="headerlink" href="#quickstart-to-get-a-demo-up-and-running" title="Permalink to this headline">¶</a></h1>
212   -<p>When you download a specific release of <em>Converse.js</em>, say for example version 0.3,
213   -there will be two minified files inside the zip file.</p>
214   -<p>For version 0.3 they will be:</p>
  212 +<p>When you download a specific release of <em>Converse.js</em> there will be two minified files inside the zip file.</p>
215 213 <ul class="simple">
216   -<li>converse.0.3.min.js</li>
217   -<li>converse.0.3.min.css</li>
  214 +<li>converse.min.js</li>
  215 +<li>converse.min.css</li>
218 216 </ul>
219   -<p>You can include these two files in your website via the <em>script</em> and <em>link</em>
  217 +<p>You can include these two files inside the <em>&lt;head&gt;</em> element of your website via the <em>script</em> and <em>link</em>
220 218 tags:</p>
221   -<div class="highlight-python"><pre>&lt;link rel="stylesheet" type="text/css" media="screen" href="converse.0.3.min.css"&gt;
222   -&lt;script src="converse.0.3.min.js"&gt;&lt;/script&gt;</pre>
  219 +<div class="highlight-python"><pre>&lt;link rel="stylesheet" type="text/css" media="screen" href="converse.min.css"&gt;
  220 +&lt;script src="converse.min.js"&gt;&lt;/script&gt;</pre>
  221 +</div>
  222 +<p>Then, at the bottom of your page, after the closing <em>&lt;/body&gt;</em> element, put the
  223 +following inline Javascript code:</p>
  224 +<div class="highlight-python"><pre>&lt;script&gt;
  225 + converse.initialize({
  226 + auto_list_rooms: false,
  227 + auto_subscribe: false,
  228 + bosh_service_url: 'https://bind.opkode.im', // Please use this connection manager only for testing purposes
  229 + hide_muc_server: false,
  230 + i18n: locales.en, // Refer to ./locale/locales.js to see which locales are supported
  231 + prebind: false,
  232 + show_controlbox_by_default: true,
  233 + xhr_user_search: false
  234 + });
  235 +&lt;/script&gt;</pre>
223 236 </div>
224 237 <p>The <em>index.html</em> file inside the Converse.js folder serves as a nice usable
225 238 example of this.</p>
... ... @@ -229,7 +242,7 @@ practical.&lt;/p&gt;
229 242 <p>You&#8217;ll most likely want to implement some kind of single-signon solution for
230 243 your website, where users authenticate once in your website and then stay
231 244 logged into their XMPP session upon page reload.</p>
232   -<p>For more info on this, read <a href="#id28"><span class="problematic" id="id29">`Session Support`_</span></a>.</p>
  245 +<p>For more info on this, read: <a class="reference internal" href="#pre-binding-and-single-session-support">Pre-binding and Single Session Support</a>.</p>
233 246 <p>You might also want to have more fine-grained control of what gets included in
234 247 the minified Javascript file. Read <a class="reference internal" href="#configuration">Configuration</a> and <a class="reference internal" href="#minification">Minification</a> for more info on how to do
235 248 that.</p>
... ... @@ -241,6 +254,8 @@ you&amp;#8217;ll want to configure &lt;em&gt;Converse.js&lt;/em&gt; to suit your needs before yo
241 254 on your website.</p>
242 255 <p><em>Converse.js</em> is passed its configuration settings when you call its
243 256 <em>initialize</em> method.</p>
  257 +<p>You&#8217;ll most likely want to call the <em>initialize</em> method in your HTML page. For
  258 +an example of how this is done, please see the bottom of the <em>./index.html</em> page.</p>
244 259 <p>Please refer to the <a class="reference internal" href="#configuration-variables">Configuration variables</a> section below for info on
245 260 all the available configuration settings.</p>
246 261 <p>After you have configured <em>Converse.js</em>, you&#8217;ll have to regenerate the minified
... ... @@ -357,6 +372,15 @@ manager, NPM.&lt;/p&gt;
357 372 </div>
358 373 <div class="section" id="translations">
359 374 <h1><a class="toc-backref" href="#id23">Translations</a><a class="headerlink" href="#translations" title="Permalink to this headline">¶</a></h1>
  375 +<div class="admonition note">
  376 +<p class="first admonition-title">Note</p>
  377 +<p class="last">Translations take up a lot of space and will bloat your minified file.
  378 +At the time of writing, all the translations add about 50KB of extra data to
  379 +the minified javascript file. Therefore, make sure to only
  380 +include those languages that you intend to support and remove from
  381 +./locale/locales.js those which you don&#8217;t need. Remember to rebuild the
  382 +minified file afterwards.</p>
  383 +</div>
360 384 <p>The gettext POT file located in ./locale/converse.pot is the template
361 385 containing all translations and from which for each language an individual PO
362 386 file is generated.</p>
... ...
src/colab/static/conversejs/docs/html/objects.inv
No preview for this file type
src/colab/static/conversejs/docs/html/searchindex.js
1   -Search.setIndex({objects:{},terms:{all:0,code:0,partial:0,queri:0,webchat:0,follow:0,middl:0,depend:0,sensit:0,sorri:0,those:0,under:0,string:0,fals:0,mechan:0,jack:0,veri:0,list:0,pleas:0,prevent:0,past:0,second:0,pass:0,download:0,further:0,fullnam:0,click:0,even:0,index:0,what:0,hide:0,section:0,current:0,version:0,"new":0,net:0,"public":0,widget:0,gener:0,here:0,valu:0,box:0,convert:0,convers:0,mysit:0,fetch:0,implement:0,via:0,extra:0,apach:0,ask:0,href:0,org:0,auto_list_room:0,instal:0,from:0,zip:0,commun:0,doubl:0,two:0,websit:0,stylesheet:0,call:0,recommend:0,type:0,until:0,tightli:0,more:0,yahoo:0,must:0,room:0,setup:[],work:0,xhr:0,can:0,lc_messag:0,purpos:0,root:0,blogpost:0,control:0,quickstart:0,share:0,templat:0,tag:0,proprietari:0,explor:0,onlin:0,occup:0,end:0,goal:0,write:0,how:0,sid:0,instead:0,css:0,updat:0,npm:0,regener:0,product:0,resourc:0,after:0,usabl:0,befor:0,callback:0,underscor:0,data:0,demonstr:0,man:0,practic:0,bind:0,show_controlbox_by_default:0,django:0,inform:0,order:0,chatbox:0,xmpp:0,over:0,through:0,streamlin:0,snippet:0,jid:0,directli:0,fit:0,pend:0,hidden:0,therefor:0,might:0,them:0,anim:0,"return":0,thei:0,initi:0,front:0,now:0,introduct:0,name:0,edit:0,authent:0,token:0,ejabberd:0,each:0,side:0,mean:0,domain:0,individu:0,realli:0,legwork:0,connect:0,happen:0,extract:0,special:0,variabl:0,shown:0,open:0,content:0,rel:0,internet:0,plural:0,factori:0,po2json:0,proxi:0,insid:0,standard:0,standalon:0,ajax:0,put:0,succesfulli:0,could:0,success:0,keep:0,yui:0,first:0,origin:0,softwar:0,render:0,onc:0,hoop:0,lastnam:0,number:0,yourself:0,restrict:0,alreadi:0,owner:0,jabber:0,differ:0,script:0,top:0,messag:0,attach:0,attack:0,jed:0,luckili:0,option:0,tool:0,specifi:0,compressor:0,part:0,exactli:0,than:0,serv:0,jump:0,kind:0,provid:0,remov:0,bridg:0,toward:[],browser:0,pre:0,sai:0,saa:0,modern:0,ani:0,packag:0,have:0,tabl:0,need:0,moffitt:0,element:0,bosh_service_url:0,prebind:0,min:0,latter:0,note:0,also:0,contact:0,build:0,which:0,singl:0,sure:0,roster:0,track:0,object:0,most:0,deploi:0,homepag:0,"class":0,don:0,url:0,request:0,face:0,runtim:0,xdomainrequest:0,show:0,german:0,text:0,session:0,fine:0,find:0,onli:0,locat:0,just:0,configur:0,solut:0,should:0,folder:0,local:0,meant:0,get:0,opkod:0,cannot:0,deploy:0,requir:0,enabl:0,emb:0,method:0,reload:0,integr:0,contain:0,where:0,set:0,stroph:0,see:0,close:0,statu:0,state:0,reus:0,between:0,experi:0,hide_muc_serv:0,attribut:0,kei:0,screen:0,javascript:0,conjunct:[],job:0,bosh:0,cor:0,instant:0,shortliv:0,conversej:0,etc:0,grain:0,mani:0,login:0,com:0,load:0,instanti:0,pot:0,backend:0,creat:0,json:0,much:0,besid:0,subscrib:0,msgmerg:0,great:0,minifi:0,togeth:0,i18n:0,present:0,multi:0,main:0,servic:0,plugin:0,defin:0,file:0,helper:0,demo:0,auto_subscrib:0,site:0,rid:0,minim:0,receiv:0,media:0,make:0,minif:0,cross:0,same:0,html:0,chatroom:0,signon:0,http:0,webserv:0,optim:0,upon:0,hand:0,user:0,xhr_user_search:0,recent:0,stateless:0,markup:0,person:[],exampl:0,command:0,wherebi:0,thi:0,choos:0,usual:0,plural_form:0,protocol:0,firstnam:0,languag:0,web:0,xmlhttprequest:0,had:0,add:0,valid:0,input:0,yuicompressor:0,match:0,applic:0,format:0,read:0,nginx:0,traffic:0,xss:0,like:0,specif:0,server:0,benefit:0,necessari:0,either:0,page:0,deal:0,nplural:0,some:0,back:0,librari:0,though:0,overcom:0,refer:0,run:0,host:0,panel:0,src:0,about:0,obj:[],controlbox:0,unfortun:0,act:0,own:0,encod:0,automat:0,wrap:0,your:0,manag:0,log:0,wai:0,transfer:0,support:0,custom:0,avail:0,start:[],includ:0,lot:0,suit:0,"var":0,"function":0,properli:0,form:0,bundl:0,link:0,translat:0,synonym:0,"true":0,congratul:0,requirej:0,info:0,made:0,locale_data:0,possibl:0,"default":0,below:0,toggl:0,otherwis:0,problem:0,expect:0,featur:0,onconnect:0,exist:0,chat:0,want:0,when:0,detail:0,gettext:0,field:0,other:0,test:0,you:0,nice:0,node:0,releas:0,stai:0,lang:0,longer:0,getjson:0},objtypes:{},titles:["Introduction"],objnames:{},filenames:["index"]})
2 1 \ No newline at end of file
  2 +Search.setIndex({objects:{},terms:{all:0,code:0,partial:0,queri:0,webchat:0,follow:0,middl:0,depend:0,sensit:0,sorri:0,those:0,under:0,string:0,fals:0,mechan:0,jack:0,veri:0,list:0,pleas:0,prevent:0,past:0,second:0,pass:0,download:0,further:0,fullnam:0,click:0,even:0,index:0,what:0,hide:0,section:0,current:0,version:[],"new":0,net:0,"public":0,widget:0,gener:0,here:0,bodi:0,valu:0,box:0,convert:0,convers:0,mysit:0,fetch:0,implement:0,via:0,extra:0,apach:0,ask:0,href:0,org:0,auto_list_room:0,instal:0,from:0,zip:0,commun:0,doubl:0,two:0,websit:0,stylesheet:0,call:0,recommend:0,type:0,until:0,tightli:0,more:0,yahoo:0,must:0,room:0,setup:[],work:0,xhr:0,can:0,lc_messag:0,purpos:0,root:0,blogpost:0,control:0,quickstart:0,share:0,templat:0,tag:0,proprietari:0,explor:0,onlin:0,occup:0,end:0,goal:0,write:0,how:0,sid:0,instead:0,css:0,updat:0,npm:0,regener:0,product:0,resourc:0,after:0,usabl:0,befor:0,callback:0,underscor:0,data:0,demonstr:0,man:0,practic:0,bind:0,show_controlbox_by_default:0,django:0,inform:0,order:0,chatbox:0,xmpp:0,over:0,through:0,streamlin:0,snippet:0,jid:0,directli:0,fit:0,pend:0,hidden:0,therefor:0,might:0,them:0,anim:0,"return":0,thei:0,initi:0,front:0,now:0,introduct:0,name:0,edit:0,authent:0,token:0,ejabberd:0,each:0,side:0,mean:0,domain:0,individu:0,realli:0,legwork:0,connect:0,happen:0,extract:0,special:0,variabl:0,shown:0,space:0,open:0,content:0,rel:0,internet:0,plural:0,factori:0,po2json:0,proxi:0,insid:0,standard:0,standalon:0,ajax:0,put:0,succesfulli:0,afterward:0,could:0,success:0,keep:0,yui:0,first:0,origin:0,softwar:0,render:0,onc:0,hoop:0,lastnam:0,number:0,yourself:0,restrict:0,alreadi:0,done:0,owner:0,jabber:0,differ:0,script:0,top:0,messag:0,attach:0,attack:0,jed:0,luckili:0,option:0,tool:0,specifi:0,compressor:0,part:0,exactli:0,than:0,serv:0,jump:0,kind:0,bloat:0,provid:0,remov:0,bridg:0,toward:[],browser:0,pre:0,sai:[],saa:0,modern:0,ani:0,packag:0,have:0,tabl:0,need:0,moffitt:0,element:0,bosh_service_url:0,prebind:0,min:0,latter:0,note:0,also:0,contact:0,build:0,which:0,singl:0,sure:0,roster:0,track:0,object:0,most:0,deploi:0,homepag:0,"class":0,don:0,url:0,request:0,face:0,runtim:0,xdomainrequest:0,show:0,german:0,text:0,session:0,fine:0,find:0,onli:0,locat:0,just:0,configur:0,solut:0,should:0,folder:0,local:0,meant:0,get:0,opkod:0,cannot:0,deploy:0,requir:0,enabl:0,emb:0,method:0,reload:0,integr:0,contain:0,where:0,set:0,stroph:0,see:0,close:0,statu:0,state:0,reus:0,between:0,experi:0,hide_muc_serv:0,attribut:0,kei:0,screen:0,javascript:0,conjunct:[],job:0,bosh:0,cor:0,instant:0,shortliv:0,conversej:0,etc:0,grain:0,mani:0,login:0,com:0,load:0,instanti:0,pot:0,backend:0,creat:0,rebuild:0,json:0,much:0,besid:0,subscrib:0,msgmerg:0,great:0,minifi:0,togeth:0,i18n:0,present:0,multi:0,main:0,servic:0,plugin:0,defin:0,file:0,helper:0,demo:0,auto_subscrib:0,site:0,rid:0,minim:0,receiv:0,media:0,make:0,minif:0,cross:0,same:0,html:0,chatroom:0,signon:0,http:0,webserv:0,optim:0,upon:0,hand:0,"50kb":0,user:0,xhr_user_search:0,recent:0,stateless:0,markup:0,person:[],exampl:0,command:0,wherebi:0,thi:0,choos:0,usual:0,plural_form:0,protocol:0,firstnam:0,languag:0,web:0,xmlhttprequest:0,had:0,add:0,valid:0,input:0,yuicompressor:0,match:0,take:0,applic:0,format:0,read:0,nginx:0,traffic:0,xss:0,like:0,specif:0,server:0,benefit:0,necessari:0,either:0,page:0,deal:0,nplural:0,some:0,back:0,librari:0,bottom:0,though:0,overcom:0,refer:0,run:0,host:0,panel:0,src:0,about:0,obj:[],controlbox:0,unfortun:0,act:0,own:0,encod:0,automat:0,wrap:0,your:0,manag:0,log:0,wai:0,transfer:0,support:0,custom:0,avail:0,start:[],includ:0,lot:0,suit:0,"var":0,"function":0,head:0,properli:0,form:0,bundl:0,link:0,translat:0,synonym:0,inlin:0,"true":0,congratul:0,requirej:0,info:0,made:0,locale_data:0,possibl:0,"default":0,below:0,toggl:0,otherwis:0,problem:0,expect:0,featur:0,onconnect:0,"100kb":[],exist:0,chat:0,want:0,when:0,detail:0,gettext:0,field:0,other:0,rememb:0,test:0,you:0,nice:0,node:0,intend:0,releas:0,stai:0,lang:0,longer:0,getjson:0,time:0},objtypes:{},titles:["Introduction"],objnames:{},filenames:["index"]})
3 3 \ No newline at end of file
... ...
src/colab/static/conversejs/docs/source/index.rst
... ... @@ -99,6 +99,8 @@ website. This will remove the need for any cross-domain XHR support.
99 99 Server-side authentication
100 100 ==========================
101 101  
  102 +.. _`Session Support`:
  103 +
102 104 Pre-binding and Single Session Support
103 105 --------------------------------------
104 106  
... ... @@ -110,7 +112,7 @@ Jack Moffitt has a great `blogpost`_ about this and even provides an `example Dj
110 112  
111 113 .. Note::
112 114 If you want to enable single session support, make sure to pass **prebind: true**
113   - when you call **converse.initialize** (see ./main.js).
  115 + when you call **converse.initialize** (see ./index.html).
114 116  
115 117 When you authenticate to the XMPP server on your backend, you'll receive two
116 118 tokens, RID (request ID) and SID (session ID).
... ... @@ -153,21 +155,36 @@ connection object.
153 155 Quickstart (to get a demo up and running)
154 156 =========================================
155 157  
156   -When you download a specific release of *Converse.js*, say for example version 0.3,
157   -there will be two minified files inside the zip file.
158   -
159   -For version 0.3 they will be:
  158 +When you download a specific release of *Converse.js* there will be two minified files inside the zip file.
160 159  
161   -* converse.0.3.min.js
162   -* converse.0.3.min.css
  160 +* converse.min.js
  161 +* converse.min.css
163 162  
164   -You can include these two files in your website via the *script* and *link*
  163 +You can include these two files inside the *<head>* element of your website via the *script* and *link*
165 164 tags:
166 165  
167 166 ::
168 167  
169   - <link rel="stylesheet" type="text/css" media="screen" href="converse.0.3.min.css">
170   - <script src="converse.0.3.min.js"></script>
  168 + <link rel="stylesheet" type="text/css" media="screen" href="converse.min.css">
  169 + <script src="converse.min.js"></script>
  170 +
  171 +Then, at the bottom of your page, after the closing *</body>* element, put the
  172 +following inline Javascript code:
  173 +
  174 +::
  175 +
  176 + <script>
  177 + converse.initialize({
  178 + auto_list_rooms: false,
  179 + auto_subscribe: false,
  180 + bosh_service_url: 'https://bind.opkode.im', // Please use this connection manager only for testing purposes
  181 + hide_muc_server: false,
  182 + i18n: locales.en, // Refer to ./locale/locales.js to see which locales are supported
  183 + prebind: false,
  184 + show_controlbox_by_default: true,
  185 + xhr_user_search: false
  186 + });
  187 + </script>
171 188  
172 189 The *index.html* file inside the Converse.js folder serves as a nice usable
173 190 example of this.
... ... @@ -180,7 +197,7 @@ You&#39;ll most likely want to implement some kind of single-signon solution for
180 197 your website, where users authenticate once in your website and then stay
181 198 logged into their XMPP session upon page reload.
182 199  
183   -For more info on this, read `Session Support`_.
  200 +For more info on this, read: `Pre-binding and Single Session Support`_.
184 201  
185 202 You might also want to have more fine-grained control of what gets included in
186 203 the minified Javascript file. Read `Configuration`_ and `Minification`_ for more info on how to do
... ... @@ -198,6 +215,9 @@ on your website.
198 215 *Converse.js* is passed its configuration settings when you call its
199 216 *initialize* method.
200 217  
  218 +You'll most likely want to call the *initialize* method in your HTML page. For
  219 +an example of how this is done, please see the bottom of the *./index.html* page.
  220 +
201 221 Please refer to the `Configuration variables`_ section below for info on
202 222 all the available configuration settings.
203 223  
... ... @@ -358,6 +378,14 @@ CSS can be minimized with Yahoo&#39;s yuicompressor tool:
358 378 Translations
359 379 ============
360 380  
  381 +.. Note ::
  382 + Translations take up a lot of space and will bloat your minified file.
  383 + At the time of writing, all the translations add about 50KB of extra data to
  384 + the minified javascript file. Therefore, make sure to only
  385 + include those languages that you intend to support and remove from
  386 + ./locale/locales.js those which you don't need. Remember to rebuild the
  387 + minified file afterwards.
  388 +
361 389 The gettext POT file located in ./locale/converse.pot is the template
362 390 containing all translations and from which for each language an individual PO
363 391 file is generated.
... ...
src/colab/static/conversejs/index.html
... ... @@ -19,8 +19,8 @@
19 19 <h1 id="project_title"><a href="http://conversejs.org">Converse.js</a></h1>
20 20 <h2 id="project_tagline">An XMPP chat client for your website</h2>
21 21 <section id="downloads">
22   - <a class="zip_download_link" href="https://github.com/jcbrand/converse.js/archive/v0.3.zip">Download the latest release as a .zip file</a>
23   - <a class="tar_download_link" href="https://github.com/jcbrand/converse.js/archive/v0.3.tar.gz">Download the latest release as a tar.gz file</a>
  22 + <a class="zip_download_link" href="https://github.com/jcbrand/converse.js/archive/v0.4.zip">Download the latest release as a .zip file</a>
  23 + <a class="tar_download_link" href="https://github.com/jcbrand/converse.js/archive/v0.4.tar.gz">Download the latest release as a tar.gz file</a>
24 24 </section>
25 25 </header>
26 26 </div>
... ... @@ -48,7 +48,7 @@
48 48 </p>
49 49  
50 50 <p>If you have integrated <em>Converse.js</em> into any other CMS or framework,
51   - <a href="http://opkode.com/contact" target="_blank">please let me know</a> and I'll mention it on this page.</p>
  51 + <a href="http://opkode.com/contact.html" target="_blank">please let me know</a> and I'll mention it on this page.</p>
52 52  
53 53 <h2>Features</h2>
54 54 <ul>
... ... @@ -164,4 +164,18 @@
164 164 </script>
165 165 <script type="text/javascript">try { var pageTracker = _gat._getTracker("UA-2128260-8"); pageTracker._trackPageview(); } catch(err) {}</script>
166 166 </body>
  167 +<script>
  168 + require(["jquery", "converse"], function ($, converse) {
  169 + converse.initialize({
  170 + auto_list_rooms: false,
  171 + auto_subscribe: false,
  172 + bosh_service_url: 'https://bind.opkode.im', // Please use this connection manager only for testing purposes
  173 + hide_muc_server: false,
  174 + i18n: locales.en, // Refer to ./locale/locales.js to see which locales are supported
  175 + prebind: false,
  176 + show_controlbox_by_default: true,
  177 + xhr_user_search: false
  178 + });
  179 + });
  180 +</script>
167 181 </html>
... ...
src/colab/static/conversejs/locale/es/LC_MESSAGES/converse.json 0 → 100644
... ... @@ -0,0 +1,460 @@
  1 +{
  2 + "converse": {
  3 + "": {
  4 + "Project-Id-Version": "Converse.js 0.4",
  5 + "Report-Msgid-Bugs-To": "",
  6 + "POT-Creation-Date": "2013-06-01 23:03+0200",
  7 + "PO-Revision-Date": "2013-07-22 18:13-0400",
  8 + "Last-Translator": "Leonardo J. Caballero G. <leonardocaballero@gmail.com>",
  9 + "Language-Team": "Spanish",
  10 + "Language": "es",
  11 + "MIME-Version": "1.0",
  12 + "Content-Type": "text/plain; charset=ASCII",
  13 + "Content-Transfer-Encoding": "8bit",
  14 + "Plural-Forms": "nplurals=2; plural=(n != 1);",
  15 + "domain": "converse",
  16 + "lang": "es",
  17 + "plural_forms": "nplurals=2; plural=(n != 1);"
  18 + },
  19 + "Show this menu": [
  20 + null,
  21 + "Mostrar este menú"
  22 + ],
  23 + "Write in the third person": [
  24 + null,
  25 + "Escribir en tercera persona"
  26 + ],
  27 + "Remove messages": [
  28 + null,
  29 + "Eliminar mensajes"
  30 + ],
  31 + "Personal message": [
  32 + null,
  33 + "Mensaje personal"
  34 + ],
  35 + "Contacts": [
  36 + null,
  37 + "Contactos"
  38 + ],
  39 + "Online": [
  40 + null,
  41 + "En linea"
  42 + ],
  43 + "Busy": [
  44 + null,
  45 + "Ocupado"
  46 + ],
  47 + "Away": [
  48 + null,
  49 + "Ausente"
  50 + ],
  51 + "Offline": [
  52 + null,
  53 + "Desconectado"
  54 + ],
  55 + "Click to add new chat contacts": [
  56 + null,
  57 + "Haga clic para agregar nuevos contactos al chat"
  58 + ],
  59 + "Add a contact": [
  60 + null,
  61 + "Agregar un contacto"
  62 + ],
  63 + "Contact username": [
  64 + null,
  65 + "Nombre de usuario de contacto"
  66 + ],
  67 + "Add": [
  68 + null,
  69 + "Agregar"
  70 + ],
  71 + "Contact name": [
  72 + null,
  73 + "Nombre de contacto"
  74 + ],
  75 + "Search": [
  76 + null,
  77 + "Búsqueda"
  78 + ],
  79 + "No users found": [
  80 + null,
  81 + "Sin usuarios encontrados"
  82 + ],
  83 + "Click to add as a chat contact": [
  84 + null,
  85 + "Haga clic para agregar como un contacto de chat"
  86 + ],
  87 + "Click to open this room": [
  88 + null,
  89 + "Haga clic para abrir esta sala"
  90 + ],
  91 + "Show more information on this room": [
  92 + null,
  93 + "Mostrar mas información en esta sala"
  94 + ],
  95 + "Description:": [
  96 + null,
  97 + "Descripción"
  98 + ],
  99 + "Occupants:": [
  100 + null,
  101 + "Ocupantes:"
  102 + ],
  103 + "Features:": [
  104 + null,
  105 + "Características:"
  106 + ],
  107 + "Requires authentication": [
  108 + null,
  109 + "Autenticación requerida"
  110 + ],
  111 + "Hidden": [
  112 + null,
  113 + "Oculto"
  114 + ],
  115 + "Requires an invitation": [
  116 + null,
  117 + "Requiere una invitación"
  118 + ],
  119 + "Moderated": [
  120 + null,
  121 + "Moderado"
  122 + ],
  123 + "Non-anonymous": [
  124 + null,
  125 + "No usuario anónimo"
  126 + ],
  127 + "Open room": [
  128 + null,
  129 + "Abrir sala"
  130 + ],
  131 + "Permanent room": [
  132 + null,
  133 + "Sala permanente"
  134 + ],
  135 + "Public": [
  136 + null,
  137 + "Publico"
  138 + ],
  139 + "Semi-anonymous": [
  140 + null,
  141 + "Semi anónimo"
  142 + ],
  143 + "Temporary room": [
  144 + null,
  145 + "Sala temporal"
  146 + ],
  147 + "Unmoderated": [
  148 + null,
  149 + "Sin moderar"
  150 + ],
  151 + "Rooms": [
  152 + null,
  153 + "Salas"
  154 + ],
  155 + "Room name": [
  156 + null,
  157 + "Nombre de sala"
  158 + ],
  159 + "Nickname": [
  160 + null,
  161 + "Apodo"
  162 + ],
  163 + "Server": [
  164 + null,
  165 + "Servidor"
  166 + ],
  167 + "Join": [
  168 + null,
  169 + "Unirse"
  170 + ],
  171 + "Show rooms": [
  172 + null,
  173 + "Mostrar salas"
  174 + ],
  175 + "No rooms on %1$s": [
  176 + null,
  177 + "Sin salas en %1$s"
  178 + ],
  179 + "Rooms on %1$s": [
  180 + null,
  181 + "Salas en %1$s"
  182 + ],
  183 + "Set chatroom topic": [
  184 + null,
  185 + "Defina tema de sala de chat"
  186 + ],
  187 + "Kick user from chatroom": [
  188 + null,
  189 + "Expulsar usuario de sala de chat."
  190 + ],
  191 + "Ban user from chatroom": [
  192 + null,
  193 + "Bloquear usuario de sala de chat."
  194 + ],
  195 + "Message": [
  196 + null,
  197 + "Mensaje"
  198 + ],
  199 + "Save": [
  200 + null,
  201 + "Guardar"
  202 + ],
  203 + "Cancel": [
  204 + null,
  205 + "Cancelar"
  206 + ],
  207 + "An error occurred while trying to save the form.": [
  208 + null,
  209 + "Un error ocurrido mientras trataba de guardar el formulario."
  210 + ],
  211 + "This chatroom requires a password": [
  212 + null,
  213 + "Esta sala de chat requiere una contraseña."
  214 + ],
  215 + "Password: ": [
  216 + null,
  217 + "Contraseña: "
  218 + ],
  219 + "Submit": [
  220 + null,
  221 + "Enviar"
  222 + ],
  223 + "This room is not anonymous": [
  224 + null,
  225 + "Esta sala no es para usuarios anónimos"
  226 + ],
  227 + "This room now shows unavailable members": [
  228 + null,
  229 + "Esta sala ahora muestra los miembros no disponibles"
  230 + ],
  231 + "This room does not show unavailable members": [
  232 + null,
  233 + "Esta sala no muestra los miembros no disponibles"
  234 + ],
  235 + "Non-privacy-related room configuration has changed": [
  236 + null,
  237 + "Configuración de la sala para no relacionada con la privacidad ha sido cambiada"
  238 + ],
  239 + "Room logging is now enabled": [
  240 + null,
  241 + "El registro de la sala ahora está habilitada"
  242 + ],
  243 + "Room logging is now disabled": [
  244 + null,
  245 + "El registro de la sala ahora está deshabilitada"
  246 + ],
  247 + "This room is now non-anonymous": [
  248 + null,
  249 + "Esta sala ahora es para los usuarios no anónimos"
  250 + ],
  251 + "This room is now semi-anonymous": [
  252 + null,
  253 + "Esta sala ahora es para los usuarios semi-anónimos"
  254 + ],
  255 + "This room is now fully-anonymous": [
  256 + null,
  257 + "Esta sala ahora es para los usuarios completamente-anónimos"
  258 + ],
  259 + "A new room has been created": [
  260 + null,
  261 + "Una nueva sala ha sido creada"
  262 + ],
  263 + "Your nickname has been changed": [
  264 + null,
  265 + "Su apodo ha sido cambiado"
  266 + ],
  267 + "<strong>%1$s</strong> has been banned": [
  268 + null,
  269 + "<strong>%1$s</strong> ha sido prohibido"
  270 + ],
  271 + "<strong>%1$s</strong> has been kicked out": [
  272 + null,
  273 + "<strong>%1$s</strong> ha sido expulsado"
  274 + ],
  275 + "<strong>%1$s</strong> has been removed because of an affiliation change": [
  276 + null,
  277 + "<strong>%1$s</strong> ha sido eliminado debido a un cambio de afiliación"
  278 + ],
  279 + "<strong>%1$s</strong> has been removed for not being a member": [
  280 + null,
  281 + "<strong>%1$s</strong> ha sido eliminado debido a que no es miembro"
  282 + ],
  283 + "You have been banned from this room": [
  284 + null,
  285 + "Usted ha sido prohibido de esta sala"
  286 + ],
  287 + "You have been kicked from this room": [
  288 + null,
  289 + "Usted ha sido expulsado de esta sala"
  290 + ],
  291 + "You have been removed from this room because of an affiliation change": [
  292 + null,
  293 + "Usted ha sido eliminado de esta sala debido a un cambio de afiliación"
  294 + ],
  295 + "You have been removed from this room because the room has changed to members-only and you're not a member": [
  296 + null,
  297 + "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"
  298 + ],
  299 + "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
  300 + null,
  301 + "Usted ha sido eliminado de esta sala debido al servicio MUC (Multi-user chat) está apagado."
  302 + ],
  303 + "You are not on the member list of this room": [
  304 + null,
  305 + "Usted no está en la lista de miembros de esta sala"
  306 + ],
  307 + "No nickname was specified": [
  308 + null,
  309 + "Sin apodo especificado"
  310 + ],
  311 + "You are not allowed to create new rooms": [
  312 + null,
  313 + "A usted no se le permite crear nuevas salas"
  314 + ],
  315 + "Your nickname doesn't conform to this room's policies": [
  316 + null,
  317 + "Su apodo no se ajusta a la política de esta sala"
  318 + ],
  319 + "Your nickname is already taken": [
  320 + null,
  321 + "Su apodo ya ha sido tomando por otro usuario"
  322 + ],
  323 + "This room does not (yet) exist": [
  324 + null,
  325 + "Esta sala (aún) no existe"
  326 + ],
  327 + "This room has reached it's maximum number of occupants": [
  328 + null,
  329 + "Esta sala ha alcanzado su número máximo de ocupantes"
  330 + ],
  331 + "Topic set by %1$s to: %2$s": [
  332 + null,
  333 + "Tema fijado por %1$s a: %2$s"
  334 + ],
  335 + "This user is a moderator": [
  336 + null,
  337 + "Este usuario es un moderador"
  338 + ],
  339 + "This user can send messages in this room": [
  340 + null,
  341 + "Este usuario puede enviar mensajes en esta sala"
  342 + ],
  343 + "This user can NOT send messages in this room": [
  344 + null,
  345 + "Este usuario NO puede enviar mensajes en esta"
  346 + ],
  347 + "Click to chat with this contact": [
  348 + null,
  349 + "Haga clic para conversar con este contacto"
  350 + ],
  351 + "Click to remove this contact": [
  352 + null,
  353 + "Haga clic para eliminar este contacto"
  354 + ],
  355 + "Contact requests": [
  356 + null,
  357 + "Solicitudes de contacto"
  358 + ],
  359 + "My contacts": [
  360 + null,
  361 + "Mi contactos"
  362 + ],
  363 + "Pending contacts": [
  364 + null,
  365 + "Contactos pendientes"
  366 + ],
  367 + "Custom status": [
  368 + null,
  369 + "Personalice estatus"
  370 + ],
  371 + "Click to change your chat status": [
  372 + null,
  373 + "Haga clic para cambiar su estatus de chat"
  374 + ],
  375 + "Click here to write a custom status message": [
  376 + null,
  377 + "Haga clic para escribir un mensaje de estatus personalizado"
  378 + ],
  379 + "online": [
  380 + null,
  381 + "en linea"
  382 + ],
  383 + "busy": [
  384 + null,
  385 + "ocupado"
  386 + ],
  387 + "away for long": [
  388 + null,
  389 + "lejos por mucho tiempo"
  390 + ],
  391 + "away": [
  392 + null,
  393 + "ausente"
  394 + ],
  395 + "I am %1$s": [
  396 + null,
  397 + "Yo soy %1$s"
  398 + ],
  399 + "Sign in": [
  400 + null,
  401 + "Registro"
  402 + ],
  403 + "XMPP/Jabber Username:": [
  404 + null,
  405 + "Nombre de usuario XMPP/Jabber"
  406 + ],
  407 + "Password:": [
  408 + null,
  409 + "Contraseña:"
  410 + ],
  411 + "Log In": [
  412 + null,
  413 + "Iniciar sesión"
  414 + ],
  415 + "BOSH Service URL:": [
  416 + null,
  417 + "URL del servicio BOSH:"
  418 + ],
  419 + "Connected": [
  420 + null,
  421 + "Conectado"
  422 + ],
  423 + "Disconnected": [
  424 + null,
  425 + "Desconectado"
  426 + ],
  427 + "Error": [
  428 + null,
  429 + "Error"
  430 + ],
  431 + "Connecting": [
  432 + null,
  433 + "Conectando"
  434 + ],
  435 + "Connection Failed": [
  436 + null,
  437 + "Conexión fallo"
  438 + ],
  439 + "Authenticating": [
  440 + null,
  441 + "Autenticando"
  442 + ],
  443 + "Authentication Failed": [
  444 + null,
  445 + "Autenticación fallo"
  446 + ],
  447 + "Disconnecting": [
  448 + null,
  449 + "Desconectando"
  450 + ],
  451 + "Attached": [
  452 + null,
  453 + "Adjuntado"
  454 + ],
  455 + "Online Contacts": [
  456 + null,
  457 + "Contactos en linea"
  458 + ]
  459 + }
  460 +}
... ...
src/colab/static/conversejs/locale/es/LC_MESSAGES/converse.po 0 → 100644
... ... @@ -0,0 +1,493 @@
  1 +# Spanish translations for Converse.js package.
  2 +# Copyright (C) 2013 Jan-Carel Brand
  3 +# This file is distributed under the same license as the Converse.js package.
  4 +# Leonardo J. Caballero G. <leonardocaballero@gmail.com>, 2013.
  5 +msgid ""
  6 +msgstr ""
  7 +"Project-Id-Version: Converse.js 0.4\n"
  8 +"Report-Msgid-Bugs-To: \n"
  9 +"POT-Creation-Date: 2013-06-01 23:03+0200\n"
  10 +"PO-Revision-Date: 2013-07-22 18:13-0400\n"
  11 +"Last-Translator: Leonardo J. Caballero G. <leonardocaballero@gmail.com>\n"
  12 +"Language-Team: ES <LL@li.org>\n"
  13 +"MIME-Version: 1.0\n"
  14 +"Content-Type: text/plain; charset=UTF-8\n"
  15 +"Content-Transfer-Encoding: 8bit\n"
  16 +"Plural-Forms: nplurals=2; plural=(n != 1);\n"
  17 +"plural_forms: nplurals=2; plural=(n != 1);\n"
  18 +"Language: es\n"
  19 +"lang: es\n"
  20 +"Language-Code: es\n"
  21 +"Language-Name: Español\n"
  22 +"Preferred-Encodings: utf-8 latin1\n"
  23 +"Domain: converse\n"
  24 +"domain: converse\n"
  25 +"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"
  26 +
  27 +#: converse.js:397
  28 +#: converse.js:1128
  29 +msgid "Show this menu"
  30 +msgstr "Mostrar este menú"
  31 +
  32 +#: converse.js:398
  33 +#: converse.js:1129
  34 +msgid "Write in the third person"
  35 +msgstr "Escribir en tercera persona"
  36 +
  37 +#: converse.js:399
  38 +#: converse.js:1133
  39 +msgid "Remove messages"
  40 +msgstr "Eliminar mensajes"
  41 +
  42 +#: converse.js:539
  43 +msgid "Personal message"
  44 +msgstr "Mensaje personal"
  45 +
  46 +#: converse.js:613
  47 +msgid "Contacts"
  48 +msgstr "Contactos"
  49 +
  50 +#: converse.js:618
  51 +msgid "Online"
  52 +msgstr "En linea"
  53 +
  54 +#: converse.js:619
  55 +msgid "Busy"
  56 +msgstr "Ocupado"
  57 +
  58 +#: converse.js:620
  59 +msgid "Away"
  60 +msgstr "Ausente"
  61 +
  62 +#: converse.js:621
  63 +msgid "Offline"
  64 +msgstr "Desconectado"
  65 +
  66 +#: converse.js:628
  67 +msgid "Click to add new chat contacts"
  68 +msgstr "Haga clic para agregar nuevos contactos al chat"
  69 +
  70 +#: converse.js:628
  71 +msgid "Add a contact"
  72 +msgstr "Agregar un contacto"
  73 +
  74 +#: converse.js:637
  75 +msgid "Contact username"
  76 +msgstr "Nombre de usuario de contacto"
  77 +
  78 +#: converse.js:638
  79 +msgid "Add"
  80 +msgstr "Agregar"
  81 +
  82 +#: converse.js:646
  83 +msgid "Contact name"
  84 +msgstr "Nombre de contacto"
  85 +
  86 +#: converse.js:647
  87 +msgid "Search"
  88 +msgstr "Búsqueda"
  89 +
  90 +#: converse.js:682
  91 +msgid "No users found"
  92 +msgstr "Sin usuarios encontrados"
  93 +
  94 +#: converse.js:689
  95 +msgid "Click to add as a chat contact"
  96 +msgstr "Haga clic para agregar como un contacto de chat"
  97 +
  98 +#: converse.js:753
  99 +msgid "Click to open this room"
  100 +msgstr "Haga clic para abrir esta sala"
  101 +
  102 +#: converse.js:755
  103 +msgid "Show more information on this room"
  104 +msgstr "Mostrar mas información en esta sala"
  105 +
  106 +#: converse.js:760
  107 +msgid "Description:"
  108 +msgstr "Descripción"
  109 +
  110 +#: converse.js:761
  111 +msgid "Occupants:"
  112 +msgstr "Ocupantes:"
  113 +
  114 +#: converse.js:762
  115 +msgid "Features:"
  116 +msgstr "Características:"
  117 +
  118 +#: converse.js:764
  119 +msgid "Requires authentication"
  120 +msgstr "Autenticación requerida"
  121 +
  122 +#: converse.js:767
  123 +msgid "Hidden"
  124 +msgstr "Oculto"
  125 +
  126 +#: converse.js:770
  127 +msgid "Requires an invitation"
  128 +msgstr "Requiere una invitación"
  129 +
  130 +#: converse.js:773
  131 +msgid "Moderated"
  132 +msgstr "Moderado"
  133 +
  134 +#: converse.js:776
  135 +msgid "Non-anonymous"
  136 +msgstr "No usuario anónimo"
  137 +
  138 +#: converse.js:779
  139 +msgid "Open room"
  140 +msgstr "Abrir sala"
  141 +
  142 +#: converse.js:782
  143 +msgid "Permanent room"
  144 +msgstr "Sala permanente"
  145 +
  146 +#: converse.js:785
  147 +msgid "Public"
  148 +msgstr "Publico"
  149 +
  150 +#: converse.js:788
  151 +msgid "Semi-anonymous"
  152 +msgstr "Semi anónimo"
  153 +
  154 +#: converse.js:791
  155 +msgid "Temporary room"
  156 +msgstr "Sala temporal"
  157 +
  158 +#: converse.js:794
  159 +msgid "Unmoderated"
  160 +msgstr "Sin moderar"
  161 +
  162 +#: converse.js:800
  163 +msgid "Rooms"
  164 +msgstr "Salas"
  165 +
  166 +#: converse.js:804
  167 +msgid "Room name"
  168 +msgstr "Nombre de sala"
  169 +
  170 +#: converse.js:805
  171 +msgid "Nickname"
  172 +msgstr "Apodo"
  173 +
  174 +#: converse.js:806
  175 +msgid "Server"
  176 +msgstr "Servidor"
  177 +
  178 +#: converse.js:807
  179 +msgid "Join"
  180 +msgstr "Unirse"
  181 +
  182 +#: converse.js:808
  183 +msgid "Show rooms"
  184 +msgstr "Mostrar salas"
  185 +
  186 +#. For translators: %1$s is a variable and will be replaced with the XMPP server name
  187 +#: converse.js:841
  188 +msgid "No rooms on %1$s"
  189 +msgstr "Sin salas en %1$s"
  190 +
  191 +#. For translators: %1$s is a variable and will be
  192 +#. replaced with the XMPP server name
  193 +#: converse.js:856
  194 +msgid "Rooms on %1$s"
  195 +msgstr "Salas en %1$s"
  196 +
  197 +#: converse.js:1130
  198 +msgid "Set chatroom topic"
  199 +msgstr "Defina tema de sala de chat"
  200 +
  201 +#: converse.js:1131
  202 +msgid "Kick user from chatroom"
  203 +msgstr "Expulsar usuario de sala de chat."
  204 +
  205 +#: converse.js:1132
  206 +msgid "Ban user from chatroom"
  207 +msgstr "Prohibir usuario de sala de chat."
  208 +
  209 +#: converse.js:1159
  210 +msgid "Message"
  211 +msgstr "Mensaje"
  212 +
  213 +#: converse.js:1273
  214 +#: converse.js:2318
  215 +msgid "Save"
  216 +msgstr "Guardar"
  217 +
  218 +#: converse.js:1274
  219 +msgid "Cancel"
  220 +msgstr "Cancelar"
  221 +
  222 +#: converse.js:1321
  223 +msgid "An error occurred while trying to save the form."
  224 +msgstr "Un error ocurrido mientras trataba de guardar el formulario."
  225 +
  226 +#: converse.js:1367
  227 +msgid "This chatroom requires a password"
  228 +msgstr "Esta sala de chat requiere una contraseña."
  229 +
  230 +#: converse.js:1368
  231 +msgid "Password: "
  232 +msgstr "Contraseña: "
  233 +
  234 +#: converse.js:1369
  235 +msgid "Submit"
  236 +msgstr "Enviar"
  237 +
  238 +#: converse.js:1383
  239 +msgid "This room is not anonymous"
  240 +msgstr "Esta sala no es para usuarios anónimos"
  241 +
  242 +#: converse.js:1384
  243 +msgid "This room now shows unavailable members"
  244 +msgstr "Esta sala ahora muestra los miembros no disponibles"
  245 +
  246 +#: converse.js:1385
  247 +msgid "This room does not show unavailable members"
  248 +msgstr "Esta sala no muestra los miembros no disponibles"
  249 +
  250 +#: converse.js:1386
  251 +msgid "Non-privacy-related room configuration has changed"
  252 +msgstr "Configuración de la sala para no relacionada con la privacidad ha sido cambiada"
  253 +
  254 +#: converse.js:1387
  255 +msgid "Room logging is now enabled"
  256 +msgstr "El registro de la sala ahora está habilitada"
  257 +
  258 +#: converse.js:1388
  259 +msgid "Room logging is now disabled"
  260 +msgstr "El registro de la sala ahora está deshabilitada"
  261 +
  262 +#: converse.js:1389
  263 +msgid "This room is now non-anonymous"
  264 +msgstr "Esta sala ahora es para los usuarios no anónimos"
  265 +
  266 +#: converse.js:1390
  267 +msgid "This room is now semi-anonymous"
  268 +msgstr "Esta sala ahora es para los usuarios semi-anónimos"
  269 +
  270 +#: converse.js:1391
  271 +msgid "This room is now fully-anonymous"
  272 +msgstr "Esta sala ahora es para los usuarios completamente-anónimos"
  273 +
  274 +#: converse.js:1392
  275 +msgid "A new room has been created"
  276 +msgstr "Una nueva sala ha sido creada"
  277 +
  278 +#: converse.js:1393
  279 +msgid "Your nickname has been changed"
  280 +msgstr "Su apodo ha sido cambiado"
  281 +
  282 +#. For translations: %1$s will be replaced with the user's nickname
  283 +#. Don't translate "strong"
  284 +#. Example: <strong>jcbrand</strong> has been banned
  285 +#: converse.js:1400
  286 +msgid "<strong>%1$s</strong> has been banned"
  287 +msgstr "<strong>%1$s</strong> ha sido prohibido"
  288 +
  289 +#. For translations: %1$s will be replaced with the user's nickname
  290 +#. Don't translate "strong"
  291 +#. Example: <strong>jcbrand</strong> has been kicked out
  292 +#: converse.js:1404
  293 +msgid "<strong>%1$s</strong> has been kicked out"
  294 +msgstr "<strong>%1$s</strong> ha sido expulsado"
  295 +
  296 +#. For translations: %1$s will be replaced with the user's nickname
  297 +#. Don't translate "strong"
  298 +#. Example: <strong>jcbrand</strong> has been removed because of an affiliasion change
  299 +#: converse.js:1408
  300 +msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
  301 +msgstr "<strong>%1$s</strong> ha sido eliminado debido a un cambio de afiliación"
  302 +
  303 +#. For translations: %1$s will be replaced with the user's nickname
  304 +#. Don't translate "strong"
  305 +#. Example: <strong>jcbrand</strong> has been removed for not being a member
  306 +#: converse.js:1412
  307 +msgid "<strong>%1$s</strong> has been removed for not being a member"
  308 +msgstr "<strong>%1$s</strong> ha sido eliminado debido a que no es miembro"
  309 +
  310 +#: converse.js:1416
  311 +#: converse.js:1478
  312 +msgid "You have been banned from this room"
  313 +msgstr "Usted ha sido prohibido de esta sala"
  314 +
  315 +#: converse.js:1417
  316 +msgid "You have been kicked from this room"
  317 +msgstr "Usted ha sido expulsado de esta sala"
  318 +
  319 +#: converse.js:1418
  320 +msgid "You have been removed from this room because of an affiliation change"
  321 +msgstr "Usted ha sido eliminado de esta sala debido a un cambio de afiliación"
  322 +
  323 +#: converse.js:1419
  324 +msgid "You have been removed from this room because the room has changed to members-only and you're not a member"
  325 +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"
  326 +
  327 +#: converse.js:1420
  328 +msgid "You have been removed from this room because the MUC (Multi-user chat) service is being shut down."
  329 +msgstr "Usted ha sido eliminado de esta sala debido al servicio MUC (Multi-user chat) está apagado."
  330 +
  331 +#: converse.js:1476
  332 +msgid "You are not on the member list of this room"
  333 +msgstr "Usted no está en la lista de miembros de esta sala"
  334 +
  335 +#: converse.js:1482
  336 +msgid "No nickname was specified"
  337 +msgstr "Sin apodo especificado"
  338 +
  339 +#: converse.js:1486
  340 +msgid "You are not allowed to create new rooms"
  341 +msgstr "A usted no se le permite crear nuevas salas"
  342 +
  343 +#: converse.js:1488
  344 +msgid "Your nickname doesn't conform to this room's policies"
  345 +msgstr "Su apodo no se ajusta a la política de esta sala"
  346 +
  347 +#: converse.js:1490
  348 +msgid "Your nickname is already taken"
  349 +msgstr "Su apodo ya ha sido tomando por otro usuario"
  350 +
  351 +#: converse.js:1492
  352 +msgid "This room does not (yet) exist"
  353 +msgstr "Esta sala (aún) no existe"
  354 +
  355 +#: converse.js:1494
  356 +msgid "This room has reached it's maximum number of occupants"
  357 +msgstr "Esta sala ha alcanzado su número máximo de ocupantes"
  358 +
  359 +#. For translators: the %1$s and %2$s parts will get replaced by the user and topic text respectively
  360 +#. Example: Topic set by JC Brand to: Hello World!
  361 +#: converse.js:1571
  362 +msgid "Topic set by %1$s to: %2$s"
  363 +msgstr "Tema fijado por %1$s a: %2$s"
  364 +
  365 +#: converse.js:1587
  366 +msgid "This user is a moderator"
  367 +msgstr "Este usuario es un moderador"
  368 +
  369 +#: converse.js:1590
  370 +msgid "This user can send messages in this room"
  371 +msgstr "Este usuario puede enviar mensajes en esta sala"
  372 +
  373 +#: converse.js:1593
  374 +msgid "This user can NOT send messages in this room"
  375 +msgstr "Este usuario NO puede enviar mensajes en esta"
  376 +
  377 +#: converse.js:1796
  378 +msgid "Click to chat with this contact"
  379 +msgstr "Haga clic para conversar con este contacto"
  380 +
  381 +#: converse.js:1797
  382 +#: converse.js:1801
  383 +msgid "Click to remove this contact"
  384 +msgstr "Haga clic para eliminar este contacto"
  385 +
  386 +#: converse.js:2163
  387 +msgid "Contact requests"
  388 +msgstr "Solicitudes de contacto"
  389 +
  390 +#: converse.js:2164
  391 +msgid "My contacts"
  392 +msgstr "Mi contactos"
  393 +
  394 +#: converse.js:2165
  395 +msgid "Pending contacts"
  396 +msgstr "Contactos pendientes"
  397 +
  398 +#: converse.js:2317
  399 +msgid "Custom status"
  400 +msgstr "Personalice estatus"
  401 +
  402 +#: converse.js:2323
  403 +msgid "Click to change your chat status"
  404 +msgstr "Haga clic para cambiar su estatus de chat"
  405 +
  406 +#: converse.js:2326
  407 +msgid "Click here to write a custom status message"
  408 +msgstr "Haga clic para escribir un mensaje de estatus personalizado"
  409 +
  410 +#: converse.js:2355
  411 +#: converse.js:2363
  412 +msgid "online"
  413 +msgstr "en linea"
  414 +
  415 +#: converse.js:2357
  416 +msgid "busy"
  417 +msgstr "ocupado"
  418 +
  419 +#: converse.js:2359
  420 +msgid "away for long"
  421 +msgstr "lejos por mucho tiempo"
  422 +
  423 +#: converse.js:2361
  424 +msgid "away"
  425 +msgstr "ausente"
  426 +
  427 +#. For translators: the %1$s part gets replaced with the status
  428 +#. Example, I am online
  429 +#: converse.js:2375
  430 +#: converse.js:2409
  431 +msgid "I am %1$s"
  432 +msgstr "Yo soy %1$s"
  433 +
  434 +#: converse.js:2480
  435 +msgid "Sign in"
  436 +msgstr "Registro"
  437 +
  438 +#: converse.js:2483
  439 +msgid "XMPP/Jabber Username:"
  440 +msgstr "Nombre de usuario XMPP/Jabber"
  441 +
  442 +#: converse.js:2485
  443 +msgid "Password:"
  444 +msgstr "Contraseña:"
  445 +
  446 +#: converse.js:2487
  447 +msgid "Log In"
  448 +msgstr "Iniciar sesión"
  449 +
  450 +#: converse.js:2491
  451 +msgid "BOSH Service URL:"
  452 +msgstr "URL del servicio BOSH:"
  453 +
  454 +#: converse.js:2503
  455 +msgid "Connected"
  456 +msgstr "Conectado"
  457 +
  458 +#: converse.js:2507
  459 +msgid "Disconnected"
  460 +msgstr "Desconectado"
  461 +
  462 +#: converse.js:2511
  463 +msgid "Error"
  464 +msgstr "Error"
  465 +
  466 +#: converse.js:2513
  467 +msgid "Connecting"
  468 +msgstr "Conectando"
  469 +
  470 +#: converse.js:2516
  471 +msgid "Connection Failed"
  472 +msgstr "Conexión fallo"
  473 +
  474 +#: converse.js:2518
  475 +msgid "Authenticating"
  476 +msgstr "Autenticando"
  477 +
  478 +#: converse.js:2521
  479 +msgid "Authentication Failed"
  480 +msgstr "Autenticación fallo"
  481 +
  482 +#: converse.js:2523
  483 +msgid "Disconnecting"
  484 +msgstr "Desconectando"
  485 +
  486 +#: converse.js:2525
  487 +msgid "Attached"
  488 +msgstr "Adjuntado"
  489 +
  490 +#: converse.js:2656
  491 +msgid "Online Contacts"
  492 +msgstr "Contactos en linea"
  493 +
... ...
src/colab/static/conversejs/locale/es/LC_MESSAGES/es.js 0 → 100644
... ... @@ -0,0 +1,459 @@
  1 +(function (root, factory) {
  2 + define("es", ['jed'], function () {
  3 + var de = new Jed({
  4 + "domain": "converse",
  5 + "locale_data": {
  6 + "converse": {
  7 + "": {
  8 + "domain": "converse",
  9 + "lang": "es",
  10 + "plural_forms": "nplurals=2; plural=(n != 1);"
  11 + },
  12 + "Show this menu": [
  13 + null,
  14 + "Mostrar este menú"
  15 + ],
  16 + "Write in the third person": [
  17 + null,
  18 + "Escribir en tercera persona"
  19 + ],
  20 + "Remove messages": [
  21 + null,
  22 + "Eliminar mensajes"
  23 + ],
  24 + "Personal message": [
  25 + null,
  26 + "Mensaje personal"
  27 + ],
  28 + "Contacts": [
  29 + null,
  30 + "Contactos"
  31 + ],
  32 + "Online": [
  33 + null,
  34 + "En linea"
  35 + ],
  36 + "Busy": [
  37 + null,
  38 + "Ocupado"
  39 + ],
  40 + "Away": [
  41 + null,
  42 + "Ausente"
  43 + ],
  44 + "Offline": [
  45 + null,
  46 + "Desconectado"
  47 + ],
  48 + "Click to add new chat contacts": [
  49 + null,
  50 + "Haga clic para agregar nuevos contactos al chat"
  51 + ],
  52 + "Add a contact": [
  53 + null,
  54 + "Agregar un contacto"
  55 + ],
  56 + "Contact username": [
  57 + null,
  58 + "Nombre de usuario de contacto"
  59 + ],
  60 + "Add": [
  61 + null,
  62 + "Agregar"
  63 + ],
  64 + "Contact name": [
  65 + null,
  66 + "Nombre de contacto"
  67 + ],
  68 + "Search": [
  69 + null,
  70 + "Búsqueda"
  71 + ],
  72 + "No users found": [
  73 + null,
  74 + "Sin usuarios encontrados"
  75 + ],
  76 + "Click to add as a chat contact": [
  77 + null,
  78 + "Haga clic para agregar como un contacto de chat"
  79 + ],
  80 + "Click to open this room": [
  81 + null,
  82 + "Haga clic para abrir esta sala"
  83 + ],
  84 + "Show more information on this room": [
  85 + null,
  86 + "Mostrar mas información en esta sala"
  87 + ],
  88 + "Description:": [
  89 + null,
  90 + "Descripción"
  91 + ],
  92 + "Occupants:": [
  93 + null,
  94 + "Ocupantes:"
  95 + ],
  96 + "Features:": [
  97 + null,
  98 + "Características:"
  99 + ],
  100 + "Requires authentication": [
  101 + null,
  102 + "Autenticación requerida"
  103 + ],
  104 + "Hidden": [
  105 + null,
  106 + "Oculto"
  107 + ],
  108 + "Requires an invitation": [
  109 + null,
  110 + "Requiere una invitación"
  111 + ],
  112 + "Moderated": [
  113 + null,
  114 + "Moderado"
  115 + ],
  116 + "Non-anonymous": [
  117 + null,
  118 + "No usuario anónimo"
  119 + ],
  120 + "Open room": [
  121 + null,
  122 + "Abrir sala"
  123 + ],
  124 + "Permanent room": [
  125 + null,
  126 + "Sala permanente"
  127 + ],
  128 + "Public": [
  129 + null,
  130 + "Publico"
  131 + ],
  132 + "Semi-anonymous": [
  133 + null,
  134 + "Semi anónimo"
  135 + ],
  136 + "Temporary room": [
  137 + null,
  138 + "Sala temporal"
  139 + ],
  140 + "Unmoderated": [
  141 + null,
  142 + "Sin moderar"
  143 + ],
  144 + "Rooms": [
  145 + null,
  146 + "Salas"
  147 + ],
  148 + "Room name": [
  149 + null,
  150 + "Nombre de sala"
  151 + ],
  152 + "Nickname": [
  153 + null,
  154 + "Apodo"
  155 + ],
  156 + "Server": [
  157 + null,
  158 + "Servidor"
  159 + ],
  160 + "Join": [
  161 + null,
  162 + "Unirse"
  163 + ],
  164 + "Show rooms": [
  165 + null,
  166 + "Mostrar salas"
  167 + ],
  168 + "No rooms on %1$s": [
  169 + null,
  170 + "Sin salas en %1$s"
  171 + ],
  172 + "Rooms on %1$s": [
  173 + null,
  174 + "Salas en %1$s"
  175 + ],
  176 + "Set chatroom topic": [
  177 + null,
  178 + "Defina tema de sala de chat"
  179 + ],
  180 + "Kick user from chatroom": [
  181 + null,
  182 + "Expulsar usuario de sala de chat."
  183 + ],
  184 + "Ban user from chatroom": [
  185 + null,
  186 + "Prohibir usuario de sala de chat."
  187 + ],
  188 + "Message": [
  189 + null,
  190 + "Mensaje"
  191 + ],
  192 + "Save": [
  193 + null,
  194 + "Guardar"
  195 + ],
  196 + "Cancel": [
  197 + null,
  198 + "Cancelar"
  199 + ],
  200 + "An error occurred while trying to save the form.": [
  201 + null,
  202 + "Un error ocurrido mientras trataba de guardar el formulario."
  203 + ],
  204 + "This chatroom requires a password": [
  205 + null,
  206 + "Esta sala de chat requiere una contraseña."
  207 + ],
  208 + "Password: ": [
  209 + null,
  210 + "Contraseña: "
  211 + ],
  212 + "Submit": [
  213 + null,
  214 + "Enviar"
  215 + ],
  216 + "This room is not anonymous": [
  217 + null,
  218 + "Esta sala no es para usuarios anónimos"
  219 + ],
  220 + "This room now shows unavailable members": [
  221 + null,
  222 + "Esta sala ahora muestra los miembros no disponibles"
  223 + ],
  224 + "This room does not show unavailable members": [
  225 + null,
  226 + "Esta sala no muestra los miembros no disponibles"
  227 + ],
  228 + "Non-privacy-related room configuration has changed": [
  229 + null,
  230 + "Configuración de la sala para no relacionada con la privacidad ha sido cambiada"
  231 + ],
  232 + "Room logging is now enabled": [
  233 + null,
  234 + "El registro de la sala ahora está habilitada"
  235 + ],
  236 + "Room logging is now disabled": [
  237 + null,
  238 + "El registro de la sala ahora está deshabilitada"
  239 + ],
  240 + "This room is now non-anonymous": [
  241 + null,
  242 + "Esta sala ahora es para los usuarios no anónimos"
  243 + ],
  244 + "This room is now semi-anonymous": [
  245 + null,
  246 + "Esta sala ahora es para los usuarios semi-anónimos"
  247 + ],
  248 + "This room is now fully-anonymous": [
  249 + null,
  250 + "Esta sala ahora es para los usuarios completamente-anónimos"
  251 + ],
  252 + "A new room has been created": [
  253 + null,
  254 + "Una nueva sala ha sido creada"
  255 + ],
  256 + "Your nickname has been changed": [
  257 + null,
  258 + "Su apodo ha sido cambiado"
  259 + ],
  260 + "<strong>%1$s</strong> has been banned": [
  261 + null,
  262 + "<strong>%1$s</strong> ha sido prohibido"
  263 + ],
  264 + "<strong>%1$s</strong> has been kicked out": [
  265 + null,
  266 + "<strong>%1$s</strong> ha sido expulsado"
  267 + ],
  268 + "<strong>%1$s</strong> has been removed because of an affiliation change": [
  269 + null,
  270 + "<strong>%1$s</strong> ha sido eliminado debido a un cambio de afiliación"
  271 + ],
  272 + "<strong>%1$s</strong> has been removed for not being a member": [
  273 + null,
  274 + "<strong>%1$s</strong> ha sido eliminado debido a que no es miembro"
  275 + ],
  276 + "You have been banned from this room": [
  277 + null,
  278 + "Usted ha sido prohibido de esta sala"
  279 + ],
  280 + "You have been kicked from this room": [
  281 + null,
  282 + "Usted ha sido expulsado de esta sala"
  283 + ],
  284 + "You have been removed from this room because of an affiliation change": [
  285 + null,
  286 + "Usted ha sido eliminado de esta sala debido a un cambio de afiliación"
  287 + ],
  288 + "You have been removed from this room because the room has changed to members-only and you're not a member": [
  289 + null,
  290 + "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"
  291 + ],
  292 + "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
  293 + null,
  294 + "Usted ha sido eliminado de esta sala debido al servicio MUC (Multi-user chat) está apagado."
  295 + ],
  296 + "You are not on the member list of this room": [
  297 + null,
  298 + "Usted no está en la lista de miembros de esta sala"
  299 + ],
  300 + "No nickname was specified": [
  301 + null,
  302 + "Sin apodo especificado"
  303 + ],
  304 + "You are not allowed to create new rooms": [
  305 + null,
  306 + "A usted no se le permite crear nuevas salas"
  307 + ],
  308 + "Your nickname doesn't conform to this room's policies": [
  309 + null,
  310 + "Su apodo no se ajusta a la política de esta sala"
  311 + ],
  312 + "Your nickname is already taken": [
  313 + null,
  314 + "Su apodo ya ha sido tomando por otro usuario"
  315 + ],
  316 + "This room does not (yet) exist": [
  317 + null,
  318 + "Esta sala (aún) no existe"
  319 + ],
  320 + "This room has reached it's maximum number of occupants": [
  321 + null,
  322 + "Esta sala ha alcanzado su número máximo de ocupantes"
  323 + ],
  324 + "Topic set by %1$s to: %2$s": [
  325 + null,
  326 + "Tema fijado por %1$s a: %2$s"
  327 + ],
  328 + "This user is a moderator": [
  329 + null,
  330 + "Este usuario es un moderador"
  331 + ],
  332 + "This user can send messages in this room": [
  333 + null,
  334 + "Este usuario puede enviar mensajes en esta sala"
  335 + ],
  336 + "This user can NOT send messages in this room": [
  337 + null,
  338 + "Este usuario NO puede enviar mensajes en esta"
  339 + ],
  340 + "Click to chat with this contact": [
  341 + null,
  342 + "Haga clic para conversar con este contacto"
  343 + ],
  344 + "Click to remove this contact": [
  345 + null,
  346 + "Haga clic para eliminar este contacto"
  347 + ],
  348 + "Contact requests": [
  349 + null,
  350 + "Solicitudes de contacto"
  351 + ],
  352 + "My contacts": [
  353 + null,
  354 + "Mi contactos"
  355 + ],
  356 + "Pending contacts": [
  357 + null,
  358 + "Contactos pendientes"
  359 + ],
  360 + "Custom status": [
  361 + null,
  362 + "Personalice estatus"
  363 + ],
  364 + "Click to change your chat status": [
  365 + null,
  366 + "Haga clic para cambiar su estatus de chat"
  367 + ],
  368 + "Click here to write a custom status message": [
  369 + null,
  370 + "Haga clic para escribir un mensaje de estatus personalizado"
  371 + ],
  372 + "online": [
  373 + null,
  374 + "en linea"
  375 + ],
  376 + "busy": [
  377 + null,
  378 + "ocupado"
  379 + ],
  380 + "away for long": [
  381 + null,
  382 + "lejos por mucho tiempo"
  383 + ],
  384 + "away": [
  385 + null,
  386 + "ausente"
  387 + ],
  388 + "I am %1$s": [
  389 + null,
  390 + "Yo soy %1$s"
  391 + ],
  392 + "Sign in": [
  393 + null,
  394 + "Registro"
  395 + ],
  396 + "XMPP/Jabber Username:": [
  397 + null,
  398 + "Nombre de usuario XMPP/Jabber"
  399 + ],
  400 + "Password:": [
  401 + null,
  402 + "Contraseña:"
  403 + ],
  404 + "Log In": [
  405 + null,
  406 + "Iniciar sesión"
  407 + ],
  408 + "BOSH Service URL:": [
  409 + null,
  410 + "URL del servicio BOSH:"
  411 + ],
  412 + "Connected": [
  413 + null,
  414 + "Conectado"
  415 + ],
  416 + "Disconnected": [
  417 + null,
  418 + "Desconectado"
  419 + ],
  420 + "Error": [
  421 + null,
  422 + "Error"
  423 + ],
  424 + "Connecting": [
  425 + null,
  426 + "Conectando"
  427 + ],
  428 + "Connection Failed": [
  429 + null,
  430 + "Conexión fallo"
  431 + ],
  432 + "Authenticating": [
  433 + null,
  434 + "Autenticando"
  435 + ],
  436 + "Authentication Failed": [
  437 + null,
  438 + "Autenticación fallo"
  439 + ],
  440 + "Disconnecting": [
  441 + null,
  442 + "Desconectando"
  443 + ],
  444 + "Attached": [
  445 + null,
  446 + "Adjuntado"
  447 + ],
  448 + "Online Contacts": [
  449 + null,
  450 + "Contactos en linea"
  451 + ]
  452 + }
  453 + }
  454 + });
  455 + return factory(de);
  456 + });
  457 +}(this, function (de) {
  458 + return de;
  459 +}));
... ...
src/colab/static/conversejs/locale/it/LC_MESSAGES/converse.json 0 → 100644
... ... @@ -0,0 +1,460 @@
  1 +{
  2 + "converse": {
  3 + "": {
  4 + "Project-Id-Version": "Converse.js 0.4",
  5 + "Report-Msgid-Bugs-To": "",
  6 + "POT-Creation-Date": "2013-07-20 23:03+0200",
  7 + "PO-Revision-Date": "2013-07-20 13:58+0200",
  8 + "Last-Translator": "Fabio Bas <ctrlaltca@gmail.com>",
  9 + "Language-Team": "Italian",
  10 + "Language": "it",
  11 + "MIME-Version": "1.0",
  12 + "Content-Type": "text/plain; charset=ASCII",
  13 + "Content-Transfer-Encoding": "8bit",
  14 + "Plural-Forms": "nplurals=2; plural=(n != 1);",
  15 + "domain": "converse",
  16 + "lang": "it",
  17 + "plural_forms": "nplurals=2; plural=(n != 1);"
  18 + },
  19 + "Show this menu": [
  20 + null,
  21 + "Mostra questo menu"
  22 + ],
  23 + "Write in the third person": [
  24 + null,
  25 + "Scrivi in terza persona"
  26 + ],
  27 + "Remove messages": [
  28 + null,
  29 + "Rimuovi messaggi"
  30 + ],
  31 + "Personal message": [
  32 + null,
  33 + "Messaggio personale"
  34 + ],
  35 + "Contacts": [
  36 + null,
  37 + "Contatti"
  38 + ],
  39 + "Online": [
  40 + null,
  41 + "In linea"
  42 + ],
  43 + "Busy": [
  44 + null,
  45 + "Occupato"
  46 + ],
  47 + "Away": [
  48 + null,
  49 + "Assente"
  50 + ],
  51 + "Offline": [
  52 + null,
  53 + "Non in linea"
  54 + ],
  55 + "Click to add new chat contacts": [
  56 + null,
  57 + "Clicca per aggiungere nuovi contatti alla chat"
  58 + ],
  59 + "Add a contact": [
  60 + null,
  61 + "Aggiungi un contatto"
  62 + ],
  63 + "Contact username": [
  64 + null,
  65 + "Nome utente del contatto"
  66 + ],
  67 + "Add": [
  68 + null,
  69 + "Aggiungi"
  70 + ],
  71 + "Contact name": [
  72 + null,
  73 + "Nome del contatto"
  74 + ],
  75 + "Search": [
  76 + null,
  77 + "Cerca"
  78 + ],
  79 + "No users found": [
  80 + null,
  81 + "Nessun utente trovato"
  82 + ],
  83 + "Click to add as a chat contact": [
  84 + null,
  85 + "Clicca per aggiungere il contatto alla chat"
  86 + ],
  87 + "Click to open this room": [
  88 + null,
  89 + "Clicca per aprire questa stanza"
  90 + ],
  91 + "Show more information on this room": [
  92 + null,
  93 + "Mostra più informazioni su questa stanza"
  94 + ],
  95 + "Description:": [
  96 + null,
  97 + "Descrizione:"
  98 + ],
  99 + "Occupants:": [
  100 + null,
  101 + "Utenti presenti:"
  102 + ],
  103 + "Features:": [
  104 + null,
  105 + "Funzionalità:"
  106 + ],
  107 + "Requires authentication": [
  108 + null,
  109 + "Richiede autenticazione"
  110 + ],
  111 + "Hidden": [
  112 + null,
  113 + "Nascosta"
  114 + ],
  115 + "Requires an invitation": [
  116 + null,
  117 + "Richiede un invito"
  118 + ],
  119 + "Moderated": [
  120 + null,
  121 + "Moderata"
  122 + ],
  123 + "Non-anonymous": [
  124 + null,
  125 + "Non-anonima"
  126 + ],
  127 + "Open room": [
  128 + null,
  129 + "Stanza aperta"
  130 + ],
  131 + "Permanent room": [
  132 + null,
  133 + "Stanza permanente"
  134 + ],
  135 + "Public": [
  136 + null,
  137 + "Pubblica"
  138 + ],
  139 + "Semi-anonymous": [
  140 + null,
  141 + "Semi-anonima"
  142 + ],
  143 + "Temporary room": [
  144 + null,
  145 + "Stanza temporanea"
  146 + ],
  147 + "Unmoderated": [
  148 + null,
  149 + "Non moderata"
  150 + ],
  151 + "Rooms": [
  152 + null,
  153 + "Stanze"
  154 + ],
  155 + "Room name": [
  156 + null,
  157 + "Nome stanza"
  158 + ],
  159 + "Nickname": [
  160 + null,
  161 + "Soprannome"
  162 + ],
  163 + "Server": [
  164 + null,
  165 + "Server"
  166 + ],
  167 + "Join": [
  168 + null,
  169 + "Entra"
  170 + ],
  171 + "Show rooms": [
  172 + null,
  173 + "Mostra stanze"
  174 + ],
  175 + "No rooms on %1$s": [
  176 + null,
  177 + "Nessuna stanza su %1$s"
  178 + ],
  179 + "Rooms on %1$s": [
  180 + null,
  181 + "Stanze su %1$s"
  182 + ],
  183 + "Set chatroom topic": [
  184 + null,
  185 + "Cambia oggetto della stanza"
  186 + ],
  187 + "Kick user from chatroom": [
  188 + null,
  189 + "Espelli utente dalla stanza"
  190 + ],
  191 + "Ban user from chatroom": [
  192 + null,
  193 + "Bandisci utente dalla stanza"
  194 + ],
  195 + "Message": [
  196 + null,
  197 + "Messaggio"
  198 + ],
  199 + "Save": [
  200 + null,
  201 + "Salva"
  202 + ],
  203 + "Cancel": [
  204 + null,
  205 + "Annulla"
  206 + ],
  207 + "An error occurred while trying to save the form.": [
  208 + null,
  209 + "Errore durante il salvataggio del modulo"
  210 + ],
  211 + "This chatroom requires a password": [
  212 + null,
  213 + "Questa stanza richiede una password"
  214 + ],
  215 + "Password: ": [
  216 + null,
  217 + "Password: "
  218 + ],
  219 + "Submit": [
  220 + null,
  221 + "Invia"
  222 + ],
  223 + "This room is not anonymous": [
  224 + null,
  225 + "Questa stanza non è anonima"
  226 + ],
  227 + "This room now shows unavailable members": [
  228 + null,
  229 + "Questa stanza mostra i membri non disponibili al momento"
  230 + ],
  231 + "This room does not show unavailable members": [
  232 + null,
  233 + "Questa stanza non mostra i membri non disponibili"
  234 + ],
  235 + "Non-privacy-related room configuration has changed": [
  236 + null,
  237 + "Una configurazione della stanza non legata alla privacy è stata modificata"
  238 + ],
  239 + "Room logging is now enabled": [
  240 + null,
  241 + "La registrazione è abilitata nella stanza"
  242 + ],
  243 + "Room logging is now disabled": [
  244 + null,
  245 + "La registrazione è disabilitata nella stanza"
  246 + ],
  247 + "This room is now non-anonymous": [
  248 + null,
  249 + "Questa stanza è non-anonima"
  250 + ],
  251 + "This room is now semi-anonymous": [
  252 + null,
  253 + "Questa stanza è semi-anonima"
  254 + ],
  255 + "This room is now fully-anonymous": [
  256 + null,
  257 + "Questa stanza è completamente-anonima"
  258 + ],
  259 + "A new room has been created": [
  260 + null,
  261 + "Una nuova stanza è stata creata"
  262 + ],
  263 + "Your nickname has been changed": [
  264 + null,
  265 + "Il tuo soprannome è stato cambiato"
  266 + ],
  267 + "<strong>%1$s</strong> has been banned": [
  268 + null,
  269 + "<strong>%1$s</strong> è stato bandito"
  270 + ],
  271 + "<strong>%1$s</strong> has been kicked out": [
  272 + null,
  273 + "<strong>%1$s</strong> è stato espulso"
  274 + ],
  275 + "<strong>%1$s</strong> has been removed because of an affiliation change": [
  276 + null,
  277 + "<strong>%1$s</strong> è stato rimosso a causa di un cambio di affiliazione"
  278 + ],
  279 + "<strong>%1$s</strong> has been removed for not being a member": [
  280 + null,
  281 + "<strong>%1$s</strong> è stato rimosso in quanto non membro"
  282 + ],
  283 + "You have been banned from this room": [
  284 + null,
  285 + "Sei stato bandito da questa stanza"
  286 + ],
  287 + "You have been kicked from this room": [
  288 + null,
  289 + "Sei stato espulso da questa stanza"
  290 + ],
  291 + "You have been removed from this room because of an affiliation change": [
  292 + null,
  293 + "Sei stato rimosso da questa stanza a causa di un cambio di affiliazione"
  294 + ],
  295 + "You have been removed from this room because the room has changed to members-only and you're not a member": [
  296 + null,
  297 + "Sei stato rimosso da questa stanza poiché ora la stanza accetta solo membri"
  298 + ],
  299 + "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
  300 + null,
  301 + "Sei stato rimosso da questa stanza poiché il servizio MUC (Chat multi utente) è in fase di spegnimento"
  302 + ],
  303 + "You are not on the member list of this room": [
  304 + null,
  305 + "Non sei nella lista dei membri di questa stanza"
  306 + ],
  307 + "No nickname was specified": [
  308 + null,
  309 + "Nessun soprannome specificato"
  310 + ],
  311 + "You are not allowed to create new rooms": [
  312 + null,
  313 + "Non ti è permesso creare nuove stanze"
  314 + ],
  315 + "Your nickname doesn't conform to this room's policies": [
  316 + null,
  317 + "Il tuo soprannome non è conforme alle regole di questa stanza"
  318 + ],
  319 + "Your nickname is already taken": [
  320 + null,
  321 + "Il tuo soprannome è già utilizzato"
  322 + ],
  323 + "This room does not (yet) exist": [
  324 + null,
  325 + "Questa stanza non esiste (per ora)"
  326 + ],
  327 + "This room has reached it's maximum number of occupants": [
  328 + null,
  329 + "Questa stanza ha raggiunto il limite massimo di utenti"
  330 + ],
  331 + "Topic set by %1$s to: %2$s": [
  332 + null,
  333 + "Topic impostato da %1$s a: %2$s"
  334 + ],
  335 + "This user is a moderator": [
  336 + null,
  337 + "Questo utente è un moderatore"
  338 + ],
  339 + "This user can send messages in this room": [
  340 + null,
  341 + "Questo utente può inviare messaggi in questa stanza"
  342 + ],
  343 + "This user can NOT send messages in this room": [
  344 + null,
  345 + "Questo utente NON può inviare messaggi in questa stanza"
  346 + ],
  347 + "Click to chat with this contact": [
  348 + null,
  349 + "Clicca per parlare con questo contatto"
  350 + ],
  351 + "Click to remove this contact": [
  352 + null,
  353 + "Clicca per rimuovere questo contatto"
  354 + ],
  355 + "Contact requests": [
  356 + null,
  357 + "Richieste dei contatti"
  358 + ],
  359 + "My contacts": [
  360 + null,
  361 + "I miei contatti"
  362 + ],
  363 + "Pending contacts": [
  364 + null,
  365 + "Contatti in attesa"
  366 + ],
  367 + "Custom status": [
  368 + null,
  369 + "Stato personalizzato"
  370 + ],
  371 + "Click to change your chat status": [
  372 + null,
  373 + "Clicca per cambiare il tuo stato"
  374 + ],
  375 + "Click here to write a custom status message": [
  376 + null,
  377 + "Clicca qui per scrivere un messaggio di stato personalizzato"
  378 + ],
  379 + "online": [
  380 + null,
  381 + "in linea"
  382 + ],
  383 + "busy": [
  384 + null,
  385 + "occupato"
  386 + ],
  387 + "away for long": [
  388 + null,
  389 + "assente da molto"
  390 + ],
  391 + "away": [
  392 + null,
  393 + "assente"
  394 + ],
  395 + "I am %1$s": [
  396 + null,
  397 + "Sono %1$s"
  398 + ],
  399 + "Sign in": [
  400 + null,
  401 + "Entra"
  402 + ],
  403 + "XMPP/Jabber Username:": [
  404 + null,
  405 + "Nome utente:"
  406 + ],
  407 + "Password:": [
  408 + null,
  409 + "Password:"
  410 + ],
  411 + "Log In": [
  412 + null,
  413 + "Entra"
  414 + ],
  415 + "BOSH Service URL:": [
  416 + null,
  417 + "Indirizzo servizio BOSH:"
  418 + ],
  419 + "Connected": [
  420 + null,
  421 + "Connesso"
  422 + ],
  423 + "Disconnected": [
  424 + null,
  425 + "Disconnesso"
  426 + ],
  427 + "Error": [
  428 + null,
  429 + "Errore"
  430 + ],
  431 + "Connecting": [
  432 + null,
  433 + "Connessione in corso"
  434 + ],
  435 + "Connection Failed": [
  436 + null,
  437 + "Connessione fallita"
  438 + ],
  439 + "Authenticating": [
  440 + null,
  441 + "Autenticazione in corso"
  442 + ],
  443 + "Authentication Failed": [
  444 + null,
  445 + "Autenticazione fallita"
  446 + ],
  447 + "Disconnecting": [
  448 + null,
  449 + "Disconnessione in corso"
  450 + ],
  451 + "Attached": [
  452 + null,
  453 + "Allegato"
  454 + ],
  455 + "Online Contacts": [
  456 + null,
  457 + "Contatti in linea"
  458 + ]
  459 + }
  460 +}
0 461 \ No newline at end of file
... ...
src/colab/static/conversejs/locale/it/LC_MESSAGES/converse.po 0 → 100644
... ... @@ -0,0 +1,489 @@
  1 +# German translations for Converse.js package.
  2 +# Copyright (C) 2013 Jan-Carel Brand
  3 +# This file is distributed under the same license as the Converse.js package.
  4 +# JC Brand <jc@opkode.com>, 2013.
  5 +#
  6 +msgid ""
  7 +msgstr ""
  8 +"Project-Id-Version: Converse.js 0.4\n"
  9 +"Report-Msgid-Bugs-To: \n"
  10 +"POT-Creation-Date: 2013-07-20 23:03+0200\n"
  11 +"PO-Revision-Date: 2013-07-20 18:53+0100\n"
  12 +"Last-Translator: Fabio Bas <ctrlaltca@gmail.com>\n"
  13 +"Language-Team: Italian\n"
  14 +"Language: it\n"
  15 +"MIME-Version: 1.0\n"
  16 +"Content-Type: text/plain; charset=ASCII\n"
  17 +"Content-Transfer-Encoding: 8bit\n"
  18 +"Plural-Forms: nplurals=2; plural=(n != 1);\n"
  19 +"domain: converse\n"
  20 +"lang: it\n"
  21 +"plural_forms: nplurals=2; plural=(n != 1);\n"
  22 +
  23 +#: converse.js:397
  24 +#: converse.js:1128
  25 +msgid "Show this menu"
  26 +msgstr "Mostra questo menu"
  27 +
  28 +#: converse.js:398
  29 +#: converse.js:1129
  30 +msgid "Write in the third person"
  31 +msgstr "Scrivi in terza persona"
  32 +
  33 +#: converse.js:399
  34 +#: converse.js:1133
  35 +msgid "Remove messages"
  36 +msgstr "Rimuovi messaggi"
  37 +
  38 +#: converse.js:539
  39 +msgid "Personal message"
  40 +msgstr "Messaggio personale"
  41 +
  42 +#: converse.js:613
  43 +msgid "Contacts"
  44 +msgstr "Contatti"
  45 +
  46 +#: converse.js:618
  47 +msgid "Online"
  48 +msgstr "In linea"
  49 +
  50 +#: converse.js:619
  51 +msgid "Busy"
  52 +msgstr "Occupato"
  53 +
  54 +#: converse.js:620
  55 +msgid "Away"
  56 +msgstr "Assente"
  57 +
  58 +#: converse.js:621
  59 +msgid "Offline"
  60 +msgstr "Non in linea"
  61 +
  62 +#: converse.js:628
  63 +msgid "Click to add new chat contacts"
  64 +msgstr "Clicca per aggiungere nuovi contatti alla chat"
  65 +
  66 +#: converse.js:628
  67 +msgid "Add a contact"
  68 +msgstr "Aggiungi contatti"
  69 +
  70 +#: converse.js:637
  71 +msgid "Contact username"
  72 +msgstr "Nome utente del contatto"
  73 +
  74 +#: converse.js:638
  75 +msgid "Add"
  76 +msgstr "Aggiungi"
  77 +
  78 +#: converse.js:646
  79 +msgid "Contact name"
  80 +msgstr "Nome del contatto"
  81 +
  82 +#: converse.js:647
  83 +msgid "Search"
  84 +msgstr "Cerca"
  85 +
  86 +#: converse.js:682
  87 +msgid "No users found"
  88 +msgstr "Nessun utente trovato"
  89 +
  90 +#: converse.js:689
  91 +msgid "Click to add as a chat contact"
  92 +msgstr "Clicca per aggiungere il contatto alla chat"
  93 +
  94 +#: converse.js:753
  95 +msgid "Click to open this room"
  96 +msgstr "Clicca per aprire questa stanza"
  97 +
  98 +#: converse.js:755
  99 +msgid "Show more information on this room"
  100 +msgstr "Mostra più informazioni su questa stanza"
  101 +
  102 +#: converse.js:760
  103 +msgid "Description:"
  104 +msgstr "Descrizione:"
  105 +
  106 +#: converse.js:761
  107 +msgid "Occupants:"
  108 +msgstr "Utenti presenti:"
  109 +
  110 +#: converse.js:762
  111 +msgid "Features:"
  112 +msgstr "Funzionalità:"
  113 +
  114 +#: converse.js:764
  115 +msgid "Requires authentication"
  116 +msgstr "Richiede autenticazione"
  117 +
  118 +#: converse.js:767
  119 +msgid "Hidden"
  120 +msgstr "Nascosta"
  121 +
  122 +#: converse.js:770
  123 +msgid "Requires an invitation"
  124 +msgstr "Richiede un invito"
  125 +
  126 +#: converse.js:773
  127 +msgid "Moderated"
  128 +msgstr "Moderata"
  129 +
  130 +#: converse.js:776
  131 +msgid "Non-anonymous"
  132 +msgstr "Non-anonima"
  133 +
  134 +#: converse.js:779
  135 +msgid "Open room"
  136 +msgstr "Stanza aperta"
  137 +
  138 +#: converse.js:782
  139 +msgid "Permanent room"
  140 +msgstr "Stanza permanente"
  141 +
  142 +#: converse.js:785
  143 +msgid "Public"
  144 +msgstr "Pubblica"
  145 +
  146 +#: converse.js:788
  147 +msgid "Semi-anonymous"
  148 +msgstr "Semi-anonima"
  149 +
  150 +#: converse.js:791
  151 +msgid "Temporary room"
  152 +msgstr "Stanza temporanea"
  153 +
  154 +#: converse.js:794
  155 +msgid "Unmoderated"
  156 +msgstr "Non moderata"
  157 +
  158 +#: converse.js:800
  159 +msgid "Rooms"
  160 +msgstr "Stanze"
  161 +
  162 +#: converse.js:804
  163 +msgid "Room name"
  164 +msgstr "Nome stanza"
  165 +
  166 +#: converse.js:805
  167 +msgid "Nickname"
  168 +msgstr "Soprannome"
  169 +
  170 +#: converse.js:806
  171 +msgid "Server"
  172 +msgstr "Server"
  173 +
  174 +#: converse.js:807
  175 +msgid "Join"
  176 +msgstr "Entra"
  177 +
  178 +#: converse.js:808
  179 +msgid "Show rooms"
  180 +msgstr "Mostra stanze"
  181 +
  182 +#. For translators: %1$s is a variable and will be replaced with the XMPP server name
  183 +#: converse.js:841
  184 +msgid "No rooms on %1$s"
  185 +msgstr "Nessuna stanza su %1$s"
  186 +
  187 +#. For translators: %1$s is a variable and will be
  188 +#. replaced with the XMPP server name
  189 +#: converse.js:856
  190 +msgid "Rooms on %1$s"
  191 +msgstr "Stanze su %1$s"
  192 +
  193 +#: converse.js:1130
  194 +msgid "Set chatroom topic"
  195 +msgstr "Cambia oggetto della stanza"
  196 +
  197 +#: converse.js:1131
  198 +msgid "Kick user from chatroom"
  199 +msgstr "Espelli utente dalla stanza"
  200 +
  201 +#: converse.js:1132
  202 +msgid "Ban user from chatroom"
  203 +msgstr "Bandisci utente dalla stanza"
  204 +
  205 +#: converse.js:1159
  206 +msgid "Message"
  207 +msgstr "Messaggio"
  208 +
  209 +#: converse.js:1273
  210 +#: converse.js:2318
  211 +msgid "Save"
  212 +msgstr "Salva"
  213 +
  214 +#: converse.js:1274
  215 +msgid "Cancel"
  216 +msgstr "Annulla"
  217 +
  218 +#: converse.js:1321
  219 +msgid "An error occurred while trying to save the form."
  220 +msgstr "Errore durante il salvataggio del modulo"
  221 +
  222 +#: converse.js:1367
  223 +msgid "This chatroom requires a password"
  224 +msgstr "Questa stanza richiede una password"
  225 +
  226 +#: converse.js:1368
  227 +msgid "Password: "
  228 +msgstr "Password: "
  229 +
  230 +#: converse.js:1369
  231 +msgid "Submit"
  232 +msgstr "Invia"
  233 +
  234 +#: converse.js:1383
  235 +msgid "This room is not anonymous"
  236 +msgstr "Questa stanza non è anonima"
  237 +
  238 +#: converse.js:1384
  239 +msgid "This room now shows unavailable members"
  240 +msgstr "Questa stanza mostra i membri non disponibili al momento"
  241 +
  242 +#: converse.js:1385
  243 +msgid "This room does not show unavailable members"
  244 +msgstr "Questa stanza non mostra i membri non disponibili"
  245 +
  246 +#: converse.js:1386
  247 +msgid "Non-privacy-related room configuration has changed"
  248 +msgstr "Una configurazione della stanza non legata alla privacy è stata modificata"
  249 +
  250 +#: converse.js:1387
  251 +msgid "Room logging is now enabled"
  252 +msgstr "La registrazione è abilitata nella stanza"
  253 +
  254 +#: converse.js:1388
  255 +msgid "Room logging is now disabled"
  256 +msgstr "La registrazione è disabilitata nella stanza"
  257 +
  258 +#: converse.js:1389
  259 +msgid "This room is now non-anonymous"
  260 +msgstr "Questa stanza è non-anonima"
  261 +
  262 +#: converse.js:1390
  263 +msgid "This room is now semi-anonymous"
  264 +msgstr "Questa stanza è semi-anonima"
  265 +
  266 +#: converse.js:1391
  267 +msgid "This room is now fully-anonymous"
  268 +msgstr "Questa stanza è completamente-anonima"
  269 +
  270 +#: converse.js:1392
  271 +msgid "A new room has been created"
  272 +msgstr "Una nuova stanza è stata creata"
  273 +
  274 +#: converse.js:1393
  275 +msgid "Your nickname has been changed"
  276 +msgstr "Il tuo soprannome è stato cambiato"
  277 +
  278 +#. For translations: %1$s will be replaced with the user's nickname
  279 +#. Don't translate "strong"
  280 +#. Example: <strong>jcbrand</strong> has been banned
  281 +#: converse.js:1400
  282 +msgid "<strong>%1$s</strong> has been banned"
  283 +msgstr "<strong>%1$s</strong> è stato bandito"
  284 +
  285 +#. For translations: %1$s will be replaced with the user's nickname
  286 +#. Don't translate "strong"
  287 +#. Example: <strong>jcbrand</strong> has been kicked out
  288 +#: converse.js:1404
  289 +msgid "<strong>%1$s</strong> has been kicked out"
  290 +msgstr "<strong>%1$s</strong> è stato espulso"
  291 +
  292 +#. For translations: %1$s will be replaced with the user's nickname
  293 +#. Don't translate "strong"
  294 +#. Example: <strong>jcbrand</strong> has been removed because of an affiliasion change
  295 +#: converse.js:1408
  296 +msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
  297 +msgstr "<strong>%1$s</strong> è stato rimosso a causa di un cambio di affiliazione"
  298 +
  299 +#. For translations: %1$s will be replaced with the user's nickname
  300 +#. Don't translate "strong"
  301 +#. Example: <strong>jcbrand</strong> has been removed for not being a member
  302 +#: converse.js:1412
  303 +msgid "<strong>%1$s</strong> has been removed for not being a member"
  304 +msgstr "<strong>%1$s</strong> è stato rimosso in quanto non membro"
  305 +
  306 +#: converse.js:1416
  307 +#: converse.js:1478
  308 +msgid "You have been banned from this room"
  309 +msgstr "Sei stato bandito da questa stanza"
  310 +
  311 +#: converse.js:1417
  312 +msgid "You have been kicked from this room"
  313 +msgstr "Sei stato espulso da questa stanza"
  314 +
  315 +#: converse.js:1418
  316 +msgid "You have been removed from this room because of an affiliation change"
  317 +msgstr "Sei stato rimosso da questa stanza a causa di un cambio di affiliazione"
  318 +
  319 +#: converse.js:1419
  320 +msgid "You have been removed from this room because the room has changed to members-only and you're not a member"
  321 +msgstr "Sei stato rimosso da questa stanza poiché ora la stanza accetta solo membri"
  322 +
  323 +#: converse.js:1420
  324 +msgid "You have been removed from this room because the MUC (Multi-user chat) service is being shut down."
  325 +msgstr "Sei stato rimosso da questa stanza poiché il servizio MUC (Chat multi utente) è in fase di spegnimento"
  326 +
  327 +#: converse.js:1476
  328 +msgid "You are not on the member list of this room"
  329 +msgstr "Non sei nella lista dei membri di questa stanza"
  330 +
  331 +#: converse.js:1482
  332 +msgid "No nickname was specified"
  333 +msgstr "Nessun soprannome specificato"
  334 +
  335 +#: converse.js:1486
  336 +msgid "You are not allowed to create new rooms"
  337 +msgstr "Non ti è permesso creare nuove stanze"
  338 +
  339 +#: converse.js:1488
  340 +msgid "Your nickname doesn't conform to this room's policies"
  341 +msgstr "Il tuo soprannome non è conforme alle regole di questa stanza"
  342 +
  343 +#: converse.js:1490
  344 +msgid "Your nickname is already taken"
  345 +msgstr "Il tuo soprannome è già utilizzato"
  346 +
  347 +#: converse.js:1492
  348 +msgid "This room does not (yet) exist"
  349 +msgstr "Questa stanza non esiste (per ora)"
  350 +
  351 +#: converse.js:1494
  352 +msgid "This room has reached it's maximum number of occupants"
  353 +msgstr "Questa stanza ha raggiunto il limite massimo di utenti"
  354 +
  355 +#. For translators: the %1$s and %2$s parts will get replaced by the user and topic text respectively
  356 +#. Example: Topic set by JC Brand to: Hello World!
  357 +#: converse.js:1571
  358 +msgid "Topic set by %1$s to: %2$s"
  359 +msgstr "Topic impostato da %1$s a: %2$s"
  360 +
  361 +#: converse.js:1587
  362 +msgid "This user is a moderator"
  363 +msgstr "Questo utente è un moderatore"
  364 +
  365 +#: converse.js:1590
  366 +msgid "This user can send messages in this room"
  367 +msgstr "Questo utente può inviare messaggi in questa stanza"
  368 +
  369 +#: converse.js:1593
  370 +msgid "This user can NOT send messages in this room"
  371 +msgstr "Questo utente NON può inviare messaggi in questa stanza"
  372 +
  373 +#: converse.js:1796
  374 +msgid "Click to chat with this contact"
  375 +msgstr "Clicca per parlare con questo contatto"
  376 +
  377 +#: converse.js:1797
  378 +#: converse.js:1801
  379 +msgid "Click to remove this contact"
  380 +msgstr "Clicca per rimuovere questo contatto"
  381 +
  382 +#: converse.js:2163
  383 +msgid "Contact requests"
  384 +msgstr "Richieste dei contatti"
  385 +
  386 +#: converse.js:2164
  387 +msgid "My contacts"
  388 +msgstr "I miei contatti"
  389 +
  390 +#: converse.js:2165
  391 +msgid "Pending contacts"
  392 +msgstr "Contatti in attesa"
  393 +
  394 +#: converse.js:2317
  395 +msgid "Custom status"
  396 +msgstr "Stato personalizzato"
  397 +
  398 +#: converse.js:2323
  399 +msgid "Click to change your chat status"
  400 +msgstr "Clicca per cambiare il tuo stato"
  401 +
  402 +#: converse.js:2326
  403 +msgid "Click here to write a custom status message"
  404 +msgstr "Clicca qui per scrivere un messaggio di stato personalizzato"
  405 +
  406 +#: converse.js:2355
  407 +#: converse.js:2363
  408 +msgid "online"
  409 +msgstr "in linea"
  410 +
  411 +#: converse.js:2357
  412 +msgid "busy"
  413 +msgstr "occupato"
  414 +
  415 +#: converse.js:2359
  416 +msgid "away for long"
  417 +msgstr "assente da molto"
  418 +
  419 +#: converse.js:2361
  420 +msgid "away"
  421 +msgstr "assente"
  422 +
  423 +#. For translators: the %1$s part gets replaced with the status
  424 +#. Example, I am online
  425 +#: converse.js:2375
  426 +#: converse.js:2409
  427 +msgid "I am %1$s"
  428 +msgstr "Sono %1$s"
  429 +
  430 +#: converse.js:2480
  431 +msgid "Sign in"
  432 +msgstr "Accesso"
  433 +
  434 +#: converse.js:2483
  435 +msgid "XMPP/Jabber Username:"
  436 +msgstr "Nome utente:"
  437 +
  438 +#: converse.js:2485
  439 +msgid "Password:"
  440 +msgstr "Password:"
  441 +
  442 +#: converse.js:2487
  443 +msgid "Log In"
  444 +msgstr "Entra"
  445 +
  446 +#: converse.js:2491
  447 +msgid "BOSH Service URL:"
  448 +msgstr "Indirizzo servizio BOSH:"
  449 +
  450 +#: converse.js:2503
  451 +msgid "Connected"
  452 +msgstr "Connesso"
  453 +
  454 +#: converse.js:2507
  455 +msgid "Disconnected"
  456 +msgstr "Disconnesso"
  457 +
  458 +#: converse.js:2511
  459 +msgid "Error"
  460 +msgstr "Errore"
  461 +
  462 +#: converse.js:2513
  463 +msgid "Connecting"
  464 +msgstr "Connessione in corso"
  465 +
  466 +#: converse.js:2516
  467 +msgid "Connection Failed"
  468 +msgstr "Connessione fallita"
  469 +
  470 +#: converse.js:2518
  471 +msgid "Authenticating"
  472 +msgstr "Autenticazione in corso"
  473 +
  474 +#: converse.js:2521
  475 +msgid "Authentication Failed"
  476 +msgstr "Autenticazione fallita"
  477 +
  478 +#: converse.js:2523
  479 +msgid "Disconnecting"
  480 +msgstr "Disconnessione in corso"
  481 +
  482 +#: converse.js:2525
  483 +msgid "Attached"
  484 +msgstr "Allegato"
  485 +
  486 +#: converse.js:2656
  487 +msgid "Online Contacts"
  488 +msgstr "Contatti in linea"
  489 +
... ...
src/colab/static/conversejs/locale/it/LC_MESSAGES/it.js 0 → 100644
... ... @@ -0,0 +1,470 @@
  1 +(function (root, factory) {
  2 + define("it", ['jed'], function () {
  3 + var it = new Jed({
  4 + "domain": "converse",
  5 + "locale_data": {
  6 + "converse": {
  7 + "": {
  8 + "Project-Id-Version": "Converse.js 0.4",
  9 + "Report-Msgid-Bugs-To": "",
  10 + "POT-Creation-Date": "2013-07-20 23:03+0200",
  11 + "PO-Revision-Date": "2013-07-20 13:58+0200",
  12 + "Last-Translator": "Fabio Bas <ctrlaltca@gmail.com>",
  13 + "Language-Team": "Italian",
  14 + "Language": "it",
  15 + "MIME-Version": "1.0",
  16 + "Content-Type": "text/plain; charset=ASCII",
  17 + "Content-Transfer-Encoding": "8bit",
  18 + "Plural-Forms": "nplurals=2; plural=(n != 1);",
  19 + "domain": "converse",
  20 + "lang": "it",
  21 + "plural_forms": "nplurals=2; plural=(n != 1);"
  22 + },
  23 + "Show this menu": [
  24 + null,
  25 + "Mostra questo menu"
  26 + ],
  27 + "Write in the third person": [
  28 + null,
  29 + "Scrivi in terza persona"
  30 + ],
  31 + "Remove messages": [
  32 + null,
  33 + "Rimuovi messaggi"
  34 + ],
  35 + "Personal message": [
  36 + null,
  37 + "Messaggio personale"
  38 + ],
  39 + "Contacts": [
  40 + null,
  41 + "Contatti"
  42 + ],
  43 + "Online": [
  44 + null,
  45 + "In linea"
  46 + ],
  47 + "Busy": [
  48 + null,
  49 + "Occupato"
  50 + ],
  51 + "Away": [
  52 + null,
  53 + "Assente"
  54 + ],
  55 + "Offline": [
  56 + null,
  57 + "Non in linea"
  58 + ],
  59 + "Click to add new chat contacts": [
  60 + null,
  61 + "Clicca per aggiungere nuovi contatti alla chat"
  62 + ],
  63 + "Add a contact": [
  64 + null,
  65 + "Aggiungi un contatto"
  66 + ],
  67 + "Contact username": [
  68 + null,
  69 + "Nome utente del contatto"
  70 + ],
  71 + "Add": [
  72 + null,
  73 + "Aggiungi"
  74 + ],
  75 + "Contact name": [
  76 + null,
  77 + "Nome del contatto"
  78 + ],
  79 + "Search": [
  80 + null,
  81 + "Cerca"
  82 + ],
  83 + "No users found": [
  84 + null,
  85 + "Nessun utente trovato"
  86 + ],
  87 + "Click to add as a chat contact": [
  88 + null,
  89 + "Clicca per aggiungere il contatto alla chat"
  90 + ],
  91 + "Click to open this room": [
  92 + null,
  93 + "Clicca per aprire questa stanza"
  94 + ],
  95 + "Show more information on this room": [
  96 + null,
  97 + "Mostra più informazioni su questa stanza"
  98 + ],
  99 + "Description:": [
  100 + null,
  101 + "Descrizione:"
  102 + ],
  103 + "Occupants:": [
  104 + null,
  105 + "Utenti presenti:"
  106 + ],
  107 + "Features:": [
  108 + null,
  109 + "Funzionalità:"
  110 + ],
  111 + "Requires authentication": [
  112 + null,
  113 + "Richiede autenticazione"
  114 + ],
  115 + "Hidden": [
  116 + null,
  117 + "Nascosta"
  118 + ],
  119 + "Requires an invitation": [
  120 + null,
  121 + "Richiede un invito"
  122 + ],
  123 + "Moderated": [
  124 + null,
  125 + "Moderata"
  126 + ],
  127 + "Non-anonymous": [
  128 + null,
  129 + "Non-anonima"
  130 + ],
  131 + "Open room": [
  132 + null,
  133 + "Stanza aperta"
  134 + ],
  135 + "Permanent room": [
  136 + null,
  137 + "Stanza permanente"
  138 + ],
  139 + "Public": [
  140 + null,
  141 + "Pubblica"
  142 + ],
  143 + "Semi-anonymous": [
  144 + null,
  145 + "Semi-anonima"
  146 + ],
  147 + "Temporary room": [
  148 + null,
  149 + "Stanza temporanea"
  150 + ],
  151 + "Unmoderated": [
  152 + null,
  153 + "Non moderata"
  154 + ],
  155 + "Rooms": [
  156 + null,
  157 + "Stanze"
  158 + ],
  159 + "Room name": [
  160 + null,
  161 + "Nome stanza"
  162 + ],
  163 + "Nickname": [
  164 + null,
  165 + "Soprannome"
  166 + ],
  167 + "Server": [
  168 + null,
  169 + "Server"
  170 + ],
  171 + "Join": [
  172 + null,
  173 + "Entra"
  174 + ],
  175 + "Show rooms": [
  176 + null,
  177 + "Mostra stanze"
  178 + ],
  179 + "No rooms on %1$s": [
  180 + null,
  181 + "Nessuna stanza su %1$s"
  182 + ],
  183 + "Rooms on %1$s": [
  184 + null,
  185 + "Stanze su %1$s"
  186 + ],
  187 + "Set chatroom topic": [
  188 + null,
  189 + "Cambia oggetto della stanza"
  190 + ],
  191 + "Kick user from chatroom": [
  192 + null,
  193 + "Espelli utente dalla stanza"
  194 + ],
  195 + "Ban user from chatroom": [
  196 + null,
  197 + "Bandisci utente dalla stanza"
  198 + ],
  199 + "Message": [
  200 + null,
  201 + "Messaggio"
  202 + ],
  203 + "Save": [
  204 + null,
  205 + "Salva"
  206 + ],
  207 + "Cancel": [
  208 + null,
  209 + "Annulla"
  210 + ],
  211 + "An error occurred while trying to save the form.": [
  212 + null,
  213 + "Errore durante il salvataggio del modulo"
  214 + ],
  215 + "This chatroom requires a password": [
  216 + null,
  217 + "Questa stanza richiede una password"
  218 + ],
  219 + "Password: ": [
  220 + null,
  221 + "Password: "
  222 + ],
  223 + "Submit": [
  224 + null,
  225 + "Invia"
  226 + ],
  227 + "This room is not anonymous": [
  228 + null,
  229 + "Questa stanza non è anonima"
  230 + ],
  231 + "This room now shows unavailable members": [
  232 + null,
  233 + "Questa stanza mostra i membri non disponibili al momento"
  234 + ],
  235 + "This room does not show unavailable members": [
  236 + null,
  237 + "Questa stanza non mostra i membri non disponibili"
  238 + ],
  239 + "Non-privacy-related room configuration has changed": [
  240 + null,
  241 + "Una configurazione della stanza non legata alla privacy è stata modificata"
  242 + ],
  243 + "Room logging is now enabled": [
  244 + null,
  245 + "La registrazione è abilitata nella stanza"
  246 + ],
  247 + "Room logging is now disabled": [
  248 + null,
  249 + "La registrazione è disabilitata nella stanza"
  250 + ],
  251 + "This room is now non-anonymous": [
  252 + null,
  253 + "Questa stanza è non-anonima"
  254 + ],
  255 + "This room is now semi-anonymous": [
  256 + null,
  257 + "Questa stanza è semi-anonima"
  258 + ],
  259 + "This room is now fully-anonymous": [
  260 + null,
  261 + "Questa stanza è completamente-anonima"
  262 + ],
  263 + "A new room has been created": [
  264 + null,
  265 + "Una nuova stanza è stata creata"
  266 + ],
  267 + "Your nickname has been changed": [
  268 + null,
  269 + "Il tuo soprannome è stato cambiato"
  270 + ],
  271 + "<strong>%1$s</strong> has been banned": [
  272 + null,
  273 + "<strong>%1$s</strong> è stato bandito"
  274 + ],
  275 + "<strong>%1$s</strong> has been kicked out": [
  276 + null,
  277 + "<strong>%1$s</strong> è stato espulso"
  278 + ],
  279 + "<strong>%1$s</strong> has been removed because of an affiliation change": [
  280 + null,
  281 + "<strong>%1$s</strong> è stato rimosso a causa di un cambio di affiliazione"
  282 + ],
  283 + "<strong>%1$s</strong> has been removed for not being a member": [
  284 + null,
  285 + "<strong>%1$s</strong> è stato rimosso in quanto non membro"
  286 + ],
  287 + "You have been banned from this room": [
  288 + null,
  289 + "Sei stato bandito da questa stanza"
  290 + ],
  291 + "You have been kicked from this room": [
  292 + null,
  293 + "Sei stato espulso da questa stanza"
  294 + ],
  295 + "You have been removed from this room because of an affiliation change": [
  296 + null,
  297 + "Sei stato rimosso da questa stanza a causa di un cambio di affiliazione"
  298 + ],
  299 + "You have been removed from this room because the room has changed to members-only and you're not a member": [
  300 + null,
  301 + "Sei stato rimosso da questa stanza poiché ora la stanza accetta solo membri"
  302 + ],
  303 + "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
  304 + null,
  305 + "Sei stato rimosso da questa stanza poiché il servizio MUC (Chat multi utente) è in fase di spegnimento"
  306 + ],
  307 + "You are not on the member list of this room": [
  308 + null,
  309 + "Non sei nella lista dei membri di questa stanza"
  310 + ],
  311 + "No nickname was specified": [
  312 + null,
  313 + "Nessun soprannome specificato"
  314 + ],
  315 + "You are not allowed to create new rooms": [
  316 + null,
  317 + "Non ti è permesso creare nuove stanze"
  318 + ],
  319 + "Your nickname doesn't conform to this room's policies": [
  320 + null,
  321 + "Il tuo soprannome non è conforme alle regole di questa stanza"
  322 + ],
  323 + "Your nickname is already taken": [
  324 + null,
  325 + "Il tuo soprannome è già utilizzato"
  326 + ],
  327 + "This room does not (yet) exist": [
  328 + null,
  329 + "Questa stanza non esiste (per ora)"
  330 + ],
  331 + "This room has reached it's maximum number of occupants": [
  332 + null,
  333 + "Questa stanza ha raggiunto il limite massimo di utenti"
  334 + ],
  335 + "Topic set by %1$s to: %2$s": [
  336 + null,
  337 + "Topic impostato da %1$s a: %2$s"
  338 + ],
  339 + "This user is a moderator": [
  340 + null,
  341 + "Questo utente è un moderatore"
  342 + ],
  343 + "This user can send messages in this room": [
  344 + null,
  345 + "Questo utente può inviare messaggi in questa stanza"
  346 + ],
  347 + "This user can NOT send messages in this room": [
  348 + null,
  349 + "Questo utente NON può inviare messaggi in questa stanza"
  350 + ],
  351 + "Click to chat with this contact": [
  352 + null,
  353 + "Clicca per parlare con questo contatto"
  354 + ],
  355 + "Click to remove this contact": [
  356 + null,
  357 + "Clicca per rimuovere questo contatto"
  358 + ],
  359 + "Contact requests": [
  360 + null,
  361 + "Richieste dei contatti"
  362 + ],
  363 + "My contacts": [
  364 + null,
  365 + "I miei contatti"
  366 + ],
  367 + "Pending contacts": [
  368 + null,
  369 + "Contatti in attesa"
  370 + ],
  371 + "Custom status": [
  372 + null,
  373 + "Stato personalizzato"
  374 + ],
  375 + "Click to change your chat status": [
  376 + null,
  377 + "Clicca per cambiare il tuo stato"
  378 + ],
  379 + "Click here to write a custom status message": [
  380 + null,
  381 + "Clicca qui per scrivere un messaggio di stato personalizzato"
  382 + ],
  383 + "online": [
  384 + null,
  385 + "in linea"
  386 + ],
  387 + "busy": [
  388 + null,
  389 + "occupato"
  390 + ],
  391 + "away for long": [
  392 + null,
  393 + "assente da molto"
  394 + ],
  395 + "away": [
  396 + null,
  397 + "assente"
  398 + ],
  399 + "I am %1$s": [
  400 + null,
  401 + "Sono %1$s"
  402 + ],
  403 + "Sign in": [
  404 + null,
  405 + "Entra"
  406 + ],
  407 + "XMPP/Jabber Username:": [
  408 + null,
  409 + "Nome utente:"
  410 + ],
  411 + "Password:": [
  412 + null,
  413 + "Password:"
  414 + ],
  415 + "Log In": [
  416 + null,
  417 + "Entra"
  418 + ],
  419 + "BOSH Service URL:": [
  420 + null,
  421 + "Indirizzo servizio BOSH:"
  422 + ],
  423 + "Connected": [
  424 + null,
  425 + "Connesso"
  426 + ],
  427 + "Disconnected": [
  428 + null,
  429 + "Disconnesso"
  430 + ],
  431 + "Error": [
  432 + null,
  433 + "Errore"
  434 + ],
  435 + "Connecting": [
  436 + null,
  437 + "Connessione in corso"
  438 + ],
  439 + "Connection Failed": [
  440 + null,
  441 + "Connessione fallita"
  442 + ],
  443 + "Authenticating": [
  444 + null,
  445 + "Autenticazione in corso"
  446 + ],
  447 + "Authentication Failed": [
  448 + null,
  449 + "Autenticazione fallita"
  450 + ],
  451 + "Disconnecting": [
  452 + null,
  453 + "Disconnessione in corso"
  454 + ],
  455 + "Attached": [
  456 + null,
  457 + "Allegato"
  458 + ],
  459 + "Online Contacts": [
  460 + null,
  461 + "Contatti in linea"
  462 + ]
  463 + }
  464 + }
  465 + });
  466 + return factory(it);
  467 + });
  468 +}(this, function (it) {
  469 + return it;
  470 +}));
0 471 \ No newline at end of file
... ...
src/colab/static/conversejs/locale/locales.js
  1 +/*
  2 + * This file specifies the language dependencies.
  3 + *
  4 + * Translations take up a lot of space and you are therefore advised to remove
  5 + * from here any languages that you don't need.
  6 + */
  7 +
1 8 (function (root, factory) {
2 9 require.config({
3 10 paths: {
4 11 "jed": "Libraries/jed",
5 12 "af": "locale/af/LC_MESSAGES/af",
6 13 "en": "locale/en/LC_MESSAGES/en",
  14 + "es": "locale/es/LC_MESSAGES/es",
7 15 "de": "locale/de/LC_MESSAGES/de",
8   - "hu": "locale/hu/LC_MESSAGES/hu"
  16 + "hu": "locale/hu/LC_MESSAGES/hu",
  17 + "it": "locale/it/LC_MESSAGES/it",
  18 + "ptbr": "locale/pt_BR/LC_MESSAGES/pt-br"
9 19 }
10 20 });
11 21  
... ... @@ -13,13 +23,19 @@
13 23 'jed',
14 24 'af',
15 25 'en',
  26 + 'es',
16 27 'de',
17   - 'hu'
18   - ], function (jed, af, en, de, hu) {
  28 + 'hu',
  29 + "it",
  30 + 'ptbr'
  31 + ], function (jed, af, en, es, de, hu, it, ptbr) {
19 32 root.locales = {};
20 33 root.locales.af = af;
21 34 root.locales.en = en;
  35 + root.locales.es = es;
22 36 root.locales.de = de;
23 37 root.locales.hu = hu;
  38 + root.locales.it = it;
  39 + root.locales.ptbr = ptbr;
24 40 });
25 41 })(this);
... ...
src/colab/static/conversejs/locale/pt_BR/LC_MESSAGES/converse.json 0 → 100644
... ... @@ -0,0 +1,460 @@
  1 +{
  2 + "converse": {
  3 + "": {
  4 + "Project-Id-Version": "Converse.js 0.4",
  5 + "Report-Msgid-Bugs-To": "",
  6 + "POT-Creation-Date": "2013-06-01 23:03+0200",
  7 + "PO-Revision-Date": "2013-07-23 14:34-0300",
  8 + "Last-Translator": "Matheus Figueiredo <matheus@tracy.com>",
  9 + "Language-Team": "Brazilian Portuguese",
  10 + "Language": "pt_BR",
  11 + "MIME-Version": "1.0",
  12 + "Content-Type": "text/plain; charset=UTF-8",
  13 + "Content-Transfer-Encoding": "8bit",
  14 + "Plural-Forms": "nplurals=2; plural=(n > 1);",
  15 + "domain": "converse",
  16 + "lang": "pt_BR",
  17 + "plural_forms": "nplurals=2; plural=(n != 1);"
  18 + },
  19 + "Show this menu": [
  20 + null,
  21 + "Mostrar o menu"
  22 + ],
  23 + "Write in the third person": [
  24 + null,
  25 + "Escrever em terceira pessoa"
  26 + ],
  27 + "Remove messages": [
  28 + null,
  29 + "Remover mensagens"
  30 + ],
  31 + "Personal message": [
  32 + null,
  33 + "Mensagem pessoal"
  34 + ],
  35 + "Contacts": [
  36 + null,
  37 + "Contatos"
  38 + ],
  39 + "Online": [
  40 + null,
  41 + "Online"
  42 + ],
  43 + "Busy": [
  44 + null,
  45 + "Ocupado"
  46 + ],
  47 + "Away": [
  48 + null,
  49 + "Ausente"
  50 + ],
  51 + "Offline": [
  52 + null,
  53 + "Offline"
  54 + ],
  55 + "Click to add new chat contacts": [
  56 + null,
  57 + "Clique para adicionar novos contatos ao chat"
  58 + ],
  59 + "Add a contact": [
  60 + null,
  61 + "Adicionar contato"
  62 + ],
  63 + "Contact username": [
  64 + null,
  65 + "Usuário do contatt"
  66 + ],
  67 + "Add": [
  68 + null,
  69 + "Adicionar"
  70 + ],
  71 + "Contact name": [
  72 + null,
  73 + "Nome do contato"
  74 + ],
  75 + "Search": [
  76 + null,
  77 + "Procurar"
  78 + ],
  79 + "No users found": [
  80 + null,
  81 + "Não foram encontrados usuários"
  82 + ],
  83 + "Click to add as a chat contact": [
  84 + null,
  85 + "Clique para adicionar como um contato do chat"
  86 + ],
  87 + "Click to open this room": [
  88 + null,
  89 + "CLique para abrir a sala"
  90 + ],
  91 + "Show more information on this room": [
  92 + null,
  93 + "Mostrar mais informações nessa sala"
  94 + ],
  95 + "Description:": [
  96 + null,
  97 + "Descrição:"
  98 + ],
  99 + "Occupants:": [
  100 + null,
  101 + "Ocupantes:"
  102 + ],
  103 + "Features:": [
  104 + null,
  105 + "Recursos:"
  106 + ],
  107 + "Requires authentication": [
  108 + null,
  109 + "Requer autenticação"
  110 + ],
  111 + "Hidden": [
  112 + null,
  113 + "Escondido"
  114 + ],
  115 + "Requires an invitation": [
  116 + null,
  117 + "Requer convite"
  118 + ],
  119 + "Moderated": [
  120 + null,
  121 + "Moderado"
  122 + ],
  123 + "Non-anonymous": [
  124 + null,
  125 + "Não anônimo"
  126 + ],
  127 + "Open room": [
  128 + null,
  129 + "Sala aberta"
  130 + ],
  131 + "Permanent room": [
  132 + null,
  133 + "Sala permanente"
  134 + ],
  135 + "Public": [
  136 + null,
  137 + "Público"
  138 + ],
  139 + "Semi-anonymous": [
  140 + null,
  141 + "Semi anônimo"
  142 + ],
  143 + "Temporary room": [
  144 + null,
  145 + "Sala temporária"
  146 + ],
  147 + "Unmoderated": [
  148 + null,
  149 + "Sem moderação"
  150 + ],
  151 + "Rooms": [
  152 + null,
  153 + "Salas"
  154 + ],
  155 + "Room name": [
  156 + null,
  157 + "Nome da sala"
  158 + ],
  159 + "Nickname": [
  160 + null,
  161 + "Apelido"
  162 + ],
  163 + "Server": [
  164 + null,
  165 + "Server"
  166 + ],
  167 + "Join": [
  168 + null,
  169 + "Entrar"
  170 + ],
  171 + "Show rooms": [
  172 + null,
  173 + "Mostar salas"
  174 + ],
  175 + "No rooms on %1$s": [
  176 + null,
  177 + "Sem salas em %1$s"
  178 + ],
  179 + "Rooms on %1$s": [
  180 + null,
  181 + "Salas em %1$s"
  182 + ],
  183 + "Set chatroom topic": [
  184 + null,
  185 + "Definir tópico do chat"
  186 + ],
  187 + "Kick user from chatroom": [
  188 + null,
  189 + "Expulsar usuário do chat"
  190 + ],
  191 + "Ban user from chatroom": [
  192 + null,
  193 + "Banir usuário do chat"
  194 + ],
  195 + "Message": [
  196 + null,
  197 + "Mensagem"
  198 + ],
  199 + "Save": [
  200 + null,
  201 + "Salvar"
  202 + ],
  203 + "Cancel": [
  204 + null,
  205 + "Cancelar"
  206 + ],
  207 + "An error occurred while trying to save the form.": [
  208 + null,
  209 + "Ocorreu um erro enquanto salvava o formulário"
  210 + ],
  211 + "This chatroom requires a password": [
  212 + null,
  213 + "Esse chat precisa de senha"
  214 + ],
  215 + "Password: ": [
  216 + null,
  217 + "Senha: "
  218 + ],
  219 + "Submit": [
  220 + null,
  221 + "Enviar"
  222 + ],
  223 + "This room is not anonymous": [
  224 + null,
  225 + "Essa sala não é anônima"
  226 + ],
  227 + "This room now shows unavailable members": [
  228 + null,
  229 + "Essa sala mostra membros indisponíveis"
  230 + ],
  231 + "This room does not show unavailable members": [
  232 + null,
  233 + "Essa sala não mostra membros indisponíveis"
  234 + ],
  235 + "Non-privacy-related room configuration has changed": [
  236 + null,
  237 + "Configuraçõs não relacionadas à privacidade mudaram"
  238 + ],
  239 + "Room logging is now enabled": [
  240 + null,
  241 + "O log da sala está ativado"
  242 + ],
  243 + "Room logging is now disabled": [
  244 + null,
  245 + "O log da sala está desativado"
  246 + ],
  247 + "This room is now non-anonymous": [
  248 + null,
  249 + "Esse sala é não anônima"
  250 + ],
  251 + "This room is now semi-anonymous": [
  252 + null,
  253 + "Essa sala agora é semi anônima"
  254 + ],
  255 + "This room is now fully-anonymous": [
  256 + null,
  257 + "Essa sala agora é totalmente anônima"
  258 + ],
  259 + "A new room has been created": [
  260 + null,
  261 + "Uma nova sala foi criada"
  262 + ],
  263 + "Your nickname has been changed": [
  264 + null,
  265 + "Seu apelido foi mudado"
  266 + ],
  267 + "<strong>%1$s</strong> has been banned": [
  268 + null,
  269 + "<strong>%1$s</strong> foi banido"
  270 + ],
  271 + "<strong>%1$s</strong> has been kicked out": [
  272 + null,
  273 + "<strong>%1$s</strong> foi expulso"
  274 + ],
  275 + "<strong>%1$s</strong> has been removed because of an affiliation change": [
  276 + null,
  277 + "<srtong>%1$s</strong> foi removido por causa de troca de associação"
  278 + ],
  279 + "<strong>%1$s</strong> has been removed for not being a member": [
  280 + null,
  281 + "<strong>%1$s</strong> foi removido por não ser um membro"
  282 + ],
  283 + "You have been banned from this room": [
  284 + null,
  285 + "Você foi banido dessa sala"
  286 + ],
  287 + "You have been kicked from this room": [
  288 + null,
  289 + "Você foi expulso dessa sala"
  290 + ],
  291 + "You have been removed from this room because of an affiliation change": [
  292 + null,
  293 + "Você foi removido da sala devido a uma mudança de associação"
  294 + ],
  295 + "You have been removed from this room because the room has changed to members-only and you're not a member": [
  296 + null,
  297 + "Você foi removido da sala porque ela foi mudada para somente membrose você não é um membro"
  298 + ],
  299 + "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
  300 + null,
  301 + "Você foi removido da sala devido a MUC (Multi-user chat)o serviço está sendo desligado"
  302 + ],
  303 + "You are not on the member list of this room": [
  304 + null,
  305 + "Você não é membro dessa sala"
  306 + ],
  307 + "No nickname was specified": [
  308 + null,
  309 + "Você não escolheu um apelido "
  310 + ],
  311 + "You are not allowed to create new rooms": [
  312 + null,
  313 + "Você não tem permitição de criar novas salas"
  314 + ],
  315 + "Your nickname doesn't conform to this room's policies": [
  316 + null,
  317 + "Seu apelido não está de acordo com as regras da sala"
  318 + ],
  319 + "Your nickname is already taken": [
  320 + null,
  321 + "Seu apelido já foi escolhido"
  322 + ],
  323 + "This room does not (yet) exist": [
  324 + null,
  325 + "A sala não existe (ainda)"
  326 + ],
  327 + "This room has reached it's maximum number of occupants": [
  328 + null,
  329 + "A sala atingiu o número máximo de ocupantes"
  330 + ],
  331 + "Topic set by %1$s to: %2$s": [
  332 + null,
  333 + "Topico definido por %1$s para: %2$s"
  334 + ],
  335 + "This user is a moderator": [
  336 + null,
  337 + "Esse usuário é o moderador"
  338 + ],
  339 + "This user can send messages in this room": [
  340 + null,
  341 + "Esse usuário pode enviar mensagens nessa sala"
  342 + ],
  343 + "This user can NOT send messages in this room": [
  344 + null,
  345 + "Esse usuário NÃO pode enviar mensagens nessa sala"
  346 + ],
  347 + "Click to chat with this contact": [
  348 + null,
  349 + "Clique para conversar com o contato"
  350 + ],
  351 + "Click to remove this contact": [
  352 + null,
  353 + "Clique para remover o contato"
  354 + ],
  355 + "Contact requests": [
  356 + null,
  357 + "Solicitação de contatos"
  358 + ],
  359 + "My contacts": [
  360 + null,
  361 + "Meus contatos"
  362 + ],
  363 + "Pending contacts": [
  364 + null,
  365 + "Contados pendentes"
  366 + ],
  367 + "Custom status": [
  368 + null,
  369 + "Status customizado"
  370 + ],
  371 + "Click to change your chat status": [
  372 + null,
  373 + "Clique para mudar seu status no chat"
  374 + ],
  375 + "Click here to write a custom status message": [
  376 + null,
  377 + "Clique aqui para customizar a mensagem de status"
  378 + ],
  379 + "online": [
  380 + null,
  381 + "online"
  382 + ],
  383 + "busy": [
  384 + null,
  385 + "ocupado"
  386 + ],
  387 + "away for long": [
  388 + null,
  389 + "ausente a bastante tempo"
  390 + ],
  391 + "away": [
  392 + null,
  393 + "ausente"
  394 + ],
  395 + "I am %1$s": [
  396 + null,
  397 + "Estou %1$s"
  398 + ],
  399 + "Sign in": [
  400 + null,
  401 + "Conectar-se"
  402 + ],
  403 + "XMPP/Jabber Username:": [
  404 + null,
  405 + "Usuário XMPP/Jabber:"
  406 + ],
  407 + "Password:": [
  408 + null,
  409 + "Senha:"
  410 + ],
  411 + "Log In": [
  412 + null,
  413 + "Entrar"
  414 + ],
  415 + "BOSH Service URL:": [
  416 + null,
  417 + "URL de serviço BOSH:"
  418 + ],
  419 + "Connected": [
  420 + null,
  421 + "Conectado"
  422 + ],
  423 + "Disconnected": [
  424 + null,
  425 + "Desconectado"
  426 + ],
  427 + "Error": [
  428 + null,
  429 + "Erro"
  430 + ],
  431 + "Connecting": [
  432 + null,
  433 + "Conectando"
  434 + ],
  435 + "Connection Failed": [
  436 + null,
  437 + "Falha de conexão"
  438 + ],
  439 + "Authenticating": [
  440 + null,
  441 + "Autenticando"
  442 + ],
  443 + "Authentication Failed": [
  444 + null,
  445 + "Falha de autenticação"
  446 + ],
  447 + "Disconnecting": [
  448 + null,
  449 + "Desconectando"
  450 + ],
  451 + "Attached": [
  452 + null,
  453 + "Anexado"
  454 + ],
  455 + "Online Contacts": [
  456 + null,
  457 + "Contatos online"
  458 + ]
  459 + }
  460 +}
... ...
src/colab/static/conversejs/locale/pt_BR/LC_MESSAGES/converse.po 0 → 100644
... ... @@ -0,0 +1,489 @@
  1 +# Portuguese translations for Converse.js package.
  2 +# Copyright (C) 2013 Jan-Carel Brand
  3 +# This file is distributed under the same license as the Converse.js package.
  4 +# Matheus Figueiredo <matheus@tracy.com>, 2013.
  5 +#
  6 +msgid ""
  7 +msgstr ""
  8 +"Project-Id-Version: Converse.js 0.4\n"
  9 +"Report-Msgid-Bugs-To: \n"
  10 +"POT-Creation-Date: 2013-06-01 23:03+0200\n"
  11 +"PO-Revision-Date: 2013-07-23 14:34-0300\n"
  12 +"Last-Translator: Matheus Figueiredo <matheus@tracy.com>\n"
  13 +"Language-Team: Brazilian Portuguese\n"
  14 +"Language: pt_BR\n"
  15 +"MIME-Version: 1.0\n"
  16 +"Content-Type: text/plain; charset=UTF-8\n"
  17 +"Content-Transfer-Encoding: 8bit\n"
  18 +"Plural-Forms: nplurals=2; plural=(n > 1);\n"
  19 +"domain: converse\n"
  20 +"lang: pt_BR\n"
  21 +"plural_forms: nplurals=2; plural=(n != 1);\n"
  22 +
  23 +#: converse.js:397 converse.js:1128
  24 +msgid "Show this menu"
  25 +msgstr "Mostrar o menu"
  26 +
  27 +#: converse.js:398 converse.js:1129
  28 +msgid "Write in the third person"
  29 +msgstr "Escrever em terceira pessoa"
  30 +
  31 +#: converse.js:399 converse.js:1133
  32 +msgid "Remove messages"
  33 +msgstr "Remover mensagens"
  34 +
  35 +#: converse.js:539
  36 +msgid "Personal message"
  37 +msgstr "Mensagem pessoal"
  38 +
  39 +#: converse.js:613
  40 +msgid "Contacts"
  41 +msgstr "Contatos"
  42 +
  43 +#: converse.js:618
  44 +msgid "Online"
  45 +msgstr "Online"
  46 +
  47 +#: converse.js:619
  48 +msgid "Busy"
  49 +msgstr "Ocupado"
  50 +
  51 +#: converse.js:620
  52 +msgid "Away"
  53 +msgstr "Ausente"
  54 +
  55 +#: converse.js:621
  56 +msgid "Offline"
  57 +msgstr "Offline"
  58 +
  59 +#: converse.js:628
  60 +msgid "Click to add new chat contacts"
  61 +msgstr "Clique para adicionar novos contatos ao chat"
  62 +
  63 +#: converse.js:628
  64 +msgid "Add a contact"
  65 +msgstr "Adicionar contato"
  66 +
  67 +#: converse.js:637
  68 +msgid "Contact username"
  69 +msgstr "Usuário do contatt"
  70 +
  71 +#: converse.js:638
  72 +msgid "Add"
  73 +msgstr "Adicionar"
  74 +
  75 +#: converse.js:646
  76 +msgid "Contact name"
  77 +msgstr "Nome do contato"
  78 +
  79 +#: converse.js:647
  80 +msgid "Search"
  81 +msgstr "Procurar"
  82 +
  83 +#: converse.js:682
  84 +msgid "No users found"
  85 +msgstr "Não foram encontrados usuários"
  86 +
  87 +#: converse.js:689
  88 +msgid "Click to add as a chat contact"
  89 +msgstr "Clique para adicionar como um contato do chat"
  90 +
  91 +#: converse.js:753
  92 +msgid "Click to open this room"
  93 +msgstr "CLique para abrir a sala"
  94 +
  95 +#: converse.js:755
  96 +msgid "Show more information on this room"
  97 +msgstr "Mostrar mais informações nessa sala"
  98 +
  99 +#: converse.js:760
  100 +msgid "Description:"
  101 +msgstr "Descrição:"
  102 +
  103 +#: converse.js:761
  104 +msgid "Occupants:"
  105 +msgstr "Ocupantes:"
  106 +
  107 +#: converse.js:762
  108 +msgid "Features:"
  109 +msgstr "Recursos:"
  110 +
  111 +#: converse.js:764
  112 +msgid "Requires authentication"
  113 +msgstr "Requer autenticação"
  114 +
  115 +#: converse.js:767
  116 +msgid "Hidden"
  117 +msgstr "Escondido"
  118 +
  119 +#: converse.js:770
  120 +msgid "Requires an invitation"
  121 +msgstr "Requer convite"
  122 +
  123 +#: converse.js:773
  124 +msgid "Moderated"
  125 +msgstr "Moderado"
  126 +
  127 +#: converse.js:776
  128 +msgid "Non-anonymous"
  129 +msgstr "Não anônimo"
  130 +
  131 +#: converse.js:779
  132 +msgid "Open room"
  133 +msgstr "Sala aberta"
  134 +
  135 +#: converse.js:782
  136 +msgid "Permanent room"
  137 +msgstr "Sala permanente"
  138 +
  139 +#: converse.js:785
  140 +msgid "Public"
  141 +msgstr "Público"
  142 +
  143 +#: converse.js:788
  144 +msgid "Semi-anonymous"
  145 +msgstr "Semi anônimo"
  146 +
  147 +#: converse.js:791
  148 +msgid "Temporary room"
  149 +msgstr "Sala temporária"
  150 +
  151 +#: converse.js:794
  152 +msgid "Unmoderated"
  153 +msgstr "Sem moderação"
  154 +
  155 +#: converse.js:800
  156 +msgid "Rooms"
  157 +msgstr "Salas"
  158 +
  159 +#: converse.js:804
  160 +msgid "Room name"
  161 +msgstr "Nome da sala"
  162 +
  163 +#: converse.js:805
  164 +msgid "Nickname"
  165 +msgstr "Apelido"
  166 +
  167 +#: converse.js:806
  168 +msgid "Server"
  169 +msgstr "Server"
  170 +
  171 +#: converse.js:807
  172 +msgid "Join"
  173 +msgstr "Entrar"
  174 +
  175 +#: converse.js:808
  176 +msgid "Show rooms"
  177 +msgstr "Mostar salas"
  178 +
  179 +#. For translators: %1$s is a variable and will be replaced with the XMPP server name
  180 +#: converse.js:841
  181 +msgid "No rooms on %1$s"
  182 +msgstr "Sem salas em %1$s"
  183 +
  184 +#. For translators: %1$s is a variable and will be
  185 +#. replaced with the XMPP server name
  186 +#: converse.js:856
  187 +msgid "Rooms on %1$s"
  188 +msgstr "Salas em %1$s"
  189 +
  190 +#: converse.js:1130
  191 +msgid "Set chatroom topic"
  192 +msgstr "Definir tópico do chat"
  193 +
  194 +#: converse.js:1131
  195 +msgid "Kick user from chatroom"
  196 +msgstr "Expulsar usuário do chat"
  197 +
  198 +#: converse.js:1132
  199 +msgid "Ban user from chatroom"
  200 +msgstr "Banir usuário do chat"
  201 +
  202 +#: converse.js:1159
  203 +msgid "Message"
  204 +msgstr "Mensagem"
  205 +
  206 +#: converse.js:1273 converse.js:2318
  207 +msgid "Save"
  208 +msgstr "Salvar"
  209 +
  210 +#: converse.js:1274
  211 +msgid "Cancel"
  212 +msgstr "Cancelar"
  213 +
  214 +#: converse.js:1321
  215 +msgid "An error occurred while trying to save the form."
  216 +msgstr "Ocorreu um erro enquanto salvava o formulário"
  217 +
  218 +#: converse.js:1367
  219 +msgid "This chatroom requires a password"
  220 +msgstr "Esse chat precisa de senha"
  221 +
  222 +#: converse.js:1368
  223 +msgid "Password: "
  224 +msgstr "Senha: "
  225 +
  226 +#: converse.js:1369
  227 +msgid "Submit"
  228 +msgstr "Enviar"
  229 +
  230 +#: converse.js:1383
  231 +msgid "This room is not anonymous"
  232 +msgstr "Essa sala não é anônima"
  233 +
  234 +#: converse.js:1384
  235 +msgid "This room now shows unavailable members"
  236 +msgstr "Essa sala mostra membros indisponíveis"
  237 +
  238 +#: converse.js:1385
  239 +msgid "This room does not show unavailable members"
  240 +msgstr "Essa sala não mostra membros indisponíveis"
  241 +
  242 +#: converse.js:1386
  243 +msgid "Non-privacy-related room configuration has changed"
  244 +msgstr "Configuraçõs não relacionadas à privacidade mudaram"
  245 +
  246 +#: converse.js:1387
  247 +msgid "Room logging is now enabled"
  248 +msgstr "O log da sala está ativado"
  249 +
  250 +#: converse.js:1388
  251 +msgid "Room logging is now disabled"
  252 +msgstr "O log da sala está desativado"
  253 +
  254 +#: converse.js:1389
  255 +msgid "This room is now non-anonymous"
  256 +msgstr "Esse sala é não anônima"
  257 +
  258 +#: converse.js:1390
  259 +msgid "This room is now semi-anonymous"
  260 +msgstr "Essa sala agora é semi anônima"
  261 +
  262 +#: converse.js:1391
  263 +msgid "This room is now fully-anonymous"
  264 +msgstr "Essa sala agora é totalmente anônima"
  265 +
  266 +#: converse.js:1392
  267 +msgid "A new room has been created"
  268 +msgstr "Uma nova sala foi criada"
  269 +
  270 +#: converse.js:1393
  271 +msgid "Your nickname has been changed"
  272 +msgstr "Seu apelido foi mudado"
  273 +
  274 +#. For translations: %1$s will be replaced with the user's nickname
  275 +#. Don't translate "strong"
  276 +#. Example: <strong>jcbrand</strong> has been banned
  277 +#: converse.js:1400
  278 +msgid "<strong>%1$s</strong> has been banned"
  279 +msgstr "<strong>%1$s</strong> foi banido"
  280 +
  281 +#. For translations: %1$s will be replaced with the user's nickname
  282 +#. Don't translate "strong"
  283 +#. Example: <strong>jcbrand</strong> has been kicked out
  284 +#: converse.js:1404
  285 +msgid "<strong>%1$s</strong> has been kicked out"
  286 +msgstr "<strong>%1$s</strong> foi expulso"
  287 +
  288 +#. For translations: %1$s will be replaced with the user's nickname
  289 +#. Don't translate "strong"
  290 +#. Example: <strong>jcbrand</strong> has been removed because of an affiliasion change
  291 +#: converse.js:1408
  292 +msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
  293 +msgstr "<srtong>%1$s</strong> foi removido por causa de troca de associação"
  294 +
  295 +#. For translations: %1$s will be replaced with the user's nickname
  296 +#. Don't translate "strong"
  297 +#. Example: <strong>jcbrand</strong> has been removed for not being a member
  298 +#: converse.js:1412
  299 +msgid "<strong>%1$s</strong> has been removed for not being a member"
  300 +msgstr "<strong>%1$s</strong> foi removido por não ser um membro"
  301 +
  302 +#: converse.js:1416 converse.js:1478
  303 +msgid "You have been banned from this room"
  304 +msgstr "Você foi banido dessa sala"
  305 +
  306 +#: converse.js:1417
  307 +msgid "You have been kicked from this room"
  308 +msgstr "Você foi expulso dessa sala"
  309 +
  310 +#: converse.js:1418
  311 +msgid "You have been removed from this room because of an affiliation change"
  312 +msgstr "Você foi removido da sala devido a uma mudança de associação"
  313 +
  314 +#: converse.js:1419
  315 +msgid ""
  316 +"You have been removed from this room because the room has changed to members-"
  317 +"only and you're not a member"
  318 +msgstr ""
  319 +"Você foi removido da sala porque ela foi mudada para somente membros"
  320 +"e você não é um membro"
  321 +
  322 +#: converse.js:1420
  323 +msgid ""
  324 +"You have been removed from this room because the MUC (Multi-user chat) "
  325 +"service is being shut down."
  326 +msgstr ""
  327 +"Você foi removido da sala devido a MUC (Multi-user chat)"
  328 +"o serviço está sendo desligado"
  329 +
  330 +#: converse.js:1476
  331 +msgid "You are not on the member list of this room"
  332 +msgstr "Você não é membro dessa sala"
  333 +
  334 +#: converse.js:1482
  335 +msgid "No nickname was specified"
  336 +msgstr "Você não escolheu um apelido "
  337 +
  338 +#: converse.js:1486
  339 +msgid "You are not allowed to create new rooms"
  340 +msgstr "Você não tem permitição de criar novas salas"
  341 +
  342 +#: converse.js:1488
  343 +msgid "Your nickname doesn't conform to this room's policies"
  344 +msgstr "Seu apelido não está de acordo com as regras da sala"
  345 +
  346 +#: converse.js:1490
  347 +msgid "Your nickname is already taken"
  348 +msgstr "Seu apelido já foi escolhido"
  349 +
  350 +#: converse.js:1492
  351 +msgid "This room does not (yet) exist"
  352 +msgstr "A sala não existe (ainda)"
  353 +
  354 +#: converse.js:1494
  355 +msgid "This room has reached it's maximum number of occupants"
  356 +msgstr "A sala atingiu o número máximo de ocupantes"
  357 +
  358 +#. For translators: the %1$s and %2$s parts will get replaced by the user and topic text respectively
  359 +#. Example: Topic set by JC Brand to: Hello World!
  360 +#: converse.js:1571
  361 +msgid "Topic set by %1$s to: %2$s"
  362 +msgstr "Topico definido por %1$s para: %2$s"
  363 +
  364 +#: converse.js:1587
  365 +msgid "This user is a moderator"
  366 +msgstr "Esse usuário é o moderador"
  367 +
  368 +#: converse.js:1590
  369 +msgid "This user can send messages in this room"
  370 +msgstr "Esse usuário pode enviar mensagens nessa sala"
  371 +
  372 +#: converse.js:1593
  373 +msgid "This user can NOT send messages in this room"
  374 +msgstr "Esse usuário NÃO pode enviar mensagens nessa sala"
  375 +
  376 +#: converse.js:1796
  377 +msgid "Click to chat with this contact"
  378 +msgstr "Clique para conversar com o contato"
  379 +
  380 +#: converse.js:1797 converse.js:1801
  381 +msgid "Click to remove this contact"
  382 +msgstr "Clique para remover o contato"
  383 +
  384 +#: converse.js:2163
  385 +msgid "Contact requests"
  386 +msgstr "Solicitação de contatos"
  387 +
  388 +#: converse.js:2164
  389 +msgid "My contacts"
  390 +msgstr "Meus contatos"
  391 +
  392 +#: converse.js:2165
  393 +msgid "Pending contacts"
  394 +msgstr "Contados pendentes"
  395 +
  396 +#: converse.js:2317
  397 +msgid "Custom status"
  398 +msgstr "Status customizado"
  399 +
  400 +#: converse.js:2323
  401 +msgid "Click to change your chat status"
  402 +msgstr "Clique para mudar seu status no chat"
  403 +
  404 +#: converse.js:2326
  405 +msgid "Click here to write a custom status message"
  406 +msgstr "Clique aqui para customizar a mensagem de status"
  407 +
  408 +#: converse.js:2355 converse.js:2363
  409 +msgid "online"
  410 +msgstr "online"
  411 +
  412 +#: converse.js:2357
  413 +msgid "busy"
  414 +msgstr "ocupado"
  415 +
  416 +#: converse.js:2359
  417 +msgid "away for long"
  418 +msgstr "ausente a bastante tempo"
  419 +
  420 +#: converse.js:2361
  421 +msgid "away"
  422 +msgstr "ausente"
  423 +
  424 +#. For translators: the %1$s part gets replaced with the status
  425 +#. Example, I am online
  426 +#: converse.js:2375 converse.js:2409
  427 +msgid "I am %1$s"
  428 +msgstr "Estou %1$s"
  429 +
  430 +#: converse.js:2480
  431 +msgid "Sign in"
  432 +msgstr "Conectar-se"
  433 +
  434 +#: converse.js:2483
  435 +msgid "XMPP/Jabber Username:"
  436 +msgstr "Usuário XMPP/Jabber:"
  437 +
  438 +#: converse.js:2485
  439 +msgid "Password:"
  440 +msgstr "Senha:"
  441 +
  442 +#: converse.js:2487
  443 +msgid "Log In"
  444 +msgstr "Entrar"
  445 +
  446 +#: converse.js:2491
  447 +msgid "BOSH Service URL:"
  448 +msgstr "URL de serviço BOSH:"
  449 +
  450 +#: converse.js:2503
  451 +msgid "Connected"
  452 +msgstr "Conectado"
  453 +
  454 +#: converse.js:2507
  455 +msgid "Disconnected"
  456 +msgstr "Desconectado"
  457 +
  458 +#: converse.js:2511
  459 +msgid "Error"
  460 +msgstr "Erro"
  461 +
  462 +#: converse.js:2513
  463 +msgid "Connecting"
  464 +msgstr "Conectando"
  465 +
  466 +#: converse.js:2516
  467 +msgid "Connection Failed"
  468 +msgstr "Falha de conexão"
  469 +
  470 +#: converse.js:2518
  471 +msgid "Authenticating"
  472 +msgstr "Autenticando"
  473 +
  474 +#: converse.js:2521
  475 +msgid "Authentication Failed"
  476 +msgstr "Falha de autenticação"
  477 +
  478 +#: converse.js:2523
  479 +msgid "Disconnecting"
  480 +msgstr "Desconectando"
  481 +
  482 +#: converse.js:2525
  483 +msgid "Attached"
  484 +msgstr "Anexado"
  485 +
  486 +#: converse.js:2656
  487 +msgid "Online Contacts"
  488 +msgstr "Contatos online"
  489 +
... ...
src/colab/static/conversejs/locale/pt_BR/LC_MESSAGES/pt-br.js 0 → 100644
... ... @@ -0,0 +1,471 @@
  1 +(
  2 + function (root, factory) {
  3 + define("ptbr", ['jed'], function () {
  4 + return factory(
  5 + new Jed({"domain": "converse", "locale_data": {
  6 + "converse": {
  7 + "": {
  8 + "Project-Id-Version": "Converse.js 0.4",
  9 + "Report-Msgid-Bugs-To": "",
  10 + "POT-Creation-Date": "2013-06-01 23:03+0200",
  11 + "PO-Revision-Date": "2013-07-23 14:34-0300",
  12 + "Last-Translator": "Matheus Figueiredo <matheus@tracy.com>",
  13 + "Language-Team": "Brazilian Portuguese",
  14 + "Language": "pt_BR",
  15 + "MIME-Version": "1.0",
  16 + "Content-Type": "text/plain; charset=UTF-8",
  17 + "Content-Transfer-Encoding": "8bit",
  18 + "Plural-Forms": "nplurals=2; plural=(n > 1);",
  19 + "domain": "converse",
  20 + "lang": "pt_BR",
  21 + "plural_forms": "nplurals=2; plural=(n != 1);"
  22 + },
  23 + "Show this menu": [
  24 + null,
  25 + "Mostrar o menu"
  26 + ],
  27 + "Write in the third person": [
  28 + null,
  29 + "Escrever em terceira pessoa"
  30 + ],
  31 + "Remove messages": [
  32 + null,
  33 + "Remover mensagens"
  34 + ],
  35 + "Personal message": [
  36 + null,
  37 + "Mensagem pessoal"
  38 + ],
  39 + "Contacts": [
  40 + null,
  41 + "Contatos"
  42 + ],
  43 + "Online": [
  44 + null,
  45 + "Online"
  46 + ],
  47 + "Busy": [
  48 + null,
  49 + "Ocupado"
  50 + ],
  51 + "Away": [
  52 + null,
  53 + "Ausente"
  54 + ],
  55 + "Offline": [
  56 + null,
  57 + "Offline"
  58 + ],
  59 + "Click to add new chat contacts": [
  60 + null,
  61 + "Clique para adicionar novos contatos ao chat"
  62 + ],
  63 + "Add a contact": [
  64 + null,
  65 + "Adicionar contato"
  66 + ],
  67 + "Contact username": [
  68 + null,
  69 + "Usuário do contatt"
  70 + ],
  71 + "Add": [
  72 + null,
  73 + "Adicionar"
  74 + ],
  75 + "Contact name": [
  76 + null,
  77 + "Nome do contato"
  78 + ],
  79 + "Search": [
  80 + null,
  81 + "Procurar"
  82 + ],
  83 + "No users found": [
  84 + null,
  85 + "Não foram encontrados usuários"
  86 + ],
  87 + "Click to add as a chat contact": [
  88 + null,
  89 + "Clique para adicionar como um contato do chat"
  90 + ],
  91 + "Click to open this room": [
  92 + null,
  93 + "CLique para abrir a sala"
  94 + ],
  95 + "Show more information on this room": [
  96 + null,
  97 + "Mostrar mais informações nessa sala"
  98 + ],
  99 + "Description:": [
  100 + null,
  101 + "Descrição:"
  102 + ],
  103 + "Occupants:": [
  104 + null,
  105 + "Ocupantes:"
  106 + ],
  107 + "Features:": [
  108 + null,
  109 + "Recursos:"
  110 + ],
  111 + "Requires authentication": [
  112 + null,
  113 + "Requer autenticação"
  114 + ],
  115 + "Hidden": [
  116 + null,
  117 + "Escondido"
  118 + ],
  119 + "Requires an invitation": [
  120 + null,
  121 + "Requer convite"
  122 + ],
  123 + "Moderated": [
  124 + null,
  125 + "Moderado"
  126 + ],
  127 + "Non-anonymous": [
  128 + null,
  129 + "Não anônimo"
  130 + ],
  131 + "Open room": [
  132 + null,
  133 + "Sala aberta"
  134 + ],
  135 + "Permanent room": [
  136 + null,
  137 + "Sala permanente"
  138 + ],
  139 + "Public": [
  140 + null,
  141 + "Público"
  142 + ],
  143 + "Semi-anonymous": [
  144 + null,
  145 + "Semi anônimo"
  146 + ],
  147 + "Temporary room": [
  148 + null,
  149 + "Sala temporária"
  150 + ],
  151 + "Unmoderated": [
  152 + null,
  153 + "Sem moderação"
  154 + ],
  155 + "Rooms": [
  156 + null,
  157 + "Salas"
  158 + ],
  159 + "Room name": [
  160 + null,
  161 + "Nome da sala"
  162 + ],
  163 + "Nickname": [
  164 + null,
  165 + "Apelido"
  166 + ],
  167 + "Server": [
  168 + null,
  169 + "Server"
  170 + ],
  171 + "Join": [
  172 + null,
  173 + "Entrar"
  174 + ],
  175 + "Show rooms": [
  176 + null,
  177 + "Mostar salas"
  178 + ],
  179 + "No rooms on %1$s": [
  180 + null,
  181 + "Sem salas em %1$s"
  182 + ],
  183 + "Rooms on %1$s": [
  184 + null,
  185 + "Salas em %1$s"
  186 + ],
  187 + "Set chatroom topic": [
  188 + null,
  189 + "Definir tópico do chat"
  190 + ],
  191 + "Kick user from chatroom": [
  192 + null,
  193 + "Expulsar usuário do chat"
  194 + ],
  195 + "Ban user from chatroom": [
  196 + null,
  197 + "Banir usuário do chat"
  198 + ],
  199 + "Message": [
  200 + null,
  201 + "Mensagem"
  202 + ],
  203 + "Save": [
  204 + null,
  205 + "Salvar"
  206 + ],
  207 + "Cancel": [
  208 + null,
  209 + "Cancelar"
  210 + ],
  211 + "An error occurred while trying to save the form.": [
  212 + null,
  213 + "Ocorreu um erro enquanto salvava o formulário"
  214 + ],
  215 + "This chatroom requires a password": [
  216 + null,
  217 + "Esse chat precisa de senha"
  218 + ],
  219 + "Password: ": [
  220 + null,
  221 + "Senha: "
  222 + ],
  223 + "Submit": [
  224 + null,
  225 + "Enviar"
  226 + ],
  227 + "This room is not anonymous": [
  228 + null,
  229 + "Essa sala não é anônima"
  230 + ],
  231 + "This room now shows unavailable members": [
  232 + null,
  233 + "Essa sala mostra membros indisponíveis"
  234 + ],
  235 + "This room does not show unavailable members": [
  236 + null,
  237 + "Essa sala não mostra membros indisponíveis"
  238 + ],
  239 + "Non-privacy-related room configuration has changed": [
  240 + null,
  241 + "Configuraçõs não relacionadas à privacidade mudaram"
  242 + ],
  243 + "Room logging is now enabled": [
  244 + null,
  245 + "O log da sala está ativado"
  246 + ],
  247 + "Room logging is now disabled": [
  248 + null,
  249 + "O log da sala está desativado"
  250 + ],
  251 + "This room is now non-anonymous": [
  252 + null,
  253 + "Esse sala é não anônima"
  254 + ],
  255 + "This room is now semi-anonymous": [
  256 + null,
  257 + "Essa sala agora é semi anônima"
  258 + ],
  259 + "This room is now fully-anonymous": [
  260 + null,
  261 + "Essa sala agora é totalmente anônima"
  262 + ],
  263 + "A new room has been created": [
  264 + null,
  265 + "Uma nova sala foi criada"
  266 + ],
  267 + "Your nickname has been changed": [
  268 + null,
  269 + "Seu apelido foi mudado"
  270 + ],
  271 + "<strong>%1$s</strong> has been banned": [
  272 + null,
  273 + "<strong>%1$s</strong> foi banido"
  274 + ],
  275 + "<strong>%1$s</strong> has been kicked out": [
  276 + null,
  277 + "<strong>%1$s</strong> foi expulso"
  278 + ],
  279 + "<strong>%1$s</strong> has been removed because of an affiliation change": [
  280 + null,
  281 + "<srtong>%1$s</strong> foi removido por causa de troca de associação"
  282 + ],
  283 + "<strong>%1$s</strong> has been removed for not being a member": [
  284 + null,
  285 + "<strong>%1$s</strong> foi removido por não ser um membro"
  286 + ],
  287 + "You have been banned from this room": [
  288 + null,
  289 + "Você foi banido dessa sala"
  290 + ],
  291 + "You have been kicked from this room": [
  292 + null,
  293 + "Você foi expulso dessa sala"
  294 + ],
  295 + "You have been removed from this room because of an affiliation change": [
  296 + null,
  297 + "Você foi removido da sala devido a uma mudança de associação"
  298 + ],
  299 + "You have been removed from this room because the room has changed to members-only and you're not a member": [
  300 + null,
  301 + "Você foi removido da sala porque ela foi mudada para somente membrose você não é um membro"
  302 + ],
  303 + "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
  304 + null,
  305 + "Você foi removido da sala devido a MUC (Multi-user chat)o serviço está sendo desligado"
  306 + ],
  307 + "You are not on the member list of this room": [
  308 + null,
  309 + "Você não é membro dessa sala"
  310 + ],
  311 + "No nickname was specified": [
  312 + null,
  313 + "Você não escolheu um apelido "
  314 + ],
  315 + "You are not allowed to create new rooms": [
  316 + null,
  317 + "Você não tem permitição de criar novas salas"
  318 + ],
  319 + "Your nickname doesn't conform to this room's policies": [
  320 + null,
  321 + "Seu apelido não está de acordo com as regras da sala"
  322 + ],
  323 + "Your nickname is already taken": [
  324 + null,
  325 + "Seu apelido já foi escolhido"
  326 + ],
  327 + "This room does not (yet) exist": [
  328 + null,
  329 + "A sala não existe (ainda)"
  330 + ],
  331 + "This room has reached it's maximum number of occupants": [
  332 + null,
  333 + "A sala atingiu o número máximo de ocupantes"
  334 + ],
  335 + "Topic set by %1$s to: %2$s": [
  336 + null,
  337 + "Topico definido por %1$s para: %2$s"
  338 + ],
  339 + "This user is a moderator": [
  340 + null,
  341 + "Esse usuário é o moderador"
  342 + ],
  343 + "This user can send messages in this room": [
  344 + null,
  345 + "Esse usuário pode enviar mensagens nessa sala"
  346 + ],
  347 + "This user can NOT send messages in this room": [
  348 + null,
  349 + "Esse usuário NÃO pode enviar mensagens nessa sala"
  350 + ],
  351 + "Click to chat with this contact": [
  352 + null,
  353 + "Clique para conversar com o contato"
  354 + ],
  355 + "Click to remove this contact": [
  356 + null,
  357 + "Clique para remover o contato"
  358 + ],
  359 + "Contact requests": [
  360 + null,
  361 + "Solicitação de contatos"
  362 + ],
  363 + "My contacts": [
  364 + null,
  365 + "Meus contatos"
  366 + ],
  367 + "Pending contacts": [
  368 + null,
  369 + "Contados pendentes"
  370 + ],
  371 + "Custom status": [
  372 + null,
  373 + "Status customizado"
  374 + ],
  375 + "Click to change your chat status": [
  376 + null,
  377 + "Clique para mudar seu status no chat"
  378 + ],
  379 + "Click here to write a custom status message": [
  380 + null,
  381 + "Clique aqui para customizar a mensagem de status"
  382 + ],
  383 + "online": [
  384 + null,
  385 + "online"
  386 + ],
  387 + "busy": [
  388 + null,
  389 + "ocupado"
  390 + ],
  391 + "away for long": [
  392 + null,
  393 + "ausente a bastante tempo"
  394 + ],
  395 + "away": [
  396 + null,
  397 + "ausente"
  398 + ],
  399 + "I am %1$s": [
  400 + null,
  401 + "Estou %1$s"
  402 + ],
  403 + "Sign in": [
  404 + null,
  405 + "Conectar-se"
  406 + ],
  407 + "XMPP/Jabber Username:": [
  408 + null,
  409 + "Usuário XMPP/Jabber:"
  410 + ],
  411 + "Password:": [
  412 + null,
  413 + "Senha:"
  414 + ],
  415 + "Log In": [
  416 + null,
  417 + "Entrar"
  418 + ],
  419 + "BOSH Service URL:": [
  420 + null,
  421 + "URL de serviço BOSH:"
  422 + ],
  423 + "Connected": [
  424 + null,
  425 + "Conectado"
  426 + ],
  427 + "Disconnected": [
  428 + null,
  429 + "Desconectado"
  430 + ],
  431 + "Error": [
  432 + null,
  433 + "Erro"
  434 + ],
  435 + "Connecting": [
  436 + null,
  437 + "Conectando"
  438 + ],
  439 + "Connection Failed": [
  440 + null,
  441 + "Falha de conexão"
  442 + ],
  443 + "Authenticating": [
  444 + null,
  445 + "Autenticando"
  446 + ],
  447 + "Authentication Failed": [
  448 + null,
  449 + "Falha de autenticação"
  450 + ],
  451 + "Disconnecting": [
  452 + null,
  453 + "Desconectando"
  454 + ],
  455 + "Attached": [
  456 + null,
  457 + "Anexado"
  458 + ],
  459 + "Online Contacts": [
  460 + null,
  461 + "Contatos online"
  462 + ]
  463 + }
  464 +} })
  465 + );
  466 + });
  467 + }(this, function (i18n) {
  468 + return i18n;
  469 + })
  470 +);
  471 +
... ...
src/colab/static/conversejs/main.js
1 1 require(["jquery", "converse"], function($, converse) {
2   - // Most of these initialization values are the defaults but they're
3   - // included here as a reference.
4   - converse.initialize({
5   - auto_list_rooms: false,
6   - auto_subscribe: false,
7   - bosh_service_url: 'https://bind.opkode.im', // Please use this connection manager only for testing purposes
8   - hide_muc_server: false,
9   - i18n: locales.en, // Refer to ./locale/locales.js to see which locales are supported
10   - prebind: false,
11   - show_controlbox_by_default: true,
12   - xhr_user_search: false
13   - });
  2 + window.converse = converse;
14 3 });
... ...
src/colab/static/conversejs/mock.js
1 1 (function (root, factory) {
2   - define("mock",
3   - ['converse'],
4   - function() {
5   - return factory();
  2 + define("mock",
  3 + ['converse'],
  4 + function() {
  5 + return factory();
6 6 });
7 7 }(this, function (converse) {
8 8 var mock_connection = {
... ... @@ -14,7 +14,7 @@
14 14 'rooms': {}
15 15 },
16 16 'jid': 'dummy@localhost',
17   - 'addHandler': function (handler, ns, name, type, id, from, options) {
  17 + 'addHandler': function (handler, ns, name, type, id, from, options) {
18 18 return function () {};
19 19 },
20 20 'send': function () {},
... ... @@ -26,7 +26,7 @@
26 26 'subscribe': function () {},
27 27 'registerCallback': function () {}
28 28 },
29   - 'vcard': {
  29 + 'vcard': {
30 30 'get': function (callback, jid) {
31 31 var firstname, lastname;
32 32 if (!jid) {
... ... @@ -41,7 +41,7 @@
41 41 var fullname = firstname+' '+lastname;
42 42 var vcard = $iq().c('vCard').c('FN').t(fullname);
43 43 callback(vcard.tree());
44   - }
  44 + }
45 45 },
46 46 'disco': {
47 47 'info': function () {},
... ...
src/colab/static/conversejs/package.json 0 → 100755
... ... @@ -0,0 +1,34 @@
  1 +{
  2 + "name": "converse.js",
  3 + "version": "0.5.0",
  4 + "description": "Browser based XMPP instant messaging client",
  5 + "main": "main.js",
  6 + "directories": {
  7 + "doc": "docs"
  8 + },
  9 + "scripts": {
  10 + "test": ""
  11 + },
  12 + "repository": {
  13 + "type": "git",
  14 + "url": "git://github.com/jcbrand/converse.js.git"
  15 + },
  16 + "keywords": [
  17 + "XMPP",
  18 + "Jabber",
  19 + "chat",
  20 + "messaging",
  21 + "chatrooms",
  22 + "webchat"
  23 + ],
  24 + "author": "JC Brand",
  25 + "license": "MIT",
  26 + "bugs": {
  27 + "url": "https://github.com/jcbrand/converse.js/issues"
  28 + },
  29 + "devDependencies": {
  30 + "grunt-cli": "~0.1.9",
  31 + "grunt": "~0.4.1",
  32 + "grunt-contrib-jshint": "~0.6.0"
  33 + }
  34 +}
... ...
src/colab/static/conversejs/spec/MainSpec.js
... ... @@ -54,7 +54,7 @@
54 54 expect($("div#controlbox").is(':visible')).toBe(true);
55 55 }, converse);
56 56 it("can be opened by clicking a DOM element with class 'toggle-online-users'", open_controlbox);
57   -
  57 +
58 58 describe("The Status Widget", $.proxy(function () {
59 59 it("can be used to set the current user's chat status", $.proxy(function () {
60 60 var view = this.xmppstatusview;
... ... @@ -121,7 +121,7 @@
121 121 var i, t, is_last;
122 122 spyOn(this.rosterview, 'render').andCallThrough();
123 123 for (i=0; i<pend_names.length; i++) {
124   - is_last = i==(pend_names.length-1);
  124 + is_last = i===(pend_names.length-1);
125 125 this.roster.create({
126 126 jid: pend_names[i].replace(' ','.').toLowerCase() + '@localhost',
127 127 subscription: 'none',
... ... @@ -129,7 +129,7 @@
129 129 fullname: pend_names[i],
130 130 is_last: is_last
131 131 });
132   - // For performance reasons, the roster should only be shown once
  132 + // For performance reasons, the roster should only be shown once
133 133 // the last contact has been added.
134 134 if (is_last) {
135 135 expect(this.rosterview.$el.is(':visible')).toEqual(true);
... ... @@ -162,7 +162,7 @@
162 162 subscription: 'both',
163 163 ask: null,
164 164 fullname: cur_names[i],
165   - is_last: i==(cur_names.length-1)
  165 + is_last: i===(cur_names.length-1)
166 166 });
167 167 expect(this.rosterview.render).toHaveBeenCalled();
168 168 // Check that they are sorted alphabetically
... ... @@ -291,7 +291,7 @@
291 291 subscription: 'none',
292 292 ask: 'request',
293 293 fullname: req_names[i],
294   - is_last: i==(req_names.length-1)
  294 + is_last: i===(req_names.length-1)
295 295 });
296 296 expect(this.rosterview.render).toHaveBeenCalled();
297 297 // Check that they are sorted alphabetically
... ... @@ -335,7 +335,7 @@
335 335 expect(this.rosterview.removeRosterItem).toHaveBeenCalled();
336 336 expect(this.connection.roster.unauthorize).toHaveBeenCalled();
337 337 // There should now be one less contact
338   - expect(this.roster.length).toEqual(num_contacts-1);
  338 + expect(this.roster.length).toEqual(num_contacts-1);
339 339 }, converse));
340 340 }, converse));
341 341  
... ... @@ -368,7 +368,7 @@
368 368  
369 369 afterEach($.proxy(function () {
370 370 // Contacts retrieved from localStorage have chat_status of
371   - // "offline".
  371 + // "offline".
372 372 // In the next test suite, we need some online contacts, so
373 373 // we make some online now
374 374 for (i=0; i<5; i++) {
... ... @@ -456,7 +456,7 @@
456 456 expect(newchatboxes.length).toEqual(0);
457 457  
458 458 // Lets open the controlbox again, purely for visual feedback
459   - open_controlbox();
  459 + open_controlbox();
460 460 }, converse));
461 461  
462 462 describe("A Chat Message", $.proxy(function () {
... ... @@ -465,8 +465,8 @@
465 465 var sender_jid = cur_names[0].replace(' ','.').toLowerCase() + '@localhost';
466 466 msg = $msg({
467 467 from: sender_jid,
468   - to: this.connection.jid,
469   - type: 'chat',
  468 + to: this.connection.jid,
  469 + type: 'chat',
470 470 id: (new Date()).getTime()
471 471 }).c('body').t(message).up()
472 472 .c('active', {'xmlns': 'http://jabber.org/protocol/chatstates'}).tree();
... ... @@ -498,8 +498,11 @@
498 498 expect(msg_obj.get('delayed')).toEqual(false);
499 499 // Now check that the message appears inside the
500 500 // chatbox in the DOM
501   - var txt = chatboxview.$el.find('.chat-content').find('.chat-message').find('.chat-message-content').text();
502   - expect(txt).toEqual(message);
  501 + var $chat_content = chatboxview.$el.find('.chat-content');
  502 + var msg_txt = $chat_content.find('.chat-message').find('.chat-message-content').text();
  503 + expect(msg_txt).toEqual(message);
  504 + var sender_txt = $chat_content.find('span.chat-message-them').text();
  505 + expect(sender_txt.match(/^[0-9][0-9]:[0-9][0-9] /)).toBeTruthy();
503 506 }, converse));
504 507 }, converse));
505 508  
... ... @@ -531,8 +534,8 @@
531 534 var sender_jid = cur_names[0].replace(' ','.').toLowerCase() + '@localhost';
532 535 msg = $msg({
533 536 from: sender_jid,
534   - to: this.connection.jid,
535   - type: 'chat',
  537 + to: this.connection.jid,
  538 + type: 'chat',
536 539 id: (new Date()).getTime()
537 540 }).c('body').t(message).up()
538 541 .c('active', {'xmlns': 'http://jabber.org/protocol/chatstates'}).tree();
... ... @@ -560,8 +563,8 @@
560 563 var sender_jid = cur_names[0].replace(' ','.').toLowerCase() + '@localhost';
561 564 msg = $msg({
562 565 from: sender_jid,
563   - to: this.connection.jid,
564   - type: 'chat',
  566 + to: this.connection.jid,
  567 + type: 'chat',
565 568 id: (new Date()).getTime()
566 569 }).c('body').t(message).up()
567 570 .c('active', {'xmlns': 'http://jabber.org/protocol/chatstates'}).tree();
... ...