以下有不同的结果
echo '<pre>'.print_r(app()->getLocale(), true).'</pre>';
echo '<pre>'.print_r(app()->currentLocale(), true).'</pre>';
echo '<pre>'.print_r(LaravelLocalization::getCurrentLocaleRegional(), true).'</pre>';
echo '<pre>'.print_r(LaravelLocalization::getCurrentLocale(), true).'</pre>';
echo '<pre>'.print_r(LaravelLocalization::getCurrentLocaleName(), true).'</pre>';
echo '<pre>'.print_r(LaravelLocalization::getCurrentLocaleNative(), true).'</pre>';
访问我的http://example.test/en/admin/dashboard
在应用程序\Providers\AppServiceProvider.php中
public function boot(): void
{
$languages = (new \App\Repositories\LanguageRepository)->newModel()->active()->get();
view()->share('languages', $languages);
//put those lines here
echo ...
结果是
zh
zh
zh_TW
zh_汉特
中文(繁体)
繁体中文
在仪表板.blade.php中
{{ app()->getLocale() }}<BR>
{{ LaravelLocalization::getCurrentLocale() }}<BR>
{{ LaravelLocalization::getCurrentLocaleName() }}<BR>
{{ LaravelLocalization::getCurrentLocaleNative() }}<BR>
{{ LaravelLocalization::getCurrentLocaleRegional() }}<BR>
结果是
zh
zh_CN
英语
英语
zh_CN
这是同一页面。我找不到哪里出了问题。
laravellocalization.php
<?php
return [
'supportedLocales' => [
'en' => ['name' => 'English', 'script' => 'Latn', 'native' => 'English', 'regional' => 'en_GB'],
'zh_Hant' => ['name' => 'Chinese (Traditional)', 'script' => 'Hant', 'native' => '繁體中文', 'regional' => 'zh_TW'],
'zh_Hans' => ['name' => 'Chinese (Simplified)', 'script' => 'Hans', 'native' => '简体中文', 'regional' => 'zh_CN'],
],
'localesMapping' => [
'en' => 'en',
'zh_Hant' => 'zh-Hant',
'zh_Hans' => 'zh-Hans'
],
web.php
Route::group(
[
'prefix' => LaravelLocalization::setLocale(),
'middleware' => [ 'localeSessionRedirect', 'localizationRedirect', 'localeViewPath' ],
'as' => 'lang.'
], function()
{
Route::group([
'middleware' => ['auth:admin'],
], function ()
{
Route::get('', 'DashboardController@index')->name('dashboard');
为什么是 en,但是 zh_Hant ?
因为你太菜鸟了 不更新技术的原始人不应该伤害编程圈的人。