| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?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() {
- }
|