summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Klehr <mklehr@gmx.net>2014-01-25 05:34:11 -0800
committerMarcel Klehr <mklehr@gmx.net>2014-01-25 05:34:11 -0800
commitb6f354a2de7ecb1810cce8164e09b5acba1d01d5 (patch)
tree336a00b608344683691045bcfabd456d501a9e12
parent728958e131e541f56764111bf8b3c7f7e87a9d59 (diff)
parent9c64b6e268f89ecca22bf6a135da1152daf77455 (diff)
downloadetherpad-lite-b6f354a2de7ecb1810cce8164e09b5acba1d01d5.zip
Merge pull request #2052 from ether/fix/l10n-fallbacks-related-langs
Try to find related languages as a fallback
-rw-r--r--src/static/js/html10n.js28
1 files changed, 24 insertions, 4 deletions
diff --git a/src/static/js/html10n.js b/src/static/js/html10n.js
index 856729b5..49a0a80d 100644
--- a/src/static/js/html10n.js
+++ b/src/static/js/html10n.js
@@ -191,9 +191,18 @@ window.html10n = (function(window, document, undefined) {
return
}
+ // dat alng ain't here, man!
if (!data[lang]) {
- cb(new Error('Couldn\'t find translations for '+lang))
- return
+ var msg = 'Couldn\'t find translations for '+lang
+ , l
+ if(~lang.indexOf('-')) lang = lang.split('-')[0] // then let's try related langs
+ for(l in data) {
+ if(lang != l && l.indexOf(lang) === 0 && data[l]) {
+ lang = l
+ break;
+ }
+ }
+ if(lang != l) return cb(new Error(msg))
}
if ('string' == typeof data[lang]) {
@@ -898,11 +907,22 @@ window.html10n = (function(window, document, undefined) {
var lang
langs.reverse()
- // loop through priority array...
+ // loop through the priority array...
for (var i=0, n=langs.length; i < n; i++) {
lang = langs[i]
- if(!lang || !(lang in that.loader.langs)) continue;
+ if(!lang) continue;
+ if(!(lang in that.loader.langs)) {// uh, we don't have this lang availbable..
+ // then check for related langs
+ if(~lang.indexOf('-')) lang = lang.split('-')[0];
+ for(var l in that.loader.langs) {
+ if(lang != l && l.indexOf(lang) === 0) {
+ lang = l
+ break;
+ }
+ }
+ if(lang != l) continue;
+ }
// ... and apply all strings of the current lang in the list
// to our build object