ifresh/laravel-enum-translations

1.0.2 2024-04-05 14:56 UTC

This package is auto-updated.

Last update: 2024-09-05 16:02:12 UTC


README

这是一个简化应用程序中枚举类型翻译的Laravel扩展包,它能够轻松地将枚举值与多种语言的翻译标签关联起来,从而提高代码的可读性和可维护性。它通过无缝处理枚举翻译来增强代码。

这使得为前端提供与标签对应的枚举键列表变得非常简单。

功能

  • 自动加载应用程序枚举的翻译标签
  • 基于枚举键提供回退,以便轻松查找缺失的翻译
  • 遵循应用程序配置的区域设置

入门

  1. 使用 composer 安装包:composer require ifresh/laravel-enum-translations
  2. 发布配置文件:./artisan vendor:publish --tag=laravel-enum-translations
  3. 修改 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