exvo_globalize 0.5.2 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
|
|
1
1
|
//
|
2
2
|
// exvo_globalize_i18n.js
|
3
|
-
// Version: 0.5.
|
3
|
+
// Version: 0.5.3
|
4
4
|
//
|
5
5
|
(function() {
|
6
6
|
|
@@ -86,12 +86,17 @@
|
|
86
86
|
opts = opts || {};
|
87
87
|
opts.defaultValue = opts.defaultValue || null;
|
88
88
|
key = I18n.keyToArray(opts.scope).concat(I18n.keyToArray(key));
|
89
|
-
|
89
|
+
|
90
|
+
var locale = I18n.currentLocale();
|
91
|
+
var value = this.lookup(locale, key, opts.defaultValue);
|
90
92
|
|
91
93
|
// fall back to I18n.defaultLocale for missing translations
|
92
|
-
if (value == null && I18n.locale != I18n.defaultLocale)
|
94
|
+
if (value == null && I18n.locale != I18n.defaultLocale) {
|
95
|
+
value = this.lookup(I18n.defaultLocale, key, opts.defaultLocale);
|
96
|
+
locale = I18n.defaultLocale;
|
97
|
+
}
|
93
98
|
|
94
|
-
if (typeof value != "string" && value) value = this.pluralize(value, opts.count);
|
99
|
+
if (typeof value != "string" && value) value = this.pluralize(locale, value, opts.count);
|
95
100
|
if (typeof value == "string") value = I18n.interpolate(value, opts);
|
96
101
|
if (value == null) value = this.missingTranslation(key)
|
97
102
|
return value;
|
@@ -365,9 +370,9 @@
|
|
365
370
|
};
|
366
371
|
|
367
372
|
// Pluralization function
|
368
|
-
I18n.pluralize = function(value, count) {
|
373
|
+
I18n.pluralize = function(locale, value, count) {
|
369
374
|
if (typeof count != 'number') return value;
|
370
|
-
return I18n.plurals[
|
375
|
+
return I18n.plurals[locale](value, count);
|
371
376
|
};
|
372
377
|
|
373
378
|
// Default pluralization rules
|
@@ -83,6 +83,13 @@ describe("Locale fallback", function() {
|
|
83
83
|
expect(I18n.t("title", {scope: "page"})).toEqual("Title") // missing translation
|
84
84
|
})
|
85
85
|
|
86
|
+
it("falls back to I18n.defaultLocale even for missing pluralization keys", function() {
|
87
|
+
I18n.locale = "pl"
|
88
|
+
expect(I18n.t("friend", {count: 1})).toEqual("1 Friend")
|
89
|
+
expect(I18n.t("friend", {count: 2})).toEqual("2 Friends")
|
90
|
+
expect(I18n.t("friend", {count: 5})).toEqual("5 Friends")
|
91
|
+
})
|
92
|
+
|
86
93
|
})
|
87
94
|
|
88
95
|
describe("Localization of numbers", function() {
|
@@ -396,6 +403,13 @@ describe("Pluralizations", function() {
|
|
396
403
|
expect(I18n.t("contact", {count: 22})).toEqual("22 Contacts")
|
397
404
|
})
|
398
405
|
|
406
|
+
it("correctly pluralizes another English phrase", function() {
|
407
|
+
I18n.locale = "en"
|
408
|
+
expect(I18n.t("friend", {count: 1})).toEqual("1 Friend")
|
409
|
+
expect(I18n.t("friend", {count: 2})).toEqual("2 Friends")
|
410
|
+
expect(I18n.t("friend", {count: 22})).toEqual("22 Friends")
|
411
|
+
})
|
412
|
+
|
399
413
|
it("correctly pluralizes the French phrase", function() {
|
400
414
|
I18n.locale = "fr"
|
401
415
|
expect(I18n.t("contact", {count: 0})).toEqual("0 contact")
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exvo_globalize
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 13
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 5
|
9
|
-
-
|
10
|
-
version: 0.5.
|
9
|
+
- 3
|
10
|
+
version: 0.5.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- "Pawe\xC5\x82 Go\xC5\x9Bcicki"
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-09-
|
18
|
+
date: 2011-09-22 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|