hadefication / polyglot
扩展 Laravel 翻译至 JavaScript。
Requires
- laravel/framework: ~5.5.0|~5.6.0|~5.7.0
Requires (Dev)
- orchestra/testbench: ~3.0
This package is auto-updated.
Last update: 2024-09-15 02:43:08 UTC
README
Polyglot 创建了一个 blade 指令 @polyglot
,您可以将它添加到主 blade 文件中。这将导出一个全局变量 Polyglot
,其中存储了您应用程序当前区域设置的翻译键。根对象键基于 Polyglot 配置文件中定义的翻译文件。
安装
composer require hadefication/polyglot
- 将
Hadefication\Polyglot\PolyglotServiceProvider::class
添加到您的config/app.php
中的providers
数组。对于 5.5 版本及以上,由于引入了包自动发现,此步骤不是必需的。 - 将
@polyglot
blade 指令添加到您的 master blade 文件中,在 JavaScript 文件上方(可能是在头部或 body 标签结束之前)。
使用方法
安装后,该包将公开一个 Polyglot
变量,其中存储了您当前区域设置的翻译键。
还公开了一个方便的 JavaScript 辅助函数,您可以使用它来翻译翻译键,就像我们在 Laravel 中做的那样。不小心也将其命名为 trans
。下面有关于 trans
辅助函数的示例。
示例
无参数
trans('auth.failed');
// Should return the equivalent translation of the supplied key
带参数的翻译
trans('validation.required', {attribute: 'email'});
// Should return the equivalent translation of the supplied key including the supplied params
配置
还包含一个配置文件,用于自定义要加载到 Polyglot
的翻译文件。要发布包含的配置文件,请运行 php artisan vendor:publish
。
Artisan 命令
还提供了一个 artisan 命令,它将导出一个 JavaScript 文件,其中包含所有收集到的翻译键,包括可导入的路由方法辅助函数。在采用此方法时,不需要包括 @polyglot
blade 指令。
php artisan polyglot:dump
上述命令应在您的 /resources/assets/js
目录中生成一个名为 polyglot.js 的 JavaScript 文件。您也可以使用 --path=/path/to/where/the/dump/file/will/be/exported
将文件导出到其他位置。命令应如下所示:php artisan polyglot:dump --path=./resources/assets/js/vendor/polyglot.js
。
// ES6
import './path/to/polyglot';
// Old School
require('./path/to/polyglot.js');
上述代码应添加到您的 bootstrap 文件中或主 JavaScript 文件中(如果您有一个自定义的入口点)。
Laravel Mix
您还可以通过安装一个 webpack 插件来自动化导出过程,该插件在每次构建时运行简单的 artisan 命令,以确保您在构建中包含了最新的翻译文件。请按照以下步骤操作:
- 安装 webpack shell plugin:
npm install --save-dev webpack-shell-plugin
或yarn add --dev webpack-shell-plugin
- 将插件包含到您的
webpack.mix.js
文件中
const mix = require('laravel-mix');
const WebpackShellPlugin = require('webpack-shell-plugin');
mix.webpackConfig({
plugins: [
new WebpackShellPlugin({ onBuildStart: ['php artisan polyglot:dump'], onBuildEnd: [] }),
]
});
....
- 完成!这将确保在构建开始时运行
php artisan polyglot:dump
,从而获取最新的翻译文件。