forked from Code4SierraLeone/MembaO
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclass_language.php
97 lines (86 loc) · 2.23 KB
/
class_language.php
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
/**
* Language
*
* @package Membao
* @author Alan Kawamara
* @copyright 2017
*/
if (!defined("_VALID_PHP"))
die('Direct access to this location is not allowed.');
final class Lang
{
const langdir = "lang/";
public static $language;
public static $word = array();
public static $lang;
/**
* Lang::__construct()
*
* @return
*/
public function __construct()
{
self::get();
}
/**
* Lang::get()
*
* @return
*/
private static function get()
{
if (isset($_COOKIE['LANG_M'])) {
$sel_lang = sanitize($_COOKIE['LANG_M'], 2);
$vlang = self::fetchLanguage($sel_lang);
if(in_array($sel_lang, $vlang)) {
Core::$language = $sel_lang;
} else {
Core::$language = Registry::get("Core")->lang;
}
if (file_exists(BASEPATH . self::langdir . Core::$language . "/lang.xml")) {
self::$word = self::set(BASEPATH . self::langdir . Core::$language . "/lang.xml", Core::$language);
} else {
self::$word = self::set(BASEPATH . self::langdir . Registry::get("Core")->lang . "/lang.xml", Registry::get("Core")->lang);
}
} else {
Core::$language = Registry::get("Core")->lang;
self::$word = self::set(BASEPATH . self::langdir . Registry::get("Core")->lang. "/lang.xml", Registry::get("Core")->lang);
}
self::$lang = "_" . Core::$language;
return self::$word;
}
/**
* Lang::set()
*
* @return
*/
private static function set($lang)
{
$xmlel = simplexml_load_file($lang);
$data = new stdClass();
foreach ($xmlel as $pkey) {
$key = (string) $pkey['data'];
$data->$key = (string) str_replace(array('\'', '"'), array("'", """), $pkey);
}
return $data;
}
/**
* Lang::fetchLanguage()
*
* @return
*/
public static function fetchLanguage()
{
$lang_array = '';
$directory = BASEPATH . self::langdir;
if (!is_dir($directory)) {
return false;
} else {
$lang_array = glob($directory . "*", GLOB_ONLYDIR);
$lang_array = str_replace($directory, "", $lang_array);
}
return $lang_array;
}
}
?>