summaryrefslogtreecommitdiffstats
path: root/lang/i18n.php
blob: 82da12a140b4d3ca05c8dfa8e71dffd21761b489 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php

class Dictionary{
	private static $messageArray;
	
	function build(){
		self::$messageArray = json_decode(file_get_contents("lang/" . LANG . "/messages.json"),true);
	}	

	public static function getArrayTemplate($template){
		$language = array('lang'=>LANG);
		return array_merge($language,json_decode(file_get_contents("lang/" . LANG . "/" . $template . ".json"),true));
	}

	public static function translate($string){
		$hardcoded = json_decode(file_get_contents("lang/" . LANG . "/messages-hardcoded.json"),true);
		return $hardcoded[$string];
	}

	public static function getMessages(){
		return self::$messageArray;
	}
	
}
	//Array containing the allowed languages for the website
	$langArray = array("de","en","pt");
	
	//Changes the language in case there is a request to
	if(isset($_GET['lang']))
	if(in_array($_GET['lang'],$langArray)){
		setcookie('lang',$_GET['lang'],time()+60*60*24*30*12);
		header('Location: ' . $_SERVER['HTTP_REFERER']);
	}
	
	//Default language
	$language = 'en';

	//Language from the browser
	$langBrowser = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

	//User language	
	if(isset($_COOKIE['lang']) && in_array($_COOKIE['lang'],$langArray)){
		$language = $_COOKIE['lang'];
	}else if(in_array($langBrowser,$langArray)){
		$language = $langBrowser;
	}
?>