25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-12-22 17:28:25 +01:00

* src/web/ejabberd_web_admin.erl: Better i18n support (thanks to

Sergei Golovan)

* src/msgs/ru.msg: Updated (thanks to Sergei Golovan)

* src/msgs/fr.msg: Added missed entries (thanks to Sergei Golovan)
* src/msgs/nl.msg: Likewise

* src/msgs/es.msg: New spanish translation (thanks to Badlop)

SVN Revision: 245
This commit is contained in:
Alexey Shchepin 2004-07-13 11:28:28 +00:00
parent a846fe815c
commit a4b86c5855
6 changed files with 446 additions and 49 deletions

View File

@ -1,3 +1,15 @@
2004-07-13 Alexey Shchepin <alexey@sevcom.net>
* src/web/ejabberd_web_admin.erl: Better i18n support (thanks to
Sergei Golovan)
* src/msgs/ru.msg: Updated (thanks to Sergei Golovan)
* src/msgs/fr.msg: Added missed entries (thanks to Sergei Golovan)
* src/msgs/nl.msg: Likewise
* src/msgs/es.msg: New spanish translation (thanks to Badlop)
2004-07-11 Alexey Shchepin <alexey@sevcom.net> 2004-07-11 Alexey Shchepin <alexey@sevcom.net>
* src/mod_last.erl: Supprot for storing status from latest * src/mod_last.erl: Supprot for storing status from latest

222
src/msgs/es.msg Normal file
View File

@ -0,0 +1,222 @@
% $Id$
% Ejabberd - Spanish - badlop AT jabberes.org
% mod_configure.erl
{"DB Tables Configuration at ", "Configuración de tablas de la BD en "}.
{"Choose storage type of tables", "Selecciona tipo de almacenamiento de las tablas"}.
{"RAM copy", "Copia en RAM"}.
{"RAM and disc copy", "Copia en RAM y disco"}.
{"Disc only copy", "Copia en disco solamente"}.
{"Remote copy", "Copia remota"}.
{"Stop Modules at ", "Detener módulos en "}.
{"Choose modules to stop", "Selecciona módulos a detener"}.
{"Start Modules at ", "Iniciar módulos en "}.
{"Enter list of {Module, [Options]}", "Introduce lista de {módulo, [opciones]}"}.
{"List of modules to start", "Lista de módulos a iniciar"}.
{"Backup to File at ", "Guardar copia de seguridad en fichero en "}.
{"Enter path to backup file", "Introduce ruta al fichero de copia de seguridad"}.
{"Path to File", "Ruta al fichero"}.
{"Restore Backup from File at ", "Restaura copia de seguridad desde el fichero en "}.
{"Dump Backup to Text File at ", "Exporta copia de seguridad a fichero de texto en "}.
{"Enter path to text file", "Introduce ruta al fichero de texto"}.
{"Import User from File at ", "Importa usuario desde fichero en "}.
{"Enter path to jabberd1.4 spool file", "Introduce ruta al fichero jabberd1.4 spool"}.
{"Import Users from Dir at ", "Importar usuarios desde el directorio en "}.
{"Enter path to jabberd1.4 spool dir", "Introduce la ruta al directorio de jabberd1.4 spools"}.
{"Path to Dir", "Ruta al directorio"}.
{"Hostname Configuration", "Configuración del nombre de máquina"}.
{"Choose host name", "Indica el nombre de la máquina"}.
{"Host name", "Nombre de la máquina"}.
{"Access Control List Configuration", "Configuración de la Lista de Control de Acceso"}.
{"Access control lists", "Listas de Control de Acceso"}.
{"Access Configuration", "Configuración de accesos"}.
{"Access rules", "Reglas de acceso"}.
{"Remove Users", "Eliminar usuarios"}.
{"Choose users to remove", "Selecciona usuarios a eliminar"}.
{"Administration of ", "Administración de "}.
{"Action on user", "Acción en el usuario"}.
{"Edit Properties", "Editar propiedades"}.
{"Remove User", "Eliminar usuario"}.
% mod_disco.erl
{"Configuration", "Configuración"}.
{"Online Users", "Usuarios conectados"}.
{"All Users", "Todos los usuarios"}.
{"Outgoing S2S connections", "Conexiones S2S salientes"}.
{"To ~s", "A ~s"}.
{"From ~s", "De ~s"}.
{"Running Nodes", "Nodos funcionando"}.
{"Stopped Nodes", "Nodos detenidos"}.
{"Host Name", "Nombre de la máquina"}.
{"Access Control Lists", "Listas de Control de Acceso"}.
{"Access Rules", "Reglas de Acceso"}.
{"Remove Users", "Eliminar usuarios"}.
{"DB", "BD"}.
{"Modules", "Módulos"}.
{"Start Modules", "Iniciar módulos"}.
{"Stop Modules", "Detener módulos"}.
{"Backup Management", "Gestión de copia de seguridad"}.
{"Import users from jabberd1.4 spool files", "Importar usuarios desde ficheros jabberd1.4 spool"}.
{"Backup", "Guardar copia de seguridad"}.
{"Restore", "Restaurar"}.
{"Dump to Text File", "Exportar a fichero de texto"}.
{"Import File", "Importar fichero"}.
{"Import Directory", "Importar directorio"}.
% mod_register.erl
{"Choose a username and password to register with this server", "Escoge un nombre de usuario y contraseña para registrarte en este servidor"}.
% mod_vcard.erl
{"Erlang Jabber Server\nCopyright (c) 2002-2004 Alexey Shchepin", "Servidor Jabber en Erlang\nCopyright (c) 2002-2004 Alexey Shchepin"}.
{"ejabberd vCard module\nCopyright (c) 2003-2004 Alexey Shchepin", "Módulo vCard de Ejabberd\nCopyright (c) 2003-2004 Alexey Shchepin"}.
{"You need an x:data capable client to search", "Necesitas un cliente con soporte de x:data para poder buscar"}.
{"Search users in ", "Buscar usuarios en "}.
{"Fill in fields to search for any matching Jabber User", "Rellena los campos para buscar usuarios Jabber coincidentes"}.
{"Results of search in ", "Resultados de la búsqueda en "}.
{"User", "Usuario"}.
{"Full Name", "Nombre completo"}.
{"Name", "Nombre"}.
{"Middle Name", "Segundo nombre"}.
{"Family Name", "Apellido"}.
{"Nickname", "Apodo"}.
{"Birthday", "Cumpleaños"}.
{"Country", "País"}.
{"City", "Ciudad"}.
{"email", "correo-e"}.
{"Organization Name", "Nombre de la organización"}.
{"Organization Unit", "Unidad de la organización"}.
% mod_pubsub/mod_pubsub.erl
{"ejabberd pub/sub module\nCopyright (c) 2003-2004 Alexey Shchepin", "Módulo pub/sub de Ejabberd\nCopyright (c) 2003-2004 Alexey Shchepin"}.
% mod_muc/mod_muc.erl
{"You need an x:data capable client to register nickname", "Necesitas un cliente con soporte de x:data para poder registrar el apodo"}.
{"Nickname Registration at ", "Registro del apodo en "}.
{"Enter nickname you want to register", "Introduce el apodo que quieras registrar"}.
{"ejabberd MUC module\nCopyright (c) 2003-2004 Alexey Shchepin", "Módulo MUC de Ejabberd\nCopyright (c) 2003-2004 Alexey Shchepin"}.
{"Only service administrators are allowed to send service messages", "Solo los administradores del servicio tienen permiso para enviar mensajes de servicio"}.
{"Room creation is not allowed by service policy", "La política del servicio prohibe la creación de salas"}.
{"Conference room does not exist", "La sala de conferencias no existe"}.
{"Access denied by service policy", "Acceso denegado por la política del servicio"}.
{"You must fill in field \"nick\" in the form", "Debes rellenar el campo \"apodo\" en el formulario"}.
{"Specified nickname is already registered", "El apodo especificado ya está registrado, tendrás que buscar otro"}.
% mod_muc/mod_muc_room.erl
{" has set the subject to: ", " ha puesto el asunto: "}.
{"You need an x:data capable client to configure room", "Necesitas un cliente con soporte de x:data para configurar la sala"}.
{"Configuration for ", "Configuración para "}.
{"Room title", "Título de la sala"}.
{"Allow users to change subject?", "Permitir a los usuarios cambiar el asunto"}.
{"Allow users to query other users?", "Permitir a los usuarios consultar a otros usuarios"}.
{"Allow users to send private messages?", "Permitir a los usuarios enviar mensajes privados"}.
{"Make room public searchable?", "Hacer la sala públicamente visible"}.
{"Make participants list public?", "Hacer pública la lista de participantes"}.
{"Make room persistent?", "Hacer la sala permanente"}.
{"Make room moderated?", "Hacer la sala moderada"}.
{"Default users as members?", "Los usuarios son miembros por defecto"}.
{"Make room members only?", "Hacer la sala sólo para miembros"}.
{"Allow users to send invites?", "Permitir a los usuarios enviar invitaciones"}.
{"Make room password protected?", "Proteger la sala con contraseña"}.
{"Password", "Contraseña"}.
{"Make room anonymous?", "Hacer anónima la sala"}.
{"Enable logging?", "Guardar históricos"}.
{"Only moderators and participants are allowed to change subject in this room", "Solo los moderadores y participantes pueden cambiar el asunto de esta sala"}.
{"Only moderators are allowed to change subject in this room", "Solo los moderadores pueden cambiar el asunto de esta sala"}.
{"Visitors are not allowed to send messages to all occupants", "Los visitantes no pueden enviar mensajes a todos los ocupantes"}.
{"Only occupants are allowed to send messages to the conference", "Solo los ocupantes pueden enviar mensajes a la sala"}.
{"It is not allowed to send normal messages to the conference", "Impedir el envio de mensajes normales a la sala"}.
{"It is not allowed to send private messages to the conference", "Impedir el envio de mensajes privados a la sala"}.
{"Improper message type", "Tipo de mensaje incorrecto"}.
{"Nickname is already in use by another occupant", "El apodo ya está siendo usado por otro ocupante"}.
{"Nickname is registered by another person", "El apodo ya está registrado por otra persona"}.
{"It is not allowed to send private messages of type \"groupchat\"", "No está permitido enviar mensajes privados del tipo \"groupchat\""}.
{"Recipient is not in the conference room", "El receptor no está en la sala de conferencia"}.
{"Only occupants are allowed to send queries to the conference", "Solo los ocupantes pueden enviar solicitudes a la sala"}.
{"Queries to the conference members are not allowed in this room", "En esta sala no se permiten solicitudes a los miembros de la sala"}.
{"You have been banned from this room", "Has sido bloqueado en esta sala"}.
{"Membership required to enter this room", "Necesitas ser miembro de esta sala para poder entrar"}.
{"Password required to enter this room", "Se necesita contraseña para entrar en esta sala"}.
{"Incorrect password", "Contraseña incorrecta"}.
{"Administrator privileges required", "Se necesita privilegios de administrador"}.
{"Moderator privileges required", "Se necesita privilegios de moderador"}.
{"JID ~s is invalid", "El JID ~s no es válido"}.
{"Nickname ~s does not exist in the room", "El apodo ~s no existe en la sala"}.
{"Invalid affiliation: ~s", "Afiliación no válida: ~s"}.
{"Invalid role: ~s", "Rol no válido: ~s"}.
{"Owner privileges required", "Se requieren privilegios de propietario de la sala"}.
{"private, ", "privado"}.
% mod_irc/mod_irc.erl
{"ejabberd IRC module\nCopyright (c) 2003-2004 Alexey Shchepin", "Módulo de IRC Ejabberd\nCopyright (c) 2003-2004 Alexey Shchepin"}.
{"You need an x:data capable client to configure mod_irc settings", "Necesitas un cliente con soporte de x:data para configurar las opciones de mod_irc"}.
{"Registration in mod_irc for ", "Registro en mod_irc para"}.
{"Enter username and encodings you wish to use for connecting to IRC servers", "Introduce el nombre de usuario y codificaciones de carácteres que quieras usar al conectar en los servidores de IRC"}.
{"IRC Username", "Nombre de usuario en IRC"}.
{"If you want to specify different encodings for IRC servers, fill this list with values in format '{\"irc server\", \"encoding\"}'. By default this service use \"~s\" encoding.", "Si quieres especificar codificaciones de carácteres distintos para cada servidor IRC rellena esta lista con valores en el formato '{\"servidor irc\", \"codificación\"}'. Este servicio usa por defecto la codificación \"~s\"."}.
{"Encodings", "Codificaciones"}.
% web/ejabberd_web_admin.erl
{"ejabberd administration", "Administración de Ejabberd"}.
{"Users", "Usuarios"}.
{"Nodes", "Nodos"}.
{"Statistics", "Estadísticas"}.
{"ejabberd (c) 2002-2004 Alexey Shchepin", "Ejabberd (c) 2002-2004 Alexey Shchepin"}.
{"(raw)", "(crudo)"}.
{"submitted", "enviado"}.
{"bad format", "mal formato"}.
{"raw", "crudo"}.
{"ejabberd access control lists configuration", "Configuración de las Listas de Control de Acceso de Ejabberd"}.
{"Delete Selected", "Eliminar los seleccionados"}.
{"Submit", "Enviar"}.
{"ejabberd access rules configuration", "Configuración de las Reglas de Acceso de Ejabberd"}.
{"~s access rule configuration", "Configuración de las Regla de Acceso ~s"}.
{"ejabberd users", "Usuarios de Ejabberd"}.
{"ejabberd stats", "Estadísticas de Ejabberd"}.
{"Node not found", "Nodo no encontrado"}.
{"Add New", "Añadir nuevo"}.
{"Registered users", "Usuarios registrados"}.
{"Authentificated users", "Usuarios autentificados"}.
{"Online users", "Usuarios conectados"}.
{"Outgoing S2S servers", "Servidores S2S de salida"}.
{"Change Password", "Cambiar contraseña"}.
{"Connected Resources:", "Recursos conectados:"}.
{"Password:", "Contraseña:"}.
{"None", "Ninguno"}.
{"Node ", "Nodo"}.
{"DB Management", "Gestión de la BD"}.
{"Listened Ports Management", "Gestión de los puertos de escucha"}.
{"Restart", "Reiniciar"}.
{"Stop", "Detener"}.
{"RPC call error", "Error en la llamada RPC"}.
{"DB Tables at ", "Tablas de la BD en "}.
{"Name", "Nombre"}.
{"Storage Type", "Tipo de almacenamiento"}.
{"Size", "Tamaño"}.
{"Memory", "Memoria"}.
{"Backup Management at ", "Gestión de copia de seguridad en "}.
{"Store a backup in a file", "Almacenar una copia de seguridad en fichero"}.
{"OK", "De acuerdo"}.
{"Restore a backup from a file", "Recuperar una copia de seguridad de un fichero"}.
{"Install a database fallback from a file", "Instalar una recuperación de BD desde un fichero"}.
{"Dump a database in a text file", "Exportar una Base de Datos a un fichero de texto"}.
{"Restore a database from a text file", "Restaurar una Bse de Datos desde un fichero de texto"}.
{"Listened Ports at ", "Puertos de escucha en "}.
{"~p statistics", "Estadísticas de ~p"}.
{"Uptime", "Tiempo de funcionamiento"}.
{"CPU Time", "Tiempo de procesador consumido"}.
{"Transactions commited", "Transacciones realizadas"}.
{"Transactions aborted", "Transacciones abortadas"}.
{"Transactions restarted", "Transacciones reiniciadas"}.
{"Transactions logged", "Transacciones almacenadas"}.
{"Port", "Puerto"}.
{"Module", "Módulo"}.
{"Options", "Opciones"}.
{"Update", "Actualizar"}.
{"Delete", "Eliminar"}.
{"", ""}.
% Local Variables:
% mode: erlang
% End:

View File

@ -164,9 +164,64 @@
{"Encodings", ""}. {"Encodings", ""}.
% web/ejabberd_web_admin.erl % web/ejabberd_web_admin.erl
{"ejabberd administration", ""}.
{"Users", ""}. {"Users", ""}.
{"Nodes", ""}. {"Nodes", ""}.
{"Statistics", ""}. {"Statistics", ""}.
{"ejabberd (c) 2002-2004 Alexey Shchepin", ""}.
{"(raw)", ""}.
{"submitted", ""}.
{"bad format", ""}.
{"raw", ""}.
{"ejabberd access control lists configuration", ""}.
{"Delete Selected", ""}.
{"Submit", ""}.
{"ejabberd access rules configuration", ""}.
{"~s access rule configuration", ""}.
{"ejabberd users", ""}.
{"ejabberd stats", ""}.
{"Node not found", ""}.
{"Add New", ""}.
{"Registered users", ""}.
{"Authentificated users", ""}.
{"Online users", ""}.
{"Outgoing S2S servers", ""}.
{"Change Password", ""}.
{"Connected Resources:", ""}.
{"Password:", ""}.
{"None", ""}.
{"Node ", ""}.
{"DB Management", ""}.
{"Listened Ports Management", ""}.
{"Restart", ""}.
{"Stop", ""}.
{"RPC call error", ""}.
{"DB Tables at ", ""}.
{"Name", ""}.
{"Storage Type", ""}.
{"Size", ""}.
{"Memory", ""}.
{"Backup Management at ", ""}.
{"Store a backup in a file", ""}.
{"OK", ""}.
{"Restore a backup from a file", ""}.
{"Install a database fallback from a file", ""}.
{"Dump a database in a text file", ""}.
{"Restore a database from a text file", ""}.
{"Listened Ports at ", ""}.
{"~p statistics", ""}.
{"Uptime", ""}.
{"CPU Time", ""}.
{"Transactions commited", ""}.
{"Transactions aborted", ""}.
{"Transactions restarted", ""}.
{"Transactions logged", ""}.
{"Port", ""}.
{"Module", ""}.
{"Options", ""}.
{"Update", ""}.
{"Delete", ""}.
{"", ""}.
% Local Variables: % Local Variables:
% mode: erlang % mode: erlang

View File

@ -186,10 +186,63 @@
{"Encodings", "Coderingen"}. {"Encodings", "Coderingen"}.
% web/ejabberd_web_admin.erl % web/ejabberd_web_admin.erl
{"ejabberd administration", ""}.
{"Users", "Gebruikers"}. {"Users", "Gebruikers"}.
{"Nodes", "Nodes"}. {"Nodes", "Nodes"}.
{"Statistics", "Statistieken"}. {"Statistics", "Statistieken"}.
{"", ""}. {"ejabberd (c) 2002-2004 Alexey Shchepin", ""}.
{"(raw)", ""}.
{"submitted", ""}.
{"bad format", ""}.
{"raw", ""}.
{"ejabberd access control lists configuration", ""}.
{"Delete Selected", ""}.
{"Submit", ""}.
{"ejabberd access rules configuration", ""}.
{"~s access rule configuration", ""}.
{"ejabberd users", ""}.
{"ejabberd stats", ""}.
{"Node not found", ""}.
{"Add New", ""}.
{"Registered users", ""}.
{"Authentificated users", ""}.
{"Online users", ""}.
{"Outgoing S2S servers", ""}.
{"Change Password", ""}.
{"Connected Resources:", ""}.
{"Password:", ""}.
{"None", ""}.
{"Node ", ""}.
{"DB Management", ""}.
{"Listened Ports Management", ""}.
{"Restart", ""}.
{"Stop", ""}.
{"RPC call error", ""}.
{"DB Tables at ", ""}.
{"Name", ""}.
{"Storage Type", ""}.
{"Size", ""}.
{"Memory", ""}.
{"Backup Management at ", ""}.
{"Store a backup in a file", ""}.
{"OK", ""}.
{"Restore a backup from a file", ""}.
{"Install a database fallback from a file", ""}.
{"Dump a database in a text file", ""}.
{"Restore a database from a text file", ""}.
{"Listened Ports at ", ""}.
{"~p statistics", ""}.
{"Uptime", ""}.
{"CPU Time", ""}.
{"Transactions commited", ""}.
{"Transactions aborted", ""}.
{"Transactions restarted", ""}.
{"Transactions logged", ""}.
{"Port", ""}.
{"Module", ""}.
{"Options", ""}.
{"Update", ""}.
{"Delete", ""}.
{"", ""}. {"", ""}.
% Local Variables: % Local Variables:

View File

@ -186,10 +186,63 @@
{"Encodings", "Кодировки"}. {"Encodings", "Кодировки"}.
% web/ejabberd_web_admin.erl % web/ejabberd_web_admin.erl
{"ejabberd administration", "Администрирование ejabberd"}.
{"Users", "Пользователи"}. {"Users", "Пользователи"}.
{"Nodes", "Узлы"}. {"Nodes", "Узлы"}.
{"Statistics", "Статистика"}. {"Statistics", "Статистика"}.
{"", ""}. {"ejabberd (c) 2002-2004 Alexey Shchepin", "ejabberd (c) 2002-2004 Алексей Щепин"}.
{"(raw)", "(необработанный формат)"}.
{"submitted", "отправлено"}.
{"bad format", "неправильный формат"}.
{"raw", "необработанный формат"}.
{"ejabberd access control lists configuration", "Конфигурация списков управления доступом ejabberd"}.
{"Delete Selected", "Удалить выделенные"}.
{"Submit", "Отправить"}.
{"ejabberd access rules configuration", "Конфигурация правил доступа ejabberd"}.
{"~s access rule configuration", "Конфигурация правила доступа ~s"}.
{"ejabberd users", "Пользователи ejabberd"}.
{"ejabberd stats", "Статистика ejabberd"}.
{"Node not found", "Узел не найден"}.
{"Add New", "Добавить"}.
{"Registered users", "Зарегистрированные пользователи"}.
{"Authentificated users", "Аутентифицированные пользователи"}.
{"Online users", "Подключённые пользователи"}.
{"Outgoing S2S servers", "Исходящие S2S-серверы"}.
{"Change Password", "Сменить пароль"}.
{"Connected Resources:", "Подключённые ресурсы:"}.
{"Password:", "Пароль:"}.
{"None", "Нет"}.
{"Node ", "Узел "}.
{"DB Management", "Управление БД"}.
{"Listened Ports Management", "Управление прослушиваемыми портами"}.
{"Restart", "Перезапустить"}.
{"Stop", "Остановить"}.
{"RPC call error", "Ошибка вызова RPC"}.
{"DB Tables at ", "Таблицы БД на "}.
{"Name", "Название"}.
{"Storage Type", "Тип таблицы"}.
{"Size", "Размер"}.
{"Memory", "Память"}.
{"Backup Management at ", "Управление резервным копированием на "}.
{"Store a backup in a file", "Сохранить резервную копию в файл"}.
{"OK", "Продолжить"}.
{"Restore a backup from a file", "Восстановить из резервной копии из файла"}.
{"Install a database fallback from a file", "Установить базу данных для восстановления при следующем запуске"}.
{"Dump a database in a text file", "Копировать базу данных в текстовый файл"}.
{"Restore a database from a text file", "Восстановить базу данных из текстового файла"}.
{"Listened Ports at ", "Прослушиваемые порты на "}.
{"~p statistics", "статистика узла ~p"}.
{"Uptime", "Время работы"}.
{"CPU Time", "Процессорное время"}.
{"Transactions commited", "Транзакции завершенные"}.
{"Transactions aborted", "Транзакции отмененные"}.
{"Transactions restarted", "Транзакции перезапущенные"}.
{"Transactions logged", "Транзакции запротоколированные"}.
{"Port", "Порт"}.
{"Module", "Модуль"}.
{"Options", "Параметры"}.
{"Update", "Обновить"}.
{"Delete", "Удалить"}.
{"", ""}. {"", ""}.
% Local Variables: % Local Variables:

View File

@ -71,18 +71,20 @@ make_xhtml(Els, Lang) ->
[?XE("tbody", [?XE("tbody",
[?XE("tr", [?XE("tr",
[?XE("td", [?XE("td",
[?XA("img", [{"src", "/admin/logo.png"}, [?XAE("a", [{"href", "/admin/"}],
{"width", "343"}, [?XA("img", [{"src", "/admin/logo.png"},
{"height", "55"}, {"width", "343"},
{"alt", "ejabberd"}, {"height", "55"},
{"border", "0"}])]), {"alt", "ejabberd"},
{"border", "0"}])])]),
?XAE("td", [{"width", "100%"}, ?XAE("td", [{"width", "100%"},
{"background", "/admin/logo-fill.png"}], {"background", "/admin/logo-fill.png"}],
[?XA("img", [{"src", "/admin/1x1tr.gif"}, [?XAE("a", [{"href", "/admin/"}],
{"width", "100%"}, [?XA("img", [{"src", "/admin/1x1tr.gif"},
{"height", "55"}, {"width", "100%"},
{"alt", ""}, {"height", "55"},
{"border", "0"}])] {"alt", ""},
{"border", "0"}])])]
)])]) )])])
])])]), ])])]),
?XAE("tr", ?XAE("tr",
@ -485,7 +487,7 @@ process_admin(#request{user = User,
path = [], path = [],
q = Query, q = Query,
lang = Lang} = Request) -> lang = Lang} = Request) ->
make_xhtml([?XC("h1", "ejabberd administration"), make_xhtml([?XCT("h1", "ejabberd administration"),
?XE("ul", ?XE("ul",
[?LI([?ACT("acls/", "Access Control Lists"), ?C(" "), [?LI([?ACT("acls/", "Access Control Lists"), ?C(" "),
?ACT("acls-raw/", "(raw)")]), ?ACT("acls-raw/", "(raw)")]),
@ -547,7 +549,7 @@ process_admin(#request{user = User,
nothing nothing
end, end,
ACLs = lists:flatten(io_lib:format("~p.", [ets:tab2list(acl)])), ACLs = lists:flatten(io_lib:format("~p.", [ets:tab2list(acl)])),
make_xhtml([?XCT("h1", "ejabberd ACLs configuration")] ++ make_xhtml([?XCT("h1", "ejabberd access control lists configuration")] ++
case Res of case Res of
ok -> [?CT("submitted"), ?P]; ok -> [?CT("submitted"), ?P];
error -> [?CT("bad format"), ?P]; error -> [?CT("bad format"), ?P];
@ -559,7 +561,7 @@ process_admin(#request{user = User,
{"cols", "80"}], {"cols", "80"}],
ACLs), ACLs),
?BR, ?BR,
?INPUT("submit", "", "") ?INPUT("submit", "submit", "Submit")
]) ])
], Lang); ], Lang);
@ -588,7 +590,7 @@ process_admin(#request{method = Method,
nothing nothing
end, end,
ACLs = lists:keysort(2, ets:tab2list(acl)), ACLs = lists:keysort(2, ets:tab2list(acl)),
make_xhtml([?XCT("h1", "ejabberd ACLs configuration")] ++ make_xhtml([?XCT("h1", "ejabberd access control lists configuration")] ++
case Res of case Res of
ok -> [?CT("submitted"), ?P]; ok -> [?CT("submitted"), ?P];
error -> [?CT("bad format"), ?P]; error -> [?CT("bad format"), ?P];
@ -655,10 +657,10 @@ process_admin(#request{user = User,
[{{config, {access, '$1'}, '$2'}, [{{config, {access, '$1'}, '$2'},
[], [],
[{{access, '$1', '$2'}}]}])])), [{{access, '$1', '$2'}}]}])])),
make_xhtml([?XC("h1", "ejabberd access rules configuration")] ++ make_xhtml([?XCT("h1", "ejabberd access rules configuration")] ++
case Res of case Res of
ok -> [?C("submitted"), ?P]; ok -> [?CT("submitted"), ?P];
error -> [?C("bad format"), ?P]; error -> [?CT("bad format"), ?P];
nothing -> [] nothing -> []
end ++ end ++
[?XAE("form", [{"method", "post"}], [?XAE("form", [{"method", "post"}],
@ -667,7 +669,7 @@ process_admin(#request{user = User,
{"cols", "80"}], {"cols", "80"}],
Access), Access),
?BR, ?BR,
?INPUT("submit", "", "") ?INPUT("submit", "submit", "Submit")
]) ])
], Lang); ], Lang);
@ -693,10 +695,10 @@ process_admin(#request{method = Method,
[{{config, {access, '$1'}, '$2'}, [{{config, {access, '$1'}, '$2'},
[], [],
[{{access, '$1', '$2'}}]}]), [{{access, '$1', '$2'}}]}]),
make_xhtml([?XC("h1", "ejabberd access rules configuration")] ++ make_xhtml([?XCT("h1", "ejabberd access rules configuration")] ++
case Res of case Res of
ok -> [?C("submitted"), ?P]; ok -> [?CT("submitted"), ?P];
error -> [?C("bad format"), ?P]; error -> [?CT("bad format"), ?P];
nothing -> [] nothing -> []
end ++ end ++
[?XE("p", [?ACT("../access-raw/", "raw")])] ++ [?XE("p", [?ACT("../access-raw/", "raw")])] ++
@ -734,16 +736,16 @@ process_admin(#request{method = Method,
Rs1 Rs1
end, end,
make_xhtml([?XC("h1", make_xhtml([?XC("h1",
"'" ++ SName ++ "' access rule configuration")] ++ io_lib:format(?T("~s access rule configuration"), [SName]))] ++
case Res of case Res of
ok -> [?C("submitted"), ?P]; ok -> [?CT("submitted"), ?P];
error -> [?C("bad format"), ?P]; error -> [?CT("bad format"), ?P];
nothing -> [] nothing -> []
end ++ end ++
[?XAE("form", [{"method", "post"}], [?XAE("form", [{"method", "post"}],
[access_rule_to_xhtml(Rules), [access_rule_to_xhtml(Rules),
?BR, ?BR,
?INPUT("submit", "submit", "") ?INPUTT("submit", "submit", "Submit")
]) ])
], Lang); ], Lang);
@ -752,21 +754,21 @@ process_admin(#request{user = User,
q = Query, q = Query,
lang = Lang} = Request) -> lang = Lang} = Request) ->
Res = list_users(), Res = list_users(),
make_xhtml([?XC("h1", "ejabberd users")] ++ Res, Lang); make_xhtml([?XCT("h1", "ejabberd users")] ++ Res, Lang);
process_admin(#request{user = User, process_admin(#request{user = User,
path = ["users", Diap], path = ["users", Diap],
q = Query, q = Query,
lang = Lang} = Request) -> lang = Lang} = Request) ->
Res = list_users_in_diapason(Diap), Res = list_users_in_diapason(Diap),
make_xhtml([?XC("h1", "ejabberd users")] ++ Res, Lang); make_xhtml([?XCT("h1", "ejabberd users")] ++ Res, Lang);
process_admin(#request{user = User, process_admin(#request{user = User,
path = ["stats"], path = ["stats"],
q = Query, q = Query,
lang = Lang} = Request) -> lang = Lang} = Request) ->
Res = get_stats(Lang), Res = get_stats(Lang),
make_xhtml([?XC("h1", "ejabberd stats")] ++ Res, Lang); make_xhtml([?XCT("h1", "ejabberd stats")] ++ Res, Lang);
process_admin(#request{user = User, process_admin(#request{user = User,
path = ["user", U], path = ["user", U],
@ -788,7 +790,7 @@ process_admin(#request{user = User,
lang = Lang} = Request) -> lang = Lang} = Request) ->
case search_running_node(SNode) of case search_running_node(SNode) of
false -> false ->
make_xhtml([?XC("h1", "Node not found")], Lang); make_xhtml([?XCT("h1", "Node not found")], Lang);
Node -> Node ->
Res = get_node(Node, NPath, Query, Lang), Res = get_node(Node, NPath, Query, Lang),
make_xhtml(Res, Lang) make_xhtml(Res, Lang)
@ -1109,8 +1111,8 @@ user_info(User, Query, Lang) ->
?INPUTT("submit", "chpassword", "Change Password")], ?INPUTT("submit", "chpassword", "Change Password")],
[?XC("h1", "User: " ++ User)] ++ [?XC("h1", "User: " ++ User)] ++
case Res of case Res of
ok -> [?C("submitted"), ?P]; ok -> [?CT("submitted"), ?P];
error -> [?C("bad format"), ?P]; error -> [?CT("bad format"), ?P];
nothing -> [] nothing -> []
end ++ end ++
[?XAE("form", [{"method", "post"}], [?XAE("form", [{"method", "post"}],
@ -1160,10 +1162,10 @@ get_nodes(Lang) ->
?LI([?C(S)]) ?LI([?C(S)])
end, lists:sort(StoppedNodes))) end, lists:sort(StoppedNodes)))
end, end,
[?XC("h1", "Nodes"), [?XCT("h1", "Nodes"),
?XC("h3", "Running Nodes"), ?XCT("h3", "Running Nodes"),
FRN, FRN,
?XC("h3", "Stopped Nodes"), ?XCT("h3", "Stopped Nodes"),
FSN]. FSN].
search_running_node(SNode) -> search_running_node(SNode) ->
@ -1181,10 +1183,10 @@ search_running_node(SNode, [Node | Nodes]) ->
get_node(Node, [], Query, Lang) -> get_node(Node, [], Query, Lang) ->
Res = node_parse_query(Node, Query), Res = node_parse_query(Node, Query),
[?XC("h1", "Node: " ++ atom_to_list(Node))] ++ [?XC("h1", ?T("Node ") ++ atom_to_list(Node))] ++
case Res of case Res of
ok -> [?C("submitted"), ?P]; ok -> [?CT("submitted"), ?P];
error -> [?C("bad format"), ?P]; error -> [?CT("bad format"), ?P];
nothing -> [] nothing -> []
end ++ end ++
[?XE("ul", [?XE("ul",
@ -1202,7 +1204,7 @@ get_node(Node, [], Query, Lang) ->
get_node(Node, ["db"], Query, Lang) -> get_node(Node, ["db"], Query, Lang) ->
case rpc:call(Node, mnesia, system_info, [tables]) of case rpc:call(Node, mnesia, system_info, [tables]) of
{badrpc, _Reason} -> {badrpc, _Reason} ->
[?XC("h1", "RPC call error")]; [?XCT("h1", "RPC call error")];
Tables -> Tables ->
Res = node_db_parse_query(Node, Tables, Query), Res = node_db_parse_query(Node, Tables, Query),
STables = lists:sort(Tables), STables = lists:sort(Tables),
@ -1240,10 +1242,10 @@ get_node(Node, ["db"], Query, Lang) ->
integer_to_list(Memory)) integer_to_list(Memory))
]) ])
end, STables), end, STables),
[?XC("h1", "DB Tables at " ++ atom_to_list(Node))] ++ [?XC("h1", ?T("DB Tables at ") ++ atom_to_list(Node))] ++
case Res of case Res of
ok -> [?C("submitted"), ?P]; ok -> [?CT("submitted"), ?P];
error -> [?C("bad format"), ?P]; error -> [?CT("bad format"), ?P];
nothing -> [] nothing -> []
end ++ end ++
[?XAE("form", [{"method", "post"}], [?XAE("form", [{"method", "post"}],
@ -1268,7 +1270,7 @@ get_node(Node, ["db"], Query, Lang) ->
get_node(Node, ["backup"], Query, Lang) -> get_node(Node, ["backup"], Query, Lang) ->
Res = node_backup_parse_query(Node, Query), Res = node_backup_parse_query(Node, Query),
[?XC("h1", "Backup Management at " ++ atom_to_list(Node)), [?XC("h1", ?T("Backup Management at ") ++ atom_to_list(Node)),
?XAE("form", [{"method", "post"}], ?XAE("form", [{"method", "post"}],
[?XAE("table", [], [?XAE("table", [],
[?XE("tbody", [?XE("tbody",
@ -1323,10 +1325,10 @@ get_node(Node, ["ports"], Query, Lang) ->
end, end,
NewPorts = lists:sort( NewPorts = lists:sort(
rpc:call(Node, ejabberd_config, get_local_option, [listen])), rpc:call(Node, ejabberd_config, get_local_option, [listen])),
[?XC("h1", "Listened Ports at " ++ atom_to_list(Node))] ++ [?XC("h1", ?T("Listened Ports at ") ++ atom_to_list(Node))] ++
case Res of case Res of
ok -> [?C("submitted"), ?P]; ok -> [?CT("submitted"), ?P];
error -> [?C("bad format"), ?P]; error -> [?CT("bad format"), ?P];
nothing -> [] nothing -> []
end ++ end ++
[?XAE("form", [{"method", "post"}], [?XAE("form", [{"method", "post"}],
@ -1349,7 +1351,7 @@ get_node(Node, ["stats"], Query, Lang) ->
TransactionsLogged = TransactionsLogged =
rpc:call(Node, mnesia, system_info, [transaction_log_writes]), rpc:call(Node, mnesia, system_info, [transaction_log_writes]),
[?XC("h1", atom_to_list(Node) ++ " statistics"), [?XC("h1", io_lib:format(?T("~p statistics"), [Node])),
?XAE("table", [], ?XAE("table", [],
[?XE("tbody", [?XE("tbody",
[?XE("tr", [?XCT("td", "Uptime"), [?XE("tr", [?XCT("td", "Uptime"),
@ -1377,7 +1379,7 @@ get_node(Node, ["stats"], Query, Lang) ->
])]; ])];
get_node(Node, NPath, Query, Lang) -> get_node(Node, NPath, Query, Lang) ->
[?XC("h1", "Not found")]. [?XCT("h1", "Not found")].
node_parse_query(Node, Query) -> node_parse_query(Node, Query) ->