Skip to content
Snippets Groups Projects
Commit f57c38df authored by Thomas Müller's avatar Thomas Müller
Browse files

Merge pull request #6431 from owncloud/core-pluraltranslationsfix

Added plural translation fallback
parents 5f4b32c3 d8d11e39
Branches
No related tags found
No related merge requests found
...@@ -48,8 +48,8 @@ function initL10N(app) { ...@@ -48,8 +48,8 @@ function initL10N(app) {
t.cache[app] = []; t.cache[app] = [];
} }
} }
if (typeof t.plural_function == 'undefined') { if (typeof t.plural_function[app] == 'undefined') {
t.plural_function = function (n) { t.plural_function[app] = function (n) {
var p = (n != 1) ? 1 : 0; var p = (n != 1) ? 1 : 0;
return { 'nplural' : 2, 'plural' : p }; return { 'nplural' : 2, 'plural' : p };
}; };
...@@ -74,7 +74,7 @@ function initL10N(app) { ...@@ -74,7 +74,7 @@ function initL10N(app) {
Gettext._locale_data[domain].head.plural_func = eval("("+code+")"); Gettext._locale_data[domain].head.plural_func = eval("("+code+")");
*/ */
var code = 'var plural; var nplurals; '+pf+' return { "nplural" : nplurals, "plural" : (plural === true ? 1 : plural ? plural : 0) };'; var code = 'var plural; var nplurals; '+pf+' return { "nplural" : nplurals, "plural" : (plural === true ? 1 : plural ? plural : 0) };';
t.plural_function = new Function("n", code); t.plural_function[app] = new Function("n", code);
} else { } else {
console.log("Syntax error in language file. Plural-Forms header is invalid ["+t.plural_forms+"]"); console.log("Syntax error in language file. Plural-Forms header is invalid ["+t.plural_forms+"]");
} }
...@@ -110,6 +110,10 @@ function t(app, text, vars, count){ ...@@ -110,6 +110,10 @@ function t(app, text, vars, count){
} }
} }
t.cache = {}; t.cache = {};
// different apps might or might not redefine the nplurals function correctly
// this is to make sure that a "broken" app doesn't mess up with the
// other app's plural function
t.plural_function = {};
/** /**
* translate a string * translate a string
...@@ -126,7 +130,7 @@ function n(app, text_singular, text_plural, count, vars) { ...@@ -126,7 +130,7 @@ function n(app, text_singular, text_plural, count, vars) {
if( typeof( t.cache[app][identifier] ) !== 'undefined' ){ if( typeof( t.cache[app][identifier] ) !== 'undefined' ){
var translation = t.cache[app][identifier]; var translation = t.cache[app][identifier];
if ($.isArray(translation)) { if ($.isArray(translation)) {
var plural = t.plural_function(count); var plural = t.plural_function[app](count);
return t(app, translation[plural.plural], vars, count); return t(app, translation[plural.plural], vars, count);
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment