mmidu / translatable
为Laravel自动翻译json多语言字段。
Requires
- illuminate/support: ~5|~6|~7
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ~3|~4
- phpunit/phpunit: ^8.0
- sempro/phpunit-pretty-print: ^1.0
This package is auto-updated.
Last update: 2024-09-10 17:26:23 UTC
README
为Laravel自动翻译json多语言字段。
使用方法
-
将服务提供者添加到config/app.php中的"providers"数组中,如下所示。 'providers' => [ ... Mmidu\Translatable\TranslatableServiceProvider::class, ... ],
使用以下命令刷新配置缓存
php artisan config:cache
并使用以下命令发布配置文件
php artisan vendor:publish --provider "Mmidu\Translatable\TranslatableServiceProvider"
-
使用Translatable特质到您想要使用的模型上。
-
在config/translatable.php文件中设置语言配置,您可以添加和删除区域设置。
-
用于翻译的区域必须放入会话中。
-
将可翻译字段添加到模型的translatable属性中,如下所示
protected $translatable = [ 'name', 'description' ];
-
可翻译字段必须是具有以下结构的JSON
{ "it": "nome", "en": "name", "es": "nombre" etc... }
-
通过 $model->attribute 自动访问正确的区域版本。
例如:Session::put('locale', 'es'); echo $model->name;
结果 = 'nombre'
-
Translatable添加了两个虚拟属性,multilingual_attribute和mulitilingual_attribute_str,它们以数组形式提供了可翻译属性的多种语言版本。如果没有值,multilingual_attribute将给出[],multilingual_attribute_str将给出一个空字符串。
-
享受吧!