如何获取区域设置(语言)的名称,不仅仅是区域设置字符串,而是LARAVEL中该语言的名称?

如何获取区域设置(语言)的名称,不仅仅是区域设置字符串,而是LARAVEL中该语言的名称?,laravel,laravel-5,laravel-4,laravel-5.2,multilingual,Laravel,Laravel 5,Laravel 4,Laravel 5.2,Multilingual,如何获取区域设置(语言)的名称,不仅仅是区域设置字符串,而是LARAVEL中该语言的名称 {{ app()->getLocale() }} 拉威尔没有这些信息。您需要通过创建带有区域设置及其语言名称的表或配置来手动添加它。我通过使用Laravel本地化向翻译文件添加条目来解决这个问题 在AppServiceProvider@boot: $language = Settings::get('language'); // Fetch saved language preference $l

如何获取区域设置(语言)的名称,不仅仅是区域设置字符串,而是LARAVEL中该语言的名称

{{ app()->getLocale() }}

拉威尔没有这些信息。您需要通过创建带有区域设置及其语言名称的表或配置来手动添加它。

我通过使用Laravel本地化向翻译文件添加条目来解决这个问题

AppServiceProvider@boot

$language = Settings::get('language'); // Fetch saved language preference
$language = ($language === null) ? config('app.locale','ENG') : $language->value;

App::setLocale($language);

$languages = Cache::rememberForever('languages',
    function () {

        $walkable = File::directories(App()->basePath() . '/resources/lang');
        $output = [];

        array_walk($walkable,
            function($value) use (&$output) {

                $parts = explode('/', $value);
                $key = end( $parts );

                $require = $value . '/language.php';

                if (file_exists($require)) {
                    $output[$key] = require($require);
                }

            }
        );

    return $output;
});

config(['app.languages' => $languages]); 
然后,我在dir
resources/lang/LOCALE\u ISO_3(ENG/SPA/ITA…)/language.php中为每种语言创建了一个条目

<?php // Spanish (SPA)

return [
    'default' => 'Spanish',
    'locale' => 'Español'
];
结果:

array:3 [▼
  "ENG" => array:2 [▼
    "default" => "English"
    "locale" => "English"
  ]
  "ITA" => array:2 [▼
    "default" => "Italian"
    "locale" => "Italiano"
  ]
  "SPA" => array:2 [▼
    "default" => "Spanish"
    "locale" => "Español"
  ]
]
要获取当前活动语言,请执行以下操作:

dd(trans('language'));
给你:

array:2 [▼
  "default" => "English"
  "locale" => "English"
]
您可以使用PHP来实现这一点。第一个参数是区域设置,第二个参数是要输出的语言


这是评论,不是回答
array:2 [▼
  "default" => "English"
  "locale" => "English"
]