Project

General

Profile

1
/*
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
}
(1-1/3)