本教程分几块来学,整合多家技术方法,很有参考价值
一、laravel框架安装多国语言包
laravel的一些提示信息都是默认英文,想更改为中文需要下载语言包,执行以下命令
composer require caouecs/laravel-lang:~3.0
执行完后将vendor中的caouecs中的src中的zh-CN文件夹放到views的lang文件夹中
然后还要更改配置项,将config里面的app.php里的locale改为zh-CN
'locale' => 'zh-CN',
这样就可以实现中文的信息了!
ps:如果你用的laravel自带的登录注册,模板上显示的还是英文,需要在lang文件夹下建立一个zh-CN.json文件,文件内容为
{
"Login": "登录",
"Logout":"退出",
"E-Mail Address": "邮箱",
"Register":"注册",
"Password":"密码",
"Confirm Password":"确认密码",
"Name":"帐号", "Remember Me":"记住我",
"Forgot Your Password?":"找回密码",
"Reset Password":"重置密码",
"Send Password Reset Link":"发送重置邮件",
"Reset Password Notification":"重置密码通知",
"You are receiving this email because we received a password reset request for your account.":"您收到这封邮件是因为我们收到您的帐户密码重置请求。",
"If you did not request a password reset, no further action is required.":"如果没有要求重新设置密码,则不需要进一步的操作。"}
如下图所示:
二、laravel5.8 语言包
语言包控制config/app.php
'locale' => 'en',
语言包位置:resources/lang/cn/
建立resources/lang/cn/common.php
<?php
return [
'success'=>'成功',
'fail'=>'失败'
];控制器调用
public function index(){
echo trans('common.success');
}
愿配置还有:
都可以灵活运用哦。
三、Laravel 中文语言包
安装:
composer require caouecs/laravel-lang:~3.0
1. 根据需要复制语言包到 resources/lang 目录中。
2. 修改 config/app.php 配置文件
'locale' => 'zh-CN',
3.修改注册、登录、找回密码的模板,把英文标签逐个改为
{{__('Login')}}
类似这样的,这样前端才能正确显示。
4.重点(修改找回密码的邮件英文为中文)
添加通知
php artisan make:notification ResetPasswordNotification
打开app/Notifications/ResetPasswordNotification
//...class ResetPasswordNotification extends Notification{ //...
public function __construct($token)
{ $this->token = $token;
} //...
public function toMail($notifiable)
{ return (new MailMessage)
->subject('找回'.config('app.name').'的账户密码。')
->line('你收到这封信,是因为我们收到你账户的找回密码请求。')
->action('找回密码', url('/password/reset', $this->token))
->line('如果你没有请求找回密码,请忽略这条信息。');
}
}
修改User模型文件,app/User.php或app/Modles/User.php,添加一个发送邮件的方法:
use App\Notifications\ResetPasswordNotification;class User extends Authenticatable{ //...
public function sendPasswordResetNotification($token)
{ $this->notify(new ResetPasswordNotification($token));
}
}
php artisan vendor:publish --tag=laravel-notifications
在 resources/views
中多了个vendor
目录,这里放的就是发送邮件的模板了,打开后我们进一步修改为中文......
四、laravel 语言包拓展
laravel 使用make:auth生成用户认证,登录表单是英文版本的,打开模板文件(resources/views/auth/login.blade.php),此模板文件是我们刚刚使用 make:auth
命令生成的
这是 Laravel 提供的本地化特性,使用 __()
函数来辅助实现。按照约定,本地化文件存储在 resources/lang
文件夹中,为 JSON 格式。在 config/app.php
文件中,我们设置了:
对应翻译文件就是 resources/lang/zh-CN.json
,需新建此文件:
resources/lang/zh-CN.json
会有很多人会遇到翻译 Laravel 自带模板的问题,所以我们无需自己一个个去翻译,这种通用的问题找找扩展包来处理即可。我们将使用 Laravel Lang 项目来实现,此项目支持了 52 个***的语言,使用以下命令安装:
composer require "overtrue/laravel-lang:~3.0"
完成上面的操作后,将项目文件 config/app.php
中的下一行
Illuminate\Translation\TranslationServiceProvider::class,
替换为:
Overtrue\LaravelLang\TranslationServiceProvider::class,
- 1. 根据需要复制语言包到 resources/lang 目录中。
- 2. 修改 config/app.php 配置文件
- 3.修改注册、登录、找回密码的模板,把英文标签逐个改为
- 4.重点(修改找回密码的邮件英文为中文)
发表评论