1, "en" => 1); function load($language) { $datafile_fd = fopen("messages.$language", "r"); $messages = array(); while (!feof($datafile_fd) && ($line = fgets($datafile_fd, 4096))) { $ary = explode('=', $line, 2); if (count($ary) == 2) { $messages[$ary[0]] = trim($ary[1]); } } fclose($datafile_fd); return $messages; } function t($msg) { global $language; global $messages_language; global $messages_default; if (!$messages_language) { $messages_language = load($language); } if (!$messages_default) { $messages_default = load('en'); } if (isset($messages_language[$msg])) { $msg = $messages_language[$msg]; } else { error_log("ERROR " . $msg . " missing in " . $language); if (isset($messages_default[$msg])) { $msg = $messages_default[$msg]; } else { error_log("ERROR " . $msg . " missing in en"); $msg = "???$msg???"; } } for ($i = 0; $i < func_num_args() - 1; $i++){ $arg = func_get_arg($i+1); $msg = preg_replace('/\{' . $i . '}/', $arg, $msg); } return $msg; } $language = $_SESSION['language']; if (isset($_REQUEST['language']) && $supported_languages[$_REQUEST['language']]) { $language = $_REQUEST['language']; } if (!$language && $_SERVER['HTTP_ACCEPT_LANGUAGE']) { $accepted = explode( ",", $_SERVER['HTTP_ACCEPT_LANGUAGE']); for ($i = 0; $i < count($accepted); $i++) { $entry = explode(";", $accepted[$i]); $lang = $entry[0]; if ($supported_languages[$lang]) { $language = $lang; break; } } } if (!$language) { $language = 'en'; } $_SESSION['language'] = $language; ?>