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
					
				@ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user