laravel5.5实现多语言环境

laravel5.5实现多语言环境

.env配置

APP_LOCALE=en(zh-CN)

修改config/app.php

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

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

以auth插件为例

在laravel中添加auth

php artisan make:auth
mkdir view/lang/zh-CN

添加文件
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' => '点击图片重新获取验证码',

];

password.php

<?php

return [

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

];

validation.php

<?php

return [

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

];

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

trans('auth.confirmed')

通过URL动态实现本地化

route中添加

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

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

<?php

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

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

<?php

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

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

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

在浏览器中访问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;
    }
 }

参考

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yiluohan0307

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值