From 294e70010dd31a633d7033ed7ed65c761225ab69 Mon Sep 17 00:00:00 2001 From: riichi <88538677+riichi67@users.noreply.github.com> Date: Fri, 16 Aug 2024 13:19:12 +0200 Subject: [PATCH] chore(i18n): add russian translation (#947) * Create ru-RU.locale.ts * Update locale.ts added ru-RU * small fix for ru-RU.locale.ts * another fix for ru-RU.locale.ts * and another fix for russian locale * Update ru-RU.locale.ts * final fix for russian locale --------- Co-authored-by: rii <88538677+riivx@users.noreply.github.com> --- client/src/locale/locale.ts | 6 ++ client/src/locale/ru-RU.locale.ts | 134 ++++++++++++++++++++++++++++++ 2 files changed, 140 insertions(+) create mode 100644 client/src/locale/ru-RU.locale.ts diff --git a/client/src/locale/locale.ts b/client/src/locale/locale.ts index 7a151649..4c436d2b 100644 --- a/client/src/locale/locale.ts +++ b/client/src/locale/locale.ts @@ -15,6 +15,7 @@ import deLocale from './de-DE.locale' import nlLocale from './nl-NL.locale' import idLocale from './id-ID.locale' import trLocale from './tr-TR.locale' +import ruLocale from './ru-RU.locale' import { NumericDisplayHandler } from '../hooks/useNumericDisplay' import { arabic } from './numeric-systems/arabic' import { bengali } from './numeric-systems/bengali' @@ -195,6 +196,9 @@ export const translations = { tr: { translation: trLocale, }, + ru: { + translation: ruLocale + }, } as const satisfies Resource export const localeNumericDisplay = { @@ -213,6 +217,7 @@ export const localeNumericDisplay = { de: arabic, id: arabic, tr: arabic, + ru: arabic, 'bn-IN': bengali, } satisfies Record @@ -231,6 +236,7 @@ export const localeFlags: Record = { 'pt-BR': 'PT 🇧🇷', 'pt-PT': 'PT 🇵🇹', ro: 'RO 🇷🇴', + ru: 'RU 🇷🇺', sv: 'SV 🇸🇪', tr: 'TR 🇹🇷', } diff --git a/client/src/locale/ru-RU.locale.ts b/client/src/locale/ru-RU.locale.ts new file mode 100644 index 00000000..ada486cc --- /dev/null +++ b/client/src/locale/ru-RU.locale.ts @@ -0,0 +1,134 @@ +import Locale from './locale' + +export default { + home: { + title: 'Паксталл', + subtitle: 'AUR для Ubuntu', + cards: { + whyDifferent: { + title: 'Чем это отличается от любого другого пакетного менеджера?', + description: + 'Паксталл использует стабильную базу Ubuntu, но позволяет использовать ' + + "новейшие программы почти что без компромиссов, так что вам не " + + 'нужно беспокоиться о патчах безопасности или новом функционале.', + }, + howItWorks: { + title: 'Тогда как это работает?', + description: + ' Паксталл использует файлы, известные как <0>пакскрипты (похоже' + + ' на PKGBUILD-ы) которые содержат обязательные компоненты для сборки пакетов,' + + ' и собирает из них исполняемые файлы на вашей системе.', + }, + }, + installationInstructions: 'Инструкция по установке', + showcase: { + title: 'Шоукейс', + packageSearch: 'Поиск пакетов', + }, + }, + navbar: { + title: 'Pacstall', + contribute: { + title: 'Внести вклад', + workOnFeatures: 'Работать над новым функционалом', + helpTranslate: 'Помочь с переводом', + becomeAMaintainer: 'Станьте сопровождающим пакета', + }, + social: { + title: 'Соцсети', + discord: 'Дискорд', + matrix: 'Матрикс', + reddit: 'Реддит', + lemmy: 'Лемми', + mastodon: 'Мастодон', + }, + browse: { + title: 'Просмотреть пакеты', + }, + privacy: { + title: 'Политика конфиденциальности', + }, + install: 'Установить', + }, + cookieConsent: { + title: 'Уведомление о куки', + paragraphs: [ + "Привет, мы используем cookie-файлы на нашем сайте.", + "Мы не любим давать вводящую в заблужение или ложную информацию. Мы используем cookie только для основных функций, таких как настройки темы, переводы и аутентификация.", + 'Вы можете прочитать полную политику конфиденциальности <0>здесь <1/>.', + 'Продолжая пользоваться этим сайтом, вы соглашаетесь с политикой конфиденциальности.', + ], + accept: 'Окей', + }, + packageSearch: { + dropdown: { + package: 'Пакет', + packageTooltip: 'Ищет по именам пакетов и описаниям', + maintainer: 'Сопровождающий', + maintainerTooltip: 'Ищет по именам сопровождающих и почтам', + }, + table: { + name: 'Название', + maintainer: 'Сопровождающий', + version: 'Версия', + install: 'Установить', + }, + versionTooltip: { + notInRegistry: 'Этот пакет не в реестре Repology', + latest: 'Этот пакет последней версии', + patch: 'Для этого пакета есть доступный патч', + minor: 'Для этого пакета есть незначительное обновление', + major: 'Для этого пакета есть крупное обновление', + isGit: 'Этот пакет - это Git-пакет', + }, + noResults: 'Не находите то, что хотели? <0>Создайте запрос!', + search: 'Поиск', + orphaned: 'Осиротевший', + maintainerTooltip: { + maintainedBy: 'Этот пакет обслуживается {{ name }}', + noMaintainer: 'Этот пакет не обслуживается', + }, + pagination: { + previous: 'Назад', + next: 'Вперёд', + }, + }, + packageDetails: { + table: { + name: 'Название', + version: 'Версия', + maintainer: 'Разработчик', + dependencies: 'Зависимости', + requiredBy: 'Требуется', + lastUpdatedAt: 'Последнее обновление', + }, + orphaned: 'Осиротевший', + noResults: 'Нет', + openInGithub: 'Открыть на Github', + view: 'Посмотреть', + howToInstall: { + title: 'Как скачать', + step1: 'Шаг 1: Установить Паксталл', + step2: 'Шаг 2: Установить {{ name }}', + }, + dependenciesModal: { + title: 'Зависимости', + buildDependencies: 'Зависимости для сборки', + optionalDependencies: 'Необязательные зависимости', + runtimeDependencies: 'Зависимости среды выполнения', + pacstallDependencies: 'Зависимости Паксталл', + name: 'Название', + close: 'Закрыть', + provider: 'Провайдер', + noDescription: 'Нет доступного описания', + version: 'Версия', + }, + requiredByModal: { + title: 'Требуется', + name: 'Название', + provider: 'Провайдер', + close: 'Закрыть', + noDescription: 'Нет доступного описания', + }, + }, +}