vortgo / laravel-translate
laravel项目的翻译系统
1.0.0
2017-05-27 10:34 UTC
Requires
- php: >=5.5.0
- laravel/framework: >=5.1
Requires (Dev)
- orchestra/database: ^3.4
- orchestra/testbench: ^3.4
- phpunit/phpunit: ^6.1
This package is not auto-updated.
Last update: 2024-09-15 02:35:33 UTC
README
翻译实体
关于包
此包旨在为您的模型添加多语言支持。如果您的应用程序已经运行,您需要向数据库中的内容添加一个或多个额外的语言,这将非常简单。
安装
在您的composer.json中要求此包
$ composer reqiure vortgo/laravel-translate
将服务提供者添加到您的配置文件config/app.php
Vortgo\Translate\ModelTranslateServiceProvider::class
发布供应商
$ php artisan vendor:publish
运行迁移以创建您的可翻译内容的表
$ php artisan migrate
将特质添加到需要翻译的模型中,并为您的模型设置默认语言
class Category extends Model
{
use Translate;
protected $defaultLocale = 'en';
}
用法
您可以使用通常的方式创建带有翻译的实体
Category::create([
'name' => 'name',
'ru' => [
'name' => 'название'
],
'fr' => [
'name' => 'fr name'
]
]);
访问翻译值,您可以使用以下变体
确定调用时机
$category->translate('fr')->name
使用您的应用程序区域设置
App()->setLocale('fr')
$category->name
获取当前模型的全部翻译属性
$category->getTranslations('fr')
附加功能
您可以使用关系为预加载您的模型
App()->setLocale('fr');
$item = Item::with('category', 'category.rTranslate')->first();
$item->category->name;
带有关系的数组
App()->setLocale('fr');
$item = Item::with('category', 'category.rTranslate')->first();
$item->toArray();
Result = [
'id' =>1,
'item_name' => 'name',
'category' => [
'name' => 'fr name'
]
];
如果您想覆盖函数toArray()
,请在您的模型中使用translateToArray()
public function toArray()
{
$array = $this->translateToArray(); //parent::toArray()
// Your code here
return $array;
}