You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.2 KiB
86 lines
2.2 KiB
1 year ago
|
<?php
|
||
|
// Functions for internationalization
|
||
|
// I18N support information here
|
||
|
|
||
|
putenv("LANGUAGE=" . detect_user_language());
|
||
|
setlocale(LC_ALL, "C.UTF-8");
|
||
|
|
||
|
$domain = "hestiacp";
|
||
|
$localedir = "/usr/local/hestia/web/locale";
|
||
|
bindtextdomain($domain, $localedir);
|
||
|
textdomain($domain);
|
||
|
|
||
|
/**
|
||
|
* Detects user language from Accept-Language HTTP header.
|
||
|
* @param string Fallback language (default: 'en')
|
||
|
* @return string Language code (such as 'en' and 'ja')
|
||
|
*/
|
||
|
function detect_user_language() {
|
||
|
if (!empty($_SESSION["language"])) {
|
||
|
return $_SESSION["language"];
|
||
|
} elseif (!empty($_SESSION["LANGUAGE"])) {
|
||
|
return $_SESSION["LANGUAGE"];
|
||
|
} else {
|
||
|
return "en";
|
||
|
}
|
||
|
}
|
||
|
/**
|
||
|
* Translate ISO2 to "Language"
|
||
|
* nl = Dutch, de = German
|
||
|
* @param string iso2 code
|
||
|
* @return string Language
|
||
|
*/
|
||
|
function translate_json($string) {
|
||
|
$json = file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/locale/languages.json");
|
||
|
$json_a = json_decode($json, true);
|
||
|
return $json_a[$string][0] . " (" . $json_a[$string . "_locale"][0] . ")";
|
||
|
}
|
||
|
/**
|
||
|
* Support translation strings that contains html
|
||
|
*/
|
||
|
function htmlify_trans($string, $closingTag) {
|
||
|
$arguments = func_get_args();
|
||
|
return preg_replace_callback(
|
||
|
"/{(.*?)}/", // Ungreedy (*?)
|
||
|
function ($matches) use ($arguments, $closingTag) {
|
||
|
static $i = 1;
|
||
|
$i++;
|
||
|
return $arguments[$i] . $matches[1] . $closingTag;
|
||
|
},
|
||
|
$string,
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function get_email_template($file, $language) {
|
||
|
if (
|
||
|
file_exists(
|
||
|
$_SERVER["HESTIA"] . "/data/templates/email/" . $language . "/" . $file . ".html",
|
||
|
)
|
||
|
) {
|
||
|
return file_get_contents(
|
||
|
$_SERVER["HESTIA"] . "/data/templates/email/" . $language . "/" . $file . ".html",
|
||
|
);
|
||
|
}
|
||
|
if (file_exists($_SERVER["HESTIA"] . "/data/templates/email/" . $file . ".html")) {
|
||
|
return file_get_contents($_SERVER["HESTIA"] . "/data/templates/email/" . $file . ".html");
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
function translate_email($string, $replace) {
|
||
|
$array1 = $array2 = [];
|
||
|
foreach ($replace as $key => $value) {
|
||
|
$array1[] = "{{" . $key . "}}";
|
||
|
$array2[] = $value;
|
||
|
}
|
||
|
return str_replace($array1, $array2, $string);
|
||
|
}
|
||
|
/**
|
||
|
* Detects user language .
|
||
|
* @param string Fallback language (default: 'en')
|
||
|
* @return string Language code (such as 'en' and 'ja')
|
||
|
*/
|
||
|
|
||
|
function detect_login_language() {
|
||
|
}
|