Module: Russian
- Extended by:
- Russian
- Included in:
- Russian
- Defined in:
- lib/russian.rb,
lib/russian/version.rb,
lib/russian/transliteration.rb
Defined Under Namespace
Modules: Transliteration
Constant Summary collapse
- LOCALE =
Russian locale
:'ru'
- LOCALIZE_ABBR_MONTH_NAMES_MATCH =
Regexp machers for context-based russian month names and day names translation
/(%[-_0^#:]*(\d+)*[EO]?d|%[-_0^#:]*(\d+)*[EO]?e)(.*)(%b)/
- LOCALIZE_MONTH_NAMES_MATCH =
/(%[-_0^#:]*(\d+)*[EO]?d|%[-_0^#:]*(\d+)*[EO]?e)(.*)(%B)/
- LOCALIZE_STANDALONE_ABBR_DAY_NAMES_MATCH =
/^%a/
- LOCALIZE_STANDALONE_DAY_NAMES_MATCH =
/^%A/
- VERSION =
"0.19.0"
Instance Method Summary collapse
-
#init_i18n ⇒ Object
Init Russian i18n: load all translations shipped with library.
-
#locale ⇒ Object
Russian locale.
-
#localize(object, options = {}) ⇒ Object
(also: #l)
See I18n::localize.
-
#pluralize(n, *variants) ⇒ Object
(also: #p)
Simple pluralization proxy.
-
#strftime(object, format = :default) ⇒ Object
strftime() proxy with Russian localization.
-
#translate(key, options = {}) ⇒ Object
(also: #t)
See I18n::translate.
-
#transliterate(str) ⇒ Object
(also: #translit)
Transliteration for russian language.
Instance Method Details
#init_i18n ⇒ Object
Init Russian i18n: load all translations shipped with library.
44 45 46 47 48 49 50 51 |
# File 'lib/russian.rb', line 44 def init_i18n I18n::Backend::Simple.send(:include, I18n::Backend::Pluralization) I18n::Backend::Simple.send(:include, I18n::Backend::Transliterator) I18n.load_path.unshift(*locale_files) I18n.reload! end |
#locale ⇒ Object
Russian locale
33 34 35 |
# File 'lib/russian.rb', line 33 def locale LOCALE end |
#localize(object, options = {}) ⇒ Object Also known as: l
See I18n::localize
60 61 62 |
# File 'lib/russian.rb', line 60 def localize(object, = {}) I18n.localize(object, **.merge({ :locale => LOCALE })) end |
#pluralize(n, *variants) ⇒ Object Also known as: p
Simple pluralization proxy
Usage:
Russian.pluralize(1, "вещь", "вещи", "вещей")
Russian.pluralize(3.14, "вещь", "вещи", "вещей", "вещи")
Russina.pluralize(5, "Произошла %n ошибка", "Произошло %n ошибки", "Произошло %n ошибок")
76 77 78 79 80 81 82 |
# File 'lib/russian.rb', line 76 def pluralize(n, *variants) raise ArgumentError, "Must have a Numeric as a first parameter" unless n.is_a?(Numeric) raise ArgumentError, "Must have at least 3 variants for pluralization" if variants.size < 3 raise ArgumentError, "Must have at least 4 variants for pluralization" if (variants.size < 4 && n != n.round) variants_hash = pluralization_variants_to_hash(n, *variants) I18n.backend.send(:pluralize, LOCALE, variants_hash, n) end |
#strftime(object, format = :default) ⇒ Object
strftime() proxy with Russian localization
66 67 68 |
# File 'lib/russian.rb', line 66 def strftime(object, format = :default) localize(object, { :format => check_strftime_format(object, format) }) end |
#translate(key, options = {}) ⇒ Object Also known as: t
See I18n::translate
54 55 56 |
# File 'lib/russian.rb', line 54 def translate(key, = {}) I18n.translate(key, **.merge({ :locale => LOCALE })) end |
#transliterate(str) ⇒ Object Also known as: translit
Transliteration for russian language
Usage:
Russian.translit("рубин")
Russian.transliterate("рубин")
90 91 92 |
# File 'lib/russian.rb', line 90 def transliterate(str) Russian::Transliteration.transliterate(str) end |