astrotomic/laravel-translatable


README

Latest Version MIT License Offset Earth Larabelles

GitHub Workflow Status GitHub Workflow Status Codecov Coverage Total Downloads GitBook

laravel-translatable socialcard

如果您想将模型的翻译存储到数据库中,此包适合您。

这是一个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以获取报告步骤。

鸣谢

版本

Treeware

您可以使用此包,但如果它进入您的生产环境,我将非常感谢您为世界买一棵树。

众所周知,解决气候危机并防止我们的气温升高超过1.5C的最佳工具之一是种植树木。如果您为我的森林做出贡献,您将为当地家庭创造就业机会并恢复野生动物栖息地。

您可以在offset.earth/treeware购买树木。

有关Treeware的更多信息,请参阅treeware.earth