empuxa / laravel-translation-manager
Laravel 的智能翻译管理器。
Requires
- php: ^8.1
- illuminate/config: ^9.33|^10.0|^11.0
- illuminate/contracts: ^9.33|^10.0|^11.0
- illuminate/database: ^9.33|^10.0|^11.0
- illuminate/queue: ^9.33|^10.0|^11.0
- illuminate/routing: ^9.33|^10.0|^11.0
- illuminate/support: ^9.33|^10.0|^11.0
- illuminate/view: ^9.33|^10.0|^11.0
- spatie/laravel-package-tools: ^1.0
Requires (Dev)
- laravel/pint: ^1.10
- orchestra/testbench: ^7.0|^8.0|^9.0
- phpunit/phpunit: ^9.6
- roave/security-advisories: dev-latest
- slevomat/coding-standard: ^8.8
README
此包提供了一种网络界面来管理您的 Laravel 应用程序的翻译。虽然这个概念受到了 barryvdh/laravel-translation-manager 的极大启发,但此包是完全重写的,采用了不同的方法,以提供更好的非开发者用户体验
- 存在一个不可编辑的默认语言,以将开发与翻译分离
- 它可以导出到子文件夹:例如,现在您可以有一个
lang/en/dashboard/charts.php
文件 - 所有翻译字符串都在一个页面上,基于 Tailwind CSS
- 它有一些(一些)测试 🫣
然而,目前也存在一些缺点(请随时贡献!)
- 它只读取和导出 PHP 文件,不支持 JSON
- 不支持供应商翻译
- 由于所有字符串都在一个页面上,大型项目可能会出现性能问题
安装
此包需要 Laravel 9.33+。您可以通过 composer 安装此包
composer require empuxa/laravel-translation-manager
之后,复制供应商文件
php artisan vendor:publish --provider="Empuxa\TranslationManager\TranslationManagerServiceProvider"
最后,运行迁移
php artisan migrate
别忘了更新配置文件 config/translation-manager.php
以满足您的需求!
使用方法
本地存储/单服务器设置
默认情况下,翻译管理器在 /translation-manager
可用。但是,您可以在配置文件中更改路由。在您能够编辑翻译之前,您还必须设置输出语言。默认语言不可编辑,以将开发和翻译分离。
要将翻译推送到数据库,您需要运行以下命令
php artisan translation-manager:push-to-db
现在您可以通过网络界面编辑任何语言字符串并将它们保存到数据库中。如果语言字符串已存在,则不会覆盖。您可以使用 --force
标志强制该行为。
在您可以在应用程序中使用翻译之前,您需要将它们导出到将存储在 lang
文件夹中的 PHP 文件。您可以通过运行以下命令来完成此操作
php artisan translation-manager:pull-from-db
云存储/多服务器设置
在云环境中使用翻译管理器的最佳方式是运行单个服务器实例,在该实例中翻译者可以编辑翻译。但是,您可能还希望将翻译推送到其他环境。这就是云存储发挥作用的地方。
通过使用 translation-manager:push-to-storage
命令,您可以将任何 lang 文件推送到配置中定义的存储磁盘。然后,您可以使用 translation-manager:pull-from-storage
命令从存储磁盘拉取翻译。
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG
安全漏洞
有关报告安全漏洞的详细信息,请参阅 我们的安全策略
鸣谢
许可证
MIT许可证(MIT)。请参阅许可证文件获取更多信息。