New release 0.8.4

This commit is contained in:
JC Brand 2014-11-15 16:40:34 +01:00
parent 3f01e94b9b
commit c98e516e39
33 changed files with 4968 additions and 3967 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "converse", "name": "converse",
"version": "0.8.3", "version": "0.8.4",
"devDependencies": { "devDependencies": {
"jasmine": "https://github.com/jcbrand/jasmine.git#1_3_x", "jasmine": "https://github.com/jcbrand/jasmine.git#1_3_x",
"otr": "0.2.12", "otr": "0.2.12",

View File

@ -25315,7 +25315,7 @@ Strophe.addConnectionPlugin('roster',
oldCallback.apply(this, arguments); oldCallback.apply(this, arguments);
} }
}; };
conn.connect = function(jid, pass, callback, wait, hold) conn.connect = function(jid, pass, callback, wait, hold, route)
{ {
oldCallback = callback; oldCallback = callback;
if (typeof jid == "undefined") if (typeof jid == "undefined")
@ -25323,7 +25323,7 @@ Strophe.addConnectionPlugin('roster',
if (typeof pass == "undefined") if (typeof pass == "undefined")
pass = null; pass = null;
callback = newCallback; callback = newCallback;
_connect.apply(conn, [jid, pass, callback, wait, hold]); _connect.apply(conn, [jid, pass, callback, wait, hold, route]);
}; };
conn.attach = function(jid, sid, rid, callback, wait, hold, wind) conn.attach = function(jid, sid, rid, callback, wait, hold, wind)
{ {
@ -26745,9 +26745,21 @@ var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments
with(obj||{}){ with(obj||{}){
__p+='<field var="'+ __p+='<field var="'+
((__t=(name))==null?'':__t)+ ((__t=(name))==null?'':__t)+
'"><value>'+ '">';
if (_.isArray(value)) {
__p+='\n ';
_.each(value,function(arrayValue) {
__p+='<value>'+
((__t=(arrayValue))==null?'':__t)+
'</value>';
});
__p+='\n';
} else {
__p+='\n <value>'+
((__t=(value))==null?'':__t)+ ((__t=(value))==null?'':__t)+
'</value></field>\n'; '</value>\n';
}
__p+='</field>\n';
} }
return __p; return __p;
}; }); }; });
@ -26794,7 +26806,11 @@ __p+='<label>'+
((__t=(label))==null?'':__t)+ ((__t=(label))==null?'':__t)+
'<select name="'+ '<select name="'+
((__t=(name))==null?'':__t)+ ((__t=(name))==null?'':__t)+
'">'+ '" ';
if (multiple) {
__p+=' multiple="multiple" ';
}
__p+='>'+
((__t=(options))==null?'':__t)+ ((__t=(options))==null?'':__t)+
'</select></label>\n'; '</select></label>\n';
} }
@ -27139,7 +27155,11 @@ var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments
with(obj||{}){ with(obj||{}){
__p+='<option value="'+ __p+='<option value="'+
((__t=(value))==null?'':__t)+ ((__t=(value))==null?'':__t)+
'">'+ '" ';
if (selected) {
__p+=' selected="selected" ';
}
__p+=' >'+
((__t=(label))==null?'':__t)+ ((__t=(label))==null?'':__t)+
'</option>\n'; '</option>\n';
} }
@ -27295,6 +27315,21 @@ __p+='\n href="#">'+
return __p; return __p;
}; }); }; });
define('tpl!form_textarea', [],function () { return function(obj){
var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};
with(obj||{}){
__p+='<label class="label-ta">'+
((__t=(label))==null?'':__t)+
'<textarea name="'+
((__t=(name))==null?'':__t)+
'">'+
((__t=(value))==null?'':__t)+
'</textarea></label>\n';
}
return __p;
}; });
define("converse-templates", [ define("converse-templates", [
"tpl!action", "tpl!action",
"tpl!add_contact_dropdown", "tpl!add_contact_dropdown",
@ -27338,7 +27373,8 @@ define("converse-templates", [
"tpl!status_option", "tpl!status_option",
"tpl!toggle_chats", "tpl!toggle_chats",
"tpl!toolbar", "tpl!toolbar",
"tpl!trimmed_chat" "tpl!trimmed_chat",
"tpl!form_textarea"
], function () { ], function () {
return { return {
action: arguments[0], action: arguments[0],
@ -27383,7 +27419,8 @@ define("converse-templates", [
status_option: arguments[39], status_option: arguments[39],
toggle_chats: arguments[40], toggle_chats: arguments[40],
toolbar: arguments[41], toolbar: arguments[41],
trimmed_chat: arguments[42] trimmed_chat: arguments[42],
form_textarea: arguments[43]
}; };
}); });
@ -27606,6 +27643,7 @@ define("converse-templates", [
this.expose_rid_and_sid = false; this.expose_rid_and_sid = false;
this.forward_messages = false; this.forward_messages = false;
this.hide_muc_server = false; this.hide_muc_server = false;
this.hide_offline_users = false;
this.i18n = locales.en; this.i18n = locales.en;
this.keepalive = false; this.keepalive = false;
this.message_carbons = false; this.message_carbons = false;
@ -27646,14 +27684,15 @@ define("converse-templates", [
'connection', 'connection',
'debug', 'debug',
'default_box_height', 'default_box_height',
'keepalive',
'message_carbons',
'expose_rid_and_sid', 'expose_rid_and_sid',
'forward_messages', 'forward_messages',
'fullname', 'fullname',
'hide_muc_server', 'hide_muc_server',
'hide_offline_users',
'i18n', 'i18n',
'jid', 'jid',
'keepalive',
'message_carbons',
'no_trimming', 'no_trimming',
'play_sounds', 'play_sounds',
'prebind', 'prebind',
@ -28020,7 +28059,11 @@ define("converse-templates", [
.c('enable', {xmlns: 'urn:xmpp:carbons:2'}); .c('enable', {xmlns: 'urn:xmpp:carbons:2'});
this.connection.send(carbons_iq); this.connection.send(carbons_iq);
this.connection.addHandler(function (iq) { this.connection.addHandler(function (iq) {
//TODO: check if carbons was enabled: if ($(iq).find('error').length > 0) {
converse.log('ERROR: An error occured while trying to enable message carbons.');
} else {
converse.log('Message carbons appear to have been enabled.');
}
}, null, "iq", null, "enablecarbons"); }, null, "iq", null, "enablecarbons");
}; };
@ -28215,7 +28258,7 @@ define("converse-templates", [
switch (type) { switch (type) {
case 'question': case 'question':
this.otr.smpSecret(prompt(__( 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', 'Authentication request from %1$s\n\nYour chat contact is attempting to verify your identity, by asking you the question below.\n\n%2$s',
[this.get('fullname'), data]))); [this.get('fullname'), data])));
break; break;
case 'trust': case 'trust':
@ -28239,7 +28282,7 @@ define("converse-templates", [
// encrypted messages. // encrypted messages.
// //
// If 'query_msg' is passed in, it means there is an alread incoming // If 'query_msg' is passed in, it means there is an alread incoming
// query message from our buddy. Otherwise, it is us who will // query message from our contact. Otherwise, it is us who will
// send the query message to them. // send the query message to them.
this.save({'otr_status': UNENCRYPTED}); this.save({'otr_status': UNENCRYPTED});
var session = this.getSession($.proxy(function (session) { var session = this.getSession($.proxy(function (session) {
@ -28263,7 +28306,7 @@ define("converse-templates", [
this.trigger('showOTRError', msg); this.trigger('showOTRError', msg);
}, this)); }, this));
this.trigger('showHelpMessages', [__('Exchanging private key with buddy.')]); this.trigger('showHelpMessages', [__('Exchanging private key with contact.')]);
if (query_msg) { if (query_msg) {
this.otr.receiveMsg(query_msg); this.otr.receiveMsg(query_msg);
} else { } else {
@ -28387,6 +28430,7 @@ define("converse-templates", [
this.model.on('destroy', this.hide, this); this.model.on('destroy', this.hide, this);
this.model.on('change', this.onChange, this); this.model.on('change', this.onChange, this);
this.model.on('showOTRError', this.showOTRError, this); this.model.on('showOTRError', this.showOTRError, this);
// XXX: doesn't look like this event is being used?
this.model.on('buddyStartsOTR', this.buddyStartsOTR, this); this.model.on('buddyStartsOTR', this.buddyStartsOTR, this);
this.model.on('showHelpMessages', this.showHelpMessages, this); this.model.on('showHelpMessages', this.showHelpMessages, this);
this.model.on('sendMessageStanza', this.sendMessageStanza, this); this.model.on('sendMessageStanza', this.sendMessageStanza, this);
@ -28459,7 +28503,7 @@ define("converse-templates", [
msg_time = moment(msg_dict.time) || moment, msg_time = moment(msg_dict.time) || moment,
text = msg_dict.message, text = msg_dict.message,
match = text.match(/^\/(.*?)(?: (.*))?$/), match = text.match(/^\/(.*?)(?: (.*))?$/),
fullname = msg_dict.fullname || this.model.get('fullname'), // XXX Perhaps always use model's? fullname = this.model.get('fullname'), // XXX Perhaps always use model's?
extra_classes = msg_dict.delayed && 'delayed' || '', extra_classes = msg_dict.delayed && 'delayed' || '',
template, username; template, username;
@ -28739,7 +28783,7 @@ define("converse-templates", [
this.model.save({'otr_status': UNVERIFIED}); this.model.save({'otr_status': UNVERIFIED});
} }
} else if (scheme === 'smp') { } 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 be verified.')); alert(__('You will be prompted to provide a security question and then an answer to that question.\n\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.'));
question = prompt(__('What is your security question?')); question = prompt(__('What is your security question?'));
if (question) { if (question) {
answer = prompt(__('What is the answer to the security question?')); answer = prompt(__('What is the answer to the security question?'));
@ -28774,10 +28818,14 @@ define("converse-templates", [
this.$el.find('div.chat-event').remove(); this.$el.find('div.chat-event').remove();
} }
} }
converse.emit('contactStatusChanged', item.attributes, item.get('chat_status'));
// TODO: DEPRECATED AND SHOULD BE REMOVED IN 0.9.0
converse.emit('buddyStatusChanged', item.attributes, item.get('chat_status')); converse.emit('buddyStatusChanged', item.attributes, item.get('chat_status'));
} }
if (_.has(item.changed, 'status')) { if (_.has(item.changed, 'status')) {
this.showStatusMessage(); this.showStatusMessage();
converse.emit('contactStatusMessageChanged', item.attributes, item.get('status'));
// TODO: DEPRECATED AND SHOULD BE REMOVED IN 0.9.0
converse.emit('buddyStatusMessageChanged', item.attributes, item.get('status')); converse.emit('buddyStatusMessageChanged', item.attributes, item.get('status'));
} }
if (_.has(item.changed, 'image')) { if (_.has(item.changed, 'image')) {
@ -28798,7 +28846,7 @@ define("converse-templates", [
showStatusMessage: function (msg) { showStatusMessage: function (msg) {
msg = msg || this.model.get('status'); msg = msg || this.model.get('status');
if (msg) { if (typeof msg === "string") {
this.$el.find('p.user-custom-message').text(msg).attr('title', msg); this.$el.find('p.user-custom-message').text(msg).attr('title', msg);
} }
return this; return this;
@ -28859,11 +28907,11 @@ define("converse-templates", [
if (data.otr_status == UNENCRYPTED) { if (data.otr_status == UNENCRYPTED) {
msgs.push(__("Your messages are not encrypted anymore")); msgs.push(__("Your messages are not encrypted anymore"));
} else if (data.otr_status == UNVERIFIED){ } else if (data.otr_status == UNVERIFIED){
msgs.push(__("Your messages are now encrypted but your buddy's identity has not been verified.")); msgs.push(__("Your messages are now encrypted but your contact's identity has not been verified."));
} else if (data.otr_status == VERIFIED){ } else if (data.otr_status == VERIFIED){
msgs.push(__("Your buddy's identify has been verified.")); msgs.push(__("Your contact's identify has been verified."));
} else if (data.otr_status == FINISHED){ } else if (data.otr_status == FINISHED){
msgs.push(__("Your buddy has ended encryption on their end, you should do the same.")); msgs.push(__("Your contact has ended encryption on their end, you should do the same."));
} }
return this.showHelpMessages(msgs, 'info', false); return this.showHelpMessages(msgs, 'info', false);
}, },
@ -28874,11 +28922,11 @@ define("converse-templates", [
if (data.otr_status == UNENCRYPTED) { if (data.otr_status == UNENCRYPTED) {
data.otr_tooltip = __('Your messages are not encrypted. Click here to enable OTR encryption.'); data.otr_tooltip = __('Your messages are not encrypted. Click here to enable OTR encryption.');
} else if (data.otr_status == UNVERIFIED){ } else if (data.otr_status == UNVERIFIED){
data.otr_tooltip = __('Your messages are encrypted, but your buddy has not been verified.'); data.otr_tooltip = __('Your messages are encrypted, but your contact has not been verified.');
} else if (data.otr_status == VERIFIED){ } else if (data.otr_status == VERIFIED){
data.otr_tooltip = __('Your messages are encrypted and your buddy verified.'); data.otr_tooltip = __('Your messages are encrypted and your contact verified.');
} else if (data.otr_status == FINISHED){ } 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.otr_tooltip = __('Your contact has closed their end of the private session, you should do the same');
} }
this.$el.find('.chat-toolbar').html( this.$el.find('.chat-toolbar').html(
converse.templates.toolbar( converse.templates.toolbar(
@ -29086,11 +29134,19 @@ define("converse-templates", [
'submit form.add-chatroom': 'createChatRoom', 'submit form.add-chatroom': 'createChatRoom',
'click input#show-rooms': 'showRooms', 'click input#show-rooms': 'showRooms',
'click a.open-room': 'createChatRoom', 'click a.open-room': 'createChatRoom',
'click a.room-info': 'showRoomInfo' 'click a.room-info': 'showRoomInfo',
'change input[name=server]': 'setDomain',
'change input[name=nick]': 'setNick'
}, },
initialize: function (cfg) { initialize: function (cfg) {
cfg.$parent.append( this.$parent = cfg.$parent;
this.model.on('change:muc_domain', this.onDomainChange, this);
this.model.on('change:nick', this.onNickChange, this);
},
render: function () {
this.$parent.append(
this.$el.html( this.$el.html(
converse.templates.room_panel({ converse.templates.room_panel({
'server_input_type': converse.hide_muc_server && 'hidden' || 'text', 'server_input_type': converse.hide_muc_server && 'hidden' || 'text',
@ -29101,37 +29157,34 @@ define("converse-templates", [
'label_show_rooms': __('Show rooms') 'label_show_rooms': __('Show rooms')
}) })
).hide()); ).hide());
this.$tabs = cfg.$parent.parent().find('#controlbox-tabs'); this.$tabs = this.$parent.parent().find('#controlbox-tabs');
this.on('update-rooms-list', function (ev) {
this.updateRoomsList();
});
converse.xmppstatus.on("change", $.proxy(function (model) {
if (!(_.has(model.changed, 'fullname'))) {
return;
}
var $nick = this.$el.find('input.new-chatroom-nick');
if (! $nick.is(':focus')) {
$nick.val(model.get('fullname'));
}
}, this));
},
render: function () {
this.$tabs.append(converse.templates.chatrooms_tab({label_rooms: __('Rooms')})); this.$tabs.append(converse.templates.chatrooms_tab({label_rooms: __('Rooms')}));
return this; return this;
}, },
onDomainChange: function (model) {
var $server = this.$el.find('input.new-chatroom-server');
$server.val(model.get('muc_domain'));
if (converse.auto_list_rooms) {
this.updateRoomsList();
}
},
onNickChange: function (model) {
var $nick = this.$el.find('input.new-chatroom-nick');
$nick.val(model.get('nick'));
},
informNoRoomsFound: function () { informNoRoomsFound: function () {
var $available_chatrooms = this.$el.find('#available-chatrooms'); var $available_chatrooms = this.$el.find('#available-chatrooms');
// # For translators: %1$s is a variable and will be replaced with the XMPP server name // # For translators: %1$s is a variable and will be replaced with the XMPP server name
$available_chatrooms.html('<dt>'+__('No rooms on %1$s',this.muc_domain)+'</dt>'); $available_chatrooms.html('<dt>'+__('No rooms on %1$s',this.model.get('muc_domain'))+'</dt>');
$('input#show-rooms').show().siblings('span.spinner').remove(); $('input#show-rooms').show().siblings('span.spinner').remove();
}, },
updateRoomsList: function (domain) { updateRoomsList: function () {
converse.connection.muc.listRooms( converse.connection.muc.listRooms(
this.muc_domain, this.model.get('muc_domain'),
$.proxy(function (iq) { // Success $.proxy(function (iq) { // Success
var name, jid, i, fragment, var name, jid, i, fragment,
that = this, that = this,
@ -29140,7 +29193,7 @@ define("converse-templates", [
if (this.rooms.length) { if (this.rooms.length) {
// # For translators: %1$s is a variable and will be // # For translators: %1$s is a variable and will be
// # replaced with the XMPP server name // # replaced with the XMPP server name
$available_chatrooms.html('<dt>'+__('Rooms on %1$s',this.muc_domain)+'</dt>'); $available_chatrooms.html('<dt>'+__('Rooms on %1$s',this.model.get('muc_domain'))+'</dt>');
fragment = document.createDocumentFragment(); fragment = document.createDocumentFragment();
for (i=0; i<this.rooms.length; i++) { for (i=0; i<this.rooms.length; i++) {
name = Strophe.unescapeNode($(this.rooms[i]).attr('name')||$(this.rooms[i]).attr('jid')); name = Strophe.unescapeNode($(this.rooms[i]).attr('name')||$(this.rooms[i]).attr('jid'));
@ -29178,7 +29231,7 @@ define("converse-templates", [
$server.removeClass('error'); $server.removeClass('error');
$available_chatrooms.empty(); $available_chatrooms.empty();
$('input#show-rooms').hide().after('<span class="spinner"/>'); $('input#show-rooms').hide().after('<span class="spinner"/>');
this.muc_domain = server; this.model.save({muc_domain: server});
this.updateRoomsList(); this.updateRoomsList();
}, },
@ -29255,7 +29308,7 @@ define("converse-templates", [
jid = Strophe.escapeNode(name) + '@' + server; jid = Strophe.escapeNode(name) + '@' + server;
$name.removeClass('error'); $name.removeClass('error');
$server.removeClass('error'); $server.removeClass('error');
this.muc_domain = server; this.model.save({muc_domain: server});
} else { } else {
if (!name) { $name.addClass('error'); } if (!name) { $name.addClass('error'); }
if (!server) { $server.addClass('error'); } if (!server) { $server.addClass('error'); }
@ -29271,6 +29324,14 @@ define("converse-templates", [
'chatroom': true, 'chatroom': true,
'box_id' : b64_sha1(jid) 'box_id' : b64_sha1(jid)
}); });
},
setDomain: function (ev) {
this.model.save({muc_domain: ev.target.value});
},
setNick: function (ev) {
this.model.save({nick: ev.target.value});
} }
}); });
@ -29364,14 +29425,25 @@ define("converse-templates", [
}, },
renderContactsPanel: function () { renderContactsPanel: function () {
var model;
this.$el.html(converse.templates.controlbox(this.model.toJSON())); this.$el.html(converse.templates.controlbox(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(); this.contactspanel.render();
converse.xmppstatusview = new converse.XMPPStatusView({'model': converse.xmppstatus}); converse.xmppstatusview = new converse.XMPPStatusView({'model': converse.xmppstatus});
converse.xmppstatusview.render(); converse.xmppstatusview.render();
if (converse.allow_muc) { if (converse.allow_muc) {
this.roomspanel = new converse.RoomsPanel({'$parent': this.$el.find('.controlbox-panes')}); this.roomspanel = new converse.RoomsPanel({
this.roomspanel.render(); '$parent': this.$el.find('.controlbox-panes'),
'model': new (Backbone.Model.extend({
id: b64_sha1('converse.roomspanel'+converse.bare_jid), // Required by sessionStorage
browserStorage: new Backbone.BrowserStorage[converse.storage](
b64_sha1('converse.roomspanel'+converse.bare_jid))
}))()
});
this.roomspanel.render().model.fetch();
if (!this.roomspanel.model.get('nick')) {
this.roomspanel.model.save({nick: Strophe.getNodeFromJid(converse.bare_jid)});
}
} }
this.initDragResize(); this.initDragResize();
}, },
@ -29423,13 +29495,10 @@ define("converse-templates", [
featureAdded: function (feature) { featureAdded: function (feature) {
if ((feature.get('var') == 'http://jabber.org/protocol/muc') && (converse.allow_muc)) { if ((feature.get('var') == 'http://jabber.org/protocol/muc') && (converse.allow_muc)) {
this.roomspanel.muc_domain = feature.get('from'); this.roomspanel.model.save({muc_domain: feature.get('from')});
var $server= this.$el.find('input.new-chatroom-server'); var $server= this.$el.find('input.new-chatroom-server');
if (! $server.is(':focus')) { if (! $server.is(':focus')) {
$server.val(this.roomspanel.muc_domain); $server.val(this.roomspanel.model.get('muc_domain'));
}
if (converse.auto_list_rooms) {
this.roomspanel.trigger('update-rooms-list');
} }
} }
}, },
@ -29778,13 +29847,17 @@ define("converse-templates", [
$fields = $stanza.find('field'), $fields = $stanza.find('field'),
title = $stanza.find('title').text(), title = $stanza.find('title').text(),
instructions = $stanza.find('instructions').text(), instructions = $stanza.find('instructions').text(),
i, j, options=[], $field, $options; i, j, options=[], $field, $options,
values=[], $values, value;
var input_types = { var input_types = {
'text-private': 'password', 'text-private': 'password',
'text-single': 'textline', 'text-single': 'textline',
'fixed': 'label',
'boolean': 'checkbox', 'boolean': 'checkbox',
'hidden': 'hidden', 'hidden': 'hidden',
'list-single': 'dropdown' 'jid-multi': 'textarea',
'list-single': 'dropdown',
'list-multi': 'dropdown'
}; };
$form.find('span.spinner').remove(); $form.find('span.spinner').remove();
$form.append($('<legend>').text(title)); $form.append($('<legend>').text(title));
@ -29793,19 +29866,35 @@ define("converse-templates", [
} }
for (i=0; i<$fields.length; i++) { for (i=0; i<$fields.length; i++) {
$field = $($fields[i]); $field = $($fields[i]);
if ($field.attr('type') == 'list-single') { if ($field.attr('type') == 'list-single' || $field.attr('type') == 'list-multi') {
values = [];
$values = $field.children('value');
for (j=0; j<$values.length; j++) {
values.push($($values[j]).text());
}
options = []; options = [];
$options = $field.find('option'); $options = $field.children('option');
for (j=0; j<$options.length; j++) { for (j=0; j<$options.length; j++) {
value = $($options[j]).find('value').text();
options.push(converse.templates.select_option({ options.push(converse.templates.select_option({
value: $($options[j]).find('value').text(), value: value,
label: $($options[j]).attr('label') label: $($options[j]).attr('label'),
selected: (values.indexOf(value) >= 0)
})); }));
} }
$form.append(converse.templates.form_select({ $form.append(converse.templates.form_select({
name: $field.attr('var'), name: $field.attr('var'),
label: $field.attr('label'), label: $field.attr('label'),
options: options.join('') options: options.join(''),
multiple: ($field.attr('type') == 'list-multi')
}));
} else if ($field.attr('type') == 'fixed') {
$form.append($('<p>').text($field.find('value').text()));
} else if ($field.attr('type') == 'jid-multi') {
$form.append(converse.templates.form_textarea({
name: $field.attr('var'),
label: $field.attr('label') || '',
value: $field.find('value').text()
})); }));
} else if ($field.attr('type') == 'boolean') { } else if ($field.attr('type') == 'boolean') {
$form.append(converse.templates.form_checkbox({ $form.append(converse.templates.form_checkbox({
@ -29839,6 +29928,15 @@ define("converse-templates", [
var $input = $(this), value; var $input = $(this), value;
if ($input.is('[type=checkbox]')) { if ($input.is('[type=checkbox]')) {
value = $input.is(':checked') && 1 || 0; value = $input.is(':checked') && 1 || 0;
} else if ($input.is('textarea')) {
value = [];
var lines = $input.val().split('\n');
for( var vk=0; vk<lines.length; vk++) {
var val = $.trim(lines[vk]);
if (val === '')
continue;
value.push(val);
}
} else { } else {
value = $input.val(); value = $input.val();
} }
@ -30113,7 +30211,7 @@ define("converse-templates", [
delayed = $message.find('delay').length > 0, delayed = $message.find('delay').length > 0,
subject = $message.children('subject').text(); subject = $message.children('subject').text();
if (this.model.messages.findWhere({msgid: msgid})) { if (msgid && this.model.messages.findWhere({msgid: msgid})) {
return true; // We already have this message stored. return true; // We already have this message stored.
} }
this.showStatusMessages($message); this.showStatusMessages($message);
@ -30231,7 +30329,9 @@ define("converse-templates", [
onMessage: function (message) { onMessage: function (message) {
var $message = $(message); var $message = $(message);
var buddy_jid, $forwarded, $received, var contact_jid, $forwarded, $received, $sent,
msgid = $message.attr('id'),
chatbox, resource, roster_item,
message_from = $message.attr('from'); message_from = $message.attr('from');
if (message_from === converse.connection.jid) { if (message_from === converse.connection.jid) {
// FIXME: Forwarded messages should be sent to specific resources, // FIXME: Forwarded messages should be sent to specific resources,
@ -30240,49 +30340,64 @@ define("converse-templates", [
} }
$forwarded = $message.children('forwarded'); $forwarded = $message.children('forwarded');
$received = $message.children('received[xmlns="urn:xmpp:carbons:2"]'); $received = $message.children('received[xmlns="urn:xmpp:carbons:2"]');
$sent = $message.children('sent[xmlns="urn:xmpp:carbons:2"]');
if ($forwarded.length) { if ($forwarded.length) {
$message = $forwarded.children('message'); $message = $forwarded.children('message');
} else if ($received.length) { } else if ($received.length) {
$message = $received.children('forwarded').children('message'); $message = $received.children('forwarded').children('message');
message_from = $message.attr('from'); message_from = $message.attr('from');
} else if ($sent.length) {
$message = $sent.children('forwarded').children('message');
message_from = $message.attr('from');
} }
var from = Strophe.getBareJidFromJid(message_from), var from = Strophe.getBareJidFromJid(message_from),
to = Strophe.getBareJidFromJid($message.attr('to')), to = Strophe.getBareJidFromJid($message.attr('to'));
resource, chatbox, roster_item;
if (from == converse.bare_jid) { if (from == converse.bare_jid) {
// I am the sender, so this must be a forwarded message... // I am the sender, so this must be a forwarded message...
buddy_jid = to; contact_jid = to;
resource = Strophe.getResourceFromJid($message.attr('to')); resource = Strophe.getResourceFromJid($message.attr('to'));
} else { } else {
buddy_jid = from; contact_jid = from;
resource = Strophe.getResourceFromJid(message_from); resource = Strophe.getResourceFromJid(message_from);
} }
chatbox = this.get(buddy_jid);
roster_item = converse.roster.get(buddy_jid);
roster_item = converse.roster.get(contact_jid);
if (roster_item === undefined) { if (roster_item === undefined) {
// The buddy was likely removed // The contact was likely removed
converse.log('Could not get roster item for JID '+buddy_jid, 'error'); converse.log('Could not get roster item for JID '+contact_jid, 'error');
return true; return true;
} }
chatbox = this.get(contact_jid);
if (!chatbox) { if (!chatbox) {
var fullname = roster_item.get('fullname'); var fullname = roster_item.get('fullname');
fullname = _.isEmpty(fullname)? buddy_jid: fullname; fullname = _.isEmpty(fullname)? contact_jid: fullname;
chatbox = this.create({ chatbox = this.create({
'id': buddy_jid, 'id': contact_jid,
'jid': buddy_jid, 'jid': contact_jid,
'fullname': fullname, 'fullname': fullname,
'image_type': roster_item.get('image_type'), 'image_type': roster_item.get('image_type'),
'image': roster_item.get('image'), 'image': roster_item.get('image'),
'url': roster_item.get('url') 'url': roster_item.get('url')
}); });
} }
if (msgid && chatbox.messages.findWhere({msgid: msgid})) {
// FIXME: There's still a bug here..
// If a duplicate message is received just after the chat
// box was closed, then it'll open again (due to it being
// created here above), with now new messages.
// The solution is mostly likely to not let chat boxes show
// automatically when they are created, but to require
// "show" to be called explicitly.
return true; // We already have this message stored.
}
if (!this.isOnlyChatStateNotification($message) && from !== converse.bare_jid) { if (!this.isOnlyChatStateNotification($message) && from !== converse.bare_jid) {
playNotification(); playNotification();
} }
chatbox.receiveMessage($message); chatbox.receiveMessage($message);
converse.roster.addResource(buddy_jid, resource); converse.roster.addResource(contact_jid, resource);
converse.emit('message', message); converse.emit('message', message);
return true; return true;
} }
@ -30482,6 +30597,7 @@ define("converse-templates", [
if (ev && ev.preventDefault) { if (ev && ev.preventDefault) {
ev.preventDefault(); ev.preventDefault();
} }
this.model.messages.off('add',null,this);
this.remove(); this.remove();
this.model.maximize(); this.model.maximize();
}, 200) }, 200)
@ -30620,7 +30736,12 @@ define("converse-templates", [
}, },
showInRoster: function () { showInRoster: function () {
return (!converse.show_only_online_users || this.get('chat_status') === 'online'); var chatStatus = this.get('chat_status');
if (converse.show_only_online_users && chatStatus !== 'online')
return false;
if (converse.hide_offline_users && chatStatus === 'offline')
return false;
return true;
} }
}); });
@ -30641,54 +30762,6 @@ define("converse-templates", [
this.model.on("open", this.openChat, this); this.model.on("open", this.openChat, this);
}, },
openChat: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
// XXX: Can this.model.attributes be used here, instead of
// manually specifying all attributes?
return converse.chatboxviews.showChat({
'id': this.model.get('jid'),
'jid': this.model.get('jid'),
'fullname': this.model.get('fullname'),
'image_type': this.model.get('image_type'),
'image': this.model.get('image'),
'url': this.model.get('url'),
'status': this.model.get('status')
});
},
removeContact: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var result = confirm(__("Are you sure you want to remove this contact?"));
if (result === true) {
var bare_jid = this.model.get('jid');
converse.connection.roster.remove(bare_jid, $.proxy(function (iq) {
converse.connection.roster.unauthorize(bare_jid);
converse.rosterview.model.remove(bare_jid);
this.model.destroy();
this.remove();
}, this));
}
},
acceptRequest: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var jid = this.model.get('jid');
converse.connection.roster.authorize(jid);
converse.connection.roster.add(jid, this.model.get('fullname'), [], function (iq) {
converse.connection.roster.subscribe(jid, null, converse.xmppstatus.get('fullname'));
});
},
declineRequest: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var result = confirm(__("Are you sure you want to decline this contact request?"));
if (result === true) {
converse.connection.roster.unauthorize(this.model.get('jid'));
this.model.destroy();
}
return this;
},
render: function () { render: function () {
if (!this.model.showInRoster()) { if (!this.model.showInRoster()) {
this.$el.hide(); this.$el.hide();
@ -30754,6 +30827,54 @@ define("converse-templates", [
)); ));
} }
return this; return this;
},
openChat: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
// XXX: Can this.model.attributes be used here, instead of
// manually specifying all attributes?
return converse.chatboxviews.showChat({
'id': this.model.get('jid'),
'jid': this.model.get('jid'),
'fullname': this.model.get('fullname'),
'image_type': this.model.get('image_type'),
'image': this.model.get('image'),
'url': this.model.get('url'),
'status': this.model.get('status')
});
},
removeContact: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var result = confirm(__("Are you sure you want to remove this contact?"));
if (result === true) {
var bare_jid = this.model.get('jid');
converse.connection.roster.remove(bare_jid, $.proxy(function (iq) {
converse.connection.roster.unauthorize(bare_jid);
converse.rosterview.model.remove(bare_jid);
this.model.destroy();
this.remove();
}, this));
}
},
acceptRequest: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var jid = this.model.get('jid');
converse.connection.roster.authorize(jid);
converse.connection.roster.add(jid, this.model.get('fullname'), [], function (iq) {
converse.connection.roster.subscribe(jid, null, converse.xmppstatus.get('fullname'));
});
},
declineRequest: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var result = confirm(__("Are you sure you want to decline this contact request?"));
if (result === true) {
converse.connection.roster.unauthorize(this.model.get('jid'));
this.model.destroy();
}
return this;
} }
}); });
@ -30814,7 +30935,7 @@ define("converse-templates", [
idx = _.indexOf(resources, resource); idx = _.indexOf(resources, resource);
if (idx !== -1) { if (idx !== -1) {
resources.splice(idx, 1); resources.splice(idx, 1);
item.set({'resources': resources}); item.save({'resources': resources});
return resources.length; return resources.length;
} }
} }
@ -30959,7 +31080,7 @@ define("converse-templates", [
converse.getVCard( converse.getVCard(
bare_jid, bare_jid,
$.proxy(function (jid, fullname, img, img_type, url) { $.proxy(function (jid, fullname, img, img_type, url) {
this.add({ this.create({
jid: bare_jid, jid: bare_jid,
subscription: 'none', subscription: 'none',
ask: null, ask: null,
@ -30973,7 +31094,7 @@ define("converse-templates", [
}, this), }, this),
$.proxy(function (jid, iq) { $.proxy(function (jid, iq) {
converse.log("Error while retrieving vcard"); converse.log("Error while retrieving vcard");
this.add({ this.create({
jid: bare_jid, jid: bare_jid,
subscription: 'none', subscription: 'none',
ask: null, ask: null,
@ -31026,9 +31147,10 @@ define("converse-templates", [
this.unsubscribe(bare_jid); this.unsubscribe(bare_jid);
} else if (presence_type === 'unavailable') { } else if (presence_type === 'unavailable') {
if (this.removeResource(bare_jid, resource) === 0) { if (this.removeResource(bare_jid, resource) === 0) {
if (contact) { chat_status = "offline";
contact.save({'chat_status': 'offline'});
} }
if (contact && chat_status) {
contact.save({'chat_status': chat_status});
} }
} else if (contact) { } else if (contact) {
// presence_type is undefined // presence_type is undefined
@ -31141,7 +31263,7 @@ define("converse-templates", [
} }
}, this)); }, this));
} }
this.showIfInvisible(); this.showIfNecessary();
} else { } else {
q = q.toLowerCase(); q = q.toLowerCase();
matches = this.model.contacts.filter(contains.not('fullname', q)); matches = this.model.contacts.filter(contains.not('fullname', q));
@ -31154,13 +31276,13 @@ define("converse-templates", [
_.each(this.model.contacts.reject(contains.not('fullname', q)), $.proxy(function (item) { _.each(this.model.contacts.reject(contains.not('fullname', q)), $.proxy(function (item) {
this.get(item.get('id')).$el.show(); this.get(item.get('id')).$el.show();
}, this)); }, this));
this.showIfInvisible(); this.showIfNecessary();
} }
} }
}, },
showIfInvisible: function () { showIfNecessary: function () {
if (!this.$el.is(':visible')) { if (!this.$el.is(':visible') && this.model.contacts.length > 0) {
this.$el.show(); this.$el.show();
} }
}, },
@ -31365,9 +31487,10 @@ define("converse-templates", [
liveFilter: _.debounce(function (ev) { liveFilter: _.debounce(function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); } if (ev && ev.preventDefault) { ev.preventDefault(); }
var q = ev.target.value; var $filter = this.$('.roster-filter');
var q = $filter.val();
var t = this.$('.filter-type').val(); var t = this.$('.filter-type').val();
$(ev.target)[this.tog(q)]('x'); $filter[this.tog(q)]('x');
this.filter(q, t); this.filter(q, t);
}, 300), }, 300),
@ -31472,6 +31595,7 @@ define("converse-templates", [
if (_.has(contact.changed, 'subscription') && contact.changed.requesting == 'true') { if (_.has(contact.changed, 'subscription') && contact.changed.requesting == 'true') {
this.addContactToGroup(contact, HEADER_REQUESTING_CONTACTS); this.addContactToGroup(contact, HEADER_REQUESTING_CONTACTS);
} }
this.liveFilter();
}, },
updateChatBox: function (contact) { updateChatBox: function (contact) {
@ -31626,6 +31750,11 @@ define("converse-templates", [
(type === 'subscribe') || (type === 'subscribe') ||
(type === 'subscribed')) { (type === 'subscribed')) {
presence = $pres({'type': type}); presence = $pres({'type': type});
} else if (type === 'offline') {
presence = $pres({'type': 'unavailable'});
if (status_message) {
presence.c('show').t(type);
}
} else { } else {
if (type === 'online') { if (type === 'online') {
presence = $pres(); presence = $pres();
@ -31815,7 +31944,7 @@ define("converse-templates", [
converse.connection.disco.addFeature('http://jabber.org/protocol/rosterx'); // Limited support converse.connection.disco.addFeature('http://jabber.org/protocol/rosterx'); // Limited support
converse.connection.disco.addFeature('jabber:x:conference'); converse.connection.disco.addFeature('jabber:x:conference');
converse.connection.disco.addFeature('urn:xmpp:carbons:2'); converse.connection.disco.addFeature('urn:xmpp:carbons:2');
converse.connection.disco.addFeature('vcard-temp'); converse.connection.disco.addFeature(Strophe.NS.VCARD);
converse.connection.disco.addFeature(Strophe.NS.BOSH); converse.connection.disco.addFeature(Strophe.NS.BOSH);
converse.connection.disco.addFeature(Strophe.NS.DISCO_INFO); converse.connection.disco.addFeature(Strophe.NS.DISCO_INFO);
converse.connection.disco.addFeature(Strophe.NS.MUC); converse.connection.disco.addFeature(Strophe.NS.MUC);
@ -32091,55 +32220,150 @@ define("converse-templates", [
'initiateOTR': $.proxy(chatbox.initiateOTR, chatbox), 'initiateOTR': $.proxy(chatbox.initiateOTR, chatbox),
'maximize': $.proxy(chatbox.maximize, chatbox), 'maximize': $.proxy(chatbox.maximize, chatbox),
'minimize': $.proxy(chatbox.minimize, chatbox), 'minimize': $.proxy(chatbox.minimize, chatbox),
'set': $.proxy(chatbox.set, chatbox) 'set': $.proxy(chatbox.set, chatbox),
'open': chatbox.trigger.bind(chatbox, 'show')
}; };
}; };
return { return {
'getBuddy': function (jid) { 'initialize': function (settings, callback) {
converse.initialize(settings, callback);
},
'contacts': {
'get': function (jids) {
var _transform = function (jid) {
var contact = converse.roster.get(Strophe.getBareJidFromJid(jid)); var contact = converse.roster.get(Strophe.getBareJidFromJid(jid));
if (contact) { if (contact) {
return contact.attributes; return contact.attributes;
} }
},
'getChatBox': function (jid) {
var chatbox = converse.chatboxes.get(jid);
if (chatbox) {
return wrappedChatBox(chatbox);
}
},
'getRID': function () {
if (converse.expose_rid_and_sid && typeof converse.connection !== "undefined") {
return converse.connection.rid || converse.connection._proto.rid;
}
return null; return null;
};
if (typeof jids === "string") {
return _transform(jids);
}
return _.map(jids, _transform);
}
}, },
'getSID': function () { 'chats': {
if (converse.expose_rid_and_sid && typeof converse.connection !== "undefined") { 'get': function (jids) {
var _transform = function (jid) {
var chatbox = converse.chatboxes.get(jid);
if (!chatbox) {
var roster_item = converse.roster.get(jid);
if (roster_item === undefined) {
converse.log('Could not get roster item for JID '+jid, 'error');
return null;
}
chatbox = converse.chatboxes.create({
'id': jid,
'jid': jid,
'fullname': _.isEmpty(roster_item.get('fullname'))? jid: roster_item.get('fullname'),
'image_type': roster_item.get('image_type'),
'image': roster_item.get('image'),
'url': roster_item.get('url')
});
}
return wrappedChatBox(chatbox);
};
if (typeof jids === "string") {
return _transform(jids);
}
return _.map(jids, _transform);
}
},
'tokens': {
'get': function (id) {
if (!converse.expose_rid_and_sid || typeof converse.connection === "undefined") {
return null;
}
if (id.toLowerCase() === 'rid') {
return converse.connection.rid || converse.connection._proto.rid;
} else if (id.toLowerCase() === 'sid') {
return converse.connection.sid || converse.connection._proto.sid; return converse.connection.sid || converse.connection._proto.sid;
} }
return null;
},
'initialize': function (settings, callback) {
converse.initialize(settings, callback);
},
'jQuery': $,
'openChatBox': function (jid) {
var contact = converse.roster.get(Strophe.getBareJidFromJid(jid));
if (contact) {
return wrappedChatBox(converse.chatboxviews.showChat(contact.attributes));
} }
}, },
'listen': {
'once': function (evt, handler) { 'once': function (evt, handler) {
converse.once(evt, handler); converse.once(evt, handler);
}, },
'on': function (evt, handler) { 'on': function (evt, handler) {
converse.on(evt, handler); converse.on(evt, handler);
}, },
'off': function (evt, handler) { 'not': function (evt, handler) {
converse.off(evt, handler); converse.off(evt, handler);
}, },
'registerPlugin': function (name, callback) { },
'plugins': {
'add': function (name, callback) {
converse.plugins[name] = callback; converse.plugins[name] = callback;
},
'remove': function (name) {
delete converse.plugins[name];
},
'extend': function (obj, attributes) {
/* Helper method for overriding or extending Converse's Backbone Views or Models
*
* When a method is overriden, the original will still be available
* on the _super attribute of the object being overridden.
*
* obj: The Backbone View or Model
* attributes: A hash of attributes, such as you would pass to Backbone.Model.extend or Backbone.View.extend
*/
if (!obj.prototype._super) {
obj.prototype._super = {};
}
_.each(attributes, function (value, key) {
if (key === 'events') {
obj.prototype[key] = _.extend(value, obj.prototype[key]);
} else {
if (typeof key === 'function') {
obj.prototype._super[key] = obj.prototype[key];
}
obj.prototype[key] = value;
}
});
}
},
'env': {
'jQuery': $,
'Strophe': Strophe,
'_': _
},
// Deprecated API methods
'getBuddy': function (jid) {
converse.log('WARNING: the "getBuddy" API method has been deprecated. Please use "contacts.get" instead');
return this.contacts.get(jid);
},
'getChatBox': function (jid) {
converse.log('WARNING: the "getChatBox" API method has been deprecated. Please use "chats.get" instead');
return this.chats.get(jid);
},
'openChatBox': function (jid) {
converse.log('WARNING: the "openChatBox" API method has been deprecated. Please use "chats.get(jid).open()" instead');
var chat = this.chats.get(jid);
if (chat) { chat.open(); }
return chat;
},
'getRID': function () {
converse.log('WARNING: the "getRID" API method has been deprecated. Please use "tokens.get(\'rid\')" instead');
return this.tokens.get('rid');
},
'getSID': function () {
converse.log('WARNING: the "getSID" API method has been deprecated. Please use "tokens.get(\'sid\')" instead');
return this.tokens.get('sid');
},
'once': function (evt, handler) {
converse.log('WARNING: the "one" API method has been deprecated. Please use "listen.once" instead');
return this.listen.once(evt, handler);
},
'on': function (evt, handler) {
converse.log('WARNING: the "on" API method has been deprecated. Please use "listen.on" instead');
return this.listen.on(evt, handler);
},
'off': function (evt, handler) {
converse.log('WARNING: the "off" API method has been deprecated. Please use "listen.not" instead');
return this.listen.not(evt, handler);
} }
}; };
})); }));
@ -32249,7 +32473,8 @@ require.config({
"status_option": "src/templates/status_option", "status_option": "src/templates/status_option",
"toggle_chats": "src/templates/toggle_chats", "toggle_chats": "src/templates/toggle_chats",
"toolbar": "src/templates/toolbar", "toolbar": "src/templates/toolbar",
"trimmed_chat": "src/templates/trimmed_chat" "trimmed_chat": "src/templates/trimmed_chat",
"form_textarea": "src/templates/form_textarea"
}, },
map: { map: {

File diff suppressed because one or more lines are too long

View File

@ -32072,7 +32072,7 @@ Strophe.addConnectionPlugin('roster',
oldCallback.apply(this, arguments); oldCallback.apply(this, arguments);
} }
}; };
conn.connect = function(jid, pass, callback, wait, hold) conn.connect = function(jid, pass, callback, wait, hold, route)
{ {
oldCallback = callback; oldCallback = callback;
if (typeof jid == "undefined") if (typeof jid == "undefined")
@ -32080,7 +32080,7 @@ Strophe.addConnectionPlugin('roster',
if (typeof pass == "undefined") if (typeof pass == "undefined")
pass = null; pass = null;
callback = newCallback; callback = newCallback;
_connect.apply(conn, [jid, pass, callback, wait, hold]); _connect.apply(conn, [jid, pass, callback, wait, hold, route]);
}; };
conn.attach = function(jid, sid, rid, callback, wait, hold, wind) conn.attach = function(jid, sid, rid, callback, wait, hold, wind)
{ {
@ -33502,9 +33502,21 @@ var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments
with(obj||{}){ with(obj||{}){
__p+='<field var="'+ __p+='<field var="'+
((__t=(name))==null?'':__t)+ ((__t=(name))==null?'':__t)+
'"><value>'+ '">';
if (_.isArray(value)) {
__p+='\n ';
_.each(value,function(arrayValue) {
__p+='<value>'+
((__t=(arrayValue))==null?'':__t)+
'</value>';
});
__p+='\n';
} else {
__p+='\n <value>'+
((__t=(value))==null?'':__t)+ ((__t=(value))==null?'':__t)+
'</value></field>\n'; '</value>\n';
}
__p+='</field>\n';
} }
return __p; return __p;
}; }); }; });
@ -33551,7 +33563,11 @@ __p+='<label>'+
((__t=(label))==null?'':__t)+ ((__t=(label))==null?'':__t)+
'<select name="'+ '<select name="'+
((__t=(name))==null?'':__t)+ ((__t=(name))==null?'':__t)+
'">'+ '" ';
if (multiple) {
__p+=' multiple="multiple" ';
}
__p+='>'+
((__t=(options))==null?'':__t)+ ((__t=(options))==null?'':__t)+
'</select></label>\n'; '</select></label>\n';
} }
@ -33896,7 +33912,11 @@ var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments
with(obj||{}){ with(obj||{}){
__p+='<option value="'+ __p+='<option value="'+
((__t=(value))==null?'':__t)+ ((__t=(value))==null?'':__t)+
'">'+ '" ';
if (selected) {
__p+=' selected="selected" ';
}
__p+=' >'+
((__t=(label))==null?'':__t)+ ((__t=(label))==null?'':__t)+
'</option>\n'; '</option>\n';
} }
@ -34052,6 +34072,21 @@ __p+='\n href="#">'+
return __p; return __p;
}; }); }; });
define('tpl!form_textarea', [],function () { return function(obj){
var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};
with(obj||{}){
__p+='<label class="label-ta">'+
((__t=(label))==null?'':__t)+
'<textarea name="'+
((__t=(name))==null?'':__t)+
'">'+
((__t=(value))==null?'':__t)+
'</textarea></label>\n';
}
return __p;
}; });
define("converse-templates", [ define("converse-templates", [
"tpl!action", "tpl!action",
"tpl!add_contact_dropdown", "tpl!add_contact_dropdown",
@ -34095,7 +34130,8 @@ define("converse-templates", [
"tpl!status_option", "tpl!status_option",
"tpl!toggle_chats", "tpl!toggle_chats",
"tpl!toolbar", "tpl!toolbar",
"tpl!trimmed_chat" "tpl!trimmed_chat",
"tpl!form_textarea"
], function () { ], function () {
return { return {
action: arguments[0], action: arguments[0],
@ -34140,7 +34176,8 @@ define("converse-templates", [
status_option: arguments[39], status_option: arguments[39],
toggle_chats: arguments[40], toggle_chats: arguments[40],
toolbar: arguments[41], toolbar: arguments[41],
trimmed_chat: arguments[42] trimmed_chat: arguments[42],
form_textarea: arguments[43]
}; };
}); });
@ -34363,6 +34400,7 @@ define("converse-templates", [
this.expose_rid_and_sid = false; this.expose_rid_and_sid = false;
this.forward_messages = false; this.forward_messages = false;
this.hide_muc_server = false; this.hide_muc_server = false;
this.hide_offline_users = false;
this.i18n = locales.en; this.i18n = locales.en;
this.keepalive = false; this.keepalive = false;
this.message_carbons = false; this.message_carbons = false;
@ -34403,14 +34441,15 @@ define("converse-templates", [
'connection', 'connection',
'debug', 'debug',
'default_box_height', 'default_box_height',
'keepalive',
'message_carbons',
'expose_rid_and_sid', 'expose_rid_and_sid',
'forward_messages', 'forward_messages',
'fullname', 'fullname',
'hide_muc_server', 'hide_muc_server',
'hide_offline_users',
'i18n', 'i18n',
'jid', 'jid',
'keepalive',
'message_carbons',
'no_trimming', 'no_trimming',
'play_sounds', 'play_sounds',
'prebind', 'prebind',
@ -34777,7 +34816,11 @@ define("converse-templates", [
.c('enable', {xmlns: 'urn:xmpp:carbons:2'}); .c('enable', {xmlns: 'urn:xmpp:carbons:2'});
this.connection.send(carbons_iq); this.connection.send(carbons_iq);
this.connection.addHandler(function (iq) { this.connection.addHandler(function (iq) {
//TODO: check if carbons was enabled: if ($(iq).find('error').length > 0) {
converse.log('ERROR: An error occured while trying to enable message carbons.');
} else {
converse.log('Message carbons appear to have been enabled.');
}
}, null, "iq", null, "enablecarbons"); }, null, "iq", null, "enablecarbons");
}; };
@ -34972,7 +35015,7 @@ define("converse-templates", [
switch (type) { switch (type) {
case 'question': case 'question':
this.otr.smpSecret(prompt(__( 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', 'Authentication request from %1$s\n\nYour chat contact is attempting to verify your identity, by asking you the question below.\n\n%2$s',
[this.get('fullname'), data]))); [this.get('fullname'), data])));
break; break;
case 'trust': case 'trust':
@ -34996,7 +35039,7 @@ define("converse-templates", [
// encrypted messages. // encrypted messages.
// //
// If 'query_msg' is passed in, it means there is an alread incoming // If 'query_msg' is passed in, it means there is an alread incoming
// query message from our buddy. Otherwise, it is us who will // query message from our contact. Otherwise, it is us who will
// send the query message to them. // send the query message to them.
this.save({'otr_status': UNENCRYPTED}); this.save({'otr_status': UNENCRYPTED});
var session = this.getSession($.proxy(function (session) { var session = this.getSession($.proxy(function (session) {
@ -35020,7 +35063,7 @@ define("converse-templates", [
this.trigger('showOTRError', msg); this.trigger('showOTRError', msg);
}, this)); }, this));
this.trigger('showHelpMessages', [__('Exchanging private key with buddy.')]); this.trigger('showHelpMessages', [__('Exchanging private key with contact.')]);
if (query_msg) { if (query_msg) {
this.otr.receiveMsg(query_msg); this.otr.receiveMsg(query_msg);
} else { } else {
@ -35144,6 +35187,7 @@ define("converse-templates", [
this.model.on('destroy', this.hide, this); this.model.on('destroy', this.hide, this);
this.model.on('change', this.onChange, this); this.model.on('change', this.onChange, this);
this.model.on('showOTRError', this.showOTRError, this); this.model.on('showOTRError', this.showOTRError, this);
// XXX: doesn't look like this event is being used?
this.model.on('buddyStartsOTR', this.buddyStartsOTR, this); this.model.on('buddyStartsOTR', this.buddyStartsOTR, this);
this.model.on('showHelpMessages', this.showHelpMessages, this); this.model.on('showHelpMessages', this.showHelpMessages, this);
this.model.on('sendMessageStanza', this.sendMessageStanza, this); this.model.on('sendMessageStanza', this.sendMessageStanza, this);
@ -35216,7 +35260,7 @@ define("converse-templates", [
msg_time = moment(msg_dict.time) || moment, msg_time = moment(msg_dict.time) || moment,
text = msg_dict.message, text = msg_dict.message,
match = text.match(/^\/(.*?)(?: (.*))?$/), match = text.match(/^\/(.*?)(?: (.*))?$/),
fullname = msg_dict.fullname || this.model.get('fullname'), // XXX Perhaps always use model's? fullname = this.model.get('fullname'), // XXX Perhaps always use model's?
extra_classes = msg_dict.delayed && 'delayed' || '', extra_classes = msg_dict.delayed && 'delayed' || '',
template, username; template, username;
@ -35496,7 +35540,7 @@ define("converse-templates", [
this.model.save({'otr_status': UNVERIFIED}); this.model.save({'otr_status': UNVERIFIED});
} }
} else if (scheme === 'smp') { } 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 be verified.')); alert(__('You will be prompted to provide a security question and then an answer to that question.\n\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.'));
question = prompt(__('What is your security question?')); question = prompt(__('What is your security question?'));
if (question) { if (question) {
answer = prompt(__('What is the answer to the security question?')); answer = prompt(__('What is the answer to the security question?'));
@ -35531,10 +35575,14 @@ define("converse-templates", [
this.$el.find('div.chat-event').remove(); this.$el.find('div.chat-event').remove();
} }
} }
converse.emit('contactStatusChanged', item.attributes, item.get('chat_status'));
// TODO: DEPRECATED AND SHOULD BE REMOVED IN 0.9.0
converse.emit('buddyStatusChanged', item.attributes, item.get('chat_status')); converse.emit('buddyStatusChanged', item.attributes, item.get('chat_status'));
} }
if (_.has(item.changed, 'status')) { if (_.has(item.changed, 'status')) {
this.showStatusMessage(); this.showStatusMessage();
converse.emit('contactStatusMessageChanged', item.attributes, item.get('status'));
// TODO: DEPRECATED AND SHOULD BE REMOVED IN 0.9.0
converse.emit('buddyStatusMessageChanged', item.attributes, item.get('status')); converse.emit('buddyStatusMessageChanged', item.attributes, item.get('status'));
} }
if (_.has(item.changed, 'image')) { if (_.has(item.changed, 'image')) {
@ -35555,7 +35603,7 @@ define("converse-templates", [
showStatusMessage: function (msg) { showStatusMessage: function (msg) {
msg = msg || this.model.get('status'); msg = msg || this.model.get('status');
if (msg) { if (typeof msg === "string") {
this.$el.find('p.user-custom-message').text(msg).attr('title', msg); this.$el.find('p.user-custom-message').text(msg).attr('title', msg);
} }
return this; return this;
@ -35616,11 +35664,11 @@ define("converse-templates", [
if (data.otr_status == UNENCRYPTED) { if (data.otr_status == UNENCRYPTED) {
msgs.push(__("Your messages are not encrypted anymore")); msgs.push(__("Your messages are not encrypted anymore"));
} else if (data.otr_status == UNVERIFIED){ } else if (data.otr_status == UNVERIFIED){
msgs.push(__("Your messages are now encrypted but your buddy's identity has not been verified.")); msgs.push(__("Your messages are now encrypted but your contact's identity has not been verified."));
} else if (data.otr_status == VERIFIED){ } else if (data.otr_status == VERIFIED){
msgs.push(__("Your buddy's identify has been verified.")); msgs.push(__("Your contact's identify has been verified."));
} else if (data.otr_status == FINISHED){ } else if (data.otr_status == FINISHED){
msgs.push(__("Your buddy has ended encryption on their end, you should do the same.")); msgs.push(__("Your contact has ended encryption on their end, you should do the same."));
} }
return this.showHelpMessages(msgs, 'info', false); return this.showHelpMessages(msgs, 'info', false);
}, },
@ -35631,11 +35679,11 @@ define("converse-templates", [
if (data.otr_status == UNENCRYPTED) { if (data.otr_status == UNENCRYPTED) {
data.otr_tooltip = __('Your messages are not encrypted. Click here to enable OTR encryption.'); data.otr_tooltip = __('Your messages are not encrypted. Click here to enable OTR encryption.');
} else if (data.otr_status == UNVERIFIED){ } else if (data.otr_status == UNVERIFIED){
data.otr_tooltip = __('Your messages are encrypted, but your buddy has not been verified.'); data.otr_tooltip = __('Your messages are encrypted, but your contact has not been verified.');
} else if (data.otr_status == VERIFIED){ } else if (data.otr_status == VERIFIED){
data.otr_tooltip = __('Your messages are encrypted and your buddy verified.'); data.otr_tooltip = __('Your messages are encrypted and your contact verified.');
} else if (data.otr_status == FINISHED){ } 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.otr_tooltip = __('Your contact has closed their end of the private session, you should do the same');
} }
this.$el.find('.chat-toolbar').html( this.$el.find('.chat-toolbar').html(
converse.templates.toolbar( converse.templates.toolbar(
@ -35843,11 +35891,19 @@ define("converse-templates", [
'submit form.add-chatroom': 'createChatRoom', 'submit form.add-chatroom': 'createChatRoom',
'click input#show-rooms': 'showRooms', 'click input#show-rooms': 'showRooms',
'click a.open-room': 'createChatRoom', 'click a.open-room': 'createChatRoom',
'click a.room-info': 'showRoomInfo' 'click a.room-info': 'showRoomInfo',
'change input[name=server]': 'setDomain',
'change input[name=nick]': 'setNick'
}, },
initialize: function (cfg) { initialize: function (cfg) {
cfg.$parent.append( this.$parent = cfg.$parent;
this.model.on('change:muc_domain', this.onDomainChange, this);
this.model.on('change:nick', this.onNickChange, this);
},
render: function () {
this.$parent.append(
this.$el.html( this.$el.html(
converse.templates.room_panel({ converse.templates.room_panel({
'server_input_type': converse.hide_muc_server && 'hidden' || 'text', 'server_input_type': converse.hide_muc_server && 'hidden' || 'text',
@ -35858,37 +35914,34 @@ define("converse-templates", [
'label_show_rooms': __('Show rooms') 'label_show_rooms': __('Show rooms')
}) })
).hide()); ).hide());
this.$tabs = cfg.$parent.parent().find('#controlbox-tabs'); this.$tabs = this.$parent.parent().find('#controlbox-tabs');
this.on('update-rooms-list', function (ev) {
this.updateRoomsList();
});
converse.xmppstatus.on("change", $.proxy(function (model) {
if (!(_.has(model.changed, 'fullname'))) {
return;
}
var $nick = this.$el.find('input.new-chatroom-nick');
if (! $nick.is(':focus')) {
$nick.val(model.get('fullname'));
}
}, this));
},
render: function () {
this.$tabs.append(converse.templates.chatrooms_tab({label_rooms: __('Rooms')})); this.$tabs.append(converse.templates.chatrooms_tab({label_rooms: __('Rooms')}));
return this; return this;
}, },
onDomainChange: function (model) {
var $server = this.$el.find('input.new-chatroom-server');
$server.val(model.get('muc_domain'));
if (converse.auto_list_rooms) {
this.updateRoomsList();
}
},
onNickChange: function (model) {
var $nick = this.$el.find('input.new-chatroom-nick');
$nick.val(model.get('nick'));
},
informNoRoomsFound: function () { informNoRoomsFound: function () {
var $available_chatrooms = this.$el.find('#available-chatrooms'); var $available_chatrooms = this.$el.find('#available-chatrooms');
// # For translators: %1$s is a variable and will be replaced with the XMPP server name // # For translators: %1$s is a variable and will be replaced with the XMPP server name
$available_chatrooms.html('<dt>'+__('No rooms on %1$s',this.muc_domain)+'</dt>'); $available_chatrooms.html('<dt>'+__('No rooms on %1$s',this.model.get('muc_domain'))+'</dt>');
$('input#show-rooms').show().siblings('span.spinner').remove(); $('input#show-rooms').show().siblings('span.spinner').remove();
}, },
updateRoomsList: function (domain) { updateRoomsList: function () {
converse.connection.muc.listRooms( converse.connection.muc.listRooms(
this.muc_domain, this.model.get('muc_domain'),
$.proxy(function (iq) { // Success $.proxy(function (iq) { // Success
var name, jid, i, fragment, var name, jid, i, fragment,
that = this, that = this,
@ -35897,7 +35950,7 @@ define("converse-templates", [
if (this.rooms.length) { if (this.rooms.length) {
// # For translators: %1$s is a variable and will be // # For translators: %1$s is a variable and will be
// # replaced with the XMPP server name // # replaced with the XMPP server name
$available_chatrooms.html('<dt>'+__('Rooms on %1$s',this.muc_domain)+'</dt>'); $available_chatrooms.html('<dt>'+__('Rooms on %1$s',this.model.get('muc_domain'))+'</dt>');
fragment = document.createDocumentFragment(); fragment = document.createDocumentFragment();
for (i=0; i<this.rooms.length; i++) { for (i=0; i<this.rooms.length; i++) {
name = Strophe.unescapeNode($(this.rooms[i]).attr('name')||$(this.rooms[i]).attr('jid')); name = Strophe.unescapeNode($(this.rooms[i]).attr('name')||$(this.rooms[i]).attr('jid'));
@ -35935,7 +35988,7 @@ define("converse-templates", [
$server.removeClass('error'); $server.removeClass('error');
$available_chatrooms.empty(); $available_chatrooms.empty();
$('input#show-rooms').hide().after('<span class="spinner"/>'); $('input#show-rooms').hide().after('<span class="spinner"/>');
this.muc_domain = server; this.model.save({muc_domain: server});
this.updateRoomsList(); this.updateRoomsList();
}, },
@ -36012,7 +36065,7 @@ define("converse-templates", [
jid = Strophe.escapeNode(name) + '@' + server; jid = Strophe.escapeNode(name) + '@' + server;
$name.removeClass('error'); $name.removeClass('error');
$server.removeClass('error'); $server.removeClass('error');
this.muc_domain = server; this.model.save({muc_domain: server});
} else { } else {
if (!name) { $name.addClass('error'); } if (!name) { $name.addClass('error'); }
if (!server) { $server.addClass('error'); } if (!server) { $server.addClass('error'); }
@ -36028,6 +36081,14 @@ define("converse-templates", [
'chatroom': true, 'chatroom': true,
'box_id' : b64_sha1(jid) 'box_id' : b64_sha1(jid)
}); });
},
setDomain: function (ev) {
this.model.save({muc_domain: ev.target.value});
},
setNick: function (ev) {
this.model.save({nick: ev.target.value});
} }
}); });
@ -36121,14 +36182,25 @@ define("converse-templates", [
}, },
renderContactsPanel: function () { renderContactsPanel: function () {
var model;
this.$el.html(converse.templates.controlbox(this.model.toJSON())); this.$el.html(converse.templates.controlbox(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(); this.contactspanel.render();
converse.xmppstatusview = new converse.XMPPStatusView({'model': converse.xmppstatus}); converse.xmppstatusview = new converse.XMPPStatusView({'model': converse.xmppstatus});
converse.xmppstatusview.render(); converse.xmppstatusview.render();
if (converse.allow_muc) { if (converse.allow_muc) {
this.roomspanel = new converse.RoomsPanel({'$parent': this.$el.find('.controlbox-panes')}); this.roomspanel = new converse.RoomsPanel({
this.roomspanel.render(); '$parent': this.$el.find('.controlbox-panes'),
'model': new (Backbone.Model.extend({
id: b64_sha1('converse.roomspanel'+converse.bare_jid), // Required by sessionStorage
browserStorage: new Backbone.BrowserStorage[converse.storage](
b64_sha1('converse.roomspanel'+converse.bare_jid))
}))()
});
this.roomspanel.render().model.fetch();
if (!this.roomspanel.model.get('nick')) {
this.roomspanel.model.save({nick: Strophe.getNodeFromJid(converse.bare_jid)});
}
} }
this.initDragResize(); this.initDragResize();
}, },
@ -36180,13 +36252,10 @@ define("converse-templates", [
featureAdded: function (feature) { featureAdded: function (feature) {
if ((feature.get('var') == 'http://jabber.org/protocol/muc') && (converse.allow_muc)) { if ((feature.get('var') == 'http://jabber.org/protocol/muc') && (converse.allow_muc)) {
this.roomspanel.muc_domain = feature.get('from'); this.roomspanel.model.save({muc_domain: feature.get('from')});
var $server= this.$el.find('input.new-chatroom-server'); var $server= this.$el.find('input.new-chatroom-server');
if (! $server.is(':focus')) { if (! $server.is(':focus')) {
$server.val(this.roomspanel.muc_domain); $server.val(this.roomspanel.model.get('muc_domain'));
}
if (converse.auto_list_rooms) {
this.roomspanel.trigger('update-rooms-list');
} }
} }
}, },
@ -36535,13 +36604,17 @@ define("converse-templates", [
$fields = $stanza.find('field'), $fields = $stanza.find('field'),
title = $stanza.find('title').text(), title = $stanza.find('title').text(),
instructions = $stanza.find('instructions').text(), instructions = $stanza.find('instructions').text(),
i, j, options=[], $field, $options; i, j, options=[], $field, $options,
values=[], $values, value;
var input_types = { var input_types = {
'text-private': 'password', 'text-private': 'password',
'text-single': 'textline', 'text-single': 'textline',
'fixed': 'label',
'boolean': 'checkbox', 'boolean': 'checkbox',
'hidden': 'hidden', 'hidden': 'hidden',
'list-single': 'dropdown' 'jid-multi': 'textarea',
'list-single': 'dropdown',
'list-multi': 'dropdown'
}; };
$form.find('span.spinner').remove(); $form.find('span.spinner').remove();
$form.append($('<legend>').text(title)); $form.append($('<legend>').text(title));
@ -36550,19 +36623,35 @@ define("converse-templates", [
} }
for (i=0; i<$fields.length; i++) { for (i=0; i<$fields.length; i++) {
$field = $($fields[i]); $field = $($fields[i]);
if ($field.attr('type') == 'list-single') { if ($field.attr('type') == 'list-single' || $field.attr('type') == 'list-multi') {
values = [];
$values = $field.children('value');
for (j=0; j<$values.length; j++) {
values.push($($values[j]).text());
}
options = []; options = [];
$options = $field.find('option'); $options = $field.children('option');
for (j=0; j<$options.length; j++) { for (j=0; j<$options.length; j++) {
value = $($options[j]).find('value').text();
options.push(converse.templates.select_option({ options.push(converse.templates.select_option({
value: $($options[j]).find('value').text(), value: value,
label: $($options[j]).attr('label') label: $($options[j]).attr('label'),
selected: (values.indexOf(value) >= 0)
})); }));
} }
$form.append(converse.templates.form_select({ $form.append(converse.templates.form_select({
name: $field.attr('var'), name: $field.attr('var'),
label: $field.attr('label'), label: $field.attr('label'),
options: options.join('') options: options.join(''),
multiple: ($field.attr('type') == 'list-multi')
}));
} else if ($field.attr('type') == 'fixed') {
$form.append($('<p>').text($field.find('value').text()));
} else if ($field.attr('type') == 'jid-multi') {
$form.append(converse.templates.form_textarea({
name: $field.attr('var'),
label: $field.attr('label') || '',
value: $field.find('value').text()
})); }));
} else if ($field.attr('type') == 'boolean') { } else if ($field.attr('type') == 'boolean') {
$form.append(converse.templates.form_checkbox({ $form.append(converse.templates.form_checkbox({
@ -36596,6 +36685,15 @@ define("converse-templates", [
var $input = $(this), value; var $input = $(this), value;
if ($input.is('[type=checkbox]')) { if ($input.is('[type=checkbox]')) {
value = $input.is(':checked') && 1 || 0; value = $input.is(':checked') && 1 || 0;
} else if ($input.is('textarea')) {
value = [];
var lines = $input.val().split('\n');
for( var vk=0; vk<lines.length; vk++) {
var val = $.trim(lines[vk]);
if (val === '')
continue;
value.push(val);
}
} else { } else {
value = $input.val(); value = $input.val();
} }
@ -36870,7 +36968,7 @@ define("converse-templates", [
delayed = $message.find('delay').length > 0, delayed = $message.find('delay').length > 0,
subject = $message.children('subject').text(); subject = $message.children('subject').text();
if (this.model.messages.findWhere({msgid: msgid})) { if (msgid && this.model.messages.findWhere({msgid: msgid})) {
return true; // We already have this message stored. return true; // We already have this message stored.
} }
this.showStatusMessages($message); this.showStatusMessages($message);
@ -36988,7 +37086,9 @@ define("converse-templates", [
onMessage: function (message) { onMessage: function (message) {
var $message = $(message); var $message = $(message);
var buddy_jid, $forwarded, $received, var contact_jid, $forwarded, $received, $sent,
msgid = $message.attr('id'),
chatbox, resource, roster_item,
message_from = $message.attr('from'); message_from = $message.attr('from');
if (message_from === converse.connection.jid) { if (message_from === converse.connection.jid) {
// FIXME: Forwarded messages should be sent to specific resources, // FIXME: Forwarded messages should be sent to specific resources,
@ -36997,49 +37097,64 @@ define("converse-templates", [
} }
$forwarded = $message.children('forwarded'); $forwarded = $message.children('forwarded');
$received = $message.children('received[xmlns="urn:xmpp:carbons:2"]'); $received = $message.children('received[xmlns="urn:xmpp:carbons:2"]');
$sent = $message.children('sent[xmlns="urn:xmpp:carbons:2"]');
if ($forwarded.length) { if ($forwarded.length) {
$message = $forwarded.children('message'); $message = $forwarded.children('message');
} else if ($received.length) { } else if ($received.length) {
$message = $received.children('forwarded').children('message'); $message = $received.children('forwarded').children('message');
message_from = $message.attr('from'); message_from = $message.attr('from');
} else if ($sent.length) {
$message = $sent.children('forwarded').children('message');
message_from = $message.attr('from');
} }
var from = Strophe.getBareJidFromJid(message_from), var from = Strophe.getBareJidFromJid(message_from),
to = Strophe.getBareJidFromJid($message.attr('to')), to = Strophe.getBareJidFromJid($message.attr('to'));
resource, chatbox, roster_item;
if (from == converse.bare_jid) { if (from == converse.bare_jid) {
// I am the sender, so this must be a forwarded message... // I am the sender, so this must be a forwarded message...
buddy_jid = to; contact_jid = to;
resource = Strophe.getResourceFromJid($message.attr('to')); resource = Strophe.getResourceFromJid($message.attr('to'));
} else { } else {
buddy_jid = from; contact_jid = from;
resource = Strophe.getResourceFromJid(message_from); resource = Strophe.getResourceFromJid(message_from);
} }
chatbox = this.get(buddy_jid);
roster_item = converse.roster.get(buddy_jid);
roster_item = converse.roster.get(contact_jid);
if (roster_item === undefined) { if (roster_item === undefined) {
// The buddy was likely removed // The contact was likely removed
converse.log('Could not get roster item for JID '+buddy_jid, 'error'); converse.log('Could not get roster item for JID '+contact_jid, 'error');
return true; return true;
} }
chatbox = this.get(contact_jid);
if (!chatbox) { if (!chatbox) {
var fullname = roster_item.get('fullname'); var fullname = roster_item.get('fullname');
fullname = _.isEmpty(fullname)? buddy_jid: fullname; fullname = _.isEmpty(fullname)? contact_jid: fullname;
chatbox = this.create({ chatbox = this.create({
'id': buddy_jid, 'id': contact_jid,
'jid': buddy_jid, 'jid': contact_jid,
'fullname': fullname, 'fullname': fullname,
'image_type': roster_item.get('image_type'), 'image_type': roster_item.get('image_type'),
'image': roster_item.get('image'), 'image': roster_item.get('image'),
'url': roster_item.get('url') 'url': roster_item.get('url')
}); });
} }
if (msgid && chatbox.messages.findWhere({msgid: msgid})) {
// FIXME: There's still a bug here..
// If a duplicate message is received just after the chat
// box was closed, then it'll open again (due to it being
// created here above), with now new messages.
// The solution is mostly likely to not let chat boxes show
// automatically when they are created, but to require
// "show" to be called explicitly.
return true; // We already have this message stored.
}
if (!this.isOnlyChatStateNotification($message) && from !== converse.bare_jid) { if (!this.isOnlyChatStateNotification($message) && from !== converse.bare_jid) {
playNotification(); playNotification();
} }
chatbox.receiveMessage($message); chatbox.receiveMessage($message);
converse.roster.addResource(buddy_jid, resource); converse.roster.addResource(contact_jid, resource);
converse.emit('message', message); converse.emit('message', message);
return true; return true;
} }
@ -37239,6 +37354,7 @@ define("converse-templates", [
if (ev && ev.preventDefault) { if (ev && ev.preventDefault) {
ev.preventDefault(); ev.preventDefault();
} }
this.model.messages.off('add',null,this);
this.remove(); this.remove();
this.model.maximize(); this.model.maximize();
}, 200) }, 200)
@ -37377,7 +37493,12 @@ define("converse-templates", [
}, },
showInRoster: function () { showInRoster: function () {
return (!converse.show_only_online_users || this.get('chat_status') === 'online'); var chatStatus = this.get('chat_status');
if (converse.show_only_online_users && chatStatus !== 'online')
return false;
if (converse.hide_offline_users && chatStatus === 'offline')
return false;
return true;
} }
}); });
@ -37398,54 +37519,6 @@ define("converse-templates", [
this.model.on("open", this.openChat, this); this.model.on("open", this.openChat, this);
}, },
openChat: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
// XXX: Can this.model.attributes be used here, instead of
// manually specifying all attributes?
return converse.chatboxviews.showChat({
'id': this.model.get('jid'),
'jid': this.model.get('jid'),
'fullname': this.model.get('fullname'),
'image_type': this.model.get('image_type'),
'image': this.model.get('image'),
'url': this.model.get('url'),
'status': this.model.get('status')
});
},
removeContact: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var result = confirm(__("Are you sure you want to remove this contact?"));
if (result === true) {
var bare_jid = this.model.get('jid');
converse.connection.roster.remove(bare_jid, $.proxy(function (iq) {
converse.connection.roster.unauthorize(bare_jid);
converse.rosterview.model.remove(bare_jid);
this.model.destroy();
this.remove();
}, this));
}
},
acceptRequest: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var jid = this.model.get('jid');
converse.connection.roster.authorize(jid);
converse.connection.roster.add(jid, this.model.get('fullname'), [], function (iq) {
converse.connection.roster.subscribe(jid, null, converse.xmppstatus.get('fullname'));
});
},
declineRequest: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var result = confirm(__("Are you sure you want to decline this contact request?"));
if (result === true) {
converse.connection.roster.unauthorize(this.model.get('jid'));
this.model.destroy();
}
return this;
},
render: function () { render: function () {
if (!this.model.showInRoster()) { if (!this.model.showInRoster()) {
this.$el.hide(); this.$el.hide();
@ -37511,6 +37584,54 @@ define("converse-templates", [
)); ));
} }
return this; return this;
},
openChat: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
// XXX: Can this.model.attributes be used here, instead of
// manually specifying all attributes?
return converse.chatboxviews.showChat({
'id': this.model.get('jid'),
'jid': this.model.get('jid'),
'fullname': this.model.get('fullname'),
'image_type': this.model.get('image_type'),
'image': this.model.get('image'),
'url': this.model.get('url'),
'status': this.model.get('status')
});
},
removeContact: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var result = confirm(__("Are you sure you want to remove this contact?"));
if (result === true) {
var bare_jid = this.model.get('jid');
converse.connection.roster.remove(bare_jid, $.proxy(function (iq) {
converse.connection.roster.unauthorize(bare_jid);
converse.rosterview.model.remove(bare_jid);
this.model.destroy();
this.remove();
}, this));
}
},
acceptRequest: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var jid = this.model.get('jid');
converse.connection.roster.authorize(jid);
converse.connection.roster.add(jid, this.model.get('fullname'), [], function (iq) {
converse.connection.roster.subscribe(jid, null, converse.xmppstatus.get('fullname'));
});
},
declineRequest: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var result = confirm(__("Are you sure you want to decline this contact request?"));
if (result === true) {
converse.connection.roster.unauthorize(this.model.get('jid'));
this.model.destroy();
}
return this;
} }
}); });
@ -37571,7 +37692,7 @@ define("converse-templates", [
idx = _.indexOf(resources, resource); idx = _.indexOf(resources, resource);
if (idx !== -1) { if (idx !== -1) {
resources.splice(idx, 1); resources.splice(idx, 1);
item.set({'resources': resources}); item.save({'resources': resources});
return resources.length; return resources.length;
} }
} }
@ -37716,7 +37837,7 @@ define("converse-templates", [
converse.getVCard( converse.getVCard(
bare_jid, bare_jid,
$.proxy(function (jid, fullname, img, img_type, url) { $.proxy(function (jid, fullname, img, img_type, url) {
this.add({ this.create({
jid: bare_jid, jid: bare_jid,
subscription: 'none', subscription: 'none',
ask: null, ask: null,
@ -37730,7 +37851,7 @@ define("converse-templates", [
}, this), }, this),
$.proxy(function (jid, iq) { $.proxy(function (jid, iq) {
converse.log("Error while retrieving vcard"); converse.log("Error while retrieving vcard");
this.add({ this.create({
jid: bare_jid, jid: bare_jid,
subscription: 'none', subscription: 'none',
ask: null, ask: null,
@ -37783,9 +37904,10 @@ define("converse-templates", [
this.unsubscribe(bare_jid); this.unsubscribe(bare_jid);
} else if (presence_type === 'unavailable') { } else if (presence_type === 'unavailable') {
if (this.removeResource(bare_jid, resource) === 0) { if (this.removeResource(bare_jid, resource) === 0) {
if (contact) { chat_status = "offline";
contact.save({'chat_status': 'offline'});
} }
if (contact && chat_status) {
contact.save({'chat_status': chat_status});
} }
} else if (contact) { } else if (contact) {
// presence_type is undefined // presence_type is undefined
@ -37898,7 +38020,7 @@ define("converse-templates", [
} }
}, this)); }, this));
} }
this.showIfInvisible(); this.showIfNecessary();
} else { } else {
q = q.toLowerCase(); q = q.toLowerCase();
matches = this.model.contacts.filter(contains.not('fullname', q)); matches = this.model.contacts.filter(contains.not('fullname', q));
@ -37911,13 +38033,13 @@ define("converse-templates", [
_.each(this.model.contacts.reject(contains.not('fullname', q)), $.proxy(function (item) { _.each(this.model.contacts.reject(contains.not('fullname', q)), $.proxy(function (item) {
this.get(item.get('id')).$el.show(); this.get(item.get('id')).$el.show();
}, this)); }, this));
this.showIfInvisible(); this.showIfNecessary();
} }
} }
}, },
showIfInvisible: function () { showIfNecessary: function () {
if (!this.$el.is(':visible')) { if (!this.$el.is(':visible') && this.model.contacts.length > 0) {
this.$el.show(); this.$el.show();
} }
}, },
@ -38122,9 +38244,10 @@ define("converse-templates", [
liveFilter: _.debounce(function (ev) { liveFilter: _.debounce(function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); } if (ev && ev.preventDefault) { ev.preventDefault(); }
var q = ev.target.value; var $filter = this.$('.roster-filter');
var q = $filter.val();
var t = this.$('.filter-type').val(); var t = this.$('.filter-type').val();
$(ev.target)[this.tog(q)]('x'); $filter[this.tog(q)]('x');
this.filter(q, t); this.filter(q, t);
}, 300), }, 300),
@ -38229,6 +38352,7 @@ define("converse-templates", [
if (_.has(contact.changed, 'subscription') && contact.changed.requesting == 'true') { if (_.has(contact.changed, 'subscription') && contact.changed.requesting == 'true') {
this.addContactToGroup(contact, HEADER_REQUESTING_CONTACTS); this.addContactToGroup(contact, HEADER_REQUESTING_CONTACTS);
} }
this.liveFilter();
}, },
updateChatBox: function (contact) { updateChatBox: function (contact) {
@ -38383,6 +38507,11 @@ define("converse-templates", [
(type === 'subscribe') || (type === 'subscribe') ||
(type === 'subscribed')) { (type === 'subscribed')) {
presence = $pres({'type': type}); presence = $pres({'type': type});
} else if (type === 'offline') {
presence = $pres({'type': 'unavailable'});
if (status_message) {
presence.c('show').t(type);
}
} else { } else {
if (type === 'online') { if (type === 'online') {
presence = $pres(); presence = $pres();
@ -38572,7 +38701,7 @@ define("converse-templates", [
converse.connection.disco.addFeature('http://jabber.org/protocol/rosterx'); // Limited support converse.connection.disco.addFeature('http://jabber.org/protocol/rosterx'); // Limited support
converse.connection.disco.addFeature('jabber:x:conference'); converse.connection.disco.addFeature('jabber:x:conference');
converse.connection.disco.addFeature('urn:xmpp:carbons:2'); converse.connection.disco.addFeature('urn:xmpp:carbons:2');
converse.connection.disco.addFeature('vcard-temp'); converse.connection.disco.addFeature(Strophe.NS.VCARD);
converse.connection.disco.addFeature(Strophe.NS.BOSH); converse.connection.disco.addFeature(Strophe.NS.BOSH);
converse.connection.disco.addFeature(Strophe.NS.DISCO_INFO); converse.connection.disco.addFeature(Strophe.NS.DISCO_INFO);
converse.connection.disco.addFeature(Strophe.NS.MUC); converse.connection.disco.addFeature(Strophe.NS.MUC);
@ -38848,55 +38977,150 @@ define("converse-templates", [
'initiateOTR': $.proxy(chatbox.initiateOTR, chatbox), 'initiateOTR': $.proxy(chatbox.initiateOTR, chatbox),
'maximize': $.proxy(chatbox.maximize, chatbox), 'maximize': $.proxy(chatbox.maximize, chatbox),
'minimize': $.proxy(chatbox.minimize, chatbox), 'minimize': $.proxy(chatbox.minimize, chatbox),
'set': $.proxy(chatbox.set, chatbox) 'set': $.proxy(chatbox.set, chatbox),
'open': chatbox.trigger.bind(chatbox, 'show')
}; };
}; };
return { return {
'getBuddy': function (jid) { 'initialize': function (settings, callback) {
converse.initialize(settings, callback);
},
'contacts': {
'get': function (jids) {
var _transform = function (jid) {
var contact = converse.roster.get(Strophe.getBareJidFromJid(jid)); var contact = converse.roster.get(Strophe.getBareJidFromJid(jid));
if (contact) { if (contact) {
return contact.attributes; return contact.attributes;
} }
},
'getChatBox': function (jid) {
var chatbox = converse.chatboxes.get(jid);
if (chatbox) {
return wrappedChatBox(chatbox);
}
},
'getRID': function () {
if (converse.expose_rid_and_sid && typeof converse.connection !== "undefined") {
return converse.connection.rid || converse.connection._proto.rid;
}
return null; return null;
};
if (typeof jids === "string") {
return _transform(jids);
}
return _.map(jids, _transform);
}
}, },
'getSID': function () { 'chats': {
if (converse.expose_rid_and_sid && typeof converse.connection !== "undefined") { 'get': function (jids) {
var _transform = function (jid) {
var chatbox = converse.chatboxes.get(jid);
if (!chatbox) {
var roster_item = converse.roster.get(jid);
if (roster_item === undefined) {
converse.log('Could not get roster item for JID '+jid, 'error');
return null;
}
chatbox = converse.chatboxes.create({
'id': jid,
'jid': jid,
'fullname': _.isEmpty(roster_item.get('fullname'))? jid: roster_item.get('fullname'),
'image_type': roster_item.get('image_type'),
'image': roster_item.get('image'),
'url': roster_item.get('url')
});
}
return wrappedChatBox(chatbox);
};
if (typeof jids === "string") {
return _transform(jids);
}
return _.map(jids, _transform);
}
},
'tokens': {
'get': function (id) {
if (!converse.expose_rid_and_sid || typeof converse.connection === "undefined") {
return null;
}
if (id.toLowerCase() === 'rid') {
return converse.connection.rid || converse.connection._proto.rid;
} else if (id.toLowerCase() === 'sid') {
return converse.connection.sid || converse.connection._proto.sid; return converse.connection.sid || converse.connection._proto.sid;
} }
return null;
},
'initialize': function (settings, callback) {
converse.initialize(settings, callback);
},
'jQuery': $,
'openChatBox': function (jid) {
var contact = converse.roster.get(Strophe.getBareJidFromJid(jid));
if (contact) {
return wrappedChatBox(converse.chatboxviews.showChat(contact.attributes));
} }
}, },
'listen': {
'once': function (evt, handler) { 'once': function (evt, handler) {
converse.once(evt, handler); converse.once(evt, handler);
}, },
'on': function (evt, handler) { 'on': function (evt, handler) {
converse.on(evt, handler); converse.on(evt, handler);
}, },
'off': function (evt, handler) { 'not': function (evt, handler) {
converse.off(evt, handler); converse.off(evt, handler);
}, },
'registerPlugin': function (name, callback) { },
'plugins': {
'add': function (name, callback) {
converse.plugins[name] = callback; converse.plugins[name] = callback;
},
'remove': function (name) {
delete converse.plugins[name];
},
'extend': function (obj, attributes) {
/* Helper method for overriding or extending Converse's Backbone Views or Models
*
* When a method is overriden, the original will still be available
* on the _super attribute of the object being overridden.
*
* obj: The Backbone View or Model
* attributes: A hash of attributes, such as you would pass to Backbone.Model.extend or Backbone.View.extend
*/
if (!obj.prototype._super) {
obj.prototype._super = {};
}
_.each(attributes, function (value, key) {
if (key === 'events') {
obj.prototype[key] = _.extend(value, obj.prototype[key]);
} else {
if (typeof key === 'function') {
obj.prototype._super[key] = obj.prototype[key];
}
obj.prototype[key] = value;
}
});
}
},
'env': {
'jQuery': $,
'Strophe': Strophe,
'_': _
},
// Deprecated API methods
'getBuddy': function (jid) {
converse.log('WARNING: the "getBuddy" API method has been deprecated. Please use "contacts.get" instead');
return this.contacts.get(jid);
},
'getChatBox': function (jid) {
converse.log('WARNING: the "getChatBox" API method has been deprecated. Please use "chats.get" instead');
return this.chats.get(jid);
},
'openChatBox': function (jid) {
converse.log('WARNING: the "openChatBox" API method has been deprecated. Please use "chats.get(jid).open()" instead');
var chat = this.chats.get(jid);
if (chat) { chat.open(); }
return chat;
},
'getRID': function () {
converse.log('WARNING: the "getRID" API method has been deprecated. Please use "tokens.get(\'rid\')" instead');
return this.tokens.get('rid');
},
'getSID': function () {
converse.log('WARNING: the "getSID" API method has been deprecated. Please use "tokens.get(\'sid\')" instead');
return this.tokens.get('sid');
},
'once': function (evt, handler) {
converse.log('WARNING: the "one" API method has been deprecated. Please use "listen.once" instead');
return this.listen.once(evt, handler);
},
'on': function (evt, handler) {
converse.log('WARNING: the "on" API method has been deprecated. Please use "listen.on" instead');
return this.listen.on(evt, handler);
},
'off': function (evt, handler) {
converse.log('WARNING: the "off" API method has been deprecated. Please use "listen.not" instead');
return this.listen.not(evt, handler);
} }
}; };
})); }));
@ -39006,7 +39230,8 @@ require.config({
"status_option": "src/templates/status_option", "status_option": "src/templates/status_option",
"toggle_chats": "src/templates/toggle_chats", "toggle_chats": "src/templates/toggle_chats",
"toolbar": "src/templates/toolbar", "toolbar": "src/templates/toolbar",
"trimmed_chat": "src/templates/trimmed_chat" "trimmed_chat": "src/templates/trimmed_chat",
"form_textarea": "src/templates/form_textarea"
}, },
map: { map: {

File diff suppressed because one or more lines are too long

View File

@ -39668,7 +39668,7 @@ Strophe.addConnectionPlugin('roster',
oldCallback.apply(this, arguments); oldCallback.apply(this, arguments);
} }
}; };
conn.connect = function(jid, pass, callback, wait, hold) conn.connect = function(jid, pass, callback, wait, hold, route)
{ {
oldCallback = callback; oldCallback = callback;
if (typeof jid == "undefined") if (typeof jid == "undefined")
@ -39676,7 +39676,7 @@ Strophe.addConnectionPlugin('roster',
if (typeof pass == "undefined") if (typeof pass == "undefined")
pass = null; pass = null;
callback = newCallback; callback = newCallback;
_connect.apply(conn, [jid, pass, callback, wait, hold]); _connect.apply(conn, [jid, pass, callback, wait, hold, route]);
}; };
conn.attach = function(jid, sid, rid, callback, wait, hold, wind) conn.attach = function(jid, sid, rid, callback, wait, hold, wind)
{ {
@ -41099,9 +41099,21 @@ var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments
with(obj||{}){ with(obj||{}){
__p+='<field var="'+ __p+='<field var="'+
((__t=(name))==null?'':__t)+ ((__t=(name))==null?'':__t)+
'"><value>'+ '">';
if (_.isArray(value)) {
__p+='\n ';
_.each(value,function(arrayValue) {
__p+='<value>'+
((__t=(arrayValue))==null?'':__t)+
'</value>';
});
__p+='\n';
} else {
__p+='\n <value>'+
((__t=(value))==null?'':__t)+ ((__t=(value))==null?'':__t)+
'</value></field>\n'; '</value>\n';
}
__p+='</field>\n';
} }
return __p; return __p;
}; }); }; });
@ -41148,7 +41160,11 @@ __p+='<label>'+
((__t=(label))==null?'':__t)+ ((__t=(label))==null?'':__t)+
'<select name="'+ '<select name="'+
((__t=(name))==null?'':__t)+ ((__t=(name))==null?'':__t)+
'">'+ '" ';
if (multiple) {
__p+=' multiple="multiple" ';
}
__p+='>'+
((__t=(options))==null?'':__t)+ ((__t=(options))==null?'':__t)+
'</select></label>\n'; '</select></label>\n';
} }
@ -41493,7 +41509,11 @@ var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments
with(obj||{}){ with(obj||{}){
__p+='<option value="'+ __p+='<option value="'+
((__t=(value))==null?'':__t)+ ((__t=(value))==null?'':__t)+
'">'+ '" ';
if (selected) {
__p+=' selected="selected" ';
}
__p+=' >'+
((__t=(label))==null?'':__t)+ ((__t=(label))==null?'':__t)+
'</option>\n'; '</option>\n';
} }
@ -41649,6 +41669,21 @@ __p+='\n href="#">'+
return __p; return __p;
}; }); }; });
define('tpl!form_textarea', [],function () { return function(obj){
var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};
with(obj||{}){
__p+='<label class="label-ta">'+
((__t=(label))==null?'':__t)+
'<textarea name="'+
((__t=(name))==null?'':__t)+
'">'+
((__t=(value))==null?'':__t)+
'</textarea></label>\n';
}
return __p;
}; });
define("converse-templates", [ define("converse-templates", [
"tpl!action", "tpl!action",
"tpl!add_contact_dropdown", "tpl!add_contact_dropdown",
@ -41692,7 +41727,8 @@ define("converse-templates", [
"tpl!status_option", "tpl!status_option",
"tpl!toggle_chats", "tpl!toggle_chats",
"tpl!toolbar", "tpl!toolbar",
"tpl!trimmed_chat" "tpl!trimmed_chat",
"tpl!form_textarea"
], function () { ], function () {
return { return {
action: arguments[0], action: arguments[0],
@ -41737,7 +41773,8 @@ define("converse-templates", [
status_option: arguments[39], status_option: arguments[39],
toggle_chats: arguments[40], toggle_chats: arguments[40],
toolbar: arguments[41], toolbar: arguments[41],
trimmed_chat: arguments[42] trimmed_chat: arguments[42],
form_textarea: arguments[43]
}; };
}); });
@ -41960,6 +41997,7 @@ define("converse-templates", [
this.expose_rid_and_sid = false; this.expose_rid_and_sid = false;
this.forward_messages = false; this.forward_messages = false;
this.hide_muc_server = false; this.hide_muc_server = false;
this.hide_offline_users = false;
this.i18n = locales.en; this.i18n = locales.en;
this.keepalive = false; this.keepalive = false;
this.message_carbons = false; this.message_carbons = false;
@ -42000,14 +42038,15 @@ define("converse-templates", [
'connection', 'connection',
'debug', 'debug',
'default_box_height', 'default_box_height',
'keepalive',
'message_carbons',
'expose_rid_and_sid', 'expose_rid_and_sid',
'forward_messages', 'forward_messages',
'fullname', 'fullname',
'hide_muc_server', 'hide_muc_server',
'hide_offline_users',
'i18n', 'i18n',
'jid', 'jid',
'keepalive',
'message_carbons',
'no_trimming', 'no_trimming',
'play_sounds', 'play_sounds',
'prebind', 'prebind',
@ -42374,7 +42413,11 @@ define("converse-templates", [
.c('enable', {xmlns: 'urn:xmpp:carbons:2'}); .c('enable', {xmlns: 'urn:xmpp:carbons:2'});
this.connection.send(carbons_iq); this.connection.send(carbons_iq);
this.connection.addHandler(function (iq) { this.connection.addHandler(function (iq) {
//TODO: check if carbons was enabled: if ($(iq).find('error').length > 0) {
converse.log('ERROR: An error occured while trying to enable message carbons.');
} else {
converse.log('Message carbons appear to have been enabled.');
}
}, null, "iq", null, "enablecarbons"); }, null, "iq", null, "enablecarbons");
}; };
@ -42569,7 +42612,7 @@ define("converse-templates", [
switch (type) { switch (type) {
case 'question': case 'question':
this.otr.smpSecret(prompt(__( 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', 'Authentication request from %1$s\n\nYour chat contact is attempting to verify your identity, by asking you the question below.\n\n%2$s',
[this.get('fullname'), data]))); [this.get('fullname'), data])));
break; break;
case 'trust': case 'trust':
@ -42593,7 +42636,7 @@ define("converse-templates", [
// encrypted messages. // encrypted messages.
// //
// If 'query_msg' is passed in, it means there is an alread incoming // If 'query_msg' is passed in, it means there is an alread incoming
// query message from our buddy. Otherwise, it is us who will // query message from our contact. Otherwise, it is us who will
// send the query message to them. // send the query message to them.
this.save({'otr_status': UNENCRYPTED}); this.save({'otr_status': UNENCRYPTED});
var session = this.getSession($.proxy(function (session) { var session = this.getSession($.proxy(function (session) {
@ -42617,7 +42660,7 @@ define("converse-templates", [
this.trigger('showOTRError', msg); this.trigger('showOTRError', msg);
}, this)); }, this));
this.trigger('showHelpMessages', [__('Exchanging private key with buddy.')]); this.trigger('showHelpMessages', [__('Exchanging private key with contact.')]);
if (query_msg) { if (query_msg) {
this.otr.receiveMsg(query_msg); this.otr.receiveMsg(query_msg);
} else { } else {
@ -42741,6 +42784,7 @@ define("converse-templates", [
this.model.on('destroy', this.hide, this); this.model.on('destroy', this.hide, this);
this.model.on('change', this.onChange, this); this.model.on('change', this.onChange, this);
this.model.on('showOTRError', this.showOTRError, this); this.model.on('showOTRError', this.showOTRError, this);
// XXX: doesn't look like this event is being used?
this.model.on('buddyStartsOTR', this.buddyStartsOTR, this); this.model.on('buddyStartsOTR', this.buddyStartsOTR, this);
this.model.on('showHelpMessages', this.showHelpMessages, this); this.model.on('showHelpMessages', this.showHelpMessages, this);
this.model.on('sendMessageStanza', this.sendMessageStanza, this); this.model.on('sendMessageStanza', this.sendMessageStanza, this);
@ -42813,7 +42857,7 @@ define("converse-templates", [
msg_time = moment(msg_dict.time) || moment, msg_time = moment(msg_dict.time) || moment,
text = msg_dict.message, text = msg_dict.message,
match = text.match(/^\/(.*?)(?: (.*))?$/), match = text.match(/^\/(.*?)(?: (.*))?$/),
fullname = msg_dict.fullname || this.model.get('fullname'), // XXX Perhaps always use model's? fullname = this.model.get('fullname'), // XXX Perhaps always use model's?
extra_classes = msg_dict.delayed && 'delayed' || '', extra_classes = msg_dict.delayed && 'delayed' || '',
template, username; template, username;
@ -43093,7 +43137,7 @@ define("converse-templates", [
this.model.save({'otr_status': UNVERIFIED}); this.model.save({'otr_status': UNVERIFIED});
} }
} else if (scheme === 'smp') { } 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 be verified.')); alert(__('You will be prompted to provide a security question and then an answer to that question.\n\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.'));
question = prompt(__('What is your security question?')); question = prompt(__('What is your security question?'));
if (question) { if (question) {
answer = prompt(__('What is the answer to the security question?')); answer = prompt(__('What is the answer to the security question?'));
@ -43128,10 +43172,14 @@ define("converse-templates", [
this.$el.find('div.chat-event').remove(); this.$el.find('div.chat-event').remove();
} }
} }
converse.emit('contactStatusChanged', item.attributes, item.get('chat_status'));
// TODO: DEPRECATED AND SHOULD BE REMOVED IN 0.9.0
converse.emit('buddyStatusChanged', item.attributes, item.get('chat_status')); converse.emit('buddyStatusChanged', item.attributes, item.get('chat_status'));
} }
if (_.has(item.changed, 'status')) { if (_.has(item.changed, 'status')) {
this.showStatusMessage(); this.showStatusMessage();
converse.emit('contactStatusMessageChanged', item.attributes, item.get('status'));
// TODO: DEPRECATED AND SHOULD BE REMOVED IN 0.9.0
converse.emit('buddyStatusMessageChanged', item.attributes, item.get('status')); converse.emit('buddyStatusMessageChanged', item.attributes, item.get('status'));
} }
if (_.has(item.changed, 'image')) { if (_.has(item.changed, 'image')) {
@ -43152,7 +43200,7 @@ define("converse-templates", [
showStatusMessage: function (msg) { showStatusMessage: function (msg) {
msg = msg || this.model.get('status'); msg = msg || this.model.get('status');
if (msg) { if (typeof msg === "string") {
this.$el.find('p.user-custom-message').text(msg).attr('title', msg); this.$el.find('p.user-custom-message').text(msg).attr('title', msg);
} }
return this; return this;
@ -43213,11 +43261,11 @@ define("converse-templates", [
if (data.otr_status == UNENCRYPTED) { if (data.otr_status == UNENCRYPTED) {
msgs.push(__("Your messages are not encrypted anymore")); msgs.push(__("Your messages are not encrypted anymore"));
} else if (data.otr_status == UNVERIFIED){ } else if (data.otr_status == UNVERIFIED){
msgs.push(__("Your messages are now encrypted but your buddy's identity has not been verified.")); msgs.push(__("Your messages are now encrypted but your contact's identity has not been verified."));
} else if (data.otr_status == VERIFIED){ } else if (data.otr_status == VERIFIED){
msgs.push(__("Your buddy's identify has been verified.")); msgs.push(__("Your contact's identify has been verified."));
} else if (data.otr_status == FINISHED){ } else if (data.otr_status == FINISHED){
msgs.push(__("Your buddy has ended encryption on their end, you should do the same.")); msgs.push(__("Your contact has ended encryption on their end, you should do the same."));
} }
return this.showHelpMessages(msgs, 'info', false); return this.showHelpMessages(msgs, 'info', false);
}, },
@ -43228,11 +43276,11 @@ define("converse-templates", [
if (data.otr_status == UNENCRYPTED) { if (data.otr_status == UNENCRYPTED) {
data.otr_tooltip = __('Your messages are not encrypted. Click here to enable OTR encryption.'); data.otr_tooltip = __('Your messages are not encrypted. Click here to enable OTR encryption.');
} else if (data.otr_status == UNVERIFIED){ } else if (data.otr_status == UNVERIFIED){
data.otr_tooltip = __('Your messages are encrypted, but your buddy has not been verified.'); data.otr_tooltip = __('Your messages are encrypted, but your contact has not been verified.');
} else if (data.otr_status == VERIFIED){ } else if (data.otr_status == VERIFIED){
data.otr_tooltip = __('Your messages are encrypted and your buddy verified.'); data.otr_tooltip = __('Your messages are encrypted and your contact verified.');
} else if (data.otr_status == FINISHED){ } 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.otr_tooltip = __('Your contact has closed their end of the private session, you should do the same');
} }
this.$el.find('.chat-toolbar').html( this.$el.find('.chat-toolbar').html(
converse.templates.toolbar( converse.templates.toolbar(
@ -43440,11 +43488,19 @@ define("converse-templates", [
'submit form.add-chatroom': 'createChatRoom', 'submit form.add-chatroom': 'createChatRoom',
'click input#show-rooms': 'showRooms', 'click input#show-rooms': 'showRooms',
'click a.open-room': 'createChatRoom', 'click a.open-room': 'createChatRoom',
'click a.room-info': 'showRoomInfo' 'click a.room-info': 'showRoomInfo',
'change input[name=server]': 'setDomain',
'change input[name=nick]': 'setNick'
}, },
initialize: function (cfg) { initialize: function (cfg) {
cfg.$parent.append( this.$parent = cfg.$parent;
this.model.on('change:muc_domain', this.onDomainChange, this);
this.model.on('change:nick', this.onNickChange, this);
},
render: function () {
this.$parent.append(
this.$el.html( this.$el.html(
converse.templates.room_panel({ converse.templates.room_panel({
'server_input_type': converse.hide_muc_server && 'hidden' || 'text', 'server_input_type': converse.hide_muc_server && 'hidden' || 'text',
@ -43455,37 +43511,34 @@ define("converse-templates", [
'label_show_rooms': __('Show rooms') 'label_show_rooms': __('Show rooms')
}) })
).hide()); ).hide());
this.$tabs = cfg.$parent.parent().find('#controlbox-tabs'); this.$tabs = this.$parent.parent().find('#controlbox-tabs');
this.on('update-rooms-list', function (ev) {
this.updateRoomsList();
});
converse.xmppstatus.on("change", $.proxy(function (model) {
if (!(_.has(model.changed, 'fullname'))) {
return;
}
var $nick = this.$el.find('input.new-chatroom-nick');
if (! $nick.is(':focus')) {
$nick.val(model.get('fullname'));
}
}, this));
},
render: function () {
this.$tabs.append(converse.templates.chatrooms_tab({label_rooms: __('Rooms')})); this.$tabs.append(converse.templates.chatrooms_tab({label_rooms: __('Rooms')}));
return this; return this;
}, },
onDomainChange: function (model) {
var $server = this.$el.find('input.new-chatroom-server');
$server.val(model.get('muc_domain'));
if (converse.auto_list_rooms) {
this.updateRoomsList();
}
},
onNickChange: function (model) {
var $nick = this.$el.find('input.new-chatroom-nick');
$nick.val(model.get('nick'));
},
informNoRoomsFound: function () { informNoRoomsFound: function () {
var $available_chatrooms = this.$el.find('#available-chatrooms'); var $available_chatrooms = this.$el.find('#available-chatrooms');
// # For translators: %1$s is a variable and will be replaced with the XMPP server name // # For translators: %1$s is a variable and will be replaced with the XMPP server name
$available_chatrooms.html('<dt>'+__('No rooms on %1$s',this.muc_domain)+'</dt>'); $available_chatrooms.html('<dt>'+__('No rooms on %1$s',this.model.get('muc_domain'))+'</dt>');
$('input#show-rooms').show().siblings('span.spinner').remove(); $('input#show-rooms').show().siblings('span.spinner').remove();
}, },
updateRoomsList: function (domain) { updateRoomsList: function () {
converse.connection.muc.listRooms( converse.connection.muc.listRooms(
this.muc_domain, this.model.get('muc_domain'),
$.proxy(function (iq) { // Success $.proxy(function (iq) { // Success
var name, jid, i, fragment, var name, jid, i, fragment,
that = this, that = this,
@ -43494,7 +43547,7 @@ define("converse-templates", [
if (this.rooms.length) { if (this.rooms.length) {
// # For translators: %1$s is a variable and will be // # For translators: %1$s is a variable and will be
// # replaced with the XMPP server name // # replaced with the XMPP server name
$available_chatrooms.html('<dt>'+__('Rooms on %1$s',this.muc_domain)+'</dt>'); $available_chatrooms.html('<dt>'+__('Rooms on %1$s',this.model.get('muc_domain'))+'</dt>');
fragment = document.createDocumentFragment(); fragment = document.createDocumentFragment();
for (i=0; i<this.rooms.length; i++) { for (i=0; i<this.rooms.length; i++) {
name = Strophe.unescapeNode($(this.rooms[i]).attr('name')||$(this.rooms[i]).attr('jid')); name = Strophe.unescapeNode($(this.rooms[i]).attr('name')||$(this.rooms[i]).attr('jid'));
@ -43532,7 +43585,7 @@ define("converse-templates", [
$server.removeClass('error'); $server.removeClass('error');
$available_chatrooms.empty(); $available_chatrooms.empty();
$('input#show-rooms').hide().after('<span class="spinner"/>'); $('input#show-rooms').hide().after('<span class="spinner"/>');
this.muc_domain = server; this.model.save({muc_domain: server});
this.updateRoomsList(); this.updateRoomsList();
}, },
@ -43609,7 +43662,7 @@ define("converse-templates", [
jid = Strophe.escapeNode(name) + '@' + server; jid = Strophe.escapeNode(name) + '@' + server;
$name.removeClass('error'); $name.removeClass('error');
$server.removeClass('error'); $server.removeClass('error');
this.muc_domain = server; this.model.save({muc_domain: server});
} else { } else {
if (!name) { $name.addClass('error'); } if (!name) { $name.addClass('error'); }
if (!server) { $server.addClass('error'); } if (!server) { $server.addClass('error'); }
@ -43625,6 +43678,14 @@ define("converse-templates", [
'chatroom': true, 'chatroom': true,
'box_id' : b64_sha1(jid) 'box_id' : b64_sha1(jid)
}); });
},
setDomain: function (ev) {
this.model.save({muc_domain: ev.target.value});
},
setNick: function (ev) {
this.model.save({nick: ev.target.value});
} }
}); });
@ -43718,14 +43779,25 @@ define("converse-templates", [
}, },
renderContactsPanel: function () { renderContactsPanel: function () {
var model;
this.$el.html(converse.templates.controlbox(this.model.toJSON())); this.$el.html(converse.templates.controlbox(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(); this.contactspanel.render();
converse.xmppstatusview = new converse.XMPPStatusView({'model': converse.xmppstatus}); converse.xmppstatusview = new converse.XMPPStatusView({'model': converse.xmppstatus});
converse.xmppstatusview.render(); converse.xmppstatusview.render();
if (converse.allow_muc) { if (converse.allow_muc) {
this.roomspanel = new converse.RoomsPanel({'$parent': this.$el.find('.controlbox-panes')}); this.roomspanel = new converse.RoomsPanel({
this.roomspanel.render(); '$parent': this.$el.find('.controlbox-panes'),
'model': new (Backbone.Model.extend({
id: b64_sha1('converse.roomspanel'+converse.bare_jid), // Required by sessionStorage
browserStorage: new Backbone.BrowserStorage[converse.storage](
b64_sha1('converse.roomspanel'+converse.bare_jid))
}))()
});
this.roomspanel.render().model.fetch();
if (!this.roomspanel.model.get('nick')) {
this.roomspanel.model.save({nick: Strophe.getNodeFromJid(converse.bare_jid)});
}
} }
this.initDragResize(); this.initDragResize();
}, },
@ -43777,13 +43849,10 @@ define("converse-templates", [
featureAdded: function (feature) { featureAdded: function (feature) {
if ((feature.get('var') == 'http://jabber.org/protocol/muc') && (converse.allow_muc)) { if ((feature.get('var') == 'http://jabber.org/protocol/muc') && (converse.allow_muc)) {
this.roomspanel.muc_domain = feature.get('from'); this.roomspanel.model.save({muc_domain: feature.get('from')});
var $server= this.$el.find('input.new-chatroom-server'); var $server= this.$el.find('input.new-chatroom-server');
if (! $server.is(':focus')) { if (! $server.is(':focus')) {
$server.val(this.roomspanel.muc_domain); $server.val(this.roomspanel.model.get('muc_domain'));
}
if (converse.auto_list_rooms) {
this.roomspanel.trigger('update-rooms-list');
} }
} }
}, },
@ -44132,13 +44201,17 @@ define("converse-templates", [
$fields = $stanza.find('field'), $fields = $stanza.find('field'),
title = $stanza.find('title').text(), title = $stanza.find('title').text(),
instructions = $stanza.find('instructions').text(), instructions = $stanza.find('instructions').text(),
i, j, options=[], $field, $options; i, j, options=[], $field, $options,
values=[], $values, value;
var input_types = { var input_types = {
'text-private': 'password', 'text-private': 'password',
'text-single': 'textline', 'text-single': 'textline',
'fixed': 'label',
'boolean': 'checkbox', 'boolean': 'checkbox',
'hidden': 'hidden', 'hidden': 'hidden',
'list-single': 'dropdown' 'jid-multi': 'textarea',
'list-single': 'dropdown',
'list-multi': 'dropdown'
}; };
$form.find('span.spinner').remove(); $form.find('span.spinner').remove();
$form.append($('<legend>').text(title)); $form.append($('<legend>').text(title));
@ -44147,19 +44220,35 @@ define("converse-templates", [
} }
for (i=0; i<$fields.length; i++) { for (i=0; i<$fields.length; i++) {
$field = $($fields[i]); $field = $($fields[i]);
if ($field.attr('type') == 'list-single') { if ($field.attr('type') == 'list-single' || $field.attr('type') == 'list-multi') {
values = [];
$values = $field.children('value');
for (j=0; j<$values.length; j++) {
values.push($($values[j]).text());
}
options = []; options = [];
$options = $field.find('option'); $options = $field.children('option');
for (j=0; j<$options.length; j++) { for (j=0; j<$options.length; j++) {
value = $($options[j]).find('value').text();
options.push(converse.templates.select_option({ options.push(converse.templates.select_option({
value: $($options[j]).find('value').text(), value: value,
label: $($options[j]).attr('label') label: $($options[j]).attr('label'),
selected: (values.indexOf(value) >= 0)
})); }));
} }
$form.append(converse.templates.form_select({ $form.append(converse.templates.form_select({
name: $field.attr('var'), name: $field.attr('var'),
label: $field.attr('label'), label: $field.attr('label'),
options: options.join('') options: options.join(''),
multiple: ($field.attr('type') == 'list-multi')
}));
} else if ($field.attr('type') == 'fixed') {
$form.append($('<p>').text($field.find('value').text()));
} else if ($field.attr('type') == 'jid-multi') {
$form.append(converse.templates.form_textarea({
name: $field.attr('var'),
label: $field.attr('label') || '',
value: $field.find('value').text()
})); }));
} else if ($field.attr('type') == 'boolean') { } else if ($field.attr('type') == 'boolean') {
$form.append(converse.templates.form_checkbox({ $form.append(converse.templates.form_checkbox({
@ -44193,6 +44282,15 @@ define("converse-templates", [
var $input = $(this), value; var $input = $(this), value;
if ($input.is('[type=checkbox]')) { if ($input.is('[type=checkbox]')) {
value = $input.is(':checked') && 1 || 0; value = $input.is(':checked') && 1 || 0;
} else if ($input.is('textarea')) {
value = [];
var lines = $input.val().split('\n');
for( var vk=0; vk<lines.length; vk++) {
var val = $.trim(lines[vk]);
if (val === '')
continue;
value.push(val);
}
} else { } else {
value = $input.val(); value = $input.val();
} }
@ -44467,7 +44565,7 @@ define("converse-templates", [
delayed = $message.find('delay').length > 0, delayed = $message.find('delay').length > 0,
subject = $message.children('subject').text(); subject = $message.children('subject').text();
if (this.model.messages.findWhere({msgid: msgid})) { if (msgid && this.model.messages.findWhere({msgid: msgid})) {
return true; // We already have this message stored. return true; // We already have this message stored.
} }
this.showStatusMessages($message); this.showStatusMessages($message);
@ -44585,7 +44683,9 @@ define("converse-templates", [
onMessage: function (message) { onMessage: function (message) {
var $message = $(message); var $message = $(message);
var buddy_jid, $forwarded, $received, var contact_jid, $forwarded, $received, $sent,
msgid = $message.attr('id'),
chatbox, resource, roster_item,
message_from = $message.attr('from'); message_from = $message.attr('from');
if (message_from === converse.connection.jid) { if (message_from === converse.connection.jid) {
// FIXME: Forwarded messages should be sent to specific resources, // FIXME: Forwarded messages should be sent to specific resources,
@ -44594,49 +44694,64 @@ define("converse-templates", [
} }
$forwarded = $message.children('forwarded'); $forwarded = $message.children('forwarded');
$received = $message.children('received[xmlns="urn:xmpp:carbons:2"]'); $received = $message.children('received[xmlns="urn:xmpp:carbons:2"]');
$sent = $message.children('sent[xmlns="urn:xmpp:carbons:2"]');
if ($forwarded.length) { if ($forwarded.length) {
$message = $forwarded.children('message'); $message = $forwarded.children('message');
} else if ($received.length) { } else if ($received.length) {
$message = $received.children('forwarded').children('message'); $message = $received.children('forwarded').children('message');
message_from = $message.attr('from'); message_from = $message.attr('from');
} else if ($sent.length) {
$message = $sent.children('forwarded').children('message');
message_from = $message.attr('from');
} }
var from = Strophe.getBareJidFromJid(message_from), var from = Strophe.getBareJidFromJid(message_from),
to = Strophe.getBareJidFromJid($message.attr('to')), to = Strophe.getBareJidFromJid($message.attr('to'));
resource, chatbox, roster_item;
if (from == converse.bare_jid) { if (from == converse.bare_jid) {
// I am the sender, so this must be a forwarded message... // I am the sender, so this must be a forwarded message...
buddy_jid = to; contact_jid = to;
resource = Strophe.getResourceFromJid($message.attr('to')); resource = Strophe.getResourceFromJid($message.attr('to'));
} else { } else {
buddy_jid = from; contact_jid = from;
resource = Strophe.getResourceFromJid(message_from); resource = Strophe.getResourceFromJid(message_from);
} }
chatbox = this.get(buddy_jid);
roster_item = converse.roster.get(buddy_jid);
roster_item = converse.roster.get(contact_jid);
if (roster_item === undefined) { if (roster_item === undefined) {
// The buddy was likely removed // The contact was likely removed
converse.log('Could not get roster item for JID '+buddy_jid, 'error'); converse.log('Could not get roster item for JID '+contact_jid, 'error');
return true; return true;
} }
chatbox = this.get(contact_jid);
if (!chatbox) { if (!chatbox) {
var fullname = roster_item.get('fullname'); var fullname = roster_item.get('fullname');
fullname = _.isEmpty(fullname)? buddy_jid: fullname; fullname = _.isEmpty(fullname)? contact_jid: fullname;
chatbox = this.create({ chatbox = this.create({
'id': buddy_jid, 'id': contact_jid,
'jid': buddy_jid, 'jid': contact_jid,
'fullname': fullname, 'fullname': fullname,
'image_type': roster_item.get('image_type'), 'image_type': roster_item.get('image_type'),
'image': roster_item.get('image'), 'image': roster_item.get('image'),
'url': roster_item.get('url') 'url': roster_item.get('url')
}); });
} }
if (msgid && chatbox.messages.findWhere({msgid: msgid})) {
// FIXME: There's still a bug here..
// If a duplicate message is received just after the chat
// box was closed, then it'll open again (due to it being
// created here above), with now new messages.
// The solution is mostly likely to not let chat boxes show
// automatically when they are created, but to require
// "show" to be called explicitly.
return true; // We already have this message stored.
}
if (!this.isOnlyChatStateNotification($message) && from !== converse.bare_jid) { if (!this.isOnlyChatStateNotification($message) && from !== converse.bare_jid) {
playNotification(); playNotification();
} }
chatbox.receiveMessage($message); chatbox.receiveMessage($message);
converse.roster.addResource(buddy_jid, resource); converse.roster.addResource(contact_jid, resource);
converse.emit('message', message); converse.emit('message', message);
return true; return true;
} }
@ -44836,6 +44951,7 @@ define("converse-templates", [
if (ev && ev.preventDefault) { if (ev && ev.preventDefault) {
ev.preventDefault(); ev.preventDefault();
} }
this.model.messages.off('add',null,this);
this.remove(); this.remove();
this.model.maximize(); this.model.maximize();
}, 200) }, 200)
@ -44974,7 +45090,12 @@ define("converse-templates", [
}, },
showInRoster: function () { showInRoster: function () {
return (!converse.show_only_online_users || this.get('chat_status') === 'online'); var chatStatus = this.get('chat_status');
if (converse.show_only_online_users && chatStatus !== 'online')
return false;
if (converse.hide_offline_users && chatStatus === 'offline')
return false;
return true;
} }
}); });
@ -44995,54 +45116,6 @@ define("converse-templates", [
this.model.on("open", this.openChat, this); this.model.on("open", this.openChat, this);
}, },
openChat: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
// XXX: Can this.model.attributes be used here, instead of
// manually specifying all attributes?
return converse.chatboxviews.showChat({
'id': this.model.get('jid'),
'jid': this.model.get('jid'),
'fullname': this.model.get('fullname'),
'image_type': this.model.get('image_type'),
'image': this.model.get('image'),
'url': this.model.get('url'),
'status': this.model.get('status')
});
},
removeContact: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var result = confirm(__("Are you sure you want to remove this contact?"));
if (result === true) {
var bare_jid = this.model.get('jid');
converse.connection.roster.remove(bare_jid, $.proxy(function (iq) {
converse.connection.roster.unauthorize(bare_jid);
converse.rosterview.model.remove(bare_jid);
this.model.destroy();
this.remove();
}, this));
}
},
acceptRequest: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var jid = this.model.get('jid');
converse.connection.roster.authorize(jid);
converse.connection.roster.add(jid, this.model.get('fullname'), [], function (iq) {
converse.connection.roster.subscribe(jid, null, converse.xmppstatus.get('fullname'));
});
},
declineRequest: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var result = confirm(__("Are you sure you want to decline this contact request?"));
if (result === true) {
converse.connection.roster.unauthorize(this.model.get('jid'));
this.model.destroy();
}
return this;
},
render: function () { render: function () {
if (!this.model.showInRoster()) { if (!this.model.showInRoster()) {
this.$el.hide(); this.$el.hide();
@ -45108,6 +45181,54 @@ define("converse-templates", [
)); ));
} }
return this; return this;
},
openChat: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
// XXX: Can this.model.attributes be used here, instead of
// manually specifying all attributes?
return converse.chatboxviews.showChat({
'id': this.model.get('jid'),
'jid': this.model.get('jid'),
'fullname': this.model.get('fullname'),
'image_type': this.model.get('image_type'),
'image': this.model.get('image'),
'url': this.model.get('url'),
'status': this.model.get('status')
});
},
removeContact: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var result = confirm(__("Are you sure you want to remove this contact?"));
if (result === true) {
var bare_jid = this.model.get('jid');
converse.connection.roster.remove(bare_jid, $.proxy(function (iq) {
converse.connection.roster.unauthorize(bare_jid);
converse.rosterview.model.remove(bare_jid);
this.model.destroy();
this.remove();
}, this));
}
},
acceptRequest: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var jid = this.model.get('jid');
converse.connection.roster.authorize(jid);
converse.connection.roster.add(jid, this.model.get('fullname'), [], function (iq) {
converse.connection.roster.subscribe(jid, null, converse.xmppstatus.get('fullname'));
});
},
declineRequest: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var result = confirm(__("Are you sure you want to decline this contact request?"));
if (result === true) {
converse.connection.roster.unauthorize(this.model.get('jid'));
this.model.destroy();
}
return this;
} }
}); });
@ -45168,7 +45289,7 @@ define("converse-templates", [
idx = _.indexOf(resources, resource); idx = _.indexOf(resources, resource);
if (idx !== -1) { if (idx !== -1) {
resources.splice(idx, 1); resources.splice(idx, 1);
item.set({'resources': resources}); item.save({'resources': resources});
return resources.length; return resources.length;
} }
} }
@ -45313,7 +45434,7 @@ define("converse-templates", [
converse.getVCard( converse.getVCard(
bare_jid, bare_jid,
$.proxy(function (jid, fullname, img, img_type, url) { $.proxy(function (jid, fullname, img, img_type, url) {
this.add({ this.create({
jid: bare_jid, jid: bare_jid,
subscription: 'none', subscription: 'none',
ask: null, ask: null,
@ -45327,7 +45448,7 @@ define("converse-templates", [
}, this), }, this),
$.proxy(function (jid, iq) { $.proxy(function (jid, iq) {
converse.log("Error while retrieving vcard"); converse.log("Error while retrieving vcard");
this.add({ this.create({
jid: bare_jid, jid: bare_jid,
subscription: 'none', subscription: 'none',
ask: null, ask: null,
@ -45380,9 +45501,10 @@ define("converse-templates", [
this.unsubscribe(bare_jid); this.unsubscribe(bare_jid);
} else if (presence_type === 'unavailable') { } else if (presence_type === 'unavailable') {
if (this.removeResource(bare_jid, resource) === 0) { if (this.removeResource(bare_jid, resource) === 0) {
if (contact) { chat_status = "offline";
contact.save({'chat_status': 'offline'});
} }
if (contact && chat_status) {
contact.save({'chat_status': chat_status});
} }
} else if (contact) { } else if (contact) {
// presence_type is undefined // presence_type is undefined
@ -45495,7 +45617,7 @@ define("converse-templates", [
} }
}, this)); }, this));
} }
this.showIfInvisible(); this.showIfNecessary();
} else { } else {
q = q.toLowerCase(); q = q.toLowerCase();
matches = this.model.contacts.filter(contains.not('fullname', q)); matches = this.model.contacts.filter(contains.not('fullname', q));
@ -45508,13 +45630,13 @@ define("converse-templates", [
_.each(this.model.contacts.reject(contains.not('fullname', q)), $.proxy(function (item) { _.each(this.model.contacts.reject(contains.not('fullname', q)), $.proxy(function (item) {
this.get(item.get('id')).$el.show(); this.get(item.get('id')).$el.show();
}, this)); }, this));
this.showIfInvisible(); this.showIfNecessary();
} }
} }
}, },
showIfInvisible: function () { showIfNecessary: function () {
if (!this.$el.is(':visible')) { if (!this.$el.is(':visible') && this.model.contacts.length > 0) {
this.$el.show(); this.$el.show();
} }
}, },
@ -45719,9 +45841,10 @@ define("converse-templates", [
liveFilter: _.debounce(function (ev) { liveFilter: _.debounce(function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); } if (ev && ev.preventDefault) { ev.preventDefault(); }
var q = ev.target.value; var $filter = this.$('.roster-filter');
var q = $filter.val();
var t = this.$('.filter-type').val(); var t = this.$('.filter-type').val();
$(ev.target)[this.tog(q)]('x'); $filter[this.tog(q)]('x');
this.filter(q, t); this.filter(q, t);
}, 300), }, 300),
@ -45826,6 +45949,7 @@ define("converse-templates", [
if (_.has(contact.changed, 'subscription') && contact.changed.requesting == 'true') { if (_.has(contact.changed, 'subscription') && contact.changed.requesting == 'true') {
this.addContactToGroup(contact, HEADER_REQUESTING_CONTACTS); this.addContactToGroup(contact, HEADER_REQUESTING_CONTACTS);
} }
this.liveFilter();
}, },
updateChatBox: function (contact) { updateChatBox: function (contact) {
@ -45980,6 +46104,11 @@ define("converse-templates", [
(type === 'subscribe') || (type === 'subscribe') ||
(type === 'subscribed')) { (type === 'subscribed')) {
presence = $pres({'type': type}); presence = $pres({'type': type});
} else if (type === 'offline') {
presence = $pres({'type': 'unavailable'});
if (status_message) {
presence.c('show').t(type);
}
} else { } else {
if (type === 'online') { if (type === 'online') {
presence = $pres(); presence = $pres();
@ -46169,7 +46298,7 @@ define("converse-templates", [
converse.connection.disco.addFeature('http://jabber.org/protocol/rosterx'); // Limited support converse.connection.disco.addFeature('http://jabber.org/protocol/rosterx'); // Limited support
converse.connection.disco.addFeature('jabber:x:conference'); converse.connection.disco.addFeature('jabber:x:conference');
converse.connection.disco.addFeature('urn:xmpp:carbons:2'); converse.connection.disco.addFeature('urn:xmpp:carbons:2');
converse.connection.disco.addFeature('vcard-temp'); converse.connection.disco.addFeature(Strophe.NS.VCARD);
converse.connection.disco.addFeature(Strophe.NS.BOSH); converse.connection.disco.addFeature(Strophe.NS.BOSH);
converse.connection.disco.addFeature(Strophe.NS.DISCO_INFO); converse.connection.disco.addFeature(Strophe.NS.DISCO_INFO);
converse.connection.disco.addFeature(Strophe.NS.MUC); converse.connection.disco.addFeature(Strophe.NS.MUC);
@ -46445,55 +46574,150 @@ define("converse-templates", [
'initiateOTR': $.proxy(chatbox.initiateOTR, chatbox), 'initiateOTR': $.proxy(chatbox.initiateOTR, chatbox),
'maximize': $.proxy(chatbox.maximize, chatbox), 'maximize': $.proxy(chatbox.maximize, chatbox),
'minimize': $.proxy(chatbox.minimize, chatbox), 'minimize': $.proxy(chatbox.minimize, chatbox),
'set': $.proxy(chatbox.set, chatbox) 'set': $.proxy(chatbox.set, chatbox),
'open': chatbox.trigger.bind(chatbox, 'show')
}; };
}; };
return { return {
'getBuddy': function (jid) { 'initialize': function (settings, callback) {
converse.initialize(settings, callback);
},
'contacts': {
'get': function (jids) {
var _transform = function (jid) {
var contact = converse.roster.get(Strophe.getBareJidFromJid(jid)); var contact = converse.roster.get(Strophe.getBareJidFromJid(jid));
if (contact) { if (contact) {
return contact.attributes; return contact.attributes;
} }
},
'getChatBox': function (jid) {
var chatbox = converse.chatboxes.get(jid);
if (chatbox) {
return wrappedChatBox(chatbox);
}
},
'getRID': function () {
if (converse.expose_rid_and_sid && typeof converse.connection !== "undefined") {
return converse.connection.rid || converse.connection._proto.rid;
}
return null; return null;
};
if (typeof jids === "string") {
return _transform(jids);
}
return _.map(jids, _transform);
}
}, },
'getSID': function () { 'chats': {
if (converse.expose_rid_and_sid && typeof converse.connection !== "undefined") { 'get': function (jids) {
var _transform = function (jid) {
var chatbox = converse.chatboxes.get(jid);
if (!chatbox) {
var roster_item = converse.roster.get(jid);
if (roster_item === undefined) {
converse.log('Could not get roster item for JID '+jid, 'error');
return null;
}
chatbox = converse.chatboxes.create({
'id': jid,
'jid': jid,
'fullname': _.isEmpty(roster_item.get('fullname'))? jid: roster_item.get('fullname'),
'image_type': roster_item.get('image_type'),
'image': roster_item.get('image'),
'url': roster_item.get('url')
});
}
return wrappedChatBox(chatbox);
};
if (typeof jids === "string") {
return _transform(jids);
}
return _.map(jids, _transform);
}
},
'tokens': {
'get': function (id) {
if (!converse.expose_rid_and_sid || typeof converse.connection === "undefined") {
return null;
}
if (id.toLowerCase() === 'rid') {
return converse.connection.rid || converse.connection._proto.rid;
} else if (id.toLowerCase() === 'sid') {
return converse.connection.sid || converse.connection._proto.sid; return converse.connection.sid || converse.connection._proto.sid;
} }
return null;
},
'initialize': function (settings, callback) {
converse.initialize(settings, callback);
},
'jQuery': $,
'openChatBox': function (jid) {
var contact = converse.roster.get(Strophe.getBareJidFromJid(jid));
if (contact) {
return wrappedChatBox(converse.chatboxviews.showChat(contact.attributes));
} }
}, },
'listen': {
'once': function (evt, handler) { 'once': function (evt, handler) {
converse.once(evt, handler); converse.once(evt, handler);
}, },
'on': function (evt, handler) { 'on': function (evt, handler) {
converse.on(evt, handler); converse.on(evt, handler);
}, },
'off': function (evt, handler) { 'not': function (evt, handler) {
converse.off(evt, handler); converse.off(evt, handler);
}, },
'registerPlugin': function (name, callback) { },
'plugins': {
'add': function (name, callback) {
converse.plugins[name] = callback; converse.plugins[name] = callback;
},
'remove': function (name) {
delete converse.plugins[name];
},
'extend': function (obj, attributes) {
/* Helper method for overriding or extending Converse's Backbone Views or Models
*
* When a method is overriden, the original will still be available
* on the _super attribute of the object being overridden.
*
* obj: The Backbone View or Model
* attributes: A hash of attributes, such as you would pass to Backbone.Model.extend or Backbone.View.extend
*/
if (!obj.prototype._super) {
obj.prototype._super = {};
}
_.each(attributes, function (value, key) {
if (key === 'events') {
obj.prototype[key] = _.extend(value, obj.prototype[key]);
} else {
if (typeof key === 'function') {
obj.prototype._super[key] = obj.prototype[key];
}
obj.prototype[key] = value;
}
});
}
},
'env': {
'jQuery': $,
'Strophe': Strophe,
'_': _
},
// Deprecated API methods
'getBuddy': function (jid) {
converse.log('WARNING: the "getBuddy" API method has been deprecated. Please use "contacts.get" instead');
return this.contacts.get(jid);
},
'getChatBox': function (jid) {
converse.log('WARNING: the "getChatBox" API method has been deprecated. Please use "chats.get" instead');
return this.chats.get(jid);
},
'openChatBox': function (jid) {
converse.log('WARNING: the "openChatBox" API method has been deprecated. Please use "chats.get(jid).open()" instead');
var chat = this.chats.get(jid);
if (chat) { chat.open(); }
return chat;
},
'getRID': function () {
converse.log('WARNING: the "getRID" API method has been deprecated. Please use "tokens.get(\'rid\')" instead');
return this.tokens.get('rid');
},
'getSID': function () {
converse.log('WARNING: the "getSID" API method has been deprecated. Please use "tokens.get(\'sid\')" instead');
return this.tokens.get('sid');
},
'once': function (evt, handler) {
converse.log('WARNING: the "one" API method has been deprecated. Please use "listen.once" instead');
return this.listen.once(evt, handler);
},
'on': function (evt, handler) {
converse.log('WARNING: the "on" API method has been deprecated. Please use "listen.on" instead');
return this.listen.on(evt, handler);
},
'off': function (evt, handler) {
converse.log('WARNING: the "off" API method has been deprecated. Please use "listen.not" instead');
return this.listen.not(evt, handler);
} }
}; };
})); }));
@ -46603,7 +46827,8 @@ require.config({
"status_option": "src/templates/status_option", "status_option": "src/templates/status_option",
"toggle_chats": "src/templates/toggle_chats", "toggle_chats": "src/templates/toggle_chats",
"toolbar": "src/templates/toolbar", "toolbar": "src/templates/toolbar",
"trimmed_chat": "src/templates/trimmed_chat" "trimmed_chat": "src/templates/trimmed_chat",
"form_textarea": "src/templates/form_textarea"
}, },
map: { map: {

File diff suppressed because one or more lines are too long

View File

@ -29334,7 +29334,7 @@ Strophe.addConnectionPlugin('roster',
oldCallback.apply(this, arguments); oldCallback.apply(this, arguments);
} }
}; };
conn.connect = function(jid, pass, callback, wait, hold) conn.connect = function(jid, pass, callback, wait, hold, route)
{ {
oldCallback = callback; oldCallback = callback;
if (typeof jid == "undefined") if (typeof jid == "undefined")
@ -29342,7 +29342,7 @@ Strophe.addConnectionPlugin('roster',
if (typeof pass == "undefined") if (typeof pass == "undefined")
pass = null; pass = null;
callback = newCallback; callback = newCallback;
_connect.apply(conn, [jid, pass, callback, wait, hold]); _connect.apply(conn, [jid, pass, callback, wait, hold, route]);
}; };
conn.attach = function(jid, sid, rid, callback, wait, hold, wind) conn.attach = function(jid, sid, rid, callback, wait, hold, wind)
{ {
@ -30765,9 +30765,21 @@ var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments
with(obj||{}){ with(obj||{}){
__p+='<field var="'+ __p+='<field var="'+
((__t=(name))==null?'':__t)+ ((__t=(name))==null?'':__t)+
'"><value>'+ '">';
if (_.isArray(value)) {
__p+='\n ';
_.each(value,function(arrayValue) {
__p+='<value>'+
((__t=(arrayValue))==null?'':__t)+
'</value>';
});
__p+='\n';
} else {
__p+='\n <value>'+
((__t=(value))==null?'':__t)+ ((__t=(value))==null?'':__t)+
'</value></field>\n'; '</value>\n';
}
__p+='</field>\n';
} }
return __p; return __p;
}; }); }; });
@ -30814,7 +30826,11 @@ __p+='<label>'+
((__t=(label))==null?'':__t)+ ((__t=(label))==null?'':__t)+
'<select name="'+ '<select name="'+
((__t=(name))==null?'':__t)+ ((__t=(name))==null?'':__t)+
'">'+ '" ';
if (multiple) {
__p+=' multiple="multiple" ';
}
__p+='>'+
((__t=(options))==null?'':__t)+ ((__t=(options))==null?'':__t)+
'</select></label>\n'; '</select></label>\n';
} }
@ -31159,7 +31175,11 @@ var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments
with(obj||{}){ with(obj||{}){
__p+='<option value="'+ __p+='<option value="'+
((__t=(value))==null?'':__t)+ ((__t=(value))==null?'':__t)+
'">'+ '" ';
if (selected) {
__p+=' selected="selected" ';
}
__p+=' >'+
((__t=(label))==null?'':__t)+ ((__t=(label))==null?'':__t)+
'</option>\n'; '</option>\n';
} }
@ -31315,6 +31335,21 @@ __p+='\n href="#">'+
return __p; return __p;
}; }); }; });
define('tpl!form_textarea', [],function () { return function(obj){
var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};
with(obj||{}){
__p+='<label class="label-ta">'+
((__t=(label))==null?'':__t)+
'<textarea name="'+
((__t=(name))==null?'':__t)+
'">'+
((__t=(value))==null?'':__t)+
'</textarea></label>\n';
}
return __p;
}; });
define("converse-templates", [ define("converse-templates", [
"tpl!action", "tpl!action",
"tpl!add_contact_dropdown", "tpl!add_contact_dropdown",
@ -31358,7 +31393,8 @@ define("converse-templates", [
"tpl!status_option", "tpl!status_option",
"tpl!toggle_chats", "tpl!toggle_chats",
"tpl!toolbar", "tpl!toolbar",
"tpl!trimmed_chat" "tpl!trimmed_chat",
"tpl!form_textarea"
], function () { ], function () {
return { return {
action: arguments[0], action: arguments[0],
@ -31403,7 +31439,8 @@ define("converse-templates", [
status_option: arguments[39], status_option: arguments[39],
toggle_chats: arguments[40], toggle_chats: arguments[40],
toolbar: arguments[41], toolbar: arguments[41],
trimmed_chat: arguments[42] trimmed_chat: arguments[42],
form_textarea: arguments[43]
}; };
}); });
@ -31626,6 +31663,7 @@ define("converse-templates", [
this.expose_rid_and_sid = false; this.expose_rid_and_sid = false;
this.forward_messages = false; this.forward_messages = false;
this.hide_muc_server = false; this.hide_muc_server = false;
this.hide_offline_users = false;
this.i18n = locales.en; this.i18n = locales.en;
this.keepalive = false; this.keepalive = false;
this.message_carbons = false; this.message_carbons = false;
@ -31666,14 +31704,15 @@ define("converse-templates", [
'connection', 'connection',
'debug', 'debug',
'default_box_height', 'default_box_height',
'keepalive',
'message_carbons',
'expose_rid_and_sid', 'expose_rid_and_sid',
'forward_messages', 'forward_messages',
'fullname', 'fullname',
'hide_muc_server', 'hide_muc_server',
'hide_offline_users',
'i18n', 'i18n',
'jid', 'jid',
'keepalive',
'message_carbons',
'no_trimming', 'no_trimming',
'play_sounds', 'play_sounds',
'prebind', 'prebind',
@ -32040,7 +32079,11 @@ define("converse-templates", [
.c('enable', {xmlns: 'urn:xmpp:carbons:2'}); .c('enable', {xmlns: 'urn:xmpp:carbons:2'});
this.connection.send(carbons_iq); this.connection.send(carbons_iq);
this.connection.addHandler(function (iq) { this.connection.addHandler(function (iq) {
//TODO: check if carbons was enabled: if ($(iq).find('error').length > 0) {
converse.log('ERROR: An error occured while trying to enable message carbons.');
} else {
converse.log('Message carbons appear to have been enabled.');
}
}, null, "iq", null, "enablecarbons"); }, null, "iq", null, "enablecarbons");
}; };
@ -32235,7 +32278,7 @@ define("converse-templates", [
switch (type) { switch (type) {
case 'question': case 'question':
this.otr.smpSecret(prompt(__( 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', 'Authentication request from %1$s\n\nYour chat contact is attempting to verify your identity, by asking you the question below.\n\n%2$s',
[this.get('fullname'), data]))); [this.get('fullname'), data])));
break; break;
case 'trust': case 'trust':
@ -32259,7 +32302,7 @@ define("converse-templates", [
// encrypted messages. // encrypted messages.
// //
// If 'query_msg' is passed in, it means there is an alread incoming // If 'query_msg' is passed in, it means there is an alread incoming
// query message from our buddy. Otherwise, it is us who will // query message from our contact. Otherwise, it is us who will
// send the query message to them. // send the query message to them.
this.save({'otr_status': UNENCRYPTED}); this.save({'otr_status': UNENCRYPTED});
var session = this.getSession($.proxy(function (session) { var session = this.getSession($.proxy(function (session) {
@ -32283,7 +32326,7 @@ define("converse-templates", [
this.trigger('showOTRError', msg); this.trigger('showOTRError', msg);
}, this)); }, this));
this.trigger('showHelpMessages', [__('Exchanging private key with buddy.')]); this.trigger('showHelpMessages', [__('Exchanging private key with contact.')]);
if (query_msg) { if (query_msg) {
this.otr.receiveMsg(query_msg); this.otr.receiveMsg(query_msg);
} else { } else {
@ -32407,6 +32450,7 @@ define("converse-templates", [
this.model.on('destroy', this.hide, this); this.model.on('destroy', this.hide, this);
this.model.on('change', this.onChange, this); this.model.on('change', this.onChange, this);
this.model.on('showOTRError', this.showOTRError, this); this.model.on('showOTRError', this.showOTRError, this);
// XXX: doesn't look like this event is being used?
this.model.on('buddyStartsOTR', this.buddyStartsOTR, this); this.model.on('buddyStartsOTR', this.buddyStartsOTR, this);
this.model.on('showHelpMessages', this.showHelpMessages, this); this.model.on('showHelpMessages', this.showHelpMessages, this);
this.model.on('sendMessageStanza', this.sendMessageStanza, this); this.model.on('sendMessageStanza', this.sendMessageStanza, this);
@ -32479,7 +32523,7 @@ define("converse-templates", [
msg_time = moment(msg_dict.time) || moment, msg_time = moment(msg_dict.time) || moment,
text = msg_dict.message, text = msg_dict.message,
match = text.match(/^\/(.*?)(?: (.*))?$/), match = text.match(/^\/(.*?)(?: (.*))?$/),
fullname = msg_dict.fullname || this.model.get('fullname'), // XXX Perhaps always use model's? fullname = this.model.get('fullname'), // XXX Perhaps always use model's?
extra_classes = msg_dict.delayed && 'delayed' || '', extra_classes = msg_dict.delayed && 'delayed' || '',
template, username; template, username;
@ -32759,7 +32803,7 @@ define("converse-templates", [
this.model.save({'otr_status': UNVERIFIED}); this.model.save({'otr_status': UNVERIFIED});
} }
} else if (scheme === 'smp') { } 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 be verified.')); alert(__('You will be prompted to provide a security question and then an answer to that question.\n\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.'));
question = prompt(__('What is your security question?')); question = prompt(__('What is your security question?'));
if (question) { if (question) {
answer = prompt(__('What is the answer to the security question?')); answer = prompt(__('What is the answer to the security question?'));
@ -32794,10 +32838,14 @@ define("converse-templates", [
this.$el.find('div.chat-event').remove(); this.$el.find('div.chat-event').remove();
} }
} }
converse.emit('contactStatusChanged', item.attributes, item.get('chat_status'));
// TODO: DEPRECATED AND SHOULD BE REMOVED IN 0.9.0
converse.emit('buddyStatusChanged', item.attributes, item.get('chat_status')); converse.emit('buddyStatusChanged', item.attributes, item.get('chat_status'));
} }
if (_.has(item.changed, 'status')) { if (_.has(item.changed, 'status')) {
this.showStatusMessage(); this.showStatusMessage();
converse.emit('contactStatusMessageChanged', item.attributes, item.get('status'));
// TODO: DEPRECATED AND SHOULD BE REMOVED IN 0.9.0
converse.emit('buddyStatusMessageChanged', item.attributes, item.get('status')); converse.emit('buddyStatusMessageChanged', item.attributes, item.get('status'));
} }
if (_.has(item.changed, 'image')) { if (_.has(item.changed, 'image')) {
@ -32818,7 +32866,7 @@ define("converse-templates", [
showStatusMessage: function (msg) { showStatusMessage: function (msg) {
msg = msg || this.model.get('status'); msg = msg || this.model.get('status');
if (msg) { if (typeof msg === "string") {
this.$el.find('p.user-custom-message').text(msg).attr('title', msg); this.$el.find('p.user-custom-message').text(msg).attr('title', msg);
} }
return this; return this;
@ -32879,11 +32927,11 @@ define("converse-templates", [
if (data.otr_status == UNENCRYPTED) { if (data.otr_status == UNENCRYPTED) {
msgs.push(__("Your messages are not encrypted anymore")); msgs.push(__("Your messages are not encrypted anymore"));
} else if (data.otr_status == UNVERIFIED){ } else if (data.otr_status == UNVERIFIED){
msgs.push(__("Your messages are now encrypted but your buddy's identity has not been verified.")); msgs.push(__("Your messages are now encrypted but your contact's identity has not been verified."));
} else if (data.otr_status == VERIFIED){ } else if (data.otr_status == VERIFIED){
msgs.push(__("Your buddy's identify has been verified.")); msgs.push(__("Your contact's identify has been verified."));
} else if (data.otr_status == FINISHED){ } else if (data.otr_status == FINISHED){
msgs.push(__("Your buddy has ended encryption on their end, you should do the same.")); msgs.push(__("Your contact has ended encryption on their end, you should do the same."));
} }
return this.showHelpMessages(msgs, 'info', false); return this.showHelpMessages(msgs, 'info', false);
}, },
@ -32894,11 +32942,11 @@ define("converse-templates", [
if (data.otr_status == UNENCRYPTED) { if (data.otr_status == UNENCRYPTED) {
data.otr_tooltip = __('Your messages are not encrypted. Click here to enable OTR encryption.'); data.otr_tooltip = __('Your messages are not encrypted. Click here to enable OTR encryption.');
} else if (data.otr_status == UNVERIFIED){ } else if (data.otr_status == UNVERIFIED){
data.otr_tooltip = __('Your messages are encrypted, but your buddy has not been verified.'); data.otr_tooltip = __('Your messages are encrypted, but your contact has not been verified.');
} else if (data.otr_status == VERIFIED){ } else if (data.otr_status == VERIFIED){
data.otr_tooltip = __('Your messages are encrypted and your buddy verified.'); data.otr_tooltip = __('Your messages are encrypted and your contact verified.');
} else if (data.otr_status == FINISHED){ } 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.otr_tooltip = __('Your contact has closed their end of the private session, you should do the same');
} }
this.$el.find('.chat-toolbar').html( this.$el.find('.chat-toolbar').html(
converse.templates.toolbar( converse.templates.toolbar(
@ -33106,11 +33154,19 @@ define("converse-templates", [
'submit form.add-chatroom': 'createChatRoom', 'submit form.add-chatroom': 'createChatRoom',
'click input#show-rooms': 'showRooms', 'click input#show-rooms': 'showRooms',
'click a.open-room': 'createChatRoom', 'click a.open-room': 'createChatRoom',
'click a.room-info': 'showRoomInfo' 'click a.room-info': 'showRoomInfo',
'change input[name=server]': 'setDomain',
'change input[name=nick]': 'setNick'
}, },
initialize: function (cfg) { initialize: function (cfg) {
cfg.$parent.append( this.$parent = cfg.$parent;
this.model.on('change:muc_domain', this.onDomainChange, this);
this.model.on('change:nick', this.onNickChange, this);
},
render: function () {
this.$parent.append(
this.$el.html( this.$el.html(
converse.templates.room_panel({ converse.templates.room_panel({
'server_input_type': converse.hide_muc_server && 'hidden' || 'text', 'server_input_type': converse.hide_muc_server && 'hidden' || 'text',
@ -33121,37 +33177,34 @@ define("converse-templates", [
'label_show_rooms': __('Show rooms') 'label_show_rooms': __('Show rooms')
}) })
).hide()); ).hide());
this.$tabs = cfg.$parent.parent().find('#controlbox-tabs'); this.$tabs = this.$parent.parent().find('#controlbox-tabs');
this.on('update-rooms-list', function (ev) {
this.updateRoomsList();
});
converse.xmppstatus.on("change", $.proxy(function (model) {
if (!(_.has(model.changed, 'fullname'))) {
return;
}
var $nick = this.$el.find('input.new-chatroom-nick');
if (! $nick.is(':focus')) {
$nick.val(model.get('fullname'));
}
}, this));
},
render: function () {
this.$tabs.append(converse.templates.chatrooms_tab({label_rooms: __('Rooms')})); this.$tabs.append(converse.templates.chatrooms_tab({label_rooms: __('Rooms')}));
return this; return this;
}, },
onDomainChange: function (model) {
var $server = this.$el.find('input.new-chatroom-server');
$server.val(model.get('muc_domain'));
if (converse.auto_list_rooms) {
this.updateRoomsList();
}
},
onNickChange: function (model) {
var $nick = this.$el.find('input.new-chatroom-nick');
$nick.val(model.get('nick'));
},
informNoRoomsFound: function () { informNoRoomsFound: function () {
var $available_chatrooms = this.$el.find('#available-chatrooms'); var $available_chatrooms = this.$el.find('#available-chatrooms');
// # For translators: %1$s is a variable and will be replaced with the XMPP server name // # For translators: %1$s is a variable and will be replaced with the XMPP server name
$available_chatrooms.html('<dt>'+__('No rooms on %1$s',this.muc_domain)+'</dt>'); $available_chatrooms.html('<dt>'+__('No rooms on %1$s',this.model.get('muc_domain'))+'</dt>');
$('input#show-rooms').show().siblings('span.spinner').remove(); $('input#show-rooms').show().siblings('span.spinner').remove();
}, },
updateRoomsList: function (domain) { updateRoomsList: function () {
converse.connection.muc.listRooms( converse.connection.muc.listRooms(
this.muc_domain, this.model.get('muc_domain'),
$.proxy(function (iq) { // Success $.proxy(function (iq) { // Success
var name, jid, i, fragment, var name, jid, i, fragment,
that = this, that = this,
@ -33160,7 +33213,7 @@ define("converse-templates", [
if (this.rooms.length) { if (this.rooms.length) {
// # For translators: %1$s is a variable and will be // # For translators: %1$s is a variable and will be
// # replaced with the XMPP server name // # replaced with the XMPP server name
$available_chatrooms.html('<dt>'+__('Rooms on %1$s',this.muc_domain)+'</dt>'); $available_chatrooms.html('<dt>'+__('Rooms on %1$s',this.model.get('muc_domain'))+'</dt>');
fragment = document.createDocumentFragment(); fragment = document.createDocumentFragment();
for (i=0; i<this.rooms.length; i++) { for (i=0; i<this.rooms.length; i++) {
name = Strophe.unescapeNode($(this.rooms[i]).attr('name')||$(this.rooms[i]).attr('jid')); name = Strophe.unescapeNode($(this.rooms[i]).attr('name')||$(this.rooms[i]).attr('jid'));
@ -33198,7 +33251,7 @@ define("converse-templates", [
$server.removeClass('error'); $server.removeClass('error');
$available_chatrooms.empty(); $available_chatrooms.empty();
$('input#show-rooms').hide().after('<span class="spinner"/>'); $('input#show-rooms').hide().after('<span class="spinner"/>');
this.muc_domain = server; this.model.save({muc_domain: server});
this.updateRoomsList(); this.updateRoomsList();
}, },
@ -33275,7 +33328,7 @@ define("converse-templates", [
jid = Strophe.escapeNode(name) + '@' + server; jid = Strophe.escapeNode(name) + '@' + server;
$name.removeClass('error'); $name.removeClass('error');
$server.removeClass('error'); $server.removeClass('error');
this.muc_domain = server; this.model.save({muc_domain: server});
} else { } else {
if (!name) { $name.addClass('error'); } if (!name) { $name.addClass('error'); }
if (!server) { $server.addClass('error'); } if (!server) { $server.addClass('error'); }
@ -33291,6 +33344,14 @@ define("converse-templates", [
'chatroom': true, 'chatroom': true,
'box_id' : b64_sha1(jid) 'box_id' : b64_sha1(jid)
}); });
},
setDomain: function (ev) {
this.model.save({muc_domain: ev.target.value});
},
setNick: function (ev) {
this.model.save({nick: ev.target.value});
} }
}); });
@ -33384,14 +33445,25 @@ define("converse-templates", [
}, },
renderContactsPanel: function () { renderContactsPanel: function () {
var model;
this.$el.html(converse.templates.controlbox(this.model.toJSON())); this.$el.html(converse.templates.controlbox(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(); this.contactspanel.render();
converse.xmppstatusview = new converse.XMPPStatusView({'model': converse.xmppstatus}); converse.xmppstatusview = new converse.XMPPStatusView({'model': converse.xmppstatus});
converse.xmppstatusview.render(); converse.xmppstatusview.render();
if (converse.allow_muc) { if (converse.allow_muc) {
this.roomspanel = new converse.RoomsPanel({'$parent': this.$el.find('.controlbox-panes')}); this.roomspanel = new converse.RoomsPanel({
this.roomspanel.render(); '$parent': this.$el.find('.controlbox-panes'),
'model': new (Backbone.Model.extend({
id: b64_sha1('converse.roomspanel'+converse.bare_jid), // Required by sessionStorage
browserStorage: new Backbone.BrowserStorage[converse.storage](
b64_sha1('converse.roomspanel'+converse.bare_jid))
}))()
});
this.roomspanel.render().model.fetch();
if (!this.roomspanel.model.get('nick')) {
this.roomspanel.model.save({nick: Strophe.getNodeFromJid(converse.bare_jid)});
}
} }
this.initDragResize(); this.initDragResize();
}, },
@ -33443,13 +33515,10 @@ define("converse-templates", [
featureAdded: function (feature) { featureAdded: function (feature) {
if ((feature.get('var') == 'http://jabber.org/protocol/muc') && (converse.allow_muc)) { if ((feature.get('var') == 'http://jabber.org/protocol/muc') && (converse.allow_muc)) {
this.roomspanel.muc_domain = feature.get('from'); this.roomspanel.model.save({muc_domain: feature.get('from')});
var $server= this.$el.find('input.new-chatroom-server'); var $server= this.$el.find('input.new-chatroom-server');
if (! $server.is(':focus')) { if (! $server.is(':focus')) {
$server.val(this.roomspanel.muc_domain); $server.val(this.roomspanel.model.get('muc_domain'));
}
if (converse.auto_list_rooms) {
this.roomspanel.trigger('update-rooms-list');
} }
} }
}, },
@ -33798,13 +33867,17 @@ define("converse-templates", [
$fields = $stanza.find('field'), $fields = $stanza.find('field'),
title = $stanza.find('title').text(), title = $stanza.find('title').text(),
instructions = $stanza.find('instructions').text(), instructions = $stanza.find('instructions').text(),
i, j, options=[], $field, $options; i, j, options=[], $field, $options,
values=[], $values, value;
var input_types = { var input_types = {
'text-private': 'password', 'text-private': 'password',
'text-single': 'textline', 'text-single': 'textline',
'fixed': 'label',
'boolean': 'checkbox', 'boolean': 'checkbox',
'hidden': 'hidden', 'hidden': 'hidden',
'list-single': 'dropdown' 'jid-multi': 'textarea',
'list-single': 'dropdown',
'list-multi': 'dropdown'
}; };
$form.find('span.spinner').remove(); $form.find('span.spinner').remove();
$form.append($('<legend>').text(title)); $form.append($('<legend>').text(title));
@ -33813,19 +33886,35 @@ define("converse-templates", [
} }
for (i=0; i<$fields.length; i++) { for (i=0; i<$fields.length; i++) {
$field = $($fields[i]); $field = $($fields[i]);
if ($field.attr('type') == 'list-single') { if ($field.attr('type') == 'list-single' || $field.attr('type') == 'list-multi') {
values = [];
$values = $field.children('value');
for (j=0; j<$values.length; j++) {
values.push($($values[j]).text());
}
options = []; options = [];
$options = $field.find('option'); $options = $field.children('option');
for (j=0; j<$options.length; j++) { for (j=0; j<$options.length; j++) {
value = $($options[j]).find('value').text();
options.push(converse.templates.select_option({ options.push(converse.templates.select_option({
value: $($options[j]).find('value').text(), value: value,
label: $($options[j]).attr('label') label: $($options[j]).attr('label'),
selected: (values.indexOf(value) >= 0)
})); }));
} }
$form.append(converse.templates.form_select({ $form.append(converse.templates.form_select({
name: $field.attr('var'), name: $field.attr('var'),
label: $field.attr('label'), label: $field.attr('label'),
options: options.join('') options: options.join(''),
multiple: ($field.attr('type') == 'list-multi')
}));
} else if ($field.attr('type') == 'fixed') {
$form.append($('<p>').text($field.find('value').text()));
} else if ($field.attr('type') == 'jid-multi') {
$form.append(converse.templates.form_textarea({
name: $field.attr('var'),
label: $field.attr('label') || '',
value: $field.find('value').text()
})); }));
} else if ($field.attr('type') == 'boolean') { } else if ($field.attr('type') == 'boolean') {
$form.append(converse.templates.form_checkbox({ $form.append(converse.templates.form_checkbox({
@ -33859,6 +33948,15 @@ define("converse-templates", [
var $input = $(this), value; var $input = $(this), value;
if ($input.is('[type=checkbox]')) { if ($input.is('[type=checkbox]')) {
value = $input.is(':checked') && 1 || 0; value = $input.is(':checked') && 1 || 0;
} else if ($input.is('textarea')) {
value = [];
var lines = $input.val().split('\n');
for( var vk=0; vk<lines.length; vk++) {
var val = $.trim(lines[vk]);
if (val === '')
continue;
value.push(val);
}
} else { } else {
value = $input.val(); value = $input.val();
} }
@ -34133,7 +34231,7 @@ define("converse-templates", [
delayed = $message.find('delay').length > 0, delayed = $message.find('delay').length > 0,
subject = $message.children('subject').text(); subject = $message.children('subject').text();
if (this.model.messages.findWhere({msgid: msgid})) { if (msgid && this.model.messages.findWhere({msgid: msgid})) {
return true; // We already have this message stored. return true; // We already have this message stored.
} }
this.showStatusMessages($message); this.showStatusMessages($message);
@ -34251,7 +34349,9 @@ define("converse-templates", [
onMessage: function (message) { onMessage: function (message) {
var $message = $(message); var $message = $(message);
var buddy_jid, $forwarded, $received, var contact_jid, $forwarded, $received, $sent,
msgid = $message.attr('id'),
chatbox, resource, roster_item,
message_from = $message.attr('from'); message_from = $message.attr('from');
if (message_from === converse.connection.jid) { if (message_from === converse.connection.jid) {
// FIXME: Forwarded messages should be sent to specific resources, // FIXME: Forwarded messages should be sent to specific resources,
@ -34260,49 +34360,64 @@ define("converse-templates", [
} }
$forwarded = $message.children('forwarded'); $forwarded = $message.children('forwarded');
$received = $message.children('received[xmlns="urn:xmpp:carbons:2"]'); $received = $message.children('received[xmlns="urn:xmpp:carbons:2"]');
$sent = $message.children('sent[xmlns="urn:xmpp:carbons:2"]');
if ($forwarded.length) { if ($forwarded.length) {
$message = $forwarded.children('message'); $message = $forwarded.children('message');
} else if ($received.length) { } else if ($received.length) {
$message = $received.children('forwarded').children('message'); $message = $received.children('forwarded').children('message');
message_from = $message.attr('from'); message_from = $message.attr('from');
} else if ($sent.length) {
$message = $sent.children('forwarded').children('message');
message_from = $message.attr('from');
} }
var from = Strophe.getBareJidFromJid(message_from), var from = Strophe.getBareJidFromJid(message_from),
to = Strophe.getBareJidFromJid($message.attr('to')), to = Strophe.getBareJidFromJid($message.attr('to'));
resource, chatbox, roster_item;
if (from == converse.bare_jid) { if (from == converse.bare_jid) {
// I am the sender, so this must be a forwarded message... // I am the sender, so this must be a forwarded message...
buddy_jid = to; contact_jid = to;
resource = Strophe.getResourceFromJid($message.attr('to')); resource = Strophe.getResourceFromJid($message.attr('to'));
} else { } else {
buddy_jid = from; contact_jid = from;
resource = Strophe.getResourceFromJid(message_from); resource = Strophe.getResourceFromJid(message_from);
} }
chatbox = this.get(buddy_jid);
roster_item = converse.roster.get(buddy_jid);
roster_item = converse.roster.get(contact_jid);
if (roster_item === undefined) { if (roster_item === undefined) {
// The buddy was likely removed // The contact was likely removed
converse.log('Could not get roster item for JID '+buddy_jid, 'error'); converse.log('Could not get roster item for JID '+contact_jid, 'error');
return true; return true;
} }
chatbox = this.get(contact_jid);
if (!chatbox) { if (!chatbox) {
var fullname = roster_item.get('fullname'); var fullname = roster_item.get('fullname');
fullname = _.isEmpty(fullname)? buddy_jid: fullname; fullname = _.isEmpty(fullname)? contact_jid: fullname;
chatbox = this.create({ chatbox = this.create({
'id': buddy_jid, 'id': contact_jid,
'jid': buddy_jid, 'jid': contact_jid,
'fullname': fullname, 'fullname': fullname,
'image_type': roster_item.get('image_type'), 'image_type': roster_item.get('image_type'),
'image': roster_item.get('image'), 'image': roster_item.get('image'),
'url': roster_item.get('url') 'url': roster_item.get('url')
}); });
} }
if (msgid && chatbox.messages.findWhere({msgid: msgid})) {
// FIXME: There's still a bug here..
// If a duplicate message is received just after the chat
// box was closed, then it'll open again (due to it being
// created here above), with now new messages.
// The solution is mostly likely to not let chat boxes show
// automatically when they are created, but to require
// "show" to be called explicitly.
return true; // We already have this message stored.
}
if (!this.isOnlyChatStateNotification($message) && from !== converse.bare_jid) { if (!this.isOnlyChatStateNotification($message) && from !== converse.bare_jid) {
playNotification(); playNotification();
} }
chatbox.receiveMessage($message); chatbox.receiveMessage($message);
converse.roster.addResource(buddy_jid, resource); converse.roster.addResource(contact_jid, resource);
converse.emit('message', message); converse.emit('message', message);
return true; return true;
} }
@ -34502,6 +34617,7 @@ define("converse-templates", [
if (ev && ev.preventDefault) { if (ev && ev.preventDefault) {
ev.preventDefault(); ev.preventDefault();
} }
this.model.messages.off('add',null,this);
this.remove(); this.remove();
this.model.maximize(); this.model.maximize();
}, 200) }, 200)
@ -34640,7 +34756,12 @@ define("converse-templates", [
}, },
showInRoster: function () { showInRoster: function () {
return (!converse.show_only_online_users || this.get('chat_status') === 'online'); var chatStatus = this.get('chat_status');
if (converse.show_only_online_users && chatStatus !== 'online')
return false;
if (converse.hide_offline_users && chatStatus === 'offline')
return false;
return true;
} }
}); });
@ -34661,54 +34782,6 @@ define("converse-templates", [
this.model.on("open", this.openChat, this); this.model.on("open", this.openChat, this);
}, },
openChat: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
// XXX: Can this.model.attributes be used here, instead of
// manually specifying all attributes?
return converse.chatboxviews.showChat({
'id': this.model.get('jid'),
'jid': this.model.get('jid'),
'fullname': this.model.get('fullname'),
'image_type': this.model.get('image_type'),
'image': this.model.get('image'),
'url': this.model.get('url'),
'status': this.model.get('status')
});
},
removeContact: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var result = confirm(__("Are you sure you want to remove this contact?"));
if (result === true) {
var bare_jid = this.model.get('jid');
converse.connection.roster.remove(bare_jid, $.proxy(function (iq) {
converse.connection.roster.unauthorize(bare_jid);
converse.rosterview.model.remove(bare_jid);
this.model.destroy();
this.remove();
}, this));
}
},
acceptRequest: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var jid = this.model.get('jid');
converse.connection.roster.authorize(jid);
converse.connection.roster.add(jid, this.model.get('fullname'), [], function (iq) {
converse.connection.roster.subscribe(jid, null, converse.xmppstatus.get('fullname'));
});
},
declineRequest: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var result = confirm(__("Are you sure you want to decline this contact request?"));
if (result === true) {
converse.connection.roster.unauthorize(this.model.get('jid'));
this.model.destroy();
}
return this;
},
render: function () { render: function () {
if (!this.model.showInRoster()) { if (!this.model.showInRoster()) {
this.$el.hide(); this.$el.hide();
@ -34774,6 +34847,54 @@ define("converse-templates", [
)); ));
} }
return this; return this;
},
openChat: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
// XXX: Can this.model.attributes be used here, instead of
// manually specifying all attributes?
return converse.chatboxviews.showChat({
'id': this.model.get('jid'),
'jid': this.model.get('jid'),
'fullname': this.model.get('fullname'),
'image_type': this.model.get('image_type'),
'image': this.model.get('image'),
'url': this.model.get('url'),
'status': this.model.get('status')
});
},
removeContact: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var result = confirm(__("Are you sure you want to remove this contact?"));
if (result === true) {
var bare_jid = this.model.get('jid');
converse.connection.roster.remove(bare_jid, $.proxy(function (iq) {
converse.connection.roster.unauthorize(bare_jid);
converse.rosterview.model.remove(bare_jid);
this.model.destroy();
this.remove();
}, this));
}
},
acceptRequest: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var jid = this.model.get('jid');
converse.connection.roster.authorize(jid);
converse.connection.roster.add(jid, this.model.get('fullname'), [], function (iq) {
converse.connection.roster.subscribe(jid, null, converse.xmppstatus.get('fullname'));
});
},
declineRequest: function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); }
var result = confirm(__("Are you sure you want to decline this contact request?"));
if (result === true) {
converse.connection.roster.unauthorize(this.model.get('jid'));
this.model.destroy();
}
return this;
} }
}); });
@ -34834,7 +34955,7 @@ define("converse-templates", [
idx = _.indexOf(resources, resource); idx = _.indexOf(resources, resource);
if (idx !== -1) { if (idx !== -1) {
resources.splice(idx, 1); resources.splice(idx, 1);
item.set({'resources': resources}); item.save({'resources': resources});
return resources.length; return resources.length;
} }
} }
@ -34979,7 +35100,7 @@ define("converse-templates", [
converse.getVCard( converse.getVCard(
bare_jid, bare_jid,
$.proxy(function (jid, fullname, img, img_type, url) { $.proxy(function (jid, fullname, img, img_type, url) {
this.add({ this.create({
jid: bare_jid, jid: bare_jid,
subscription: 'none', subscription: 'none',
ask: null, ask: null,
@ -34993,7 +35114,7 @@ define("converse-templates", [
}, this), }, this),
$.proxy(function (jid, iq) { $.proxy(function (jid, iq) {
converse.log("Error while retrieving vcard"); converse.log("Error while retrieving vcard");
this.add({ this.create({
jid: bare_jid, jid: bare_jid,
subscription: 'none', subscription: 'none',
ask: null, ask: null,
@ -35046,9 +35167,10 @@ define("converse-templates", [
this.unsubscribe(bare_jid); this.unsubscribe(bare_jid);
} else if (presence_type === 'unavailable') { } else if (presence_type === 'unavailable') {
if (this.removeResource(bare_jid, resource) === 0) { if (this.removeResource(bare_jid, resource) === 0) {
if (contact) { chat_status = "offline";
contact.save({'chat_status': 'offline'});
} }
if (contact && chat_status) {
contact.save({'chat_status': chat_status});
} }
} else if (contact) { } else if (contact) {
// presence_type is undefined // presence_type is undefined
@ -35161,7 +35283,7 @@ define("converse-templates", [
} }
}, this)); }, this));
} }
this.showIfInvisible(); this.showIfNecessary();
} else { } else {
q = q.toLowerCase(); q = q.toLowerCase();
matches = this.model.contacts.filter(contains.not('fullname', q)); matches = this.model.contacts.filter(contains.not('fullname', q));
@ -35174,13 +35296,13 @@ define("converse-templates", [
_.each(this.model.contacts.reject(contains.not('fullname', q)), $.proxy(function (item) { _.each(this.model.contacts.reject(contains.not('fullname', q)), $.proxy(function (item) {
this.get(item.get('id')).$el.show(); this.get(item.get('id')).$el.show();
}, this)); }, this));
this.showIfInvisible(); this.showIfNecessary();
} }
} }
}, },
showIfInvisible: function () { showIfNecessary: function () {
if (!this.$el.is(':visible')) { if (!this.$el.is(':visible') && this.model.contacts.length > 0) {
this.$el.show(); this.$el.show();
} }
}, },
@ -35385,9 +35507,10 @@ define("converse-templates", [
liveFilter: _.debounce(function (ev) { liveFilter: _.debounce(function (ev) {
if (ev && ev.preventDefault) { ev.preventDefault(); } if (ev && ev.preventDefault) { ev.preventDefault(); }
var q = ev.target.value; var $filter = this.$('.roster-filter');
var q = $filter.val();
var t = this.$('.filter-type').val(); var t = this.$('.filter-type').val();
$(ev.target)[this.tog(q)]('x'); $filter[this.tog(q)]('x');
this.filter(q, t); this.filter(q, t);
}, 300), }, 300),
@ -35492,6 +35615,7 @@ define("converse-templates", [
if (_.has(contact.changed, 'subscription') && contact.changed.requesting == 'true') { if (_.has(contact.changed, 'subscription') && contact.changed.requesting == 'true') {
this.addContactToGroup(contact, HEADER_REQUESTING_CONTACTS); this.addContactToGroup(contact, HEADER_REQUESTING_CONTACTS);
} }
this.liveFilter();
}, },
updateChatBox: function (contact) { updateChatBox: function (contact) {
@ -35646,6 +35770,11 @@ define("converse-templates", [
(type === 'subscribe') || (type === 'subscribe') ||
(type === 'subscribed')) { (type === 'subscribed')) {
presence = $pres({'type': type}); presence = $pres({'type': type});
} else if (type === 'offline') {
presence = $pres({'type': 'unavailable'});
if (status_message) {
presence.c('show').t(type);
}
} else { } else {
if (type === 'online') { if (type === 'online') {
presence = $pres(); presence = $pres();
@ -35835,7 +35964,7 @@ define("converse-templates", [
converse.connection.disco.addFeature('http://jabber.org/protocol/rosterx'); // Limited support converse.connection.disco.addFeature('http://jabber.org/protocol/rosterx'); // Limited support
converse.connection.disco.addFeature('jabber:x:conference'); converse.connection.disco.addFeature('jabber:x:conference');
converse.connection.disco.addFeature('urn:xmpp:carbons:2'); converse.connection.disco.addFeature('urn:xmpp:carbons:2');
converse.connection.disco.addFeature('vcard-temp'); converse.connection.disco.addFeature(Strophe.NS.VCARD);
converse.connection.disco.addFeature(Strophe.NS.BOSH); converse.connection.disco.addFeature(Strophe.NS.BOSH);
converse.connection.disco.addFeature(Strophe.NS.DISCO_INFO); converse.connection.disco.addFeature(Strophe.NS.DISCO_INFO);
converse.connection.disco.addFeature(Strophe.NS.MUC); converse.connection.disco.addFeature(Strophe.NS.MUC);
@ -36111,55 +36240,150 @@ define("converse-templates", [
'initiateOTR': $.proxy(chatbox.initiateOTR, chatbox), 'initiateOTR': $.proxy(chatbox.initiateOTR, chatbox),
'maximize': $.proxy(chatbox.maximize, chatbox), 'maximize': $.proxy(chatbox.maximize, chatbox),
'minimize': $.proxy(chatbox.minimize, chatbox), 'minimize': $.proxy(chatbox.minimize, chatbox),
'set': $.proxy(chatbox.set, chatbox) 'set': $.proxy(chatbox.set, chatbox),
'open': chatbox.trigger.bind(chatbox, 'show')
}; };
}; };
return { return {
'getBuddy': function (jid) { 'initialize': function (settings, callback) {
converse.initialize(settings, callback);
},
'contacts': {
'get': function (jids) {
var _transform = function (jid) {
var contact = converse.roster.get(Strophe.getBareJidFromJid(jid)); var contact = converse.roster.get(Strophe.getBareJidFromJid(jid));
if (contact) { if (contact) {
return contact.attributes; return contact.attributes;
} }
},
'getChatBox': function (jid) {
var chatbox = converse.chatboxes.get(jid);
if (chatbox) {
return wrappedChatBox(chatbox);
}
},
'getRID': function () {
if (converse.expose_rid_and_sid && typeof converse.connection !== "undefined") {
return converse.connection.rid || converse.connection._proto.rid;
}
return null; return null;
};
if (typeof jids === "string") {
return _transform(jids);
}
return _.map(jids, _transform);
}
}, },
'getSID': function () { 'chats': {
if (converse.expose_rid_and_sid && typeof converse.connection !== "undefined") { 'get': function (jids) {
var _transform = function (jid) {
var chatbox = converse.chatboxes.get(jid);
if (!chatbox) {
var roster_item = converse.roster.get(jid);
if (roster_item === undefined) {
converse.log('Could not get roster item for JID '+jid, 'error');
return null;
}
chatbox = converse.chatboxes.create({
'id': jid,
'jid': jid,
'fullname': _.isEmpty(roster_item.get('fullname'))? jid: roster_item.get('fullname'),
'image_type': roster_item.get('image_type'),
'image': roster_item.get('image'),
'url': roster_item.get('url')
});
}
return wrappedChatBox(chatbox);
};
if (typeof jids === "string") {
return _transform(jids);
}
return _.map(jids, _transform);
}
},
'tokens': {
'get': function (id) {
if (!converse.expose_rid_and_sid || typeof converse.connection === "undefined") {
return null;
}
if (id.toLowerCase() === 'rid') {
return converse.connection.rid || converse.connection._proto.rid;
} else if (id.toLowerCase() === 'sid') {
return converse.connection.sid || converse.connection._proto.sid; return converse.connection.sid || converse.connection._proto.sid;
} }
return null;
},
'initialize': function (settings, callback) {
converse.initialize(settings, callback);
},
'jQuery': $,
'openChatBox': function (jid) {
var contact = converse.roster.get(Strophe.getBareJidFromJid(jid));
if (contact) {
return wrappedChatBox(converse.chatboxviews.showChat(contact.attributes));
} }
}, },
'listen': {
'once': function (evt, handler) { 'once': function (evt, handler) {
converse.once(evt, handler); converse.once(evt, handler);
}, },
'on': function (evt, handler) { 'on': function (evt, handler) {
converse.on(evt, handler); converse.on(evt, handler);
}, },
'off': function (evt, handler) { 'not': function (evt, handler) {
converse.off(evt, handler); converse.off(evt, handler);
}, },
'registerPlugin': function (name, callback) { },
'plugins': {
'add': function (name, callback) {
converse.plugins[name] = callback; converse.plugins[name] = callback;
},
'remove': function (name) {
delete converse.plugins[name];
},
'extend': function (obj, attributes) {
/* Helper method for overriding or extending Converse's Backbone Views or Models
*
* When a method is overriden, the original will still be available
* on the _super attribute of the object being overridden.
*
* obj: The Backbone View or Model
* attributes: A hash of attributes, such as you would pass to Backbone.Model.extend or Backbone.View.extend
*/
if (!obj.prototype._super) {
obj.prototype._super = {};
}
_.each(attributes, function (value, key) {
if (key === 'events') {
obj.prototype[key] = _.extend(value, obj.prototype[key]);
} else {
if (typeof key === 'function') {
obj.prototype._super[key] = obj.prototype[key];
}
obj.prototype[key] = value;
}
});
}
},
'env': {
'jQuery': $,
'Strophe': Strophe,
'_': _
},
// Deprecated API methods
'getBuddy': function (jid) {
converse.log('WARNING: the "getBuddy" API method has been deprecated. Please use "contacts.get" instead');
return this.contacts.get(jid);
},
'getChatBox': function (jid) {
converse.log('WARNING: the "getChatBox" API method has been deprecated. Please use "chats.get" instead');
return this.chats.get(jid);
},
'openChatBox': function (jid) {
converse.log('WARNING: the "openChatBox" API method has been deprecated. Please use "chats.get(jid).open()" instead');
var chat = this.chats.get(jid);
if (chat) { chat.open(); }
return chat;
},
'getRID': function () {
converse.log('WARNING: the "getRID" API method has been deprecated. Please use "tokens.get(\'rid\')" instead');
return this.tokens.get('rid');
},
'getSID': function () {
converse.log('WARNING: the "getSID" API method has been deprecated. Please use "tokens.get(\'sid\')" instead');
return this.tokens.get('sid');
},
'once': function (evt, handler) {
converse.log('WARNING: the "one" API method has been deprecated. Please use "listen.once" instead');
return this.listen.once(evt, handler);
},
'on': function (evt, handler) {
converse.log('WARNING: the "on" API method has been deprecated. Please use "listen.on" instead');
return this.listen.on(evt, handler);
},
'off': function (evt, handler) {
converse.log('WARNING: the "off" API method has been deprecated. Please use "listen.not" instead');
return this.listen.not(evt, handler);
} }
}; };
})); }));
@ -36269,7 +36493,8 @@ require.config({
"status_option": "src/templates/status_option", "status_option": "src/templates/status_option",
"toggle_chats": "src/templates/toggle_chats", "toggle_chats": "src/templates/toggle_chats",
"toolbar": "src/templates/toolbar", "toolbar": "src/templates/toolbar",
"trimmed_chat": "src/templates/trimmed_chat" "trimmed_chat": "src/templates/trimmed_chat",
"form_textarea": "src/templates/form_textarea"
}, },
map: { map: {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -278,13 +278,26 @@ return __p
this["JST"]["field"] = function(obj) { this["JST"]["field"] = function(obj) {
obj || (obj = {}); obj || (obj = {});
var __t, __p = '', __e = _.escape; var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
function print() { __p += __j.call(arguments, '') }
with (obj) { with (obj) {
__p += '<field var="' + __p += '<field var="' +
((__t = (name)) == null ? '' : __t) + ((__t = (name)) == null ? '' : __t) +
'"><value>' + '">';
if (_.isArray(value)) { ;
__p += '\n ';
_.each(value,function(arrayValue) { ;
__p += '<value>' +
((__t = (arrayValue)) == null ? '' : __t) +
'</value>';
}); ;
__p += '\n';
} else { ;
__p += '\n <value>' +
((__t = (value)) == null ? '' : __t) + ((__t = (value)) == null ? '' : __t) +
'</value></field>\n'; '</value>\n';
} ;
__p += '</field>\n';
} }
return __p return __p
@ -328,13 +341,18 @@ return __p
this["JST"]["form_select"] = function(obj) { this["JST"]["form_select"] = function(obj) {
obj || (obj = {}); obj || (obj = {});
var __t, __p = '', __e = _.escape; var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
function print() { __p += __j.call(arguments, '') }
with (obj) { with (obj) {
__p += '<label>' + __p += '<label>' +
((__t = (label)) == null ? '' : __t) + ((__t = (label)) == null ? '' : __t) +
'<select name="' + '<select name="' +
((__t = (name)) == null ? '' : __t) + ((__t = (name)) == null ? '' : __t) +
'">' + '" ';
if (multiple) { ;
__p += ' multiple="multiple" ';
} ;
__p += '>' +
((__t = (options)) == null ? '' : __t) + ((__t = (options)) == null ? '' : __t) +
'</select></label>\n'; '</select></label>\n';
@ -342,6 +360,22 @@ __p += '<label>' +
return __p return __p
}; };
this["JST"]["form_textarea"] = function(obj) {
obj || (obj = {});
var __t, __p = '', __e = _.escape;
with (obj) {
__p += '<label class="label-ta">' +
((__t = (label)) == null ? '' : __t) +
'<textarea name="' +
((__t = (name)) == null ? '' : __t) +
'">' +
((__t = (value)) == null ? '' : __t) +
'</textarea></label>\n';
}
return __p
};
this["JST"]["group_header"] = function(obj) { this["JST"]["group_header"] = function(obj) {
obj || (obj = {}); obj || (obj = {});
var __t, __p = '', __e = _.escape; var __t, __p = '', __e = _.escape;
@ -708,11 +742,16 @@ return __p
this["JST"]["select_option"] = function(obj) { this["JST"]["select_option"] = function(obj) {
obj || (obj = {}); obj || (obj = {});
var __t, __p = '', __e = _.escape; var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
function print() { __p += __j.call(arguments, '') }
with (obj) { with (obj) {
__p += '<option value="' + __p += '<option value="' +
((__t = (value)) == null ? '' : __t) + ((__t = (value)) == null ? '' : __t) +
'">' + '" ';
if (selected) { ;
__p += ' selected="selected" ';
} ;
__p += ' >' +
((__t = (label)) == null ? '' : __t) + ((__t = (label)) == null ? '' : __t) +
'</option>\n'; '</option>\n';

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,7 @@
Changelog Changelog
========= =========
0.8.4 (Unreleased) 0.8.4 (2014-11-15)
------------------ ------------------
.. note:: .. note::

View File

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

View File

@ -191,7 +191,7 @@
<div class="col-lg-8 col-lg-offset-2"> <div class="col-lg-8 col-lg-offset-2">
<h3>Donate</h3> <h3>Donate</h3>
<p class="bitcoin-header">Most of the work done on <strong>converse.js</strong> is unpaid and a labor of love.</p> <p class="bitcoin-header">Most of the work done on <strong>converse.js</strong> is unpaid and a labor of love.</p>
<p>A heartfelt thanks to those have donated already.</p> <p>Thanks to those have donated already.</p>
<p class="bitcoin-header"><strong>Bitcoin</strong></p> <p class="bitcoin-header"><strong>Bitcoin</strong></p>
<img src="css/images/bitcoin_qr_code.png"/> <img src="css/images/bitcoin_qr_code.png"/>
<p>16FsPqE9DhFTryxrUenpsGX4LJ1TPu8GqS</p> <p>16FsPqE9DhFTryxrUenpsGX4LJ1TPu8GqS</p>
@ -235,7 +235,7 @@
* website. This code is only useful in the context of the converse.js * website. This code is only useful in the context of the converse.js
* website and converse.js itself is NOT dependent on it. * website and converse.js itself is NOT dependent on it.
*/ */
var $ = converse.jQuery; var $ = converse.env.jQuery;
$(window).scroll(function() { $(window).scroll(function() {
if ($(".navbar").offset().top > 50) { if ($(".navbar").offset().top > 50) {
$(".navbar-fixed-top").addClass("top-nav-collapse"); $(".navbar-fixed-top").addClass("top-nav-collapse");
@ -254,11 +254,7 @@
})(); })();
converse.initialize({ converse.initialize({
allow_otr: true,
auto_list_rooms: false,
auto_subscribe: false,
bosh_service_url: 'https://bind.conversejs.org', // Please use this connection manager only for testing purposes bosh_service_url: 'https://bind.conversejs.org', // Please use this connection manager only for testing purposes
hide_muc_server: false,
i18n: locales['en'], // Refer to ./locale/locales.js to see which locales are supported i18n: locales['en'], // Refer to ./locale/locales.js to see which locales are supported
keepalive: true, keepalive: true,
play_sounds: true, play_sounds: true,

File diff suppressed because it is too large Load Diff

View File

@ -6,9 +6,9 @@
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Converse.js 0.8.3\n" "Project-Id-Version: Converse.js 0.7.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-21 13:12+0200\n" "POT-Creation-Date: 2014-11-15 16:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,193 +17,193 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: converse.js:314 #: converse.js:316
msgid "unencrypted" msgid "unencrypted"
msgstr "" msgstr ""
#: converse.js:315 #: converse.js:317
msgid "unverified" msgid "unverified"
msgstr "" msgstr ""
#: converse.js:316 #: converse.js:318
msgid "verified" msgid "verified"
msgstr "" msgstr ""
#: converse.js:317 #: converse.js:319
msgid "finished" msgid "finished"
msgstr "" msgstr ""
#: converse.js:320 #: converse.js:322
msgid "This contact is busy" msgid "This contact is busy"
msgstr "" msgstr ""
#: converse.js:321 #: converse.js:323
msgid "This contact is online" msgid "This contact is online"
msgstr "" msgstr ""
#: converse.js:322 #: converse.js:324
msgid "This contact is offline" msgid "This contact is offline"
msgstr "" msgstr ""
#: converse.js:323 #: converse.js:325
msgid "This contact is unavailable" msgid "This contact is unavailable"
msgstr "" msgstr ""
#: converse.js:324 #: converse.js:326
msgid "This contact is away for an extended period" msgid "This contact is away for an extended period"
msgstr "" msgstr ""
#: converse.js:325 #: converse.js:327
msgid "This contact is away" msgid "This contact is away"
msgstr "" msgstr ""
#: converse.js:327 #: converse.js:329
msgid "Click to hide these contacts" msgid "Click to hide these contacts"
msgstr "" msgstr ""
#: converse.js:329 #: converse.js:331
msgid "My contacts" msgid "My contacts"
msgstr "" msgstr ""
#: converse.js:330 #: converse.js:332
msgid "Pending contacts" msgid "Pending contacts"
msgstr "" msgstr ""
#: converse.js:331 #: converse.js:333
msgid "Contact requests" msgid "Contact requests"
msgstr "" msgstr ""
#: converse.js:332 #: converse.js:334
msgid "Ungrouped" msgid "Ungrouped"
msgstr "" msgstr ""
#: converse.js:334 #: converse.js:336
msgid "Contacts" msgid "Contacts"
msgstr "" msgstr ""
#: converse.js:335 #: converse.js:337
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
#: converse.js:417 #: converse.js:419
msgid "Reconnecting" msgid "Reconnecting"
msgstr "" msgstr ""
#: converse.js:452 #: converse.js:454
msgid "Disconnected" msgid "Disconnected"
msgstr "" msgstr ""
#: converse.js:460 #: converse.js:462
msgid "Error" msgid "Error"
msgstr "" msgstr ""
#: converse.js:462 #: converse.js:464
msgid "Connecting" msgid "Connecting"
msgstr "" msgstr ""
#: converse.js:465 #: converse.js:467
msgid "Connection Failed" msgid "Connection Failed"
msgstr "" msgstr ""
#: converse.js:467 #: converse.js:469
msgid "Authenticating" msgid "Authenticating"
msgstr "" msgstr ""
#: converse.js:470 #: converse.js:472
msgid "Authentication Failed" msgid "Authentication Failed"
msgstr "" msgstr ""
#: converse.js:475 #: converse.js:477
msgid "Disconnecting" msgid "Disconnecting"
msgstr "" msgstr ""
#: converse.js:614 converse.js:660 #: converse.js:617 converse.js:669
msgid "Online Contacts" msgid "Online Contacts"
msgstr "" msgstr ""
#: converse.js:778 #: converse.js:787
msgid "Re-establishing encrypted session" msgid "Re-establishing encrypted session"
msgstr "" msgstr ""
#: converse.js:790 #: converse.js:799
msgid "Generating private key." msgid "Generating private key."
msgstr "" msgstr ""
#: converse.js:791 #: converse.js:800
msgid "Your browser might become unresponsive." msgid "Your browser might become unresponsive."
msgstr "" msgstr ""
#: converse.js:826 #: converse.js:835
msgid "" msgid ""
"Authentication request from %1$s\n" "Authentication request from %1$s\n"
"\n" "\n"
"Your buddy is attempting to verify your identity, by asking you the question " "Your chat contact is attempting to verify your identity, by asking you the "
"below.\n" "question below.\n"
"\n" "\n"
"%2$s" "%2$s"
msgstr "" msgstr ""
#: converse.js:835 #: converse.js:844
msgid "Could not verify this user's identify." msgid "Could not verify this user's identify."
msgstr "" msgstr ""
#: converse.js:874 #: converse.js:883
msgid "Exchanging private key with buddy." msgid "Exchanging private key with contact."
msgstr "" msgstr ""
#: converse.js:1023 #: converse.js:1036
msgid "Personal message" msgid "Personal message"
msgstr "" msgstr ""
#: converse.js:1055 #: converse.js:1068
msgid "Are you sure you want to clear the messages from this room?" msgid "Are you sure you want to clear the messages from this room?"
msgstr "" msgstr ""
#: converse.js:1077 #: converse.js:1090
msgid "me" msgid "me"
msgstr "" msgstr ""
#: converse.js:1131 #: converse.js:1144
msgid "is typing" msgid "is typing"
msgstr "" msgstr ""
#: converse.js:1134 #: converse.js:1147
msgid "has stopped typing" msgid "has stopped typing"
msgstr "" msgstr ""
#: converse.js:1176 converse.js:2314 #: converse.js:1189 converse.js:2360
msgid "Show this menu" msgid "Show this menu"
msgstr "" msgstr ""
#: converse.js:1177 #: converse.js:1190
msgid "Write in the third person" msgid "Write in the third person"
msgstr "" msgstr ""
#: converse.js:1178 converse.js:2313 #: converse.js:1191 converse.js:2359
msgid "Remove messages" msgid "Remove messages"
msgstr "" msgstr ""
#: converse.js:1262 #: converse.js:1275
msgid "Are you sure you want to clear the messages from this chat box?" msgid "Are you sure you want to clear the messages from this chat box?"
msgstr "" msgstr ""
#: converse.js:1297 #: converse.js:1310
msgid "Your message could not be sent" msgid "Your message could not be sent"
msgstr "" msgstr ""
#: converse.js:1300 #: converse.js:1313
msgid "We received an unencrypted message" msgid "We received an unencrypted message"
msgstr "" msgstr ""
#: converse.js:1303 #: converse.js:1316
msgid "We received an unreadable encrypted message" msgid "We received an unreadable encrypted message"
msgstr "" msgstr ""
#: converse.js:1312 #: converse.js:1325
msgid "This user has requested an encrypted session." msgid "This user has requested an encrypted session."
msgstr "" msgstr ""
#: converse.js:1334 #: converse.js:1347
msgid "" msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this " "Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n" "chat.\n"
@ -216,564 +216,564 @@ msgid ""
"Cancel." "Cancel."
msgstr "" msgstr ""
#: converse.js:1347 #: converse.js:1360
msgid "" msgid ""
"You will be prompted to provide a security question and then an answer to " "You will be prompted to provide a security question and then an answer to "
"that question.\n" "that question.\n"
"\n" "\n"
"Your buddy will then be prompted the same question and if they type the " "Your contact will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will be verified." "exact same answer (case sensitive), their identity will be verified."
msgstr "" msgstr ""
#: converse.js:1348 #: converse.js:1361
msgid "What is your security question?" msgid "What is your security question?"
msgstr "" msgstr ""
#: converse.js:1350 #: converse.js:1363
msgid "What is the answer to the security question?" msgid "What is the answer to the security question?"
msgstr "" msgstr ""
#: converse.js:1354 #: converse.js:1367
msgid "Invalid authentication scheme provided" msgid "Invalid authentication scheme provided"
msgstr "" msgstr ""
#: converse.js:1465 #: converse.js:1482
msgid "Your messages are not encrypted anymore" msgid "Your messages are not encrypted anymore"
msgstr "" msgstr ""
#: converse.js:1467 #: converse.js:1484
msgid "" msgid ""
"Your messages are now encrypted but your buddy's identity has not been " "Your messages are now encrypted but your contact's identity has not been "
"verified." "verified."
msgstr "" msgstr ""
#: converse.js:1469
msgid "Your buddy's identify has been verified."
msgstr ""
#: converse.js:1471
msgid "Your buddy has ended encryption on their end, you should do the same."
msgstr ""
#: converse.js:1480
msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr ""
#: converse.js:1482
msgid "Your messages are encrypted, but your buddy has not been verified."
msgstr ""
#: converse.js:1484
msgid "Your messages are encrypted and your buddy verified."
msgstr ""
#: converse.js:1486 #: converse.js:1486
msgid "" msgid "Your contact's identify has been verified."
"Your buddy has closed their end of the private session, you should do the "
"same"
msgstr "" msgstr ""
#: converse.js:1496 #: converse.js:1488
msgid "Clear all messages" msgid "Your contact has ended encryption on their end, you should do the same."
msgstr "" msgstr ""
#: converse.js:1497 #: converse.js:1497
msgid "End encrypted conversation" msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr ""
#: converse.js:1498
msgid "Hide the list of participants"
msgstr "" msgstr ""
#: converse.js:1499 #: converse.js:1499
msgid "Refresh encrypted conversation" msgid "Your messages are encrypted, but your contact has not been verified."
msgstr ""
#: converse.js:1500
msgid "Start a call"
msgstr "" msgstr ""
#: converse.js:1501 #: converse.js:1501
msgid "Start encrypted conversation" msgid "Your messages are encrypted and your contact verified."
msgstr ""
#: converse.js:1502
msgid "Verify with fingerprints"
msgstr "" msgstr ""
#: converse.js:1503 #: converse.js:1503
msgid ""
"Your contact has closed their end of the private session, you should do the "
"same"
msgstr ""
#: converse.js:1513
msgid "Clear all messages"
msgstr ""
#: converse.js:1514
msgid "End encrypted conversation"
msgstr ""
#: converse.js:1515
msgid "Hide the list of participants"
msgstr ""
#: converse.js:1516
msgid "Refresh encrypted conversation"
msgstr ""
#: converse.js:1517
msgid "Start a call"
msgstr ""
#: converse.js:1518
msgid "Start encrypted conversation"
msgstr ""
#: converse.js:1519
msgid "Verify with fingerprints"
msgstr ""
#: converse.js:1520
msgid "Verify with SMP" msgid "Verify with SMP"
msgstr "" msgstr ""
#: converse.js:1504 #: converse.js:1521
msgid "What's this?" msgid "What's this?"
msgstr "" msgstr ""
#: converse.js:1595 #: converse.js:1612
msgid "Online" msgid "Online"
msgstr "" msgstr ""
#: converse.js:1596 #: converse.js:1613
msgid "Busy" msgid "Busy"
msgstr "" msgstr ""
#: converse.js:1597 #: converse.js:1614
msgid "Away" msgid "Away"
msgstr "" msgstr ""
#: converse.js:1598 #: converse.js:1615
msgid "Offline" msgid "Offline"
msgstr "" msgstr ""
#: converse.js:1599 #: converse.js:1616
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: converse.js:1605 #: converse.js:1622
msgid "Contact name" msgid "Contact name"
msgstr "" msgstr ""
#: converse.js:1606 #: converse.js:1623
msgid "Search" msgid "Search"
msgstr "" msgstr ""
#: converse.js:1610 #: converse.js:1627
msgid "Contact username" msgid "Contact username"
msgstr "" msgstr ""
#: converse.js:1611 #: converse.js:1628
msgid "Add" msgid "Add"
msgstr "" msgstr ""
#: converse.js:1616 #: converse.js:1633
msgid "Click to add new chat contacts" msgid "Click to add new chat contacts"
msgstr "" msgstr ""
#: converse.js:1617 #: converse.js:1634
msgid "Add a contact" msgid "Add a contact"
msgstr "" msgstr ""
#: converse.js:1641 #: converse.js:1658
msgid "No users found" msgid "No users found"
msgstr "" msgstr ""
#: converse.js:1647 #: converse.js:1664
msgid "Click to add as a chat contact" msgid "Click to add as a chat contact"
msgstr "" msgstr ""
#: converse.js:1702 #: converse.js:1727
msgid "Room name" msgid "Room name"
msgstr "" msgstr ""
#: converse.js:1703 #: converse.js:1728
msgid "Nickname" msgid "Nickname"
msgstr "" msgstr ""
#: converse.js:1704 #: converse.js:1729
msgid "Server" msgid "Server"
msgstr "" msgstr ""
#: converse.js:1705 #: converse.js:1730
msgid "Join" msgid "Join"
msgstr "" msgstr ""
#: converse.js:1706 #: converse.js:1731
msgid "Show rooms" msgid "Show rooms"
msgstr "" msgstr ""
#: converse.js:1726 #: converse.js:1735
msgid "Rooms" msgid "Rooms"
msgstr "" msgstr ""
#. For translators: %1$s is a variable and will be replaced with the XMPP server name #. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:1733 #: converse.js:1755
msgid "No rooms on %1$s" msgid "No rooms on %1$s"
msgstr "" msgstr ""
#. For translators: %1$s is a variable and will be #. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name #. replaced with the XMPP server name
#: converse.js:1748 #: converse.js:1770
msgid "Rooms on %1$s" msgid "Rooms on %1$s"
msgstr "" msgstr ""
#: converse.js:1757 #: converse.js:1779
msgid "Click to open this room" msgid "Click to open this room"
msgstr "" msgstr ""
#: converse.js:1758 #: converse.js:1780
msgid "Show more information on this room" msgid "Show more information on this room"
msgstr "" msgstr ""
#: converse.js:1820 #: converse.js:1842
msgid "Description:" msgid "Description:"
msgstr "" msgstr ""
#: converse.js:1821 #: converse.js:1843
msgid "Occupants:" msgid "Occupants:"
msgstr "" msgstr ""
#: converse.js:1822 #: converse.js:1844
msgid "Features:" msgid "Features:"
msgstr "" msgstr ""
#: converse.js:1823 #: converse.js:1845
msgid "Requires authentication" msgid "Requires authentication"
msgstr "" msgstr ""
#: converse.js:1824 #: converse.js:1846
msgid "Hidden" msgid "Hidden"
msgstr "" msgstr ""
#: converse.js:1825 #: converse.js:1847
msgid "Requires an invitation" msgid "Requires an invitation"
msgstr "" msgstr ""
#: converse.js:1826 #: converse.js:1848
msgid "Moderated" msgid "Moderated"
msgstr "" msgstr ""
#: converse.js:1827 #: converse.js:1849
msgid "Non-anonymous" msgid "Non-anonymous"
msgstr "" msgstr ""
#: converse.js:1828 #: converse.js:1850
msgid "Open room" msgid "Open room"
msgstr "" msgstr ""
#: converse.js:1829 #: converse.js:1851
msgid "Permanent room" msgid "Permanent room"
msgstr "" msgstr ""
#: converse.js:1830 #: converse.js:1852
msgid "Public" msgid "Public"
msgstr "" msgstr ""
#: converse.js:1831 #: converse.js:1853
msgid "Semi-anonymous" msgid "Semi-anonymous"
msgstr "" msgstr ""
#: converse.js:1832 #: converse.js:1854
msgid "Temporary room" msgid "Temporary room"
msgstr "" msgstr ""
#: converse.js:1833 #: converse.js:1855
msgid "Unmoderated" msgid "Unmoderated"
msgstr "" msgstr ""
#: converse.js:2062 #: converse.js:2108
msgid "This user is a moderator" msgid "This user is a moderator"
msgstr "" msgstr ""
#: converse.js:2063 #: converse.js:2109
msgid "This user can send messages in this room" msgid "This user can send messages in this room"
msgstr "" msgstr ""
#: converse.js:2064 #: converse.js:2110
msgid "This user can NOT send messages in this room" msgid "This user can NOT send messages in this room"
msgstr "" msgstr ""
#: converse.js:2096 #: converse.js:2142
msgid "Invite..." msgid "Invite..."
msgstr "" msgstr ""
#: converse.js:2097 #: converse.js:2143
msgid "Occupants" msgid "Occupants"
msgstr "" msgstr ""
#: converse.js:2162 #: converse.js:2208
msgid "You are about to invite %1$s to the chat room \"%2$s\". " msgid "You are about to invite %1$s to the chat room \"%2$s\". "
msgstr "" msgstr ""
#: converse.js:2163 #: converse.js:2209
msgid "" msgid ""
"You may optionally include a message, explaining the reason for the " "You may optionally include a message, explaining the reason for the "
"invitation." "invitation."
msgstr "" msgstr ""
#: converse.js:2246 #: converse.js:2292
msgid "Message" msgid "Message"
msgstr "" msgstr ""
#: converse.js:2282 #: converse.js:2328
msgid "Error: could not execute the command" msgid "Error: could not execute the command"
msgstr "" msgstr ""
#: converse.js:2312 #: converse.js:2358
msgid "Ban user from room" msgid "Ban user from room"
msgstr "" msgstr ""
#: converse.js:2315 #: converse.js:2361
msgid "Kick user from room" msgid "Kick user from room"
msgstr "" msgstr ""
#: converse.js:2316 #: converse.js:2362
msgid "Write in 3rd person" msgid "Write in 3rd person"
msgstr "" msgstr ""
#: converse.js:2317 #: converse.js:2363
msgid "Remove user's ability to post messages" msgid "Remove user's ability to post messages"
msgstr "" msgstr ""
#: converse.js:2318 #: converse.js:2364
msgid "Change your nickname" msgid "Change your nickname"
msgstr "" msgstr ""
#: converse.js:2319 #: converse.js:2365
msgid "Set room topic" msgid "Set room topic"
msgstr "" msgstr ""
#: converse.js:2320 #: converse.js:2366
msgid "Allow muted user to post messages" msgid "Allow muted user to post messages"
msgstr "" msgstr ""
#: converse.js:2423 converse.js:4250 #: converse.js:2489 converse.js:4417
msgid "Save" msgid "Save"
msgstr "" msgstr ""
#: converse.js:2424 #: converse.js:2490
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: converse.js:2469 #: converse.js:2544
msgid "An error occurred while trying to save the form." msgid "An error occurred while trying to save the form."
msgstr "" msgstr ""
#: converse.js:2513 #: converse.js:2588
msgid "This chatroom requires a password" msgid "This chatroom requires a password"
msgstr "" msgstr ""
#: converse.js:2514 #: converse.js:2589
msgid "Password: " msgid "Password: "
msgstr "" msgstr ""
#: converse.js:2515 #: converse.js:2590
msgid "Submit" msgid "Submit"
msgstr "" msgstr ""
#: converse.js:2550 #: converse.js:2625
msgid "This room is not anonymous" msgid "This room is not anonymous"
msgstr "" msgstr ""
#: converse.js:2551 #: converse.js:2626
msgid "This room now shows unavailable members" msgid "This room now shows unavailable members"
msgstr "" msgstr ""
#: converse.js:2552 #: converse.js:2627
msgid "This room does not show unavailable members" msgid "This room does not show unavailable members"
msgstr "" msgstr ""
#: converse.js:2553 #: converse.js:2628
msgid "Non-privacy-related room configuration has changed" msgid "Non-privacy-related room configuration has changed"
msgstr "" msgstr ""
#: converse.js:2554 #: converse.js:2629
msgid "Room logging is now enabled" msgid "Room logging is now enabled"
msgstr "" msgstr ""
#: converse.js:2555 #: converse.js:2630
msgid "Room logging is now disabled" msgid "Room logging is now disabled"
msgstr "" msgstr ""
#: converse.js:2556 #: converse.js:2631
msgid "This room is now non-anonymous" msgid "This room is now non-anonymous"
msgstr "" msgstr ""
#: converse.js:2557 #: converse.js:2632
msgid "This room is now semi-anonymous" msgid "This room is now semi-anonymous"
msgstr "" msgstr ""
#: converse.js:2558 #: converse.js:2633
msgid "This room is now fully-anonymous" msgid "This room is now fully-anonymous"
msgstr "" msgstr ""
#: converse.js:2559 #: converse.js:2634
msgid "A new room has been created" msgid "A new room has been created"
msgstr "" msgstr ""
#: converse.js:2563 converse.js:2663 #: converse.js:2638 converse.js:2738
msgid "You have been banned from this room" msgid "You have been banned from this room"
msgstr "" msgstr ""
#: converse.js:2564 #: converse.js:2639
msgid "You have been kicked from this room" msgid "You have been kicked from this room"
msgstr "" msgstr ""
#: converse.js:2565 #: converse.js:2640
msgid "You have been removed from this room because of an affiliation change" msgid "You have been removed from this room because of an affiliation change"
msgstr "" msgstr ""
#: converse.js:2566 #: converse.js:2641
msgid "" msgid ""
"You have been removed from this room because the room has changed to members-" "You have been removed from this room because the room has changed to members-"
"only and you're not a member" "only and you're not a member"
msgstr "" msgstr ""
#: converse.js:2567 #: converse.js:2642
msgid "" msgid ""
"You have been removed from this room because the MUC (Multi-user chat) " "You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down." "service is being shut down."
msgstr "" msgstr ""
#: converse.js:2581 #: converse.js:2656
msgid "<strong>%1$s</strong> has been banned" msgid "<strong>%1$s</strong> has been banned"
msgstr "" msgstr ""
#: converse.js:2582 #: converse.js:2657
msgid "<strong>%1$s</strong>'s nickname has changed" msgid "<strong>%1$s</strong>'s nickname has changed"
msgstr "" msgstr ""
#: converse.js:2583 #: converse.js:2658
msgid "<strong>%1$s</strong> has been kicked out" msgid "<strong>%1$s</strong> has been kicked out"
msgstr "" msgstr ""
#: converse.js:2584 #: converse.js:2659
msgid "<strong>%1$s</strong> has been removed because of an affiliation change" msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr "" msgstr ""
#: converse.js:2585 #: converse.js:2660
msgid "<strong>%1$s</strong> has been removed for not being a member" msgid "<strong>%1$s</strong> has been removed for not being a member"
msgstr "" msgstr ""
#: converse.js:2589 #: converse.js:2664
msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>" msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>"
msgstr "" msgstr ""
#: converse.js:2590 #: converse.js:2665
msgid "Your nickname has been changed to: <strong>%1$s</strong>" msgid "Your nickname has been changed to: <strong>%1$s</strong>"
msgstr "" msgstr ""
#: converse.js:2638 converse.js:2648 #: converse.js:2713 converse.js:2723
msgid "The reason given is: \"" msgid "The reason given is: \""
msgstr "" msgstr ""
#: converse.js:2661 #: converse.js:2736
msgid "You are not on the member list of this room" msgid "You are not on the member list of this room"
msgstr "" msgstr ""
#: converse.js:2667 #: converse.js:2742
msgid "No nickname was specified" msgid "No nickname was specified"
msgstr "" msgstr ""
#: converse.js:2671 #: converse.js:2746
msgid "You are not allowed to create new rooms" msgid "You are not allowed to create new rooms"
msgstr "" msgstr ""
#: converse.js:2673 #: converse.js:2748
msgid "Your nickname doesn't conform to this room's policies" msgid "Your nickname doesn't conform to this room's policies"
msgstr "" msgstr ""
#: converse.js:2677 #: converse.js:2752
msgid "Your nickname is already taken" msgid "Your nickname is already taken"
msgstr "" msgstr ""
#: converse.js:2679 #: converse.js:2754
msgid "This room does not (yet) exist" msgid "This room does not (yet) exist"
msgstr "" msgstr ""
#: converse.js:2681 #: converse.js:2756
msgid "This room has reached it's maximum number of occupants" msgid "This room has reached it's maximum number of occupants"
msgstr "" msgstr ""
#: converse.js:2723 #: converse.js:2798
msgid "Topic set by %1$s to: %2$s" msgid "Topic set by %1$s to: %2$s"
msgstr "" msgstr ""
#: converse.js:2805 #: converse.js:2880
msgid "%1$s has invited you to join a chat room: %2$s" msgid "%1$s has invited you to join a chat room: %2$s"
msgstr "" msgstr ""
#: converse.js:2809 #: converse.js:2884
msgid "" msgid ""
"%1$s has invited you to join a chat room: %2$s, and left the following " "%1$s has invited you to join a chat room: %2$s, and left the following "
"reason: \"%3$s\"" "reason: \"%3$s\""
msgstr "" msgstr ""
#: converse.js:3044 #: converse.js:3140
msgid "Click to restore this chat" msgid "Click to restore this chat"
msgstr "" msgstr ""
#: converse.js:3188 #: converse.js:3285
msgid "Minimized" msgid "Minimized"
msgstr "" msgstr ""
#: converse.js:3262 #: converse.js:3381 converse.js:3399
msgid "Are you sure you want to remove this contact?"
msgstr ""
#: converse.js:3285
msgid "Are you sure you want to decline this contact request?"
msgstr ""
#: converse.js:3329 converse.js:3347
msgid "Click to remove this contact" msgid "Click to remove this contact"
msgstr "" msgstr ""
#: converse.js:3336 #: converse.js:3388
msgid "Click to accept this contact request" msgid "Click to accept this contact request"
msgstr "" msgstr ""
#: converse.js:3337 #: converse.js:3389
msgid "Click to decline this contact request" msgid "Click to decline this contact request"
msgstr "" msgstr ""
#: converse.js:3346 #: converse.js:3398
msgid "Click to chat with this contact" msgid "Click to chat with this contact"
msgstr "" msgstr ""
#: converse.js:3862 #: converse.js:3423
msgid "Are you sure you want to remove this contact?"
msgstr ""
#: converse.js:3446
msgid "Are you sure you want to decline this contact request?"
msgstr ""
#: converse.js:3972
msgid "Type to filter" msgid "Type to filter"
msgstr "" msgstr ""
#. For translators: the %1$s part gets replaced with the status #. For translators: the %1$s part gets replaced with the status
#. Example, I am online #. Example, I am online
#: converse.js:4221 converse.js:4298 #: converse.js:4388 converse.js:4465
msgid "I am %1$s" msgid "I am %1$s"
msgstr "" msgstr ""
#: converse.js:4223 converse.js:4303 #: converse.js:4390 converse.js:4470
msgid "Click here to write a custom status message" msgid "Click here to write a custom status message"
msgstr "" msgstr ""
#: converse.js:4224 converse.js:4304 #: converse.js:4391 converse.js:4471
msgid "Click to change your chat status" msgid "Click to change your chat status"
msgstr "" msgstr ""
#: converse.js:4249 #: converse.js:4416
msgid "Custom status" msgid "Custom status"
msgstr "" msgstr ""
#: converse.js:4278 converse.js:4286 #: converse.js:4445 converse.js:4453
msgid "online" msgid "online"
msgstr "" msgstr ""
#: converse.js:4280 #: converse.js:4447
msgid "busy" msgid "busy"
msgstr "" msgstr ""
#: converse.js:4282 #: converse.js:4449
msgid "away for long" msgid "away for long"
msgstr "" msgstr ""
#: converse.js:4284 #: converse.js:4451
msgid "away" msgid "away"
msgstr "" msgstr ""
#: converse.js:4407 #: converse.js:4574
msgid "XMPP/Jabber Username:" msgid "XMPP/Jabber Username:"
msgstr "" msgstr ""
#: converse.js:4408 #: converse.js:4575
msgid "Password:" msgid "Password:"
msgstr "" msgstr ""
#: converse.js:4409 #: converse.js:4576
msgid "Log In" msgid "Log In"
msgstr "" msgstr ""
#: converse.js:4416 #: converse.js:4583
msgid "Sign in" msgid "Sign in"
msgstr "" msgstr ""
#: converse.js:4476 #: converse.js:4643
msgid "Toggle chat" msgid "Toggle chat"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Converse.js 0.4\n" "Project-Id-Version: Converse.js 0.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-09-22 17:23+0200\n" "POT-Creation-Date: 2014-11-15 16:36+0100\n"
"PO-Revision-Date: 2013-09-15 22:03+0200\n" "PO-Revision-Date: 2013-09-15 22:03+0200\n"
"Last-Translator: JC Brand <jc@opkode.com>\n" "Last-Translator: JC Brand <jc@opkode.com>\n"
"Language-Team: German\n" "Language-Team: German\n"
@ -20,198 +20,198 @@ msgstr ""
"lang: de\n" "lang: de\n"
"plural_forms: nplurals=2; plural=(n != 1);\n" "plural_forms: nplurals=2; plural=(n != 1);\n"
#: converse.js:338 #: converse.js:316
msgid "unencrypted" msgid "unencrypted"
msgstr "" msgstr ""
#: converse.js:339 #: converse.js:317
msgid "unverified" msgid "unverified"
msgstr "" msgstr ""
#: converse.js:340 #: converse.js:318
msgid "verified" msgid "verified"
msgstr "" msgstr ""
#: converse.js:341 #: converse.js:319
msgid "finished" msgid "finished"
msgstr "" msgstr ""
#: converse.js:344 #: converse.js:322
msgid "This contact is busy" msgid "This contact is busy"
msgstr "Dieser Kontakt ist beschäfticht" msgstr "Dieser Kontakt ist beschäfticht"
#: converse.js:345 #: converse.js:323
msgid "This contact is online" msgid "This contact is online"
msgstr "Dieser Kontakt ist online" msgstr "Dieser Kontakt ist online"
#: converse.js:346 #: converse.js:324
msgid "This contact is offline" msgid "This contact is offline"
msgstr "Dieser Kontakt ist offline" msgstr "Dieser Kontakt ist offline"
#: converse.js:347 #: converse.js:325
msgid "This contact is unavailable" msgid "This contact is unavailable"
msgstr "Dieser Kontakt ist nicht verfügbar" msgstr "Dieser Kontakt ist nicht verfügbar"
#: converse.js:348 #: converse.js:326
msgid "This contact is away for an extended period" msgid "This contact is away for an extended period"
msgstr "Dieser Kontakt is für längere Zeit abwesend" msgstr "Dieser Kontakt is für längere Zeit abwesend"
#: converse.js:349 #: converse.js:327
msgid "This contact is away" msgid "This contact is away"
msgstr "Dieser Kontakt ist abwesend" msgstr "Dieser Kontakt ist abwesend"
#: converse.js:351 #: converse.js:329
#, fuzzy #, fuzzy
msgid "Click to hide these contacts" msgid "Click to hide these contacts"
msgstr "Hier klicken um diesen Kontakt zu entfernen" msgstr "Hier klicken um diesen Kontakt zu entfernen"
#: converse.js:353 #: converse.js:331
msgid "My contacts" msgid "My contacts"
msgstr "Meine Kontakte" msgstr "Meine Kontakte"
#: converse.js:354 #: converse.js:332
msgid "Pending contacts" msgid "Pending contacts"
msgstr "Unbestätigte Kontakte" msgstr "Unbestätigte Kontakte"
#: converse.js:355 #: converse.js:333
msgid "Contact requests" msgid "Contact requests"
msgstr "Kontaktanfragen" msgstr "Kontaktanfragen"
#: converse.js:356 #: converse.js:334
msgid "Ungrouped" msgid "Ungrouped"
msgstr "" msgstr ""
#: converse.js:358 #: converse.js:336
msgid "Contacts" msgid "Contacts"
msgstr "Kontakte" msgstr "Kontakte"
#: converse.js:359 #: converse.js:337
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
#: converse.js:441 #: converse.js:419
#, fuzzy #, fuzzy
msgid "Reconnecting" msgid "Reconnecting"
msgstr "Verbindungsaufbau …" msgstr "Verbindungsaufbau …"
#: converse.js:476 #: converse.js:454
msgid "Disconnected" msgid "Disconnected"
msgstr "Verbindung unterbrochen." msgstr "Verbindung unterbrochen."
#: converse.js:484 #: converse.js:462
msgid "Error" msgid "Error"
msgstr "Fehler" msgstr "Fehler"
#: converse.js:486 #: converse.js:464
msgid "Connecting" msgid "Connecting"
msgstr "Verbindungsaufbau …" msgstr "Verbindungsaufbau …"
#: converse.js:489 #: converse.js:467
msgid "Connection Failed" msgid "Connection Failed"
msgstr "Entfernte Verbindung fehlgeschlagen" msgstr "Entfernte Verbindung fehlgeschlagen"
#: converse.js:491 #: converse.js:469
msgid "Authenticating" msgid "Authenticating"
msgstr "Authentifizierung" msgstr "Authentifizierung"
#: converse.js:494 #: converse.js:472
msgid "Authentication Failed" msgid "Authentication Failed"
msgstr "Authentifizierung gescheitert" msgstr "Authentifizierung gescheitert"
#: converse.js:499 #: converse.js:477
msgid "Disconnecting" msgid "Disconnecting"
msgstr "Trenne Verbindung" msgstr "Trenne Verbindung"
#: converse.js:638 converse.js:684 #: converse.js:617 converse.js:669
msgid "Online Contacts" msgid "Online Contacts"
msgstr "Online-Kontakte" msgstr "Online-Kontakte"
#: converse.js:802 #: converse.js:787
msgid "Re-establishing encrypted session" msgid "Re-establishing encrypted session"
msgstr "" msgstr ""
#: converse.js:814 #: converse.js:799
msgid "Generating private key." msgid "Generating private key."
msgstr "" msgstr ""
#: converse.js:815 #: converse.js:800
msgid "Your browser might become unresponsive." msgid "Your browser might become unresponsive."
msgstr "" msgstr ""
#: converse.js:850 #: converse.js:835
msgid "" msgid ""
"Authentication request from %1$s\n" "Authentication request from %1$s\n"
"\n" "\n"
"Your buddy is attempting to verify your identity, by asking you the question " "Your chat contact is attempting to verify your identity, by asking you the "
"below.\n" "question below.\n"
"\n" "\n"
"%2$s" "%2$s"
msgstr "" msgstr ""
#: converse.js:859 #: converse.js:844
msgid "Could not verify this user's identify." msgid "Could not verify this user's identify."
msgstr "" msgstr ""
#: converse.js:898 #: converse.js:883
msgid "Exchanging private key with buddy." msgid "Exchanging private key with contact."
msgstr "" msgstr ""
#: converse.js:1045 #: converse.js:1036
msgid "Personal message" msgid "Personal message"
msgstr "Persönliche Nachricht" msgstr "Persönliche Nachricht"
#: converse.js:1077 #: converse.js:1068
#, fuzzy #, fuzzy
msgid "Are you sure you want to clear the messages from this room?" msgid "Are you sure you want to clear the messages from this room?"
msgstr "Sie sind nicht auf der Mitgliederliste dieses Raums" msgstr "Sie sind nicht auf der Mitgliederliste dieses Raums"
#: converse.js:1099 #: converse.js:1090
msgid "me" msgid "me"
msgstr "Ich" msgstr "Ich"
#: converse.js:1154 #: converse.js:1144
#, fuzzy #, fuzzy
msgid "is typing" msgid "is typing"
msgstr "%1$s tippt" msgstr "%1$s tippt"
#: converse.js:1157 #: converse.js:1147
#, fuzzy #, fuzzy
msgid "has stopped typing" msgid "has stopped typing"
msgstr "%1$s tippt" msgstr "%1$s tippt"
#: converse.js:1199 converse.js:2331 #: converse.js:1189 converse.js:2360
msgid "Show this menu" msgid "Show this menu"
msgstr "Dieses Menü anzeigen" msgstr "Dieses Menü anzeigen"
#: converse.js:1200 #: converse.js:1190
msgid "Write in the third person" msgid "Write in the third person"
msgstr "In der dritten Person schreiben" msgstr "In der dritten Person schreiben"
#: converse.js:1201 converse.js:2330 #: converse.js:1191 converse.js:2359
msgid "Remove messages" msgid "Remove messages"
msgstr "Nachrichten entfernen" msgstr "Nachrichten entfernen"
#: converse.js:1285 #: converse.js:1275
msgid "Are you sure you want to clear the messages from this chat box?" msgid "Are you sure you want to clear the messages from this chat box?"
msgstr "" msgstr ""
#: converse.js:1320 #: converse.js:1310
msgid "Your message could not be sent" msgid "Your message could not be sent"
msgstr "" msgstr ""
#: converse.js:1323 #: converse.js:1313
msgid "We received an unencrypted message" msgid "We received an unencrypted message"
msgstr "" msgstr ""
#: converse.js:1326 #: converse.js:1316
msgid "We received an unreadable encrypted message" msgid "We received an unreadable encrypted message"
msgstr "" msgstr ""
#: converse.js:1335 #: converse.js:1325
msgid "This user has requested an encrypted session." msgid "This user has requested an encrypted session."
msgstr "" msgstr ""
#: converse.js:1357 #: converse.js:1347
msgid "" msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this " "Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n" "chat.\n"
@ -224,408 +224,408 @@ msgid ""
"Cancel." "Cancel."
msgstr "" msgstr ""
#: converse.js:1370 #: converse.js:1360
msgid "" msgid ""
"You will be prompted to provide a security question and then an answer to " "You will be prompted to provide a security question and then an answer to "
"that question.\n" "that question.\n"
"\n" "\n"
"Your buddy will then be prompted the same question and if they type the " "Your contact will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will be verified." "exact same answer (case sensitive), their identity will be verified."
msgstr "" msgstr ""
#: converse.js:1371 #: converse.js:1361
msgid "What is your security question?" msgid "What is your security question?"
msgstr "" msgstr ""
#: converse.js:1373 #: converse.js:1363
msgid "What is the answer to the security question?" msgid "What is the answer to the security question?"
msgstr "" msgstr ""
#: converse.js:1377 #: converse.js:1367
msgid "Invalid authentication scheme provided" msgid "Invalid authentication scheme provided"
msgstr "" msgstr ""
#: converse.js:1488 #: converse.js:1482
msgid "Your messages are not encrypted anymore" msgid "Your messages are not encrypted anymore"
msgstr "" msgstr ""
#: converse.js:1490 #: converse.js:1484
msgid "" msgid ""
"Your messages are now encrypted but your buddy's identity has not been " "Your messages are now encrypted but your contact's identity has not been "
"verified." "verified."
msgstr "" msgstr ""
#: converse.js:1492 #: converse.js:1486
msgid "Your buddy's identify has been verified." msgid "Your contact's identify has been verified."
msgstr "" msgstr ""
#: converse.js:1494 #: converse.js:1488
msgid "Your buddy has ended encryption on their end, you should do the same." msgid "Your contact has ended encryption on their end, you should do the same."
msgstr "" msgstr ""
#: converse.js:1503 #: converse.js:1497
msgid "Your messages are not encrypted. Click here to enable OTR encryption." msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr "" msgstr ""
#: converse.js:1505 #: converse.js:1499
msgid "Your messages are encrypted, but your buddy has not been verified." msgid "Your messages are encrypted, but your contact has not been verified."
msgstr "" msgstr ""
#: converse.js:1507 #: converse.js:1501
msgid "Your messages are encrypted and your buddy verified." msgid "Your messages are encrypted and your contact verified."
msgstr "" msgstr ""
#: converse.js:1509 #: converse.js:1503
msgid "" msgid ""
"Your buddy has closed their end of the private session, you should do the " "Your contact has closed their end of the private session, you should do the "
"same" "same"
msgstr "" msgstr ""
#: converse.js:1519 #: converse.js:1513
#, fuzzy #, fuzzy
msgid "Clear all messages" msgid "Clear all messages"
msgstr "Persönliche Nachricht" msgstr "Persönliche Nachricht"
#: converse.js:1520 #: converse.js:1514
msgid "End encrypted conversation" msgid "End encrypted conversation"
msgstr "" msgstr ""
#: converse.js:1521 #: converse.js:1515
msgid "Hide the list of participants" msgid "Hide the list of participants"
msgstr "" msgstr ""
#: converse.js:1522 #: converse.js:1516
msgid "Refresh encrypted conversation" msgid "Refresh encrypted conversation"
msgstr "" msgstr ""
#: converse.js:1523 #: converse.js:1517
msgid "Start a call" msgid "Start a call"
msgstr "" msgstr ""
#: converse.js:1524 #: converse.js:1518
msgid "Start encrypted conversation" msgid "Start encrypted conversation"
msgstr "" msgstr ""
#: converse.js:1525 #: converse.js:1519
msgid "Verify with fingerprints" msgid "Verify with fingerprints"
msgstr "" msgstr ""
#: converse.js:1526 #: converse.js:1520
msgid "Verify with SMP" msgid "Verify with SMP"
msgstr "" msgstr ""
#: converse.js:1527 #: converse.js:1521
msgid "What's this?" msgid "What's this?"
msgstr "" msgstr ""
#: converse.js:1618 #: converse.js:1612
msgid "Online" msgid "Online"
msgstr "Online" msgstr "Online"
#: converse.js:1619 #: converse.js:1613
msgid "Busy" msgid "Busy"
msgstr "Beschäfticht" msgstr "Beschäfticht"
#: converse.js:1620 #: converse.js:1614
msgid "Away" msgid "Away"
msgstr "Abwesend" msgstr "Abwesend"
#: converse.js:1621 #: converse.js:1615
msgid "Offline" msgid "Offline"
msgstr "Abgemeldet" msgstr "Abgemeldet"
#: converse.js:1622 #: converse.js:1616
#, fuzzy #, fuzzy
msgid "Log out" msgid "Log out"
msgstr "Anmelden" msgstr "Anmelden"
#: converse.js:1628 #: converse.js:1622
msgid "Contact name" msgid "Contact name"
msgstr "Name des Kontakts" msgstr "Name des Kontakts"
#: converse.js:1629 #: converse.js:1623
msgid "Search" msgid "Search"
msgstr "Suche" msgstr "Suche"
#: converse.js:1633 #: converse.js:1627
msgid "Contact username" msgid "Contact username"
msgstr "Benutzername" msgstr "Benutzername"
#: converse.js:1634 #: converse.js:1628
msgid "Add" msgid "Add"
msgstr "Hinzufügen" msgstr "Hinzufügen"
#: converse.js:1639 #: converse.js:1633
msgid "Click to add new chat contacts" msgid "Click to add new chat contacts"
msgstr "Klicken Sie, um einen neuen Kontakt hinzuzufügen" msgstr "Klicken Sie, um einen neuen Kontakt hinzuzufügen"
#: converse.js:1640 #: converse.js:1634
msgid "Add a contact" msgid "Add a contact"
msgstr "Kontakte hinzufügen" msgstr "Kontakte hinzufügen"
#: converse.js:1664 #: converse.js:1658
msgid "No users found" msgid "No users found"
msgstr "Keine Benutzer gefunden" msgstr "Keine Benutzer gefunden"
#: converse.js:1670 #: converse.js:1664
msgid "Click to add as a chat contact" msgid "Click to add as a chat contact"
msgstr "Hier klicken um als Kontakt hinzuzufügen" msgstr "Hier klicken um als Kontakt hinzuzufügen"
#: converse.js:1725 #: converse.js:1727
msgid "Room name" msgid "Room name"
msgstr "Raumname" msgstr "Raumname"
#: converse.js:1726 #: converse.js:1728
msgid "Nickname" msgid "Nickname"
msgstr "Spitzname" msgstr "Spitzname"
#: converse.js:1727 #: converse.js:1729
msgid "Server" msgid "Server"
msgstr "Server" msgstr "Server"
#: converse.js:1728 #: converse.js:1730
msgid "Join" msgid "Join"
msgstr "Beitreten" msgstr "Beitreten"
#: converse.js:1729 #: converse.js:1731
msgid "Show rooms" msgid "Show rooms"
msgstr "Räume anzeigen" msgstr "Räume anzeigen"
#: converse.js:1749 #: converse.js:1735
msgid "Rooms" msgid "Rooms"
msgstr "Räume" msgstr "Räume"
#. For translators: %1$s is a variable and will be replaced with the XMPP server name #. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:1756 #: converse.js:1755
msgid "No rooms on %1$s" msgid "No rooms on %1$s"
msgstr "Keine Räume auf %1$s" msgstr "Keine Räume auf %1$s"
#. For translators: %1$s is a variable and will be #. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name #. replaced with the XMPP server name
#: converse.js:1771 #: converse.js:1770
msgid "Rooms on %1$s" msgid "Rooms on %1$s"
msgstr "Räume auf %1$s" msgstr "Räume auf %1$s"
#: converse.js:1780 #: converse.js:1779
msgid "Click to open this room" msgid "Click to open this room"
msgstr "Hier klicken um diesen Raum zu öffnen" msgstr "Hier klicken um diesen Raum zu öffnen"
#: converse.js:1781 #: converse.js:1780
msgid "Show more information on this room" msgid "Show more information on this room"
msgstr "Mehr Information über diesen Raum zeigen" msgstr "Mehr Information über diesen Raum zeigen"
#: converse.js:1843 #: converse.js:1842
msgid "Description:" msgid "Description:"
msgstr "Beschreibung" msgstr "Beschreibung"
#: converse.js:1844 #: converse.js:1843
msgid "Occupants:" msgid "Occupants:"
msgstr "Teilnehmer" msgstr "Teilnehmer"
#: converse.js:1845 #: converse.js:1844
msgid "Features:" msgid "Features:"
msgstr "Funktionen:" msgstr "Funktionen:"
#: converse.js:1846 #: converse.js:1845
msgid "Requires authentication" msgid "Requires authentication"
msgstr "Authentifizierung erforderlich" msgstr "Authentifizierung erforderlich"
#: converse.js:1847 #: converse.js:1846
msgid "Hidden" msgid "Hidden"
msgstr "Versteckt" msgstr "Versteckt"
#: converse.js:1848 #: converse.js:1847
msgid "Requires an invitation" msgid "Requires an invitation"
msgstr "Einladung erforderlich" msgstr "Einladung erforderlich"
#: converse.js:1849 #: converse.js:1848
msgid "Moderated" msgid "Moderated"
msgstr "Moderiert" msgstr "Moderiert"
#: converse.js:1850 #: converse.js:1849
msgid "Non-anonymous" msgid "Non-anonymous"
msgstr "Nicht anonym" msgstr "Nicht anonym"
#: converse.js:1851 #: converse.js:1850
msgid "Open room" msgid "Open room"
msgstr "Offener Raum" msgstr "Offener Raum"
#: converse.js:1852 #: converse.js:1851
msgid "Permanent room" msgid "Permanent room"
msgstr "Dauerhafter Raum" msgstr "Dauerhafter Raum"
#: converse.js:1853 #: converse.js:1852
msgid "Public" msgid "Public"
msgstr "Öffentlich" msgstr "Öffentlich"
#: converse.js:1854 #: converse.js:1853
msgid "Semi-anonymous" msgid "Semi-anonymous"
msgstr "Teils anonym" msgstr "Teils anonym"
#: converse.js:1855 #: converse.js:1854
msgid "Temporary room" msgid "Temporary room"
msgstr "Vorübergehender Raum" msgstr "Vorübergehender Raum"
#: converse.js:1856 #: converse.js:1855
msgid "Unmoderated" msgid "Unmoderated"
msgstr "Unmoderiert" msgstr "Unmoderiert"
#: converse.js:2085 #: converse.js:2108
msgid "This user is a moderator" msgid "This user is a moderator"
msgstr "Dieser Benutzer ist ein Moderator" msgstr "Dieser Benutzer ist ein Moderator"
#: converse.js:2086 #: converse.js:2109
msgid "This user can send messages in this room" msgid "This user can send messages in this room"
msgstr "Dieser Benutzer kann Nachrichten in diesem Raum verschicken" msgstr "Dieser Benutzer kann Nachrichten in diesem Raum verschicken"
#: converse.js:2087 #: converse.js:2110
msgid "This user can NOT send messages in this room" msgid "This user can NOT send messages in this room"
msgstr "Dieser Benutzer kann keine Nachrichten in diesem Raum verschicken" msgstr "Dieser Benutzer kann keine Nachrichten in diesem Raum verschicken"
#: converse.js:2119 #: converse.js:2142
msgid "Invite..." msgid "Invite..."
msgstr "" msgstr ""
#: converse.js:2120 #: converse.js:2143
#, fuzzy #, fuzzy
msgid "Occupants" msgid "Occupants"
msgstr "Teilnehmer" msgstr "Teilnehmer"
#: converse.js:2185 #: converse.js:2208
msgid "You are about to invite %1$s to the chat room \"%2$s\". " msgid "You are about to invite %1$s to the chat room \"%2$s\". "
msgstr "" msgstr ""
#: converse.js:2186 #: converse.js:2209
msgid "" msgid ""
"You may optionally include a message, explaining the reason for the " "You may optionally include a message, explaining the reason for the "
"invitation." "invitation."
msgstr "" msgstr ""
#: converse.js:2269 #: converse.js:2292
msgid "Message" msgid "Message"
msgstr "Nachricht" msgstr "Nachricht"
#: converse.js:2307 #: converse.js:2328
msgid "Error: could not execute the command" msgid "Error: could not execute the command"
msgstr "" msgstr ""
#: converse.js:2329 #: converse.js:2358
#, fuzzy #, fuzzy
msgid "Ban user from room" msgid "Ban user from room"
msgstr "Verbanne einen Benutzer aus dem Raum." msgstr "Verbanne einen Benutzer aus dem Raum."
#: converse.js:2332 #: converse.js:2361
#, fuzzy #, fuzzy
msgid "Kick user from room" msgid "Kick user from room"
msgstr "Werfe einen Benutzer aus dem Raum." msgstr "Werfe einen Benutzer aus dem Raum."
#: converse.js:2333 #: converse.js:2362
#, fuzzy #, fuzzy
msgid "Write in 3rd person" msgid "Write in 3rd person"
msgstr "In der dritten Person schreiben" msgstr "In der dritten Person schreiben"
#: converse.js:2334 #: converse.js:2363
msgid "Remove user's ability to post messages" msgid "Remove user's ability to post messages"
msgstr "" msgstr ""
#: converse.js:2335 #: converse.js:2364
msgid "Change your nickname" msgid "Change your nickname"
msgstr "" msgstr ""
#: converse.js:2336 #: converse.js:2365
#, fuzzy #, fuzzy
msgid "Set room topic" msgid "Set room topic"
msgstr "Chatraum Thema festlegen" msgstr "Chatraum Thema festlegen"
#: converse.js:2337 #: converse.js:2366
msgid "Allow muted user to post messages" msgid "Allow muted user to post messages"
msgstr "" msgstr ""
#: converse.js:2441 converse.js:4262 #: converse.js:2489 converse.js:4417
msgid "Save" msgid "Save"
msgstr "Speichern" msgstr "Speichern"
#: converse.js:2442 #: converse.js:2490
msgid "Cancel" msgid "Cancel"
msgstr "Abbrechen" msgstr "Abbrechen"
#: converse.js:2487 #: converse.js:2544
msgid "An error occurred while trying to save the form." msgid "An error occurred while trying to save the form."
msgstr "Beim Speichern der Formular is ein Fehler aufgetreten." msgstr "Beim Speichern der Formular is ein Fehler aufgetreten."
#: converse.js:2531 #: converse.js:2588
msgid "This chatroom requires a password" msgid "This chatroom requires a password"
msgstr "Passwort wird für die Anmeldung benötigt." msgstr "Passwort wird für die Anmeldung benötigt."
#: converse.js:2532 #: converse.js:2589
msgid "Password: " msgid "Password: "
msgstr "Passwort: " msgstr "Passwort: "
#: converse.js:2533 #: converse.js:2590
msgid "Submit" msgid "Submit"
msgstr "Einreichen" msgstr "Einreichen"
#: converse.js:2568 #: converse.js:2625
msgid "This room is not anonymous" msgid "This room is not anonymous"
msgstr "Dieser Raum ist nicht anonym" msgstr "Dieser Raum ist nicht anonym"
#: converse.js:2569 #: converse.js:2626
msgid "This room now shows unavailable members" msgid "This room now shows unavailable members"
msgstr "Dieser Raum zeigt jetzt unferfügbare Mitglieder" msgstr "Dieser Raum zeigt jetzt unferfügbare Mitglieder"
#: converse.js:2570 #: converse.js:2627
msgid "This room does not show unavailable members" msgid "This room does not show unavailable members"
msgstr "Dieser Raum zeigt nicht unverfügbare Mitglieder" msgstr "Dieser Raum zeigt nicht unverfügbare Mitglieder"
#: converse.js:2571 #: converse.js:2628
msgid "Non-privacy-related room configuration has changed" msgid "Non-privacy-related room configuration has changed"
msgstr "" msgstr ""
"Die Konfiguration, die nicht auf die Privatsphäre bezogen ist, hat sich " "Die Konfiguration, die nicht auf die Privatsphäre bezogen ist, hat sich "
"geändert" "geändert"
#: converse.js:2572 #: converse.js:2629
msgid "Room logging is now enabled" msgid "Room logging is now enabled"
msgstr "Zukünftige Nachrichten dieses Raums werden protokolliert." msgstr "Zukünftige Nachrichten dieses Raums werden protokolliert."
#: converse.js:2573 #: converse.js:2630
msgid "Room logging is now disabled" msgid "Room logging is now disabled"
msgstr "Zukünftige Nachrichten dieses Raums werden nicht protokolliert." msgstr "Zukünftige Nachrichten dieses Raums werden nicht protokolliert."
#: converse.js:2574 #: converse.js:2631
msgid "This room is now non-anonymous" msgid "This room is now non-anonymous"
msgstr "Dieser Raum ist jetzt nicht anonym" msgstr "Dieser Raum ist jetzt nicht anonym"
#: converse.js:2575 #: converse.js:2632
msgid "This room is now semi-anonymous" msgid "This room is now semi-anonymous"
msgstr "Dieser Raum ist jetzt teils anonym" msgstr "Dieser Raum ist jetzt teils anonym"
#: converse.js:2576 #: converse.js:2633
msgid "This room is now fully-anonymous" msgid "This room is now fully-anonymous"
msgstr "Dieser Raum ist jetzt anonym" msgstr "Dieser Raum ist jetzt anonym"
#: converse.js:2577 #: converse.js:2634
msgid "A new room has been created" msgid "A new room has been created"
msgstr "Einen neuen Raum ist erstellen" msgstr "Einen neuen Raum ist erstellen"
#: converse.js:2581 converse.js:2681 #: converse.js:2638 converse.js:2738
msgid "You have been banned from this room" msgid "You have been banned from this room"
msgstr "Sie sind aus diesem Raum verbannt worden" msgstr "Sie sind aus diesem Raum verbannt worden"
#: converse.js:2582 #: converse.js:2639
msgid "You have been kicked from this room" msgid "You have been kicked from this room"
msgstr "Sie wurden aus diesem Raum hinausgeworfen" msgstr "Sie wurden aus diesem Raum hinausgeworfen"
#: converse.js:2583 #: converse.js:2640
msgid "You have been removed from this room because of an affiliation change" msgid "You have been removed from this room because of an affiliation change"
msgstr "Sie wurden wegen einer Zugehörigkeitsänderung entfernt" msgstr "Sie wurden wegen einer Zugehörigkeitsänderung entfernt"
#: converse.js:2584 #: converse.js:2641
msgid "" msgid ""
"You have been removed from this room because the room has changed to members-" "You have been removed from this room because the room has changed to members-"
"only and you're not a member" "only and you're not a member"
msgstr "Sie wurden aus diesem Raum entfernt da Sie kein Mitglied sind." msgstr "Sie wurden aus diesem Raum entfernt da Sie kein Mitglied sind."
#: converse.js:2585 #: converse.js:2642
msgid "" msgid ""
"You have been removed from this room because the MUC (Multi-user chat) " "You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down." "service is being shut down."
@ -633,176 +633,176 @@ msgstr ""
"Sie werden aus diesem Raum entfernt da der MUC (Muli-user chat) Dienst " "Sie werden aus diesem Raum entfernt da der MUC (Muli-user chat) Dienst "
"gerade abgeschalten wird." "gerade abgeschalten wird."
#: converse.js:2599 #: converse.js:2656
msgid "<strong>%1$s</strong> has been banned" msgid "<strong>%1$s</strong> has been banned"
msgstr "<strong>%1$s</strong> ist verbannt" msgstr "<strong>%1$s</strong> ist verbannt"
#: converse.js:2600 #: converse.js:2657
#, fuzzy #, fuzzy
msgid "<strong>%1$s</strong>'s nickname has changed" msgid "<strong>%1$s</strong>'s nickname has changed"
msgstr "<strong>%1$s</strong> ist verbannt" msgstr "<strong>%1$s</strong> ist verbannt"
#: converse.js:2601 #: converse.js:2658
msgid "<strong>%1$s</strong> has been kicked out" msgid "<strong>%1$s</strong> has been kicked out"
msgstr "<strong>%1$s</strong> ist hinausgeworfen" msgstr "<strong>%1$s</strong> ist hinausgeworfen"
#: converse.js:2602 #: converse.js:2659
msgid "<strong>%1$s</strong> has been removed because of an affiliation change" msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr "" msgstr ""
"<strong>%1$s</strong> wurde wegen einer Zugehörigkeitsänderung entfernt" "<strong>%1$s</strong> wurde wegen einer Zugehörigkeitsänderung entfernt"
#: converse.js:2603 #: converse.js:2660
msgid "<strong>%1$s</strong> has been removed for not being a member" 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" msgstr "<strong>%1$s</strong> ist kein Mitglied und wurde daher entfernt"
#: converse.js:2607 #: converse.js:2664
#, fuzzy #, fuzzy
msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>" msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>"
msgstr "Spitzname festgelegen" msgstr "Spitzname festgelegen"
#: converse.js:2608 #: converse.js:2665
#, fuzzy #, fuzzy
msgid "Your nickname has been changed to: <strong>%1$s</strong>" msgid "Your nickname has been changed to: <strong>%1$s</strong>"
msgstr "Spitzname festgelegen" msgstr "Spitzname festgelegen"
#: converse.js:2656 converse.js:2666 #: converse.js:2713 converse.js:2723
msgid "The reason given is: \"" msgid "The reason given is: \""
msgstr "" msgstr ""
#: converse.js:2679 #: converse.js:2736
msgid "You are not on the member list of this room" msgid "You are not on the member list of this room"
msgstr "Sie sind nicht auf der Mitgliederliste dieses Raums" msgstr "Sie sind nicht auf der Mitgliederliste dieses Raums"
#: converse.js:2685 #: converse.js:2742
msgid "No nickname was specified" msgid "No nickname was specified"
msgstr "Kein Spitzname festgelegt" msgstr "Kein Spitzname festgelegt"
#: converse.js:2689 #: converse.js:2746
msgid "You are not allowed to create new rooms" msgid "You are not allowed to create new rooms"
msgstr "Es ist Ihnen nicht erlaubt, neue Räume anzulegen" msgstr "Es ist Ihnen nicht erlaubt, neue Räume anzulegen"
#: converse.js:2691 #: converse.js:2748
msgid "Your nickname doesn't conform to this room's policies" msgid "Your nickname doesn't conform to this room's policies"
msgstr "Ungültiger Spitzname" msgstr "Ungültiger Spitzname"
#: converse.js:2695 #: converse.js:2752
msgid "Your nickname is already taken" msgid "Your nickname is already taken"
msgstr "Ihre Spitzname existiert bereits." msgstr "Ihre Spitzname existiert bereits."
#: converse.js:2697 #: converse.js:2754
msgid "This room does not (yet) exist" msgid "This room does not (yet) exist"
msgstr "Dieser Raum existiert (noch) nicht" msgstr "Dieser Raum existiert (noch) nicht"
#: converse.js:2699 #: converse.js:2756
msgid "This room has reached it's maximum number of occupants" msgid "This room has reached it's maximum number of occupants"
msgstr "Dieser Raum hat die maximale Mitgliederanzahl erreicht" msgstr "Dieser Raum hat die maximale Mitgliederanzahl erreicht"
#: converse.js:2736 #: converse.js:2798
msgid "Topic set by %1$s to: %2$s" msgid "Topic set by %1$s to: %2$s"
msgstr "%1$s hat das Thema zu \"%2$s\" abgeändert" msgstr "%1$s hat das Thema zu \"%2$s\" abgeändert"
#: converse.js:2818 #: converse.js:2880
msgid "%1$s has invited you to join a chat room: %2$s" msgid "%1$s has invited you to join a chat room: %2$s"
msgstr "" msgstr ""
#: converse.js:2822 #: converse.js:2884
msgid "" msgid ""
"%1$s has invited you to join a chat room: %2$s, and left the following " "%1$s has invited you to join a chat room: %2$s, and left the following "
"reason: \"%3$s\"" "reason: \"%3$s\""
msgstr "" msgstr ""
#: converse.js:3058 #: converse.js:3140
#, fuzzy #, fuzzy
msgid "Click to restore this chat" msgid "Click to restore this chat"
msgstr "Hier klicken um diesen Kontakt zu entfernen" msgstr "Hier klicken um diesen Kontakt zu entfernen"
#: converse.js:3202 #: converse.js:3285
msgid "Minimized" msgid "Minimized"
msgstr "" msgstr ""
#: converse.js:3274 #: converse.js:3381 converse.js:3399
#, fuzzy
msgid "Are you sure you want to remove this contact?"
msgstr "Hier klicken um diesen Kontakt zu entfernen"
#: converse.js:3297
#, fuzzy
msgid "Are you sure you want to decline this contact request?"
msgstr "Hier klicken um diesen Kontakt zu entfernen"
#: converse.js:3341 converse.js:3359
msgid "Click to remove this contact" msgid "Click to remove this contact"
msgstr "Hier klicken um diesen Kontakt zu entfernen" msgstr "Hier klicken um diesen Kontakt zu entfernen"
#: converse.js:3348 #: converse.js:3388
#, fuzzy #, fuzzy
msgid "Click to accept this contact request" msgid "Click to accept this contact request"
msgstr "Hier klicken um diesen Kontakt zu entfernen" msgstr "Hier klicken um diesen Kontakt zu entfernen"
#: converse.js:3349 #: converse.js:3389
#, fuzzy #, fuzzy
msgid "Click to decline this contact request" msgid "Click to decline this contact request"
msgstr "Hier klicken um diesen Kontakt zu entfernen" msgstr "Hier klicken um diesen Kontakt zu entfernen"
#: converse.js:3358 #: converse.js:3398
msgid "Click to chat with this contact" msgid "Click to chat with this contact"
msgstr "Hier klicken um mit diesem Kontakt zu chatten" msgstr "Hier klicken um mit diesem Kontakt zu chatten"
#: converse.js:3874 #: converse.js:3423
#, fuzzy
msgid "Are you sure you want to remove this contact?"
msgstr "Hier klicken um diesen Kontakt zu entfernen"
#: converse.js:3446
#, fuzzy
msgid "Are you sure you want to decline this contact request?"
msgstr "Hier klicken um diesen Kontakt zu entfernen"
#: converse.js:3972
msgid "Type to filter" msgid "Type to filter"
msgstr "" msgstr ""
#. For translators: the %1$s part gets replaced with the status #. For translators: the %1$s part gets replaced with the status
#. Example, I am online #. Example, I am online
#: converse.js:4233 converse.js:4310 #: converse.js:4388 converse.js:4465
msgid "I am %1$s" msgid "I am %1$s"
msgstr "Ich bin %1$s" msgstr "Ich bin %1$s"
#: converse.js:4235 converse.js:4315 #: converse.js:4390 converse.js:4470
msgid "Click here to write a custom status message" msgid "Click here to write a custom status message"
msgstr "Klicken Sie hier, um ihrer Status-Nachricht to ändern" msgstr "Klicken Sie hier, um ihrer Status-Nachricht to ändern"
#: converse.js:4236 converse.js:4316 #: converse.js:4391 converse.js:4471
msgid "Click to change your chat status" msgid "Click to change your chat status"
msgstr "Klicken Sie, um ihrer Status to ändern" msgstr "Klicken Sie, um ihrer Status to ändern"
#: converse.js:4261 #: converse.js:4416
msgid "Custom status" msgid "Custom status"
msgstr "Status-Nachricht" msgstr "Status-Nachricht"
#: converse.js:4290 converse.js:4298 #: converse.js:4445 converse.js:4453
msgid "online" msgid "online"
msgstr "online" msgstr "online"
#: converse.js:4292 #: converse.js:4447
msgid "busy" msgid "busy"
msgstr "beschäfticht" msgstr "beschäfticht"
#: converse.js:4294 #: converse.js:4449
msgid "away for long" msgid "away for long"
msgstr "länger abwesend" msgstr "länger abwesend"
#: converse.js:4296 #: converse.js:4451
msgid "away" msgid "away"
msgstr "abwesend" msgstr "abwesend"
#: converse.js:4419 #: converse.js:4574
msgid "XMPP/Jabber Username:" msgid "XMPP/Jabber Username:"
msgstr "XMPP/Jabber Benutzername" msgstr "XMPP/Jabber Benutzername"
#: converse.js:4420 #: converse.js:4575
msgid "Password:" msgid "Password:"
msgstr "Passwort:" msgstr "Passwort:"
#: converse.js:4421 #: converse.js:4576
msgid "Log In" msgid "Log In"
msgstr "Anmelden" msgstr "Anmelden"
#: converse.js:4428 #: converse.js:4583
msgid "Sign in" msgid "Sign in"
msgstr "Anmelden" msgstr "Anmelden"
#: converse.js:4488 #: converse.js:4643
msgid "Toggle chat" msgid "Toggle chat"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Converse.js 0.4\n" "Project-Id-Version: Converse.js 0.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-09-22 17:23+0200\n" "POT-Creation-Date: 2014-11-15 16:36+0100\n"
"PO-Revision-Date: 2013-09-15 22:15+0200\n" "PO-Revision-Date: 2013-09-15 22:15+0200\n"
"Last-Translator: JC Brand <jc@opkode.com>\n" "Last-Translator: JC Brand <jc@opkode.com>\n"
"Language-Team: English\n" "Language-Team: English\n"
@ -17,196 +17,196 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: converse.js:338 #: converse.js:316
msgid "unencrypted" msgid "unencrypted"
msgstr "unencrypted" msgstr "unencrypted"
#: converse.js:339 #: converse.js:317
msgid "unverified" msgid "unverified"
msgstr "unverified" msgstr "unverified"
#: converse.js:340 #: converse.js:318
msgid "verified" msgid "verified"
msgstr "verified" msgstr "verified"
#: converse.js:341 #: converse.js:319
msgid "finished" msgid "finished"
msgstr "finished" msgstr "finished"
#: converse.js:344 #: converse.js:322
msgid "This contact is busy" msgid "This contact is busy"
msgstr "" msgstr ""
#: converse.js:345 #: converse.js:323
msgid "This contact is online" msgid "This contact is online"
msgstr "" msgstr ""
#: converse.js:346 #: converse.js:324
msgid "This contact is offline" msgid "This contact is offline"
msgstr "" msgstr ""
#: converse.js:347 #: converse.js:325
msgid "This contact is unavailable" msgid "This contact is unavailable"
msgstr "" msgstr ""
#: converse.js:348 #: converse.js:326
msgid "This contact is away for an extended period" msgid "This contact is away for an extended period"
msgstr "" msgstr ""
#: converse.js:349 #: converse.js:327
msgid "This contact is away" msgid "This contact is away"
msgstr "" msgstr ""
#: converse.js:351 #: converse.js:329
#, fuzzy #, fuzzy
msgid "Click to hide these contacts" msgid "Click to hide these contacts"
msgstr "Click to remove this contact" msgstr "Click to remove this contact"
#: converse.js:353 #: converse.js:331
msgid "My contacts" msgid "My contacts"
msgstr "My contacts" msgstr "My contacts"
#: converse.js:354 #: converse.js:332
msgid "Pending contacts" msgid "Pending contacts"
msgstr "Pending contacts" msgstr "Pending contacts"
#: converse.js:355 #: converse.js:333
msgid "Contact requests" msgid "Contact requests"
msgstr "Contact requests" msgstr "Contact requests"
#: converse.js:356 #: converse.js:334
msgid "Ungrouped" msgid "Ungrouped"
msgstr "" msgstr ""
#: converse.js:358 #: converse.js:336
msgid "Contacts" msgid "Contacts"
msgstr "Contacts" msgstr "Contacts"
#: converse.js:359 #: converse.js:337
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
#: converse.js:441 #: converse.js:419
#, fuzzy #, fuzzy
msgid "Reconnecting" msgid "Reconnecting"
msgstr "Connecting" msgstr "Connecting"
#: converse.js:476 #: converse.js:454
msgid "Disconnected" msgid "Disconnected"
msgstr "Disconnected" msgstr "Disconnected"
#: converse.js:484 #: converse.js:462
msgid "Error" msgid "Error"
msgstr "Error" msgstr "Error"
#: converse.js:486 #: converse.js:464
msgid "Connecting" msgid "Connecting"
msgstr "Connecting" msgstr "Connecting"
#: converse.js:489 #: converse.js:467
msgid "Connection Failed" msgid "Connection Failed"
msgstr "Connection Failed" msgstr "Connection Failed"
#: converse.js:491 #: converse.js:469
msgid "Authenticating" msgid "Authenticating"
msgstr "Authenticating" msgstr "Authenticating"
#: converse.js:494 #: converse.js:472
msgid "Authentication Failed" msgid "Authentication Failed"
msgstr "Authentication Failed" msgstr "Authentication Failed"
#: converse.js:499 #: converse.js:477
msgid "Disconnecting" msgid "Disconnecting"
msgstr "Disconnecting" msgstr "Disconnecting"
#: converse.js:638 converse.js:684 #: converse.js:617 converse.js:669
msgid "Online Contacts" msgid "Online Contacts"
msgstr "Online Contacts" msgstr "Online Contacts"
#: converse.js:802 #: converse.js:787
msgid "Re-establishing encrypted session" msgid "Re-establishing encrypted session"
msgstr "Re-establishing encrypted session" msgstr "Re-establishing encrypted session"
#: converse.js:814 #: converse.js:799
msgid "Generating private key." msgid "Generating private key."
msgstr "" msgstr ""
#: converse.js:815 #: converse.js:800
msgid "Your browser might become unresponsive." msgid "Your browser might become unresponsive."
msgstr "" msgstr ""
#: converse.js:850 #: converse.js:835
msgid "" msgid ""
"Authentication request from %1$s\n" "Authentication request from %1$s\n"
"\n" "\n"
"Your buddy is attempting to verify your identity, by asking you the question " "Your chat contact is attempting to verify your identity, by asking you the "
"below.\n" "question below.\n"
"\n" "\n"
"%2$s" "%2$s"
msgstr "" msgstr ""
#: converse.js:859 #: converse.js:844
msgid "Could not verify this user's identify." msgid "Could not verify this user's identify."
msgstr "" msgstr ""
#: converse.js:898 #: converse.js:883
msgid "Exchanging private key with buddy." msgid "Exchanging private key with contact."
msgstr "" msgstr ""
#: converse.js:1045 #: converse.js:1036
msgid "Personal message" msgid "Personal message"
msgstr "Personal message" msgstr "Personal message"
#: converse.js:1077 #: converse.js:1068
#, fuzzy #, fuzzy
msgid "Are you sure you want to clear the messages from this room?" msgid "Are you sure you want to clear the messages from this room?"
msgstr "You are not on the member list of this room" msgstr "You are not on the member list of this room"
#: converse.js:1099 #: converse.js:1090
msgid "me" msgid "me"
msgstr "" msgstr ""
#: converse.js:1154 #: converse.js:1144
msgid "is typing" msgid "is typing"
msgstr "" msgstr ""
#: converse.js:1157 #: converse.js:1147
msgid "has stopped typing" msgid "has stopped typing"
msgstr "" msgstr ""
#: converse.js:1199 converse.js:2331 #: converse.js:1189 converse.js:2360
msgid "Show this menu" msgid "Show this menu"
msgstr "Show this menu" msgstr "Show this menu"
#: converse.js:1200 #: converse.js:1190
msgid "Write in the third person" msgid "Write in the third person"
msgstr "Write in the third person" msgstr "Write in the third person"
#: converse.js:1201 converse.js:2330 #: converse.js:1191 converse.js:2359
msgid "Remove messages" msgid "Remove messages"
msgstr "Remove messages" msgstr "Remove messages"
#: converse.js:1285 #: converse.js:1275
msgid "Are you sure you want to clear the messages from this chat box?" msgid "Are you sure you want to clear the messages from this chat box?"
msgstr "" msgstr ""
#: converse.js:1320 #: converse.js:1310
msgid "Your message could not be sent" msgid "Your message could not be sent"
msgstr "" msgstr ""
#: converse.js:1323 #: converse.js:1313
msgid "We received an unencrypted message" msgid "We received an unencrypted message"
msgstr "" msgstr ""
#: converse.js:1326 #: converse.js:1316
msgid "We received an unreadable encrypted message" msgid "We received an unreadable encrypted message"
msgstr "" msgstr ""
#: converse.js:1335 #: converse.js:1325
msgid "This user has requested an encrypted session." msgid "This user has requested an encrypted session."
msgstr "" msgstr ""
#: converse.js:1357 #: converse.js:1347
msgid "" msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this " "Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n" "chat.\n"
@ -219,400 +219,400 @@ msgid ""
"Cancel." "Cancel."
msgstr "" msgstr ""
#: converse.js:1370 #: converse.js:1360
msgid "" msgid ""
"You will be prompted to provide a security question and then an answer to " "You will be prompted to provide a security question and then an answer to "
"that question.\n" "that question.\n"
"\n" "\n"
"Your buddy will then be prompted the same question and if they type the " "Your contact will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will be verified." "exact same answer (case sensitive), their identity will be verified."
msgstr "" msgstr ""
#: converse.js:1371 #: converse.js:1361
msgid "What is your security question?" msgid "What is your security question?"
msgstr "" msgstr ""
#: converse.js:1373 #: converse.js:1363
msgid "What is the answer to the security question?" msgid "What is the answer to the security question?"
msgstr "" msgstr ""
#: converse.js:1377 #: converse.js:1367
msgid "Invalid authentication scheme provided" msgid "Invalid authentication scheme provided"
msgstr "" msgstr ""
#: converse.js:1488 #: converse.js:1482
msgid "Your messages are not encrypted anymore" msgid "Your messages are not encrypted anymore"
msgstr "" msgstr ""
#: converse.js:1490 #: converse.js:1484
msgid "" msgid ""
"Your messages are now encrypted but your buddy's identity has not been " "Your messages are now encrypted but your contact's identity has not been "
"verified." "verified."
msgstr "" msgstr ""
#: converse.js:1492 #: converse.js:1486
msgid "Your buddy's identify has been verified." msgid "Your contact's identify has been verified."
msgstr "" msgstr ""
#: converse.js:1494 #: converse.js:1488
msgid "Your buddy has ended encryption on their end, you should do the same." msgid "Your contact has ended encryption on their end, you should do the same."
msgstr "" msgstr ""
#: converse.js:1503 #: converse.js:1497
msgid "Your messages are not encrypted. Click here to enable OTR encryption." msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr "" msgstr ""
#: converse.js:1505 #: converse.js:1499
msgid "Your messages are encrypted, but your buddy has not been verified." msgid "Your messages are encrypted, but your contact has not been verified."
msgstr "" msgstr ""
#: converse.js:1507 #: converse.js:1501
msgid "Your messages are encrypted and your buddy verified." msgid "Your messages are encrypted and your contact verified."
msgstr "" msgstr ""
#: converse.js:1509 #: converse.js:1503
msgid "" msgid ""
"Your buddy has closed their end of the private session, you should do the " "Your contact has closed their end of the private session, you should do the "
"same" "same"
msgstr "" msgstr ""
#: converse.js:1519 #: converse.js:1513
#, fuzzy #, fuzzy
msgid "Clear all messages" msgid "Clear all messages"
msgstr "Personal message" msgstr "Personal message"
#: converse.js:1520 #: converse.js:1514
msgid "End encrypted conversation" msgid "End encrypted conversation"
msgstr "" msgstr ""
#: converse.js:1521 #: converse.js:1515
msgid "Hide the list of participants" msgid "Hide the list of participants"
msgstr "" msgstr ""
#: converse.js:1522 #: converse.js:1516
msgid "Refresh encrypted conversation" msgid "Refresh encrypted conversation"
msgstr "" msgstr ""
#: converse.js:1523 #: converse.js:1517
msgid "Start a call" msgid "Start a call"
msgstr "" msgstr ""
#: converse.js:1524 #: converse.js:1518
msgid "Start encrypted conversation" msgid "Start encrypted conversation"
msgstr "" msgstr ""
#: converse.js:1525 #: converse.js:1519
msgid "Verify with fingerprints" msgid "Verify with fingerprints"
msgstr "" msgstr ""
#: converse.js:1526 #: converse.js:1520
msgid "Verify with SMP" msgid "Verify with SMP"
msgstr "" msgstr ""
#: converse.js:1527 #: converse.js:1521
msgid "What's this?" msgid "What's this?"
msgstr "" msgstr ""
#: converse.js:1618 #: converse.js:1612
msgid "Online" msgid "Online"
msgstr "Online" msgstr "Online"
#: converse.js:1619 #: converse.js:1613
msgid "Busy" msgid "Busy"
msgstr "Busy" msgstr "Busy"
#: converse.js:1620 #: converse.js:1614
msgid "Away" msgid "Away"
msgstr "Away" msgstr "Away"
#: converse.js:1621 #: converse.js:1615
msgid "Offline" msgid "Offline"
msgstr "Offline" msgstr "Offline"
#: converse.js:1622 #: converse.js:1616
#, fuzzy #, fuzzy
msgid "Log out" msgid "Log out"
msgstr "Log In" msgstr "Log In"
#: converse.js:1628 #: converse.js:1622
msgid "Contact name" msgid "Contact name"
msgstr "Contact name" msgstr "Contact name"
#: converse.js:1629 #: converse.js:1623
msgid "Search" msgid "Search"
msgstr "Search" msgstr "Search"
#: converse.js:1633 #: converse.js:1627
msgid "Contact username" msgid "Contact username"
msgstr "Contact username" msgstr "Contact username"
#: converse.js:1634 #: converse.js:1628
msgid "Add" msgid "Add"
msgstr "Add" msgstr "Add"
#: converse.js:1639 #: converse.js:1633
msgid "Click to add new chat contacts" msgid "Click to add new chat contacts"
msgstr "Click to add new chat contacts" msgstr "Click to add new chat contacts"
#: converse.js:1640 #: converse.js:1634
msgid "Add a contact" msgid "Add a contact"
msgstr "Add a contact" msgstr "Add a contact"
#: converse.js:1664 #: converse.js:1658
msgid "No users found" msgid "No users found"
msgstr "No users found" msgstr "No users found"
#: converse.js:1670 #: converse.js:1664
msgid "Click to add as a chat contact" msgid "Click to add as a chat contact"
msgstr "Click to add as a chat contact" msgstr "Click to add as a chat contact"
#: converse.js:1725 #: converse.js:1727
msgid "Room name" msgid "Room name"
msgstr "Room name" msgstr "Room name"
#: converse.js:1726 #: converse.js:1728
msgid "Nickname" msgid "Nickname"
msgstr "Nickname" msgstr "Nickname"
#: converse.js:1727 #: converse.js:1729
msgid "Server" msgid "Server"
msgstr "Server" msgstr "Server"
#: converse.js:1728 #: converse.js:1730
msgid "Join" msgid "Join"
msgstr "Join" msgstr "Join"
#: converse.js:1729 #: converse.js:1731
msgid "Show rooms" msgid "Show rooms"
msgstr "Show rooms" msgstr "Show rooms"
#: converse.js:1749 #: converse.js:1735
msgid "Rooms" msgid "Rooms"
msgstr "Rooms" msgstr "Rooms"
#. For translators: %1$s is a variable and will be replaced with the XMPP server name #. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:1756 #: converse.js:1755
msgid "No rooms on %1$s" msgid "No rooms on %1$s"
msgstr "No rooms on %1$s" msgstr "No rooms on %1$s"
#. For translators: %1$s is a variable and will be #. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name #. replaced with the XMPP server name
#: converse.js:1771 #: converse.js:1770
msgid "Rooms on %1$s" msgid "Rooms on %1$s"
msgstr "Rooms on %1$s" msgstr "Rooms on %1$s"
#: converse.js:1780 #: converse.js:1779
msgid "Click to open this room" msgid "Click to open this room"
msgstr "Click to open this room" msgstr "Click to open this room"
#: converse.js:1781 #: converse.js:1780
msgid "Show more information on this room" msgid "Show more information on this room"
msgstr "Show more information on this room" msgstr "Show more information on this room"
#: converse.js:1843 #: converse.js:1842
msgid "Description:" msgid "Description:"
msgstr "Description:" msgstr "Description:"
#: converse.js:1844 #: converse.js:1843
msgid "Occupants:" msgid "Occupants:"
msgstr "Occupants:" msgstr "Occupants:"
#: converse.js:1845 #: converse.js:1844
msgid "Features:" msgid "Features:"
msgstr "Features:" msgstr "Features:"
#: converse.js:1846 #: converse.js:1845
msgid "Requires authentication" msgid "Requires authentication"
msgstr "Requires authentication" msgstr "Requires authentication"
#: converse.js:1847 #: converse.js:1846
msgid "Hidden" msgid "Hidden"
msgstr "Hidden" msgstr "Hidden"
#: converse.js:1848 #: converse.js:1847
msgid "Requires an invitation" msgid "Requires an invitation"
msgstr "Requires an invitation" msgstr "Requires an invitation"
#: converse.js:1849 #: converse.js:1848
msgid "Moderated" msgid "Moderated"
msgstr "Moderated" msgstr "Moderated"
#: converse.js:1850 #: converse.js:1849
msgid "Non-anonymous" msgid "Non-anonymous"
msgstr "Non-anonymous" msgstr "Non-anonymous"
#: converse.js:1851 #: converse.js:1850
msgid "Open room" msgid "Open room"
msgstr "Open room" msgstr "Open room"
#: converse.js:1852 #: converse.js:1851
msgid "Permanent room" msgid "Permanent room"
msgstr "Permanent room" msgstr "Permanent room"
#: converse.js:1853 #: converse.js:1852
msgid "Public" msgid "Public"
msgstr "Public" msgstr "Public"
#: converse.js:1854 #: converse.js:1853
msgid "Semi-anonymous" msgid "Semi-anonymous"
msgstr "Semi-anonymous" msgstr "Semi-anonymous"
#: converse.js:1855 #: converse.js:1854
msgid "Temporary room" msgid "Temporary room"
msgstr "Temporary room" msgstr "Temporary room"
#: converse.js:1856 #: converse.js:1855
msgid "Unmoderated" msgid "Unmoderated"
msgstr "Unmoderated" msgstr "Unmoderated"
#: converse.js:2085 #: converse.js:2108
msgid "This user is a moderator" msgid "This user is a moderator"
msgstr "This user is a moderator" msgstr "This user is a moderator"
#: converse.js:2086 #: converse.js:2109
msgid "This user can send messages in this room" msgid "This user can send messages in this room"
msgstr "This user can send messages in this room" msgstr "This user can send messages in this room"
#: converse.js:2087 #: converse.js:2110
msgid "This user can NOT send messages in this room" msgid "This user can NOT send messages in this room"
msgstr "This user can NOT send messages in this room" msgstr "This user can NOT send messages in this room"
#: converse.js:2119 #: converse.js:2142
msgid "Invite..." msgid "Invite..."
msgstr "" msgstr ""
#: converse.js:2120 #: converse.js:2143
#, fuzzy #, fuzzy
msgid "Occupants" msgid "Occupants"
msgstr "Occupants:" msgstr "Occupants:"
#: converse.js:2185 #: converse.js:2208
msgid "You are about to invite %1$s to the chat room \"%2$s\". " msgid "You are about to invite %1$s to the chat room \"%2$s\". "
msgstr "" msgstr ""
#: converse.js:2186 #: converse.js:2209
msgid "" msgid ""
"You may optionally include a message, explaining the reason for the " "You may optionally include a message, explaining the reason for the "
"invitation." "invitation."
msgstr "" msgstr ""
#: converse.js:2269 #: converse.js:2292
msgid "Message" msgid "Message"
msgstr "Message" msgstr "Message"
#: converse.js:2307 #: converse.js:2328
msgid "Error: could not execute the command" msgid "Error: could not execute the command"
msgstr "" msgstr ""
#: converse.js:2329 #: converse.js:2358
#, fuzzy #, fuzzy
msgid "Ban user from room" msgid "Ban user from room"
msgstr "Ban user from chatroom" msgstr "Ban user from chatroom"
#: converse.js:2332 #: converse.js:2361
#, fuzzy #, fuzzy
msgid "Kick user from room" msgid "Kick user from room"
msgstr "Kick user from chatroom" msgstr "Kick user from chatroom"
#: converse.js:2333 #: converse.js:2362
#, fuzzy #, fuzzy
msgid "Write in 3rd person" msgid "Write in 3rd person"
msgstr "Write in the third person" msgstr "Write in the third person"
#: converse.js:2334 #: converse.js:2363
msgid "Remove user's ability to post messages" msgid "Remove user's ability to post messages"
msgstr "" msgstr ""
#: converse.js:2335 #: converse.js:2364
msgid "Change your nickname" msgid "Change your nickname"
msgstr "" msgstr ""
#: converse.js:2336 #: converse.js:2365
#, fuzzy #, fuzzy
msgid "Set room topic" msgid "Set room topic"
msgstr "Set chatroom topic" msgstr "Set chatroom topic"
#: converse.js:2337 #: converse.js:2366
msgid "Allow muted user to post messages" msgid "Allow muted user to post messages"
msgstr "" msgstr ""
#: converse.js:2441 converse.js:4262 #: converse.js:2489 converse.js:4417
msgid "Save" msgid "Save"
msgstr "Save" msgstr "Save"
#: converse.js:2442 #: converse.js:2490
msgid "Cancel" msgid "Cancel"
msgstr "Cancel" msgstr "Cancel"
#: converse.js:2487 #: converse.js:2544
msgid "An error occurred while trying to save the form." msgid "An error occurred while trying to save the form."
msgstr "An error occurred while trying to save the form." msgstr "An error occurred while trying to save the form."
#: converse.js:2531 #: converse.js:2588
msgid "This chatroom requires a password" msgid "This chatroom requires a password"
msgstr "This chatroom requires a password" msgstr "This chatroom requires a password"
#: converse.js:2532 #: converse.js:2589
msgid "Password: " msgid "Password: "
msgstr "Password: " msgstr "Password: "
#: converse.js:2533 #: converse.js:2590
msgid "Submit" msgid "Submit"
msgstr "Submit" msgstr "Submit"
#: converse.js:2568 #: converse.js:2625
msgid "This room is not anonymous" msgid "This room is not anonymous"
msgstr "This room is not anonymous" msgstr "This room is not anonymous"
#: converse.js:2569 #: converse.js:2626
msgid "This room now shows unavailable members" msgid "This room now shows unavailable members"
msgstr "This room now shows unavailable members" msgstr "This room now shows unavailable members"
#: converse.js:2570 #: converse.js:2627
msgid "This room does not show unavailable members" msgid "This room does not show unavailable members"
msgstr "This room does not show unavailable members" msgstr "This room does not show unavailable members"
#: converse.js:2571 #: converse.js:2628
msgid "Non-privacy-related room configuration has changed" msgid "Non-privacy-related room configuration has changed"
msgstr "Non-privacy-related room configuration has changed" msgstr "Non-privacy-related room configuration has changed"
#: converse.js:2572 #: converse.js:2629
msgid "Room logging is now enabled" msgid "Room logging is now enabled"
msgstr "Room logging is now enabled" msgstr "Room logging is now enabled"
#: converse.js:2573 #: converse.js:2630
msgid "Room logging is now disabled" msgid "Room logging is now disabled"
msgstr "Room logging is now disabled" msgstr "Room logging is now disabled"
#: converse.js:2574 #: converse.js:2631
msgid "This room is now non-anonymous" msgid "This room is now non-anonymous"
msgstr "This room is now non-anonymous" msgstr "This room is now non-anonymous"
#: converse.js:2575 #: converse.js:2632
msgid "This room is now semi-anonymous" msgid "This room is now semi-anonymous"
msgstr "This room is now semi-anonymous" msgstr "This room is now semi-anonymous"
#: converse.js:2576 #: converse.js:2633
msgid "This room is now fully-anonymous" msgid "This room is now fully-anonymous"
msgstr "This room is now fully-anonymous" msgstr "This room is now fully-anonymous"
#: converse.js:2577 #: converse.js:2634
msgid "A new room has been created" msgid "A new room has been created"
msgstr "A new room has been created" msgstr "A new room has been created"
#: converse.js:2581 converse.js:2681 #: converse.js:2638 converse.js:2738
msgid "You have been banned from this room" msgid "You have been banned from this room"
msgstr "You have been banned from this room" msgstr "You have been banned from this room"
#: converse.js:2582 #: converse.js:2639
msgid "You have been kicked from this room" msgid "You have been kicked from this room"
msgstr "You have been kicked from this room" msgstr "You have been kicked from this room"
#: converse.js:2583 #: converse.js:2640
msgid "You have been removed from this room because of an affiliation change" 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" msgstr "You have been removed from this room because of an affiliation change"
#: converse.js:2584 #: converse.js:2641
msgid "" msgid ""
"You have been removed from this room because the room has changed to members-" "You have been removed from this room because the room has changed to members-"
"only and you're not a member" "only and you're not a member"
@ -620,7 +620,7 @@ msgstr ""
"You have been removed from this room because the room has changed to members-" "You have been removed from this room because the room has changed to members-"
"only and you're not a member" "only and you're not a member"
#: converse.js:2585 #: converse.js:2642
msgid "" msgid ""
"You have been removed from this room because the MUC (Multi-user chat) " "You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down." "service is being shut down."
@ -628,176 +628,176 @@ msgstr ""
"You have been removed from this room because the MUC (Multi-user chat) " "You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down." "service is being shut down."
#: converse.js:2599 #: converse.js:2656
msgid "<strong>%1$s</strong> has been banned" msgid "<strong>%1$s</strong> has been banned"
msgstr "<strong>%1$s</strong> has been banned" msgstr "<strong>%1$s</strong> has been banned"
#: converse.js:2600 #: converse.js:2657
#, fuzzy #, fuzzy
msgid "<strong>%1$s</strong>'s nickname has changed" msgid "<strong>%1$s</strong>'s nickname has changed"
msgstr "<strong>%1$s</strong> has been banned" msgstr "<strong>%1$s</strong> has been banned"
#: converse.js:2601 #: converse.js:2658
msgid "<strong>%1$s</strong> has been kicked out" msgid "<strong>%1$s</strong> has been kicked out"
msgstr "<strong>%1$s</strong> has been kicked out" msgstr "<strong>%1$s</strong> has been kicked out"
#: converse.js:2602 #: converse.js:2659
msgid "<strong>%1$s</strong> has been removed because of an affiliation change" msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr "" msgstr ""
"<strong>%1$s</strong> has been removed because of an affiliation change" "<strong>%1$s</strong> has been removed because of an affiliation change"
#: converse.js:2603 #: converse.js:2660
msgid "<strong>%1$s</strong> has been removed for not being a member" 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" msgstr "<strong>%1$s</strong> has been removed for not being a member"
#: converse.js:2607 #: converse.js:2664
#, fuzzy #, fuzzy
msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>" msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>"
msgstr "Your nickname has been changed" msgstr "Your nickname has been changed"
#: converse.js:2608 #: converse.js:2665
#, fuzzy #, fuzzy
msgid "Your nickname has been changed to: <strong>%1$s</strong>" msgid "Your nickname has been changed to: <strong>%1$s</strong>"
msgstr "Your nickname has been changed" msgstr "Your nickname has been changed"
#: converse.js:2656 converse.js:2666 #: converse.js:2713 converse.js:2723
msgid "The reason given is: \"" msgid "The reason given is: \""
msgstr "" msgstr ""
#: converse.js:2679 #: converse.js:2736
msgid "You are not on the member list of this room" msgid "You are not on the member list of this room"
msgstr "You are not on the member list of this room" msgstr "You are not on the member list of this room"
#: converse.js:2685 #: converse.js:2742
msgid "No nickname was specified" msgid "No nickname was specified"
msgstr "No nickname was specified" msgstr "No nickname was specified"
#: converse.js:2689 #: converse.js:2746
msgid "You are not allowed to create new rooms" msgid "You are not allowed to create new rooms"
msgstr "You are not allowed to create new rooms" msgstr "You are not allowed to create new rooms"
#: converse.js:2691 #: converse.js:2748
msgid "Your nickname doesn't conform to this room's policies" msgid "Your nickname doesn't conform to this room's policies"
msgstr "Your nickname doesn't conform to this room's policies" msgstr "Your nickname doesn't conform to this room's policies"
#: converse.js:2695 #: converse.js:2752
msgid "Your nickname is already taken" msgid "Your nickname is already taken"
msgstr "Your nickname is already taken" msgstr "Your nickname is already taken"
#: converse.js:2697 #: converse.js:2754
msgid "This room does not (yet) exist" msgid "This room does not (yet) exist"
msgstr "This room does not (yet) exist" msgstr "This room does not (yet) exist"
#: converse.js:2699 #: converse.js:2756
msgid "This room has reached it's maximum number of occupants" msgid "This room has reached it's maximum number of occupants"
msgstr "This room has reached it's maximum number of occupants" msgstr "This room has reached it's maximum number of occupants"
#: converse.js:2736 #: converse.js:2798
msgid "Topic set by %1$s to: %2$s" msgid "Topic set by %1$s to: %2$s"
msgstr "Topic set by %1$s to: %2$s" msgstr "Topic set by %1$s to: %2$s"
#: converse.js:2818 #: converse.js:2880
msgid "%1$s has invited you to join a chat room: %2$s" msgid "%1$s has invited you to join a chat room: %2$s"
msgstr "" msgstr ""
#: converse.js:2822 #: converse.js:2884
msgid "" msgid ""
"%1$s has invited you to join a chat room: %2$s, and left the following " "%1$s has invited you to join a chat room: %2$s, and left the following "
"reason: \"%3$s\"" "reason: \"%3$s\""
msgstr "" msgstr ""
#: converse.js:3058 #: converse.js:3140
#, fuzzy #, fuzzy
msgid "Click to restore this chat" msgid "Click to restore this chat"
msgstr "Click to remove this contact" msgstr "Click to remove this contact"
#: converse.js:3202 #: converse.js:3285
msgid "Minimized" msgid "Minimized"
msgstr "" msgstr ""
#: converse.js:3274 #: converse.js:3381 converse.js:3399
#, fuzzy
msgid "Are you sure you want to remove this contact?"
msgstr "Click to remove this contact"
#: converse.js:3297
#, fuzzy
msgid "Are you sure you want to decline this contact request?"
msgstr "Click to remove this contact"
#: converse.js:3341 converse.js:3359
msgid "Click to remove this contact" msgid "Click to remove this contact"
msgstr "Click to remove this contact" msgstr "Click to remove this contact"
#: converse.js:3348 #: converse.js:3388
#, fuzzy #, fuzzy
msgid "Click to accept this contact request" msgid "Click to accept this contact request"
msgstr "Click to remove this contact" msgstr "Click to remove this contact"
#: converse.js:3349 #: converse.js:3389
#, fuzzy #, fuzzy
msgid "Click to decline this contact request" msgid "Click to decline this contact request"
msgstr "Click to remove this contact" msgstr "Click to remove this contact"
#: converse.js:3358 #: converse.js:3398
msgid "Click to chat with this contact" msgid "Click to chat with this contact"
msgstr "Click to chat with this contact" msgstr "Click to chat with this contact"
#: converse.js:3874 #: converse.js:3423
#, fuzzy
msgid "Are you sure you want to remove this contact?"
msgstr "Click to remove this contact"
#: converse.js:3446
#, fuzzy
msgid "Are you sure you want to decline this contact request?"
msgstr "Click to remove this contact"
#: converse.js:3972
msgid "Type to filter" msgid "Type to filter"
msgstr "" msgstr ""
#. For translators: the %1$s part gets replaced with the status #. For translators: the %1$s part gets replaced with the status
#. Example, I am online #. Example, I am online
#: converse.js:4233 converse.js:4310 #: converse.js:4388 converse.js:4465
msgid "I am %1$s" msgid "I am %1$s"
msgstr "I am %1$s" msgstr "I am %1$s"
#: converse.js:4235 converse.js:4315 #: converse.js:4390 converse.js:4470
msgid "Click here to write a custom status message" msgid "Click here to write a custom status message"
msgstr "Click here to write a custom status message" msgstr "Click here to write a custom status message"
#: converse.js:4236 converse.js:4316 #: converse.js:4391 converse.js:4471
msgid "Click to change your chat status" msgid "Click to change your chat status"
msgstr "Click to change your chat status" msgstr "Click to change your chat status"
#: converse.js:4261 #: converse.js:4416
msgid "Custom status" msgid "Custom status"
msgstr "Custom status" msgstr "Custom status"
#: converse.js:4290 converse.js:4298 #: converse.js:4445 converse.js:4453
msgid "online" msgid "online"
msgstr "online" msgstr "online"
#: converse.js:4292 #: converse.js:4447
msgid "busy" msgid "busy"
msgstr "busy" msgstr "busy"
#: converse.js:4294 #: converse.js:4449
msgid "away for long" msgid "away for long"
msgstr "away for long" msgstr "away for long"
#: converse.js:4296 #: converse.js:4451
msgid "away" msgid "away"
msgstr "away" msgstr "away"
#: converse.js:4419 #: converse.js:4574
msgid "XMPP/Jabber Username:" msgid "XMPP/Jabber Username:"
msgstr "XMPP/Jabber Username:" msgstr "XMPP/Jabber Username:"
#: converse.js:4420 #: converse.js:4575
msgid "Password:" msgid "Password:"
msgstr "Password:" msgstr "Password:"
#: converse.js:4421 #: converse.js:4576
msgid "Log In" msgid "Log In"
msgstr "Log In" msgstr "Log In"
#: converse.js:4428 #: converse.js:4583
msgid "Sign in" msgid "Sign in"
msgstr "Sign in" msgstr "Sign in"
#: converse.js:4488 #: converse.js:4643
msgid "Toggle chat" msgid "Toggle chat"
msgstr "" msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Converse.js 0.4\n" "Project-Id-Version: Converse.js 0.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-09-22 17:23+0200\n" "POT-Creation-Date: 2014-11-15 16:36+0100\n"
"PO-Revision-Date: 2013-09-15 21:58+0200\n" "PO-Revision-Date: 2013-09-15 21:58+0200\n"
"Language-Team: FR <LL@li.org>\n" "Language-Team: FR <LL@li.org>\n"
"Language: fr\n" "Language: fr\n"
@ -20,197 +20,197 @@ msgstr ""
"Domain: converse\n" "Domain: converse\n"
"domain: converse\n" "domain: converse\n"
#: converse.js:338 #: converse.js:316
msgid "unencrypted" msgid "unencrypted"
msgstr "" msgstr ""
#: converse.js:339 #: converse.js:317
msgid "unverified" msgid "unverified"
msgstr "" msgstr ""
#: converse.js:340 #: converse.js:318
msgid "verified" msgid "verified"
msgstr "" msgstr ""
#: converse.js:341 #: converse.js:319
msgid "finished" msgid "finished"
msgstr "" msgstr ""
#: converse.js:344 #: converse.js:322
msgid "This contact is busy" msgid "This contact is busy"
msgstr "" msgstr ""
#: converse.js:345 #: converse.js:323
msgid "This contact is online" msgid "This contact is online"
msgstr "" msgstr ""
#: converse.js:346 #: converse.js:324
msgid "This contact is offline" msgid "This contact is offline"
msgstr "" msgstr ""
#: converse.js:347 #: converse.js:325
#, fuzzy #, fuzzy
msgid "This contact is unavailable" msgid "This contact is unavailable"
msgstr "Ce salon affiche maintenant des membres indisponibles" msgstr "Ce salon affiche maintenant des membres indisponibles"
#: converse.js:348 #: converse.js:326
msgid "This contact is away for an extended period" msgid "This contact is away for an extended period"
msgstr "" msgstr ""
#: converse.js:349 #: converse.js:327
msgid "This contact is away" msgid "This contact is away"
msgstr "" msgstr ""
#: converse.js:351 #: converse.js:329
#, fuzzy #, fuzzy
msgid "Click to hide these contacts" msgid "Click to hide these contacts"
msgstr "Cliquez pour supprimer ce contact" msgstr "Cliquez pour supprimer ce contact"
#: converse.js:353 #: converse.js:331
msgid "My contacts" msgid "My contacts"
msgstr "Mes contacts" msgstr "Mes contacts"
#: converse.js:354 #: converse.js:332
msgid "Pending contacts" msgid "Pending contacts"
msgstr "Contacts en attente" msgstr "Contacts en attente"
#: converse.js:355 #: converse.js:333
msgid "Contact requests" msgid "Contact requests"
msgstr "Demandes de contacts" msgstr "Demandes de contacts"
#: converse.js:356 #: converse.js:334
msgid "Ungrouped" msgid "Ungrouped"
msgstr "" msgstr ""
#: converse.js:358 #: converse.js:336
msgid "Contacts" msgid "Contacts"
msgstr "Contacts" msgstr "Contacts"
#: converse.js:359 #: converse.js:337
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
#: converse.js:441 #: converse.js:419
#, fuzzy #, fuzzy
msgid "Reconnecting" msgid "Reconnecting"
msgstr "Connection" msgstr "Connection"
#: converse.js:476 #: converse.js:454
msgid "Disconnected" msgid "Disconnected"
msgstr "Déconnecté" msgstr "Déconnecté"
#: converse.js:484 #: converse.js:462
msgid "Error" msgid "Error"
msgstr "Erreur" msgstr "Erreur"
#: converse.js:486 #: converse.js:464
msgid "Connecting" msgid "Connecting"
msgstr "Connection" msgstr "Connection"
#: converse.js:489 #: converse.js:467
msgid "Connection Failed" msgid "Connection Failed"
msgstr "La connection a échoué" msgstr "La connection a échoué"
#: converse.js:491 #: converse.js:469
msgid "Authenticating" msgid "Authenticating"
msgstr "Authentification" msgstr "Authentification"
#: converse.js:494 #: converse.js:472
msgid "Authentication Failed" msgid "Authentication Failed"
msgstr "L'authentification a échoué" msgstr "L'authentification a échoué"
#: converse.js:499 #: converse.js:477
msgid "Disconnecting" msgid "Disconnecting"
msgstr "Déconnection" msgstr "Déconnection"
#: converse.js:638 converse.js:684 #: converse.js:617 converse.js:669
msgid "Online Contacts" msgid "Online Contacts"
msgstr "Contacts en ligne" msgstr "Contacts en ligne"
#: converse.js:802 #: converse.js:787
msgid "Re-establishing encrypted session" msgid "Re-establishing encrypted session"
msgstr "" msgstr ""
#: converse.js:814 #: converse.js:799
msgid "Generating private key." msgid "Generating private key."
msgstr "" msgstr ""
#: converse.js:815 #: converse.js:800
msgid "Your browser might become unresponsive." msgid "Your browser might become unresponsive."
msgstr "" msgstr ""
#: converse.js:850 #: converse.js:835
msgid "" msgid ""
"Authentication request from %1$s\n" "Authentication request from %1$s\n"
"\n" "\n"
"Your buddy is attempting to verify your identity, by asking you the question " "Your chat contact is attempting to verify your identity, by asking you the "
"below.\n" "question below.\n"
"\n" "\n"
"%2$s" "%2$s"
msgstr "" msgstr ""
#: converse.js:859 #: converse.js:844
msgid "Could not verify this user's identify." msgid "Could not verify this user's identify."
msgstr "" msgstr ""
#: converse.js:898 #: converse.js:883
msgid "Exchanging private key with buddy." msgid "Exchanging private key with contact."
msgstr "" msgstr ""
#: converse.js:1045 #: converse.js:1036
msgid "Personal message" msgid "Personal message"
msgstr "Message personnel" msgstr "Message personnel"
#: converse.js:1077 #: converse.js:1068
#, fuzzy #, fuzzy
msgid "Are you sure you want to clear the messages from this room?" msgid "Are you sure you want to clear the messages from this room?"
msgstr "Vous n'êtes pas dans la liste des membres de ce salon" msgstr "Vous n'êtes pas dans la liste des membres de ce salon"
#: converse.js:1099 #: converse.js:1090
msgid "me" msgid "me"
msgstr "" msgstr ""
#: converse.js:1154 #: converse.js:1144
msgid "is typing" msgid "is typing"
msgstr "" msgstr ""
#: converse.js:1157 #: converse.js:1147
msgid "has stopped typing" msgid "has stopped typing"
msgstr "" msgstr ""
#: converse.js:1199 converse.js:2331 #: converse.js:1189 converse.js:2360
msgid "Show this menu" msgid "Show this menu"
msgstr "Afficher ce menu" msgstr "Afficher ce menu"
#: converse.js:1200 #: converse.js:1190
msgid "Write in the third person" msgid "Write in the third person"
msgstr "Écrire à la troisième personne" msgstr "Écrire à la troisième personne"
#: converse.js:1201 converse.js:2330 #: converse.js:1191 converse.js:2359
msgid "Remove messages" msgid "Remove messages"
msgstr "Effacer les messages" msgstr "Effacer les messages"
#: converse.js:1285 #: converse.js:1275
msgid "Are you sure you want to clear the messages from this chat box?" msgid "Are you sure you want to clear the messages from this chat box?"
msgstr "" msgstr ""
#: converse.js:1320 #: converse.js:1310
msgid "Your message could not be sent" msgid "Your message could not be sent"
msgstr "" msgstr ""
#: converse.js:1323 #: converse.js:1313
msgid "We received an unencrypted message" msgid "We received an unencrypted message"
msgstr "" msgstr ""
#: converse.js:1326 #: converse.js:1316
msgid "We received an unreadable encrypted message" msgid "We received an unreadable encrypted message"
msgstr "" msgstr ""
#: converse.js:1335 #: converse.js:1325
msgid "This user has requested an encrypted session." msgid "This user has requested an encrypted session."
msgstr "" msgstr ""
#: converse.js:1357 #: converse.js:1347
msgid "" msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this " "Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n" "chat.\n"
@ -223,400 +223,400 @@ msgid ""
"Cancel." "Cancel."
msgstr "" msgstr ""
#: converse.js:1370 #: converse.js:1360
msgid "" msgid ""
"You will be prompted to provide a security question and then an answer to " "You will be prompted to provide a security question and then an answer to "
"that question.\n" "that question.\n"
"\n" "\n"
"Your buddy will then be prompted the same question and if they type the " "Your contact will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will be verified." "exact same answer (case sensitive), their identity will be verified."
msgstr "" msgstr ""
#: converse.js:1371 #: converse.js:1361
msgid "What is your security question?" msgid "What is your security question?"
msgstr "" msgstr ""
#: converse.js:1373 #: converse.js:1363
msgid "What is the answer to the security question?" msgid "What is the answer to the security question?"
msgstr "" msgstr ""
#: converse.js:1377 #: converse.js:1367
msgid "Invalid authentication scheme provided" msgid "Invalid authentication scheme provided"
msgstr "" msgstr ""
#: converse.js:1488 #: converse.js:1482
msgid "Your messages are not encrypted anymore" msgid "Your messages are not encrypted anymore"
msgstr "" msgstr ""
#: converse.js:1490 #: converse.js:1484
msgid "" msgid ""
"Your messages are now encrypted but your buddy's identity has not been " "Your messages are now encrypted but your contact's identity has not been "
"verified." "verified."
msgstr "" msgstr ""
#: converse.js:1492 #: converse.js:1486
msgid "Your buddy's identify has been verified." msgid "Your contact's identify has been verified."
msgstr "" msgstr ""
#: converse.js:1494 #: converse.js:1488
msgid "Your buddy has ended encryption on their end, you should do the same." msgid "Your contact has ended encryption on their end, you should do the same."
msgstr "" msgstr ""
#: converse.js:1503 #: converse.js:1497
msgid "Your messages are not encrypted. Click here to enable OTR encryption." msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr "" msgstr ""
#: converse.js:1505 #: converse.js:1499
msgid "Your messages are encrypted, but your buddy has not been verified." msgid "Your messages are encrypted, but your contact has not been verified."
msgstr "" msgstr ""
#: converse.js:1507 #: converse.js:1501
msgid "Your messages are encrypted and your buddy verified." msgid "Your messages are encrypted and your contact verified."
msgstr "" msgstr ""
#: converse.js:1509 #: converse.js:1503
msgid "" msgid ""
"Your buddy has closed their end of the private session, you should do the " "Your contact has closed their end of the private session, you should do the "
"same" "same"
msgstr "" msgstr ""
#: converse.js:1519 #: converse.js:1513
#, fuzzy #, fuzzy
msgid "Clear all messages" msgid "Clear all messages"
msgstr "Message personnel" msgstr "Message personnel"
#: converse.js:1520 #: converse.js:1514
msgid "End encrypted conversation" msgid "End encrypted conversation"
msgstr "" msgstr ""
#: converse.js:1521 #: converse.js:1515
msgid "Hide the list of participants" msgid "Hide the list of participants"
msgstr "" msgstr ""
#: converse.js:1522 #: converse.js:1516
msgid "Refresh encrypted conversation" msgid "Refresh encrypted conversation"
msgstr "" msgstr ""
#: converse.js:1523 #: converse.js:1517
msgid "Start a call" msgid "Start a call"
msgstr "" msgstr ""
#: converse.js:1524 #: converse.js:1518
msgid "Start encrypted conversation" msgid "Start encrypted conversation"
msgstr "" msgstr ""
#: converse.js:1525 #: converse.js:1519
msgid "Verify with fingerprints" msgid "Verify with fingerprints"
msgstr "" msgstr ""
#: converse.js:1526 #: converse.js:1520
msgid "Verify with SMP" msgid "Verify with SMP"
msgstr "" msgstr ""
#: converse.js:1527 #: converse.js:1521
msgid "What's this?" msgid "What's this?"
msgstr "" msgstr ""
#: converse.js:1618 #: converse.js:1612
msgid "Online" msgid "Online"
msgstr "En ligne" msgstr "En ligne"
#: converse.js:1619 #: converse.js:1613
msgid "Busy" msgid "Busy"
msgstr "Occupé" msgstr "Occupé"
#: converse.js:1620 #: converse.js:1614
msgid "Away" msgid "Away"
msgstr "Absent" msgstr "Absent"
#: converse.js:1621 #: converse.js:1615
msgid "Offline" msgid "Offline"
msgstr "Déconnecté" msgstr "Déconnecté"
#: converse.js:1622 #: converse.js:1616
#, fuzzy #, fuzzy
msgid "Log out" msgid "Log out"
msgstr "Se connecter" msgstr "Se connecter"
#: converse.js:1628 #: converse.js:1622
msgid "Contact name" msgid "Contact name"
msgstr "Nom du contact" msgstr "Nom du contact"
#: converse.js:1629 #: converse.js:1623
msgid "Search" msgid "Search"
msgstr "Rechercher" msgstr "Rechercher"
#: converse.js:1633 #: converse.js:1627
msgid "Contact username" msgid "Contact username"
msgstr "Nom du contact" msgstr "Nom du contact"
#: converse.js:1634 #: converse.js:1628
msgid "Add" msgid "Add"
msgstr "Ajouter" msgstr "Ajouter"
#: converse.js:1639 #: converse.js:1633
msgid "Click to add new chat contacts" msgid "Click to add new chat contacts"
msgstr "Cliquez pour ajouter de nouveaux contacts" msgstr "Cliquez pour ajouter de nouveaux contacts"
#: converse.js:1640 #: converse.js:1634
msgid "Add a contact" msgid "Add a contact"
msgstr "Ajouter un contact" msgstr "Ajouter un contact"
#: converse.js:1664 #: converse.js:1658
msgid "No users found" msgid "No users found"
msgstr "Aucun utilisateur trouvé" msgstr "Aucun utilisateur trouvé"
#: converse.js:1670 #: converse.js:1664
msgid "Click to add as a chat contact" msgid "Click to add as a chat contact"
msgstr "Cliquer pour ajouter aux contacts de chat" msgstr "Cliquer pour ajouter aux contacts de chat"
#: converse.js:1725 #: converse.js:1727
msgid "Room name" msgid "Room name"
msgstr "Numéro de salon" msgstr "Numéro de salon"
#: converse.js:1726 #: converse.js:1728
msgid "Nickname" msgid "Nickname"
msgstr "Alias" msgstr "Alias"
#: converse.js:1727 #: converse.js:1729
msgid "Server" msgid "Server"
msgstr "Serveur" msgstr "Serveur"
#: converse.js:1728 #: converse.js:1730
msgid "Join" msgid "Join"
msgstr "Rejoindre" msgstr "Rejoindre"
#: converse.js:1729 #: converse.js:1731
msgid "Show rooms" msgid "Show rooms"
msgstr "Afficher les salons" msgstr "Afficher les salons"
#: converse.js:1749 #: converse.js:1735
msgid "Rooms" msgid "Rooms"
msgstr "Salons" msgstr "Salons"
#. For translators: %1$s is a variable and will be replaced with the XMPP server name #. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:1756 #: converse.js:1755
msgid "No rooms on %1$s" msgid "No rooms on %1$s"
msgstr "Aucun salon dans %1$s" msgstr "Aucun salon dans %1$s"
#. For translators: %1$s is a variable and will be #. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name #. replaced with the XMPP server name
#: converse.js:1771 #: converse.js:1770
msgid "Rooms on %1$s" msgid "Rooms on %1$s"
msgstr "Salons dans %1$s" msgstr "Salons dans %1$s"
#: converse.js:1780 #: converse.js:1779
msgid "Click to open this room" msgid "Click to open this room"
msgstr "Cliquer pour ouvrir ce salon" msgstr "Cliquer pour ouvrir ce salon"
#: converse.js:1781 #: converse.js:1780
msgid "Show more information on this room" msgid "Show more information on this room"
msgstr "Afficher davantage d'informations sur ce salon" msgstr "Afficher davantage d'informations sur ce salon"
#: converse.js:1843 #: converse.js:1842
msgid "Description:" msgid "Description:"
msgstr "Description :" msgstr "Description :"
#: converse.js:1844 #: converse.js:1843
msgid "Occupants:" msgid "Occupants:"
msgstr "Participants :" msgstr "Participants :"
#: converse.js:1845 #: converse.js:1844
msgid "Features:" msgid "Features:"
msgstr "Caractéristiques :" msgstr "Caractéristiques :"
#: converse.js:1846 #: converse.js:1845
msgid "Requires authentication" msgid "Requires authentication"
msgstr "Nécessite une authentification" msgstr "Nécessite une authentification"
#: converse.js:1847 #: converse.js:1846
msgid "Hidden" msgid "Hidden"
msgstr "Masqué" msgstr "Masqué"
#: converse.js:1848 #: converse.js:1847
msgid "Requires an invitation" msgid "Requires an invitation"
msgstr "Nécessite une invitation" msgstr "Nécessite une invitation"
#: converse.js:1849 #: converse.js:1848
msgid "Moderated" msgid "Moderated"
msgstr "Modéré" msgstr "Modéré"
#: converse.js:1850 #: converse.js:1849
msgid "Non-anonymous" msgid "Non-anonymous"
msgstr "Non-anonyme" msgstr "Non-anonyme"
#: converse.js:1851 #: converse.js:1850
msgid "Open room" msgid "Open room"
msgstr "Ouvrir un salon" msgstr "Ouvrir un salon"
#: converse.js:1852 #: converse.js:1851
msgid "Permanent room" msgid "Permanent room"
msgstr "Salon permanent" msgstr "Salon permanent"
#: converse.js:1853 #: converse.js:1852
msgid "Public" msgid "Public"
msgstr "Public" msgstr "Public"
#: converse.js:1854 #: converse.js:1853
msgid "Semi-anonymous" msgid "Semi-anonymous"
msgstr "Semi-anonyme" msgstr "Semi-anonyme"
#: converse.js:1855 #: converse.js:1854
msgid "Temporary room" msgid "Temporary room"
msgstr "Salon temporaire" msgstr "Salon temporaire"
#: converse.js:1856 #: converse.js:1855
msgid "Unmoderated" msgid "Unmoderated"
msgstr "Non modéré" msgstr "Non modéré"
#: converse.js:2085 #: converse.js:2108
msgid "This user is a moderator" msgid "This user is a moderator"
msgstr "Cet utilisateur est modérateur" msgstr "Cet utilisateur est modérateur"
#: converse.js:2086 #: converse.js:2109
msgid "This user can send messages in this room" msgid "This user can send messages in this room"
msgstr "Cet utilisateur peut envoyer des messages dans ce salon" msgstr "Cet utilisateur peut envoyer des messages dans ce salon"
#: converse.js:2087 #: converse.js:2110
msgid "This user can NOT send messages in this room" msgid "This user can NOT send messages in this room"
msgstr "Cet utilisateur ne peut PAS envoyer de messages dans ce salon" msgstr "Cet utilisateur ne peut PAS envoyer de messages dans ce salon"
#: converse.js:2119 #: converse.js:2142
msgid "Invite..." msgid "Invite..."
msgstr "" msgstr ""
#: converse.js:2120 #: converse.js:2143
#, fuzzy #, fuzzy
msgid "Occupants" msgid "Occupants"
msgstr "Participants :" msgstr "Participants :"
#: converse.js:2185 #: converse.js:2208
msgid "You are about to invite %1$s to the chat room \"%2$s\". " msgid "You are about to invite %1$s to the chat room \"%2$s\". "
msgstr "" msgstr ""
#: converse.js:2186 #: converse.js:2209
msgid "" msgid ""
"You may optionally include a message, explaining the reason for the " "You may optionally include a message, explaining the reason for the "
"invitation." "invitation."
msgstr "" msgstr ""
#: converse.js:2269 #: converse.js:2292
msgid "Message" msgid "Message"
msgstr "Message" msgstr "Message"
#: converse.js:2307 #: converse.js:2328
msgid "Error: could not execute the command" msgid "Error: could not execute the command"
msgstr "" msgstr ""
#: converse.js:2329 #: converse.js:2358
#, fuzzy #, fuzzy
msgid "Ban user from room" msgid "Ban user from room"
msgstr "Bannir l'utilisateur du salon." msgstr "Bannir l'utilisateur du salon."
#: converse.js:2332 #: converse.js:2361
#, fuzzy #, fuzzy
msgid "Kick user from room" msgid "Kick user from room"
msgstr "Expulser l'utilisateur du salon." msgstr "Expulser l'utilisateur du salon."
#: converse.js:2333 #: converse.js:2362
#, fuzzy #, fuzzy
msgid "Write in 3rd person" msgid "Write in 3rd person"
msgstr "Écrire à la troisième personne" msgstr "Écrire à la troisième personne"
#: converse.js:2334 #: converse.js:2363
msgid "Remove user's ability to post messages" msgid "Remove user's ability to post messages"
msgstr "" msgstr ""
#: converse.js:2335 #: converse.js:2364
msgid "Change your nickname" msgid "Change your nickname"
msgstr "" msgstr ""
#: converse.js:2336 #: converse.js:2365
#, fuzzy #, fuzzy
msgid "Set room topic" msgid "Set room topic"
msgstr "Indiquer le sujet du salon" msgstr "Indiquer le sujet du salon"
#: converse.js:2337 #: converse.js:2366
msgid "Allow muted user to post messages" msgid "Allow muted user to post messages"
msgstr "" msgstr ""
#: converse.js:2441 converse.js:4262 #: converse.js:2489 converse.js:4417
msgid "Save" msgid "Save"
msgstr "Enregistrer" msgstr "Enregistrer"
#: converse.js:2442 #: converse.js:2490
msgid "Cancel" msgid "Cancel"
msgstr "Annuler" msgstr "Annuler"
#: converse.js:2487 #: converse.js:2544
msgid "An error occurred while trying to save the form." msgid "An error occurred while trying to save the form."
msgstr "Une erreur est survenue lors de l'enregistrement du formulaire." msgstr "Une erreur est survenue lors de l'enregistrement du formulaire."
#: converse.js:2531 #: converse.js:2588
msgid "This chatroom requires a password" msgid "This chatroom requires a password"
msgstr "Ce salon nécessite un mot de passe." msgstr "Ce salon nécessite un mot de passe."
#: converse.js:2532 #: converse.js:2589
msgid "Password: " msgid "Password: "
msgstr "Mot de passe : " msgstr "Mot de passe : "
#: converse.js:2533 #: converse.js:2590
msgid "Submit" msgid "Submit"
msgstr "Soumettre" msgstr "Soumettre"
#: converse.js:2568 #: converse.js:2625
msgid "This room is not anonymous" msgid "This room is not anonymous"
msgstr "Ce salon n'est pas anonyme" msgstr "Ce salon n'est pas anonyme"
#: converse.js:2569 #: converse.js:2626
msgid "This room now shows unavailable members" msgid "This room now shows unavailable members"
msgstr "Ce salon affiche maintenant des membres indisponibles" msgstr "Ce salon affiche maintenant des membres indisponibles"
#: converse.js:2570 #: converse.js:2627
msgid "This room does not show unavailable members" msgid "This room does not show unavailable members"
msgstr "Ce salon n'affiche pas les membres indisponibles" msgstr "Ce salon n'affiche pas les membres indisponibles"
#: converse.js:2571 #: converse.js:2628
msgid "Non-privacy-related room configuration has changed" msgid "Non-privacy-related room configuration has changed"
msgstr "Les paramètres du salon non liés à la confidentialité ont été modifiés" msgstr "Les paramètres du salon non liés à la confidentialité ont été modifiés"
#: converse.js:2572 #: converse.js:2629
msgid "Room logging is now enabled" msgid "Room logging is now enabled"
msgstr "Le logging du salon est activé" msgstr "Le logging du salon est activé"
#: converse.js:2573 #: converse.js:2630
msgid "Room logging is now disabled" msgid "Room logging is now disabled"
msgstr "Le logging du salon est désactivé" msgstr "Le logging du salon est désactivé"
#: converse.js:2574 #: converse.js:2631
msgid "This room is now non-anonymous" msgid "This room is now non-anonymous"
msgstr "Ce salon est maintenant non-anonyme" msgstr "Ce salon est maintenant non-anonyme"
#: converse.js:2575 #: converse.js:2632
msgid "This room is now semi-anonymous" msgid "This room is now semi-anonymous"
msgstr "Ce salon est maintenant semi-anonyme" msgstr "Ce salon est maintenant semi-anonyme"
#: converse.js:2576 #: converse.js:2633
msgid "This room is now fully-anonymous" msgid "This room is now fully-anonymous"
msgstr "Ce salon est maintenant entièrement anonyme" msgstr "Ce salon est maintenant entièrement anonyme"
#: converse.js:2577 #: converse.js:2634
msgid "A new room has been created" msgid "A new room has been created"
msgstr "Un nouveau salon a été créé" msgstr "Un nouveau salon a été créé"
#: converse.js:2581 converse.js:2681 #: converse.js:2638 converse.js:2738
msgid "You have been banned from this room" msgid "You have been banned from this room"
msgstr "Vous avez été banni de ce salon" msgstr "Vous avez été banni de ce salon"
#: converse.js:2582 #: converse.js:2639
msgid "You have been kicked from this room" msgid "You have been kicked from this room"
msgstr "Vous avez été expulsé de ce salon" msgstr "Vous avez été expulsé de ce salon"
#: converse.js:2583 #: converse.js:2640
msgid "You have been removed from this room because of an affiliation change" 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" msgstr "Vous avez été retiré de ce salon du fait d'un changement d'affiliation"
#: converse.js:2584 #: converse.js:2641
msgid "" msgid ""
"You have been removed from this room because the room has changed to members-" "You have been removed from this room because the room has changed to members-"
"only and you're not a member" "only and you're not a member"
@ -624,7 +624,7 @@ msgstr ""
"Vous avez été retiré de ce salon parce que ce salon est devenu réservé aux " "Vous avez été retiré de ce salon parce que ce salon est devenu réservé aux "
"membres et vous n'êtes pas membre" "membres et vous n'êtes pas membre"
#: converse.js:2585 #: converse.js:2642
msgid "" msgid ""
"You have been removed from this room because the MUC (Multi-user chat) " "You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down." "service is being shut down."
@ -632,176 +632,176 @@ msgstr ""
"Vous avez été retiré de ce salon parce que le service de chat multi-" "Vous avez été retiré de ce salon parce que le service de chat multi-"
"utilisateur a été désactivé." "utilisateur a été désactivé."
#: converse.js:2599 #: converse.js:2656
msgid "<strong>%1$s</strong> has been banned" msgid "<strong>%1$s</strong> has been banned"
msgstr "<strong>%1$s</strong> a été banni" msgstr "<strong>%1$s</strong> a été banni"
#: converse.js:2600 #: converse.js:2657
#, fuzzy #, fuzzy
msgid "<strong>%1$s</strong>'s nickname has changed" msgid "<strong>%1$s</strong>'s nickname has changed"
msgstr "<strong>%1$s</strong> a été banni" msgstr "<strong>%1$s</strong> a été banni"
#: converse.js:2601 #: converse.js:2658
msgid "<strong>%1$s</strong> has been kicked out" msgid "<strong>%1$s</strong> has been kicked out"
msgstr "<strong>%1$s</strong> a été expulsé" msgstr "<strong>%1$s</strong> a été expulsé"
#: converse.js:2602 #: converse.js:2659
msgid "<strong>%1$s</strong> has been removed because of an affiliation change" msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr "" msgstr ""
"<strong>%1$s</strong> a été supprimé à cause d'un changement d'affiliation" "<strong>%1$s</strong> a été supprimé à cause d'un changement d'affiliation"
#: converse.js:2603 #: converse.js:2660
msgid "<strong>%1$s</strong> has been removed for not being a member" 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" msgstr "<strong>%1$s</strong> a été supprimé car il n'est pas membre"
#: converse.js:2607 #: converse.js:2664
#, fuzzy #, fuzzy
msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>" msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>"
msgstr "Votre alias a été modifié" msgstr "Votre alias a été modifié"
#: converse.js:2608 #: converse.js:2665
#, fuzzy #, fuzzy
msgid "Your nickname has been changed to: <strong>%1$s</strong>" msgid "Your nickname has been changed to: <strong>%1$s</strong>"
msgstr "Votre alias a été modifié" msgstr "Votre alias a été modifié"
#: converse.js:2656 converse.js:2666 #: converse.js:2713 converse.js:2723
msgid "The reason given is: \"" msgid "The reason given is: \""
msgstr "" msgstr ""
#: converse.js:2679 #: converse.js:2736
msgid "You are not on the member list of this room" msgid "You are not on the member list of this room"
msgstr "Vous n'êtes pas dans la liste des membres de ce salon" msgstr "Vous n'êtes pas dans la liste des membres de ce salon"
#: converse.js:2685 #: converse.js:2742
msgid "No nickname was specified" msgid "No nickname was specified"
msgstr "Aucun alias n'a été indiqué" msgstr "Aucun alias n'a été indiqué"
#: converse.js:2689 #: converse.js:2746
msgid "You are not allowed to create new rooms" msgid "You are not allowed to create new rooms"
msgstr "Vous n'êtes pas autorisé à créer des salons" msgstr "Vous n'êtes pas autorisé à créer des salons"
#: converse.js:2691 #: converse.js:2748
msgid "Your nickname doesn't conform to this room's policies" msgid "Your nickname doesn't conform to this room's policies"
msgstr "Votre alias n'est pas conforme à la politique de ce salon" msgstr "Votre alias n'est pas conforme à la politique de ce salon"
#: converse.js:2695 #: converse.js:2752
msgid "Your nickname is already taken" msgid "Your nickname is already taken"
msgstr "Votre alias est déjà utilisé" msgstr "Votre alias est déjà utilisé"
#: converse.js:2697 #: converse.js:2754
msgid "This room does not (yet) exist" msgid "This room does not (yet) exist"
msgstr "Ce salon n'existe pas encore" msgstr "Ce salon n'existe pas encore"
#: converse.js:2699 #: converse.js:2756
msgid "This room has reached it's maximum number of occupants" msgid "This room has reached it's maximum number of occupants"
msgstr "Ce salon a atteint la limite maximale d'occupants" msgstr "Ce salon a atteint la limite maximale d'occupants"
#: converse.js:2736 #: converse.js:2798
msgid "Topic set by %1$s to: %2$s" msgid "Topic set by %1$s to: %2$s"
msgstr "Le sujet '%1$s' a été défini par %2$s" msgstr "Le sujet '%1$s' a été défini par %2$s"
#: converse.js:2818 #: converse.js:2880
msgid "%1$s has invited you to join a chat room: %2$s" msgid "%1$s has invited you to join a chat room: %2$s"
msgstr "" msgstr ""
#: converse.js:2822 #: converse.js:2884
msgid "" msgid ""
"%1$s has invited you to join a chat room: %2$s, and left the following " "%1$s has invited you to join a chat room: %2$s, and left the following "
"reason: \"%3$s\"" "reason: \"%3$s\""
msgstr "" msgstr ""
#: converse.js:3058 #: converse.js:3140
#, fuzzy #, fuzzy
msgid "Click to restore this chat" msgid "Click to restore this chat"
msgstr "Cliquez pour supprimer ce contact" msgstr "Cliquez pour supprimer ce contact"
#: converse.js:3202 #: converse.js:3285
msgid "Minimized" msgid "Minimized"
msgstr "" msgstr ""
#: converse.js:3274 #: converse.js:3381 converse.js:3399
#, fuzzy
msgid "Are you sure you want to remove this contact?"
msgstr "Cliquez pour supprimer ce contact"
#: converse.js:3297
#, fuzzy
msgid "Are you sure you want to decline this contact request?"
msgstr "Cliquez pour supprimer ce contact"
#: converse.js:3341 converse.js:3359
msgid "Click to remove this contact" msgid "Click to remove this contact"
msgstr "Cliquez pour supprimer ce contact" msgstr "Cliquez pour supprimer ce contact"
#: converse.js:3348 #: converse.js:3388
#, fuzzy #, fuzzy
msgid "Click to accept this contact request" msgid "Click to accept this contact request"
msgstr "Cliquez pour supprimer ce contact" msgstr "Cliquez pour supprimer ce contact"
#: converse.js:3349 #: converse.js:3389
#, fuzzy #, fuzzy
msgid "Click to decline this contact request" msgid "Click to decline this contact request"
msgstr "Cliquez pour supprimer ce contact" msgstr "Cliquez pour supprimer ce contact"
#: converse.js:3358 #: converse.js:3398
msgid "Click to chat with this contact" msgid "Click to chat with this contact"
msgstr "Cliquez pour discuter avec ce contact" msgstr "Cliquez pour discuter avec ce contact"
#: converse.js:3874 #: converse.js:3423
#, fuzzy
msgid "Are you sure you want to remove this contact?"
msgstr "Cliquez pour supprimer ce contact"
#: converse.js:3446
#, fuzzy
msgid "Are you sure you want to decline this contact request?"
msgstr "Cliquez pour supprimer ce contact"
#: converse.js:3972
msgid "Type to filter" msgid "Type to filter"
msgstr "" msgstr ""
#. For translators: the %1$s part gets replaced with the status #. For translators: the %1$s part gets replaced with the status
#. Example, I am online #. Example, I am online
#: converse.js:4233 converse.js:4310 #: converse.js:4388 converse.js:4465
msgid "I am %1$s" msgid "I am %1$s"
msgstr "Je suis %1$s" msgstr "Je suis %1$s"
#: converse.js:4235 converse.js:4315 #: converse.js:4390 converse.js:4470
msgid "Click here to write a custom status message" msgid "Click here to write a custom status message"
msgstr "Cliquez ici pour indiquer votre statut personnel" msgstr "Cliquez ici pour indiquer votre statut personnel"
#: converse.js:4236 converse.js:4316 #: converse.js:4391 converse.js:4471
msgid "Click to change your chat status" msgid "Click to change your chat status"
msgstr "Cliquez pour changer votre statut" msgstr "Cliquez pour changer votre statut"
#: converse.js:4261 #: converse.js:4416
msgid "Custom status" msgid "Custom status"
msgstr "Statut personnel" msgstr "Statut personnel"
#: converse.js:4290 converse.js:4298 #: converse.js:4445 converse.js:4453
msgid "online" msgid "online"
msgstr "en ligne" msgstr "en ligne"
#: converse.js:4292 #: converse.js:4447
msgid "busy" msgid "busy"
msgstr "occupé" msgstr "occupé"
#: converse.js:4294 #: converse.js:4449
msgid "away for long" msgid "away for long"
msgstr "absent pour une longue durée" msgstr "absent pour une longue durée"
#: converse.js:4296 #: converse.js:4451
msgid "away" msgid "away"
msgstr "absent" msgstr "absent"
#: converse.js:4419 #: converse.js:4574
msgid "XMPP/Jabber Username:" msgid "XMPP/Jabber Username:"
msgstr "Nom d'utilisateur XMPP/Jabber" msgstr "Nom d'utilisateur XMPP/Jabber"
#: converse.js:4420 #: converse.js:4575
msgid "Password:" msgid "Password:"
msgstr "Mot de passe :" msgstr "Mot de passe :"
#: converse.js:4421 #: converse.js:4576
msgid "Log In" msgid "Log In"
msgstr "Se connecter" msgstr "Se connecter"
#: converse.js:4428 #: converse.js:4583
msgid "Sign in" msgid "Sign in"
msgstr "S'inscrire" msgstr "S'inscrire"
#: converse.js:4488 #: converse.js:4643
msgid "Toggle chat" msgid "Toggle chat"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Converse.js 0.8.1\n" "Project-Id-Version: Converse.js 0.8.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-09-22 17:23+0200\n" "POT-Creation-Date: 2014-11-15 16:36+0100\n"
"PO-Revision-Date: 2014-02-21 06:07+0200\n" "PO-Revision-Date: 2014-02-21 06:07+0200\n"
"Last-Translator: GreenLunar <GreenLunar@github.com>\n" "Last-Translator: GreenLunar <GreenLunar@github.com>\n"
"Language-Team: Rahut <http://sourceforge.net/projects/rahut/>\n" "Language-Team: Rahut <http://sourceforge.net/projects/rahut/>\n"
@ -18,130 +18,131 @@ msgstr ""
"X-Generator: Poedit 1.5.1\n" "X-Generator: Poedit 1.5.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: converse.js:338 #: converse.js:316
msgid "unencrypted" msgid "unencrypted"
msgstr "לא מוצפנת" msgstr "לא מוצפנת"
#: converse.js:339 #: converse.js:317
msgid "unverified" msgid "unverified"
msgstr "לא מאומתת" msgstr "לא מאומתת"
#: converse.js:340 #: converse.js:318
msgid "verified" msgid "verified"
msgstr "מאומתת" msgstr "מאומתת"
#: converse.js:341 #: converse.js:319
msgid "finished" msgid "finished"
msgstr "מוגמרת" msgstr "מוגמרת"
# איש קשר זה הינו # איש קשר זה הינו
#: converse.js:344 #: converse.js:322
msgid "This contact is busy" msgid "This contact is busy"
msgstr "איש קשר זה עסוק" msgstr "איש קשר זה עסוק"
#: converse.js:345 #: converse.js:323
msgid "This contact is online" msgid "This contact is online"
msgstr "איש קשר זה מקוון" msgstr "איש קשר זה מקוון"
# איש קשר זה אינו # איש קשר זה אינו
#: converse.js:346 #: converse.js:324
msgid "This contact is offline" msgid "This contact is offline"
msgstr "איש קשר זה לא מקוון" msgstr "איש קשר זה לא מקוון"
#: converse.js:347 #: converse.js:325
msgid "This contact is unavailable" msgid "This contact is unavailable"
msgstr "איש קשר זה לא זמין" msgstr "איש קשר זה לא זמין"
#: converse.js:348 #: converse.js:326
msgid "This contact is away for an extended period" msgid "This contact is away for an extended period"
msgstr "איש קשר זה נעדר למשך זמן ממושך" msgstr "איש קשר זה נעדר למשך זמן ממושך"
#: converse.js:349 #: converse.js:327
msgid "This contact is away" msgid "This contact is away"
msgstr "איש קשר זה הינו נעדר" msgstr "איש קשר זה הינו נעדר"
#: converse.js:351 #: converse.js:329
msgid "Click to hide these contacts" msgid "Click to hide these contacts"
msgstr "לחץ כדי להסתיר את אנשי קשר אלה" msgstr "לחץ כדי להסתיר את אנשי קשר אלה"
#: converse.js:353 #: converse.js:331
msgid "My contacts" msgid "My contacts"
msgstr "אנשי הקשר שלי" msgstr "אנשי הקשר שלי"
#: converse.js:354 #: converse.js:332
msgid "Pending contacts" msgid "Pending contacts"
msgstr "אנשי קשר ממתינים" msgstr "אנשי קשר ממתינים"
#: converse.js:355 #: converse.js:333
msgid "Contact requests" msgid "Contact requests"
msgstr "בקשות איש קשר" msgstr "בקשות איש קשר"
#: converse.js:356 #: converse.js:334
msgid "Ungrouped" msgid "Ungrouped"
msgstr "ללא קבוצה" msgstr "ללא קבוצה"
#: converse.js:358 #: converse.js:336
msgid "Contacts" msgid "Contacts"
msgstr "אנשי קשר" msgstr "אנשי קשר"
#: converse.js:359 #: converse.js:337
msgid "Groups" msgid "Groups"
msgstr "קבוצות" msgstr "קבוצות"
#: converse.js:441 #: converse.js:419
msgid "Reconnecting" msgid "Reconnecting"
msgstr "כעת מתחבר" msgstr "כעת מתחבר"
#: converse.js:476 #: converse.js:454
msgid "Disconnected" msgid "Disconnected"
msgstr "מנותק" msgstr "מנותק"
#: converse.js:484 #: converse.js:462
msgid "Error" msgid "Error"
msgstr "שגיאה" msgstr "שגיאה"
#: converse.js:486 #: converse.js:464
msgid "Connecting" msgid "Connecting"
msgstr "כעת מתחבר" msgstr "כעת מתחבר"
#: converse.js:489 #: converse.js:467
msgid "Connection Failed" msgid "Connection Failed"
msgstr "חיבור נכשל" msgstr "חיבור נכשל"
#: converse.js:491 #: converse.js:469
msgid "Authenticating" msgid "Authenticating"
msgstr "כעת מאמת" msgstr "כעת מאמת"
#: converse.js:494 #: converse.js:472
msgid "Authentication Failed" msgid "Authentication Failed"
msgstr "אימות נכשל" msgstr "אימות נכשל"
#: converse.js:499 #: converse.js:477
msgid "Disconnecting" msgid "Disconnecting"
msgstr "כעת מתנתק" msgstr "כעת מתנתק"
#: converse.js:638 converse.js:684 #: converse.js:617 converse.js:669
msgid "Online Contacts" msgid "Online Contacts"
msgstr "אנשי קשר מקוונים" msgstr "אנשי קשר מקוונים"
#: converse.js:802 #: converse.js:787
msgid "Re-establishing encrypted session" msgid "Re-establishing encrypted session"
msgstr "בסס מחדש ישיבה מוצפנת" msgstr "בסס מחדש ישיבה מוצפנת"
#: converse.js:814 #: converse.js:799
msgid "Generating private key." msgid "Generating private key."
msgstr "כעת מפיק מפתח פרטי." msgstr "כעת מפיק מפתח פרטי."
#: converse.js:815 #: converse.js:800
msgid "Your browser might become unresponsive." msgid "Your browser might become unresponsive."
msgstr "הדפדפן שלך עשוי שלא להגיב." msgstr "הדפדפן שלך עשוי שלא להגיב."
#: converse.js:850 #: converse.js:835
#, fuzzy
msgid "" msgid ""
"Authentication request from %1$s\n" "Authentication request from %1$s\n"
"\n" "\n"
"Your buddy is attempting to verify your identity, by asking you the question " "Your chat contact is attempting to verify your identity, by asking you the "
"below.\n" "question below.\n"
"\n" "\n"
"%2$s" "%2$s"
msgstr "" msgstr ""
@ -151,67 +152,68 @@ msgstr ""
"\n" "\n"
"%2$s" "%2$s"
#: converse.js:859 #: converse.js:844
msgid "Could not verify this user's identify." msgid "Could not verify this user's identify."
msgstr "לא היתה אפשרות לאמת את זהות משתמש זה." msgstr "לא היתה אפשרות לאמת את זהות משתמש זה."
#: converse.js:898 #: converse.js:883
msgid "Exchanging private key with buddy." #, fuzzy
msgid "Exchanging private key with contact."
msgstr "ממיר מפתח פרטי עם איש קשר." msgstr "ממיר מפתח פרטי עם איש קשר."
#: converse.js:1045 #: converse.js:1036
msgid "Personal message" msgid "Personal message"
msgstr "הודעה אישית" msgstr "הודעה אישית"
#: converse.js:1077 #: converse.js:1068
msgid "Are you sure you want to clear the messages from this room?" msgid "Are you sure you want to clear the messages from this room?"
msgstr "האם אתה בטוח כי ברצונך לטהר את ההודעות מתוך חדר זה?" msgstr "האם אתה בטוח כי ברצונך לטהר את ההודעות מתוך חדר זה?"
#: converse.js:1099 #: converse.js:1090
msgid "me" msgid "me"
msgstr "אני" msgstr "אני"
#: converse.js:1154 #: converse.js:1144
msgid "is typing" msgid "is typing"
msgstr "מקליד/ה כעת" msgstr "מקליד/ה כעת"
#: converse.js:1157 #: converse.js:1147
msgid "has stopped typing" msgid "has stopped typing"
msgstr "חדל/ה מלהקליד" msgstr "חדל/ה מלהקליד"
#: converse.js:1199 converse.js:2331 #: converse.js:1189 converse.js:2360
msgid "Show this menu" msgid "Show this menu"
msgstr "הצג את תפריט זה" msgstr "הצג את תפריט זה"
#: converse.js:1200 #: converse.js:1190
msgid "Write in the third person" msgid "Write in the third person"
msgstr "כתוב בגוף השלישי" msgstr "כתוב בגוף השלישי"
#: converse.js:1201 converse.js:2330 #: converse.js:1191 converse.js:2359
msgid "Remove messages" msgid "Remove messages"
msgstr "הסר הודעות" msgstr "הסר הודעות"
#: converse.js:1285 #: converse.js:1275
msgid "Are you sure you want to clear the messages from this chat box?" msgid "Are you sure you want to clear the messages from this chat box?"
msgstr "האם אתה בטוח כי ברצונך לטהר את ההודעות מתוך תיבת שיחה זה?" msgstr "האם אתה בטוח כי ברצונך לטהר את ההודעות מתוך תיבת שיחה זה?"
#: converse.js:1320 #: converse.js:1310
msgid "Your message could not be sent" msgid "Your message could not be sent"
msgstr "ההודעה שלך לא היתה יכולה להישלח" msgstr "ההודעה שלך לא היתה יכולה להישלח"
#: converse.js:1323 #: converse.js:1313
msgid "We received an unencrypted message" msgid "We received an unencrypted message"
msgstr "אנחנו קיבלנו הודעה לא מוצפנת" msgstr "אנחנו קיבלנו הודעה לא מוצפנת"
#: converse.js:1326 #: converse.js:1316
msgid "We received an unreadable encrypted message" msgid "We received an unreadable encrypted message"
msgstr "אנחנו קיבלנו הודעה מוצפנת לא קריאה" msgstr "אנחנו קיבלנו הודעה מוצפנת לא קריאה"
#: converse.js:1335 #: converse.js:1325
msgid "This user has requested an encrypted session." msgid "This user has requested an encrypted session."
msgstr "משתמש זה ביקש ישיבה מוצפנת." msgstr "משתמש זה ביקש ישיבה מוצפנת."
#: converse.js:1357 #: converse.js:1347
msgid "" msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this " "Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n" "chat.\n"
@ -232,12 +234,13 @@ msgstr ""
"היה ואימתת כי טביעות האצבע תואמות, לחץ אישור (OK), אחרת לחץ ביטול (Cancel)." "היה ואימתת כי טביעות האצבע תואמות, לחץ אישור (OK), אחרת לחץ ביטול (Cancel)."
# הקצה השני # הקצה השני
#: converse.js:1370 #: converse.js:1360
#, fuzzy
msgid "" msgid ""
"You will be prompted to provide a security question and then an answer to " "You will be prompted to provide a security question and then an answer to "
"that question.\n" "that question.\n"
"\n" "\n"
"Your buddy will then be prompted the same question and if they type the " "Your contact will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will be verified." "exact same answer (case sensitive), their identity will be verified."
msgstr "" msgstr ""
"אתה תתבקש לספק שאלת אבטחה ולאחריה תשובה לשאלה הזו.\n" "אתה תתבקש לספק שאלת אבטחה ולאחריה תשובה לשאלה הזו.\n"
@ -245,398 +248,404 @@ msgstr ""
"האישיות שכנגד תתבקש עובר זאת לאותה שאלת אבטחה ואם זו תקלידו את את אותה " "האישיות שכנגד תתבקש עובר זאת לאותה שאלת אבטחה ואם זו תקלידו את את אותה "
"התשובה במדויק (case sensitive), זהותה תאומת." "התשובה במדויק (case sensitive), זהותה תאומת."
#: converse.js:1371 #: converse.js:1361
msgid "What is your security question?" msgid "What is your security question?"
msgstr "מהי שאלת האבטחה שלך?" msgstr "מהי שאלת האבטחה שלך?"
#: converse.js:1373 #: converse.js:1363
msgid "What is the answer to the security question?" msgid "What is the answer to the security question?"
msgstr "מהי התשובה לשאלת האבטחה?" msgstr "מהי התשובה לשאלת האבטחה?"
# תרשים # תרשים
#: converse.js:1377 #: converse.js:1367
msgid "Invalid authentication scheme provided" msgid "Invalid authentication scheme provided"
msgstr "סופקה סכימת אימות שגויה" msgstr "סופקה סכימת אימות שגויה"
#: converse.js:1488 #: converse.js:1482
msgid "Your messages are not encrypted anymore" msgid "Your messages are not encrypted anymore"
msgstr "ההודעות שלך אינן מוצפנות עוד" msgstr "ההודעות שלך אינן מוצפנות עוד"
#: converse.js:1490 #: converse.js:1484
#, fuzzy
msgid "" msgid ""
"Your messages are now encrypted but your buddy's identity has not been " "Your messages are now encrypted but your contact's identity has not been "
"verified." "verified."
msgstr "ההודעות שלך מוצפנות כעת אך זהות האישיות שכנגד טרם אומתה." msgstr "ההודעות שלך מוצפנות כעת אך זהות האישיות שכנגד טרם אומתה."
#: converse.js:1492 #: converse.js:1486
msgid "Your buddy's identify has been verified." #, fuzzy
msgid "Your contact's identify has been verified."
msgstr "זהות האישיות שכנגד אומתה." msgstr "זהות האישיות שכנגד אומתה."
#: converse.js:1494 #: converse.js:1488
msgid "Your buddy has ended encryption on their end, you should do the same." #, fuzzy
msgid "Your contact has ended encryption on their end, you should do the same."
msgstr "האישיות שכנגד סיימה הצפנה בקצה שלה, עליך לעשות את אותו הדבר." msgstr "האישיות שכנגד סיימה הצפנה בקצה שלה, עליך לעשות את אותו הדבר."
#: converse.js:1503 #: converse.js:1497
msgid "Your messages are not encrypted. Click here to enable OTR encryption." msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr "ההודעות שלך אינן מוצפנות. לחץ כאן כדי לאפשר OTR." msgstr "ההודעות שלך אינן מוצפנות. לחץ כאן כדי לאפשר OTR."
#: converse.js:1505 #: converse.js:1499
msgid "Your messages are encrypted, but your buddy has not been verified." #, fuzzy
msgid "Your messages are encrypted, but your contact has not been verified."
msgstr "ההודעות שלך מוצפנות כעת, אך האישיות שכנגד טרם אומתה." msgstr "ההודעות שלך מוצפנות כעת, אך האישיות שכנגד טרם אומתה."
#: converse.js:1507 #: converse.js:1501
msgid "Your messages are encrypted and your buddy verified." #, fuzzy
msgid "Your messages are encrypted and your contact verified."
msgstr "ההודעות שלך מוצפנות כעת והאישיות שכנגד אומתה." msgstr "ההודעות שלך מוצפנות כעת והאישיות שכנגד אומתה."
#: converse.js:1509 #: converse.js:1503
#, fuzzy
msgid "" msgid ""
"Your buddy has closed their end of the private session, you should do the " "Your contact has closed their end of the private session, you should do the "
"same" "same"
msgstr "האישיות שכנגד סגרה את קצה הישיבה הפרטית שלה, עליך לעשות את אותו הדבר" msgstr "האישיות שכנגד סגרה את קצה הישיבה הפרטית שלה, עליך לעשות את אותו הדבר"
#: converse.js:1519 #: converse.js:1513
#, fuzzy #, fuzzy
msgid "Clear all messages" msgid "Clear all messages"
msgstr "הודעה אישית" msgstr "הודעה אישית"
#: converse.js:1520 #: converse.js:1514
msgid "End encrypted conversation" msgid "End encrypted conversation"
msgstr "סיים ישיבה מוצפנת" msgstr "סיים ישיבה מוצפנת"
#: converse.js:1521 #: converse.js:1515
msgid "Hide the list of participants" msgid "Hide the list of participants"
msgstr "" msgstr ""
#: converse.js:1522 #: converse.js:1516
msgid "Refresh encrypted conversation" msgid "Refresh encrypted conversation"
msgstr "רענן ישיבה מוצפנת" msgstr "רענן ישיבה מוצפנת"
#: converse.js:1523 #: converse.js:1517
msgid "Start a call" msgid "Start a call"
msgstr "" msgstr ""
#: converse.js:1524 #: converse.js:1518
msgid "Start encrypted conversation" msgid "Start encrypted conversation"
msgstr "התחל ישיבה מוצפנת" msgstr "התחל ישיבה מוצפנת"
#: converse.js:1525 #: converse.js:1519
msgid "Verify with fingerprints" msgid "Verify with fingerprints"
msgstr "אמת בעזרת טביעות אצבע" msgstr "אמת בעזרת טביעות אצבע"
#: converse.js:1526 #: converse.js:1520
msgid "Verify with SMP" msgid "Verify with SMP"
msgstr "אמת בעזרת SMP" msgstr "אמת בעזרת SMP"
#: converse.js:1527 #: converse.js:1521
msgid "What's this?" msgid "What's this?"
msgstr "מה זה?" msgstr "מה זה?"
#: converse.js:1618 #: converse.js:1612
msgid "Online" msgid "Online"
msgstr "מקוון" msgstr "מקוון"
#: converse.js:1619 #: converse.js:1613
msgid "Busy" msgid "Busy"
msgstr "עסוק" msgstr "עסוק"
#: converse.js:1620 #: converse.js:1614
msgid "Away" msgid "Away"
msgstr "נעדר" msgstr "נעדר"
#: converse.js:1621 #: converse.js:1615
msgid "Offline" msgid "Offline"
msgstr "בלתי מקוון" msgstr "בלתי מקוון"
#: converse.js:1622 #: converse.js:1616
#, fuzzy #, fuzzy
msgid "Log out" msgid "Log out"
msgstr "כניסה" msgstr "כניסה"
#: converse.js:1628 #: converse.js:1622
msgid "Contact name" msgid "Contact name"
msgstr "שם איש קשר" msgstr "שם איש קשר"
#: converse.js:1629 #: converse.js:1623
msgid "Search" msgid "Search"
msgstr "חיפוש" msgstr "חיפוש"
#: converse.js:1633 #: converse.js:1627
msgid "Contact username" msgid "Contact username"
msgstr "שם משתמש איש קשר" msgstr "שם משתמש איש קשר"
#: converse.js:1634 #: converse.js:1628
msgid "Add" msgid "Add"
msgstr "הוסף" msgstr "הוסף"
#: converse.js:1639 #: converse.js:1633
msgid "Click to add new chat contacts" msgid "Click to add new chat contacts"
msgstr "לחץ כדי להוסיף אנשי קשר שיחה חדשים" msgstr "לחץ כדי להוסיף אנשי קשר שיחה חדשים"
#: converse.js:1640 #: converse.js:1634
msgid "Add a contact" msgid "Add a contact"
msgstr "הוסף איש קשר" msgstr "הוסף איש קשר"
#: converse.js:1664 #: converse.js:1658
msgid "No users found" msgid "No users found"
msgstr "לא נמצאו משתמשים" msgstr "לא נמצאו משתמשים"
#: converse.js:1670 #: converse.js:1664
msgid "Click to add as a chat contact" msgid "Click to add as a chat contact"
msgstr "לחץ כדי להוסיף בתור איש קשר שיחה" msgstr "לחץ כדי להוסיף בתור איש קשר שיחה"
#: converse.js:1725 #: converse.js:1727
msgid "Room name" msgid "Room name"
msgstr "שם חדר" msgstr "שם חדר"
#: converse.js:1726 #: converse.js:1728
msgid "Nickname" msgid "Nickname"
msgstr "שם כינוי" msgstr "שם כינוי"
#: converse.js:1727 #: converse.js:1729
msgid "Server" msgid "Server"
msgstr "שרת" msgstr "שרת"
#: converse.js:1728 #: converse.js:1730
msgid "Join" msgid "Join"
msgstr "הצטרף" msgstr "הצטרף"
#: converse.js:1729 #: converse.js:1731
msgid "Show rooms" msgid "Show rooms"
msgstr "הצג חדרים" msgstr "הצג חדרים"
#: converse.js:1749 #: converse.js:1735
msgid "Rooms" msgid "Rooms"
msgstr "חדרים" msgstr "חדרים"
#. For translators: %1$s is a variable and will be replaced with the XMPP server name #. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:1756 #: converse.js:1755
msgid "No rooms on %1$s" msgid "No rooms on %1$s"
msgstr "אין חדרים על %1$s" msgstr "אין חדרים על %1$s"
#. For translators: %1$s is a variable and will be #. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name #. replaced with the XMPP server name
#: converse.js:1771 #: converse.js:1770
msgid "Rooms on %1$s" msgid "Rooms on %1$s"
msgstr "חדרים על %1$s" msgstr "חדרים על %1$s"
#: converse.js:1780 #: converse.js:1779
msgid "Click to open this room" msgid "Click to open this room"
msgstr "לחץ כדי לפתוח את חדר זה" msgstr "לחץ כדי לפתוח את חדר זה"
#: converse.js:1781 #: converse.js:1780
msgid "Show more information on this room" msgid "Show more information on this room"
msgstr "הצג עוד מידע אודות חדר זה" msgstr "הצג עוד מידע אודות חדר זה"
#: converse.js:1843 #: converse.js:1842
msgid "Description:" msgid "Description:"
msgstr "תיאור:" msgstr "תיאור:"
#: converse.js:1844 #: converse.js:1843
msgid "Occupants:" msgid "Occupants:"
msgstr "נוכחים:" msgstr "נוכחים:"
#: converse.js:1845 #: converse.js:1844
msgid "Features:" msgid "Features:"
msgstr "תכונות:" msgstr "תכונות:"
#: converse.js:1846 #: converse.js:1845
msgid "Requires authentication" msgid "Requires authentication"
msgstr "מצריך אישור" msgstr "מצריך אישור"
#: converse.js:1847 #: converse.js:1846
msgid "Hidden" msgid "Hidden"
msgstr "נסתר" msgstr "נסתר"
#: converse.js:1848 #: converse.js:1847
msgid "Requires an invitation" msgid "Requires an invitation"
msgstr "מצריך הזמנה" msgstr "מצריך הזמנה"
#: converse.js:1849 #: converse.js:1848
msgid "Moderated" msgid "Moderated"
msgstr "מבוקר" msgstr "מבוקר"
#: converse.js:1850 #: converse.js:1849
msgid "Non-anonymous" msgid "Non-anonymous"
msgstr "לא אנונימי" msgstr "לא אנונימי"
#: converse.js:1851 #: converse.js:1850
msgid "Open room" msgid "Open room"
msgstr "חדר פתוח" msgstr "חדר פתוח"
#: converse.js:1852 #: converse.js:1851
msgid "Permanent room" msgid "Permanent room"
msgstr "חדר צמיתה" msgstr "חדר צמיתה"
#: converse.js:1853 #: converse.js:1852
msgid "Public" msgid "Public"
msgstr "פומבי" msgstr "פומבי"
#: converse.js:1854 #: converse.js:1853
msgid "Semi-anonymous" msgid "Semi-anonymous"
msgstr "אנונימי למחצה" msgstr "אנונימי למחצה"
#: converse.js:1855 #: converse.js:1854
msgid "Temporary room" msgid "Temporary room"
msgstr "חדר זמני" msgstr "חדר זמני"
#: converse.js:1856 #: converse.js:1855
msgid "Unmoderated" msgid "Unmoderated"
msgstr "לא מבוקר" msgstr "לא מבוקר"
#: converse.js:2085 #: converse.js:2108
msgid "This user is a moderator" msgid "This user is a moderator"
msgstr "משתמש זה הינו אחראי" msgstr "משתמש זה הינו אחראי"
#: converse.js:2086 #: converse.js:2109
msgid "This user can send messages in this room" msgid "This user can send messages in this room"
msgstr "משתמש זה מסוגל לשלוח הודעות בתוך חדר זה" msgstr "משתמש זה מסוגל לשלוח הודעות בתוך חדר זה"
#: converse.js:2087 #: converse.js:2110
msgid "This user can NOT send messages in this room" msgid "This user can NOT send messages in this room"
msgstr "משתמש זה ﬥﬡ מסוגל לשלוח הודעות בתוך חדר זה" msgstr "משתמש זה ﬥﬡ מסוגל לשלוח הודעות בתוך חדר זה"
#: converse.js:2119 #: converse.js:2142
msgid "Invite..." msgid "Invite..."
msgstr "" msgstr ""
#: converse.js:2120 #: converse.js:2143
#, fuzzy #, fuzzy
msgid "Occupants" msgid "Occupants"
msgstr "נוכחים:" msgstr "נוכחים:"
#: converse.js:2185 #: converse.js:2208
msgid "You are about to invite %1$s to the chat room \"%2$s\". " msgid "You are about to invite %1$s to the chat room \"%2$s\". "
msgstr "" msgstr ""
#: converse.js:2186 #: converse.js:2209
msgid "" msgid ""
"You may optionally include a message, explaining the reason for the " "You may optionally include a message, explaining the reason for the "
"invitation." "invitation."
msgstr "" msgstr ""
#: converse.js:2269 #: converse.js:2292
msgid "Message" msgid "Message"
msgstr "הודעה" msgstr "הודעה"
#: converse.js:2307 #: converse.js:2328
msgid "Error: could not execute the command" msgid "Error: could not execute the command"
msgstr "" msgstr ""
#: converse.js:2329 #: converse.js:2358
#, fuzzy #, fuzzy
msgid "Ban user from room" msgid "Ban user from room"
msgstr "אסור משתמש מתוך חדר שיחה" msgstr "אסור משתמש מתוך חדר שיחה"
#: converse.js:2332 #: converse.js:2361
#, fuzzy #, fuzzy
msgid "Kick user from room" msgid "Kick user from room"
msgstr "בעט משתמש מתוך חדר שיחה" msgstr "בעט משתמש מתוך חדר שיחה"
#: converse.js:2333 #: converse.js:2362
#, fuzzy #, fuzzy
msgid "Write in 3rd person" msgid "Write in 3rd person"
msgstr "כתוב בגוף השלישי" msgstr "כתוב בגוף השלישי"
#: converse.js:2334 #: converse.js:2363
msgid "Remove user's ability to post messages" msgid "Remove user's ability to post messages"
msgstr "" msgstr ""
#: converse.js:2335 #: converse.js:2364
msgid "Change your nickname" msgid "Change your nickname"
msgstr "" msgstr ""
#: converse.js:2336 #: converse.js:2365
#, fuzzy #, fuzzy
msgid "Set room topic" msgid "Set room topic"
msgstr "קבע נושא חדר שיחה" msgstr "קבע נושא חדר שיחה"
#: converse.js:2337 #: converse.js:2366
msgid "Allow muted user to post messages" msgid "Allow muted user to post messages"
msgstr "" msgstr ""
#: converse.js:2441 converse.js:4262 #: converse.js:2489 converse.js:4417
msgid "Save" msgid "Save"
msgstr "שמור" msgstr "שמור"
#: converse.js:2442 #: converse.js:2490
msgid "Cancel" msgid "Cancel"
msgstr "ביטול" msgstr "ביטול"
#: converse.js:2487 #: converse.js:2544
msgid "An error occurred while trying to save the form." msgid "An error occurred while trying to save the form."
msgstr "אירעה שגיאה במהלך ניסיון שמירת הטופס." msgstr "אירעה שגיאה במהלך ניסיון שמירת הטופס."
#: converse.js:2531 #: converse.js:2588
msgid "This chatroom requires a password" msgid "This chatroom requires a password"
msgstr "חדר שיחה זה מצריך סיסמה" msgstr "חדר שיחה זה מצריך סיסמה"
#: converse.js:2532 #: converse.js:2589
msgid "Password: " msgid "Password: "
msgstr "סיסמה: " msgstr "סיסמה: "
#: converse.js:2533 #: converse.js:2590
msgid "Submit" msgid "Submit"
msgstr "שלח" msgstr "שלח"
#: converse.js:2568 #: converse.js:2625
msgid "This room is not anonymous" msgid "This room is not anonymous"
msgstr "חדר זה אינו אנונימי" msgstr "חדר זה אינו אנונימי"
#: converse.js:2569 #: converse.js:2626
msgid "This room now shows unavailable members" msgid "This room now shows unavailable members"
msgstr "חדר זה כעת מציג חברים לא זמינים" msgstr "חדר זה כעת מציג חברים לא זמינים"
#: converse.js:2570 #: converse.js:2627
msgid "This room does not show unavailable members" msgid "This room does not show unavailable members"
msgstr "חדר זה לא מציג חברים לא זמינים" msgstr "חדר זה לא מציג חברים לא זמינים"
#: converse.js:2571 #: converse.js:2628
msgid "Non-privacy-related room configuration has changed" msgid "Non-privacy-related room configuration has changed"
msgstr "תצורת חדר אשר לא-קשורה-בפרטיות שונתה" msgstr "תצורת חדר אשר לא-קשורה-בפרטיות שונתה"
#: converse.js:2572 #: converse.js:2629
msgid "Room logging is now enabled" msgid "Room logging is now enabled"
msgstr "יומן חדר הינו מופעל כעת" msgstr "יומן חדר הינו מופעל כעת"
#: converse.js:2573 #: converse.js:2630
msgid "Room logging is now disabled" msgid "Room logging is now disabled"
msgstr "יומן חדר הינו מנוטרל כעת" msgstr "יומן חדר הינו מנוטרל כעת"
#: converse.js:2574 #: converse.js:2631
msgid "This room is now non-anonymous" msgid "This room is now non-anonymous"
msgstr "חדר זה אינו אנונימי כעת" msgstr "חדר זה אינו אנונימי כעת"
#: converse.js:2575 #: converse.js:2632
msgid "This room is now semi-anonymous" msgid "This room is now semi-anonymous"
msgstr "חדר זה הינו אנונימי למחצה כעת" msgstr "חדר זה הינו אנונימי למחצה כעת"
#: converse.js:2576 #: converse.js:2633
msgid "This room is now fully-anonymous" msgid "This room is now fully-anonymous"
msgstr "חדר זה הינו אנונימי לחלוטין כעת" msgstr "חדר זה הינו אנונימי לחלוטין כעת"
#: converse.js:2577 #: converse.js:2634
msgid "A new room has been created" msgid "A new room has been created"
msgstr "חדר חדש נוצר" msgstr "חדר חדש נוצר"
#: converse.js:2581 converse.js:2681 #: converse.js:2638 converse.js:2738
msgid "You have been banned from this room" msgid "You have been banned from this room"
msgstr "נאסרת מתוך חדר זה" msgstr "נאסרת מתוך חדר זה"
#: converse.js:2582 #: converse.js:2639
msgid "You have been kicked from this room" msgid "You have been kicked from this room"
msgstr "נבעטת מתוך חדר זה" msgstr "נבעטת מתוך חדר זה"
#: converse.js:2583 #: converse.js:2640
msgid "You have been removed from this room because of an affiliation change" msgid "You have been removed from this room because of an affiliation change"
msgstr "הוסרת מתוך חדר זה משום שינוי שיוך" msgstr "הוסרת מתוך חדר זה משום שינוי שיוך"
#: converse.js:2584 #: converse.js:2641
msgid "" msgid ""
"You have been removed from this room because the room has changed to members-" "You have been removed from this room because the room has changed to members-"
"only and you're not a member" "only and you're not a member"
msgstr "הוסרת מתוך חדר זה משום שהחדר שונה לחברים-בלבד ואינך במעמד של חבר" msgstr "הוסרת מתוך חדר זה משום שהחדר שונה לחברים-בלבד ואינך במעמד של חבר"
#: converse.js:2585 #: converse.js:2642
msgid "" msgid ""
"You have been removed from this room because the MUC (Multi-user chat) " "You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down." "service is being shut down."
@ -644,175 +653,175 @@ msgstr ""
"הוסרת מתוך חדר זה משום ששירות שמ״מ (שיחה מרובת משתמשים) זה כעת מצוי בהליכי " "הוסרת מתוך חדר זה משום ששירות שמ״מ (שיחה מרובת משתמשים) זה כעת מצוי בהליכי "
"סגירה." "סגירה."
#: converse.js:2599 #: converse.js:2656
msgid "<strong>%1$s</strong> has been banned" msgid "<strong>%1$s</strong> has been banned"
msgstr "<strong>%1$s</strong> נאסר(ה)" msgstr "<strong>%1$s</strong> נאסר(ה)"
#: converse.js:2600 #: converse.js:2657
#, fuzzy #, fuzzy
msgid "<strong>%1$s</strong>'s nickname has changed" msgid "<strong>%1$s</strong>'s nickname has changed"
msgstr "<strong>%1$s</strong> נאסר(ה)" msgstr "<strong>%1$s</strong> נאסר(ה)"
#: converse.js:2601 #: converse.js:2658
msgid "<strong>%1$s</strong> has been kicked out" msgid "<strong>%1$s</strong> has been kicked out"
msgstr "<strong>%1$s</strong> נבעט(ה)" msgstr "<strong>%1$s</strong> נבעט(ה)"
#: converse.js:2602 #: converse.js:2659
msgid "<strong>%1$s</strong> has been removed because of an affiliation change" msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr "<strong>%1$s</strong> הוסרה(ה) משום שינוי שיוך" msgstr "<strong>%1$s</strong> הוסרה(ה) משום שינוי שיוך"
# היותו(ה) # היותו(ה)
#: converse.js:2603 #: converse.js:2660
msgid "<strong>%1$s</strong> has been removed for not being a member" msgid "<strong>%1$s</strong> has been removed for not being a member"
msgstr "<strong>%1$s</strong> הוסר(ה) משום אי הימצאות במסגרת מעמד של חבר" msgstr "<strong>%1$s</strong> הוסר(ה) משום אי הימצאות במסגרת מעמד של חבר"
#: converse.js:2607 #: converse.js:2664
#, fuzzy #, fuzzy
msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>" msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>"
msgstr "שם הכינוי שלך שונה" msgstr "שם הכינוי שלך שונה"
#: converse.js:2608 #: converse.js:2665
#, fuzzy #, fuzzy
msgid "Your nickname has been changed to: <strong>%1$s</strong>" msgid "Your nickname has been changed to: <strong>%1$s</strong>"
msgstr "שם הכינוי שלך שונה" msgstr "שם הכינוי שלך שונה"
#: converse.js:2656 converse.js:2666 #: converse.js:2713 converse.js:2723
msgid "The reason given is: \"" msgid "The reason given is: \""
msgstr "" msgstr ""
#: converse.js:2679 #: converse.js:2736
msgid "You are not on the member list of this room" msgid "You are not on the member list of this room"
msgstr "אינך ברשימת החברים של חדר זה" msgstr "אינך ברשימת החברים של חדר זה"
# אף שם כינוי לא צוין # אף שם כינוי לא צוין
#: converse.js:2685 #: converse.js:2742
msgid "No nickname was specified" msgid "No nickname was specified"
msgstr "לא צוין שום שם כינוי" msgstr "לא צוין שום שם כינוי"
# אינך מורשה # אינך מורשה
#: converse.js:2689 #: converse.js:2746
msgid "You are not allowed to create new rooms" msgid "You are not allowed to create new rooms"
msgstr "אין לך רשות ליצור חדרים חדשים" msgstr "אין לך רשות ליצור חדרים חדשים"
#: converse.js:2691 #: converse.js:2748
msgid "Your nickname doesn't conform to this room's policies" msgid "Your nickname doesn't conform to this room's policies"
msgstr "שם הכינוי שלך לא תואם את המדינויות של חדר זה" msgstr "שם הכינוי שלך לא תואם את המדינויות של חדר זה"
# נלקח כבר # נלקח כבר
#: converse.js:2695 #: converse.js:2752
msgid "Your nickname is already taken" msgid "Your nickname is already taken"
msgstr "שם הכינוי שלך הינו תפוס" msgstr "שם הכינוי שלך הינו תפוס"
#: converse.js:2697 #: converse.js:2754
msgid "This room does not (yet) exist" msgid "This room does not (yet) exist"
msgstr "חדר זה (עדיין) לא קיים" msgstr "חדר זה (עדיין) לא קיים"
#: converse.js:2699 #: converse.js:2756
msgid "This room has reached it's maximum number of occupants" msgid "This room has reached it's maximum number of occupants"
msgstr "חדר זה הגיע לסף הנוכחים המרבי שלו" msgstr "חדר זה הגיע לסף הנוכחים המרבי שלו"
#: converse.js:2736 #: converse.js:2798
msgid "Topic set by %1$s to: %2$s" msgid "Topic set by %1$s to: %2$s"
msgstr "נושא חדר זה נקבע על ידי %1$s אל: %2$s" msgstr "נושא חדר זה נקבע על ידי %1$s אל: %2$s"
#: converse.js:2818 #: converse.js:2880
msgid "%1$s has invited you to join a chat room: %2$s" msgid "%1$s has invited you to join a chat room: %2$s"
msgstr "" msgstr ""
#: converse.js:2822 #: converse.js:2884
msgid "" msgid ""
"%1$s has invited you to join a chat room: %2$s, and left the following " "%1$s has invited you to join a chat room: %2$s, and left the following "
"reason: \"%3$s\"" "reason: \"%3$s\""
msgstr "" msgstr ""
#: converse.js:3058 #: converse.js:3140
msgid "Click to restore this chat" msgid "Click to restore this chat"
msgstr "לחץ כדי לשחזר את שיחה זו" msgstr "לחץ כדי לשחזר את שיחה זו"
#: converse.js:3202 #: converse.js:3285
msgid "Minimized" msgid "Minimized"
msgstr "ממוזער" msgstr "ממוזער"
#: converse.js:3274 #: converse.js:3381 converse.js:3399
msgid "Are you sure you want to remove this contact?"
msgstr "האם אתה בטוח כי ברצונך להסיר את איש קשר זה?"
#: converse.js:3297
msgid "Are you sure you want to decline this contact request?"
msgstr "האם אתה בטוח כי ברצונך לסרב את בקשת איש קשר זה?"
#: converse.js:3341 converse.js:3359
msgid "Click to remove this contact" msgid "Click to remove this contact"
msgstr "לחץ כדי להסיר את איש קשר זה" msgstr "לחץ כדי להסיר את איש קשר זה"
#: converse.js:3348 #: converse.js:3388
msgid "Click to accept this contact request" msgid "Click to accept this contact request"
msgstr "לחץ כדי לקבל את בקשת איש קשר זה" msgstr "לחץ כדי לקבל את בקשת איש קשר זה"
#: converse.js:3349 #: converse.js:3389
msgid "Click to decline this contact request" msgid "Click to decline this contact request"
msgstr "לחץ כדי לסרב את בקשת איש קשר זה" msgstr "לחץ כדי לסרב את בקשת איש קשר זה"
#: converse.js:3358 #: converse.js:3398
msgid "Click to chat with this contact" msgid "Click to chat with this contact"
msgstr "לחץ כדי לשוחח עם איש קשר זה" msgstr "לחץ כדי לשוחח עם איש קשר זה"
#: converse.js:3874 #: converse.js:3423
msgid "Are you sure you want to remove this contact?"
msgstr "האם אתה בטוח כי ברצונך להסיר את איש קשר זה?"
#: converse.js:3446
msgid "Are you sure you want to decline this contact request?"
msgstr "האם אתה בטוח כי ברצונך לסרב את בקשת איש קשר זה?"
#: converse.js:3972
msgid "Type to filter" msgid "Type to filter"
msgstr "הקלד כדי לסנן" msgstr "הקלד כדי לסנן"
# אני במצב # אני במצב
#. For translators: the %1$s part gets replaced with the status #. For translators: the %1$s part gets replaced with the status
#. Example, I am online #. Example, I am online
#: converse.js:4233 converse.js:4310 #: converse.js:4388 converse.js:4465
msgid "I am %1$s" msgid "I am %1$s"
msgstr "מצבי כעת הינו %1$s" msgstr "מצבי כעת הינו %1$s"
#: converse.js:4235 converse.js:4315 #: converse.js:4390 converse.js:4470
msgid "Click here to write a custom status message" msgid "Click here to write a custom status message"
msgstr "לחץ כאן כדי לכתוב הודעת מצב מותאמת" msgstr "לחץ כאן כדי לכתוב הודעת מצב מותאמת"
#: converse.js:4236 converse.js:4316 #: converse.js:4391 converse.js:4471
msgid "Click to change your chat status" msgid "Click to change your chat status"
msgstr "לחץ כדי לשנות את הודעת השיחה שלך" msgstr "לחץ כדי לשנות את הודעת השיחה שלך"
#: converse.js:4261 #: converse.js:4416
msgid "Custom status" msgid "Custom status"
msgstr "מצב מותאם" msgstr "מצב מותאם"
#: converse.js:4290 converse.js:4298 #: converse.js:4445 converse.js:4453
msgid "online" msgid "online"
msgstr "מקוון" msgstr "מקוון"
#: converse.js:4292 #: converse.js:4447
msgid "busy" msgid "busy"
msgstr "עסוק" msgstr "עסוק"
#: converse.js:4294 #: converse.js:4449
msgid "away for long" msgid "away for long"
msgstr "נעדר לזמן מה" msgstr "נעדר לזמן מה"
#: converse.js:4296 #: converse.js:4451
msgid "away" msgid "away"
msgstr "נעדר" msgstr "נעדר"
#: converse.js:4419 #: converse.js:4574
msgid "XMPP/Jabber Username:" msgid "XMPP/Jabber Username:"
msgstr "שם משתמש XMPP/Jabber:" msgstr "שם משתמש XMPP/Jabber:"
#: converse.js:4420 #: converse.js:4575
msgid "Password:" msgid "Password:"
msgstr "סיסמה:" msgstr "סיסמה:"
#: converse.js:4421 #: converse.js:4576
msgid "Log In" msgid "Log In"
msgstr "כניסה" msgstr "כניסה"
#: converse.js:4428 #: converse.js:4583
msgid "Sign in" msgid "Sign in"
msgstr "התחברות" msgstr "התחברות"
#: converse.js:4488 #: converse.js:4643
msgid "Toggle chat" msgid "Toggle chat"
msgstr "הפעל שיח" msgstr "הפעל שיח"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Converse.js 0.4\n" "Project-Id-Version: Converse.js 0.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-09-22 17:23+0200\n" "POT-Creation-Date: 2014-11-15 16:36+0100\n"
"PO-Revision-Date: 2013-09-25 22:42+0200\n" "PO-Revision-Date: 2013-09-25 22:42+0200\n"
"Last-Translator: Krisztian Kompar <w3host@w3host.hu>\n" "Last-Translator: Krisztian Kompar <w3host@w3host.hu>\n"
"Language-Team: Hungarian\n" "Language-Team: Hungarian\n"
@ -20,198 +20,198 @@ msgstr ""
"lang: hu\n" "lang: hu\n"
"plural_forms: nplurals=2; plural=(n != 1);\n" "plural_forms: nplurals=2; plural=(n != 1);\n"
#: converse.js:338 #: converse.js:316
msgid "unencrypted" msgid "unencrypted"
msgstr "" msgstr ""
#: converse.js:339 #: converse.js:317
msgid "unverified" msgid "unverified"
msgstr "" msgstr ""
#: converse.js:340 #: converse.js:318
msgid "verified" msgid "verified"
msgstr "" msgstr ""
#: converse.js:341 #: converse.js:319
msgid "finished" msgid "finished"
msgstr "" msgstr ""
#: converse.js:344 #: converse.js:322
msgid "This contact is busy" msgid "This contact is busy"
msgstr "Elfoglalt" msgstr "Elfoglalt"
#: converse.js:345 #: converse.js:323
msgid "This contact is online" msgid "This contact is online"
msgstr "Online" msgstr "Online"
#: converse.js:346 #: converse.js:324
msgid "This contact is offline" msgid "This contact is offline"
msgstr "Nincs bejelentkezve" msgstr "Nincs bejelentkezve"
#: converse.js:347 #: converse.js:325
msgid "This contact is unavailable" msgid "This contact is unavailable"
msgstr "Elérhetetlen" msgstr "Elérhetetlen"
#: converse.js:348 #: converse.js:326
msgid "This contact is away for an extended period" msgid "This contact is away for an extended period"
msgstr "Hosszabb ideje távol" msgstr "Hosszabb ideje távol"
#: converse.js:349 #: converse.js:327
msgid "This contact is away" msgid "This contact is away"
msgstr "Távol" msgstr "Távol"
#: converse.js:351 #: converse.js:329
#, fuzzy #, fuzzy
msgid "Click to hide these contacts" msgid "Click to hide these contacts"
msgstr "A kapcsolat törlése" msgstr "A kapcsolat törlése"
#: converse.js:353 #: converse.js:331
msgid "My contacts" msgid "My contacts"
msgstr "Kapcsolatok:" msgstr "Kapcsolatok:"
#: converse.js:354 #: converse.js:332
msgid "Pending contacts" msgid "Pending contacts"
msgstr "Függőben levő kapcsolatok" msgstr "Függőben levő kapcsolatok"
#: converse.js:355 #: converse.js:333
msgid "Contact requests" msgid "Contact requests"
msgstr "Kapcsolat felvételi kérés" msgstr "Kapcsolat felvételi kérés"
#: converse.js:356 #: converse.js:334
msgid "Ungrouped" msgid "Ungrouped"
msgstr "" msgstr ""
#: converse.js:358 #: converse.js:336
msgid "Contacts" msgid "Contacts"
msgstr "Kapcsolatok" msgstr "Kapcsolatok"
#: converse.js:359 #: converse.js:337
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
#: converse.js:441 #: converse.js:419
#, fuzzy #, fuzzy
msgid "Reconnecting" msgid "Reconnecting"
msgstr "Kapcsolódás" msgstr "Kapcsolódás"
#: converse.js:476 #: converse.js:454
msgid "Disconnected" msgid "Disconnected"
msgstr "Szétkapcsolva" msgstr "Szétkapcsolva"
#: converse.js:484 #: converse.js:462
msgid "Error" msgid "Error"
msgstr "Hiba" msgstr "Hiba"
#: converse.js:486 #: converse.js:464
msgid "Connecting" msgid "Connecting"
msgstr "Kapcsolódás" msgstr "Kapcsolódás"
#: converse.js:489 #: converse.js:467
msgid "Connection Failed" msgid "Connection Failed"
msgstr "Kapcsolódási hiba" msgstr "Kapcsolódási hiba"
#: converse.js:491 #: converse.js:469
msgid "Authenticating" msgid "Authenticating"
msgstr "Azonosítás" msgstr "Azonosítás"
#: converse.js:494 #: converse.js:472
msgid "Authentication Failed" msgid "Authentication Failed"
msgstr "Azonosítási hiba" msgstr "Azonosítási hiba"
#: converse.js:499 #: converse.js:477
msgid "Disconnecting" msgid "Disconnecting"
msgstr "Szétkapcsolás" msgstr "Szétkapcsolás"
#: converse.js:638 converse.js:684 #: converse.js:617 converse.js:669
msgid "Online Contacts" msgid "Online Contacts"
msgstr "Online kapcsolatok" msgstr "Online kapcsolatok"
#: converse.js:802 #: converse.js:787
msgid "Re-establishing encrypted session" msgid "Re-establishing encrypted session"
msgstr "" msgstr ""
#: converse.js:814 #: converse.js:799
msgid "Generating private key." msgid "Generating private key."
msgstr "" msgstr ""
#: converse.js:815 #: converse.js:800
msgid "Your browser might become unresponsive." msgid "Your browser might become unresponsive."
msgstr "" msgstr ""
#: converse.js:850 #: converse.js:835
msgid "" msgid ""
"Authentication request from %1$s\n" "Authentication request from %1$s\n"
"\n" "\n"
"Your buddy is attempting to verify your identity, by asking you the question " "Your chat contact is attempting to verify your identity, by asking you the "
"below.\n" "question below.\n"
"\n" "\n"
"%2$s" "%2$s"
msgstr "" msgstr ""
#: converse.js:859 #: converse.js:844
msgid "Could not verify this user's identify." msgid "Could not verify this user's identify."
msgstr "" msgstr ""
#: converse.js:898 #: converse.js:883
msgid "Exchanging private key with buddy." msgid "Exchanging private key with contact."
msgstr "" msgstr ""
#: converse.js:1045 #: converse.js:1036
msgid "Personal message" msgid "Personal message"
msgstr "Saját üzenet" msgstr "Saját üzenet"
#: converse.js:1077 #: converse.js:1068
#, fuzzy #, fuzzy
msgid "Are you sure you want to clear the messages from this room?" msgid "Are you sure you want to clear the messages from this room?"
msgstr "Nem szerepelsz a csevegő szoba taglistáján" msgstr "Nem szerepelsz a csevegő szoba taglistáján"
#: converse.js:1099 #: converse.js:1090
msgid "me" msgid "me"
msgstr "én" msgstr "én"
#: converse.js:1154 #: converse.js:1144
#, fuzzy #, fuzzy
msgid "is typing" msgid "is typing"
msgstr "%1$s gépel" msgstr "%1$s gépel"
#: converse.js:1157 #: converse.js:1147
#, fuzzy #, fuzzy
msgid "has stopped typing" msgid "has stopped typing"
msgstr "%1$s gépel" msgstr "%1$s gépel"
#: converse.js:1199 converse.js:2331 #: converse.js:1189 converse.js:2360
msgid "Show this menu" msgid "Show this menu"
msgstr "Mutasd ezt a menüt" msgstr "Mutasd ezt a menüt"
#: converse.js:1200 #: converse.js:1190
msgid "Write in the third person" msgid "Write in the third person"
msgstr "" msgstr ""
#: converse.js:1201 converse.js:2330 #: converse.js:1191 converse.js:2359
msgid "Remove messages" msgid "Remove messages"
msgstr "Üzenet törlése" msgstr "Üzenet törlése"
#: converse.js:1285 #: converse.js:1275
msgid "Are you sure you want to clear the messages from this chat box?" msgid "Are you sure you want to clear the messages from this chat box?"
msgstr "" msgstr ""
#: converse.js:1320 #: converse.js:1310
msgid "Your message could not be sent" msgid "Your message could not be sent"
msgstr "" msgstr ""
#: converse.js:1323 #: converse.js:1313
msgid "We received an unencrypted message" msgid "We received an unencrypted message"
msgstr "" msgstr ""
#: converse.js:1326 #: converse.js:1316
msgid "We received an unreadable encrypted message" msgid "We received an unreadable encrypted message"
msgstr "" msgstr ""
#: converse.js:1335 #: converse.js:1325
msgid "This user has requested an encrypted session." msgid "This user has requested an encrypted session."
msgstr "" msgstr ""
#: converse.js:1357 #: converse.js:1347
msgid "" msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this " "Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n" "chat.\n"
@ -224,399 +224,399 @@ msgid ""
"Cancel." "Cancel."
msgstr "" msgstr ""
#: converse.js:1370 #: converse.js:1360
msgid "" msgid ""
"You will be prompted to provide a security question and then an answer to " "You will be prompted to provide a security question and then an answer to "
"that question.\n" "that question.\n"
"\n" "\n"
"Your buddy will then be prompted the same question and if they type the " "Your contact will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will be verified." "exact same answer (case sensitive), their identity will be verified."
msgstr "" msgstr ""
#: converse.js:1371 #: converse.js:1361
msgid "What is your security question?" msgid "What is your security question?"
msgstr "" msgstr ""
#: converse.js:1373 #: converse.js:1363
msgid "What is the answer to the security question?" msgid "What is the answer to the security question?"
msgstr "" msgstr ""
#: converse.js:1377 #: converse.js:1367
msgid "Invalid authentication scheme provided" msgid "Invalid authentication scheme provided"
msgstr "" msgstr ""
#: converse.js:1488 #: converse.js:1482
msgid "Your messages are not encrypted anymore" msgid "Your messages are not encrypted anymore"
msgstr "" msgstr ""
#: converse.js:1490 #: converse.js:1484
msgid "" msgid ""
"Your messages are now encrypted but your buddy's identity has not been " "Your messages are now encrypted but your contact's identity has not been "
"verified." "verified."
msgstr "" msgstr ""
#: converse.js:1492 #: converse.js:1486
msgid "Your buddy's identify has been verified." msgid "Your contact's identify has been verified."
msgstr "" msgstr ""
#: converse.js:1494 #: converse.js:1488
msgid "Your buddy has ended encryption on their end, you should do the same." msgid "Your contact has ended encryption on their end, you should do the same."
msgstr "" msgstr ""
#: converse.js:1503 #: converse.js:1497
msgid "Your messages are not encrypted. Click here to enable OTR encryption." msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr "" msgstr ""
#: converse.js:1505 #: converse.js:1499
msgid "Your messages are encrypted, but your buddy has not been verified." msgid "Your messages are encrypted, but your contact has not been verified."
msgstr "" msgstr ""
#: converse.js:1507 #: converse.js:1501
msgid "Your messages are encrypted and your buddy verified." msgid "Your messages are encrypted and your contact verified."
msgstr "" msgstr ""
#: converse.js:1509 #: converse.js:1503
msgid "" msgid ""
"Your buddy has closed their end of the private session, you should do the " "Your contact has closed their end of the private session, you should do the "
"same" "same"
msgstr "" msgstr ""
#: converse.js:1519 #: converse.js:1513
#, fuzzy #, fuzzy
msgid "Clear all messages" msgid "Clear all messages"
msgstr "Saját üzenet" msgstr "Saját üzenet"
#: converse.js:1520 #: converse.js:1514
msgid "End encrypted conversation" msgid "End encrypted conversation"
msgstr "" msgstr ""
#: converse.js:1521 #: converse.js:1515
msgid "Hide the list of participants" msgid "Hide the list of participants"
msgstr "" msgstr ""
#: converse.js:1522 #: converse.js:1516
msgid "Refresh encrypted conversation" msgid "Refresh encrypted conversation"
msgstr "" msgstr ""
#: converse.js:1523 #: converse.js:1517
msgid "Start a call" msgid "Start a call"
msgstr "" msgstr ""
#: converse.js:1524 #: converse.js:1518
msgid "Start encrypted conversation" msgid "Start encrypted conversation"
msgstr "" msgstr ""
#: converse.js:1525 #: converse.js:1519
msgid "Verify with fingerprints" msgid "Verify with fingerprints"
msgstr "" msgstr ""
#: converse.js:1526 #: converse.js:1520
msgid "Verify with SMP" msgid "Verify with SMP"
msgstr "" msgstr ""
#: converse.js:1527 #: converse.js:1521
msgid "What's this?" msgid "What's this?"
msgstr "" msgstr ""
#: converse.js:1618 #: converse.js:1612
msgid "Online" msgid "Online"
msgstr "Elérhető" msgstr "Elérhető"
#: converse.js:1619 #: converse.js:1613
msgid "Busy" msgid "Busy"
msgstr "Foglalt" msgstr "Foglalt"
#: converse.js:1620 #: converse.js:1614
msgid "Away" msgid "Away"
msgstr "Távol" msgstr "Távol"
#: converse.js:1621 #: converse.js:1615
msgid "Offline" msgid "Offline"
msgstr "Nem elérhető" msgstr "Nem elérhető"
#: converse.js:1622 #: converse.js:1616
#, fuzzy #, fuzzy
msgid "Log out" msgid "Log out"
msgstr "Belépés" msgstr "Belépés"
#: converse.js:1628 #: converse.js:1622
msgid "Contact name" msgid "Contact name"
msgstr "Kapcsolat neve" msgstr "Kapcsolat neve"
#: converse.js:1629 #: converse.js:1623
msgid "Search" msgid "Search"
msgstr "Keresés" msgstr "Keresés"
#: converse.js:1633 #: converse.js:1627
msgid "Contact username" msgid "Contact username"
msgstr "Felhasználónév" msgstr "Felhasználónév"
#: converse.js:1634 #: converse.js:1628
msgid "Add" msgid "Add"
msgstr "Hozzáadás" msgstr "Hozzáadás"
#: converse.js:1639 #: converse.js:1633
msgid "Click to add new chat contacts" msgid "Click to add new chat contacts"
msgstr "Új kapcsolatok hozzáadása" msgstr "Új kapcsolatok hozzáadása"
#: converse.js:1640 #: converse.js:1634
msgid "Add a contact" msgid "Add a contact"
msgstr "Új kapcsolat" msgstr "Új kapcsolat"
#: converse.js:1664 #: converse.js:1658
msgid "No users found" msgid "No users found"
msgstr "Nincs találat" msgstr "Nincs találat"
#: converse.js:1670 #: converse.js:1664
msgid "Click to add as a chat contact" msgid "Click to add as a chat contact"
msgstr "Csevegő kapcsolatként hozzáad" msgstr "Csevegő kapcsolatként hozzáad"
#: converse.js:1725 #: converse.js:1727
msgid "Room name" msgid "Room name"
msgstr "A szoba neve" msgstr "A szoba neve"
#: converse.js:1726 #: converse.js:1728
msgid "Nickname" msgid "Nickname"
msgstr "Becenév" msgstr "Becenév"
#: converse.js:1727 #: converse.js:1729
msgid "Server" msgid "Server"
msgstr "Szerver" msgstr "Szerver"
#: converse.js:1728 #: converse.js:1730
msgid "Join" msgid "Join"
msgstr "Csatlakozás" msgstr "Csatlakozás"
#: converse.js:1729 #: converse.js:1731
msgid "Show rooms" msgid "Show rooms"
msgstr "Létező szobák" msgstr "Létező szobák"
#: converse.js:1749 #: converse.js:1735
msgid "Rooms" msgid "Rooms"
msgstr "Szobák" msgstr "Szobák"
#. For translators: %1$s is a variable and will be replaced with the XMPP server name #. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:1756 #: converse.js:1755
msgid "No rooms on %1$s" msgid "No rooms on %1$s"
msgstr "Nincs csevegő szoba a(z) %1$s szerveren" msgstr "Nincs csevegő szoba a(z) %1$s szerveren"
#. For translators: %1$s is a variable and will be #. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name #. replaced with the XMPP server name
#: converse.js:1771 #: converse.js:1770
msgid "Rooms on %1$s" msgid "Rooms on %1$s"
msgstr "Csevegő szobák a(z) %1$s szerveren" msgstr "Csevegő szobák a(z) %1$s szerveren"
#: converse.js:1780 #: converse.js:1779
msgid "Click to open this room" msgid "Click to open this room"
msgstr "Belépés a csevegő szobába" msgstr "Belépés a csevegő szobába"
#: converse.js:1781 #: converse.js:1780
msgid "Show more information on this room" msgid "Show more information on this room"
msgstr "További információk a csevegő szobáról" msgstr "További információk a csevegő szobáról"
#: converse.js:1843 #: converse.js:1842
msgid "Description:" msgid "Description:"
msgstr "Leírás:" msgstr "Leírás:"
#: converse.js:1844 #: converse.js:1843
msgid "Occupants:" msgid "Occupants:"
msgstr "Jelenlevők:" msgstr "Jelenlevők:"
#: converse.js:1845 #: converse.js:1844
msgid "Features:" msgid "Features:"
msgstr "Tulajdonságok" msgstr "Tulajdonságok"
#: converse.js:1846 #: converse.js:1845
msgid "Requires authentication" msgid "Requires authentication"
msgstr "Azonosítás szükséges" msgstr "Azonosítás szükséges"
#: converse.js:1847 #: converse.js:1846
msgid "Hidden" msgid "Hidden"
msgstr "Rejtett" msgstr "Rejtett"
#: converse.js:1848 #: converse.js:1847
msgid "Requires an invitation" msgid "Requires an invitation"
msgstr "Meghívás szükséges" msgstr "Meghívás szükséges"
#: converse.js:1849 #: converse.js:1848
msgid "Moderated" msgid "Moderated"
msgstr "Moderált" msgstr "Moderált"
#: converse.js:1850 #: converse.js:1849
msgid "Non-anonymous" msgid "Non-anonymous"
msgstr "NEM névtelen" msgstr "NEM névtelen"
#: converse.js:1851 #: converse.js:1850
msgid "Open room" msgid "Open room"
msgstr "Nyitott szoba" msgstr "Nyitott szoba"
#: converse.js:1852 #: converse.js:1851
msgid "Permanent room" msgid "Permanent room"
msgstr "Állandó szoba" msgstr "Állandó szoba"
#: converse.js:1853 #: converse.js:1852
msgid "Public" msgid "Public"
msgstr "Nyílvános" msgstr "Nyílvános"
#: converse.js:1854 #: converse.js:1853
msgid "Semi-anonymous" msgid "Semi-anonymous"
msgstr "Félig névtelen" msgstr "Félig névtelen"
#: converse.js:1855 #: converse.js:1854
msgid "Temporary room" msgid "Temporary room"
msgstr "Ideiglenes szoba" msgstr "Ideiglenes szoba"
#: converse.js:1856 #: converse.js:1855
msgid "Unmoderated" msgid "Unmoderated"
msgstr "Moderálatlan" msgstr "Moderálatlan"
#: converse.js:2085 #: converse.js:2108
msgid "This user is a moderator" msgid "This user is a moderator"
msgstr "Ez a felhasználó egy moderátor" msgstr "Ez a felhasználó egy moderátor"
#: converse.js:2086 #: converse.js:2109
msgid "This user can send messages in this room" msgid "This user can send messages in this room"
msgstr "Ez a felhasználó küldhet üzenetet ebbe a szobába" msgstr "Ez a felhasználó küldhet üzenetet ebbe a szobába"
#: converse.js:2087 #: converse.js:2110
msgid "This user can NOT send messages in this room" msgid "This user can NOT send messages in this room"
msgstr "Ez a felhasználó NEM küldhet üzenetet ebbe a szobába" msgstr "Ez a felhasználó NEM küldhet üzenetet ebbe a szobába"
#: converse.js:2119 #: converse.js:2142
msgid "Invite..." msgid "Invite..."
msgstr "" msgstr ""
#: converse.js:2120 #: converse.js:2143
#, fuzzy #, fuzzy
msgid "Occupants" msgid "Occupants"
msgstr "Jelenlevők:" msgstr "Jelenlevők:"
#: converse.js:2185 #: converse.js:2208
msgid "You are about to invite %1$s to the chat room \"%2$s\". " msgid "You are about to invite %1$s to the chat room \"%2$s\". "
msgstr "" msgstr ""
#: converse.js:2186 #: converse.js:2209
msgid "" msgid ""
"You may optionally include a message, explaining the reason for the " "You may optionally include a message, explaining the reason for the "
"invitation." "invitation."
msgstr "" msgstr ""
#: converse.js:2269 #: converse.js:2292
msgid "Message" msgid "Message"
msgstr "Üzenet" msgstr "Üzenet"
#: converse.js:2307 #: converse.js:2328
msgid "Error: could not execute the command" msgid "Error: could not execute the command"
msgstr "" msgstr ""
#: converse.js:2329 #: converse.js:2358
#, fuzzy #, fuzzy
msgid "Ban user from room" msgid "Ban user from room"
msgstr "Felhasználó kitíltása a csevegő szobából" msgstr "Felhasználó kitíltása a csevegő szobából"
#: converse.js:2332 #: converse.js:2361
#, fuzzy #, fuzzy
msgid "Kick user from room" msgid "Kick user from room"
msgstr "Felhasználó kiléptetése a csevegő szobából" msgstr "Felhasználó kiléptetése a csevegő szobából"
#: converse.js:2333 #: converse.js:2362
msgid "Write in 3rd person" msgid "Write in 3rd person"
msgstr "" msgstr ""
#: converse.js:2334 #: converse.js:2363
msgid "Remove user's ability to post messages" msgid "Remove user's ability to post messages"
msgstr "" msgstr ""
#: converse.js:2335 #: converse.js:2364
msgid "Change your nickname" msgid "Change your nickname"
msgstr "" msgstr ""
#: converse.js:2336 #: converse.js:2365
#, fuzzy #, fuzzy
msgid "Set room topic" msgid "Set room topic"
msgstr "Csevegőszoba téma beállítás" msgstr "Csevegőszoba téma beállítás"
#: converse.js:2337 #: converse.js:2366
msgid "Allow muted user to post messages" msgid "Allow muted user to post messages"
msgstr "" msgstr ""
#: converse.js:2441 converse.js:4262 #: converse.js:2489 converse.js:4417
msgid "Save" msgid "Save"
msgstr "Mentés" msgstr "Mentés"
#: converse.js:2442 #: converse.js:2490
msgid "Cancel" msgid "Cancel"
msgstr "Mégsem" msgstr "Mégsem"
#: converse.js:2487 #: converse.js:2544
msgid "An error occurred while trying to save the form." msgid "An error occurred while trying to save the form."
msgstr "Hiba történt az adatok mentése közben." msgstr "Hiba történt az adatok mentése közben."
#: converse.js:2531 #: converse.js:2588
msgid "This chatroom requires a password" msgid "This chatroom requires a password"
msgstr "A csevegő szoba belépéshez jelszó szükséges" msgstr "A csevegő szoba belépéshez jelszó szükséges"
#: converse.js:2532 #: converse.js:2589
msgid "Password: " msgid "Password: "
msgstr "Jelszó:" msgstr "Jelszó:"
#: converse.js:2533 #: converse.js:2590
msgid "Submit" msgid "Submit"
msgstr "Küldés" msgstr "Küldés"
#: converse.js:2568 #: converse.js:2625
msgid "This room is not anonymous" msgid "This room is not anonymous"
msgstr "Ez a szoba NEM névtelen" msgstr "Ez a szoba NEM névtelen"
#: converse.js:2569 #: converse.js:2626
msgid "This room now shows unavailable members" msgid "This room now shows unavailable members"
msgstr "Ez a szoba mutatja az elérhetetlen tagokat" msgstr "Ez a szoba mutatja az elérhetetlen tagokat"
#: converse.js:2570 #: converse.js:2627
msgid "This room does not show unavailable members" msgid "This room does not show unavailable members"
msgstr "Ez a szoba nem mutatja az elérhetetlen tagokat" msgstr "Ez a szoba nem mutatja az elérhetetlen tagokat"
#: converse.js:2571 #: converse.js:2628
msgid "Non-privacy-related room configuration has changed" msgid "Non-privacy-related room configuration has changed"
msgstr "A szoba általános konfigurációja módosult" msgstr "A szoba általános konfigurációja módosult"
#: converse.js:2572 #: converse.js:2629
msgid "Room logging is now enabled" msgid "Room logging is now enabled"
msgstr "A szobába a belépés lehetséges" msgstr "A szobába a belépés lehetséges"
#: converse.js:2573 #: converse.js:2630
msgid "Room logging is now disabled" msgid "Room logging is now disabled"
msgstr "A szobába a belépés szünetel" msgstr "A szobába a belépés szünetel"
#: converse.js:2574 #: converse.js:2631
msgid "This room is now non-anonymous" msgid "This room is now non-anonymous"
msgstr "Ez a szoba most NEM névtelen" msgstr "Ez a szoba most NEM névtelen"
#: converse.js:2575 #: converse.js:2632
msgid "This room is now semi-anonymous" msgid "This room is now semi-anonymous"
msgstr "Ez a szoba most félig névtelen" msgstr "Ez a szoba most félig névtelen"
#: converse.js:2576 #: converse.js:2633
msgid "This room is now fully-anonymous" msgid "This room is now fully-anonymous"
msgstr "Ez a szoba most teljesen névtelen" msgstr "Ez a szoba most teljesen névtelen"
#: converse.js:2577 #: converse.js:2634
msgid "A new room has been created" msgid "A new room has been created"
msgstr "Létrejött egy új csevegő szoba" msgstr "Létrejött egy új csevegő szoba"
#: converse.js:2581 converse.js:2681 #: converse.js:2638 converse.js:2738
msgid "You have been banned from this room" msgid "You have been banned from this room"
msgstr "Ki lettél tíltva ebből a szobából" msgstr "Ki lettél tíltva ebből a szobából"
#: converse.js:2582 #: converse.js:2639
msgid "You have been kicked from this room" msgid "You have been kicked from this room"
msgstr "Ki lettél dobva ebből a szobából" msgstr "Ki lettél dobva ebből a szobából"
#: converse.js:2583 #: converse.js:2640
msgid "You have been removed from this room because of an affiliation change" msgid "You have been removed from this room because of an affiliation change"
msgstr "Taglista módosítás miatt kiléptettünk a csevegő szobából" msgstr "Taglista módosítás miatt kiléptettünk a csevegő szobából"
#: converse.js:2584 #: converse.js:2641
msgid "" msgid ""
"You have been removed from this room because the room has changed to members-" "You have been removed from this room because the room has changed to members-"
"only and you're not a member" "only and you're not a member"
@ -624,7 +624,7 @@ msgstr ""
"Kiléptettünk a csevegő szobából, mert mostantól csak a taglistán szereplők " "Kiléptettünk a csevegő szobából, mert mostantól csak a taglistán szereplők "
"lehetnek jelen." "lehetnek jelen."
#: converse.js:2585 #: converse.js:2642
msgid "" msgid ""
"You have been removed from this room because the MUC (Multi-user chat) " "You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down." "service is being shut down."
@ -632,176 +632,176 @@ msgstr ""
"Kiléptettünk a csevegő szobából, mert a MUC (Multi-User Chat) szolgáltatás " "Kiléptettünk a csevegő szobából, mert a MUC (Multi-User Chat) szolgáltatás "
"leállításra került." "leállításra került."
#: converse.js:2599 #: converse.js:2656
msgid "<strong>%1$s</strong> has been banned" msgid "<strong>%1$s</strong> has been banned"
msgstr "A szobából kitíltva: <strong>%1$s</strong>" msgstr "A szobából kitíltva: <strong>%1$s</strong>"
#: converse.js:2600 #: converse.js:2657
#, fuzzy #, fuzzy
msgid "<strong>%1$s</strong>'s nickname has changed" msgid "<strong>%1$s</strong>'s nickname has changed"
msgstr "A szobából kitíltva: <strong>%1$s</strong>" msgstr "A szobából kitíltva: <strong>%1$s</strong>"
#: converse.js:2601 #: converse.js:2658
msgid "<strong>%1$s</strong> has been kicked out" msgid "<strong>%1$s</strong> has been kicked out"
msgstr "A szobából kidobva: <strong>%1$s</strong>" msgstr "A szobából kidobva: <strong>%1$s</strong>"
#: converse.js:2602 #: converse.js:2659
msgid "<strong>%1$s</strong> has been removed because of an affiliation change" msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr "Taglista módosítás miatt a szobából kiléptetve: <strong>%1$s</strong>" msgstr "Taglista módosítás miatt a szobából kiléptetve: <strong>%1$s</strong>"
#: converse.js:2603 #: converse.js:2660
msgid "<strong>%1$s</strong> has been removed for not being a member" msgid "<strong>%1$s</strong> has been removed for not being a member"
msgstr "" msgstr ""
"A taglistán nem szerepel így a szobából kiléptetve: <strong>%1$s</strong>" "A taglistán nem szerepel így a szobából kiléptetve: <strong>%1$s</strong>"
#: converse.js:2607 #: converse.js:2664
#, fuzzy #, fuzzy
msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>" msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>"
msgstr "A beceneved módosításra került" msgstr "A beceneved módosításra került"
#: converse.js:2608 #: converse.js:2665
#, fuzzy #, fuzzy
msgid "Your nickname has been changed to: <strong>%1$s</strong>" msgid "Your nickname has been changed to: <strong>%1$s</strong>"
msgstr "A beceneved módosításra került" msgstr "A beceneved módosításra került"
#: converse.js:2656 converse.js:2666 #: converse.js:2713 converse.js:2723
msgid "The reason given is: \"" msgid "The reason given is: \""
msgstr "" msgstr ""
#: converse.js:2679 #: converse.js:2736
msgid "You are not on the member list of this room" msgid "You are not on the member list of this room"
msgstr "Nem szerepelsz a csevegő szoba taglistáján" msgstr "Nem szerepelsz a csevegő szoba taglistáján"
#: converse.js:2685 #: converse.js:2742
msgid "No nickname was specified" msgid "No nickname was specified"
msgstr "Nem lett megadva becenév" msgstr "Nem lett megadva becenév"
#: converse.js:2689 #: converse.js:2746
msgid "You are not allowed to create new rooms" msgid "You are not allowed to create new rooms"
msgstr "Nem lehet új csevegő szobát létrehozni" msgstr "Nem lehet új csevegő szobát létrehozni"
#: converse.js:2691 #: converse.js:2748
msgid "Your nickname doesn't conform to this room's policies" msgid "Your nickname doesn't conform to this room's policies"
msgstr "A beceneved ütközik a csevegő szoba szabályzataival" msgstr "A beceneved ütközik a csevegő szoba szabályzataival"
#: converse.js:2695 #: converse.js:2752
msgid "Your nickname is already taken" msgid "Your nickname is already taken"
msgstr "A becenevedet már valaki használja" msgstr "A becenevedet már valaki használja"
#: converse.js:2697 #: converse.js:2754
msgid "This room does not (yet) exist" msgid "This room does not (yet) exist"
msgstr "Ez a szoba (még) nem létezik" msgstr "Ez a szoba (még) nem létezik"
#: converse.js:2699 #: converse.js:2756
msgid "This room has reached it's maximum number of occupants" msgid "This room has reached it's maximum number of occupants"
msgstr "Ez a csevegő szoba elérte a maximális jelenlevők számát" msgstr "Ez a csevegő szoba elérte a maximális jelenlevők számát"
#: converse.js:2736 #: converse.js:2798
msgid "Topic set by %1$s to: %2$s" msgid "Topic set by %1$s to: %2$s"
msgstr "A következő témát állította be %1$s: %2$s" msgstr "A következő témát állította be %1$s: %2$s"
#: converse.js:2818 #: converse.js:2880
msgid "%1$s has invited you to join a chat room: %2$s" msgid "%1$s has invited you to join a chat room: %2$s"
msgstr "" msgstr ""
#: converse.js:2822 #: converse.js:2884
msgid "" msgid ""
"%1$s has invited you to join a chat room: %2$s, and left the following " "%1$s has invited you to join a chat room: %2$s, and left the following "
"reason: \"%3$s\"" "reason: \"%3$s\""
msgstr "" msgstr ""
#: converse.js:3058 #: converse.js:3140
#, fuzzy #, fuzzy
msgid "Click to restore this chat" msgid "Click to restore this chat"
msgstr "A kapcsolat törlése" msgstr "A kapcsolat törlése"
#: converse.js:3202 #: converse.js:3285
msgid "Minimized" msgid "Minimized"
msgstr "" msgstr ""
#: converse.js:3274 #: converse.js:3381 converse.js:3399
#, fuzzy
msgid "Are you sure you want to remove this contact?"
msgstr "A kapcsolat törlése"
#: converse.js:3297
#, fuzzy
msgid "Are you sure you want to decline this contact request?"
msgstr "A kapcsolat törlése"
#: converse.js:3341 converse.js:3359
msgid "Click to remove this contact" msgid "Click to remove this contact"
msgstr "A kapcsolat törlése" msgstr "A kapcsolat törlése"
#: converse.js:3348 #: converse.js:3388
#, fuzzy #, fuzzy
msgid "Click to accept this contact request" msgid "Click to accept this contact request"
msgstr "A kapcsolat törlése" msgstr "A kapcsolat törlése"
#: converse.js:3349 #: converse.js:3389
#, fuzzy #, fuzzy
msgid "Click to decline this contact request" msgid "Click to decline this contact request"
msgstr "A kapcsolat törlése" msgstr "A kapcsolat törlése"
#: converse.js:3358 #: converse.js:3398
msgid "Click to chat with this contact" msgid "Click to chat with this contact"
msgstr "Csevegés indítása ezzel a kapcsolatunkkal" msgstr "Csevegés indítása ezzel a kapcsolatunkkal"
#: converse.js:3874 #: converse.js:3423
#, fuzzy
msgid "Are you sure you want to remove this contact?"
msgstr "A kapcsolat törlése"
#: converse.js:3446
#, fuzzy
msgid "Are you sure you want to decline this contact request?"
msgstr "A kapcsolat törlése"
#: converse.js:3972
msgid "Type to filter" msgid "Type to filter"
msgstr "" msgstr ""
#. For translators: the %1$s part gets replaced with the status #. For translators: the %1$s part gets replaced with the status
#. Example, I am online #. Example, I am online
#: converse.js:4233 converse.js:4310 #: converse.js:4388 converse.js:4465
msgid "I am %1$s" msgid "I am %1$s"
msgstr "%1$s vagyok" msgstr "%1$s vagyok"
#: converse.js:4235 converse.js:4315 #: converse.js:4390 converse.js:4470
msgid "Click here to write a custom status message" msgid "Click here to write a custom status message"
msgstr "Egyedi státusz üzenet írása" msgstr "Egyedi státusz üzenet írása"
#: converse.js:4236 converse.js:4316 #: converse.js:4391 converse.js:4471
msgid "Click to change your chat status" msgid "Click to change your chat status"
msgstr "Saját státusz beállítása" msgstr "Saját státusz beállítása"
#: converse.js:4261 #: converse.js:4416
msgid "Custom status" msgid "Custom status"
msgstr "Egyedi státusz" msgstr "Egyedi státusz"
#: converse.js:4290 converse.js:4298 #: converse.js:4445 converse.js:4453
msgid "online" msgid "online"
msgstr "online" msgstr "online"
#: converse.js:4292 #: converse.js:4447
msgid "busy" msgid "busy"
msgstr "elfoglalt" msgstr "elfoglalt"
#: converse.js:4294 #: converse.js:4449
msgid "away for long" msgid "away for long"
msgstr "hosszú ideje távol" msgstr "hosszú ideje távol"
#: converse.js:4296 #: converse.js:4451
msgid "away" msgid "away"
msgstr "távol" msgstr "távol"
#: converse.js:4419 #: converse.js:4574
msgid "XMPP/Jabber Username:" msgid "XMPP/Jabber Username:"
msgstr "XMPP/Jabber azonosító:" msgstr "XMPP/Jabber azonosító:"
#: converse.js:4420 #: converse.js:4575
msgid "Password:" msgid "Password:"
msgstr "Jelszó:" msgstr "Jelszó:"
#: converse.js:4421 #: converse.js:4576
msgid "Log In" msgid "Log In"
msgstr "Belépés" msgstr "Belépés"
#: converse.js:4428 #: converse.js:4583
msgid "Sign in" msgid "Sign in"
msgstr "Belépés" msgstr "Belépés"
#: converse.js:4488 #: converse.js:4643
msgid "Toggle chat" msgid "Toggle chat"
msgstr "" msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Converse.js 0.4\n" "Project-Id-Version: Converse.js 0.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-09-22 17:23+0200\n" "POT-Creation-Date: 2014-11-15 16:36+0100\n"
"PO-Revision-Date: 2013-09-15 22:00+0200\n" "PO-Revision-Date: 2013-09-15 22:00+0200\n"
"Last-Translator: Fabio Bas <ctrlaltca@gmail.com>\n" "Last-Translator: Fabio Bas <ctrlaltca@gmail.com>\n"
"Language-Team: Italian\n" "Language-Team: Italian\n"
@ -20,197 +20,197 @@ msgstr ""
"lang: it\n" "lang: it\n"
"plural_forms: nplurals=2; plural=(n != 1);\n" "plural_forms: nplurals=2; plural=(n != 1);\n"
#: converse.js:338 #: converse.js:316
msgid "unencrypted" msgid "unencrypted"
msgstr "" msgstr ""
#: converse.js:339 #: converse.js:317
msgid "unverified" msgid "unverified"
msgstr "" msgstr ""
#: converse.js:340 #: converse.js:318
msgid "verified" msgid "verified"
msgstr "" msgstr ""
#: converse.js:341 #: converse.js:319
msgid "finished" msgid "finished"
msgstr "" msgstr ""
#: converse.js:344 #: converse.js:322
msgid "This contact is busy" msgid "This contact is busy"
msgstr "" msgstr ""
#: converse.js:345 #: converse.js:323
msgid "This contact is online" msgid "This contact is online"
msgstr "" msgstr ""
#: converse.js:346 #: converse.js:324
msgid "This contact is offline" msgid "This contact is offline"
msgstr "" msgstr ""
#: converse.js:347 #: converse.js:325
#, fuzzy #, fuzzy
msgid "This contact is unavailable" msgid "This contact is unavailable"
msgstr "Questa stanza mostra i membri non disponibili al momento" msgstr "Questa stanza mostra i membri non disponibili al momento"
#: converse.js:348 #: converse.js:326
msgid "This contact is away for an extended period" msgid "This contact is away for an extended period"
msgstr "" msgstr ""
#: converse.js:349 #: converse.js:327
msgid "This contact is away" msgid "This contact is away"
msgstr "" msgstr ""
#: converse.js:351 #: converse.js:329
#, fuzzy #, fuzzy
msgid "Click to hide these contacts" msgid "Click to hide these contacts"
msgstr "Clicca per rimuovere questo contatto" msgstr "Clicca per rimuovere questo contatto"
#: converse.js:353 #: converse.js:331
msgid "My contacts" msgid "My contacts"
msgstr "I miei contatti" msgstr "I miei contatti"
#: converse.js:354 #: converse.js:332
msgid "Pending contacts" msgid "Pending contacts"
msgstr "Contatti in attesa" msgstr "Contatti in attesa"
#: converse.js:355 #: converse.js:333
msgid "Contact requests" msgid "Contact requests"
msgstr "Richieste dei contatti" msgstr "Richieste dei contatti"
#: converse.js:356 #: converse.js:334
msgid "Ungrouped" msgid "Ungrouped"
msgstr "" msgstr ""
#: converse.js:358 #: converse.js:336
msgid "Contacts" msgid "Contacts"
msgstr "Contatti" msgstr "Contatti"
#: converse.js:359 #: converse.js:337
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
#: converse.js:441 #: converse.js:419
#, fuzzy #, fuzzy
msgid "Reconnecting" msgid "Reconnecting"
msgstr "Connessione in corso" msgstr "Connessione in corso"
#: converse.js:476 #: converse.js:454
msgid "Disconnected" msgid "Disconnected"
msgstr "Disconnesso" msgstr "Disconnesso"
#: converse.js:484 #: converse.js:462
msgid "Error" msgid "Error"
msgstr "Errore" msgstr "Errore"
#: converse.js:486 #: converse.js:464
msgid "Connecting" msgid "Connecting"
msgstr "Connessione in corso" msgstr "Connessione in corso"
#: converse.js:489 #: converse.js:467
msgid "Connection Failed" msgid "Connection Failed"
msgstr "Connessione fallita" msgstr "Connessione fallita"
#: converse.js:491 #: converse.js:469
msgid "Authenticating" msgid "Authenticating"
msgstr "Autenticazione in corso" msgstr "Autenticazione in corso"
#: converse.js:494 #: converse.js:472
msgid "Authentication Failed" msgid "Authentication Failed"
msgstr "Autenticazione fallita" msgstr "Autenticazione fallita"
#: converse.js:499 #: converse.js:477
msgid "Disconnecting" msgid "Disconnecting"
msgstr "Disconnessione in corso" msgstr "Disconnessione in corso"
#: converse.js:638 converse.js:684 #: converse.js:617 converse.js:669
msgid "Online Contacts" msgid "Online Contacts"
msgstr "Contatti in linea" msgstr "Contatti in linea"
#: converse.js:802 #: converse.js:787
msgid "Re-establishing encrypted session" msgid "Re-establishing encrypted session"
msgstr "" msgstr ""
#: converse.js:814 #: converse.js:799
msgid "Generating private key." msgid "Generating private key."
msgstr "" msgstr ""
#: converse.js:815 #: converse.js:800
msgid "Your browser might become unresponsive." msgid "Your browser might become unresponsive."
msgstr "" msgstr ""
#: converse.js:850 #: converse.js:835
msgid "" msgid ""
"Authentication request from %1$s\n" "Authentication request from %1$s\n"
"\n" "\n"
"Your buddy is attempting to verify your identity, by asking you the question " "Your chat contact is attempting to verify your identity, by asking you the "
"below.\n" "question below.\n"
"\n" "\n"
"%2$s" "%2$s"
msgstr "" msgstr ""
#: converse.js:859 #: converse.js:844
msgid "Could not verify this user's identify." msgid "Could not verify this user's identify."
msgstr "" msgstr ""
#: converse.js:898 #: converse.js:883
msgid "Exchanging private key with buddy." msgid "Exchanging private key with contact."
msgstr "" msgstr ""
#: converse.js:1045 #: converse.js:1036
msgid "Personal message" msgid "Personal message"
msgstr "Messaggio personale" msgstr "Messaggio personale"
#: converse.js:1077 #: converse.js:1068
#, fuzzy #, fuzzy
msgid "Are you sure you want to clear the messages from this room?" msgid "Are you sure you want to clear the messages from this room?"
msgstr "Non sei nella lista dei membri di questa stanza" msgstr "Non sei nella lista dei membri di questa stanza"
#: converse.js:1099 #: converse.js:1090
msgid "me" msgid "me"
msgstr "" msgstr ""
#: converse.js:1154 #: converse.js:1144
msgid "is typing" msgid "is typing"
msgstr "" msgstr ""
#: converse.js:1157 #: converse.js:1147
msgid "has stopped typing" msgid "has stopped typing"
msgstr "" msgstr ""
#: converse.js:1199 converse.js:2331 #: converse.js:1189 converse.js:2360
msgid "Show this menu" msgid "Show this menu"
msgstr "Mostra questo menu" msgstr "Mostra questo menu"
#: converse.js:1200 #: converse.js:1190
msgid "Write in the third person" msgid "Write in the third person"
msgstr "Scrivi in terza persona" msgstr "Scrivi in terza persona"
#: converse.js:1201 converse.js:2330 #: converse.js:1191 converse.js:2359
msgid "Remove messages" msgid "Remove messages"
msgstr "Rimuovi messaggi" msgstr "Rimuovi messaggi"
#: converse.js:1285 #: converse.js:1275
msgid "Are you sure you want to clear the messages from this chat box?" msgid "Are you sure you want to clear the messages from this chat box?"
msgstr "" msgstr ""
#: converse.js:1320 #: converse.js:1310
msgid "Your message could not be sent" msgid "Your message could not be sent"
msgstr "" msgstr ""
#: converse.js:1323 #: converse.js:1313
msgid "We received an unencrypted message" msgid "We received an unencrypted message"
msgstr "" msgstr ""
#: converse.js:1326 #: converse.js:1316
msgid "We received an unreadable encrypted message" msgid "We received an unreadable encrypted message"
msgstr "" msgstr ""
#: converse.js:1335 #: converse.js:1325
msgid "This user has requested an encrypted session." msgid "This user has requested an encrypted session."
msgstr "" msgstr ""
#: converse.js:1357 #: converse.js:1347
msgid "" msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this " "Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n" "chat.\n"
@ -223,409 +223,409 @@ msgid ""
"Cancel." "Cancel."
msgstr "" msgstr ""
#: converse.js:1370 #: converse.js:1360
msgid "" msgid ""
"You will be prompted to provide a security question and then an answer to " "You will be prompted to provide a security question and then an answer to "
"that question.\n" "that question.\n"
"\n" "\n"
"Your buddy will then be prompted the same question and if they type the " "Your contact will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will be verified." "exact same answer (case sensitive), their identity will be verified."
msgstr "" msgstr ""
#: converse.js:1371 #: converse.js:1361
msgid "What is your security question?" msgid "What is your security question?"
msgstr "" msgstr ""
#: converse.js:1373 #: converse.js:1363
msgid "What is the answer to the security question?" msgid "What is the answer to the security question?"
msgstr "" msgstr ""
#: converse.js:1377 #: converse.js:1367
msgid "Invalid authentication scheme provided" msgid "Invalid authentication scheme provided"
msgstr "" msgstr ""
#: converse.js:1488 #: converse.js:1482
msgid "Your messages are not encrypted anymore" msgid "Your messages are not encrypted anymore"
msgstr "" msgstr ""
#: converse.js:1490 #: converse.js:1484
msgid "" msgid ""
"Your messages are now encrypted but your buddy's identity has not been " "Your messages are now encrypted but your contact's identity has not been "
"verified." "verified."
msgstr "" msgstr ""
#: converse.js:1492 #: converse.js:1486
msgid "Your buddy's identify has been verified." msgid "Your contact's identify has been verified."
msgstr "" msgstr ""
#: converse.js:1494 #: converse.js:1488
msgid "Your buddy has ended encryption on their end, you should do the same." msgid "Your contact has ended encryption on their end, you should do the same."
msgstr "" msgstr ""
#: converse.js:1503 #: converse.js:1497
msgid "Your messages are not encrypted. Click here to enable OTR encryption." msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr "" msgstr ""
#: converse.js:1505 #: converse.js:1499
msgid "Your messages are encrypted, but your buddy has not been verified." msgid "Your messages are encrypted, but your contact has not been verified."
msgstr "" msgstr ""
#: converse.js:1507 #: converse.js:1501
msgid "Your messages are encrypted and your buddy verified." msgid "Your messages are encrypted and your contact verified."
msgstr "" msgstr ""
#: converse.js:1509 #: converse.js:1503
msgid "" msgid ""
"Your buddy has closed their end of the private session, you should do the " "Your contact has closed their end of the private session, you should do the "
"same" "same"
msgstr "" msgstr ""
#: converse.js:1519 #: converse.js:1513
#, fuzzy #, fuzzy
msgid "Clear all messages" msgid "Clear all messages"
msgstr "Messaggio personale" msgstr "Messaggio personale"
#: converse.js:1520 #: converse.js:1514
msgid "End encrypted conversation" msgid "End encrypted conversation"
msgstr "" msgstr ""
#: converse.js:1521 #: converse.js:1515
msgid "Hide the list of participants" msgid "Hide the list of participants"
msgstr "" msgstr ""
#: converse.js:1522 #: converse.js:1516
msgid "Refresh encrypted conversation" msgid "Refresh encrypted conversation"
msgstr "" msgstr ""
#: converse.js:1523 #: converse.js:1517
msgid "Start a call" msgid "Start a call"
msgstr "" msgstr ""
#: converse.js:1524 #: converse.js:1518
msgid "Start encrypted conversation" msgid "Start encrypted conversation"
msgstr "" msgstr ""
#: converse.js:1525 #: converse.js:1519
msgid "Verify with fingerprints" msgid "Verify with fingerprints"
msgstr "" msgstr ""
#: converse.js:1526 #: converse.js:1520
msgid "Verify with SMP" msgid "Verify with SMP"
msgstr "" msgstr ""
#: converse.js:1527 #: converse.js:1521
msgid "What's this?" msgid "What's this?"
msgstr "" msgstr ""
#: converse.js:1618 #: converse.js:1612
msgid "Online" msgid "Online"
msgstr "In linea" msgstr "In linea"
#: converse.js:1619 #: converse.js:1613
msgid "Busy" msgid "Busy"
msgstr "Occupato" msgstr "Occupato"
#: converse.js:1620 #: converse.js:1614
msgid "Away" msgid "Away"
msgstr "Assente" msgstr "Assente"
#: converse.js:1621 #: converse.js:1615
msgid "Offline" msgid "Offline"
msgstr "Non in linea" msgstr "Non in linea"
#: converse.js:1622 #: converse.js:1616
#, fuzzy #, fuzzy
msgid "Log out" msgid "Log out"
msgstr "Entra" msgstr "Entra"
#: converse.js:1628 #: converse.js:1622
msgid "Contact name" msgid "Contact name"
msgstr "Nome del contatto" msgstr "Nome del contatto"
#: converse.js:1629 #: converse.js:1623
msgid "Search" msgid "Search"
msgstr "Cerca" msgstr "Cerca"
#: converse.js:1633 #: converse.js:1627
msgid "Contact username" msgid "Contact username"
msgstr "Nome utente del contatto" msgstr "Nome utente del contatto"
#: converse.js:1634 #: converse.js:1628
msgid "Add" msgid "Add"
msgstr "Aggiungi" msgstr "Aggiungi"
#: converse.js:1639 #: converse.js:1633
msgid "Click to add new chat contacts" msgid "Click to add new chat contacts"
msgstr "Clicca per aggiungere nuovi contatti alla chat" msgstr "Clicca per aggiungere nuovi contatti alla chat"
#: converse.js:1640 #: converse.js:1634
msgid "Add a contact" msgid "Add a contact"
msgstr "Aggiungi contatti" msgstr "Aggiungi contatti"
#: converse.js:1664 #: converse.js:1658
msgid "No users found" msgid "No users found"
msgstr "Nessun utente trovato" msgstr "Nessun utente trovato"
#: converse.js:1670 #: converse.js:1664
msgid "Click to add as a chat contact" msgid "Click to add as a chat contact"
msgstr "Clicca per aggiungere il contatto alla chat" msgstr "Clicca per aggiungere il contatto alla chat"
#: converse.js:1725 #: converse.js:1727
msgid "Room name" msgid "Room name"
msgstr "Nome stanza" msgstr "Nome stanza"
#: converse.js:1726 #: converse.js:1728
msgid "Nickname" msgid "Nickname"
msgstr "Soprannome" msgstr "Soprannome"
#: converse.js:1727 #: converse.js:1729
msgid "Server" msgid "Server"
msgstr "Server" msgstr "Server"
#: converse.js:1728 #: converse.js:1730
msgid "Join" msgid "Join"
msgstr "Entra" msgstr "Entra"
#: converse.js:1729 #: converse.js:1731
msgid "Show rooms" msgid "Show rooms"
msgstr "Mostra stanze" msgstr "Mostra stanze"
#: converse.js:1749 #: converse.js:1735
msgid "Rooms" msgid "Rooms"
msgstr "Stanze" msgstr "Stanze"
#. For translators: %1$s is a variable and will be replaced with the XMPP server name #. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:1756 #: converse.js:1755
msgid "No rooms on %1$s" msgid "No rooms on %1$s"
msgstr "Nessuna stanza su %1$s" msgstr "Nessuna stanza su %1$s"
#. For translators: %1$s is a variable and will be #. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name #. replaced with the XMPP server name
#: converse.js:1771 #: converse.js:1770
msgid "Rooms on %1$s" msgid "Rooms on %1$s"
msgstr "Stanze su %1$s" msgstr "Stanze su %1$s"
#: converse.js:1780 #: converse.js:1779
msgid "Click to open this room" msgid "Click to open this room"
msgstr "Clicca per aprire questa stanza" msgstr "Clicca per aprire questa stanza"
#: converse.js:1781 #: converse.js:1780
msgid "Show more information on this room" msgid "Show more information on this room"
msgstr "Mostra più informazioni su questa stanza" msgstr "Mostra più informazioni su questa stanza"
#: converse.js:1843 #: converse.js:1842
msgid "Description:" msgid "Description:"
msgstr "Descrizione:" msgstr "Descrizione:"
#: converse.js:1844 #: converse.js:1843
msgid "Occupants:" msgid "Occupants:"
msgstr "Utenti presenti:" msgstr "Utenti presenti:"
#: converse.js:1845 #: converse.js:1844
msgid "Features:" msgid "Features:"
msgstr "Funzionalità:" msgstr "Funzionalità:"
#: converse.js:1846 #: converse.js:1845
msgid "Requires authentication" msgid "Requires authentication"
msgstr "Richiede autenticazione" msgstr "Richiede autenticazione"
#: converse.js:1847 #: converse.js:1846
msgid "Hidden" msgid "Hidden"
msgstr "Nascosta" msgstr "Nascosta"
#: converse.js:1848 #: converse.js:1847
msgid "Requires an invitation" msgid "Requires an invitation"
msgstr "Richiede un invito" msgstr "Richiede un invito"
#: converse.js:1849 #: converse.js:1848
msgid "Moderated" msgid "Moderated"
msgstr "Moderata" msgstr "Moderata"
#: converse.js:1850 #: converse.js:1849
msgid "Non-anonymous" msgid "Non-anonymous"
msgstr "Non-anonima" msgstr "Non-anonima"
#: converse.js:1851 #: converse.js:1850
msgid "Open room" msgid "Open room"
msgstr "Stanza aperta" msgstr "Stanza aperta"
#: converse.js:1852 #: converse.js:1851
msgid "Permanent room" msgid "Permanent room"
msgstr "Stanza permanente" msgstr "Stanza permanente"
#: converse.js:1853 #: converse.js:1852
msgid "Public" msgid "Public"
msgstr "Pubblica" msgstr "Pubblica"
#: converse.js:1854 #: converse.js:1853
msgid "Semi-anonymous" msgid "Semi-anonymous"
msgstr "Semi-anonima" msgstr "Semi-anonima"
#: converse.js:1855 #: converse.js:1854
msgid "Temporary room" msgid "Temporary room"
msgstr "Stanza temporanea" msgstr "Stanza temporanea"
#: converse.js:1856 #: converse.js:1855
msgid "Unmoderated" msgid "Unmoderated"
msgstr "Non moderata" msgstr "Non moderata"
#: converse.js:2085 #: converse.js:2108
msgid "This user is a moderator" msgid "This user is a moderator"
msgstr "Questo utente è un moderatore" msgstr "Questo utente è un moderatore"
#: converse.js:2086 #: converse.js:2109
msgid "This user can send messages in this room" msgid "This user can send messages in this room"
msgstr "Questo utente può inviare messaggi in questa stanza" msgstr "Questo utente può inviare messaggi in questa stanza"
#: converse.js:2087 #: converse.js:2110
msgid "This user can NOT send messages in this room" msgid "This user can NOT send messages in this room"
msgstr "Questo utente NON può inviare messaggi in questa stanza" msgstr "Questo utente NON può inviare messaggi in questa stanza"
#: converse.js:2119 #: converse.js:2142
msgid "Invite..." msgid "Invite..."
msgstr "" msgstr ""
#: converse.js:2120 #: converse.js:2143
#, fuzzy #, fuzzy
msgid "Occupants" msgid "Occupants"
msgstr "Utenti presenti:" msgstr "Utenti presenti:"
#: converse.js:2185 #: converse.js:2208
msgid "You are about to invite %1$s to the chat room \"%2$s\". " msgid "You are about to invite %1$s to the chat room \"%2$s\". "
msgstr "" msgstr ""
#: converse.js:2186 #: converse.js:2209
msgid "" msgid ""
"You may optionally include a message, explaining the reason for the " "You may optionally include a message, explaining the reason for the "
"invitation." "invitation."
msgstr "" msgstr ""
#: converse.js:2269 #: converse.js:2292
msgid "Message" msgid "Message"
msgstr "Messaggio" msgstr "Messaggio"
#: converse.js:2307 #: converse.js:2328
msgid "Error: could not execute the command" msgid "Error: could not execute the command"
msgstr "" msgstr ""
#: converse.js:2329 #: converse.js:2358
#, fuzzy #, fuzzy
msgid "Ban user from room" msgid "Ban user from room"
msgstr "Bandisci utente dalla stanza" msgstr "Bandisci utente dalla stanza"
#: converse.js:2332 #: converse.js:2361
#, fuzzy #, fuzzy
msgid "Kick user from room" msgid "Kick user from room"
msgstr "Espelli utente dalla stanza" msgstr "Espelli utente dalla stanza"
#: converse.js:2333 #: converse.js:2362
#, fuzzy #, fuzzy
msgid "Write in 3rd person" msgid "Write in 3rd person"
msgstr "Scrivi in terza persona" msgstr "Scrivi in terza persona"
#: converse.js:2334 #: converse.js:2363
msgid "Remove user's ability to post messages" msgid "Remove user's ability to post messages"
msgstr "" msgstr ""
#: converse.js:2335 #: converse.js:2364
msgid "Change your nickname" msgid "Change your nickname"
msgstr "" msgstr ""
#: converse.js:2336 #: converse.js:2365
#, fuzzy #, fuzzy
msgid "Set room topic" msgid "Set room topic"
msgstr "Cambia oggetto della stanza" msgstr "Cambia oggetto della stanza"
#: converse.js:2337 #: converse.js:2366
msgid "Allow muted user to post messages" msgid "Allow muted user to post messages"
msgstr "" msgstr ""
#: converse.js:2441 converse.js:4262 #: converse.js:2489 converse.js:4417
msgid "Save" msgid "Save"
msgstr "Salva" msgstr "Salva"
#: converse.js:2442 #: converse.js:2490
msgid "Cancel" msgid "Cancel"
msgstr "Annulla" msgstr "Annulla"
#: converse.js:2487 #: converse.js:2544
msgid "An error occurred while trying to save the form." msgid "An error occurred while trying to save the form."
msgstr "Errore durante il salvataggio del modulo" msgstr "Errore durante il salvataggio del modulo"
#: converse.js:2531 #: converse.js:2588
msgid "This chatroom requires a password" msgid "This chatroom requires a password"
msgstr "Questa stanza richiede una password" msgstr "Questa stanza richiede una password"
#: converse.js:2532 #: converse.js:2589
msgid "Password: " msgid "Password: "
msgstr "Password: " msgstr "Password: "
#: converse.js:2533 #: converse.js:2590
msgid "Submit" msgid "Submit"
msgstr "Invia" msgstr "Invia"
#: converse.js:2568 #: converse.js:2625
msgid "This room is not anonymous" msgid "This room is not anonymous"
msgstr "Questa stanza non è anonima" msgstr "Questa stanza non è anonima"
#: converse.js:2569 #: converse.js:2626
msgid "This room now shows unavailable members" msgid "This room now shows unavailable members"
msgstr "Questa stanza mostra i membri non disponibili al momento" msgstr "Questa stanza mostra i membri non disponibili al momento"
#: converse.js:2570 #: converse.js:2627
msgid "This room does not show unavailable members" msgid "This room does not show unavailable members"
msgstr "Questa stanza non mostra i membri non disponibili" msgstr "Questa stanza non mostra i membri non disponibili"
#: converse.js:2571 #: converse.js:2628
msgid "Non-privacy-related room configuration has changed" msgid "Non-privacy-related room configuration has changed"
msgstr "" msgstr ""
"Una configurazione della stanza non legata alla privacy è stata modificata" "Una configurazione della stanza non legata alla privacy è stata modificata"
#: converse.js:2572 #: converse.js:2629
msgid "Room logging is now enabled" msgid "Room logging is now enabled"
msgstr "La registrazione è abilitata nella stanza" msgstr "La registrazione è abilitata nella stanza"
#: converse.js:2573 #: converse.js:2630
msgid "Room logging is now disabled" msgid "Room logging is now disabled"
msgstr "La registrazione è disabilitata nella stanza" msgstr "La registrazione è disabilitata nella stanza"
#: converse.js:2574 #: converse.js:2631
msgid "This room is now non-anonymous" msgid "This room is now non-anonymous"
msgstr "Questa stanza è non-anonima" msgstr "Questa stanza è non-anonima"
#: converse.js:2575 #: converse.js:2632
msgid "This room is now semi-anonymous" msgid "This room is now semi-anonymous"
msgstr "Questa stanza è semi-anonima" msgstr "Questa stanza è semi-anonima"
#: converse.js:2576 #: converse.js:2633
msgid "This room is now fully-anonymous" msgid "This room is now fully-anonymous"
msgstr "Questa stanza è completamente-anonima" msgstr "Questa stanza è completamente-anonima"
#: converse.js:2577 #: converse.js:2634
msgid "A new room has been created" msgid "A new room has been created"
msgstr "Una nuova stanza è stata creata" msgstr "Una nuova stanza è stata creata"
#: converse.js:2581 converse.js:2681 #: converse.js:2638 converse.js:2738
msgid "You have been banned from this room" msgid "You have been banned from this room"
msgstr "Sei stato bandito da questa stanza" msgstr "Sei stato bandito da questa stanza"
#: converse.js:2582 #: converse.js:2639
msgid "You have been kicked from this room" msgid "You have been kicked from this room"
msgstr "Sei stato espulso da questa stanza" msgstr "Sei stato espulso da questa stanza"
#: converse.js:2583 #: converse.js:2640
msgid "You have been removed from this room because of an affiliation change" msgid "You have been removed from this room because of an affiliation change"
msgstr "" msgstr ""
"Sei stato rimosso da questa stanza a causa di un cambio di affiliazione" "Sei stato rimosso da questa stanza a causa di un cambio di affiliazione"
#: converse.js:2584 #: converse.js:2641
msgid "" msgid ""
"You have been removed from this room because the room has changed to members-" "You have been removed from this room because the room has changed to members-"
"only and you're not a member" "only and you're not a member"
msgstr "" msgstr ""
"Sei stato rimosso da questa stanza poiché ora la stanza accetta solo membri" "Sei stato rimosso da questa stanza poiché ora la stanza accetta solo membri"
#: converse.js:2585 #: converse.js:2642
msgid "" msgid ""
"You have been removed from this room because the MUC (Multi-user chat) " "You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down." "service is being shut down."
@ -633,176 +633,176 @@ msgstr ""
"Sei stato rimosso da questa stanza poiché il servizio MUC (Chat multi " "Sei stato rimosso da questa stanza poiché il servizio MUC (Chat multi "
"utente) è in fase di spegnimento" "utente) è in fase di spegnimento"
#: converse.js:2599 #: converse.js:2656
msgid "<strong>%1$s</strong> has been banned" msgid "<strong>%1$s</strong> has been banned"
msgstr "<strong>%1$s</strong> è stato bandito" msgstr "<strong>%1$s</strong> è stato bandito"
#: converse.js:2600 #: converse.js:2657
#, fuzzy #, fuzzy
msgid "<strong>%1$s</strong>'s nickname has changed" msgid "<strong>%1$s</strong>'s nickname has changed"
msgstr "<strong>%1$s</strong> è stato bandito" msgstr "<strong>%1$s</strong> è stato bandito"
#: converse.js:2601 #: converse.js:2658
msgid "<strong>%1$s</strong> has been kicked out" msgid "<strong>%1$s</strong> has been kicked out"
msgstr "<strong>%1$s</strong> è stato espulso" msgstr "<strong>%1$s</strong> è stato espulso"
#: converse.js:2602 #: converse.js:2659
msgid "<strong>%1$s</strong> has been removed because of an affiliation change" msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr "" msgstr ""
"<strong>%1$s</strong> è stato rimosso a causa di un cambio di affiliazione" "<strong>%1$s</strong> è stato rimosso a causa di un cambio di affiliazione"
#: converse.js:2603 #: converse.js:2660
msgid "<strong>%1$s</strong> has been removed for not being a member" msgid "<strong>%1$s</strong> has been removed for not being a member"
msgstr "<strong>%1$s</strong> è stato rimosso in quanto non membro" msgstr "<strong>%1$s</strong> è stato rimosso in quanto non membro"
#: converse.js:2607 #: converse.js:2664
#, fuzzy #, fuzzy
msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>" msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>"
msgstr "Il tuo soprannome è stato cambiato" msgstr "Il tuo soprannome è stato cambiato"
#: converse.js:2608 #: converse.js:2665
#, fuzzy #, fuzzy
msgid "Your nickname has been changed to: <strong>%1$s</strong>" msgid "Your nickname has been changed to: <strong>%1$s</strong>"
msgstr "Il tuo soprannome è stato cambiato" msgstr "Il tuo soprannome è stato cambiato"
#: converse.js:2656 converse.js:2666 #: converse.js:2713 converse.js:2723
msgid "The reason given is: \"" msgid "The reason given is: \""
msgstr "" msgstr ""
#: converse.js:2679 #: converse.js:2736
msgid "You are not on the member list of this room" msgid "You are not on the member list of this room"
msgstr "Non sei nella lista dei membri di questa stanza" msgstr "Non sei nella lista dei membri di questa stanza"
#: converse.js:2685 #: converse.js:2742
msgid "No nickname was specified" msgid "No nickname was specified"
msgstr "Nessun soprannome specificato" msgstr "Nessun soprannome specificato"
#: converse.js:2689 #: converse.js:2746
msgid "You are not allowed to create new rooms" msgid "You are not allowed to create new rooms"
msgstr "Non ti è permesso creare nuove stanze" msgstr "Non ti è permesso creare nuove stanze"
#: converse.js:2691 #: converse.js:2748
msgid "Your nickname doesn't conform to this room's policies" msgid "Your nickname doesn't conform to this room's policies"
msgstr "Il tuo soprannome non è conforme alle regole di questa stanza" msgstr "Il tuo soprannome non è conforme alle regole di questa stanza"
#: converse.js:2695 #: converse.js:2752
msgid "Your nickname is already taken" msgid "Your nickname is already taken"
msgstr "Il tuo soprannome è già utilizzato" msgstr "Il tuo soprannome è già utilizzato"
#: converse.js:2697 #: converse.js:2754
msgid "This room does not (yet) exist" msgid "This room does not (yet) exist"
msgstr "Questa stanza non esiste (per ora)" msgstr "Questa stanza non esiste (per ora)"
#: converse.js:2699 #: converse.js:2756
msgid "This room has reached it's maximum number of occupants" msgid "This room has reached it's maximum number of occupants"
msgstr "Questa stanza ha raggiunto il limite massimo di utenti" msgstr "Questa stanza ha raggiunto il limite massimo di utenti"
#: converse.js:2736 #: converse.js:2798
msgid "Topic set by %1$s to: %2$s" msgid "Topic set by %1$s to: %2$s"
msgstr "Topic impostato da %1$s a: %2$s" msgstr "Topic impostato da %1$s a: %2$s"
#: converse.js:2818 #: converse.js:2880
msgid "%1$s has invited you to join a chat room: %2$s" msgid "%1$s has invited you to join a chat room: %2$s"
msgstr "" msgstr ""
#: converse.js:2822 #: converse.js:2884
msgid "" msgid ""
"%1$s has invited you to join a chat room: %2$s, and left the following " "%1$s has invited you to join a chat room: %2$s, and left the following "
"reason: \"%3$s\"" "reason: \"%3$s\""
msgstr "" msgstr ""
#: converse.js:3058 #: converse.js:3140
#, fuzzy #, fuzzy
msgid "Click to restore this chat" msgid "Click to restore this chat"
msgstr "Clicca per rimuovere questo contatto" msgstr "Clicca per rimuovere questo contatto"
#: converse.js:3202 #: converse.js:3285
msgid "Minimized" msgid "Minimized"
msgstr "" msgstr ""
#: converse.js:3274 #: converse.js:3381 converse.js:3399
#, fuzzy
msgid "Are you sure you want to remove this contact?"
msgstr "Clicca per rimuovere questo contatto"
#: converse.js:3297
#, fuzzy
msgid "Are you sure you want to decline this contact request?"
msgstr "Clicca per rimuovere questo contatto"
#: converse.js:3341 converse.js:3359
msgid "Click to remove this contact" msgid "Click to remove this contact"
msgstr "Clicca per rimuovere questo contatto" msgstr "Clicca per rimuovere questo contatto"
#: converse.js:3348 #: converse.js:3388
#, fuzzy #, fuzzy
msgid "Click to accept this contact request" msgid "Click to accept this contact request"
msgstr "Clicca per rimuovere questo contatto" msgstr "Clicca per rimuovere questo contatto"
#: converse.js:3349 #: converse.js:3389
#, fuzzy #, fuzzy
msgid "Click to decline this contact request" msgid "Click to decline this contact request"
msgstr "Clicca per rimuovere questo contatto" msgstr "Clicca per rimuovere questo contatto"
#: converse.js:3358 #: converse.js:3398
msgid "Click to chat with this contact" msgid "Click to chat with this contact"
msgstr "Clicca per parlare con questo contatto" msgstr "Clicca per parlare con questo contatto"
#: converse.js:3874 #: converse.js:3423
#, fuzzy
msgid "Are you sure you want to remove this contact?"
msgstr "Clicca per rimuovere questo contatto"
#: converse.js:3446
#, fuzzy
msgid "Are you sure you want to decline this contact request?"
msgstr "Clicca per rimuovere questo contatto"
#: converse.js:3972
msgid "Type to filter" msgid "Type to filter"
msgstr "" msgstr ""
#. For translators: the %1$s part gets replaced with the status #. For translators: the %1$s part gets replaced with the status
#. Example, I am online #. Example, I am online
#: converse.js:4233 converse.js:4310 #: converse.js:4388 converse.js:4465
msgid "I am %1$s" msgid "I am %1$s"
msgstr "Sono %1$s" msgstr "Sono %1$s"
#: converse.js:4235 converse.js:4315 #: converse.js:4390 converse.js:4470
msgid "Click here to write a custom status message" msgid "Click here to write a custom status message"
msgstr "Clicca qui per scrivere un messaggio di stato personalizzato" msgstr "Clicca qui per scrivere un messaggio di stato personalizzato"
#: converse.js:4236 converse.js:4316 #: converse.js:4391 converse.js:4471
msgid "Click to change your chat status" msgid "Click to change your chat status"
msgstr "Clicca per cambiare il tuo stato" msgstr "Clicca per cambiare il tuo stato"
#: converse.js:4261 #: converse.js:4416
msgid "Custom status" msgid "Custom status"
msgstr "Stato personalizzato" msgstr "Stato personalizzato"
#: converse.js:4290 converse.js:4298 #: converse.js:4445 converse.js:4453
msgid "online" msgid "online"
msgstr "in linea" msgstr "in linea"
#: converse.js:4292 #: converse.js:4447
msgid "busy" msgid "busy"
msgstr "occupato" msgstr "occupato"
#: converse.js:4294 #: converse.js:4449
msgid "away for long" msgid "away for long"
msgstr "assente da molto" msgstr "assente da molto"
#: converse.js:4296 #: converse.js:4451
msgid "away" msgid "away"
msgstr "assente" msgstr "assente"
#: converse.js:4419 #: converse.js:4574
msgid "XMPP/Jabber Username:" msgid "XMPP/Jabber Username:"
msgstr "Nome utente:" msgstr "Nome utente:"
#: converse.js:4420 #: converse.js:4575
msgid "Password:" msgid "Password:"
msgstr "Password:" msgstr "Password:"
#: converse.js:4421 #: converse.js:4576
msgid "Log In" msgid "Log In"
msgstr "Entra" msgstr "Entra"
#: converse.js:4428 #: converse.js:4583
msgid "Sign in" msgid "Sign in"
msgstr "Accesso" msgstr "Accesso"
#: converse.js:4488 #: converse.js:4643
msgid "Toggle chat" msgid "Toggle chat"
msgstr "" msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Converse.js 0.4\n" "Project-Id-Version: Converse.js 0.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-09-22 17:23+0200\n" "POT-Creation-Date: 2014-11-15 16:36+0100\n"
"PO-Revision-Date: 2013-09-15 22:03+0200\n" "PO-Revision-Date: 2013-09-15 22:03+0200\n"
"Last-Translator: Maarten Kling <maarten@fourdigits.nl>\n" "Last-Translator: Maarten Kling <maarten@fourdigits.nl>\n"
"Language-Team: Dutch\n" "Language-Team: Dutch\n"
@ -20,198 +20,198 @@ msgstr ""
"lang: nl\n" "lang: nl\n"
"plural_forms: nplurals=2; plural=(n != 1);\n" "plural_forms: nplurals=2; plural=(n != 1);\n"
#: converse.js:338 #: converse.js:316
msgid "unencrypted" msgid "unencrypted"
msgstr "ongecodeerde" msgstr "ongecodeerde"
#: converse.js:339 #: converse.js:317
msgid "unverified" msgid "unverified"
msgstr "niet geverifieerd" msgstr "niet geverifieerd"
#: converse.js:340 #: converse.js:318
msgid "verified" msgid "verified"
msgstr "geverifieerd" msgstr "geverifieerd"
#: converse.js:341 #: converse.js:319
msgid "finished" msgid "finished"
msgstr "klaar" msgstr "klaar"
#: converse.js:344 #: converse.js:322
msgid "This contact is busy" msgid "This contact is busy"
msgstr "Contact is bezet" msgstr "Contact is bezet"
#: converse.js:345 #: converse.js:323
msgid "This contact is online" msgid "This contact is online"
msgstr "Contact is online" msgstr "Contact is online"
#: converse.js:346 #: converse.js:324
msgid "This contact is offline" msgid "This contact is offline"
msgstr "Contact is offline" msgstr "Contact is offline"
#: converse.js:347 #: converse.js:325
msgid "This contact is unavailable" msgid "This contact is unavailable"
msgstr "Contact is niet beschikbaar" msgstr "Contact is niet beschikbaar"
#: converse.js:348 #: converse.js:326
msgid "This contact is away for an extended period" msgid "This contact is away for an extended period"
msgstr "Contact is afwezig voor lange periode" msgstr "Contact is afwezig voor lange periode"
#: converse.js:349 #: converse.js:327
msgid "This contact is away" msgid "This contact is away"
msgstr "Conact is afwezig" msgstr "Conact is afwezig"
#: converse.js:351 #: converse.js:329
#, fuzzy #, fuzzy
msgid "Click to hide these contacts" msgid "Click to hide these contacts"
msgstr "Klik om contact te verwijderen" msgstr "Klik om contact te verwijderen"
#: converse.js:353 #: converse.js:331
msgid "My contacts" msgid "My contacts"
msgstr "Mijn contacts" msgstr "Mijn contacts"
#: converse.js:354 #: converse.js:332
msgid "Pending contacts" msgid "Pending contacts"
msgstr "Conacten in afwachting van" msgstr "Conacten in afwachting van"
#: converse.js:355 #: converse.js:333
msgid "Contact requests" msgid "Contact requests"
msgstr "Contact uitnodiging" msgstr "Contact uitnodiging"
#: converse.js:356 #: converse.js:334
msgid "Ungrouped" msgid "Ungrouped"
msgstr "" msgstr ""
#: converse.js:358 #: converse.js:336
msgid "Contacts" msgid "Contacts"
msgstr "Contacten" msgstr "Contacten"
#: converse.js:359 #: converse.js:337
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
#: converse.js:441 #: converse.js:419
#, fuzzy #, fuzzy
msgid "Reconnecting" msgid "Reconnecting"
msgstr "Verbinden" msgstr "Verbinden"
#: converse.js:476 #: converse.js:454
msgid "Disconnected" msgid "Disconnected"
msgstr "Verbinding verbroken." msgstr "Verbinding verbroken."
#: converse.js:484 #: converse.js:462
msgid "Error" msgid "Error"
msgstr "Error" msgstr "Error"
#: converse.js:486 #: converse.js:464
msgid "Connecting" msgid "Connecting"
msgstr "Verbinden" msgstr "Verbinden"
#: converse.js:489 #: converse.js:467
msgid "Connection Failed" msgid "Connection Failed"
msgstr "Verbinden mislukt" msgstr "Verbinden mislukt"
#: converse.js:491 #: converse.js:469
msgid "Authenticating" msgid "Authenticating"
msgstr "Authenticeren" msgstr "Authenticeren"
#: converse.js:494 #: converse.js:472
msgid "Authentication Failed" msgid "Authentication Failed"
msgstr "Authenticeren mislukt" msgstr "Authenticeren mislukt"
#: converse.js:499 #: converse.js:477
msgid "Disconnecting" msgid "Disconnecting"
msgstr "" msgstr ""
#: converse.js:638 converse.js:684 #: converse.js:617 converse.js:669
msgid "Online Contacts" msgid "Online Contacts"
msgstr "Online Contacten" msgstr "Online Contacten"
#: converse.js:802 #: converse.js:787
msgid "Re-establishing encrypted session" msgid "Re-establishing encrypted session"
msgstr "Bezig versleutelde sessie te herstellen" msgstr "Bezig versleutelde sessie te herstellen"
#: converse.js:814 #: converse.js:799
msgid "Generating private key." msgid "Generating private key."
msgstr "" msgstr ""
#: converse.js:815 #: converse.js:800
msgid "Your browser might become unresponsive." msgid "Your browser might become unresponsive."
msgstr "" msgstr ""
#: converse.js:850 #: converse.js:835
msgid "" msgid ""
"Authentication request from %1$s\n" "Authentication request from %1$s\n"
"\n" "\n"
"Your buddy is attempting to verify your identity, by asking you the question " "Your chat contact is attempting to verify your identity, by asking you the "
"below.\n" "question below.\n"
"\n" "\n"
"%2$s" "%2$s"
msgstr "" msgstr ""
#: converse.js:859 #: converse.js:844
msgid "Could not verify this user's identify." msgid "Could not verify this user's identify."
msgstr "Niet kon de identiteit van deze gebruiker niet identificeren." msgstr "Niet kon de identiteit van deze gebruiker niet identificeren."
#: converse.js:898 #: converse.js:883
msgid "Exchanging private key with buddy." msgid "Exchanging private key with contact."
msgstr "" msgstr ""
#: converse.js:1045 #: converse.js:1036
msgid "Personal message" msgid "Personal message"
msgstr "Persoonlijk bericht" msgstr "Persoonlijk bericht"
#: converse.js:1077 #: converse.js:1068
#, fuzzy #, fuzzy
msgid "Are you sure you want to clear the messages from this room?" msgid "Are you sure you want to clear the messages from this room?"
msgstr "Je bent niet een gebruiker van deze room" msgstr "Je bent niet een gebruiker van deze room"
#: converse.js:1099 #: converse.js:1090
msgid "me" msgid "me"
msgstr "ikzelf" msgstr "ikzelf"
#: converse.js:1154 #: converse.js:1144
#, fuzzy #, fuzzy
msgid "is typing" msgid "is typing"
msgstr "%1$s is aan typen" msgstr "%1$s is aan typen"
#: converse.js:1157 #: converse.js:1147
#, fuzzy #, fuzzy
msgid "has stopped typing" msgid "has stopped typing"
msgstr "%1$s is aan typen" msgstr "%1$s is aan typen"
#: converse.js:1199 converse.js:2331 #: converse.js:1189 converse.js:2360
msgid "Show this menu" msgid "Show this menu"
msgstr "Toon dit menu" msgstr "Toon dit menu"
#: converse.js:1200 #: converse.js:1190
msgid "Write in the third person" msgid "Write in the third person"
msgstr "Schrijf in de 3de persoon" msgstr "Schrijf in de 3de persoon"
#: converse.js:1201 converse.js:2330 #: converse.js:1191 converse.js:2359
msgid "Remove messages" msgid "Remove messages"
msgstr "Verwijder bericht" msgstr "Verwijder bericht"
#: converse.js:1285 #: converse.js:1275
msgid "Are you sure you want to clear the messages from this chat box?" msgid "Are you sure you want to clear the messages from this chat box?"
msgstr "" msgstr ""
#: converse.js:1320 #: converse.js:1310
msgid "Your message could not be sent" msgid "Your message could not be sent"
msgstr "Je bericht kon niet worden verzonden" msgstr "Je bericht kon niet worden verzonden"
#: converse.js:1323 #: converse.js:1313
msgid "We received an unencrypted message" msgid "We received an unencrypted message"
msgstr "We ontvingen een unencrypted bericht " msgstr "We ontvingen een unencrypted bericht "
#: converse.js:1326 #: converse.js:1316
msgid "We received an unreadable encrypted message" msgid "We received an unreadable encrypted message"
msgstr "We ontvangen een onleesbaar unencrypted bericht" msgstr "We ontvangen een onleesbaar unencrypted bericht"
#: converse.js:1335 #: converse.js:1325
msgid "This user has requested an encrypted session." msgid "This user has requested an encrypted session."
msgstr "Deze gebruiker heeft een encrypted sessie aangevraagd." msgstr "Deze gebruiker heeft een encrypted sessie aangevraagd."
#: converse.js:1357 #: converse.js:1347
msgid "" msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this " "Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n" "chat.\n"
@ -224,581 +224,587 @@ msgid ""
"Cancel." "Cancel."
msgstr "" msgstr ""
#: converse.js:1370 #: converse.js:1360
msgid "" msgid ""
"You will be prompted to provide a security question and then an answer to " "You will be prompted to provide a security question and then an answer to "
"that question.\n" "that question.\n"
"\n" "\n"
"Your buddy will then be prompted the same question and if they type the " "Your contact will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will be verified." "exact same answer (case sensitive), their identity will be verified."
msgstr "" msgstr ""
#: converse.js:1371 #: converse.js:1361
msgid "What is your security question?" msgid "What is your security question?"
msgstr "Wat is jou sericury vraag?" msgstr "Wat is jou sericury vraag?"
#: converse.js:1373 #: converse.js:1363
msgid "What is the answer to the security question?" msgid "What is the answer to the security question?"
msgstr "Wat is het antwoord op de security vraag?" msgstr "Wat is het antwoord op de security vraag?"
#: converse.js:1377 #: converse.js:1367
msgid "Invalid authentication scheme provided" msgid "Invalid authentication scheme provided"
msgstr "" msgstr ""
#: converse.js:1488 #: converse.js:1482
msgid "Your messages are not encrypted anymore" msgid "Your messages are not encrypted anymore"
msgstr "Je berichten zijn niet meer encrypted" msgstr "Je berichten zijn niet meer encrypted"
#: converse.js:1490 #: converse.js:1484
#, fuzzy
msgid "" msgid ""
"Your messages are now encrypted but your buddy's identity has not been " "Your messages are now encrypted but your contact's identity has not been "
"verified." "verified."
msgstr "" msgstr "Jou berichten zijn encrypted, maar je contact is niet geverifieerd."
#: converse.js:1492 #: converse.js:1486
msgid "Your buddy's identify has been verified." #, fuzzy
msgid "Your contact's identify has been verified."
msgstr "Jou contact is geverifieerd" msgstr "Jou contact is geverifieerd"
#: converse.js:1494 #: converse.js:1488
msgid "Your buddy has ended encryption on their end, you should do the same." #, fuzzy
msgid "Your contact has ended encryption on their end, you should do the same."
msgstr "Jou contact heeft encryption aanstaan, je moet het zelfde doen." msgstr "Jou contact heeft encryption aanstaan, je moet het zelfde doen."
#: converse.js:1503 #: converse.js:1497
msgid "Your messages are not encrypted. Click here to enable OTR encryption." msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr "" msgstr ""
"Jou bericht is niet encrypted. KLik hier om ORC encrytion aan te zetten." "Jou bericht is niet encrypted. KLik hier om ORC encrytion aan te zetten."
#: converse.js:1505 #: converse.js:1499
msgid "Your messages are encrypted, but your buddy has not been verified." #, fuzzy
msgid "Your messages are encrypted, but your contact has not been verified."
msgstr "Jou berichten zijn encrypted, maar je contact is niet geverifieerd." msgstr "Jou berichten zijn encrypted, maar je contact is niet geverifieerd."
#: converse.js:1507 #: converse.js:1501
msgid "Your messages are encrypted and your buddy verified." #, fuzzy
msgid "Your messages are encrypted and your contact verified."
msgstr "Jou bericht is encrypted en jou contact is geverifieerd." msgstr "Jou bericht is encrypted en jou contact is geverifieerd."
#: converse.js:1509 #: converse.js:1503
#, fuzzy
msgid "" msgid ""
"Your buddy has closed their end of the private session, you should do the " "Your contact has closed their end of the private session, you should do the "
"same" "same"
msgstr "" msgstr "Jou contact heeft encryption aanstaan, je moet het zelfde doen."
#: converse.js:1519 #: converse.js:1513
#, fuzzy #, fuzzy
msgid "Clear all messages" msgid "Clear all messages"
msgstr "Persoonlijk bericht" msgstr "Persoonlijk bericht"
#: converse.js:1520 #: converse.js:1514
msgid "End encrypted conversation" msgid "End encrypted conversation"
msgstr "Beeindig encrypted gesprek" msgstr "Beeindig encrypted gesprek"
#: converse.js:1521 #: converse.js:1515
msgid "Hide the list of participants" msgid "Hide the list of participants"
msgstr "" msgstr ""
#: converse.js:1522 #: converse.js:1516
msgid "Refresh encrypted conversation" msgid "Refresh encrypted conversation"
msgstr "Ververs encrypted gesprek" msgstr "Ververs encrypted gesprek"
#: converse.js:1523 #: converse.js:1517
msgid "Start a call" msgid "Start a call"
msgstr "" msgstr ""
#: converse.js:1524 #: converse.js:1518
msgid "Start encrypted conversation" msgid "Start encrypted conversation"
msgstr "Start encrypted gesprek" msgstr "Start encrypted gesprek"
#: converse.js:1525 #: converse.js:1519
msgid "Verify with fingerprints" msgid "Verify with fingerprints"
msgstr "" msgstr ""
#: converse.js:1526 #: converse.js:1520
msgid "Verify with SMP" msgid "Verify with SMP"
msgstr "" msgstr ""
#: converse.js:1527 #: converse.js:1521
msgid "What's this?" msgid "What's this?"
msgstr "Wat is dit?" msgstr "Wat is dit?"
#: converse.js:1618 #: converse.js:1612
msgid "Online" msgid "Online"
msgstr "Online" msgstr "Online"
#: converse.js:1619 #: converse.js:1613
msgid "Busy" msgid "Busy"
msgstr "Bezet" msgstr "Bezet"
#: converse.js:1620 #: converse.js:1614
msgid "Away" msgid "Away"
msgstr "Afwezig" msgstr "Afwezig"
#: converse.js:1621 #: converse.js:1615
msgid "Offline" msgid "Offline"
msgstr "" msgstr ""
#: converse.js:1622 #: converse.js:1616
#, fuzzy #, fuzzy
msgid "Log out" msgid "Log out"
msgstr "Aanmelden" msgstr "Aanmelden"
#: converse.js:1628 #: converse.js:1622
msgid "Contact name" msgid "Contact name"
msgstr "Contact naam" msgstr "Contact naam"
#: converse.js:1629 #: converse.js:1623
msgid "Search" msgid "Search"
msgstr "Zoeken" msgstr "Zoeken"
#: converse.js:1633 #: converse.js:1627
msgid "Contact username" msgid "Contact username"
msgstr "Contact gebruikernaam" msgstr "Contact gebruikernaam"
#: converse.js:1634 #: converse.js:1628
msgid "Add" msgid "Add"
msgstr "Toevoegen" msgstr "Toevoegen"
#: converse.js:1639 #: converse.js:1633
msgid "Click to add new chat contacts" msgid "Click to add new chat contacts"
msgstr "Klik om nieuwe contacten toe te voegen" msgstr "Klik om nieuwe contacten toe te voegen"
#: converse.js:1640 #: converse.js:1634
msgid "Add a contact" msgid "Add a contact"
msgstr "Voeg contact toe" msgstr "Voeg contact toe"
#: converse.js:1664 #: converse.js:1658
msgid "No users found" msgid "No users found"
msgstr "Geen gebruikers gevonden" msgstr "Geen gebruikers gevonden"
#: converse.js:1670 #: converse.js:1664
msgid "Click to add as a chat contact" msgid "Click to add as a chat contact"
msgstr "Klik om contact toe te voegen" msgstr "Klik om contact toe te voegen"
#: converse.js:1725 #: converse.js:1727
msgid "Room name" msgid "Room name"
msgstr "Room naam" msgstr "Room naam"
#: converse.js:1726 #: converse.js:1728
msgid "Nickname" msgid "Nickname"
msgstr "Nickname" msgstr "Nickname"
#: converse.js:1727 #: converse.js:1729
msgid "Server" msgid "Server"
msgstr "Server" msgstr "Server"
#: converse.js:1728 #: converse.js:1730
msgid "Join" msgid "Join"
msgstr "Deelnemen" msgstr "Deelnemen"
#: converse.js:1729 #: converse.js:1731
msgid "Show rooms" msgid "Show rooms"
msgstr "Toon rooms" msgstr "Toon rooms"
#: converse.js:1749 #: converse.js:1735
msgid "Rooms" msgid "Rooms"
msgstr "Rooms" msgstr "Rooms"
#. For translators: %1$s is a variable and will be replaced with the XMPP server name #. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:1756 #: converse.js:1755
msgid "No rooms on %1$s" msgid "No rooms on %1$s"
msgstr "Geen room op %1$s" msgstr "Geen room op %1$s"
#. For translators: %1$s is a variable and will be #. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name #. replaced with the XMPP server name
#: converse.js:1771 #: converse.js:1770
msgid "Rooms on %1$s" msgid "Rooms on %1$s"
msgstr "Room op %1$s" msgstr "Room op %1$s"
#: converse.js:1780 #: converse.js:1779
msgid "Click to open this room" msgid "Click to open this room"
msgstr "Klik om room te openen" msgstr "Klik om room te openen"
#: converse.js:1781 #: converse.js:1780
msgid "Show more information on this room" msgid "Show more information on this room"
msgstr "Toon meer informatie over deze room" msgstr "Toon meer informatie over deze room"
#: converse.js:1843 #: converse.js:1842
msgid "Description:" msgid "Description:"
msgstr "Beschrijving" msgstr "Beschrijving"
#: converse.js:1844 #: converse.js:1843
msgid "Occupants:" msgid "Occupants:"
msgstr "Deelnemers:" msgstr "Deelnemers:"
#: converse.js:1845 #: converse.js:1844
msgid "Features:" msgid "Features:"
msgstr "Functies:" msgstr "Functies:"
#: converse.js:1846 #: converse.js:1845
msgid "Requires authentication" msgid "Requires authentication"
msgstr "Verificatie vereist" msgstr "Verificatie vereist"
#: converse.js:1847 #: converse.js:1846
msgid "Hidden" msgid "Hidden"
msgstr "Verborgen" msgstr "Verborgen"
#: converse.js:1848 #: converse.js:1847
msgid "Requires an invitation" msgid "Requires an invitation"
msgstr "Veriest een uitnodiging" msgstr "Veriest een uitnodiging"
#: converse.js:1849 #: converse.js:1848
msgid "Moderated" msgid "Moderated"
msgstr "Gemodereerd" msgstr "Gemodereerd"
#: converse.js:1850 #: converse.js:1849
msgid "Non-anonymous" msgid "Non-anonymous"
msgstr "Niet annoniem" msgstr "Niet annoniem"
#: converse.js:1851 #: converse.js:1850
msgid "Open room" msgid "Open room"
msgstr "Open room" msgstr "Open room"
#: converse.js:1852 #: converse.js:1851
msgid "Permanent room" msgid "Permanent room"
msgstr "Blijvend room" msgstr "Blijvend room"
#: converse.js:1853 #: converse.js:1852
msgid "Public" msgid "Public"
msgstr "Publiek" msgstr "Publiek"
#: converse.js:1854 #: converse.js:1853
msgid "Semi-anonymous" msgid "Semi-anonymous"
msgstr "Semi annoniem" msgstr "Semi annoniem"
#: converse.js:1855 #: converse.js:1854
msgid "Temporary room" msgid "Temporary room"
msgstr "Tijdelijke room" msgstr "Tijdelijke room"
#: converse.js:1856 #: converse.js:1855
msgid "Unmoderated" msgid "Unmoderated"
msgstr "Niet gemodereerd" msgstr "Niet gemodereerd"
#: converse.js:2085 #: converse.js:2108
msgid "This user is a moderator" msgid "This user is a moderator"
msgstr "Dit is een moderator" msgstr "Dit is een moderator"
#: converse.js:2086 #: converse.js:2109
msgid "This user can send messages in this room" msgid "This user can send messages in this room"
msgstr "Deze gebruiker kan berichten sturen in deze room" msgstr "Deze gebruiker kan berichten sturen in deze room"
#: converse.js:2087 #: converse.js:2110
msgid "This user can NOT send messages in this room" msgid "This user can NOT send messages in this room"
msgstr "Deze gebruiker kan NIET een bericht sturen in deze room" msgstr "Deze gebruiker kan NIET een bericht sturen in deze room"
#: converse.js:2119 #: converse.js:2142
msgid "Invite..." msgid "Invite..."
msgstr "" msgstr ""
#: converse.js:2120 #: converse.js:2143
#, fuzzy #, fuzzy
msgid "Occupants" msgid "Occupants"
msgstr "Deelnemers:" msgstr "Deelnemers:"
#: converse.js:2185 #: converse.js:2208
msgid "You are about to invite %1$s to the chat room \"%2$s\". " msgid "You are about to invite %1$s to the chat room \"%2$s\". "
msgstr "" msgstr ""
#: converse.js:2186 #: converse.js:2209
msgid "" msgid ""
"You may optionally include a message, explaining the reason for the " "You may optionally include a message, explaining the reason for the "
"invitation." "invitation."
msgstr "" msgstr ""
#: converse.js:2269 #: converse.js:2292
msgid "Message" msgid "Message"
msgstr "Bericht" msgstr "Bericht"
#: converse.js:2307 #: converse.js:2328
msgid "Error: could not execute the command" msgid "Error: could not execute the command"
msgstr "" msgstr ""
#: converse.js:2329 #: converse.js:2358
#, fuzzy #, fuzzy
msgid "Ban user from room" msgid "Ban user from room"
msgstr "Ban gebruiker van chatroom" msgstr "Ban gebruiker van chatroom"
#: converse.js:2332 #: converse.js:2361
#, fuzzy #, fuzzy
msgid "Kick user from room" msgid "Kick user from room"
msgstr "Goei gebruiker uit chatroom" msgstr "Goei gebruiker uit chatroom"
#: converse.js:2333 #: converse.js:2362
#, fuzzy #, fuzzy
msgid "Write in 3rd person" msgid "Write in 3rd person"
msgstr "Schrijf in de 3de persoon" msgstr "Schrijf in de 3de persoon"
#: converse.js:2334 #: converse.js:2363
msgid "Remove user's ability to post messages" msgid "Remove user's ability to post messages"
msgstr "" msgstr ""
#: converse.js:2335 #: converse.js:2364
msgid "Change your nickname" msgid "Change your nickname"
msgstr "" msgstr ""
#: converse.js:2336 #: converse.js:2365
#, fuzzy #, fuzzy
msgid "Set room topic" msgid "Set room topic"
msgstr "Zet chatroom topic" msgstr "Zet chatroom topic"
#: converse.js:2337 #: converse.js:2366
msgid "Allow muted user to post messages" msgid "Allow muted user to post messages"
msgstr "" msgstr ""
#: converse.js:2441 converse.js:4262 #: converse.js:2489 converse.js:4417
msgid "Save" msgid "Save"
msgstr "Opslaan" msgstr "Opslaan"
#: converse.js:2442 #: converse.js:2490
msgid "Cancel" msgid "Cancel"
msgstr "Annuleren" msgstr "Annuleren"
#: converse.js:2487 #: converse.js:2544
msgid "An error occurred while trying to save the form." msgid "An error occurred while trying to save the form."
msgstr "Een error tijdens het opslaan van het formulier." msgstr "Een error tijdens het opslaan van het formulier."
#: converse.js:2531 #: converse.js:2588
msgid "This chatroom requires a password" msgid "This chatroom requires a password"
msgstr "Chatroom heeft een wachtwoord" msgstr "Chatroom heeft een wachtwoord"
#: converse.js:2532 #: converse.js:2589
msgid "Password: " msgid "Password: "
msgstr "Wachtwoord: " msgstr "Wachtwoord: "
#: converse.js:2533 #: converse.js:2590
msgid "Submit" msgid "Submit"
msgstr "Indienen" msgstr "Indienen"
#: converse.js:2568 #: converse.js:2625
msgid "This room is not anonymous" msgid "This room is not anonymous"
msgstr "Deze room is niet annoniem" msgstr "Deze room is niet annoniem"
#: converse.js:2569 #: converse.js:2626
msgid "This room now shows unavailable members" msgid "This room now shows unavailable members"
msgstr "" msgstr ""
#: converse.js:2570 #: converse.js:2627
msgid "This room does not show unavailable members" msgid "This room does not show unavailable members"
msgstr "" msgstr ""
#: converse.js:2571 #: converse.js:2628
msgid "Non-privacy-related room configuration has changed" msgid "Non-privacy-related room configuration has changed"
msgstr "" msgstr ""
#: converse.js:2572 #: converse.js:2629
msgid "Room logging is now enabled" msgid "Room logging is now enabled"
msgstr "" msgstr ""
#: converse.js:2573 #: converse.js:2630
msgid "Room logging is now disabled" msgid "Room logging is now disabled"
msgstr "" msgstr ""
#: converse.js:2574 #: converse.js:2631
msgid "This room is now non-anonymous" msgid "This room is now non-anonymous"
msgstr "Deze room is nu niet annoniem" msgstr "Deze room is nu niet annoniem"
#: converse.js:2575 #: converse.js:2632
msgid "This room is now semi-anonymous" msgid "This room is now semi-anonymous"
msgstr "Deze room is nu semie annoniem" msgstr "Deze room is nu semie annoniem"
#: converse.js:2576 #: converse.js:2633
msgid "This room is now fully-anonymous" msgid "This room is now fully-anonymous"
msgstr "Deze room is nu volledig annoniem" msgstr "Deze room is nu volledig annoniem"
#: converse.js:2577 #: converse.js:2634
msgid "A new room has been created" msgid "A new room has been created"
msgstr "Een nieuwe room is gemaakt" msgstr "Een nieuwe room is gemaakt"
#: converse.js:2581 converse.js:2681 #: converse.js:2638 converse.js:2738
msgid "You have been banned from this room" msgid "You have been banned from this room"
msgstr "Je bent verbannen uit deze room" msgstr "Je bent verbannen uit deze room"
#: converse.js:2582 #: converse.js:2639
msgid "You have been kicked from this room" msgid "You have been kicked from this room"
msgstr "Je bent uit de room gegooid" msgstr "Je bent uit de room gegooid"
#: converse.js:2583 #: converse.js:2640
msgid "You have been removed from this room because of an affiliation change" msgid "You have been removed from this room because of an affiliation change"
msgstr "" msgstr ""
#: converse.js:2584 #: converse.js:2641
msgid "" msgid ""
"You have been removed from this room because the room has changed to members-" "You have been removed from this room because the room has changed to members-"
"only and you're not a member" "only and you're not a member"
msgstr "" msgstr ""
#: converse.js:2585 #: converse.js:2642
msgid "" msgid ""
"You have been removed from this room because the MUC (Multi-user chat) " "You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down." "service is being shut down."
msgstr "" msgstr ""
#: converse.js:2599 #: converse.js:2656
msgid "<strong>%1$s</strong> has been banned" msgid "<strong>%1$s</strong> has been banned"
msgstr "<strong>%1$s</strong> is verbannen" msgstr "<strong>%1$s</strong> is verbannen"
#: converse.js:2600 #: converse.js:2657
#, fuzzy #, fuzzy
msgid "<strong>%1$s</strong>'s nickname has changed" msgid "<strong>%1$s</strong>'s nickname has changed"
msgstr "<strong>%1$s</strong> is verbannen" msgstr "<strong>%1$s</strong> is verbannen"
#: converse.js:2601 #: converse.js:2658
msgid "<strong>%1$s</strong> has been kicked out" msgid "<strong>%1$s</strong> has been kicked out"
msgstr "<strong>%1$s</strong> has been kicked out" msgstr "<strong>%1$s</strong> has been kicked out"
#: converse.js:2602 #: converse.js:2659
msgid "<strong>%1$s</strong> has been removed because of an affiliation change" msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr "" msgstr ""
#: converse.js:2603 #: converse.js:2660
msgid "<strong>%1$s</strong> has been removed for not being a member" msgid "<strong>%1$s</strong> has been removed for not being a member"
msgstr "" msgstr ""
#: converse.js:2607 #: converse.js:2664
#, fuzzy #, fuzzy
msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>" msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>"
msgstr "Je nickname is veranderd" msgstr "Je nickname is veranderd"
#: converse.js:2608 #: converse.js:2665
#, fuzzy #, fuzzy
msgid "Your nickname has been changed to: <strong>%1$s</strong>" msgid "Your nickname has been changed to: <strong>%1$s</strong>"
msgstr "Je nickname is veranderd" msgstr "Je nickname is veranderd"
#: converse.js:2656 converse.js:2666 #: converse.js:2713 converse.js:2723
msgid "The reason given is: \"" msgid "The reason given is: \""
msgstr "" msgstr ""
#: converse.js:2679 #: converse.js:2736
msgid "You are not on the member list of this room" msgid "You are not on the member list of this room"
msgstr "Je bent niet een gebruiker van deze room" msgstr "Je bent niet een gebruiker van deze room"
#: converse.js:2685 #: converse.js:2742
msgid "No nickname was specified" msgid "No nickname was specified"
msgstr "Geen nickname ingegeven" msgstr "Geen nickname ingegeven"
#: converse.js:2689 #: converse.js:2746
msgid "You are not allowed to create new rooms" msgid "You are not allowed to create new rooms"
msgstr "Je bent niet toegestaan nieuwe rooms te maken" msgstr "Je bent niet toegestaan nieuwe rooms te maken"
#: converse.js:2691 #: converse.js:2748
msgid "Your nickname doesn't conform to this room's policies" msgid "Your nickname doesn't conform to this room's policies"
msgstr "Je nickname is niet conform policy" msgstr "Je nickname is niet conform policy"
#: converse.js:2695 #: converse.js:2752
msgid "Your nickname is already taken" msgid "Your nickname is already taken"
msgstr "Je nickname bestaat al" msgstr "Je nickname bestaat al"
#: converse.js:2697 #: converse.js:2754
msgid "This room does not (yet) exist" msgid "This room does not (yet) exist"
msgstr "Deze room bestaat niet" msgstr "Deze room bestaat niet"
#: converse.js:2699 #: converse.js:2756
msgid "This room has reached it's maximum number of occupants" msgid "This room has reached it's maximum number of occupants"
msgstr "Deze room heeft het maximale aantal gebruikers" msgstr "Deze room heeft het maximale aantal gebruikers"
#: converse.js:2736 #: converse.js:2798
msgid "Topic set by %1$s to: %2$s" msgid "Topic set by %1$s to: %2$s"
msgstr "" msgstr ""
#: converse.js:2818 #: converse.js:2880
msgid "%1$s has invited you to join a chat room: %2$s" msgid "%1$s has invited you to join a chat room: %2$s"
msgstr "" msgstr ""
#: converse.js:2822 #: converse.js:2884
msgid "" msgid ""
"%1$s has invited you to join a chat room: %2$s, and left the following " "%1$s has invited you to join a chat room: %2$s, and left the following "
"reason: \"%3$s\"" "reason: \"%3$s\""
msgstr "" msgstr ""
#: converse.js:3058 #: converse.js:3140
#, fuzzy #, fuzzy
msgid "Click to restore this chat" msgid "Click to restore this chat"
msgstr "Klik om contact te verwijderen" msgstr "Klik om contact te verwijderen"
#: converse.js:3202 #: converse.js:3285
msgid "Minimized" msgid "Minimized"
msgstr "" msgstr ""
#: converse.js:3274 #: converse.js:3381 converse.js:3399
#, fuzzy
msgid "Are you sure you want to remove this contact?"
msgstr "Klik om contact te verwijderen"
#: converse.js:3297
#, fuzzy
msgid "Are you sure you want to decline this contact request?"
msgstr "Klik om contact te verwijderen"
#: converse.js:3341 converse.js:3359
msgid "Click to remove this contact" msgid "Click to remove this contact"
msgstr "Klik om contact te verwijderen" msgstr "Klik om contact te verwijderen"
#: converse.js:3348 #: converse.js:3388
#, fuzzy #, fuzzy
msgid "Click to accept this contact request" msgid "Click to accept this contact request"
msgstr "Klik om contact te verwijderen" msgstr "Klik om contact te verwijderen"
#: converse.js:3349 #: converse.js:3389
#, fuzzy #, fuzzy
msgid "Click to decline this contact request" msgid "Click to decline this contact request"
msgstr "Klik om contact te verwijderen" msgstr "Klik om contact te verwijderen"
#: converse.js:3358 #: converse.js:3398
msgid "Click to chat with this contact" msgid "Click to chat with this contact"
msgstr "Klik om te chatten met contact" msgstr "Klik om te chatten met contact"
#: converse.js:3874 #: converse.js:3423
#, fuzzy
msgid "Are you sure you want to remove this contact?"
msgstr "Klik om contact te verwijderen"
#: converse.js:3446
#, fuzzy
msgid "Are you sure you want to decline this contact request?"
msgstr "Klik om contact te verwijderen"
#: converse.js:3972
msgid "Type to filter" msgid "Type to filter"
msgstr "" msgstr ""
#. For translators: the %1$s part gets replaced with the status #. For translators: the %1$s part gets replaced with the status
#. Example, I am online #. Example, I am online
#: converse.js:4233 converse.js:4310 #: converse.js:4388 converse.js:4465
msgid "I am %1$s" msgid "I am %1$s"
msgstr "Ik ben %1$s" msgstr "Ik ben %1$s"
#: converse.js:4235 converse.js:4315 #: converse.js:4390 converse.js:4470
msgid "Click here to write a custom status message" msgid "Click here to write a custom status message"
msgstr "Klik hier om custom status bericht te maken" msgstr "Klik hier om custom status bericht te maken"
#: converse.js:4236 converse.js:4316 #: converse.js:4391 converse.js:4471
msgid "Click to change your chat status" msgid "Click to change your chat status"
msgstr "Klik hier om status te wijzigen" msgstr "Klik hier om status te wijzigen"
#: converse.js:4261 #: converse.js:4416
msgid "Custom status" msgid "Custom status"
msgstr "" msgstr ""
#: converse.js:4290 converse.js:4298 #: converse.js:4445 converse.js:4453
msgid "online" msgid "online"
msgstr "online" msgstr "online"
#: converse.js:4292 #: converse.js:4447
msgid "busy" msgid "busy"
msgstr "bezet" msgstr "bezet"
#: converse.js:4294 #: converse.js:4449
msgid "away for long" msgid "away for long"
msgstr "afwezig lange tijd" msgstr "afwezig lange tijd"
#: converse.js:4296 #: converse.js:4451
msgid "away" msgid "away"
msgstr "afwezig" msgstr "afwezig"
#: converse.js:4419 #: converse.js:4574
msgid "XMPP/Jabber Username:" msgid "XMPP/Jabber Username:"
msgstr "XMPP/Jabber Username:" msgstr "XMPP/Jabber Username:"
#: converse.js:4420 #: converse.js:4575
msgid "Password:" msgid "Password:"
msgstr "Wachtwoord:" msgstr "Wachtwoord:"
#: converse.js:4421 #: converse.js:4576
msgid "Log In" msgid "Log In"
msgstr "Aanmelden" msgstr "Aanmelden"
#: converse.js:4428 #: converse.js:4583
msgid "Sign in" msgid "Sign in"
msgstr "Aanmelden" msgstr "Aanmelden"
#: converse.js:4488 #: converse.js:4643
msgid "Toggle chat" msgid "Toggle chat"
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Converse.js 0.8.3\n" "Project-Id-Version: Converse.js 0.8.3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-21 13:12+0200\n" "POT-Creation-Date: 2014-11-15 16:36+0100\n"
"PO-Revision-Date: 2014-10-21 13:13+0200\n" "PO-Revision-Date: 2014-10-21 13:13+0200\n"
"Last-Translator: Dev Account <info@elkom.com.tw>\n" "Last-Translator: Dev Account <info@elkom.com.tw>\n"
"Language-Team: Polish\n" "Language-Team: Polish\n"
@ -19,193 +19,193 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n" "|| n%100>=20) ? 1 : 2);\n"
#: converse.js:314 #: converse.js:316
msgid "unencrypted" msgid "unencrypted"
msgstr "" msgstr ""
#: converse.js:315 #: converse.js:317
msgid "unverified" msgid "unverified"
msgstr "" msgstr ""
#: converse.js:316 #: converse.js:318
msgid "verified" msgid "verified"
msgstr "" msgstr ""
#: converse.js:317 #: converse.js:319
msgid "finished" msgid "finished"
msgstr "" msgstr ""
#: converse.js:320 #: converse.js:322
msgid "This contact is busy" msgid "This contact is busy"
msgstr "" msgstr ""
#: converse.js:321 #: converse.js:323
msgid "This contact is online" msgid "This contact is online"
msgstr "" msgstr ""
#: converse.js:322 #: converse.js:324
msgid "This contact is offline" msgid "This contact is offline"
msgstr "" msgstr ""
#: converse.js:323 #: converse.js:325
msgid "This contact is unavailable" msgid "This contact is unavailable"
msgstr "" msgstr ""
#: converse.js:324 #: converse.js:326
msgid "This contact is away for an extended period" msgid "This contact is away for an extended period"
msgstr "" msgstr ""
#: converse.js:325 #: converse.js:327
msgid "This contact is away" msgid "This contact is away"
msgstr "" msgstr ""
#: converse.js:327 #: converse.js:329
msgid "Click to hide these contacts" msgid "Click to hide these contacts"
msgstr "" msgstr ""
#: converse.js:329 #: converse.js:331
msgid "My contacts" msgid "My contacts"
msgstr "" msgstr ""
#: converse.js:330 #: converse.js:332
msgid "Pending contacts" msgid "Pending contacts"
msgstr "" msgstr ""
#: converse.js:331 #: converse.js:333
msgid "Contact requests" msgid "Contact requests"
msgstr "" msgstr ""
#: converse.js:332 #: converse.js:334
msgid "Ungrouped" msgid "Ungrouped"
msgstr "" msgstr ""
#: converse.js:334 #: converse.js:336
msgid "Contacts" msgid "Contacts"
msgstr "" msgstr ""
#: converse.js:335 #: converse.js:337
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
#: converse.js:417 #: converse.js:419
msgid "Reconnecting" msgid "Reconnecting"
msgstr "" msgstr ""
#: converse.js:452 #: converse.js:454
msgid "Disconnected" msgid "Disconnected"
msgstr "" msgstr ""
#: converse.js:460 #: converse.js:462
msgid "Error" msgid "Error"
msgstr "" msgstr ""
#: converse.js:462 #: converse.js:464
msgid "Connecting" msgid "Connecting"
msgstr "" msgstr ""
#: converse.js:465 #: converse.js:467
msgid "Connection Failed" msgid "Connection Failed"
msgstr "" msgstr ""
#: converse.js:467 #: converse.js:469
msgid "Authenticating" msgid "Authenticating"
msgstr "" msgstr ""
#: converse.js:470 #: converse.js:472
msgid "Authentication Failed" msgid "Authentication Failed"
msgstr "" msgstr ""
#: converse.js:475 #: converse.js:477
msgid "Disconnecting" msgid "Disconnecting"
msgstr "" msgstr ""
#: converse.js:614 converse.js:660 #: converse.js:617 converse.js:669
msgid "Online Contacts" msgid "Online Contacts"
msgstr "" msgstr ""
#: converse.js:778 #: converse.js:787
msgid "Re-establishing encrypted session" msgid "Re-establishing encrypted session"
msgstr "" msgstr ""
#: converse.js:790 #: converse.js:799
msgid "Generating private key." msgid "Generating private key."
msgstr "" msgstr ""
#: converse.js:791 #: converse.js:800
msgid "Your browser might become unresponsive." msgid "Your browser might become unresponsive."
msgstr "" msgstr ""
#: converse.js:826 #: converse.js:835
msgid "" msgid ""
"Authentication request from %1$s\n" "Authentication request from %1$s\n"
"\n" "\n"
"Your buddy is attempting to verify your identity, by asking you the question " "Your chat contact is attempting to verify your identity, by asking you the "
"below.\n" "question below.\n"
"\n" "\n"
"%2$s" "%2$s"
msgstr "" msgstr ""
#: converse.js:835 #: converse.js:844
msgid "Could not verify this user's identify." msgid "Could not verify this user's identify."
msgstr "" msgstr ""
#: converse.js:874 #: converse.js:883
msgid "Exchanging private key with buddy." msgid "Exchanging private key with contact."
msgstr "" msgstr ""
#: converse.js:1023 #: converse.js:1036
msgid "Personal message" msgid "Personal message"
msgstr "" msgstr ""
#: converse.js:1055 #: converse.js:1068
msgid "Are you sure you want to clear the messages from this room?" msgid "Are you sure you want to clear the messages from this room?"
msgstr "" msgstr ""
#: converse.js:1077 #: converse.js:1090
msgid "me" msgid "me"
msgstr "" msgstr ""
#: converse.js:1131 #: converse.js:1144
msgid "is typing" msgid "is typing"
msgstr "" msgstr ""
#: converse.js:1134 #: converse.js:1147
msgid "has stopped typing" msgid "has stopped typing"
msgstr "" msgstr ""
#: converse.js:1176 converse.js:2314 #: converse.js:1189 converse.js:2360
msgid "Show this menu" msgid "Show this menu"
msgstr "" msgstr ""
#: converse.js:1177 #: converse.js:1190
msgid "Write in the third person" msgid "Write in the third person"
msgstr "" msgstr ""
#: converse.js:1178 converse.js:2313 #: converse.js:1191 converse.js:2359
msgid "Remove messages" msgid "Remove messages"
msgstr "" msgstr ""
#: converse.js:1262 #: converse.js:1275
msgid "Are you sure you want to clear the messages from this chat box?" msgid "Are you sure you want to clear the messages from this chat box?"
msgstr "" msgstr ""
#: converse.js:1297 #: converse.js:1310
msgid "Your message could not be sent" msgid "Your message could not be sent"
msgstr "" msgstr ""
#: converse.js:1300 #: converse.js:1313
msgid "We received an unencrypted message" msgid "We received an unencrypted message"
msgstr "" msgstr ""
#: converse.js:1303 #: converse.js:1316
msgid "We received an unreadable encrypted message" msgid "We received an unreadable encrypted message"
msgstr "" msgstr ""
#: converse.js:1312 #: converse.js:1325
msgid "This user has requested an encrypted session." msgid "This user has requested an encrypted session."
msgstr "" msgstr ""
#: converse.js:1334 #: converse.js:1347
msgid "" msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this " "Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n" "chat.\n"
@ -218,564 +218,564 @@ msgid ""
"Cancel." "Cancel."
msgstr "" msgstr ""
#: converse.js:1347 #: converse.js:1360
msgid "" msgid ""
"You will be prompted to provide a security question and then an answer to " "You will be prompted to provide a security question and then an answer to "
"that question.\n" "that question.\n"
"\n" "\n"
"Your buddy will then be prompted the same question and if they type the " "Your contact will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will be verified." "exact same answer (case sensitive), their identity will be verified."
msgstr "" msgstr ""
#: converse.js:1348 #: converse.js:1361
msgid "What is your security question?" msgid "What is your security question?"
msgstr "" msgstr ""
#: converse.js:1350 #: converse.js:1363
msgid "What is the answer to the security question?" msgid "What is the answer to the security question?"
msgstr "" msgstr ""
#: converse.js:1354 #: converse.js:1367
msgid "Invalid authentication scheme provided" msgid "Invalid authentication scheme provided"
msgstr "" msgstr ""
#: converse.js:1465 #: converse.js:1482
msgid "Your messages are not encrypted anymore" msgid "Your messages are not encrypted anymore"
msgstr "" msgstr ""
#: converse.js:1467 #: converse.js:1484
msgid "" msgid ""
"Your messages are now encrypted but your buddy's identity has not been " "Your messages are now encrypted but your contact's identity has not been "
"verified." "verified."
msgstr "" msgstr ""
#: converse.js:1469
msgid "Your buddy's identify has been verified."
msgstr ""
#: converse.js:1471
msgid "Your buddy has ended encryption on their end, you should do the same."
msgstr ""
#: converse.js:1480
msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr ""
#: converse.js:1482
msgid "Your messages are encrypted, but your buddy has not been verified."
msgstr ""
#: converse.js:1484
msgid "Your messages are encrypted and your buddy verified."
msgstr ""
#: converse.js:1486 #: converse.js:1486
msgid "" msgid "Your contact's identify has been verified."
"Your buddy has closed their end of the private session, you should do the "
"same"
msgstr "" msgstr ""
#: converse.js:1496 #: converse.js:1488
msgid "Clear all messages" msgid "Your contact has ended encryption on their end, you should do the same."
msgstr "" msgstr ""
#: converse.js:1497 #: converse.js:1497
msgid "End encrypted conversation" msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr ""
#: converse.js:1498
msgid "Hide the list of participants"
msgstr "" msgstr ""
#: converse.js:1499 #: converse.js:1499
msgid "Refresh encrypted conversation" msgid "Your messages are encrypted, but your contact has not been verified."
msgstr ""
#: converse.js:1500
msgid "Start a call"
msgstr "" msgstr ""
#: converse.js:1501 #: converse.js:1501
msgid "Start encrypted conversation" msgid "Your messages are encrypted and your contact verified."
msgstr ""
#: converse.js:1502
msgid "Verify with fingerprints"
msgstr "" msgstr ""
#: converse.js:1503 #: converse.js:1503
msgid ""
"Your contact has closed their end of the private session, you should do the "
"same"
msgstr ""
#: converse.js:1513
msgid "Clear all messages"
msgstr ""
#: converse.js:1514
msgid "End encrypted conversation"
msgstr ""
#: converse.js:1515
msgid "Hide the list of participants"
msgstr ""
#: converse.js:1516
msgid "Refresh encrypted conversation"
msgstr ""
#: converse.js:1517
msgid "Start a call"
msgstr ""
#: converse.js:1518
msgid "Start encrypted conversation"
msgstr ""
#: converse.js:1519
msgid "Verify with fingerprints"
msgstr ""
#: converse.js:1520
msgid "Verify with SMP" msgid "Verify with SMP"
msgstr "" msgstr ""
#: converse.js:1504 #: converse.js:1521
msgid "What's this?" msgid "What's this?"
msgstr "" msgstr ""
#: converse.js:1595 #: converse.js:1612
msgid "Online" msgid "Online"
msgstr "" msgstr ""
#: converse.js:1596 #: converse.js:1613
msgid "Busy" msgid "Busy"
msgstr "" msgstr ""
#: converse.js:1597 #: converse.js:1614
msgid "Away" msgid "Away"
msgstr "" msgstr ""
#: converse.js:1598 #: converse.js:1615
msgid "Offline" msgid "Offline"
msgstr "" msgstr ""
#: converse.js:1599 #: converse.js:1616
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: converse.js:1605 #: converse.js:1622
msgid "Contact name" msgid "Contact name"
msgstr "" msgstr ""
#: converse.js:1606 #: converse.js:1623
msgid "Search" msgid "Search"
msgstr "" msgstr ""
#: converse.js:1610 #: converse.js:1627
msgid "Contact username" msgid "Contact username"
msgstr "" msgstr ""
#: converse.js:1611 #: converse.js:1628
msgid "Add" msgid "Add"
msgstr "" msgstr ""
#: converse.js:1616 #: converse.js:1633
msgid "Click to add new chat contacts" msgid "Click to add new chat contacts"
msgstr "" msgstr ""
#: converse.js:1617 #: converse.js:1634
msgid "Add a contact" msgid "Add a contact"
msgstr "" msgstr ""
#: converse.js:1641 #: converse.js:1658
msgid "No users found" msgid "No users found"
msgstr "" msgstr ""
#: converse.js:1647 #: converse.js:1664
msgid "Click to add as a chat contact" msgid "Click to add as a chat contact"
msgstr "" msgstr ""
#: converse.js:1702 #: converse.js:1727
msgid "Room name" msgid "Room name"
msgstr "" msgstr ""
#: converse.js:1703 #: converse.js:1728
msgid "Nickname" msgid "Nickname"
msgstr "" msgstr ""
#: converse.js:1704 #: converse.js:1729
msgid "Server" msgid "Server"
msgstr "" msgstr ""
#: converse.js:1705 #: converse.js:1730
msgid "Join" msgid "Join"
msgstr "" msgstr ""
#: converse.js:1706 #: converse.js:1731
msgid "Show rooms" msgid "Show rooms"
msgstr "" msgstr ""
#: converse.js:1726 #: converse.js:1735
msgid "Rooms" msgid "Rooms"
msgstr "" msgstr ""
#. For translators: %1$s is a variable and will be replaced with the XMPP server name #. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:1733 #: converse.js:1755
msgid "No rooms on %1$s" msgid "No rooms on %1$s"
msgstr "" msgstr ""
#. For translators: %1$s is a variable and will be #. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name #. replaced with the XMPP server name
#: converse.js:1748 #: converse.js:1770
msgid "Rooms on %1$s" msgid "Rooms on %1$s"
msgstr "" msgstr ""
#: converse.js:1757 #: converse.js:1779
msgid "Click to open this room" msgid "Click to open this room"
msgstr "" msgstr ""
#: converse.js:1758 #: converse.js:1780
msgid "Show more information on this room" msgid "Show more information on this room"
msgstr "" msgstr ""
#: converse.js:1820 #: converse.js:1842
msgid "Description:" msgid "Description:"
msgstr "" msgstr ""
#: converse.js:1821 #: converse.js:1843
msgid "Occupants:" msgid "Occupants:"
msgstr "" msgstr ""
#: converse.js:1822 #: converse.js:1844
msgid "Features:" msgid "Features:"
msgstr "" msgstr ""
#: converse.js:1823 #: converse.js:1845
msgid "Requires authentication" msgid "Requires authentication"
msgstr "" msgstr ""
#: converse.js:1824 #: converse.js:1846
msgid "Hidden" msgid "Hidden"
msgstr "" msgstr ""
#: converse.js:1825 #: converse.js:1847
msgid "Requires an invitation" msgid "Requires an invitation"
msgstr "" msgstr ""
#: converse.js:1826 #: converse.js:1848
msgid "Moderated" msgid "Moderated"
msgstr "" msgstr ""
#: converse.js:1827 #: converse.js:1849
msgid "Non-anonymous" msgid "Non-anonymous"
msgstr "" msgstr ""
#: converse.js:1828 #: converse.js:1850
msgid "Open room" msgid "Open room"
msgstr "" msgstr ""
#: converse.js:1829 #: converse.js:1851
msgid "Permanent room" msgid "Permanent room"
msgstr "" msgstr ""
#: converse.js:1830 #: converse.js:1852
msgid "Public" msgid "Public"
msgstr "" msgstr ""
#: converse.js:1831 #: converse.js:1853
msgid "Semi-anonymous" msgid "Semi-anonymous"
msgstr "" msgstr ""
#: converse.js:1832 #: converse.js:1854
msgid "Temporary room" msgid "Temporary room"
msgstr "" msgstr ""
#: converse.js:1833 #: converse.js:1855
msgid "Unmoderated" msgid "Unmoderated"
msgstr "" msgstr ""
#: converse.js:2062 #: converse.js:2108
msgid "This user is a moderator" msgid "This user is a moderator"
msgstr "" msgstr ""
#: converse.js:2063 #: converse.js:2109
msgid "This user can send messages in this room" msgid "This user can send messages in this room"
msgstr "" msgstr ""
#: converse.js:2064 #: converse.js:2110
msgid "This user can NOT send messages in this room" msgid "This user can NOT send messages in this room"
msgstr "" msgstr ""
#: converse.js:2096 #: converse.js:2142
msgid "Invite..." msgid "Invite..."
msgstr "" msgstr ""
#: converse.js:2097 #: converse.js:2143
msgid "Occupants" msgid "Occupants"
msgstr "" msgstr ""
#: converse.js:2162 #: converse.js:2208
msgid "You are about to invite %1$s to the chat room \"%2$s\". " msgid "You are about to invite %1$s to the chat room \"%2$s\". "
msgstr "" msgstr ""
#: converse.js:2163 #: converse.js:2209
msgid "" msgid ""
"You may optionally include a message, explaining the reason for the " "You may optionally include a message, explaining the reason for the "
"invitation." "invitation."
msgstr "" msgstr ""
#: converse.js:2246 #: converse.js:2292
msgid "Message" msgid "Message"
msgstr "" msgstr ""
#: converse.js:2282 #: converse.js:2328
msgid "Error: could not execute the command" msgid "Error: could not execute the command"
msgstr "" msgstr ""
#: converse.js:2312 #: converse.js:2358
msgid "Ban user from room" msgid "Ban user from room"
msgstr "" msgstr ""
#: converse.js:2315 #: converse.js:2361
msgid "Kick user from room" msgid "Kick user from room"
msgstr "" msgstr ""
#: converse.js:2316 #: converse.js:2362
msgid "Write in 3rd person" msgid "Write in 3rd person"
msgstr "" msgstr ""
#: converse.js:2317 #: converse.js:2363
msgid "Remove user's ability to post messages" msgid "Remove user's ability to post messages"
msgstr "" msgstr ""
#: converse.js:2318 #: converse.js:2364
msgid "Change your nickname" msgid "Change your nickname"
msgstr "" msgstr ""
#: converse.js:2319 #: converse.js:2365
msgid "Set room topic" msgid "Set room topic"
msgstr "" msgstr ""
#: converse.js:2320 #: converse.js:2366
msgid "Allow muted user to post messages" msgid "Allow muted user to post messages"
msgstr "" msgstr ""
#: converse.js:2423 converse.js:4250 #: converse.js:2489 converse.js:4417
msgid "Save" msgid "Save"
msgstr "" msgstr ""
#: converse.js:2424 #: converse.js:2490
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: converse.js:2469 #: converse.js:2544
msgid "An error occurred while trying to save the form." msgid "An error occurred while trying to save the form."
msgstr "" msgstr ""
#: converse.js:2513 #: converse.js:2588
msgid "This chatroom requires a password" msgid "This chatroom requires a password"
msgstr "" msgstr ""
#: converse.js:2514 #: converse.js:2589
msgid "Password: " msgid "Password: "
msgstr "" msgstr ""
#: converse.js:2515 #: converse.js:2590
msgid "Submit" msgid "Submit"
msgstr "" msgstr ""
#: converse.js:2550 #: converse.js:2625
msgid "This room is not anonymous" msgid "This room is not anonymous"
msgstr "" msgstr ""
#: converse.js:2551 #: converse.js:2626
msgid "This room now shows unavailable members" msgid "This room now shows unavailable members"
msgstr "" msgstr ""
#: converse.js:2552 #: converse.js:2627
msgid "This room does not show unavailable members" msgid "This room does not show unavailable members"
msgstr "" msgstr ""
#: converse.js:2553 #: converse.js:2628
msgid "Non-privacy-related room configuration has changed" msgid "Non-privacy-related room configuration has changed"
msgstr "" msgstr ""
#: converse.js:2554 #: converse.js:2629
msgid "Room logging is now enabled" msgid "Room logging is now enabled"
msgstr "" msgstr ""
#: converse.js:2555 #: converse.js:2630
msgid "Room logging is now disabled" msgid "Room logging is now disabled"
msgstr "" msgstr ""
#: converse.js:2556 #: converse.js:2631
msgid "This room is now non-anonymous" msgid "This room is now non-anonymous"
msgstr "" msgstr ""
#: converse.js:2557 #: converse.js:2632
msgid "This room is now semi-anonymous" msgid "This room is now semi-anonymous"
msgstr "" msgstr ""
#: converse.js:2558 #: converse.js:2633
msgid "This room is now fully-anonymous" msgid "This room is now fully-anonymous"
msgstr "" msgstr ""
#: converse.js:2559 #: converse.js:2634
msgid "A new room has been created" msgid "A new room has been created"
msgstr "" msgstr ""
#: converse.js:2563 converse.js:2663 #: converse.js:2638 converse.js:2738
msgid "You have been banned from this room" msgid "You have been banned from this room"
msgstr "" msgstr ""
#: converse.js:2564 #: converse.js:2639
msgid "You have been kicked from this room" msgid "You have been kicked from this room"
msgstr "" msgstr ""
#: converse.js:2565 #: converse.js:2640
msgid "You have been removed from this room because of an affiliation change" msgid "You have been removed from this room because of an affiliation change"
msgstr "" msgstr ""
#: converse.js:2566 #: converse.js:2641
msgid "" msgid ""
"You have been removed from this room because the room has changed to members-" "You have been removed from this room because the room has changed to members-"
"only and you're not a member" "only and you're not a member"
msgstr "" msgstr ""
#: converse.js:2567 #: converse.js:2642
msgid "" msgid ""
"You have been removed from this room because the MUC (Multi-user chat) " "You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down." "service is being shut down."
msgstr "" msgstr ""
#: converse.js:2581 #: converse.js:2656
msgid "<strong>%1$s</strong> has been banned" msgid "<strong>%1$s</strong> has been banned"
msgstr "" msgstr ""
#: converse.js:2582 #: converse.js:2657
msgid "<strong>%1$s</strong>'s nickname has changed" msgid "<strong>%1$s</strong>'s nickname has changed"
msgstr "" msgstr ""
#: converse.js:2583 #: converse.js:2658
msgid "<strong>%1$s</strong> has been kicked out" msgid "<strong>%1$s</strong> has been kicked out"
msgstr "" msgstr ""
#: converse.js:2584 #: converse.js:2659
msgid "<strong>%1$s</strong> has been removed because of an affiliation change" msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr "" msgstr ""
#: converse.js:2585 #: converse.js:2660
msgid "<strong>%1$s</strong> has been removed for not being a member" msgid "<strong>%1$s</strong> has been removed for not being a member"
msgstr "" msgstr ""
#: converse.js:2589 #: converse.js:2664
msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>" msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>"
msgstr "" msgstr ""
#: converse.js:2590 #: converse.js:2665
msgid "Your nickname has been changed to: <strong>%1$s</strong>" msgid "Your nickname has been changed to: <strong>%1$s</strong>"
msgstr "" msgstr ""
#: converse.js:2638 converse.js:2648 #: converse.js:2713 converse.js:2723
msgid "The reason given is: \"" msgid "The reason given is: \""
msgstr "" msgstr ""
#: converse.js:2661 #: converse.js:2736
msgid "You are not on the member list of this room" msgid "You are not on the member list of this room"
msgstr "" msgstr ""
#: converse.js:2667 #: converse.js:2742
msgid "No nickname was specified" msgid "No nickname was specified"
msgstr "" msgstr ""
#: converse.js:2671 #: converse.js:2746
msgid "You are not allowed to create new rooms" msgid "You are not allowed to create new rooms"
msgstr "" msgstr ""
#: converse.js:2673 #: converse.js:2748
msgid "Your nickname doesn't conform to this room's policies" msgid "Your nickname doesn't conform to this room's policies"
msgstr "" msgstr ""
#: converse.js:2677 #: converse.js:2752
msgid "Your nickname is already taken" msgid "Your nickname is already taken"
msgstr "" msgstr ""
#: converse.js:2679 #: converse.js:2754
msgid "This room does not (yet) exist" msgid "This room does not (yet) exist"
msgstr "" msgstr ""
#: converse.js:2681 #: converse.js:2756
msgid "This room has reached it's maximum number of occupants" msgid "This room has reached it's maximum number of occupants"
msgstr "" msgstr ""
#: converse.js:2723 #: converse.js:2798
msgid "Topic set by %1$s to: %2$s" msgid "Topic set by %1$s to: %2$s"
msgstr "" msgstr ""
#: converse.js:2805 #: converse.js:2880
msgid "%1$s has invited you to join a chat room: %2$s" msgid "%1$s has invited you to join a chat room: %2$s"
msgstr "" msgstr ""
#: converse.js:2809 #: converse.js:2884
msgid "" msgid ""
"%1$s has invited you to join a chat room: %2$s, and left the following " "%1$s has invited you to join a chat room: %2$s, and left the following "
"reason: \"%3$s\"" "reason: \"%3$s\""
msgstr "" msgstr ""
#: converse.js:3044 #: converse.js:3140
msgid "Click to restore this chat" msgid "Click to restore this chat"
msgstr "" msgstr ""
#: converse.js:3188 #: converse.js:3285
msgid "Minimized" msgid "Minimized"
msgstr "" msgstr ""
#: converse.js:3262 #: converse.js:3381 converse.js:3399
msgid "Are you sure you want to remove this contact?"
msgstr ""
#: converse.js:3285
msgid "Are you sure you want to decline this contact request?"
msgstr ""
#: converse.js:3329 converse.js:3347
msgid "Click to remove this contact" msgid "Click to remove this contact"
msgstr "" msgstr ""
#: converse.js:3336 #: converse.js:3388
msgid "Click to accept this contact request" msgid "Click to accept this contact request"
msgstr "" msgstr ""
#: converse.js:3337 #: converse.js:3389
msgid "Click to decline this contact request" msgid "Click to decline this contact request"
msgstr "" msgstr ""
#: converse.js:3346 #: converse.js:3398
msgid "Click to chat with this contact" msgid "Click to chat with this contact"
msgstr "" msgstr ""
#: converse.js:3862 #: converse.js:3423
msgid "Are you sure you want to remove this contact?"
msgstr ""
#: converse.js:3446
msgid "Are you sure you want to decline this contact request?"
msgstr ""
#: converse.js:3972
msgid "Type to filter" msgid "Type to filter"
msgstr "" msgstr ""
#. For translators: the %1$s part gets replaced with the status #. For translators: the %1$s part gets replaced with the status
#. Example, I am online #. Example, I am online
#: converse.js:4221 converse.js:4298 #: converse.js:4388 converse.js:4465
msgid "I am %1$s" msgid "I am %1$s"
msgstr "" msgstr ""
#: converse.js:4223 converse.js:4303 #: converse.js:4390 converse.js:4470
msgid "Click here to write a custom status message" msgid "Click here to write a custom status message"
msgstr "" msgstr ""
#: converse.js:4224 converse.js:4304 #: converse.js:4391 converse.js:4471
msgid "Click to change your chat status" msgid "Click to change your chat status"
msgstr "" msgstr ""
#: converse.js:4249 #: converse.js:4416
msgid "Custom status" msgid "Custom status"
msgstr "" msgstr ""
#: converse.js:4278 converse.js:4286 #: converse.js:4445 converse.js:4453
msgid "online" msgid "online"
msgstr "" msgstr ""
#: converse.js:4280 #: converse.js:4447
msgid "busy" msgid "busy"
msgstr "" msgstr ""
#: converse.js:4282 #: converse.js:4449
msgid "away for long" msgid "away for long"
msgstr "" msgstr ""
#: converse.js:4284 #: converse.js:4451
msgid "away" msgid "away"
msgstr "" msgstr ""
#: converse.js:4407 #: converse.js:4574
msgid "XMPP/Jabber Username:" msgid "XMPP/Jabber Username:"
msgstr "" msgstr ""
#: converse.js:4408 #: converse.js:4575
msgid "Password:" msgid "Password:"
msgstr "" msgstr ""
#: converse.js:4409 #: converse.js:4576
msgid "Log In" msgid "Log In"
msgstr "" msgstr ""
#: converse.js:4416 #: converse.js:4583
msgid "Sign in" msgid "Sign in"
msgstr "" msgstr ""
#: converse.js:4476 #: converse.js:4643
msgid "Toggle chat" msgid "Toggle chat"
msgstr "" msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Converse.js 0.4\n" "Project-Id-Version: Converse.js 0.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-09-22 17:23+0200\n" "POT-Creation-Date: 2014-11-15 16:36+0100\n"
"PO-Revision-Date: 2013-09-29 17:24+0300\n" "PO-Revision-Date: 2013-09-29 17:24+0300\n"
"Last-Translator: Boris Kocherov <bk@raskon.org>\n" "Last-Translator: Boris Kocherov <bk@raskon.org>\n"
"Language-Team: <bk@raskon.ru>\n" "Language-Team: <bk@raskon.ru>\n"
@ -17,196 +17,196 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.5.5\n" "X-Generator: Poedit 1.5.5\n"
#: converse.js:338 #: converse.js:316
msgid "unencrypted" msgid "unencrypted"
msgstr "не зашифровано" msgstr "не зашифровано"
#: converse.js:339 #: converse.js:317
msgid "unverified" msgid "unverified"
msgstr "непроверено" msgstr "непроверено"
#: converse.js:340 #: converse.js:318
msgid "verified" msgid "verified"
msgstr "проверено" msgstr "проверено"
#: converse.js:341 #: converse.js:319
msgid "finished" msgid "finished"
msgstr "закончено" msgstr "закончено"
#: converse.js:344 #: converse.js:322
msgid "This contact is busy" msgid "This contact is busy"
msgstr "Занят" msgstr "Занят"
#: converse.js:345 #: converse.js:323
msgid "This contact is online" msgid "This contact is online"
msgstr "В сети" msgstr "В сети"
#: converse.js:346 #: converse.js:324
msgid "This contact is offline" msgid "This contact is offline"
msgstr "Не в сети" msgstr "Не в сети"
#: converse.js:347 #: converse.js:325
msgid "This contact is unavailable" msgid "This contact is unavailable"
msgstr "Не доступен" msgstr "Не доступен"
#: converse.js:348 #: converse.js:326
msgid "This contact is away for an extended period" msgid "This contact is away for an extended period"
msgstr "На долго отошёл" msgstr "На долго отошёл"
#: converse.js:349 #: converse.js:327
msgid "This contact is away" msgid "This contact is away"
msgstr "Отошёл" msgstr "Отошёл"
#: converse.js:351 #: converse.js:329
#, fuzzy #, fuzzy
msgid "Click to hide these contacts" msgid "Click to hide these contacts"
msgstr "Удалить контакт" msgstr "Удалить контакт"
#: converse.js:353 #: converse.js:331
msgid "My contacts" msgid "My contacts"
msgstr "Контакты" msgstr "Контакты"
#: converse.js:354 #: converse.js:332
msgid "Pending contacts" msgid "Pending contacts"
msgstr "Собеседники ожидающие авторизации" msgstr "Собеседники ожидающие авторизации"
#: converse.js:355 #: converse.js:333
msgid "Contact requests" msgid "Contact requests"
msgstr "Запросы на авторизацию" msgstr "Запросы на авторизацию"
#: converse.js:356 #: converse.js:334
msgid "Ungrouped" msgid "Ungrouped"
msgstr "" msgstr ""
#: converse.js:358 #: converse.js:336
msgid "Contacts" msgid "Contacts"
msgstr "Контакты" msgstr "Контакты"
#: converse.js:359 #: converse.js:337
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
#: converse.js:441 #: converse.js:419
#, fuzzy #, fuzzy
msgid "Reconnecting" msgid "Reconnecting"
msgstr "Соединение" msgstr "Соединение"
#: converse.js:476 #: converse.js:454
msgid "Disconnected" msgid "Disconnected"
msgstr "Отключено" msgstr "Отключено"
#: converse.js:484 #: converse.js:462
msgid "Error" msgid "Error"
msgstr "Ошибка" msgstr "Ошибка"
#: converse.js:486 #: converse.js:464
msgid "Connecting" msgid "Connecting"
msgstr "Соединение" msgstr "Соединение"
#: converse.js:489 #: converse.js:467
msgid "Connection Failed" msgid "Connection Failed"
msgstr "Не удалось соединится" msgstr "Не удалось соединится"
#: converse.js:491 #: converse.js:469
msgid "Authenticating" msgid "Authenticating"
msgstr "Авторизация" msgstr "Авторизация"
#: converse.js:494 #: converse.js:472
msgid "Authentication Failed" msgid "Authentication Failed"
msgstr "Не удалось авторизоваться" msgstr "Не удалось авторизоваться"
#: converse.js:499 #: converse.js:477
msgid "Disconnecting" msgid "Disconnecting"
msgstr "Отключаемся" msgstr "Отключаемся"
#: converse.js:638 converse.js:684 #: converse.js:617 converse.js:669
msgid "Online Contacts" msgid "Online Contacts"
msgstr "Cписок собеседников" msgstr "Cписок собеседников"
#: converse.js:802 #: converse.js:787
msgid "Re-establishing encrypted session" msgid "Re-establishing encrypted session"
msgstr "" msgstr ""
#: converse.js:814 #: converse.js:799
msgid "Generating private key." msgid "Generating private key."
msgstr "" msgstr ""
#: converse.js:815 #: converse.js:800
msgid "Your browser might become unresponsive." msgid "Your browser might become unresponsive."
msgstr "" msgstr ""
#: converse.js:850 #: converse.js:835
msgid "" msgid ""
"Authentication request from %1$s\n" "Authentication request from %1$s\n"
"\n" "\n"
"Your buddy is attempting to verify your identity, by asking you the question " "Your chat contact is attempting to verify your identity, by asking you the "
"below.\n" "question below.\n"
"\n" "\n"
"%2$s" "%2$s"
msgstr "" msgstr ""
#: converse.js:859 #: converse.js:844
msgid "Could not verify this user's identify." msgid "Could not verify this user's identify."
msgstr "" msgstr ""
#: converse.js:898 #: converse.js:883
msgid "Exchanging private key with buddy." msgid "Exchanging private key with contact."
msgstr "" msgstr ""
#: converse.js:1045 #: converse.js:1036
msgid "Personal message" msgid "Personal message"
msgstr "Введите сообщение" msgstr "Введите сообщение"
#: converse.js:1077 #: converse.js:1068
#, fuzzy #, fuzzy
msgid "Are you sure you want to clear the messages from this room?" msgid "Are you sure you want to clear the messages from this room?"
msgstr "Вас нет в списке этой конференции" msgstr "Вас нет в списке этой конференции"
#: converse.js:1099 #: converse.js:1090
msgid "me" msgid "me"
msgstr "Я" msgstr "Я"
#: converse.js:1154 #: converse.js:1144
msgid "is typing" msgid "is typing"
msgstr "" msgstr ""
#: converse.js:1157 #: converse.js:1147
msgid "has stopped typing" msgid "has stopped typing"
msgstr "" msgstr ""
#: converse.js:1199 converse.js:2331 #: converse.js:1189 converse.js:2360
msgid "Show this menu" msgid "Show this menu"
msgstr "Показать это меню" msgstr "Показать это меню"
#: converse.js:1200 #: converse.js:1190
msgid "Write in the third person" msgid "Write in the third person"
msgstr "" msgstr ""
#: converse.js:1201 converse.js:2330 #: converse.js:1191 converse.js:2359
msgid "Remove messages" msgid "Remove messages"
msgstr "Удалить сообщения" msgstr "Удалить сообщения"
#: converse.js:1285 #: converse.js:1275
msgid "Are you sure you want to clear the messages from this chat box?" msgid "Are you sure you want to clear the messages from this chat box?"
msgstr "" msgstr ""
#: converse.js:1320 #: converse.js:1310
msgid "Your message could not be sent" msgid "Your message could not be sent"
msgstr "Ваше сообщение не послано" msgstr "Ваше сообщение не послано"
#: converse.js:1323 #: converse.js:1313
msgid "We received an unencrypted message" msgid "We received an unencrypted message"
msgstr "" msgstr ""
#: converse.js:1326 #: converse.js:1316
msgid "We received an unreadable encrypted message" msgid "We received an unreadable encrypted message"
msgstr "" msgstr ""
#: converse.js:1335 #: converse.js:1325
msgid "This user has requested an encrypted session." msgid "This user has requested an encrypted session."
msgstr "" msgstr ""
#: converse.js:1357 #: converse.js:1347
msgid "" msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this " "Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n" "chat.\n"
@ -219,584 +219,588 @@ msgid ""
"Cancel." "Cancel."
msgstr "" msgstr ""
#: converse.js:1370 #: converse.js:1360
msgid "" msgid ""
"You will be prompted to provide a security question and then an answer to " "You will be prompted to provide a security question and then an answer to "
"that question.\n" "that question.\n"
"\n" "\n"
"Your buddy will then be prompted the same question and if they type the " "Your contact will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will be verified." "exact same answer (case sensitive), their identity will be verified."
msgstr "" msgstr ""
#: converse.js:1371 #: converse.js:1361
msgid "What is your security question?" msgid "What is your security question?"
msgstr "" msgstr ""
#: converse.js:1373 #: converse.js:1363
msgid "What is the answer to the security question?" msgid "What is the answer to the security question?"
msgstr "" msgstr ""
#: converse.js:1377 #: converse.js:1367
msgid "Invalid authentication scheme provided" msgid "Invalid authentication scheme provided"
msgstr "" msgstr ""
#: converse.js:1488 #: converse.js:1482
msgid "Your messages are not encrypted anymore" msgid "Your messages are not encrypted anymore"
msgstr "Ваши сообщения больше не шифруются" msgstr "Ваши сообщения больше не шифруются"
#: converse.js:1490 #: converse.js:1484
#, fuzzy
msgid "" msgid ""
"Your messages are now encrypted but your buddy's identity has not been " "Your messages are now encrypted but your contact's identity has not been "
"verified." "verified."
msgstr "" msgstr ""
"Ваши сообщения шифруются, но ваша учётная запись не проверена вашим " "Ваши сообщения шифруются, но ваша учётная запись не проверена вашим "
"собеседником." "собеседником."
#: converse.js:1492 #: converse.js:1486
msgid "Your buddy's identify has been verified." #, fuzzy
msgid "Your contact's identify has been verified."
msgstr "Ваша учётная запись проверена вашим собеседником." msgstr "Ваша учётная запись проверена вашим собеседником."
#: converse.js:1494 #: converse.js:1488
msgid "Your buddy has ended encryption on their end, you should do the same." msgid "Your contact has ended encryption on their end, you should do the same."
msgstr "" msgstr ""
#: converse.js:1503 #: converse.js:1497
msgid "Your messages are not encrypted. Click here to enable OTR encryption." msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr "Ваши сообщения не шифруются. Нажмите здесь чтобы настроить шифрование." msgstr "Ваши сообщения не шифруются. Нажмите здесь чтобы настроить шифрование."
#: converse.js:1505 #: converse.js:1499
msgid "Your messages are encrypted, but your buddy has not been verified." #, fuzzy
msgid "Your messages are encrypted, but your contact has not been verified."
msgstr "Ваши сообщения шифруются, но ваш контакт не проверен." msgstr "Ваши сообщения шифруются, но ваш контакт не проверен."
#: converse.js:1507 #: converse.js:1501
msgid "Your messages are encrypted and your buddy verified." #, fuzzy
msgid "Your messages are encrypted and your contact verified."
msgstr "Ваши сообщения шифруются и ваш контакт проверен" msgstr "Ваши сообщения шифруются и ваш контакт проверен"
#: converse.js:1509 #: converse.js:1503
msgid "" msgid ""
"Your buddy has closed their end of the private session, you should do the " "Your contact has closed their end of the private session, you should do the "
"same" "same"
msgstr "" msgstr ""
#: converse.js:1519 #: converse.js:1513
#, fuzzy #, fuzzy
msgid "Clear all messages" msgid "Clear all messages"
msgstr "Введите сообщение" msgstr "Введите сообщение"
#: converse.js:1520 #: converse.js:1514
msgid "End encrypted conversation" msgid "End encrypted conversation"
msgstr "" msgstr ""
#: converse.js:1521 #: converse.js:1515
msgid "Hide the list of participants" msgid "Hide the list of participants"
msgstr "" msgstr ""
#: converse.js:1522 #: converse.js:1516
msgid "Refresh encrypted conversation" msgid "Refresh encrypted conversation"
msgstr "" msgstr ""
#: converse.js:1523 #: converse.js:1517
msgid "Start a call" msgid "Start a call"
msgstr "" msgstr ""
#: converse.js:1524 #: converse.js:1518
msgid "Start encrypted conversation" msgid "Start encrypted conversation"
msgstr "" msgstr ""
#: converse.js:1525 #: converse.js:1519
msgid "Verify with fingerprints" msgid "Verify with fingerprints"
msgstr "" msgstr ""
#: converse.js:1526 #: converse.js:1520
msgid "Verify with SMP" msgid "Verify with SMP"
msgstr "" msgstr ""
#: converse.js:1527 #: converse.js:1521
msgid "What's this?" msgid "What's this?"
msgstr "Что это?" msgstr "Что это?"
#: converse.js:1618 #: converse.js:1612
msgid "Online" msgid "Online"
msgstr "В сети" msgstr "В сети"
#: converse.js:1619 #: converse.js:1613
msgid "Busy" msgid "Busy"
msgstr "Занят" msgstr "Занят"
#: converse.js:1620 #: converse.js:1614
msgid "Away" msgid "Away"
msgstr "Отошёл" msgstr "Отошёл"
#: converse.js:1621 #: converse.js:1615
msgid "Offline" msgid "Offline"
msgstr "Не в сети" msgstr "Не в сети"
#: converse.js:1622 #: converse.js:1616
#, fuzzy #, fuzzy
msgid "Log out" msgid "Log out"
msgstr "Войти" msgstr "Войти"
#: converse.js:1628 #: converse.js:1622
msgid "Contact name" msgid "Contact name"
msgstr "Имя контакта" msgstr "Имя контакта"
#: converse.js:1629 #: converse.js:1623
msgid "Search" msgid "Search"
msgstr "Поиск" msgstr "Поиск"
#: converse.js:1633 #: converse.js:1627
msgid "Contact username" msgid "Contact username"
msgstr "Имя пользователя" msgstr "Имя пользователя"
#: converse.js:1634 #: converse.js:1628
msgid "Add" msgid "Add"
msgstr "Добавить" msgstr "Добавить"
#: converse.js:1639 #: converse.js:1633
msgid "Click to add new chat contacts" msgid "Click to add new chat contacts"
msgstr "Добавить новую конференцию" msgstr "Добавить новую конференцию"
#: converse.js:1640 #: converse.js:1634
msgid "Add a contact" msgid "Add a contact"
msgstr "Добавть контакт" msgstr "Добавть контакт"
#: converse.js:1664 #: converse.js:1658
msgid "No users found" msgid "No users found"
msgstr "Пользователи не найдены" msgstr "Пользователи не найдены"
#: converse.js:1670 #: converse.js:1664
msgid "Click to add as a chat contact" msgid "Click to add as a chat contact"
msgstr "Добавить контакт" msgstr "Добавить контакт"
#: converse.js:1725 #: converse.js:1727
msgid "Room name" msgid "Room name"
msgstr "Имя конференции" msgstr "Имя конференции"
#: converse.js:1726 #: converse.js:1728
msgid "Nickname" msgid "Nickname"
msgstr "Псевдоним" msgstr "Псевдоним"
#: converse.js:1727 #: converse.js:1729
msgid "Server" msgid "Server"
msgstr "Сервер" msgstr "Сервер"
#: converse.js:1728 #: converse.js:1730
msgid "Join" msgid "Join"
msgstr "Подключиться" msgstr "Подключиться"
#: converse.js:1729 #: converse.js:1731
msgid "Show rooms" msgid "Show rooms"
msgstr "Обновить" msgstr "Обновить"
#: converse.js:1749 #: converse.js:1735
msgid "Rooms" msgid "Rooms"
msgstr "Конфер." msgstr "Конфер."
#. For translators: %1$s is a variable and will be replaced with the XMPP server name #. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:1756 #: converse.js:1755
msgid "No rooms on %1$s" msgid "No rooms on %1$s"
msgstr "Нет доступных конференций %1$s" msgstr "Нет доступных конференций %1$s"
#. For translators: %1$s is a variable and will be #. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name #. replaced with the XMPP server name
#: converse.js:1771 #: converse.js:1770
msgid "Rooms on %1$s" msgid "Rooms on %1$s"
msgstr "Конференции %1$s:" msgstr "Конференции %1$s:"
#: converse.js:1780 #: converse.js:1779
msgid "Click to open this room" msgid "Click to open this room"
msgstr "Зайти в конференцию" msgstr "Зайти в конференцию"
#: converse.js:1781 #: converse.js:1780
msgid "Show more information on this room" msgid "Show more information on this room"
msgstr "Показать больше информации об этой конференции" msgstr "Показать больше информации об этой конференции"
#: converse.js:1843 #: converse.js:1842
msgid "Description:" msgid "Description:"
msgstr "Описание:" msgstr "Описание:"
#: converse.js:1844 #: converse.js:1843
msgid "Occupants:" msgid "Occupants:"
msgstr "Участники:" msgstr "Участники:"
#: converse.js:1845 #: converse.js:1844
msgid "Features:" msgid "Features:"
msgstr "Свойства:" msgstr "Свойства:"
#: converse.js:1846 #: converse.js:1845
msgid "Requires authentication" msgid "Requires authentication"
msgstr "Требуется авторизация" msgstr "Требуется авторизация"
#: converse.js:1847 #: converse.js:1846
msgid "Hidden" msgid "Hidden"
msgstr "Скрыто" msgstr "Скрыто"
#: converse.js:1848 #: converse.js:1847
msgid "Requires an invitation" msgid "Requires an invitation"
msgstr "Требуется приглашение" msgstr "Требуется приглашение"
#: converse.js:1849 #: converse.js:1848
msgid "Moderated" msgid "Moderated"
msgstr "Модерируемая" msgstr "Модерируемая"
#: converse.js:1850 #: converse.js:1849
msgid "Non-anonymous" msgid "Non-anonymous"
msgstr "Не анонимная" msgstr "Не анонимная"
#: converse.js:1851 #: converse.js:1850
msgid "Open room" msgid "Open room"
msgstr "Открыть конференцию" msgstr "Открыть конференцию"
#: converse.js:1852 #: converse.js:1851
msgid "Permanent room" msgid "Permanent room"
msgstr "Перманентная конференция" msgstr "Перманентная конференция"
#: converse.js:1853 #: converse.js:1852
msgid "Public" msgid "Public"
msgstr "Публичный" msgstr "Публичный"
#: converse.js:1854 #: converse.js:1853
msgid "Semi-anonymous" msgid "Semi-anonymous"
msgstr "Частично анонимная" msgstr "Частично анонимная"
#: converse.js:1855 #: converse.js:1854
msgid "Temporary room" msgid "Temporary room"
msgstr "Временная конференция" msgstr "Временная конференция"
#: converse.js:1856 #: converse.js:1855
msgid "Unmoderated" msgid "Unmoderated"
msgstr "Немодерируемая" msgstr "Немодерируемая"
#: converse.js:2085 #: converse.js:2108
msgid "This user is a moderator" msgid "This user is a moderator"
msgstr "Модератор" msgstr "Модератор"
#: converse.js:2086 #: converse.js:2109
msgid "This user can send messages in this room" msgid "This user can send messages in this room"
msgstr "Собеседник" msgstr "Собеседник"
#: converse.js:2087 #: converse.js:2110
msgid "This user can NOT send messages in this room" msgid "This user can NOT send messages in this room"
msgstr "Пользователь не может посылать сообщения в эту комнату" msgstr "Пользователь не может посылать сообщения в эту комнату"
#: converse.js:2119 #: converse.js:2142
msgid "Invite..." msgid "Invite..."
msgstr "" msgstr ""
#: converse.js:2120 #: converse.js:2143
#, fuzzy #, fuzzy
msgid "Occupants" msgid "Occupants"
msgstr "Участники:" msgstr "Участники:"
#: converse.js:2185 #: converse.js:2208
msgid "You are about to invite %1$s to the chat room \"%2$s\". " msgid "You are about to invite %1$s to the chat room \"%2$s\". "
msgstr "" msgstr ""
#: converse.js:2186 #: converse.js:2209
msgid "" msgid ""
"You may optionally include a message, explaining the reason for the " "You may optionally include a message, explaining the reason for the "
"invitation." "invitation."
msgstr "" msgstr ""
#: converse.js:2269 #: converse.js:2292
msgid "Message" msgid "Message"
msgstr "Сообщение" msgstr "Сообщение"
#: converse.js:2307 #: converse.js:2328
msgid "Error: could not execute the command" msgid "Error: could not execute the command"
msgstr "" msgstr ""
#: converse.js:2329 #: converse.js:2358
#, fuzzy #, fuzzy
msgid "Ban user from room" msgid "Ban user from room"
msgstr "Забанить пользователя в этой конф." msgstr "Забанить пользователя в этой конф."
#: converse.js:2332 #: converse.js:2361
#, fuzzy #, fuzzy
msgid "Kick user from room" msgid "Kick user from room"
msgstr "Отключить пользователя от кнофер." msgstr "Отключить пользователя от кнофер."
#: converse.js:2333 #: converse.js:2362
msgid "Write in 3rd person" msgid "Write in 3rd person"
msgstr "" msgstr ""
#: converse.js:2334 #: converse.js:2363
msgid "Remove user's ability to post messages" msgid "Remove user's ability to post messages"
msgstr "" msgstr ""
#: converse.js:2335 #: converse.js:2364
msgid "Change your nickname" msgid "Change your nickname"
msgstr "" msgstr ""
#: converse.js:2336 #: converse.js:2365
#, fuzzy #, fuzzy
msgid "Set room topic" msgid "Set room topic"
msgstr "Установить тему" msgstr "Установить тему"
#: converse.js:2337 #: converse.js:2366
msgid "Allow muted user to post messages" msgid "Allow muted user to post messages"
msgstr "" msgstr ""
#: converse.js:2441 converse.js:4262 #: converse.js:2489 converse.js:4417
msgid "Save" msgid "Save"
msgstr "Сохранить" msgstr "Сохранить"
#: converse.js:2442 #: converse.js:2490
msgid "Cancel" msgid "Cancel"
msgstr "Отменить" msgstr "Отменить"
#: converse.js:2487 #: converse.js:2544
msgid "An error occurred while trying to save the form." msgid "An error occurred while trying to save the form."
msgstr "При сохранение формы произошла ошибка." msgstr "При сохранение формы произошла ошибка."
#: converse.js:2531 #: converse.js:2588
msgid "This chatroom requires a password" msgid "This chatroom requires a password"
msgstr "Для доступа в конфер. необходим пароль." msgstr "Для доступа в конфер. необходим пароль."
#: converse.js:2532 #: converse.js:2589
msgid "Password: " msgid "Password: "
msgstr "Пароль: " msgstr "Пароль: "
#: converse.js:2533 #: converse.js:2590
msgid "Submit" msgid "Submit"
msgstr "Отправить" msgstr "Отправить"
#: converse.js:2568 #: converse.js:2625
msgid "This room is not anonymous" msgid "This room is not anonymous"
msgstr "Эта комната не анонимная" msgstr "Эта комната не анонимная"
#: converse.js:2569 #: converse.js:2626
msgid "This room now shows unavailable members" msgid "This room now shows unavailable members"
msgstr "Эта комната показывает доступных собеседников" msgstr "Эта комната показывает доступных собеседников"
#: converse.js:2570 #: converse.js:2627
msgid "This room does not show unavailable members" msgid "This room does not show unavailable members"
msgstr "Эта комната не показывает недоступных собеседников" msgstr "Эта комната не показывает недоступных собеседников"
#: converse.js:2571 #: converse.js:2628
msgid "Non-privacy-related room configuration has changed" msgid "Non-privacy-related room configuration has changed"
msgstr "" msgstr ""
#: converse.js:2572 #: converse.js:2629
msgid "Room logging is now enabled" msgid "Room logging is now enabled"
msgstr "" msgstr ""
#: converse.js:2573 #: converse.js:2630
msgid "Room logging is now disabled" msgid "Room logging is now disabled"
msgstr "" msgstr ""
#: converse.js:2574 #: converse.js:2631
msgid "This room is now non-anonymous" msgid "This room is now non-anonymous"
msgstr "Эта комната не анонимная" msgstr "Эта комната не анонимная"
#: converse.js:2575 #: converse.js:2632
msgid "This room is now semi-anonymous" msgid "This room is now semi-anonymous"
msgstr "Эта комната частично анонимная" msgstr "Эта комната частично анонимная"
#: converse.js:2576 #: converse.js:2633
msgid "This room is now fully-anonymous" msgid "This room is now fully-anonymous"
msgstr "Эта комната стала полностью анонимной" msgstr "Эта комната стала полностью анонимной"
#: converse.js:2577 #: converse.js:2634
msgid "A new room has been created" msgid "A new room has been created"
msgstr "Новая комната была создана" msgstr "Новая комната была создана"
#: converse.js:2581 converse.js:2681 #: converse.js:2638 converse.js:2738
msgid "You have been banned from this room" msgid "You have been banned from this room"
msgstr "Вам запрещено подключатся к этой конференции" msgstr "Вам запрещено подключатся к этой конференции"
#: converse.js:2582 #: converse.js:2639
msgid "You have been kicked from this room" msgid "You have been kicked from this room"
msgstr "Вам запрещено подключатся к этой конференции" msgstr "Вам запрещено подключатся к этой конференции"
#: converse.js:2583 #: converse.js:2640
msgid "You have been removed from this room because of an affiliation change" msgid "You have been removed from this room because of an affiliation change"
msgstr "<strong>%1$s</strong> удалён потому что изменились права" msgstr "<strong>%1$s</strong> удалён потому что изменились права"
#: converse.js:2584 #: converse.js:2641
msgid "" msgid ""
"You have been removed from this room because the room has changed to members-" "You have been removed from this room because the room has changed to members-"
"only and you're not a member" "only and you're not a member"
msgstr "" msgstr ""
"Вы отключены от этой конференции потому что режим изменился: только-участники" "Вы отключены от этой конференции потому что режим изменился: только-участники"
#: converse.js:2585 #: converse.js:2642
msgid "" msgid ""
"You have been removed from this room because the MUC (Multi-user chat) " "You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down." "service is being shut down."
msgstr "" msgstr ""
"Вы отключены от этой конференции потому что сервись конференций выключен." "Вы отключены от этой конференции потому что сервись конференций выключен."
#: converse.js:2599 #: converse.js:2656
msgid "<strong>%1$s</strong> has been banned" msgid "<strong>%1$s</strong> has been banned"
msgstr "<strong>%1$s</strong> забанен" msgstr "<strong>%1$s</strong> забанен"
#: converse.js:2600 #: converse.js:2657
#, fuzzy #, fuzzy
msgid "<strong>%1$s</strong>'s nickname has changed" msgid "<strong>%1$s</strong>'s nickname has changed"
msgstr "<strong>%1$s</strong> забанен" msgstr "<strong>%1$s</strong> забанен"
#: converse.js:2601 #: converse.js:2658
msgid "<strong>%1$s</strong> has been kicked out" msgid "<strong>%1$s</strong> has been kicked out"
msgstr "<strong>%1$s</strong> выдворен" msgstr "<strong>%1$s</strong> выдворен"
#: converse.js:2602 #: converse.js:2659
msgid "<strong>%1$s</strong> has been removed because of an affiliation change" msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr "" msgstr ""
"<strong>%1$s</strong> has been removed because of an affiliation change" "<strong>%1$s</strong> has been removed because of an affiliation change"
#: converse.js:2603 #: converse.js:2660
msgid "<strong>%1$s</strong> has been removed for not being a member" msgid "<strong>%1$s</strong> has been removed for not being a member"
msgstr "<strong>%1$s</strong> удалён потому что не участник" msgstr "<strong>%1$s</strong> удалён потому что не участник"
#: converse.js:2607 #: converse.js:2664
#, fuzzy #, fuzzy
msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>" msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>"
msgstr "Ваш псевдоним уже используется другим пользователем" msgstr "Ваш псевдоним уже используется другим пользователем"
#: converse.js:2608 #: converse.js:2665
#, fuzzy #, fuzzy
msgid "Your nickname has been changed to: <strong>%1$s</strong>" msgid "Your nickname has been changed to: <strong>%1$s</strong>"
msgstr "Ваш псевдоним уже используется другим пользователем" msgstr "Ваш псевдоним уже используется другим пользователем"
#: converse.js:2656 converse.js:2666 #: converse.js:2713 converse.js:2723
msgid "The reason given is: \"" msgid "The reason given is: \""
msgstr "" msgstr ""
#: converse.js:2679 #: converse.js:2736
msgid "You are not on the member list of this room" msgid "You are not on the member list of this room"
msgstr "Вас нет в списке этой конференции" msgstr "Вас нет в списке этой конференции"
#: converse.js:2685 #: converse.js:2742
msgid "No nickname was specified" msgid "No nickname was specified"
msgstr "Вы не указали псевдоним" msgstr "Вы не указали псевдоним"
#: converse.js:2689 #: converse.js:2746
msgid "You are not allowed to create new rooms" msgid "You are not allowed to create new rooms"
msgstr "Вы не имеете права создавать конфер." msgstr "Вы не имеете права создавать конфер."
#: converse.js:2691 #: converse.js:2748
msgid "Your nickname doesn't conform to this room's policies" msgid "Your nickname doesn't conform to this room's policies"
msgstr "Псевдоним не согласуется с правилами конфер." msgstr "Псевдоним не согласуется с правилами конфер."
#: converse.js:2695 #: converse.js:2752
msgid "Your nickname is already taken" msgid "Your nickname is already taken"
msgstr "Ваш ник уже используется другим пользователем" msgstr "Ваш ник уже используется другим пользователем"
#: converse.js:2697 #: converse.js:2754
msgid "This room does not (yet) exist" msgid "This room does not (yet) exist"
msgstr "Эта комната не существует" msgstr "Эта комната не существует"
#: converse.js:2699 #: converse.js:2756
msgid "This room has reached it's maximum number of occupants" msgid "This room has reached it's maximum number of occupants"
msgstr "Конференция достигла максимального количества участников" msgstr "Конференция достигла максимального количества участников"
#: converse.js:2736 #: converse.js:2798
msgid "Topic set by %1$s to: %2$s" msgid "Topic set by %1$s to: %2$s"
msgstr "Тема %2$s устатновлена %1$s" msgstr "Тема %2$s устатновлена %1$s"
#: converse.js:2818 #: converse.js:2880
msgid "%1$s has invited you to join a chat room: %2$s" msgid "%1$s has invited you to join a chat room: %2$s"
msgstr "" msgstr ""
#: converse.js:2822 #: converse.js:2884
msgid "" msgid ""
"%1$s has invited you to join a chat room: %2$s, and left the following " "%1$s has invited you to join a chat room: %2$s, and left the following "
"reason: \"%3$s\"" "reason: \"%3$s\""
msgstr "" msgstr ""
#: converse.js:3058 #: converse.js:3140
#, fuzzy #, fuzzy
msgid "Click to restore this chat" msgid "Click to restore this chat"
msgstr "Удалить контакт" msgstr "Удалить контакт"
#: converse.js:3202 #: converse.js:3285
msgid "Minimized" msgid "Minimized"
msgstr "" msgstr ""
#: converse.js:3274 #: converse.js:3381 converse.js:3399
#, fuzzy
msgid "Are you sure you want to remove this contact?"
msgstr "Удалить контакт"
#: converse.js:3297
#, fuzzy
msgid "Are you sure you want to decline this contact request?"
msgstr "Удалить контакт"
#: converse.js:3341 converse.js:3359
msgid "Click to remove this contact" msgid "Click to remove this contact"
msgstr "Удалить контакт" msgstr "Удалить контакт"
#: converse.js:3348 #: converse.js:3388
#, fuzzy #, fuzzy
msgid "Click to accept this contact request" msgid "Click to accept this contact request"
msgstr "Удалить контакт" msgstr "Удалить контакт"
#: converse.js:3349 #: converse.js:3389
#, fuzzy #, fuzzy
msgid "Click to decline this contact request" msgid "Click to decline this contact request"
msgstr "Удалить контакт" msgstr "Удалить контакт"
#: converse.js:3358 #: converse.js:3398
msgid "Click to chat with this contact" msgid "Click to chat with this contact"
msgstr "Начать общение" msgstr "Начать общение"
#: converse.js:3874 #: converse.js:3423
#, fuzzy
msgid "Are you sure you want to remove this contact?"
msgstr "Удалить контакт"
#: converse.js:3446
#, fuzzy
msgid "Are you sure you want to decline this contact request?"
msgstr "Удалить контакт"
#: converse.js:3972
msgid "Type to filter" msgid "Type to filter"
msgstr "" msgstr ""
#. For translators: the %1$s part gets replaced with the status #. For translators: the %1$s part gets replaced with the status
#. Example, I am online #. Example, I am online
#: converse.js:4233 converse.js:4310 #: converse.js:4388 converse.js:4465
msgid "I am %1$s" msgid "I am %1$s"
msgstr "%1$s" msgstr "%1$s"
#: converse.js:4235 converse.js:4315 #: converse.js:4390 converse.js:4470
msgid "Click here to write a custom status message" msgid "Click here to write a custom status message"
msgstr "Редактировать произвольный статус" msgstr "Редактировать произвольный статус"
#: converse.js:4236 converse.js:4316 #: converse.js:4391 converse.js:4471
msgid "Click to change your chat status" msgid "Click to change your chat status"
msgstr "Изменить ваш статус" msgstr "Изменить ваш статус"
#: converse.js:4261 #: converse.js:4416
msgid "Custom status" msgid "Custom status"
msgstr "Произвольный статус" msgstr "Произвольный статус"
#: converse.js:4290 converse.js:4298 #: converse.js:4445 converse.js:4453
msgid "online" msgid "online"
msgstr "на связи" msgstr "на связи"
#: converse.js:4292 #: converse.js:4447
msgid "busy" msgid "busy"
msgstr "занят" msgstr "занят"
#: converse.js:4294 #: converse.js:4449
msgid "away for long" msgid "away for long"
msgstr "отошёл на долго" msgstr "отошёл на долго"
#: converse.js:4296 #: converse.js:4451
msgid "away" msgid "away"
msgstr "отошёл" msgstr "отошёл"
#: converse.js:4419 #: converse.js:4574
msgid "XMPP/Jabber Username:" msgid "XMPP/Jabber Username:"
msgstr "JID:" msgstr "JID:"
#: converse.js:4420 #: converse.js:4575
msgid "Password:" msgid "Password:"
msgstr "Пароль:" msgstr "Пароль:"
#: converse.js:4421 #: converse.js:4576
msgid "Log In" msgid "Log In"
msgstr "Войти" msgstr "Войти"
#: converse.js:4428 #: converse.js:4583
msgid "Sign in" msgid "Sign in"
msgstr "Подписать" msgstr "Подписать"
#: converse.js:4488 #: converse.js:4643
msgid "Toggle chat" msgid "Toggle chat"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Converse.js 0.4\n" "Project-Id-Version: Converse.js 0.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-09-22 17:23+0200\n" "POT-Creation-Date: 2014-11-15 16:36+0100\n"
"PO-Revision-Date: 2014-07-06 18:05+0200\n" "PO-Revision-Date: 2014-07-06 18:05+0200\n"
"Last-Translator: Huxisuz Hu <huxisuz@gmail.com>\n" "Last-Translator: Huxisuz Hu <huxisuz@gmail.com>\n"
"Language-Team: Language zh\n" "Language-Team: Language zh\n"
@ -19,130 +19,131 @@ msgstr ""
"lang: zh\n" "lang: zh\n"
"plural_forms: nplurals=2; plural=(n != 1);\n" "plural_forms: nplurals=2; plural=(n != 1);\n"
#: converse.js:338 #: converse.js:316
msgid "unencrypted" msgid "unencrypted"
msgstr "未加密" msgstr "未加密"
#: converse.js:339 #: converse.js:317
msgid "unverified" msgid "unverified"
msgstr "未验证" msgstr "未验证"
#: converse.js:340 #: converse.js:318
msgid "verified" msgid "verified"
msgstr "已验证" msgstr "已验证"
#: converse.js:341 #: converse.js:319
msgid "finished" msgid "finished"
msgstr "结束了" msgstr "结束了"
#: converse.js:344 #: converse.js:322
msgid "This contact is busy" msgid "This contact is busy"
msgstr "对方忙碌中" msgstr "对方忙碌中"
#: converse.js:345 #: converse.js:323
msgid "This contact is online" msgid "This contact is online"
msgstr "对方在线中" msgstr "对方在线中"
#: converse.js:346 #: converse.js:324
msgid "This contact is offline" msgid "This contact is offline"
msgstr "对方已下线" msgstr "对方已下线"
#: converse.js:347 #: converse.js:325
msgid "This contact is unavailable" msgid "This contact is unavailable"
msgstr "对方免打扰" msgstr "对方免打扰"
#: converse.js:348 #: converse.js:326
msgid "This contact is away for an extended period" msgid "This contact is away for an extended period"
msgstr "对方暂时离开" msgstr "对方暂时离开"
#: converse.js:349 #: converse.js:327
msgid "This contact is away" msgid "This contact is away"
msgstr "对方离开" msgstr "对方离开"
#: converse.js:351 #: converse.js:329
#, fuzzy #, fuzzy
msgid "Click to hide these contacts" msgid "Click to hide these contacts"
msgstr "点击移除联系人" msgstr "点击移除联系人"
#: converse.js:353 #: converse.js:331
msgid "My contacts" msgid "My contacts"
msgstr "我的好友列表" msgstr "我的好友列表"
#: converse.js:354 #: converse.js:332
msgid "Pending contacts" msgid "Pending contacts"
msgstr "保留中的联系人" msgstr "保留中的联系人"
#: converse.js:355 #: converse.js:333
msgid "Contact requests" msgid "Contact requests"
msgstr "来自好友的请求" msgstr "来自好友的请求"
#: converse.js:356 #: converse.js:334
msgid "Ungrouped" msgid "Ungrouped"
msgstr "" msgstr ""
#: converse.js:358 #: converse.js:336
msgid "Contacts" msgid "Contacts"
msgstr "联系人" msgstr "联系人"
#: converse.js:359 #: converse.js:337
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
#: converse.js:441 #: converse.js:419
#, fuzzy #, fuzzy
msgid "Reconnecting" msgid "Reconnecting"
msgstr "连接中" msgstr "连接中"
#: converse.js:476 #: converse.js:454
msgid "Disconnected" msgid "Disconnected"
msgstr "连接已断开" msgstr "连接已断开"
#: converse.js:484 #: converse.js:462
msgid "Error" msgid "Error"
msgstr "错误" msgstr "错误"
#: converse.js:486 #: converse.js:464
msgid "Connecting" msgid "Connecting"
msgstr "连接中" msgstr "连接中"
#: converse.js:489 #: converse.js:467
msgid "Connection Failed" msgid "Connection Failed"
msgstr "连接失败" msgstr "连接失败"
#: converse.js:491 #: converse.js:469
msgid "Authenticating" msgid "Authenticating"
msgstr "验证中" msgstr "验证中"
#: converse.js:494 #: converse.js:472
msgid "Authentication Failed" msgid "Authentication Failed"
msgstr "验证失败" msgstr "验证失败"
#: converse.js:499 #: converse.js:477
msgid "Disconnecting" msgid "Disconnecting"
msgstr "断开链接中" msgstr "断开链接中"
#: converse.js:638 converse.js:684 #: converse.js:617 converse.js:669
msgid "Online Contacts" msgid "Online Contacts"
msgstr "在线好友" msgstr "在线好友"
#: converse.js:802 #: converse.js:787
msgid "Re-establishing encrypted session" msgid "Re-establishing encrypted session"
msgstr "重新建立加密会话" msgstr "重新建立加密会话"
#: converse.js:814 #: converse.js:799
msgid "Generating private key." msgid "Generating private key."
msgstr "正在生成私钥" msgstr "正在生成私钥"
#: converse.js:815 #: converse.js:800
msgid "Your browser might become unresponsive." msgid "Your browser might become unresponsive."
msgstr "您的浏览器可能会暂时无响应" msgstr "您的浏览器可能会暂时无响应"
#: converse.js:850 #: converse.js:835
#, fuzzy
msgid "" msgid ""
"Authentication request from %1$s\n" "Authentication request from %1$s\n"
"\n" "\n"
"Your buddy is attempting to verify your identity, by asking you the question " "Your chat contact is attempting to verify your identity, by asking you the "
"below.\n" "question below.\n"
"\n" "\n"
"%2$s" "%2$s"
msgstr "" msgstr ""
@ -152,68 +153,69 @@ msgstr ""
"\n" "\n"
"%2$s" "%2$s"
#: converse.js:859 #: converse.js:844
msgid "Could not verify this user's identify." msgid "Could not verify this user's identify."
msgstr "无法验证对方信息。" msgstr "无法验证对方信息。"
#: converse.js:898 #: converse.js:883
msgid "Exchanging private key with buddy." #, fuzzy
msgid "Exchanging private key with contact."
msgstr "正在与对方交换私钥" msgstr "正在与对方交换私钥"
#: converse.js:1045 #: converse.js:1036
msgid "Personal message" msgid "Personal message"
msgstr "私信" msgstr "私信"
#: converse.js:1077 #: converse.js:1068
#, fuzzy #, fuzzy
msgid "Are you sure you want to clear the messages from this room?" msgid "Are you sure you want to clear the messages from this room?"
msgstr "您并非此房间成员" msgstr "您并非此房间成员"
#: converse.js:1099 #: converse.js:1090
msgid "me" msgid "me"
msgstr "我" msgstr "我"
#: converse.js:1154 #: converse.js:1144
msgid "is typing" msgid "is typing"
msgstr "" msgstr ""
#: converse.js:1157 #: converse.js:1147
msgid "has stopped typing" msgid "has stopped typing"
msgstr "" msgstr ""
#: converse.js:1199 converse.js:2331 #: converse.js:1189 converse.js:2360
msgid "Show this menu" msgid "Show this menu"
msgstr "显示此项菜单" msgstr "显示此项菜单"
#: converse.js:1200 #: converse.js:1190
msgid "Write in the third person" msgid "Write in the third person"
msgstr "以第三者身份写" msgstr "以第三者身份写"
#: converse.js:1201 converse.js:2330 #: converse.js:1191 converse.js:2359
msgid "Remove messages" msgid "Remove messages"
msgstr "移除消息" msgstr "移除消息"
#: converse.js:1285 #: converse.js:1275
msgid "Are you sure you want to clear the messages from this chat box?" msgid "Are you sure you want to clear the messages from this chat box?"
msgstr "你确定清除此次的聊天记录吗?" msgstr "你确定清除此次的聊天记录吗?"
#: converse.js:1320 #: converse.js:1310
msgid "Your message could not be sent" msgid "Your message could not be sent"
msgstr "您的消息无法送出" msgstr "您的消息无法送出"
#: converse.js:1323 #: converse.js:1313
msgid "We received an unencrypted message" msgid "We received an unencrypted message"
msgstr "我们收到了一条未加密的信息" msgstr "我们收到了一条未加密的信息"
#: converse.js:1326 #: converse.js:1316
msgid "We received an unreadable encrypted message" msgid "We received an unreadable encrypted message"
msgstr "我们收到一条无法读取的信息" msgstr "我们收到一条无法读取的信息"
#: converse.js:1335 #: converse.js:1325
msgid "This user has requested an encrypted session." msgid "This user has requested an encrypted session."
msgstr "此用户请求了一个加密会话。" msgstr "此用户请求了一个加密会话。"
#: converse.js:1357 #: converse.js:1347
msgid "" msgid ""
"Here are the fingerprints, please confirm them with %1$s, outside of this " "Here are the fingerprints, please confirm them with %1$s, outside of this "
"chat.\n" "chat.\n"
@ -233,584 +235,590 @@ msgstr ""
"\n" "\n"
"如果确认符合请点击OK否则点击取消" "如果确认符合请点击OK否则点击取消"
#: converse.js:1370 #: converse.js:1360
#, fuzzy #, fuzzy
msgid "" msgid ""
"You will be prompted to provide a security question and then an answer to " "You will be prompted to provide a security question and then an answer to "
"that question.\n" "that question.\n"
"\n" "\n"
"Your buddy will then be prompted the same question and if they type the " "Your contact will then be prompted the same question and if they type the "
"exact same answer (case sensitive), their identity will be verified." "exact same answer (case sensitive), their identity will be verified."
msgstr "" msgstr ""
"您会被要求回答一下安全问题。\n" "您会被要求回答一下安全问题。\n"
"\n" "\n"
"对方需要回答相同的问题(区分大小写),如果答案一致,身份将被验证。" "对方需要回答相同的问题(区分大小写),如果答案一致,身份将被验证。"
#: converse.js:1371 #: converse.js:1361
msgid "What is your security question?" msgid "What is your security question?"
msgstr "您的安全问题是?" msgstr "您的安全问题是?"
#: converse.js:1373 #: converse.js:1363
msgid "What is the answer to the security question?" msgid "What is the answer to the security question?"
msgstr "此安全问题的答案是?" msgstr "此安全问题的答案是?"
#: converse.js:1377 #: converse.js:1367
msgid "Invalid authentication scheme provided" msgid "Invalid authentication scheme provided"
msgstr "非法的认证方式" msgstr "非法的认证方式"
#: converse.js:1488 #: converse.js:1482
msgid "Your messages are not encrypted anymore" msgid "Your messages are not encrypted anymore"
msgstr "您的消息将不再被加密" msgstr "您的消息将不再被加密"
#: converse.js:1490 #: converse.js:1484
#, fuzzy
msgid "" msgid ""
"Your messages are now encrypted but your buddy's identity has not been " "Your messages are now encrypted but your contact's identity has not been "
"verified." "verified."
msgstr "您的消息现已加密,但是对方身份尚未验证" msgstr "您的消息现已加密,但是对方身份尚未验证"
#: converse.js:1492 #: converse.js:1486
msgid "Your buddy's identify has been verified." #, fuzzy
msgid "Your contact's identify has been verified."
msgstr "对方的身份已通过验证。" msgstr "对方的身份已通过验证。"
#: converse.js:1494 #: converse.js:1488
msgid "Your buddy has ended encryption on their end, you should do the same." #, fuzzy
msgid "Your contact has ended encryption on their end, you should do the same."
msgstr "对方已结束加密,您也需要做同样的操作。" msgstr "对方已结束加密,您也需要做同样的操作。"
#: converse.js:1503 #: converse.js:1497
msgid "Your messages are not encrypted. Click here to enable OTR encryption." msgid "Your messages are not encrypted. Click here to enable OTR encryption."
msgstr "您的消息未加密。点击这里来启用OTR加密" msgstr "您的消息未加密。点击这里来启用OTR加密"
#: converse.js:1505 #: converse.js:1499
msgid "Your messages are encrypted, but your buddy has not been verified." #, fuzzy
msgid "Your messages are encrypted, but your contact has not been verified."
msgstr "您的消息已加密,但对方未通过验证" msgstr "您的消息已加密,但对方未通过验证"
#: converse.js:1507 #: converse.js:1501
msgid "Your messages are encrypted and your buddy verified." #, fuzzy
msgid "Your messages are encrypted and your contact verified."
msgstr "您的消息已加密,对方已验证。" msgstr "您的消息已加密,对方已验证。"
#: converse.js:1509 #: converse.js:1503
#, fuzzy
msgid "" msgid ""
"Your buddy has closed their end of the private session, you should do the " "Your contact has closed their end of the private session, you should do the "
"same" "same"
msgstr "对方已关闭私有会话,您也应该关闭" msgstr "对方已关闭私有会话,您也应该关闭"
#: converse.js:1519 #: converse.js:1513
#, fuzzy #, fuzzy
msgid "Clear all messages" msgid "Clear all messages"
msgstr "私信" msgstr "私信"
#: converse.js:1520 #: converse.js:1514
msgid "End encrypted conversation" msgid "End encrypted conversation"
msgstr "结束加密的会话" msgstr "结束加密的会话"
#: converse.js:1521 #: converse.js:1515
msgid "Hide the list of participants" msgid "Hide the list of participants"
msgstr "" msgstr ""
#: converse.js:1522 #: converse.js:1516
msgid "Refresh encrypted conversation" msgid "Refresh encrypted conversation"
msgstr "刷新加密的会话" msgstr "刷新加密的会话"
#: converse.js:1523 #: converse.js:1517
msgid "Start a call" msgid "Start a call"
msgstr "" msgstr ""
#: converse.js:1524 #: converse.js:1518
msgid "Start encrypted conversation" msgid "Start encrypted conversation"
msgstr "开始加密的会话" msgstr "开始加密的会话"
#: converse.js:1525 #: converse.js:1519
msgid "Verify with fingerprints" msgid "Verify with fingerprints"
msgstr "验证指纹" msgstr "验证指纹"
#: converse.js:1526 #: converse.js:1520
msgid "Verify with SMP" msgid "Verify with SMP"
msgstr "验证SMP" msgstr "验证SMP"
#: converse.js:1527 #: converse.js:1521
msgid "What's this?" msgid "What's this?"
msgstr "这是什么?" msgstr "这是什么?"
#: converse.js:1618 #: converse.js:1612
msgid "Online" msgid "Online"
msgstr "在线" msgstr "在线"
#: converse.js:1619 #: converse.js:1613
msgid "Busy" msgid "Busy"
msgstr "忙碌中" msgstr "忙碌中"
#: converse.js:1620 #: converse.js:1614
msgid "Away" msgid "Away"
msgstr "离开" msgstr "离开"
#: converse.js:1621 #: converse.js:1615
msgid "Offline" msgid "Offline"
msgstr "离线" msgstr "离线"
#: converse.js:1622 #: converse.js:1616
#, fuzzy #, fuzzy
msgid "Log out" msgid "Log out"
msgstr "登录" msgstr "登录"
#: converse.js:1628 #: converse.js:1622
msgid "Contact name" msgid "Contact name"
msgstr "联系人名称" msgstr "联系人名称"
#: converse.js:1629 #: converse.js:1623
msgid "Search" msgid "Search"
msgstr "搜索" msgstr "搜索"
#: converse.js:1633 #: converse.js:1627
msgid "Contact username" msgid "Contact username"
msgstr "联系人姓名" msgstr "联系人姓名"
#: converse.js:1634 #: converse.js:1628
msgid "Add" msgid "Add"
msgstr "添加" msgstr "添加"
#: converse.js:1639 #: converse.js:1633
msgid "Click to add new chat contacts" msgid "Click to add new chat contacts"
msgstr "点击添加新联系人" msgstr "点击添加新联系人"
#: converse.js:1640 #: converse.js:1634
msgid "Add a contact" msgid "Add a contact"
msgstr "添加联系人" msgstr "添加联系人"
#: converse.js:1664 #: converse.js:1658
msgid "No users found" msgid "No users found"
msgstr "未找到用户" msgstr "未找到用户"
#: converse.js:1670 #: converse.js:1664
msgid "Click to add as a chat contact" msgid "Click to add as a chat contact"
msgstr "点击添加为好友" msgstr "点击添加为好友"
#: converse.js:1725 #: converse.js:1727
msgid "Room name" msgid "Room name"
msgstr "聊天室名称" msgstr "聊天室名称"
#: converse.js:1726 #: converse.js:1728
msgid "Nickname" msgid "Nickname"
msgstr "昵称" msgstr "昵称"
#: converse.js:1727 #: converse.js:1729
msgid "Server" msgid "Server"
msgstr "服务器" msgstr "服务器"
#: converse.js:1728 #: converse.js:1730
msgid "Join" msgid "Join"
msgstr "加入" msgstr "加入"
#: converse.js:1729 #: converse.js:1731
msgid "Show rooms" msgid "Show rooms"
msgstr "显示所有聊天室" msgstr "显示所有聊天室"
#: converse.js:1749 #: converse.js:1735
msgid "Rooms" msgid "Rooms"
msgstr "聊天室" msgstr "聊天室"
#. For translators: %1$s is a variable and will be replaced with the XMPP server name #. For translators: %1$s is a variable and will be replaced with the XMPP server name
#: converse.js:1756 #: converse.js:1755
msgid "No rooms on %1$s" msgid "No rooms on %1$s"
msgstr "%1$s 上没有聊天室" msgstr "%1$s 上没有聊天室"
#. For translators: %1$s is a variable and will be #. For translators: %1$s is a variable and will be
#. replaced with the XMPP server name #. replaced with the XMPP server name
#: converse.js:1771 #: converse.js:1770
msgid "Rooms on %1$s" msgid "Rooms on %1$s"
msgstr "%1$s 上的聊天室" msgstr "%1$s 上的聊天室"
#: converse.js:1780 #: converse.js:1779
msgid "Click to open this room" msgid "Click to open this room"
msgstr "打开聊天室" msgstr "打开聊天室"
#: converse.js:1781 #: converse.js:1780
msgid "Show more information on this room" msgid "Show more information on this room"
msgstr "显示次聊天室的更多信息" msgstr "显示次聊天室的更多信息"
#: converse.js:1843 #: converse.js:1842
msgid "Description:" msgid "Description:"
msgstr "描述: " msgstr "描述: "
#: converse.js:1844 #: converse.js:1843
msgid "Occupants:" msgid "Occupants:"
msgstr "成员:" msgstr "成员:"
#: converse.js:1845 #: converse.js:1844
msgid "Features:" msgid "Features:"
msgstr "特性:" msgstr "特性:"
#: converse.js:1846 #: converse.js:1845
msgid "Requires authentication" msgid "Requires authentication"
msgstr "需要验证" msgstr "需要验证"
#: converse.js:1847 #: converse.js:1846
msgid "Hidden" msgid "Hidden"
msgstr "隐藏的" msgstr "隐藏的"
#: converse.js:1848 #: converse.js:1847
msgid "Requires an invitation" msgid "Requires an invitation"
msgstr "需要被邀请" msgstr "需要被邀请"
#: converse.js:1849 #: converse.js:1848
msgid "Moderated" msgid "Moderated"
msgstr "发言受限" msgstr "发言受限"
#: converse.js:1850 #: converse.js:1849
msgid "Non-anonymous" msgid "Non-anonymous"
msgstr "非匿名" msgstr "非匿名"
#: converse.js:1851 #: converse.js:1850
msgid "Open room" msgid "Open room"
msgstr "打开聊天室" msgstr "打开聊天室"
#: converse.js:1852 #: converse.js:1851
msgid "Permanent room" msgid "Permanent room"
msgstr "永久聊天室" msgstr "永久聊天室"
#: converse.js:1853 #: converse.js:1852
msgid "Public" msgid "Public"
msgstr "公开的" msgstr "公开的"
#: converse.js:1854 #: converse.js:1853
msgid "Semi-anonymous" msgid "Semi-anonymous"
msgstr "半匿名" msgstr "半匿名"
#: converse.js:1855 #: converse.js:1854
msgid "Temporary room" msgid "Temporary room"
msgstr "临时聊天室" msgstr "临时聊天室"
#: converse.js:1856 #: converse.js:1855
msgid "Unmoderated" msgid "Unmoderated"
msgstr "无发言限制" msgstr "无发言限制"
#: converse.js:2085 #: converse.js:2108
msgid "This user is a moderator" msgid "This user is a moderator"
msgstr "此用户是主持人" msgstr "此用户是主持人"
#: converse.js:2086 #: converse.js:2109
msgid "This user can send messages in this room" msgid "This user can send messages in this room"
msgstr "此用户在这房间里可发消息" msgstr "此用户在这房间里可发消息"
#: converse.js:2087 #: converse.js:2110
msgid "This user can NOT send messages in this room" msgid "This user can NOT send messages in this room"
msgstr "此用户不可在此房间发消息" msgstr "此用户不可在此房间发消息"
#: converse.js:2119 #: converse.js:2142
msgid "Invite..." msgid "Invite..."
msgstr "" msgstr ""
#: converse.js:2120 #: converse.js:2143
#, fuzzy #, fuzzy
msgid "Occupants" msgid "Occupants"
msgstr "成员:" msgstr "成员:"
#: converse.js:2185 #: converse.js:2208
msgid "You are about to invite %1$s to the chat room \"%2$s\". " msgid "You are about to invite %1$s to the chat room \"%2$s\". "
msgstr "" msgstr ""
#: converse.js:2186 #: converse.js:2209
msgid "" msgid ""
"You may optionally include a message, explaining the reason for the " "You may optionally include a message, explaining the reason for the "
"invitation." "invitation."
msgstr "" msgstr ""
#: converse.js:2269 #: converse.js:2292
msgid "Message" msgid "Message"
msgstr "信息" msgstr "信息"
#: converse.js:2307 #: converse.js:2328
msgid "Error: could not execute the command" msgid "Error: could not execute the command"
msgstr "" msgstr ""
#: converse.js:2329 #: converse.js:2358
#, fuzzy #, fuzzy
msgid "Ban user from room" msgid "Ban user from room"
msgstr "阻止此用户进入房间" msgstr "阻止此用户进入房间"
#: converse.js:2332 #: converse.js:2361
#, fuzzy #, fuzzy
msgid "Kick user from room" msgid "Kick user from room"
msgstr "把用户踢出房间" msgstr "把用户踢出房间"
#: converse.js:2333 #: converse.js:2362
#, fuzzy #, fuzzy
msgid "Write in 3rd person" msgid "Write in 3rd person"
msgstr "以第三者身份写" msgstr "以第三者身份写"
#: converse.js:2334 #: converse.js:2363
msgid "Remove user's ability to post messages" msgid "Remove user's ability to post messages"
msgstr "" msgstr ""
#: converse.js:2335 #: converse.js:2364
msgid "Change your nickname" msgid "Change your nickname"
msgstr "" msgstr ""
#: converse.js:2336 #: converse.js:2365
#, fuzzy #, fuzzy
msgid "Set room topic" msgid "Set room topic"
msgstr "设置房间主题" msgstr "设置房间主题"
#: converse.js:2337 #: converse.js:2366
msgid "Allow muted user to post messages" msgid "Allow muted user to post messages"
msgstr "" msgstr ""
#: converse.js:2441 converse.js:4262 #: converse.js:2489 converse.js:4417
msgid "Save" msgid "Save"
msgstr "保存" msgstr "保存"
#: converse.js:2442 #: converse.js:2490
msgid "Cancel" msgid "Cancel"
msgstr "取消" msgstr "取消"
#: converse.js:2487 #: converse.js:2544
msgid "An error occurred while trying to save the form." msgid "An error occurred while trying to save the form."
msgstr "保存表单是出错。" msgstr "保存表单是出错。"
#: converse.js:2531 #: converse.js:2588
msgid "This chatroom requires a password" msgid "This chatroom requires a password"
msgstr "此聊天室需要密码" msgstr "此聊天室需要密码"
#: converse.js:2532 #: converse.js:2589
msgid "Password: " msgid "Password: "
msgstr "密码:" msgstr "密码:"
#: converse.js:2533 #: converse.js:2590
msgid "Submit" msgid "Submit"
msgstr "发送" msgstr "发送"
#: converse.js:2568 #: converse.js:2625
msgid "This room is not anonymous" msgid "This room is not anonymous"
msgstr "此为非匿名聊天室" msgstr "此为非匿名聊天室"
#: converse.js:2569 #: converse.js:2626
msgid "This room now shows unavailable members" msgid "This room now shows unavailable members"
msgstr "此聊天室显示不可用用户" msgstr "此聊天室显示不可用用户"
#: converse.js:2570 #: converse.js:2627
msgid "This room does not show unavailable members" msgid "This room does not show unavailable members"
msgstr "此聊天室不显示不可用用户" msgstr "此聊天室不显示不可用用户"
#: converse.js:2571 #: converse.js:2628
msgid "Non-privacy-related room configuration has changed" msgid "Non-privacy-related room configuration has changed"
msgstr "此聊天室设置(非私密性)已改变" msgstr "此聊天室设置(非私密性)已改变"
#: converse.js:2572 #: converse.js:2629
msgid "Room logging is now enabled" msgid "Room logging is now enabled"
msgstr "聊天室聊天记录已启用" msgstr "聊天室聊天记录已启用"
#: converse.js:2573 #: converse.js:2630
msgid "Room logging is now disabled" msgid "Room logging is now disabled"
msgstr "聊天室聊天记录已禁用" msgstr "聊天室聊天记录已禁用"
#: converse.js:2574 #: converse.js:2631
msgid "This room is now non-anonymous" msgid "This room is now non-anonymous"
msgstr "此聊天室非匿名" msgstr "此聊天室非匿名"
#: converse.js:2575 #: converse.js:2632
msgid "This room is now semi-anonymous" msgid "This room is now semi-anonymous"
msgstr "此聊天室半匿名" msgstr "此聊天室半匿名"
#: converse.js:2576 #: converse.js:2633
msgid "This room is now fully-anonymous" msgid "This room is now fully-anonymous"
msgstr "此聊天室完全匿名" msgstr "此聊天室完全匿名"
#: converse.js:2577 #: converse.js:2634
msgid "A new room has been created" msgid "A new room has been created"
msgstr "新聊天室已创建" msgstr "新聊天室已创建"
#: converse.js:2581 converse.js:2681 #: converse.js:2638 converse.js:2738
msgid "You have been banned from this room" msgid "You have been banned from this room"
msgstr "您已被此聊天室禁止入内" msgstr "您已被此聊天室禁止入内"
#: converse.js:2582 #: converse.js:2639
msgid "You have been kicked from this room" msgid "You have been kicked from this room"
msgstr "您已被踢出次房间" msgstr "您已被踢出次房间"
#: converse.js:2583 #: converse.js:2640
msgid "You have been removed from this room because of an affiliation change" msgid "You have been removed from this room because of an affiliation change"
msgstr "由于关系变化,您已被移除此房间" msgstr "由于关系变化,您已被移除此房间"
#: converse.js:2584 #: converse.js:2641
msgid "" msgid ""
"You have been removed from this room because the room has changed to members-" "You have been removed from this room because the room has changed to members-"
"only and you're not a member" "only and you're not a member"
msgstr "您已被移除此房间因为此房间更改为只允许成员加入,而您非成员" msgstr "您已被移除此房间因为此房间更改为只允许成员加入,而您非成员"
#: converse.js:2585 #: converse.js:2642
msgid "" msgid ""
"You have been removed from this room because the MUC (Multi-user chat) " "You have been removed from this room because the MUC (Multi-user chat) "
"service is being shut down." "service is being shut down."
msgstr "由于服务不可用,您已被移除此房间。" msgstr "由于服务不可用,您已被移除此房间。"
#: converse.js:2599 #: converse.js:2656
msgid "<strong>%1$s</strong> has been banned" msgid "<strong>%1$s</strong> has been banned"
msgstr "<strong>%1$s</strong> 已被禁止" msgstr "<strong>%1$s</strong> 已被禁止"
#: converse.js:2600 #: converse.js:2657
#, fuzzy #, fuzzy
msgid "<strong>%1$s</strong>'s nickname has changed" msgid "<strong>%1$s</strong>'s nickname has changed"
msgstr "<strong>%1$s</strong> 已被禁止" msgstr "<strong>%1$s</strong> 已被禁止"
#: converse.js:2601 #: converse.js:2658
msgid "<strong>%1$s</strong> has been kicked out" msgid "<strong>%1$s</strong> has been kicked out"
msgstr "<strong>%1$s</strong> 已被踢出" msgstr "<strong>%1$s</strong> 已被踢出"
#: converse.js:2602 #: converse.js:2659
msgid "<strong>%1$s</strong> has been removed because of an affiliation change" msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
msgstr "由于关系解除、<strong>%1$s</strong> 已被移除" msgstr "由于关系解除、<strong>%1$s</strong> 已被移除"
#: converse.js:2603 #: converse.js:2660
msgid "<strong>%1$s</strong> has been removed for not being a member" msgid "<strong>%1$s</strong> has been removed for not being a member"
msgstr "由于不是成员、<strong>%1$s</strong> 已被移除" msgstr "由于不是成员、<strong>%1$s</strong> 已被移除"
#: converse.js:2607 #: converse.js:2664
#, fuzzy #, fuzzy
msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>" msgid "Your nickname has been automatically changed to: <strong>%1$s</strong>"
msgstr "您的昵称被更改了" msgstr "您的昵称被更改了"
#: converse.js:2608 #: converse.js:2665
#, fuzzy #, fuzzy
msgid "Your nickname has been changed to: <strong>%1$s</strong>" msgid "Your nickname has been changed to: <strong>%1$s</strong>"
msgstr "您的昵称被更改了" msgstr "您的昵称被更改了"
#: converse.js:2656 converse.js:2666 #: converse.js:2713 converse.js:2723
msgid "The reason given is: \"" msgid "The reason given is: \""
msgstr "" msgstr ""
#: converse.js:2679 #: converse.js:2736
msgid "You are not on the member list of this room" msgid "You are not on the member list of this room"
msgstr "您并非此房间成员" msgstr "您并非此房间成员"
#: converse.js:2685 #: converse.js:2742
msgid "No nickname was specified" msgid "No nickname was specified"
msgstr "未指定昵称" msgstr "未指定昵称"
#: converse.js:2689 #: converse.js:2746
msgid "You are not allowed to create new rooms" msgid "You are not allowed to create new rooms"
msgstr "您可此创建新房间了" msgstr "您可此创建新房间了"
#: converse.js:2691 #: converse.js:2748
msgid "Your nickname doesn't conform to this room's policies" msgid "Your nickname doesn't conform to this room's policies"
msgstr "您的昵称不符合此房间标准" msgstr "您的昵称不符合此房间标准"
#: converse.js:2695 #: converse.js:2752
msgid "Your nickname is already taken" msgid "Your nickname is already taken"
msgstr "您的昵称已被占用" msgstr "您的昵称已被占用"
#: converse.js:2697 #: converse.js:2754
msgid "This room does not (yet) exist" msgid "This room does not (yet) exist"
msgstr "此房间不存在" msgstr "此房间不存在"
#: converse.js:2699 #: converse.js:2756
msgid "This room has reached it's maximum number of occupants" msgid "This room has reached it's maximum number of occupants"
msgstr "此房间人数已达上线" msgstr "此房间人数已达上线"
#: converse.js:2736 #: converse.js:2798
msgid "Topic set by %1$s to: %2$s" msgid "Topic set by %1$s to: %2$s"
msgstr "%1$s 设置话题为: %2$s" msgstr "%1$s 设置话题为: %2$s"
#: converse.js:2818 #: converse.js:2880
msgid "%1$s has invited you to join a chat room: %2$s" msgid "%1$s has invited you to join a chat room: %2$s"
msgstr "" msgstr ""
#: converse.js:2822 #: converse.js:2884
msgid "" msgid ""
"%1$s has invited you to join a chat room: %2$s, and left the following " "%1$s has invited you to join a chat room: %2$s, and left the following "
"reason: \"%3$s\"" "reason: \"%3$s\""
msgstr "" msgstr ""
#: converse.js:3058 #: converse.js:3140
#, fuzzy #, fuzzy
msgid "Click to restore this chat" msgid "Click to restore this chat"
msgstr "点击恢复聊天窗口" msgstr "点击恢复聊天窗口"
#: converse.js:3202 #: converse.js:3285
msgid "Minimized" msgid "Minimized"
msgstr "最小化的" msgstr "最小化的"
#: converse.js:3274 #: converse.js:3381 converse.js:3399
#, fuzzy
msgid "Are you sure you want to remove this contact?"
msgstr "确定移除联系人吗?"
#: converse.js:3297
#, fuzzy
msgid "Are you sure you want to decline this contact request?"
msgstr "确定移除联系人吗?"
#: converse.js:3341 converse.js:3359
msgid "Click to remove this contact" msgid "Click to remove this contact"
msgstr "点击移除联系人" msgstr "点击移除联系人"
#: converse.js:3348 #: converse.js:3388
#, fuzzy #, fuzzy
msgid "Click to accept this contact request" msgid "Click to accept this contact request"
msgstr "点击移除联系人" msgstr "点击移除联系人"
#: converse.js:3349 #: converse.js:3389
#, fuzzy #, fuzzy
msgid "Click to decline this contact request" msgid "Click to decline this contact request"
msgstr "点击移除联系人" msgstr "点击移除联系人"
#: converse.js:3358 #: converse.js:3398
msgid "Click to chat with this contact" msgid "Click to chat with this contact"
msgstr "点击与对方交谈" msgstr "点击与对方交谈"
#: converse.js:3874 #: converse.js:3423
#, fuzzy
msgid "Are you sure you want to remove this contact?"
msgstr "确定移除联系人吗?"
#: converse.js:3446
#, fuzzy
msgid "Are you sure you want to decline this contact request?"
msgstr "确定移除联系人吗?"
#: converse.js:3972
msgid "Type to filter" msgid "Type to filter"
msgstr "" msgstr ""
#. For translators: the %1$s part gets replaced with the status #. For translators: the %1$s part gets replaced with the status
#. Example, I am online #. Example, I am online
#: converse.js:4233 converse.js:4310 #: converse.js:4388 converse.js:4465
msgid "I am %1$s" msgid "I am %1$s"
msgstr "我现在%1$s" msgstr "我现在%1$s"
#: converse.js:4235 converse.js:4315 #: converse.js:4390 converse.js:4470
msgid "Click here to write a custom status message" msgid "Click here to write a custom status message"
msgstr "点击这里,填写状态信息" msgstr "点击这里,填写状态信息"
#: converse.js:4236 converse.js:4316 #: converse.js:4391 converse.js:4471
msgid "Click to change your chat status" msgid "Click to change your chat status"
msgstr "点击这里改变聊天状态" msgstr "点击这里改变聊天状态"
#: converse.js:4261 #: converse.js:4416
msgid "Custom status" msgid "Custom status"
msgstr "DIY状态" msgstr "DIY状态"
#: converse.js:4290 converse.js:4298 #: converse.js:4445 converse.js:4453
msgid "online" msgid "online"
msgstr "在线" msgstr "在线"
#: converse.js:4292 #: converse.js:4447
msgid "busy" msgid "busy"
msgstr "忙碌" msgstr "忙碌"
#: converse.js:4294 #: converse.js:4449
msgid "away for long" msgid "away for long"
msgstr "长时间离开" msgstr "长时间离开"
#: converse.js:4296 #: converse.js:4451
msgid "away" msgid "away"
msgstr "离开" msgstr "离开"
#: converse.js:4419 #: converse.js:4574
msgid "XMPP/Jabber Username:" msgid "XMPP/Jabber Username:"
msgstr "XMPP/Jabber用户名:" msgstr "XMPP/Jabber用户名:"
#: converse.js:4420 #: converse.js:4575
msgid "Password:" msgid "Password:"
msgstr "密码:" msgstr "密码:"
#: converse.js:4421 #: converse.js:4576
msgid "Log In" msgid "Log In"
msgstr "登录" msgstr "登录"
#: converse.js:4428 #: converse.js:4583
msgid "Sign in" msgid "Sign in"
msgstr "登录" msgstr "登录"
#: converse.js:4488 #: converse.js:4643
msgid "Toggle chat" msgid "Toggle chat"
msgstr "折叠聊天窗口" msgstr "折叠聊天窗口"

View File

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