Partly integrate plural translations into js
This commit is contained in:
parent
560839195e
commit
4e214883d6
|
@ -1,6 +1,6 @@
|
||||||
/**
|
/**
|
||||||
* Disable console output unless DEBUG mode is enabled.
|
* Disable console output unless DEBUG mode is enabled.
|
||||||
* Add
|
* Add
|
||||||
* define('DEBUG', true);
|
* define('DEBUG', true);
|
||||||
* To the end of config/config.php to enable debug mode.
|
* To the end of config/config.php to enable debug mode.
|
||||||
* The undefined checks fix the broken ie8 console
|
* The undefined checks fix the broken ie8 console
|
||||||
|
@ -28,9 +28,11 @@ if (oc_debug !== true || typeof console === "undefined" || typeof console.log ==
|
||||||
* translate a string
|
* translate a string
|
||||||
* @param app the id of the app for which to translate the string
|
* @param app the id of the app for which to translate the string
|
||||||
* @param text the string to translate
|
* @param text the string to translate
|
||||||
|
* @param vars (optional) FIXME
|
||||||
|
* @param count (optional) number to replace %n with
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function t(app,text, vars){
|
function t(app, text, vars, count){
|
||||||
if( !( t.cache[app] )){
|
if( !( t.cache[app] )){
|
||||||
$.ajax(OC.filePath('core','ajax','translations.php'),{
|
$.ajax(OC.filePath('core','ajax','translations.php'),{
|
||||||
async:false,//todo a proper sollution for this without sync ajax calls
|
async:false,//todo a proper sollution for this without sync ajax calls
|
||||||
|
@ -46,7 +48,8 @@ function t(app,text, vars){
|
||||||
t.cache[app] = [];
|
t.cache[app] = [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var _build = function (text, vars) {
|
var _build = function (text, vars, count) {
|
||||||
|
// FIXME: replace %n with content of count
|
||||||
return text.replace(/{([^{}]*)}/g,
|
return text.replace(/{([^{}]*)}/g,
|
||||||
function (a, b) {
|
function (a, b) {
|
||||||
var r = vars[b];
|
var r = vars[b];
|
||||||
|
@ -54,30 +57,44 @@ function t(app,text, vars){
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
var translation = text;
|
||||||
if( typeof( t.cache[app][text] ) !== 'undefined' ){
|
if( typeof( t.cache[app][text] ) !== 'undefined' ){
|
||||||
if(typeof vars === 'object') {
|
translation = t.cache[app][text];
|
||||||
return _build(t.cache[app][text], vars);
|
|
||||||
} else {
|
|
||||||
return t.cache[app][text];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else{
|
|
||||||
if(typeof vars === 'object') {
|
if(typeof vars === 'object' || typeof count !== 'undefined' ) {
|
||||||
return _build(text, vars);
|
return _build(translation, vars, count);
|
||||||
} else {
|
} else {
|
||||||
return text;
|
return translation;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
t.cache={};
|
t.cache={};
|
||||||
|
|
||||||
/*
|
/**
|
||||||
|
* translate a string
|
||||||
|
* @param app the id of the app for which to translate the string
|
||||||
|
* @param text_singular the string to translate for exactly one object
|
||||||
|
* @param text_plural the string to translate for n objects
|
||||||
|
* @param count number to determine whether to use singular or plural
|
||||||
|
* @param vars (optional) FIXME
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
function tp(app, text_singular, text_plural, count, vars){
|
||||||
|
if(count==1){
|
||||||
|
return t(app, text_singular, vars, count);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return t(app, text_plural, vars, count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
* Sanitizes a HTML string
|
* Sanitizes a HTML string
|
||||||
* @param string
|
* @param s string
|
||||||
* @return Sanitized string
|
* @return Sanitized string
|
||||||
*/
|
*/
|
||||||
function escapeHTML(s) {
|
function escapeHTML(s) {
|
||||||
return s.toString().split('&').join('&').split('<').join('<').split('"').join('"');
|
return s.toString().split('&').join('&').split('<').join('<').split('"').join('"');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -741,7 +758,7 @@ OC.get=function(name) {
|
||||||
var namespaces = name.split(".");
|
var namespaces = name.split(".");
|
||||||
var tail = namespaces.pop();
|
var tail = namespaces.pop();
|
||||||
var context=window;
|
var context=window;
|
||||||
|
|
||||||
for(var i = 0; i < namespaces.length; i++) {
|
for(var i = 0; i < namespaces.length; i++) {
|
||||||
context = context[namespaces[i]];
|
context = context[namespaces[i]];
|
||||||
if(!context){
|
if(!context){
|
||||||
|
@ -760,7 +777,7 @@ OC.set=function(name, value) {
|
||||||
var namespaces = name.split(".");
|
var namespaces = name.split(".");
|
||||||
var tail = namespaces.pop();
|
var tail = namespaces.pop();
|
||||||
var context=window;
|
var context=window;
|
||||||
|
|
||||||
for(var i = 0; i < namespaces.length; i++) {
|
for(var i = 0; i < namespaces.length; i++) {
|
||||||
if(!context[namespaces[i]]){
|
if(!context[namespaces[i]]){
|
||||||
context[namespaces[i]]={};
|
context[namespaces[i]]={};
|
||||||
|
|
Loading…
Reference in New Issue