wickedone / phrase-translation-provider
symfony 语句翻译提供程序桥接
Requires
- php: ~8.2.0 || ~8.3.0
- psr/cache: ^3.0
- psr/event-dispatcher: ^1.0
- symfony/event-dispatcher-contracts: ^3.4.0
- symfony/http-client: ^5.4 || ^6.4 || ^7.0
- symfony/mime: ^5.4 || ^6.4 || ^7.0
- symfony/translation: ^5.4 || ^6.4 || ^7.0
Requires (Dev)
- infection/infection: ^0.27.8
- phpstan/phpstan: ^1.10.46
- phpstan/phpstan-deprecation-rules: ^1.1.4
- phpstan/phpstan-php-parser: ^1.1.0
- phpstan/phpstan-phpunit: ^1.3.15
- phpunit/phpunit: ^10.4.2
- roave/security-advisories: dev-latest
- vimeo/psalm: ^5.16.0
This package is auto-updated.
Last update: 2024-09-26 15:42:40 UTC
README
symfony 语句翻译提供程序桥接
⚠️ 这个翻译提供程序自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的上传接口。这个调用提供了以下选项。