Final call to translators for ejabberd 2.0.0

Update 2: Updated the information about complete and uncomplete translations.
Update: There is also a zip with all .translate files

Two months ago there was a call to translators to prepare ejabberd 2.0.0. Since then, ejabberd 2.0.0-beta1 and rc1 were published, with bug fixes and small improvements. Some of those changes also added, removed or modified translatable strings.

Now I call again to translators. The good news is that most languages only miss 5 or 10 strings :)

If you can help to update any of the uncomplete translations, please do so now. If you have any doubt, please ask :) The deadline is 20 February midday GMT.

 *** Complete translations:

File    Missing Language                Last translator
----    ------- --------                ---------------
ca.msg  0       Catalan (català)        Vicent Alberola Canet
cs.msg  0       Czech (čeština)         Lukáš Polívka [spike411]
de.msg  0       German (deutsch)        Cord Beermann
eo.msg  0       Esperanto               Andreas van Cranenburgh
es.msg  0       Spanish (castellano)    Badlop
fr.msg  0       French (française)      Christophe Romain
gl.msg  0       Galician (galego)       Carlos E. Lopez
nl.msg  0       Dutch (nederlands)      Andreas van Cranenburgh
no.msg  0       Norwegian (bokmål)      Stian B. Barmen
pt-br.  0       Portuguese (Brazil)     Otávio Fernandes
ru.msg  5       Russian (русский)       Konstantin Khomoutov
uk.msg  0       Ukrainian (українська)  Stoune
zh.msg  0       Chinese                 Shelley Shyan


 *** Uncomplete translations:

it.msg  8       Italian (italiano)      Luca Brivio
ja.msg  9       Japanese (日本語)       Tsukasa Hamano
pl.msg  11      Polish (polski) Andrzej Smyk
pt.msg  187     Portuguese (português)  Iceburn
sk.msg  54      Slovak (slovenčina)     Juraj Michalek
sv.msg  155     Swedish (svenska)       Magnus Henoch
th.msg  9       Thai (ภาษาไทย)          EQHO Communications (Thailand) Ltd.
tr.msg  12      Turkish (türkçe)        Doruk Fisek
vi.msg  9       Vietnamese (tiếng việt) EQHO Communications (Thailand) Ltd.
wa.msg  24      Walon (Walloon)         Pablo Saratxaga

*** Description of some new strings

"Roster groups allowed to subscribe"
The owner of a pubsub node can configure which groups of users can subscribe to that node. For example it could be the groups Friends, Familiar and SchoolMates.

"ejabberd Web Admin"
The name of the ejabberd administrative website has been uniformized to 'ejabberd Web Admin'. To make the name a little shorter, the English word 'Admin' is used, instead of the long 'Administration'. You could leave this string untranslated if you don't find a proper translation to your language. More details: https://support.process-one.net/browse/EJAB-472

"This participant is kicked from the room because he sent an error presence"
"This participant is kicked from the room because he sent an error message"
"This participant is kicked from the room because he sent an error message to another participant"
Those messages are sent by ejabberd to a room when a participant is automatically kicked from the room. This can happen if the participant sends a xmpp packet that is an error message or an error presence that is not allowed by ejabberd.

"Make room moderated"
The owner of a room can configure the room to be moderated. This means that only users with 'voice' privilege can send messages to the room.

Those messages are printed in HTML log files when a room participant is kicked for different reasons:

"has been kicked because of an affiliation change"
If the room is only for members, and a member loses his membership, he is kicked.

"has been kicked because the room has been changed to members-only"
If the room configuration is changed to only allow members, then the room will kick all the participants that are not members.

"has been kicked because of a system shutdown"
When ejabberd is going to be stopped or restarted, this message is sent to all the rooms. Note that mod_muc_log can handle this message, but mod_muc_room does not yet implement them. So, this message is not used never yet.

*** Translation: ca.msg

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", ""}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", ""}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", ""}.
{"This participant is kicked from the room because he sent an error message to another participant", ""}.
{"This participant is kicked from the room because he sent an error presence", ""}.
{"Make room moderated", ""}.

*** Translation: cs.msg

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", ""}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", ""}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", ""}.
{"This participant is kicked from the room because he sent an error message to another participant", ""}.
{"This participant is kicked from the room because he sent an error presence", ""}.

*** Translation: de.msg

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", ""}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", ""}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", ""}.
{"This participant is kicked from the room because he sent an error message to another participant", ""}.
{"This participant is kicked from the room because he sent an error presence", ""}.

*** Translation: eo.msg

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", ""}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", ""}.
{"This participant is kicked from the room because he sent an error message to another participant", ""}.
{"This participant is kicked from the room because he sent an error presence", ""}.
{"Make room moderated", ""}.

*** Translation: es.msg

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", ""}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", ""}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", ""}.
{"This participant is kicked from the room because he sent an error message to another participant", ""}.
{"This participant is kicked from the room because he sent an error presence", ""}.

*** Translation: fr.msg

% mod_pubsub/mod_pubsub.erl
{"Choose whether to approve this entity's subscription.", ""}.
{"Roster groups allowed to subscribe", ""}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", ""}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", ""}.
{"This participant is kicked from the room because he sent an error message to another participant", ""}.
{"This participant is kicked from the room because he sent an error presence", ""}.

*** Translation: gl.msg

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", ""}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", ""}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", ""}.
{"This participant is kicked from the room because he sent an error message to another participant", ""}.
{"This participant is kicked from the room because he sent an error presence", ""}.
{"Make room moderated", ""}.

% mod_muc/mod_muc_log.erl
{"has been kicked because of an affiliation change", ""}.
{"has been kicked because the room has been changed to members-only", ""}.
{"has been kicked because of a system shutdown", ""}.

*** Translation: it.msg

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", ""}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", ""}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", ""}.
{"This participant is kicked from the room because he sent an error message to another participant", ""}.
{"This participant is kicked from the room because he sent an error presence", ""}.

% mod_muc/mod_muc_log.erl
{"has been kicked because of an affiliation change", ""}.
{"has been kicked because the room has been changed to members-only", ""}.
{"has been kicked because of a system shutdown", ""}.

*** Translation: ja.msg

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", ""}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", ""}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", ""}.
{"This participant is kicked from the room because he sent an error message to another participant", ""}.
{"This participant is kicked from the room because he sent an error presence", ""}.
{"Make room moderated", ""}.

% mod_muc/mod_muc_log.erl
{"has been kicked because of an affiliation change", ""}.
{"has been kicked because the room has been changed to members-only", ""}.
{"has been kicked because of a system shutdown", ""}.

*** Translation: nl.msg

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", ""}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", ""}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", ""}.
{"This participant is kicked from the room because he sent an error message to another participant", ""}.
{"This participant is kicked from the room because he sent an error presence", ""}.

% mod_muc/mod_muc_log.erl
{"has been kicked because of an affiliation change", ""}.
{"has been kicked because the room has been changed to members-only", ""}.
{"has been kicked because of a system shutdown", ""}.

*** Translation: no.msg

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", ""}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", ""}.
{"This participant is kicked from the room because he sent an error message to another participant", ""}.
{"This participant is kicked from the room because he sent an error presence", ""}.
{"Make room moderated", ""}.

*** Translation: pl.msg

% mod_pubsub/mod_pubsub.erl
{"Publish-Subscribe", ""}.
{"Roster groups allowed to subscribe", ""}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", ""}.
{"(Raw)", ""}.
{"Raw", ""}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", ""}.
{"This participant is kicked from the room because he sent an error message to another participant", ""}.
{"This participant is kicked from the room because he sent an error presence", ""}.

% mod_muc/mod_muc_log.erl
{"has been kicked because of an affiliation change", ""}.
{"has been kicked because the room has been changed to members-only", ""}.
{"has been kicked because of a system shutdown", ""}.

*** Translation: ru.msg

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", ""}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", ""}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", ""}.
{"This participant is kicked from the room because he sent an error message to another participant", ""}.
{"This participant is kicked from the room because he sent an error presence", ""}.

*** Translation: th.msg

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", ""}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", ""}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", ""}.
{"This participant is kicked from the room because he sent an error message to another participant", ""}.
{"This participant is kicked from the room because he sent an error presence", ""}.
{"Make room moderated", ""}.

% mod_muc/mod_muc_log.erl
{"has been kicked because of an affiliation change", ""}.
{"has been kicked because the room has been changed to members-only", ""}.
{"has been kicked because of a system shutdown", ""}.

*** Translation: tr.msg

% mod_pubsub/mod_pubsub.erl
{"Deliver payloads with event notifications", ""}.
{"Persist items to storage", ""}.
{"Max # of items to persist", ""}.
{"Roster groups allowed to subscribe", ""}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", ""}.
{"Remark that these options will only backup the builtin Mnesia database. If you are using the ODBC module, you also need to backup your SQL database separately.", ""}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", ""}.
{"This participant is kicked from the room because he sent an error message to another participant", ""}.
{"This participant is kicked from the room because he sent an error presence", ""}.

% mod_muc/mod_muc_log.erl
{"has been kicked because of an affiliation change", ""}.
{"has been kicked because the room has been changed to members-only", ""}.
{"has been kicked because of a system shutdown", ""}.

*** Translation: uk.msg

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", ""}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", ""}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", ""}.
{"This participant is kicked from the room because he sent an error message to another participant", ""}.
{"This participant is kicked from the room because he sent an error presence", ""}.

*** Translation: vi.msg

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", ""}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", ""}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", ""}.
{"This participant is kicked from the room because he sent an error message to another participant", ""}.
{"This participant is kicked from the room because he sent an error presence", ""}.
{"Make room moderated", ""}.

% mod_muc/mod_muc_log.erl
{"has been kicked because of an affiliation change", ""}.
{"has been kicked because the room has been changed to members-only", ""}.
{"has been kicked because of a system shutdown", ""}.

*** Translation: zh.msg

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", ""}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", ""}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", ""}.
{"This participant is kicked from the room because he sent an error message to another participant", ""}.
{"This participant is kicked from the room because he sent an error presence", ""}.
{"Make room moderated", ""}.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Italian translation update

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", "Gruppi roster abilitati alla registrazione"}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", "Amministrazione web ejabberd"}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", "Partecipante espulso dalla stanza perché ha inviato un messaggio non valido"}.
{"This participant is kicked from the room because he sent an error message to another participant", "Partecipante espulso dalla stanza perché ha inviato un messaggio non valido a un altro partecipante"}.
{"This participant is kicked from the room because he sent an error presence", "Partecipante espulso dalla stanza perché ha inviato una presenza non valido"}.

% mod_muc/mod_muc_log.erl
{"has been kicked because of an affiliation change", "è stato espulso a causa di un cambiamento di appartenenza"}.
{"has been kicked because the room has been changed to members-only", "è stato espulso per la limitazione della stanza ai soli membri"}.
{"has been kicked because of a system shutdown", "è stato espulso a causa dello spegnimento del sistema"}.

Will be included in the next release

Unfortunately, your translation update could not be included in ejabberd 2.0.0. But don't worry, it will be included in the next release: ejabberd 2.0.1

Chinese Translation

*** Translation: zh.msg

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", "允许订阅的花名册组群"}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", "ejabberd网页管理"}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", "该参与者因发送了一条错误信息被踢出房间"}.
{"This participant is kicked from the room because he sent an error message to another participant", "该参与者因发送了一条错误信息给另一参与者被踢出房间"}.
{"This participant is kicked from the room because he sent an error presence", "该参与者因发送了一条错误状态信息被踢出房间"}.
{"Make room moderated", "使房间处于监管状态"}.

Czech translation

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", "Skupiny kontaktů, které mohou odebírat"}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", "Webová administrace ejabberd"}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", "Tento účastník byl vyhozen, protože odeslal chybovou zprávu"}.
{"This participant is kicked from the room because he sent an error message to another participant", "Tento účastník byl vyhozen, protože odeslal chybovou zprávu jinému účastníkovi"}.
{"This participant is kicked from the room because he sent an error presence", "Tento účastník byl vyhozen, protože odeslal chybový status"}.

ru.msg — Russian translation

*** Translation: ru.msg

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", "Группы контактов, которым разрешена подписка"}.

% web/ejabberd_web_admin.erl
{"ejabberd Web Admin", "Панель управления ejabberd"}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", "Участник был выброшен из комнаты, потому что от него пришло сообщение с ошибкой"}.
{"This participant is kicked from the room because he sent an error message to another participant", "Участник был выброшен из комнаты, потому что от него в адрес другого пользователя пришло сообщение с ошибкой"}.
{"This participant is kicked from the room because he sent an error presence", "Участник был выброшен из комнаты, потому что от него пришло статусное сообщение с ошибкой"}.

What about this variant?

Ukrainian translation

I'm translate new 5 messages to Ukrainian language. If you get some trouble with updating translation from last translator I'm upload mine to http://www.box.net/shared/ggj59ymoss . Old messages keeped untouched, line breaks style don't changed.

Norwegian (bokmål)

Just a little question. The mod_muc_room strings, are they errors sent because the user did an illegal act (maybe intentionally), or because something wrong happened? If the first is true (this is how I read the english) then this translation is good. :)

*** Translation: no.msg

% mod_pubsub/mod_pubsub.erl
{"Roster groups allowed to subscribe", "Kontaktliste grupper som tillates å abonnere"}.

% mod_muc/mod_muc_room.erl
{"This participant is kicked from the room because he sent an error message", "Denne deltakeren er kastet ut av rommet fordi han sendte en feilmelding"}.
{"This participant is kicked from the room because he sent an error message to another participant", "Denne deltakeren er kastet ut av rommet fordi han sendte en feilmelding til en annen deltaker"}.
{"This participant is kicked from the room because he sent an error presence", "Denne deltakeren er kastet ut av rommet fordi han sendte feil tilstederværelse"}.
{"Make room moderated", "Gjør rommet redaktørstyrt"}.

Also if you please update these already traslated strings (to make them consistent with my translation above):

% mod_muc/mod_muc_room.erl
{"moderators only", "kun for redaktører"}.
{"Moderator privileges required", "Redaktørprivilegier kreves"}.
{"Only moderators and participants are allowed to change subject in this room", "Bare redaktører og deltakere kan endre emnet i dette rommet"}.
{"Only moderators are allowed to change subject in this room", "Bare redaktører kan endre emnet i dette rommet"}.

Thank you! ;)

Best regards
Stian B. Barmen

mod_muc_room kick clarification

Stian B. Barmen wrote:

Just a little question. The mod_muc_room strings, are they errors sent because the user did an illegal act (maybe intentionally), or because something wrong happened? If the first is true (this is how I read the english) then this translation is good. :)

If a participant sends a 'message' or 'presence' stanza with type=error to the room, the room considers that the participant must be kicked. The exact reason could be that the client is buggy, or that his connection was closed, ...

Ok, great, then this

Ok, great, then this translation is good. :)

Syndicate content