From 60dac4664b5df6b633ef7787261e873ffc7e55cb Mon Sep 17 00:00:00 2001 From: Alexey Vasilyev Date: Mon, 22 Jun 2015 17:56:41 +0300 Subject: [PATCH] Russian translation --- config/langs.php | 1 + resources/lang/ru/cachet.php | 97 +++++++++++++++ resources/lang/ru/dashboard.php | 196 +++++++++++++++++++++++++++++++ resources/lang/ru/forms.php | 147 +++++++++++++++++++++++ resources/lang/ru/pagination.php | 28 +++++ resources/lang/ru/reminders.php | 31 +++++ resources/lang/ru/setup.php | 24 ++++ resources/lang/ru/validation.php | 116 ++++++++++++++++++ 8 files changed, 640 insertions(+) create mode 100644 resources/lang/ru/cachet.php create mode 100644 resources/lang/ru/dashboard.php create mode 100644 resources/lang/ru/forms.php create mode 100644 resources/lang/ru/pagination.php create mode 100644 resources/lang/ru/reminders.php create mode 100644 resources/lang/ru/setup.php create mode 100644 resources/lang/ru/validation.php diff --git a/config/langs.php b/config/langs.php index 585715628..6042b1f16 100755 --- a/config/langs.php +++ b/config/langs.php @@ -21,6 +21,7 @@ return [ 'ko' => '한글', 'nl' => 'Nederlands', 'pt-BR' => 'Portuguese, Brazilian', + 'ru' => 'Русский', 'zh-CN' => '简体中文', 'zh-TW' => '繁體中文', ]; diff --git a/resources/lang/ru/cachet.php b/resources/lang/ru/cachet.php new file mode 100644 index 000000000..e1c70fa63 --- /dev/null +++ b/resources/lang/ru/cachet.php @@ -0,0 +1,97 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return [ + // Components + 'components' => [ + 'status' => [ + 1 => 'Работает', + 2 => 'Падение производительности', + 3 => 'Частичные неполадки', + 4 => 'Не работает', + ], + ], + + // Incidents + 'incidents' => [ + 'none' => 'Инцидентов не происходило.', + 'past' => 'Прошлые инциденты', + 'previous_week' => 'Прошлая неделя', + 'next_week' => 'Следующая неделя', + 'none' => 'Инцидентов не происходило.', + 'scheduled' => 'Запланированное обслуживание', + 'scheduled_at' => ', запланировано :timestamp', + 'status' => [ + 0 => 'Запланировано', // TODO: Hopefully remove this. + 1 => 'Исследуется', + 2 => 'Причина определена', + 3 => 'Под наблюдением', + 4 => 'Исправлено', + ], + ], + + // Service Status + 'service' => [ + 'good' => 'Все системы работают нормально.', + 'bad' => 'В некоторых системах наблюдаются проблемы.', + ], + + 'api' => [ + 'regenerate' => 'Регенерировать API ключ', + 'revoke' => 'Отозвать API ключ', + ], + + // Metrics + 'metrics' => [ + 'filter' => [ + 'hourly' => 'Часы', + 'daily' => 'Дни', + 'monthly' => 'Месяцы', + ], + ], + + // Subscriber + 'subscriber' => [ + 'subscribe' => 'Подпишитесь, чтобы получать информацию об изменениях.', + 'button' => 'Подписка', + 'email' => [ + 'subscribe' => 'Подписка на рассылку об изменениях.', + 'subscribed' => 'Вы подписались на рассылку email уведомлений. Проверьте вашу почту, чтобы подтвердить подписку.', + 'verified' => 'Ваша подписка подтверждена. Спасибо!', + 'unsubscribe' => 'Отписаться от рассылки.', + 'unsubscribed' => 'Ваша подписка отменена.', + 'failure' => 'Произошла ошибка при подписке на рассылку.', + 'verify' => [ + 'text' => "Пожалуйста подтвердите вашу подписку на уведомления об изменениях статуса проекта :app_name.\n:link\nСпасибо! :app_name", + 'html-preheader' => 'Пожалуйста подтвердите подписку на уведомления :app_name.', + 'html' => '

Пожалуйста подтвердите вашу подписку на уведомления об изменениях статуса проекта :app_name.

:link

Спасибо! :app_name

', + ], + 'maintenance' => [ + 'text' => "На проекте :app_name запланированы технические работы.\nСпасибо! :app_name", + 'html-preheader' => 'Плановые работы на проекте :app_name.', + 'html' => '

На проекте :app_name запланированы технические работы.

Спасибо! :app_name

', + ], + 'incident' => [ + 'text' => "На проекте :app_name добавлен новый инцидент.\nСпасибо! :app_name", + 'html-preheader' => 'Новый инцидент на проекте :app_name.', + 'html' => '

На проекте :app_name добавлен новый инцидент.

Спасибо! :app_name

', + ], + ], + ], + + // Other + 'powered_by' => ':app Статусная страница работает на Cachet.', + 'about_this_site' => 'Об этом сайте', + 'rss-feed' => 'RSS фид', + 'atom-feed' => 'Atom фид', + 'feed' => 'Статус фид', + +]; diff --git a/resources/lang/ru/dashboard.php b/resources/lang/ru/dashboard.php new file mode 100644 index 000000000..f91f5adaf --- /dev/null +++ b/resources/lang/ru/dashboard.php @@ -0,0 +1,196 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return [ + + 'dashboard' => 'Панель управления', + + // Incidents + 'incidents' => [ + 'title' => 'Инциденты и Плановые работы', + 'incidents' => 'Инциденты', + 'logged' => '{0} Нет инцидентов, отличная работа!|У вас записан один инцидент.|Записано инцидентов: :count', + 'incident-create-template' => 'Добавить Шаблон', + 'incident-templates' => 'Шаблоны Инцидентов', + 'add' => [ + 'title' => 'Добавить инцидент', + 'success' => 'Инцидент добавлен.', + 'failure' => 'Что-то пошло не так при добавлении инцидента.', + ], + 'edit' => [ + 'title' => 'Правка инцидента', + 'success' => 'Инцидент обновлен.', + 'failure' => 'Что-то пошло не так при изменении инцидента.', + ], + + // Incident templates + 'templates' => [ + 'title' => 'Шаблоны инцидентов', + 'add' => [ + 'title' => 'Создать шаблон инцидента', + 'success' => 'Шаблон создан.', + 'failure' => 'Что-то пошло не так при создании шаблона.', + ], + 'edit' => [ + 'title' => 'Правка шаблона', + 'success' => 'Шаблон обновлен!', + 'failure' => 'Что-то пошло не так при изменении шаблона.', + ], + ], + ], + + // Incident Maintenance + 'schedule' => [ + 'schedule' => 'Плановые работы', + 'scheduled_at' => 'Запланировано :timestamp', + 'add' => [ + 'title' => 'Добавить плановые работы', + 'success' => 'Плановые работы добавлены.', + 'failure' => 'Что-то пошло не так при добавлении плановых работ.', + ], + 'edit' => [ + 'title' => 'Правка плановых работ', + 'success' => 'Плановые работы обновлены!', + 'failure' => 'Что-то пошло не так при изменении плановых работ.', + ], + 'delete' => [ + 'success' => 'Плановые работы удалены и не будут отображаться на вашей статусной странице.', + 'failure' => 'Не удается удалить плановые работы. Попробуйте еще раз.', + ], + ], + + // Components + 'components' => [ + 'components' => 'Компоненты', + 'component_statuses' => 'Статус Компонентов', + 'listed_group' => 'В группе :name', + 'add' => [ + 'title' => 'Добавить компонент', + 'message' => 'Вам необходимо добавить хотя бы один компонент.', + 'success' => 'Компонент создан.', + 'failure' => 'Что-то пошло не так при создании компонента.', + ], + 'edit' => [ + 'title' => 'Правка компонента', + 'success' => 'Компонент обновлен.', + 'failure' => 'Что-то пошло не так при изменении компонента.', + ], + + // Component groups + 'groups' => [ + 'groups' => 'Группа компонентов|Группы компонентов', + 'no_components' => 'Вам необходимо добавить группу компонентов', + 'add' => [ + 'title' => 'Добавить группу компонентов', + 'success' => 'Группа компонентов создана.', + 'failure' => 'Что-то пошло не так при создании группы компонентов.', + ], + 'edit' => [ + 'title' => 'Правка группы компонентов', + 'success' => 'Группа компонентов обновлена.', + 'failure' => 'Что-то пошло не так при изменении группы компонентов.', + ], + ], + ], + + // Metrics + 'metrics' => [ + 'metrics' => 'Метрики', + 'add' => [ + 'title' => 'Создать метрику', + 'success' => 'Метрика создана.', + 'failure' => 'Что-то пошло не так при создании метрики.', + ], + 'edit' => [ + 'title' => 'Правка метрики', + 'success' => 'Метрика обновлена.', + 'failure' => 'Что-то пошло не так при изменении метрики.', + ], + ], + + // Team + 'team' => [ + 'team' => 'Компания', + 'member' => 'Сотрудник', + 'profile' => 'Профиль', + 'description' => 'Сотрудники компании смогут добавлять и изменять компоненты и инциденты.', + 'add' => [ + 'title' => 'Добавить сотрудника', + 'success' => 'Сотрудник добавлен.', + 'failure' => 'Что-то пошло не так при добавлении сотрудника.', + ], + 'edit' => [ + 'title' => 'Обновить профиль', + 'success' => 'Профиль изменен.', + 'failure' => 'Что-то пошло не так при изменении профиля.', + ], + ], + + // Settings + 'settings' => [ + 'settings' => 'Настройки', + 'app-setup' => [ + 'app-setup' => 'Настройки приложения', + 'images-only' => 'Могут быть загружены только картинки.', + 'too-big' => 'Загруженный вами файл слишком большой. Загрузите картинку меньше чем :size', + ], + 'security' => [ + 'security' => 'Безопасность', + 'two-factor' => 'Пользователи без двухфакторной авторизации', + ], + 'stylesheet' => [ + 'stylesheet' => 'CSS-стили', + ], + 'theme' => [ + 'theme' => 'Тема', + ], + 'edit' => [ + 'success' => 'Настройки сохранены.', + 'failure' => 'Не удается сохранить настройки.', + ], + ], + + // Login + 'login' => [ + 'login' => 'Вход', + 'logged_in' => 'Вы успешно вошли.', + 'welcome' => 'Добро пожаловать!', + 'two-factor' => 'Пожалуйста, введите ваш токен.', + ], + + // Sidebar footer + 'help' => 'Помощь', + 'status_page' => 'Статусная страница', + 'logout' => 'Выйти', + + // Notifications + 'notifications' => [ + 'notifications' => 'Уведомления', + 'awesome' => 'Отлично!', + 'whoops' => 'Ой-ой!', + ], + + // Welcome modal + 'welcome' => [ + 'welcome' => 'Добро пожаловать в Cachet', + 'message' => 'Ваша статусная страница почти готова! Возможно, вы захотите настроить дополнительные параметры', + 'close' => 'Я хочу сразу в панель управления', + 'steps' => [ + 'component' => 'Создать компоненты', + 'incident' => 'Создать инциденты', + 'customize' => 'Настроить', + 'team' => 'Добавить пользователей', + 'api' => 'Сгенерировать API токен', + 'two-factor' => 'Двухфакторная авторизация', + ], + ], + +]; diff --git a/resources/lang/ru/forms.php b/resources/lang/ru/forms.php new file mode 100644 index 000000000..8c9ad946a --- /dev/null +++ b/resources/lang/ru/forms.php @@ -0,0 +1,147 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return [ + + // Setup form fields + 'setup' => [ + 'email' => 'Email', + 'username' => 'Имя пользователя', + 'password' => 'Пароль', + 'site_name' => 'Название сайта', + 'site_domain' => 'Домен', + 'site_timezone' => 'Выберите временную зону', + 'site_locale' => 'Выберите язык', + 'enable_google2fa' => 'Включить двухфакторную авторизацию через Google', + 'cache_driver' => 'Cache Driver', + 'session_driver' => 'Session Driver', + ], + + // Login form fields + 'login' => [ + 'email' => 'Email', + 'password' => 'Пароль', + '2fauth' => 'Код аутентификации', + 'invalid' => 'Неправильный email или пароль', + 'invalid-token' => 'Неправильный токен', + 'cookies' => 'Необходимо включить cookies для входа.', + ], + + // Incidents form fields + 'incidents' => [ + 'name' => 'Название', + 'status' => 'Статус', + 'component' => 'Компонент', + 'message' => 'Сообщение', + 'message-help' => 'Вы можете использовать Markdown.', + 'scheduled_at' => 'Когда запланированы работы?', + 'incident_time' => 'Когда инцидент произошел?', + 'notify_subscribers' => 'Уведомить подписчиков', + 'visibility' => 'Видимость Инцидента', + 'public' => 'Доступен публично', + 'logged_in_only' => 'Видимый только авторизованным пользователям', + 'templates' => [ + 'name' => 'Название', + 'template' => 'Шаблон', + ], + ], + + // Components form fields + 'components' => [ + 'name' => 'Название', + 'status' => 'Статус', + 'group' => 'Группа', + 'description' => 'Описание', + 'link' => 'Ссылка', + 'tags' => 'Теги', + 'tags-help' => 'Разделитель - запятые.', + + 'groups' => [ + 'name' => 'Название', + ], + ], + + // Metric form fields + 'metrics' => [ + 'name' => 'Название', + 'suffix' => 'Суффикс', + 'description' => 'Описание', + 'description-help' => 'Вы можете использовать Markdown.', + 'display-chart' => 'Отображать график на статусной странице?', + 'default-value' => 'Значение по-умолчанию', + 'calc_type' => 'Расчет метрики', + 'type_sum' => 'Сумма', + 'type_avg' => 'Среднее значение', + + 'points' => [ + 'value' => 'Значение', + ], + ], + + // Settings + 'settings' => [ + /// Application setup + 'app-setup' => [ + 'site-name' => 'Название сайта', + 'site-url' => 'URL сайта', + 'site-timezone' => 'Временная зона', + 'site-locale' => 'Язык', + 'date-format' => 'Формат даты', + 'incident-date-format' => 'Формат даты и времени инцидента', + 'display-graphs' => 'Отображать графики на статусной странице?', + 'about-this-page' => 'Об этой странице', + 'days-of-incidents' => 'Сколько дней показывать инциденты?', + 'banner' => 'Картинка-баннер', + 'banner-help' => "Рекомендуется загружать картинки не больше 930 пикс. в ширину.", + 'analytics_google' => 'Код Google Analytics', + 'analytics_gosquared' => 'Код GoSquared Analytics', + 'analytics_piwik_url' => 'URL установки Piwik (без http(s)://)', + 'analytics_piwik_siteid' => 'Идентификатор сайта в Piwik', + 'subscribers' => 'Разрешить посетителям подписываться на email-уведомления?', + ], + 'security' => [ + 'allowed-domains' => 'Разрешенные домены', + 'allowed-domains-help' => 'Разделитель - запятые. Домен, установленный в настройках разрешен по-умолчанию.', + ], + 'stylesheet' => [ + 'custom-css' => 'Собственная css-таблица', + ], + 'theme' => [ + 'background-color' => 'Цвет фона', + 'text-color' => 'Цвет текста', + ], + ], + + 'user' => [ + 'username' => 'Имя пользователя', + 'email' => 'Email', + 'password' => 'Пароль', + 'api-token' => 'API токен', + 'api-token-help' => 'Регенерирование API токена заблокирует существующим приложениям доступ в Cachet. Вам будет необходимо прописать в них новый токен.', + '2fa' => [ + 'help' => 'Включение двухфакторной аутентификации увеличивает безопасность вашей учетной записи. Вам понадобится скачать Google Authenticator или аналогичное приложение на свой смартфон. Когда в следующий раз вы войдете в панель управления, вам понадобится токен, выданный этим приложением.', + ], + ], + + // Buttons + 'add' => 'Добавить', + 'save' => 'Сохранить', + 'update' => 'Обновить', + 'create' => 'Создать', + 'edit' => 'Правка', + 'delete' => 'Удалить', + 'submit' => 'Сохранить', + 'cancel' => 'Отмена', + 'remove' => 'Удалить', + + // Other + 'optional' => '* не обязательное', +]; diff --git a/resources/lang/ru/pagination.php b/resources/lang/ru/pagination.php new file mode 100644 index 000000000..bdba8d079 --- /dev/null +++ b/resources/lang/ru/pagination.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return [ + + /* + |-------------------------------------------------------------------------- + | Pagination Language Lines + |-------------------------------------------------------------------------- + | + | The following language lines are used by the paginator library to build + | the simple pagination links. You are free to change them to anything + | you want to customize your views to better match your application. + | + */ + + 'previous' => '« Предыдущая', + 'next' => 'Следующая »', + +]; diff --git a/resources/lang/ru/reminders.php b/resources/lang/ru/reminders.php new file mode 100644 index 000000000..f49659208 --- /dev/null +++ b/resources/lang/ru/reminders.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return [ + + /* + |-------------------------------------------------------------------------- + | Password Reminder Language Lines + |-------------------------------------------------------------------------- + | + | The following language lines are the default lines which match reasons + | that are given by the password broker for a password update attempt + | has failed, such as for an invalid token or invalid new password. + | + */ + + 'password' => 'Пароли должны совпадать и быть не меньше 6 символов.', + 'user' => 'Неудается найти пользователя с таким email-адресом', + 'token' => 'Токен для сброса пароля не верен.', + 'sent' => 'Напоминание пароля отправлено!', + 'reset' => 'Пароль сброшен!', + +]; diff --git a/resources/lang/ru/setup.php b/resources/lang/ru/setup.php new file mode 100644 index 000000000..6679ff8be --- /dev/null +++ b/resources/lang/ru/setup.php @@ -0,0 +1,24 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return [ + 'setup' => 'Установка', + 'title' => 'Установка Cachet', + 'service_details' => 'Детали сервиса', + 'env_setup' => 'Настройка окружения', + 'status_page_setup' => 'Настройка страницы статуса', + 'show_support' => 'Показывать, что статусная страница создана на Cachet?', + 'admin_account' => 'Учетная запись администратора', + 'complete_setup' => 'Завершить установку', + 'completed' => 'Cachet успешно настроен!', + 'finish_setup' => 'Перейти в панель управления', + 'allow_tracking' => 'Разрешить отправку анонимной статистики использования?', +]; diff --git a/resources/lang/ru/validation.php b/resources/lang/ru/validation.php new file mode 100644 index 000000000..31b1805fa --- /dev/null +++ b/resources/lang/ru/validation.php @@ -0,0 +1,116 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return [ + + /* + |-------------------------------------------------------------------------- + | Validation Language Lines + |-------------------------------------------------------------------------- + | + | The following language lines contain the default error messages used by + | the validator class. Some of these rules have multiple versions such + | as the size rules. Feel free to tweak each of these messages here. + | + */ + + 'accepted' => ':attribute должно быть принято.', + 'active_url' => ':attribute не является корректным URL-адресом', + 'after' => ':attribute должно быть датой после :date.', + 'alpha' => ':attribute может содержать только буквы.', + 'alpha_dash' => ':attribute может содержать только буквы, цифры и дефисы.', + 'alpha_num' => ':attribute может содержать только буквы и цифры.', + 'array' => ':attribute должно быть массивом.', + 'before' => ':attribute должно быть датой до :date.', + 'between' => [ + 'numeric' => ':attribute должно быть между :min и :max.', + 'file' => ':attribute должно быть от :min до :max килобайт.', + 'string' => ':attribute должно быть от :min до :max символов.', + 'array' => ':attribute должно содержать от :min до :max элементов.', + ], + 'boolean' => 'Поле :attribute должно содержать true или false.', + 'confirmed' => 'Поля :attribute подтверждения не совпадает.', + 'date' => ':attribute не является корректной датой.', + 'date_format' => ':attribute не соответствует формату :format.', + 'different' => ':attribute и :other должны различаться.', + 'digits' => ':attribute должно содержать :digits цифр.', + 'digits_between' => ':attribute должно содержать от :min до :max цифр.', + 'email' => ':attribute не является корректным email-адресом.', + 'exists' => 'Выбранное значение :attribute не верно.', + 'image' => ':attribute должно быть картинкой.', + 'in' => 'Выбранное значение :attribute не верно.', + 'integer' => ':attribute должно быть целым числом.', + 'ip' => ':attribute не является корректным IP-адресом.', + 'max' => [ + 'numeric' => ':attribute не может быть больше :max.', + 'file' => ':attribute не может быть больше :max килобайт.', + 'string' => ':attribute не может быть больше :max символов.', + 'array' => ':attribute не может содержать больше чем :max элементов.', + ], + 'mimes' => ':attribute должно быть файлов типа: :values.', + 'min' => [ + 'numeric' => ':attribute не может быть меньше :min.', + 'file' => ':attribute не может быть меньше :min килобайт.', + 'string' => ':attribute не может быть меньше :min символов.', + 'array' => ':attribute не может содержать меньше чем :min элементов.', + ], + 'not_in' => 'Выбранное значение :attribute не верно.', + 'numeric' => ':attribute должно быть числом.', + 'regex' => ':attribute формат неверен.', + 'required' => 'Поле :attribute является обязательным.', + 'required_if' => 'Поле :attribute является обязательным, если :other имеет значение :value.', + 'required_with' => 'Поле :attribute является обязательным, если заполнено :values.', + 'required_with_all' => 'Поле :attribute является обязательным, если :values заполнены.', + 'required_without' => 'Поле :attribute является обязательным, если :values не заполнены.', + 'required_without_all' => 'Поле :attribute является обязательным, если ни одно из :values не заполнены.', + 'same' => 'Поля :attribute и :other должны совпадать.', + 'size' => [ + 'numeric' => 'The :attribute must be :size.', + 'file' => 'The :attribute must be :size kilobytes.', + 'string' => 'The :attribute must be :size characters.', + 'array' => 'The :attribute must contain :size items.', + ], + 'string' => 'The :attribute must be a string.', + 'unique' => 'The :attribute has already been taken.', + 'url' => 'Не верный формат :attribute.', + 'timezone' => ':attribute должно быть корректной временной зоной.', + + /* + |-------------------------------------------------------------------------- + | Custom Validation Language Lines + |-------------------------------------------------------------------------- + | + | Here you may specify custom validation messages for attributes using the + | convention "attribute.rule" to name the lines. This makes it quick to + | specify a specific custom language line for a given attribute rule. + | + */ + + 'custom' => [ + 'attribute-name' => [ + 'rule-name' => 'custom-message', + ], + ], + + /* + |-------------------------------------------------------------------------- + | Custom Validation Attributes + |-------------------------------------------------------------------------- + | + | The following language lines are used to swap attribute place-holders + | with something more reader friendly such as E-Mail Address instead + | of "email". This simply helps us make messages a little cleaner. + | + */ + + 'attributes' => [], + +];