5 $supported_languages = array("fr" => 1, "en" => 1);
7 function load($language) {
8 $datafile_fd = fopen("messages.$language", "r");
10 while (!feof($datafile_fd) && ($line = fgets($datafile_fd, 4096))) {
11 $ary = explode('=', $line, 2);
12 if (count($ary) == 2) {
13 $messages[$ary[0]] = trim($ary[1]);
22 global $messages_language;
23 global $messages_default;
24 if (!$messages_language) {
25 $messages_language = load($language);
27 if (!$messages_default) {
28 $messages_default = load('en');
30 if (isset($messages_language[$msg])) {
31 $msg = $messages_language[$msg];
33 error_log("ERROR " . $msg . " missing in " . $language);
34 if (isset($messages_default[$msg])) {
35 $msg = $messages_default[$msg];
37 error_log("ERROR " . $msg . " missing in en");
41 for ($i = 0; $i < func_num_args() - 1; $i++){
42 $arg = func_get_arg($i+1);
43 $msg = preg_replace('/\{' . $i . '}/', $arg, $msg);
48 $language = $_SESSION['language'];
49 if (isset($_REQUEST['language']) && $supported_languages[$_REQUEST['language']]) {
50 $language = $_REQUEST['language'];
52 if (!$language && $_SERVER['HTTP_ACCEPT_LANGUAGE']) {
53 $accepted = explode( ",", $_SERVER['HTTP_ACCEPT_LANGUAGE']);
54 for ($i = 0; $i < count($accepted); $i++) {
55 $entry = explode(";", $accepted[$i]);
57 if ($supported_languages[$lang]) {
66 $_SESSION['language'] = $language;