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

这里的技术是共享的

You are here

Laravel- 配置多语言环境 英文版

1、配置本地化语言

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


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


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



2、创建翻译文件

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


[php] view plain copy

<code></code>  

return [ 


    'username'=>'用户名',


    'password'=>'密码',


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


    'login'=>'登录', 


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


];



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

<div>

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

            <div>

                <input type="text" 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



--------------------- 

作者:_玖-幽 

来源:CSDN 

原文:https://blog.csdn.net/iong_l/article/details/69397586 

版权声明:本文为博主原创文章,转载请附上博文链接!


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


laravel5.5实现多语言环境

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

laravel5.5实现多语言环境

.env配置

APP_LOCALE=en(zh-CN)
  • 1

修改config/app.php

'locale' => env('APP_LOCALE', 'en'),
  • 1

在view/lang文件加下增加你想配置的语言zh-CN文件夹

以auth插件为例

在laravel中添加auth

php artisan make:auth
  • 1

mkdir view/lang/zh-CN
  • 1

添加文件 
auth.php

<?php

return [

    'failed' => '用户名/密码不匹配',
    'throttle' => '失败次数太多,请在:seconds秒后再尝试',
    'E-Mail Address' => 'E-Mail 地址',
    'Password' => '密码',
    'Remember Me' => '记住我',
    'Forgot Your Password' => '忘记密码',
    'Login' => '登录',
    'Register' => '注册',
    'Name' => '昵称',
    'Confirm Password' => '确认密码',
    'Captcha' => '验证码',
    'Reset Password' => '重置密码',
    'Send Password Reset Link' => '发送密码连接',
    'click to get captcha' => '点击图片重新获取验证码',

];
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

password.php

<?php

return [

    'password' => '密码长度至少包含6个字符并且两次输入密码要一致',
    'reset' => '密码已经被重置!',
    'sent' => '我们已经发送密码重置链接到您的邮箱',
    'token' => '密码重置令牌无效',
    'user' => "该邮箱对应的用户不存在!",

];
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

validation.php

<?php

return [

    'confirmed' => '两次:attribute输入不一致',
    'email' => '请输入正确的邮箱地址!',
    'unique' => '该:attribute已存在',
    'required' => ':attribute不能为空',
    'max' => [
        'string' => ':attribute长度不能超过:max个字符',
    ],
    'min' => [
        'string' => ':attribute长度至少包含:min个字符',
    ],

];
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

在blade模板中,通过trans函数进行替换即可

trans('auth.confirmed')
  • 1

通过URL动态实现本地化

route中添加

Route::get('/{locale}', function ($locale) {
    App::setLocale($locale);
    return view('welcome');
});
  • 1

  • 2

  • 3

  • 4

然后在resources/lang/en目录下新建welcome.php:

<?php

return [
    'message' => 'Welcome To Laravel Academy!'
];
  • 1

  • 2

  • 3

  • 4

  • 5

在resources/lang/zh-CN目录下新建welcome.php:

<?php

return [
    'message' => '欢迎访问Laravel学院!'
];
  • 1

  • 2

  • 3

  • 4

  • 5

最后修改resources/views/welcome.blade.php页面主体部分:

<div class="content">
    <div class="title">{{ trans('welcome.message') }}</div>
</div>
  • 1

  • 2

  • 3

在浏览器中访问http://fadmin.test/zh-CNhttp://fadmin.test/en可以查看效果

自定义封装trans函数

//没有定义翻译你会返回整个字符串
<?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;
    }
 }
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

参考

Laravel- 配置多语言环境 
使用 Laravel 5.1 内置的本地化功能轻松实现多语言支持

临湖股王8年追涨停铁律“1272”曝光,震惊众人。荣润投资 · 燨燚
目前手机流行的赚钱方式,临湖知道的人已经赚疯了!新洲贸易 · 燨燚
JimCarter
JimCarter

关注115篇文章

wcyd
wcyd

关注101篇文章

david大伟哥
david大伟哥

关注138篇文章

 换一批
别再拿死工资了,2018聪明的临湖人都在靠它赚外快磊玺投资 · 燨燚
27岁临湖妹子通过网络平台赚钱,爆赚成网红!!天傲 · 燨燚
临湖资讯:很多上班族不知道,每天用手机也能赚钱,月入30k很简单


来自  https://blog.csdn.net/yiluohan0307/article/details/80514844

普通分类: