Skip to content

Instantly share code, notes, and snippets.

@osulyanov
Last active December 13, 2015 21:08
Show Gist options
  • Save osulyanov/4975139 to your computer and use it in GitHub Desktop.
Save osulyanov/4975139 to your computer and use it in GitHub Desktop.
Rails start russian locales set
require "i18n/backend/pluralization"
I18n::Backend::Simple.send(:include, I18n::Backend::Pluralization)
# -*- encoding: utf-8 -*-
# Правило плюрализации для русского языка, взято из CLDR, http://unicode.org/cldr/
#
# Russian language pluralization rules, taken from CLDR project, http://unicode.org/cldr/
#
# one -> n mod 10 is 1 and n mod 100 is not 11;
# few -> n mod 10 in 2..4 and n mod 100 not in 12..14;
# many -> n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14;
# other -> everything else
#
# Пример
#
# :one = 1, 21, 31, 41, 51, 61...
# :few = 2-4, 22-24, 32-34...
# :many = 0, 5-20, 25-30, 35-40...
# :other = 1.31, 2.31, 5.31...
{
:ru => {
:'i18n' => {
:plural => {
:rule => lambda { |n|
n % 10 == 1 && n % 100 != 11 ? :one : [2, 3, 4].include?(n % 10) && ![12, 13, 14].include?(n % 100) ? :few : n % 10 == 0 || [5, 6, 7, 8, 9].include?(n % 10) || [11, 12, 13, 14].include?(n % 100) ? :many : :other
}
}
}
}
}
ru:
# CONTROLLERS
# LAYOUTS
layouts:
# layout_name:
# string: Строка string в макете layout_name
# Mailers
emailer:
# method_name:
# subject: Тема письма method_name майлера emailer
# Plurals
# likes:
# zero: лаек
# one: лайка
# other: лаек
# ACTIVERECORD
activerecord:
models:
# model_name: Название модели model_name
attributes:
# model_name:
# field_name: Навание поля field_name модели model_name
# ERRORS
errors:
models:
# model_name:
# attributes:
# field_name:
# blank: Не введён почтовый ящик
# invalid: Неверный формат почтового ящика
# taken: Такой потчовый ящик уже зарегистрирован
# too_short:
# too_long:
# reserved: Такое имя пользователя зарезервированно
# confirmation: Введённые пароли не совпадают
# Default:
ru:
# Simple Captcha
simple_captcha:
label: Капча
message:
default: Капча введена неверно
# I18n
i18n:
transliterate:
rule:
а: "a"
б: "b"
в: "v"
г: "g"
д: "d"
е: "e"
ё: "yo"
ж: "zh"
з: "z"
и: "i"
й: "y"
к: "k"
л: "l"
м: "m"
н: "n"
о: "o"
п: "p"
р: "r"
с: "s"
т: "t"
у: "u"
ф: "f"
х: "kh"
ц: "ts"
ч: "ch"
ш: "sh"
щ: "shch"
ъ: ""
ы: "y"
ь: ""
э: "e"
ю: "yu"
я: "ya"
date:
abbr_day_names:
- Вс
- Пн
- Вт
- Ср
- Чт
- Пт
- Сб
abbr_month_names:
-
- янв.
- февр.
- марта
- апр.
- мая
- июня
- июля
- авг.
- сент.
- окт.
- нояб.
- дек.
day_names:
- воскресенье
- понедельник
- вторник
- среда
- четверг
- пятница
- суббота
formats:
default: ! '%d.%m.%Y'
long: ! '%d %B %Y'
short: ! '%d %b'
month_names:
-
- января
- февраля
- марта
- апреля
- мая
- июня
- июля
- августа
- сентября
- октября
- ноября
- декабря
order:
- :day
- :month
- :year
datetime:
distance_in_words:
about_x_hours:
few: около %{count} часов
many: около %{count} часов
one: около %{count} часа
other: около %{count} часа
about_x_months:
few: около %{count} месяцев
many: около %{count} месяцев
one: около %{count} месяца
other: около %{count} месяца
about_x_years:
few: около %{count} лет
many: около %{count} лет
one: около %{count} года
other: около %{count} лет
almost_x_years:
one: почти 1 год
few: почти %{count} года
many: почти %{count} лет
other: почти %{count} лет
half_a_minute: меньше минуты
less_than_x_minutes:
few: меньше %{count} минут
many: меньше %{count} минут
one: меньше %{count} минуты
other: меньше %{count} минуты
less_than_x_seconds:
few: меньше %{count} секунд
many: меньше %{count} секунд
one: меньше %{count} секунды
other: меньше %{count} секунды
over_x_years:
few: больше %{count} лет
many: больше %{count} лет
one: больше %{count} года
other: больше %{count} лет
x_days:
few: ! '%{count} дня'
many: ! '%{count} дней'
one: ! '%{count} день'
other: ! '%{count} дня'
x_minutes:
few: ! '%{count} минуты'
many: ! '%{count} минут'
one: ! '%{count} минуту'
other: ! '%{count} минуты'
x_months:
few: ! '%{count} месяца'
many: ! '%{count} месяцев'
one: ! '%{count} месяц'
other: ! '%{count} месяца'
x_seconds:
few: ! '%{count} секунды'
many: ! '%{count} секунд'
one: ! '%{count} секунда'
other: ! '%{count} секунды'
prompts:
day: День
hour: Часов
minute: Минут
month: Месяц
second: Секунд
year: Год
# errors: &errors
# format: ! '%{attribute} %{message}'
# messages:
# accepted: нужно подтвердить
# blank: не может быть пустым
# confirmation: не совпадает с подтверждением
# empty: не может быть пустым
# equal_to: может иметь лишь значение, равное %{count}
# even: может иметь лишь нечетное значение
# exclusion: имеет зарезервированное значение
# greater_than: может иметь значение большее %{count}
# greater_than_or_equal_to: может иметь значение большее или равное %{count}
# inclusion: имеет непредусмотренное значение
# invalid: имеет неверное значение
# less_than: может иметь значение меньшее чем %{count}
# less_than_or_equal_to: может иметь значение меньшее или равное %{count}
# not_a_number: не является числом
# not_an_integer: не является целым числом
# odd: может иметь лишь четное значение
# record_invalid: ! 'Возникли ошибки: %{errors}'
# taken: уже существует
# too_long:
# few: слишком большой длины (не может быть больше чем %{count} символа)
# many: слишком большой длины (не может быть больше чем %{count} символов)
# one: слишком большой длины (не может быть больше чем %{count} символ)
# other: слишком большой длины (не может быть больше чем %{count} символа)
# too_short:
# few: недостаточной длины (не может быть меньше %{count} символов)
# many: недостаточной длины (не может быть меньше %{count} символов)
# one: недостаточной длины (не может быть меньше %{count} символа)
# other: недостаточной длины (не может быть меньше %{count} символа)
# wrong_length:
# few: неверной длины (может быть длиной ровно %{count} символа)
# many: неверной длины (может быть длиной ровно %{count} символов)
# one: неверной длины (может быть длиной ровно %{count} символ)
# other: неверной длины (может быть длиной ровно %{count} символа)
template:
body: ! 'Проблемы возникли со следующими полями:'
header:
few: ! '%{model}: сохранение не удалось из-за %{count} ошибок'
many: ! '%{model}: сохранение не удалось из-за %{count} ошибок'
one: ! '%{model}: сохранение не удалось из-за %{count} ошибки'
other: ! '%{model}: сохранение не удалось из-за %{count} ошибки'
helpers:
select:
prompt: ! 'Выберите: '
submit:
create: Создать %{model}
submit: Сохранить %{model}
update: Сохранить %{model}
number:
currency:
format:
delimiter: ! ' '
format: ! '%n %u'
precision: 2
separator: .
significant: false
strip_insignificant_zeros: false
unit: руб.
format:
delimiter: ! ' '
precision: 3
separator: .
significant: false
strip_insignificant_zeros: false
human:
decimal_units:
format: ! '%n %u'
units:
billion:
few: миллиардов
many: миллиардов
one: миллиард
other: миллиардов
million:
few: миллионов
many: миллионов
one: миллион
other: миллионов
quadrillion:
few: квадриллионов
many: квадриллионов
one: квадриллион
other: квадриллионов
thousand:
few: тысяч
many: тысяч
one: тысяча
other: тысяч
trillion:
few: триллионов
many: триллионов
one: триллион
other: триллионов
unit: ''
format:
delimiter: ''
precision: 1
significant: false
strip_insignificant_zeros: false
storage_units:
format: ! '%n %u'
units:
byte:
few: байта
many: байт
one: байт
other: байта
gb: ГБ
kb: КБ
mb: МБ
tb: ТБ
percentage:
format:
delimiter: ''
precision:
format:
delimiter: ''
support:
array:
last_word_connector: ! ' и '
two_words_connector: ! ' и '
words_connector: ! ', '
time:
am: утра
formats:
default: ! '%a, %d %b %Y, %H:%M:%S %z'
long: ! '%d %B %Y, %H:%M'
short: ! '%d %b, %H:%M'
date: '%d.%m.%Y'
w3c: "%Y-%m-%dT%H:%M:%S+00:00"
pm: вечера
# remove these aliases after 'activemodel' and 'activerecord' namespaces are removed from Rails repository
# activemodel:
# errors:
# <<: *errors
# activerecord:
# errors:
# <<: *errors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment