Merge pull request #195 from Esselans/develop

Improved translation & UTF email output
This commit is contained in:
Pep 2016-01-31 00:28:04 +01:00
commit 653fe4f7b8
2 changed files with 83 additions and 82 deletions

View File

@ -20,6 +20,7 @@
* @package phpservermon
* @author Klemens Häckel <http://clickdimension.wordpress.com/>
* @author Luis Rodriguez <luis@techreanimate.com>
* @author Mauro Vietri <mauro.vietri@outlook.com>
* @copyright Copyright (c) 2008-2015 Pepijn Over <pep@peplab.net>
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
* @version Release: @package_version@
@ -31,7 +32,7 @@ $sm_lang = array(
'locale' => array('es_ES.UTF-8', 'es_ES', 'spanish', 'esp'),
'system' => array(
'title' => 'Server Monitor',
'install' => 'Install',
'install' => 'Instalar',
'action' => 'Acción',
'save' => 'Guardar',
'edit' => 'Modificar',
@ -52,7 +53,7 @@ $sm_lang = array(
'long_day_format' => '%B %e, %Y',
'yesterday_format' => 'Ayer a las %k:%M',
'other_day_format' => '%A a las %k:%M',
'never' => 'Never',
'never' => 'Nunca',
'hours_ago' => 'Hace %d horas',
'an_hour_ago' => 'Hace aproximadamente una hora',
'minutes_ago' => 'Hace %d minutos',
@ -72,24 +73,24 @@ $sm_lang = array(
'users' => array(
'user' => 'Usuario',
'name' => 'Nombre',
'user_name' => 'Username',
'user_name' => 'Nombre de Usuario',
'password' => 'Contraseña',
'password_repeat' => 'Contraseña de nueavo',
'password_repeat' => 'Repetir Contraseña',
'password_leave_blank' => 'Dejar en blanco para mantener sin cambios',
'level' => 'Nivel',
'level_10' => 'Administrador',
'level_20' => 'Usuarios',
'level_description' => '<b>Administradores</b> tienen acceso completo: pueden manegar servidores, usuarios y editar la configuración global.<br/>Los <b>usuarios</b> sólo pueden ver y ejecutar el programa de actualización para los servidores que se han asignado a los mismos.',
'mobile' => 'Mobil',
'level_description' => '<b>Administradores</b> tienen acceso completo: pueden administrar servidores, usuarios y editar la configuración global.<br/>Los <b>usuarios</b> sólo pueden ver y ejecutar el programa de actualización para los servidores que se han asignado a los mismos.',
'mobile' => 'Móvil',
'email' => 'Email',
'pushover' => 'Pushover',
'pushover_description' => 'Pushover es un servicio que hace que sea fácil de obtener notificaciones en tiempo real. Ver <a href="https://pushover.net/">la pagina</a> para mas información.',
'pushover_key' => 'Pushover Key',
'pushover_device' => 'Pushover Device',
'pushover_description' => 'Pushover es un servicio que hace que sea fácil de obtener notificaciones en tiempo real. Vea <a href="https://pushover.net/"> su página web </a> para más información.',
'pushover_key' => 'Clave Pushover',
'pushover_device' => 'Dispositivo Pushover',
'pushover_device_description' => 'Nombre del dispositivo para enviar el mensaje. Dejar en blanco para enviarlo a todos los dispositivos.',
'delete_title' => 'Eliminar usuario',
'delete_message' => '¿Seguro que desea eliminar el usuario \'%1\'?',
'deleted' => 'Suprime usuario.',
'deleted' => 'Usuario eliminado.',
'updated' => 'Usuario actualizado.',
'inserted' => 'Usuario ingresado.',
'profile' => 'Perfil',
@ -115,18 +116,18 @@ $sm_lang = array(
),
'servers' => array(
'server' => 'Servidores',
'status' => 'Status',
'label' => 'Titulo',
'status' => 'Estado',
'label' => 'Título',
'domain' => 'Dominio/IP',
'timeout' => 'Tiempo de espera',
'timeout_description' => 'Número de segundos a esperar para que el servidor responda.',
'port' => 'Puerto',
'type' => 'Tipo',
'type_website' => 'Website',
'type_website' => 'Sitio Web',
'type_service' => 'Servicio',
'pattern' => 'Cadena de búsqueda / patrón',
'pattern_description' => 'Si este patrón no se encuentra en el sitio web, el servidor estará marcada sin conexión. Se permiten expresiones regulares.',
'last_check' => 'Ultima verificación',
'pattern_description' => 'Si este patrón no se encuentra en el sitio web, el servidor estará marcada como sin conexión. Se permiten expresiones regulares.',
'last_check' => 'Última verificación',
'last_online' => 'Última vez en línea',
'monitoring' => 'Monitoreo',
'no_monitoring' => 'Sin monitoreo',
@ -139,20 +140,20 @@ $sm_lang = array(
'delete_title' => 'eliminar servidor',
'delete_message' => '¿Seguro que desea eliminar el servidor \'%1\'?',
'deleted' => 'Servidor eliminado.',
'updated' => 'Servidor arctualizado.',
'updated' => 'Servidor actualizado.',
'inserted' => 'Servidor ingresado.',
'latency' => 'Tiempo de respuesta',
'latency_max' => 'Tiempo de respuesta (maximum)',
'latency_min' => 'Tiempo de respuesta (minimum)',
'latency_avg' => 'Tiempo de respuesta (average)',
'uptime' => 'Uptime',
'latency_max' => 'Tiempo de respuesta (máxima)',
'latency_min' => 'Tiempo de respuesta (mínima)',
'latency_avg' => 'Tiempo de respuesta (promedio)',
'uptime' => 'Activo',
'year' => 'Año',
'month' => 'Mes',
'week' => 'Semana',
'day' => 'Día',
'hour' => 'Hora',
'warning_threshold' => 'Umbral de advertencia',
'warning_threshold_description' => 'Número de controles fallidos necesarios antes de que se marca fuera de línea.',
'warning_threshold_description' => 'Número de controles fallidos necesarios antes de que se marque como fuera de línea.',
'chart_last_week' => 'La semana pasada',
'chart_history' => 'Historia',
// Charts date format according jqPlot date format http://www.jqplot.com/docs/files/plugins/jqplot-dateAxisRenderer-js.html
@ -160,34 +161,34 @@ $sm_lang = array(
'chart_long_date_format' => '%Y-%m-%d %H:%M:%S',
'chart_short_date_format' => '%m/%d %H:%M',
'chart_short_time_format' => '%H:%M',
'warning_notifications_disabled_sms' => 'Notificaciones por SMS son discapacitados.',
'warning_notifications_disabled_email' => 'Notificaciones por correo electrónico están desactivados.',
'warning_notifications_disabled_pushover' => 'Pushover notificaciones están desactivadas.',
'warning_notifications_disabled_sms' => 'Las notificaciones por SMS están desactivadas.',
'warning_notifications_disabled_email' => 'Las notificaciones por correo electrónico están desactivados.',
'warning_notifications_disabled_pushover' => 'Las notificaciones Pushover están desactivadas.',
'error_server_no_match' => 'Servidor no encontrado.',
'error_server_label_bad_length' => 'La etiqueta debe estar entre 1 y 255 caracteres.',
'error_server_ip_bad_length' => 'El dominio / IP debe estar entre 1 y 255 caracteres.',
'error_server_ip_bad_service' => 'La dirección IP no es válida.',
'error_server_ip_bad_website' => 'El URL del sitio Web no es válido.',
'error_server_ip_bad_website' => 'El URL del Sitio Web no es válido.',
'error_server_type_invalid' => 'El tipo de servidor seleccionado no es válido.',
'error_server_warning_threshold_invalid' => 'El umbral de advertencia debe ser un entero válido mayor que 0.',
),
'config' => array(
'general' => 'General',
'language' => 'Idioma',
'show_update' => 'Comprobar actualizaciones semanalmente ?',
'email_status' => 'Habilitar envio de email ?',
'email_from_email' => 'Email desde dirección',
'email_from_name' => 'Email desde nombre',
'show_update' => '¿Comprobar actualizaciones semanalmente?',
'email_status' => '¿Habilitar envio de email?',
'email_from_email' => 'Dirección del Remitente',
'email_from_name' => 'Nombre del Remitente',
'email_smtp' => 'Habilitar SMTP',
'email_smtp_host' => 'SMTP host',
'email_smtp_port' => 'SMTP port',
'email_smtp_security' => 'SMTP security',
'email_smtp_security_none' => 'None',
'email_smtp_username' => 'SMTP username',
'email_smtp_password' => 'SMTP contraseña',
'email_smtp_host' => 'Servidor SMTP',
'email_smtp_port' => 'Puerto SMTP',
'email_smtp_security' => 'Seguridad SMTP',
'email_smtp_security_none' => 'Ninguna',
'email_smtp_username' => 'Usuario SMTP',
'email_smtp_password' => 'Contraseña SMTP',
'email_smtp_noauth' => 'Deja en blanco para ninguna autenticación',
'sms_status' => 'Habilitar envio de SMS ?',
'sms_gateway' => 'SMS Gateway',
'sms_status' => '¿Habilitar envio de SMS?',
'sms_gateway' => 'Proveedor de SMS',
'sms_gateway_mosms' => 'Mosms',
'sms_gateway_mollie' => 'Mollie',
'sms_gateway_spryng' => 'Spryng',
@ -197,43 +198,43 @@ $sm_lang = array(
'sms_gateway_smsglobal' => 'SMSGlobal',
'sms_gateway_smsit' => 'Smsit',
'sms_gateway_freevoipdeal' => 'FreeVoipDeal',
'sms_gateway_username' => 'Gateway username',
'sms_gateway_password' => 'Gateway password',
'sms_gateway_username' => 'Usuario',
'sms_gateway_password' => 'Contraseña',
'sms_from' => 'Número origen del SMS',
'pushover_status' => 'Permitir el envío de mensajes Pushover',
'pushover_description' => 'Pushover es un servicio que hace que sea fácil de obtener notificaciones en tiempo real. Ver <a href="https://pushover.net/"> su página web </a> para más información.',
'pushover_status' => '¿Habilitar el envío de mensajes Pushover?',
'pushover_description' => 'Pushover es un servicio que hace que sea fácil de obtener notificaciones en tiempo real. Vea <a href="https://pushover.net/"> su página web </a> para más información.',
'pushover_clone_app' => 'Haga clic aquí para crear tu aplicación Pushover',
'pushover_api_token' => 'Pushover App API Token',
'pushover_api_token_description' => 'Antes de poder utilizar Pushover, necesita a <a href="%1$s" target="_blank"> registrar una </a> App en su página web y entrar en el App API Token aquí.',
'alert_type' => 'Cuando desea recibir notificaciones ?',
'pushover_api_token' => 'Token API de Pushover',
'pushover_api_token_description' => 'Antes de poder utilizar Pushover, necesita <a href="%1$s" target="_blank"> registrar </a> su aplicación en la página web e ingresar el token API.',
'alert_type' => '¿Cuándo desea recibir notificaciones ?',
'alert_type_description' => '<b>... Al cambiar el estado:</b> '.
'p.ej. online -> offline o offline -> online.<br/>'.
'<br /><b>Offline:</b> '.
'Recibirá una notificación cuando el servidor va fuera de línea.'.
'Se envia un sólo mensaje cuando el CronJob detecta la caída por primera vez.<br/>'.
'p.ej. en línea -> fuera de línea o fuera de línea -> en línea.<br/>'.
'<br /><b>Fuera de Línea:</b> '.
'Recibirá una notificación cuando el servidor esté fuera de línea.'.
'Se envia un sólo mensaje cuando se detecte la caída por primera vez.<br/>'.
'<br><b>Siempre:</b> '.
'Se le enviará una notificación, cada vez que se ejecuta el script o el CronJob, '.
'aunqué el servicio puede haber estado fuera de línea por varias horas antes.',
'Se le enviará una notificación cada vez que se ejecuta el script '.
'aunqué el servicio puede haber estado fuera de línea por varias horas.',
'alert_type_status' => 'Cambio de estado',
'alert_type_offline' => 'Offline',
'alert_type_offline' => 'Fuera de Línea',
'alert_type_always' => 'Siempre',
'log_status' => 'Log status',
'log_status_description' => 'Al setear TRUE (marcar) se protocolan todos los estados.',
'log_email' => 'Enviar Log via email?',
'log_sms' => 'Enviar Log via SMS ?',
'log_pushover' => 'Log pushover messages sent by the script',
'log_status' => 'Log de Estados',
'log_status_description' => 'Al setear TRUE (marcar) se registrarán todos los estados.',
'log_email' => 'Registrar emails enviados en el Log',
'log_sms' => 'Registrar sms enviados en el Log',
'log_pushover' => 'Registrar notificaciones Pushover enviadas en el Log',
'updated' => 'Configuración guardada.',
'tab_email' => 'Email',
'tab_sms' => 'SMS',
'tab_pushover' => 'Pushover',
'settings_email' => 'Email',
'settings_sms' => 'Mensaje SMS',
'settings_pushover' => 'Pushover settings',
'settings_pushover' => 'Configuración de Pushover',
'settings_notification' => 'Notificación',
'settings_log' => 'Log',
'auto_refresh' => 'Refrescar automáticamente página de servidores',
'auto_refresh' => 'Refrescar automáticamente la página de servidores',
'auto_refresh_servers' =>
'Refrescar automáticamente página de servidores.<br/>'.
'Refrescar automáticamente la página de servidores.<br/>'.
'<span class="small">'.
'Tiempo en segundos, indicar "0" para no actualizar.'.
'</span>',
@ -242,34 +243,34 @@ $sm_lang = array(
'test_email' => 'Un correo electrónico será enviado a la dirección especificada en su perfil de usuario.',
'test_sms' => 'Un SMS se enviará al número de teléfono especificado en su perfil de usuario.',
'test_pushover' => 'Una notificación Pushover será enviado a la clave de usuario / dispositivo especificado en su perfil de usuario.',
'send' => 'Send',
'send' => 'Enviar',
'test_subject' => 'Test',
'test_message' => 'Test message',
'email_sent' => 'Email sent',
'email_error' => 'Error in email sending',
'sms_sent' => 'Sms sent',
'sms_error' => 'Error in sms sending',
'sms_error_nomobile' => 'No se puede enviar SMS de prueba: no hay ningún número de teléfono válido encontrado en su perfil.',
'pushover_sent' => 'Notificación Pushover envió',
'pushover_error' => 'Se ha producido un error al enviar la notificación Pushover: %s',
'pushover_error_noapp' => 'No se puede enviar una notificación de prueba: hay un token API Pushover App encontrado en la configuración global.',
'pushover_error_nokey' => 'No se puede enviar una notificación de prueba: ninguna clave Pushover encontrado en su perfil.',
'log_retention_period' => 'Log período de retención',
'test_message' => 'Mensaje de prueba',
'email_sent' => 'Email enviado',
'email_error' => 'Error al enviar el email',
'sms_sent' => 'SMS enviado',
'sms_error' => 'Error al enviar el SMS',
'sms_error_nomobile' => 'No se puede enviar SMS de prueba: no hay ningún número de teléfono válido en su perfil.',
'pushover_sent' => 'Notificación Pushover enviada',
'pushover_error' => 'Error al enviar la notificación Pushover: %s',
'pushover_error_noapp' => 'No se puede enviar una notificación de prueba: no existe un token API de Pushover en la configuración global.',
'pushover_error_nokey' => 'No se puede enviar una notificación de prueba: no existe ninguna clave de Pushover en su perfil.',
'log_retention_period' => 'Período de retención del Log',
'log_retention_period_description' => 'Número de días que se conservan registros de las notificaciones y los archivos de tiempo de actividad del servidor. Introduzca 0 para desactivar la limpieza de los registros.',
'log_retention_days' => 'días',
),
// for newlines in the email messages use <br/>
'notifications' => array(
'off_sms' => 'Servidor \'%LABEL%\' está fuera de línea: ip=%IP%, port=%PORT%. error=%ERROR%',
'off_sms' => 'Servidor \'%LABEL%\' está fuera de línea: ip=%IP%, puerto=%PORT%. error=%ERROR%',
'off_email_subject' => 'Importante: Servidor \'%LABEL%\' está fuera de línea',
'off_email_body' => "No posible conectar al servidor:<br/><br/>Servidor: %LABEL%<br/>IP: %IP%<br/>Port: %PORT%<br/>Error: %ERROR%<br/>Fecha: %DATE%",
'off_email_body' => "No posible conectar al servidor:<br/><br/>Servidor: %LABEL%<br/>IP: %IP%<br/>Puerto: %PORT%<br/>Error: %ERROR%<br/>Fecha: %DATE%",
'off_pushover_title' => 'Servidor \'%LABEL%\' está fuera de línea',
'off_pushover_message' => "No posible conectar al servidor:<br/><br/>Servidor: %LABEL%<br/>IP: %IP%<br/>Port: %PORT%<br/>Error: %ERROR%<br/>Fecha: %DATE%",
'on_sms' => 'Servidor \'%LABEL%\' ya está de nuevo funcionando en línea: ip=%IP%, port=%PORT%',
'off_pushover_message' => "No posible conectar al servidor:<br/><br/>Servidor: %LABEL%<br/>IP: %IP%<br/>Puerto: %PORT%<br/>Error: %ERROR%<br/>Fecha: %DATE%",
'on_sms' => 'Servidor \'%LABEL%\' ya está de nuevo funcionando en línea: ip=%IP%, puerto=%PORT%',
'on_email_subject' => 'Importante: Servidor \'%LABEL%\' ya está de nuevo en línea',
'on_email_body' => "Servidor '%LABEL%' ya está funcionando en línea de nuevo:<br/><br/>Servidor: %LABEL%<br/>IP: %IP%<br/>Port: %PORT%<br/>Fecha: %DATE%",
'on_email_body' => "Servidor '%LABEL%' ya está funcionando en línea de nuevo:<br/><br/>Servidor: %LABEL%<br/>IP: %IP%<br/>Puerto: %PORT%<br/>Fecha: %DATE%",
'on_pushover_title' => 'Servidor \'%LABEL%\' ya está de nuevo en línea',
'on_pushover_message' => "Servidor '%LABEL%' ya está funcionando en línea de nuevo:<br/><br/>Servidor: %LABEL%<br/>IP: %IP%<br/>Port: %PORT%<br/>Fecha: %DATE%",
'on_pushover_message' => "Servidor '%LABEL%' ya está funcionando en línea de nuevo:<br/><br/>Servidor: %LABEL%<br/>IP: %IP%<br/>Puerto: %PORT%<br/>Fecha: %DATE%",
),
'login' => array(
'welcome_usermenu' => 'Bienvenido, %user_name%',
@ -286,16 +287,16 @@ $sm_lang = array(
'password_forgot' => '¿Has olvidado tu contraseña?',
'password_reset' => 'Perdí mi contraseña',
'password_reset_email_subject' => 'Restablecer la contraseña para PHP Server Monitor',
'password_reset_email_body' => 'Utilice el siguiente enlace para restablecer tu contraseña. Tenga en cuenta que expire de 1 hora.<br/><br/>%link%',
'password_reset_email_body' => 'Utilice el siguiente enlace para restablecer tu contraseña. Tenga en cuenta que expira de 1 hora.<br/><br/>%link%',
'error_user_incorrect' => 'El nombre de usuario proporcionado no se pudo encontrar.',
'error_login_incorrect' => 'La información es incorrecta.',
'error_login_passwords_nomatch' => 'Las contraseñas proporcionadas no coinciden.',
'error_reset_invalid_link' => 'El vínculo de cambio que ya ha proporcionado no es válido.',
'success_password_forgot' => 'Un correo electrónico ha sido enviado a usted con información de cómo restablecer su contraseña.',
'success_password_reset' => 'Su contraseña ha sido restablecido correctamente. Por favor, iniciar sesión.',
'success_password_reset' => 'Su contraseña ha sido restablecida correctamente. Por favor, inicia sesión.',
),
'error' => array(
'401_unauthorized' => 'Unauthorized',
'401_unauthorized' => 'No Autorizado',
'401_unauthorized_description' => 'Usted no tiene los privilegios para ver esta página.',
),
);

View File

@ -202,11 +202,11 @@ class StatusNotifier {
// build mail object with some default values
$mail = psm_build_mail();
$mail->Subject = psm_parse_msg($this->status_new, 'email_subject', $this->server);
$mail->Subject = utf8_decode(psm_parse_msg($this->status_new, 'email_subject', $this->server));
$mail->Priority = 1;
$body = psm_parse_msg($this->status_new, 'email_body', $this->server);
$mail->Body = $body;
$mail->Body = utf8_decode($body);
$mail->AltBody = str_replace('<br/>', "\n", $body);
// go through empl