hostitonline/laravel-translator

v1.0.3 2024-05-07 19:54 UTC

This package is auto-updated.

Last update: 2024-09-21 18:36:49 UTC


README

安装、配置和用法

要安装,请运行 composer require hostitonline/laravel-translator

这个包做什么?

这个包将允许您的Laravel项目实现无缝的翻译集成。大多数包需要您在模型上定义一个关系,然后调用该关系以显示翻译。这个包将移除这个要求,以保持您的代码整洁!

如何使用它?

模型

<?php

namespace App\Models;

use HostitOnline\LaravelTranslator\Traits\Translatable;

class Product extends Model
{
    use Translatable;

    /** @var array|string[]  */
    public array $translatable = [
        'name'
    ];

    protected $fillable = [
        'name'
    ];
}

如何创建新的翻译

$product = Product::create([
    'name' => 'Book'
]);

\HostitOnline\LaravelTranslator\Models\Translations::create([
    'value' => 'Boek',
    'translatable_id' => $product->id,
    'translatable_type' => Product::class,
    'iso_code' => 'nl',
    'translatable_column' => 'name'
]);

\HostitOnline\LaravelTranslator\Models\Translations::create([
    'value' => 'Livre',
    'translatable_id' => $product->id,
    'translatable_type' => Product::class,
    'iso_code' => 'fr',
    'translatable_column' => 'name'
]);

此包使用 app()->getLocale() 来获取ISO代码。这通常在中间件中处理,以确保使用正确的语言。

GET /products/<id> HEADERS: [Content-Language => FR]

ProductController {

    public function show(Product $product)
    {
        dump($product->name); // Output: Livre
    }
}

许可证

Laravel-translator 是开源软件,许可协议为 MIT 协议

贡献

请在问题页面报告您发现的任何问题。欢迎提交拉取请求。