Add Russian translation (ru) (#1023)
* Add Russian translation (ru) * Fix a missing comma * Fix the wording for better consistency
This commit is contained in:
parent
e30bbb1cb0
commit
9043b32183
9 changed files with 469 additions and 4 deletions
|
@ -48,6 +48,8 @@ import hu from 'react-intl/locale-data/hu';
|
||||||
import uk from 'react-intl/locale-data/uk';
|
import uk from 'react-intl/locale-data/uk';
|
||||||
import fi from 'react-intl/locale-data/fi';
|
import fi from 'react-intl/locale-data/fi';
|
||||||
import eo from 'react-intl/locale-data/eo';
|
import eo from 'react-intl/locale-data/eo';
|
||||||
|
import ru from 'react-intl/locale-data/ru';
|
||||||
|
|
||||||
import getMessagesForLocale from '../locales';
|
import getMessagesForLocale from '../locales';
|
||||||
import { hydrateStore } from '../actions/store';
|
import { hydrateStore } from '../actions/store';
|
||||||
import createStream from '../stream';
|
import createStream from '../stream';
|
||||||
|
@ -60,7 +62,9 @@ const browserHistory = useRouterHistory(createBrowserHistory)({
|
||||||
basename: '/web'
|
basename: '/web'
|
||||||
});
|
});
|
||||||
|
|
||||||
addLocaleData([...en, ...de, ...es, ...fr, ...pt, ...hu, ...uk, ...fi, ...eo]);
|
|
||||||
|
addLocaleData([...en, ...de, ...es, ...fr, ...pt, ...hu, ...uk, ...fi, ...eo, ...ru]);
|
||||||
|
|
||||||
|
|
||||||
const Mastodon = React.createClass({
|
const Mastodon = React.createClass({
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,8 @@ import pt from './pt';
|
||||||
import uk from './uk';
|
import uk from './uk';
|
||||||
import fi from './fi';
|
import fi from './fi';
|
||||||
import eo from './eo';
|
import eo from './eo';
|
||||||
|
import ru from './ru';
|
||||||
|
|
||||||
|
|
||||||
const locales = {
|
const locales = {
|
||||||
en,
|
en,
|
||||||
|
@ -17,7 +19,9 @@ const locales = {
|
||||||
pt,
|
pt,
|
||||||
uk,
|
uk,
|
||||||
fi,
|
fi,
|
||||||
eo
|
eo,
|
||||||
|
ru
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function getMessagesForLocale (locale) {
|
export default function getMessagesForLocale (locale) {
|
||||||
|
|
68
app/assets/javascripts/components/locales/ru.jsx
Normal file
68
app/assets/javascripts/components/locales/ru.jsx
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
const ru = {
|
||||||
|
"column_back_button.label": "Назад",
|
||||||
|
"lightbox.close": "Закрыть",
|
||||||
|
"loading_indicator.label": "Загрузка...",
|
||||||
|
"status.mention": "Упомянуть @{name}",
|
||||||
|
"status.delete": "Удалить",
|
||||||
|
"status.reply": "Ответить",
|
||||||
|
"status.reblog": "Продвинуть",
|
||||||
|
"status.favourite": "Нравится",
|
||||||
|
"status.reblogged_by": "{name} продвинул(а)",
|
||||||
|
"status.sensitive_warning": "Чувствительный контент",
|
||||||
|
"status.sensitive_toggle": "Нажмите для просмотра",
|
||||||
|
"video_player.toggle_sound": "Вкл./выкл. звук",
|
||||||
|
"account.mention": "Упомянуть @{name}",
|
||||||
|
"account.edit_profile": "Изменить профиль",
|
||||||
|
"account.unblock": "Разблокировать @{name}",
|
||||||
|
"account.unfollow": "Отписаться",
|
||||||
|
"account.block": "Блокировать @{name}",
|
||||||
|
"account.follow": "Подписаться",
|
||||||
|
"account.posts": "Посты",
|
||||||
|
"account.follows": "Подписки",
|
||||||
|
"account.followers": "Подписчики",
|
||||||
|
"account.follows_you": "Подписан(а) на Вас",
|
||||||
|
"account.requested": "Ожидает подтверждения",
|
||||||
|
"getting_started.heading": "Добро пожаловать",
|
||||||
|
"getting_started.about_addressing": "Вы можете подписаться на человека, зная имя пользователя и домен, на котором он находится, введя e-mail-подобный адрес в форму поиска.",
|
||||||
|
"getting_started.about_shortcuts": "Если пользователь находится на одном с Вами домене, можно использовать только имя. То же правило применимо к упоминанию пользователей в статусах.",
|
||||||
|
"getting_started.open_source_notice": "Mastodon - программа с открытым исходным кодом. Вы можете помочь проекту или сообщить о проблемах на GitHub по адресу {github}. {apps}.",
|
||||||
|
"column.home": "Главная",
|
||||||
|
"column.community": "Локальная лента",
|
||||||
|
"column.public": "Глобальная лента",
|
||||||
|
"column.notifications": "Уведомления",
|
||||||
|
"tabs_bar.compose": "Написать",
|
||||||
|
"tabs_bar.home": "Главная",
|
||||||
|
"tabs_bar.mentions": "Упоминания",
|
||||||
|
"tabs_bar.public": "Глобальная лента",
|
||||||
|
"tabs_bar.notifications": "Уведомления",
|
||||||
|
"compose_form.placeholder": "О чем Вы думаете?",
|
||||||
|
"compose_form.publish": "Протрубить",
|
||||||
|
"compose_form.sensitive": "Отметить как чувствительный контент",
|
||||||
|
"compose_form.spoiler": "Скрыть текст за предупреждением",
|
||||||
|
"compose_form.private": "Отметить как приватное",
|
||||||
|
"compose_form.privacy_disclaimer": "Ваш приватный статус будет доставлен упомянутым пользователям на доменах {domains}. Доверяете ли вы {domainsCount, plural, one {этому серверу} other {этим серверам}}? Приватность постов работает только на узлах Mastodon. Если {domains} {domainsCount, plural, one {не является узлом Mastodon} other {не являются узлами Mastodon}}, приватность поста не будет указана, и он может оказаться продвинут или иным образом показан не обозначенным Вами пользователям.",
|
||||||
|
"compose_form.unlisted": "Не отображать в публичных лентах",
|
||||||
|
"navigation_bar.edit_profile": "Изменить профиль",
|
||||||
|
"navigation_bar.preferences": "Опции",
|
||||||
|
"navigation_bar.community_timeline": "Локальная лента",
|
||||||
|
"navigation_bar.public_timeline": "Глобальная лента",
|
||||||
|
"navigation_bar.logout": "Выйти",
|
||||||
|
"reply_indicator.cancel": "Отмена",
|
||||||
|
"search.placeholder": "Поиск",
|
||||||
|
"search.account": "Аккаунт",
|
||||||
|
"search.hashtag": "Хэштег",
|
||||||
|
"upload_button.label": "Добавить медиаконтент",
|
||||||
|
"upload_form.undo": "Отменить",
|
||||||
|
"notification.follow": "{name} подписался(-лась) на Вас",
|
||||||
|
"notification.favourite": "{name} понравился Ваш статус",
|
||||||
|
"notification.reblog": "{name} продвинул(а) Ваш статус",
|
||||||
|
"notification.mention": "{name} упомянул(а) Вас",
|
||||||
|
"notifications.column_settings.alert": "Десктопные уведомления",
|
||||||
|
"notifications.column_settings.show": "Показывать в колонке",
|
||||||
|
"notifications.column_settings.follow": "Новые подписчики:",
|
||||||
|
"notifications.column_settings.favourite": "Нравится:",
|
||||||
|
"notifications.column_settings.mention": "Упоминания:",
|
||||||
|
"notifications.column_settings.reblog": "Продвижения:",
|
||||||
|
};
|
||||||
|
|
||||||
|
export default ru;
|
|
@ -5,13 +5,15 @@ module SettingsHelper
|
||||||
en: 'English',
|
en: 'English',
|
||||||
de: 'Deutsch',
|
de: 'Deutsch',
|
||||||
es: 'Español',
|
es: 'Español',
|
||||||
|
eo: 'Esperanto',
|
||||||
pt: 'Português',
|
pt: 'Português',
|
||||||
fr: 'Français',
|
fr: 'Français',
|
||||||
hu: 'Magyar',
|
hu: 'Magyar',
|
||||||
uk: 'Українська',
|
uk: 'Українська',
|
||||||
'zh-CN': '简体中文',
|
'zh-CN': '简体中文',
|
||||||
fi: 'Suomi',
|
fi: 'Suomi',
|
||||||
eo: 'Esperanto',
|
ru: 'Русский',
|
||||||
|
|
||||||
}.freeze
|
}.freeze
|
||||||
|
|
||||||
def human_locale(locale)
|
def human_locale(locale)
|
||||||
|
|
|
@ -24,7 +24,9 @@ module Mastodon
|
||||||
|
|
||||||
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
||||||
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
||||||
config.i18n.available_locales = [:en, :de, :es, :pt, :fr, :hu, :uk, 'zh-CN', :fi, :eo]
|
|
||||||
|
config.i18n.available_locales = [:en, :de, :es, :pt, :fr, :hu, :uk, 'zh-CN', :fi, :eo, :ru]
|
||||||
|
|
||||||
config.i18n.default_locale = :en
|
config.i18n.default_locale = :en
|
||||||
|
|
||||||
# config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb')
|
# config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb')
|
||||||
|
|
61
config/locales/devise.ru.yml
Normal file
61
config/locales/devise.ru.yml
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
---
|
||||||
|
ru:
|
||||||
|
devise:
|
||||||
|
confirmations:
|
||||||
|
confirmed: Ваш адрес e-mail был успешно подтвержден.
|
||||||
|
send_instructions: Вы получите e-mail с инструкцией по подтверждению Вашего адреса e-mail в течение нескольких минут.
|
||||||
|
send_paranoid_instructions: Если Ваш адрес e-mail есть в нашей базе данных, вы получите e-mail с инструкцией по подтверждению Вашего адреса в течение нескольких минут.
|
||||||
|
failure:
|
||||||
|
already_authenticated: Вы уже авторизованы.
|
||||||
|
inactive: Ваш аккаунт еще не активирован.
|
||||||
|
invalid: Неверно введены %{authentication_keys} или пароль.
|
||||||
|
last_attempt: У Вас есть последняя попытка, после чего вход будет заблокирован.
|
||||||
|
locked: Ваш аккаунт заблокирован.
|
||||||
|
not_found_in_database: Неверно введены %{authentication_keys} или пароль.
|
||||||
|
timeout: Ваша сессия истекла. Пожалуйста, войдите снова, чтобы продолжить.
|
||||||
|
unauthenticated: Вам необходимо войти или зарегистрироваться.
|
||||||
|
unconfirmed: Вам необходимо подтвердить ваш адрес e-mail для продолжения.
|
||||||
|
mailer:
|
||||||
|
confirmation_instructions:
|
||||||
|
subject: 'Mastodon: Инструкция по подтверждению'
|
||||||
|
password_change:
|
||||||
|
subject: 'Mastodon: Пароль изменен'
|
||||||
|
reset_password_instructions:
|
||||||
|
subject: 'Mastodon: Инструкция по сбросу пароля'
|
||||||
|
unlock_instructions:
|
||||||
|
subject: 'Mastodon: Инструкция по разблокировке'
|
||||||
|
omniauth_callbacks:
|
||||||
|
failure: Не получилось аутентифицировать Вас с помощью %{kind} по следующей причине - "%{reason}".
|
||||||
|
success: Аутентификация с помощью аккаунта %{kind} прошла успешно.
|
||||||
|
passwords:
|
||||||
|
no_token: Вы можете получить доступ к этой странице, только перейдя по ссылке в e-mail для сброса пароля. Если Вы действительно перешли по такой ссылке, пожалуйста, удостоверьтесь, что ссылка была введена полностью и без изменений.
|
||||||
|
send_instructions: Вы получите e-mail с инструкцией по сбросу пароля в течение нескольких минут.
|
||||||
|
send_paranoid_instructions: Если Ваш адрес e-mail есть в нашей базе данных, Вы получите e-mail со ссылкой для сброса пароля в течение нескольких минут.
|
||||||
|
updated: Ваш пароль был успешно изменен. Вход выполнен.
|
||||||
|
updated_not_active: Ваш пароль был успешно изменен.
|
||||||
|
registrations:
|
||||||
|
destroyed: До свидания! Ваш аккаунт был успешно удален. Мы надеемся скоро увидеть Вас снова.
|
||||||
|
signed_up: Добро пожаловать! Вы успешно зарегистрировались.
|
||||||
|
signed_up_but_inactive: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать Вас, поскольку Ваш аккаунт еще не активирован.
|
||||||
|
signed_up_but_locked: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать Вас, поскольку Ваш аккаунт заблокирован.
|
||||||
|
signed_up_but_unconfirmed: Сообщение со ссылкой для подтверждения было выслано на Ваш адрес e-mail. Пожалуйста, пройдите по ссылке для активации Вашего аккаунта.
|
||||||
|
update_needs_confirmation: Вы успешно обновили Ваш аккаунт, но нам нужно подтвердить ваш новый адрес e-mail. Пожалуйста, проверьте почту и пройдите по ссылке для подтверждения Вашего нового адреса.
|
||||||
|
updated: Ваш аккаунт был успешно обновлен.
|
||||||
|
sessions:
|
||||||
|
already_signed_out: Выход прошел успешно.
|
||||||
|
signed_in: Вход прошел успешно.
|
||||||
|
signed_out: Выход прошел успешно.
|
||||||
|
unlocks:
|
||||||
|
send_instructions: Вы получите e-mail с инструкцией по разблокировке Вашего аккаунта в течение нескольких минут.
|
||||||
|
send_paranoid_instructions: Если Ваш аккаунт существует, Вы получите e-mail с инструкцией по его разблокировке в течение нескольких минут.
|
||||||
|
unlocked: Ваш аккаунт был успешно разблокирован. пожалуйста, войдите для продолжения.
|
||||||
|
errors:
|
||||||
|
messages:
|
||||||
|
already_confirmed: уже подтвержден, пожалуйста, попробуйте войти
|
||||||
|
confirmation_period_expired: не был подтвержден в течение %{period}, пожалуйста, запросите новый
|
||||||
|
expired: истек, пожалуйста, запросите новый
|
||||||
|
not_found: не найден
|
||||||
|
not_locked: не был заблокирован
|
||||||
|
not_saved:
|
||||||
|
one: '1 ошибка помешала сохранению этого %{resource}:'
|
||||||
|
other: "%{count} ошибки помешали сохранению этого %{resource}:"
|
113
config/locales/doorkeeper.ru.yml
Normal file
113
config/locales/doorkeeper.ru.yml
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
---
|
||||||
|
ru:
|
||||||
|
activerecord:
|
||||||
|
attributes:
|
||||||
|
doorkeeper/application:
|
||||||
|
name: Название
|
||||||
|
redirect_uri: URI перенаправления
|
||||||
|
errors:
|
||||||
|
models:
|
||||||
|
doorkeeper/application:
|
||||||
|
attributes:
|
||||||
|
redirect_uri:
|
||||||
|
fragment_present: не может содержать фрагмент.
|
||||||
|
invalid_uri: должен быть правильным URI.
|
||||||
|
relative_uri: должен быть абсолютным URI.
|
||||||
|
secured_uri: должен быть HTTPS/SSL URI.
|
||||||
|
doorkeeper:
|
||||||
|
applications:
|
||||||
|
buttons:
|
||||||
|
authorize: Авторизовать
|
||||||
|
cancel: Отменить
|
||||||
|
destroy: Удалить
|
||||||
|
edit: Изменить
|
||||||
|
submit: Принять
|
||||||
|
confirmations:
|
||||||
|
destroy: Вы уверены?
|
||||||
|
edit:
|
||||||
|
title: Изменить приложение
|
||||||
|
form:
|
||||||
|
error: Ой! Проверьте Вашу форму на возможные ошибки
|
||||||
|
help:
|
||||||
|
native_redirect_uri: Используйте %{native_redirect_uri} для локального тестирования
|
||||||
|
redirect_uri: Используйте по одной строке на URI
|
||||||
|
scopes: Разделяйте список разрешений пробелами. Оставьте незаполненным для использования разрешений по умолчанию.
|
||||||
|
index:
|
||||||
|
callback_url: Callback URL
|
||||||
|
name: Название
|
||||||
|
new: Новое Приложение
|
||||||
|
title: Ваши приложения
|
||||||
|
new:
|
||||||
|
title: Новое Приложение
|
||||||
|
show:
|
||||||
|
actions: Действия
|
||||||
|
application_id: Id приложения
|
||||||
|
callback_urls: Callback urls
|
||||||
|
scopes: Разрешения
|
||||||
|
secret: Секрет
|
||||||
|
title: 'Приложение: %{name}'
|
||||||
|
authorizations:
|
||||||
|
buttons:
|
||||||
|
authorize: Авторизовать
|
||||||
|
deny: Отказать
|
||||||
|
error:
|
||||||
|
title: Произошла ошибка
|
||||||
|
new:
|
||||||
|
able_to: Оно сможет
|
||||||
|
prompt: Приложение %{client_name} запрашивает доступ к Вашему аккаунту
|
||||||
|
title: Требуется авторизация
|
||||||
|
show:
|
||||||
|
title: Код авторизации
|
||||||
|
authorized_applications:
|
||||||
|
buttons:
|
||||||
|
revoke: Отозвать авторизацию
|
||||||
|
confirmations:
|
||||||
|
revoke: Вы уверены?
|
||||||
|
index:
|
||||||
|
application: Приложение
|
||||||
|
created_at: Авторизовано
|
||||||
|
date_format: "%Y-%m-%d %H:%M:%S"
|
||||||
|
scopes: Разрешения
|
||||||
|
title: Ваши авторизованные приложения
|
||||||
|
errors:
|
||||||
|
messages:
|
||||||
|
access_denied: Владелец ресурса или сервер авторизации ответил отказом на Ваш запрос.
|
||||||
|
credential_flow_not_configured: Поток с предоставлением клиенту пароля завершился неудачей, поскольку параметр Doorkeeper.configure.resource_owner_from_credentials не был сконфигурирован.
|
||||||
|
invalid_client: Клиентская аутентификация завершилась неудачей (неизвестный клиент, не включена клиентская аутентификация, или метод аутентификации не поддерживается.
|
||||||
|
invalid_grant: Предоставленный доступ некорректен, истек, отозван, не совпадает с URI перенаправления, использованным в запросе авторизации, или был выпущен для другого клиента.
|
||||||
|
invalid_redirect_uri: Включенный URI перенаправления некорректен.
|
||||||
|
invalid_request: В запросе не хватает обязательного параметра, присутствует неподдерживаемое значение параметра, либо он был сформирован неверно.
|
||||||
|
invalid_resource_owner: Предоставленные данные владельца ресурса некорректны, или владелец ресурса не может быть найден
|
||||||
|
invalid_scope: Запрошенное разрешение некорректно, неизвестно или неверно сформировано.
|
||||||
|
invalid_token:
|
||||||
|
expired: Токен доступа истек
|
||||||
|
revoked: Токен доступа был отменен
|
||||||
|
unknown: Токен доступа некорректен
|
||||||
|
resource_owner_authenticator_not_configured: Поиск владельца ресурса завершился неудачей, поскольку параметр Doorkeeper.configure.resource_owner_authenticator не был сконфигурирован.
|
||||||
|
server_error: Сервер авторизации встретился с неожиданной ошибкой, не позволившей ему выполнить запрос.
|
||||||
|
temporarily_unavailable: Сервер авторизации в данный момент не может выполнить запрос по причине временной перегрузки или профилактики.
|
||||||
|
unauthorized_client: Клиент не авторизован для выполнения этого запроса с использованием этого метода.
|
||||||
|
unsupported_grant_type: Тип авторизации не поддерживается сервером авторизации.
|
||||||
|
unsupported_response_type: Сервер авторизации не поддерживает этот тип ответа.
|
||||||
|
flash:
|
||||||
|
applications:
|
||||||
|
create:
|
||||||
|
notice: Приложение создано.
|
||||||
|
destroy:
|
||||||
|
notice: Приложение удалено.
|
||||||
|
update:
|
||||||
|
notice: Приложение обновлено.
|
||||||
|
authorized_applications:
|
||||||
|
destroy:
|
||||||
|
notice: Авторизация приложения отозвана.
|
||||||
|
layouts:
|
||||||
|
admin:
|
||||||
|
nav:
|
||||||
|
applications: Приложения
|
||||||
|
oauth2_provider: Провайдер OAuth2
|
||||||
|
application:
|
||||||
|
title: Требуется авторизация OAuth
|
||||||
|
scopes:
|
||||||
|
follow: подписываться, отписываться, блокировать и разблокировать аккаунты
|
||||||
|
read: читать данные Вашего аккаунта
|
||||||
|
write: отправлять за Вас посты
|
165
config/locales/ru.yml
Normal file
165
config/locales/ru.yml
Normal file
|
@ -0,0 +1,165 @@
|
||||||
|
---
|
||||||
|
ru:
|
||||||
|
about:
|
||||||
|
about_mastodon: Mastodon - это <em>свободная</em> социальная сеть с <em>открытым исходным кодом</em>. Как <em>децентрализованная</em> альтернатива коммерческим платформам, Mastodon предотвращает риск монополизации Вашего общения одной компанией. Выберите сервер, которому Вы доверяете — что бы Вы ни выбрали, Вы сможете общаться со всеми остальными. Любой может запустить свой собственный узел Mastodon и участвовать в <em>социальной сети</em> совершенно бесшовно.
|
||||||
|
about_this: Об этом узле
|
||||||
|
apps: Приложения
|
||||||
|
business_email: 'Деловой e-mail:'
|
||||||
|
closed_registrations: В данный момент регистрация на этом узле закрыта.
|
||||||
|
contact: Связаться
|
||||||
|
description_headline: Что такое %{domain}?
|
||||||
|
domain_count_after: другими узлами
|
||||||
|
domain_count_before: Связывается с
|
||||||
|
features:
|
||||||
|
api: Открытый API для приложений и сервисов
|
||||||
|
blocks: Продвинутые инструменты блокирования и глушения
|
||||||
|
characters: 500 символов на пост
|
||||||
|
chronology: Хронологические ленты
|
||||||
|
ethics: 'Этичный дизайн: нет рекламы, нет слежения'
|
||||||
|
gifv: GIFV и короткие видео
|
||||||
|
privacy: Тонкие настройки приватности для каждого поста
|
||||||
|
public: Публичные ленты
|
||||||
|
features_headline: Что выделяет Mastodon
|
||||||
|
get_started: Начать
|
||||||
|
links: Ссылки
|
||||||
|
other_instances: Другие узлы
|
||||||
|
source_code: Исходный код
|
||||||
|
status_count_after: статусов
|
||||||
|
status_count_before: Автор
|
||||||
|
terms: Условия
|
||||||
|
user_count_after: пользователей
|
||||||
|
user_count_before: Здесь живет
|
||||||
|
accounts:
|
||||||
|
follow: Подписаться
|
||||||
|
followers: Подписчики
|
||||||
|
following: Подписан(а)
|
||||||
|
nothing_here: Здесь ничего нет!
|
||||||
|
people_followed_by: Люди, на которых подписан(а) %{name}
|
||||||
|
people_who_follow: Подписчики %{name}
|
||||||
|
posts: Посты
|
||||||
|
remote_follow: Подписаться на удаленном узле
|
||||||
|
unfollow: Отписаться
|
||||||
|
application_mailer:
|
||||||
|
settings: 'Изменить настройки e-mail: %{link}'
|
||||||
|
signature: Уведомления Mastodon от %{instance}
|
||||||
|
view: 'View:'
|
||||||
|
applications:
|
||||||
|
invalid_url: Введенный URL неверен
|
||||||
|
auth:
|
||||||
|
change_password: Изменить пароль
|
||||||
|
didnt_get_confirmation: Не получили инструкцию для подтверждения?
|
||||||
|
forgot_password: Забыли пароль?
|
||||||
|
login: Войти
|
||||||
|
logout: Выйти
|
||||||
|
register: Зарегистрироваться
|
||||||
|
resend_confirmation: Повторить отправку инструкции для подтверждения
|
||||||
|
reset_password: Сбросить пароль
|
||||||
|
set_new_password: Задать новый пароль
|
||||||
|
authorize_follow:
|
||||||
|
error: К сожалению, при поиске удаленного аккаунта возникла ошибка
|
||||||
|
follow: Подписаться
|
||||||
|
prompt_html: 'Вы (<strong>%{self}</strong>) запросили подписку:'
|
||||||
|
title: Подписаться на %{acct}
|
||||||
|
datetime:
|
||||||
|
distance_in_words:
|
||||||
|
about_x_hours: "%{count}ч"
|
||||||
|
about_x_months: "%{count}мес"
|
||||||
|
about_x_years: "%{count}г"
|
||||||
|
almost_x_years: "%{count}г"
|
||||||
|
half_a_minute: Только что
|
||||||
|
less_than_x_minutes: "%{count}мин"
|
||||||
|
less_than_x_seconds: Только что
|
||||||
|
over_x_years: "%{count}г"
|
||||||
|
x_days: "%{count}д"
|
||||||
|
x_minutes: "%{count}мин"
|
||||||
|
x_months: "%{count}мес"
|
||||||
|
x_seconds: "%{count}сек"
|
||||||
|
exports:
|
||||||
|
blocks: Вы заблокировали
|
||||||
|
csv: CSV
|
||||||
|
follows: Подписки
|
||||||
|
storage: Ваш медиаконтент
|
||||||
|
generic:
|
||||||
|
changes_saved_msg: Изменения успешно сохранены!
|
||||||
|
powered_by: работает на %{link}
|
||||||
|
save_changes: Сохранить изменения
|
||||||
|
validation_errors:
|
||||||
|
one: Что-то здесь не так! Пожалуйста, прочитайте об ошибке ниже
|
||||||
|
other: Что-то здесь не так! Пожалуйста, прочитайте о %{count} ошибках ниже
|
||||||
|
imports:
|
||||||
|
preface: Вы можете загрузить некоторые данные, например, списки людей, на которых Вы подписаны или которых блокируете, в Ваш аккаунт на этом узле из файлов, экспортированных с другого узла.
|
||||||
|
success: Ваши данные были успешно загружены и будут обработаны с должной скоростью
|
||||||
|
types:
|
||||||
|
blocking: Список блокируемых
|
||||||
|
following: Список подписок
|
||||||
|
upload: Загрузить
|
||||||
|
landing_strip_html: <strong>%{name}</strong> - пользователь на <strong>%{domain}</strong>. Вы можете подписаться на него/нее и общаться с ним/ней, если у Вас есть аккаунт на любом узле общей сети. Если у Вас его нет, вы можете <a href="%{sign_up_path}">зарегистрироваться здесь</a>.
|
||||||
|
notification_mailer:
|
||||||
|
digest:
|
||||||
|
body: 'Кратко о пропущенном Вами на %{instance} с Вашего последнего захода %{since}:'
|
||||||
|
mention: "%{name} упомянул(а) Вас в:"
|
||||||
|
new_followers_summary:
|
||||||
|
one: У Вас появился новый подписчик! Ура!
|
||||||
|
other: У Вас появилось %{count} новых подписчика(-ов)! Отлично!
|
||||||
|
subject:
|
||||||
|
one: "1 новое уведомление с Вашего последнего захода \U0001F418"
|
||||||
|
other: "%{count} новых уведомлений с Вашего последнего захода \U0001F418"
|
||||||
|
favourite:
|
||||||
|
body: 'Ваш статус понравился %{name}:'
|
||||||
|
subject: "%{name} понравился Ваш статус"
|
||||||
|
follow:
|
||||||
|
body: "%{name} теперь подписан(а) на Вас!"
|
||||||
|
subject: "%{name} теперь подписан(а) на Вас"
|
||||||
|
follow_request:
|
||||||
|
body: "%{name} запросил Вас о подписке"
|
||||||
|
subject: '%{name} хочет подписаться на Вас'
|
||||||
|
mention:
|
||||||
|
body: 'Вас упомянул(а) %{name} в:'
|
||||||
|
subject: Вы были упомянуты %{name}
|
||||||
|
reblog:
|
||||||
|
body: 'Ваш статус был продвинут %{name}:'
|
||||||
|
subject: "%{name} продвинул(а) Ваш статус"
|
||||||
|
pagination:
|
||||||
|
next: След
|
||||||
|
prev: Пред
|
||||||
|
remote_follow:
|
||||||
|
acct: Введите username@domain, откуда Вы хотите подписаться
|
||||||
|
missing_resource: Поиск требуемого перенаправления URL для Вашего аккаунта завершился неудачей
|
||||||
|
proceed: Продолжить подписку
|
||||||
|
prompt: 'Вы ходите подписаться на:'
|
||||||
|
settings:
|
||||||
|
authorized_apps: Авторизованные приложения
|
||||||
|
back: Назад в Mastodon
|
||||||
|
edit_profile: Изменить профиль
|
||||||
|
export: Экспорт данных
|
||||||
|
import: Импорт
|
||||||
|
preferences: Настройки
|
||||||
|
settings: Опции
|
||||||
|
two_factor_auth: Двухфакторная аутентификация
|
||||||
|
statuses:
|
||||||
|
open_in_web: Открыть в WWW
|
||||||
|
over_character_limit: превышен лимит символов (%{max})
|
||||||
|
show_more: Подробнее
|
||||||
|
visibilities:
|
||||||
|
private: Показывать только подписчикам
|
||||||
|
public: Публичный
|
||||||
|
unlisted: Публичный, но без отображения в публичных лентах
|
||||||
|
stream_entries:
|
||||||
|
click_to_show: Показать
|
||||||
|
reblogged: продвинул(а)
|
||||||
|
sensitive_content: Чувствительный контент
|
||||||
|
time:
|
||||||
|
formats:
|
||||||
|
default: "%b %d, %Y, %H:%M"
|
||||||
|
two_factor_auth:
|
||||||
|
description_html: При включении <strong>двухфакторной аутентификации</strong>, вход потребует от Вас использования Вашего телефона, который сгенерирует входные токены.
|
||||||
|
disable: Отключить
|
||||||
|
enable: Включить
|
||||||
|
instructions_html: "<strong>Отсканируйте этот QR-код с помощью Google Authenticator или другого подобного приложения на Вашем телефоне</strong>. С этого момента приложение будет генерировать токены, которые будет необходимо ввести для входа."
|
||||||
|
plaintext_secret_html: 'Секрет открытым текстом: <samp>%{secret}</samp>'
|
||||||
|
warning: Если сейчас у Вас не получается настроить аутентификатор, нажмите "отключить", иначе Вы не сможете войти!
|
||||||
|
users:
|
||||||
|
invalid_email: Введенный e-mail неверен
|
||||||
|
invalid_otp_token: Введен неверный код
|
||||||
|
will_paginate:
|
||||||
|
page_gap: "…"
|
46
config/locales/simple_form.ru.yml
Normal file
46
config/locales/simple_form.ru.yml
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
---
|
||||||
|
ru:
|
||||||
|
simple_form:
|
||||||
|
hints:
|
||||||
|
defaults:
|
||||||
|
avatar: PNG, GIF или JPG. Максимально 2MB. Будет уменьшено до 120x120px
|
||||||
|
display_name: Максимально 30 символов
|
||||||
|
header: PNG, GIF или JPG. Максимально 2MB. Будет уменьшено до 700x335px
|
||||||
|
locked: Потребует от Вас ручного подтверждения подписчиков, изменит приватность постов по умолчанию на "только для подписчиков"
|
||||||
|
note: Максимально 160 символов
|
||||||
|
imports:
|
||||||
|
data: Файл CSV, экспортированный с другого узла Mastodon
|
||||||
|
labels:
|
||||||
|
defaults:
|
||||||
|
avatar: Аватар
|
||||||
|
confirm_new_password: Повторите новый пароль
|
||||||
|
confirm_password: Повторите пароль
|
||||||
|
current_password: Текущий пароль
|
||||||
|
data: Данные
|
||||||
|
display_name: Показываемое имя
|
||||||
|
email: Адрес e-mail
|
||||||
|
header: Заголовок
|
||||||
|
locale: Язык
|
||||||
|
locked: Сделать аккаунт приватным
|
||||||
|
new_password: Новый пароль
|
||||||
|
note: О Вас
|
||||||
|
otp_attempt: Двухфакторный код
|
||||||
|
password: Пароль
|
||||||
|
setting_default_privacy: Приватность постов
|
||||||
|
type: Тип импорта
|
||||||
|
username: Имя пользователя
|
||||||
|
interactions:
|
||||||
|
must_be_follower: Заблокировать уведомления не от подписчиков
|
||||||
|
must_be_following: Заблокировать уведомления от людей, на которых Вы не подписаны
|
||||||
|
notification_emails:
|
||||||
|
digest: Присылать дайджест по e-mail
|
||||||
|
favourite: Уведомлять по e-mail, когда кому-то нравится Ваш статус
|
||||||
|
follow: Уведомлять по e-mail, когда кто-то подписался на Вас
|
||||||
|
follow_request: Уведомлять по e-mail, когда кто-то запрашивает разрешение на подписку
|
||||||
|
mention: Уведомлять по e-mail, когда кто-то упомянул Вас
|
||||||
|
reblog: Уведомлять по e-mail, когда кто-то продвинул Ваш статус
|
||||||
|
'no': 'Нет'
|
||||||
|
required:
|
||||||
|
mark: "*"
|
||||||
|
text: обязательно
|
||||||
|
'yes': 'Да'
|
Loading…
Reference in a new issue