num2words 0.1.5 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -0
  3. data/Gemfile +0 -1
  4. data/README.md +57 -16
  5. data/bin/console +2 -14
  6. data/config/locales/ar.yml +176 -17
  7. data/config/locales/be.yml +182 -15
  8. data/config/locales/bg.yml +183 -16
  9. data/config/locales/bn.yml +185 -12
  10. data/config/locales/cs.yml +180 -13
  11. data/config/locales/da.yml +182 -15
  12. data/config/locales/de.yml +181 -14
  13. data/config/locales/el.yml +183 -21
  14. data/config/locales/en.yml +129 -12
  15. data/config/locales/es.yml +180 -13
  16. data/config/locales/et.yml +185 -13
  17. data/config/locales/fa.yml +179 -12
  18. data/config/locales/fi.yml +180 -8
  19. data/config/locales/fr.yml +180 -13
  20. data/config/locales/gu.yml +182 -10
  21. data/config/locales/he.yml +182 -20
  22. data/config/locales/hi.yml +182 -15
  23. data/config/locales/hr.yml +181 -14
  24. data/config/locales/hu.yml +180 -13
  25. data/config/locales/id.yml +179 -12
  26. data/config/locales/it.yml +181 -14
  27. data/config/locales/ja.yml +188 -21
  28. data/config/locales/ru.yml +135 -9
  29. data/exe/num2words-console +7 -0
  30. data/lib/num2words/config.rb +62 -0
  31. data/lib/num2words/console.rb +16 -0
  32. data/lib/num2words/converter.rb +94 -47
  33. data/lib/num2words/locales/ar.rb +10 -2
  34. data/lib/num2words/locales/be.rb +10 -2
  35. data/lib/num2words/locales/bg.rb +10 -2
  36. data/lib/num2words/locales/bn.rb +10 -2
  37. data/lib/num2words/locales/cs.rb +10 -2
  38. data/lib/num2words/locales/da.rb +10 -2
  39. data/lib/num2words/locales/de.rb +10 -2
  40. data/lib/num2words/locales/el.rb +10 -2
  41. data/lib/num2words/locales/en.rb +0 -3
  42. data/lib/num2words/locales/es.rb +10 -2
  43. data/lib/num2words/locales/et.rb +10 -2
  44. data/lib/num2words/locales/fa.rb +10 -2
  45. data/lib/num2words/locales/fi.rb +10 -2
  46. data/lib/num2words/locales/fr.rb +10 -2
  47. data/lib/num2words/locales/gu.rb +10 -2
  48. data/lib/num2words/locales/he.rb +10 -2
  49. data/lib/num2words/locales/hi.rb +10 -2
  50. data/lib/num2words/locales/hr.rb +10 -2
  51. data/lib/num2words/locales/hu.rb +10 -2
  52. data/lib/num2words/locales/id.rb +10 -2
  53. data/lib/num2words/locales/it.rb +10 -2
  54. data/lib/num2words/locales/ja.rb +10 -2
  55. data/lib/num2words/locales/ru.rb +0 -3
  56. data/lib/num2words/version.rb +1 -1
  57. data/lib/num2words.rb +1 -0
  58. data/num2words.gemspec +1 -1
  59. metadata +9 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7fbb8e0f384b3baf9ca9081c7d2c2095817d883b55796d48196f0bfd5a111fcc
4
- data.tar.gz: 1dd172a547a50ac707b78cb626e1ae81b0af1a631e7313b30a48afe414dc5d26
3
+ metadata.gz: fbd7bda19d94f161e928ec326ce532c9c301746daaa371a041b859aa7262d4d9
4
+ data.tar.gz: ec621319e9ce5de5657c01d87c9b91cb88da31516cd06c07629924558e5c6017
5
5
  SHA512:
6
- metadata.gz: 73b3f95666700ff9ad74b73c47f207becb76541d185dd0bdee98cbc89b2b33921a7b97651c844bc83029706cc52a84fde1cac98da8151bff8cfa1f77867cd1c2
7
- data.tar.gz: 9008411287c518ecbc87c16426e9eaa9aebdb4f526a044a84a135df1c698cde43a16841cd9397faa97a890a3d1326df0945437a2b9112b608454e258f41b8f5f
6
+ metadata.gz: '092432a7d992343146c93337af17af5ea595ab06fff83793f81813ba55c7c4282b66e8bcc0598e82eba7db43e63131b1fba0f63332ede4984b10ef606e77698b'
7
+ data.tar.gz: dfefff68054582dd62771c9fa87b2ff21996a73ae0d4b0b219b67178a06a8c393ac20ef5f8029bf5f32c77c2ef36bb66760d743c528e066f361ba8592f431013
data/CHANGELOG.md CHANGED
@@ -9,6 +9,49 @@
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ---
13
+
14
+ ## [0.2.0] - 2026-05-31
15
+
16
+ ### Added
17
+ - Поддержка строковых дробей с точкой и запятой:
18
+ ```ruby
19
+ Num2words.to_words("3.5", :ru)
20
+ Num2words.to_words("3,5", :ru)
21
+ ```
22
+ - Опция `joiner: :and` для разговорного соединителя в дробях:
23
+ ```ruby
24
+ Num2words.to_words(0.5, :ru, joiner: :and)
25
+ # => "ноль и пять десятых"
26
+ ```
27
+ - Опция `date_case: :genitive` для дат в контексте "когда?":
28
+ ```ruby
29
+ Num2words.to_words("2024-08-21", :ru, date_case: :genitive)
30
+ # => "двадцать первого августа две тысячи двадцать четвёртого года"
31
+ ```
32
+ - Опция `minor:` для управления выводом младшей денежной единицы:
33
+ - `:always` — всегда выводить копейки/центы;
34
+ - `:nonzero` — выводить только ненулевую младшую единицу;
35
+ - `:never` — не выводить младшую единицу.
36
+ - Поддержка строковых сумм и `BigDecimal` в `to_currency`:
37
+ ```ruby
38
+ Num2words.to_currency("21,05", :ru)
39
+ Num2words.to_currency(BigDecimal("21.05"), :ru)
40
+ ```
41
+ - Команда `num2words-console` для быстрого запуска интерактивной консоли после установки гема.
42
+
43
+ ### Changed
44
+ - Русские даты по умолчанию выводят день в именительном падеже:
45
+ ```ruby
46
+ Num2words.to_words("2024-08-21", :ru)
47
+ # => "двадцать первое августа две тысячи двадцать четвёртого года"
48
+ ```
49
+
50
+ ### Fixed
51
+ - `DateTime` теперь корректно определяется как дата и время, а не только как дата.
52
+ - Добавлена валидация опций `joiner`, `date_case` и `minor`.
53
+
54
+ ### Planned
12
55
  - Добавление новых локалей (планируется расширение поддерживаемых языков).
13
56
  - Оптимизация производительности при больших числах.
14
57
  - Улучшения документации.
data/Gemfile CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- # Specify your gem's dependencies in num2words.gemspec
6
5
  gemspec
7
6
 
8
7
  gem "rake", "~> 12.0"
data/README.md CHANGED
@@ -7,12 +7,12 @@
7
7
  ## ✨ Основные возможности
8
8
 
9
9
  - Поддержка **чисел, времени, дат и валют**:
10
- - `Integer` `123.to_words(:ru)` `"сто двадцать три"`
11
- - `Float` `12.5.to_words(:en)` `"twelve and five tenths"`
12
- - `Time / DateTime` `"2024-08-21 14:35:42".to_words(:ru, :time)` `"четырнадцать часов тридцать пять минут сорок две секунды"`
13
- - `Float.to_currency` `12.5.to_currency(:ru)` `"двенадцать рублей пятьдесят копеек"`
10
+ - `Integer` -> `123.to_words(:ru)` -> `"сто двадцать три"`
11
+ - `Float` -> `12.5.to_words(:en)` -> `"twelve and five tenths"`
12
+ - `Time / DateTime` -> `"2024-08-21 14:35:42".to_words(:ru, :time)` -> `"четырнадцать часов тридцать пять минут сорок две секунды"`
13
+ - `Float.to_currency` -> `12.5.to_currency(:ru)` -> `"двенадцать рублей пятьдесят копеек"`
14
14
  - Кастомизация вывода:
15
- - Краткая форма (`short: true`) `"четырнадцать часов тридцать пять минут"`
15
+ - Краткая форма (`short: true`) -> `"четырнадцать часов тридцать пять минут"`
16
16
  - Форматы времени (`:hours_only`, `:hours_minutes`, `:hours_minutes_seconds`)
17
17
  - Выбор локали: `:ru`, `:en` (из коробки), легко расширить YAML-файлами
18
18
  - Расширение **Integer**, **Float**, **Date**, **Time**, **DateTime** удобными методами.
@@ -48,24 +48,54 @@ require "num2words"
48
48
  ### 🔢 Числа
49
49
  ```ruby
50
50
  # Integer
51
- 123.to_words(:ru) # => "сто двадцать три"
52
- 123.to_words(:en) # => "one hundred twenty three"
51
+ 123.to_words(:ru)
52
+ # => "сто двадцать три"
53
+
54
+ 123.to_words(:en)
55
+ # => "one hundred twenty three"
53
56
 
54
57
  # Float
55
- 45.67.to_words(:ru) # => "сорок пять целых шестьдесят семь сотых"
56
- 45.67.to_words(:en) # => "forty five and sixty seven hundredths"
58
+ 45.67.to_words(:ru)
59
+ # => "сорок пять целых шестьдесят семь сотых"
60
+
61
+ "45,67".to_words(:ru)
62
+ # => "сорок пять целых шестьдесят семь сотых"
63
+
64
+ 45.67.to_words(:ru, joiner: :and)
65
+ # => "сорок пять и шестьдесят семь сотых"
66
+
67
+ 45.67.to_words(:en)
68
+ # => "forty five and sixty seven hundredths"
57
69
  ```
58
70
 
59
71
  ### 💰 Валюта
60
72
  ```ruby
61
- 21.05.to_currency(:ru) # => "двадцать один рубль пять копеек"
62
- 12.5.to_currency(:en) # => "twelve dollars fifty cents"
73
+ 21.05.to_currency(:ru)
74
+ # => "двадцать один рубль пять копеек"
75
+
76
+ "21,05".to_currency(:ru)
77
+ # => "двадцать один рубль пять копеек"
78
+
79
+ Num2words.to_currency(BigDecimal("21.05"), :ru)
80
+ # => "двадцать один рубль пять копеек"
81
+
82
+ 1.to_currency(:ru, minor: :nonzero)
83
+ # => "один рубль"
84
+
85
+ 1.25.to_currency(:ru, minor: :never)
86
+ # => "один рубль"
87
+
88
+ 12.5.to_currency(:en)
89
+ # => "twelve dollars fifty cents"
63
90
  ```
64
91
 
65
92
  ### 📅 Дата
66
93
  ```ruby
67
94
  "2024-08-21".to_words(:ru, :date)
68
- # => "двадцать первое августа две тысячи двадцать четвертого года"
95
+ # => "двадцать первое августа две тысячи двадцать четвёртого года"
96
+
97
+ "2024-08-21".to_words(:ru, :date, date_case: :genitive)
98
+ # => "двадцать первого августа две тысячи двадцать четвёртого года"
69
99
 
70
100
  "2024-08-21".to_words(:en, :date)
71
101
  # => "the twenty-first of August, two thousand twenty four"
@@ -87,6 +117,9 @@ require "num2words"
87
117
 
88
118
  ```ruby
89
119
  "2024-08-21 14:35:42".to_words(:ru)
120
+ # => "двадцать первое августа две тысячи двадцать четвёртого года, четырнадцать часов тридцать пять минут сорок две секунды"
121
+
122
+ "2024-08-21 14:35:42".to_words(:ru, date_case: :genitive)
90
123
  # => "двадцать первого августа две тысячи двадцать четвёртого года, четырнадцать часов тридцать пять минут сорок две секунды"
91
124
 
92
125
  "2024-08-21 14:35:42".to_words(:en)
@@ -98,6 +131,8 @@ require "num2words"
98
131
  - `locale: :ru | :en` — язык (по умолчанию берётся I18n.locale или :ru).
99
132
  - `:date, :time, :datetime` — формат преобразования для строк.
100
133
  - `short: true` — краткая форма для даты/времени.
134
+ - `joiner: :and` — разговорный соединитель для дробей: `"ноль и пять десятых"` вместо `"ноль целых пять десятых"`.
135
+ - `date_case: :genitive` — родительный падеж дня для дат в контексте “когда?”.
101
136
  - `Num2words.to_words(number, locale: :en)` — универсальный способ вызова без расширения базовых классов.
102
137
  - `Num2words.to_currency(number)` — преобразование число в валюту.
103
138
 
@@ -106,18 +141,24 @@ require "num2words"
106
141
  Num2words поддерживает интерактивную консоль для быстрого тестирования.
107
142
  Это удобно при работе с разными числами и языками.
108
143
 
109
- #### Запуск консоли
144
+ #### Запуск консоли из репозитория
110
145
 
111
146
  ```bash
112
147
  bin/console
113
148
  ```
114
149
 
150
+ #### Запуск консоли после установки гема
151
+
152
+ ```bash
153
+ num2words-console
154
+ ```
155
+
115
156
  После запуска появится приветственное сообщение:
116
157
 
117
158
  ```bash
118
- 👋 Добро пожаловать в консоль num2words!
119
- Попробуйте: Num2words.to_words(2025)
120
- -----------------------------------------------------
159
+ Добро пожаловать в консоль num2words!
160
+ Можете использовать: Num2words.to_words(2025)
161
+ -------------------------------------------------------------
121
162
  ```
122
163
 
123
164
  👉 Это позволяет проверять работу гема без написания отдельных скриптов.
data/bin/console CHANGED
@@ -3,18 +3,6 @@
3
3
 
4
4
  require "bundler/setup"
5
5
  require "num2words"
6
+ require "num2words/console"
6
7
 
7
- # You can add fixtures and/or initialization code here to make experimenting
8
- # with your gem easier. You can also use a different console, if you like.
9
-
10
- # (If you use this, don't forget to add pry to your Gemfile!)
11
- # require "pry"
12
- # Pry.start
13
-
14
- # Красивое приветствие
15
- puts "👋 Добро пожаловать в консоль num2words!"
16
- puts "Можете использовать: Num2words.to_words(#{Time.now.year})"
17
- puts "-------------------------------------------------------------"
18
-
19
- require "irb"
20
- IRB.start(__FILE__)
8
+ Num2words::Console.start
@@ -13,24 +13,183 @@ ar:
13
13
  - ["مليار", "ملياران", "مليارات"]
14
14
  - ["تريليون", "تريليونان", "تريليونات"]
15
15
 
16
+ grammar:
17
+ minus: "ناقص"
18
+ conjunction: "فاصلة"
19
+ default_fraction: "كسور"
20
+ fractions:
21
+ 10: ["عُشر", "أعشار", "أعشار"]
22
+ 100: ["مِئويّة", "مِئويّتان", "مِئويّات"]
23
+ 1000: ["ألفيّة", "ألفيّتان", "ألفيّات"]
24
+ 10000: ["عُشر الألف", "أعشار الألف", "أعشار الألف"]
25
+ 100000: ["مِئويّة الألف", "مِئويّتان من الألف", "مِئويّات الألف"]
26
+ 1000000: ["مليونِيّة", "مليونِيّتان", "مليونِيّات"]
27
+ 10000000: ["عُشر المليون", "أعشار المليون", "أعشار المليون"]
28
+ 100000000: ["مِئويّة المليون", "مِئويّتان من المليون", "مِئويّات المليون"]
29
+ 1000000000: ["مِليارِيّة", "مِليارِيّتان", "مِليارِيّات"]
30
+
31
+ numbers:
32
+ ordinals:
33
+ nominative:
34
+ masculine: ["الأول", "الثاني", "الثالث", "الرابع", "الخامس", "السادس", "السابع", "الثامن", "التاسع",
35
+ "العاشر", "الحادي عشر", "الثاني عشر", "الثالث عشر", "الرابع عشر", "الخامس عشر", "السادس عشر", "السابع عشر", "الثامن عشر", "التاسع عشر",
36
+ "العشرون", "الحادي والعشرون", "الثاني والعشرون", "الثالث والعشرون", "الرابع والعشرون", "الخامس والعشرون", "السادس والعشرون", "السابع والعشرون", "الثامن والعشرون", "التاسع والعشرون",
37
+ "الثلاثون", "الحادي والثلاثون"]
38
+ feminine: ["الأولى", "الثانية", "الثالثة", "الرابعة", "الخامسة", "السادسة", "السابعة", "الثامنة", "التاسعة",
39
+ "العاشرة", "الحادية عشرة", "الثانية عشرة", "الثالثة عشرة", "الرابعة عشرة", "الخامسة عشرة", "السادسة عشرة", "السابعة عشرة", "الثامنة عشرة", "التاسعة عشرة",
40
+ "العشرون", "الحادية والعشرون", "الثانية والعشرون", "الثالثة والعشرون", "الرابعة والعشرون", "الخامسة والعشرون", "السادسة والعشرون", "السابعة والعشرون", "الثامنة والعشرون", "التاسعة والعشرون",
41
+ "الثلاثون", "الحادية والثلاثون"]
42
+ default:
43
+ masculine: ["الأول", "الثاني", "الثالث", "الرابع", "الخامس", "السادس", "السابع", "الثامن", "التاسع",
44
+ "العاشر", "الحادي عشر", "الثاني عشر", "الثالث عشر", "الرابع عشر", "الخامس عشر", "السادس عشر", "السابع عشر", "الثامن عشر", "التاسع عشر",
45
+ "العشرون", "الحادي والعشرون", "الثاني والعشرون", "الثالث والعشرون", "الرابع والعشرون", "الخامس والعشرون", "السادس والعشرون", "السابع والعشرون", "الثامن والعشرون", "التاسع والعشرون",
46
+ "الثلاثون", "الحادي والثلاثون"]
47
+
48
+ datetime:
49
+ template: "%{date}، %{time}"
50
+ date:
51
+ template:
52
+ default: "%{day} %{month} %{year} م"
53
+ nominative: "%{day} %{month} %{year} م"
54
+ months:
55
+ default: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"]
56
+ nominative: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"]
57
+
58
+ time:
59
+ template:
60
+ hours_only: "%{hours}"
61
+ hours_minutes: "%{hours} %{minutes}"
62
+ hours_minutes_seconds: "%{hours} %{minutes} %{seconds}"
63
+ words:
64
+ hour: ["ساعة", "ساعتان", "ساعات"]
65
+ minute: ["دقيقة", "دقيقتان", "دقائق"]
66
+ second: ["ثانية", "ثانيتان", "ثوانٍ"]
67
+
68
+ warnings:
69
+ currency_not_available: "العملة %{currency} غير متوفرة للغة %{lang}، يتم استخدام العملة الحالية."
70
+
16
71
  currencies:
17
- AED:
18
- name: ["درهم", "درهمان", "دراهم"]
19
- fractional:
20
- name: ["فلس", "فلسان", "فلوس"]
21
- feminine: false
22
72
  SAR:
23
- name: ["ريال", "ريالان", "ريالات"]
24
- fractional:
25
- name: ["هللة", "هللتان", "هللات"]
26
- feminine: true
73
+ major_unit: [ "ريال", "ريالان", "ريالات" ]
74
+ minor_unit: [ "هللة", "هللتان", "هللات" ]
75
+ symbol: ""
76
+ IRR:
77
+ major_unit: [ "ريال إيراني", "ريالان إيرانيان", "ريالات إيرانية" ]
78
+ minor_unit: [ "دينام", "دينامان", "دينامات" ]
79
+ symbol: "﷼"
27
80
  USD:
28
- name: ["دولار", "دولاران", "دولارات"]
29
- fractional:
30
- name: ["سنت", "سنتان", "سنتات"]
31
- feminine: false
81
+ major_unit: [ "دولار", "دولاران", "دولارات" ]
82
+ minor_unit: [ "سنت", "سنتان", "سنتات" ]
83
+ symbol: "$"
32
84
  EUR:
33
- name: ["يورو", "يورو", "يورو"]
34
- fractional:
35
- name: ["سنت", "سنتان", "سنتات"]
36
- feminine: false
85
+ major_unit: [ "يورو", "يورو", "يورو" ]
86
+ minor_unit: [ "سنت", "سنتان", "سنتات" ]
87
+ symbol: ""
88
+ GBP:
89
+ major_unit: [ "جنيه إسترليني", "جنيهان إسترلينيان", "جنيهات إسترلينية" ]
90
+ minor_unit: [ "بنس", "بنسان", "بنسات" ]
91
+ symbol: "£"
92
+ CNY:
93
+ major_unit: [ "يوان", "يوانان", "يوان" ]
94
+ minor_unit: [ "فن", "فنان", "فنات" ]
95
+ symbol: "¥"
96
+ JPY:
97
+ major_unit: [ "ين", "ينان", "ينات" ]
98
+ minor_unit: [ "سن", "سنان", "سنات" ]
99
+ symbol: "¥"
100
+ RUB:
101
+ major_unit: [ "روبل", "روبلان", "روبلات" ]
102
+ minor_unit: [ "كوبيك", "كوبيكان", "كوبيكات" ]
103
+ symbol: "₽"
104
+ KRW:
105
+ major_unit: [ "وون", "وونان", "وونات" ]
106
+ minor_unit: [ "تشون", "تشونان", "تشونات" ]
107
+ symbol: "₩"
108
+ TRY:
109
+ major_unit: [ "ليرة", "ليرتان", "ليرات" ]
110
+ minor_unit: [ "قرش", "قرشان", "قروش" ]
111
+ symbol: "₺"
112
+ PLN:
113
+ major_unit: [ "زلوتي", "زلوتيان", "زلوتيات" ]
114
+ minor_unit: [ "غروش", "غروشان", "غروشات" ]
115
+ symbol: "zł"
116
+ UAH:
117
+ major_unit: [ "هريفنيا", "هريفنيتان", "هريفنيات" ]
118
+ minor_unit: [ "كوبيك", "كوبيكان", "كوبيكات" ]
119
+ symbol: "₴"
120
+ CZK:
121
+ major_unit: [ "كرونة", "كرونتان", "كرونات" ]
122
+ minor_unit: [ "هالير", "هاليران", "هاليرات" ]
123
+ symbol: "Kč"
124
+ RON:
125
+ major_unit: [ "ليو", "ليوان", "ليي" ]
126
+ minor_unit: [ "بان", "بانان", "بانات" ]
127
+ symbol: "lei"
128
+ BGN:
129
+ major_unit: [ "ليف", "ليفان", "ليفا" ]
130
+ minor_unit: [ "ستوتينكا", "ستوتينكتان", "ستوتينكات" ]
131
+ symbol: "лв"
132
+ BYN:
133
+ major_unit: [ "روبل بيلاروسي", "روبلان بيلاروسيان", "روبلات بيلاروسية" ]
134
+ minor_unit: [ "كوبيك", "كوبيكان", "كوبيكات" ]
135
+ symbol: "Br"
136
+ KZT:
137
+ major_unit: [ "تينغي", "تينغيان", "تينغي" ]
138
+ minor_unit: [ "تيين", "تيينان", "تيينات" ]
139
+ symbol: "₸"
140
+ ILS:
141
+ major_unit: [ "شيكل", "شيكلان", "شواكل" ]
142
+ minor_unit: [ "أغورة", "أغورتان", "أغورات" ]
143
+ symbol: "₪"
144
+ SEK:
145
+ major_unit: [ "كرونة", "كرونتان", "كرونات" ]
146
+ minor_unit: [ "أوره", "أوره", "أوره" ]
147
+ symbol: "kr"
148
+ NOK:
149
+ major_unit: [ "كرونة", "كرونتان", "كرونات" ]
150
+ minor_unit: [ "أوره", "أوره", "أوره" ]
151
+ symbol: "kr"
152
+ DKK:
153
+ major_unit: [ "كرونة", "كرونتان", "كرونات" ]
154
+ minor_unit: [ "أوره", "أوره", "أوره" ]
155
+ symbol: "kr"
156
+ HUF:
157
+ major_unit: [ "فورنت", "فورنتان", "فورنتات" ]
158
+ minor_unit: [ "فلر", "فلران", "فلرات" ]
159
+ symbol: "Ft"
160
+ RSD:
161
+ major_unit: [ "دينار", "ديناران", "دنانير" ]
162
+ minor_unit: [ "بارا", "بارتان", "بارات" ]
163
+ symbol: "дин"
164
+ MYR:
165
+ major_unit: [ "رينغيت", "رينغيتان", "رينغيتات" ]
166
+ minor_unit: [ "سن", "سنان", "سنات" ]
167
+ symbol: "RM"
168
+ BDT:
169
+ major_unit: [ "تاكا", "تاكان", "تاكات" ]
170
+ minor_unit: [ "بويسا", "بويستان", "بويسات" ]
171
+ symbol: "৳"
172
+ PKR:
173
+ major_unit: [ "روبية", "روبيتان", "روبيات" ]
174
+ minor_unit: [ "بيسة", "بيستان", "بيسات" ]
175
+ symbol: "₨"
176
+ KES:
177
+ major_unit: [ "شلن", "شلنان", "شلنات" ]
178
+ minor_unit: [ "سنت", "سنتان", "سنتات" ]
179
+ symbol: "Sh"
180
+ INR:
181
+ major_unit: [ "روبية", "روبيتان", "روبيات" ]
182
+ minor_unit: [ "بيسة", "بيستان", "بيسات" ]
183
+ symbol: "₹"
184
+ THB:
185
+ major_unit: [ "بات", "باتان", "باتات" ]
186
+ minor_unit: [ "ساتانغ", "ساتانغان", "ساتانغات" ]
187
+ symbol: "฿"
188
+ VND:
189
+ major_unit: [ "دونغ", "دونغان", "دونغات" ]
190
+ minor_unit: [ "سو", "سوان", "سوات" ]
191
+ symbol: "₫"
192
+ IDR:
193
+ major_unit: [ "روبية", "روبيتان", "روبيات" ]
194
+ minor_unit: [ "سينا", "سينتان", "سينات" ]
195
+ symbol: "Rp"
@@ -2,8 +2,8 @@ be:
2
2
  num2words:
3
3
  ones_masc: ["нуль", "адзін", "два", "тры", "чатыры", "пяць", "шэсць", "сем", "восем", "дзевяць"]
4
4
  ones_fem: ["нуль", "адна", "дзве", "тры", "чатыры", "пяць", "шэсць", "сем", "восем", "дзевяць"]
5
- teens: ["дзесяць", "адзінаццаць", "дванаццаць", "трынаццаць", "чатырнаццаць", "пятнаццаць", "шаснаццаць", "семнаццаць", "васемнаццаць", "дзевятнаццаць"]
6
- tens: ["", "", "дваццаць", "трыццаць", "сорак", "пяцьдзясят", "шэсцьдзясят", "семдзесят", "восемдзесят", "дзевяноста"]
5
+ teens: ["дзесяць", "адзінаццаць", "дванаццаць", "трынаццаць", "чатырнаццаць", "пятнаццаць", "шаснаццаць", "сямнаццаць", "васямнаццаць", "дзевятнаццаць"]
6
+ tens: ["", "", "дваццаць", "трыццаць", "сорак", "пяцьдзесят", "шэсцьдзесят", "семдзесят", "васемдзесят", "дзевяноста"]
7
7
  hundreds: ["", "сто", "дзвесце", "трыста", "чатырыста", "пяцьсот", "шэсцьсот", "семсот", "восемсот", "дзевяцьсот"]
8
8
 
9
9
  scales:
@@ -13,19 +13,186 @@ be:
13
13
  - ["мільярд", "мільярды", "мільярдаў"]
14
14
  - ["трыльён", "трыльёны", "трыльёнаў"]
15
15
 
16
+ grammar:
17
+ minus: "мінус"
18
+ conjunction: "цэлых"
19
+ default_fraction: "дробных"
20
+ fractions:
21
+ 10: ["дзясятая", "дзясятыя", "дзясятых"]
22
+ 100: ["сотая", "сотыя", "сотых"]
23
+ 1000: ["тысячная", "тысячныя", "тысячных"]
24
+ 10000: ["дзесяцітысячная", "дзесяцітысячныя", "дзесяцітысячных"]
25
+ 100000: ["стотысячная", "стотысячныя", "стотысячных"]
26
+ 1000000: ["мільённая", "мільённыя", "мільённых"]
27
+ 10000000: ["дзесяцімільённая", "дзесяцімільённыя", "дзесяцімільённых"]
28
+ 100000000: ["стомільённая", "стомільённыя", "стомільённых"]
29
+ 1000000000: ["мільярдная", "мільярдныя", "мільярдных"]
30
+
31
+ numbers:
32
+ ordinals:
33
+ nominative:
34
+ masculine: ["першы", "другі", "трэці", "чацвёрты", "пяты", "шосты", "сёмы", "восьмы", "дзевяты", "дзесяты",
35
+ "адзінаццаты", "дванаццаты", "трынаццаты", "чатырнаццаты", "пятнаццаты", "шаснаццаты", "сямнаццаты", "васямнаццаты", "дзевятнаццаты",
36
+ "дваццаць", "дваццаць першы", "дваццаць другі", "дваццаць трэці", "дваццаць чацвёрты", "дваццаць пяты", "дваццаць шосты", "дваццаць сёмы", "дваццаць восьмы", "дваццаць дзевяты",
37
+ "трыццаць", "трыццаць першы"]
38
+ feminine: ["першая", "другая", "трэцяя", "чацвёртая", "пятая", "шостая", "сёмая", "восьмая", "дзевятая",
39
+ "дзесятая", "адзінаццатая", "дванаццатая", "трынаццатая", "чатырнаццатая", "пятнаццатая", "шаснаццатая", "сямнаццатая", "васямнаццатая", "дзевятнаццатая",
40
+ "дваццацкая", "дваццаць першая", "дваццаць другая", "дваццаць трэцяя", "дваццаць чацвёртая", "дваццаць пятая", "дваццаць шостая", "дваццаць сёмая", "дваццаць восьмая", "дваццаць дзевятая",
41
+ "трыццацкая", "трыццаць першая"]
42
+ neuter: ["першае", "другое", "трэцяе", "чацвёртае", "пятае", "шостае", "сёмае", "восьмае", "дзявятае",
43
+ "дзесятае", "адзінаццатае", "дванаццатае", "трынаццатае", "чатырнаццатае", "пятнаццатае", "шаснаццатае", "сямнаццатае", "васямнаццатае", "дзевятнаццатае",
44
+ "дваццацкае", "дваццаць першае", "дваццаць другое", "дваццаць трэцяе", "дваццаць чацвёртае", "дваццаць пятае", "дваццаць шостае", "дваццаць сёмае", "дваццаць восьмае", "дваццаць дзевятае",
45
+ "трыццацкае", "трыццаць першае"]
46
+ default:
47
+ masculine: ["першага", "другога", "трэцяга", "чацвёртага", "пятага", "шостага", "сёмага", "восьмага", "дзявятага",
48
+ "дзесятага", "адзінаццатага", "дванаццатага", "трынаццатага", "чатырнаццатага", "пятнаццатага", "шаснаццатага", "сямнаццатага", "васямнаццатага", "дзевятнаццатага",
49
+ "дваццацатага", "дваццаць першага", "дваццаць другога", "дваццаць трэцяга", "дваццаць чацвёртага", "дваццаць пятага", "дваццаць шостага", "дваццаць сёмага", "дваццаць восьмага", "дваццаць дзевятага",
50
+ "трыццацатага", "трыццаць першага"]
51
+
52
+ datetime:
53
+ template: "%{date}, %{time}"
54
+ date:
55
+ template:
56
+ default: "%{day} %{month} %{year} года"
57
+ nominative: "%{day} %{month} %{year} год"
58
+ months:
59
+ default: ["студзеня", "лютага", "сакавіка", "красавіка", "мая", "чэрвеня", "ліпеня", "жніўня", "верасня", "кастрычніка", "лістапада", "снежня"]
60
+ nominative: ["студзень", "люты", "сакавік", "красавік", "май", "чэрвень", "ліпень", "жнівень", "верасень", "кастрычнік", "лістапад", "снежань"]
61
+ time:
62
+ template:
63
+ hours_only: "%{hours}"
64
+ hours_minutes: "%{hours} %{minutes}"
65
+ hours_minutes_seconds: "%{hours} %{minutes} %{seconds}"
66
+ words:
67
+ hour: ["гадзіна", "гадзіны", "гадзін"]
68
+ minute: ["хвіліна", "хвіліны", "хвілін"]
69
+ second: ["секунда", "секунды", "секунд"]
70
+
71
+ warnings:
72
+ currency_not_available: "Валюта %{currency} недаступная для лакалі %{lang}, выкарыстоўваецца бягучая."
73
+
16
74
  currencies:
17
75
  BYN:
18
- name: ["рубель", "рублі", "рублёў"]
19
- fractional:
20
- name: ["капейка", "капейкі", "капеек"]
21
- feminine: true
22
- EUR:
23
- name: ["еўра", "еўра", "еўра"]
24
- fractional:
25
- name: ["цэнт", "цэнты", "цэнтаў"]
26
- feminine: false
76
+ major_unit: [ "беларускі рубель", "беларускія рублі", "беларускіх рублёў" ]
77
+ minor_unit: [ "капе́йка", "капе́йкі", "капе́ек" ]
78
+ symbol: "Br"
27
79
  USD:
28
- name: ["долар", "долары", "долараў"]
29
- fractional:
30
- name: ["цэнт", "цэнты", "цэнтаў"]
31
- feminine: false
80
+ major_unit: [ "долар", "долары", "долараў" ]
81
+ minor_unit: [ "цэнт", "цэнты", "цэнтаў" ]
82
+ symbol: "$"
83
+ EUR:
84
+ major_unit: [ "еўра", "еўра", "еўра" ]
85
+ minor_unit: [ "цэнт", "цэнты", "цэнтаў" ]
86
+ symbol: "€"
87
+ GBP:
88
+ major_unit: [ "фунт", "фунты", "фунтаў" ]
89
+ minor_unit: [ "пенс", "пенсы", "пенсаў" ]
90
+ symbol: "£"
91
+ CNY:
92
+ major_unit: [ "юань", "юані", "юаняў" ]
93
+ minor_unit: [ "фэнь", "фэні", "фэняў" ]
94
+ symbol: "¥"
95
+ JPY:
96
+ major_unit: [ "ена", "ены", "ен" ]
97
+ minor_unit: [ "сэн", "сэн", "сэн" ]
98
+ symbol: "¥"
99
+ RUB:
100
+ major_unit: [ "рубель", "рублі", "рублёў" ]
101
+ minor_unit: [ "капе́йка", "капе́йкі", "капе́ек" ]
102
+ symbol: "₽"
103
+ UAH:
104
+ major_unit: [ "грыўня", "грыўні", "грыўняў" ]
105
+ minor_unit: [ "капе́йка", "капе́йкі", "капе́ек" ]
106
+ symbol: "₴"
107
+ PLN:
108
+ major_unit: [ "злот", "злотыя", "злотаў" ]
109
+ minor_unit: [ "грош", "грошы", "грошаў" ]
110
+ symbol: "zł"
111
+ CZK:
112
+ major_unit: [ "крона", "кроны", "крон" ]
113
+ minor_unit: [ "галірж", "галіржы", "галіржаў" ]
114
+ symbol: "Kč"
115
+ RON:
116
+ major_unit: [ "лей", "леі", "леяў" ]
117
+ minor_unit: [ "бан", "баны", "банаў" ]
118
+ symbol: "lei"
119
+ BGN:
120
+ major_unit: [ "лев", "левы", "леваў" ]
121
+ minor_unit: [ "стотынка", "стотынкі", "стотынак" ]
122
+ symbol: "лв"
123
+ KZT:
124
+ major_unit: [ "тэнге", "тэнге", "тэнге" ]
125
+ minor_unit: [ "тыйын", "тыйыны", "тыйынаў" ]
126
+ symbol: "₸"
127
+ ILS:
128
+ major_unit: [ "шэкель", "шэкелі", "шэкеляў" ]
129
+ minor_unit: [ "агора", "агоры", "агарот" ]
130
+ symbol: "₪"
131
+ SEK:
132
+ major_unit: [ "крона", "кроны", "крон" ]
133
+ minor_unit: [ "эрэ", "эрэ", "эрэ" ]
134
+ symbol: "kr"
135
+ NOK:
136
+ major_unit: [ "крона", "кроны", "крон" ]
137
+ minor_unit: [ "эрэ", "эрэ", "эрэ" ]
138
+ symbol: "kr"
139
+ DKK:
140
+ major_unit: [ "крона", "кроны", "крон" ]
141
+ minor_unit: [ "эрэ", "эрэ", "эрэ" ]
142
+ symbol: "kr"
143
+ HUF:
144
+ major_unit: [ "форынт", "форынты", "форынтаў" ]
145
+ minor_unit: [ "філер", "філеры", "філераў" ]
146
+ symbol: "Ft"
147
+ SAR:
148
+ major_unit: [ "рыял", "рыялы", "рыялаў" ]
149
+ minor_unit: [ "халяля", "халялі", "халяляў" ]
150
+ symbol: "﷼"
151
+ INR:
152
+ major_unit: [ "рупія", "рупіі", "рупій" ]
153
+ minor_unit: [ "пайса", "пайсы", "пайсаў" ]
154
+ symbol: "₹"
155
+ THB:
156
+ major_unit: [ "бат", "баты", "батаў" ]
157
+ minor_unit: [ "сатанг", "сатангі", "сатангаў" ]
158
+ symbol: "฿"
159
+ VND:
160
+ major_unit: [ "донг", "донгі", "донгаў" ]
161
+ minor_unit: [ "су", "су", "су" ]
162
+ symbol: "₫"
163
+ IDR:
164
+ major_unit: [ "рупія", "рупіі", "рупій" ]
165
+ minor_unit: [ "сена", "сены", "сенаў" ]
166
+ symbol: "Rp"
167
+ IRR:
168
+ major_unit: [ "рыял", "рыялы", "рыялаў" ]
169
+ minor_unit: [ "дынам", "дынамы", "дынамаў" ]
170
+ symbol: "﷼"
171
+ RSD:
172
+ major_unit: [ "дінар", "дінары", "дзінараў" ]
173
+ minor_unit: [ "пара", "пары", "пар" ]
174
+ symbol: "дин"
175
+ MYR:
176
+ major_unit: [ "рынггіт", "рынггіты", "рынггітаў" ]
177
+ minor_unit: [ "сэн", "сэны", "сэнаў" ]
178
+ symbol: "RM"
179
+ BDT:
180
+ major_unit: [ "така", "такі", "так" ]
181
+ minor_unit: [ "пойша", "пойшы", "пойшаў" ]
182
+ symbol: "৳"
183
+ PKR:
184
+ major_unit: [ "рупія", "рупіі", "рупій" ]
185
+ minor_unit: [ "пайса", "пайсы", "пайсаў" ]
186
+ symbol: "₨"
187
+ KES:
188
+ major_unit: [ "шылінг", "шылінгі", "шылінгаў" ]
189
+ minor_unit: [ "цэнт", "цэнты", "цэнтаў" ]
190
+ symbol: "Sh"
191
+ TRY:
192
+ major_unit: [ "ліра", "ліры", "ліраў" ]
193
+ minor_unit: [ "куруш", "курушы", "курушаў" ]
194
+ symbol: "₺"
195
+ KRW:
196
+ major_unit: [ "вона", "воны", "вон" ]
197
+ minor_unit: [ "чон", "чоны", "чонаў" ]
198
+ symbol: "₩"