Added i18n support (#129)

This commit is contained in:
Doh
2025-05-18 09:00:48 -04:00
committed by GitHub
parent 95197e216c
commit 91ffe46863
47 changed files with 3603 additions and 455 deletions

407
messages/ru.json Normal file
View File

@@ -0,0 +1,407 @@
{
"Dashboard": {
"title": "Панель управления"
},
"HabitList": {
"myTasks": "Мои задачи",
"myHabits": "Мои привычки",
"addTaskButton": "Добавить задачу",
"addHabitButton": "Добавить привычку",
"searchTasksPlaceholder": "Поиск задач...",
"searchHabitsPlaceholder": "Поиск привычек...",
"sortByLabel": "Сортировать по:",
"sortByName": "Имени",
"sortByCoinReward": "Награде",
"sortByDueDate": "Сроку",
"sortByFrequency": "Частоте",
"toggleSortOrderAriaLabel": "Переключить порядок сортировки",
"noTasksFoundMessage": "Задачи не найдены.",
"noHabitsFoundMessage": "Привычки не найдены.",
"emptyStateTasksTitle": "Нет задач",
"emptyStateHabitsTitle": "Нет привычек",
"emptyStateTasksDescription": "Создайте свою первую задачу",
"emptyStateHabitsDescription": "Создайте свою первую привычку",
"archivedSectionTitle": "Архив",
"deleteTaskDialogTitle": "Удалить задачу",
"deleteHabitDialogTitle": "Удалить привычку",
"deleteTaskDialogMessage": "Вы уверены, что хотите удалить эту задачу? Это действие нельзя отменить.",
"deleteHabitDialogMessage": "Вы уверены, что хотите удалить эту привычку? Это действие нельзя отменить.",
"deleteButton": "Удалить"
},
"DailyOverview": {
"addTaskButtonLabel": "Добавить задачу",
"addHabitButtonLabel": "Добавить привычку",
"todaysOverviewTitle": "Сегодня",
"dailyTasksTitle": "Задачи на сегодня",
"noTasksDueTodayMessage": "Нет задач на сегодня.",
"dailyHabitsTitle": "Привычки на сегодня",
"noHabitsDueTodayMessage": "Нет привычек на сегодня.",
"wishlistGoalsTitle": "Цели",
"redeemableBadgeLabel": "{count}/{total} Доступно",
"noWishlistItemsMessage": "Нет целей.",
"readyToRedeemMessage": "Доступно!",
"coinsToGoMessage": "Осталось {amount} монет",
"showLessButton": "Свернуть",
"showAllButton": "Показать все",
"viewButton": "Просмотр",
"deleteTaskDialogTitle": "Удалить задачу",
"deleteHabitDialogTitle": "Удалить привычку",
"confirmDeleteDialogMessage": "Вы уверены, что хотите удалить \"{name}\"? Это действие нельзя отменить.",
"deleteButton": "Удалить",
"overdueTooltip": "Просрочено"
},
"HabitContextMenuItems": {
"startPomodoro": "Начать помидорку",
"moveToToday": "Перенести на сегодня",
"moveToTomorrow": "Перенести на завтра",
"unpin": "Открепить",
"pin": "Закрепить",
"edit": "Редактировать",
"archive": "В архив",
"unarchive": "Из архива",
"delete": "Удалить"
},
"HabitStreak": {
"dailyCompletionStreakTitle": "Ежедневный прогресс",
"tooltipHabitsLabel": "привычки",
"tooltipTasksLabel": "задачи",
"tooltipCompletedLabel": "Выполнено"
},
"CoinBalance": {
"coinBalanceTitle": "Баланс"
},
"AddEditHabitModal": {
"editTaskTitle": "Редактировать задачу",
"editHabitTitle": "Редактировать привычку",
"addNewTaskTitle": "Новая задача",
"addNewHabitTitle": "Новая привычка",
"nameLabel": "Название *",
"descriptionLabel": "Описание",
"whenLabel": "Когда *",
"completeLabel": "Выполнено",
"timesSuffix": "раз",
"rewardLabel": "Награда",
"coinsSuffix": "монет",
"shareLabel": "Поделиться",
"saveChangesButton": "Сохранить",
"addTaskButton": "Добавить задачу",
"addHabitButton": "Добавить привычку"
},
"ConfirmDialog": {
"confirmButton": "Подтвердить",
"cancelButton": "Отмена"
},
"AddEditWishlistItemModal": {
"editTitle": "Редактировать цель",
"addTitle": "Новая цель",
"nameLabel": "Название *",
"descriptionLabel": "Описание",
"costLabel": "Стоимость",
"coinsSuffix": "монет",
"redeemableLabel": "Доступно",
"timesSuffix": "раз",
"errorNameRequired": "Название обязательно",
"errorCoinCostMin": "Минимальная стоимость 1 монета",
"errorTargetCompletionsMin": "Минимум 1 выполнение",
"errorInvalidUrl": "Некорректная ссылка",
"linkLabel": "Ссылка",
"shareLabel": "Поделиться",
"saveButton": "Сохранить",
"addButton": "Добавить цель"
},
"Navigation": {
"dashboard": "Панель",
"tasks": "Задачи",
"habits": "Привычки",
"calendar": "Календарь",
"wishlist": "Цели",
"coins": "Монеты"
},
"TodayEarnedCoins": {
"todaySuffix": "сегодня"
},
"WishlistItem": {
"usesLeftSingular": "использование",
"usesLeftPlural": "использований",
"coinsSuffix": "монет",
"redeem": "Использовать",
"redeemedDone": "Готово",
"redeemedExclamation": "Использовано!",
"editButton": "Редактировать",
"archiveButton": "В архив",
"unarchiveButton": "Из архива",
"deleteButton": "Удалить"
},
"WishlistManager": {
"title": "Мои цели",
"addRewardButton": "Добавить цель",
"emptyStateTitle": "Нет целей",
"emptyStateDescription": "Добавьте цели, которые хотите достичь",
"archivedSectionTitle": "Архив",
"popupBlockedTitle": "Блокировка",
"popupBlockedDescription": "Разрешите всплывающие окна для открытия ссылки",
"deleteDialogTitle": "Удалить цель",
"deleteDialogMessage": "Вы уверены, что хотите удалить эту цель? Это действие нельзя отменить.",
"deleteButton": "Удалить"
},
"UserSelectModal": {
"addUserButton": "Добавить пользователя",
"createNewUserTitle": "Создать нового пользователя",
"selectUserTitle": "Выбрать пользователя",
"signInSuccessTitle": "Успешный вход",
"signInSuccessDescription": "Добро пожаловать, {username}!",
"errorInvalidPassword": "Неверный пароль"
},
"CoinsManager": {
"title": "Управление монетами",
"currentBalanceLabel": "Текущий баланс",
"coinsSuffix": "монет",
"addCoinsButton": "Добавить монеты",
"removeCoinsButton": "Удалить монеты",
"statisticsTitle": "Статистика",
"totalEarnedLabel": "Всего заработано",
"totalSpentLabel": "Всего потрачено",
"totalTransactionsLabel": "Всего транзакций",
"todaysEarnedLabel": "Заработано сегодня",
"todaysSpentLabel": "Потрачено сегодня",
"todaysTransactionsLabel": "Транзакций сегодня",
"transactionHistoryTitle": "История транзакций",
"showLabel": "Показать:",
"entriesSuffix": "записей",
"showingEntries": "Показано с {from} по {to} из {total} записей",
"noTransactionsTitle": "Нет транзакций",
"noTransactionsDescription": "История транзакций появится здесь, когда вы начнете зарабатывать или тратить монеты",
"pageLabel": "Страница",
"ofLabel": "из",
"transactionTypeHabitCompletion": "Выполнение привычки",
"transactionTypeTaskCompletion": "Выполнение задачи",
"transactionTypeHabitUndo": "Отмена привычки",
"transactionTypeTaskUndo": "Отмена задачи",
"transactionTypeWishRedemption": "Использование цели",
"transactionTypeManualAdjustment": "Ручная корректировка",
"transactionTypeCoinReset": "Сброс монет",
"transactionTypeInitialBalance": "Начальный баланс"
},
"NotificationBell": {
"errorUpdateTimestamp": "Не удалось обновить отметку времени прочтения уведомления:"
},
"PomodoroTimer": {
"focusLabel1": "Сосредоточьтесь",
"focusLabel2": "У вас получится",
"focusLabel3": "Продолжайте",
"focusLabel4": "Разгромите это",
"focusLabel5": "Воплотите это в жизнь",
"focusLabel6": "Оставайтесь сильными",
"focusLabel7": "Прорвитесь",
"focusLabel8": "Один шаг за раз",
"focusLabel9": "Вы можете это сделать",
"focusLabel10": "Сосредоточьтесь и побеждайте",
"breakLabel1": "Передохните",
"breakLabel2": "Расслабьтесь и перезагрузитесь",
"breakLabel3": "Дышите глубже",
"breakLabel4": "Потянитесь",
"breakLabel5": "Освежитесь",
"breakLabel6": "Вы этого заслуживаете",
"breakLabel7": "Восстановите энергию",
"breakLabel8": "Отойдите на немного",
"breakLabel9": "Очистите свой разум",
"breakLabel10": "Отдохните и восстановитесь",
"focusType": "Фокус",
"breakType": "Перерыв",
"pauseButton": "Пауза",
"startButton": "Старт",
"resetButton": "Сброс",
"skipButton": "Пропустить",
"wakeLockNotSupported": "Браузер не поддерживает блокировку экрана",
"wakeLockInUse": "Блокировка экрана уже используется",
"wakeLockRequestError": "Ошибка запроса блокировки экрана:",
"wakeLockReleaseError": "Ошибка освобождения блокировки экрана:"
},
"HabitCalendar": {
"title": "Календарь привычек",
"calendarCardTitle": "Календарь",
"selectDatePrompt": "Выберите дату",
"tasksSectionTitle": "Задачи",
"habitsSectionTitle": "Привычки",
"errorCompletingPastHabit": "Ошибка завершения прошлой привычки:"
},
"NotificationDropdown": {
"notLoggedIn": "Не выполнен вход.",
"userCompletedItem": "{username} выполнил(а) {itemName}.",
"userRedeemedItem": "{username} использовал(а) {itemName}.",
"activityRelatedToItem": "Действие, связанное с {itemName}, пользователем {username}.",
"defaultUsername": "Кто-то",
"defaultItemName": "общий элемент",
"notificationsTitle": "Уведомления",
"notificationsTooltip": "Показывает завершения или погашения другими пользователями для привычек или списка желаний, которыми вы поделились с ними (вы должны быть администратором)",
"noNotificationsYet": "Пока нет уведомлений."
},
"AboutModal": {
"dialogArisLabel": "о программе",
"changelogButton": "Список изменений",
"createdByPrefix": "Сделано с любовью ❤️ от",
"starOnGitHubButton": "Звезда на GitHub"
},
"PermissionSelector": {
"permissionsTitle": "Разрешения",
"adminAccessLabel": "Доступ администратора",
"adminAccessDescription": "Администраторы имеют полный доступ ко всем данным для всех пользователей",
"resourceHabitTask": "Привычка / Задача",
"resourceWishlist": "Список желаний",
"resourceCoins": "Монеты",
"permissionWrite": "Запись",
"permissionInteract": "Взаимодействие"
},
"UserForm": {
"toastUserUpdatedTitle": "Пользователь обновлен",
"toastUserUpdatedDescription": "Пользователь {username} успешно обновлен",
"toastUserCreatedTitle": "Пользователь создан",
"toastUserCreatedDescription": "Пользователь {username} успешно создан",
"actionUpdate": "обновить",
"actionCreate": "создать",
"errorFailedUserAction": "Не удалось {action} пользователя",
"errorTitle": "Ошибка",
"errorFileSizeLimit": "Размер файла должен быть менее 5 МБ",
"toastAvatarUploadedTitle": "Аватар загружен",
"toastAvatarUploadedDescription": "Аватар успешно загружен",
"errorFailedAvatarUpload": "Не удалось загрузить аватар",
"changeAvatarButton": "Изменить аватар",
"uploadAvatarButton": "Загрузить аватар",
"usernameLabel": "Имя пользователя",
"usernamePlaceholder": "Имя пользователя",
"newPasswordLabel": "Новый пароль",
"passwordLabel": "Пароль",
"passwordPlaceholderEdit": "Оставьте пустым, чтобы сохранить текущий",
"passwordPlaceholderCreate": "Введите пароль",
"demoPasswordDisabledMessage": "Пароль автоматически отключен в демонстрационном экземпляре",
"disablePasswordLabel": "Отключить пароль",
"cancelButton": "Отмена",
"saveChangesButton": "Сохранить изменения",
"createUserButton": "Создать пользователя"
},
"ViewToggle": {
"habitsLabel": "Привычки",
"tasksLabel": "Задачи"
},
"HabitItem": {
"overdue": "Просрочено",
"whenLabel": "Когда: {frequency}",
"coinsPerCompletion": "{count} монет за выполнение",
"completedStatus": "Выполнено",
"completedStatusCount": "Выполнено ({completed}/{target})",
"completedStatusCountMobile": "{completed}/{target}",
"completeButton": "Выполнить",
"completeButtonCount": "Выполнить ({completed}/{target})",
"completeButtonCountMobile": "{completed}/{target}",
"undoButton": "Отменить",
"editButton": "Редактировать"
},
"TransactionNoteEditor": {
"noteTooLongTitle": "Слишком длинная заметка",
"noteTooLongDescription": "Заметки должны быть менее 200 символов",
"errorSavingNoteTitle": "Ошибка сохранения заметки",
"errorDeletingNoteTitle": "Ошибка удаления заметки",
"pleaseTryAgainDescription": "Пожалуйста, попробуйте еще раз",
"addNotePlaceholder": "Добавить заметку...",
"saveNoteTitle": "Сохранить заметку",
"cancelButtonTitle": "Отмена",
"deleteNoteTitle": "Удалить заметку",
"editNoteAriaLabel": "Редактировать заметку"
},
"Profile": {
"guestUsername": "Гость",
"editProfileButton": "Редактировать профиль",
"signOutSuccessTitle": "Выход выполнен успешно",
"signOutSuccessDescription": "Вы вышли из своей учетной записи",
"signOutErrorTitle": "Ошибка выхода",
"signOutErrorDescription": "Не удалось выйти",
"switchUserButton": "Сменить пользователя",
"settingsLink": "Настройки",
"aboutButton": "О программе",
"themeLabel": "Тема",
"editProfileModalTitle": "Редактировать профиль"
},
"PasswordEntryForm": {
"notYouButton": "Не вы?",
"passwordLabel": "Пароль",
"passwordPlaceholder": "Введите пароль",
"loginErrorToastTitle": "Ошибка",
"loginFailedErrorToastDescription": "Не удалось войти",
"cancelButton": "Отмена",
"loginButton": "Войти"
},
"CompletionCountBadge": {
"countCompleted": "{completedCount}/{totalCount} выполнено"
},
"SettingsPage": {
"title": "Настройки",
"uiSettingsTitle": "Интерфейс",
"numberFormattingLabel": "Формат чисел",
"numberFormattingDescription": "Использовать сокращения (например, 1К, 1М, 1Млрд)",
"numberGroupingLabel": "Разделители",
"numberGroupingDescription": "Использовать разделители тысяч (например, 1 000 вместо 1000)",
"systemSettingsTitle": "Система",
"timezoneLabel": "Часовой пояс",
"timezoneDescription": "Выберите ваш часовой пояс",
"weekStartDayLabel": "Первый день недели",
"weekStartDayDescription": "Выберите первый день недели",
"weekdays": {
"sunday": "Воскресенье",
"monday": "Понедельник",
"tuesday": "Вторник",
"wednesday": "Среда",
"thursday": "Четверг",
"friday": "Пятница",
"saturday": "Суббота"
},
"autoBackupLabel": "Авто-бэкап",
"autoBackupTooltip": "При включении данные будут автоматически резервироваться ежедневно около 2:00 по времени сервера. Бэкапы хранятся в виде ZIP-файлов в директории `backups/`. Хранятся только последние 7 бэкапов.",
"autoBackupDescription": "Автоматическое резервное копирование данных",
"languageLabel": "Язык",
"languageDescription": "Выберите предпочитаемый язык интерфейса.",
"languageChangedTitle": "Язык изменен",
"languageChangedDescription": "Перезагрузите страницу для применения изменений",
"languageDisabledInDemoTooltip": "Смена языка недоступна в демо-версии."
},
"Common": {
"authenticationRequiredTitle": "Требуется аутентификация",
"authenticationRequiredDescription": "Пожалуйста, войдите, чтобы продолжить.",
"permissionDeniedTitle": "Отказано в доступе",
"permissionDeniedDescription": "У вас нет разрешения на {action} для {resource}.",
"undoButton": "Отменить",
"redoButton": "Повторить",
"errorTitle": "Ошибка"
},
"useHabits": {
"alreadyCompletedTitle": "Уже выполнено",
"alreadyCompletedDescription": "Вы уже выполнили эту привычку сегодня.",
"completedTitle": "Выполнено!",
"earnedCoinsDescription": "Вы заработали {coinReward} монет.",
"progressTitle": "Прогресс!",
"progressDescription": "Вы выполнили {count}/{target} раз сегодня.",
"completionUndoneTitle": "Выполнение отменено",
"completionUndoneDescription": "У вас {count}/{target} выполнений сегодня.",
"noCompletionsToUndoTitle": "Нет отмен",
"noCompletionsToUndoDescription": "Эта привычка не была выполнена сегодня.",
"alreadyCompletedPastDateTitle": "Уже выполнено",
"alreadyCompletedPastDateDescription": "Эта привычка уже была выполнена {dateKey}.",
"earnedCoinsPastDateDescription": "Вы заработали {coinReward} монет за {dateKey}.",
"progressPastDateDescription": "Вы выполнили {count}/{target} раз {dateKey}."
},
"useWishlist": {
"redemptionLimitReachedTitle": "Достигнут лимит погашения",
"redemptionLimitReachedDescription": "Вы достигли максимального количества погашений для \"{itemName}\".",
"rewardRedeemedTitle": "🎉 Награда получена!",
"rewardRedeemedDescription": "Вы получили \"{itemName}\" за {itemCoinCost} монет.",
"notEnoughCoinsTitle": "Недостаточно монет",
"notEnoughCoinsDescription": "Вам нужно еще {coinsNeeded} монет, чтобы получить эту награду."
},
"useCoins": {
"invalidAmountTitle": "Неверная сумма",
"invalidAmountDescription": "Пожалуйста, введите положительное число",
"successTitle": "Успех",
"addedCoinsDescription": "Добавлено {amount} монет",
"removedCoinsDescription": "Удалено {amount} монет",
"transactionNotFoundDescription": "Транзакция не найдена"
}
}