astrotomic / laravel-translatable
Laravel多语言模型包
v11.15.1
2024-08-28 09:20 UTC
Requires
- php: ^8.0
- illuminate/contracts: ^9.0 || ^10.0 || ^11.0
- illuminate/database: ^9.0 || ^10.0 || ^11.0
- illuminate/support: ^9.0 || ^10.0 || ^11.0
Requires (Dev)
- larastan/larastan: ^2.0
- laravel/legacy-factories: ^1.0.4
- laravel/pint: ^1.0
- mockery/mockery: ^1.3.3
- orchestra/testbench: ^7.0 || ^8.0 || ^9.0
- phpunit/phpunit: ^10.0
- dev-main
- v12.x-dev
- v11.15.1
- v11.15.0
- v11.14.1
- v11.14.0
- v11.13.0
- v11.12.1
- v11.12.0
- v11.11.0
- v11.10.0
- v11.9.1
- v11.9.0
- v11.8.3
- v11.8.2
- v11.8.1
- v11.8.0
- 11.7.1
- v11.7.0
- v11.6.1
- v11.6.0
- v11.5.2
- v11.5.1
- v11.5.0
- v11.4.0
- v11.3.0
- v11.2.1
- v11.2.0
- v11.1.3
- v11.1.2
- v11.1.1
- v11.1.0
- v11.0.0
- v10.0.0
- v9.5.0
- v9.4.0
- v9.3.0
- v9.2.0
- v9.1.0
- v9.0
- v8.1
- v8.0
- v7.3
- v7.2.1
- v7.2
- v7.1
- v7.0
- v6.1
- v6.0.1
- v6.0
- v5.6.1
- v5.6
- v5.5.1
- v5.5
- v5.4
- v5.3
- v5.2
- v5.1.2
- v5.1.1
- v5.1
- v5.0.1
- v5.0
- v4.5
- v4.4
- v4.3.2
- v4.3.1
- v4.3
- v4.2.1
- v4.2
- v4.1.1
- v4.1
- v4.0.1
- v4.0.0
- v3.0.1
- v3.0.0
- v2.0.0
- v1.0.1
- dev-dependabot/composer/phpunit/phpunit-tw-11.3
- dev-issue-121
- dev-issue-13
This package is auto-updated.
Last update: 2024-08-28 09:23:27 UTC
README
如果您想将模型的翻译存储到数据库中,此包适合您。
这是一个Laravel的翻译模型包。它的目标是简化检索和存储多语言模型实例的复杂性。使用此包,您将编写更少的代码,因为翻译将在您检索/保存实例时自动获取/保存。
完整文档可在GitBook找到。
安装
composer require astrotomic/laravel-translatable
快速示例
获取翻译属性
$post = Post::first(); echo $post->translate('en')->title; // My first post App::setLocale('en'); echo $post->title; // My first post App::setLocale('de'); echo $post->title; // Mein erster Post
保存翻译属性
$post = Post::first(); echo $post->translate('en')->title; // My first post $post->translate('en')->title = 'My cool post'; $post->save(); $post = Post::first(); echo $post->translate('en')->title; // My cool post
填充多个翻译
$data = [ 'author' => 'Gummibeer', 'en' => ['title' => 'My first post'], 'fr' => ['title' => 'Mon premier post'], ]; $post = Post::create($data); echo $post->translate('fr')->title; // Mon premier post
填充多个翻译的包装
在创建新翻译时,您可以定义一个包装属性。在可翻译的配置文件中将translations_wrapper
属性设置为包装属性
'translations_wrapper' => 'translations',
然后只需使用该属性包装多个区域即可
$data = [ 'author' => 'Gummibeer', 'translations' => [ 'en' => ['title' => 'My first post'], 'fr' => ['title' => 'Mon premier post'], ], ]; $post = Post::create($data); echo $post->translate('fr')->title; // Mon premier post
教程
变更日志
请参阅CHANGELOG以获取有关最近更改的更多信息。
贡献
请参阅CONTRIBUTING以获取详细信息。您可能还对CODE_OF_CONDUCT感兴趣。
安全
如果您发现任何安全相关的问题,请参阅SECURITY以获取报告步骤。
鸣谢
- Tom Witkowski 当前维护者
- Dimitrios Savvopoulos 原始作者
- David Llop 重构测试套件
- Caneco 艺术作品
- 所有贡献者
版本
Treeware
您可以使用此包,但如果它进入您的生产环境,我将非常感谢您为世界买一棵树。
众所周知,解决气候危机并防止我们的气温升高超过1.5C的最佳工具之一是种植树木。如果您为我的森林做出贡献,您将为当地家庭创造就业机会并恢复野生动物栖息地。
您可以在offset.earth/treeware购买树木。
有关Treeware的更多信息,请参阅treeware.earth