ifresh / laravel-enum-translations
1.0.2
2024-04-05 14:56 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
- illuminate/translation: ^10.0|^11.0
Requires (Dev)
- mockery/mockery: ^1.6
- pestphp/pest: ^2.30
README
这是一个简化应用程序中枚举类型翻译的Laravel扩展包,它能够轻松地将枚举值与多种语言的翻译标签关联起来,从而提高代码的可读性和可维护性。它通过无缝处理枚举翻译来增强代码。
这使得为前端提供与标签对应的枚举键列表变得非常简单。
功能
- 自动加载应用程序枚举的翻译标签
- 基于枚举键提供回退,以便轻松查找缺失的翻译
- 遵循应用程序配置的区域设置
入门
- 使用 composer 安装包:
composer require ifresh/laravel-enum-translations - 发布配置文件:
./artisan vendor:publish --tag=laravel-enum-translations - 修改
lang/en/enums.php文件或将其复制到应用程序的区域设置文件夹中。
示例
给定以下枚举
namespace App\Enums; enum Cards: string { case Hearts = 'hearts'; case Diamonds = 'diamonds'; case Clubs = 'clubs'; case Spades = 'spades'; }
您可以通过修改 lang/en/enums.php 文件来添加翻译值
return [ 'cards' => [ 'hearts' => 'Hearts ❤️', 'diamonds' => 'Diamonds 💎', 'clubs' => 'Clubs ♣️', 'spades' => 'Spades ♠️', ], ];
现在,通过使用 EnumTranslatorFacade 在应用程序中使用这些翻译
如果您只想获取单个枚举的所有翻译列表(例如,当填充下拉列表时),您可以使用Facade上的 translate 方法
use App\Enums\Cards; use IFresh\EnumTranslations\EnumTranslatorFacade as EnumTranslator; $translations = EnumTranslator::translate(Cards::class); /* * [ * 'hearts' => 'Hearts ❤️', * 'diamonds' => 'Diamonds 💎', * 'clubs' => 'Clubs ♣️', * 'spades' => 'Spades ♠️', * ] */
也可以获取单个枚举值的翻译值,为此,您可以改用 translateValue 方法
EnumTranslator::translateValue(Cards::class, Cards::Hearts); // 'Hearts ❤️'
当您传递 null 作为选定的枚举值时,返回空字符串
EnumTranslator::translateValue(Cards::class, null); // ''
贡献
欢迎所有贡献!请打开GitHub问题或创建Pull请求
许可
Laravel枚举翻译包是免费软件,根据MIT许可证发布。有关详细信息,请参阅LICENSE.txt。