i18n-js 3.9.2 → 4.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) 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 +45 -561
  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 +191 -0
  18. data/README.md +425 -951
  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 +157 -0
  32. data/lib/i18n-js/cli/lint_translations_command.rb +155 -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 +152 -198
  49. data/.editorconfig +0 -24
  50. data/.github/workflows/tests.yaml +0 -106
  51. data/.npmignore +0 -27
  52. data/Appraisals +0 -52
  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_10.gemfile +0 -7
  64. data/gemfiles/i18n_1_2.gemfile +0 -7
  65. data/gemfiles/i18n_1_3.gemfile +0 -7
  66. data/gemfiles/i18n_1_4.gemfile +0 -7
  67. data/gemfiles/i18n_1_5.gemfile +0 -7
  68. data/gemfiles/i18n_1_6.gemfile +0 -7
  69. data/gemfiles/i18n_1_7.gemfile +0 -7
  70. data/gemfiles/i18n_1_8.gemfile +0 -7
  71. data/gemfiles/i18n_1_9.gemfile +0 -7
  72. data/i18njs.png +0 -0
  73. data/lib/i18n/js/dependencies.rb +0 -67
  74. data/lib/i18n/js/engine.rb +0 -87
  75. data/lib/i18n/js/fallback_locales.rb +0 -70
  76. data/lib/i18n/js/formatters/base.rb +0 -25
  77. data/lib/i18n/js/formatters/js.rb +0 -39
  78. data/lib/i18n/js/formatters/json.rb +0 -13
  79. data/lib/i18n/js/middleware.rb +0 -82
  80. data/lib/i18n/js/private/config_store.rb +0 -31
  81. data/lib/i18n/js/private/hash_with_symbol_keys.rb +0 -36
  82. data/lib/i18n/js/segment.rb +0 -81
  83. data/lib/i18n/js/utils.rb +0 -91
  84. data/lib/i18n/js/version.rb +0 -7
  85. data/lib/i18n/js.rb +0 -274
  86. data/lib/rails/generators/i18n/js/config/config_generator.rb +0 -19
  87. data/lib/rails/generators/i18n/js/config/templates/i18n-js.yml +0 -27
  88. data/lib/tasks/export.rake +0 -8
  89. data/spec/fixtures/custom_path.yml +0 -5
  90. data/spec/fixtures/default.yml +0 -5
  91. data/spec/fixtures/erb.yml +0 -5
  92. data/spec/fixtures/except_condition.yml +0 -7
  93. data/spec/fixtures/js_available_locales_custom.yml +0 -1
  94. data/spec/fixtures/js_export_dir_custom.yml +0 -7
  95. data/spec/fixtures/js_export_dir_none.yml +0 -6
  96. data/spec/fixtures/js_extend_parent.yml +0 -6
  97. data/spec/fixtures/js_extend_segment.yml +0 -6
  98. data/spec/fixtures/js_file_per_locale.yml +0 -7
  99. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_default_locale_symbol.yml +0 -4
  100. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_hash.yml +0 -6
  101. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_locale.yml +0 -4
  102. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_locale_without_fallback_translations.yml +0 -4
  103. data/spec/fixtures/js_file_per_locale_with_fallbacks_enabled.yml +0 -4
  104. data/spec/fixtures/js_file_per_locale_without_fallbacks.yml +0 -4
  105. data/spec/fixtures/js_file_with_namespace_prefix_and_pretty_print.yml +0 -9
  106. data/spec/fixtures/js_sort_translation_keys_false.yml +0 -6
  107. data/spec/fixtures/js_sort_translation_keys_true.yml +0 -6
  108. data/spec/fixtures/json_only.yml +0 -18
  109. data/spec/fixtures/locales.yml +0 -133
  110. data/spec/fixtures/merge_plurals.yml +0 -6
  111. data/spec/fixtures/merge_plurals_with_no_overrides.yml +0 -4
  112. data/spec/fixtures/merge_plurals_with_partial_overrides.yml +0 -4
  113. data/spec/fixtures/millions.yml +0 -4
  114. data/spec/fixtures/multiple_conditions.yml +0 -7
  115. data/spec/fixtures/multiple_conditions_per_locale.yml +0 -7
  116. data/spec/fixtures/multiple_files.yml +0 -7
  117. data/spec/fixtures/no_config.yml +0 -2
  118. data/spec/fixtures/no_scope.yml +0 -4
  119. data/spec/fixtures/simple_scope.yml +0 -5
  120. data/spec/js/currency.spec.js +0 -62
  121. data/spec/js/current_locale.spec.js +0 -19
  122. data/spec/js/dates.spec.js +0 -276
  123. data/spec/js/defaults.spec.js +0 -31
  124. data/spec/js/extend.spec.js +0 -110
  125. data/spec/js/interpolation.spec.js +0 -124
  126. data/spec/js/jasmine/MIT.LICENSE +0 -20
  127. data/spec/js/jasmine/jasmine-html.js +0 -190
  128. data/spec/js/jasmine/jasmine.css +0 -166
  129. data/spec/js/jasmine/jasmine.js +0 -2476
  130. data/spec/js/jasmine/jasmine_favicon.png +0 -0
  131. data/spec/js/json_parsable.spec.js +0 -14
  132. data/spec/js/locales.spec.js +0 -31
  133. data/spec/js/localization.spec.js +0 -78
  134. data/spec/js/numbers.spec.js +0 -174
  135. data/spec/js/placeholder.spec.js +0 -24
  136. data/spec/js/pluralization.spec.js +0 -228
  137. data/spec/js/prepare_options.spec.js +0 -41
  138. data/spec/js/require.js +0 -2083
  139. data/spec/js/specs.html +0 -49
  140. data/spec/js/specs_requirejs.html +0 -72
  141. data/spec/js/translate.spec.js +0 -304
  142. data/spec/js/translations.js +0 -188
  143. data/spec/js/utility_functions.spec.js +0 -20
  144. data/spec/ruby/i18n/js/fallback_locales_spec.rb +0 -84
  145. data/spec/ruby/i18n/js/segment_spec.rb +0 -286
  146. data/spec/ruby/i18n/js/utils_spec.rb +0 -138
  147. data/spec/ruby/i18n/js_spec.rb +0 -797
  148. data/spec/spec_helper.rb +0 -80
  149. data/yarn.lock +0 -138
data/lib/i18n-js.rb CHANGED
@@ -1 +1,107 @@
1
- require "i18n/js"
1
+ # frozen_string_literal: true
2
+
3
+ require "i18n"
4
+ require "json"
5
+ require "yaml"
6
+ require "glob"
7
+ require "fileutils"
8
+ require "optparse"
9
+ require "erb"
10
+ require "set"
11
+ require "digest/md5"
12
+
13
+ require_relative "i18n-js/schema"
14
+ require_relative "i18n-js/version"
15
+ require_relative "i18n-js/plugin"
16
+ require_relative "i18n-js/sort_hash"
17
+ require_relative "i18n-js/clean_hash"
18
+
19
+ module I18nJS
20
+ MissingConfigError = Class.new(StandardError)
21
+
22
+ def self.call(config_file: nil, config: nil)
23
+ if !config_file && !config
24
+ raise MissingConfigError,
25
+ "you must set either `config_file` or `config`"
26
+ end
27
+
28
+ config = Glob::SymbolizeKeys.call(config || load_config_file(config_file))
29
+
30
+ load_plugins!
31
+ initialize_plugins!(config: config)
32
+ Schema.validate!(config)
33
+
34
+ exported_files = []
35
+
36
+ config[:translations].each {|group| exported_files += export_group(group) }
37
+
38
+ plugins.each do |plugin|
39
+ plugin.after_export(files: exported_files.dup) if plugin.enabled?
40
+ end
41
+
42
+ exported_files
43
+ end
44
+
45
+ def self.export_group(group)
46
+ filtered_translations = Glob.filter(translations, group[:patterns])
47
+ filtered_translations =
48
+ plugins.reduce(filtered_translations) do |buffer, plugin|
49
+ if plugin.enabled?
50
+ plugin.transform(translations: buffer)
51
+ else
52
+ buffer
53
+ end
54
+ end
55
+
56
+ filtered_translations = sort_hash(clean_hash(filtered_translations))
57
+ output_file_path = File.expand_path(group[:file])
58
+ exported_files = []
59
+
60
+ if output_file_path.include?(":locale")
61
+ filtered_translations.each_key do |locale|
62
+ locale_file_path = output_file_path.gsub(/:locale/, locale.to_s)
63
+ exported_files << write_file(locale_file_path,
64
+ locale => filtered_translations[locale])
65
+ end
66
+ else
67
+ exported_files << write_file(output_file_path, filtered_translations)
68
+ end
69
+
70
+ exported_files
71
+ end
72
+
73
+ def self.write_file(file_path, translations)
74
+ FileUtils.mkdir_p(File.dirname(file_path))
75
+
76
+ contents = ::JSON.pretty_generate(translations)
77
+ digest = Digest::MD5.hexdigest(contents)
78
+ file_path = file_path.gsub(/:digest/, digest)
79
+
80
+ # Don't rewrite the file if it already exists and has the same content.
81
+ # It helps the asset pipeline or webpack understand that file wasn't
82
+ # changed.
83
+ if File.exist?(file_path) && File.read(file_path) == contents
84
+ return file_path
85
+ end
86
+
87
+ File.open(file_path, "w") do |file|
88
+ file << contents
89
+ end
90
+
91
+ file_path
92
+ end
93
+
94
+ def self.translations
95
+ ::I18n.backend.instance_eval do
96
+ has_been_initialized_before =
97
+ respond_to?(:initialized?, true) && initialized?
98
+ init_translations unless has_been_initialized_before
99
+ translations
100
+ end
101
+ end
102
+
103
+ def self.load_config_file(config_file)
104
+ erb = ERB.new(File.read(config_file))
105
+ YAML.safe_load(erb.result(binding))
106
+ end
107
+ end
data/package.json CHANGED
@@ -1,25 +1,10 @@
1
1
  {
2
- "name": "i18n-js",
3
- "version": "3.9.2",
4
- "description": "A javascript library similar to Ruby on Rails i18n gem",
5
- "author": "Nando Vieira",
6
- "license": "MIT",
7
- "keywords": [
8
- "i18n"
9
- ],
10
- "devDependencies": {
11
- "jasmine-node": "^3.0.0"
2
+ "dependencies": {
3
+ "esbuild": "^0.16.2",
4
+ "glob": "^8.0.3",
5
+ "typescript": "^4.9.4"
12
6
  },
13
- "main": "app/assets/javascripts/i18n.js",
14
7
  "scripts": {
15
- "test": "./node_modules/.bin/jasmine-node spec/js"
16
- },
17
- "homepage": "https://github.com/fnando/i18n-js",
18
- "bugs": {
19
- "url": "https://github.com/fnando/i18n-js/issues"
20
- },
21
- "repository": {
22
- "type": "git",
23
- "url": "https://github.com/fnando/i18n-js.git"
8
+ "compile": "esbuild lib/i18n-js/lint.ts --bundle --platform=node --outfile=lib/i18n-js/lint.js --target=node16"
24
9
  }
25
10
  }
metadata CHANGED
@@ -1,221 +1,235 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: i18n-js
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.9.2
4
+ version: 4.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nando Vieira
8
- autorequire:
9
- bindir: bin
8
+ autorequire:
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-31 00:00:00.000000000 Z
11
+ date: 2022-12-30 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: glob
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.4.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.4.0
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: i18n
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - ">="
18
32
  - !ruby/object:Gem::Version
19
- version: 0.6.6
33
+ version: '0'
20
34
  type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - ">="
25
39
  - !ruby/object:Gem::Version
26
- version: 0.6.6
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
- name: appraisal
42
+ name: activesupport
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - "~>"
45
+ - - ">="
32
46
  - !ruby/object:Gem::Version
33
- version: '2.3'
47
+ version: '0'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - "~>"
52
+ - - ">="
39
53
  - !ruby/object:Gem::Version
40
- version: '2.3'
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
- name: rspec
56
+ name: minitest
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - "~>"
59
+ - - ">="
46
60
  - !ruby/object:Gem::Version
47
- version: '3.0'
61
+ version: '0'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - "~>"
66
+ - - ">="
53
67
  - !ruby/object:Gem::Version
54
- version: '3.0'
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest-utils
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: mocha
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry-meta
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
55
111
  - !ruby/object:Gem::Dependency
56
112
  name: rake
57
113
  requirement: !ruby/object:Gem::Requirement
58
114
  requirements:
59
- - - "~>"
115
+ - - ">="
60
116
  - !ruby/object:Gem::Version
61
- version: '12.0'
117
+ version: '0'
62
118
  type: :development
63
119
  prerelease: false
64
120
  version_requirements: !ruby/object:Gem::Requirement
65
121
  requirements:
66
- - - "~>"
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rubocop
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
67
137
  - !ruby/object:Gem::Version
68
- version: '12.0'
138
+ version: '0'
69
139
  - !ruby/object:Gem::Dependency
70
- name: gem-release
140
+ name: rubocop-fnando
71
141
  requirement: !ruby/object:Gem::Requirement
72
142
  requirements:
73
143
  - - ">="
74
144
  - !ruby/object:Gem::Version
75
- version: '0.7'
145
+ version: '0'
76
146
  type: :development
77
147
  prerelease: false
78
148
  version_requirements: !ruby/object:Gem::Requirement
79
149
  requirements:
80
150
  - - ">="
81
151
  - !ruby/object:Gem::Version
82
- version: '0.7'
152
+ version: '0'
83
153
  - !ruby/object:Gem::Dependency
84
- name: coveralls
154
+ name: simplecov
85
155
  requirement: !ruby/object:Gem::Requirement
86
156
  requirements:
87
157
  - - ">="
88
158
  - !ruby/object:Gem::Version
89
- version: '0.7'
159
+ version: '0'
90
160
  type: :development
91
161
  prerelease: false
92
162
  version_requirements: !ruby/object:Gem::Requirement
93
163
  requirements:
94
164
  - - ">="
95
165
  - !ruby/object:Gem::Version
96
- version: '0.7'
97
- description: It's a small library to provide the Rails I18n translations on the Javascript.
166
+ version: '0'
167
+ description: Export i18n translations and use them on JavaScript.
98
168
  email:
99
- - fnando.vieira@gmail.com
100
- executables: []
169
+ - me@fnando.com
170
+ executables:
171
+ - i18n
101
172
  extensions: []
102
173
  extra_rdoc_files: []
103
174
  files:
104
- - ".editorconfig"
175
+ - ".github/CODEOWNERS"
105
176
  - ".github/FUNDING.yml"
106
- - ".github/workflows/tests.yaml"
177
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
178
+ - ".github/ISSUE_TEMPLATE/config.yml"
179
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
180
+ - ".github/PULL_REQUEST_TEMPLATE.md"
181
+ - ".github/dependabot.yml"
182
+ - ".github/workflows/ruby-tests.yml"
107
183
  - ".gitignore"
108
- - ".npmignore"
109
- - Appraisals
184
+ - ".rubocop.yml"
110
185
  - CHANGELOG.md
186
+ - CODE_OF_CONDUCT.md
187
+ - CONTRIBUTING.md
111
188
  - Gemfile
189
+ - LICENSE.md
190
+ - MIGRATING_FROM_V3_TO_V4.md
112
191
  - README.md
113
192
  - Rakefile
114
- - app/assets/javascripts/i18n.js
115
- - app/assets/javascripts/i18n/filtered.js.erb
116
- - app/assets/javascripts/i18n/shims.js
117
- - app/assets/javascripts/i18n/translations.js
118
- - gemfiles/i18n_0_6.gemfile
119
- - gemfiles/i18n_0_7.gemfile
120
- - gemfiles/i18n_0_8.gemfile
121
- - gemfiles/i18n_0_9.gemfile
122
- - gemfiles/i18n_1_0.gemfile
123
- - gemfiles/i18n_1_1.gemfile
124
- - gemfiles/i18n_1_10.gemfile
125
- - gemfiles/i18n_1_2.gemfile
126
- - gemfiles/i18n_1_3.gemfile
127
- - gemfiles/i18n_1_4.gemfile
128
- - gemfiles/i18n_1_5.gemfile
129
- - gemfiles/i18n_1_6.gemfile
130
- - gemfiles/i18n_1_7.gemfile
131
- - gemfiles/i18n_1_8.gemfile
132
- - gemfiles/i18n_1_9.gemfile
193
+ - bin/release
194
+ - exe/i18n
133
195
  - i18n-js.gemspec
134
- - i18njs.png
196
+ - lib/guard/i18n-js.rb
197
+ - lib/guard/i18n-js/templates/Guardfile
198
+ - lib/guard/i18n-js/version.rb
135
199
  - lib/i18n-js.rb
136
- - lib/i18n/js.rb
137
- - lib/i18n/js/dependencies.rb
138
- - lib/i18n/js/engine.rb
139
- - lib/i18n/js/fallback_locales.rb
140
- - lib/i18n/js/formatters/base.rb
141
- - lib/i18n/js/formatters/js.rb
142
- - lib/i18n/js/formatters/json.rb
143
- - lib/i18n/js/middleware.rb
144
- - lib/i18n/js/private/config_store.rb
145
- - lib/i18n/js/private/hash_with_symbol_keys.rb
146
- - lib/i18n/js/segment.rb
147
- - lib/i18n/js/utils.rb
148
- - lib/i18n/js/version.rb
149
- - lib/rails/generators/i18n/js/config/config_generator.rb
150
- - lib/rails/generators/i18n/js/config/templates/i18n-js.yml
151
- - lib/tasks/export.rake
200
+ - lib/i18n-js/clean_hash.rb
201
+ - lib/i18n-js/cli.rb
202
+ - lib/i18n-js/cli/check_command.rb
203
+ - lib/i18n-js/cli/command.rb
204
+ - lib/i18n-js/cli/export_command.rb
205
+ - lib/i18n-js/cli/init_command.rb
206
+ - lib/i18n-js/cli/lint_scripts_command.rb
207
+ - lib/i18n-js/cli/lint_translations_command.rb
208
+ - lib/i18n-js/cli/plugins_command.rb
209
+ - lib/i18n-js/cli/ui.rb
210
+ - lib/i18n-js/cli/version_command.rb
211
+ - lib/i18n-js/embed_fallback_translations_plugin.rb
212
+ - lib/i18n-js/export_files_plugin.rb
213
+ - lib/i18n-js/lint.js
214
+ - lib/i18n-js/lint.ts
215
+ - lib/i18n-js/listen.rb
216
+ - lib/i18n-js/plugin.rb
217
+ - lib/i18n-js/schema.rb
218
+ - lib/i18n-js/sort_hash.rb
219
+ - lib/i18n-js/version.rb
152
220
  - package.json
153
- - spec/fixtures/custom_path.yml
154
- - spec/fixtures/default.yml
155
- - spec/fixtures/erb.yml
156
- - spec/fixtures/except_condition.yml
157
- - spec/fixtures/js_available_locales_custom.yml
158
- - spec/fixtures/js_export_dir_custom.yml
159
- - spec/fixtures/js_export_dir_none.yml
160
- - spec/fixtures/js_extend_parent.yml
161
- - spec/fixtures/js_extend_segment.yml
162
- - spec/fixtures/js_file_per_locale.yml
163
- - spec/fixtures/js_file_per_locale_with_fallbacks_as_default_locale_symbol.yml
164
- - spec/fixtures/js_file_per_locale_with_fallbacks_as_hash.yml
165
- - spec/fixtures/js_file_per_locale_with_fallbacks_as_locale.yml
166
- - spec/fixtures/js_file_per_locale_with_fallbacks_as_locale_without_fallback_translations.yml
167
- - spec/fixtures/js_file_per_locale_with_fallbacks_enabled.yml
168
- - spec/fixtures/js_file_per_locale_without_fallbacks.yml
169
- - spec/fixtures/js_file_with_namespace_prefix_and_pretty_print.yml
170
- - spec/fixtures/js_sort_translation_keys_false.yml
171
- - spec/fixtures/js_sort_translation_keys_true.yml
172
- - spec/fixtures/json_only.yml
173
- - spec/fixtures/locales.yml
174
- - spec/fixtures/merge_plurals.yml
175
- - spec/fixtures/merge_plurals_with_no_overrides.yml
176
- - spec/fixtures/merge_plurals_with_partial_overrides.yml
177
- - spec/fixtures/millions.yml
178
- - spec/fixtures/multiple_conditions.yml
179
- - spec/fixtures/multiple_conditions_per_locale.yml
180
- - spec/fixtures/multiple_files.yml
181
- - spec/fixtures/no_config.yml
182
- - spec/fixtures/no_scope.yml
183
- - spec/fixtures/simple_scope.yml
184
- - spec/js/currency.spec.js
185
- - spec/js/current_locale.spec.js
186
- - spec/js/dates.spec.js
187
- - spec/js/defaults.spec.js
188
- - spec/js/extend.spec.js
189
- - spec/js/interpolation.spec.js
190
- - spec/js/jasmine/MIT.LICENSE
191
- - spec/js/jasmine/jasmine-html.js
192
- - spec/js/jasmine/jasmine.css
193
- - spec/js/jasmine/jasmine.js
194
- - spec/js/jasmine/jasmine_favicon.png
195
- - spec/js/json_parsable.spec.js
196
- - spec/js/locales.spec.js
197
- - spec/js/localization.spec.js
198
- - spec/js/numbers.spec.js
199
- - spec/js/placeholder.spec.js
200
- - spec/js/pluralization.spec.js
201
- - spec/js/prepare_options.spec.js
202
- - spec/js/require.js
203
- - spec/js/specs.html
204
- - spec/js/specs_requirejs.html
205
- - spec/js/translate.spec.js
206
- - spec/js/translations.js
207
- - spec/js/utility_functions.spec.js
208
- - spec/ruby/i18n/js/fallback_locales_spec.rb
209
- - spec/ruby/i18n/js/segment_spec.rb
210
- - spec/ruby/i18n/js/utils_spec.rb
211
- - spec/ruby/i18n/js_spec.rb
212
- - spec/spec_helper.rb
213
- - yarn.lock
214
- homepage: https://rubygems.org/gems/i18n-js
221
+ homepage: https://github.com/fnando/i18n-js
215
222
  licenses:
216
223
  - MIT
217
- metadata: {}
218
- post_install_message:
224
+ metadata:
225
+ rubygems_mfa_required: 'true'
226
+ homepage_uri: https://github.com/fnando/i18n-js
227
+ bug_tracker_uri: https://github.com/fnando/i18n-js/issues
228
+ source_code_uri: https://github.com/fnando/i18n-js/tree/v4.2.2
229
+ changelog_uri: https://github.com/fnando/i18n-js/tree/v4.2.2/CHANGELOG.md
230
+ documentation_uri: https://github.com/fnando/i18n-js/tree/v4.2.2/README.md
231
+ license_uri: https://github.com/fnando/i18n-js/tree/v4.2.2/LICENSE.md
232
+ post_install_message:
219
233
  rdoc_options: []
220
234
  require_paths:
221
235
  - lib
@@ -223,75 +237,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
223
237
  requirements:
224
238
  - - ">="
225
239
  - !ruby/object:Gem::Version
226
- version: 2.1.0
240
+ version: 2.6.0
227
241
  required_rubygems_version: !ruby/object:Gem::Requirement
228
242
  requirements:
229
243
  - - ">="
230
244
  - !ruby/object:Gem::Version
231
245
  version: '0'
232
246
  requirements: []
233
- rubygems_version: 3.3.10
234
- signing_key:
247
+ rubygems_version: 3.4.1
248
+ signing_key:
235
249
  specification_version: 4
236
- summary: It's a small library to provide the Rails I18n translations on the Javascript.
237
- test_files:
238
- - spec/fixtures/custom_path.yml
239
- - spec/fixtures/default.yml
240
- - spec/fixtures/erb.yml
241
- - spec/fixtures/except_condition.yml
242
- - spec/fixtures/js_available_locales_custom.yml
243
- - spec/fixtures/js_export_dir_custom.yml
244
- - spec/fixtures/js_export_dir_none.yml
245
- - spec/fixtures/js_extend_parent.yml
246
- - spec/fixtures/js_extend_segment.yml
247
- - spec/fixtures/js_file_per_locale.yml
248
- - spec/fixtures/js_file_per_locale_with_fallbacks_as_default_locale_symbol.yml
249
- - spec/fixtures/js_file_per_locale_with_fallbacks_as_hash.yml
250
- - spec/fixtures/js_file_per_locale_with_fallbacks_as_locale.yml
251
- - spec/fixtures/js_file_per_locale_with_fallbacks_as_locale_without_fallback_translations.yml
252
- - spec/fixtures/js_file_per_locale_with_fallbacks_enabled.yml
253
- - spec/fixtures/js_file_per_locale_without_fallbacks.yml
254
- - spec/fixtures/js_file_with_namespace_prefix_and_pretty_print.yml
255
- - spec/fixtures/js_sort_translation_keys_false.yml
256
- - spec/fixtures/js_sort_translation_keys_true.yml
257
- - spec/fixtures/json_only.yml
258
- - spec/fixtures/locales.yml
259
- - spec/fixtures/merge_plurals.yml
260
- - spec/fixtures/merge_plurals_with_no_overrides.yml
261
- - spec/fixtures/merge_plurals_with_partial_overrides.yml
262
- - spec/fixtures/millions.yml
263
- - spec/fixtures/multiple_conditions.yml
264
- - spec/fixtures/multiple_conditions_per_locale.yml
265
- - spec/fixtures/multiple_files.yml
266
- - spec/fixtures/no_config.yml
267
- - spec/fixtures/no_scope.yml
268
- - spec/fixtures/simple_scope.yml
269
- - spec/js/currency.spec.js
270
- - spec/js/current_locale.spec.js
271
- - spec/js/dates.spec.js
272
- - spec/js/defaults.spec.js
273
- - spec/js/extend.spec.js
274
- - spec/js/interpolation.spec.js
275
- - spec/js/jasmine/MIT.LICENSE
276
- - spec/js/jasmine/jasmine-html.js
277
- - spec/js/jasmine/jasmine.css
278
- - spec/js/jasmine/jasmine.js
279
- - spec/js/jasmine/jasmine_favicon.png
280
- - spec/js/json_parsable.spec.js
281
- - spec/js/locales.spec.js
282
- - spec/js/localization.spec.js
283
- - spec/js/numbers.spec.js
284
- - spec/js/placeholder.spec.js
285
- - spec/js/pluralization.spec.js
286
- - spec/js/prepare_options.spec.js
287
- - spec/js/require.js
288
- - spec/js/specs.html
289
- - spec/js/specs_requirejs.html
290
- - spec/js/translate.spec.js
291
- - spec/js/translations.js
292
- - spec/js/utility_functions.spec.js
293
- - spec/ruby/i18n/js/fallback_locales_spec.rb
294
- - spec/ruby/i18n/js/segment_spec.rb
295
- - spec/ruby/i18n/js/utils_spec.rb
296
- - spec/ruby/i18n/js_spec.rb
297
- - spec/spec_helper.rb
250
+ summary: Export i18n translations and use them on JavaScript.
251
+ test_files: []
data/.editorconfig DELETED
@@ -1,24 +0,0 @@
1
- # EditorConfig is awesome: https://EditorConfig.org
2
-
3
- # top-most EditorConfig file
4
- root = true
5
-
6
- # default configuration
7
- [*]
8
- indent_style = space
9
- indent_size = 2
10
- insert_final_newline = true
11
- trim_trailing_whitespace = true
12
-
13
- # Unix-style newlines with a newline ending every file
14
- end_of_line = lf
15
-
16
- # Set default charset
17
- charset = utf-8
18
-
19
- # Tab indentation (no size specified)
20
- [Makefile]
21
- indent_style = tab
22
-
23
- [*.{md,markdown}]
24
- trim_trailing_whitespace = false