alula 0.2.3 → 0.4.0b

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 (182) hide show
  1. data/.gitignore +2 -0
  2. data/Gemfile +7 -0
  3. data/Guardfile +9 -0
  4. data/Rakefile +12 -1
  5. data/VERSION +1 -1
  6. data/alula.gemspec +20 -4
  7. data/lib/alula/attachment_processor.rb +77 -0
  8. data/lib/alula/cdn.rb +30 -0
  9. data/lib/alula/cdns/edgecast.rb +16 -0
  10. data/lib/alula/cdns/hosts.rb +14 -0
  11. data/lib/alula/cli.rb +90 -39
  12. data/lib/alula/compressors.rb +22 -10
  13. data/lib/alula/config.rb +141 -0
  14. data/lib/alula/content.rb +113 -0
  15. data/lib/alula/contents/attachment.rb +8 -0
  16. data/lib/alula/contents/item.rb +409 -0
  17. data/lib/alula/contents/metadata.rb +73 -0
  18. data/lib/alula/contents/page.rb +9 -0
  19. data/lib/alula/contents/post.rb +32 -0
  20. data/lib/alula/context.rb +72 -0
  21. data/lib/alula/core_ext.rb +5 -0
  22. data/lib/alula/core_ext/environment.rb +20 -0
  23. data/lib/alula/core_ext/filter.rb +20 -0
  24. data/lib/alula/core_ext/filters/smilies.rb +36 -0
  25. data/lib/alula/core_ext/manifest.rb +30 -0
  26. data/lib/alula/core_ext/tag.rb +100 -0
  27. data/lib/alula/core_ext/tags/attachment.rb +28 -0
  28. data/lib/alula/core_ext/tags/blockquote.rb +21 -0
  29. data/lib/alula/core_ext/tags/image.rb +48 -0
  30. data/lib/alula/core_ext/tags/locale.rb +17 -0
  31. data/lib/alula/core_ext/tags/video.rb +103 -0
  32. data/lib/alula/generator.rb +31 -0
  33. data/lib/alula/generators/feedbuilder.rb +44 -0
  34. data/lib/alula/generators/paginate.rb +88 -0
  35. data/lib/alula/generators/sitemap.rb +26 -0
  36. data/lib/alula/helpers.rb +2 -0
  37. data/lib/alula/helpers/addons.rb +12 -0
  38. data/lib/alula/helpers/assets.rb +56 -0
  39. data/lib/alula/helpers/url_helpers.rb +16 -0
  40. data/lib/alula/plugin.rb +32 -0
  41. data/lib/alula/processor.rb +86 -0
  42. data/lib/alula/processors/dummy.rb +24 -0
  43. data/lib/alula/processors/image.rb +52 -0
  44. data/lib/alula/processors/magick.rb +83 -0
  45. data/lib/alula/processors/video.rb +97 -0
  46. data/lib/alula/processors/zencoder.rb +199 -0
  47. data/lib/alula/progress.rb +95 -0
  48. data/lib/alula/progressbar.rb +66 -0
  49. data/lib/alula/site.rb +331 -262
  50. data/lib/alula/storage.rb +46 -0
  51. data/lib/alula/storages/file_item.rb +43 -0
  52. data/lib/alula/storages/filestorage.rb +96 -0
  53. data/lib/alula/storages/item.rb +12 -0
  54. data/lib/alula/support/commonlogger.rb +30 -0
  55. data/lib/alula/theme.rb +70 -13
  56. data/lib/alula/theme/layout.rb +56 -0
  57. data/lib/alula/theme/view.rb +43 -0
  58. data/lib/alula/version.rb +1 -1
  59. data/locales/en.yml +9 -0
  60. data/locales/fi.yml +10 -0
  61. data/locales/l10n/ar.yml +199 -0
  62. data/locales/l10n/az.yml +199 -0
  63. data/locales/l10n/bg.yml +199 -0
  64. data/locales/l10n/bn-IN.yml +182 -0
  65. data/locales/l10n/bs.yml +242 -0
  66. data/locales/l10n/ca.yml +199 -0
  67. data/locales/l10n/cs.yml +198 -0
  68. data/locales/l10n/csb.yml +210 -0
  69. data/locales/l10n/cy.yml +199 -0
  70. data/locales/l10n/da.yml +199 -0
  71. data/locales/l10n/de-AT.yml +203 -0
  72. data/locales/l10n/de-CH.yml +203 -0
  73. data/locales/l10n/de.yml +203 -0
  74. data/locales/l10n/dsb.yml +215 -0
  75. data/locales/l10n/el.yml +199 -0
  76. data/locales/l10n/en-AU.yml +205 -0
  77. data/locales/l10n/en-CA.yml +214 -0
  78. data/locales/l10n/en-GB.yml +205 -0
  79. data/locales/l10n/en-IN.yml +205 -0
  80. data/locales/l10n/en-US.yml +205 -0
  81. data/locales/l10n/en.yml +205 -0
  82. data/locales/l10n/eo.yml +201 -0
  83. data/locales/l10n/es-AR.yml +205 -0
  84. data/locales/l10n/es-CL.yml +199 -0
  85. data/locales/l10n/es-CO.yml +205 -0
  86. data/locales/l10n/es-MX.yml +205 -0
  87. data/locales/l10n/es-PE.yml +181 -0
  88. data/locales/l10n/es-VE.yml +205 -0
  89. data/locales/l10n/es.yml +199 -0
  90. data/locales/l10n/et.yml +199 -0
  91. data/locales/l10n/eu.yml +199 -0
  92. data/locales/l10n/fa.yml +199 -0
  93. data/locales/l10n/fi.yml +199 -0
  94. data/locales/l10n/fr-CA.yml +207 -0
  95. data/locales/l10n/fr-CH.yml +207 -0
  96. data/locales/l10n/fr.yml +222 -0
  97. data/locales/l10n/fur.yml +199 -0
  98. data/locales/l10n/gl-ES.yml +178 -0
  99. data/locales/l10n/gsw-CH.yml +199 -0
  100. data/locales/l10n/he.yml +201 -0
  101. data/locales/l10n/hi-IN.yml +199 -0
  102. data/locales/l10n/hi.yml +199 -0
  103. data/locales/l10n/hr.yml +237 -0
  104. data/locales/l10n/hsb.yml +214 -0
  105. data/locales/l10n/hu.yml +199 -0
  106. data/locales/l10n/id.yml +200 -0
  107. data/locales/l10n/is.yml +213 -0
  108. data/locales/l10n/it.yml +205 -0
  109. data/locales/l10n/ja.yml +197 -0
  110. data/locales/l10n/kn.yml +199 -0
  111. data/locales/l10n/ko.yml +197 -0
  112. data/locales/l10n/lo.yml +186 -0
  113. data/locales/l10n/lt.yml +182 -0
  114. data/locales/l10n/lv.yml +215 -0
  115. data/locales/l10n/mk.yml +170 -0
  116. data/locales/l10n/mn.yml +205 -0
  117. data/locales/l10n/nb.yml +207 -0
  118. data/locales/l10n/nl.yml +199 -0
  119. data/locales/l10n/nn.yml +160 -0
  120. data/locales/l10n/pl.yml +221 -0
  121. data/locales/l10n/pt-BR.yml +207 -0
  122. data/locales/l10n/pt-PT.yml +207 -0
  123. data/locales/l10n/quotes.yml +24 -0
  124. data/locales/l10n/rm.yml +182 -0
  125. data/locales/l10n/ro.yml +199 -0
  126. data/locales/l10n/ru.yml +257 -0
  127. data/locales/l10n/sk.yml +213 -0
  128. data/locales/l10n/sl.yml +210 -0
  129. data/locales/l10n/sr-Latn.yml +170 -0
  130. data/locales/l10n/sr.yml +170 -0
  131. data/locales/l10n/sv-SE.yml +199 -0
  132. data/locales/l10n/sw.yml +197 -0
  133. data/locales/l10n/th.yml +173 -0
  134. data/locales/l10n/tl.yml +229 -0
  135. data/locales/l10n/tr.yml +199 -0
  136. data/locales/l10n/uk.yml +257 -0
  137. data/locales/l10n/vi.yml +201 -0
  138. data/locales/l10n/wo.yml +205 -0
  139. data/locales/l10n/zh-CN.yml +199 -0
  140. data/locales/l10n/zh-TW.yml +199 -0
  141. data/template/Gemfile.erb +14 -4
  142. data/template/README +16 -0
  143. data/template/config.yml.erb +42 -38
  144. data/test/fixtures/config_001_simple.yml +2 -0
  145. data/test/fixtures/config_002_l10n.yml +5 -0
  146. data/test/fixtures/pages/invalid-page.markdown +1 -0
  147. data/test/fixtures/pages/multilingual-page.markdown +20 -0
  148. data/test/fixtures/pages/section/subpage.markdown +5 -0
  149. data/test/fixtures/pages/simple-page.markdown +7 -0
  150. data/test/fixtures/posts/2012-07-02-invalid-post.markdown +1 -0
  151. data/test/fixtures/posts/2012-07-02-simple.markdown +7 -0
  152. data/test/fixtures/posts/2012-07-03-full-metadata.markdown +8 -0
  153. data/test/fixtures/posts/2012-07-03-multilingual-full-metadata.markdown +20 -0
  154. data/test/fixtures/theme/test/layouts/default.html.erb +1 -0
  155. data/test/fixtures/theme/test/views/page.html.erb +1 -0
  156. data/test/fixtures/theme/test/views/post.html.erb +1 -0
  157. data/test/minitest_helper.rb +14 -0
  158. data/test/test_config.rb +33 -0
  159. data/test/test_content.rb +30 -0
  160. data/test/test_metadata.rb +83 -0
  161. data/test/test_page.rb +81 -0
  162. data/test/test_post.rb +123 -0
  163. data/test/test_storage.rb +23 -0
  164. data/test/test_storage_file.rb +32 -0
  165. data/test/test_theme.rb +45 -0
  166. data/vendor/assets/images/favicon.png +0 -0
  167. data/vendor/assets/images/grey.gif +0 -0
  168. data/vendor/assets/javascripts/jquery.alula.js.coffee +16 -0
  169. data/vendor/{javascripts → assets/javascripts}/jquery.js +0 -0
  170. data/vendor/assets/javascripts/jquery.lazyload.js +210 -0
  171. data/vendor/assets/javascripts/lazyload.js.coffee +15 -0
  172. data/vendor/layouts/feed.xml.builder +19 -0
  173. data/vendor/layouts/sitemap.xml.builder +10 -0
  174. data/vendor/views/feed_post.html.haml +1 -0
  175. metadata +529 -50
  176. data/lib/alula.rb +0 -5
  177. data/lib/alula/assethelper.rb +0 -75
  178. data/lib/alula/plugins.rb +0 -23
  179. data/lib/alula/plugins/assets.rb +0 -82
  180. data/lib/alula/plugins/pagination.rb +0 -121
  181. data/lib/alula/rake_tasks.rb +0 -42
  182. data/lib/alula/tasks.rb +0 -2
@@ -0,0 +1,257 @@
1
+ uk:
2
+ date:
3
+ abbr_day_names:
4
+ - нд.
5
+ - пн.
6
+ - вт.
7
+ - ср.
8
+ - чт.
9
+ - пт.
10
+ - сб.
11
+ abbr_month_names:
12
+ -
13
+ - січ.
14
+ - лют.
15
+ - бер.
16
+ - квіт.
17
+ - трав.
18
+ - черв.
19
+ - лип.
20
+ - серп.
21
+ - вер.
22
+ - жовт.
23
+ - лист.
24
+ - груд.
25
+ day_names:
26
+ - неділя
27
+ - понеділок
28
+ - вівторок
29
+ - середа
30
+ - четвер
31
+ - п'ятниця
32
+ - субота
33
+ formats:
34
+ default: ! '%d.%m.%Y'
35
+ long: ! '%d %B %Y'
36
+ short: ! '%d %b'
37
+ month_names:
38
+ -
39
+ - Січень
40
+ - Лютий
41
+ - Березень
42
+ - Квітень
43
+ - Травень
44
+ - Червень
45
+ - Липень
46
+ - Серпень
47
+ - Вересень
48
+ - Жовтень
49
+ - Листопад
50
+ - Грудень
51
+ order:
52
+ - :day
53
+ - :month
54
+ - :year
55
+ datetime:
56
+ distance_in_words:
57
+ about_x_hours:
58
+ few: близько %{count} години
59
+ many: близько %{count} годин
60
+ one: близько %{count} година
61
+ other: близько %{count} години
62
+ about_x_months:
63
+ few: близько %{count} місяців
64
+ many: близько %{count} місяців
65
+ one: близько %{count} місяця
66
+ other: близько %{count} місяця
67
+ about_x_years:
68
+ few: близько %{count} років
69
+ many: близько %{count} років
70
+ one: близько %{count} року
71
+ other: близько %{count} року
72
+ almost_x_years:
73
+ few: майже %{count} років
74
+ many: майже %{count} років
75
+ one: майже %{count} роки
76
+ other: майже %{count} років
77
+ half_a_minute: півхвилини
78
+ less_than_x_minutes:
79
+ few: менше %{count} хвилин
80
+ many: менше %{count} хвилин
81
+ one: менше %{count} хвилини
82
+ other: менше %{count} хвилини
83
+ less_than_x_seconds:
84
+ few: менше %{count} секунд
85
+ many: менше %{count} секунд
86
+ one: менше %{count} секунди
87
+ other: менше %{count} секунди
88
+ over_x_years:
89
+ few: більше %{count} років
90
+ many: більше %{count} років
91
+ one: більше %{count} року
92
+ other: більше %{count} року
93
+ x_days:
94
+ few: ! '%{count} дні'
95
+ many: ! '%{count} днів'
96
+ one: ! '%{count} день'
97
+ other: ! '%{count} дня'
98
+ x_minutes:
99
+ few: ! '%{count} хвилини'
100
+ many: ! '%{count} хвилин'
101
+ one: ! '%{count} хвилина'
102
+ other: ! '%{count} хвилини'
103
+ x_months:
104
+ few: ! '%{count} місяці'
105
+ many: ! '%{count} місяців'
106
+ one: ! '%{count} місяць'
107
+ other: ! '%{count} місяця'
108
+ x_seconds:
109
+ few: ! '%{count} секунди'
110
+ many: ! '%{count} секунд'
111
+ one: ! '%{count} секунда'
112
+ other: ! '%{count} секунди'
113
+ prompts:
114
+ day: День
115
+ hour: Година
116
+ minute: Хвилина
117
+ month: Місяць
118
+ second: Секунда
119
+ year: Рік
120
+ errors: &errors
121
+ format: ! '%{attribute} %{message}'
122
+ messages:
123
+ accepted: має бути прийнятий
124
+ blank: не може бути пустим
125
+ confirmation: не збігається з підтвердженням
126
+ empty: не може бути порожнім
127
+ equal_to: має дорівнювати %{count}
128
+ even: має бути парним
129
+ exclusion: зарезервовано
130
+ greater_than: має бути більше ніж %{count}
131
+ greater_than_or_equal_to: має бути більше ніж або дорівнювати %{count}
132
+ inclusion: не включено до переліку
133
+ invalid: недійсний
134
+ less_than: має бути менше ніж %{count}
135
+ less_than_or_equal_to: має бути менше ніж або дорівнювати %{count}
136
+ not_a_number: не число
137
+ not_an_integer: не э цілим числом
138
+ odd: має бути непарним
139
+ record_invalid: ! 'Виникли помилки: %{errors}'
140
+ taken: вже зайнятий
141
+ too_long:
142
+ few: занадто довгий (максимум %{count} знаки)
143
+ many: занадто довгий (максимум %{count} знаків)
144
+ one: занадто довгий (максимум %{count} знак)
145
+ other: занадто довгий (максимум %{count} знаку)
146
+ too_short:
147
+ few: занадто короткий (мінімум %{count} знаки)
148
+ many: занадто короткий (мінімум %{count} знаків)
149
+ one: занадто короткий (мінімум %{count} знак)
150
+ other: занадто короткий (мінімум %{count} знаку)
151
+ wrong_length:
152
+ few: неправильна довжина (має бути %{count} знаки)
153
+ many: неправильна довжина (має бути %{count} знаків)
154
+ one: неправильна довжина (має бути %{count} знак)
155
+ other: неправильна довжина (має бути %{count} знаку)
156
+ template:
157
+ body: ! 'Помилки виявлено в таких полях:'
158
+ header:
159
+ few: ! '%{model} не збережено через %{count} помилки'
160
+ many: ! '%{model} не збережено через %{count} помилок'
161
+ one: ! '%{model} не збережено через %{count} помилку'
162
+ other: ! '%{model} не збережено через %{count} помилки'
163
+ helpers:
164
+ select:
165
+ prompt: ! 'Оберіть: '
166
+ submit:
167
+ create: Створити %{model}
168
+ submit: Зберегти %{model}
169
+ update: Зберегти %{model}
170
+ number:
171
+ currency:
172
+ format:
173
+ delimiter: ! ' '
174
+ format: ! '%n %u'
175
+ precision: 2
176
+ separator: ! ','
177
+ significant: false
178
+ strip_insignificant_zeros: false
179
+ unit: грн.
180
+ format:
181
+ delimiter: ! ' '
182
+ precision: 3
183
+ separator: ! ','
184
+ significant: false
185
+ strip_insignificant_zeros: false
186
+ human:
187
+ decimal_units:
188
+ format: ! '%n %u'
189
+ units:
190
+ billion:
191
+ few: Мільярдів
192
+ many: Мільярдів
193
+ one: Мільярд
194
+ other: Мільярдів
195
+ million:
196
+ few: Мільйонів
197
+ many: Мільйонів
198
+ one: Мільйон
199
+ other: Мільйонів
200
+ quadrillion:
201
+ few: Квадрильйонів
202
+ many: Квадрильйонів
203
+ one: Кквадрильйон
204
+ other: Квадрильйонів
205
+ thousand:
206
+ few: Тисяч
207
+ many: Тисяч
208
+ one: Тисяча
209
+ other: Тисяч
210
+ trillion:
211
+ few: Трильйонів
212
+ many: Трильйонів
213
+ one: Трильйон
214
+ other: Трильйонів
215
+ unit: ''
216
+ format:
217
+ delimiter: ''
218
+ precision: 1
219
+ significant: false
220
+ strip_insignificant_zeros: false
221
+ storage_units:
222
+ format: ! '%n %u'
223
+ units:
224
+ byte:
225
+ few: байти
226
+ many: байтів
227
+ one: байт
228
+ other: байту
229
+ gb: ГБ
230
+ kb: кБ
231
+ mb: МБ
232
+ tb: ТБ
233
+ percentage:
234
+ format:
235
+ delimiter: ''
236
+ precision:
237
+ format:
238
+ delimiter: ''
239
+ support:
240
+ array:
241
+ last_word_connector: ! ' та '
242
+ two_words_connector: ! ' і '
243
+ words_connector: ! ', '
244
+ time:
245
+ am: до полудня
246
+ formats:
247
+ default: ! '%a, %d %b %Y, %H:%M:%S %z'
248
+ long: ! '%d %B %Y, %H:%M'
249
+ short: ! '%d %b, %H:%M'
250
+ pm: по полудні
251
+ # remove these aliases after 'activemodel' and 'activerecord' namespaces are removed from Rails repository
252
+ activemodel:
253
+ errors:
254
+ <<: *errors
255
+ activerecord:
256
+ errors:
257
+ <<: *errors
@@ -0,0 +1,201 @@
1
+ vi:
2
+ date:
3
+ abbr_day_names:
4
+ - Chủ nhật
5
+ - Thứ hai
6
+ - Thứ ba
7
+ - Thứ tư
8
+ - Thứ năm
9
+ - Thứ sáu
10
+ - Thứ bảy
11
+ abbr_month_names:
12
+ -
13
+ - Tháng một
14
+ - Tháng hai
15
+ - Tháng ba
16
+ - Tháng tư
17
+ - Tháng năm
18
+ - Tháng sáu
19
+ - Tháng bảy
20
+ - Tháng tám
21
+ - Tháng chín
22
+ - Tháng mười
23
+ - Tháng mười một
24
+ - Tháng mười hai
25
+ day_names:
26
+ - Chủ nhật
27
+ - Thứ hai
28
+ - Thứ ba
29
+ - Thứ tư
30
+ - Thứ năm
31
+ - Thứ sáu
32
+ - Thứ bảy
33
+ formats:
34
+ default: ! '%d-%m-%Y'
35
+ long: ! '%d %B, %Y'
36
+ short: ! '%d %b'
37
+ month_names:
38
+ -
39
+ - Tháng một
40
+ - Tháng hai
41
+ - Tháng ba
42
+ - Tháng tư
43
+ - Tháng năm
44
+ - Tháng sáu
45
+ - Tháng bảy
46
+ - Tháng tám
47
+ - Tháng chín
48
+ - Tháng mười
49
+ - Tháng mười một
50
+ - Tháng mười hai
51
+ order:
52
+ - :day
53
+ - :month
54
+ - :year
55
+ datetime:
56
+ distance_in_words:
57
+ about_x_hours:
58
+ one: khoảng 1 giờ
59
+ other: khoảng %{count} giờ
60
+ about_x_months:
61
+ one: khoảng 1 tháng
62
+ other: khoảng %{count} tháng
63
+ about_x_years:
64
+ one: khoảng 1 năm
65
+ other: khoảng %{count} năm
66
+ almost_x_years:
67
+ one: gần 1 năm
68
+ other: gần %{count} năm
69
+ half_a_minute: 30 giây
70
+ less_than_x_minutes:
71
+ one: chưa tới 1 phút
72
+ other: chưa tới %{count} phút
73
+ less_than_x_seconds:
74
+ one: chưa tới 1 giây
75
+ other: chưa tới %{count} giây
76
+ over_x_years:
77
+ one: hơn 1 năm
78
+ other: hơn %{count} năm
79
+ x_days:
80
+ one: 1 ngày
81
+ other: ! '%{count} ngày'
82
+ x_minutes:
83
+ one: 1 phút
84
+ other: ! '%{count} phút'
85
+ x_months:
86
+ one: 1 tháng
87
+ other: ! '%{count} tháng'
88
+ x_seconds:
89
+ one: 1 giây
90
+ other: ! '%{count} giây'
91
+ prompts:
92
+ day: Ngày
93
+ hour: Giờ
94
+ minute: Phút
95
+ month: Tháng
96
+ second: Giây
97
+ year: Năm
98
+ errors: &errors
99
+ format: ! '%{attribute} %{message}'
100
+ messages:
101
+ accepted: phải được đồng ý
102
+ blank: không thể để trắng
103
+ confirmation: không khớp với xác nhận
104
+ empty: không thể rỗng
105
+ equal_to: phải bằng %{count}
106
+ even: phải là số chẵn
107
+ exclusion: đã được giành trước
108
+ greater_than: phải lớn hơn %{count}
109
+ greater_than_or_equal_to: phải lớn hơn hoặc bằng %{count}
110
+ inclusion: không có trong danh sách
111
+ invalid: không hợp lệ
112
+ less_than: phải nhỏ hơn %{count}
113
+ less_than_or_equal_to: phải nhỏ hơn hoặc bằng %{count}
114
+ not_a_number: không phải là số
115
+ not_an_integer: phải là một số nguyên
116
+ odd: phải là số lẻ
117
+ taken: đã có
118
+ too_long: quá dài (tối đa %{count} ký tự)
119
+ too_short: quá ngắn (tối thiểu %{count} ký tự)
120
+ wrong_length: độ dài không đúng (phải là %{count} ký tự)
121
+ template:
122
+ body: ! 'Có lỗi với các mục sau:'
123
+ header:
124
+ one: 1 lỗi ngăn không cho lưu %{model} này
125
+ other: ! '%{count} lỗi ngăn không cho lưu %{model} này'
126
+ helpers:
127
+ select:
128
+ prompt: Vui lòng chọn
129
+ submit:
130
+ create: Tạo %{model}
131
+ submit: Lưu %{model}
132
+ update: Cập nhật %{model}
133
+ number:
134
+ currency:
135
+ format:
136
+ delimiter: .
137
+ format: ! '%n %u'
138
+ precision: 2
139
+ separator: ! ','
140
+ significant: false
141
+ strip_insignificant_zeros: false
142
+ unit: đồng
143
+ format:
144
+ delimiter: .
145
+ precision: 3
146
+ separator: ! ','
147
+ significant: false
148
+ strip_insignificant_zeros: false
149
+ human:
150
+ decimal_units:
151
+ format: ! '%n %u'
152
+ units:
153
+ unit: ''
154
+ billion: Tỷ
155
+ million: Triệu
156
+ quadrillion: Triệu tỷ
157
+ thousand: Nghìn
158
+ trillion: Nghìn tỷ
159
+ format:
160
+ delimiter: ''
161
+ precision: 1
162
+ significant: true
163
+ strip_insignificant_zeros: true
164
+ storage_units:
165
+ format: ! '%n %u'
166
+ units:
167
+ byte:
168
+ one: Byte
169
+ other: Byte
170
+ gb: GB
171
+ kb: KB
172
+ mb: MB
173
+ tb: TB
174
+ percentage:
175
+ format:
176
+ delimiter: ''
177
+ precision:
178
+ format:
179
+ delimiter: ''
180
+ support:
181
+ array:
182
+ last_word_connector: ! ', và '
183
+ two_words_connector: ! ' và '
184
+ words_connector: ! ', '
185
+ time:
186
+ am: sáng
187
+ formats:
188
+ default: ! '%a, %d %b %Y %H:%M:%S %z'
189
+ long: ! '%d %B, %Y %H:%M'
190
+ short: ! '%d %b %H:%M'
191
+ pm: chiều
192
+ # remove these aliases after 'activemodel' and 'activerecord' namespaces are removed from Rails repository
193
+ activemodel:
194
+ errors:
195
+ <<: *errors
196
+ activerecord:
197
+ errors:
198
+ <<: *errors
199
+ messages:
200
+ record_invalid: "Lỗi xác nhận: %{errors}"
201
+ taken: "đã có"