Commit 6517b9bb authored by JC Brand's avatar JC Brand

Merge branch 'otr'

Conflicts:
	CHANGES.rst
	locale/af/LC_MESSAGES/af.js
	locale/af/LC_MESSAGES/converse.json
	locale/af/LC_MESSAGES/converse.po
	locale/converse.pot
	locale/de/LC_MESSAGES/converse.po
	locale/en/LC_MESSAGES/converse.po
	locale/es/LC_MESSAGES/converse.po
	locale/fr/LC_MESSAGES/converse.po
	locale/it/LC_MESSAGES/converse.po
	locale/pt_BR/LC_MESSAGES/converse.po
parents 04c71d5b 960861ad
......@@ -17,6 +17,8 @@
"strophe.vcard": "https://raw.github.com/jcbrand/strophejs-plugins/75c8693992bc357c699b6d615eeb396e799f5c02/vcard/strophe.vcard.js",
"strophe.disco": "https://raw.github.com/jcbrand/strophejs-plugins/75c8693992bc357c699b6d615eeb396e799f5c02/disco/strophe.disco.js",
"strophe.muc": "https://raw.github.com/jcbrand/strophejs-plugins/75c8693992bc357c699b6d615eeb396e799f5c02/muc/strophe.muc.js",
"otr": "~0.2.5",
"crypto-js": "~3.1.2",
"almond": "~0.2.6"
},
"exportsOverride": {}
......
......@@ -8,6 +8,15 @@
@import url("fonticons/style.css");
.no-text-select {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: -moz-none;
-ms-user-select: none;
user-select: none;
}
#collective-xmpp-chat-data,
#collective-xmpp-chat-data input {
color: rgb(79, 79, 79);
......@@ -107,13 +116,11 @@ span.spinner.hor_centered {
.chatroom .participants {
float: left;
overflow: auto;
border-left: 1px solid #AAA;
max-width: 98px;
height: 274px;
background-color: white;
overflow: auto;
border-left: 1px solid #AAA;
max-width: 98px;
border-bottom-right-radius: 4px;
}
......@@ -123,12 +130,13 @@ span.spinner.hor_centered {
white-space: nowrap;
display: block;
font-size: 12px;
font-weight: bold;
padding: 0.5em 0 0 0.5em;
cursor: default;
}
ul.participant-list li.moderator {
color: #FE0007;
color: #8f2831;
}
.chatroom .participant-list {
......@@ -142,30 +150,20 @@ ul.participant-list li.moderator {
}
.chat-content {
position: relative;
padding: 0.3em;
font-size: 13px;
color: rgb(79, 79, 79);
height:200px;
width: 192px;
height:180px;
width: 190px;
overflow-y:auto;
border: 0;
background-color: #ffffff;
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;
.chatroom .chat-content {
height:200px;
}
.chatroom .chat-content {
......@@ -173,7 +171,10 @@ ul.participant-list li.moderator {
}
.chat-info {
color:#666666;
color: #666666;
}
.chat-error {
color: #8f2831;
}
.chat-message-room,
......@@ -194,7 +195,7 @@ ul.participant-list li.moderator {
}
.chat-message-them {
color: #F62817;
color: #8f2831;
}
.chat-message-me {
......@@ -218,7 +219,6 @@ li.chat-info {
padding-top: 10px;
}
div#settings,
div#chatrooms,
div#login-dialog {
height: 274px;
......@@ -611,7 +611,7 @@ dd.available-chatroom:hover a.room-info {
background-color: #DCEAC5;
}
div#controlbox-panes {
.controlbox-panes {
background: -moz-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(240,240,240,1) 100%); /* FF3.6+ */
background: -ms-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(240,240,240,1) 100%); /* IE10+ */
background: -o-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(240,240,240,1) 100%); /* Opera 11.10+ */
......@@ -747,7 +747,7 @@ form.sendXMPPMessage {
background-clip: padding-box;
border-top-left-radius: 0;
border-top-right-radius: 0;
height: 65px;
height: 85px;
width: 200px;
}
......@@ -772,20 +772,80 @@ ul.chat-toolbar {
font-size: 14px;
margin: 0;
padding: 0 5px 0 0;
height: 20px;
display: block;
width: 195px;
/* XXX: CHECKME */
float: right;
display: inline-block;
height: 20px;
}
.chat-toolbar .toggle-otr {
float: right;
}
.chat-toolbar .toggle-otr ul {
display: none;
font-size:12px;
position: absolute;
bottom: 100%;
margin-bottom: 0;
right: 0;
background: #fff;
box-shadow: -1px -2px 2px 1px rgba(0,0,0,0.4);
}
.chat-toolbar .toggle-otr ul li {
position: relative;
list-style: none;
cursor: pointer;
display: block;
z-index: 99;
}
.chat-toolbar .toggle-otr ul li:hover {
background-color: #eee;
}
.chat-toolbar .toggle-otr ul li a {
transition:background-color 0.2s ease-in-out;
-webkit-transition:background-color 0.2s ease-in-out;
-moz-transition:background-color 0.2s ease-in-out;
display: block;
padding: 1px;
text-decoration: none;
}
.chat-toolbar-text {
font-size: 12px;
padding-right: 3px;
}
.unencrypted a,
.unencrypted {
color: #8f2831;
}
.unverified a,
.unverified {
color: #cf5300;
}
.private a,
.private {
color: #4B7003
}
ul.chat-toolbar li {
display: inline-block;
list-style: none;
padding: 0 3px 0 3px;
cursor: pointer;
}
ul.chat-toolbar li:hover {
cursor: pointer;
color: rgb(39, 39, 39);
}
form#set-custom-xmpp-status {
......@@ -878,3 +938,4 @@ form.add-xmpp-contact input {
padding: 0 5px 0 5px;
color: rgb(79, 79, 79);
}
......@@ -13,6 +13,8 @@
}
if (typeof define === 'function' && define.amd) {
define("converse", [
"components/otr/build/otr",
"crypto.aes",
"locales",
"backbone.localStorage",
"jquery.tinysort",
......@@ -21,13 +23,13 @@
"strophe.roster",
"strophe.vcard",
"strophe.disco"
], function() {
], function(otr, crypto) {
// Use Mustache style syntax for variable interpolation
_.templateSettings = {
evaluate : /\{\[([\s\S]+?)\]\}/g,
interpolate : /\{\{([\s\S]+?)\}\}/g
};
return factory(jQuery, _, console);
return factory(jQuery, _, crypto, otr, console);
}
);
} else {
......@@ -36,26 +38,34 @@
evaluate : /\{\[([\s\S]+?)\]\}/g,
interpolate : /\{\{([\s\S]+?)\}\}/g
};
root.converse = factory(jQuery, _, console || {log: function(){}});
root.converse = factory(jQuery, _, crypto, otr, console || {log: function(){}});
}
}(this, function ($, _, console) {
}(this, function ($, _, crypto, otr, console) {
var converse = {};
converse.initialize = function (settings, callback) {
// Constants
var UNENCRYPTED = 0;
var UNVERIFIED= 1;
var VERIFIED= 2;
var FINISHED = 3;
// Default values
var converse = this;
this.animate = true;
this.auto_list_rooms = false;
this.auto_subscribe = false;
this.bosh_service_url = undefined; // The BOSH connection manager URL.
this.callback = callback || function () {};
this.debug = false;
this.hide_muc_server = false;
this.i18n = locales.en;
this.allow_otr = true;
this.prebind = false;
this.show_controlbox_by_default = false;
this.xhr_user_search = false;
this.xhr_custom_status = false;
this.show_toolbar = true;
this.testing = false; // Exposes sensitive data for testing. Never set to true in production systems!
this.callback = callback || function () {};
this.xhr_custom_status = false;
this.xhr_user_search = false;
// Allow only the whitelisted settings attributes to be overwritten,
// nothing else.
......@@ -64,27 +74,28 @@
'auto_list_rooms',
'auto_subscribe',
'bosh_service_url',
'fullname',
'connection',
'debug',
'fullname',
'hide_muc_server',
'i18n',
'jid',
'allow_otr',
'prebind',
'rid',
'show_controlbox_by_default',
'xhr_user_search',
'xhr_custom_status',
'connection',
'testing',
'jid',
'show_toolbar',
'sid',
'rid'
'testing',
'xhr_custom_status',
'xhr_user_search'
];
_.extend(this, _.pick(settings, whitelist));
var __ = $.proxy(function (str) {
/* Translation factory
*/
// Translation factory
if (this.i18n === undefined) {
this.i18n = locales['en'];
this.i18n = locales.en;
}
var t = this.i18n.translate(str);
if (arguments.length>1) {
......@@ -104,6 +115,17 @@
*/
return str;
};
var OTR_CLASS_MAPPING = {};
OTR_CLASS_MAPPING[UNENCRYPTED] = 'unencrypted';
OTR_CLASS_MAPPING[UNVERIFIED] = 'unverified';
OTR_CLASS_MAPPING[VERIFIED] = 'verified';
OTR_CLASS_MAPPING[FINISHED] = 'finished';
var OTR_TRANSLATED_MAPPING = {};
OTR_TRANSLATED_MAPPING[UNENCRYPTED] = __('unencrypted');
OTR_TRANSLATED_MAPPING[UNVERIFIED] = __('unverified');
OTR_TRANSLATED_MAPPING[VERIFIED] = __('verified');
OTR_TRANSLATED_MAPPING[FINISHED] = __('finished');
this.msg_counter = 0;
this.autoLink = function (text) {
......@@ -120,9 +142,13 @@
}
};
this.log = function (txt) {
this.log = function (txt, level) {
if (this.debug) {
console.log(txt);
if (level == 'error') {
console.log('ERROR: '+txt);
} else {
console.log(txt);
}
}
};
......@@ -131,9 +157,9 @@
converse.log('Connected');
converse.onConnected();
} else if (status === Strophe.Status.DISCONNECTED) {
if ($button) { $button.show().siblings('span').remove(); }
//if ($button) { $button.show().siblings('span').remove(); }
converse.giveFeedback(__('Disconnected'), 'error');
converse.connection.connect(connection.jid, connection.pass, converse.onConnect);
//converse.connection.connect(connection.jid, connection.pass, converse.onConnect);
} else if (status === Strophe.Status.Error) {
if ($button) { $button.show().siblings('span').remove(); }
converse.giveFeedback(__('Error'), 'error');
......@@ -149,6 +175,7 @@
converse.giveFeedback(__('Authentication Failed'), 'error');
} else if (status === Strophe.Status.DISCONNECTING) {
converse.giveFeedback(__('Disconnecting'), 'error');
converse.connection.connect(connection.jid, connection.pass, converse.onConnect);
} else if (status === Strophe.Status.ATTACHED) {
converse.log('Attached');
converse.onConnected();
......@@ -275,21 +302,144 @@
this.ChatBox = Backbone.Model.extend({
initialize: function () {
if (this.get('box_id') !== 'controlbox') {
if (_.contains([UNVERIFIED, VERIFIED], this.get('otr_status'))) {
this.initiateOTR();
}
this.messages = new converse.Messages();
this.messages.localStorage = new Backbone.LocalStorage(
hex_sha1('converse.messages'+this.get('jid')+converse.bare_jid));
this.set({
'user_id' : Strophe.getNodeFromJid(this.get('jid')),
'box_id' : hex_sha1(this.get('jid')),
'fullname' : this.get('fullname'),
'url': this.get('url'),
'image_type': this.get('image_type'),
'image': this.get('image')
'otr_status': this.get('otr_status') || UNENCRYPTED
});
}
},
messageReceived: function (message) {
getSession: function () {
// XXX: sessionStorage is not supported in IE < 8. Perhaps a
// user alert is required here...
var saved_key = window.sessionStorage[hex_sha1(this.id+'priv_key')];
var instance_tag = window.sessionStorage[hex_sha1(this.id+'instance_tag')];
var cipher = crypto.lib.PasswordBasedCipher;
var pass = converse.connection.pass;
var result, key;
if (saved_key && instance_tag) {
var decrypted = cipher.decrypt(crypto.algo.AES, saved_key, pass);
key = otr.DSA.parsePrivate(decrypted.toString(crypto.enc.Latin1));
if (cipher.decrypt(crypto.algo.AES, this.get('pass_check'), pass).toString(crypto.enc.Latin1) === 'match') {
// Verified that the user's password is still the same
this.trigger('showHelpMessages', [__('Re-establishing encrypted session')]);
return {
'key': key,
'instance_tag': instance_tag
};
}
}
// We need to generate a new key and instance tag
result = alert(__('Your browser needs to generate a private key, which will be used in your encrypted chat session. This can take up to 30 seconds during which your browser might freeze and become unresponsive.'));
instance_tag = otr.OTR.makeInstanceTag();
key = new otr.DSA();
// Encrypt the key and set in sessionStorage. Also store
// instance tag
window.sessionStorage[hex_sha1(this.id+'priv_key')] =
cipher.encrypt(crypto.algo.AES, key.packPrivate(), pass).toString();
window.sessionStorage[hex_sha1(this.id+'instance_tag')] = instance_tag;
this.trigger('showHelpMessages', [__('Private key generated.')]);
this.save({'pass_check': cipher.encrypt(crypto.algo.AES, 'match', pass).toString()});
return {
'key': key,
'instance_tag': instance_tag
};
},
updateOTRStatus: function (state) {
switch (state) {
case otr.OTR.CONST.STATUS_AKE_SUCCESS:
if (this.otr.msgstate === otr.OTR.CONST.MSGSTATE_ENCRYPTED) {
this.save({'otr_status': UNVERIFIED});
}
break;
case otr.OTR.CONST.STATUS_END_OTR:
if (this.otr.msgstate === otr.OTR.CONST.MSGSTATE_FINISHED) {
this.save({'otr_status': FINISHED});
} else if (this.otr.msgstate === otr.OTR.CONST.MSGSTATE_PLAINTEXT) {
this.save({'otr_status': UNENCRYPTED});
}
break;
}
},
onSMP: function (type, data) {
// Event handler for SMP (Socialist's Millionaire Protocol)
// used by OTR (off-the-record).
switch (type) {
case 'question':
this.otr.smpSecret(prompt(__(
'Authentication request from %1$s\n\nYour buddy is attempting to verify your identity, by asking you the question below.\n\n%2$s',
[this.get('fullname'), data])));
break;
case 'trust':
if (this.otr.trust === true) {
this.save({'otr_status': VERIFIED});
} else {
this.trigger(
'showHelpMessages',
[__("Could not verify this user's identify.")],
'error');
this.save({'otr_status': UNVERIFIED});
}
break;
default:
throw new Error('Unknown type.');
}
},
initiateOTR: function (query_msg) {
// Sets up an OTR object through which we can send and receive
// encrypted messages.
//
// If 'query_msg' is passed in, it means there is an alread incoming
// query message from our buddy. Otherwise, it is us who will
// send the query message to them.
this.save({'otr_status': UNENCRYPTED});
session = this.getSession();
this.otr = new otr.OTR({
fragment_size: 140,
send_interval: 200,
priv: session.key,
instance_tag: session.instance_tag,
debug: this.debug
});
this.otr.on('status', $.proxy(this.updateOTRStatus, this));
this.otr.on('smp', $.proxy(this.onSMP, this));
this.otr.on('ui', $.proxy(function (msg) {
this.trigger('showReceivedOTRMessage', msg);
}, this));
this.otr.on('io', $.proxy(function (msg) {
this.trigger('sendMessageStanza', msg);
}, this));
this.otr.on('error', $.proxy(function (msg) {
this.trigger('showOTRError', msg);
}, this));
if (query_msg) {
this.otr.receiveMsg(query_msg);
} else {
this.otr.sendQueryMsg();
}
},
endOTR: function () {
if (this.otr) {
this.otr.endOtr();
}
this.save({'otr_status': UNENCRYPTED});
},
createMessage: function (message) {
var $message = $(message),
body = converse.autoLink($message.children('body').text()),
from = Strophe.getBareJidFromJid($message.attr('from')),
......@@ -328,6 +478,29 @@
message: body
});
}
},
messageReceived: function (message) {
var $body = $(message).children('body');
var text = ($body.length > 0 ? converse.autoLink($body.text()) : undefined);
if ((!text) || (!converse.allow_otr)) {
return this.createMessage(message);
}
if (_.contains([UNVERIFIED, VERIFIED], this.get('otr_status'))) {
this.otr.receiveMsg(text);
} else {
if (text.match(/^\?OTR/)) {
// They want to initiate OTR
if (!this.otr) {
this.initiateOTR(text);
} else {
this.otr.receiveMsg(text);
}
} else {
// Normal unencrypted message.
this.createMessage(message);
}
}
}
});
......@@ -338,26 +511,121 @@
events: {
'click .close-chatbox-button': 'closeChat',
'keypress textarea.chat-textarea': 'keyPressed'
'keypress textarea.chat-textarea': 'keyPressed',
'click .toggle-otr': 'toggleOTRMenu',
'click .start-otr': 'startOTRFromToolbar',
'click .end-otr': 'endOTR',
'click .auth-otr': 'authOTR'
},
template: _.template(
'<div class="chat-head chat-head-chatbox">' +
'<a class="close-chatbox-button icon-close"></a>' +
'<a href="{{url}}" target="_blank" class="user">' +
'<div class="chat-title"> {{ fullname }} </div>' +
'</a>' +
'<p class="user-custom-message"><p/>' +
'</div>' +
'<div class="chat-content"></div>' +
'<form class="sendXMPPMessage" action="" method="post">' +
'{[ if ('+converse.show_toolbar+') { ]}' +
'<ul class="chat-toolbar no-text-select"></ul>'+
'{[ } ]}' +
'<textarea ' +
'type="text" ' +
'class="chat-textarea" ' +
'placeholder="'+__('Personal message')+'"/>'+
'</form>'
),
toolbar_template: _.template(
'{[ if (allow_otr) { ]}' +
'<li class="toggle-otr {{otr_status_class}}" title="{{otr_tooltip}}">'+
'<span class="chat-toolbar-text">{{otr_translated_status}}</span>'+
'{[ if (otr_status == "'+UNENCRYPTED+'") { ]}' +
'<span class="icon-unlocked"></span>'+
'{[ } ]}' +
'{[ if (otr_status == "'+UNVERIFIED+'") { ]}' +
'<span class="icon-lock"></span>'+
'{[ } ]}' +
'{[ if (otr_status == "'+VERIFIED+'") { ]}' +
'<span class="icon-lock"></span>'+
'{[ } ]}' +
'{[ if (otr_status == "'+FINISHED+'") { ]}' +
'<span class="icon-unlocked"></span>'+
'{[ } ]}' +
'<ul>'+
'{[ if (otr_status == "'+UNENCRYPTED+'") { ]}' +
'<li><a class="start-otr" href="#">'+__('Start encrypted conversation')+'</a></li>'+
'{[ } ]}' +
'{[ if (otr_status != "'+UNENCRYPTED+'") { ]}' +
'<li><a class="start-otr" href="#">'+__('Refresh encrypted conversation')+'</a></li>'+
'<li><a class="end-otr" href="#">'+__('End encrypted conversation')+'</a></li>'+
'<li><a class="auth-otr" data-scheme="smp" href="#">'+__('Verify with SMP')+'</a></li>'+
'{[ } ]}' +
'{[ if (otr_status == "'+UNVERIFIED+'") { ]}' +
'<li><a class="auth-otr" data-scheme="fingerprint" href="#">'+__('Verify with fingerprints')+'</a></li>'+
'{[ } ]}' +
'<li><a href="http://www.cypherpunks.ca/otr/help/3.2.0/levels.php" target="_blank">'+__("What\'s this?")+'</a></li>'+
'</ul>'+
'</li>'+
'{[ } ]}'
),
message_template: _.template(
'<div class="chat-message {{extra_classes}}">' +
'<span class="chat-message-{{sender}}">{{time}} {{username}}:&nbsp;</span>' +
'<span class="chat-message-content">{{message}}</span>' +
'</div>'),
'<div class="chat-message {{extra_classes}}">' +
'<span class="chat-message-{{sender}}">{{time}} {{username}}:&nbsp;</span>' +
'<span class="chat-message-content">{{message}}</span>' +
'</div>'),
action_template: _.template(
'<div class="chat-message {{extra_classes}}">' +
'<span class="chat-message-{{sender}}">{{time}} **{{username}} </span>' +
'<span class="chat-message-content">{{message}}</span>' +
'</div>'),
'<div class="chat-message {{extra_classes}}">' +
'<span class="chat-message-{{sender}}">{{time}} **{{username}} </span>' +
'<span class="chat-message-content">{{message}}</span>' +
'</div>'),
new_day_template: _.template(
'<time class="chat-date" datetime="{{isodate}}">{{datestring}}</time>'
),
'<time class="chat-date" datetime="{{isodate}}">{{datestring}}</time>'
),
appendMessage: function ($el, msg_dict) {
initialize: function (){
this.model.messages.on('add', this.onMessageAdded, this);
this.model.on('show', this.show, this);
this.model.on('destroy', this.hide, this);
this.model.on('change', this.onChange, this);
this.model.on('showOTRError', this.showOTRError, this);
this.model.on('buddyStartsOTR', this.buddyStartsOTR, this);
this.model.on('showHelpMessages', this.showHelpMessages, this);
this.model.on('sendMessageStanza', this.sendMessageStanza, this);
this.model.on('showSentOTRMessage', function (text) {
this.showOTRMessage(text, 'me');
}, this);
this.model.on('showReceivedOTRMessage', function (text) {
this.showOTRMessage(text, 'them');
}, this);
this.updateVCard();
this.$el.appendTo(converse.chatboxesview.$el);
this.render().show().model.messages.fetch({add: true});
if (this.model.get('status')) {
this.showStatusMessage(this.model.get('status'));
}
},
render: function () {
this.$el.attr('id', this.model.get('box_id'))
.html(this.template(this.model.toJSON()));
this.renderToolbar().renderAvatar();
return this;
},
showStatusNotification: function (message, replace) {
var $chat_content = this.$el.find('.chat-content');
$chat_content.find('div.chat-event').remove().end()
.append($('<div class="chat-event"></div>').text(message));
this.scrollDown();
},
showMessage: function ($el, msg_dict) {
var this_date = converse.parseISO8601(msg_dict.time),
text = msg_dict.message,
match = text.match(/^\/(.*?)(?: (.*))?$/),
......@@ -381,16 +649,37 @@
'username': username,
'extra_classes': msg_dict.delayed && 'delayed' || ''
}));
return this.scrollDown();
},
insertStatusNotification: function (message, replace) {
var $chat_content = this.$el.find('.chat-content');
$chat_content.find('div.chat-event').remove().end()
.append($('<div class="chat-event"></div>').text(message));
this.scrollDown();
showOTRMessage: function (text, sender) {
/* "Off-the-record" messages are encrypted and not stored at all,
* so we don't have a backbone converse.Message object to work with.
*/
var username = sender === 'me' && sender || this.model.get('fullname');
var $el = this.$el.find('.chat-content');
$el.find('div.chat-event').remove();
$el.append(
this.message_template({
'sender': sender,
'time': (new Date()).toTimeString().substring(0,5),
'message': text,
'username': username,
'extra_classes': ''
}));
return this.scrollDown();
},
showMessage: function (message) {
showHelpMessages: function (msgs, type) {
var $chat_content = this.$el.find('.chat-content'), i,
msgs_length = msgs.length;
for (i=0; i<msgs_length; i++) {
$chat_content.append($('<div class="chat-'+(type||'info')+'">'+msgs[i]+'</div>'));
}
return this.scrollDown();
},
onMessageAdded: function (message) {
var time = message.get('time'),
times = this.model.messages.pluck('time'),
this_date = converse.parseISO8601(time),
......@@ -414,15 +703,15 @@
}
}
if (message.get('composing')) {
this.insertStatusNotification(__('%1$s is typing', message.get('fullname')));
this.showStatusNotification(message.get('fullname')+' '+'is typing');
return;
} else {
this.appendMessage($chat_content, _.clone(message.attributes));
this.showMessage($chat_content, _.clone(message.attributes));
}
if ((message.get('sender') != 'me') && (converse.windowState == 'blur')) {
converse.incrementMsgCounter();
}
this.scrollDown();
return this.scrollDown();
},
isDifferentDay: function (prev_date, next_date) {
......@@ -432,24 +721,31 @@
(next_date.getMonth() != prev_date.getMonth()));
},
addHelpMessages: function (msgs) {
var $chat_content = this.$el.find('.chat-content'), i,
msgs_length = msgs.length;
for (i=0; i<msgs_length; i++) {
$chat_content.append($('<div class="chat-info">'+msgs[i]+'</div>'));
}
this.scrollDown();
},
sendMessage: function (text) {
sendMessageStanza: function (text) {
/*
* Sends the actual XML stanza to the XMPP server.
*/
// TODO: Look in ChatPartners to see what resources we have for the recipient.
// if we have one resource, we sent to only that resources, if we have multiple
// we send to the bare jid.
var timestamp = (new Date()).getTime(),
bare_jid = this.model.get('jid'),
match = text.replace(/^\s*/, "").match(/^\/(.*)\s*$/),
msgs;
var timestamp = (new Date()).getTime();
var bare_jid = this.model.get('jid');
var message = $msg({from: converse.connection.jid, to: bare_jid, type: 'chat', id: timestamp})
.c('body').t(text).up()
.c('active', {'xmlns': 'http://jabber.org/protocol/chatstates'});
// Forward the message, so that other connected resources are also aware of it.
// TODO: Forward the message only to other connected resources (inside the browser)
var forwarded = $msg({to:converse.bare_jid, type:'chat', id:timestamp})
.c('forwarded', {xmlns:'urn:xmpp:forward:0'})
.c('delay', {xmns:'urn:xmpp:delay',stamp:timestamp}).up()
.cnode(message.tree());
converse.connection.send(message);
converse.connection.send(forwarded);
},
sendMessage: function (text) {
var match = text.replace(/^\s*/, "").match(/^\/(.*)\s*$/), msgs;
if (match) {
if (match[1] === "clear") {
this.$el.find('.chat-content').empty();
......@@ -462,28 +758,28 @@
'<strong>/me</strong>:'+__('Write in the third person')+'',
'<strong>/clear</strong>:'+__('Remove messages')+''
];
this.addHelpMessages(msgs);
this.showHelpMessages(msgs);
return;
} else if ((converse.allow_otr) || (match[1] === "endotr")) {
return this.endOTR();
} else if ((converse.allow_otr) || (match[1] === "otr")) {
return this.model.initiateOTR();
}
}
var message = $msg({from: converse.connection.jid, to: bare_jid, type: 'chat', id: timestamp})
.c('body').t(text).up()
.c('active', {'xmlns': 'http://jabber.org/protocol/chatstates'});
// Forward the message, so that other connected resources are also aware of it.
// TODO: Forward the message only to other connected resources (inside the browser)
var forwarded = $msg({to:converse.bare_jid, type:'chat', id:timestamp})
.c('forwarded', {xmlns:'urn:xmpp:forward:0'})
.c('delay', {xmns:'urn:xmpp:delay',stamp:timestamp}).up()
.cnode(message.tree());
converse.connection.send(message);
converse.connection.send(forwarded);
// Add the new message
this.model.messages.create({
fullname: converse.xmppstatus.get('fullname')||converse.bare_jid,
sender: 'me',
time: converse.toISOString(new Date()),
message: text
});
if (_.contains([UNVERIFIED, VERIFIED], this.model.get('otr_status'))) {
// Off-the-record encryption is active
this.model.otr.sendMsg(text);
this.model.trigger('showSentOTRMessage', text);
} else {
// We only save unencrypted messages.
this.model.messages.create({
fullname: converse.xmppstatus.get('fullname')||converse.bare_jid,
sender: 'me',
time: converse.toISOString(new Date()),
message: text
});
this.sendMessageStanza(text);
}
},
keyPressed: function (ev) {
......@@ -517,26 +813,102 @@
}
},
toggleOTRMenu: function (ev) {
ev.stopPropagation();
$(ev.currentTarget).children('ul').slideToggle(200, function () {
$(document).click(function() {
if ($('.toggle-otr ul').is(':visible')) {
$('.toggle-otr ul', this).slideUp();
}
});
});
},
showOTRError: function (msg) {
if (msg == 'Message cannot be sent at this time.') {
this.showHelpMessages(
[__('Your message could not be sent')], 'error');
} else if (msg == 'Received an unencrypted message.') {
this.showHelpMessages(
[__('We received an unencrypted message')], 'error');
} else if (msg == 'Received an unreadable encrypted message.') {
this.showHelpMessages(
[__('We received an unreadable encrypted message')],
'error');
} else {
this.showHelpMessages(['Encryption error occured: '+msg], 'error');
}
console.log("OTR ERROR:"+msg);
},
buddyStartsOTR: function (ev) {
this.showHelpMessages([__('This user has requested an encrypted session.')]);
this.model.initiateOTR();
},
startOTRFromToolbar: function (ev) {
$(ev.target).parent().parent().slideUp();
ev.stopPropagation();
this.model.initiateOTR();
},
endOTR: function (ev) {
this.model.endOTR();
},
authOTR: function (ev) {
var scheme = $(ev.target).data().scheme;
var result, question, answer;
if (scheme === 'fingerprint') {
result = confirm(__('Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.', [
this.model.get('fullname'),
converse.xmppstatus.get('fullname')||converse.bare_jid,
this.model.otr.priv.fingerprint(),
this.model.otr.their_priv_pk.fingerprint()
]
));
if (result === true) {
this.model.save({'otr_status': VERIFIED});
} else {
this.model.save({'otr_status': UNVERIFIED});
}
} else if (scheme === 'smp') {
alert(__('You will be prompted to provide a security question and then an answer to that question.\n\nYour buddy will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will have been verified.'));
question = prompt(__('What is your security question?'));
if (question) {
answer = prompt(__('What is the answer to the security question?'));
this.model.otr.smpSecret(answer, question);
}
} else {
this.showHelpMessages([__('Invalid authentication scheme provided')], 'error');
}
},
onChange: function (item, changed) {
if (_.has(item.changed, 'chat_status')) {
var chat_status = item.get('chat_status'),
fullname = item.get('fullname');
if (this.$el.is(':visible')) {
if (chat_status === 'offline') {
this.insertStatusNotification(fullname+' '+'has gone offline');
this.showStatusNotification(fullname+' '+'has gone offline');
} else if (chat_status === 'away') {
this.insertStatusNotification(fullname+' '+'has gone away');
this.showStatusNotification(fullname+' '+'has gone away');
} else if ((chat_status === 'dnd')) {
this.insertStatusNotification(fullname+' '+'is busy');
this.showStatusNotification(fullname+' '+'is busy');
} else if (chat_status === 'online') {
this.$el.find('div.chat-event').remove();
}
}
} if (_.has(item.changed, 'status')) {
}
if (_.has(item.changed, 'status')) {
this.showStatusMessage(item.get('status'));
} if (_.has(item.changed, 'image')) {
}
if (_.has(item.changed, 'image')) {
this.renderAvatar();
}
if (_.has(item.changed, 'otr_status')) {
this.renderToolbar().informOTRChange();
}
// TODO check for changed fullname as well
},
......@@ -574,35 +946,41 @@
}
},
initialize: function (){
this.model.messages.on('add', this.showMessage, this);
this.model.on('show', this.show, this);
this.model.on('destroy', this.hide, this);
this.model.on('change', this.onChange, this);
this.updateVCard();
this.$el.appendTo(converse.chatboxesview.$el);
this.render().show().model.messages.fetch({add: true});
if (this.model.get('status')) {
this.showStatusMessage(this.model.get('status'));
informOTRChange: function () {
var data = this.model.toJSON();
var msgs = [];
if (data.otr_status == UNENCRYPTED) {
msgs.push(__("Your messages are not encrypted anymore"));
} else if (data.otr_status == UNVERIFIED){
msgs.push(__("Your messages are now encrypted but your buddy's identity has not been verified."));
} else if (data.otr_status == VERIFIED){
msgs.push(__("Your buddy's identify has been verified."));
} else if (data.otr_status == FINISHED){
msgs.push(__("Your buddy has ended encryption on their end, you should do the same."));
}
return this.showHelpMessages(msgs);
},
renderToolbar: function () {
if (converse.show_toolbar) {
var data = this.model.toJSON();
if (data.otr_status == UNENCRYPTED) {
data.otr_tooltip = __('Your messages are not encrypted. Click here to enable OTR encryption.');
} else if (data.otr_status == UNVERIFIED){
data.otr_tooltip = __('Your messages are encrypted, but your buddy has not been verified.');
} else if (data.otr_status == VERIFIED){
data.otr_tooltip = __('Your messages are encrypted and your buddy verified.');
} else if (data.otr_status == FINISHED){
data.otr_tooltip = __('Your buddy has closed their end of the private session, you should do the same');
}
data.allow_otr = converse.allow_otr;
data.otr_translated_status = OTR_TRANSLATED_MAPPING[data.otr_status];
data.otr_status_class = OTR_CLASS_MAPPING[data.otr_status];
this.$el.find('.chat-toolbar').html(this.toolbar_template(data));
}
return this;
},
template: _.template(
'<div class="chat-head chat-head-chatbox">' +
'<a class="close-chatbox-button icon-close"></a>' +
'<a href="{{url}}" target="_blank" class="user">' +
'<div class="chat-title"> {{ fullname }} </div>' +
'</a>' +
'<p class="user-custom-message"><p/>' +
'</div>' +
'<div class="chat-content"></div>' +
'<form class="sendXMPPMessage" action="" method="post">' +
'<textarea ' +
'type="text" ' +
'class="chat-textarea" ' +
'placeholder="'+__('Personal message')+'"/>'+
'</form>'),
renderAvatar: function () {
if (!this.model.get('image')) {
return;
......@@ -617,12 +995,6 @@
};
img.src = img_src;
this.$el.find('.chat-title').before(canvas);
},
render: function () {
this.$el.attr('id', this.model.get('box_id'))
.html(this.template(this.model.toJSON()));
this.renderAvatar();
return this;
},
......@@ -1096,7 +1468,7 @@
'<ul id="controlbox-tabs"></ul>'+
'<a class="close-chatbox-button icon-close"></a>'+
'</div>'+
'<div id="controlbox-panes"></div>'
'<div class="controlbox-panes"></div>'
),
switchTab: function (ev) {
......@@ -1114,8 +1486,8 @@
});
},
addHelpMessages: function (msgs) {
// Override addHelpMessages in ChatBoxView, for now do nothing.
showHelpMessages: function (msgs) {
// Override showHelpMessages in ChatBoxView, for now do nothing.
return;
},
......@@ -1123,15 +1495,15 @@
if ((!converse.prebind) && (!converse.connection)) {
// Add login panel if the user still has to authenticate
this.$el.html(this.template(this.model.toJSON()));
this.loginpanel = new converse.LoginPanel({'$parent': this.$el.find('#controlbox-panes'), 'model': this});
this.loginpanel = new converse.LoginPanel({'$parent': this.$el.find('.controlbox-panes'), 'model': this});
this.loginpanel.render();
} else if (!this.contactspanel) {
this.$el.html(this.template(this.model.toJSON()));
this.contactspanel = new converse.ContactsPanel({'$parent': this.$el.find('#controlbox-panes')});
this.contactspanel = new converse.ContactsPanel({'$parent': this.$el.find('.controlbox-panes')});
this.contactspanel.render();
converse.xmppstatusview = new converse.XMPPStatusView({'model': converse.xmppstatus});
converse.xmppstatusview.render();
this.roomspanel = new converse.RoomsPanel({'$parent': this.$el.find('#controlbox-panes')});
this.roomspanel = new converse.RoomsPanel({'$parent': this.$el.find('.controlbox-panes')});
this.roomspanel.render();
}
return this;
......@@ -1184,7 +1556,7 @@
'<strong>/ban</strong>:'+__('Ban user from chatroom')+'',
'<strong>/clear</strong>:'+__('Remove messages')+''
];
this.addHelpMessages(msgs);
this.showHelpMessages(msgs);
break;
default:
this.last_msgid = converse.connection.muc.groupchat(this.model.get('jid'), body);
......@@ -1248,7 +1620,7 @@
initialize: function () {
this.connect(null);
this.model.messages.on('add', this.showMessage, this);
this.model.messages.on('add', this.onMessageAdded, this);
this.model.on('destroy', function (model, response, options) {
this.$el.hide('fast');
converse.connection.muc.leave(
......@@ -1370,7 +1742,7 @@
},
onErrorConfigSaved: function (stanza) {
this.insertStatusNotification(__("An error occurred while trying to save the form."));
this.showStatusNotification(__("An error occurred while trying to save the form."));
},
cancelConfiguration: function (ev) {
......@@ -1510,7 +1882,7 @@
for (i=0; i<action_msgs.length; i++) {
$chat_content.append(this.info_template({message: action_msgs[i]}));
}
this.scrollDown();
return this.scrollDown();
},
showErrorMessage: function ($error, room) {
......@@ -1616,16 +1988,18 @@
this.$el.find('.chatroom-topic').text(subject).attr('title', subject);
// # For translators: the %1$s and %2$s parts will get replaced by the user and topic text respectively
// # Example: Topic set by JC Brand to: Hello World!
$chat_content.append(this.info_template({'message': __('Topic set by %1$s to: %2$s', sender, subject)}));
$chat_content.append(
this.info_template({
'message': __('Topic set by %1$s to: %2$s', sender, subject)
}));
}
if (!body) { return true; }
this.appendMessage($chat_content,
this.showMessage($chat_content,
{'message': body,
'sender': sender === this.model.get('nick') && 'me' || 'room',
'fullname': sender,
'time': converse.toISOString(message_datetime)
});
this.scrollDown();
return true;
},
......@@ -1715,6 +2089,9 @@
}
chatbox = this.get(partner_jid);
roster_item = converse.roster.get(partner_jid);
if (roster_item === undefined) {
converse.log('Could not get roster item for JID '+partner_jid, 'error');
}
if (!chatbox) {
chatbox = this.create({
'id': partner_jid,
......@@ -2225,7 +2602,7 @@
// want to send a presence stanza, so we do it here.
converse.xmppstatus.sendPresence();
}
},
}
}); // Get the cached roster items from localstorage
},
......
......@@ -192,15 +192,16 @@
<script>
require(['converse'], function (converse) {
converse.initialize({
allow_otr: true,
auto_list_rooms: false,
auto_subscribe: false,
bosh_service_url: 'https://bind.opkode.im', // Please use this connection manager only for testing purposes
debug: true ,
hide_muc_server: false,
i18n: locales['en'], // Refer to ./locale/locales.js to see which locales are supported
prebind: false,
show_controlbox_by_default: true,
xhr_user_search: false,
debug: true
});
});
</script>
......
......@@ -7,335 +7,517 @@ msgid ""
msgstr ""
"Project-Id-Version: Converse.js 0.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-09-13 16:02+0200\n"
"PO-Revision-Date: 2013-09-15 11:44+0200\n"
"POT-Creation-Date: 2013-09-15 21:55+0200\n"
"PO-Revision-Date: 2013-09-15 21:56+0200\n"
"Last-Translator: JC Brand <jc@opkode.com>\n"
"Language-Team: Afrikaans\n"
"Language: af\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ASCII\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"domain: converse\n"
"lang: af\n"
"plural_forms: nplurals=2; plural=(n != 1);\n"
#: converse.js:135
#: converse.js:125
msgid "unencrypted"
msgstr "nie-privaat"
#: converse.js:126
msgid "unverified"
msgstr "ongeverifieer"
#: converse.js:127
msgid "verified"
msgstr "privaat"
#: converse.js:128
msgid "finished"
msgstr "afgesluit"
#: converse.js:161
msgid "Disconnected"
msgstr "Verbindung onderbreek"
#: converse.js:139
#: converse.js:165
msgid "Error"
msgstr "Fout"
#: converse.js:141
#: converse.js:167
msgid "Connecting"
msgstr "Verbind tans"
#: converse.js:144
#: converse.js:170
msgid "Connection Failed"
msgstr "Verbinding het gefaal"
#: converse.js:146
#: converse.js:172
msgid "Authenticating"
msgstr "Besig om te bekragtig"
#: converse.js:149
#: converse.js:175
msgid "Authentication Failed"
msgstr "Bekragtiging het gefaal"
#: converse.js:151
#: converse.js:177
msgid "Disconnecting"
msgstr "Onderbreek verbinding"
#: converse.js:373
#: converse.js:332
msgid "Re-establishing encrypted session"
msgstr "Herstel versleutelde sessie"
#: converse.js:340
msgid ""
"Your browser needs to generate a private key, which will be used in your "
"encrypted chat session. This can take up to 30 seconds during which your "
"browser might freeze and become unresponsive."
msgstr ""
"Die webblaaier moet 'n private sleutel vir die versleutelde klets-sessie "
"genereer. Dit kan tot 30 sekondes duur, waartydenѕ die webblaaier mag vries "
"en nie reageer nie."
#: converse.js:349
msgid "Private key generated."
msgstr "Private sleutel"
#: converse.js:380
msgid ""
"Authentication request from %1$s\n"
"\n"
"Your buddy is attempting to verify your identity, by asking you the question "
"below.\n"
"\n"
"%2$s"
msgstr ""
"Verifikasie versoek van %1$s\n"
"\n"
"U gespreksmaat probeer om u identiteit te verifieer, deur die volgende vraag "
"te vra \n"
"\n"
"%2$s"
#: converse.js:389
msgid "Could not verify this user's identify."
msgstr "Kon nie hierdie gebruiker se identitied verifieer nie."
#: converse.js:537
msgid "Personal message"
msgstr "Persoonlike boodskap"
#: converse.js:559
msgid "Start encrypted conversation"
msgstr "Begin versleutelde gesprek"
#: converse.js:562
msgid "Refresh encrypted conversation"
msgstr "Verfris versleutelde gesprek"
#: converse.js:563
msgid "End encrypted conversation"
msgstr "Beëindig versleutelde gesprek"
#: converse.js:564
msgid "Verify with SMP"
msgstr "Verifieer met SMP"
#: converse.js:567
msgid "Verify with fingerprints"
msgstr "Verifieer met vingerafdrukke"
#: converse.js:569
msgid "What's this?"
msgstr "Wat is hierdie?"
#: converse.js:641
msgid "me"
msgstr "ek"
#: converse.js:417
msgid "%1$s is typing"
msgstr "%1$s tik tans"
# The last three values are needed by Jed (a Javascript translations library)
#: converse.js:461 converse.js:1180
#: converse.js:757 converse.js:1552
msgid "Show this menu"
msgstr "Vertoon hierdie keuselys"
#: converse.js:462 converse.js:1181
#: converse.js:758 converse.js:1553
msgid "Write in the third person"
msgstr "Skryf in die derde persoon"
#: converse.js:463 converse.js:1185
#: converse.js:759 converse.js:1557
msgid "Remove messages"
msgstr "Verwyder boodskappe"
#: converse.js:603
msgid "Personal message"
msgstr "Persoonlike boodskap"
#: converse.js:830
msgid "Your message could not be sent"
msgstr "U boodskap kon nie gestuur word nie"
#: converse.js:833
msgid "We received an unencrypted message"
msgstr "Ons het 'n onversleutelde boodskap ontvang"
#: converse.js:836
msgid "We received an unreadable encrypted message"
msgstr "Ons het 'n onleesbare versleutelde boodskap ontvang"
#: converse.js:845
msgid "This user has requested an encrypted session."
msgstr "Hierdie gebruiker versoek 'n versleutelde sessie"
#: converse.js:863
msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n"
"\n"
"Fingerprint for you, %2$s: %3$s\n"
"\n"
"Fingerprint for %1$s: %4$s\n"
"\n"
"If you have confirmed that the fingerprints match, click OK, otherwise click "
"Cancel."
msgstr ""
"Hier is die vingerafdrukke, bevestig hulle met %1$s, buite hierdie "
"kletskanaal \n"
"\n"
"U vingerafdruk, %2$s: %3$s\n"
"\n"
"Vingerafdruk vir %1$s: %4$s\n"
"\n"
"Indien u die vingerafdrukke bevestig het, klik OK, andersinds klik Kanselleer"
#: converse.js:876
msgid ""
"You will be prompted to provide a security question and then an answer to "
"that question.\n"
"\n"
"Your buddy will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will have been verified."
msgstr ""
"Daar sal van u verwag word om 'n sekuriteitsvraag te stel, en dan ook die "
"antwoord tot daardie vraag te verskaf.\n"
"\n"
"U gespreksmaat sal dan daardie vraag gestel word, en indien hulle presies "
"dieselfde antwoord (hoofletters tel) verskaf, sal hul identiteit geverifieer "
"wees."
#: converse.js:877
msgid "What is your security question?"
msgstr "Wat is u sekuriteitsvraag?"
#: converse.js:879
msgid "What is the answer to the security question?"
msgstr "Wat is die antwoord tot die sekuriteitsvraag?"
#: converse.js:883
msgid "Invalid authentication scheme provided"
msgstr "Ongeldige verifikasiemetode verskaf"
#: converse.js:953
msgid "Your messages are not encrypted anymore"
msgstr "U boodskappe is nie meer versleutel nie"
#: converse.js:955
msgid ""
"Your messages are now encrypted but your buddy's identity has not been "
"verified."
msgstr ""
"U boodskappe is now versleutel maar u gespreksmaat se identiteit is nog "
"onseker."
#: converse.js:957
msgid "Your buddy's identify has been verified."
msgstr "U gespreksmaat se identiteit is geverifieer."
#: converse.js:959
msgid "Your buddy has ended encryption on their end, you should do the same."
msgstr ""
"U gespreksmaat het versleuteling gestaak, u behoort nou dieselfde te doen."
#: converse.js:968
msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr ""
"U boodskappe is nie versleutel nie. Klik hier om OTR versleuteling te "
"aktiveer."
#: converse.js:970
msgid "Your messages are encrypted, but your buddy has not been verified."
msgstr ""
"U boodskappe is versleutel, maar u gespreksmaat se identiteit is not onseker."
#: converse.js:972
msgid "Your messages are encrypted and your buddy verified."
msgstr ""
"U boodskappe is versleutel en u gespreksmaat se identiteit geverifieer."
#: converse.js:974
msgid ""
"Your buddy has closed their end of the private session, you should do the "
"same"
msgstr ""
"U gespreksmaat het die private sessie gestaak. U behoort dieselfde te doen"
#: converse.js:677
#: converse.js:1049
msgid "Contacts"
msgstr "Kontakte"
#: converse.js:682
#: converse.js:1054
msgid "Online"
msgstr "Aangemeld"
#: converse.js:683
#: converse.js:1055
msgid "Busy"
msgstr "Besig"
#: converse.js:684
#: converse.js:1056
msgid "Away"
msgstr "Afwesig"
#: converse.js:685
#: converse.js:1057
msgid "Offline"
msgstr "Afgemeld"
#: converse.js:692
#: converse.js:1064
msgid "Click to add new chat contacts"
msgstr "Kliek om nuwe kletskontakte by te voeg"
#: converse.js:693
#: converse.js:1065
msgid "Add a contact"
msgstr "Voeg 'n kontak by"
#: converse.js:702
#: converse.js:1074
msgid "Contact username"
msgstr "Konak gebruikersnaam"
#: converse.js:703
#: converse.js:1075
msgid "Add"
msgstr "Voeg by"
#: converse.js:711
#: converse.js:1083
msgid "Contact name"
msgstr "Kontaknaam"
#: converse.js:712
#: converse.js:1084
msgid "Search"
msgstr "Soek"
#: converse.js:752
#: converse.js:1124
msgid "No users found"
msgstr "Geen gebruikers gevind"
#: converse.js:759
#: converse.js:1131
msgid "Click to add as a chat contact"
msgstr "Kliek om as kletskontak by te voeg"
#: converse.js:819
#: converse.js:1191
msgid "Click to open this room"
msgstr "Kliek om hierdie kletskamer te open"
#: converse.js:821
#: converse.js:1193
msgid "Show more information on this room"
msgstr "Wys meer inligting aangaande hierdie kletskamer"
#: converse.js:827
#: converse.js:1199
msgid "Description:"
msgstr "Beskrywing:"
#: converse.js:828
#: converse.js:1200
msgid "Occupants:"
msgstr "Deelnemers:"
#: converse.js:829
#: converse.js:1201
msgid "Features:"
msgstr "Eienskappe:"
#: converse.js:831
#: converse.js:1203
msgid "Requires authentication"
msgstr "Benodig magtiging"
#: converse.js:834
#: converse.js:1206
msgid "Hidden"
msgstr "Verskuil"
#: converse.js:837
#: converse.js:1209
msgid "Requires an invitation"
msgstr "Benodig 'n uitnodiging"
#: converse.js:840
#: converse.js:1212
msgid "Moderated"
msgstr "Gemodereer"
#: converse.js:843
#: converse.js:1215
msgid "Non-anonymous"
msgstr "Nie-anoniem"
#: converse.js:846
#: converse.js:1218
msgid "Open room"
msgstr "Oop kletskamer"
#: converse.js:849
#: converse.js:1221
msgid "Permanent room"
msgstr "Permanente kamer"
#: converse.js:852
#: converse.js:1224
msgid "Public"
msgstr "Publiek"
#: converse.js:855
#: converse.js:1227
msgid "Semi-anonymous"
msgstr "Deels anoniem"
#: converse.js:858
#: converse.js:1230
msgid "Temporary room"
msgstr "Tydelike kamer"
#: converse.js:861
#: converse.js:1233
msgid "Unmoderated"
msgstr "Ongemodereer"
#: converse.js:867
#: converse.js:1239
msgid "Rooms"
msgstr "Kamers"
#: converse.js:871
#: converse.js:1243
msgid "Room name"
msgstr "Kamer naam"
#: converse.js:872
#: converse.js:1244
msgid "Nickname"
msgstr "Bynaam"
#: converse.js:873
#: converse.js:1245
msgid "Server"
msgstr "Bediener"
#: converse.js:874
#: converse.js:1246
msgid "Join"
msgstr "Sluit aan"
#: converse.js:875
#: converse.js:1247
msgid "Show rooms"
msgstr "Wys kamers"
#. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:910
#: converse.js:1282
msgid "No rooms on %1$s"
msgstr "Geen kamers op %1$s"
#. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name
#: converse.js:925
#: converse.js:1297
msgid "Rooms on %1$s"
msgstr "Kamers op %1$s"
#: converse.js:1182
#: converse.js:1554
msgid "Set chatroom topic"
msgstr "Stel kletskamer onderwerp"
#: converse.js:1183
#: converse.js:1555
msgid "Kick user from chatroom"
msgstr "Skop gebruiker uit die kletskamer"
#: converse.js:1184
#: converse.js:1556
msgid "Ban user from chatroom"
msgstr "Verban gebruiker vanuit die kletskamer"
#: converse.js:1211
#: converse.js:1583
msgid "Message"
msgstr "Boodskap"
#: converse.js:1325 converse.js:2406
#: converse.js:1697 converse.js:2783
msgid "Save"
msgstr "Stoor"
#: converse.js:1326
#: converse.js:1698
msgid "Cancel"
msgstr "Kanseleer"
#: converse.js:1373
#: converse.js:1745
msgid "An error occurred while trying to save the form."
msgstr "A fout het voorgekom terwyl probeer is om die vorm te stoor."
#: converse.js:1419
#: converse.js:1791
msgid "This chatroom requires a password"
msgstr "Hiedie kletskamer benodig 'n wagwoord"
#: converse.js:1420
#: converse.js:1792
msgid "Password: "
msgstr "Wagwoord:"
#: converse.js:1421
#: converse.js:1793
msgid "Submit"
msgstr "Dien in"
#: converse.js:1435
#: converse.js:1807
msgid "This room is not anonymous"
msgstr "Hierdie vertrek is nie anoniem nie"
#: converse.js:1436
#: converse.js:1808
msgid "This room now shows unavailable members"
msgstr "Hierdie vertrek wys nou onbeskikbare lede"
#: converse.js:1437
#: converse.js:1809
msgid "This room does not show unavailable members"
msgstr "Hierdie vertrek wys nie onbeskikbare lede nie"
#: converse.js:1438
#: converse.js:1810
msgid "Non-privacy-related room configuration has changed"
msgstr "Nie-privaatheidverwante kamer instellings het verander"
#: converse.js:1439
#: converse.js:1811
msgid "Room logging is now enabled"
msgstr "Kamer log is nou aangeskakel"
#: converse.js:1440
#: converse.js:1812
msgid "Room logging is now disabled"
msgstr "Kamer log is nou afgeskakel"
#: converse.js:1441
#: converse.js:1813
msgid "This room is now non-anonymous"
msgstr "Hiedie kamer is nou nie anoniem nie"
#: converse.js:1442
#: converse.js:1814
msgid "This room is now semi-anonymous"
msgstr "Hierdie kamer is nou gedeeltelik anoniem"
#: converse.js:1443
#: converse.js:1815
msgid "This room is now fully-anonymous"
msgstr "Hierdie kamer is nou ten volle anoniem"
#: converse.js:1444
#: converse.js:1816
msgid "A new room has been created"
msgstr "'n Nuwe kamer is geskep"
#: converse.js:1445
#: converse.js:1817
msgid "Your nickname has been changed"
msgstr "Jou bynaam is verander"
#: converse.js:1459
#: converse.js:1831
msgid "<strong>%1$s</strong> has been banned"
msgstr "<strong>%1$s</strong> is verban"
#: converse.js:1460
#: converse.js:1832
msgid "<strong>%1$s</strong> has been kicked out"
msgstr "<strong>%1$s</strong> is uitgeskop"
#: converse.js:1461
#: converse.js:1833
msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr "<strong>%1$s</strong> is verwyder a.g.v 'n verandering van affiliasie"
#: converse.js:1462
#: converse.js:1834
msgid "<strong>%1$s</strong> has been removed for not being a member"
msgstr "<strong>%1$s</strong> is nie 'n lid nie, en dus verwyder"
#: converse.js:1466 converse.js:1526
#: converse.js:1838 converse.js:1898
msgid "You have been banned from this room"
msgstr "Jy is uit die kamer verban"
#: converse.js:1467
#: converse.js:1839
msgid "You have been kicked from this room"
msgstr "Jy is uit die kamer geskop"
#: converse.js:1468
#: converse.js:1840
msgid "You have been removed from this room because of an affiliation change"
msgstr "Jy is vanuit die kamer verwyder a.g.v 'n verandering van affiliasie"
#: converse.js:1469
#: converse.js:1841
msgid ""
"You have been removed from this room because the room has changed to members-"
"only and you're not a member"
......@@ -343,7 +525,7 @@ msgstr ""
"Jy is vanuit die kamer verwyder omdat die kamer nou slegs tot lede beperk "
"word en jy nie 'n lid is nie."
#: converse.js:1470
#: converse.js:1842
msgid ""
"You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down."
......@@ -351,151 +533,149 @@ msgstr ""
"Jy is van hierdie kamer verwyder aangesien die MUC (Multi-user chat) diens "
"nou afgeskakel word."
#: converse.js:1524
#: converse.js:1896
msgid "You are not on the member list of this room"
msgstr "Jy is nie op die ledelys van hierdie kamer nie"
#: converse.js:1530
#: converse.js:1902
msgid "No nickname was specified"
msgstr "Geen bynaam verskaf nie"
#: converse.js:1534
#: converse.js:1906
msgid "You are not allowed to create new rooms"
msgstr "Jy word nie toegelaat om nog kamers te skep nie"
#: converse.js:1536
#: converse.js:1908
msgid "Your nickname doesn't conform to this room's policies"
msgstr "Jou bynaam voldoen nie aan die kamer se beleid nie"
#: converse.js:1538
#: converse.js:1910
msgid "Your nickname is already taken"
msgstr "Jou bynaam is reeds geneem"
#: converse.js:1540
#: converse.js:1912
msgid "This room does not (yet) exist"
msgstr "Hierdie kamer bestaan tans (nog) nie"
#: converse.js:1542
#: converse.js:1914
msgid "This room has reached it's maximum number of occupants"
msgstr "Hierdie kamer het sy maksimum aantal deelnemers bereik"
#. For translators: the %1$s and %2$s parts will get replaced by the user and topic text respectively
#. Example: Topic set by JC Brand to: Hello World!
#: converse.js:1619
#: converse.js:1993
msgid "Topic set by %1$s to: %2$s"
msgstr "Onderwerp deur %1$s bygewerk na: %2$s"
#: converse.js:1635
#: converse.js:2009
msgid "This user is a moderator"
msgstr "Hierdie gebruiker is 'n moderator"
#: converse.js:1638
#: converse.js:2012
msgid "This user can send messages in this room"
msgstr "Hierdie gebruiker kan boodskappe na die kamer stuur"
#: converse.js:1641
#: converse.js:2015
msgid "This user can NOT send messages in this room"
msgstr "Hierdie gebruiker kan NIE boodskappe na die kamer stuur nie"
#: converse.js:1848
#: converse.js:2225
msgid "Click to chat with this contact"
msgstr "Kliek om met hierdie kontak te klets"
#: converse.js:1851 converse.js:1855
#: converse.js:2228 converse.js:2232
msgid "Click to remove this contact"
msgstr "Kliek om hierdie kontak te verwyder"
#: converse.js:1886
#: converse.js:2263
msgid "This contact is busy"
msgstr "Hierdie persoon is besig"
#: converse.js:1887
#: converse.js:2264
msgid "This contact is online"
msgstr "Hierdie persoon is aanlyn"
#: converse.js:1888
#: converse.js:2265
msgid "This contact is offline"
msgstr "Hierdie persoon is aflyn"
#: converse.js:1889
#: converse.js:2266
msgid "This contact is unavailable"
msgstr "Hierdie persoon is onbeskikbaar"
#: converse.js:1890
#: converse.js:2267
msgid "This contact is away for an extended period"
msgstr "Hierdie persoon is vir lank afwesig"
#: converse.js:1891
#: converse.js:2268
msgid "This contact is away"
msgstr "Hierdie persoon is afwesig"
#: converse.js:2245
#: converse.js:2622
msgid "Contact requests"
msgstr "Kontak versoeke"
#: converse.js:2246
#: converse.js:2623
msgid "My contacts"
msgstr "My kontakte"
#: converse.js:2247
#: converse.js:2624
msgid "Pending contacts"
msgstr "Hangende kontakte"
#: converse.js:2405
#: converse.js:2782
msgid "Custom status"
msgstr "Doelgemaakte status"
#: converse.js:2411
#: converse.js:2788
msgid "Click to change your chat status"
msgstr "Kliek om jou klets-status te verander"
#: converse.js:2415
#: converse.js:2792
msgid "Click here to write a custom status message"
msgstr "Kliek hier om jou eie statusboodskap te skryf"
#: converse.js:2444 converse.js:2452
#: converse.js:2821 converse.js:2829
msgid "online"
msgstr "aangemeld"
#: converse.js:2446
#: converse.js:2823
msgid "busy"
msgstr "besig"
#: converse.js:2448
#: converse.js:2825
msgid "away for long"
msgstr "vir lank afwesig"
#: converse.js:2450
#: converse.js:2827
msgid "away"
msgstr "afwesig"
#. For translators: the %1$s part gets replaced with the status
#. Example, I am online
#: converse.js:2464 converse.js:2501
#: converse.js:2841 converse.js:2878
msgid "I am %1$s"
msgstr "Ek is %1$s"
#: converse.js:2572
#: converse.js:2949
msgid "Sign in"
msgstr "Teken in"
#: converse.js:2575
#: converse.js:2952
msgid "XMPP/Jabber Username:"
msgstr "XMPP/Jabber Gebruikersnaam:"
#: converse.js:2577
#: converse.js:2954
msgid "Password:"
msgstr "Wagwoord"
#: converse.js:2579
#: converse.js:2956
msgid "Log In"
msgstr "Meld aan"
#: converse.js:2583
#: converse.js:2960
msgid "BOSH Service URL:"
msgstr "BOSH bediener URL"
#: converse.js:2736
#: converse.js:3113
msgid "Online Contacts"
msgstr "Kontakte aangemeld"
......
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Converse.js 0.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-09-13 16:02+0200\n"
"POT-Creation-Date: 2013-09-15 22:06+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -17,477 +17,626 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: converse.js:135
#: converse.js:125
msgid "unencrypted"
msgstr ""
#: converse.js:126
msgid "unverified"
msgstr ""
#: converse.js:127
msgid "verified"
msgstr ""
#: converse.js:128
msgid "finished"
msgstr ""
#: converse.js:161
msgid "Disconnected"
msgstr ""
#: converse.js:139
#: converse.js:165
msgid "Error"
msgstr ""
#: converse.js:141
#: converse.js:167
msgid "Connecting"
msgstr ""
#: converse.js:144
#: converse.js:170
msgid "Connection Failed"
msgstr ""
#: converse.js:146
#: converse.js:172
msgid "Authenticating"
msgstr ""
#: converse.js:149
#: converse.js:175
msgid "Authentication Failed"
msgstr ""
#: converse.js:151
#: converse.js:177
msgid "Disconnecting"
msgstr ""
#: converse.js:373
msgid "me"
#: converse.js:332
msgid "Re-establishing encrypted session"
msgstr ""
#: converse.js:417
msgid "%1$s is typing"
#: converse.js:340
msgid ""
"Your browser needs to generate a private key, which will be used in your "
"encrypted chat session. This can take up to 30 seconds during which your "
"browser might freeze and become unresponsive."
msgstr ""
#: converse.js:349
msgid "Private key generated."
msgstr ""
#: converse.js:380
msgid ""
"Authentication request from %1$s\n"
"\n"
"Your buddy is attempting to verify your identity, by asking you the question "
"below.\n"
"\n"
"%2$s"
msgstr ""
#: converse.js:389
msgid "Could not verify this user's identify."
msgstr ""
#: converse.js:537
msgid "Personal message"
msgstr ""
#: converse.js:559
msgid "Start encrypted conversation"
msgstr ""
#: converse.js:562
msgid "Refresh encrypted conversation"
msgstr ""
#: converse.js:563
msgid "End encrypted conversation"
msgstr ""
#: converse.js:564
msgid "Verify with SMP"
msgstr ""
#: converse.js:567
msgid "Verify with fingerprints"
msgstr ""
#: converse.js:569
msgid "What's this?"
msgstr ""
#: converse.js:641
msgid "me"
msgstr ""
#: converse.js:461 converse.js:1180
#: converse.js:757 converse.js:1552
msgid "Show this menu"
msgstr ""
#: converse.js:462 converse.js:1181
#: converse.js:758 converse.js:1553
msgid "Write in the third person"
msgstr ""
#: converse.js:463 converse.js:1185
#: converse.js:759 converse.js:1557
msgid "Remove messages"
msgstr ""
#: converse.js:603
msgid "Personal message"
#: converse.js:830
msgid "Your message could not be sent"
msgstr ""
#: converse.js:833
msgid "We received an unencrypted message"
msgstr ""
#: converse.js:836
msgid "We received an unreadable encrypted message"
msgstr ""
#: converse.js:845
msgid "This user has requested an encrypted session."
msgstr ""
#: converse.js:863
msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n"
"\n"
"Fingerprint for you, %2$s: %3$s\n"
"\n"
"Fingerprint for %1$s: %4$s\n"
"\n"
"If you have confirmed that the fingerprints match, click OK, otherwise click "
"Cancel."
msgstr ""
#: converse.js:876
msgid ""
"You will be prompted to provide a security question and then an answer to "
"that question.\n"
"\n"
"Your buddy will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will have been verified."
msgstr ""
#: converse.js:877
msgid "What is your security question?"
msgstr ""
#: converse.js:879
msgid "What is the answer to the security question?"
msgstr ""
#: converse.js:883
msgid "Invalid authentication scheme provided"
msgstr ""
#: converse.js:953
msgid "Your messages are not encrypted anymore"
msgstr ""
#: converse.js:955
msgid ""
"Your messages are now encrypted but your buddy's identity has not been "
"verified."
msgstr ""
#: converse.js:957
msgid "Your buddy's identify has been verified."
msgstr ""
#: converse.js:959
msgid "Your buddy has ended encryption on their end, you should do the same."
msgstr ""
#: converse.js:968
msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr ""
#: converse.js:970
msgid "Your messages are encrypted, but your buddy has not been verified."
msgstr ""
#: converse.js:972
msgid "Your messages are encrypted and your buddy verified."
msgstr ""
#: converse.js:974
msgid ""
"Your buddy has closed their end of the private session, you should do the "
"same"
msgstr ""
#: converse.js:677
#: converse.js:1049
msgid "Contacts"
msgstr ""
#: converse.js:682
#: converse.js:1054
msgid "Online"
msgstr ""
#: converse.js:683
#: converse.js:1055
msgid "Busy"
msgstr ""
#: converse.js:684
#: converse.js:1056
msgid "Away"
msgstr ""
#: converse.js:685
#: converse.js:1057
msgid "Offline"
msgstr ""
#: converse.js:692
#: converse.js:1064
msgid "Click to add new chat contacts"
msgstr ""
#: converse.js:693
#: converse.js:1065
msgid "Add a contact"
msgstr ""
#: converse.js:702
#: converse.js:1074
msgid "Contact username"
msgstr ""
#: converse.js:703
#: converse.js:1075
msgid "Add"
msgstr ""
#: converse.js:711
#: converse.js:1083
msgid "Contact name"
msgstr ""
#: converse.js:712
#: converse.js:1084
msgid "Search"
msgstr ""
#: converse.js:752
#: converse.js:1124
msgid "No users found"
msgstr ""
#: converse.js:759
#: converse.js:1131
msgid "Click to add as a chat contact"
msgstr ""
#: converse.js:819
#: converse.js:1191
msgid "Click to open this room"
msgstr ""
#: converse.js:821
#: converse.js:1193
msgid "Show more information on this room"
msgstr ""
#: converse.js:827
#: converse.js:1199
msgid "Description:"
msgstr ""
#: converse.js:828
#: converse.js:1200
msgid "Occupants:"
msgstr ""
#: converse.js:829
#: converse.js:1201
msgid "Features:"
msgstr ""
#: converse.js:831
#: converse.js:1203
msgid "Requires authentication"
msgstr ""
#: converse.js:834
#: converse.js:1206
msgid "Hidden"
msgstr ""
#: converse.js:837
#: converse.js:1209
msgid "Requires an invitation"
msgstr ""
#: converse.js:840
#: converse.js:1212
msgid "Moderated"
msgstr ""
#: converse.js:843
#: converse.js:1215
msgid "Non-anonymous"
msgstr ""
#: converse.js:846
#: converse.js:1218
msgid "Open room"
msgstr ""
#: converse.js:849
#: converse.js:1221
msgid "Permanent room"
msgstr ""
#: converse.js:852
#: converse.js:1224
msgid "Public"
msgstr ""
#: converse.js:855
#: converse.js:1227
msgid "Semi-anonymous"
msgstr ""
#: converse.js:858
#: converse.js:1230
msgid "Temporary room"
msgstr ""
#: converse.js:861
#: converse.js:1233
msgid "Unmoderated"
msgstr ""
#: converse.js:867
#: converse.js:1239
msgid "Rooms"
msgstr ""
#: converse.js:871
#: converse.js:1243
msgid "Room name"
msgstr ""
#: converse.js:872
#: converse.js:1244
msgid "Nickname"
msgstr ""
#: converse.js:873
#: converse.js:1245
msgid "Server"
msgstr ""
#: converse.js:874
#: converse.js:1246
msgid "Join"
msgstr ""
#: converse.js:875
#: converse.js:1247
msgid "Show rooms"
msgstr ""
#. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:910
#: converse.js:1282
msgid "No rooms on %1$s"
msgstr ""
#. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name
#: converse.js:925
#: converse.js:1297
msgid "Rooms on %1$s"
msgstr ""
#: converse.js:1182
#: converse.js:1554
msgid "Set chatroom topic"
msgstr ""
#: converse.js:1183
#: converse.js:1555
msgid "Kick user from chatroom"
msgstr ""
#: converse.js:1184
#: converse.js:1556
msgid "Ban user from chatroom"
msgstr ""
#: converse.js:1211
#: converse.js:1583
msgid "Message"
msgstr ""
#: converse.js:1325 converse.js:2406
#: converse.js:1697 converse.js:2783
msgid "Save"
msgstr ""
#: converse.js:1326
#: converse.js:1698
msgid "Cancel"
msgstr ""
#: converse.js:1373
#: converse.js:1745
msgid "An error occurred while trying to save the form."
msgstr ""
#: converse.js:1419
#: converse.js:1791
msgid "This chatroom requires a password"
msgstr ""
#: converse.js:1420
#: converse.js:1792
msgid "Password: "
msgstr ""
#: converse.js:1421
#: converse.js:1793
msgid "Submit"
msgstr ""
#: converse.js:1435
#: converse.js:1807
msgid "This room is not anonymous"
msgstr ""
#: converse.js:1436
#: converse.js:1808
msgid "This room now shows unavailable members"
msgstr ""
#: converse.js:1437
#: converse.js:1809
msgid "This room does not show unavailable members"
msgstr ""
#: converse.js:1438
#: converse.js:1810
msgid "Non-privacy-related room configuration has changed"
msgstr ""
#: converse.js:1439
#: converse.js:1811
msgid "Room logging is now enabled"
msgstr ""
#: converse.js:1440
#: converse.js:1812
msgid "Room logging is now disabled"
msgstr ""
#: converse.js:1441
#: converse.js:1813
msgid "This room is now non-anonymous"
msgstr ""
#: converse.js:1442
#: converse.js:1814
msgid "This room is now semi-anonymous"
msgstr ""
#: converse.js:1443
#: converse.js:1815
msgid "This room is now fully-anonymous"
msgstr ""
#: converse.js:1444
#: converse.js:1816
msgid "A new room has been created"
msgstr ""
#: converse.js:1445
#: converse.js:1817
msgid "Your nickname has been changed"
msgstr ""
#: converse.js:1459
#: converse.js:1831
msgid "<strong>%1$s</strong> has been banned"
msgstr ""
#: converse.js:1460
#: converse.js:1832
msgid "<strong>%1$s</strong> has been kicked out"
msgstr ""
#: converse.js:1461
#: converse.js:1833
msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr ""
#: converse.js:1462
#: converse.js:1834
msgid "<strong>%1$s</strong> has been removed for not being a member"
msgstr ""
#: converse.js:1466 converse.js:1526
#: converse.js:1838 converse.js:1898
msgid "You have been banned from this room"
msgstr ""
#: converse.js:1467
#: converse.js:1839
msgid "You have been kicked from this room"
msgstr ""
#: converse.js:1468
#: converse.js:1840
msgid "You have been removed from this room because of an affiliation change"
msgstr ""
#: converse.js:1469
#: converse.js:1841
msgid ""
"You have been removed from this room because the room has changed to members-"
"only and you're not a member"
msgstr ""
#: converse.js:1470
#: converse.js:1842
msgid ""
"You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down."
msgstr ""
#: converse.js:1524
#: converse.js:1896
msgid "You are not on the member list of this room"
msgstr ""
#: converse.js:1530
#: converse.js:1902
msgid "No nickname was specified"
msgstr ""
#: converse.js:1534
#: converse.js:1906
msgid "You are not allowed to create new rooms"
msgstr ""
#: converse.js:1536
#: converse.js:1908
msgid "Your nickname doesn't conform to this room's policies"
msgstr ""
#: converse.js:1538
#: converse.js:1910
msgid "Your nickname is already taken"
msgstr ""
#: converse.js:1540
#: converse.js:1912
msgid "This room does not (yet) exist"
msgstr ""
#: converse.js:1542
#: converse.js:1914
msgid "This room has reached it's maximum number of occupants"
msgstr ""
#. For translators: the %1$s and %2$s parts will get replaced by the user and topic text respectively
#. Example: Topic set by JC Brand to: Hello World!
#: converse.js:1619
#: converse.js:1993
msgid "Topic set by %1$s to: %2$s"
msgstr ""
#: converse.js:1635
#: converse.js:2009
msgid "This user is a moderator"
msgstr ""
#: converse.js:1638
#: converse.js:2012
msgid "This user can send messages in this room"
msgstr ""
#: converse.js:1641
#: converse.js:2015
msgid "This user can NOT send messages in this room"
msgstr ""
#: converse.js:1848
#: converse.js:2225
msgid "Click to chat with this contact"
msgstr ""
#: converse.js:1851 converse.js:1855
#: converse.js:2228 converse.js:2232
msgid "Click to remove this contact"
msgstr ""
#: converse.js:1886
#: converse.js:2263
msgid "This contact is busy"
msgstr ""
#: converse.js:1887
#: converse.js:2264
msgid "This contact is online"
msgstr ""
#: converse.js:1888
#: converse.js:2265
msgid "This contact is offline"
msgstr ""
#: converse.js:1889
#: converse.js:2266
msgid "This contact is unavailable"
msgstr ""
#: converse.js:1890
#: converse.js:2267
msgid "This contact is away for an extended period"
msgstr ""
#: converse.js:1891
#: converse.js:2268
msgid "This contact is away"
msgstr ""
#: converse.js:2245
#: converse.js:2622
msgid "Contact requests"
msgstr ""
#: converse.js:2246
#: converse.js:2623
msgid "My contacts"
msgstr ""
#: converse.js:2247
#: converse.js:2624
msgid "Pending contacts"
msgstr ""
#: converse.js:2405
#: converse.js:2782
msgid "Custom status"
msgstr ""
#: converse.js:2411
#: converse.js:2788
msgid "Click to change your chat status"
msgstr ""
#: converse.js:2415
#: converse.js:2792
msgid "Click here to write a custom status message"
msgstr ""
#: converse.js:2444 converse.js:2452
#: converse.js:2821 converse.js:2829
msgid "online"
msgstr ""
#: converse.js:2446
#: converse.js:2823
msgid "busy"
msgstr ""
#: converse.js:2448
#: converse.js:2825
msgid "away for long"
msgstr ""
#: converse.js:2450
#: converse.js:2827
msgid "away"
msgstr ""
#. For translators: the %1$s part gets replaced with the status
#. Example, I am online
#: converse.js:2464 converse.js:2501
#: converse.js:2841 converse.js:2878
msgid "I am %1$s"
msgstr ""
#: converse.js:2572
#: converse.js:2949
msgid "Sign in"
msgstr ""
#: converse.js:2575
#: converse.js:2952
msgid "XMPP/Jabber Username:"
msgstr ""
#: converse.js:2577
#: converse.js:2954
msgid "Password:"
msgstr ""
#: converse.js:2579
#: converse.js:2956
msgid "Log In"
msgstr ""
#: converse.js:2583
#: converse.js:2960
msgid "BOSH Service URL:"
msgstr ""
#: converse.js:2736
#: converse.js:3113
msgid "Online Contacts"
msgstr ""
......@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Converse.js 0.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-09-13 16:02+0200\n"
"PO-Revision-Date: 2013-09-15 11:44+0200\n"
"POT-Creation-Date: 2013-09-15 21:55+0200\n"
"PO-Revision-Date: 2013-09-15 22:03+0200\n"
"Last-Translator: JC Brand <jc@opkode.com>\n"
"Language-Team: German\n"
"Language: de\n"
......@@ -20,331 +20,482 @@ msgstr ""
"lang: de\n"
"plural_forms: nplurals=2; plural=(n != 1);\n"
#: converse.js:135
#: converse.js:125
msgid "unencrypted"
msgstr ""
#: converse.js:126
msgid "unverified"
msgstr ""
#: converse.js:127
msgid "verified"
msgstr ""
#: converse.js:128
msgid "finished"
msgstr ""
#: converse.js:161
msgid "Disconnected"
msgstr "Verbindung unterbrochen."
#: converse.js:139
#: converse.js:165
msgid "Error"
msgstr "Fehler"
#: converse.js:141
#: converse.js:167
msgid "Connecting"
msgstr "Verbindungsaufbau …"
#: converse.js:144
#: converse.js:170
msgid "Connection Failed"
msgstr "Entfernte Verbindung fehlgeschlagen"
#: converse.js:146
#: converse.js:172
msgid "Authenticating"
msgstr "Authentifizierung"
#: converse.js:149
#: converse.js:175
msgid "Authentication Failed"
msgstr "Authentifizierung gescheitert"
#: converse.js:151
#: converse.js:177
msgid "Disconnecting"
msgstr "Trenne Verbindung"
#: converse.js:373
#: converse.js:332
msgid "Re-establishing encrypted session"
msgstr ""
#: converse.js:340
msgid ""
"Your browser needs to generate a private key, which will be used in your "
"encrypted chat session. This can take up to 30 seconds during which your "
"browser might freeze and become unresponsive."
msgstr ""
#: converse.js:349
msgid "Private key generated."
msgstr ""
#: converse.js:380
msgid ""
"Authentication request from %1$s\n"
"\n"
"Your buddy is attempting to verify your identity, by asking you the question "
"below.\n"
"\n"
"%2$s"
msgstr ""
#: converse.js:389
msgid "Could not verify this user's identify."
msgstr ""
#: converse.js:537
msgid "Personal message"
msgstr "Persönliche Nachricht"
#: converse.js:559
msgid "Start encrypted conversation"
msgstr ""
#: converse.js:562
msgid "Refresh encrypted conversation"
msgstr ""
#: converse.js:563
msgid "End encrypted conversation"
msgstr ""
#: converse.js:564
msgid "Verify with SMP"
msgstr ""
#: converse.js:567
msgid "Verify with fingerprints"
msgstr ""
#: converse.js:569
msgid "What's this?"
msgstr ""
#: converse.js:641
msgid "me"
msgstr "Ich"
#: converse.js:417
msgid "%1$s is typing"
msgstr "%1$s tippt"
#: converse.js:461 converse.js:1180
#: converse.js:757 converse.js:1552
msgid "Show this menu"
msgstr "Dieses Menü anzeigen"
#: converse.js:462 converse.js:1181
#: converse.js:758 converse.js:1553
msgid "Write in the third person"
msgstr "In der dritten Person schreiben"
#: converse.js:463 converse.js:1185
#: converse.js:759 converse.js:1557
msgid "Remove messages"
msgstr "Nachrichten entfernen"
#: converse.js:603
msgid "Personal message"
msgstr "Persönliche Nachricht"
#: converse.js:830
msgid "Your message could not be sent"
msgstr ""
#: converse.js:833
msgid "We received an unencrypted message"
msgstr ""
#: converse.js:836
msgid "We received an unreadable encrypted message"
msgstr ""
#: converse.js:845
msgid "This user has requested an encrypted session."
msgstr ""
#: converse.js:863
msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n"
"\n"
"Fingerprint for you, %2$s: %3$s\n"
"\n"
"Fingerprint for %1$s: %4$s\n"
"\n"
"If you have confirmed that the fingerprints match, click OK, otherwise click "
"Cancel."
msgstr ""
#: converse.js:876
msgid ""
"You will be prompted to provide a security question and then an answer to "
"that question.\n"
"\n"
"Your buddy will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will have been verified."
msgstr ""
#: converse.js:877
msgid "What is your security question?"
msgstr ""
#: converse.js:879
msgid "What is the answer to the security question?"
msgstr ""
#: converse.js:883
msgid "Invalid authentication scheme provided"
msgstr ""
#: converse.js:677
#: converse.js:953
msgid "Your messages are not encrypted anymore"
msgstr ""
#: converse.js:955
msgid ""
"Your messages are now encrypted but your buddy's identity has not been "
"verified."
msgstr ""
#: converse.js:957
msgid "Your buddy's identify has been verified."
msgstr ""
#: converse.js:959
msgid "Your buddy has ended encryption on their end, you should do the same."
msgstr ""
#: converse.js:968
msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr ""
#: converse.js:970
msgid "Your messages are encrypted, but your buddy has not been verified."
msgstr ""
#: converse.js:972
msgid "Your messages are encrypted and your buddy verified."
msgstr ""
#: converse.js:974
msgid ""
"Your buddy has closed their end of the private session, you should do the "
"same"
msgstr ""
#: converse.js:1049
msgid "Contacts"
msgstr "Kontakte"
#: converse.js:682
#: converse.js:1054
msgid "Online"
msgstr "Online"
#: converse.js:683
#: converse.js:1055
msgid "Busy"
msgstr "Beschäfticht"
#: converse.js:684
#: converse.js:1056
msgid "Away"
msgstr "Abwesend"
#: converse.js:685
#: converse.js:1057
msgid "Offline"
msgstr "Abgemeldet"
#: converse.js:692
#: converse.js:1064
msgid "Click to add new chat contacts"
msgstr "Klicken Sie, um einen neuen Kontakt hinzuzufügen"
#: converse.js:693
#: converse.js:1065
msgid "Add a contact"
msgstr "Kontakte hinzufügen"
#: converse.js:702
#: converse.js:1074
msgid "Contact username"
msgstr "Benutzername"
#: converse.js:703
#: converse.js:1075
msgid "Add"
msgstr "Hinzufügen"
#: converse.js:711
#: converse.js:1083
msgid "Contact name"
msgstr "Name des Kontakts"
#: converse.js:712
#: converse.js:1084
msgid "Search"
msgstr "Suche"
#: converse.js:752
#: converse.js:1124
msgid "No users found"
msgstr "Keine Benutzer gefunden"
#: converse.js:759
#: converse.js:1131
msgid "Click to add as a chat contact"
msgstr "Hier klicken um als Kontakt hinzuzufügen"
#: converse.js:819
#: converse.js:1191
msgid "Click to open this room"
msgstr "Hier klicken um diesen Raum zu öffnen"
#: converse.js:821
#: converse.js:1193
msgid "Show more information on this room"
msgstr "Mehr Information über diesen Raum zeigen"
#: converse.js:827
#: converse.js:1199
msgid "Description:"
msgstr "Beschreibung"
#: converse.js:828
#: converse.js:1200
msgid "Occupants:"
msgstr "Teilnehmer"
#: converse.js:829
#: converse.js:1201
msgid "Features:"
msgstr "Funktionen:"
#: converse.js:831
#: converse.js:1203
msgid "Requires authentication"
msgstr "Authentifizierung erforderlich"
#: converse.js:834
#: converse.js:1206
msgid "Hidden"
msgstr "Versteckt"
#: converse.js:837
#: converse.js:1209
msgid "Requires an invitation"
msgstr "Einladung erforderlich"
#: converse.js:840
#: converse.js:1212
msgid "Moderated"
msgstr "Moderiert"
#: converse.js:843
#: converse.js:1215
msgid "Non-anonymous"
msgstr "Nicht anonym"
#: converse.js:846
#: converse.js:1218
msgid "Open room"
msgstr "Offener Raum"
#: converse.js:849
#: converse.js:1221
msgid "Permanent room"
msgstr "Dauerhafter Raum"
#: converse.js:852
#: converse.js:1224
msgid "Public"
msgstr "Öffentlich"
#: converse.js:855
#: converse.js:1227
msgid "Semi-anonymous"
msgstr "Teils anonym"
#: converse.js:858
#: converse.js:1230
msgid "Temporary room"
msgstr "Vorübergehender Raum"
#: converse.js:861
#: converse.js:1233
msgid "Unmoderated"
msgstr "Unmoderiert"
#: converse.js:867
#: converse.js:1239
msgid "Rooms"
msgstr "Räume"
#: converse.js:871
#: converse.js:1243
msgid "Room name"
msgstr "Raumname"
#: converse.js:872
#: converse.js:1244
msgid "Nickname"
msgstr "Spitzname"
#: converse.js:873
#: converse.js:1245
msgid "Server"
msgstr "Server"
#: converse.js:874
#: converse.js:1246
msgid "Join"
msgstr "Beitreten"
#: converse.js:875
#: converse.js:1247
msgid "Show rooms"
msgstr "Räume anzeigen"
#. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:910
#: converse.js:1282
msgid "No rooms on %1$s"
msgstr "Keine Räume auf %1$s"
#. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name
#: converse.js:925
#: converse.js:1297
msgid "Rooms on %1$s"
msgstr "Räume auf %1$s"
#: converse.js:1182
#: converse.js:1554
msgid "Set chatroom topic"
msgstr "Chatraum Thema festlegen"
#: converse.js:1183
#: converse.js:1555
msgid "Kick user from chatroom"
msgstr "Werfe einen Benutzer aus dem Raum."
#: converse.js:1184
#: converse.js:1556
msgid "Ban user from chatroom"
msgstr "Verbanne einen Benutzer aus dem Raum."
#: converse.js:1211
#: converse.js:1583
msgid "Message"
msgstr "Nachricht"
#: converse.js:1325 converse.js:2406
#: converse.js:1697 converse.js:2783
msgid "Save"
msgstr "Speichern"
#: converse.js:1326
#: converse.js:1698
msgid "Cancel"
msgstr "Abbrechen"
#: converse.js:1373
#: converse.js:1745
msgid "An error occurred while trying to save the form."
msgstr "Beim Speichern der Formular is ein Fehler aufgetreten."
#: converse.js:1419
#: converse.js:1791
msgid "This chatroom requires a password"
msgstr "Passwort wird für die Anmeldung benötigt."
#: converse.js:1420
#: converse.js:1792
msgid "Password: "
msgstr "Passwort: "
#: converse.js:1421
#: converse.js:1793
msgid "Submit"
msgstr "Einreichen"
#: converse.js:1435
#: converse.js:1807
msgid "This room is not anonymous"
msgstr "Dieser Raum ist nicht anonym"
#: converse.js:1436
#: converse.js:1808
msgid "This room now shows unavailable members"
msgstr "Dieser Raum zeigt jetzt unferfügbare Mitglieder"
#: converse.js:1437
#: converse.js:1809
msgid "This room does not show unavailable members"
msgstr "Dieser Raum zeigt nicht unverfügbare Mitglieder"
#: converse.js:1438
#: converse.js:1810
msgid "Non-privacy-related room configuration has changed"
msgstr ""
"Die Konfiguration, die nicht auf die Privatsphäre bezogen ist, hat sich "
"geändert"
#: converse.js:1439
#: converse.js:1811
msgid "Room logging is now enabled"
msgstr "Zukünftige Nachrichten dieses Raums werden protokolliert."
#: converse.js:1440
#: converse.js:1812
msgid "Room logging is now disabled"
msgstr "Zukünftige Nachrichten dieses Raums werden nicht protokolliert."
#: converse.js:1441
#: converse.js:1813
msgid "This room is now non-anonymous"
msgstr "Dieser Raum ist jetzt nicht anonym"
#: converse.js:1442
#: converse.js:1814
msgid "This room is now semi-anonymous"
msgstr "Dieser Raum ist jetzt teils anonym"
#: converse.js:1443
#: converse.js:1815
msgid "This room is now fully-anonymous"
msgstr "Dieser Raum ist jetzt anonym"
#: converse.js:1444
#: converse.js:1816
msgid "A new room has been created"
msgstr "Einen neuen Raum ist erstellen"
#: converse.js:1445
#: converse.js:1817
msgid "Your nickname has been changed"
msgstr "Spitzname festgelegen"
#: converse.js:1459
#: converse.js:1831
msgid "<strong>%1$s</strong> has been banned"
msgstr "<strong>%1$s</strong> ist verbannt"
#: converse.js:1460
#: converse.js:1832
msgid "<strong>%1$s</strong> has been kicked out"
msgstr "<strong>%1$s</strong> ist hinausgeworfen"
#: converse.js:1461
#: converse.js:1833
msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr ""
"<strong>%1$s</strong> wurde wegen einer Zugehörigkeitsänderung entfernt"
#: converse.js:1462
#: converse.js:1834
msgid "<strong>%1$s</strong> has been removed for not being a member"
msgstr "<strong>%1$s</strong> ist kein Mitglied und wurde daher entfernt"
#: converse.js:1466 converse.js:1526
#: converse.js:1838 converse.js:1898
msgid "You have been banned from this room"
msgstr "Sie sind aus diesem Raum verbannt worden"
#: converse.js:1467
#: converse.js:1839
msgid "You have been kicked from this room"
msgstr "Sie wurden aus diesem Raum hinausgeworfen"
#: converse.js:1468
#: converse.js:1840
msgid "You have been removed from this room because of an affiliation change"
msgstr "Sie wurden wegen einer Zugehörigkeitsänderung entfernt"
#: converse.js:1469
#: converse.js:1841
msgid ""
"You have been removed from this room because the room has changed to members-"
"only and you're not a member"
msgstr "Sie wurden aus diesem Raum entfernt da Sie kein Mitglied sind."
#: converse.js:1470
#: converse.js:1842
msgid ""
"You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down."
......@@ -352,154 +503,155 @@ msgstr ""
"Sie werden aus diesem Raum entfernt da der MUC (Muli-user chat) Dienst "
"gerade abgeschalten wird."
#: converse.js:1524
#: converse.js:1896
msgid "You are not on the member list of this room"
msgstr "Sie sind nicht auf der Mitgliederliste dieses Raums"
#: converse.js:1530
#: converse.js:1902
msgid "No nickname was specified"
msgstr "Kein Spitzname festgelegt"
#: converse.js:1534
#: converse.js:1906
msgid "You are not allowed to create new rooms"
msgstr "Es ist Ihnen nicht erlaubt, neue Räume anzulegen"
#: converse.js:1536
#: converse.js:1908
msgid "Your nickname doesn't conform to this room's policies"
msgstr "Ungültiger Spitzname"
#: converse.js:1538
#: converse.js:1910
msgid "Your nickname is already taken"
msgstr "Ihre Spitzname existiert bereits."
#: converse.js:1540
#: converse.js:1912
msgid "This room does not (yet) exist"
msgstr "Dieser Raum existiert (noch) nicht"
#: converse.js:1542
#: converse.js:1914
msgid "This room has reached it's maximum number of occupants"
msgstr "Dieser Raum hat die maximale Mitgliederanzahl erreicht"
#. For translators: the %1$s and %2$s parts will get replaced by the user and topic text respectively
#. Example: Topic set by JC Brand to: Hello World!
#: converse.js:1619
#: converse.js:1993
msgid "Topic set by %1$s to: %2$s"
msgstr "%1$s hat das Thema zu \"%2$s\" abgeändert"
#: converse.js:1635
#: converse.js:2009
msgid "This user is a moderator"
msgstr "Dieser Benutzer ist ein Moderator"
#: converse.js:1638
#: converse.js:2012
msgid "This user can send messages in this room"
msgstr "Dieser Benutzer kann Nachrichten in diesem Raum verschicken"
#: converse.js:1641
#: converse.js:2015
msgid "This user can NOT send messages in this room"
msgstr "Dieser Benutzer kann keine Nachrichten in diesem Raum verschicken"
#: converse.js:1848
#: converse.js:2225
msgid "Click to chat with this contact"
msgstr "Hier klicken um mit diesem Kontakt zu chatten"
#: converse.js:1851 converse.js:1855
#: converse.js:2228 converse.js:2232
msgid "Click to remove this contact"
msgstr "Hier klicken um diesen Kontakt zu entfernen"
#: converse.js:1886
#: converse.js:2263
msgid "This contact is busy"
msgstr "Dieser Kontakt ist beschäfticht"
#: converse.js:1887
#: converse.js:2264
msgid "This contact is online"
msgstr "Dieser Kontakt ist online"
#: converse.js:1888
#: converse.js:2265
msgid "This contact is offline"
msgstr "Dieser Kontakt ist offline"
#: converse.js:1889
#: converse.js:2266
msgid "This contact is unavailable"
msgstr "Dieser Kontakt ist nicht verfügbar"
#: converse.js:1890
#: converse.js:2267
msgid "This contact is away for an extended period"
msgstr "Dieser Kontakt is für längere Zeit abwesend"
#: converse.js:1891
#: converse.js:2268
msgid "This contact is away"
msgstr "Dieser Kontakt ist abwesend"
#: converse.js:2245
#: converse.js:2622
msgid "Contact requests"
msgstr "Kontaktanfragen"
#: converse.js:2246
#: converse.js:2623
msgid "My contacts"
msgstr "Meine Kontakte"
#: converse.js:2247
#: converse.js:2624
msgid "Pending contacts"
msgstr "Unbestätigte Kontakte"
#: converse.js:2405
#: converse.js:2782
msgid "Custom status"
msgstr "Status-Nachricht"
#: converse.js:2411
#: converse.js:2788
msgid "Click to change your chat status"
msgstr "Klicken Sie, um ihrer Status to ändern"
#: converse.js:2415
#: converse.js:2792
msgid "Click here to write a custom status message"
msgstr "Klicken Sie hier, um ihrer Status-Nachricht to ändern"
#: converse.js:2444 converse.js:2452
#: converse.js:2821 converse.js:2829
msgid "online"
msgstr "online"
#: converse.js:2446
#: converse.js:2823
msgid "busy"
msgstr "beschäfticht"
#: converse.js:2448
#: converse.js:2825
msgid "away for long"
msgstr "länger abwesend"
#: converse.js:2450
#: converse.js:2827
msgid "away"
msgstr "abwesend"
#. For translators: the %1$s part gets replaced with the status
#. Example, I am online
#: converse.js:2464 converse.js:2501
#: converse.js:2841 converse.js:2878
msgid "I am %1$s"
msgstr "Ich bin %1$s"
#: converse.js:2572
#: converse.js:2949
msgid "Sign in"
msgstr "Anmelden"
#: converse.js:2575
#: converse.js:2952
msgid "XMPP/Jabber Username:"
msgstr "XMPP/Jabber Benutzername"
#: converse.js:2577
#: converse.js:2954
msgid "Password:"
msgstr "Passwort:"
#: converse.js:2579
#: converse.js:2956
msgid "Log In"
msgstr "Anmelden"
#: converse.js:2583
#: converse.js:2960
msgid "BOSH Service URL:"
msgstr "BOSH "
#: converse.js:2736
#: converse.js:3113
msgid "Online Contacts"
msgstr "Online-Kontakte"
#~ msgid "%1$s is typing"
#~ msgstr "%1$s tippt"
#~ msgid "Connected"
#~ msgstr "Verbunden"
......
......@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Converse.js 0.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-09-13 16:02+0200\n"
"PO-Revision-Date: 2013-08-01 14:11+0200\n"
"POT-Creation-Date: 2013-09-15 22:06+0200\n"
"PO-Revision-Date: 2013-09-15 22:05+0200\n"
"Last-Translator: JC Brand <jc@opkode.com>\n"
"Language-Team: English\n"
"Language: en\n"
......@@ -17,323 +17,474 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: converse.js:135
#: converse.js:125
msgid "unencrypted"
msgstr ""
#: converse.js:126
msgid "unverified"
msgstr ""
#: converse.js:127
msgid "verified"
msgstr ""
#: converse.js:128
msgid "finished"
msgstr ""
#: converse.js:161
msgid "Disconnected"
msgstr "Disconnected"
#: converse.js:139
#: converse.js:165
msgid "Error"
msgstr "Error"
#: converse.js:141
#: converse.js:167
msgid "Connecting"
msgstr "Connecting"
#: converse.js:144
#: converse.js:170
msgid "Connection Failed"
msgstr "Connection Failed"
#: converse.js:146
#: converse.js:172
msgid "Authenticating"
msgstr "Authenticating"
#: converse.js:149
#: converse.js:175
msgid "Authentication Failed"
msgstr "Authentication Failed"
#: converse.js:151
#: converse.js:177
msgid "Disconnecting"
msgstr "Disconnecting"
#: converse.js:373
msgid "me"
#: converse.js:332
msgid "Re-establishing encrypted session"
msgstr ""
#: converse.js:340
msgid ""
"Your browser needs to generate a private key, which will be used in your "
"encrypted chat session. This can take up to 30 seconds during which your "
"browser might freeze and become unresponsive."
msgstr ""
#: converse.js:349
msgid "Private key generated."
msgstr ""
#: converse.js:380
msgid ""
"Authentication request from %1$s\n"
"\n"
"Your buddy is attempting to verify your identity, by asking you the question "
"below.\n"
"\n"
"%2$s"
msgstr ""
#: converse.js:389
msgid "Could not verify this user's identify."
msgstr ""
#: converse.js:417
msgid "%1$s is typing"
#: converse.js:537
msgid "Personal message"
msgstr "Personal message"
#: converse.js:559
msgid "Start encrypted conversation"
msgstr ""
#: converse.js:562
msgid "Refresh encrypted conversation"
msgstr ""
#: converse.js:461 converse.js:1180
#: converse.js:563
msgid "End encrypted conversation"
msgstr ""
#: converse.js:564
msgid "Verify with SMP"
msgstr ""
#: converse.js:567
msgid "Verify with fingerprints"
msgstr ""
#: converse.js:569
msgid "What's this?"
msgstr ""
#: converse.js:641
msgid "me"
msgstr ""
#: converse.js:757 converse.js:1552
msgid "Show this menu"
msgstr "Show this menu"
#: converse.js:462 converse.js:1181
#: converse.js:758 converse.js:1553
msgid "Write in the third person"
msgstr "Write in the third person"
#: converse.js:463 converse.js:1185
#: converse.js:759 converse.js:1557
msgid "Remove messages"
msgstr "Remove messages"
#: converse.js:603
msgid "Personal message"
msgstr "Personal message"
#: converse.js:830
msgid "Your message could not be sent"
msgstr ""
#: converse.js:677
#: converse.js:833
msgid "We received an unencrypted message"
msgstr ""
#: converse.js:836
msgid "We received an unreadable encrypted message"
msgstr ""
#: converse.js:845
msgid "This user has requested an encrypted session."
msgstr ""
#: converse.js:863
msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n"
"\n"
"Fingerprint for you, %2$s: %3$s\n"
"\n"
"Fingerprint for %1$s: %4$s\n"
"\n"
"If you have confirmed that the fingerprints match, click OK, otherwise click "
"Cancel."
msgstr ""
#: converse.js:876
msgid ""
"You will be prompted to provide a security question and then an answer to "
"that question.\n"
"\n"
"Your buddy will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will have been verified."
msgstr ""
#: converse.js:877
msgid "What is your security question?"
msgstr ""
#: converse.js:879
msgid "What is the answer to the security question?"
msgstr ""
#: converse.js:883
msgid "Invalid authentication scheme provided"
msgstr ""
#: converse.js:953
msgid "Your messages are not encrypted anymore"
msgstr ""
#: converse.js:955
msgid ""
"Your messages are now encrypted but your buddy's identity has not been "
"verified."
msgstr ""
#: converse.js:957
msgid "Your buddy's identify has been verified."
msgstr ""
#: converse.js:959
msgid "Your buddy has ended encryption on their end, you should do the same."
msgstr ""
#: converse.js:968
msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr ""
#: converse.js:970
msgid "Your messages are encrypted, but your buddy has not been verified."
msgstr ""
#: converse.js:972
msgid "Your messages are encrypted and your buddy verified."
msgstr ""
#: converse.js:974
msgid ""
"Your buddy has closed their end of the private session, you should do the "
"same"
msgstr ""
#: converse.js:1049
msgid "Contacts"
msgstr "Contacts"
#: converse.js:682
#: converse.js:1054
msgid "Online"
msgstr "Online"
#: converse.js:683
#: converse.js:1055
msgid "Busy"
msgstr "Busy"
#: converse.js:684
#: converse.js:1056
msgid "Away"
msgstr "Away"
#: converse.js:685
#: converse.js:1057
msgid "Offline"
msgstr "Offline"
#: converse.js:692
#: converse.js:1064
msgid "Click to add new chat contacts"
msgstr "Click to add new chat contacts"
#: converse.js:693
#: converse.js:1065
msgid "Add a contact"
msgstr "Add a contact"
#: converse.js:702
#: converse.js:1074
msgid "Contact username"
msgstr "Contact username"
#: converse.js:703
#: converse.js:1075
msgid "Add"
msgstr "Add"
#: converse.js:711
#: converse.js:1083
msgid "Contact name"
msgstr "Contact name"
#: converse.js:712
#: converse.js:1084
msgid "Search"
msgstr "Search"
#: converse.js:752
#: converse.js:1124
msgid "No users found"
msgstr "No users found"
#: converse.js:759
#: converse.js:1131
msgid "Click to add as a chat contact"
msgstr "Click to add as a chat contact"
#: converse.js:819
#: converse.js:1191
msgid "Click to open this room"
msgstr "Click to open this room"
#: converse.js:821
#: converse.js:1193
msgid "Show more information on this room"
msgstr "Show more information on this room"
#: converse.js:827
#: converse.js:1199
msgid "Description:"
msgstr "Description:"
#: converse.js:828
#: converse.js:1200
msgid "Occupants:"
msgstr "Occupants:"
#: converse.js:829
#: converse.js:1201
msgid "Features:"
msgstr "Features:"
#: converse.js:831
#: converse.js:1203
msgid "Requires authentication"
msgstr "Requires authentication"
#: converse.js:834
#: converse.js:1206
msgid "Hidden"
msgstr "Hidden"
#: converse.js:837
#: converse.js:1209
msgid "Requires an invitation"
msgstr "Requires an invitation"
#: converse.js:840
#: converse.js:1212
msgid "Moderated"
msgstr "Moderated"
#: converse.js:843
#: converse.js:1215
msgid "Non-anonymous"
msgstr "Non-anonymous"
#: converse.js:846
#: converse.js:1218
msgid "Open room"
msgstr "Open room"
#: converse.js:849
#: converse.js:1221
msgid "Permanent room"
msgstr "Permanent room"
#: converse.js:852
#: converse.js:1224
msgid "Public"
msgstr "Public"
#: converse.js:855
#: converse.js:1227
msgid "Semi-anonymous"
msgstr "Semi-anonymous"
#: converse.js:858
#: converse.js:1230
msgid "Temporary room"
msgstr "Temporary room"
#: converse.js:861
#: converse.js:1233
msgid "Unmoderated"
msgstr "Unmoderated"
#: converse.js:867
#: converse.js:1239
msgid "Rooms"
msgstr "Rooms"
#: converse.js:871
#: converse.js:1243
msgid "Room name"
msgstr "Room name"
#: converse.js:872
#: converse.js:1244
msgid "Nickname"
msgstr "Nickname"
#: converse.js:873
#: converse.js:1245
msgid "Server"
msgstr "Server"
#: converse.js:874
#: converse.js:1246
msgid "Join"
msgstr "Join"
#: converse.js:875
#: converse.js:1247
msgid "Show rooms"
msgstr "Show rooms"
#. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:910
#: converse.js:1282
msgid "No rooms on %1$s"
msgstr "No rooms on %1$s"
#. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name
#: converse.js:925
#: converse.js:1297
msgid "Rooms on %1$s"
msgstr "Rooms on %1$s"
#: converse.js:1182
#: converse.js:1554
msgid "Set chatroom topic"
msgstr "Set chatroom topic"
#: converse.js:1183
#: converse.js:1555
msgid "Kick user from chatroom"
msgstr "Kick user from chatroom"
#: converse.js:1184
#: converse.js:1556
msgid "Ban user from chatroom"
msgstr "Ban user from chatroom"
#: converse.js:1211
#: converse.js:1583
msgid "Message"
msgstr "Message"
#: converse.js:1325 converse.js:2406
#: converse.js:1697 converse.js:2783
msgid "Save"
msgstr "Save"
#: converse.js:1326
#: converse.js:1698
msgid "Cancel"
msgstr "Cancel"
#: converse.js:1373
#: converse.js:1745
msgid "An error occurred while trying to save the form."
msgstr "An error occurred while trying to save the form."
#: converse.js:1419
#: converse.js:1791
msgid "This chatroom requires a password"
msgstr "This chatroom requires a password"
#: converse.js:1420
#: converse.js:1792
msgid "Password: "
msgstr "Password: "
#: converse.js:1421
#: converse.js:1793
msgid "Submit"
msgstr "Submit"
#: converse.js:1435
#: converse.js:1807
msgid "This room is not anonymous"
msgstr "This room is not anonymous"
#: converse.js:1436
#: converse.js:1808
msgid "This room now shows unavailable members"
msgstr "This room now shows unavailable members"
#: converse.js:1437
#: converse.js:1809
msgid "This room does not show unavailable members"
msgstr "This room does not show unavailable members"
#: converse.js:1438
#: converse.js:1810
msgid "Non-privacy-related room configuration has changed"
msgstr "Non-privacy-related room configuration has changed"
#: converse.js:1439
#: converse.js:1811
msgid "Room logging is now enabled"
msgstr "Room logging is now enabled"
#: converse.js:1440
#: converse.js:1812
msgid "Room logging is now disabled"
msgstr "Room logging is now disabled"
#: converse.js:1441
#: converse.js:1813
msgid "This room is now non-anonymous"
msgstr "This room is now non-anonymous"
#: converse.js:1442
#: converse.js:1814
msgid "This room is now semi-anonymous"
msgstr "This room is now semi-anonymous"
#: converse.js:1443
#: converse.js:1815
msgid "This room is now fully-anonymous"
msgstr "This room is now fully-anonymous"
#: converse.js:1444
#: converse.js:1816
msgid "A new room has been created"
msgstr "A new room has been created"
#: converse.js:1445
#: converse.js:1817
msgid "Your nickname has been changed"
msgstr "Your nickname has been changed"
#: converse.js:1459
#: converse.js:1831
msgid "<strong>%1$s</strong> has been banned"
msgstr "<strong>%1$s</strong> has been banned"
#: converse.js:1460
#: converse.js:1832
msgid "<strong>%1$s</strong> has been kicked out"
msgstr "<strong>%1$s</strong> has been kicked out"
#: converse.js:1461
#: converse.js:1833
msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr ""
"<strong>%1$s</strong> has been removed because of an affiliation change"
#: converse.js:1462
#: converse.js:1834
msgid "<strong>%1$s</strong> has been removed for not being a member"
msgstr "<strong>%1$s</strong> has been removed for not being a member"
#: converse.js:1466 converse.js:1526
#: converse.js:1838 converse.js:1898
msgid "You have been banned from this room"
msgstr "You have been banned from this room"
#: converse.js:1467
#: converse.js:1839
msgid "You have been kicked from this room"
msgstr "You have been kicked from this room"
#: converse.js:1468
#: converse.js:1840
msgid "You have been removed from this room because of an affiliation change"
msgstr "You have been removed from this room because of an affiliation change"
#: converse.js:1469
#: converse.js:1841
msgid ""
"You have been removed from this room because the room has changed to members-"
"only and you're not a member"
......@@ -341,7 +492,7 @@ msgstr ""
"You have been removed from this room because the room has changed to members-"
"only and you're not a member"
#: converse.js:1470
#: converse.js:1842
msgid ""
"You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down."
......@@ -349,152 +500,149 @@ msgstr ""
"You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down."
#: converse.js:1524
#: converse.js:1896
msgid "You are not on the member list of this room"
msgstr "You are not on the member list of this room"
#: converse.js:1530
#: converse.js:1902
msgid "No nickname was specified"
msgstr "No nickname was specified"
#: converse.js:1534
#: converse.js:1906
msgid "You are not allowed to create new rooms"
msgstr "You are not allowed to create new rooms"
#: converse.js:1536
#: converse.js:1908
msgid "Your nickname doesn't conform to this room's policies"
msgstr "Your nickname doesn't conform to this room's policies"
#: converse.js:1538
#: converse.js:1910
msgid "Your nickname is already taken"
msgstr "Your nickname is already taken"
#: converse.js:1540
#: converse.js:1912
msgid "This room does not (yet) exist"
msgstr "This room does not (yet) exist"
#: converse.js:1542
#: converse.js:1914
msgid "This room has reached it's maximum number of occupants"
msgstr "This room has reached it's maximum number of occupants"
#. For translators: the %1$s and %2$s parts will get replaced by the user and topic text respectively
#. Example: Topic set by JC Brand to: Hello World!
#: converse.js:1619
#: converse.js:1993
msgid "Topic set by %1$s to: %2$s"
msgstr "Topic set by %1$s to: %2$s"
#: converse.js:1635
#: converse.js:2009
msgid "This user is a moderator"
msgstr "This user is a moderator"
#: converse.js:1638
#: converse.js:2012
msgid "This user can send messages in this room"
msgstr "This user can send messages in this room"
#: converse.js:1641
#: converse.js:2015
msgid "This user can NOT send messages in this room"
msgstr "This user can NOT send messages in this room"
#: converse.js:1848
#: converse.js:2225
msgid "Click to chat with this contact"
msgstr "Click to chat with this contact"
#: converse.js:1851 converse.js:1855
#: converse.js:2228 converse.js:2232
msgid "Click to remove this contact"
msgstr "Click to remove this contact"
#: converse.js:1886
#: converse.js:2263
msgid "This contact is busy"
msgstr ""
#: converse.js:1887
#: converse.js:2264
msgid "This contact is online"
msgstr ""
#: converse.js:1888
#: converse.js:2265
msgid "This contact is offline"
msgstr ""
#: converse.js:1889
#, fuzzy
#: converse.js:2266
msgid "This contact is unavailable"
msgstr "This room now shows unavailable members"
msgstr ""
#: converse.js:1890
#: converse.js:2267
msgid "This contact is away for an extended period"
msgstr ""
#: converse.js:1891
#: converse.js:2268
msgid "This contact is away"
msgstr ""
#: converse.js:2245
#: converse.js:2622
msgid "Contact requests"
msgstr "Contact requests"
#: converse.js:2246
#: converse.js:2623
msgid "My contacts"
msgstr "My contacts"
#: converse.js:2247
#: converse.js:2624
msgid "Pending contacts"
msgstr "Pending contacts"
#: converse.js:2405
#: converse.js:2782
msgid "Custom status"
msgstr "Custom status"
#: converse.js:2411
#: converse.js:2788
msgid "Click to change your chat status"
msgstr "Click to change your chat status"
#: converse.js:2415
#: converse.js:2792
msgid "Click here to write a custom status message"
msgstr "Click here to write a custom status message"
#: converse.js:2444 converse.js:2452
#: converse.js:2821 converse.js:2829
msgid "online"
msgstr "online"
#: converse.js:2446
#: converse.js:2823
msgid "busy"
msgstr "busy"
#: converse.js:2448
#: converse.js:2825
msgid "away for long"
msgstr "away for long"
#: converse.js:2450
#: converse.js:2827
msgid "away"
msgstr "away"
#. For translators: the %1$s part gets replaced with the status
#. Example, I am online
#: converse.js:2464 converse.js:2501
#: converse.js:2841 converse.js:2878
msgid "I am %1$s"
msgstr "I am %1$s"
#: converse.js:2572
#: converse.js:2949
msgid "Sign in"
msgstr "Sign in"
#: converse.js:2575
#: converse.js:2952
msgid "XMPP/Jabber Username:"
msgstr "XMPP/Jabber Username:"
#: converse.js:2577
#: converse.js:2954
msgid "Password:"
msgstr "Password:"
#: converse.js:2579
#: converse.js:2956
msgid "Log In"
msgstr "Log In"
#: converse.js:2583
#: converse.js:2960
msgid "BOSH Service URL:"
msgstr "BOSH Service URL:"
#: converse.js:2736
#: converse.js:3113
msgid "Online Contacts"
msgstr "Online Contacts"
......
......@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Converse.js 0.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-09-13 16:02+0200\n"
"PO-Revision-Date: 2013-07-22 18:13-0400\n"
"POT-Creation-Date: 2013-09-15 21:55+0200\n"
"PO-Revision-Date: 2013-09-15 21:59+0200\n"
"Last-Translator: Leonardo J. Caballero G. <leonardocaballero@gmail.com>\n"
"Language-Team: ES <LL@li.org>\n"
"Language: es\n"
......@@ -25,325 +25,476 @@ msgstr ""
"X-Is-Fallback-For: es-ar es-bo es-cl es-co es-cr es-do es-ec es-es es-sv es-"
"gt es-hn es-mx es-ni es-pa es-py es-pe es-pr es-us es-uy es-ve\n"
#: converse.js:135
#: converse.js:125
msgid "unencrypted"
msgstr ""
#: converse.js:126
msgid "unverified"
msgstr ""
#: converse.js:127
msgid "verified"
msgstr ""
#: converse.js:128
msgid "finished"
msgstr ""
#: converse.js:161
msgid "Disconnected"
msgstr "Desconectado"
#: converse.js:139
#: converse.js:165
msgid "Error"
msgstr "Error"
#: converse.js:141
#: converse.js:167
msgid "Connecting"
msgstr "Conectando"
#: converse.js:144
#: converse.js:170
msgid "Connection Failed"
msgstr "Conexión fallo"
#: converse.js:146
#: converse.js:172
msgid "Authenticating"
msgstr "Autenticando"
#: converse.js:149
#: converse.js:175
msgid "Authentication Failed"
msgstr "Autenticación fallo"
#: converse.js:151
#: converse.js:177
msgid "Disconnecting"
msgstr "Desconectando"
#: converse.js:373
msgid "me"
#: converse.js:332
msgid "Re-establishing encrypted session"
msgstr ""
#: converse.js:417
msgid "%1$s is typing"
#: converse.js:340
msgid ""
"Your browser needs to generate a private key, which will be used in your "
"encrypted chat session. This can take up to 30 seconds during which your "
"browser might freeze and become unresponsive."
msgstr ""
#: converse.js:461 converse.js:1180
#: converse.js:349
msgid "Private key generated."
msgstr ""
#: converse.js:380
msgid ""
"Authentication request from %1$s\n"
"\n"
"Your buddy is attempting to verify your identity, by asking you the question "
"below.\n"
"\n"
"%2$s"
msgstr ""
#: converse.js:389
msgid "Could not verify this user's identify."
msgstr ""
#: converse.js:537
msgid "Personal message"
msgstr "Mensaje personal"
#: converse.js:559
msgid "Start encrypted conversation"
msgstr ""
#: converse.js:562
msgid "Refresh encrypted conversation"
msgstr ""
#: converse.js:563
msgid "End encrypted conversation"
msgstr ""
#: converse.js:564
msgid "Verify with SMP"
msgstr ""
#: converse.js:567
msgid "Verify with fingerprints"
msgstr ""
#: converse.js:569
msgid "What's this?"
msgstr ""
#: converse.js:641
msgid "me"
msgstr ""
#: converse.js:757 converse.js:1552
msgid "Show this menu"
msgstr "Mostrar este menú"
#: converse.js:462 converse.js:1181
#: converse.js:758 converse.js:1553
msgid "Write in the third person"
msgstr "Escribir en tercera persona"
#: converse.js:463 converse.js:1185
#: converse.js:759 converse.js:1557
msgid "Remove messages"
msgstr "Eliminar mensajes"
#: converse.js:603
msgid "Personal message"
msgstr "Mensaje personal"
#: converse.js:830
msgid "Your message could not be sent"
msgstr ""
#: converse.js:833
msgid "We received an unencrypted message"
msgstr ""
#: converse.js:836
msgid "We received an unreadable encrypted message"
msgstr ""
#: converse.js:845
msgid "This user has requested an encrypted session."
msgstr ""
#: converse.js:863
msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n"
"\n"
"Fingerprint for you, %2$s: %3$s\n"
"\n"
"Fingerprint for %1$s: %4$s\n"
"\n"
"If you have confirmed that the fingerprints match, click OK, otherwise click "
"Cancel."
msgstr ""
#: converse.js:876
msgid ""
"You will be prompted to provide a security question and then an answer to "
"that question.\n"
"\n"
"Your buddy will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will have been verified."
msgstr ""
#: converse.js:877
msgid "What is your security question?"
msgstr ""
#: converse.js:879
msgid "What is the answer to the security question?"
msgstr ""
#: converse.js:883
msgid "Invalid authentication scheme provided"
msgstr ""
#: converse.js:953
msgid "Your messages are not encrypted anymore"
msgstr ""
#: converse.js:955
msgid ""
"Your messages are now encrypted but your buddy's identity has not been "
"verified."
msgstr ""
#: converse.js:957
msgid "Your buddy's identify has been verified."
msgstr ""
#: converse.js:959
msgid "Your buddy has ended encryption on their end, you should do the same."
msgstr ""
#: converse.js:968
msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr ""
#: converse.js:970
msgid "Your messages are encrypted, but your buddy has not been verified."
msgstr ""
#: converse.js:972
msgid "Your messages are encrypted and your buddy verified."
msgstr ""
#: converse.js:974
msgid ""
"Your buddy has closed their end of the private session, you should do the "
"same"
msgstr ""
#: converse.js:677
#: converse.js:1049
msgid "Contacts"
msgstr "Contactos"
#: converse.js:682
#: converse.js:1054
msgid "Online"
msgstr "En linea"
#: converse.js:683
#: converse.js:1055
msgid "Busy"
msgstr "Ocupado"
#: converse.js:684
#: converse.js:1056
msgid "Away"
msgstr "Ausente"
#: converse.js:685
#: converse.js:1057
msgid "Offline"
msgstr "Desconectado"
#: converse.js:692
#: converse.js:1064
msgid "Click to add new chat contacts"
msgstr "Haga clic para agregar nuevos contactos al chat"
#: converse.js:693
#: converse.js:1065
msgid "Add a contact"
msgstr "Agregar un contacto"
#: converse.js:702
#: converse.js:1074
msgid "Contact username"
msgstr "Nombre de usuario de contacto"
#: converse.js:703
#: converse.js:1075
msgid "Add"
msgstr "Agregar"
#: converse.js:711
#: converse.js:1083
msgid "Contact name"
msgstr "Nombre de contacto"
#: converse.js:712
#: converse.js:1084
msgid "Search"
msgstr "Búsqueda"
#: converse.js:752
#: converse.js:1124
msgid "No users found"
msgstr "Sin usuarios encontrados"
#: converse.js:759
#: converse.js:1131
msgid "Click to add as a chat contact"
msgstr "Haga clic para agregar como un contacto de chat"
#: converse.js:819
#: converse.js:1191
msgid "Click to open this room"
msgstr "Haga clic para abrir esta sala"
#: converse.js:821
#: converse.js:1193
msgid "Show more information on this room"
msgstr "Mostrar mas información en esta sala"
#: converse.js:827
#: converse.js:1199
msgid "Description:"
msgstr "Descripción"
#: converse.js:828
#: converse.js:1200
msgid "Occupants:"
msgstr "Ocupantes:"
#: converse.js:829
#: converse.js:1201
msgid "Features:"
msgstr "Características:"
#: converse.js:831
#: converse.js:1203
msgid "Requires authentication"
msgstr "Autenticación requerida"
#: converse.js:834
#: converse.js:1206
msgid "Hidden"
msgstr "Oculto"
#: converse.js:837
#: converse.js:1209
msgid "Requires an invitation"
msgstr "Requiere una invitación"
#: converse.js:840
#: converse.js:1212
msgid "Moderated"
msgstr "Moderado"
#: converse.js:843
#: converse.js:1215
msgid "Non-anonymous"
msgstr "No usuario anónimo"
#: converse.js:846
#: converse.js:1218
msgid "Open room"
msgstr "Abrir sala"
#: converse.js:849
#: converse.js:1221
msgid "Permanent room"
msgstr "Sala permanente"
#: converse.js:852
#: converse.js:1224
msgid "Public"
msgstr "Publico"
#: converse.js:855
#: converse.js:1227
msgid "Semi-anonymous"
msgstr "Semi anónimo"
#: converse.js:858
#: converse.js:1230
msgid "Temporary room"
msgstr "Sala temporal"
#: converse.js:861
#: converse.js:1233
msgid "Unmoderated"
msgstr "Sin moderar"
#: converse.js:867
#: converse.js:1239
msgid "Rooms"
msgstr "Salas"
#: converse.js:871
#: converse.js:1243
msgid "Room name"
msgstr "Nombre de sala"
#: converse.js:872
#: converse.js:1244
msgid "Nickname"
msgstr "Apodo"
#: converse.js:873
#: converse.js:1245
msgid "Server"
msgstr "Servidor"
#: converse.js:874
#: converse.js:1246
msgid "Join"
msgstr "Unirse"
#: converse.js:875
#: converse.js:1247
msgid "Show rooms"
msgstr "Mostrar salas"
#. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:910
#: converse.js:1282
msgid "No rooms on %1$s"
msgstr "Sin salas en %1$s"
#. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name
#: converse.js:925
#: converse.js:1297
msgid "Rooms on %1$s"
msgstr "Salas en %1$s"
#: converse.js:1182
#: converse.js:1554
msgid "Set chatroom topic"
msgstr "Defina tema de sala de chat"
#: converse.js:1183
#: converse.js:1555
msgid "Kick user from chatroom"
msgstr "Expulsar usuario de sala de chat."
#: converse.js:1184
#: converse.js:1556
msgid "Ban user from chatroom"
msgstr "Prohibir usuario de sala de chat."
#: converse.js:1211
#: converse.js:1583
msgid "Message"
msgstr "Mensaje"
#: converse.js:1325 converse.js:2406
#: converse.js:1697 converse.js:2783
msgid "Save"
msgstr "Guardar"
#: converse.js:1326
#: converse.js:1698
msgid "Cancel"
msgstr "Cancelar"
#: converse.js:1373
#: converse.js:1745
msgid "An error occurred while trying to save the form."
msgstr "Un error ocurrido mientras trataba de guardar el formulario."
#: converse.js:1419
#: converse.js:1791
msgid "This chatroom requires a password"
msgstr "Esta sala de chat requiere una contraseña."
#: converse.js:1420
#: converse.js:1792
msgid "Password: "
msgstr "Contraseña: "
#: converse.js:1421
#: converse.js:1793
msgid "Submit"
msgstr "Enviar"
#: converse.js:1435
#: converse.js:1807
msgid "This room is not anonymous"
msgstr "Esta sala no es para usuarios anónimos"
#: converse.js:1436
#: converse.js:1808
msgid "This room now shows unavailable members"
msgstr "Esta sala ahora muestra los miembros no disponibles"
#: converse.js:1437
#: converse.js:1809
msgid "This room does not show unavailable members"
msgstr "Esta sala no muestra los miembros no disponibles"
#: converse.js:1438
#: converse.js:1810
msgid "Non-privacy-related room configuration has changed"
msgstr ""
"Configuración de la sala para no relacionada con la privacidad ha sido "
"cambiada"
#: converse.js:1439
#: converse.js:1811
msgid "Room logging is now enabled"
msgstr "El registro de la sala ahora está habilitada"
#: converse.js:1440
#: converse.js:1812
msgid "Room logging is now disabled"
msgstr "El registro de la sala ahora está deshabilitada"
#: converse.js:1441
#: converse.js:1813
msgid "This room is now non-anonymous"
msgstr "Esta sala ahora es para los usuarios no anónimos"
#: converse.js:1442
#: converse.js:1814
msgid "This room is now semi-anonymous"
msgstr "Esta sala ahora es para los usuarios semi-anónimos"
#: converse.js:1443
#: converse.js:1815
msgid "This room is now fully-anonymous"
msgstr "Esta sala ahora es para los usuarios completamente-anónimos"
#: converse.js:1444
#: converse.js:1816
msgid "A new room has been created"
msgstr "Una nueva sala ha sido creada"
#: converse.js:1445
#: converse.js:1817
msgid "Your nickname has been changed"
msgstr "Su apodo ha sido cambiado"
#: converse.js:1459
#: converse.js:1831
msgid "<strong>%1$s</strong> has been banned"
msgstr "<strong>%1$s</strong> ha sido prohibido"
#: converse.js:1460
#: converse.js:1832
msgid "<strong>%1$s</strong> has been kicked out"
msgstr "<strong>%1$s</strong> ha sido expulsado"
#: converse.js:1461
#: converse.js:1833
msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr ""
"<strong>%1$s</strong> ha sido eliminado debido a un cambio de afiliación"
#: converse.js:1462
#: converse.js:1834
msgid "<strong>%1$s</strong> has been removed for not being a member"
msgstr "<strong>%1$s</strong> ha sido eliminado debido a que no es miembro"
#: converse.js:1466 converse.js:1526
#: converse.js:1838 converse.js:1898
msgid "You have been banned from this room"
msgstr "Usted ha sido prohibido de esta sala"
#: converse.js:1467
#: converse.js:1839
msgid "You have been kicked from this room"
msgstr "Usted ha sido expulsado de esta sala"
#: converse.js:1468
#: converse.js:1840
msgid "You have been removed from this room because of an affiliation change"
msgstr "Usted ha sido eliminado de esta sala debido a un cambio de afiliación"
#: converse.js:1469
#: converse.js:1841
msgid ""
"You have been removed from this room because the room has changed to members-"
"only and you're not a member"
......@@ -351,7 +502,7 @@ msgstr ""
"Usted ha sido eliminado de esta sala debido a que la sala cambio su "
"configuración a solo-miembros y usted no es un miembro"
#: converse.js:1470
#: converse.js:1842
msgid ""
"You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down."
......@@ -359,152 +510,150 @@ msgstr ""
"Usted ha sido eliminado de esta sala debido al servicio MUC (Multi-user "
"chat) está apagado."
#: converse.js:1524
#: converse.js:1896
msgid "You are not on the member list of this room"
msgstr "Usted no está en la lista de miembros de esta sala"
#: converse.js:1530
#: converse.js:1902
msgid "No nickname was specified"
msgstr "Sin apodo especificado"
#: converse.js:1534
#: converse.js:1906
msgid "You are not allowed to create new rooms"
msgstr "A usted no se le permite crear nuevas salas"
#: converse.js:1536
#: converse.js:1908
msgid "Your nickname doesn't conform to this room's policies"
msgstr "Su apodo no se ajusta a la política de esta sala"
#: converse.js:1538
#: converse.js:1910
msgid "Your nickname is already taken"
msgstr "Su apodo ya ha sido tomando por otro usuario"
#: converse.js:1540
#: converse.js:1912
msgid "This room does not (yet) exist"
msgstr "Esta sala (aún) no existe"
#: converse.js:1542
#: converse.js:1914
msgid "This room has reached it's maximum number of occupants"
msgstr "Esta sala ha alcanzado su número máximo de ocupantes"
#. For translators: the %1$s and %2$s parts will get replaced by the user and topic text respectively
#. Example: Topic set by JC Brand to: Hello World!
#: converse.js:1619
#: converse.js:1993
msgid "Topic set by %1$s to: %2$s"
msgstr "Tema fijado por %1$s a: %2$s"
#: converse.js:1635
#: converse.js:2009
msgid "This user is a moderator"
msgstr "Este usuario es un moderador"
#: converse.js:1638
#: converse.js:2012
msgid "This user can send messages in this room"
msgstr "Este usuario puede enviar mensajes en esta sala"
#: converse.js:1641
#: converse.js:2015
msgid "This user can NOT send messages in this room"
msgstr "Este usuario NO puede enviar mensajes en esta"
#: converse.js:1848
#: converse.js:2225
msgid "Click to chat with this contact"
msgstr "Haga clic para conversar con este contacto"
#: converse.js:1851 converse.js:1855
#: converse.js:2228 converse.js:2232
msgid "Click to remove this contact"
msgstr "Haga clic para eliminar este contacto"
#: converse.js:1886
#: converse.js:2263
msgid "This contact is busy"
msgstr ""
#: converse.js:1887
#: converse.js:2264
msgid "This contact is online"
msgstr ""
#: converse.js:1888
#: converse.js:2265
msgid "This contact is offline"
msgstr ""
#: converse.js:1889
#: converse.js:2266
#, fuzzy
msgid "This contact is unavailable"
msgstr "Esta sala ahora muestra los miembros no disponibles"
#: converse.js:1890
#: converse.js:2267
msgid "This contact is away for an extended period"
msgstr ""
#: converse.js:1891
#: converse.js:2268
msgid "This contact is away"
msgstr ""
#: converse.js:2245
#: converse.js:2622
msgid "Contact requests"
msgstr "Solicitudes de contacto"
#: converse.js:2246
#: converse.js:2623
msgid "My contacts"
msgstr "Mi contactos"
#: converse.js:2247
#: converse.js:2624
msgid "Pending contacts"
msgstr "Contactos pendientes"
#: converse.js:2405
#: converse.js:2782
msgid "Custom status"
msgstr "Personalice estatus"
#: converse.js:2411
#: converse.js:2788
msgid "Click to change your chat status"
msgstr "Haga clic para cambiar su estatus de chat"
#: converse.js:2415
#: converse.js:2792
msgid "Click here to write a custom status message"
msgstr "Haga clic para escribir un mensaje de estatus personalizado"
#: converse.js:2444 converse.js:2452
#: converse.js:2821 converse.js:2829
msgid "online"
msgstr "en linea"
#: converse.js:2446
#: converse.js:2823
msgid "busy"
msgstr "ocupado"
#: converse.js:2448
#: converse.js:2825
msgid "away for long"
msgstr "lejos por mucho tiempo"
#: converse.js:2450
#: converse.js:2827
msgid "away"
msgstr "ausente"
#. For translators: the %1$s part gets replaced with the status
#. Example, I am online
#: converse.js:2464 converse.js:2501
#: converse.js:2841 converse.js:2878
msgid "I am %1$s"
msgstr "Yo soy %1$s"
#: converse.js:2572
#: converse.js:2949
msgid "Sign in"
msgstr "Registro"
#: converse.js:2575
#: converse.js:2952
msgid "XMPP/Jabber Username:"
msgstr "Nombre de usuario XMPP/Jabber"
#: converse.js:2577
#: converse.js:2954
msgid "Password:"
msgstr "Contraseña:"
#: converse.js:2579
#: converse.js:2956
msgid "Log In"
msgstr "Iniciar sesión"
#: converse.js:2583
#: converse.js:2960
msgid "BOSH Service URL:"
msgstr "URL del servicio BOSH:"
#: converse.js:2736
#: converse.js:3113
msgid "Online Contacts"
msgstr "Contactos en linea"
......
......@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Converse.js 0.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-09-13 16:02+0200\n"
"PO-Revision-Date: 2013-09-12 11:20+0200\n"
"POT-Creation-Date: 2013-09-15 21:55+0200\n"
"PO-Revision-Date: 2013-09-15 21:58+0200\n"
"Language-Team: FR <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
......@@ -20,323 +20,474 @@ msgstr ""
"Domain: converse\n"
"domain: converse\n"
#: converse.js:135
#: converse.js:125
msgid "unencrypted"
msgstr ""
#: converse.js:126
msgid "unverified"
msgstr ""
#: converse.js:127
msgid "verified"
msgstr ""
#: converse.js:128
msgid "finished"
msgstr ""
#: converse.js:161
msgid "Disconnected"
msgstr "Déconnecté"
#: converse.js:139
#: converse.js:165
msgid "Error"
msgstr "Erreur"
#: converse.js:141
#: converse.js:167
msgid "Connecting"
msgstr "Connection"
#: converse.js:144
#: converse.js:170
msgid "Connection Failed"
msgstr "La connection a échoué"
#: converse.js:146
#: converse.js:172
msgid "Authenticating"
msgstr "Authentification"
#: converse.js:149
#: converse.js:175
msgid "Authentication Failed"
msgstr "L'authentification a échoué"
#: converse.js:151
#: converse.js:177
msgid "Disconnecting"
msgstr "Déconnection"
#: converse.js:373
msgid "me"
#: converse.js:332
msgid "Re-establishing encrypted session"
msgstr ""
#: converse.js:417
msgid "%1$s is typing"
#: converse.js:340
msgid ""
"Your browser needs to generate a private key, which will be used in your "
"encrypted chat session. This can take up to 30 seconds during which your "
"browser might freeze and become unresponsive."
msgstr ""
#: converse.js:461 converse.js:1180
#: converse.js:349
msgid "Private key generated."
msgstr ""
#: converse.js:380
msgid ""
"Authentication request from %1$s\n"
"\n"
"Your buddy is attempting to verify your identity, by asking you the question "
"below.\n"
"\n"
"%2$s"
msgstr ""
#: converse.js:389
msgid "Could not verify this user's identify."
msgstr ""
#: converse.js:537
msgid "Personal message"
msgstr "Message personnel"
#: converse.js:559
msgid "Start encrypted conversation"
msgstr ""
#: converse.js:562
msgid "Refresh encrypted conversation"
msgstr ""
#: converse.js:563
msgid "End encrypted conversation"
msgstr ""
#: converse.js:564
msgid "Verify with SMP"
msgstr ""
#: converse.js:567
msgid "Verify with fingerprints"
msgstr ""
#: converse.js:569
msgid "What's this?"
msgstr ""
#: converse.js:641
msgid "me"
msgstr ""
#: converse.js:757 converse.js:1552
msgid "Show this menu"
msgstr "Afficher ce menu"
#: converse.js:462 converse.js:1181
#: converse.js:758 converse.js:1553
msgid "Write in the third person"
msgstr "Écrire à la troisième personne"
#: converse.js:463 converse.js:1185
#: converse.js:759 converse.js:1557
msgid "Remove messages"
msgstr "Effacer les messages"
#: converse.js:603
msgid "Personal message"
msgstr "Message personnel"
#: converse.js:830
msgid "Your message could not be sent"
msgstr ""
#: converse.js:833
msgid "We received an unencrypted message"
msgstr ""
#: converse.js:836
msgid "We received an unreadable encrypted message"
msgstr ""
#: converse.js:845
msgid "This user has requested an encrypted session."
msgstr ""
#: converse.js:863
msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n"
"\n"
"Fingerprint for you, %2$s: %3$s\n"
"\n"
"Fingerprint for %1$s: %4$s\n"
"\n"
"If you have confirmed that the fingerprints match, click OK, otherwise click "
"Cancel."
msgstr ""
#: converse.js:876
msgid ""
"You will be prompted to provide a security question and then an answer to "
"that question.\n"
"\n"
"Your buddy will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will have been verified."
msgstr ""
#: converse.js:877
msgid "What is your security question?"
msgstr ""
#: converse.js:879
msgid "What is the answer to the security question?"
msgstr ""
#: converse.js:883
msgid "Invalid authentication scheme provided"
msgstr ""
#: converse.js:953
msgid "Your messages are not encrypted anymore"
msgstr ""
#: converse.js:955
msgid ""
"Your messages are now encrypted but your buddy's identity has not been "
"verified."
msgstr ""
#: converse.js:957
msgid "Your buddy's identify has been verified."
msgstr ""
#: converse.js:959
msgid "Your buddy has ended encryption on their end, you should do the same."
msgstr ""
#: converse.js:968
msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr ""
#: converse.js:970
msgid "Your messages are encrypted, but your buddy has not been verified."
msgstr ""
#: converse.js:972
msgid "Your messages are encrypted and your buddy verified."
msgstr ""
#: converse.js:974
msgid ""
"Your buddy has closed their end of the private session, you should do the "
"same"
msgstr ""
#: converse.js:677
#: converse.js:1049
msgid "Contacts"
msgstr "Contacts"
#: converse.js:682
#: converse.js:1054
msgid "Online"
msgstr "En ligne"
#: converse.js:683
#: converse.js:1055
msgid "Busy"
msgstr "Occupé"
#: converse.js:684
#: converse.js:1056
msgid "Away"
msgstr "Absent"
#: converse.js:685
#: converse.js:1057
msgid "Offline"
msgstr "Déconnecté"
#: converse.js:692
#: converse.js:1064
msgid "Click to add new chat contacts"
msgstr "Cliquez pour ajouter de nouveaux contacts"
#: converse.js:693
#: converse.js:1065
msgid "Add a contact"
msgstr "Ajouter un contact"
#: converse.js:702
#: converse.js:1074
msgid "Contact username"
msgstr "Nom du contact"
#: converse.js:703
#: converse.js:1075
msgid "Add"
msgstr "Ajouter"
#: converse.js:711
#: converse.js:1083
msgid "Contact name"
msgstr "Nom du contact"
#: converse.js:712
#: converse.js:1084
msgid "Search"
msgstr "Rechercher"
#: converse.js:752
#: converse.js:1124
msgid "No users found"
msgstr "Aucun utilisateur trouvé"
#: converse.js:759
#: converse.js:1131
msgid "Click to add as a chat contact"
msgstr "Cliquer pour ajouter aux contacts de chat"
#: converse.js:819
#: converse.js:1191
msgid "Click to open this room"
msgstr "Cliquer pour ouvrir ce salon"
#: converse.js:821
#: converse.js:1193
msgid "Show more information on this room"
msgstr "Afficher davantage d'informations sur ce salon"
#: converse.js:827
#: converse.js:1199
msgid "Description:"
msgstr "Description :"
#: converse.js:828
#: converse.js:1200
msgid "Occupants:"
msgstr "Participants :"
#: converse.js:829
#: converse.js:1201
msgid "Features:"
msgstr "Caractéristiques :"
#: converse.js:831
#: converse.js:1203
msgid "Requires authentication"
msgstr "Nécessite une authentification"
#: converse.js:834
#: converse.js:1206
msgid "Hidden"
msgstr "Masqué"
#: converse.js:837
#: converse.js:1209
msgid "Requires an invitation"
msgstr "Nécessite une invitation"
#: converse.js:840
#: converse.js:1212
msgid "Moderated"
msgstr "Modéré"
#: converse.js:843
#: converse.js:1215
msgid "Non-anonymous"
msgstr "Non-anonyme"
#: converse.js:846
#: converse.js:1218
msgid "Open room"
msgstr "Ouvrir un salon"
#: converse.js:849
#: converse.js:1221
msgid "Permanent room"
msgstr "Salon permanent"
#: converse.js:852
#: converse.js:1224
msgid "Public"
msgstr "Public"
#: converse.js:855
#: converse.js:1227
msgid "Semi-anonymous"
msgstr "Semi-anonyme"
#: converse.js:858
#: converse.js:1230
msgid "Temporary room"
msgstr "Salon temporaire"
#: converse.js:861
#: converse.js:1233
msgid "Unmoderated"
msgstr "Non modéré"
#: converse.js:867
#: converse.js:1239
msgid "Rooms"
msgstr "Salons"
#: converse.js:871
#: converse.js:1243
msgid "Room name"
msgstr "Numéro de salon"
#: converse.js:872
#: converse.js:1244
msgid "Nickname"
msgstr "Alias"
#: converse.js:873
#: converse.js:1245
msgid "Server"
msgstr "Serveur"
#: converse.js:874
#: converse.js:1246
msgid "Join"
msgstr "Rejoindre"
#: converse.js:875
#: converse.js:1247
msgid "Show rooms"
msgstr "Afficher les salons"
#. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:910
#: converse.js:1282
msgid "No rooms on %1$s"
msgstr "Aucun salon dans %1$s"
#. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name
#: converse.js:925
#: converse.js:1297
msgid "Rooms on %1$s"
msgstr "Salons dans %1$s"
#: converse.js:1182
#: converse.js:1554
msgid "Set chatroom topic"
msgstr "Indiquer le sujet du salon"
#: converse.js:1183
#: converse.js:1555
msgid "Kick user from chatroom"
msgstr "Expulser l'utilisateur du salon."
#: converse.js:1184
#: converse.js:1556
msgid "Ban user from chatroom"
msgstr "Bannir l'utilisateur du salon."
#: converse.js:1211
#: converse.js:1583
msgid "Message"
msgstr "Message"
#: converse.js:1325 converse.js:2406
#: converse.js:1697 converse.js:2783
msgid "Save"
msgstr "Enregistrer"
#: converse.js:1326
#: converse.js:1698
msgid "Cancel"
msgstr "Annuler"
#: converse.js:1373
#: converse.js:1745
msgid "An error occurred while trying to save the form."
msgstr "Une erreur est survenue lors de l'enregistrement du formulaire."
#: converse.js:1419
#: converse.js:1791
msgid "This chatroom requires a password"
msgstr "Ce salon nécessite un mot de passe."
#: converse.js:1420
#: converse.js:1792
msgid "Password: "
msgstr "Mot de passe : "
#: converse.js:1421
#: converse.js:1793
msgid "Submit"
msgstr "Soumettre"
#: converse.js:1435
#: converse.js:1807
msgid "This room is not anonymous"
msgstr "Ce salon n'est pas anonyme"
#: converse.js:1436
#: converse.js:1808
msgid "This room now shows unavailable members"
msgstr "Ce salon affiche maintenant des membres indisponibles"
#: converse.js:1437
#: converse.js:1809
msgid "This room does not show unavailable members"
msgstr "Ce salon n'affiche pas les membres indisponibles"
#: converse.js:1438
#: converse.js:1810
msgid "Non-privacy-related room configuration has changed"
msgstr "Les paramètres du salon non liés à la confidentialité ont été modifiés"
#: converse.js:1439
#: converse.js:1811
msgid "Room logging is now enabled"
msgstr "Le logging du salon est activé"
#: converse.js:1440
#: converse.js:1812
msgid "Room logging is now disabled"
msgstr "Le logging du salon est désactivé"
#: converse.js:1441
#: converse.js:1813
msgid "This room is now non-anonymous"
msgstr "Ce salon est maintenant non-anonyme"
#: converse.js:1442
#: converse.js:1814
msgid "This room is now semi-anonymous"
msgstr "Ce salon est maintenant semi-anonyme"
#: converse.js:1443
#: converse.js:1815
msgid "This room is now fully-anonymous"
msgstr "Ce salon est maintenant entièrement anonyme"
#: converse.js:1444
#: converse.js:1816
msgid "A new room has been created"
msgstr "Un nouveau salon a été créé"
#: converse.js:1445
#: converse.js:1817
msgid "Your nickname has been changed"
msgstr "Votre alias a été modifié"
#: converse.js:1459
#: converse.js:1831
msgid "<strong>%1$s</strong> has been banned"
msgstr "<strong>%1$s</strong> a été banni"
#: converse.js:1460
#: converse.js:1832
msgid "<strong>%1$s</strong> has been kicked out"
msgstr "<strong>%1$s</strong> a été expulsé"
#: converse.js:1461
#: converse.js:1833
msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr ""
"<strong>%1$s</strong> a été supprimé à cause d'un changement d'affiliation"
#: converse.js:1462
#: converse.js:1834
msgid "<strong>%1$s</strong> has been removed for not being a member"
msgstr "<strong>%1$s</strong> a été supprimé car il n'est pas membre"
#: converse.js:1466 converse.js:1526
#: converse.js:1838 converse.js:1898
msgid "You have been banned from this room"
msgstr "Vous avez été banni de ce salon"
#: converse.js:1467
#: converse.js:1839
msgid "You have been kicked from this room"
msgstr "Vous avez été expulsé de ce salon"
#: converse.js:1468
#: converse.js:1840
msgid "You have been removed from this room because of an affiliation change"
msgstr "Vous avez été retiré de ce salon du fait d'un changement d'affiliation"
#: converse.js:1469
#: converse.js:1841
msgid ""
"You have been removed from this room because the room has changed to members-"
"only and you're not a member"
......@@ -344,7 +495,7 @@ msgstr ""
"Vous avez été retiré de ce salon parce que ce salon est devenu réservé aux "
"membres et vous n'êtes pas membre"
#: converse.js:1470
#: converse.js:1842
msgid ""
"You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down."
......@@ -352,152 +503,150 @@ msgstr ""
"Vous avez été retiré de ce salon parce que le service de chat multi-"
"utilisateur a été désactivé."
#: converse.js:1524
#: converse.js:1896
msgid "You are not on the member list of this room"
msgstr "Vous n'êtes pas dans la liste des membres de ce salon"
#: converse.js:1530
#: converse.js:1902
msgid "No nickname was specified"
msgstr "Aucun alias n'a été indiqué"
#: converse.js:1534
#: converse.js:1906
msgid "You are not allowed to create new rooms"
msgstr "Vous n'êtes pas autorisé à créer des salons"
#: converse.js:1536
#: converse.js:1908
msgid "Your nickname doesn't conform to this room's policies"
msgstr "Votre alias n'est pas conforme à la politique de ce salon"
#: converse.js:1538
#: converse.js:1910
msgid "Your nickname is already taken"
msgstr "Votre alias est déjà utilisé"
#: converse.js:1540
#: converse.js:1912
msgid "This room does not (yet) exist"
msgstr "Ce salon n'existe pas encore"
#: converse.js:1542
#: converse.js:1914
msgid "This room has reached it's maximum number of occupants"
msgstr "Ce salon a atteint la limite maximale d'occupants"
#. For translators: the %1$s and %2$s parts will get replaced by the user and topic text respectively
#. Example: Topic set by JC Brand to: Hello World!
#: converse.js:1619
#: converse.js:1993
msgid "Topic set by %1$s to: %2$s"
msgstr "Le sujet '%1$s' a été défini par %2$s"
#: converse.js:1635
#: converse.js:2009
msgid "This user is a moderator"
msgstr "Cet utilisateur est modérateur"
#: converse.js:1638
#: converse.js:2012
msgid "This user can send messages in this room"
msgstr "Cet utilisateur peut envoyer des messages dans ce salon"
#: converse.js:1641
#: converse.js:2015
msgid "This user can NOT send messages in this room"
msgstr "Cet utilisateur ne peut PAS envoyer de messages dans ce salon"
#: converse.js:1848
#: converse.js:2225
msgid "Click to chat with this contact"
msgstr "Cliquez pour discuter avec ce contact"
#: converse.js:1851 converse.js:1855
#: converse.js:2228 converse.js:2232
msgid "Click to remove this contact"
msgstr "Cliquez pour supprimer ce contact"
#: converse.js:1886
#: converse.js:2263
msgid "This contact is busy"
msgstr ""
#: converse.js:1887
#: converse.js:2264
msgid "This contact is online"
msgstr ""
#: converse.js:1888
#: converse.js:2265
msgid "This contact is offline"
msgstr ""
#: converse.js:1889
#: converse.js:2266
#, fuzzy
msgid "This contact is unavailable"
msgstr "Ce salon affiche maintenant des membres indisponibles"
#: converse.js:1890
#: converse.js:2267
msgid "This contact is away for an extended period"
msgstr ""
#: converse.js:1891
#: converse.js:2268
msgid "This contact is away"
msgstr ""
#: converse.js:2245
#: converse.js:2622
msgid "Contact requests"
msgstr "Demandes de contacts"
#: converse.js:2246
#: converse.js:2623
msgid "My contacts"
msgstr "Mes contacts"
#: converse.js:2247
#: converse.js:2624
msgid "Pending contacts"
msgstr "Contacts en attente"
#: converse.js:2405
#: converse.js:2782
msgid "Custom status"
msgstr "Statut personnel"
#: converse.js:2411
#: converse.js:2788
msgid "Click to change your chat status"
msgstr "Cliquez pour changer votre statut"
#: converse.js:2415
#: converse.js:2792
msgid "Click here to write a custom status message"
msgstr "Cliquez ici pour indiquer votre statut personnel"
#: converse.js:2444 converse.js:2452
#: converse.js:2821 converse.js:2829
msgid "online"
msgstr "en ligne"
#: converse.js:2446
#: converse.js:2823
msgid "busy"
msgstr "occupé"
#: converse.js:2448
#: converse.js:2825
msgid "away for long"
msgstr "absent pour une longue durée"
#: converse.js:2450
#: converse.js:2827
msgid "away"
msgstr "absent"
#. For translators: the %1$s part gets replaced with the status
#. Example, I am online
#: converse.js:2464 converse.js:2501
#: converse.js:2841 converse.js:2878
msgid "I am %1$s"
msgstr "Je suis %1$s"
#: converse.js:2572
#: converse.js:2949
msgid "Sign in"
msgstr "S'inscrire"
#: converse.js:2575
#: converse.js:2952
msgid "XMPP/Jabber Username:"
msgstr "Nom d'utilisateur XMPP/Jabber"
#: converse.js:2577
#: converse.js:2954
msgid "Password:"
msgstr "Mot de passe :"
#: converse.js:2579
#: converse.js:2956
msgid "Log In"
msgstr "Se connecter"
#: converse.js:2583
#: converse.js:2960
msgid "BOSH Service URL:"
msgstr "URL du service BOSH:"
#: converse.js:2736
#: converse.js:3113
msgid "Online Contacts"
msgstr "Contacts en ligne"
......
......@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Converse.js 0.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-09-13 16:02+0200\n"
"PO-Revision-Date: 2013-09-12 11:09+0200\n"
"POT-Creation-Date: 2013-09-15 21:55+0200\n"
"PO-Revision-Date: 2013-09-15 22:00+0200\n"
"Last-Translator: Fabio Bas <ctrlaltca@gmail.com>\n"
"Language-Team: Italian\n"
"Language: it\n"
......@@ -20,332 +20,483 @@ msgstr ""
"lang: it\n"
"plural_forms: nplurals=2; plural=(n != 1);\n"
#: converse.js:135
#: converse.js:125
msgid "unencrypted"
msgstr ""
#: converse.js:126
msgid "unverified"
msgstr ""
#: converse.js:127
msgid "verified"
msgstr ""
#: converse.js:128
msgid "finished"
msgstr ""
#: converse.js:161
msgid "Disconnected"
msgstr "Disconnesso"
#: converse.js:139
#: converse.js:165
msgid "Error"
msgstr "Errore"
#: converse.js:141
#: converse.js:167
msgid "Connecting"
msgstr "Connessione in corso"
#: converse.js:144
#: converse.js:170
msgid "Connection Failed"
msgstr "Connessione fallita"
#: converse.js:146
#: converse.js:172
msgid "Authenticating"
msgstr "Autenticazione in corso"
#: converse.js:149
#: converse.js:175
msgid "Authentication Failed"
msgstr "Autenticazione fallita"
#: converse.js:151
#: converse.js:177
msgid "Disconnecting"
msgstr "Disconnessione in corso"
#: converse.js:373
msgid "me"
#: converse.js:332
msgid "Re-establishing encrypted session"
msgstr ""
#: converse.js:417
msgid "%1$s is typing"
#: converse.js:340
msgid ""
"Your browser needs to generate a private key, which will be used in your "
"encrypted chat session. This can take up to 30 seconds during which your "
"browser might freeze and become unresponsive."
msgstr ""
#: converse.js:461 converse.js:1180
#: converse.js:349
msgid "Private key generated."
msgstr ""
#: converse.js:380
msgid ""
"Authentication request from %1$s\n"
"\n"
"Your buddy is attempting to verify your identity, by asking you the question "
"below.\n"
"\n"
"%2$s"
msgstr ""
#: converse.js:389
msgid "Could not verify this user's identify."
msgstr ""
#: converse.js:537
msgid "Personal message"
msgstr "Messaggio personale"
#: converse.js:559
msgid "Start encrypted conversation"
msgstr ""
#: converse.js:562
msgid "Refresh encrypted conversation"
msgstr ""
#: converse.js:563
msgid "End encrypted conversation"
msgstr ""
#: converse.js:564
msgid "Verify with SMP"
msgstr ""
#: converse.js:567
msgid "Verify with fingerprints"
msgstr ""
#: converse.js:569
msgid "What's this?"
msgstr ""
#: converse.js:641
msgid "me"
msgstr ""
#: converse.js:757 converse.js:1552
msgid "Show this menu"
msgstr "Mostra questo menu"
#: converse.js:462 converse.js:1181
#: converse.js:758 converse.js:1553
msgid "Write in the third person"
msgstr "Scrivi in terza persona"
#: converse.js:463 converse.js:1185
#: converse.js:759 converse.js:1557
msgid "Remove messages"
msgstr "Rimuovi messaggi"
#: converse.js:603
msgid "Personal message"
msgstr "Messaggio personale"
#: converse.js:830
msgid "Your message could not be sent"
msgstr ""
#: converse.js:833
msgid "We received an unencrypted message"
msgstr ""
#: converse.js:836
msgid "We received an unreadable encrypted message"
msgstr ""
#: converse.js:845
msgid "This user has requested an encrypted session."
msgstr ""
#: converse.js:863
msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n"
"\n"
"Fingerprint for you, %2$s: %3$s\n"
"\n"
"Fingerprint for %1$s: %4$s\n"
"\n"
"If you have confirmed that the fingerprints match, click OK, otherwise click "
"Cancel."
msgstr ""
#: converse.js:876
msgid ""
"You will be prompted to provide a security question and then an answer to "
"that question.\n"
"\n"
"Your buddy will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will have been verified."
msgstr ""
#: converse.js:877
msgid "What is your security question?"
msgstr ""
#: converse.js:879
msgid "What is the answer to the security question?"
msgstr ""
#: converse.js:883
msgid "Invalid authentication scheme provided"
msgstr ""
#: converse.js:953
msgid "Your messages are not encrypted anymore"
msgstr ""
#: converse.js:955
msgid ""
"Your messages are now encrypted but your buddy's identity has not been "
"verified."
msgstr ""
#: converse.js:957
msgid "Your buddy's identify has been verified."
msgstr ""
#: converse.js:959
msgid "Your buddy has ended encryption on their end, you should do the same."
msgstr ""
#: converse.js:968
msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr ""
#: converse.js:970
msgid "Your messages are encrypted, but your buddy has not been verified."
msgstr ""
#: converse.js:972
msgid "Your messages are encrypted and your buddy verified."
msgstr ""
#: converse.js:974
msgid ""
"Your buddy has closed their end of the private session, you should do the "
"same"
msgstr ""
#: converse.js:677
#: converse.js:1049
msgid "Contacts"
msgstr "Contatti"
#: converse.js:682
#: converse.js:1054
msgid "Online"
msgstr "In linea"
#: converse.js:683
#: converse.js:1055
msgid "Busy"
msgstr "Occupato"
#: converse.js:684
#: converse.js:1056
msgid "Away"
msgstr "Assente"
#: converse.js:685
#: converse.js:1057
msgid "Offline"
msgstr "Non in linea"
#: converse.js:692
#: converse.js:1064
msgid "Click to add new chat contacts"
msgstr "Clicca per aggiungere nuovi contatti alla chat"
#: converse.js:693
#: converse.js:1065
msgid "Add a contact"
msgstr "Aggiungi contatti"
#: converse.js:702
#: converse.js:1074
msgid "Contact username"
msgstr "Nome utente del contatto"
#: converse.js:703
#: converse.js:1075
msgid "Add"
msgstr "Aggiungi"
#: converse.js:711
#: converse.js:1083
msgid "Contact name"
msgstr "Nome del contatto"
#: converse.js:712
#: converse.js:1084
msgid "Search"
msgstr "Cerca"
#: converse.js:752
#: converse.js:1124
msgid "No users found"
msgstr "Nessun utente trovato"
#: converse.js:759
#: converse.js:1131
msgid "Click to add as a chat contact"
msgstr "Clicca per aggiungere il contatto alla chat"
#: converse.js:819
#: converse.js:1191
msgid "Click to open this room"
msgstr "Clicca per aprire questa stanza"
#: converse.js:821
#: converse.js:1193
msgid "Show more information on this room"
msgstr "Mostra più informazioni su questa stanza"
#: converse.js:827
#: converse.js:1199
msgid "Description:"
msgstr "Descrizione:"
#: converse.js:828
#: converse.js:1200
msgid "Occupants:"
msgstr "Utenti presenti:"
#: converse.js:829
#: converse.js:1201
msgid "Features:"
msgstr "Funzionalità:"
#: converse.js:831
#: converse.js:1203
msgid "Requires authentication"
msgstr "Richiede autenticazione"
#: converse.js:834
#: converse.js:1206
msgid "Hidden"
msgstr "Nascosta"
#: converse.js:837
#: converse.js:1209
msgid "Requires an invitation"
msgstr "Richiede un invito"
#: converse.js:840
#: converse.js:1212
msgid "Moderated"
msgstr "Moderata"
#: converse.js:843
#: converse.js:1215
msgid "Non-anonymous"
msgstr "Non-anonima"
#: converse.js:846
#: converse.js:1218
msgid "Open room"
msgstr "Stanza aperta"
#: converse.js:849
#: converse.js:1221
msgid "Permanent room"
msgstr "Stanza permanente"
#: converse.js:852
#: converse.js:1224
msgid "Public"
msgstr "Pubblica"
#: converse.js:855
#: converse.js:1227
msgid "Semi-anonymous"
msgstr "Semi-anonima"
#: converse.js:858
#: converse.js:1230
msgid "Temporary room"
msgstr "Stanza temporanea"
#: converse.js:861
#: converse.js:1233
msgid "Unmoderated"
msgstr "Non moderata"
#: converse.js:867
#: converse.js:1239
msgid "Rooms"
msgstr "Stanze"
#: converse.js:871
#: converse.js:1243
msgid "Room name"
msgstr "Nome stanza"
#: converse.js:872
#: converse.js:1244
msgid "Nickname"
msgstr "Soprannome"
#: converse.js:873
#: converse.js:1245
msgid "Server"
msgstr "Server"
#: converse.js:874
#: converse.js:1246
msgid "Join"
msgstr "Entra"
#: converse.js:875
#: converse.js:1247
msgid "Show rooms"
msgstr "Mostra stanze"
#. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:910
#: converse.js:1282
msgid "No rooms on %1$s"
msgstr "Nessuna stanza su %1$s"
#. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name
#: converse.js:925
#: converse.js:1297
msgid "Rooms on %1$s"
msgstr "Stanze su %1$s"
#: converse.js:1182
#: converse.js:1554
msgid "Set chatroom topic"
msgstr "Cambia oggetto della stanza"
#: converse.js:1183
#: converse.js:1555
msgid "Kick user from chatroom"
msgstr "Espelli utente dalla stanza"
#: converse.js:1184
#: converse.js:1556
msgid "Ban user from chatroom"
msgstr "Bandisci utente dalla stanza"
#: converse.js:1211
#: converse.js:1583
msgid "Message"
msgstr "Messaggio"
#: converse.js:1325 converse.js:2406
#: converse.js:1697 converse.js:2783
msgid "Save"
msgstr "Salva"
#: converse.js:1326
#: converse.js:1698
msgid "Cancel"
msgstr "Annulla"
#: converse.js:1373
#: converse.js:1745
msgid "An error occurred while trying to save the form."
msgstr "Errore durante il salvataggio del modulo"
#: converse.js:1419
#: converse.js:1791
msgid "This chatroom requires a password"
msgstr "Questa stanza richiede una password"
#: converse.js:1420
#: converse.js:1792
msgid "Password: "
msgstr "Password: "
#: converse.js:1421
#: converse.js:1793
msgid "Submit"
msgstr "Invia"
#: converse.js:1435
#: converse.js:1807
msgid "This room is not anonymous"
msgstr "Questa stanza non è anonima"
#: converse.js:1436
#: converse.js:1808
msgid "This room now shows unavailable members"
msgstr "Questa stanza mostra i membri non disponibili al momento"
#: converse.js:1437
#: converse.js:1809
msgid "This room does not show unavailable members"
msgstr "Questa stanza non mostra i membri non disponibili"
#: converse.js:1438
#: converse.js:1810
msgid "Non-privacy-related room configuration has changed"
msgstr ""
"Una configurazione della stanza non legata alla privacy è stata modificata"
#: converse.js:1439
#: converse.js:1811
msgid "Room logging is now enabled"
msgstr "La registrazione è abilitata nella stanza"
#: converse.js:1440
#: converse.js:1812
msgid "Room logging is now disabled"
msgstr "La registrazione è disabilitata nella stanza"
#: converse.js:1441
#: converse.js:1813
msgid "This room is now non-anonymous"
msgstr "Questa stanza è non-anonima"
#: converse.js:1442
#: converse.js:1814
msgid "This room is now semi-anonymous"
msgstr "Questa stanza è semi-anonima"
#: converse.js:1443
#: converse.js:1815
msgid "This room is now fully-anonymous"
msgstr "Questa stanza è completamente-anonima"
#: converse.js:1444
#: converse.js:1816
msgid "A new room has been created"
msgstr "Una nuova stanza è stata creata"
#: converse.js:1445
#: converse.js:1817
msgid "Your nickname has been changed"
msgstr "Il tuo soprannome è stato cambiato"
#: converse.js:1459
#: converse.js:1831
msgid "<strong>%1$s</strong> has been banned"
msgstr "<strong>%1$s</strong> è stato bandito"
#: converse.js:1460
#: converse.js:1832
msgid "<strong>%1$s</strong> has been kicked out"
msgstr "<strong>%1$s</strong> è stato espulso"
#: converse.js:1461
#: converse.js:1833
msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr ""
"<strong>%1$s</strong> è stato rimosso a causa di un cambio di affiliazione"
#: converse.js:1462
#: converse.js:1834
msgid "<strong>%1$s</strong> has been removed for not being a member"
msgstr "<strong>%1$s</strong> è stato rimosso in quanto non membro"
#: converse.js:1466 converse.js:1526
#: converse.js:1838 converse.js:1898
msgid "You have been banned from this room"
msgstr "Sei stato bandito da questa stanza"
#: converse.js:1467
#: converse.js:1839
msgid "You have been kicked from this room"
msgstr "Sei stato espulso da questa stanza"
#: converse.js:1468
#: converse.js:1840
msgid "You have been removed from this room because of an affiliation change"
msgstr ""
"Sei stato rimosso da questa stanza a causa di un cambio di affiliazione"
#: converse.js:1469
#: converse.js:1841
msgid ""
"You have been removed from this room because the room has changed to members-"
"only and you're not a member"
msgstr ""
"Sei stato rimosso da questa stanza poiché ora la stanza accetta solo membri"
#: converse.js:1470
#: converse.js:1842
msgid ""
"You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down."
......@@ -353,152 +504,150 @@ msgstr ""
"Sei stato rimosso da questa stanza poiché il servizio MUC (Chat multi "
"utente) è in fase di spegnimento"
#: converse.js:1524
#: converse.js:1896
msgid "You are not on the member list of this room"
msgstr "Non sei nella lista dei membri di questa stanza"
#: converse.js:1530
#: converse.js:1902
msgid "No nickname was specified"
msgstr "Nessun soprannome specificato"
#: converse.js:1534
#: converse.js:1906
msgid "You are not allowed to create new rooms"
msgstr "Non ti è permesso creare nuove stanze"
#: converse.js:1536
#: converse.js:1908
msgid "Your nickname doesn't conform to this room's policies"
msgstr "Il tuo soprannome non è conforme alle regole di questa stanza"
#: converse.js:1538
#: converse.js:1910
msgid "Your nickname is already taken"
msgstr "Il tuo soprannome è già utilizzato"
#: converse.js:1540
#: converse.js:1912
msgid "This room does not (yet) exist"
msgstr "Questa stanza non esiste (per ora)"
#: converse.js:1542
#: converse.js:1914
msgid "This room has reached it's maximum number of occupants"
msgstr "Questa stanza ha raggiunto il limite massimo di utenti"
#. For translators: the %1$s and %2$s parts will get replaced by the user and topic text respectively
#. Example: Topic set by JC Brand to: Hello World!
#: converse.js:1619
#: converse.js:1993
msgid "Topic set by %1$s to: %2$s"
msgstr "Topic impostato da %1$s a: %2$s"
#: converse.js:1635
#: converse.js:2009
msgid "This user is a moderator"
msgstr "Questo utente è un moderatore"
#: converse.js:1638
#: converse.js:2012
msgid "This user can send messages in this room"
msgstr "Questo utente può inviare messaggi in questa stanza"
#: converse.js:1641
#: converse.js:2015
msgid "This user can NOT send messages in this room"
msgstr "Questo utente NON può inviare messaggi in questa stanza"
#: converse.js:1848
#: converse.js:2225
msgid "Click to chat with this contact"
msgstr "Clicca per parlare con questo contatto"
#: converse.js:1851 converse.js:1855
#: converse.js:2228 converse.js:2232
msgid "Click to remove this contact"
msgstr "Clicca per rimuovere questo contatto"
#: converse.js:1886
#: converse.js:2263
msgid "This contact is busy"
msgstr ""
#: converse.js:1887
#: converse.js:2264
msgid "This contact is online"
msgstr ""
#: converse.js:1888
#: converse.js:2265
msgid "This contact is offline"
msgstr ""
#: converse.js:1889
#: converse.js:2266
#, fuzzy
msgid "This contact is unavailable"
msgstr "Questa stanza mostra i membri non disponibili al momento"
#: converse.js:1890
#: converse.js:2267
msgid "This contact is away for an extended period"
msgstr ""
#: converse.js:1891
#: converse.js:2268
msgid "This contact is away"
msgstr ""
#: converse.js:2245
#: converse.js:2622
msgid "Contact requests"
msgstr "Richieste dei contatti"
#: converse.js:2246
#: converse.js:2623
msgid "My contacts"
msgstr "I miei contatti"
#: converse.js:2247
#: converse.js:2624
msgid "Pending contacts"
msgstr "Contatti in attesa"
#: converse.js:2405
#: converse.js:2782
msgid "Custom status"
msgstr "Stato personalizzato"
#: converse.js:2411
#: converse.js:2788
msgid "Click to change your chat status"
msgstr "Clicca per cambiare il tuo stato"
#: converse.js:2415
#: converse.js:2792
msgid "Click here to write a custom status message"
msgstr "Clicca qui per scrivere un messaggio di stato personalizzato"
#: converse.js:2444 converse.js:2452
#: converse.js:2821 converse.js:2829
msgid "online"
msgstr "in linea"
#: converse.js:2446
#: converse.js:2823
msgid "busy"
msgstr "occupato"
#: converse.js:2448
#: converse.js:2825
msgid "away for long"
msgstr "assente da molto"
#: converse.js:2450
#: converse.js:2827
msgid "away"
msgstr "assente"
#. For translators: the %1$s part gets replaced with the status
#. Example, I am online
#: converse.js:2464 converse.js:2501
#: converse.js:2841 converse.js:2878
msgid "I am %1$s"
msgstr "Sono %1$s"
#: converse.js:2572
#: converse.js:2949
msgid "Sign in"
msgstr "Accesso"
#: converse.js:2575
#: converse.js:2952
msgid "XMPP/Jabber Username:"
msgstr "Nome utente:"
#: converse.js:2577
#: converse.js:2954
msgid "Password:"
msgstr "Password:"
#: converse.js:2579
#: converse.js:2956
msgid "Log In"
msgstr "Entra"
#: converse.js:2583
#: converse.js:2960
msgid "BOSH Service URL:"
msgstr "Indirizzo servizio BOSH:"
#: converse.js:2736
#: converse.js:3113
msgid "Online Contacts"
msgstr "Contatti in linea"
......
......@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Converse.js 0.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-09-13 16:02+0200\n"
"PO-Revision-Date: 2013-07-23 14:34-0300\n"
"POT-Creation-Date: 2013-09-15 21:55+0200\n"
"PO-Revision-Date: 2013-09-15 22:02+0200\n"
"Last-Translator: Sergio Oliveira <sergio@tracy.com.br>\n"
"Language-Team: Brazilian Portuguese\n"
"Language: pt_BR\n"
......@@ -20,322 +20,473 @@ msgstr ""
"lang: pt_BR\n"
"plural_forms: nplurals=2; plural=(n != 1);\n"
#: converse.js:135
#: converse.js:125
msgid "unencrypted"
msgstr ""
#: converse.js:126
msgid "unverified"
msgstr ""
#: converse.js:127
msgid "verified"
msgstr ""
#: converse.js:128
msgid "finished"
msgstr ""
#: converse.js:161
msgid "Disconnected"
msgstr "Desconectado"
#: converse.js:139
#: converse.js:165
msgid "Error"
msgstr "Erro"
#: converse.js:141
#: converse.js:167
msgid "Connecting"
msgstr "Conectando"
#: converse.js:144
#: converse.js:170
msgid "Connection Failed"
msgstr "Falha de conexão"
#: converse.js:146
#: converse.js:172
msgid "Authenticating"
msgstr "Autenticando"
#: converse.js:149
#: converse.js:175
msgid "Authentication Failed"
msgstr "Falha de autenticação"
#: converse.js:151
#: converse.js:177
msgid "Disconnecting"
msgstr "Desconectando"
#: converse.js:373
#: converse.js:332
msgid "Re-establishing encrypted session"
msgstr ""
#: converse.js:340
msgid ""
"Your browser needs to generate a private key, which will be used in your "
"encrypted chat session. This can take up to 30 seconds during which your "
"browser might freeze and become unresponsive."
msgstr ""
#: converse.js:349
msgid "Private key generated."
msgstr ""
#: converse.js:380
msgid ""
"Authentication request from %1$s\n"
"\n"
"Your buddy is attempting to verify your identity, by asking you the question "
"below.\n"
"\n"
"%2$s"
msgstr ""
#: converse.js:389
msgid "Could not verify this user's identify."
msgstr ""
#: converse.js:537
msgid "Personal message"
msgstr "Mensagem pessoal"
#: converse.js:559
msgid "Start encrypted conversation"
msgstr ""
#: converse.js:562
msgid "Refresh encrypted conversation"
msgstr ""
#: converse.js:563
msgid "End encrypted conversation"
msgstr ""
#: converse.js:564
msgid "Verify with SMP"
msgstr ""
#: converse.js:567
msgid "Verify with fingerprints"
msgstr ""
#: converse.js:569
msgid "What's this?"
msgstr ""
#: converse.js:641
msgid "me"
msgstr "eu"
#: converse.js:417
msgid "%1$s is typing"
msgstr "%1$s está digitando"
#: converse.js:461 converse.js:1180
#: converse.js:757 converse.js:1552
msgid "Show this menu"
msgstr "Mostrar o menu"
#: converse.js:462 converse.js:1181
#: converse.js:758 converse.js:1553
msgid "Write in the third person"
msgstr "Escrever em terceira pessoa"
#: converse.js:463 converse.js:1185
#: converse.js:759 converse.js:1557
msgid "Remove messages"
msgstr "Remover mensagens"
#: converse.js:603
msgid "Personal message"
msgstr "Mensagem pessoal"
#: converse.js:830
msgid "Your message could not be sent"
msgstr ""
#: converse.js:833
msgid "We received an unencrypted message"
msgstr ""
#: converse.js:836
msgid "We received an unreadable encrypted message"
msgstr ""
#: converse.js:845
msgid "This user has requested an encrypted session."
msgstr ""
#: converse.js:863
msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n"
"\n"
"Fingerprint for you, %2$s: %3$s\n"
"\n"
"Fingerprint for %1$s: %4$s\n"
"\n"
"If you have confirmed that the fingerprints match, click OK, otherwise click "
"Cancel."
msgstr ""
#: converse.js:876
msgid ""
"You will be prompted to provide a security question and then an answer to "
"that question.\n"
"\n"
"Your buddy will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will have been verified."
msgstr ""
#: converse.js:877
msgid "What is your security question?"
msgstr ""
#: converse.js:879
msgid "What is the answer to the security question?"
msgstr ""
#: converse.js:883
msgid "Invalid authentication scheme provided"
msgstr ""
#: converse.js:677
#: converse.js:953
msgid "Your messages are not encrypted anymore"
msgstr ""
#: converse.js:955
msgid ""
"Your messages are now encrypted but your buddy's identity has not been "
"verified."
msgstr ""
#: converse.js:957
msgid "Your buddy's identify has been verified."
msgstr ""
#: converse.js:959
msgid "Your buddy has ended encryption on their end, you should do the same."
msgstr ""
#: converse.js:968
msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr ""
#: converse.js:970
msgid "Your messages are encrypted, but your buddy has not been verified."
msgstr ""
#: converse.js:972
msgid "Your messages are encrypted and your buddy verified."
msgstr ""
#: converse.js:974
msgid ""
"Your buddy has closed their end of the private session, you should do the "
"same"
msgstr ""
#: converse.js:1049
msgid "Contacts"
msgstr "Contatos"
#: converse.js:682
#: converse.js:1054
msgid "Online"
msgstr "Online"
#: converse.js:683
#: converse.js:1055
msgid "Busy"
msgstr "Ocupado"
#: converse.js:684
#: converse.js:1056
msgid "Away"
msgstr "Ausente"
#: converse.js:685
#: converse.js:1057
msgid "Offline"
msgstr "Offline"
#: converse.js:692
#: converse.js:1064
msgid "Click to add new chat contacts"
msgstr "Clique para adicionar novos contatos ao chat"
#: converse.js:693
#: converse.js:1065
msgid "Add a contact"
msgstr "Adicionar contato"
#: converse.js:702
#: converse.js:1074
msgid "Contact username"
msgstr "Usuário do contatt"
#: converse.js:703
#: converse.js:1075
msgid "Add"
msgstr "Adicionar"
#: converse.js:711
#: converse.js:1083
msgid "Contact name"
msgstr "Nome do contato"
#: converse.js:712
#: converse.js:1084
msgid "Search"
msgstr "Procurar"
#: converse.js:752
#: converse.js:1124
msgid "No users found"
msgstr "Não foram encontrados usuários"
#: converse.js:759
#: converse.js:1131
msgid "Click to add as a chat contact"
msgstr "Clique para adicionar como um contato do chat"
#: converse.js:819
#: converse.js:1191
msgid "Click to open this room"
msgstr "CLique para abrir a sala"
#: converse.js:821
#: converse.js:1193
msgid "Show more information on this room"
msgstr "Mostrar mais informações nessa sala"
#: converse.js:827
#: converse.js:1199
msgid "Description:"
msgstr "Descrição:"
#: converse.js:828
#: converse.js:1200
msgid "Occupants:"
msgstr "Ocupantes:"
#: converse.js:829
#: converse.js:1201
msgid "Features:"
msgstr "Recursos:"
#: converse.js:831
#: converse.js:1203
msgid "Requires authentication"
msgstr "Requer autenticação"
#: converse.js:834
#: converse.js:1206
msgid "Hidden"
msgstr "Escondido"
#: converse.js:837
#: converse.js:1209
msgid "Requires an invitation"
msgstr "Requer um convite"
#: converse.js:840
#: converse.js:1212
msgid "Moderated"
msgstr "Moderado"
#: converse.js:843
#: converse.js:1215
msgid "Non-anonymous"
msgstr "Não anônimo"
#: converse.js:846
#: converse.js:1218
msgid "Open room"
msgstr "Sala aberta"
#: converse.js:849
#: converse.js:1221
msgid "Permanent room"
msgstr "Sala permanente"
#: converse.js:852
#: converse.js:1224
msgid "Public"
msgstr "Público"
#: converse.js:855
#: converse.js:1227
msgid "Semi-anonymous"
msgstr "Semi anônimo"
#: converse.js:858
#: converse.js:1230
msgid "Temporary room"
msgstr "Sala temporária"
#: converse.js:861
#: converse.js:1233
msgid "Unmoderated"
msgstr "Sem moderação"
#: converse.js:867
#: converse.js:1239
msgid "Rooms"
msgstr "Salas"
#: converse.js:871
#: converse.js:1243
msgid "Room name"
msgstr "Nome da sala"
#: converse.js:872
#: converse.js:1244
msgid "Nickname"
msgstr "Apelido"
#: converse.js:873
#: converse.js:1245
msgid "Server"
msgstr "Server"
#: converse.js:874
#: converse.js:1246
msgid "Join"
msgstr "Entrar"
#: converse.js:875
#: converse.js:1247
msgid "Show rooms"
msgstr "Mostar salas"
#. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:910
#: converse.js:1282
msgid "No rooms on %1$s"
msgstr "Sem salas em %1$s"
#. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name
#: converse.js:925
#: converse.js:1297
msgid "Rooms on %1$s"
msgstr "Salas em %1$s"
#: converse.js:1182
#: converse.js:1554
msgid "Set chatroom topic"
msgstr "Definir tópico do chat"
#: converse.js:1183
#: converse.js:1555
msgid "Kick user from chatroom"
msgstr "Expulsar usuário do chat"
#: converse.js:1184
#: converse.js:1556
msgid "Ban user from chatroom"
msgstr "Banir usuário do chat"
#: converse.js:1211
#: converse.js:1583
msgid "Message"
msgstr "Mensagem"
#: converse.js:1325 converse.js:2406
#: converse.js:1697 converse.js:2783
msgid "Save"
msgstr "Salvar"
#: converse.js:1326
#: converse.js:1698
msgid "Cancel"
msgstr "Cancelar"
#: converse.js:1373
#: converse.js:1745
msgid "An error occurred while trying to save the form."
msgstr "Ocorreu um erro enquanto tentava salvar o formulário"
#: converse.js:1419
#: converse.js:1791
msgid "This chatroom requires a password"
msgstr "Esse chat precisa de senha"
#: converse.js:1420
#: converse.js:1792
msgid "Password: "
msgstr "Senha: "
#: converse.js:1421
#: converse.js:1793
msgid "Submit"
msgstr "Enviar"
#: converse.js:1435
#: converse.js:1807
msgid "This room is not anonymous"
msgstr "Essa sala não é anônima"
#: converse.js:1436
#: converse.js:1808
msgid "This room now shows unavailable members"
msgstr "Agora esta sala mostra membros indisponíveis"
#: converse.js:1437
#: converse.js:1809
msgid "This room does not show unavailable members"
msgstr "Essa sala não mostra membros indisponíveis"
#: converse.js:1438
#: converse.js:1810
msgid "Non-privacy-related room configuration has changed"
msgstr "Configuraçõs não relacionadas à privacidade mudaram"
#: converse.js:1439
#: converse.js:1811
msgid "Room logging is now enabled"
msgstr "O log da sala está ativado"
#: converse.js:1440
#: converse.js:1812
msgid "Room logging is now disabled"
msgstr "O log da sala está desativado"
#: converse.js:1441
#: converse.js:1813
msgid "This room is now non-anonymous"
msgstr "Esse sala é não anônima"
#: converse.js:1442
#: converse.js:1814
msgid "This room is now semi-anonymous"
msgstr "Essa sala agora é semi anônima"
#: converse.js:1443
#: converse.js:1815
msgid "This room is now fully-anonymous"
msgstr "Essa sala agora é totalmente anônima"
#: converse.js:1444
#: converse.js:1816
msgid "A new room has been created"
msgstr "Uma nova sala foi criada"
#: converse.js:1445
#: converse.js:1817
msgid "Your nickname has been changed"
msgstr "Seu apelido foi mudado"
#: converse.js:1459
#: converse.js:1831
msgid "<strong>%1$s</strong> has been banned"
msgstr "<strong>%1$s</strong> foi banido"
#: converse.js:1460
#: converse.js:1832
msgid "<strong>%1$s</strong> has been kicked out"
msgstr "<strong>%1$s</strong> foi expulso"
#: converse.js:1461
#: converse.js:1833
msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr "<srtong>%1$s</strong> foi removido por causa de troca de associação"
#: converse.js:1462
#: converse.js:1834
msgid "<strong>%1$s</strong> has been removed for not being a member"
msgstr "<strong>%1$s</strong> foi removido por não ser um membro"
#: converse.js:1466 converse.js:1526
#: converse.js:1838 converse.js:1898
msgid "You have been banned from this room"
msgstr "Você foi banido dessa sala"
#: converse.js:1467
#: converse.js:1839
msgid "You have been kicked from this room"
msgstr "Você foi expulso dessa sala"
#: converse.js:1468
#: converse.js:1840
msgid "You have been removed from this room because of an affiliation change"
msgstr "Você foi removido da sala devido a uma mudança de associação"
#: converse.js:1469
#: converse.js:1841
msgid ""
"You have been removed from this room because the room has changed to members-"
"only and you're not a member"
......@@ -343,7 +494,7 @@ msgstr ""
"Você foi removido da sala porque ela foi mudada para somente membrose você "
"não é um membro"
#: converse.js:1470
#: converse.js:1842
msgid ""
"You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down."
......@@ -351,154 +502,155 @@ msgstr ""
"Você foi removido da sala devido a MUC (Multi-user chat)o serviço está sendo "
"desligado"
#: converse.js:1524
#: converse.js:1896
msgid "You are not on the member list of this room"
msgstr "Você não é membro dessa sala"
#: converse.js:1530
#: converse.js:1902
msgid "No nickname was specified"
msgstr "Você não escolheu um apelido "
#: converse.js:1534
#: converse.js:1906
msgid "You are not allowed to create new rooms"
msgstr "Você não tem permitição de criar novas salas"
#: converse.js:1536
#: converse.js:1908
msgid "Your nickname doesn't conform to this room's policies"
msgstr "Seu apelido não está de acordo com as regras da sala"
#: converse.js:1538
#: converse.js:1910
msgid "Your nickname is already taken"
msgstr "Seu apelido já foi escolhido"
#: converse.js:1540
#: converse.js:1912
msgid "This room does not (yet) exist"
msgstr "A sala não existe (ainda)"
#: converse.js:1542
#: converse.js:1914
msgid "This room has reached it's maximum number of occupants"
msgstr "A sala atingiu o número máximo de ocupantes"
#. For translators: the %1$s and %2$s parts will get replaced by the user and topic text respectively
#. Example: Topic set by JC Brand to: Hello World!
#: converse.js:1619
#: converse.js:1993
msgid "Topic set by %1$s to: %2$s"
msgstr "Topico definido por %1$s para: %2$s"
#: converse.js:1635
#: converse.js:2009
msgid "This user is a moderator"
msgstr "Esse usuário é o moderador"
#: converse.js:1638
#: converse.js:2012
msgid "This user can send messages in this room"
msgstr "Esse usuário pode enviar mensagens nessa sala"
#: converse.js:1641
#: converse.js:2015
msgid "This user can NOT send messages in this room"
msgstr "Esse usuário NÃO pode enviar mensagens nessa sala"
#: converse.js:1848
#: converse.js:2225
msgid "Click to chat with this contact"
msgstr "Clique para conversar com o contato"
#: converse.js:1851 converse.js:1855
#: converse.js:2228 converse.js:2232
msgid "Click to remove this contact"
msgstr "Clique para remover o contato"
#: converse.js:1886
#: converse.js:2263
msgid "This contact is busy"
msgstr "Este contato está ocupado"
#: converse.js:1887
#: converse.js:2264
msgid "This contact is online"
msgstr "Este contato está online"
#: converse.js:1888
#: converse.js:2265
msgid "This contact is offline"
msgstr "Este contato está offline"
#: converse.js:1889
#: converse.js:2266
msgid "This contact is unavailable"
msgstr "Este contato está indisponível"
#: converse.js:1890
#: converse.js:2267
msgid "This contact is away for an extended period"
msgstr "Este contato está ausente por um longo período"
#: converse.js:1891
#: converse.js:2268
msgid "This contact is away"
msgstr "Este contato está ausente"
#: converse.js:2245
#: converse.js:2622
msgid "Contact requests"
msgstr "Solicitação de contatos"
#: converse.js:2246
#: converse.js:2623
msgid "My contacts"
msgstr "Meus contatos"
#: converse.js:2247
#: converse.js:2624
msgid "Pending contacts"
msgstr "Contados pendentes"
#: converse.js:2405
#: converse.js:2782
msgid "Custom status"
msgstr "Status customizado"
#: converse.js:2411
#: converse.js:2788
msgid "Click to change your chat status"
msgstr "Clique para mudar seu status no chat"
#: converse.js:2415
#: converse.js:2792
msgid "Click here to write a custom status message"
msgstr "Clique aqui para customizar a mensagem de status"
#: converse.js:2444 converse.js:2452
#: converse.js:2821 converse.js:2829
msgid "online"
msgstr "online"
#: converse.js:2446
#: converse.js:2823
msgid "busy"
msgstr "ocupado"
#: converse.js:2448
#: converse.js:2825
msgid "away for long"
msgstr "ausente a bastante tempo"
#: converse.js:2450
#: converse.js:2827
msgid "away"
msgstr "ausente"
#. For translators: the %1$s part gets replaced with the status
#. Example, I am online
#: converse.js:2464 converse.js:2501
#: converse.js:2841 converse.js:2878
msgid "I am %1$s"
msgstr "Estou %1$s"
#: converse.js:2572
#: converse.js:2949
msgid "Sign in"
msgstr "Conectar-se"
#: converse.js:2575
#: converse.js:2952
msgid "XMPP/Jabber Username:"
msgstr "Usuário XMPP/Jabber:"
#: converse.js:2577
#: converse.js:2954
msgid "Password:"
msgstr "Senha:"
#: converse.js:2579
#: converse.js:2956
msgid "Log In"
msgstr "Entrar"
#: converse.js:2583
#: converse.js:2960
msgid "BOSH Service URL:"
msgstr "URL de serviço BOSH:"
#: converse.js:2736
#: converse.js:3113
msgid "Online Contacts"
msgstr "Contatos online"
#~ msgid "%1$s is typing"
#~ msgstr "%1$s está digitando"
#~ msgid "Connected"
#~ msgstr "Conectado"
......
......@@ -10,7 +10,8 @@ require.config({
"strophe.muc": "components/strophe.muc/index",
"strophe.roster": "components/strophe.roster/index",
"strophe.vcard": "components/strophe.vcard/index",
"strophe.disco": "components/strophe.disco/index"
"strophe.disco": "components/strophe.disco/index",
"crypto.aes": "components/crypto-js/build/rollups/aes"
},
// define module dependencies for modules not using define
......@@ -26,6 +27,9 @@ require.config({
//module value.
exports: 'Backbone'
},
'crypto.aes': {
exports: 'CryptoJS'
},
'jquery.tinysort': { deps: ['jquery'] },
'strophe': { deps: ['jquery'] },
'underscore': { exports: '_' },
......
......@@ -27,7 +27,7 @@
<li><a class="current" href="#login">Sign in</a></li>
</ul>
<a class="close-chatbox-button icon-close"></a></div>
<div id="controlbox-panes">
<div class="controlbox-panes">
<div id="login-dialog">
<form id="converse-login">
<label>XMPP/Jabber Username:</label><input type="text" id="jid">
......@@ -46,7 +46,7 @@
</ul>
<a class="close-chatbox-button icon-close"></a>
</div>
<div id="controlbox-panes">
<div class="controlbox-panes">
<div id="users" class="oc-chat-content" style="display: block;">
<form class="set-xmpp-status" action="" method="post">
<span id="xmpp-status-holder">
......@@ -200,8 +200,8 @@
<p></p>
</div>
<div class="chat-content">
<div class="chat-info"><strong>/help</strong>:Show this menu</div>
<div class="chat-info"><strong>/me</strong>:Write in the third person</div>
<div class="chat-info"><strong>/help</strong>:This is an info message</div>
<div class="chat-error">This is an error message</div>
<div class="chat-message">
<span class="chat-message-me">09:35 me:&nbsp;</span>
<span class="chat-message-content">Hello world</span>
......@@ -225,6 +225,23 @@
</div>
</div>
<form class="sendXMPPMessage" action="" method="post">
<ul class="chat-toolbar no-text-select">
<!--
<li class="icon-happy" title="Insert a smilery"></li>
<li class="icon-camera-2" title="Enable video chat"></li>
<li class="icon-newspaper" title="Fetch and show this user's vCard"></li>
-->
<li class="toggle-otr unencrypted" title="Turn on 'off-the-record' chat encryption">
<span class="chat-toolbar-text">unencrypted</span>
<span class="icon-unlocked"></span>
<ul>
<li><a href="#">Start private conversation</a></li>
<li><a href="#">End private conversation</a></li>
<li><a href="#">Authenticate buddy</a></li>
<li><a href="http://www.cypherpunks.ca/otr/help/3.2.0/levels.php" target="_blank">What's this?</a></li>
</ul>
</li>
</ul>
<textarea type="text" class="chat-textarea" placeholder="Personal message"></textarea>
</form>
</div>
......@@ -358,6 +375,19 @@ $(document).ready(function () {
});
});
}
$(function() {
// Clickable Dropdown
$('.toggle-otr').click(function(e) {
$('.toggle-otr ul').slideToggle(200);
e.stopPropagation();
});
$(document).click(function() {
if ($('.toggle-otr ul').is(':visible')) {
$('.toggle-otr ul', this).slideUp(200);
}
});
});
});
</script>
<script src="http://devbox:9001/socket.js" type="text/javascript" charset="utf-8"></script>
......
......@@ -676,7 +676,7 @@
it("contains two tabs, 'Contacts' and 'ChatRooms'", $.proxy(function () {
var cbview = this.chatboxesview.views.controlbox;
var $panels = cbview.$el.find('#controlbox-panes');
var $panels = cbview.$el.find('.controlbox-panes');
expect($panels.children().length).toBe(2);
expect($panels.children().first().attr('id')).toBe('users');
expect($panels.children().first().is(':visible')).toBe(true);
......@@ -693,7 +693,7 @@
it("is opened by clicking the 'Chatrooms' tab", $.proxy(function () {
var cbview = this.chatboxesview.views.controlbox;
var $tabs = cbview.$el.find('#controlbox-tabs');
var $panels = cbview.$el.find('#controlbox-panes');
var $panels = cbview.$el.find('.controlbox-panes');
var $contacts = $panels.children().first();
var $chatrooms = $panels.children().last();
spyOn(cbview, 'switchTab').andCallThrough();
......
......@@ -12,6 +12,7 @@ require.config({
"strophe.roster": "components/strophe.roster/index",
"strophe.vcard": "components/strophe.vcard/index",
"strophe.disco": "components/strophe.disco/index",
"crypto.aes": "components/crypto-js/build/rollups/aes",
// Extra test dependencies
"jasmine": "components/jasmine/lib/jasmine-core/jasmine",
"jasmine-html": "components/jasmine/lib/jasmine-core/jasmine-html",
......@@ -32,7 +33,7 @@ require.config({
//module value.
exports: 'Backbone'
},
'tinysort': { deps: ['jquery'] },
'jquery.tinysort': { deps: ['jquery'] },
'strophe': { deps: ['jquery'] },
'underscore': { exports: '_' },
'strophe.muc': { deps: ['strophe', 'jquery'] },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment