jbernavaprah/lighthouse-translation

Laravel Lighthouse 的翻译支持

v1.0.1 2022-06-18 14:29 UTC

This package is auto-updated.

Last update: 2024-09-18 19:17:39 UTC


README

Software License GitHub Tests Action Status Coverage Status PHPStan Latest Version on Packagist Total Downloads

不是生产就绪。

要求

安装

1. 使用 composer 安装

composer require jBernavaPrah/lighthouse-translation

2. 使用Translation

JBernavaPrah\Translation\UseTranslation 特性应用到您的模型上。

use JBernavaPrah\UseTranslation ;
use Illuminate\Database\Eloquent\Model;

/**
 * @property \JBernavaPrah\LighthouseTranslation\Translate $name
 * 
 */
class Item extends Model 
{
    use UseTranslation;
    
    public function translationColumns(): array{
        return ["name"]
    }
    
    
}

3. 在 GraphQL 架构中将字段类型声明为 Translate

type Item {

    name: Translate!

    # ...

}

使用

启用翻译

指令 localize 接受一个参数,即用于返回本地化数据的语言。

如果该列上没有找到,则返回 null。

query {
    item(id: 1) @localize(lang: "en") {
        name {
            ...on Localized{
                lang
                text
            }
        }
    }
}

如果在该查询/突变上未使用该指令,则返回原始翻译类型。

query {
    item(id: 1) {
        name {
            ... on RawTranslation {
                data {
                    lang
                    text
                }
            }
        }
    }
}

致谢

许多想法得益于 daniel-de-wit/lighthouse-sanctum。非常感谢他和他的精美代码!
此外,nuwave/lighthouse 的作者在文档和代码方面也做出了巨大的贡献。