--文章僅供個人學習參考,如有不恰當的地方,希望前輩們指教。--
1、配置本地化語言
Laravel 的本地化語言配置項位於config/app.php:
'locale' => 'zh', //當前語言
'fallback_locale' => 'en', //備用語言
2、創建翻譯文件
翻譯文件所在目錄爲resources/lang,在此創建 zh/auth.php文件
return [
'username'=>'用戶名',
'password'=>'密碼',
'rememberme'=>'記住密碼',
'login'=>'登錄',
'badpassword' => '用戶名或密碼錯誤.',
];
3、在代碼中實現 使用 trans()方法 實現本地化顯示
<div class="form-group">
<label class="col-lg-4 control-label">{{trans('auth.username')}}</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="name" value="{{old('name')}}" autofocus/>
</div>
</div>
創建app/Libraries/helpers.php文件,添加代碼
if(!function_exists('ts')){
function ts($code,$lang='zh'){
$lang= empty($lang)?'zh':$lang;
$code= preg_replace('/[^0-9a-zA-z.-_ ]/', '', $code);
$trans=trans($code,[],'',$lang);
if(empty($trans)||$trans==$code){
$trans= ucwords(preg_replace('/([0-9a-zA-z-_ ]*[.])*/', '', $code));
}
return $trans;
}
}
在根目錄下composer.json文件中修改代碼
"autoload": {
"classmap": [
"database"
],
"files": [
"app/helpers.php",
"app/Libraries/helpers.php" //新添加
],
"psr-4": {
"App\\": "app/"
}
},
執行 composer dumpautoload
之後在項目、 模板中就可以使用 ts() 函數了
{{ts('auth.login')}}
5、有時候需要動態的切換語言,通過URL傳遞參數,動態實現本地化
function setLocalLang(Request $request) {
$lang=$request->lang;
App::setLocale($lang);
}
參考教程:http://laravelacademy.org/tutorials/blog
GitHub: https://github.com/CiaraLi/blogtest