geeksdevelop/translate

处理数据库中数据翻译的包

1.0.1 2017-01-27 10:46 UTC

This package is not auto-updated.

Last update: 2024-09-28 21:29:33 UTC


README

### 兼容 Laravel 版本 5.1, 5.2, 5.3 和 5.4,用于根据 Laravel 系统配置的语言翻译数据库中的字段。

安装

  composer require geeksdevelop/translate

服务提供者

将包添加到你的应用程序服务提供者在 config/app.php 文件中。

'providers' => [
    /*
     * Package Service Providers...
     */
    Geeksdevelop\Translate\TranslateProvider::class,
],

发布

将迁移发布到你的应用程序。在你的终端中运行以下命令。

  php artisan vendor:publish --provider="Geeksdevelop\Translate\TranslateProvider"

迁移表格

运行迁移。

  php artisan migrate

包含特质到模型

在你的模型中包含你需要在其中翻译字段的 Translate 特性。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Geeksdevelop\Translate\Traits\Translate;

class Post extends Model
{
    use Translate;

],

用户指南

创建翻译

通过放置以下数据创建翻译 locale => 要翻译的语言,type => 输入名称要翻译,value => 输入中增加的字符串,

$post->setTranslate($locale, $type, $value);

示例

$post = Post::create([...]);
#English language
$post->setTranslate('en', 'title', 'Title of the post');
#French language
$post->setTranslate('fr', 'title', 'Après le titre');

#Table translates
+----+----------------+--------------------+-----------------+------------------+
| id | locale | type  |      value         | translable_type | translable_value |
+----+----------------+--------------------+-----------------+------------------+
| 1  | en     | title | Title of the post  | 1               | App\Post         |
+----+----------------+--------------------+-----------------+------------------+
| 2  | fr     | title | Après le titre     | 1               | App\Post         |
+----+----------------+--------------------+-----------------+------------------+

获取翻译

要获取翻译,我们只需使用方法 translate(),它将根据 Laravel 系统配置的语言提供翻译。

$post->translate('title');
#Title of the post

如果你想获取配置为 Laravel 的其他语言的特定翻译,可以使用 translate () 方法,如下所示

$post->translate('title', 'fr');
#Après le titre

使用 translate(),我们可以获取在模型中注册的不同语言的全部翻译。

$post->translate();
/*
translate => [
  0 => [
    'id' => 1,
    'locale' => 'en', 
    'value' => 'Title of the post', 
    'translable_type' => 1, 
    'translable_value' => 'App\Post'
  ],
  1 => [
    'id' => 2,
    'locale' => 'fr', 
    'value' => 'Après le titre', 
    'translable_type' => 1, 
    'translable_value' => 'App\Post'
  ]
];
*/

更新翻译

要更新,使用的方法是 updateTranslate(locale, type, value)

$post->updateTranslate($locale, $type, $value);

删除翻译

要删除,只需使用方法 deleteTranslate(locale, type)

$post->deleteTranslate($locale, $type);