From 51b9025ca0ae8b002f4ac7b18ce2d576c57c0b0d Mon Sep 17 00:00:00 2001 From: lidongjie Date: Thu, 26 Oct 2017 11:25:47 +0800 Subject: [PATCH 1/2] fix fallback bug --- app/assets/javascripts/i18n.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/i18n.js b/app/assets/javascripts/i18n.js index 4e07094d..1ed0dfac 100644 --- a/app/assets/javascripts/i18n.js +++ b/app/assets/javascripts/i18n.js @@ -309,11 +309,11 @@ var firstFallback = null; var secondFallback = null; if (localeParts.length === 3) { - firstFallback = localeParts[0]; - secondFallback = [ + firstFallback = [ localeParts[0], localeParts[1] ].join("-"); + secondFallback = localeParts[0]; } else if (localeParts.length === 2) { firstFallback = localeParts[0]; From 6a6ae57cbb85ff4f3cbd317a7ce47a7d90965557 Mon Sep 17 00:00:00 2001 From: lidongjie Date: Thu, 26 Oct 2017 13:55:33 +0800 Subject: [PATCH 2/2] Add a test case for 3 part locale fallbacks --- spec/js/translate.spec.js | 4 ++++ spec/js/translations.js | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/spec/js/translate.spec.js b/spec/js/translate.spec.js index 93bf6deb..81f1a83a 100644 --- a/spec/js/translate.spec.js +++ b/spec/js/translate.spec.js @@ -96,6 +96,10 @@ describe("Translate", function(){ it("fallbacks to 1-part locale when 2-part missing requested translation", function(){ expect(I18n.t("dog")).toEqual("狗"); }); + + it("fallbacks to 2-part for the first time", function(){ + expect(I18n.t("dragon")).toEqual("龍"); + }); }); it("fallbacks using custom rules (function)", function(){ diff --git a/spec/js/translations.js b/spec/js/translations.js index 65636e10..7517ff17 100644 --- a/spec/js/translations.js +++ b/spec/js/translations.js @@ -131,11 +131,13 @@ var DEBUG = false; }; Translations["zh-Hant"] = { - cat: "貓" + cat: "貓" + , dragon: "龍" }; Translations["zh"] = { - dog: "狗" + dog: "狗" + , dragon: "龙" }; return Translations;