Merge branch 'digitalkiller-master'

This commit is contained in:
Dessalines 2019-08-19 14:29:38 -07:00
commit 67d949722b
4 changed files with 170 additions and 0 deletions

View file

@ -4,6 +4,7 @@ import 'moment/locale/de';
import 'moment/locale/zh-cn'; import 'moment/locale/zh-cn';
import 'moment/locale/fr'; import 'moment/locale/fr';
import 'moment/locale/sv'; import 'moment/locale/sv';
import 'moment/locale/ru';
import { getMomentLanguage } from '../utils'; import { getMomentLanguage } from '../utils';
import { i18n } from '../i18next'; import { i18n } from '../i18next';

View file

@ -5,6 +5,7 @@ import { de } from './translations/de';
import { zh } from './translations/zh'; import { zh } from './translations/zh';
import { fr } from './translations/fr'; import { fr } from './translations/fr';
import { sv } from './translations/sv'; import { sv } from './translations/sv';
import { ru } from './translations/ru';
// https://github.com/nimbusec-oss/inferno-i18next/blob/master/tests/T.test.js#L66 // 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. // TODO don't forget to add moment locales for new languages.
@ -14,6 +15,7 @@ const resources = {
zh, zh,
fr, fr,
sv, sv,
ru,
} }
function format(value: any, format: any, lng: any) { function format(value: any, format: any, lng: any) {

165
ui/src/translations/ru.ts Normal file
View file

@ -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>сообщества</1>',
trending_communities:'<1>Сообщества</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}}</1>',
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>сообщества</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>открытое</1> программное обеспечение, что означает отсутствие рекламы, монетизации или венчурного капитала, никогда. Ваши пожертвования напрямую поддерживают развитие проекта. Спасибо нижеуказанным людям:',
support_on_patreon: 'Поддержать на Patreon',
general_sponsors:'Генеральные спонсоры - это те, кто пообещал Lemmy от $10 до $39.',
crypto: 'Крипто',
bitcoin: 'Bitcoin',
ethereum: 'Ethereum',
code: 'Код',
joined: 'Присоединился',
powered_by: 'Работает на',
landing_0: 'Lemmy - это <1>агрегатор ссылок</1> / альтернатива reddit, предназначенный для работы в <2>федиверсе</2>.<3></3>Это самодостаточная система, с обновляемыми комментариями, и эта система крошечная (<4>~80 Кб</4>). Федерация в сети ActivityPub находится в разработке. <5></5>Это <6>очень ранняя бета-версия</6>, и многие функции в настоящее время сломаны или отсутствуют. <7></7>Предлагать новые функции или сообщать об ошибках можно <8>здесь.</8><9></9>Сделано на <10>Rust</10>, <11>Actix</11>, <12>Inferno</12>, <13>Typescript</13>.',
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: 'Системная ошибка. Попробуйте выйти из системы и вернуться обратно.',
},
}

View file

@ -184,6 +184,8 @@ export function getMomentLanguage(): string {
lang = 'fr'; lang = 'fr';
} else if (lang.startsWith('de')) { } else if (lang.startsWith('de')) {
lang = 'de'; lang = 'de';
} else if (lang.startsWith('ru')) {
lang = 'ru';
} else { } else {
lang = 'en'; lang = 'en';
} }