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
			| 
											2 years 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() { | ||
|  | } |