1

Add a plugin for Russian localization, make it be loaded first.

This commit is contained in:
vonavi 2014-07-02 12:48:07 +03:00
parent ef82c90f57
commit 52ef7720d8
6 changed files with 280 additions and 0 deletions

View File

View File

@ -1,6 +1,7 @@
source 'https://rubygems.org'
gem 'jekyll', '~> 2.1.0'
gem 'i18n'
gem 'therubyracer'
group :development do

View File

@ -31,6 +31,7 @@ GEM
guard (~> 2.0)
multi_json (~> 1.8)
http_parser.rb (0.6.0)
i18n (0.6.9)
jekyll (2.1.0)
classifier (~> 1.3)
colorator (~> 0.1)
@ -97,5 +98,6 @@ PLATFORMS
DEPENDENCIES
guard-livereload
i18n
jekyll (~> 2.1.0)
therubyracer

250
_locales/ru.yml Normal file
View File

@ -0,0 +1,250 @@
ru:
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} секундy'
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'
pm: вечера

27
_plugins/1-i18n_filter.rb Normal file
View File

@ -0,0 +1,27 @@
require 'i18n'
LOCALE = :ru # set your locale
# Create folder "_locales" and put some locale file from
# https://github.com/svenfuchs/rails-i18n/tree/master/rails/locale
module Jekyll
module I18nFilter
# Example:
# {{ post.date | localize: "%d.%m.%Y" }}
# {{ post.date | localize: ":short" }}
def localize(input, format=nil)
load_translations
format = (format =~ /^:(\w+)/) ? $1.to_sym : format
I18n.l input, :format => format
end
def load_translations
unless I18n::backend.instance_variable_get(:@translations)
I18n.backend.load_translations Dir[File.join(File.dirname(__FILE__), '../_locales/*.yml')]
I18n.locale = LOCALE
end
end
end
end
Liquid::Template.register_filter(Jekyll::I18nFilter)