diff options
Diffstat (limited to 'endpoints')
-rw-r--r-- | endpoints/language.php | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/endpoints/language.php b/endpoints/language.php index a8eb1c6..9584295 100644 --- a/endpoints/language.php +++ b/endpoints/language.php @@ -3,7 +3,7 @@ * Injects language translations into phpVirtualBox as a JavaScript object and
* provides interface translation logic
* Copyright (C) 2010-2015 Ian Moore (imoore76 at yahoo dot com)
- *
+ *
* $Id: language.php 595 2015-04-17 09:50:36Z imoore76 $
*/
@@ -40,52 +40,58 @@ echo('var __vboxLangData = ' . json_encode(__vbox_language::$langdata) .";\n\nva // Failsafe wrapper
function trans(s,c,n,h) {
+ if(c && c.constructor === Array) {
+ o = c.shift();
+ n = c.shift();
+ h = c.shift();
+ c = o;
+ }
if(!c) c = 'VBoxGlobal';
var r = transreal(s,c,n,h);
-
- if(typeof r != 'string') {
+
+ if(typeof r != 'string') {
return s;
}
-
+
return r;
}
function transreal(w,context,number,comment) {
-
+
try {
-
+
if(__vboxLangData['contexts'][context]['messages'][w]['translation']) {
-
+
if(__vboxLangData['contexts'][context]['messages'][w]['translation']['numerusform']) {
-
+
var t = __vboxLangData['contexts'][context]['messages'][w]['translation']['numerusform'];
-
+
if(!number) number = 1;
-
+
if(number <= 1 && t[0]) return t[0];
if(number > 1 && t[1]) return t[1];
if(t[0]) return t[0];
return t[1];
}
return __vboxLangData['contexts'][context]['messages'][w]['translation'];
-
+
} else if(__vboxLangData['contexts'][context]['messages'][w][0]) {
-
+
if(comment) {
for(var i in __vboxLangData['contexts'][context]['messages'][w]) {
if(__vboxLangData['contexts'][context]['messages'][w][i]['comment'] == comment) return __vboxLangData['contexts'][context]['messages'][w][i]['translation'];
}
}
return __vboxLangData['contexts'][context]['messages'][w][0]['translation'];
-
+
} else {
return w;
}
-
+
} catch(err) {
// alert(w + ' - ' + context + ': ' + err);
return w;
- }
+ }
}
|