From a4b86c58559727f7a86f28b5964ac768358b711a Mon Sep 17 00:00:00 2001 From: Alexey Shchepin Date: Tue, 13 Jul 2004 11:28:28 +0000 Subject: [PATCH] * 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 --- ChangeLog | 12 ++ src/msgs/es.msg | 222 +++++++++++++++++++++++++++++++++ src/msgs/fr.msg | 55 ++++++++ src/msgs/nl.msg | 55 +++++++- src/msgs/ru.msg | 55 +++++++- src/web/ejabberd_web_admin.erl | 96 +++++++------- 6 files changed, 446 insertions(+), 49 deletions(-) create mode 100644 src/msgs/es.msg diff --git a/ChangeLog b/ChangeLog index 090ec3dce..f836f41a4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2004-07-13 Alexey Shchepin + + * 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 * src/mod_last.erl: Supprot for storing status from latest diff --git a/src/msgs/es.msg b/src/msgs/es.msg new file mode 100644 index 000000000..866917aed --- /dev/null +++ b/src/msgs/es.msg @@ -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: diff --git a/src/msgs/fr.msg b/src/msgs/fr.msg index 3e3843769..aaf5d0825 100644 --- a/src/msgs/fr.msg +++ b/src/msgs/fr.msg @@ -164,9 +164,64 @@ {"Encodings", ""}. % web/ejabberd_web_admin.erl +{"ejabberd administration", ""}. {"Users", ""}. {"Nodes", ""}. {"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: % mode: erlang diff --git a/src/msgs/nl.msg b/src/msgs/nl.msg index c3c341d98..fa539ff05 100644 --- a/src/msgs/nl.msg +++ b/src/msgs/nl.msg @@ -186,10 +186,63 @@ {"Encodings", "Coderingen"}. % web/ejabberd_web_admin.erl +{"ejabberd administration", ""}. {"Users", "Gebruikers"}. {"Nodes", "Nodes"}. {"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: diff --git a/src/msgs/ru.msg b/src/msgs/ru.msg index 77bb447c5..ede822d2c 100644 --- a/src/msgs/ru.msg +++ b/src/msgs/ru.msg @@ -186,10 +186,63 @@ {"Encodings", "Кодировки"}. % web/ejabberd_web_admin.erl +{"ejabberd administration", "Администрирование ejabberd"}. {"Users", "Пользователи"}. {"Nodes", "Узлы"}. {"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: diff --git a/src/web/ejabberd_web_admin.erl b/src/web/ejabberd_web_admin.erl index 93e80b6a2..457ebee58 100644 --- a/src/web/ejabberd_web_admin.erl +++ b/src/web/ejabberd_web_admin.erl @@ -71,18 +71,20 @@ make_xhtml(Els, Lang) -> [?XE("tbody", [?XE("tr", [?XE("td", - [?XA("img", [{"src", "/admin/logo.png"}, - {"width", "343"}, - {"height", "55"}, - {"alt", "ejabberd"}, - {"border", "0"}])]), + [?XAE("a", [{"href", "/admin/"}], + [?XA("img", [{"src", "/admin/logo.png"}, + {"width", "343"}, + {"height", "55"}, + {"alt", "ejabberd"}, + {"border", "0"}])])]), ?XAE("td", [{"width", "100%"}, {"background", "/admin/logo-fill.png"}], - [?XA("img", [{"src", "/admin/1x1tr.gif"}, - {"width", "100%"}, - {"height", "55"}, - {"alt", ""}, - {"border", "0"}])] + [?XAE("a", [{"href", "/admin/"}], + [?XA("img", [{"src", "/admin/1x1tr.gif"}, + {"width", "100%"}, + {"height", "55"}, + {"alt", ""}, + {"border", "0"}])])] )])]) ])])]), ?XAE("tr", @@ -485,7 +487,7 @@ process_admin(#request{user = User, path = [], q = Query, lang = Lang} = Request) -> - make_xhtml([?XC("h1", "ejabberd administration"), + make_xhtml([?XCT("h1", "ejabberd administration"), ?XE("ul", [?LI([?ACT("acls/", "Access Control Lists"), ?C(" "), ?ACT("acls-raw/", "(raw)")]), @@ -547,7 +549,7 @@ process_admin(#request{user = User, nothing end, 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 ok -> [?CT("submitted"), ?P]; error -> [?CT("bad format"), ?P]; @@ -559,7 +561,7 @@ process_admin(#request{user = User, {"cols", "80"}], ACLs), ?BR, - ?INPUT("submit", "", "") + ?INPUT("submit", "submit", "Submit") ]) ], Lang); @@ -588,7 +590,7 @@ process_admin(#request{method = Method, nothing end, 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 ok -> [?CT("submitted"), ?P]; error -> [?CT("bad format"), ?P]; @@ -655,10 +657,10 @@ process_admin(#request{user = User, [{{config, {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 - ok -> [?C("submitted"), ?P]; - error -> [?C("bad format"), ?P]; + ok -> [?CT("submitted"), ?P]; + error -> [?CT("bad format"), ?P]; nothing -> [] end ++ [?XAE("form", [{"method", "post"}], @@ -667,7 +669,7 @@ process_admin(#request{user = User, {"cols", "80"}], Access), ?BR, - ?INPUT("submit", "", "") + ?INPUT("submit", "submit", "Submit") ]) ], Lang); @@ -693,10 +695,10 @@ process_admin(#request{method = Method, [{{config, {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 - ok -> [?C("submitted"), ?P]; - error -> [?C("bad format"), ?P]; + ok -> [?CT("submitted"), ?P]; + error -> [?CT("bad format"), ?P]; nothing -> [] end ++ [?XE("p", [?ACT("../access-raw/", "raw")])] ++ @@ -734,16 +736,16 @@ process_admin(#request{method = Method, Rs1 end, make_xhtml([?XC("h1", - "'" ++ SName ++ "' access rule configuration")] ++ + io_lib:format(?T("~s access rule configuration"), [SName]))] ++ case Res of - ok -> [?C("submitted"), ?P]; - error -> [?C("bad format"), ?P]; + ok -> [?CT("submitted"), ?P]; + error -> [?CT("bad format"), ?P]; nothing -> [] end ++ [?XAE("form", [{"method", "post"}], [access_rule_to_xhtml(Rules), ?BR, - ?INPUT("submit", "submit", "") + ?INPUTT("submit", "submit", "Submit") ]) ], Lang); @@ -752,21 +754,21 @@ process_admin(#request{user = User, q = Query, lang = Lang} = Request) -> Res = list_users(), - make_xhtml([?XC("h1", "ejabberd users")] ++ Res, Lang); + make_xhtml([?XCT("h1", "ejabberd users")] ++ Res, Lang); process_admin(#request{user = User, path = ["users", Diap], q = Query, lang = Lang} = Request) -> 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, path = ["stats"], q = Query, lang = Lang} = Request) -> 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, path = ["user", U], @@ -788,7 +790,7 @@ process_admin(#request{user = User, lang = Lang} = Request) -> case search_running_node(SNode) of false -> - make_xhtml([?XC("h1", "Node not found")], Lang); + make_xhtml([?XCT("h1", "Node not found")], Lang); Node -> Res = get_node(Node, NPath, Query, Lang), make_xhtml(Res, Lang) @@ -1109,8 +1111,8 @@ user_info(User, Query, Lang) -> ?INPUTT("submit", "chpassword", "Change Password")], [?XC("h1", "User: " ++ User)] ++ case Res of - ok -> [?C("submitted"), ?P]; - error -> [?C("bad format"), ?P]; + ok -> [?CT("submitted"), ?P]; + error -> [?CT("bad format"), ?P]; nothing -> [] end ++ [?XAE("form", [{"method", "post"}], @@ -1160,10 +1162,10 @@ get_nodes(Lang) -> ?LI([?C(S)]) end, lists:sort(StoppedNodes))) end, - [?XC("h1", "Nodes"), - ?XC("h3", "Running Nodes"), + [?XCT("h1", "Nodes"), + ?XCT("h3", "Running Nodes"), FRN, - ?XC("h3", "Stopped Nodes"), + ?XCT("h3", "Stopped Nodes"), FSN]. search_running_node(SNode) -> @@ -1181,10 +1183,10 @@ search_running_node(SNode, [Node | Nodes]) -> get_node(Node, [], Query, Lang) -> Res = node_parse_query(Node, Query), - [?XC("h1", "Node: " ++ atom_to_list(Node))] ++ + [?XC("h1", ?T("Node ") ++ atom_to_list(Node))] ++ case Res of - ok -> [?C("submitted"), ?P]; - error -> [?C("bad format"), ?P]; + ok -> [?CT("submitted"), ?P]; + error -> [?CT("bad format"), ?P]; nothing -> [] end ++ [?XE("ul", @@ -1202,7 +1204,7 @@ get_node(Node, [], Query, Lang) -> get_node(Node, ["db"], Query, Lang) -> case rpc:call(Node, mnesia, system_info, [tables]) of {badrpc, _Reason} -> - [?XC("h1", "RPC call error")]; + [?XCT("h1", "RPC call error")]; Tables -> Res = node_db_parse_query(Node, Tables, Query), STables = lists:sort(Tables), @@ -1240,10 +1242,10 @@ get_node(Node, ["db"], Query, Lang) -> integer_to_list(Memory)) ]) end, STables), - [?XC("h1", "DB Tables at " ++ atom_to_list(Node))] ++ + [?XC("h1", ?T("DB Tables at ") ++ atom_to_list(Node))] ++ case Res of - ok -> [?C("submitted"), ?P]; - error -> [?C("bad format"), ?P]; + ok -> [?CT("submitted"), ?P]; + error -> [?CT("bad format"), ?P]; nothing -> [] end ++ [?XAE("form", [{"method", "post"}], @@ -1268,7 +1270,7 @@ get_node(Node, ["db"], Query, Lang) -> get_node(Node, ["backup"], Query, Lang) -> 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("table", [], [?XE("tbody", @@ -1323,10 +1325,10 @@ get_node(Node, ["ports"], Query, Lang) -> end, NewPorts = lists:sort( 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 - ok -> [?C("submitted"), ?P]; - error -> [?C("bad format"), ?P]; + ok -> [?CT("submitted"), ?P]; + error -> [?CT("bad format"), ?P]; nothing -> [] end ++ [?XAE("form", [{"method", "post"}], @@ -1349,7 +1351,7 @@ get_node(Node, ["stats"], Query, Lang) -> TransactionsLogged = 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", [], [?XE("tbody", [?XE("tr", [?XCT("td", "Uptime"), @@ -1377,7 +1379,7 @@ get_node(Node, ["stats"], Query, Lang) -> ])]; get_node(Node, NPath, Query, Lang) -> - [?XC("h1", "Not found")]. + [?XCT("h1", "Not found")]. node_parse_query(Node, Query) ->