statikbe / laravel-filament-chained-translation-manager
Laravel Filament 的翻译管理工具,利用 Laravel Chained Translator。
Requires
- php: ^8.1|^8.2
- filament/filament: ^3.0
- illuminate/contracts: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.14.0
- statikbe/laravel-chained-translator: ^2.4
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.0||^8.0
- nunomaduro/larastan: ^2.4
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.2
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- phpunit/phpunit: ^10.0|^11.0
README
Laravel Filament Chained Translation Manager
Laravel Filament Chained Translation Manager 允许您轻松编辑当前 Laravel 环境的翻译。此翻译管理器使用 Laravel Chained Translator,允许您使用特定环境的翻译覆盖默认翻译,例如,内容管理员可以独立编辑并覆盖生产环境中的翻译文件,而不影响开发者提供的翻译。
通常,在开发阶段某个时候,内容管理员会希望翻译或微调开发者添加的翻译字符串。这通常会导致合并和版本控制问题,因为开发者和内容管理员同时在工作翻译文件上。
Chained Translator 包允许开发者的翻译与内容管理员的编辑(自定义翻译)在单独的 lang 目录中分开存在。库合并了两个语言目录的翻译,其中内容管理员的翻译(自定义翻译)覆盖了开发者的翻译(默认翻译)。有关更多信息,请参阅 Laravel Chained Translator 的文档。
此包还有一个 Laravel Nova Chained Translation Manager。
功能
- 将当前环境的翻译保存到单独的语言目录中的单独翻译文件,以避免版本冲突。
- 立即保存翻译。
- 搜索翻译和翻译键。
- 过滤特定组和语言的翻译。
- 仅显示缺失翻译的键。
- 显示完全翻译的字段数量统计。
此工具不提供添加新翻译键的功能,因为我们的目标是翻译者和内容管理员,我们希望避免他们添加不必要的翻译键。
安装
注意 对于 Filament 2.x 使用 v1.x 版本
- 您可以通过 Composer 安装此包
composer require statikbe/laravel-filament-chained-translation-manager
- 为要使用的 Filament 面板注册插件
public function panel(Panel $panel): Panel { return $panel ->plugins([ \Statikbe\FilamentTranslationManager\FilamentChainedTranslationManagerPlugin::make(), ]); }
- 使用此包需要 Filament 自定义主题。如果您还没有,可以按照 Filament 文档站点上的说明 创建一个。创建新主题只是发布默认 Filament 面板的样式,所以如果您对 Filament 的默认样式满意,这将不会改变任何事情。创建自定义主题后,您需要将以下路径添加到 Filament 主题的生成
tailwind.config.js
文件中的content
数组中
"./vendor/statikbe/laravel-filament-chained-translation-manager/**/*.blade.php",
- 现在运行以下命令以编译插件样式到 Filament 的样式表中
npm run build
- 发布
config
文件,然后设置您的配置
php artisan vendor:publish --tag="filament-translation-manager-config"
配置
您可以为自定义语言目录名称进行配置,并扩展或微调Laravel Chained Translator的服务提供者。[Laravel Chained Translator](https://github.com/statikbe/laravel-chained-translator "Laravel Chained Translator")。查看[Laravel Chained Translator库](https://github.com/statikbe/laravel-chained-translator "Laravel Chained Translator库")的配置选项。
支持的语言环境
有两种方法可以更改支持的语言环境。
选项1
使用配置来设置支持的语言环境。默认情况下,它将回退到语言环境和回退语言环境。但是,您可以自定义配置以包含其他语言环境,如下所示
'locales' => [ 'en', 'fr', ],
选项2
如果您的应用程序已经有一个声明语言环境的配置,则可以在任何服务提供者中设置支持的语言环境。创建一个新的,或者使用app/Providers/AppServiceProvider.php
并在boot函数中将支持的语言环境作为数组设置如下
use Statikbe\FilamentTranslationManager\FilamentTranslationManager; public function boot() { FilamentTranslationManager::setLocales(['en', 'nl']); }
权限
您可以通过配置Gate变量来限制对翻译管理器的访问。
'gate' => 'view-filament-translation-manager',
忽略组
您可以选择排除特定组翻译在Filament中显示。创建一个包含您要忽略的键的数组
'ignore_groups' => [ 'auth', ],
导航图标
您可以通过配置navigation-icon
变量来自定义导航图标
'navigation_icon' => 'heroicon-o-language',
用法
库为新的翻译创建一个新目录,请参阅[Laravel Chained Translator](https://github.com/statikbe/laravel-chained-translator "Laravel Chained Translator")。检查[Laravel Chained Translator](https://github.com/statikbe/laravel-chained-translator "Laravel Chained Translator")包的配置选项以更改此设置。
此外,请注意翻译管理器将自动包含在Filament菜单中。
合并翻译
您可以通过运行由[Laravel Chained Translator](https://github.com/statikbe/laravel-chained-translator "Laravel Chained Translator")提供的命令,将当前环境的自定义翻译与默认翻译文件合并。
屏幕截图
升级
请参阅[UPGRADING](https://github.com/statikbe/laravel-filament-chained-translation-manager/blob/HEAD/UPGRADING.md "UPGRADING")以获取详细信息。
变更日志
请参阅[CHANGELOG](https://github.com/statikbe/laravel-filament-chained-translation-manager/blob/HEAD/CHANGELOG.md "CHANGELOG")以获取有关最近更改的更多信息。
贡献
请参阅[CONTRIBUTING](https://github.com/statikbe/laravel-filament-chained-translation-manager/blob/HEAD/.github/CONTRIBUTING.md "CONTRIBUTING")以获取详细信息。
安全漏洞
请参阅[我们的安全策略](https://github.com/statikbe/laravel-filament-chained-translation-manager/blob/HEAD/../../security/policy "我们的安全策略")以了解如何报告安全漏洞。
致谢
许可证
MIT许可证(MIT)。请参阅[许可证文件](https://github.com/statikbe/laravel-filament-chained-translation-manager/blob/HEAD/LICENSE.md "许可证文件")以获取更多信息。