- 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:
Robert Gaggl 2003-12-12 12:44:01 +00:00
parent 73c4eb8a68
commit 3d10204c05

View file

@ -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;
}