diff options
author | Marcel Klehr <mklehr@gmx.net> | 2014-01-25 05:34:11 -0800 |
---|---|---|
committer | Marcel Klehr <mklehr@gmx.net> | 2014-01-25 05:34:11 -0800 |
commit | b6f354a2de7ecb1810cce8164e09b5acba1d01d5 (patch) | |
tree | 336a00b608344683691045bcfabd456d501a9e12 /src | |
parent | 728958e131e541f56764111bf8b3c7f7e87a9d59 (diff) | |
parent | 9c64b6e268f89ecca22bf6a135da1152daf77455 (diff) | |
download | etherpad-lite-b6f354a2de7ecb1810cce8164e09b5acba1d01d5.zip |
Merge pull request #2052 from ether/fix/l10n-fallbacks-related-langs
Try to find related languages as a fallback
Diffstat (limited to 'src')
-rw-r--r-- | src/static/js/html10n.js | 28 |
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 |