Lang.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. /**
  3. * 语言包加载
  4. *
  5. * @author mybsdc <[email protected]>
  6. * @date 2020/1/16
  7. * @time 16:30
  8. */
  9. namespace Luolongfei\Libs;
  10. class Lang extends Base
  11. {
  12. /**
  13. * @var array
  14. */
  15. public $lang;
  16. public function init()
  17. {
  18. // 读取语言包,语言包位于 resources/lang/ 目录下
  19. $this->lang = require sprintf('%s/lang/%s.php', RESOURCES_PATH, strtolower(env('CUSTOM_LANGUAGE', 'zh')));
  20. }
  21. /**
  22. * @param string $key
  23. *
  24. * @return array|mixed|null
  25. */
  26. public function get($key = '')
  27. {
  28. $lang = $this->lang;
  29. if (strlen($key)) {
  30. if (strpos($key, '.')) {
  31. $keys = explode('.', $key);
  32. $val = $lang;
  33. foreach ($keys as $k) {
  34. if (!isset($val[$k])) {
  35. return null; // 任一下标不存在就返回null
  36. }
  37. $val = $val[$k];
  38. }
  39. return $val;
  40. } else {
  41. if (isset($lang[$key])) {
  42. return $lang[$key];
  43. } else if (isset($lang['messages'][$key])) { // 如果没有在根节点找到语言数据,则尝试从 messages 下标继续找寻
  44. return $lang['messages'][$key];
  45. }
  46. return null;
  47. }
  48. }
  49. return $lang;
  50. }
  51. }