3 $lang_translation = array(# If you comment lang here, it won
't be displayed.
7 # "it_IT" => "Italiano",
8 # "de_DE" => "Deutsch",
9 # "pt_BR" => "Portuguese",
13 global $arr_lang_translation;
14 $arr_lang_translation = $lang_translation; // not pretty but I don't want side effect right now
16 function update_locale($langpath) {
17 global $arr_lang_translation;
19 $file = file(
"/etc/locale.gen", FILE_SKIP_EMPTY_LINES);
20 if (!is_array($file)) {
23 foreach ($file as $v) {
24 if ((preg_match(
"/^([a-z][a-z]_[A-Z][A-Z])/", trim($v), $mat) && file_exists($langpath .
'/' . $mat[1]))) {
25 if (!array_key_exists($mat[1], $arr_lang_translation)) {
28 $locales[$mat[1]] = $mat[1];
31 if (!count($locales)) {
32 $locales = array(
"en_US" =>
"en_US");
41 }
elseif (isset($_COOKIE[
'lang'])) {
42 $lang = $_COOKIE[
'lang'];
48 $locales = update_locale($langpath);
51 if (!isset($_SERVER[
"HTTP_ACCEPT_LANGUAGE"])) {
52 $_SERVER[
"HTTP_ACCEPT_LANGUAGE"] =
"en_US";
55 if (!(isset($lang))) {
56 $lang = strtolower(substr(trim($_SERVER[
"HTTP_ACCEPT_LANGUAGE"]), 0, 5));
60 if (!isset($locales[$lang])) {
62 $ll = substr($lang, 0, 2);
63 foreach ($locales as $l) {
64 if (substr($l, 0, 2) == $ll) {
71 if (!isset($locales[$lang])) {
72 list($lang) = each($locales);
74 if (isset($setlang) && isset($lang)) {
75 setcookie(
"lang", $lang);
84 putenv(
"LC_MESSAGES=" . $lang);
85 putenv(
"LANG=" . $lang);
86 putenv(
"LANGUAGE=" . $lang);
88 setlocale(LC_ALL, $lang);
89 textdomain(
"alternc");
92 if (_($empty) && preg_match(
"#charset=([A-Za-z0-9\.-]*)#", _($empty), $mat)) {
95 if (!isset($charset) || !$charset) {
98 bind_textdomain_codeset(
"alternc",
"$charset");
if(empty($site_name)) elseif($piwik->site_add( $site_name, $site_urls))