首页 文章

如何在laravel 5.7中切换语言

提问于
浏览
1

我是这个论坛的新手,这是我的第一个问题 . 我正在开发一个laravel application.so该应用程序默认语言是 English . 我想将此更改为 Chinese .

我的要求是主要语言是 Chinese ,其他语言是 English . 我的语言选择工作正常,但是当我将app "local"更改为中文但它已经改变了 . 我尝试了清除缓存并重新检查它同样的事情 . 不要改变语言 . 我已经为中文创建了两个语言数组"en" for English "ch" .

config/app.php

'locale' => 'en',  

'fallback_locale' => 'ch',

LanguageMiddleare class

public function handle($request, Closure $next)
{

    if(Session::has('locale')){
        app()->setLocale(Session::get('locale'));
    }

    return $next($request);
}

web.php (route url)

Route::group(['middleware' => 'language'],function(){
    Route::get('/', function () {
        return view('welcome');
    });
});

谢谢 .

2 回答

  • 0

    试试这个

    您可以使用App facade上的 setLocale 方法在运行时更改活动语言

    App::setLocale($locale);     //by facade.
    app()->setLocate($locate);   ///by helper
    

    您可以使用 getLocaleisLocale 方法确定当前区域设置或检查区域设置是否为给定值

    $locale = App::getLocale();   //get current language
    
    if (App::isLocale('en')) {  //if current language is english then true else false.
        //
    }
    

    您也可以配置“后备语言”,当活动语言不包含给定的翻译字符串时将使用该语言

    'fallback_locale' => 'en',
    

    有关更多信息,请阅读此articlesee laravel官方文档

  • 0

    某些软件包可能附带自己的语言文件 . 您可以通过将文件放在 resources/lang/vendor/{package}/{locale} 目录中来覆盖它们,而不是更改包的核心文件来调整这些行 .

    https://laravel.com/docs/5.7/localization

    我认为这个包可以帮助你切换语言

    https://github.com/akaunting/language

相关问题