i18n-js 3.0.0.rc13 → 3.0.0.rc14
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +23 -10
- data/README.md +21 -21
- data/app/assets/javascripts/i18n.js +17 -12
- data/lib/i18n/js/dependencies.rb +14 -2
- data/lib/i18n/js/engine.rb +80 -28
- data/lib/i18n/js/version.rb +1 -1
- data/spec/js/extend.spec.js +21 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 10a07ab318e610dfc7102d3d88015d8a55c42a76
|
4
|
+
data.tar.gz: 21fa8daa428b711f6d592c3b14bad7183e5af2f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cef3f6f68e7ca327e96902093069c47df6897074d35db121700076e3e7137d1ae68a9222e76ded1bea5e8d3145597cc0f37c9651d12a3b62ccbf766ce8374186
|
7
|
+
data.tar.gz: 6940d5acc297f6482cb74caa56f64c85b2be20065a069fd26267956ee157ce139b2f92b425c9e2e55ce983c285bd66dcdae861454bc4371aa4e478687613da4d
|
data/CHANGELOG.md
CHANGED
@@ -16,6 +16,18 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
16
16
|
|
17
17
|
- Nothing
|
18
18
|
|
19
|
+
|
20
|
+
## [3.0.0.rc14] - 2016-08-29
|
21
|
+
|
22
|
+
### Changed
|
23
|
+
|
24
|
+
- [JS] Method `I18n.extend()` behave as deep merging instead of shallow merging. (https://github.com/fnando/i18n-js/pull/416)
|
25
|
+
- [Ruby] Use object/class instead of block when registering Sprockets preprocessor (https://github.com/fnando/i18n-js/pull/418)
|
26
|
+
To ensure that your cache will expire properly based on locale file content after upgrading,
|
27
|
+
you should run `rake assets:clobber` and/or other rake tasks that clear the asset cache once gem updated
|
28
|
+
- [Ruby] Detect & support rails 5 (https://github.com/fnando/i18n-js/pull/413)
|
29
|
+
|
30
|
+
|
19
31
|
## [3.0.0.rc13] - 2016-06-29
|
20
32
|
|
21
33
|
### Added
|
@@ -31,7 +43,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
31
43
|
- [JS] Initialize option `missingBehaviour` & `missingTranslationPrefix` with default values ([#398](https://github.com/fnando/i18n-js/pull/398))
|
32
44
|
- [JS] Throw an error when `I18n.strftime()` takes an invalid date ([#383](https://github.com/fnando/i18n-js/pull/383))
|
33
45
|
- [JS] Fix default error message when translation missing to consider locale passed in options
|
34
|
-
- [Ruby] Reset middleware cache on rails startup
|
46
|
+
- [Ruby] Reset middleware cache on rails startup
|
35
47
|
([#402](https://github.com/fnando/i18n-js/pull/402))
|
36
48
|
|
37
49
|
|
@@ -94,7 +106,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
94
106
|
- [Ruby] Add `:except` option to exclude certain phrases or groups of phrases from the
|
95
107
|
outputted translations ([#312](https://github.com/fnando/i18n-js/pull/312))
|
96
108
|
- [JS] You can now set `I18n.missingBehavior='guess'` to have the scope string output as text instead of of the
|
97
|
-
"[missing `scope`]" message when no translation is available.
|
109
|
+
"[missing `scope`]" message when no translation is available.
|
98
110
|
Combined that with `I18n.missingTranslationPrefix='SOMETHING'` and you can
|
99
111
|
still identify those missing strings.
|
100
112
|
([#304](https://github.com/fnando/i18n-js/pull/304))
|
@@ -110,8 +122,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
110
122
|
### enhancements
|
111
123
|
|
112
124
|
- Add support for loading via AMD and CommonJS module loaders ([#266](https://github.com/fnando/i18n-js/pull/266))
|
113
|
-
- Add `I18n.nullPlaceholder`
|
114
|
-
Defaults to I18n.missingPlaceholder (`[missing {{name}} value]`)
|
125
|
+
- Add `I18n.nullPlaceholder`
|
126
|
+
Defaults to I18n.missingPlaceholder (`[missing {{name}} value]`)
|
115
127
|
Set to `function() {return "";}` to match Ruby `I18n.t("name: %{name}", name: nil)`
|
116
128
|
- For date formatting, you can now also add placeholders to the date format, see README for detail
|
117
129
|
- Add fallbacks option to `i18n-js.yml`, defaults to `true`
|
@@ -121,8 +133,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
121
133
|
- Fix factory initialization so that the Node/CommonJS branch only gets executed if the environment is Node/CommonJS
|
122
134
|
(it currently will execute if module is defined in the global scope, which occurs with QUnit, for example)
|
123
135
|
- 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))
|
124
|
-
- Remove check for `Rails.configuration.assets.compile` before telling Sprockets the dependency of translations JS file
|
125
|
-
This might be the reason of many "cache not expired" issues
|
136
|
+
- Remove check for `Rails.configuration.assets.compile` before telling Sprockets the dependency of translations JS file
|
137
|
+
This might be the reason of many "cache not expired" issues
|
126
138
|
Discovered/reported in #277
|
127
139
|
|
128
140
|
## 3.0.0.rc7
|
@@ -130,11 +142,11 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
130
142
|
### enhancements
|
131
143
|
|
132
144
|
- The Rails Engine initializer is now named as `i18n-js.register_preprocessor` (https://github.com/fnando/i18n-js/pull/261)
|
133
|
-
- Rename `I18n::JS.config_file` to `I18n::JS.config_file_path` and make it configurable
|
145
|
+
- Rename `I18n::JS.config_file` to `I18n::JS.config_file_path` and make it configurable
|
134
146
|
Expected a `String`, default is still `config/i18n-js.yml`
|
135
147
|
- When running `rake i18n:js:export`, the `i18n.js` will also be exported to `I18n::JS.export_i18n_js_dir_path` by default
|
136
|
-
- Add `I18n::JS.export_i18n_js_dir_path`
|
137
|
-
Expected a `String`, default is `public/javascripts`
|
148
|
+
- Add `I18n::JS.export_i18n_js_dir_path`
|
149
|
+
Expected a `String`, default is `public/javascripts`
|
138
150
|
Set to `nil` will disable exporting `i18n.js`
|
139
151
|
|
140
152
|
### bug fixes
|
@@ -176,6 +188,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
176
188
|
|
177
189
|
|
178
190
|
|
179
|
-
[Unreleased]: https://github.com/fnando/i18n-js/compare/v3.0.0.
|
191
|
+
[Unreleased]: https://github.com/fnando/i18n-js/compare/v3.0.0.rc14...HEAD
|
192
|
+
[3.0.0.rc14]: https://github.com/fnando/i18n-js/compare/v3.0.0.rc13...v3.0.0.rc14
|
180
193
|
[3.0.0.rc13]: https://github.com/fnando/i18n-js/compare/v3.0.0.rc12...v3.0.0.rc13
|
181
194
|
[3.0.0.rc12]: https://github.com/fnando/i18n-js/compare/v3.0.0.rc11...v3.0.0.rc12
|
data/README.md
CHANGED
@@ -65,23 +65,23 @@ Then get the JS files following the instructions below.
|
|
65
65
|
|
66
66
|
**There are two ways to get `translations.js`.**
|
67
67
|
|
68
|
-
1. This `translations.js` file can be automatically generated by the `I18n::JS::Middleware`.
|
69
|
-
Just add `config.middleware.use I18n::JS::Middleware` to your `config/application.rb` file.
|
68
|
+
1. This `translations.js` file can be automatically generated by the `I18n::JS::Middleware`.
|
69
|
+
Just add `config.middleware.use I18n::JS::Middleware` to your `config/application.rb` file.
|
70
70
|
2. If you can't or prefer not to generate this file,
|
71
71
|
you can move the middleware line to your `config/environments/development.rb` file
|
72
72
|
and run `rake i18n:js:export` before deploying.
|
73
73
|
This will export all translation files, including the custom scopes
|
74
|
-
you may have defined on `config/i18n-js.yml`.
|
74
|
+
you may have defined on `config/i18n-js.yml`.
|
75
75
|
If `I18n.available_locales` is set (e.g. in your Rails `config/application.rb` file)
|
76
|
-
then only the specified locales will be exported.
|
76
|
+
then only the specified locales will be exported.
|
77
77
|
Current version of `i18n.js` will also be exported to avoid version mismatching by downloading.
|
78
78
|
|
79
79
|
#### Export Configuration (For translations)
|
80
80
|
|
81
|
-
Exported translation files generated by `I18n::JS::Middleware` or `rake i18n:js:export` can be customized with config file `config/i18n-js.yml`
|
82
|
-
(use `rails generate i18n:js:config` to create it).
|
83
|
-
You can even get more files generated to different folders and with different translations to best suit your needs.
|
84
|
-
The config file also affects developers using Asset Pipeline to require translations.
|
81
|
+
Exported translation files generated by `I18n::JS::Middleware` or `rake i18n:js:export` can be customized with config file `config/i18n-js.yml`
|
82
|
+
(use `rails generate i18n:js:config` to create it).
|
83
|
+
You can even get more files generated to different folders and with different translations to best suit your needs.
|
84
|
+
The config file also affects developers using Asset Pipeline to require translations.
|
85
85
|
Except the option `file`, since all translations are required by adding `//= require i18n/translations`.
|
86
86
|
|
87
87
|
Examples:
|
@@ -134,14 +134,14 @@ translations:
|
|
134
134
|
#### Export Configuration (For other things)
|
135
135
|
|
136
136
|
- `I18n::JS.config_file_path`
|
137
|
-
Expected Type: `String`
|
138
|
-
Default: `config/i18n-js.yml`
|
139
|
-
Behaviour: Try to read the config file from that location
|
137
|
+
Expected Type: `String`
|
138
|
+
Default: `config/i18n-js.yml`
|
139
|
+
Behaviour: Try to read the config file from that location
|
140
140
|
|
141
141
|
- `I18n::JS.export_i18n_js_dir_path`
|
142
|
-
Expected Type: `String`
|
143
|
-
Default: `public/javascripts`
|
144
|
-
Behaviour:
|
142
|
+
Expected Type: `String`
|
143
|
+
Default: `public/javascripts`
|
144
|
+
Behaviour:
|
145
145
|
- Any `String`: considered as a relative path for a folder to `Rails.root` and export `i18n.js` to that folder for `rake i18n:js:export`
|
146
146
|
- Any non-`String` (`nil`, `false`, `:none`, etc): Disable `i18n.js` exporting
|
147
147
|
|
@@ -169,7 +169,7 @@ To find more examples on how to use the configuration file please refer to the t
|
|
169
169
|
|
170
170
|
#### Fallbacks
|
171
171
|
|
172
|
-
If you specify the `fallbacks` option, you will be able to fill missing translations with those inside fallback locale(s).
|
172
|
+
If you specify the `fallbacks` option, you will be able to fill missing translations with those inside fallback locale(s).
|
173
173
|
Default value is `true`.
|
174
174
|
|
175
175
|
Examples:
|
@@ -256,10 +256,10 @@ translations:
|
|
256
256
|
```
|
257
257
|
|
258
258
|
|
259
|
-
#### Javscript Merge (:js_extend option)
|
259
|
+
#### Javscript Deep Merge (:js_extend option)
|
260
260
|
|
261
261
|
By default, the output file Javascript will call the `I18n.extend` method to ensure that newly loaded locale
|
262
|
-
files are
|
262
|
+
files are deep-merged with any locale data already in memory. To disable this either globally or per-file,
|
263
263
|
set the `js_extend` option to false
|
264
264
|
|
265
265
|
```yaml
|
@@ -617,7 +617,7 @@ This method is useful for very large apps where a single contained translations.
|
|
617
617
|
+ file: "app/assets/javascript/nls/welcome.js"
|
618
618
|
only:
|
619
619
|
+ '*.welcome.*'
|
620
|
-
|
620
|
+
|
621
621
|
+ file: "app/assets/javascript/nls/albums.js"
|
622
622
|
only:
|
623
623
|
+ '*.albums.*'
|
@@ -687,13 +687,13 @@ To use this with require.js we are only going to change a few things from above.
|
|
687
687
|
deps:
|
688
688
|
+ i18n
|
689
689
|
|
690
|
-
# Finally in your modules
|
690
|
+
# Finally in your modules
|
691
691
|
modules:
|
692
692
|
+ name: 'application'
|
693
693
|
include:
|
694
694
|
+ i18n
|
695
695
|
+ 'nls/global'
|
696
|
-
|
696
|
+
|
697
697
|
+ name: 'welcome'
|
698
698
|
exclude:
|
699
699
|
+ application
|
@@ -767,7 +767,7 @@ This means that new locale files will not be detected, and so they will not trig
|
|
767
767
|
$ rake assets:precompile
|
768
768
|
```
|
769
769
|
or similar commands. If you are precompiling assets on the target machine(s), cached pages may be broken by this, so they will need to be refreshed.
|
770
|
-
|
770
|
+
|
771
771
|
2. You can change something in a different locale file.
|
772
772
|
|
773
773
|
3. Finally, you can change `config.assets.version`.
|
@@ -79,6 +79,20 @@
|
|
79
79
|
return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp));
|
80
80
|
}
|
81
81
|
|
82
|
+
var merge = function (dest, obj) {
|
83
|
+
var key, value;
|
84
|
+
for (key in obj) if (obj.hasOwnProperty(key)) {
|
85
|
+
value = obj[key];
|
86
|
+
if (Object.prototype.toString.call(value) === '[object String]') {
|
87
|
+
dest[key] = value;
|
88
|
+
} else {
|
89
|
+
if (dest[key] == null) dest[key] = {};
|
90
|
+
merge(dest[key], value);
|
91
|
+
}
|
92
|
+
}
|
93
|
+
return dest;
|
94
|
+
};
|
95
|
+
|
82
96
|
// Set default days/months translations.
|
83
97
|
var DATE = {
|
84
98
|
day_names: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
|
@@ -921,19 +935,10 @@
|
|
921
935
|
* https://stackoverflow.com/questions/8157700/object-has-no-hasownproperty-method-i-e-its-undefined-ie8
|
922
936
|
*/
|
923
937
|
I18n.extend = function ( obj1, obj2 ) {
|
924
|
-
|
925
|
-
|
926
|
-
for (prop in obj1) {
|
927
|
-
if (Object.prototype.hasOwnProperty.call(obj1, prop)) {
|
928
|
-
extended[prop] = obj1[prop];
|
929
|
-
}
|
930
|
-
}
|
931
|
-
for (prop in obj2) {
|
932
|
-
if (Object.prototype.hasOwnProperty.call(obj2, prop)) {
|
933
|
-
extended[prop] = obj2[prop];
|
934
|
-
}
|
938
|
+
if (typeof(obj1) === "undefined" && typeof(obj2) === "undefined") {
|
939
|
+
return {};
|
935
940
|
}
|
936
|
-
return
|
941
|
+
return merge(obj1, obj2);
|
937
942
|
};
|
938
943
|
|
939
944
|
// Set aliases, so we can save some typing.
|
data/lib/i18n/js/dependencies.rb
CHANGED
@@ -12,6 +12,10 @@ module I18n
|
|
12
12
|
safe_gem_check("rails", "~> 4.0", ">= 4.0.0.beta1") && running_rails4?
|
13
13
|
end
|
14
14
|
|
15
|
+
def rails5?
|
16
|
+
safe_gem_check("rails", "~> 5.0", ">= 5.0.0.beta1") && running_rails5?
|
17
|
+
end
|
18
|
+
|
15
19
|
def sprockets_supports_register_preprocessor?
|
16
20
|
defined?(Sprockets) && Sprockets.respond_to?(:register_preprocessor)
|
17
21
|
end
|
@@ -24,9 +28,13 @@ module I18n
|
|
24
28
|
safe_gem_check("rails", '>= 3.0.0.beta')
|
25
29
|
end
|
26
30
|
|
31
|
+
# This cannot be called at class definition time
|
32
|
+
# Since not all libraries are loaded
|
33
|
+
#
|
34
|
+
# Call this in an initializer
|
27
35
|
def using_asset_pipeline?
|
28
36
|
assets_pipeline_available =
|
29
|
-
(rails3? || rails4?) &&
|
37
|
+
(rails3? || rails4? || rails5?) &&
|
30
38
|
Rails.respond_to?(:application) &&
|
31
39
|
Rails.application.respond_to?(:assets)
|
32
40
|
rails3_assets_enabled =
|
@@ -34,7 +42,7 @@ module I18n
|
|
34
42
|
assets_pipeline_available &&
|
35
43
|
Rails.application.config.assets.enabled != false
|
36
44
|
|
37
|
-
assets_pipeline_available && (rails4? || rails3_assets_enabled)
|
45
|
+
assets_pipeline_available && (rails4? || rails5? || rails3_assets_enabled)
|
38
46
|
end
|
39
47
|
|
40
48
|
private
|
@@ -47,6 +55,10 @@ module I18n
|
|
47
55
|
running_rails? && Rails.version.to_i == 4
|
48
56
|
end
|
49
57
|
|
58
|
+
def running_rails5?
|
59
|
+
running_rails? && Rails.version.to_i == 5
|
60
|
+
end
|
61
|
+
|
50
62
|
def running_rails?
|
51
63
|
defined?(Rails) && Rails.respond_to?(:version)
|
52
64
|
end
|
data/lib/i18n/js/engine.rb
CHANGED
@@ -2,39 +2,91 @@ require "i18n/js"
|
|
2
2
|
|
3
3
|
module I18n
|
4
4
|
module JS
|
5
|
+
# @api private
|
6
|
+
# The class cannot be private
|
7
|
+
class SprocketsExtension
|
8
|
+
# Actual definition is placed below
|
9
|
+
end
|
10
|
+
|
5
11
|
class Engine < ::Rails::Engine
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
# From README of 2.x & 3.x of `sprockets-rails`
|
24
|
-
# It seems the `configure` block is preferred way to call `register_preprocessor`
|
25
|
-
# Not sure if this will break older versions of rails
|
12
|
+
if JS::Dependencies.sprockets_supports_register_preprocessor?
|
13
|
+
# constant `Sprockets` should be available here after
|
14
|
+
# `.sprockets_supports_register_preprocessor?` called
|
15
|
+
sprockets_version = Gem::Version.new(Sprockets::VERSION).release
|
16
|
+
v2_only = Gem::Dependency.new("", " ~> 2")
|
17
|
+
v3_plus = Gem::Dependency.new("", " >= 3")
|
18
|
+
|
19
|
+
# See https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#supporting-all-versions-of-sprockets-in-processors
|
20
|
+
# for reference of supporting multiple versions
|
21
|
+
|
22
|
+
# `sprockets.environment` was used for 1.x of `sprockets-rails`
|
23
|
+
# https://github.com/rails/sprockets-rails/issues/227
|
24
|
+
#
|
25
|
+
# References for current values:
|
26
|
+
#
|
27
|
+
# Here is where sprockets are attached with Rails. There is no 'sprockets.environment' mentioned.
|
28
|
+
# https://github.com/rails/sprockets-rails/blob/master/lib/sprockets/railtie.rb
|
26
29
|
#
|
27
|
-
#
|
28
|
-
#
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
30
|
+
# Finisher hook is the place which should be used as border.
|
31
|
+
# http://guides.rubyonrails.org/configuring.html#initializers
|
32
|
+
#
|
33
|
+
# For detail see Pull Request:
|
34
|
+
# https://github.com/fnando/i18n-js/pull/371
|
35
|
+
initializer_args = case sprockets_version
|
36
|
+
when -> (v) { v2_only.match?("", v) || v3_plus.match?("", v) }
|
37
|
+
{ after: :engines_blank_point, before: :finisher_hook }
|
38
|
+
else
|
39
|
+
raise StandardError, "Sprockets version #{sprockets_version} is not supported"
|
40
|
+
end
|
41
|
+
|
42
|
+
initializer "i18n-js.register_preprocessor", initializer_args do
|
43
|
+
# This must be called inside initializer block
|
44
|
+
# For details see comments for `using_asset_pipeline?`
|
45
|
+
next unless JS::Dependencies.using_asset_pipeline?
|
46
|
+
|
47
|
+
# From README of 2.x & 3.x of `sprockets-rails`
|
48
|
+
# It seems the `configure` block is preferred way to call `register_preprocessor`
|
49
|
+
# Not sure if this will break older versions of rails
|
50
|
+
#
|
51
|
+
# https://github.com/rails/sprockets-rails/blob/v2.3.3/README.md
|
52
|
+
# https://github.com/rails/sprockets-rails/blob/v3.0.0/README.md
|
53
|
+
Rails.application.config.assets.configure do |config|
|
54
|
+
config.register_preprocessor(
|
55
|
+
"application/javascript",
|
56
|
+
::I18n::JS::SprocketsExtension,
|
57
|
+
)
|
35
58
|
end
|
36
59
|
end
|
37
60
|
end
|
38
61
|
end
|
62
|
+
|
63
|
+
# @api private
|
64
|
+
class SprocketsExtension
|
65
|
+
def initialize(filename, &block)
|
66
|
+
@filename = filename
|
67
|
+
@source = block.call
|
68
|
+
end
|
69
|
+
|
70
|
+
def render(context, empty_hash_wtf)
|
71
|
+
self.class.run(@filename, @source, context)
|
72
|
+
end
|
73
|
+
|
74
|
+
def self.run(filename, source, context)
|
75
|
+
if context.logical_path == "i18n/filtered"
|
76
|
+
::I18n.load_path.each { |path| context.depend_on(File.expand_path(path)) }
|
77
|
+
end
|
78
|
+
|
79
|
+
source
|
80
|
+
end
|
81
|
+
|
82
|
+
def self.call(input)
|
83
|
+
filename = input[:filename]
|
84
|
+
source = input[:data]
|
85
|
+
context = input[:environment].context_class.new(input)
|
86
|
+
|
87
|
+
result = run(filename, source, context)
|
88
|
+
context.metadata.merge(data: result)
|
89
|
+
end
|
90
|
+
end
|
39
91
|
end
|
40
92
|
end
|
data/lib/i18n/js/version.rb
CHANGED
data/spec/js/extend.spec.js
CHANGED
@@ -38,4 +38,25 @@ describe("Extend", function () {
|
|
38
38
|
|
39
39
|
expect(I18n.extend(obj1,obj2)).toEqual(expected);
|
40
40
|
});
|
41
|
+
|
42
|
+
it("should merge deeply from obj1 with the same key of obj2", function() {
|
43
|
+
var obj1 = {
|
44
|
+
test1: {
|
45
|
+
test2: "abc"
|
46
|
+
}
|
47
|
+
}
|
48
|
+
, obj2 = {
|
49
|
+
test1: {
|
50
|
+
test3: "xyz"
|
51
|
+
}
|
52
|
+
}
|
53
|
+
, expected = {
|
54
|
+
test1: {
|
55
|
+
test2: "abc"
|
56
|
+
, test3: "xyz"
|
57
|
+
}
|
58
|
+
}
|
59
|
+
|
60
|
+
expect(I18n.extend(obj1, obj2)).toEqual(expected);
|
61
|
+
})
|
41
62
|
});
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: i18n-js
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.0.
|
4
|
+
version: 3.0.0.rc14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nando Vieira
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: i18n
|
@@ -208,7 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
208
208
|
version: 1.3.1
|
209
209
|
requirements: []
|
210
210
|
rubyforge_project:
|
211
|
-
rubygems_version: 2.6.
|
211
|
+
rubygems_version: 2.6.6
|
212
212
|
signing_key:
|
213
213
|
specification_version: 4
|
214
214
|
summary: It's a small library to provide the Rails I18n translations on the Javascript.
|