rw / translation
Requires
- google/cloud: ^0.257
- onehourtranslation/api2: ^1.0
- symfony/yaml: ^4.4.45
Requires (Dev)
- phpunit/phpunit: ^9
- dev-master
- 5.0.0
- 4.0.2
- v4.0.1
- v4.0.0
- v3.1.4.x-dev
- v3.1.4
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.x-dev
- 2.0.3
- v2.0.2.x-dev
- v2.0.2
- v2.0.1
- v2.0.0
- v1.92
- v1.91
- v1.90
- v1.89.5
- v1.89.4
- v1.89.3
- v1.89.2
- v1.89.1
- v1.89
- v1.88
- v1.87
- v1.86
- v1.85
- v1.84
- v1.83
- v1.82
- v1.81
- v1.80
- v1.79
- v1.78
- v1.77
- v1.76
- v1.75
- v1.74
- v1.73
- v1.72
- v1.71
- v1.70
- v1.69
- v1.68
- v1.67
- v1.66
- v1.65
- v1.64
- v1.63
- v1.62
- v1.61
- v1.60
- v1.21
- v1.5
- v1.4
- v1.3
- v1.2
- v1.1
- v1.0
- dev-feature/JFR-4206
- dev-develop
- dev-add-fi-to-nmt
This package is auto-updated.
Last update: 2024-09-06 02:16:55 UTC
README
安装
composer require revenuewire/translation
描述
使用 DynamoDB 或 Redis 作为缓存选项的翻译服务。我们还集成了两个翻译服务提供商,One Hour Translation 和 Google Cloud Translation。
OneHourTranslation 提供人工翻译服务,而 Google Cloud Translation 对 神经机器翻译 (NMT) 收取固定费用。两个服务提供商都提供简单的机器翻译,但本项目不支持。
要求
通常,您可以选择两种配置模式(实时或数据库)。
实时模式
实时模式使用 Google Cloud Translation API 直接将文本翻译为目标语言。您需要一个 Google Cloud 账户和密钥才能使用它。您还需要 Redis 缓存以获得更好的性能。目前尚不支持 memcached。
要求摘要
- Google Cloud 账户
- Redis
数据库模式
数据库模式使用 AWS DynamoDB 作为存储选择。Redis 建议使用但不是必需的。
要求摘要
- AWS DynamoDB
- Redis(可选)
配置
实时模式
$defaultLanguage = "en"; $supportLanguages = ["en", "fr", "zh"]; $redisConfig = [ "host" => "REDIS_HOST", "timeout" => "0.5", "port" => "6379", "prefix" => "t_2sx_", //optional, to prevent cache key collision ]; $gct = [ "project" => "GOOGLE_CLOUD_PROJECT_ID", "key" => "GOOGLE_CLOUD_PROJECT_KEY" ]; $translationService = new \RW\Translation(null, $supportLanguages, $cache, $defaultLanguage, $gct); //translate to Simple Chinese echo $translationService->translate("Hello World", "zh"); print_r($translationService->batchTranslate([ "hello" => "Hello World", "how-s-going" => "How's going?" ],"zh"));
数据库模式
安装
php vendor/revenuewire/translation/bin/cli.php \ --region=[AWS_REGION] \ --translation=[TRANSLATION_TABLE] \ --translation_queue=[TRANSLATION_QUEUE_TABLE] \ --translation_project=[TRANSLATION_PROJECT_TABLE] \ init
用法
$defaultLanguage = "en"; $supportLanguages = ["en", "fr", "zh"]; $dynamoConfig = [ "region" => "us-west-2", "table" => "YOUR TABLE NAME", "version" => "2012-08-10" ]; $redisConfig = [ "host" => "YOUR REDIS HOST", "timeout" => "0.5", "port" => "6379", "prefix" => "t_2sx_", //optional, to prevent cache key collision ]; $translationService = new \RW\Translation($dynamoConfig, $supportLanguages, $cache, $defaultLanguage); //translate to Simple Chinese echo $translationService->translate("Hello World", "zh"); print_r($translationService->batchTranslate([ "hello" => "Hello World", "how-s-going" => "How's going?" ],"zh"));
与翻译服务一起工作
一旦您浏览完所有页面,您的翻译表应已收集所有需要翻译的文本。
diff
计算现有文本和目标翻译文本之间的差异。例如,如果您的源表有一个英语单词 "Hello World",以下命令将生成两个队列项,旨在将 "Hello World" 翻译成中文和法语。
php vendor/revenuewire/translation/bin/cli.php \ --provider=[OTH or GCT] \ --region=[AWS_REGION] \ --translation=[TRANSLATION_TABLE] \ --translation_queue=[TRANSLATION_QUEUE_TABLE] \ --translation_project=[TRANSLATION_PROJECT_TABLE] \ diff zh fr
add
add 命令将所有待处理项目添加到项目中。这对于与 OneHourTranslation 一起工作很有用,因为 OneHourTranslation 对每批可以安排翻译的文本数量有限制。
php vendor/revenuewire/translation/bin/cli.php \ --region=[AWS_REGION] \ --translation=[TRANSLATION_TABLE] \ --translation_queue=[TRANSLATION_QUEUE_TABLE] \ --translation_project=[TRANSLATION_PROJECT_TABLE] \ --oth_pubkey=[ONE_HOUR_TRANSLATION_PUB_KEY] \ --oth_secret=[ONE_HOUR_TRANSLATION_SECRET] \ --oth_sandbox=[ONE_HOUR_TRANSLATION_SANDBOX] \ --gct_project=[GOOGLE_CLOUD_PROJECT] \ --gct_key=[GOOGLE_CLOUD_KEY] \ add
commit
将项目提交给服务提供商。仅 One Hour Translation 支持提交。
php vendor/revenuewire/translation/bin/cli.php \ --region=[AWS_REGION] \ --translation=[TRANSLATION_TABLE] \ --translation_queue=[TRANSLATION_QUEUE_TABLE] \ --translation_project=[TRANSLATION_PROJECT_TABLE] \ --oth_pubkey=[ONE_HOUR_TRANSLATION_PUB_KEY] \ --oth_secret=[ONE_HOUR_TRANSLATION_SECRET] \ --oth_sandbox=[ONE_HOUR_TRANSLATION_SANDBOX] \ commit
push
将翻译后的文本推回到翻译表中。
php vendor/revenuewire/translation/bin/cli.php \ --region=[AWS_REGION] \ --translation=[TRANSLATION_TABLE] \ --translation_queue=[TRANSLATION_QUEUE_TABLE] \ --translation_project=[TRANSLATION_PROJECT_TABLE] \ push
支持的语言
大多数语言代码参数符合 ISO-639-1 标识符,除非另有说明。