- added method getLanguages() that returns the languages to use for retrieving a message as array
- modified getMessage() to use getLanguage()
This commit is contained in:
parent
73c4eb8a68
commit
3d10204c05
1 changed files with 34 additions and 22 deletions
|
|
@ -281,30 +281,25 @@ function DenyException(name) {
|
||||||
* of the appropriate language
|
* of the appropriate language
|
||||||
*/
|
*/
|
||||||
function getMessage(property, value) {
|
function getMessage(property, value) {
|
||||||
// create array containing languages to search for message
|
var languages = getLanguages();
|
||||||
var languages = new Array();
|
|
||||||
if (res.handlers.site)
|
|
||||||
languages[0] = res.handlers.site.getLocale().getLanguage();
|
|
||||||
languages[languages.length] = (root.getLocale()).getLanguage();
|
|
||||||
// the last language to search for messages is always english
|
|
||||||
if ("en" != languages[languages.length-1])
|
|
||||||
languages[languages.length] = "en";
|
|
||||||
// loop over languages and try to find the message
|
// loop over languages and try to find the message
|
||||||
for (var i in languages) {
|
var lang;
|
||||||
var lang = app.data[languages[i]];
|
var source;
|
||||||
if (lang && lang.getProperty(property)) {
|
for (var i=0;i<languages.length;i++) {
|
||||||
var source = lang.getProperty(property);
|
if (!(lang = app.data[languages[i]]))
|
||||||
|
continue;
|
||||||
|
if (!(source = lang.getProperty(property)))
|
||||||
|
continue;
|
||||||
var param = new Object();
|
var param = new Object();
|
||||||
// check if value passed is a string or an array
|
// check if value passed is a string or an array
|
||||||
if (value) {
|
if (value) {
|
||||||
if (value instanceof Array) {
|
if (value instanceof Array) {
|
||||||
for (var i in value)
|
for (var j=0;j<value.length;j++)
|
||||||
param["value" + (parseInt(i, 10)+1)] = value[i];
|
param["value" + (j+1)] = value[j];
|
||||||
} else
|
} else
|
||||||
param.value1 = value;
|
param.value1 = value;
|
||||||
}
|
}
|
||||||
return (renderSkinAsString(createSkin(source), param));
|
return renderSkinAsString(createSkin(source), param);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// still no message found, so return
|
// still no message found, so return
|
||||||
return "[couldn't find message!]";
|
return "[couldn't find message!]";
|
||||||
|
|
@ -629,3 +624,20 @@ function flushMailQueue() {
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* construct an array containing languages keys
|
||||||
|
* used for retrieving a localized message
|
||||||
|
*/
|
||||||
|
function getLanguages() {
|
||||||
|
var languages = new Array("en");
|
||||||
|
var syslang;
|
||||||
|
if ((syslang = root.getLocale().getLanguage()) != "en")
|
||||||
|
languages.unshift(syslang);
|
||||||
|
if (res.handlers.site) {
|
||||||
|
var lang = res.handlers.site.getLocale().getLanguage();
|
||||||
|
if (lang != "en" && lang != syslang)
|
||||||
|
languages.unshift(lang);
|
||||||
|
}
|
||||||
|
return languages;
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue