cyberwolfstudio / lingua
将您的 Laravel 语言翻译添加到资产管道中,以便在 Vue 或 React 等 JavaScript 包中使用。
v0.9.63
2024-07-25 17:19 UTC
Requires
- php: ^8.2
- laravel/framework: ^9.0|^10.0|^11.0
README
最初基于 Zora,但进行了大量修改。
生成 JS 文件中的翻译
此库允许您将 Laravel 翻译生成到资产管道中,以便在 Vue(React 即将推出)等 JavaScript 包中使用。
需求
- Laravel: ^9.* 或更高版本
- InertiaJS: ^1.*
- VueJS: ^3.*
- ViteJS: ^3.*
安装
首先,使用 composer 安装此包
composer require cyberwolfstudio/lingua
该包将自动注册自己。
接下来,向您的 vite.config.js
添加别名
resolve: { alias: { ... 'lingua-js': resolve(__dirname, 'vendor/cyberwolfstudio/lingua/dist/index.js') }, },
要构建您的 Laravel 翻译到 JS 文件,使用
php artisan lingua:generate
您可以按需自动化此过程。但我们推荐您使用名为 vite-plugin-run 的 vite 插件。使用您的包管理器安装它,并将以下行添加到您的 vite.config.js
插件部分。
run({ name: "generate translations", run: ['php', 'artisan', 'lingua:generate'], pattern: ['resources/lang/**', 'lang/**'], })
使用示例:(仅在 serve 过程中运行)
{
...run([
{
name: 'generate translations',
run: ['php', 'artisan', 'lingua:generate'],
pattern: ['resources/lang/**', 'lang/**'],
},
{
name: 'generate ziggy',
run: ['php', 'artisan', 'ziggy:generate'],
pattern: ['routes/**'],
}
]),
apply: 'serve'
}
VueJS
在您的 resources/js/app.js
和(如果您使用 SSR) resources/js/ssr.js
中添加导入
import { LinguaVue } from 'lingua-js' import { Lingua } from './lingua'
并注册 LinguaVue 插件
... .use(LinguaVue, { Lingua })
将 locale
键添加到您的 HandleInertiaRequest::share
方法中
[ ... locale' => fn() => app()->getLocale(), ... ]
这样,您的应用程序就会知道您的初始语言环境。
React
即将推出
使用方法
在您的模板标签中使用它,就像 Laravel 风格一样
__(key: string, replacers: array) //or trans(key: string, replacers: array)
您还可以通过注入来在 setup
函数中使用 trans。
const trans = inject('trans')
变更日志
在此处所做的所有更改将描述在 Changelog.md 文件中。