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