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 fi from 'react-intl/locale-data/fi';
 | 
			
		||||
import eo from 'react-intl/locale-data/eo';
 | 
			
		||||
import ru from 'react-intl/locale-data/ru';
 | 
			
		||||
 | 
			
		||||
import getMessagesForLocale from '../locales';
 | 
			
		||||
import { hydrateStore } from '../actions/store';
 | 
			
		||||
import createStream from '../stream';
 | 
			
		||||
| 
						 | 
				
			
			@ -60,7 +62,9 @@ const browserHistory = useRouterHistory(createBrowserHistory)({
 | 
			
		|||
  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({
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,6 +7,8 @@ import pt from './pt';
 | 
			
		|||
import uk from './uk';
 | 
			
		||||
import fi from './fi';
 | 
			
		||||
import eo from './eo';
 | 
			
		||||
import ru from './ru';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const locales = {
 | 
			
		||||
  en,
 | 
			
		||||
| 
						 | 
				
			
			@ -17,7 +19,9 @@ const locales = {
 | 
			
		|||
  pt,
 | 
			
		||||
  uk,
 | 
			
		||||
  fi,
 | 
			
		||||
  eo
 | 
			
		||||
  eo,
 | 
			
		||||
  ru
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
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',
 | 
			
		||||
    de: 'Deutsch',
 | 
			
		||||
    es: 'Español',
 | 
			
		||||
    eo: 'Esperanto',
 | 
			
		||||
    pt: 'Português',
 | 
			
		||||
    fr: 'Français',
 | 
			
		||||
    hu: 'Magyar',
 | 
			
		||||
    uk: 'Українська',
 | 
			
		||||
    'zh-CN': '简体中文',
 | 
			
		||||
    fi: 'Suomi',
 | 
			
		||||
    eo: 'Esperanto',
 | 
			
		||||
    ru: 'Русский',
 | 
			
		||||
 | 
			
		||||
  }.freeze
 | 
			
		||||
 | 
			
		||||
  def human_locale(locale)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue