欢迎光临
我们一直在努力

Laravel- 配置多语言环境

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);  
}

 

赞(0)
版权归原作者所有,如有侵权请告知。达维营-前端网 » Laravel- 配置多语言环境

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址