From a5b68527bb6e140daec95fe2b16509d449210335 Mon Sep 17 00:00:00 2001 From: digitalkiller Date: Sun, 18 Aug 2019 22:02:34 +0500 Subject: [PATCH 1/2] Added a Russian localization --- ui/src/translations/ru.ts | 165 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 ui/src/translations/ru.ts diff --git a/ui/src/translations/ru.ts b/ui/src/translations/ru.ts new file mode 100644 index 000000000..71e212642 --- /dev/null +++ b/ui/src/translations/ru.ts @@ -0,0 +1,165 @@ +export const ru = { + translation: { + post: 'запись', + remove_post: 'Удалить запись', + no_posts: 'Нет записей.', + create_a_post: 'Создать запись', + create_post: 'Создать запись', + number_of_posts:'{{count}} записей', + posts: 'Записи', + related_posts: 'Эти записи могут быть связаны', + comments: 'Комментарии', + number_of_comments:'{{count}} комментариев', + remove_comment: 'Удалить комментарий', + communities: 'Сообщества', + users: 'Пользователи', + create_a_community: 'Создать сообщество', + create_community: 'Создать сообщество', + remove_community: 'Удалить сообщество', + subscribed_to_communities:'Подписаны на <1>сообщества', + trending_communities:'<1>Сообщества в тренде', + list_of_communities: 'Список сообществ', + community_reqs: 'строчными буквами, подчеркиваниями и без пробелов.', + edit: 'редактировать', + reply: 'ответить', + cancel: 'Отмена', + unlock: 'разблокировать', + lock: 'заблокировать', + link: 'ссылка', + mod: 'модератор', + mods: 'модераторы', + moderates: 'Модерация', + settings: 'Настройки', + remove_as_mod: 'снять из модераторов', + appoint_as_mod: 'назначить модератором', + modlog: 'Модлог', + admin: 'администратор', + admins: 'администраторы', + remove_as_admin: 'снять из администраторов', + appoint_as_admin: 'назначить администратором', + remove: 'убрать', + removed: 'убрано', + locked: 'заблокировано', + reason: 'Причина', + mark_as_read: 'пометить как прочитанное', + mark_as_unread: 'пометить как непрочитанное', + delete: 'удалить', + deleted: 'удалено', + restore: 'восстановить', + ban: 'заблокировать', + ban_from_site: 'заблокировать на сайте', + unban: 'разблокировать', + unban_from_site: 'разблокировать на сайте', + save: 'сохранить', + unsave: 'не сохранять', + create: 'создать', + username: 'Имя пользователя', + email_or_username: 'Электронная почта или имя пользователя', + number_of_users:'{{count}} пользователей', + number_of_subscribers:'{{count}} подписчиков', + number_of_points:'{{count}} баллов', + name: 'Имя', + title: 'Название', + category: 'Категория', + subscribers: 'Подписчики', + both: 'Оба', + saved: 'Сохранено', + unsubscribe: 'Отписаться', + subscribe: 'Подписаться', + subscribed: 'Подписаны', + prev: 'Назад', + next: 'Далее', + sidebar: 'Боковая панель', + sort_type: 'Тип сортировки', + hot: 'Популярно', + new: 'Новое', + top_day: 'Лучшее за день', + week: 'Неделя', + month: 'Месяц', + year: 'Год', + all: 'Всё', + top: 'Лучшее', + api: 'API', + inbox: 'Входящие', + inbox_for: 'Входящие сообщения для <1>{{user}}', + mark_all_as_read: 'пометить все как прочитанные', + type: 'Тип', + unread: 'Не прочитано', + reply_sent: 'Ответ отправлен', + search: 'Поиск', + overview: 'Обзор', + view: 'Просмотр', + logout: 'Выйти', + login_sign_up: 'Войти / Регистрация', + login: 'Авторизация', + sign_up: 'Регистрация', + notifications_error: 'Уведомления на рабочем столе недоступны в вашем браузере. Попробуйте Firefox или Chrome.', + unread_messages: 'Непрочитанные сообщения', + password: 'Пароль', + verify_password: 'Повторите пароль', + email: 'Электронная почта', + optional: 'Необязательно', + expires: 'Истёк', + url: 'URL', + body: 'Тело', + copy_suggested_title: 'предложенное название: {{title}}', + community: 'Сообщество', + expand_here: 'Расширить здесь', + subscribe_to_communities: 'Подпишитесь на некоторые <1>сообщества.', + chat: 'Чат', + no_results: 'Нет результатов.', + setup: 'Установка', + lemmy_instance_setup: 'Установка инстанции Lemmy', + setup_admin: 'Настройка администратора сайта', + your_site: 'ваш сайт', + modified: 'изменено', + nsfw: 'NSFW', + show_nsfw: 'Показывать NSFW-контент', + sponsors: 'Спонсоры', + sponsors_of_lemmy: 'Спонсоры Lemmy', + sponsor_message: 'Lemmy это бесплатное, <1>открытое программное обеспечение, что означает отсутствие рекламы, монетизации или венчурного капитала, никогда. Ваши пожертвования напрямую поддерживают развитие проекта. Спасибо нижеуказанным людям:', + support_on_patreon: 'Поддержать на Patreon', + general_sponsors:'Генеральные спонсоры - это те, кто пообещал Lemmy от $10 до $39.', + crypto: 'Крипто', + bitcoin: 'Bitcoin', + ethereum: 'Ethereum', + code: 'Код', + joined: 'Присоединился', + powered_by: 'Работает на', + landing_0: 'Lemmy - это <1>агрегатор ссылок / альтернатива reddit, предназначенный для работы в <2>федиверсе.<3>Это самодостаточная система, с обновляемыми комментариями, и эта система крошечная (<4>~80 Кб). Федерация в сети ActivityPub находится в разработке. <5>Это <6>очень ранняя бета-версия, и многие функции в настоящее время сломаны или отсутствуют. <7>Предлагать новые функции или сообщать об ошибках можно <8>здесь.<9>Сделано на <10>Rust, <11>Actix, <12>Inferno, <13>Typescript.', + not_logged_in: 'Не авторизованы.', + community_ban: 'Вы были заблокированы на данном сообществе.', + site_ban: 'Вы были заблокированы на данном сайте', + couldnt_create_comment: 'Не получилось создать комментарий.', + couldnt_like_comment: 'Не получилось лайкнуть комментарий.', + couldnt_update_comment: 'Не получилось обновить комментарий.', + couldnt_save_comment: 'Не получилось сохранить комментарий.', + no_comment_edit_allowed: 'Невозможно отредактировать комментарий.', + no_post_edit_allowed: 'Невозможно отредактировать запись.', + no_community_edit_allowed: 'Невозможно отредактировать сообщество.', + couldnt_find_community: 'Не получилось найти сообщество.', + couldnt_update_community: 'Не получилось обновить сообщество.', + community_already_exists: 'Сообщество уже существует.', + community_moderator_already_exists: 'Модератор сообщества уже существует.', + community_follower_already_exists: 'Подписчик сообщества уже существует.', + community_user_already_banned: 'Пользователь сообщества уже заблокирован.', + couldnt_create_post: 'Не получилось создать запись.', + couldnt_like_post: 'Не получилось лайкнуть запись.', + couldnt_find_post: 'Не получилось найти запись.', + couldnt_get_posts: 'Не получилось найти записи', + couldnt_update_post: 'Не получилось обновить запись', + couldnt_save_post: 'Не получилось сохранить запись.', + no_slurs: 'Без оскорблений.', + not_an_admin: 'Не администратор.', + site_already_exists: 'Сайт уже существует.', + couldnt_update_site: 'Не получилось обновить сайт.', + couldnt_find_that_username_or_email: 'Не получилось найти данное имя пользователя или электронную почту.', + password_incorrect: 'Неверный пароль.', + passwords_dont_match: 'Пароли не совпадают.', + admin_already_created: 'Извините, уже есть администратор.', + user_already_exists: 'Пользователь уже существует.', + couldnt_update_user: 'Не получилось обновить пользователя.', + system_err_login: 'Системная ошибка. Попробуйте выйти из системы и вернуться обратно.', + }, +} + From fa625e560b223a1047ab94be2e3bcb9fd6a40954 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Mon, 19 Aug 2019 14:29:28 -0700 Subject: [PATCH 2/2] Adding russian locales. --- ui/src/components/moment-time.tsx | 1 + ui/src/i18next.ts | 2 ++ ui/src/utils.ts | 2 ++ 3 files changed, 5 insertions(+) diff --git a/ui/src/components/moment-time.tsx b/ui/src/components/moment-time.tsx index cadd49226..a8d8dcad9 100644 --- a/ui/src/components/moment-time.tsx +++ b/ui/src/components/moment-time.tsx @@ -4,6 +4,7 @@ import 'moment/locale/de'; import 'moment/locale/zh-cn'; import 'moment/locale/fr'; import 'moment/locale/sv'; +import 'moment/locale/ru'; import { getMomentLanguage } from '../utils'; import { i18n } from '../i18next'; diff --git a/ui/src/i18next.ts b/ui/src/i18next.ts index 2bd5d5594..2c0c54192 100644 --- a/ui/src/i18next.ts +++ b/ui/src/i18next.ts @@ -5,6 +5,7 @@ import { de } from './translations/de'; import { zh } from './translations/zh'; import { fr } from './translations/fr'; import { sv } from './translations/sv'; +import { ru } from './translations/ru'; // https://github.com/nimbusec-oss/inferno-i18next/blob/master/tests/T.test.js#L66 // TODO don't forget to add moment locales for new languages. @@ -14,6 +15,7 @@ const resources = { zh, fr, sv, + ru, } function format(value: any, format: any, lng: any) { diff --git a/ui/src/utils.ts b/ui/src/utils.ts index 27dcdca35..a2e13c02c 100644 --- a/ui/src/utils.ts +++ b/ui/src/utils.ts @@ -184,6 +184,8 @@ export function getMomentLanguage(): string { lang = 'fr'; } else if (lang.startsWith('de')) { lang = 'de'; + } else if (lang.startsWith('ru')) { + lang = 'ru'; } else { lang = 'en'; }