本地化
环境:使用 php artisan make:auth 用户认证脚手架
登录表单是英文版本的,打开模板文件,此模板文件是我们刚刚使用 make:auth 命令生成的:
resources/views/auth/login.blade.php
可以看到很多 __() 函数的调用:
{{ __(‘Login’) }}
{{ (‘Password’) }} {{ (‘Remember Me’) }}
这是 Laravel 提供的本地化特性,使用__() 函数来辅助实现。按照约定,本地化文件存储在 resources/lang 文件夹中,为 JSON 格式。在 config/app.php 文件中,我们设置了:
‘locale’ => ‘zh-CN’,
对应翻译文件就是 resources/lang/zh-CN.json ,需新建此文件:
resources/lang/zh-CN.json
{
“Login”: “登录”,
“Password”: “密码”,
“Remember Me”: “记住我”
}
再次刷新登录页面,可以看到翻译的内容:
中文语言包
会有很多人会遇到翻译 Laravel 自带模板的问题,所以我们无需自己一个个去翻译,这种通用的问题找找扩展包来处理即可。
我们将使用 Laravel Lang 项目来实现,此项目支持了 52 个国家的语言,使用以下命令安装:
$ composer require “overtrue/laravel-lang:~3.0”
安装完成后刷新页面,完美翻译:
Laravel Lang 同自定义语言包一样,都是根据 config/app.php 里 locale 的选项来选择语言的。
值得一提的是,如果你想修改扩展包提供的语言文件,可以使用以下命令发布语言文件到项目里:
$ php artisan lang:publish zh-CN