feat: add russian translation (#305)
chore: add build step for discord notification of new releases
This commit is contained in:
parent
7ee8f5bb5f
commit
ae04d50329
7
.github/workflows/build-release.yaml
vendored
7
.github/workflows/build-release.yaml
vendored
@ -76,3 +76,10 @@ jobs:
|
||||
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
- name: Send notification to Discord
|
||||
if: github.event_name != 'pull_request'
|
||||
uses: Ilshidur/action-discord@master
|
||||
with:
|
||||
args: "A new release has been created: ${{ steps.meta.outputs.tags }}"
|
||||
env:
|
||||
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
|
||||
@ -14,6 +14,7 @@
|
||||
"pl" => "Polski",
|
||||
"pt" => "Português",
|
||||
"pt_br" => "Português Brasileiro",
|
||||
"ru" => "Русский",
|
||||
"sr_lat" => "Srpski",
|
||||
"sr" => "Српски",
|
||||
"tr" => "Türkçe",
|
||||
|
||||
254
includes/i18n/ru.php
Normal file
254
includes/i18n/ru.php
Normal file
@ -0,0 +1,254 @@
|
||||
<?php
|
||||
|
||||
$i18n = [
|
||||
// Registration page
|
||||
"create_account" => "Вам необходимо создать учетную запись, прежде чем вы сможете войти в систему",
|
||||
'username' => "Имя пользователя",
|
||||
'password' => "Пароль",
|
||||
"email" => "E-mail",
|
||||
"confirm_password" => "Подтвердите пароль",
|
||||
"main_currency" => "Основная валюта",
|
||||
"language" => "Язык",
|
||||
"passwords_dont_match" => "Пароли не совпадают",
|
||||
"registration_failed" => "Регистрация не удалась, попробуйте еще раз.",
|
||||
"register" => "Регистрация",
|
||||
"restore_database" => "Восстановить базу данных",
|
||||
// Login Page
|
||||
'please_login' => "Пожалуйста, войдите",
|
||||
'stay_logged_in' => "Оставаться в системе (30 дней)",
|
||||
'login' => "Авторизоваться",
|
||||
'login_failed' => "Данные для входа неверны",
|
||||
// Header
|
||||
'subscriptions' => "Подписки",
|
||||
'stats' => "Статистика",
|
||||
'settings' => "Настройки",
|
||||
'about' => "О программе",
|
||||
'logout' => "Выйти",
|
||||
// Subscriptions page
|
||||
"subscription" => "Подписка",
|
||||
"no_subscriptions_yet" => "У вас пока нет подписок",
|
||||
"add_first_subscription" => "Добавить первую подписку",
|
||||
'new_subscription' => "Новая подписка",
|
||||
'search' => "Поиск",
|
||||
'sort' => "Сортировка",
|
||||
'name' => "Имя",
|
||||
'last_added' => "Последний добавленный",
|
||||
'price' => "Стоимость",
|
||||
'next_payment' => "Следующий платеж",
|
||||
'inactive' => "Отключить подписку",
|
||||
'member' => "Член",
|
||||
'category' => "Категория",
|
||||
'payment_method' => "Способ оплаты",
|
||||
"Daily" => "День",
|
||||
"Weekly" => "Неделя",
|
||||
"Monthly" => "Месяц",
|
||||
"Yearly" => "Год",
|
||||
"daily" => "День(и)",
|
||||
"weekly" => "Неделя(и)",
|
||||
"monthly" => "Месяц(ы)",
|
||||
"yearly" => "Год(ы)",
|
||||
"days" => "дней",
|
||||
"weeks" => "недель",
|
||||
"months" => "месяцев",
|
||||
"years" => "года",
|
||||
"external_url" => "Посетите внешний URL-адрес",
|
||||
"empty_page" => "Пустая страница",
|
||||
"clear_filters" => "Очистить фильтры",
|
||||
"no_matching_subscriptions" => "Нет подходящих подписок",
|
||||
// Subscription form
|
||||
"add_subscription" => "Добавить подписку",
|
||||
"edit_subscription" => "Изменить подписку",
|
||||
"subscription_name" => "Название подписки",
|
||||
"logo_preview" => "Предварительный просмотр логотипа",
|
||||
"search_logo" => "Поиск логотипа в Интернете",
|
||||
"web_search" => "Веб-поиск",
|
||||
"currency" => "Валюта",
|
||||
"payment_every" => "Оплата каждые",
|
||||
"frequency" => "Частота",
|
||||
"cycle" => "Цикл",
|
||||
"next_payment" => "Следующий платеж",
|
||||
"payment_method" => "Способ оплаты",
|
||||
"no_category" => "Нет категории",
|
||||
"paid_by" => "Оплачивает",
|
||||
"url" => "URL",
|
||||
"notes" => "Примечания",
|
||||
"enable_notifications" => "Включить уведомления для этой подписки",
|
||||
"delete" => "Удалить",
|
||||
"cancel" => "Отмена",
|
||||
"upload_logo" => "Загрузить логотип",
|
||||
// Statistics page
|
||||
'general_statistics' => "Общая статистика",
|
||||
'active_subscriptions' => "Активные подписки",
|
||||
'inactive_subscriptions' => "Неактивные подписки",
|
||||
'monthly_cost' => "Ежемесячная стоимость",
|
||||
'yearly_cost' => "Годовая стоимость",
|
||||
'average_monthly' => "Средняя ежемесячная стоимость подписки",
|
||||
'most_expensive' => "Самая дорогая стоимость подписки",
|
||||
'amount_due' => "Сумма к оплате в этом месяце",
|
||||
'monthly_savings' => "Ежемесячная экономия (при неактивных подписках)",
|
||||
'split_views' => "Подробная статистика",
|
||||
'category_split' => "По категориям",
|
||||
'household_split' => "По членам семьи",
|
||||
'payment_method_split' => "По способам оплаты",
|
||||
// About page
|
||||
'about_and_credits' => "О компании и авторах",
|
||||
'license' => "Лицензия",
|
||||
'issues_and_requests' => "Проблемы и вопросы",
|
||||
'the_author' => "Автор",
|
||||
'icons' => "Значки",
|
||||
'payment_icons' => "Значки способов оплаты",
|
||||
// Settings page
|
||||
'upload_avatar' => "Загрузить аватар",
|
||||
'file_type_error' => "Указанный тип файла не поддерживается.",
|
||||
'user_details' => "Данные пользователя",
|
||||
"household" => "Семья",
|
||||
"save_member" => "Сохранить члена семьи",
|
||||
"delete_member" => "Удалить члена семьи",
|
||||
"cant_delete_member" => "Не могу удалить основного члена семьи",
|
||||
"cant_delete_member_in_use" => "Невозможно удалить члена семьи, используемого в подписке.",
|
||||
'household_info' => "Поле электронной почты позволяет членам семьи получать уведомления об истечении срока действия подписки.",
|
||||
"notifications" => "Уведомления",
|
||||
"enable_email_notifications" => "Включить уведомления по электронной почте",
|
||||
"notify_me" => "Уведомить меня",
|
||||
"day_before" => "день до события",
|
||||
"days_before" => "дня до события",
|
||||
"smtp_address" => "SMTP-адрес",
|
||||
"port" => "Порт",
|
||||
"tls" => "TLS",
|
||||
"ssl" => "SSL",
|
||||
"smtp_username" => "Имя пользователя SMTP",
|
||||
"smtp_password" => "Пароль SMTP",
|
||||
"from_email" => "От кого E-Mail (необязательно)",
|
||||
"smtp_info" => "Пароль SMTP передается и сохраняется в виде открытого текста. В целях безопасности создайте учетную запись только для Wallos.",
|
||||
"telegram" => "Telegram",
|
||||
"telegram_bot_token" => "Токен Telegram-бота",
|
||||
"telegram_chat_id" => "Telegram Chat ID",
|
||||
"webhook" => "Webhook",
|
||||
"webhook_url" => "Webhook URL",
|
||||
"request_method" => "Метод запроса",
|
||||
"custom_headers" => "Пользовательские заголовки",
|
||||
"webhook_payload" => "Webhook Payload",
|
||||
"webhook_iterator_key" => "Заменить {{subscriptions}} именем ключа.",
|
||||
"variables_available" => "Доступные переменные",
|
||||
"gotify" => "Gotify",
|
||||
"token" => "Токен",
|
||||
"discord" => "Discord",
|
||||
"discord_bot_username" => "Имя пользователя бота Discord",
|
||||
"discord_bot_avatar_url" => "URL-адрес аватара бота Discord",
|
||||
"pushover" => "Pushover",
|
||||
"pushover_user_key" => "Ключ пользователя Pushover",
|
||||
"categories" => "Категории",
|
||||
"save_category" => "Сохранить категорию",
|
||||
"delete_category" => "Удалить категорию",
|
||||
"cant_delete_category_in_use" => "Невозможно удалить категорию, используемую в подписке.",
|
||||
"currencies" => "Валюты",
|
||||
"save_currency" => "Сохранить валюту",
|
||||
"delete_currency" => "Удалить валюту",
|
||||
"cant_delete_main_currency" => "Не могу удалить основную валюту",
|
||||
"cant_delete_currency_in_use" => "Невозможно удалить валюту, используемую в подписке.",
|
||||
"exchange_update" => "Курсы валют последний раз обновлялись",
|
||||
"currency_info" => "Найдите поддерживаемые валюты и правильные коды валют на",
|
||||
"currency_performance" => "Для повышения производительности сохраняйте только те валюты, которые вы используете.",
|
||||
"fixer_api_key" => "Ключ Fixer API",
|
||||
"api_key" => "API ключ",
|
||||
"provider" => "Провайдер",
|
||||
"fixer_info" => "Если вы используете несколько валют и хотите получить точную статистику и сортировку подписок, вам необходим БЕСПЛАТНЫЙ ключ API от Fixer.",
|
||||
"get_key" => "Получите ключ по адресу",
|
||||
"get_free_fixer_api_key" => "Получите бесплатный ключ API Fixer",
|
||||
"get_key_alternative" => "Кроме того, вы можете получить бесплатный ключ API Fixer на сайте",
|
||||
"display_settings" => "Настройки отображения",
|
||||
"theme_settings" => "Настройки темы",
|
||||
"custom_colors" => "Пользовательские цвета",
|
||||
"dark_theme" => "Темная тема",
|
||||
"switch_theme" => "Переключить светлую/темную тему",
|
||||
"calculate_monthly_price" => "Рассчитайть и показать ежемесячную цену для всех подписок",
|
||||
"convert_prices" => "Всегда конвертировать и показывать цены в моей основной валюте (медленнее)",
|
||||
"hide_disabled_subscriptions" => "Скрыть отключенные подписки",
|
||||
"experimental_settings" => "Экспериментальные настройки",
|
||||
"remove_background" => "Попытка удалить фон логотипов из поиска изображений (экспериментально).",
|
||||
"experimental_info" => "Экспериментальные настройки, вероятно, не будут работать идеально.",
|
||||
"payment_methods" => "Способы оплаты",
|
||||
"payment_methods_info" => "Нажмите на способ оплаты, чтобы отключить/включить его.",
|
||||
"rename_payment_methods_info" => "Нажмите на название способа оплаты, чтобы переименовать его.",
|
||||
"cant_delete_payment_method_in_use" => "Невозможно отключить используемый способ оплаты",
|
||||
"add_custom_payment" => "Добавить собственный способ оплаты",
|
||||
"payment_method_name" => "Название способа оплаты",
|
||||
"payment_method_added_successfuly" => "Способ оплаты успешно добавлен",
|
||||
"payment_method_removed" => "Способ оплаты удален.",
|
||||
"disable" => "Отключить",
|
||||
"enable" => "Включить",
|
||||
"rename_payment_method" => "Переименовать способ оплаты",
|
||||
"payment_renamed" => "Способ оплаты переименован",
|
||||
"payment_not_renamed" => "Способ оплаты не переименован",
|
||||
"test" => "Тест",
|
||||
"add" => "Добавить",
|
||||
"save" => "Сохранить",
|
||||
"reset" => "Перезагрузить",
|
||||
"backup_and_restore" => "Резервное копирование и восстановление",
|
||||
"backup" => "Резервное копирование",
|
||||
"restore" => "Восстановление",
|
||||
"restore_info" => "Восстановление базы данных отменит все текущие данные. После восстановления вы выйдете из системы.",
|
||||
// Filters menu
|
||||
"filter" => "Фильтр",
|
||||
"clear" => "Очистить",
|
||||
// Toast
|
||||
"success" => "Успешно",
|
||||
// Endpoint responses
|
||||
"session_expired" => "Срок действия вашей сессии истек. Пожалуйста, войдите снова",
|
||||
"fields_missing" => "Некоторые поля отсутствуют",
|
||||
"fill_all_fields" => "Пожалуйста заполните все поля",
|
||||
"fill_mandatory_fields" => "Пожалуйста, заполните все обязательные поля",
|
||||
"error" => "Ошибка",
|
||||
// Category
|
||||
"failed_add_category" => "Не удалось добавить категорию",
|
||||
"failed_edit_category" => "Не удалось изменить категорию",
|
||||
"category_in_use" => "Категория используется в подписках и не может быть удалена.",
|
||||
"failed_remove_category" => "Не удалось удалить категорию",
|
||||
"category_saved" => "Категория сохранена",
|
||||
"category_removed" => "Категория удалена",
|
||||
"sort_order_saved" => "Порядок сортировки сохранен.",
|
||||
// Currency
|
||||
"currency_saved" => "сохранено.",
|
||||
"error_adding_currency" => "Ошибка добавления валюты.",
|
||||
"failed_to_store_currency" => "Не удалось сохранить валюту в базе данных.",
|
||||
"currency_in_use" => "Валюта используется в подписках и не может быть удалена.",
|
||||
"currency_is_main" => "Валюта установлена в качестве основной и не может быть удалена.",
|
||||
"failed_to_remove_currency" => "Не удалось удалить валюту из базы данных.",
|
||||
"failed_to_store_api_key" => "Не удалось сохранить ключ API в базе данных.",
|
||||
"invalid_api_key" => "Неверный ключ API.",
|
||||
"api_key_saved" => "Ключ API успешно сохранен",
|
||||
"currency_removed" => "Валюта удалена",
|
||||
// Household
|
||||
"failed_add_household" => "Не удалось добавить члена семьи.",
|
||||
"failed_edit_household" => "Не удалось изменить члена семьи.",
|
||||
"failed_remove_household" => "Не удалось удалить члена семьи.",
|
||||
"household_in_use" => "Член семьи используется в подписках и не может быть удален.",
|
||||
"member_saved" => "Член семьи сохранен",
|
||||
"member_removed" => "Член семьи удален",
|
||||
// Notifications
|
||||
"error_saving_notifications" => "Ошибка сохранения данных уведомлений.",
|
||||
"wallos_notification" => "Уведомление от Wallos",
|
||||
"test_notification" => "Это тестовое уведомление. Если вы видите это, значит, конфигурация правильная.",
|
||||
"email_error" => "Ошибка отправки электронной почты",
|
||||
"notification_sent_successfuly" => "Уведомление успешно отправлено",
|
||||
"notifications_settings_saved" => "Настройки уведомлений успешно сохранены.",
|
||||
"notification_failed" => "Уведомление не удалось",
|
||||
// Payments
|
||||
"payment_in_use" => "Невозможно отключить используемый способ оплаты",
|
||||
"failed_update_payment" => "Не удалось обновить способ оплаты в базе данных.",
|
||||
"enabled" => "включено",
|
||||
"disabled" => "отключено",
|
||||
// Subscription
|
||||
"error_fetching_image" => "Ошибка при загрузке изображения.",
|
||||
"subscription_updated_successfuly" => "Подписка успешно обновлена",
|
||||
"subscription_added_successfuly" => "Подписка успешно добавлена",
|
||||
"error_deleting_subscription" => "Ошибка удаления подписки.",
|
||||
"invalid_request_method" => "Неверный метод запроса.",
|
||||
// User
|
||||
"error_updating_user_data" => "Ошибка обновления пользовательских данных.",
|
||||
"user_details_saved" => "Данные пользователя сохранены.",
|
||||
|
||||
];
|
||||
|
||||
|
||||
?>
|
||||
@ -1,3 +1,3 @@
|
||||
<?php
|
||||
$version = "v1.25.1";
|
||||
$version = "v1.26.0";
|
||||
?>
|
||||
|
||||
36
scripts/i18n/ru.js
Normal file
36
scripts/i18n/ru.js
Normal file
@ -0,0 +1,36 @@
|
||||
let i18n = {
|
||||
// Dashboard
|
||||
error_reloading_subscription: "Ошибка перезагрузки подписки:",
|
||||
error_fetching_image_results: "Ошибка при получении результатов изображения:",
|
||||
subscription_deleted: "Подписка удалена",
|
||||
error_deleting_subscription: "Ошибка удаления подписки",
|
||||
failed_to_load_subscription: "Не удалось загрузить подписку",
|
||||
edit_subscription: "Изменить подписку",
|
||||
add_subscription: "Добавить подписку",
|
||||
confirm_delete_subscription: "Вы уверены, что хотите удалить эту подписку?",
|
||||
// Settings
|
||||
network_response_error: "Отсутствует сетевое соединение",
|
||||
failed_add_member: "Не удалось добавить пользователя",
|
||||
member: "Пользователь",
|
||||
email: "Электронная почта",
|
||||
save_member: "Сохранить пользователя",
|
||||
delete_member: "Удалить пользователя",
|
||||
failed_remove_member: "Не удалось удалить пользователя",
|
||||
failed_save_member: "Не удалось сохранить пользователя",
|
||||
failed_add_category: "Не удалось добавить категорию",
|
||||
category: "Категория",
|
||||
save_category: "Сохранить категорию",
|
||||
delete_category: "Удалить категорию",
|
||||
failed_remove_category: "Не удалось удалить категорию",
|
||||
currency: "Валюта",
|
||||
currency_code: "Код валюты",
|
||||
save_currency: "Сохранить валюту",
|
||||
delete_currency: "Удалить валюту",
|
||||
failed_remove_currency: "Не удалось удалить валюту.",
|
||||
failed_save_currency: "Не удалось сохранить валюту.",
|
||||
cant_disable_payment_in_use: "Невозможно отключить используемый платеж",
|
||||
failed_save_payment_method: "Не удалось сохранить способ оплаты.",
|
||||
unknown_error: "Неизвестная ошибка. Повторите попытку.",
|
||||
error_saving_notification_data: "Ошибка сохранения данных уведомления.",
|
||||
error_sending_notification: "Ошибка отправки уведомления",
|
||||
}
|
||||
@ -38,6 +38,7 @@ self.addEventListener('install', function(event) {
|
||||
'scripts/i18n/pl.js',
|
||||
'scripts/i18n/pt.js',
|
||||
'scripts/i18n/pt_br.js',
|
||||
'scripts/i18n/ru.js',
|
||||
'scripts/i18n/tr.js',
|
||||
'scripts/i18n/zh_cn.js',
|
||||
'scripts/i18n/zh_tw.js',
|
||||
|
||||
Loading…
Reference in New Issue
Block a user