i18n-js 3.8.3 → 4.0.0.alpha1

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 (132) 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/feature_request.md +23 -0
  6. data/.github/PULL_REQUEST_TEMPLATE.md +38 -0
  7. data/.github/dependabot.yml +15 -0
  8. data/.github/workflows/ruby-tests.yml +61 -0
  9. data/.gitignore +11 -7
  10. data/.rubocop.yml +12 -0
  11. data/CHANGELOG.md +12 -535
  12. data/CODE_OF_CONDUCT.md +74 -0
  13. data/CONTRIBUTING.md +79 -0
  14. data/Gemfile +3 -0
  15. data/LICENSE.md +20 -0
  16. data/README.md +86 -1030
  17. data/Rakefile +10 -20
  18. data/exe/i18n +5 -0
  19. data/i18n-js.gemspec +47 -29
  20. data/lib/guard/i18n-js.rb +78 -0
  21. data/lib/guard/i18n-js/templates/Guardfile +10 -0
  22. data/lib/guard/i18n-js/version.rb +13 -0
  23. data/lib/i18n-js.rb +66 -1
  24. data/lib/i18n-js/cli.rb +47 -0
  25. data/lib/i18n-js/cli/command.rb +43 -0
  26. data/lib/i18n-js/cli/export_command.rb +108 -0
  27. data/lib/i18n-js/cli/init_command.rb +50 -0
  28. data/lib/i18n-js/cli/ui.rb +30 -0
  29. data/lib/i18n-js/cli/version_command.rb +18 -0
  30. data/lib/i18n-js/listen.rb +80 -0
  31. data/lib/i18n-js/schema.rb +92 -0
  32. data/lib/i18n-js/version.rb +5 -0
  33. metadata +122 -194
  34. data/.editorconfig +0 -24
  35. data/.github/workflows/tests.yaml +0 -100
  36. data/.npmignore +0 -27
  37. data/Appraisals +0 -44
  38. data/app/assets/javascripts/i18n.js +0 -1095
  39. data/app/assets/javascripts/i18n/filtered.js.erb +0 -23
  40. data/app/assets/javascripts/i18n/shims.js +0 -240
  41. data/app/assets/javascripts/i18n/translations.js +0 -3
  42. data/gemfiles/i18n_0_6.gemfile +0 -7
  43. data/gemfiles/i18n_0_7.gemfile +0 -7
  44. data/gemfiles/i18n_0_8.gemfile +0 -7
  45. data/gemfiles/i18n_0_9.gemfile +0 -7
  46. data/gemfiles/i18n_1_0.gemfile +0 -7
  47. data/gemfiles/i18n_1_1.gemfile +0 -7
  48. data/gemfiles/i18n_1_2.gemfile +0 -7
  49. data/gemfiles/i18n_1_3.gemfile +0 -7
  50. data/gemfiles/i18n_1_4.gemfile +0 -7
  51. data/gemfiles/i18n_1_5.gemfile +0 -7
  52. data/gemfiles/i18n_1_6.gemfile +0 -7
  53. data/gemfiles/i18n_1_7.gemfile +0 -7
  54. data/gemfiles/i18n_1_8.gemfile +0 -7
  55. data/i18njs.png +0 -0
  56. data/lib/i18n/js.rb +0 -264
  57. data/lib/i18n/js/dependencies.rb +0 -63
  58. data/lib/i18n/js/engine.rb +0 -87
  59. data/lib/i18n/js/fallback_locales.rb +0 -70
  60. data/lib/i18n/js/formatters/base.rb +0 -25
  61. data/lib/i18n/js/formatters/js.rb +0 -39
  62. data/lib/i18n/js/formatters/json.rb +0 -13
  63. data/lib/i18n/js/middleware.rb +0 -82
  64. data/lib/i18n/js/private/config_store.rb +0 -31
  65. data/lib/i18n/js/private/hash_with_symbol_keys.rb +0 -36
  66. data/lib/i18n/js/segment.rb +0 -80
  67. data/lib/i18n/js/utils.rb +0 -78
  68. data/lib/i18n/js/version.rb +0 -7
  69. data/lib/rails/generators/i18n/js/config/config_generator.rb +0 -19
  70. data/lib/rails/generators/i18n/js/config/templates/i18n-js.yml +0 -27
  71. data/lib/tasks/export.rake +0 -8
  72. data/package.json +0 -25
  73. data/spec/fixtures/custom_path.yml +0 -5
  74. data/spec/fixtures/default.yml +0 -5
  75. data/spec/fixtures/erb.yml +0 -5
  76. data/spec/fixtures/except_condition.yml +0 -7
  77. data/spec/fixtures/js_export_dir_custom.yml +0 -7
  78. data/spec/fixtures/js_export_dir_none.yml +0 -6
  79. data/spec/fixtures/js_extend_parent.yml +0 -6
  80. data/spec/fixtures/js_extend_segment.yml +0 -6
  81. data/spec/fixtures/js_file_per_locale.yml +0 -7
  82. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_default_locale_symbol.yml +0 -4
  83. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_hash.yml +0 -6
  84. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_locale.yml +0 -4
  85. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_locale_without_fallback_translations.yml +0 -4
  86. data/spec/fixtures/js_file_per_locale_with_fallbacks_enabled.yml +0 -4
  87. data/spec/fixtures/js_file_per_locale_without_fallbacks.yml +0 -4
  88. data/spec/fixtures/js_file_with_namespace_prefix_and_pretty_print.yml +0 -9
  89. data/spec/fixtures/js_sort_translation_keys_false.yml +0 -6
  90. data/spec/fixtures/js_sort_translation_keys_true.yml +0 -6
  91. data/spec/fixtures/json_only.yml +0 -18
  92. data/spec/fixtures/locales.yml +0 -133
  93. data/spec/fixtures/merge_plurals.yml +0 -6
  94. data/spec/fixtures/merge_plurals_with_no_overrides.yml +0 -4
  95. data/spec/fixtures/merge_plurals_with_partial_overrides.yml +0 -4
  96. data/spec/fixtures/millions.yml +0 -4
  97. data/spec/fixtures/multiple_conditions.yml +0 -7
  98. data/spec/fixtures/multiple_conditions_per_locale.yml +0 -7
  99. data/spec/fixtures/multiple_files.yml +0 -7
  100. data/spec/fixtures/no_config.yml +0 -2
  101. data/spec/fixtures/no_scope.yml +0 -4
  102. data/spec/fixtures/simple_scope.yml +0 -5
  103. data/spec/js/currency.spec.js +0 -62
  104. data/spec/js/current_locale.spec.js +0 -19
  105. data/spec/js/dates.spec.js +0 -276
  106. data/spec/js/defaults.spec.js +0 -31
  107. data/spec/js/extend.spec.js +0 -110
  108. data/spec/js/interpolation.spec.js +0 -124
  109. data/spec/js/jasmine/MIT.LICENSE +0 -20
  110. data/spec/js/jasmine/jasmine-html.js +0 -190
  111. data/spec/js/jasmine/jasmine.css +0 -166
  112. data/spec/js/jasmine/jasmine.js +0 -2476
  113. data/spec/js/jasmine/jasmine_favicon.png +0 -0
  114. data/spec/js/json_parsable.spec.js +0 -14
  115. data/spec/js/locales.spec.js +0 -31
  116. data/spec/js/localization.spec.js +0 -78
  117. data/spec/js/numbers.spec.js +0 -174
  118. data/spec/js/placeholder.spec.js +0 -24
  119. data/spec/js/pluralization.spec.js +0 -219
  120. data/spec/js/prepare_options.spec.js +0 -41
  121. data/spec/js/require.js +0 -2083
  122. data/spec/js/specs.html +0 -49
  123. data/spec/js/specs_requirejs.html +0 -72
  124. data/spec/js/translate.spec.js +0 -304
  125. data/spec/js/translations.js +0 -188
  126. data/spec/js/utility_functions.spec.js +0 -20
  127. data/spec/ruby/i18n/js/fallback_locales_spec.rb +0 -84
  128. data/spec/ruby/i18n/js/segment_spec.rb +0 -261
  129. data/spec/ruby/i18n/js/utils_spec.rb +0 -106
  130. data/spec/ruby/i18n/js_spec.rb +0 -748
  131. data/spec/spec_helper.rb +0 -80
  132. data/yarn.lock +0 -131
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1ecff24d70edad3fce1aafa3f96872f4d7a9fc7a0ff7fdcb5fe112ee5f79d410
4
- data.tar.gz: ee563efe72631f54c5c36536803a3bf0c31fe1c98f996763a36921b14cf21c2a
3
+ metadata.gz: d07791eb7f9b879e4d5e6edd43d10564a5efad2f44e3ac0ddd2c892696dbd28b
4
+ data.tar.gz: cab23b9274ee26513b48974dd307ad020a1ad3ba88bb36756397d6c47223ffb4
5
5
  SHA512:
6
- metadata.gz: 59ebc7bd38d3cd451631107c711d1a53001d3677a073327fdb66c043d4c5f37b6f7429b0fd2e7ff495201b575670bb4baabdaccb5e3cbebabc973f17f9db74bf
7
- data.tar.gz: 9e841a4b949c5993894b3f74296ca7837594cc1d1a68552b1c840578694501ad3a163dca443fac0f9bd6fa2fc198aec3fbdf299da45f96a283fc1ce215d1bd72
6
+ metadata.gz: 0d0bb95c8e0f01bed11eced7859d6f40d032ca85a03f458d515a4cdcc444a194f315b22db39f0d6956c45951a1cf8e3e28ab06a11abb6165ca7dc5d6fa07baa1
7
+ data.tar.gz: a7afe30f6f81a9b7536cb5be2a26112825bd5324443d9fe7edb43779c6084e2c4d4e439814f4458853a6ffaf540afdfc0640f8be2a7cb428b46c45c83313d0bb
@@ -0,0 +1,4 @@
1
+ # You can read more about CODEOWNERS at
2
+ # https://help.github.com/github/creating-cloning-and-archiving-repositories/about-code-owners
3
+
4
+ * @fnando
data/.github/FUNDING.yml CHANGED
@@ -1,3 +1,3 @@
1
1
  ---
2
- github: ["fnando"]
2
+ github: [fnando]
3
3
  custom: ["https://paypal.me/nandovieira/🍕"]
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: "🐛 Bug Report"
3
+ about: Report a reproducible bug or regression.
4
+ title: 'Bug: '
5
+ labels: 'Status: Unconfirmed'
6
+
7
+ ---
8
+
9
+ <!--
10
+ - Please provide a clear and concise description of what the bug is.
11
+ - If possible, add an example reproducing your issue.
12
+ - Please test using the latest version of i18n-js
13
+ to make sure your issue has not already been fixed.
14
+ -->
15
+
16
+ ## Description
17
+
18
+ [Add bug description here]
19
+
20
+ ## How to reproduce
21
+
22
+ [Add steps on how to reproduce this issue]
23
+
24
+ ## What do you expect
25
+
26
+ [Describe what do you expect to happen]
27
+
28
+ ## What happened instead
29
+
30
+ [Describe the actual results]
31
+
32
+ ## Software:
33
+
34
+ - Gem version: [Add gem version here]
35
+ - Ruby version: [Add version here]
36
+
37
+ ## Full backtrace
38
+
39
+ ```text
40
+ [Paste full backtrace here]
41
+ ```
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: "💡 Feature request"
3
+ about: Have an idea that may be useful? Make a suggestion!
4
+ title: 'Feature Request: '
5
+ labels: 'Feature request'
6
+
7
+ ---
8
+
9
+ ## Description
10
+
11
+ _A clear and concise description of what the problem is._
12
+
13
+ ## Describe the solution
14
+
15
+ _A clear and concise description of what you want to happen._
16
+
17
+ ## Alternatives you considered
18
+
19
+ _A clear and concise description of any alternative solutions or features you've considered._
20
+
21
+ ## Additional context
22
+
23
+ _Add any other context, screenshots, links, etc about the feature request here._
@@ -0,0 +1,38 @@
1
+ <!--
2
+ If you're making a doc PR or something tiny where the below is irrelevant,
3
+ delete this template and use a short description, but in your description aim to
4
+ include both what the change is, and why it is being made, with enough context
5
+ for anyone to understand.
6
+ -->
7
+
8
+ <details>
9
+ <summary>PR Checklist</summary>
10
+
11
+ ### PR Structure
12
+
13
+ - [ ] This PR has reasonably narrow scope (if not, break it down into smaller
14
+ PRs).
15
+ - [ ] This PR avoids mixing refactoring changes with feature changes (split into
16
+ two PRs otherwise).
17
+ - [ ] This PR's title starts is concise and descriptive.
18
+
19
+ ### Thoroughness
20
+
21
+ - [ ] This PR adds tests for the most critical parts of the new functionality or
22
+ fixes.
23
+ - [ ] I've updated any docs, `.md` files, etc… affected by this change.
24
+
25
+ </details>
26
+
27
+ ### What
28
+
29
+ [TODO: Short statement about what is changing.]
30
+
31
+ ### Why
32
+
33
+ [TODO: Why this change is being made. Include any context required to understand
34
+ the why.]
35
+
36
+ ### Known limitations
37
+
38
+ [TODO or N/A]
@@ -0,0 +1,15 @@
1
+ ---
2
+ # Documentation:
3
+ # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
4
+
5
+ version: 2
6
+ updates:
7
+ - package-ecosystem: "github-actions"
8
+ directory: "/"
9
+ schedule:
10
+ interval: "daily"
11
+
12
+ - package-ecosystem: "bundler"
13
+ directory: "/"
14
+ schedule:
15
+ interval: "daily"
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: ruby-tests
3
+
4
+ on:
5
+ pull_request:
6
+ branches:
7
+ - main
8
+
9
+ push:
10
+ branches:
11
+ - main
12
+ - v4
13
+
14
+ schedule:
15
+ - cron: "0 10 * * *"
16
+
17
+ workflow_dispatch:
18
+ inputs: {}
19
+
20
+ jobs:
21
+ build:
22
+ name: Tests with Ruby ${{ matrix.ruby }} and ${{ matrix.gemfile }}
23
+ runs-on: "ubuntu-latest"
24
+ strategy:
25
+ fail-fast: false
26
+ matrix:
27
+ ruby: [2.6.x, 2.7.x, 3.0.x]
28
+ gemfile:
29
+ - Gemfile
30
+
31
+ steps:
32
+ - uses: actions/checkout@v1
33
+
34
+ - uses: actions/cache@v2
35
+ with:
36
+ path: vendor/bundle
37
+ key: >
38
+ ${{ runner.os }}-${{ matrix.ruby }}-gems-${{
39
+ hashFiles(matrix.gemfile) }}
40
+ restore-keys: >
41
+ ${{ runner.os }}-${{ matrix.ruby }}-gems-${{
42
+ hashFiles(matrix.gemfile) }}
43
+
44
+ - name: Set up Ruby
45
+ uses: actions/setup-ruby@v1
46
+ with:
47
+ ruby-version: ${{ matrix.ruby }}
48
+
49
+ - name: Install gem dependencies
50
+ env:
51
+ BUNDLE_GEMFILE: ${{ matrix.gemfile }}
52
+ run: |
53
+ gem install bundler
54
+ bundle config path vendor/bundle
55
+ bundle update --jobs 4 --retry 3
56
+
57
+ - name: Run Tests
58
+ env:
59
+ BUNDLE_GEMFILE: ${{ matrix.gemfile }}
60
+ run: |
61
+ bundle exec rake
data/.gitignore CHANGED
@@ -1,7 +1,11 @@
1
- pkg
2
- node_modules
3
- Gemfile.lock
4
- .idea/
5
- coverage/
6
- gemfiles/*.gemfile.lock
7
- gemfiles/.bundle
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ /vendor/
10
+ *.log
11
+ *.lock
data/.rubocop.yml ADDED
@@ -0,0 +1,12 @@
1
+ ---
2
+ inherit_gem:
3
+ rubocop-fnando: .rubocop.yml
4
+
5
+ AllCops:
6
+ TargetRubyVersion: 2.6
7
+ NewCops: enable
8
+
9
+ Naming/FileName:
10
+ Exclude:
11
+ - lib/i18n-js.rb
12
+ - lib/guard/i18n-js.rb
data/CHANGELOG.md CHANGED
@@ -1,539 +1,16 @@
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
+ ## Unreleased
9
15
 
10
- - Nothing
11
-
12
- ### Changed
13
-
14
- - Nothing
15
-
16
- ### Fixed
17
-
18
- - Nothing
19
-
20
-
21
- ## [3.8.3]
22
-
23
- ### Changed
24
-
25
- - [Ruby] Generate translations in JS as `JSON.parse` instead of object literal for performance
26
- (PR: https://github.com/fnando/i18n-js/pull/605)
27
- (PR: https://github.com/fnando/i18n-js/pull/606)
28
- (PR: https://github.com/fnando/i18n-js/pull/607)
29
-
30
-
31
- ## [3.8.2] - 2021-03-18
32
-
33
- ### Fixed
34
-
35
- - [Ruby] Stop using deprecated method
36
- (PR: https://github.com/fnando/i18n-js/pull/598)
37
- - [Ruby] Fix typo in error class reference
38
- (Commit: https://github.com/fnando/i18n-js/commit/cc075ad0a36e940205d0a14390379d69013d188e)
39
-
40
-
41
- ## [3.8.1] - 2021-02-25
42
-
43
- ### Fixed
44
-
45
- - [Ruby] Fix performance issue reading config
46
- (PR: https://github.com/fnando/i18n-js/pull/593)
47
-
48
-
49
- ## [3.8.0] - 2020-10-15
50
-
51
- ### Added
52
-
53
- - [JS] Add option `scope` for `toHumanSize()`
54
- (PR: https://github.com/fnando/i18n-js/pull/583)
55
-
56
-
57
- ## [3.7.1] - 2020-06-30
58
-
59
- ### Fixed
60
-
61
- - [JS] For translation missing behaviour `guess`, replace all underscores to spaces properly
62
- (PR: https://github.com/fnando/i18n-js/pull/574)
63
-
64
-
65
- ## [3.7.0] - 2020-05-29
66
-
67
- ### Added
68
-
69
- - [JS] Allow options to be passed in when calling `I18n.localize`/`I18n.l`
70
- (PR: https://github.com/fnando/i18n-js/pull/570)
71
-
72
-
73
- ## [3.6.0] - 2020-02-14
74
-
75
- ### Added
76
-
77
- - [Ruby] Allow `suffix` to be added to generated translations files
78
- (PR: https://github.com/fnando/i18n-js/pull/561)
79
-
80
-
81
- ## [3.5.1] - 2019-12-21
82
-
83
- ### Changed
84
-
85
- - [JS] Bound shortcut functions
86
- (PR: https://github.com/fnando/i18n-js/pull/560)
87
-
88
-
89
- ## [3.5.0] - 2019-11-12
90
-
91
- ### Added
92
-
93
- - [JS] Support for `%k` strftime format to match Ruby strftime
94
- (PR: https://github.com/fnando/i18n-js/pull/554)
95
-
96
-
97
- ## [3.4.2] - 2019-11-11
98
-
99
- ### Fixed
100
-
101
- - [Ruby] Fix regression introduced in PR #551
102
- (PR: https://github.com/fnando/i18n-js/pull/555)
103
-
104
-
105
- ## [3.4.1] - 2019-11-01
106
-
107
- ### Fixed
108
-
109
- - [Ruby] Fix merging of plural keys to work with fallbacks that aren't overridden
110
- (PR: https://github.com/fnando/i18n-js/pull/551)
111
-
112
-
113
- ## [3.4.0] - 2019-10-15
114
-
115
- ### Added
116
-
117
- - [Ruby] Allow `prefix` to be added to generated translations files
118
- (PR: https://github.com/fnando/i18n-js/pull/549)
119
-
120
-
121
- ## [3.3.0] - 2019-06-06
122
-
123
- ### Added
124
-
125
- - [JS] Support for `%P`, `%Z`, and `%l` strftime formats to match Ruby strftime
126
- (PR: https://github.com/fnando/i18n-js/pull/537)
127
-
128
-
129
- ## [3.2.3] - 2019-05-24
130
-
131
- ### Changed
132
-
133
- - [Ruby] Allow rails 6 to be used with this gem
134
- (PR: https://github.com/fnando/i18n-js/pull/536)
135
-
136
-
137
- ## [3.2.2] - 2019-05-09
138
-
139
- ### Fixed
140
-
141
- - [JS] Return invalid date/time input values (null & undefined) as-is
142
- (Commit: https://github.com/fnando/i18n-js/commit/869d1689ed788ff50121de492db354652971c23d)
143
-
144
-
145
- ## [3.2.1] - 2019-01-22
146
-
147
- ### Changed
148
-
149
- - [Ruby] `json_only` option should allow multiple locales.
150
- (PR: https://github.com/fnando/i18n-js/pull/531)
151
- - [Ruby] Simplified and cleaned code related to JS/JSON formatting.
152
- (PR: https://github.com/fnando/i18n-js/pull/531)
153
- - [JS] Use strict value comparison
154
-
155
- ### Fixed
156
-
157
- - [Ruby] Relax `i18n` version requirement back to `>= 0.6.6`
158
- (PR: https://github.com/fnando/i18n-js/pull/530)
159
- - [Ruby] Fix merging of plural keys across locales.
160
- (PR: https://github.com/fnando/i18n-js/pull/472)
161
-
162
-
163
- ## [3.2.0] - 2018-11-16
164
-
165
- ### Added
166
-
167
- - [Ruby] Add option `json_only` to generate translations in JSON
168
- (PR: https://github.com/fnando/i18n-js/pull/524)
169
-
170
- ### Changed
171
-
172
- - [Ruby] Requires `i18n` to be `>= 0.8.0` for CVE-2014-10077
173
-
174
-
175
- ## [3.1.0] - 2018-11-01
176
-
177
- ### Added
178
-
179
- - [Ruby] Add option to allow setting a different I18n backend
180
- (PR: https://github.com/fnando/i18n-js/pull/519)
181
-
182
- ### Fixed
183
-
184
- - [JS] Fix missing translation when pluralizing with default scopes
185
- (PR: https://github.com/fnando/i18n-js/pull/516)
186
-
187
-
188
- ## [3.0.11] - 2018-07-06
189
-
190
- ### Fixed
191
-
192
- - [JS] Fix interpolation for array with non string/null elements
193
- (PR: https://github.com/fnando/i18n-js/pull/505)
194
-
195
-
196
- ## [3.0.10] - 2018-06-21
197
-
198
- ### Fixed
199
-
200
- - [JS] Fix extend method changing keys with `null` to empty objects
201
- (PR: https://github.com/fnando/i18n-js/pull/503)
202
- - [JS] Fix variable name in an internal method
203
- (PR: https://github.com/fnando/i18n-js/pull/501)
204
-
205
-
206
- ## [3.0.9] - 2018-06-21
207
-
208
- ### Fixed
209
-
210
- - [JS] Fix translation array interpolation for array with null
211
-
212
-
213
- ## [3.0.8] - 2018-06-06
214
-
215
- ### Changed
216
-
217
- - [JS] Interpolate translation array too
218
- (PR: https://github.com/fnando/i18n-js/pull/498)
219
-
220
-
221
- ## [3.0.7] - 2018-05-30
222
-
223
- ### Fixed
224
-
225
- - [Ruby] Fix new bug occuring when config file is absent
226
-
227
-
228
- ## [3.0.6] - 2018-05-30
229
-
230
- ### Fixed
231
-
232
- - [Ruby] Make JS `i18n/filtered` depends on i18n-js config too
233
- (PR: https://github.com/fnando/i18n-js/pull/497)
234
-
235
-
236
- ## [3.0.5] - 2018-02-26
237
-
238
- ### Changed
239
-
240
- - [Ruby] Support `I18n` `1.0.x`
241
- (PR: https://github.com/fnando/i18n-js/pull/492)
242
-
243
-
244
- ## [3.0.4] - 2018-01-26
245
-
246
- ### Fixed
247
-
248
- - [Ruby] Fix `JS::Dependencies.using_asset_pipeline?` returning true when sprockets installed but disabled
249
- (PR: https://github.com/fnando/i18n-js/pull/488)
250
-
251
-
252
- ## [3.0.3] - 2018-01-02
253
-
254
- ### Fixed
255
-
256
- - [Ruby] Fix extend method when translations has array values
257
- (PR: https://github.com/fnando/i18n-js/pull/487)
258
-
259
-
260
- ## [3.0.2] - 2017-10-26
261
-
262
- ### Changed
263
-
264
- - [Ruby] Avoid writing new file if a file with same content already exists
265
- (PR: https://github.com/fnando/i18n-js/pull/473)
266
- - [JS] Fix fallback when "3-part" locale like `zh-Hant-TW` is used
267
- It was falling back to `zh` first instead of `zh-Hant` (see new test case added)
268
- (PR: https://github.com/fnando/i18n-js/pull/475)
269
-
270
-
271
- ## [3.0.1] - 2017-08-02
272
-
273
- ### Changed
274
-
275
- - [Ruby] Relax Rails detection code to work with alternative installation methods
276
- (PR: https://github.com/fnando/i18n-js/pull/467)
277
- - [JS] Fix fallback when "3-part" locale like `zh-Hant-TW` is used
278
- It fallbacks to `zh` only before, now it fallbacks to `zh-Hant`
279
- (PR: https://github.com/fnando/i18n-js/pull/465)
280
-
281
-
282
- ## [3.0.0] - 2017-04-01
283
-
284
- This is a fake official release, the *real* one will be `3.0.0.rc17`
285
- And today is not April Fools' Day
286
-
287
- ### Fixed
288
-
289
- - Ends the longest Release Candidate period among all ruby gems
290
- (v3.0.0.rc1 released at 2012-05-10)
291
-
292
-
293
- ## [3.0.0.rc16] - 2017-03-13
294
-
295
- ### Changed
296
-
297
- - [Ruby] Drop support for Ruby < `2.1.0`
298
-
299
- ### Fixed
300
-
301
- - [JS] Make defaultValue works on plural translation
302
- - [JS] Fix UMD pattern so the global/root won’t be undefined
303
-
304
-
305
- ## [3.0.0.rc15] - 2016-12-07
306
-
307
- ### Added
308
-
309
- - Nothing
310
-
311
- ### Changed
312
-
313
- - [JS] Allow `defaultValue` to work in pluralization
314
- (PR: https://github.com/fnando/i18n-js/pull/433)
315
- - [Ruby] Stop validating the fallback locales against `I18n.available_locales`
316
- This allows some locales to be used as fallback locales, but not to be generated in JS.
317
- (PR: https://github.com/fnando/i18n-js/pull/425)
318
- - [Ruby] Remove dependency on gem `activesupport`
319
-
320
- ### Fixed
321
-
322
- - [JS] Stop converting numeric & boolean values into objects
323
- when merging objects with `I18n.extend`
324
- (PR: https://github.com/fnando/i18n-js/pull/420)
325
- - [JS] Fix I18n pluralization fallback when tree is empty
326
- (PR: https://github.com/fnando/i18n-js/pull/435)
327
- - [Ruby] Use old syntax to define lambda for compatibility with older Rubies
328
- (Issue: https://github.com/fnando/i18n-js/issues/419)
329
- - [Ruby] Fix error raised in middleware cache cleaning in parallel test
330
- (Issue: https://github.com/fnando/i18n-js/issues/436)
331
-
332
-
333
- ## [3.0.0.rc14] - 2016-08-29
334
-
335
- ### Changed
336
-
337
- - [JS] Method `I18n.extend()` behave as deep merging instead of shallow merging. (https://github.com/fnando/i18n-js/pull/416)
338
- - [Ruby] Use object/class instead of block when registering Sprockets preprocessor (https://github.com/fnando/i18n-js/pull/418)
339
- To ensure that your cache will expire properly based on locale file content after upgrading,
340
- you should run `rake assets:clobber` and/or other rake tasks that clear the asset cache once gem updated
341
- - [Ruby] Detect & support rails 5 (https://github.com/fnando/i18n-js/pull/413)
342
-
343
-
344
- ## [3.0.0.rc13] - 2016-06-29
345
-
346
- ### Added
347
-
348
- - [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))
349
-
350
- ### Changed
351
-
352
- - Nothing
353
-
354
- ### Fixed
355
-
356
- - [JS] Initialize option `missingBehaviour` & `missingTranslationPrefix` with default values ([#398](https://github.com/fnando/i18n-js/pull/398))
357
- - [JS] Throw an error when `I18n.strftime()` takes an invalid date ([#383](https://github.com/fnando/i18n-js/pull/383))
358
- - [JS] Fix default error message when translation missing to consider locale passed in options
359
- - [Ruby] Reset middleware cache on rails startup
360
- ([#402](https://github.com/fnando/i18n-js/pull/402))
361
-
362
-
363
- ## [3.0.0.rc12] - 2015-12-30
364
-
365
- ### Added
366
-
367
- - [JS] Allow extending of translation files ([#354](https://github.com/fnando/i18n-js/pull/354))
368
- - [JS] Allow missingPlaceholder to receive extra data for debugging ([#380](https://github.com/fnando/i18n-js/pull/380))
369
-
370
- ### Changed
371
-
372
- - Nothing
373
-
374
- ### Fixed
375
-
376
- - [Ruby] Fix of missing initializer at sprockets. ([#371](https://github.com/fnando/i18n-js/pull/371))
377
- - [Ruby] Use proper method to register preprocessor documented by sprockets-rails. ([#376](https://github.com/fnando/i18n-js/pull/376))
378
- - [JS] Correctly round unprecise floating point numbers.
379
- - [JS] Ensure objects are recognized when passed in from an iframe. ([#375](https://github.com/fnando/i18n-js/pull/375))
380
-
381
-
382
- ## 3.0.0.rc11
383
-
384
- ### breaking changes
385
-
386
- ### enhancements
387
-
388
- ### bug fixes
389
-
390
- - [Ruby] Handle fallback locale without any translation properly ([#338](https://github.com/fnando/i18n-js/pull/338))
391
- - [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))
392
-
393
-
394
- ## 3.0.0.rc10
395
-
396
- ### breaking changes
397
-
398
- - [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))
399
- - [Ruby] The `:except` option to exclude certain phrases now (only) accepts the same patterns the `:only` option accepts
400
-
401
- ### enhancements
402
-
403
- - [Ruby] Make handling of per-locale and not-per-locale exporting to be more consistent ([#320](https://github.com/fnando/i18n-js/pull/320))
404
- - [Ruby] Add option `sort_translation_keys` to sort translation keys alphabetically ([#318](https://github.com/fnando/i18n-js/pull/318))
405
-
406
- ### bug fixes
407
-
408
- - [Ruby] Fix fallback logic to work with not-per-locale files ([#320](https://github.com/fnando/i18n-js/pull/320))
409
-
410
-
411
- ## 3.0.0.rc9
412
-
413
- ### enhancements
414
-
415
- - [JS] Force currency number sign to be at first place using `sign_first` option, default to `true`
416
- - [Ruby] Add option `namespace` & `pretty_print` ([#300](https://github.com/fnando/i18n-js/pull/300))
417
- - [Ruby] Add option `export_i18n_js` ([#301](https://github.com/fnando/i18n-js/pull/301))
418
- - [Ruby] Now the gem also detects pre-release versions of `rails`
419
- - [Ruby] Add `:except` option to exclude certain phrases or groups of phrases from the
420
- outputted translations ([#312](https://github.com/fnando/i18n-js/pull/312))
421
- - [JS] You can now set `I18n.missingBehavior='guess'` to have the scope string output as text instead of of the
422
- "[missing `scope`]" message when no translation is available.
423
- Combined that with `I18n.missingTranslationPrefix='SOMETHING'` and you can
424
- still identify those missing strings.
425
- ([#304](https://github.com/fnando/i18n-js/pull/304))
426
-
427
- ### bug fixes
428
-
429
- - [JS] Fix missing translation message when scope is passed in options
430
- - [Ruby] Fix save cache directory verification when path is a symbolic link ([#329](https://github.com/fnando/i18n-js/pull/329))
431
-
432
-
433
- ## 3.0.0.rc8
434
-
435
- ### enhancements
436
-
437
- - Add support for loading via AMD and CommonJS module loaders ([#266](https://github.com/fnando/i18n-js/pull/266))
438
- - Add `I18n.nullPlaceholder`
439
- Defaults to I18n.missingPlaceholder (`[missing {{name}} value]`)
440
- Set to `function() {return "";}` to match Ruby `I18n.t("name: %{name}", name: nil)`
441
- - For date formatting, you can now also add placeholders to the date format, see README for detail
442
- - Add fallbacks option to `i18n-js.yml`, defaults to `true`
443
-
444
- ### bug fixes
445
-
446
- - Fix factory initialization so that the Node/CommonJS branch only gets executed if the environment is Node/CommonJS
447
- (it currently will execute if module is defined in the global scope, which occurs with QUnit, for example)
448
- - 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))
449
- - Remove check for `Rails.configuration.assets.compile` before telling Sprockets the dependency of translations JS file
450
- This might be the reason of many "cache not expired" issues
451
- Discovered/reported in #277
452
-
453
- ## 3.0.0.rc7
454
-
455
- ### enhancements
456
-
457
- - The Rails Engine initializer is now named as `i18n-js.register_preprocessor` (https://github.com/fnando/i18n-js/pull/261)
458
- - Rename `I18n::JS.config_file` to `I18n::JS.config_file_path` and make it configurable
459
- Expected a `String`, default is still `config/i18n-js.yml`
460
- - When running `rake i18n:js:export`, the `i18n.js` will also be exported to `I18n::JS.export_i18n_js_dir_path` by default
461
- - Add `I18n::JS.export_i18n_js_dir_path`
462
- Expected a `String`, default is `public/javascripts`
463
- Set to `nil` will disable exporting `i18n.js`
464
-
465
- ### bug fixes
466
-
467
- - Prevent toString() call on `undefined` when there is a missing interpolation value
468
- - Added support for Rails instances without Sprockets object (https://github.com/fnando/i18n-js/pull/241)
469
- - Fix `DEFAULT_OPTIONS` in `i18n.js` which contained an excessive comma
470
- - Fix `nil` values are exported into JS files which causes strange translation error
471
- - Fix pattern to replace all escaped $ in I18n.translate
472
- - Fix JS `I18n.lookup` modifies existing locales accidentally
473
-
474
- ## 3.0.0.rc6
475
-
476
- ### enhancements
477
-
478
- - You can now assign `I18n.locale` & `I18n.default_locale` before loading `i18n.js` in `application.html.*`
479
- (merged to `i18n-js-pika` already)
480
- - You can include ERB in `config/i18n-js.yml`(https://github.com/fnando/i18n-js/pull/224)
481
- - Add support for +00:00 style time zone designator (https://github.com/fnando/i18n-js/pull/167)
482
- - Add back rake task for export (`rake i18n:js:export`)
483
- - Not overriding translation when manually run `I18n::JS.export` (https://github.com/fnando/i18n-js/pull/171)
484
- - Move missing placeholder text generation into its own function (for easier debugging) (https://github.com/fnando/i18n-js/pull/169)
485
- - Add support for milliseconds (`lll` in `yyyy-mm-ddThh:mm:ss.lllZ`) (https://github.com/fnando/i18n-js/pull/192)
486
- - Add back i18n-js.yml config file generator : `rails generate i18n:js:config` (https://github.com/fnando/i18n-js/pull/225)
487
-
488
- ### bug fixes
489
-
490
- - `I18n::JS.export` no longer exports locales other than those in `I18n.available_locales`, if `I18n.available_locales` is set
491
- - I18.t supports the base scope through the options argument
492
- - I18.t accepts an array as the scope
493
- - Fix regression: asset not being reloaded in development when translation changed
494
- - Requires `i18n` to be `~> 0.6`, `0.5` does not work at all
495
- - Fix using multi-star scope with top-level translation key (https://github.com/fnando/i18n-js/pull/221)
496
-
497
-
498
- ## Before 3.0.0.rc5
499
-
500
- - Things happened.
501
-
502
-
503
-
504
- [Unreleased]: https://github.com/fnando/i18n-js/compare/v3.8.3...HEAD
505
- [3.8.3]: https://github.com/fnando/i18n-js/compare/v3.8.2...v3.8.3
506
- [3.8.2]: https://github.com/fnando/i18n-js/compare/v3.8.1...v3.8.2
507
- [3.8.1]: https://github.com/fnando/i18n-js/compare/v3.8.0...v3.8.1
508
- [3.8.0]: https://github.com/fnando/i18n-js/compare/v3.7.1...v3.8.0
509
- [3.7.1]: https://github.com/fnando/i18n-js/compare/v3.7.0...v3.7.1
510
- [3.7.0]: https://github.com/fnando/i18n-js/compare/v3.6.0...v3.7.0
511
- [3.6.0]: https://github.com/fnando/i18n-js/compare/v3.5.1...v3.6.0
512
- [3.5.1]: https://github.com/fnando/i18n-js/compare/v3.5.0...v3.5.1
513
- [3.5.0]: https://github.com/fnando/i18n-js/compare/v3.4.2...v3.5.0
514
- [3.4.2]: https://github.com/fnando/i18n-js/compare/v3.4.1...v3.4.2
515
- [3.4.1]: https://github.com/fnando/i18n-js/compare/v3.4.0...v3.4.1
516
- [3.4.0]: https://github.com/fnando/i18n-js/compare/v3.3.0...v3.4.0
517
- [3.3.0]: https://github.com/fnando/i18n-js/compare/v3.2.3...v3.3.0
518
- [3.2.3]: https://github.com/fnando/i18n-js/compare/v3.2.2...v3.2.3
519
- [3.2.2]: https://github.com/fnando/i18n-js/compare/v3.2.1...v3.2.2
520
- [3.2.1]: https://github.com/fnando/i18n-js/compare/v3.2.0...v3.2.1
521
- [3.2.0]: https://github.com/fnando/i18n-js/compare/v3.1.0...v3.2.0
522
- [3.1.0]: https://github.com/fnando/i18n-js/compare/v3.0.11...v3.1.0
523
- [3.0.11]: https://github.com/fnando/i18n-js/compare/v3.0.10...v3.0.11
524
- [3.0.10]: https://github.com/fnando/i18n-js/compare/v3.0.9...v3.0.10
525
- [3.0.9]: https://github.com/fnando/i18n-js/compare/v3.0.8...v3.0.9
526
- [3.0.8]: https://github.com/fnando/i18n-js/compare/v3.0.7...v3.0.8
527
- [3.0.7]: https://github.com/fnando/i18n-js/compare/v3.0.6...v3.0.7
528
- [3.0.6]: https://github.com/fnando/i18n-js/compare/v3.0.5...v3.0.6
529
- [3.0.5]: https://github.com/fnando/i18n-js/compare/v3.0.4...v3.0.5
530
- [3.0.4]: https://github.com/fnando/i18n-js/compare/v3.0.3...v3.0.4
531
- [3.0.3]: https://github.com/fnando/i18n-js/compare/v3.0.2...v3.0.3
532
- [3.0.2]: https://github.com/fnando/i18n-js/compare/v3.0.1...v3.0.2
533
- [3.0.1]: https://github.com/fnando/i18n-js/compare/v3.0.0...v3.0.1
534
- [3.0.0]: https://github.com/fnando/i18n-js/compare/v3.0.0.rc16...v3.0.0
535
- [3.0.0.rc16]: https://github.com/fnando/i18n-js/compare/v3.0.0.rc15...v3.0.0.rc16
536
- [3.0.0.rc15]: https://github.com/fnando/i18n-js/compare/v3.0.0.rc14...v3.0.0.rc15
537
- [3.0.0.rc14]: https://github.com/fnando/i18n-js/compare/v3.0.0.rc13...v3.0.0.rc14
538
- [3.0.0.rc13]: https://github.com/fnando/i18n-js/compare/v3.0.0.rc12...v3.0.0.rc13
539
- [3.0.0.rc12]: https://github.com/fnando/i18n-js/compare/v3.0.0.rc11...v3.0.0.rc12
16
+ - Initial release.