欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Laravel- 配置多语言环境 有大用

Laravel- 配置多语言环境

2017年04月06日 17:28:56 _玖-幽 阅读数:5165 标签: phplaravel多语言本地化语言 更多个人分类: ------Laravel

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/iong_l/article/details/69397586

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

1、配置本地化语言
Laravel 的本地化语言配置项位于config/app.php:


'locale' => 'zh', //当前语言

'fallback_locale' => 'en', //备用语言


2、创建翻译文件


翻译文件所在目录为resources/lang,在此创建 zh/auth.php文件


return [ 

    'username'=>'用户名',

    'password'=>'密码',

    'rememberme'=>'记住密码',

    'login'=>'登录', 

    'badpassword' => '用户名或密码错误.', 

];


3、在代码中实现 使用 trans()方法  实现本地化显示


  1. <div class="form-group">

  2.           <label class="col-lg-4 control-label">{{trans('auth.username')}}</label>

  3. <div class="col-lg-6">

  4.                <input type="text" class="form-control" name="name" value="{{old('name')}}" autofocus/>

  5.            </div>

  6.       </div>



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

创建app/Libraries/helpers.php文件,添加代码


  1. if(!function_exists('ts')){

  2. function ts($code,$lang='zh'){

  3. $lang= empty($lang)?'zh':$lang;

  4. $code= preg_replace('/[^0-9a-zA-z.-_ ]/', '', $code);

  5. $trans=trans($code,[],'',$lang);

  6. if(empty($trans)||$trans==$code){

  7. $trans= ucwords(preg_replace('/([0-9a-zA-z-_ ]*[.])*/', '', $code));

  8. }

  9. return $trans;

  10. }

  11. }




在根目录下composer.json文件中修改代码


  1. "autoload": {

  2. "classmap": [

  3. "database"

  4. ],

  5. "files": [

  6. "app/helpers.php",

  7. "app/Libraries/helpers.php"  //新添加

  8. ],

  9. "psr-4": {

  10. "App\\": "app/"

  11. }

  12. },



执行 composer dumpautoload


之后在项目、 模板中就可以使用 ts() 函数了


{{ts('auth.login')}}


5、有时候需要动态的切换语言,通过URL传递参数,动态实现本地化



  1. function setLocalLang(Request $request)

  2. $lang=$request->lang;

  3. App::setLocale($lang);

  4. }





参考教程:http://laravelacademy.org/tutorials/blog
GitHub:  https://github.com/CiaraLi/blogtest

来自  https://blog.csdn.net/iong_l/article/details/69397586

普通分类: