From ef49e6736602e773d4baf497c0348664dbbb43df Mon Sep 17 00:00:00 2001
From: Plamen Vasilev
Date: Sat, 23 Aug 2014 23:42:15 +0300
Subject: [PATCH 01/23] bg_BG.lang.php - develop update
bg_BG.lang.php - develop update
---
src/lang/bg_BG.lang.php | 70 ++++++++++++++++++++---------------------
1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/src/lang/bg_BG.lang.php b/src/lang/bg_BG.lang.php
index 679fc405..e9a2469f 100644
--- a/src/lang/bg_BG.lang.php
+++ b/src/lang/bg_BG.lang.php
@@ -82,10 +82,10 @@ $sm_lang = array(
'mobile' => 'Мобилен телефон',
'email' => 'Имейл',
'pushover' => 'Pushover',
- 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
- 'pushover_key' => 'Pushover Key',
- 'pushover_device' => 'Pushover Device',
- 'pushover_device_description' => 'Device name to send the message to. Leave empty to send it to all devices.',
+ 'pushover_description' => 'Pushover е услуга, която улеснява получаването на известия в реално време. Посетете техния сайт за повече информация.',
+ 'pushover_key' => 'Pushover Ключ',
+ 'pushover_device' => 'Pushover Устройство',
+ 'pushover_device_description' => 'Име на устройство, което да получава съобщение. Оставете празно, за изпращане до всички устройства.',
'delete_title' => 'Изтриване на потребител',
'delete_message' => 'Сигурни ли сте, че искате да изтриете потребител \'%1\'?',
'deleted' => 'Потребителят е изтрит успешно.',
@@ -117,8 +117,8 @@ $sm_lang = array(
'status' => 'Статус',
'label' => 'Име',
'domain' => 'Хост',
- 'timeout' => 'Timeout',
- 'timeout_description' => 'Number of seconds to wait for the server to respond.',
+ 'timeout' => 'Изчакване',
+ 'timeout_description' => 'Брой секунди, който да изчака отговор от сървъра',
'port' => 'Порт',
'type' => 'Тип',
'type_website' => 'Сайт',
@@ -134,7 +134,7 @@ $sm_lang = array(
'sms' => 'SMS',
'send_sms' => 'SMS',
'pushover' => 'Pushover',
- 'users' => 'Users',
+ 'users' => 'Потребители',
'delete_title' => 'Изтриване на сървър',
'delete_message' => 'Сигурни ли сте, че искате да изтриете сървър \'%1\'?',
'deleted' => 'Сървъра е изтрит успешно.',
@@ -159,16 +159,16 @@ $sm_lang = array(
'chart_long_date_format' => '%d.%m.%Y %H:%M:%S',
'chart_short_date_format' => '%d.%m %H:%M',
'chart_short_time_format' => '%H:%M',
- 'warning_notifications_disabled_sms' => 'SMS notifications are disabled.',
- 'warning_notifications_disabled_email' => 'Email notifications are disabled.',
- 'warning_notifications_disabled_pushover' => 'Pushover notifications are disabled.',
- 'error_server_no_match' => 'Server not found.',
- 'error_server_label_bad_length' => 'The label must be between 1 and 255 characters.',
- 'error_server_ip_bad_length' => 'The domain / IP must be between 1 and 255 characters.',
- 'error_server_ip_bad_service' => 'The IP address is not valid.',
- 'error_server_ip_bad_website' => 'The website URL is not valid.',
- 'error_server_type_invalid' => 'The selected server type is invalid.',
- 'error_server_warning_threshold_invalid' => 'The warning threshold must be a valid integer greater than 0.',
+ 'warning_notifications_disabled_sms' => 'SMS известията са изключени.',
+ 'warning_notifications_disabled_email' => 'Имейл известията са изключени.',
+ 'warning_notifications_disabled_pushover' => 'Pushover известията са изключени.',
+ 'error_server_no_match' => 'Сървърът не е намерен.',
+ 'error_server_label_bad_length' => 'Името трябва да е между 1 и 255 символа.',
+ 'error_server_ip_bad_length' => 'Хоста/IP адреса трябва да е между 1 и 255 символа.',
+ 'error_server_ip_bad_service' => 'IP адреса е невалиден.',
+ 'error_server_ip_bad_website' => 'Сайта е невалиден.',
+ 'error_server_type_invalid' => 'Избраният тип сървър е невалиден.',
+ 'error_server_warning_threshold_invalid' => 'Броя неуспешни проверки, преди сървъра или сайта да бъдат маркирани като Офлайн трябва да е цифра по-голяма от 0.',
),
'config' => array(
'general' => 'Основни настройки',
@@ -196,11 +196,11 @@ $sm_lang = array(
'sms_gateway_username' => 'Потребител',
'sms_gateway_password' => 'Парола',
'sms_from' => 'Номер на изпращача',
- 'pushover_status' => 'Allow sending Pushover messages',
- 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
- 'pushover_clone_app' => 'Click here to create your Pushover app',
+ 'pushover_status' => 'Позволява изпращането на Pushover съобщения',
+ 'pushover_description' => 'Pushover е услуга, която улеснява получаването на известия в реално време. Посетете техния сайт за повече информация.',
+ 'pushover_clone_app' => 'Кликнете тук за да създаване на вашият Pushover App',
'pushover_api_token' => 'Pushover App API Token',
- 'pushover_api_token_description' => 'Before you can use Pushover, you need to register an App at their website and enter the App API Token here.',
+ 'pushover_api_token_description' => 'Преди да използвате Pushover, трябва да регистрирате свой App в техния сайт и въведете вашия App API Token тук.',
'alert_type' => 'Изберете кога желаете да получавате известия',
'alert_type_description' => 'Промяна на сатуса:
'.
'Ще получавате известие когато има промяна със връзката на даден някой от описаните сървър или сайт. От Онлайн -> Офлайн и от Офлайн -> Онлайн.
'.
@@ -224,7 +224,7 @@ $sm_lang = array(
'tab_pushover' => 'Pushover',
'settings_email' => 'Имейл настройки',
'settings_sms' => 'SMS настройки',
- 'settings_pushover' => 'Pushover settings',
+ 'settings_pushover' => 'Pushover настройки',
'settings_notification' => 'Настройки на известията',
'settings_log' => 'Настройки на логовете',
'auto_refresh' => 'Автоматично опресняване',
@@ -237,22 +237,22 @@ $sm_lang = array(
'test' => 'Тест',
'test_email' => 'Ще бъде изпратенo тестово съобщение до имейл адреса, който сте задали в профила си.',
'test_sms' => 'Ще бъде изпратен тестово SMS съобщение до телефонния номер, който сте задали в профила си.',
- 'test_pushover' => 'A Pushover notification will be sent to the user key/device specified in your user profile.',
+ 'test_pushover' => 'Pushover известоята ще бъдат изпратени до потребителски ключ/устройство посочено във вашият профил.',
'send' => 'Изпрати',
- 'test_subject' => 'Test',
- 'test_message' => 'Тестово съобщение',
+ 'test_subject' => 'Тестово съобщение',
+ 'test_message' => 'Тестово съобщение изпртено от PHP Сървър мониторинг',
'email_sent' => 'Тестовия имейл е изпратен успешно.',
'email_error' => 'Възникна грешка при изпращането на тесовия имейл',
'sms_sent' => 'Тестовото SMS съобщение е изпратеното успешно.',
'sms_error' => 'Възникна грешка при изпращането на тестовия SMS',
- 'sms_error_nomobile' => 'Unable to send test SMS: no valid phone number found in your profile.',
- 'pushover_sent' => 'Pushover notification sent',
- 'pushover_error' => 'An error has occurred while sending the Pushover notification: %s',
- 'pushover_error_noapp' => 'Unable to send test notification: no Pushover App API token found in the global configuration.',
- 'pushover_error_nokey' => 'Unable to send test notification: no Pushover key found in your profile.',
- 'log_retention_period' => 'Log retention period',
- 'log_retention_period_description' => 'Number of days to keep logs of notifications and archives of server uptime. Enter 0 to disable log cleanup.',
- 'log_retention_days' => 'days',
+ 'sms_error_nomobile' => 'Неуспешно изпращане на тестов SMS: не е намерен валиден телефонен номер във вашия профил.',
+ 'pushover_sent' => 'Pushover тестово известие',
+ 'pushover_error' => 'Възникна грешка при изпращане на тестово Pushover известие: %s',
+ 'pushover_error_noapp' => 'Unable to send test notification: не е зададен валиден Pushover App API token в настройките.',
+ 'pushover_error_nokey' => 'Unable to send test notification: не е зададен валиден Pushover ключ във вашия профил.',
+ 'log_retention_period' => 'Период на съхранение на логовете',
+ 'log_retention_period_description' => 'Какъв брой дни да се пазят логовете от известията и архиви за ъптайм на сървърите. Въведете 0 ако желаете логовете да не се трият.',
+ 'log_retention_days' => 'дни',
),
// За нов ред в имейл съобщението, моля използвайте тага
'notifications' => array(
@@ -291,7 +291,7 @@ $sm_lang = array(
'success_password_reset' => 'Вашата парола е променена успешно. Моля, влезте в системата.',
),
'error' => array(
- '401_unauthorized' => 'Unauthorized',
- '401_unauthorized_description' => 'You do not have the privileges to view this page.',
+ '401_unauthorized' => 'Неоторизиран достъп',
+ '401_unauthorized_description' => 'Нямате нужното ниво на достъп за да прегледате тази страница.',
),
);
From 8834dd6cfe7c930d40b85f05cecf227936c3e0fe Mon Sep 17 00:00:00 2001
From: berkas1
Date: Fri, 5 Sep 2014 19:29:30 +0200
Subject: [PATCH 02/23] add Czech translation
---
src/lang/cs_CZ.lang.php | 295 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 295 insertions(+)
create mode 100644 src/lang/cs_CZ.lang.php
diff --git a/src/lang/cs_CZ.lang.php b/src/lang/cs_CZ.lang.php
new file mode 100644
index 00000000..79d96f14
--- /dev/null
+++ b/src/lang/cs_CZ.lang.php
@@ -0,0 +1,295 @@
+.
+ *
+ * @package phpservermon
+ * @author Pepijn Over
+ * @copyright Copyright (c) 2008-2014 Pepijn Over
+ * @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
+ * @version Release: @package_version@
+ * @link http://www.phpservermonitor.org/
+ **/
+
+$sm_lang = array(
+ 'name' => 'Czech',
+ 'locale' => array('cs_CZ.UTF-8', 'cs_CZ', 'czech', 'czech'),
+ 'system' => array(
+ 'title' => 'Server Monitor',
+ 'install' => 'Instalace',
+ 'action' => 'Akce',
+ 'save' => 'Uložit',
+ 'edit' => 'Upravit',
+ 'delete' => 'Smazat',
+ 'date' => 'Datum',
+ 'message' => 'Zpráva',
+ 'yes' => 'Ano',
+ 'no' => 'Ne',
+ 'insert' => 'Vložit',
+ 'add_new' => 'Přidat',
+ 'update_available' => 'Nová verze - ({version}) je dostupná na http://www.phpservermonitor.org.',
+ 'back_to_top' => 'Zpět na začátek',
+ 'go_back' => 'Jít zpět',
+ 'ok' => 'OK',
+ 'cancel' => 'Zrušit',
+ // date/time format according the strftime php function format parameter http://php.net/manual/function.strftime.php
+ 'short_day_format' => '%B %e',
+ 'long_day_format' => '%B %e, %Y',
+ 'yesterday_format' => 'Včera v %k:%M',
+ 'other_day_format' => '%A v %k:%M',
+ 'never' => 'Never',
+ 'hours_ago' => 'před %d hodinami',
+ 'an_hour_ago' => 'cca před hodinou',
+ 'minutes_ago' => 'před %d minutami',
+ 'a_minute_ago' => 'cca před minutou',
+ 'seconds_ago' => 'před %d vteřinami',
+ 'a_second_ago' => 'před chvílí',
+ ),
+ 'menu' => array(
+ 'config' => 'Konfigurace',
+ 'server' => 'Servery',
+ 'server_log' => 'Log',
+ 'server_status' => 'Status',
+ 'server_update' => 'Aktualizace',
+ 'user' => 'Uživatelé',
+ 'help' => 'Nápověda',
+ ),
+ 'users' => array(
+ 'user' => 'Uživatel',
+ 'name' => 'Jméno',
+ 'user_name' => 'Uživatelské jméno',
+ 'password' => 'Heslo',
+ 'password_repeat' => 'Stejné heslo (pro kontrolu)',
+ 'password_leave_blank' => 'Ponechte prázdné pro ponechání beze změn.',
+ 'level' => 'Úroveň',
+ 'level_10' => 'Administráto',
+ 'level_20' => 'Uživatel',
+ 'level_description' => 'Administrators have full access: they can manage servers, users and edit the global configuration.
Users can only view and run the updater for the servers that have been assigned to them.',
+ 'mobile' => 'Mobil',
+ 'email' => 'Email',
+ 'pushover' => 'Pushover',
+ 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
+ 'pushover_key' => 'Pushover Klíč',
+ 'pushover_device' => 'Pushover Zařízení',
+ 'pushover_device_description' => 'Název zařízení, na které má být zráva odeslána. Ponechte prázdné pro odeslání na všechna zařízení.',
+ 'delete_title' => 'Smazat uživatele',
+ 'delete_message' => 'Opravdu smazat uživatele \'%1\'?',
+ 'deleted' => 'Uživatel smazán.',
+ 'updated' => 'Uživatel aktualizován.',
+ 'inserted' => 'Uživatel přidán.',
+ 'profile' => 'Profil',
+ 'profile_updated' => 'Váš uživatelský profil byl upraven.',
+ 'error_user_name_bad_length' => 'Uživatelské jméno musí obsahovat 2 až 64 znaků.',
+ 'error_user_name_invalid' => 'Uživatelské jméno může obsahovat pouze písmena (a-z, A-Z), čísla (0-9) a podtržítka (_).',
+ 'error_user_name_exists' => 'Zadané uživatelské jméno již existuje v databázi.',
+ 'error_user_email_bad_length' => 'Emailová adresa musí obsahovat 5 až 255 znaků .',
+ 'error_user_email_invalid' => 'Emailová adresa je neplatná',
+ 'error_user_level_invalid' => 'Zadaná úroveň je neplatná.',
+ 'error_user_no_match' => 'Uživatel nebyl nalezen.',
+ 'error_user_password_invalid' => 'Zadané heslo je neplatné.',
+ 'error_user_password_no_match' => 'Zadaná hesla neodpovídají.',
+ ),
+ 'log' => array(
+ 'title' => 'Záznamy logu',
+ 'type' => 'Typ',
+ 'status' => 'Stav',
+ 'email' => 'Email',
+ 'sms' => 'SMS',
+ 'pushover' => 'Pushover',
+ 'no_logs' => 'Žádné záznamy',
+ ),
+ 'servers' => array(
+ 'server' => 'Server',
+ 'status' => 'Stav',
+ 'label' => 'Popis',
+ 'domain' => 'Doména/IP',
+ 'timeout' => 'Časový limit',
+ 'timeout_description' => 'Počet vteřin čekání na odpověď serveru.',
+ 'port' => 'Port',
+ 'type' => 'Typ',
+ 'type_website' => 'Web',
+ 'type_service' => 'Služba',
+ 'pattern' => 'Vyhledat řetězec/vzorek',
+ 'pattern_description' => 'Pokud vzorek nebude na webu nalezen, bude server označen jako offline. Regulární výrazy jsou povoleny.',
+ 'last_check' => 'Poslední kontrola',
+ 'last_online' => 'Naposledy online',
+ 'monitoring' => 'Monitoring',
+ 'no_monitoring' => 'Žádné monitorované služby',
+ 'email' => 'Email',
+ 'send_email' => 'Odeslat email',
+ 'sms' => 'SMS',
+ 'send_sms' => 'Odeslat SMS',
+ 'pushover' => 'Pushover',
+ 'users' => 'Uživatelé',
+ 'delete_title' => 'Smazat server',
+ 'delete_message' => 'Opravdu si přejete smazat \'%1\'?',
+ 'deleted' => 'Server smazán.',
+ 'updated' => 'Server aktualizován.',
+ 'inserted' => 'Server přidán.',
+ 'latency' => 'Latence',
+ 'latency_max' => 'Latence (maximum)',
+ 'latency_min' => 'Latence (minimum)',
+ 'latency_avg' => 'Latence (průměr)',
+ 'uptime' => 'Uptime',
+ 'year' => 'Rok',
+ 'month' => 'Měsíc',
+ 'week' => 'Týden',
+ 'day' => 'Den',
+ 'hour' => 'Hodina',
+ 'warning_threshold' => 'Stropní hranice varování',
+ 'warning_threshold_description' => 'Počet neúspěšných pokusů před označením serveru jako offline.',
+ 'chart_last_week' => 'Minulý týden',
+ 'chart_history' => 'Historie',
+ // Charts date format according jqPlot date format http://www.jqplot.com/docs/files/plugins/jqplot-dateAxisRenderer-js.html
+ 'chart_day_format' => '%Y-%m-%d',
+ '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' => 'SMS upozornění jsou vypnuta.',
+ 'warning_notifications_disabled_email' => 'Emailová upozornění jsou vypnuta.',
+ 'warning_notifications_disabled_pushover' => 'Pushover upozornění jsou vypnuta.',
+ 'error_server_no_match' => 'Server nenalezen.',
+ 'error_server_label_bad_length' => 'Popisek musí obsahovat 1 až 255 znaků.',
+ 'error_server_ip_bad_length' => 'Doména/IP adresa musí obsahovat 1 ař 255 znaků.',
+ 'error_server_ip_bad_service' => 'IP adresa není platná.',
+ 'error_server_ip_bad_website' => 'URL webu není platná.',
+ 'error_server_type_invalid' => 'Zvolený typ serveru není platný',
+ 'error_server_warning_threshold_invalid' => 'Hranice varování musí být číslo větší než 0.',
+ ),
+ 'config' => array(
+ 'general' => 'Obecné',
+ 'language' => 'Jazyk',
+ 'show_update' => 'Kontrolovat aktualizace?',
+ 'email_status' => 'Allow sending email',
+ 'email_from_email' => 'Emailová adresa odesilatele',
+ 'email_from_name' => 'Jméno odesilatele',
+ 'email_smtp' => 'Zapnout SMTP',
+ 'email_smtp_host' => 'SMTP host',
+ 'email_smtp_port' => 'SMTP port',
+ 'email_smtp_username' => 'SMTP uživatelské jméno',
+ 'email_smtp_password' => 'SMTP heslo',
+ 'email_smtp_noauth' => 'Ponechte prázdné pro použití SMTP bez hesla',
+ 'sms_status' => 'Povolit odesílání textových zpráv',
+ 'sms_gateway' => 'Brána použitá pro odesílání zpráv',
+ 'sms_gateway_mosms' => 'Mosms',
+ 'sms_gateway_mollie' => 'Mollie',
+ 'sms_gateway_spryng' => 'Spryng',
+ 'sms_gateway_inetworx' => 'Inetworx',
+ 'sms_gateway_clickatell' => 'Clickatell',
+ 'sms_gateway_textmarketer' => 'Textmarketer',
+ 'sms_gateway_smsglobal' => 'SMSGlobal',
+ 'sms_gateway_smsit' => 'Smsit',
+ 'sms_gateway_username' => 'Uživatelské jméno brány',
+ 'sms_gateway_password' => 'Heslo brány',
+ 'sms_from' => 'Telefonní číslo odesilatele',
+ 'pushover_status' => 'Povolit zsílání Pushover zpráv',
+ 'pushover_description' => 'Pushover je služba umožňující jednoduše zasílat real-time upozornění. Více na webu Pushover',
+ 'pushover_clone_app' => 'Klikněte pro vytvoření Pushover aplikace',
+ 'pushover_api_token' => 'Pushover App API Token',
+ 'pushover_api_token_description' => 'Pře použitím Pushoveru se musíte registrovat a získat API Token.',
+ 'alert_type' => 'Zvolte kdy si přejete být upozorněni.',
+ 'alert_type_description' => 'Změna stavu: '.
+ 'Obdržíte upozornění při změně stavu, tedy:online -> offline nebo offline -> online.
'.
+ '
Offline: '.
+ 'Obdržíte upozornění, kdy server přejde poprvé do offline stavu. Například, pokud je cron nastaven na 15 minut a sledovaný server bude offline mezi 01:00 a 06:00.
'.
+ '
Vždy: '.
+ 'Obdržíte upozornění při každém spuštění kontroly, tedy i pokud bude server offline několik hodin.',
+ 'alert_type_status' => 'Změna stavu',
+ 'alert_type_offline' => 'Offline',
+ 'alert_type_always' => 'Vždy',
+ 'log_status' => 'Log',
+ 'log_status_description' => 'Pokud je Log nastaven na hodnotu TRUE, systém do něj zapíše veškerá provedená upozornění.',
+ 'log_email' => 'Logovat odeslané emaily',
+ 'log_sms' => 'Logovat odeslané textové zprávy',
+ 'log_pushover' => 'Logovat odeslané Pushover zprávy',
+ 'updated' => 'Nastavení bylo aktualizováno.',
+ 'tab_email' => 'Email',
+ 'tab_sms' => 'SMS',
+ 'tab_pushover' => 'Pushover',
+ 'settings_email' => 'Nastavení emailů',
+ 'settings_sms' => 'Nastavení textových zpráv',
+ 'settings_pushover' => 'Nastavení Pushover',
+ 'settings_notification' => 'Nastavení upozornění',
+ 'settings_log' => 'Nastavení logu',
+ 'auto_refresh' => 'Automaticky obnovit',
+ 'auto_refresh_servers' =>
+ 'Automaticky obnovit stránku Servery.
'.
+ ''.
+ 'Čas v sekundách, 0 pro vypnutí automatického obnovení.'.
+ '',
+ 'seconds' => 'sekund',
+ 'test' => 'Test',
+ 'test_email' => 'Email bude odeslán na adresu uvedenou v uživatelském profilu.',
+ 'test_sms' => 'SMS bude odeslána na telefonní číslo uvedené v uživatelském profilu.',
+ 'test_pushover' => 'Pushover upozornění bude odesláno uživateli/zařízení dle nastavení v uživatelském profilu.',
+ 'send' => 'Odeslat',
+ 'test_subject' => 'Test',
+ 'test_message' => 'Testovací zpráva',
+ 'email_sent' => 'Email odeslán',
+ 'email_error' => 'Chyba při odeslání emailu',
+ 'sms_sent' => 'Sms odeslána',
+ 'sms_error' => 'Chyba při odeslání SMS',
+ 'sms_error_nomobile' => 'Nebylo možné odeslat SMS: v uživatelském profilu nebylo nalezeno platné telefonní číslo.',
+ 'pushover_sent' => 'Pushover upozornění odesláno.',
+ 'pushover_error' => 'Nastala chyba při odesílání Pushover upozornění: %s',
+ 'pushover_error_noapp' => 'Nebylo možné odeslat testovací upozornění: v globálním nastavení nebyl nalezen žádný API token.',
+ 'pushover_error_nokey' => 'Nebylo možné odeslat testovací upozornění: ve vašem profilu není definován Pushover key.',
+ 'log_retention_period' => 'Rotace logu',
+ 'log_retention_period_description' => 'Počet dnů po které budou zachovány logy upozornění. Vložte 0 pro vypnutí autorotace.',
+ 'log_retention_days' => 'dnů',
+ ),
+ // for newlines in the email messages use
+ 'notifications' => array(
+ 'off_sms' => 'Server \'%LABEL%\' je offline: ip=%IP%, port=%PORT%. Chyba=%ERROR%',
+ 'off_email_subject' => 'DŮLEŽITÉ: Server \'%LABEL%\' je offline',
+ 'off_email_body' => "Nebylo možné spojit se se serverem:
Server: %LABEL%
IP: %IP%
Port: %PORT%
Chyba: %ERROR%
Datum: %DATE%",
+ 'off_pushover_title' => 'Server \'%LABEL%\'je offline',
+ 'off_pushover_message' => "Nebylo možné spojit se se serverem:
Server: %LABEL%
IP: %IP%
Port: %PORT%
Chyba: %ERROR%
Datum: %DATE%",
+ 'on_sms' => 'Server \'%LABEL%\' je online: ip=%IP%, port=%PORT%',
+ 'on_email_subject' => 'DŮLEŽITÉ: Server \'%LABEL%\' je online',
+ 'on_email_body' => "Server '%LABEL%' je opět online
Server: %LABEL%
IP: %IP%
Port: %PORT%
Datum: %DATE%",
+ 'on_pushover_title' => 'Server \'%LABEL%\' je online',
+ 'on_pushover_message' => 'Server \'%LABEL%\' je znovu online:
Server: %LABEL%
IP: %IP%
Port: %PORT%
Datum: %DATE%',
+ ),
+ 'login' => array(
+ 'welcome_usermenu' => 'Vítejte, %user_name%',
+ 'title_sign_in' => 'Prosím přihlašte se',
+ 'title_forgot' => 'Zapomenuté heslo?',
+ 'title_reset' => 'Obnova hesla',
+ 'submit' => 'Odeslat',
+ 'remember_me' => 'Zapamatovat údaje',
+ 'login' => 'Přihlásit',
+ 'logout' => 'Odhlásit',
+ 'username' => 'Uživatelské jméno',
+ 'password' => 'Heslo',
+ 'password_repeat' => 'Opište heslo',
+ 'password_forgot' => 'Zapomenuté heslo?',
+ 'password_reset' => 'Obnovit heslo',
+ 'password_reset_email_subject' => 'Obnovit heslo pro PHP Server Monitor',
+ 'password_reset_email_body' => 'Použijte následující odkaz pro obnovení hesla. Odkaz je platný jednu hodinu.
%link%',
+ 'error_user_incorrect' => 'Zadané uživatelské jméno nebylo nalezeno.',
+ 'error_login_incorrect' => 'Informace je neplatná.',
+ 'error_login_passwords_nomatch' => 'Zadaná hesla neodpovídají.',
+ 'error_reset_invalid_link' => 'Odkaz je neplatný.',
+ 'success_password_forgot' => 'Na vaši emailovou adresu byl zaslán email s informacemi pro obnovu hesla.',
+ 'success_password_reset' => 'Vaše heslo bylo úspěšně obnoveno. Prosím přihlašte se.',
+ ),
+ 'error' => array(
+ '401_unauthorized' => 'Nedostatečné oprávnění',
+ '401_unauthorized_description' => 'Nemáte oprávnění zobrazit tuto stránku.',
+ ),
+);
From c54a48d668a67e28fd8d95755bf1eb5094e01de3 Mon Sep 17 00:00:00 2001
From: Pepijn Over
Date: Mon, 8 Sep 2014 09:55:12 +0200
Subject: [PATCH 03/23] adding issue #130 czech translation to changelog
---
CHANGELOG.rst | 7 +++++++
docs/credits.rst | 8 ++++++--
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index b270fb28..3ff3ff42 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -1,6 +1,13 @@
Changelog
=========
+
+not yet released
+----------------
+
+* #130: Added Czech translation.
+
+
v3.1.0 (released August 7, 2014)
--------------------------------
diff --git a/docs/credits.rst b/docs/credits.rst
index 850b44ed..57562f31 100644
--- a/docs/credits.rst
+++ b/docs/credits.rst
@@ -67,13 +67,17 @@ Translators
The following people have contributed to the translation of PHP Server Monitor:
+* Bulgarian
+
+ * Plamen Vasilev - https://github.com/PVasileff
+
* Chinese
* manhere - https://github.com/manhere
-* Bulgarian
+* Czech
- * Plamen Vasilev - https://github.com/PVasileff
+ * Simon Berka - https://github.com/berkas1
* Danish
From ec9c07a3d7703e42e05a57196b7286be120903af Mon Sep 17 00:00:00 2001
From: Pepijn Over
Date: Mon, 8 Sep 2014 09:56:19 +0200
Subject: [PATCH 04/23] adding issue #124 to changelog
---
CHANGELOG.rst | 1 +
1 file changed, 1 insertion(+)
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 3ff3ff42..c2207222 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -6,6 +6,7 @@ not yet released
----------------
* #130: Added Czech translation.
+* #124: Updated Bulgarian translation.
v3.1.0 (released August 7, 2014)
From 7585eb23e0e7ecb8ac3f20af8f9b284290b9c344 Mon Sep 17 00:00:00 2001
From: Davy Rolink
Date: Fri, 12 Sep 2014 01:08:04 +0200
Subject: [PATCH 05/23] allow urls to be generated from cli, with the help of
argument --uri=
---
cron/status.cron.php | 2 ++
src/includes/functions.inc.php | 26 +++++++++++++++++++
.../Server/Updater/StatusNotifier.class.php | 5 ++--
3 files changed, 30 insertions(+), 3 deletions(-)
diff --git a/cron/status.cron.php b/cron/status.cron.php
index 9b6ce773..8b08e89f 100644
--- a/cron/status.cron.php
+++ b/cron/status.cron.php
@@ -32,6 +32,8 @@ if(!psm_is_cli()) {
die('This script can only be run from the command line.');
}
+psm_set_cli_uri();
+
// prevent cron from running twice at the same time
// however if the cron has been running for X mins, we'll assume it died and run anyway
// if you want to change PSM_CRON_TIMEOUT, have a look in src/includes/psmconfig.inc.php.
diff --git a/src/includes/functions.inc.php b/src/includes/functions.inc.php
index 829de923..e888a940 100644
--- a/src/includes/functions.inc.php
+++ b/src/includes/functions.inc.php
@@ -548,6 +548,32 @@ function psm_is_cli() {
return (!isset($_SERVER['SERVER_SOFTWARE']) || php_sapi_name() == 'cli');
}
+/**
+ * Set _server vars from the cli argument --uri=
+ * Example: php cron/status.cron.php --uri="http://www.phpservermonitor.org/"
+ */
+function psm_set_cli_uri() {
+ foreach ($_SERVER['argv'] as $argv) {
+ if (0 === strpos($argv, '--uri=')) {
+ $uriArray = parse_url(substr($argv, 6));
+ if (!empty($uriArray['scheme'])) {
+ $_SERVER['REQUEST_SCHEME'] = $uriArray['scheme'];
+ $_SERVER['SERVER_PORT'] = ($uriArray['scheme'] == 'https') ? 443 : 80;
+ }
+ if (!empty($uriArray['host'])) {
+ $_SERVER['HTTP_HOST'] = $uriArray['host'];
+ }
+ if (!empty($uriArray['port'])) {
+ $_SERVER['SERVER_PORT'] = $uriArray['port'];
+ }
+ if (!empty($uriArray['path'])) {
+ $_SERVER['SCRIPT_NAME'] = $uriArray['path'];
+ }
+ break;
+ }
+ }
+}
+
###############################################
#
# Debug functions
diff --git a/src/psm/Util/Server/Updater/StatusNotifier.class.php b/src/psm/Util/Server/Updater/StatusNotifier.class.php
index 028889f0..154b4c3e 100644
--- a/src/psm/Util/Server/Updater/StatusNotifier.class.php
+++ b/src/psm/Util/Server/Updater/StatusNotifier.class.php
@@ -245,9 +245,8 @@ class StatusNotifier {
$pushover->setTitle(psm_parse_msg($this->status_new, 'pushover_title', $this->server));
$pushover->setMessage(str_replace('
', "\n", $message));
- // @todo fix url when script is executed via CLI
-// $pushover->setUrl($url);
-// $pushover->setUrlTitle(psm_get_lang('system', 'title'));
+ $pushover->setUrl(psm_build_url());
+ $pushover->setUrlTitle(psm_get_lang('system', 'title'));
foreach($users as $user) {
if(trim($user['pushover_key']) == '') {
From ca9f52939c5cd9ac41a99d6481829997b1ff073c Mon Sep 17 00:00:00 2001
From: Jean Pierre Kolb
Date: Thu, 18 Sep 2014 16:19:53 +0200
Subject: [PATCH 06/23] Full German translation
---
src/lang/de_DE.lang.php | 594 ++++++++++++++++++++--------------------
1 file changed, 297 insertions(+), 297 deletions(-)
diff --git a/src/lang/de_DE.lang.php b/src/lang/de_DE.lang.php
index 38bc37c9..0d5ba6b3 100644
--- a/src/lang/de_DE.lang.php
+++ b/src/lang/de_DE.lang.php
@@ -1,297 +1,297 @@
-.
- *
- * @package phpservermon
- * @author Brunbaur Herbert
- * @copyright Copyright (c) 2008-2014 Pepijn Over
- * @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
- * @version Release: @package_version@
- * @link http://www.phpservermonitor.org/
- **/
-
-$sm_lang = array(
- 'name' => 'Deutsch - German',
- 'locale' => array('de_DE.UTF-8', 'de_DE', 'german'),
- 'system' => array(
- 'title' => 'Server Monitor',
- 'install' => 'Install',
- 'action' => 'Aktion',
- 'save' => 'Speichern',
- 'edit' => 'Bearbeiten',
- 'delete' => 'Löschen',
- 'date' => 'Datum',
- 'message' => 'Meldung',
- 'yes' => 'Ja',
- 'no' => 'Nein',
- 'insert' => 'Einfügen',
- 'add_new' => 'Neuen Eintrag erstellen',
- 'update_available' => 'Ein neues Update ({version}) ist verfügbar auf http://www.phpservermonitor.org.',
- 'back_to_top' => 'Back to top',
- 'go_back' => 'Go back',
- 'ok' => 'OK',
- 'cancel' => 'Cancel',
- // date/time format according the strftime php function format parameter http://php.net/manual/function.strftime.php
- 'short_day_format' => '%B %e',
- 'long_day_format' => '%B %e, %Y',
- 'yesterday_format' => 'Gestern um %k:%M',
- 'other_day_format' => '%A um %k:%M',
- 'never' => 'Never',
- 'hours_ago' => '%d hours ago',
- 'an_hour_ago' => 'about an hour ago',
- 'minutes_ago' => '%d minutes ago',
- 'a_minute_ago' => 'about a minute ago',
- 'seconds_ago' => '%d seconds ago',
- 'a_second_ago' => 'a second ago',
- ),
- 'menu' => array(
- 'config' => 'Einstellungen',
- 'server' => 'Server',
- 'server_log' => 'Log',
- 'server_status' => 'Status',
- 'server_update' => 'Updates',
- 'user' => 'Benutzer',
- 'help' => 'Hilfe',
- ),
- 'users' => array(
- 'user' => 'Benutzer',
- 'name' => 'Name',
- 'user_name' => 'Username',
- 'password' => 'Password',
- 'password_repeat' => 'Password repeat',
- 'password_leave_blank' => 'Leave blank to keep unchanged',
- 'level' => 'Level',
- 'level_10' => 'Administrator',
- 'level_20' => 'User',
- 'level_description' => 'Administrators have full access: they can manage servers, users and edit the global configuration.
Users can only view and run the updater for the servers that have been assigned to them.',
- 'mobile' => 'Mobil',
- 'email' => 'Email',
- 'pushover' => 'Pushover',
- 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
- 'pushover_key' => 'Pushover Key',
- 'pushover_device' => 'Pushover Device',
- 'pushover_device_description' => 'Device name to send the message to. Leave empty to send it to all devices.',
- 'delete_title' => 'Delete User',
- 'delete_message' => 'Are you sure you want to delete user \'%1\'?',
- 'deleted' => 'User deleted.',
- 'updated' => 'Benutzer bearbeitet.',
- 'inserted' => 'Benutzer eingetragen.',
- 'profile' => 'Profile',
- 'profile_updated' => 'Your profile has been updated.',
- 'error_user_name_bad_length' => 'Usernames must be between 2 and 64 characters.',
- 'error_user_name_invalid' => 'It may only contain alphabetic characters (a-z, A-Z), digits (0-9) and underscores (_).',
- 'error_user_name_exists' => 'The given username already exists in the database.',
- 'error_user_email_bad_length' => 'Email addresses must be between 5 and 255 characters.',
- 'error_user_email_invalid' => 'The email address is invalid.',
- 'error_user_level_invalid' => 'The given user level is invalid.',
- 'error_user_no_match' => 'The user could not be found in the database.',
- 'error_user_password_invalid' => 'The entered password is invalid.',
- 'error_user_password_no_match' => 'The entered passwords do not match.',
- ),
- 'log' => array(
- 'title' => 'Log Einträge',
- 'type' => 'Type',
- 'status' => 'Status',
- 'email' => 'Email',
- 'sms' => 'SMS',
- 'pushover' => 'Pushover',
- 'no_logs' => 'No logs',
- ),
- 'servers' => array(
- 'server' => 'Server',
- 'status' => 'Status',
- 'label' => 'Beschriftung',
- 'domain' => 'Domain/IP',
- 'timeout' => 'Timeout',
- 'timeout_description' => 'Number of seconds to wait for the server to respond.',
- 'port' => 'Port',
- 'type' => 'Type',
- 'type_website' => 'Website',
- 'type_service' => 'Service',
- 'pattern' => 'Search string/pattern',
- 'pattern_description' => 'If this pattern is not found on the website, the server will be marked offline. Regular expressions are allowed.',
- 'last_check' => 'Letzter Check',
- 'last_online' => 'Letztes mal Online',
- 'monitoring' => 'Monitoring',
- 'no_monitoring' => 'No monitoring',
- 'email' => 'Email',
- 'send_email' => 'Email',
- 'sms' => 'SMS',
- 'send_sms' => 'SMS',
- 'pushover' => 'Pushover',
- 'users' => 'Users',
- 'delete_title' => 'Delete Server',
- 'delete_message' => 'Are you sure you want to delete server \'%1\'?',
- 'deleted' => 'Server deleted.',
- 'updated' => 'Server aktualisiert.',
- 'inserted' => 'Server eingetragen.',
- 'latency' => 'Antwortzeit',
- 'latency_max' => 'Latency (maximum)',
- 'latency_min' => 'Latency (minimum)',
- 'latency_avg' => 'Latency (average)',
- 'uptime' => 'Uptime',
- 'year' => 'Year',
- 'month' => 'Month',
- 'week' => 'Week',
- 'day' => 'Day',
- 'hour' => 'Hour',
- 'warning_threshold' => 'Warning threshold',
- 'warning_threshold_description' => 'Number of failed checks required before it is marked offline.',
- 'chart_last_week' => 'Last week',
- 'chart_history' => 'History',
- // Charts date format according jqPlot date format http://www.jqplot.com/docs/files/plugins/jqplot-dateAxisRenderer-js.html
- 'chart_day_format' => '%d.%m.%Y',
- 'chart_long_date_format' => '%d.%m.%Y %H:%M:%S',
- 'chart_short_date_format' => '%d.%m %H:%M',
- 'chart_short_time_format' => '%H:%M',
- 'warning_notifications_disabled_sms' => 'SMS notifications are disabled.',
- 'warning_notifications_disabled_email' => 'Email notifications are disabled.',
- 'warning_notifications_disabled_pushover' => 'Pushover notifications are disabled.',
- 'error_server_no_match' => 'Server not found.',
- 'error_server_label_bad_length' => 'The label must be between 1 and 255 characters.',
- 'error_server_ip_bad_length' => 'The domain / IP must be between 1 and 255 characters.',
- 'error_server_ip_bad_service' => 'The IP address is not valid.',
- 'error_server_ip_bad_website' => 'The website URL is not valid.',
- 'error_server_type_invalid' => 'The selected server type is invalid.',
- 'error_server_warning_threshold_invalid' => 'The warning threshold must be a valid integer greater than 0.',
- ),
- 'config' => array(
- 'general' => 'General',
- 'language' => 'Sprache',
- 'show_update' => 'Updats wöchentlich prüfen?',
- 'email_status' => 'Email senden erlauben?',
- 'email_from_email' => 'Email from address',
- 'email_from_name' => 'Email from name',
- 'email_smtp' => 'Enable SMTP',
- 'email_smtp_host' => 'SMTP host',
- 'email_smtp_port' => 'SMTP port',
- 'email_smtp_username' => 'SMTP username',
- 'email_smtp_password' => 'SMTP password',
- 'email_smtp_noauth' => 'Leave blank for no authentication',
- 'sms_status' => 'SMS Nachricht senden erlauben?',
- 'sms_gateway' => 'SMS Gateway',
- 'sms_gateway_mosms' => 'Mosms',
- 'sms_gateway_mollie' => 'Mollie',
- 'sms_gateway_spryng' => 'Spryng',
- 'sms_gateway_inetworx' => 'Inetworx',
- 'sms_gateway_clickatell' => 'Clickatell',
- 'sms_gateway_textmarketer' => 'Textmarketer',
- 'sms_gateway_smsglobal' => 'SMSGlobal',
- 'sms_gateway_smsit' => 'Smsit',
- 'sms_gateway_username' => 'Gateway Benutzername',
- 'sms_gateway_password' => 'Gateway Passwort',
- 'sms_from' => 'SMS Sendernummer',
- 'pushover_status' => 'Allow sending Pushover messages',
- 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
- 'pushover_clone_app' => 'Click here to create your Pushover app',
- 'pushover_api_token' => 'Pushover App API Token',
- 'pushover_api_token_description' => 'Before you can use Pushover, you need to register an App at their website and enter the App API Token here.',
- 'alert_type' => 'Wann möchten Sie benachrichtig werden?',
- 'alert_type_description' => 'Status geändert: '.
- '... wenn sich der Status ändert
'.
- 'z.B. online -> offline oder offline -> online.
'.
- '
Offline: '.
- 'Sie bekommen eine Benachrichtigung, wenn ein Server Offline ist.
'.
- 'Es wird nur eine Mitteilung versendet.
'.
- '
Immer: '.
- 'Sie werden jedesmal wenn der CronJob oder das Script ausgeführt wird benachrichtigt auch wenn der Dienst mehreres Stunden offline ist',
- 'alert_type_status' => 'Status geändert',
- 'alert_type_offline' => 'Offline',
- 'alert_type_always' => 'Immer',
- 'log_status' => 'Log Status',
- 'log_status_description' => 'Ist der Log Status auf TRUE (ein Hacken) gesetzt, wird jeder Status protokolliert.',
- 'log_email' => 'Email Log per Script senden?',
- 'log_sms' => 'SMS Log per Script senden?',
- 'log_pushover' => 'Pushover Log per Script senden?',
- 'updated' => 'Die Einstellungen wurden gespeichert.',
- 'tab_email' => 'Email',
- 'tab_sms' => 'SMS',
- 'tab_pushover' => 'Pushover',
- 'settings_email' => 'Email',
- 'settings_sms' => 'SMS Nachricht',
- 'settings_pushover' => 'Pushover settings',
- 'settings_notification' => 'Benachrichtigung',
- 'settings_log' => 'Log',
- 'auto_refresh' => 'Auto-refresh',
- 'auto_refresh_servers' =>
- 'Auto-refresh servers page
'.
- ''.
- 'Time in seconds, if 0 the page won\'t refresh.'.
- '',
- 'seconds' => 'seconds',
- 'test' => 'Test',
- 'test_email' => 'An email will be sent to the address specified in your user profile.',
- 'test_sms' => 'An SMS will be sent to the phone number specified in your user profile.',
- 'test_pushover' => 'A Pushover notification will be sent to the user key/device specified in your user profile.',
- 'send' => 'Send',
- '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' => 'Unable to send test SMS: no valid phone number found in your profile.',
- 'pushover_sent' => 'Pushover notification sent',
- 'pushover_error' => 'An error has occurred while sending the Pushover notification: %s',
- 'pushover_error_noapp' => 'Unable to send test notification: no Pushover App API token found in the global configuration.',
- 'pushover_error_nokey' => 'Unable to send test notification: no Pushover key found in your profile.',
- 'log_retention_period' => 'Log retention period',
- 'log_retention_period_description' => 'Number of days to keep logs of notifications and archives of server uptime. Enter 0 to disable log cleanup.',
- 'log_retention_days' => 'days',
- ),
- // for newlines in the email messages use
- 'notifications' => array(
- 'off_sms' => 'Server \'%LABEL%\' ist Offline: ip=%IP%, port=%PORT%. Fehler=%ERROR%',
- 'off_email_subject' => 'Wichtig: Server \'%LABEL%\' ist Offline',
- 'off_email_body' => "Kann keine Verbindung zum Server aufbauen:
Server: %LABEL%
IP: %IP%
Port: %PORT%
Fehler: %ERROR%
Datum: %DATE%",
- 'off_pushover_title' => 'Server \'%LABEL%\' ist Offline',
- 'off_pushover_message' => "Kann keine Verbindung zum Server aufbauen:
Server: %LABEL%
IP: %IP%
Port: %PORT%
Fehler: %ERROR%
Datum: %DATE%",
- 'on_sms' => 'Server \'%LABEL%\' ist wieder Online: ip=%IP%, port=%PORT%',
- 'on_email_subject' => 'Wichtig: Server \'%LABEL%\' ist wieder Online',
- 'on_email_body' => "Server '%LABEL%' läuft wieder:
Server: %LABEL%
IP: %IP%
Port: %PORT%
Datum: %DATE%",
- 'on_pushover_title' => 'Server \'%LABEL%\' ist wieder Online',
- 'on_pushover_message' => "Server '%LABEL%' läuft wieder:
Server: %LABEL%
IP: %IP%
Port: %PORT%
Datum: %DATE%",
- ),
- 'login' => array(
- 'welcome_usermenu' => 'Welcome, %user_name%',
- 'title_sign_in' => 'Please sign in',
- 'title_forgot' => 'Forgot your password?',
- 'title_reset' => 'Reset your password',
- 'submit' => 'Submit',
- 'remember_me' => 'Remember me',
- 'login' => 'Login',
- 'logout' => 'Logout',
- 'username' => 'Username',
- 'password' => 'Password',
- 'password_repeat' => 'Repeat password',
- 'password_forgot' => 'Forgot password?',
- 'password_reset' => 'Reset password',
- 'password_reset_email_subject' => 'Reset your password for PHP Server Monitor',
- 'password_reset_email_body' => 'Please use the following link to reset your password. Please note it expires in 1 hour.
%link%',
- 'error_user_incorrect' => 'The provided username could not be found.',
- 'error_login_incorrect' => 'The information is incorrect.',
- 'error_login_passwords_nomatch' => 'The provided passwords do not match.',
- 'error_reset_invalid_link' => 'The reset link you provided is invalid.',
- 'success_password_forgot' => 'An email has been sent to you with information how to reset your password.',
- 'success_password_reset' => 'Your password has been reset successfully. Please login.',
- ),
- 'error' => array(
- '401_unauthorized' => 'Unauthorized',
- '401_unauthorized_description' => 'You do not have the privileges to view this page.',
- ),
-);
+.
+ *
+ * @package phpservermon
+ * @author Jean Pierre Kolb
+ * @copyright Copyright (c) 2008-2014 Pepijn Over
+ * @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
+ * @version Release: @package_version@
+ * @link http://www.phpservermonitor.org/
+ **/
+
+$sm_lang = array(
+ 'name' => 'Deutsch - German',
+ 'locale' => array('de_DE.UTF-8', 'de_DE', 'german'),
+ 'system' => array(
+ 'title' => 'Server Monitor',
+ 'install' => 'Installation',
+ 'action' => 'Aktion',
+ 'save' => 'Speichern',
+ 'edit' => 'Bearbeiten',
+ 'delete' => 'Löschen',
+ 'date' => 'Datum',
+ 'message' => 'Meldung',
+ 'yes' => 'Ja',
+ 'no' => 'Nein',
+ 'insert' => 'Einfügen',
+ 'add_new' => 'Neuen Eintrag erstellen',
+ 'update_available' => 'Eine Aktualisierung ({version}) ist verfügbar unter http://www.phpservermonitor.org.',
+ 'back_to_top' => 'nach oben',
+ 'go_back' => 'Zurück',
+ 'ok' => 'OK',
+ 'cancel' => 'Abbrechen',
+ // date/time format according the strftime php function format parameter http://php.net/manual/function.strftime.php
+ 'short_day_format' => '%B %e',
+ 'long_day_format' => '%B %e, %Y',
+ 'yesterday_format' => 'Gestern um %k:%M Uhr',
+ 'other_day_format' => '%A um %k:%M Uhr',
+ 'never' => 'Never',
+ 'hours_ago' => 'vor %d Stunden',
+ 'an_hour_ago' => 'vor über einer Stunde',
+ 'minutes_ago' => 'vor %d Minuten',
+ 'a_minute_ago' => 'vor über einer Minute',
+ 'seconds_ago' => 'vor %d Sekunden',
+ 'a_second_ago' => 'vor über einer Sekunde',
+ ),
+ 'menu' => array(
+ 'config' => 'Einstellungen',
+ 'server' => 'Server',
+ 'server_log' => 'Protokoll',
+ 'server_status' => 'Status',
+ 'server_update' => 'Update',
+ 'user' => 'Benutzer',
+ 'help' => 'Hilfe',
+ ),
+ 'users' => array(
+ 'user' => 'Benutzer',
+ 'name' => 'Name',
+ 'user_name' => 'Benutzername',
+ 'password' => 'Passwort',
+ 'password_repeat' => 'Passwort wiederholen',
+ 'password_leave_blank' => 'Passwort ändern...',
+ 'level' => 'Berechtigungsstufe',
+ 'level_10' => 'Administrator',
+ 'level_20' => 'Benutzer',
+ 'level_description' => 'Administratoren haben vollen Zugriff — sie können Webseiten, Benutzer und globale Einstellungen verwalten.
Benutzer können nur (für ihnen zugeordnete Webseiten) Analysedaten einsehen und deren Aktualisierung veranlassen.',
+ 'mobile' => 'Mobil',
+ 'email' => 'E-Mail',
+ 'pushover' => 'Pushover',
+ 'pushover_description' => 'Pushover ist ein Dienst, der es stark vereinfacht, Statusbenachrichtigungen in Echtzeit zu erhalten. Besuchen Sie pushover.net für weitere Informationen.',
+ 'pushover_key' => 'Pushover Key/Schlüssel',
+ 'pushover_device' => 'Pushover Gerät',
+ 'pushover_device_description' => 'Name des Gerätes, an das die Nachricht gesendet werden soll. Leer lassen, um die Nachricht an alle registrierten Geräte zu senden.',
+ 'delete_title' => 'Benutzer löschen',
+ 'delete_message' => 'Sind Sie sicher, dass Sie den Benutzer \'%1\' löschen wollen?',
+ 'deleted' => 'Benutzer gelöscht.',
+ 'updated' => 'Benutzer bearbeitet.',
+ 'inserted' => 'Benutzer hinzugefügt.',
+ 'profile' => 'Profileinstellungen',
+ 'profile_updated' => 'Ihr Profil wurde aktualisiert.',
+ 'error_user_name_bad_length' => 'Benutzernamen müssen zwischen 2 und 64 Zeichen lang sein.',
+ 'error_user_name_invalid' => 'Der Benutzername darf nur alphanumerische Zeichen (a-z, A-Z), Zahlen (0-9) und Unterstriche (_) enthalten.',
+ 'error_user_name_exists' => 'Der gewählte Benutzername existiert bereits in der Datenbank.',
+ 'error_user_email_bad_length' => 'E-Mail-Adressen müssen zwischen 5 und 255 Zeichen lang sein.',
+ 'error_user_email_invalid' => 'Die E-Mail-Adresse ist ungültig.',
+ 'error_user_level_invalid' => 'Die gewählte Berechtigungsstufe ist ungültig.',
+ 'error_user_no_match' => 'Der Benutzer konnte in der Datenbank nicht gefunden werden.',
+ 'error_user_password_invalid' => 'Das eingegebene Passwort ist nicht korrekt.',
+ 'error_user_password_no_match' => 'Die eingegebenen Passwörter stimmen nicht überein.',
+ ),
+ 'log' => array(
+ 'title' => 'Protokoll',
+ 'type' => 'Typ',
+ 'status' => 'Status',
+ 'email' => 'E-Mail',
+ 'sms' => 'SMS',
+ 'pushover' => 'Pushover',
+ 'no_logs' => 'Keine Logs vorhanden.',
+ ),
+ 'servers' => array(
+ 'server' => 'Server',
+ 'status' => 'Status',
+ 'label' => 'Beschriftung',
+ 'domain' => 'Domain/IP',
+ 'timeout' => 'Timeout',
+ 'timeout_description' => 'Anzahl der Sekunden, die auf eine Antwort des Servers gewartet werden soll.',
+ 'port' => 'Port',
+ 'type' => 'Typ',
+ 'type_website' => 'Webseite',
+ 'type_service' => 'Service',
+ 'pattern' => 'Suchstring/-muster',
+ 'pattern_description' => 'Wenn das gesuchte Muster nicht in der Webseite ist, wird die Seite als offline markiert. Reguläre Ausdrücke sind erlaubt.',
+ 'last_check' => 'Letzter Check',
+ 'last_online' => 'Zuletzt online',
+ 'monitoring' => 'Monitoring',
+ 'no_monitoring' => 'Monitoring inaktiv',
+ 'email' => 'E-Mail',
+ 'send_email' => 'E-Mail versenden',
+ 'sms' => 'SMS',
+ 'send_sms' => 'SMS versenden',
+ 'pushover' => 'Pushover',
+ 'users' => 'Benutzer',
+ 'delete_title' => 'Server löschen',
+ 'delete_message' => 'Sind Sie sicher, dass Sie den Server \'%1\' löschen wollen?',
+ 'deleted' => 'Server gelöscht.',
+ 'updated' => 'Server aktualisiert.',
+ 'inserted' => 'Server hinzugefügt.',
+ 'latency' => 'Antwortzeit',
+ 'latency_max' => 'Antwortzeit (Maximum)',
+ 'latency_min' => 'Antwortzeit (Minimum)',
+ 'latency_avg' => 'Antwortzeit (im Durchschnitt)',
+ 'uptime' => 'Uptime',
+ 'year' => 'Jahr',
+ 'month' => 'Monat',
+ 'week' => 'Woche',
+ 'day' => 'Tag',
+ 'hour' => 'Stunde',
+ 'warning_threshold' => 'Warnschwelle',
+ 'warning_threshold_description' => 'Anzahl der fehlgeschlagenen Überprüfungen, bevor der Status als offline markiert wird.',
+ 'chart_last_week' => 'Letzte Woche',
+ 'chart_history' => 'Historie',
+ // Charts date format according jqPlot date format http://www.jqplot.com/docs/files/plugins/jqplot-dateAxisRenderer-js.html
+ 'chart_day_format' => '%d.%m.%Y',
+ 'chart_long_date_format' => '%d.%m.%Y %H:%M:%S Uhr',
+ 'chart_short_date_format' => '%d.%m %H:%M Uhr',
+ 'chart_short_time_format' => '%H:%M Uhr',
+ 'warning_notifications_disabled_sms' => 'SMS-Benachrichtigungen sind deaktiviert.',
+ 'warning_notifications_disabled_email' => 'E-Mail-Benachrichtigungen sind deaktiviert.',
+ 'warning_notifications_disabled_pushover' => 'Pushover-Benachrichtigungen sind deaktiviert.',
+ 'error_server_no_match' => 'Server nicht gefunden.',
+ 'error_server_label_bad_length' => 'Das Label muss zwischen 1 und 255 Zeichen lang sein.',
+ 'error_server_ip_bad_length' => 'Die Domain/IP muss zwischen 1 und 255 Zeichen lang sein.',
+ 'error_server_ip_bad_service' => 'Die eingegebene IP-Adresse ist ungültig.',
+ 'error_server_ip_bad_website' => 'Die eingegebene Webseiten-URL ist ungültig.',
+ 'error_server_type_invalid' => 'Der gewählte Server-Typ ist ungültig.',
+ 'error_server_warning_threshold_invalid' => 'Die Warnschwelle muss eine gültige ganze Zahl größer als 0 sein.',
+ ),
+ 'config' => array(
+ 'general' => 'Allgemein',
+ 'language' => 'Sprache',
+ 'show_update' => 'Wöchentlich auf Aktualisierungen prüfen?',
+ 'email_status' => 'E-Mail-Versand erlauben?',
+ 'email_from_email' => 'Absenderadresse',
+ 'email_from_name' => 'Name des Absenders',
+ 'email_smtp' => 'SMTP-Versand aktivieren',
+ 'email_smtp_host' => 'SMTP Server/Host',
+ 'email_smtp_port' => 'SMTP Port',
+ 'email_smtp_username' => 'SMTP Benutzername',
+ 'email_smtp_password' => 'SMTP Passwort',
+ 'email_smtp_noauth' => 'Feld leer lassen, bei fehlender Authentifizierung',
+ 'sms_status' => 'SMS-Nachrichtenversand erlauben?',
+ 'sms_gateway' => 'SMS Gateway',
+ 'sms_gateway_mosms' => 'Mosms',
+ 'sms_gateway_mollie' => 'Mollie',
+ 'sms_gateway_spryng' => 'Spryng',
+ 'sms_gateway_inetworx' => 'Inetworx',
+ 'sms_gateway_clickatell' => 'Clickatell',
+ 'sms_gateway_textmarketer' => 'Textmarketer',
+ 'sms_gateway_smsglobal' => 'SMSGlobal',
+ 'sms_gateway_smsit' => 'Smsit',
+ 'sms_gateway_username' => 'Gateway Benutzername',
+ 'sms_gateway_password' => 'Gateway Passwort',
+ 'sms_from' => 'SMS-Sendernummer',
+ 'pushover_status' => 'Ermögliche das Senden von Pushover-Nachrichten',
+ 'pushover_description' => 'Pushover ist ein Dienst, der es stark vereinfacht, Statusbenachrichtigungen in Echtzeit zu erhalten. Besuchen Sie pushover.net für weitere Informationen.',
+ 'pushover_clone_app' => 'Klicken Sie hier, um Ihre Pushover-Anwendung zu erstellen',
+ 'pushover_api_token' => 'Pushover-Anwendungs-API-Token',
+ 'pushover_api_token_description' => 'Bevor Sie Pushover verwenden können, müssen Sie Ihre Anwendung hier registrieren und Ihren Anwendungs-API-Token hier eingeben.',
+ 'alert_type' => 'Wann möchten Sie benachrichtigt werden?',
+ 'alert_type_description' => 'Status geändert: '.
+ '... wenn sich der Status ändert
'.
+ 'z. B. online -> offline oder offline -> online.
'.
+ '
Offline: '.
+ 'Sie bekommen eine Benachrichtigung, wenn ein Server offline ist.
'.
+ 'Es wird nur eine Mitteilung versendet.
'.
+ '
Immer: '.
+ 'Sie erhalten jedes Mal eine Benachrichtigung, sobald der CronJob oder das Skript ausgeführt werden, auch wenn der Dienst mehrere Stunden offline sein sollte.',
+ 'alert_type_status' => 'Status geändert',
+ 'alert_type_offline' => 'Offline',
+ 'alert_type_always' => 'Immer',
+ 'log_status' => 'Protokollierung aktivieren?',
+ 'log_status_description' => 'Ist die Protokollierung aktiviert (d.h. ist ein Haken gesetzt), wird jeder Status und jede Meldung vom System protokolliert.',
+ 'log_email' => 'E-Mail-Versand protokollieren?',
+ 'log_sms' => 'SMS-Versand protokollieren?',
+ 'log_pushover' => 'Pushover-Versand protokollieren?',
+ 'updated' => 'Die Einstellungen wurden gespeichert.',
+ 'tab_email' => 'E-Mail',
+ 'tab_sms' => 'SMS',
+ 'tab_pushover' => 'Pushover',
+ 'settings_email' => 'E-Mail-Einstellungen',
+ 'settings_sms' => 'SMS-Einstellungen',
+ 'settings_pushover' => 'Pushover-Einstellungen',
+ 'settings_notification' => 'Benachrichtigungseinstellungen',
+ 'settings_log' => 'Protokollierungseinstellungen',
+ 'auto_refresh' => 'Automatische Aktualisierung',
+ 'auto_refresh_servers' =>
+ 'Automatische Aktualisierung der Server-Übersichtsseite
'.
+ ''.
+ 'Zeit in Sekunden - die Ziffer \'0\' deaktiviert die automatische Aktualisierung.'.
+ '',
+ 'seconds' => 'Sekunden',
+ 'test' => 'Test',
+ 'test_email' => 'Eine E-Mail wird an die E-Mail-Adresse gesendet, die in Ihrem Profil hinterlegt ist.',
+ 'test_sms' => 'Eine SMS wird an die Telefonnummer gesendet, die in Ihrem Profil hinterlegt ist.',
+ 'test_pushover' => 'Eine Pushover-Benachrichtigung wird an den Schlüssel/das Gerät gesendet, welche(s) in Ihrem Profil hinterlegt ist.',
+ 'send' => 'Senden',
+ 'test_subject' => 'Test',
+ 'test_message' => 'Testnachricht',
+ 'email_sent' => 'E-Mail gesendet.',
+ 'email_error' => 'Beim Versand der E-Mail trat ein Fehler auf.',
+ 'sms_sent' => 'SMS-Nachricht gesendet.',
+ 'sms_error' => 'Beim Versand der SMS-Nachricht trat ein Fehler auf.',
+ 'sms_error_nomobile' => 'Versand der SMS-Nachricht nicht möglich: Es wurde keine gültige Telefonnummer in Ihrem Profil hinterlegt.',
+ 'pushover_sent' => 'Pushover-Benachrichtigung versendet',
+ 'pushover_error' => 'Beim Versand der Pushover-Benachrichtigung trat ein Fehler auf: %s',
+ 'pushover_error_noapp' => 'Es konnte keine Testbenachrichtigung versendet werden: Kein Pushover-Anwendungs-API-Token in den allgemeinen Einstellungen hinterlegt.',
+ 'pushover_error_nokey' => 'Es konnte keine Testbenachrichtigung versendet werden: Es wurde kein Pushover Key/Schlüssel in Ihrem Profil hinterlegt.',
+ 'log_retention_period' => 'Protokollierungszeitraum',
+ 'log_retention_period_description' => 'Anzahl in Tagen bis zur automatischen Bereinigung/Löschung sämtlicher Protokollierungsdaten im System. Geben Sie die Ziffer \'0\' ein, um die automatische Bereinigung/Löschung zu deaktivieren.',
+ 'log_retention_days' => 'Tage',
+ ),
+ // for newlines in the email messages use
+ 'notifications' => array(
+ 'off_sms' => 'Dienst/Webseite \'%LABEL%\' ist offline: ip=%IP%, port=%PORT%. Fehler=%ERROR%',
+ 'off_email_subject' => 'Warnung: Dienst/Webseite \'%LABEL%\' ist offline.',
+ 'off_email_body' => "Kann keine funktionierende Verbindung zum Dienst bzw. der Webseite aufbauen:
Dienst/Webseite: %LABEL%
IP: %IP%
Port: %PORT%
Fehler: %ERROR%
Datum: %DATE% Uhr",
+ 'off_pushover_title' => 'Dienst/Webseite \'%LABEL%\' ist offline.',
+ 'off_pushover_message' => "Kann keine funktionierende Verbindung zum Dienst bzw. der Webseite aufbauen:
Dienst/Webseite: %LABEL%
IP: %IP%
Port: %PORT%
Fehler: %ERROR%
Datum: %DATE% Uhr",
+ 'on_sms' => 'Dienst/Webseite \'%LABEL%\' ist wieder online: ip=%IP%, port=%PORT%',
+ 'on_email_subject' => 'Hinweis: Dienst/Webseite \'%LABEL%\' ist wieder online.',
+ 'on_email_body' => "Dienst/Webseite '%LABEL%' ist wieder erreichbar:
Server: %LABEL%
IP: %IP%
Port: %PORT%
Datum: %DATE% Uhr",
+ 'on_pushover_title' => 'Dienst/Webseite \'%LABEL%\' ist wieder online.',
+ 'on_pushover_message' => "Dienst/Webseite '%LABEL%' ist wieder erreichbar:
Server: %LABEL%
IP: %IP%
Port: %PORT%
Datum: %DATE% Uhr",
+ ),
+ 'login' => array(
+ 'welcome_usermenu' => '%user_name%',
+ 'title_sign_in' => 'Bitte loggen Sie sich ein.',
+ 'title_forgot' => 'Passwort vergessen?',
+ 'title_reset' => 'Ihr Passwort zurücksetzen',
+ 'submit' => 'Senden',
+ 'remember_me' => 'Angemeldet bleiben',
+ 'login' => 'Login',
+ 'logout' => 'Abmelden',
+ 'username' => 'Benutzername',
+ 'password' => 'Passwort',
+ 'password_repeat' => 'Passwort wiederholen',
+ 'password_forgot' => 'Passwort vergessen?',
+ 'password_reset' => 'Passwort zurücksetzen',
+ 'password_reset_email_subject' => 'Setzen Sie Ihr Zugangspasswort für den Server Monitor',
+ 'password_reset_email_body' => 'Benutzen Sie bitte den folgenden Link, um Ihr Zugangspasswort zurückzusetzen. Bitte beachten Sie: Der Link verfällt in 1 Stunde.
%link%',
+ 'error_user_incorrect' => 'Der angegebene Benutzername konnte nicht gefunden werden.',
+ 'error_login_incorrect' => 'Die angegebenen Informationen sind leider nicht korrekt.',
+ 'error_login_passwords_nomatch' => 'Die angegebenen Passwörter stimmen nicht überein.',
+ 'error_reset_invalid_link' => 'Der angegebene Link, um Ihr Zugangspasswort zurückzusetzen, ist ungültig.',
+ 'success_password_forgot' => 'Eine Nachricht wurde an Ihre E-Mail-Adresse versendet. Sie beschreibt, wie Sie Ihr Passwort zurücksetzen können.',
+ 'success_password_reset' => 'Ihr Passwort wurde erfolgreich zurückgesetzt. Bitte versuchen Sie, sich erneut anzumelden.',
+ ),
+ 'error' => array(
+ '401_unauthorized' => 'Nicht autorisiert',
+ '401_unauthorized_description' => 'Sie haben nicht die erforderlichen Zugriffsrechte, um diese Seite aufzurufen.',
+ ),
+);
From 5eb0e69c32a1e1a08a6134711fcec5c3b5ce7481 Mon Sep 17 00:00:00 2001
From: jerome
Date: Fri, 19 Sep 2014 16:05:19 +0200
Subject: [PATCH 07/23] French translation
---
src/lang/fr_FR.lang.php | 54 ++++++++++++++++++++---------------------
1 file changed, 27 insertions(+), 27 deletions(-)
diff --git a/src/lang/fr_FR.lang.php b/src/lang/fr_FR.lang.php
index cab685a7..bcff1ce0 100644
--- a/src/lang/fr_FR.lang.php
+++ b/src/lang/fr_FR.lang.php
@@ -83,10 +83,10 @@ $sm_lang = array(
'mobile' => 'Téléphone',
'email' => 'Email',
'pushover' => 'Pushover',
- 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
- 'pushover_key' => 'Pushover Key',
- 'pushover_device' => 'Pushover Device',
- 'pushover_device_description' => 'Device name to send the message to. Leave empty to send it to all devices.',
+ 'pushover_description' => 'Pushover est un service qui simplifie les notifications en temps réel. Voir leur site web pour plus d\'informations.',
+ 'pushover_key' => 'Clé Pushover',
+ 'pushover_device' => 'Appareil Pushover',
+ 'pushover_device_description' => 'Nom de l\'appareil auquel le message doit être envoyé. Laissez vide pour l\'envoyer à tout les appareils.',
'delete_title' => 'Supprimer un utilisateur',
'delete_message' => 'Êtes-vous sûr de vouloir supprimer l\'utilisateur \'%1\' ?',
'deleted' => 'Utilisateur supprimé.',
@@ -118,8 +118,8 @@ $sm_lang = array(
'status' => 'État',
'label' => 'Nom',
'domain' => 'Domaine/IP',
- 'timeout' => 'Timeout',
- 'timeout_description' => 'Number of seconds to wait for the server to respond.',
+ 'timeout' => 'Délai d\'attente',
+ 'timeout_description' => 'Nombre de secondes à attendre une réponse du serveur.',
'port' => 'Port',
'type' => 'Type',
'type_website' => 'Site Web',
@@ -160,9 +160,9 @@ $sm_lang = array(
'chart_long_date_format' => '%d/%m/%Y %H:%M:%S',
'chart_short_date_format' => '%d/%m %H:%M',
'chart_short_time_format' => '%H:%M',
- 'warning_notifications_disabled_sms' => 'SMS notifications are disabled.',
- 'warning_notifications_disabled_email' => 'Email notifications are disabled.',
- 'warning_notifications_disabled_pushover' => 'Pushover notifications are disabled.',
+ 'warning_notifications_disabled_sms' => 'Les notifications SMS sont désactivées.',
+ 'warning_notifications_disabled_email' => 'Les notifications par email sont désactivées.',
+ 'warning_notifications_disabled_pushover' => 'Les notifications Pushover sont désactivées.',
'error_server_no_match' => 'Serveur non trouvé.',
'error_server_label_bad_length' => 'Le nom doit avoir entre 1 et 255 caractères.',
'error_server_ip_bad_length' => 'Domaine/IP doit avoir entre 1 et 255 caractères.',
@@ -197,11 +197,11 @@ $sm_lang = array(
'sms_gateway_username' => 'Nom utilisateur de la passerelle',
'sms_gateway_password' => 'Mot de passe de la passerelle',
'sms_from' => 'SMS de l\'expéditeur',
- 'pushover_status' => 'Allow sending Pushover messages',
- 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
- 'pushover_clone_app' => 'Click here to create your Pushover app',
- 'pushover_api_token' => 'Pushover App API Token',
- 'pushover_api_token_description' => 'Before you can use Pushover, you need to register an App at their website and enter the App API Token here.',
+ 'pushover_status' => 'Autoriser l\'envoie des messages Pushover',
+ 'pushover_description' => 'Pushover est un service qui simplifie les notifications en temps réel. Voir leur site web pour plus d\'informations.',
+ 'pushover_clone_app' => 'Cliquez ici pour créer votre application Pushover',
+ 'pushover_api_token' => 'Jeton application Pushover',
+ 'pushover_api_token_description' => 'Avant de pouvoir utiliser Pushover, vous devez créer une application sur leur site web et entrer ici le jeton (Token) de l\'application.',
'alert_type' => 'Choisissez quand vous souhaitez être notifié',
'alert_type_description' => 'Changement d\'état : '.
'Vous recevez une notification chaque fois que le serveur change d\'état. C\'est-à-dire passe de l\'état OK à HORS SERVICE ou de HORS SERVICE à OK.
'.
@@ -218,14 +218,14 @@ $sm_lang = array(
'log_status_description' => 'Si l\'option est activée, un événement est enregistré chaque fois qu\'une notification a lieu.',
'log_email' => 'Enregistrer tout les emails envoyés',
'log_sms' => 'Enregistrer tout les SMS envoyés',
- 'log_pushover' => 'Log pushover messages sent by the script',
+ 'log_pushover' => 'Enregistrer tout les messages Pushover envoyés',
'updated' => 'La configuration a été mise à jour.',
'tab_email' => 'Email',
'tab_sms' => 'SMS',
'tab_pushover' => 'Pushover',
'settings_email' => 'Configuration email',
'settings_sms' => 'Configuration SMS',
- 'settings_pushover' => 'Pushover settings',
+ 'settings_pushover' => 'Configuration Pushover',
'settings_notification' => 'Configuration des notifications',
'settings_log' => 'Configuration des événements',
'auto_refresh' => 'Auto-rachaîchissement',
@@ -238,7 +238,7 @@ $sm_lang = array(
'test' => 'Tester',
'test_email' => 'Un email va vous être envoyé à l\'adresse définie dans votre profil utilisateur.',
'test_sms' => 'Un SMS va vous être envoyé au numéro défini dans votre profil utilisateur.',
- 'test_pushover' => 'A Pushover notification will be sent to the user key/device specified in your user profile.',
+ 'test_pushover' => 'Une notification Pushover va être envoyé en utilisant la clé spécifiée dans votre profil utilisateur.',
'send' => 'Envoyer',
'test_subject' => 'Test',
'test_message' => 'Message de test',
@@ -246,14 +246,14 @@ $sm_lang = array(
'email_error' => 'Erreur lors de l\'envoie de l\'email',
'sms_sent' => 'Sms envoyé',
'sms_error' => 'Erreur lors de l\'envoie du sms',
- 'sms_error_nomobile' => 'Unable to send test SMS: no valid phone number found in your profile.',
- 'pushover_sent' => 'Pushover notification sent',
- 'pushover_error' => 'An error has occurred while sending the Pushover notification: %s',
- 'pushover_error_noapp' => 'Unable to send test notification: no Pushover App API token found in the global configuration.',
- 'pushover_error_nokey' => 'Unable to send test notification: no Pushover key found in your profile.',
- 'log_retention_period' => 'Log retention period',
- 'log_retention_period_description' => 'Number of days to keep logs of notifications and archives of server uptime. Enter 0 to disable log cleanup.',
- 'log_retention_days' => 'days',
+ 'sms_error_nomobile' => 'Impossible d\'envoyer un SMS de test: aucun numéro de téléphone défini dans votre profil.',
+ 'pushover_sent' => 'Notification Pushover envoyée',
+ 'pushover_error' => 'Une erreur s\'est produite lors de l\'envoie de la notification Pushover : %s',
+ 'pushover_error_noapp' => 'Impossible d\'envoyer une notification de test: Aucun jeton application Pushover n\'a été défini dans la configuration Pushover.',
+ 'pushover_error_nokey' => 'Impossible d\'envoyer une notification de test: Aucune clé Pushover n\'a été définie dans votre profil.',
+ 'log_retention_period' => 'Durée de conservation',
+ 'log_retention_period_description' => 'Nombre de jours de conservation des événements envoyés et des temps de réponse des serveurs. Entrez 0 pour les conserver indéfiniment.',
+ 'log_retention_days' => 'jours',
),
// for newlines in the email messages use
'notifications' => array(
@@ -292,7 +292,7 @@ $sm_lang = array(
'success_password_reset' => 'Votre mot de passe a été réinitialisé.',
),
'error' => array(
- '401_unauthorized' => 'Unauthorized',
- '401_unauthorized_description' => 'You do not have the privileges to view this page.',
+ '401_unauthorized' => 'Non autorisée',
+ '401_unauthorized_description' => 'Vous n\'avez pas les privilèges nécessaires pour voir cette page.',
),
);
From e13ca5e1b6c9ba9a1f27c6dba41a39a82d5f41d6 Mon Sep 17 00:00:00 2001
From: Pepijn Over
Date: Fri, 26 Sep 2014 21:30:55 +0200
Subject: [PATCH 08/23] updating changelog/credits for #132 / #134
---
CHANGELOG.rst | 2 ++
docs/credits.rst | 1 +
2 files changed, 3 insertions(+)
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index c2207222..c6c4d640 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -7,6 +7,8 @@ not yet released
* #130: Added Czech translation.
* #124: Updated Bulgarian translation.
+* #132: Updated German translation.
+* #134: Updated French translation.
v3.1.0 (released August 7, 2014)
diff --git a/docs/credits.rst b/docs/credits.rst
index 57562f31..66b8bbc0 100644
--- a/docs/credits.rst
+++ b/docs/credits.rst
@@ -91,6 +91,7 @@ The following people have contributed to the translation of PHP Server Monitor:
* German
* Brunbaur Herbert
+ * Jean Pierre Kolb - https://github.com/JPKCom
* Italian
From 7a0f148c33060c317b2e3cf4188986a04c0b774c Mon Sep 17 00:00:00 2001
From: Arkadiusz Klenczar
Date: Sat, 27 Sep 2014 01:41:34 +0200
Subject: [PATCH 09/23] Added Polish translation
Polish translation added.
---
src/lang/pl_PL.lang.php | 297 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 297 insertions(+)
create mode 100644 src/lang/pl_PL.lang.php
diff --git a/src/lang/pl_PL.lang.php b/src/lang/pl_PL.lang.php
new file mode 100644
index 00000000..e0aa8179
--- /dev/null
+++ b/src/lang/pl_PL.lang.php
@@ -0,0 +1,297 @@
+.
+ *
+ * @package phpservermon
+ * @author Arkadiusz Klenczar
+ * @copyright Copyright (c) 2008-2014 Pepijn Over
+ * @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
+ * @version Release: @package_version@
+ * @link http://www.phpservermonitor.org/
+ **/
+
+$sm_lang = array(
+ 'name' => 'Polski',
+ 'locale' => array('pl_PL.UTF-8', 'pl_PL', 'polski', 'polski'),
+ 'system' => array(
+ 'title' => 'Server Monitor',
+ 'install' => 'Instalacja',
+ 'action' => 'Akcja',
+ 'save' => 'Zapisz',
+ 'edit' => 'Edycja',
+ 'delete' => 'Usuń',
+ 'date' => 'Data',
+ 'message' => 'Wiadomość',
+ 'yes' => 'Tak',
+ 'no' => 'Nie',
+ 'insert' => 'Wstaw',
+ 'add_new' => 'Dodaj',
+ 'update_available' => 'Nowa wersja ({version}) jest dostępna do pobrania z http://www.phpservermonitor.org.',
+ 'back_to_top' => 'Do góry',
+ 'go_back' => 'Wstecz',
+ 'ok' => 'OK',
+ 'cancel' => 'Anuluj',
+ // date/time format according the strftime php function format parameter http://php.net/manual/function.strftime.php
+ 'short_day_format' => '%B %e',
+ 'long_day_format' => '%B %e, %Y',
+ 'yesterday_format' => 'Wczoraj o %k:%M',
+ 'other_day_format' => '%A o %k:%M',
+ 'never' => 'Nigdy',
+ 'hours_ago' => '%d godzin temu',
+ 'an_hour_ago' => 'godzinę temu',
+ 'minutes_ago' => '%d minut temu',
+ 'a_minute_ago' => 'minutę temu',
+ 'seconds_ago' => '%d sekund temu',
+ 'a_second_ago' => 'sekundę temu',
+ ),
+ 'menu' => array(
+ 'config' => 'Konfiguracja',
+ 'server' => 'Serwery',
+ 'server_log' => 'Logi',
+ 'server_status' => 'Status',
+ 'server_update' => 'Aktualizuj',
+ 'user' => 'Użytkownicy',
+ 'help' => 'Pomoc',
+ ),
+ 'users' => array(
+ 'user' => 'Użytkownik',
+ 'name' => 'Nazwa',
+ 'user_name' => 'Login',
+ 'password' => 'Hasło',
+ 'password_repeat' => 'Powtórz hasło',
+ 'password_leave_blank' => 'Pozostaw puste aby zaniechać zmian',
+ 'level' => 'Poziom',
+ 'level_10' => 'Administrator',
+ 'level_20' => 'Użytkownik',
+ 'level_description' => 'Administratorzy posiadają pełny dostęp: mogą zarządzać serwerami, użytkownikami oraz edytować konfigurację globalną.
Użytkownicy mogą podejrzeć serwer oraz uruchomić aktualizację statusu dla serwerów do nich przypisanych.',
+ 'mobile' => 'Telefon',
+ 'email' => 'Email',
+ 'pushover' => 'Pushover',
+ 'pushover_description' => 'Pushover jest usługą szybkich notyfikacji. Sprawdź ich stronę po więcej informacji.',
+ 'pushover_key' => 'Pushover Key',
+ 'pushover_device' => 'Urządzenie dla Pushover',
+ 'pushover_device_description' => 'Nazwa urządzenia do którego wysłać powiadomienie. Pozostaw puste aby wysłać do wszystkich urządzeń.',
+ 'delete_title' => 'Usuń użytkownika',
+ 'delete_message' => 'Czy jesteś pewny że chcesz usunąć użytkownika \'%1\'?',
+ 'deleted' => 'Użytkownik usunięty.',
+ 'updated' => 'Użytkownik zaktualizowany.',
+ 'inserted' => 'Użytkownik dodany.',
+ 'profile' => 'Profil',
+ 'profile_updated' => 'Twój profil został zaktualizowany.',
+ 'error_user_name_bad_length' => 'Login musi mieć od 2 do 64 znaków.',
+ 'error_user_name_invalid' => 'Login może zawierać tylko litery (a-z, A-Z), cyfry (0-9) oraz znak podkreślenia (_).',
+ 'error_user_name_exists' => 'Wybrana nazwa użytkownika jest już używana.',
+ 'error_user_email_bad_length' => 'Email powinien mieć od 5 do 255 znaków.',
+ 'error_user_email_invalid' => 'Wprowadzony adres email jest nieprawidłowy.',
+ 'error_user_level_invalid' => 'Wybrany poziom uprawnień użytkownika jest nieprawidłowy.',
+ 'error_user_no_match' => 'Użytkownik nie został odnaleziony.',
+ 'error_user_password_invalid' => 'Wprowadzone hasło jest nieprawidłowe.',
+ 'error_user_password_no_match' => 'Wprowadzone hasła są różne.',
+ ),
+ 'log' => array(
+ 'title' => 'Logi',
+ 'type' => 'Typ',
+ 'status' => 'Status',
+ 'email' => 'Email',
+ 'sms' => 'SMS',
+ 'pushover' => 'Pushover',
+ 'no_logs' => 'Brak logów',
+ ),
+ 'servers' => array(
+ 'server' => 'Server',
+ 'status' => 'Status',
+ 'label' => 'Etykieta',
+ 'domain' => 'Domena/IP',
+ 'timeout' => 'Timeout',
+ 'timeout_description' => 'Liczba sekund do odczekania na odpowiedź serwera.',
+ 'port' => 'Port',
+ 'type' => 'Typ',
+ 'type_website' => 'Strona',
+ 'type_service' => 'Usługa',
+ 'pattern' => 'Wyszukiwane wyrażenie/wzorzec',
+ 'pattern_description' => 'Jeśli wzorzec nie zostanie odnaleziony, status zostanie ustawiony na offline. Wyrażenia regularne są dozwolone.',
+ 'last_check' => 'Ostatnie sprawdzenie',
+ 'last_online' => 'Ostatnio online',
+ 'monitoring' => 'Monitorowany',
+ 'no_monitoring' => 'Brak monitoringu',
+ 'email' => 'Email',
+ 'send_email' => 'Wyślij Email',
+ 'sms' => 'SMS',
+ 'send_sms' => 'Wyślij SMS',
+ 'pushover' => 'Pushover',
+ 'users' => 'Użytkownicy',
+ 'delete_title' => 'Usuń serwer',
+ 'delete_message' => 'Czy jesteś pewny że chcesz usunąć serwer \'%1\'?',
+ 'deleted' => 'Serwer usunięty.',
+ 'updated' => 'Serwer zaktualizowany.',
+ 'inserted' => 'Server dodany.',
+ 'latency' => 'Opóźnienie',
+ 'latency_max' => 'Opóźnienie (maksymalne)',
+ 'latency_min' => 'Opóźnienie (minimalne)',
+ 'latency_avg' => 'Opóźnienie (średnie)',
+ 'uptime' => 'Czas dostępności',
+ 'year' => 'Rok',
+ 'month' => 'Miesiąc',
+ 'week' => 'Tydzień',
+ 'day' => 'Dzień',
+ 'hour' => 'Godzina',
+ 'warning_threshold' => 'Próg ostrzeżeń',
+ 'warning_threshold_description' => 'Ilość wymaganych niepowodzeń przed oznaczeniem serwera jako offline.',
+ 'chart_last_week' => 'Ostatni tydzień',
+ 'chart_history' => 'Historia',
+ // Charts date format according jqPlot date format http://www.jqplot.com/docs/files/plugins/jqplot-dateAxisRenderer-js.html
+ 'chart_day_format' => '%Y-%m-%d',
+ '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' => 'Powiadomienia SMS są wyłączone.',
+ 'warning_notifications_disabled_email' => 'Powiadomienia Email są wyłączone.',
+ 'warning_notifications_disabled_pushover' => 'Powiadomienia Pushover są wyłączone.',
+ 'error_server_no_match' => 'Nie odnaleziono serwera.',
+ 'error_server_label_bad_length' => 'Etykieta musi mieć pomiędzy 1 a 255 znaków.',
+ 'error_server_ip_bad_length' => 'Domena/IP musi mieć pomiędzy 1 a 255 znaków.',
+ 'error_server_ip_bad_service' => 'Adres IP jest nieprawidłowy.',
+ 'error_server_ip_bad_website' => 'Adres URL jest nieprawidłowy.',
+ 'error_server_type_invalid' => 'Wybrany typ serwera jest nieprawidłowy.',
+ 'error_server_warning_threshold_invalid' => 'Próg ostrzeżeń musi być liczbą całkowitą większą od 0.',
+ ),
+ 'config' => array(
+ 'general' => 'Ogólne',
+ 'language' => 'Język',
+ 'show_update' => 'Sprawdzić aktualizacje?',
+ 'email_status' => 'Pozwól na wysyłkę email',
+ 'email_from_email' => 'Email z adresu',
+ 'email_from_name' => 'Email od(nazwa)',
+ 'email_smtp' => 'Włącz SMTP',
+ 'email_smtp_host' => 'SMTP host',
+ 'email_smtp_port' => 'SMTP port',
+ 'email_smtp_username' => 'SMTP login',
+ 'email_smtp_password' => 'SMTP hasło',
+ 'email_smtp_noauth' => 'Pozostaw puste dla braku autentykacji',
+ 'sms_status' => 'Pozwól na wysyłkę SMS',
+ 'sms_gateway' => 'Bramka SMS',
+ 'sms_gateway_mosms' => 'Mosms',
+ 'sms_gateway_mollie' => 'Mollie',
+ 'sms_gateway_spryng' => 'Spryng',
+ 'sms_gateway_inetworx' => 'Inetworx',
+ 'sms_gateway_clickatell' => 'Clickatell',
+ 'sms_gateway_textmarketer' => 'Textmarketer',
+ 'sms_gateway_smsglobal' => 'SMSGlobal',
+ 'sms_gateway_smsit' => 'Smsit',
+ 'sms_gateway_username' => 'Login do bramki',
+ 'sms_gateway_password' => 'Hasło do bramki',
+ 'sms_from' => 'Numer nadawcy',
+ 'pushover_status' => 'Pozwól na wysyłkę notyfikacji Pushover',
+ 'pushover_description' => 'Pushover jest usługą ułatwiającą otrzymywanie powiadomień w czasie rzeczywistym. Sprawdź ich stronę aby uzyskać więcej informacji.',
+ 'pushover_clone_app' => 'Kliknij tutaj aby stworzyć aplikację korzystającą z Pushover',
+ 'pushover_api_token' => 'Pushover App API Token',
+ 'pushover_api_token_description' => 'Zanim zaczniesz używać Pushover, musisz zarejestrować aplikację na ich stronie internetowej i wpisać tutaj App API Token.',
+ 'alert_type' => 'Wybierz kiedy chcesz być powiadomiony.',
+ 'alert_type_description' => 'Zmiana statusu: '.
+ 'Otrzymasz powiadomienie gdy serwer zmieni status. Z online -> offline lub offline -> online.
'.
+ '
Offline: '.
+ 'Otrzymasz powiadomienie gdy serwer zmieni status na offline po raz pierwszy. Na przykład, '.
+ 'Twój cronjob uruchamia się co 15 minut, a Twój serwer przestaje odpowiadać o 13 i nie działa do 18. '.
+ 'Otrzymasz *TYLKO* jedno powiadomienie o 13.
'.
+ '
Zawsze: '.
+ 'Otrzymasz powiadomienie za każdym razem gdy skrypt zostanie uruchomiony a strona będzie niedostępna.',
+ 'alert_type_status' => 'Zmiana statusu',
+ 'alert_type_offline' => 'Offline',
+ 'alert_type_always' => 'Zawsze',
+ 'log_status' => 'Status logowania',
+ 'log_status_description' => 'Jeśli status logowania ustawiony jest na TRUE, monitor będzie logował wydarzenia.',
+ 'log_email' => 'Emaile wysłane przez skrypt',
+ 'log_sms' => 'SMS wysłane przez skrypt',
+ 'log_pushover' => 'Notyfikacje Pushover wysłane przez skrypt',
+ 'updated' => 'Konfiguracja została zaktualizowana.',
+ 'tab_email' => 'Email',
+ 'tab_sms' => 'SMS',
+ 'tab_pushover' => 'Pushover',
+ 'settings_email' => 'Ustawienia Email',
+ 'settings_sms' => 'Ustawienia SMS',
+ 'settings_pushover' => 'Ustawienia Pushover',
+ 'settings_notification' => 'Ustawienia powiadomień',
+ 'settings_log' => 'Ustawienia Logowania',
+ 'auto_refresh' => 'Auto-odświeżanie',
+ 'auto_refresh_servers' =>
+ 'Auto-odświeżanie strony serwera.
'.
+ ''.
+ 'Czas w sekundach, dla czasu 0 strona nie będzie odświeżana.'.
+ '',
+ 'seconds' => 'sekund',
+ 'test' => 'Test',
+ 'test_email' => 'Email zostanie wysłany na adres podany w Twoim profilu.',
+ 'test_sms' => 'SMS zostanie wysłany na numer podany w Twoim profilu.',
+ 'test_pushover' => 'Powiadomienie Pushover zostanie wysłany na klucz użytkownika/urządzenie podane w Twoim profilu..',
+ 'send' => 'Wyślij',
+ 'test_subject' => 'Test',
+ 'test_message' => 'Testowa wiadomość',
+ 'email_sent' => 'Email wysłany',
+ 'email_error' => 'Błąd podczas wysyłania emaila',
+ 'sms_sent' => 'Sms wysłany',
+ 'sms_error' => 'Błąd podczas wysyłania sms',
+ 'sms_error_nomobile' => 'Nie udało się wysłać testowego SMS: brak poprawnego telefonu w Twoim profilu.',
+ 'pushover_sent' => 'Powiadomienie Pushover wysłane.',
+ 'pushover_error' => 'Błąd podczas wysyłania powiadomienia Pushover: %s',
+ 'pushover_error_noapp' => 'Błąd podczas wysyłania testowego powiadomienia: brak Pushover App API token w konfuguracji globalnej.',
+ 'pushover_error_nokey' => 'Błąd podczas wysyłania testowego powiadomienia: brak Pushover key na Twoim profilu.',
+ 'log_retention_period' => 'Czas rotacji logów',
+ 'log_retention_period_description' => 'Liczba dni przez którą należy przetrzymywać logi powiadomień i archiwizować uptime serwera. Wpisz 0 aby wyłączyć czyszczenie logów.',
+ 'log_retention_days' => 'dni',
+ ),
+ // for newlines in the email messages use
+ 'notifications' => array(
+ 'off_sms' => 'Serwer \'%LABEL%\' przestał odpowiadać: ip=%IP%, port=%PORT%. Błąd=%ERROR%',
+ 'off_email_subject' => 'Uwaga: Serwer \'%LABEL%\' nie odpowiada',
+ 'off_email_body' => "Błąd połączenia do serwera:
Serwer: %LABEL%
IP: %IP%
Port: %PORT%
Błąd: %ERROR%
Data: %DATE%",
+ 'off_pushover_title' => 'Serwer \'%LABEL%\' nie odpowiada',
+ 'off_pushover_message' => "Błąd połączenia do serwera:
Serwer: %LABEL%
IP: %IP%
Port: %PORT%
Błąd: %ERROR%
Data: %DATE%",
+ 'on_sms' => 'Serwer \'%LABEL%\' działa poprawnie: ip=%IP%, port=%PORT%',
+ 'on_email_subject' => 'Uwaga: Serwer \'%LABEL%\' działa poprawnie',
+ 'on_email_body' => "Serwer '%LABEL%' znów odpowiada:
Serwer: %LABEL%
IP: %IP%
Port: %PORT%
Data: %DATE%",
+ 'on_pushover_title' => 'Serwer \'%LABEL%\' działa poprawnie',
+ 'on_pushover_message' => 'Serwer \'%LABEL%\' znów działa poprawnie:
Serwer: %LABEL%
IP: %IP%
Port: %PORT%
Data: %DATE%',
+ ),
+ 'login' => array(
+ 'welcome_usermenu' => 'Witaj, %user_name%',
+ 'title_sign_in' => 'Zaloguj się',
+ 'title_forgot' => 'Zapomniałeś hasła?',
+ 'title_reset' => 'Zresetuj hasło',
+ 'submit' => 'Zapisz',
+ 'remember_me' => 'Zapamiętaj mnie',
+ 'login' => 'Zaloguj',
+ 'logout' => 'Wyloguj',
+ 'username' => 'Login',
+ 'password' => 'Hasło',
+ 'password_repeat' => 'Powtórz hasło',
+ 'password_forgot' => 'Zapomniałeś hasła?',
+ 'password_reset' => 'Zresetuj hasło',
+ 'password_reset_email_subject' => 'Zresetuj hasło do monitoringu',
+ 'password_reset_email_body' => 'Aby zresetować hasło użyj tego linku. Ważność linku to jedna godzina.
%link%',
+ 'error_user_incorrect' => 'Brak użytkownika o takim loginie.',
+ 'error_login_incorrect' => 'Login lub hasło jest błędne.',
+ 'error_login_passwords_nomatch' => 'Podane hasła nie pasują do siebie.',
+ 'error_reset_invalid_link' => 'Podany link do zmiany hasła jest nieprawidłowy.',
+ 'success_password_forgot' => 'Email został wysłany do Ciebie z informacjami dotyczącymi zresetowania hasła.',
+ 'success_password_reset' => 'Twoje hasło zostało pomyślnie zmienione. Zaloguj się.',
+ ),
+ 'error' => array(
+ '401_unauthorized' => 'Brak autoryzacji',
+ '401_unauthorized_description' => 'Nie masz odpowiednich praw dostępu by przeglądać tę stronę.',
+ ),
+);
From 40b9d3386d52a6d990ac2fd279fd737384486fd5 Mon Sep 17 00:00:00 2001
From: Luiz Alberto
Date: Sat, 4 Oct 2014 12:04:00 -0300
Subject: [PATCH 10/23] update brzilian lang file
---
src/lang/pt_BR.lang.php | 92 ++++++++++++++++++++---------------------
1 file changed, 46 insertions(+), 46 deletions(-)
diff --git a/src/lang/pt_BR.lang.php b/src/lang/pt_BR.lang.php
index 91450b4e..bc80a053 100644
--- a/src/lang/pt_BR.lang.php
+++ b/src/lang/pt_BR.lang.php
@@ -82,13 +82,13 @@ $sm_lang = array(
'mobile' => 'Celular',
'email' => 'Email',
'pushover' => 'Pushover',
- 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
+ 'pushover_description' => 'Pushover para enviar notificações em real-tome. Veja o website para mais informações.',
'pushover_key' => 'Pushover Key',
'pushover_device' => 'Pushover Device',
- 'pushover_device_description' => 'Device name to send the message to. Leave empty to send it to all devices.',
- 'delete_title' => 'Delete User',
- 'delete_message' => 'Are you sure you want to delete user \'%1\'?',
- 'deleted' => 'User deleted.',
+ 'pushover_device_description' => 'Nome do Device para enviar a mensagem. Deixe em branco para enviar a todos os Devices.',
+ 'delete_title' => 'Excluir Usuário',
+ 'delete_message' => 'Tem certeza que deseja excluir o usuário \'%1\'?',
+ 'deleted' => 'Usuário excluído.',
'updated' => 'Usuário atualizado.',
'inserted' => 'Usuário adicionado.',
'profile' => 'Perfil',
@@ -110,7 +110,7 @@ $sm_lang = array(
'email' => 'Email',
'sms' => 'SMS',
'pushover' => 'Pushover',
- 'no_logs' => 'No logs',
+ 'no_logs' => 'Sem logs',
),
'servers' => array(
'server' => 'Servidor',
@@ -118,7 +118,7 @@ $sm_lang = array(
'label' => 'Etiqueta',
'domain' => 'Domínio/IP',
'timeout' => 'Timeout',
- 'timeout_description' => 'Number of seconds to wait for the server to respond.',
+ 'timeout_description' => 'Segundos para aguardar a resposta do servidor.',
'port' => 'Porta',
'type' => 'Tipo',
'type_website' => 'Website',
@@ -128,16 +128,16 @@ $sm_lang = array(
'last_check' => 'Última verificação',
'last_online' => 'Última vez online',
'monitoring' => 'Monitoramento',
- 'no_monitoring' => 'No monitoring',
+ 'no_monitoring' => 'Sem monitoring',
'email' => 'Email',
'send_email' => 'Enviar Email',
'sms' => 'SMS',
'send_sms' => 'Enviar SMS',
'pushover' => 'Pushover',
- 'users' => 'Users',
- 'delete_title' => 'Delete Server',
- 'delete_message' => 'Are you sure you want to delete server \'%1\'?',
- 'deleted' => 'Server deleted.',
+ 'users' => 'Usuários',
+ 'delete_title' => 'Exluir Servidor',
+ 'delete_message' => 'Tem certeza que deseja excluir o servidor \'%1\'?',
+ 'deleted' => 'Servidor excluído.',
'updated' => 'Servidor atualizado.',
'inserted' => 'Servidor adicionar.',
'latency' => 'Tempo de resposta',
@@ -159,16 +159,16 @@ $sm_lang = array(
'chart_long_date_format' => '%d/%m/%Y %H:%M:%S',
'chart_short_date_format' => '%d/%m %H:%M',
'chart_short_time_format' => '%H:%M',
- 'warning_notifications_disabled_sms' => 'SMS notifications are disabled.',
- 'warning_notifications_disabled_email' => 'Email notifications are disabled.',
- 'warning_notifications_disabled_pushover' => 'Pushover notifications are disabled.',
- 'error_server_no_match' => 'Server not found.',
- 'error_server_label_bad_length' => 'The label must be between 1 and 255 characters.',
- 'error_server_ip_bad_length' => 'The domain / IP must be between 1 and 255 characters.',
- 'error_server_ip_bad_service' => 'The IP address is not valid.',
- 'error_server_ip_bad_website' => 'The website URL is not valid.',
- 'error_server_type_invalid' => 'The selected server type is invalid.',
- 'error_server_warning_threshold_invalid' => 'The warning threshold must be a valid integer greater than 0.',
+ 'warning_notifications_disabled_sms' => 'Notificações SMS estão desabilitadas.',
+ 'warning_notifications_disabled_email' => 'Notificações por email estão desabilitadas.',
+ 'warning_notifications_disabled_pushover' => 'Notificações por Pushover estão desabilitadas.',
+ 'error_server_no_match' => 'Servidor não encontrado.',
+ 'error_server_label_bad_length' => 'A etiqueta deve ter entre 1 e 255 caracteres.',
+ 'error_server_ip_bad_length' => 'O domínio / IP deve ter entre 1 e 255 caracteres.',
+ 'error_server_ip_bad_service' => 'O IP não é válido.',
+ 'error_server_ip_bad_website' => 'A URL não é válida.',
+ 'error_server_type_invalid' => 'O tipo de servidor selecionado não é valido.',
+ 'error_server_warning_threshold_invalid' => 'O limite de aviso deve ser um número inteiro maior que 0.',
),
'config' => array(
'general' => 'Geral',
@@ -196,9 +196,9 @@ $sm_lang = array(
'sms_gateway_username' => 'Usuário do Gateway',
'sms_gateway_password' => 'Senha do Gateway',
'sms_from' => 'Número de telefone de envio',
- 'pushover_status' => 'Allow sending Pushover messages',
- 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
- 'pushover_clone_app' => 'Click here to create your Pushover app',
+ 'pushover_status' => 'Habilitar envio de mensagens Pushover',
+ 'pushover_description' => 'Pushover é um serviço de notificações em tempo real. Veja o website para mais informações.',
+ 'pushover_clone_app' => 'Clique aqui para criar sua app Pushover',
'pushover_api_token' => 'Pushover App API Token',
'pushover_api_token_description' => 'Before you can use Pushover, you need to register an App at their website and enter the App API Token here.',
'alert_type' => 'Selecione como você gostaria de ser notificado.',
@@ -234,25 +234,25 @@ $sm_lang = array(
'Tempo em segundos, Se 0 a página não será atualizada.'.
'',
'seconds' => 'segundos',
- 'test' => 'Test',
- 'test_email' => 'An email will be sent to the address specified in your user profile.',
- 'test_sms' => 'An SMS will be sent to the phone number specified in your user profile.',
- 'test_pushover' => 'A Pushover notification will be sent to the user key/device specified in your user profile.',
- 'send' => 'Send',
- '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' => 'Unable to send test SMS: no valid phone number found in your profile.',
- 'pushover_sent' => 'Pushover notification sent',
- 'pushover_error' => 'An error has occurred while sending the Pushover notification: %s',
- 'pushover_error_noapp' => 'Unable to send test notification: no Pushover App API token found in the global configuration.',
- 'pushover_error_nokey' => 'Unable to send test notification: no Pushover key found in your profile.',
- 'log_retention_period' => 'Log retention period',
- 'log_retention_period_description' => 'Number of days to keep logs of notifications and archives of server uptime. Enter 0 to disable log cleanup.',
- 'log_retention_days' => 'days',
+ 'test' => 'Teste',
+ 'test_email' => 'Um e-mail será enviado para o endereço especificado em seu perfil de usuário.',
+ 'test_sms' => 'Um SMS será enviado para o número de telefone especificado em seu perfil de usuário.',
+ 'test_pushover' => 'A notificação Pushover será enviado para a chave de usuário / dispositivo especificado em seu perfil de usuário.',
+ 'send' => 'Enviar',
+ 'test_subject' => 'Teste',
+ 'test_message' => 'Mensagem de Teste',
+ 'email_sent' => 'Email enviado',
+ 'email_error' => 'Erro no envio do email',
+ 'sms_sent' => 'Sms enviado',
+ 'sms_error' => 'Error no envio do SMS',
+ 'sms_error_nomobile' => 'Não foi possível enviar SMS de teste: nenhum número de telefone válido encontrado em seu perfil.',
+ 'pushover_sent' => 'Notificação Pushover enviada',
+ 'pushover_error' => 'Um erro foi encontrado ao enviar a notificação Pushover: %s',
+ 'pushover_error_noapp' => 'Não foi possível enviar a notificação de teste: não foi encontrada a APP API token do Pushover na configuração global.',
+ 'pushover_error_nokey' => 'Não foi possível enviar a notificação de teste: não foi encontrada a Pushover Key no seu perfil.',
+ 'log_retention_period' => 'Período de retenção do Log',
+ 'log_retention_period_description' => 'Número de dias para manter os registros de notificações e arquivos de tempo de atividade do servidor. Digite 0 para desativar a limpeza de registro.',
+ 'log_retention_days' => 'dias',
),
// for newlines in the email messages use
'notifications' => array(
@@ -291,7 +291,7 @@ $sm_lang = array(
'success_password_reset' => 'Sua senha foi redefinida com sucesso. Por favor faça login.',
),
'error' => array(
- '401_unauthorized' => 'Unauthorized',
- '401_unauthorized_description' => 'You do not have the privileges to view this page.',
+ '401_unauthorized' => 'Não autorizado',
+ '401_unauthorized_description' => 'Você não tem autorização para ver esta página.',
),
);
From be7279dd05256b054bb3fe6e93971ec5bbdd7cf9 Mon Sep 17 00:00:00 2001
From: Roman Beylin
Date: Tue, 14 Oct 2014 23:44:55 +0200
Subject: [PATCH 11/23] Updated russian translation
---
src/lang/ru_RU.lang.php | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/lang/ru_RU.lang.php b/src/lang/ru_RU.lang.php
index 6811305d..d9d1603f 100644
--- a/src/lang/ru_RU.lang.php
+++ b/src/lang/ru_RU.lang.php
@@ -108,7 +108,7 @@ $sm_lang = array(
'type' => 'Тип',
'status' => 'Статус',
'email' => 'E-mail',
- 'sms' => 'СМС',
+ 'sms' => 'SMS',
'pushover' => 'Pushover',
'no_logs' => 'Записей нет',
),
@@ -159,7 +159,7 @@ $sm_lang = array(
'chart_long_date_format' => '%d-%m-%Y %H:%M:%S',
'chart_short_date_format' => '%d/%m %H:%M',
'chart_short_time_format' => '%H:%M',
- 'warning_notifications_disabled_sms' => 'СМС уведомления отключены.',
+ 'warning_notifications_disabled_sms' => 'SMS уведомления отключены.',
'warning_notifications_disabled_email' => 'E-mail уведомления отключены.',
'warning_notifications_disabled_pushover' => 'Pushover уведомления отключены.',
'error_server_no_match' => 'Сервер не найден.',
@@ -183,8 +183,8 @@ $sm_lang = array(
'email_smtp_username' => 'SMTP пользователь',
'email_smtp_password' => 'SMTP пароль',
'email_smtp_noauth' => 'Оставить пустым, если без аутентификации',
- 'sms_status' => 'Разрешить отправку СМС',
- 'sms_gateway' => 'Шлюз для отправки СМС',
+ 'sms_status' => 'Разрешить отправку SMS',
+ 'sms_gateway' => 'Шлюз для отправки SMS',
'sms_gateway_mosms' => 'Mosms',
'sms_gateway_mollie' => 'Mollie',
'sms_gateway_spryng' => 'Spryng',
@@ -216,11 +216,11 @@ $sm_lang = array(
'log_status' => 'Лог статусов',
'log_status_description' => 'Если лог установлен в TRUE, монитор будет логировать все события режим которых выбран в типе уведомлений.',
'log_email' => 'Логировать уведомления отправленые по E-mail',
- 'log_sms' => 'Логировать уведомления отправленые по СМС',
+ 'log_sms' => 'Логировать уведомления отправленые по SMS',
'log_pushover' => 'Логировать Pushover уведомления',
'updated' => 'Параметры были успешно применены.',
'tab_email' => 'E-mail',
- 'tab_sms' => 'СМС',
+ 'tab_sms' => 'SMS',
'tab_pushover' => 'Pushover',
'settings_email' => 'Настройка E-mail',
'settings_sms' => 'Настройка SMS',
@@ -243,16 +243,16 @@ $sm_lang = array(
'test_message' => 'Тестовое сообщение',
'email_sent' => 'Сообщение отправлено',
'email_error' => 'Ошибка при отправке сообщения',
- 'sms_sent' => 'СМС отправлено',
- 'sms_error' => 'Ошибка при отправке СМС',
- 'sms_error_nomobile' => 'Не удалось отправить пробный СМС: действительный телефонный номер не был найден в вашем профиле.',
+ 'sms_sent' => 'SMS отправлено',
+ 'sms_error' => 'Ошибка при отправке SMS',
+ 'sms_error_nomobile' => 'Не удалось отправить пробный SMS: действительный телефонный номер не был найден в вашем профиле.',
'pushover_sent' => 'Pushover уведомление отправлено',
'pushover_error' => 'Произошла ошибка во время отправки Pushover уведомления: %s',
'pushover_error_noapp' => 'Не удалось отправить пробное уведомление: Pushover "App API token" не был найден в основных настройках.',
'pushover_error_nokey' => 'Не удалось отправить пробное уведомление: Pushover ключ не был найден в вашем профиле.',
- 'log_retention_period' => 'Log retention period',
- 'log_retention_period_description' => 'Number of days to keep logs of notifications and archives of server uptime. Enter 0 to disable log cleanup.',
- 'log_retention_days' => 'days',
+ 'log_retention_period' => 'Период хранения логов',
+ 'log_retention_period_description' => 'Количество дней хранения логов уведомлений и архива аптайма серверов. Введите 0 для выключения очистки логов.',
+ 'log_retention_days' => 'дней',
),
// for newlines in the email messages use
'notifications' => array(
From c10c4601c0313fda5e6d78dce6489cfcdcdbb3a6 Mon Sep 17 00:00:00 2001
From: Luis Rodriguez
Date: Sat, 18 Oct 2014 17:17:48 -0400
Subject: [PATCH 12/23] ignore my project file
---
.gitignore | 1 +
1 file changed, 1 insertion(+)
diff --git a/.gitignore b/.gitignore
index 4404b7d9..4f2451a7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@
/build
/docs/_build
/vendor/
+.project
\ No newline at end of file
From c19aa7078153fdb8d6381eb660afb01e1d5a66e1 Mon Sep 17 00:00:00 2001
From: Luis Rodriguez
Date: Sat, 18 Oct 2014 17:22:10 -0400
Subject: [PATCH 13/23] Compressed images
---
favicon.png | Bin 1639 -> 1452 bytes
static/phpservermon.png | Bin 7040 -> 6143 bytes
.../img/glyphicons-halflings-white.png | Bin 15624 -> 12298 bytes
.../img/glyphicons-halflings.png | Bin 29923 -> 19800 bytes
4 files changed, 0 insertions(+), 0 deletions(-)
diff --git a/favicon.png b/favicon.png
index 9d4d5f289ec580e16a416bbaa90db940bceb908f..17f806fd5b9663452e5a9f652a98ca86753c8e2d 100644
GIT binary patch
delta 1435
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
V23QbN%3J^d002ovPDHLkV1iC+6ITEL
diff --git a/static/phpservermon.png b/static/phpservermon.png
index 22cda643164f4de15749f221e5397a29a328d589..49ad9ab3d051c069ac6a58089a00c8cf4ba9ee12 100644
GIT binary patch
literal 6143
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
literal 7040
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
U-nHVc`_cq>{Yp)~LKYG9e|?u{qW}N^
diff --git a/static/plugin/twitter-bootstrap/img/glyphicons-halflings-white.png b/static/plugin/twitter-bootstrap/img/glyphicons-halflings-white.png
index 9e7cfb0269aacf5caf0c8bd91354b5c962ff6a03..7ac87d2f0d3b3f83c87b4fc126e48b00d4e1d68b 100644
GIT binary patch
literal 12298
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
X%G*SKORqTLzc*TH`l>a`ZzBE|Cm$GH
literal 15624
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 |