berthott / laravel-translatable
Laravel模型翻译助手
3.0.1
2023-11-08 14:36 UTC
Requires
- berthott/laravel-crudable: ^3.0
- berthott/laravel-targetable: ^3.0
- haydenpierce/class-finder: ^0.4.3
Requires (Dev)
- doctrine/dbal: ^3.3
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.0
README
Laravel中模型翻译的助手。
轻松地将可翻译字段添加到任何Eloquent模型中。
安装
$ composer require berthott/laravel-translatable
使用方法/工作原理
- 创建您的表和相应的模型,例如使用
php artisan make:model YourModel -m - 使用
translatable宏在迁移中添加可翻译字段。例如:Schema::create('dummies', function (Blueprint $table) { $table->bigIncrements('id'); $table->translatable('user_input'); $table->timestamps(); });
- 将
Translatable特质添加到您新创建的模型中。 - 向模型中添加一个
translatableFields()方法,返回一个包含您可翻译字段列表的数组。 - 使用
self::translatableRules收集所有您需要的规则,以确保正确的数据格式,例如:{ "en": "English String", "de": "German String", } - 如果某些字段应该有可选的语言,这些语言未在包的配置中列出,您可以添加一个
translatableOptionalFields()方法,返回一个包含字段作为键和可选语言作为数组的数组。 - 就是这样。该包将处理其他所有事情。
- 将迁移三个表:
translatable_content、translatable_translations和translatable_languages。语言表将根据包的配置进行填充。 - 将为您的模型注册一个Laravel模型观察者,该观察者将挂钩到您可翻译字段的数据存储。
- 将自动添加一个包含翻译数据的属性到您的模型中。
- 将迁移三个表:
选项
要更改默认选项,请使用
$ php artisan vendor:publish --provider="berthott\Translatable\TranslatableServiceProvider" --tag="config"
- 继承自laravel-targetable
namespace:字符串或数组,包含一个或多个应监控配置特质的命名空间。默认为App\Models。namespace_mode:定义命名空间的搜索模式。ClassFinder::STANDARD_MODE将只找到精确匹配的命名空间,ClassFinder::RECURSIVE_MODE将找到所有子命名空间。默认为ClassFinder::STANDARD_MODE。
- 语言选项
languages:定义应用程序中使用的语言。默认为['en' => 'English']optional_languages:定义应被视为可选的语言。默认为[]default_language:定义应使用的默认语言。默认为en
兼容性
与Laravel 10.x进行了测试。
许可
见许可文件。版权©2023 Jan Bladt。