forked from luolongfei/freenom
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLang.php
60 lines (51 loc) · 1.37 KB
/
Lang.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
<?php
/**
* 语言包加载
*
* @author mybsdc <[email protected]>
* @date 2020/1/16
* @time 16:30
*/
namespace Luolongfei\Libs;
class Lang extends Base
{
/**
* @var array
*/
public $lang;
public function init()
{
// 读取语言包,语言包位于 resources/lang/ 目录下
$this->lang = require sprintf('%s/lang/%s.php', RESOURCES_PATH, strtolower(env('CUSTOM_LANGUAGE', 'zh')));
}
/**
* @param string $key
*
* @return array|mixed|null
*/
public function get($key = '')
{
$lang = $this->lang;
if (strlen($key)) {
if (strpos($key, '.')) {
$keys = explode('.', $key);
$val = $lang;
foreach ($keys as $k) {
if (!isset($val[$k])) {
return null; // 任一下标不存在就返回null
}
$val = $val[$k];
}
return $val;
} else {
if (isset($lang[$key])) {
return $lang[$key];
} else if (isset($lang['messages'][$key])) { // 如果没有在根节点找到语言数据,则尝试从 messages 下标继续找寻
return $lang['messages'][$key];
}
return null;
}
}
return $lang;
}
}