udiptaweb/laravel-multilang

将动态数据翻译成多种语言

v1.0.0 2022-01-06 06:23 UTC

This package is auto-updated.

Last update: 2024-09-07 13:51:54 UTC


README

安装

步骤

  1. 使用以下命令安装包
composer require udiptaweb/laravel-multilang
  1. 安装后,使用以下命令发布配置和迁移
php artisan vendor:publish

然后选择提供者 Udiptaweb\LaravelMultilang\LaravelMultilangServiceProvider

这将发布名为的配置文件

laravel-multilang.php 

和名为的迁移文件

2022_01_03_102303_create_translations_table.php

用法

  1. 在需要翻译的模型中导入特质
use Udiptaweb\LaravelMultilang\Traits\hasTranslation;
  1. 通过在模型上添加来指定要翻译的列名
protected $translable_cols = ['name'];
  1. 在模型的 boot 方法中编写以下方法

    protected static function boot()
    {
       parent::boot();
    
       static::created(function($model){
           $model->createTranslation();
       });
       static::updated(function($model){
           $model->updateTranslation();
       });
       static::deleted(function($model){
           $model->deleteTranslation();
       });
    }
    

4.安装 google translate laravel 包 并设置 GOOGLE_TRANSLATE_API_KEY

  1. 现在要翻译,请使用以下方法

    $user = User::find($id)
    
    $user->getTranslated('field_name','language')
    

例如,如果您想将用户字段名翻译成印地语,那么

$user->getTranslated('name','hi')

可用语言

在发布的配置文件 laravel-multilang.php 中指定可用语言,languages = ['en','hi']

默认语言:您可以通过在 laravel-multilang.php 的 default_language 字段中指定来更改默认语言

***You should use language code specified on languages array on laravel-multilang.php