wickedone/phrase-translation-provider

symfony 语句翻译提供程序桥接

1.1.0 2023-11-30 10:09 UTC

README

symfony 语句翻译提供程序桥接

infection codecov psalm stable downloads license php

⚠️ 这个翻译提供程序自6.4版本开始已被集成到symfony中。一旦symfony 5.4的LTS到期,此存储库将被存档。

安装

composer require wickedone/phrase-translation-provider

dsn示例

PHRASE_DSN=phrase://PROJECT_ID:API_TOKEN@default?userAgent=myProject

dsn元素

  • PROJECT_ID:可以在“项目设置 > API > 项目ID”中从短语中检索到。
  • API_TOKEN:可以在您的短语配置文件设置中创建。
  • default:端点,默认为api.phrase.com

必需的dsn查询参数

  • userAgent:请阅读此内容以获取一些示例。

有关其他dsn选项,请参阅微调您的短语API调用

服务短语提供程序

在您的services.yaml中添加以下内容以启用短语提供程序。

Symfony\Component\Translation\Bridge\Phrase\PhraseProviderFactory:
    tags: ['translation.provider_factory']
    arguments:
        $defaultLocale: '%kernel.default_locale%'
        $loader: '@translation.loader.xliff'
        $xliffFileDumper: '@translation.dumper.xliff'
        $cache: '@cache.app'

并在您的translations.yaml中可以添加

framework:
    translator:
        providers:
            phrase:
                dsn: '%env(PHRASE_DSN)%'
                domains: ~
                locales: ~

短语区域名称

正在使用symfony xlf格式在短语中导入的翻译,区域名称与短语中的区域名称匹配。因此,区域名称应与RFC4646中定义的一致(例如,pt-BR而不是pt_BR)。如果不这样做,短语将为导入的键创建一个新的区域。

区域创建

如果在您的translation.yaml中定义了一个在您的短语项目中未配置的区域,它将被自动创建。但是,此提供程序(目前)不管理区域的删除。

域名作为标签

翻译将以symfony翻译域所属的标签在短语中标记。如果您需要帮助在短语中管理标签,请检查wickedone/phrase-tag-bundle

缓存

短语读取的响应被缓存在此提供程序中,以提高读取和删除方法的效率。因此,工厂应使用PSR-6兼容的缓存适配器进行初始化。

事件

为了使您能够在翻译值和/或键上执行后处理,此提供程序类发出两个事件。

PhraseReadEvent

从短语中读取目录后,在将结果TranslatorBag返回之前,在PhraseReadEvent中发出。

PhraseWriteEvent

将目录写入短语之前,在PhraseWriteEvent中发出TranslatorBag

微调您的短语API调用

您可以通过在dsn配置中添加查询参数来微调此提供程序的读取和写入方法。一般用法是read|write[option_name]=value

示例: phrase://PROJECT_ID:API_TOKEN@default?read[encoding]=UTF-8&write[update_descriptions]=0

请参阅下表中的可用选项及其默认值(如有适用)。

读取

为了从短语库中读取翻译,需要进行调用短语API的下载地区接口。这个调用提供了以下选项。

写入

为了将翻译写入短语库,需要进行调用短语API的上传接口。这个调用提供了以下选项。