Laravel- 配置多语言环境

来源:互联网 发布:淘宝购物卡哪里买 编辑:程序博客网 时间:2024/06/06 01:55

--文章仅供个人学习参考,如有不恰当的地方,希望前辈们指教。--

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>


4、如没有定义翻译你会返回整个字符串,可以封装自己封装的trans函数

创建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


2 0
原创粉丝点击