UaEnv - Ukrainian Environment for Ruby
UaEnv - модуль для роботи з українським текстом в Ruby. Головна ціль UaEnv - полегшити розробку україномовних програм на Ruby (і Rails).
UaEnv підтимує тільки UTF-8 (налаштування: $KCODE / KanjiCode ‘u’).
Переконайтесь, що ваш скрипт правильно працює з Unicode - тобто:
-
Змінна $KCODE включена у режим ‘u’
-
Всі строки уже в кодуванні UTF-8
Величезне спасибі Julik і Mash - розробникам RuTils, на основі якого побудований UaEnv.
Cума прописом
UaEnv реалізує суму прописом для цілих і дробових чисел із додатковим врахуванням роду. Наприклад:
15.propysom => "п'ятнадцять"
1357472.propysom => "один мільйон триста п'ятдесят сім тисяч чотириста сімдесят два"
901.propysom(2) => "дев'ятсот одна"
624.propysom_items(2,'книжка','книжки','книжок') => "шістсот двадцять чотири книжки"
Вибір варіанта числівника в залежності від числа
7.items('самурай','самураї','самураїв') => "самураїв"
і вивід “суми прописом” для сум у гривнях
(666.13).grn => "шістсот шістдесят шість гривень тринадцять копійок"
Дати
В клас Date введені наступні константи:
* UA_ABBR_DAYNAMES (нд пн вт ...)
* UA_DAYNAMES_E (перше друге третє ...)
* UA_ABBR_MONTHNAMES (січ лют бер ...)
* UA_INFLECTED_MONTHNAMES (січня лютого березня)
* UA_DAYNAMES (неділя понеділок вівторок)
* UA_MONTHNAMES (січень лютий березень)
Приклад використання:
require 'date'
date = Date.new(2007, 01, 5)
puts "#{Date::UA_ABBR_MONTHNAMES[date.mon]}" => січ
puts "#{Date::UA_DAYNAMES[date.wday]}" => п'ятниця
Відбувається “перекриття” стандартної функції Time#strftime (“рідну” #strftime можно продовжити використовувати через alias-метод #strftime_nouaenv):
Time.local(2007,"jan",5).strftime("%a, %A, %b, %B") => "пт, п'ятниця, січ, січень"
Time.local(2007,"jan",5).strftime_nouaenv("%a, %A, %b, %B") => "Fri, Friday, Jan, January"
Time.now.strftime("Сьогодні %A, %d %B %Y року, %H:%M:%S") => "Сьогодні субота, 6 січня 2007 року, 14:50:34"
Транслітерація
Транслітерація української кирилиці у латиницю:
"Привіт, як справи?".translify >> "Pryvit, yak spravy?"