i18n-js 3.9.0 → 4.0.0.alpha1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) 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 -553
  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 -1041
  17. data/Rakefile +10 -20
  18. data/exe/i18n +5 -0
  19. data/i18n-js.gemspec +47 -29
  20. data/lib/guard/i18n-js/templates/Guardfile +10 -0
  21. data/lib/guard/i18n-js/version.rb +13 -0
  22. data/lib/guard/i18n-js.rb +78 -0
  23. data/lib/i18n-js/cli/command.rb +43 -0
  24. data/lib/i18n-js/cli/export_command.rb +108 -0
  25. data/lib/i18n-js/cli/init_command.rb +50 -0
  26. data/lib/i18n-js/cli/ui.rb +30 -0
  27. data/lib/i18n-js/cli/version_command.rb +18 -0
  28. data/lib/i18n-js/cli.rb +47 -0
  29. data/lib/i18n-js/listen.rb +80 -0
  30. data/lib/i18n-js/schema.rb +92 -0
  31. data/lib/i18n-js/version.rb +5 -0
  32. data/lib/i18n-js.rb +66 -1
  33. metadata +122 -196
  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/filtered.js.erb +0 -23
  39. data/app/assets/javascripts/i18n/shims.js +0 -240
  40. data/app/assets/javascripts/i18n/translations.js +0 -3
  41. data/app/assets/javascripts/i18n.js +0 -1095
  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/dependencies.rb +0 -63
  57. data/lib/i18n/js/engine.rb +0 -87
  58. data/lib/i18n/js/fallback_locales.rb +0 -70
  59. data/lib/i18n/js/formatters/base.rb +0 -25
  60. data/lib/i18n/js/formatters/js.rb +0 -39
  61. data/lib/i18n/js/formatters/json.rb +0 -13
  62. data/lib/i18n/js/middleware.rb +0 -82
  63. data/lib/i18n/js/private/config_store.rb +0 -31
  64. data/lib/i18n/js/private/hash_with_symbol_keys.rb +0 -36
  65. data/lib/i18n/js/segment.rb +0 -81
  66. data/lib/i18n/js/utils.rb +0 -91
  67. data/lib/i18n/js/version.rb +0 -7
  68. data/lib/i18n/js.rb +0 -274
  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_available_locales_custom.yml +0 -1
  78. data/spec/fixtures/js_export_dir_custom.yml +0 -7
  79. data/spec/fixtures/js_export_dir_none.yml +0 -6
  80. data/spec/fixtures/js_extend_parent.yml +0 -6
  81. data/spec/fixtures/js_extend_segment.yml +0 -6
  82. data/spec/fixtures/js_file_per_locale.yml +0 -7
  83. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_default_locale_symbol.yml +0 -4
  84. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_hash.yml +0 -6
  85. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_locale.yml +0 -4
  86. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_locale_without_fallback_translations.yml +0 -4
  87. data/spec/fixtures/js_file_per_locale_with_fallbacks_enabled.yml +0 -4
  88. data/spec/fixtures/js_file_per_locale_without_fallbacks.yml +0 -4
  89. data/spec/fixtures/js_file_with_namespace_prefix_and_pretty_print.yml +0 -9
  90. data/spec/fixtures/js_sort_translation_keys_false.yml +0 -6
  91. data/spec/fixtures/js_sort_translation_keys_true.yml +0 -6
  92. data/spec/fixtures/json_only.yml +0 -18
  93. data/spec/fixtures/locales.yml +0 -133
  94. data/spec/fixtures/merge_plurals.yml +0 -6
  95. data/spec/fixtures/merge_plurals_with_no_overrides.yml +0 -4
  96. data/spec/fixtures/merge_plurals_with_partial_overrides.yml +0 -4
  97. data/spec/fixtures/millions.yml +0 -4
  98. data/spec/fixtures/multiple_conditions.yml +0 -7
  99. data/spec/fixtures/multiple_conditions_per_locale.yml +0 -7
  100. data/spec/fixtures/multiple_files.yml +0 -7
  101. data/spec/fixtures/no_config.yml +0 -2
  102. data/spec/fixtures/no_scope.yml +0 -4
  103. data/spec/fixtures/simple_scope.yml +0 -5
  104. data/spec/js/currency.spec.js +0 -62
  105. data/spec/js/current_locale.spec.js +0 -19
  106. data/spec/js/dates.spec.js +0 -276
  107. data/spec/js/defaults.spec.js +0 -31
  108. data/spec/js/extend.spec.js +0 -110
  109. data/spec/js/interpolation.spec.js +0 -124
  110. data/spec/js/jasmine/MIT.LICENSE +0 -20
  111. data/spec/js/jasmine/jasmine-html.js +0 -190
  112. data/spec/js/jasmine/jasmine.css +0 -166
  113. data/spec/js/jasmine/jasmine.js +0 -2476
  114. data/spec/js/jasmine/jasmine_favicon.png +0 -0
  115. data/spec/js/json_parsable.spec.js +0 -14
  116. data/spec/js/locales.spec.js +0 -31
  117. data/spec/js/localization.spec.js +0 -78
  118. data/spec/js/numbers.spec.js +0 -174
  119. data/spec/js/placeholder.spec.js +0 -24
  120. data/spec/js/pluralization.spec.js +0 -219
  121. data/spec/js/prepare_options.spec.js +0 -41
  122. data/spec/js/require.js +0 -2083
  123. data/spec/js/specs.html +0 -49
  124. data/spec/js/specs_requirejs.html +0 -72
  125. data/spec/js/translate.spec.js +0 -304
  126. data/spec/js/translations.js +0 -188
  127. data/spec/js/utility_functions.spec.js +0 -20
  128. data/spec/ruby/i18n/js/fallback_locales_spec.rb +0 -84
  129. data/spec/ruby/i18n/js/segment_spec.rb +0 -286
  130. data/spec/ruby/i18n/js/utils_spec.rb +0 -138
  131. data/spec/ruby/i18n/js_spec.rb +0 -797
  132. data/spec/spec_helper.rb +0 -80
  133. data/yarn.lock +0 -138
data/lib/i18n/js/utils.rb DELETED
@@ -1,91 +0,0 @@
1
- module I18n
2
- module JS
3
- module Utils
4
- PLURAL_KEYS = %i[zero one two few many other].freeze
5
-
6
- # Based on deep_merge by Stefan Rusterholz, see <http://www.ruby-forum.com/topic/142809>.
7
- # This method is used to handle I18n fallbacks. Given two equivalent path nodes in two locale trees:
8
- # 1. If the node in the current locale appears to be an I18n pluralization (:one, :other, etc.),
9
- # use the node, but merge in any missing/non-nil keys from the fallback (default) locale.
10
- # 2. Else if both nodes are Hashes, combine (merge) the key-value pairs of the two nodes into one,
11
- # prioritizing the current locale.
12
- # 3. Else if either node is nil, use the other node.
13
- PLURAL_MERGER = proc do |_key, v1, v2|
14
- v1 || v2
15
- end
16
- MERGER = proc do |_key, v1, v2|
17
- if Hash === v1 && Hash === v2
18
- if (v2.keys - PLURAL_KEYS).empty?
19
- slice(v2.merge(v1, &PLURAL_MERGER), v2.keys)
20
- else
21
- v1.merge(v2, &MERGER)
22
- end
23
- else
24
- v2 || v1
25
- end
26
- end
27
-
28
- HASH_NIL_VALUE_CLEANER_PROC = proc do |k, v|
29
- v.kind_of?(Hash) ? (v.delete_if(&HASH_NIL_VALUE_CLEANER_PROC); false) : v.nil?
30
- end
31
-
32
- def self.slice(hash, keys)
33
- if hash.respond_to?(:slice) # ruby 2.5 onwards
34
- hash.slice(*keys)
35
- else
36
- hash.select {|key, _| keys.include?(key)}
37
- end
38
- end
39
-
40
- def self.strip_keys_with_nil_values(hash)
41
- hash.dup.delete_if(&HASH_NIL_VALUE_CLEANER_PROC)
42
- end
43
-
44
- def self.deep_merge(target_hash, hash) # :nodoc:
45
- target_hash.merge(hash, &MERGER)
46
- end
47
-
48
- def self.deep_merge!(target_hash, hash) # :nodoc:
49
- target_hash.merge!(hash, &MERGER)
50
- end
51
-
52
- def self.deep_reject(hash, scopes = [], &block)
53
- hash.each_with_object({}) do |(k, v), memo|
54
- unless block.call(k, v, scopes + [k.to_s])
55
- memo[k] = v.kind_of?(Hash) ? deep_reject(v, scopes + [k.to_s], &block) : v
56
- end
57
- end
58
- end
59
-
60
- def self.scopes_match?(scopes1, scopes2)
61
- if scopes1.length == scopes2.length
62
- [scopes1, scopes2].transpose.all? do |scope1, scope2|
63
- scope1.to_s == '*' || scope2.to_s == '*' || scope1.to_s == scope2.to_s
64
- end
65
- end
66
- end
67
-
68
- def self.deep_key_sort(hash)
69
- # Avoid things like `true` or `1` from YAML which causes error
70
- hash.keys.sort {|a, b| a.to_s <=> b.to_s}.
71
- each_with_object({}) do |key, seed|
72
- value = hash[key]
73
- seed[key] = value.is_a?(Hash) ? deep_key_sort(value) : value
74
- end
75
- end
76
-
77
- def self.deep_remove_procs(hash)
78
- # procs exist in `i18n.plural.rule` as pluralizer
79
- # But having it in translation causes the exported JS/JSON changes every time
80
- # https://github.com/ruby-i18n/i18n/blob/v1.8.7/lib/i18n/backend/pluralization.rb#L51
81
- hash.keys.
82
- each_with_object({}) do |key, seed|
83
- value = hash[key]
84
- next if value.is_a?(Proc)
85
-
86
- seed[key] = value.is_a?(Hash) ? deep_remove_procs(value) : value
87
- end
88
- end
89
- end
90
- end
91
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module I18n
4
- module JS
5
- VERSION = "3.9.0"
6
- end
7
- end
data/lib/i18n/js.rb DELETED
@@ -1,274 +0,0 @@
1
- require "yaml"
2
- require "fileutils"
3
- require "i18n"
4
-
5
- require "i18n/js/utils"
6
- require "i18n/js/private/hash_with_symbol_keys"
7
- require "i18n/js/private/config_store"
8
-
9
- module I18n
10
- module JS
11
- require "i18n/js/dependencies"
12
- require "i18n/js/fallback_locales"
13
- require "i18n/js/segment"
14
- if JS::Dependencies.rails?
15
- require "i18n/js/middleware"
16
- require "i18n/js/engine"
17
- end
18
-
19
- DEFAULT_CONFIG_PATH = "config/i18n-js.yml"
20
- DEFAULT_EXPORT_DIR_PATH = "public/javascripts"
21
-
22
- # The configuration file. This defaults to the `config/i18n-js.yml` file.
23
- #
24
- def self.config_file_path
25
- @config_file_path ||= DEFAULT_CONFIG_PATH
26
- end
27
-
28
- def self.config_file_path=(new_path)
29
- @config_file_path = new_path
30
- # new config file path = need to re-read config from new file
31
- Private::ConfigStore.instance.flush_cache
32
- end
33
-
34
- # Allow using a different backend than the one globally configured
35
- def self.backend
36
- @backend ||= I18n.backend
37
- end
38
-
39
- def self.backend=(alternative_backend)
40
- @backend = alternative_backend
41
- end
42
-
43
- # Export translations to JavaScript, considering settings
44
- # from configuration file
45
- def self.export
46
- export_i18n_js
47
-
48
- translation_segments.each(&:save!)
49
- end
50
-
51
- def self.segment_for_scope(scope, exceptions)
52
- if scope == "*"
53
- exclude(translations, exceptions)
54
- else
55
- scoped_translations(scope, exceptions)
56
- end
57
- end
58
-
59
- def self.configured_segments
60
- config[:translations].inject([]) do |segments, options_hash|
61
- options_hash_with_symbol_keys = Private::HashWithSymbolKeys.new(options_hash)
62
- file = options_hash_with_symbol_keys[:file]
63
- only = options_hash_with_symbol_keys[:only] || '*'
64
- exceptions = [options_hash_with_symbol_keys[:except] || []].flatten
65
-
66
- result = segment_for_scope(only, exceptions)
67
-
68
- merge_with_fallbacks!(result) if fallbacks
69
-
70
- unless result.empty?
71
- segments << Segment.new(
72
- file,
73
- result,
74
- extract_segment_options(options_hash_with_symbol_keys),
75
- )
76
- end
77
-
78
- segments
79
- end
80
- end
81
-
82
- # deep_merge! given result with result for fallback locale
83
- def self.merge_with_fallbacks!(result)
84
- js_available_locales.each do |locale|
85
- fallback_locales = FallbackLocales.new(fallbacks, locale)
86
- fallback_locales.each do |fallback_locale|
87
- # `result[fallback_locale]` could be missing
88
- result[locale] = Utils.deep_merge(result[fallback_locale] || {}, result[locale] || {})
89
- end
90
- end
91
- end
92
-
93
- def self.filtered_translations
94
- translations = {}.tap do |result|
95
- translation_segments.each do |segment|
96
- Utils.deep_merge!(result, segment.translations)
97
- end
98
- end
99
- return Utils.deep_key_sort(translations) if I18n::JS.sort_translation_keys?
100
- translations
101
- end
102
-
103
- def self.translation_segments
104
- if config_file_exists? && config[:translations]
105
- configured_segments
106
- else
107
- [Segment.new("#{DEFAULT_EXPORT_DIR_PATH}/translations.js", translations)]
108
- end
109
- end
110
-
111
- # Load configuration file for partial exporting and
112
- # custom output directory
113
- def self.config
114
- Private::ConfigStore.instance.fetch do
115
- if config_file_exists?
116
- erb_result_from_yaml_file = ERB.new(File.read(config_file_path)).result
117
- Private::HashWithSymbolKeys.new(
118
- (::YAML.load(erb_result_from_yaml_file) || {})
119
- )
120
- else
121
- Private::HashWithSymbolKeys.new({})
122
- end.freeze
123
- end
124
- end
125
-
126
- # @api private
127
- # Check if configuration file exist
128
- def self.config_file_exists?
129
- File.file? config_file_path
130
- end
131
-
132
- def self.scoped_translations(scopes, exceptions = []) # :nodoc:
133
- result = {}
134
-
135
- [scopes].flatten.each do |scope|
136
- translations_without_exceptions = exclude(translations, exceptions)
137
- filtered_translations = filter(translations_without_exceptions, scope) || {}
138
-
139
- Utils.deep_merge!(result, filtered_translations)
140
- end
141
-
142
- result
143
- end
144
-
145
- # Exclude keys from translations listed in the `except:` section in the config file
146
- def self.exclude(translations, exceptions)
147
- return translations if exceptions.empty?
148
-
149
- exceptions.inject(translations) do |memo, exception|
150
- exception_scopes = exception.to_s.split(".")
151
- Utils.deep_reject(memo) do |key, value, scopes|
152
- Utils.scopes_match?(scopes, exception_scopes)
153
- end
154
- end
155
- end
156
-
157
- # Filter translations according to the specified scope.
158
- def self.filter(translations, scopes)
159
- scopes = scopes.split(".") if scopes.is_a?(String)
160
- scopes = scopes.clone
161
- scope = scopes.shift
162
-
163
- if scope == "*"
164
- results = {}
165
- translations.each do |scope, translations|
166
- tmp = scopes.empty? ? translations : filter(translations, scopes)
167
- results[scope.to_sym] = tmp unless tmp.nil?
168
- end
169
- return results
170
- elsif translations.respond_to?(:key?) && translations.key?(scope.to_sym)
171
- return {scope.to_sym => scopes.empty? ? translations[scope.to_sym] : filter(translations[scope.to_sym], scopes)}
172
- end
173
- nil
174
- end
175
-
176
- # Initialize and return translations
177
- def self.translations
178
- self.backend.instance_eval do
179
- init_translations unless initialized?
180
- # When activesupport is absent,
181
- # the core extension (`#slice`) from `i18n` gem will be used instead
182
- # And it's causing errors (at least in test)
183
- #
184
- # So the input is wrapped by our class for better `#slice`
185
- Private::HashWithSymbolKeys.new(translations).
186
- slice(*::I18n::JS.js_available_locales).
187
- to_h
188
- end
189
- end
190
-
191
- def self.use_fallbacks?
192
- fallbacks != false
193
- end
194
-
195
- def self.json_only
196
- config.fetch(:json_only) do
197
- # default value
198
- false
199
- end
200
- end
201
-
202
- def self.fallbacks
203
- config.fetch(:fallbacks) do
204
- # default value
205
- true
206
- end
207
- end
208
-
209
- def self.js_extend
210
- config.fetch(:js_extend) do
211
- # default value
212
- true
213
- end
214
- end
215
-
216
- # Get all available locales.
217
- #
218
- # @return [Array<Symbol>] the locales.
219
- def self.js_available_locales
220
- config.fetch(:js_available_locales) do
221
- # default value
222
- I18n.available_locales
223
- end.map(&:to_sym)
224
- end
225
-
226
- def self.sort_translation_keys?
227
- @sort_translation_keys ||= (config[:sort_translation_keys]) if config.key?(:sort_translation_keys)
228
- @sort_translation_keys = true if @sort_translation_keys.nil?
229
- @sort_translation_keys
230
- end
231
-
232
- def self.sort_translation_keys=(value)
233
- @sort_translation_keys = !!value
234
- end
235
-
236
- def self.extract_segment_options(options)
237
- segment_options = Private::HashWithSymbolKeys.new({
238
- js_extend: js_extend,
239
- sort_translation_keys: sort_translation_keys?,
240
- json_only: json_only
241
- }).freeze
242
- segment_options.merge(options.slice(*Segment::OPTIONS))
243
- end
244
-
245
- ### Export i18n.js
246
- begin
247
-
248
- # Copy i18n.js
249
- def self.export_i18n_js
250
- return unless export_i18n_js_dir_path.is_a? String
251
-
252
- FileUtils.mkdir_p(export_i18n_js_dir_path)
253
-
254
- i18n_js_path = File.expand_path('../../../app/assets/javascripts/i18n.js', __FILE__)
255
- destination_path = File.expand_path("i18n.js", export_i18n_js_dir_path)
256
- return if File.exist?(destination_path) && FileUtils.identical?(i18n_js_path, destination_path)
257
-
258
- FileUtils.cp(i18n_js_path, export_i18n_js_dir_path)
259
- end
260
-
261
- def self.export_i18n_js_dir_path
262
- @export_i18n_js_dir_path ||= (config[:export_i18n_js] || :none) if config.key?(:export_i18n_js)
263
- @export_i18n_js_dir_path ||= DEFAULT_EXPORT_DIR_PATH
264
- @export_i18n_js_dir_path
265
- end
266
-
267
- # Setting this to nil would disable i18n.js exporting
268
- def self.export_i18n_js_dir_path=(new_path)
269
- new_path = :none unless new_path.is_a? String
270
- @export_i18n_js_dir_path = new_path
271
- end
272
- end
273
- end
274
- end
@@ -1,19 +0,0 @@
1
- module I18n
2
- module Js
3
- class ConfigGenerator < Rails::Generators::Base
4
- # Copied files come from templates folder
5
- source_root File.expand_path('../templates', __FILE__)
6
-
7
- # Generator desc
8
- desc <<-DESC
9
- Creates a default i18n-js.yml configuration file in your app's config
10
- folder. This file allows you to customize i18n:js:export rake task
11
- outputted files.
12
- DESC
13
-
14
- def copy_initializer_file
15
- copy_file "i18n-js.yml", "config/i18n-js.yml"
16
- end
17
- end
18
- end
19
- end
@@ -1,27 +0,0 @@
1
- # Split context in several files.
2
- #
3
- # By default only one file with all translations is exported and
4
- # no configuration is required. Your settings for asset pipeline
5
- # are automatically recognized.
6
- #
7
- # If you want to split translations into several files or specify
8
- # locale contexts that will be exported, just use this file to do
9
- # so.
10
- #
11
- # For more informations about the export options with this file, please
12
- # refer to the README
13
- #
14
- #
15
- # If you're going to use the Rails 3.1 asset pipeline, change
16
- # the following configuration to something like this:
17
- #
18
- # translations:
19
- # - file: "app/assets/javascripts/i18n/translations.js"
20
- #
21
- # If you're running an old version, you can use something
22
- # like this:
23
- #
24
- # translations:
25
- # - file: "app/assets/javascripts/i18n/translations.js"
26
- # only: "*"
27
- #
@@ -1,8 +0,0 @@
1
- namespace :i18n do
2
- namespace :js do
3
- desc "Export translations to JS file(s)"
4
- task :export => :environment do
5
- I18n::JS.export
6
- end
7
- end
8
- end
data/package.json DELETED
@@ -1,25 +0,0 @@
1
- {
2
- "name": "i18n-js",
3
- "version": "3.8.0",
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"
12
- },
13
- "main": "app/assets/javascripts/i18n.js",
14
- "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"
24
- }
25
- }
@@ -1,5 +0,0 @@
1
- fallbacks: false
2
-
3
- translations:
4
- - file: "tmp/i18n-js/all.js"
5
- only: "*"
@@ -1,5 +0,0 @@
1
- fallbacks: false
2
-
3
- translations:
4
- - file: "tmp/i18n-js/translations.js"
5
- only: "*"
@@ -1,5 +0,0 @@
1
- fallbacks: false
2
-
3
- translations:
4
- - file: "tmp/i18n-js/translations.js"
5
- only: '<%= "*." + "date." + "formats" %>'
@@ -1,7 +0,0 @@
1
- fallbacks: false
2
-
3
- translations:
4
- - file: "tmp/i18n-js/trimmed.js"
5
- except:
6
- - "active_admin"
7
- - "mailers"
@@ -1 +0,0 @@
1
- js_available_locales: ["en", "foo"]
@@ -1,7 +0,0 @@
1
- fallbacks: false
2
-
3
- export_i18n_js: 'tmp/i18n-js/foo'
4
-
5
- translations:
6
- - file: "tmp/i18n-js/%{locale}.js"
7
- only: '*'
@@ -1,6 +0,0 @@
1
- fallbacks: false
2
- export_i18n_js: false
3
-
4
- translations:
5
- - file: "tmp/i18n-js/%{locale}.js"
6
- only: '*'
@@ -1,6 +0,0 @@
1
- fallbacks: false
2
- js_extend: false
3
-
4
- translations:
5
- - file: "tmp/i18n-js/js_extend_parent.js"
6
- only: "*.date.formats"
@@ -1,6 +0,0 @@
1
- fallbacks: false
2
-
3
- translations:
4
- - file: "tmp/i18n-js/js_extend_segment.js"
5
- js_extend: false
6
- only: "*.date.formats"
@@ -1,7 +0,0 @@
1
- fallbacks: false
2
-
3
- translations:
4
- - file: "tmp/i18n-js/%{locale}.js"
5
- only:
6
- - '*.date.*'
7
- - '*.admin.*'
@@ -1,4 +0,0 @@
1
- fallbacks: :default_locale
2
-
3
- translations:
4
- - file: "tmp/i18n-js/%{locale}.js"
@@ -1,6 +0,0 @@
1
- fallbacks:
2
- fr: ["de", "en"]
3
- de: "en"
4
-
5
- translations:
6
- - file: "tmp/i18n-js/%{locale}.js"
@@ -1,4 +0,0 @@
1
- fallbacks: :de
2
-
3
- translations:
4
- - file: "tmp/i18n-js/%{locale}.js"
@@ -1,4 +0,0 @@
1
- fallbacks: :pirate
2
-
3
- translations:
4
- - file: "tmp/i18n-js/%{locale}.js"
@@ -1,4 +0,0 @@
1
- fallbacks: true
2
-
3
- translations:
4
- - file: "tmp/i18n-js/%{locale}.js"
@@ -1,4 +0,0 @@
1
- fallbacks: false
2
-
3
- translations:
4
- - file: "tmp/i18n-js/%{locale}.js"
@@ -1,9 +0,0 @@
1
- fallbacks: false
2
-
3
- translations:
4
- - file: "tmp/i18n-js/%{locale}.js"
5
- only: '*'
6
- namespace: "Foo"
7
- pretty_print: true
8
- prefix: "import random from 'random-library';\n"
9
- suffix: "//test"
@@ -1,6 +0,0 @@
1
-
2
- sort_translation_keys: false
3
-
4
- translations:
5
- - file: "tmp/i18n-js/%{locale}.js"
6
- only: '*'
@@ -1,6 +0,0 @@
1
-
2
- sort_translation_keys: true
3
-
4
- translations:
5
- - file: "tmp/i18n-js/%{locale}.js"
6
- only: '*'
@@ -1,18 +0,0 @@
1
- fallbacks: false
2
- json_only: true
3
-
4
- translations:
5
- - file: "tmp/i18n-js/json_only.%{locale}.js"
6
- only:
7
- - "*.date.formats.*"
8
- - "*.number.currency.*"
9
-
10
- - file: "tmp/i18n-js/json_only_multi.js"
11
- only:
12
- - "*.date.formats.*"
13
- - "*.number.currency.*"
14
-
15
- - file: "tmp/i18n-js/json_only_multi_pretty.js"
16
- only:
17
- - "*.date.formats.*"
18
- - "*.number.currency.*"