twister3x / laravel-nova-translation-manager
Laravel Nova 连锁翻译管理器允许您轻松编辑和自定义当前Laravel环境的翻译。
Requires
- php: ^8.0|^8.1
- illuminate/validation: ^8.0|^9.0
- laravel/nova: ^4.0
- statikbe/laravel-chained-translator: ^2.0
README
Laravel Nova 连锁翻译管理器
注意:如果您正在寻找nova 3,请查看分支 3.0
Laravel Nova 连锁翻译管理器允许您轻松编辑当前Laravel环境的翻译。此翻译管理器使用Laravel连锁翻译器,允许您用特定环境的翻译覆盖默认翻译,例如,内容管理器可以独立编辑并覆盖生产环境中的翻译文件,而无需考虑开发者提供的翻译。
通常,在开发阶段某个时候,内容管理器想要翻译或微调开发者添加的翻译字符串。这通常会导致合并和版本控制问题,当开发者和内容管理器同时处理翻译文件时。
连锁翻译器包允许开发者的翻译与内容管理器在独立的lang
目录中编辑的翻译分开存在。库合并了两个语言目录的翻译,其中内容管理器的翻译(自定义翻译)覆盖了开发者的翻译(默认翻译)。有关更多信息,请参阅Laravel 连锁翻译器的文档。
特性
- 将当前环境的翻译保存到单独的语言目录中的独立翻译文件中,以避免版本冲突。
- 立即保存翻译
- 搜索翻译和翻译键
- 过滤特定组和语言的翻译
- 仅显示缺少翻译的键
- 支持 Nova 4
目前,此工具不提供添加新翻译键的功能,因为我们的目标是翻译者和内容管理器,我们希望避免他们添加不必要的翻译键。
安装
可以通过Composer安装此包。
composer require statikbe/laravel-nova-chained-translation-manager
Nova 4支持从v3.0.0版本开始。如果您仍在使用Nova 3,请使用v2版本。
composer require statikbe/laravel-nova-chained-translation-manager:~2
接下来在Nova中启用工具。转到app/Providers/NovaServiceProvider.php
并将TranslationManager添加到工具中。
use Statikbe\NovaTranslationManager\TranslationManager; public function tools() { return [ new TranslationManager, ]; }
配置
您可以配置自定义语言目录名称并扩展或微调Laravel连锁翻译器的服务提供者。查看Laravel 连锁翻译器库的配置选项。
支持的区域设置
有两种方法可以更改支持的区域设置。
选项1
使用以下命令发布配置文件,并使用您支持的区域设置和编辑器首选项进行配置。
php artisan vendor:publish --tag=nova-chained-translation-manager
例如。
/* |-------------------------------------------------------------------------- | Application Supported Locale Configuration |-------------------------------------------------------------------------- | | The application locale determines the possible locales that can be used. | You are free to fill this array with any of the locales which will be | supported by the application. | */ 'supported_locales' => [ 'en', 'nl' ],
选项2
如果您的应用程序已经有一个声明区域设置的配置,那么您可以在任何服务提供者中设置支持的区域设置。创建一个新的或使用app/Providers/AppServiceProvider.php
,然后在boot函数中将支持的区域设置作为数组设置,如下所示
use Statikbe\NovaTranslationManager\TranslationManager; public function boot() { TranslationManager::setLocales(['en', 'nl']); }
更改您的编辑器
您还可以更改您的编辑器,有时翻译值可能很大,如果您有一个更大的区域来编辑它们或甚至可以即时添加一些粗体/下划线效果,那就更好了。您可以使用3个支持值:input
、textarea
、trix
。它们的名称是自解释的。
注意:我们不推荐使用Trix作为编辑器,因为如果您在HTML翻译中使用变量,例如锚标签的url,Trix将会移除它 :-(。请在使用Trix时记住,您还应配置允许的HTML标签。
更改这些设置后,不要忘记清除缓存并刷新您的页面以查看结果 :-)
例如。
/* |-------------------------------------------------------------------------- | Editor to use |-------------------------------------------------------------------------- | | Choose what type of editor you want to use while editing your translations | input - For really dead simple input | textarea - For a larger textarea to deal with | trix - Will use Trix Editor for editing locales supporting some HTML on it. | | Note : Please keep in mind while using Trix to configure your allowed HTML | tags. Otherwise it may pose XSS attacks risk if field could be edited by the end user. | | Values : trix, input, textarea | */ 'editor' => 'input', 'trix_allowed_tags' => '<code><p><b><u><a><br><ul><li><ol><pre><h2><h3><h4><h5><del><blockquote><dl><dd><strong>',
忽略分组
您也可以忽略某些分组中的翻译,使其在Nova UI中不显示。创建一个具有您想要忽略的键的数组。
例如。
/* |-------------------------------------------------------------------------- | Ignore Groups |-------------------------------------------------------------------------- | This will ignore certain groups from the translations UI | Supports an array of keys | */ 'ignore_groups' => ['auth','pagination','passwords','routes','nova','nova/validation'],
合并翻译
您可以通过运行由Laravel Chained Translator库提供的命令,将当前环境的自定义翻译与默认翻译文件合并。
致谢
我们使用了Joe Dixon的翻译库作为技术专业知识和灵感的来源。
@nelumoraru和@FrittenKeeZ为Nova 4升级了库。
非常感谢大家的出色工作!
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。