1 |
4307
|
leinfelder
|
/*
|
2 |
|
|
License: LGPL as per: http://www.gnu.org/copyleft/lesser.html
|
3 |
|
|
|
4 |
|
|
$Id: LanguageUtils.js 3874 2008-02-27 11:03:22Z gjvoosten $
|
5 |
|
|
*/
|
6 |
|
|
|
7 |
|
|
// Supported languages
|
8 |
|
|
var supportedLanguages = new Object();
|
9 |
|
|
{
|
10 |
|
|
supportedLanguages["en"] = "English";
|
11 |
|
|
supportedLanguages["nl"] = "Nederlands";
|
12 |
|
|
supportedLanguages["fr"] = "Fran\u00E7ais";
|
13 |
|
|
supportedLanguages["it"] = "Italiano";
|
14 |
|
|
supportedLanguages["de"] = "Deutsch";
|
15 |
|
|
supportedLanguages["es"] = "Espa\u00F1ol";
|
16 |
|
|
// Also add as an example an unsupported language to show the fallback
|
17 |
|
|
supportedLanguages["nonesuch"] = "unsupported language";
|
18 |
|
|
}
|
19 |
|
|
var language = "en"; // Default to English
|
20 |
|
|
|
21 |
|
|
/**
|
22 |
|
|
* Set the language for a page by getting it from the page parameters
|
23 |
|
|
*/
|
24 |
|
|
function setLanguage()
|
25 |
|
|
{
|
26 |
|
|
var parms = getParameters();
|
27 |
|
|
if (parms["language"] && supportedLanguages[parms["language"]]) {
|
28 |
|
|
language = parms["language"];
|
29 |
|
|
}
|
30 |
|
|
}
|
31 |
|
|
|
32 |
|
|
/**
|
33 |
|
|
* Write out the HTML with hrefs for changing the language of the page
|
34 |
|
|
* @param flagsDirUrl the (relative) url of the directory containing the flag images
|
35 |
|
|
*/
|
36 |
|
|
function writeOutLanguages(flagsDirUrl)
|
37 |
|
|
{
|
38 |
|
|
for (var i in supportedLanguages) {
|
39 |
|
|
document.write(" ");
|
40 |
|
|
if (language != i) {
|
41 |
|
|
document.write('<a href="?language=' + i + '">');
|
42 |
|
|
}
|
43 |
|
|
document.write('<img src="' + flagsDirUrl + '/' + i +
|
44 |
|
|
'.png" title="' + supportedLanguages[i] + '"/>');
|
45 |
|
|
if (language != i) {
|
46 |
|
|
document.write('</a>');
|
47 |
|
|
}
|
48 |
|
|
}
|
49 |
|
|
}
|
50 |
|
|
|
51 |
|
|
/**
|
52 |
|
|
* Get the page parameters
|
53 |
|
|
* @return an object with the parameter names as fields and the parameter values
|
54 |
|
|
* as the corresponding values
|
55 |
|
|
*/
|
56 |
|
|
function getParameters()
|
57 |
|
|
{
|
58 |
|
|
var args = new Object();
|
59 |
|
|
var query = location.search.substring(1);
|
60 |
|
|
var pairs = query.split("&");
|
61 |
|
|
for (var i in pairs) {
|
62 |
|
|
var pos = pairs[i].indexOf('=');
|
63 |
|
|
if (pos == -1) continue;
|
64 |
|
|
var argname = pairs[i].substring(0, pos);
|
65 |
|
|
var value = pairs[i].substring(pos + 1);
|
66 |
|
|
args[argname] = unescape(value.replace(/\+/g, " "));
|
67 |
|
|
}
|
68 |
|
|
return args;
|
69 |
|
|
}
|