i18n-js 3.8.2 → 4.2.3

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 (145) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +4 -0
  3. data/.github/FUNDING.yml +1 -1
  4. data/.github/ISSUE_TEMPLATE/bug_report.md +41 -0
  5. data/.github/ISSUE_TEMPLATE/config.yml +5 -0
  6. data/.github/ISSUE_TEMPLATE/feature_request.md +23 -0
  7. data/.github/PULL_REQUEST_TEMPLATE.md +38 -0
  8. data/.github/dependabot.yml +15 -0
  9. data/.github/workflows/ruby-tests.yml +73 -0
  10. data/.gitignore +13 -7
  11. data/.rubocop.yml +19 -0
  12. data/CHANGELOG.md +47 -512
  13. data/CODE_OF_CONDUCT.md +74 -0
  14. data/CONTRIBUTING.md +79 -0
  15. data/Gemfile +3 -0
  16. data/LICENSE.md +20 -0
  17. data/MIGRATING_FROM_V3_TO_V4.md +192 -0
  18. data/README.md +425 -921
  19. data/Rakefile +10 -20
  20. data/bin/release +81 -0
  21. data/exe/i18n +5 -0
  22. data/i18n-js.gemspec +51 -29
  23. data/lib/guard/i18n-js/templates/Guardfile +10 -0
  24. data/lib/guard/i18n-js/version.rb +13 -0
  25. data/lib/guard/i18n-js.rb +95 -0
  26. data/lib/i18n-js/clean_hash.rb +13 -0
  27. data/lib/i18n-js/cli/check_command.rb +17 -0
  28. data/lib/i18n-js/cli/command.rb +79 -0
  29. data/lib/i18n-js/cli/export_command.rb +95 -0
  30. data/lib/i18n-js/cli/init_command.rb +52 -0
  31. data/lib/i18n-js/cli/lint_scripts_command.rb +159 -0
  32. data/lib/i18n-js/cli/lint_translations_command.rb +157 -0
  33. data/lib/i18n-js/cli/plugins_command.rb +67 -0
  34. data/lib/i18n-js/cli/ui.rb +64 -0
  35. data/lib/i18n-js/cli/version_command.rb +18 -0
  36. data/lib/i18n-js/cli.rb +66 -0
  37. data/lib/i18n-js/embed_fallback_translations_plugin.rb +70 -0
  38. data/lib/i18n-js/export_files_plugin.rb +103 -0
  39. data/lib/i18n-js/lint.js +150645 -0
  40. data/lib/i18n-js/lint.ts +196 -0
  41. data/lib/i18n-js/listen.rb +96 -0
  42. data/lib/i18n-js/plugin.rb +103 -0
  43. data/lib/i18n-js/schema.rb +216 -0
  44. data/lib/i18n-js/sort_hash.rb +12 -0
  45. data/lib/i18n-js/version.rb +5 -0
  46. data/lib/i18n-js.rb +107 -1
  47. data/package.json +5 -20
  48. metadata +149 -189
  49. data/.editorconfig +0 -24
  50. data/.github/workflows/tests.yaml +0 -100
  51. data/.npmignore +0 -27
  52. data/Appraisals +0 -44
  53. data/app/assets/javascripts/i18n/filtered.js.erb +0 -23
  54. data/app/assets/javascripts/i18n/shims.js +0 -240
  55. data/app/assets/javascripts/i18n/translations.js +0 -3
  56. data/app/assets/javascripts/i18n.js +0 -1095
  57. data/gemfiles/i18n_0_6.gemfile +0 -7
  58. data/gemfiles/i18n_0_7.gemfile +0 -7
  59. data/gemfiles/i18n_0_8.gemfile +0 -7
  60. data/gemfiles/i18n_0_9.gemfile +0 -7
  61. data/gemfiles/i18n_1_0.gemfile +0 -7
  62. data/gemfiles/i18n_1_1.gemfile +0 -7
  63. data/gemfiles/i18n_1_2.gemfile +0 -7
  64. data/gemfiles/i18n_1_3.gemfile +0 -7
  65. data/gemfiles/i18n_1_4.gemfile +0 -7
  66. data/gemfiles/i18n_1_5.gemfile +0 -7
  67. data/gemfiles/i18n_1_6.gemfile +0 -7
  68. data/gemfiles/i18n_1_7.gemfile +0 -7
  69. data/gemfiles/i18n_1_8.gemfile +0 -7
  70. data/i18njs.png +0 -0
  71. data/lib/i18n/js/dependencies.rb +0 -63
  72. data/lib/i18n/js/engine.rb +0 -87
  73. data/lib/i18n/js/fallback_locales.rb +0 -70
  74. data/lib/i18n/js/formatters/base.rb +0 -25
  75. data/lib/i18n/js/formatters/js.rb +0 -32
  76. data/lib/i18n/js/formatters/json.rb +0 -13
  77. data/lib/i18n/js/middleware.rb +0 -82
  78. data/lib/i18n/js/private/config_store.rb +0 -31
  79. data/lib/i18n/js/private/hash_with_symbol_keys.rb +0 -36
  80. data/lib/i18n/js/segment.rb +0 -80
  81. data/lib/i18n/js/utils.rb +0 -78
  82. data/lib/i18n/js/version.rb +0 -7
  83. data/lib/i18n/js.rb +0 -264
  84. data/lib/rails/generators/i18n/js/config/config_generator.rb +0 -19
  85. data/lib/rails/generators/i18n/js/config/templates/i18n-js.yml +0 -27
  86. data/lib/tasks/export.rake +0 -8
  87. data/spec/fixtures/custom_path.yml +0 -5
  88. data/spec/fixtures/default.yml +0 -5
  89. data/spec/fixtures/erb.yml +0 -5
  90. data/spec/fixtures/except_condition.yml +0 -7
  91. data/spec/fixtures/js_export_dir_custom.yml +0 -7
  92. data/spec/fixtures/js_export_dir_none.yml +0 -6
  93. data/spec/fixtures/js_extend_parent.yml +0 -6
  94. data/spec/fixtures/js_extend_segment.yml +0 -6
  95. data/spec/fixtures/js_file_per_locale.yml +0 -7
  96. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_default_locale_symbol.yml +0 -4
  97. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_hash.yml +0 -6
  98. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_locale.yml +0 -4
  99. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_locale_without_fallback_translations.yml +0 -4
  100. data/spec/fixtures/js_file_per_locale_with_fallbacks_enabled.yml +0 -4
  101. data/spec/fixtures/js_file_per_locale_without_fallbacks.yml +0 -4
  102. data/spec/fixtures/js_file_with_namespace_prefix_and_pretty_print.yml +0 -9
  103. data/spec/fixtures/js_sort_translation_keys_false.yml +0 -6
  104. data/spec/fixtures/js_sort_translation_keys_true.yml +0 -6
  105. data/spec/fixtures/json_only.yml +0 -18
  106. data/spec/fixtures/locales.yml +0 -133
  107. data/spec/fixtures/merge_plurals.yml +0 -6
  108. data/spec/fixtures/merge_plurals_with_no_overrides.yml +0 -4
  109. data/spec/fixtures/merge_plurals_with_partial_overrides.yml +0 -4
  110. data/spec/fixtures/millions.yml +0 -4
  111. data/spec/fixtures/multiple_conditions.yml +0 -7
  112. data/spec/fixtures/multiple_conditions_per_locale.yml +0 -7
  113. data/spec/fixtures/multiple_files.yml +0 -7
  114. data/spec/fixtures/no_config.yml +0 -2
  115. data/spec/fixtures/no_scope.yml +0 -4
  116. data/spec/fixtures/simple_scope.yml +0 -5
  117. data/spec/js/currency.spec.js +0 -62
  118. data/spec/js/current_locale.spec.js +0 -19
  119. data/spec/js/dates.spec.js +0 -276
  120. data/spec/js/defaults.spec.js +0 -31
  121. data/spec/js/extend.spec.js +0 -110
  122. data/spec/js/interpolation.spec.js +0 -124
  123. data/spec/js/jasmine/MIT.LICENSE +0 -20
  124. data/spec/js/jasmine/jasmine-html.js +0 -190
  125. data/spec/js/jasmine/jasmine.css +0 -166
  126. data/spec/js/jasmine/jasmine.js +0 -2476
  127. data/spec/js/jasmine/jasmine_favicon.png +0 -0
  128. data/spec/js/locales.spec.js +0 -31
  129. data/spec/js/localization.spec.js +0 -78
  130. data/spec/js/numbers.spec.js +0 -174
  131. data/spec/js/placeholder.spec.js +0 -24
  132. data/spec/js/pluralization.spec.js +0 -219
  133. data/spec/js/prepare_options.spec.js +0 -41
  134. data/spec/js/require.js +0 -2083
  135. data/spec/js/specs.html +0 -49
  136. data/spec/js/specs_requirejs.html +0 -72
  137. data/spec/js/translate.spec.js +0 -304
  138. data/spec/js/translations.js +0 -188
  139. data/spec/js/utility_functions.spec.js +0 -20
  140. data/spec/ruby/i18n/js/fallback_locales_spec.rb +0 -84
  141. data/spec/ruby/i18n/js/segment_spec.rb +0 -219
  142. data/spec/ruby/i18n/js/utils_spec.rb +0 -106
  143. data/spec/ruby/i18n/js_spec.rb +0 -748
  144. data/spec/spec_helper.rb +0 -80
  145. data/yarn.lock +0 -131
data/CHANGELOG.md CHANGED
@@ -1,528 +1,63 @@
1
- # Change Log
2
- All notable changes to this project will be documented in this file.
3
- This project adheres to [Semantic Versioning](http://semver.org/).
1
+ # Changelog
4
2
 
3
+ <!--
4
+ Prefix your message with one of the following:
5
5
 
6
- ## [Unreleased]
6
+ - [Added] for new features.
7
+ - [Changed] for changes in existing functionality.
8
+ - [Deprecated] for soon-to-be removed features.
9
+ - [Removed] for now removed features.
10
+ - [Fixed] for any bug fixes.
11
+ - [Security] in case of vulnerabilities.
12
+ -->
7
13
 
8
- ### Added
14
+ ## v4.2.3 - Mar 29, 2023
9
15
 
10
- - Nothing
16
+ - [Fixed] Load plugins when running `i18n lint:*` commands.
11
17
 
12
- ### Changed
18
+ ## v4.2.2 - Dec 30, 2022
13
19
 
14
- - Nothing
20
+ - [Changed] Do not re-export files whose contents haven't changed.
21
+ - [Changed] Translations will always be deep sorted.
22
+ - [Fixed] Remove procs from translations before exporting files.
15
23
 
16
- ### Fixed
24
+ ## v4.2.1 - Dec 25, 2022
17
25
 
18
- - Nothing
26
+ - [Changed] Change plugin api to be based on instance methods. This avoids
27
+ having to pass in the config for each and every method. It also allows us
28
+ adding helper methods to the base class.
29
+ - [Fixed] Fix performance issues with embed fallback translations' initial
30
+ implementation.
19
31
 
32
+ ## v4.2.0 - Dec 10, 2022
20
33
 
21
- ## [3.8.2] - 2021-03-18
34
+ - [Added] Add `I18nJS::Plugin.after_export(files:, config:)` method, that's
35
+ called whenever whenever I18nJS finishes exporting files. You can use it to
36
+ further process files, or generate new files based on the exported files.
37
+ - [Added] Bult-in plugin `I18nJS::ExportFilesPlugin`, which allows exporting
38
+ files out of the translations file by using a custom template.
22
39
 
23
- ### Fixed
40
+ ## v4.1.0 - Dec 09, 2022
24
41
 
25
- - [Ruby] Stop using deprecated method
26
- (PR: https://github.com/fnando/i18n-js/pull/598)
27
- - [Ruby] Fix typo in error class reference
28
- (Commit: https://github.com/fnando/i18n-js/commit/cc075ad0a36e940205d0a14390379d69013d188e)
42
+ - [Added] Parse configuration files as erb.
43
+ - [Changed] `I18n.listen(run_on_start:)` was added to control if files should be
44
+ exported during `I18n.listen`'s boot. The default value is `true`.
45
+ - [Added] Now it's possible to transform translations before exporting them
46
+ using a stable plugin api.
47
+ - [Added] Built-in plugin `I18nJS::EmbedFallbackTranslationsPlugin`, which
48
+ allows embedding missing translations on exported files.
49
+ - [Deprecated] The `i18n check` has been deprecated. Use
50
+ `i18n lint:translations` instead.
51
+ - [Added] Use `i18n lint:scripts` to lint JavaScript/TypeScript.
52
+ - [Fixed] Expand paths passed to `I18nJS.listen(locales_dir:)`.
29
53
 
54
+ ## v4.0.1 - Aug 25, 2022
30
55
 
31
- ## [3.8.1] - 2021-02-25
56
+ - [Fixed] Shell out export to avoid handling I18n reloading heuristics.
57
+ - [Changed] `I18nJS.listen` now accepts a directories list to watch.
58
+ - [Changed] `I18nJS.listen` now accepts
59
+ [listen](https://rubygems.org/gems/listen) options via `:options`.
32
60
 
33
- ### Fixed
61
+ ## v4.0.0 - Jul 29, 2022
34
62
 
35
- - [Ruby] Fix performance issue reading config
36
- (PR: https://github.com/fnando/i18n-js/pull/593)
37
-
38
-
39
- ## [3.8.0] - 2020-10-15
40
-
41
- ### Added
42
-
43
- - [JS] Add option `scope` for `toHumanSize()`
44
- (PR: https://github.com/fnando/i18n-js/pull/583)
45
-
46
-
47
- ## [3.7.1] - 2020-06-30
48
-
49
- ### Fixed
50
-
51
- - [JS] For translation missing behaviour `guess`, replace all underscores to spaces properly
52
- (PR: https://github.com/fnando/i18n-js/pull/574)
53
-
54
-
55
- ## [3.7.0] - 2020-05-29
56
-
57
- ### Added
58
-
59
- - [JS] Allow options to be passed in when calling `I18n.localize`/`I18n.l`
60
- (PR: https://github.com/fnando/i18n-js/pull/570)
61
-
62
-
63
- ## [3.6.0] - 2020-02-14
64
-
65
- ### Added
66
-
67
- - [Ruby] Allow `suffix` to be added to generated translations files
68
- (PR: https://github.com/fnando/i18n-js/pull/561)
69
-
70
-
71
- ## [3.5.1] - 2019-12-21
72
-
73
- ### Changed
74
-
75
- - [JS] Bound shortcut functions
76
- (PR: https://github.com/fnando/i18n-js/pull/560)
77
-
78
-
79
- ## [3.5.0] - 2019-11-12
80
-
81
- ### Added
82
-
83
- - [JS] Support for `%k` strftime format to match Ruby strftime
84
- (PR: https://github.com/fnando/i18n-js/pull/554)
85
-
86
-
87
- ## [3.4.2] - 2019-11-11
88
-
89
- ### Fixed
90
-
91
- - [Ruby] Fix regression introduced in PR #551
92
- (PR: https://github.com/fnando/i18n-js/pull/555)
93
-
94
-
95
- ## [3.4.1] - 2019-11-01
96
-
97
- ### Fixed
98
-
99
- - [Ruby] Fix merging of plural keys to work with fallbacks that aren't overridden
100
- (PR: https://github.com/fnando/i18n-js/pull/551)
101
-
102
-
103
- ## [3.4.0] - 2019-10-15
104
-
105
- ### Added
106
-
107
- - [Ruby] Allow `prefix` to be added to generated translations files
108
- (PR: https://github.com/fnando/i18n-js/pull/549)
109
-
110
-
111
- ## [3.3.0] - 2019-06-06
112
-
113
- ### Added
114
-
115
- - [JS] Support for `%P`, `%Z`, and `%l` strftime formats to match Ruby strftime
116
- (PR: https://github.com/fnando/i18n-js/pull/537)
117
-
118
-
119
- ## [3.2.3] - 2019-05-24
120
-
121
- ### Changed
122
-
123
- - [Ruby] Allow rails 6 to be used with this gem
124
- (PR: https://github.com/fnando/i18n-js/pull/536)
125
-
126
-
127
- ## [3.2.2] - 2019-05-09
128
-
129
- ### Fixed
130
-
131
- - [JS] Return invalid date/time input values (null & undefined) as-is
132
- (Commit: https://github.com/fnando/i18n-js/commit/869d1689ed788ff50121de492db354652971c23d)
133
-
134
-
135
- ## [3.2.1] - 2019-01-22
136
-
137
- ### Changed
138
-
139
- - [Ruby] `json_only` option should allow multiple locales.
140
- (PR: https://github.com/fnando/i18n-js/pull/531)
141
- - [Ruby] Simplified and cleaned code related to JS/JSON formatting.
142
- (PR: https://github.com/fnando/i18n-js/pull/531)
143
- - [JS] Use strict value comparison
144
-
145
- ### Fixed
146
-
147
- - [Ruby] Relax `i18n` version requirement back to `>= 0.6.6`
148
- (PR: https://github.com/fnando/i18n-js/pull/530)
149
- - [Ruby] Fix merging of plural keys across locales.
150
- (PR: https://github.com/fnando/i18n-js/pull/472)
151
-
152
-
153
- ## [3.2.0] - 2018-11-16
154
-
155
- ### Added
156
-
157
- - [Ruby] Add option `json_only` to generate translations in JSON
158
- (PR: https://github.com/fnando/i18n-js/pull/524)
159
-
160
- ### Changed
161
-
162
- - [Ruby] Requires `i18n` to be `>= 0.8.0` for CVE-2014-10077
163
-
164
-
165
- ## [3.1.0] - 2018-11-01
166
-
167
- ### Added
168
-
169
- - [Ruby] Add option to allow setting a different I18n backend
170
- (PR: https://github.com/fnando/i18n-js/pull/519)
171
-
172
- ### Fixed
173
-
174
- - [JS] Fix missing translation when pluralizing with default scopes
175
- (PR: https://github.com/fnando/i18n-js/pull/516)
176
-
177
-
178
- ## [3.0.11] - 2018-07-06
179
-
180
- ### Fixed
181
-
182
- - [JS] Fix interpolation for array with non string/null elements
183
- (PR: https://github.com/fnando/i18n-js/pull/505)
184
-
185
-
186
- ## [3.0.10] - 2018-06-21
187
-
188
- ### Fixed
189
-
190
- - [JS] Fix extend method changing keys with `null` to empty objects
191
- (PR: https://github.com/fnando/i18n-js/pull/503)
192
- - [JS] Fix variable name in an internal method
193
- (PR: https://github.com/fnando/i18n-js/pull/501)
194
-
195
-
196
- ## [3.0.9] - 2018-06-21
197
-
198
- ### Fixed
199
-
200
- - [JS] Fix translation array interpolation for array with null
201
-
202
-
203
- ## [3.0.8] - 2018-06-06
204
-
205
- ### Changed
206
-
207
- - [JS] Interpolate translation array too
208
- (PR: https://github.com/fnando/i18n-js/pull/498)
209
-
210
-
211
- ## [3.0.7] - 2018-05-30
212
-
213
- ### Fixed
214
-
215
- - [Ruby] Fix new bug occuring when config file is absent
216
-
217
-
218
- ## [3.0.6] - 2018-05-30
219
-
220
- ### Fixed
221
-
222
- - [Ruby] Make JS `i18n/filtered` depends on i18n-js config too
223
- (PR: https://github.com/fnando/i18n-js/pull/497)
224
-
225
-
226
- ## [3.0.5] - 2018-02-26
227
-
228
- ### Changed
229
-
230
- - [Ruby] Support `I18n` `1.0.x`
231
- (PR: https://github.com/fnando/i18n-js/pull/492)
232
-
233
-
234
- ## [3.0.4] - 2018-01-26
235
-
236
- ### Fixed
237
-
238
- - [Ruby] Fix `JS::Dependencies.using_asset_pipeline?` returning true when sprockets installed but disabled
239
- (PR: https://github.com/fnando/i18n-js/pull/488)
240
-
241
-
242
- ## [3.0.3] - 2018-01-02
243
-
244
- ### Fixed
245
-
246
- - [Ruby] Fix extend method when translations has array values
247
- (PR: https://github.com/fnando/i18n-js/pull/487)
248
-
249
-
250
- ## [3.0.2] - 2017-10-26
251
-
252
- ### Changed
253
-
254
- - [Ruby] Avoid writing new file if a file with same content already exists
255
- (PR: https://github.com/fnando/i18n-js/pull/473)
256
- - [JS] Fix fallback when "3-part" locale like `zh-Hant-TW` is used
257
- It was falling back to `zh` first instead of `zh-Hant` (see new test case added)
258
- (PR: https://github.com/fnando/i18n-js/pull/475)
259
-
260
-
261
- ## [3.0.1] - 2017-08-02
262
-
263
- ### Changed
264
-
265
- - [Ruby] Relax Rails detection code to work with alternative installation methods
266
- (PR: https://github.com/fnando/i18n-js/pull/467)
267
- - [JS] Fix fallback when "3-part" locale like `zh-Hant-TW` is used
268
- It fallbacks to `zh` only before, now it fallbacks to `zh-Hant`
269
- (PR: https://github.com/fnando/i18n-js/pull/465)
270
-
271
-
272
- ## [3.0.0] - 2017-04-01
273
-
274
- This is a fake official release, the *real* one will be `3.0.0.rc17`
275
- And today is not April Fools' Day
276
-
277
- ### Fixed
278
-
279
- - Ends the longest Release Candidate period among all ruby gems
280
- (v3.0.0.rc1 released at 2012-05-10)
281
-
282
-
283
- ## [3.0.0.rc16] - 2017-03-13
284
-
285
- ### Changed
286
-
287
- - [Ruby] Drop support for Ruby < `2.1.0`
288
-
289
- ### Fixed
290
-
291
- - [JS] Make defaultValue works on plural translation
292
- - [JS] Fix UMD pattern so the global/root won’t be undefined
293
-
294
-
295
- ## [3.0.0.rc15] - 2016-12-07
296
-
297
- ### Added
298
-
299
- - Nothing
300
-
301
- ### Changed
302
-
303
- - [JS] Allow `defaultValue` to work in pluralization
304
- (PR: https://github.com/fnando/i18n-js/pull/433)
305
- - [Ruby] Stop validating the fallback locales against `I18n.available_locales`
306
- This allows some locales to be used as fallback locales, but not to be generated in JS.
307
- (PR: https://github.com/fnando/i18n-js/pull/425)
308
- - [Ruby] Remove dependency on gem `activesupport`
309
-
310
- ### Fixed
311
-
312
- - [JS] Stop converting numeric & boolean values into objects
313
- when merging objects with `I18n.extend`
314
- (PR: https://github.com/fnando/i18n-js/pull/420)
315
- - [JS] Fix I18n pluralization fallback when tree is empty
316
- (PR: https://github.com/fnando/i18n-js/pull/435)
317
- - [Ruby] Use old syntax to define lambda for compatibility with older Rubies
318
- (Issue: https://github.com/fnando/i18n-js/issues/419)
319
- - [Ruby] Fix error raised in middleware cache cleaning in parallel test
320
- (Issue: https://github.com/fnando/i18n-js/issues/436)
321
-
322
-
323
- ## [3.0.0.rc14] - 2016-08-29
324
-
325
- ### Changed
326
-
327
- - [JS] Method `I18n.extend()` behave as deep merging instead of shallow merging. (https://github.com/fnando/i18n-js/pull/416)
328
- - [Ruby] Use object/class instead of block when registering Sprockets preprocessor (https://github.com/fnando/i18n-js/pull/418)
329
- To ensure that your cache will expire properly based on locale file content after upgrading,
330
- you should run `rake assets:clobber` and/or other rake tasks that clear the asset cache once gem updated
331
- - [Ruby] Detect & support rails 5 (https://github.com/fnando/i18n-js/pull/413)
332
-
333
-
334
- ## [3.0.0.rc13] - 2016-06-29
335
-
336
- ### Added
337
-
338
- - [Ruby] Added option `js_extend` to not generate JS code for translations with usage of `I18n.extend` ([#397](https://github.com/fnando/i18n-js/pull/397))
339
-
340
- ### Changed
341
-
342
- - Nothing
343
-
344
- ### Fixed
345
-
346
- - [JS] Initialize option `missingBehaviour` & `missingTranslationPrefix` with default values ([#398](https://github.com/fnando/i18n-js/pull/398))
347
- - [JS] Throw an error when `I18n.strftime()` takes an invalid date ([#383](https://github.com/fnando/i18n-js/pull/383))
348
- - [JS] Fix default error message when translation missing to consider locale passed in options
349
- - [Ruby] Reset middleware cache on rails startup
350
- ([#402](https://github.com/fnando/i18n-js/pull/402))
351
-
352
-
353
- ## [3.0.0.rc12] - 2015-12-30
354
-
355
- ### Added
356
-
357
- - [JS] Allow extending of translation files ([#354](https://github.com/fnando/i18n-js/pull/354))
358
- - [JS] Allow missingPlaceholder to receive extra data for debugging ([#380](https://github.com/fnando/i18n-js/pull/380))
359
-
360
- ### Changed
361
-
362
- - Nothing
363
-
364
- ### Fixed
365
-
366
- - [Ruby] Fix of missing initializer at sprockets. ([#371](https://github.com/fnando/i18n-js/pull/371))
367
- - [Ruby] Use proper method to register preprocessor documented by sprockets-rails. ([#376](https://github.com/fnando/i18n-js/pull/376))
368
- - [JS] Correctly round unprecise floating point numbers.
369
- - [JS] Ensure objects are recognized when passed in from an iframe. ([#375](https://github.com/fnando/i18n-js/pull/375))
370
-
371
-
372
- ## 3.0.0.rc11
373
-
374
- ### breaking changes
375
-
376
- ### enhancements
377
-
378
- ### bug fixes
379
-
380
- - [Ruby] Handle fallback locale without any translation properly ([#338](https://github.com/fnando/i18n-js/pull/338))
381
- - [Ruby] Prevent translation entry with null value to override value in fallback locale(s), if enabled ([#334](https://github.com/fnando/i18n-js/pull/334))
382
-
383
-
384
- ## 3.0.0.rc10
385
-
386
- ### breaking changes
387
-
388
- - [Ruby] In `config/i18n-js.yml`, if you are using `%{locale}` in your filename and are referencing specific translations keys, please add `*.` to the beginning of those keys. ([#320](https://github.com/fnando/i18n-js/pull/320))
389
- - [Ruby] The `:except` option to exclude certain phrases now (only) accepts the same patterns the `:only` option accepts
390
-
391
- ### enhancements
392
-
393
- - [Ruby] Make handling of per-locale and not-per-locale exporting to be more consistent ([#320](https://github.com/fnando/i18n-js/pull/320))
394
- - [Ruby] Add option `sort_translation_keys` to sort translation keys alphabetically ([#318](https://github.com/fnando/i18n-js/pull/318))
395
-
396
- ### bug fixes
397
-
398
- - [Ruby] Fix fallback logic to work with not-per-locale files ([#320](https://github.com/fnando/i18n-js/pull/320))
399
-
400
-
401
- ## 3.0.0.rc9
402
-
403
- ### enhancements
404
-
405
- - [JS] Force currency number sign to be at first place using `sign_first` option, default to `true`
406
- - [Ruby] Add option `namespace` & `pretty_print` ([#300](https://github.com/fnando/i18n-js/pull/300))
407
- - [Ruby] Add option `export_i18n_js` ([#301](https://github.com/fnando/i18n-js/pull/301))
408
- - [Ruby] Now the gem also detects pre-release versions of `rails`
409
- - [Ruby] Add `:except` option to exclude certain phrases or groups of phrases from the
410
- outputted translations ([#312](https://github.com/fnando/i18n-js/pull/312))
411
- - [JS] You can now set `I18n.missingBehavior='guess'` to have the scope string output as text instead of of the
412
- "[missing `scope`]" message when no translation is available.
413
- Combined that with `I18n.missingTranslationPrefix='SOMETHING'` and you can
414
- still identify those missing strings.
415
- ([#304](https://github.com/fnando/i18n-js/pull/304))
416
-
417
- ### bug fixes
418
-
419
- - [JS] Fix missing translation message when scope is passed in options
420
- - [Ruby] Fix save cache directory verification when path is a symbolic link ([#329](https://github.com/fnando/i18n-js/pull/329))
421
-
422
-
423
- ## 3.0.0.rc8
424
-
425
- ### enhancements
426
-
427
- - Add support for loading via AMD and CommonJS module loaders ([#266](https://github.com/fnando/i18n-js/pull/266))
428
- - Add `I18n.nullPlaceholder`
429
- Defaults to I18n.missingPlaceholder (`[missing {{name}} value]`)
430
- Set to `function() {return "";}` to match Ruby `I18n.t("name: %{name}", name: nil)`
431
- - For date formatting, you can now also add placeholders to the date format, see README for detail
432
- - Add fallbacks option to `i18n-js.yml`, defaults to `true`
433
-
434
- ### bug fixes
435
-
436
- - Fix factory initialization so that the Node/CommonJS branch only gets executed if the environment is Node/CommonJS
437
- (it currently will execute if module is defined in the global scope, which occurs with QUnit, for example)
438
- - Fix pluralization rules selection for negative `count` (e.g. `-1` was lead to use `one` for pluralization) ([#268](https://github.com/fnando/i18n-js/pull/268))
439
- - Remove check for `Rails.configuration.assets.compile` before telling Sprockets the dependency of translations JS file
440
- This might be the reason of many "cache not expired" issues
441
- Discovered/reported in #277
442
-
443
- ## 3.0.0.rc7
444
-
445
- ### enhancements
446
-
447
- - The Rails Engine initializer is now named as `i18n-js.register_preprocessor` (https://github.com/fnando/i18n-js/pull/261)
448
- - Rename `I18n::JS.config_file` to `I18n::JS.config_file_path` and make it configurable
449
- Expected a `String`, default is still `config/i18n-js.yml`
450
- - When running `rake i18n:js:export`, the `i18n.js` will also be exported to `I18n::JS.export_i18n_js_dir_path` by default
451
- - Add `I18n::JS.export_i18n_js_dir_path`
452
- Expected a `String`, default is `public/javascripts`
453
- Set to `nil` will disable exporting `i18n.js`
454
-
455
- ### bug fixes
456
-
457
- - Prevent toString() call on `undefined` when there is a missing interpolation value
458
- - Added support for Rails instances without Sprockets object (https://github.com/fnando/i18n-js/pull/241)
459
- - Fix `DEFAULT_OPTIONS` in `i18n.js` which contained an excessive comma
460
- - Fix `nil` values are exported into JS files which causes strange translation error
461
- - Fix pattern to replace all escaped $ in I18n.translate
462
- - Fix JS `I18n.lookup` modifies existing locales accidentally
463
-
464
- ## 3.0.0.rc6
465
-
466
- ### enhancements
467
-
468
- - You can now assign `I18n.locale` & `I18n.default_locale` before loading `i18n.js` in `application.html.*`
469
- (merged to `i18n-js-pika` already)
470
- - You can include ERB in `config/i18n-js.yml`(https://github.com/fnando/i18n-js/pull/224)
471
- - Add support for +00:00 style time zone designator (https://github.com/fnando/i18n-js/pull/167)
472
- - Add back rake task for export (`rake i18n:js:export`)
473
- - Not overriding translation when manually run `I18n::JS.export` (https://github.com/fnando/i18n-js/pull/171)
474
- - Move missing placeholder text generation into its own function (for easier debugging) (https://github.com/fnando/i18n-js/pull/169)
475
- - Add support for milliseconds (`lll` in `yyyy-mm-ddThh:mm:ss.lllZ`) (https://github.com/fnando/i18n-js/pull/192)
476
- - Add back i18n-js.yml config file generator : `rails generate i18n:js:config` (https://github.com/fnando/i18n-js/pull/225)
477
-
478
- ### bug fixes
479
-
480
- - `I18n::JS.export` no longer exports locales other than those in `I18n.available_locales`, if `I18n.available_locales` is set
481
- - I18.t supports the base scope through the options argument
482
- - I18.t accepts an array as the scope
483
- - Fix regression: asset not being reloaded in development when translation changed
484
- - Requires `i18n` to be `~> 0.6`, `0.5` does not work at all
485
- - Fix using multi-star scope with top-level translation key (https://github.com/fnando/i18n-js/pull/221)
486
-
487
-
488
- ## Before 3.0.0.rc5
489
-
490
- - Things happened.
491
-
492
-
493
-
494
- [Unreleased]: https://github.com/fnando/i18n-js/compare/v3.8.2...HEAD
495
- [3.8.2]: https://github.com/fnando/i18n-js/compare/v3.8.1...v3.8.2
496
- [3.8.1]: https://github.com/fnando/i18n-js/compare/v3.8.0...v3.8.1
497
- [3.8.0]: https://github.com/fnando/i18n-js/compare/v3.7.1...v3.8.0
498
- [3.7.1]: https://github.com/fnando/i18n-js/compare/v3.7.0...v3.7.1
499
- [3.7.0]: https://github.com/fnando/i18n-js/compare/v3.6.0...v3.7.0
500
- [3.6.0]: https://github.com/fnando/i18n-js/compare/v3.5.1...v3.6.0
501
- [3.5.1]: https://github.com/fnando/i18n-js/compare/v3.5.0...v3.5.1
502
- [3.5.0]: https://github.com/fnando/i18n-js/compare/v3.4.2...v3.5.0
503
- [3.4.2]: https://github.com/fnando/i18n-js/compare/v3.4.1...v3.4.2
504
- [3.4.1]: https://github.com/fnando/i18n-js/compare/v3.4.0...v3.4.1
505
- [3.4.0]: https://github.com/fnando/i18n-js/compare/v3.3.0...v3.4.0
506
- [3.3.0]: https://github.com/fnando/i18n-js/compare/v3.2.3...v3.3.0
507
- [3.2.3]: https://github.com/fnando/i18n-js/compare/v3.2.2...v3.2.3
508
- [3.2.2]: https://github.com/fnando/i18n-js/compare/v3.2.1...v3.2.2
509
- [3.2.1]: https://github.com/fnando/i18n-js/compare/v3.2.0...v3.2.1
510
- [3.2.0]: https://github.com/fnando/i18n-js/compare/v3.1.0...v3.2.0
511
- [3.1.0]: https://github.com/fnando/i18n-js/compare/v3.0.11...v3.1.0
512
- [3.0.11]: https://github.com/fnando/i18n-js/compare/v3.0.10...v3.0.11
513
- [3.0.10]: https://github.com/fnando/i18n-js/compare/v3.0.9...v3.0.10
514
- [3.0.9]: https://github.com/fnando/i18n-js/compare/v3.0.8...v3.0.9
515
- [3.0.8]: https://github.com/fnando/i18n-js/compare/v3.0.7...v3.0.8
516
- [3.0.7]: https://github.com/fnando/i18n-js/compare/v3.0.6...v3.0.7
517
- [3.0.6]: https://github.com/fnando/i18n-js/compare/v3.0.5...v3.0.6
518
- [3.0.5]: https://github.com/fnando/i18n-js/compare/v3.0.4...v3.0.5
519
- [3.0.4]: https://github.com/fnando/i18n-js/compare/v3.0.3...v3.0.4
520
- [3.0.3]: https://github.com/fnando/i18n-js/compare/v3.0.2...v3.0.3
521
- [3.0.2]: https://github.com/fnando/i18n-js/compare/v3.0.1...v3.0.2
522
- [3.0.1]: https://github.com/fnando/i18n-js/compare/v3.0.0...v3.0.1
523
- [3.0.0]: https://github.com/fnando/i18n-js/compare/v3.0.0.rc16...v3.0.0
524
- [3.0.0.rc16]: https://github.com/fnando/i18n-js/compare/v3.0.0.rc15...v3.0.0.rc16
525
- [3.0.0.rc15]: https://github.com/fnando/i18n-js/compare/v3.0.0.rc14...v3.0.0.rc15
526
- [3.0.0.rc14]: https://github.com/fnando/i18n-js/compare/v3.0.0.rc13...v3.0.0.rc14
527
- [3.0.0.rc13]: https://github.com/fnando/i18n-js/compare/v3.0.0.rc12...v3.0.0.rc13
528
- [3.0.0.rc12]: https://github.com/fnando/i18n-js/compare/v3.0.0.rc11...v3.0.0.rc12
63
+ - Official release of i18n-js v4.0.0.
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at me@fnando.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [https://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: https://contributor-covenant.org
74
+ [version]: https://contributor-covenant.org/version/1/4/