diglin / oro-deepl
允许从OroPlatform应用程序中提取未翻译的字符串,并通过deepl网络服务进行翻译。需要Deepl开发者账户
Requires
- deeplcom/deepl-php: 1.4.0
- oro/platform: >=4.2.0 <5.2
This package is auto-updated.
Last update: 2024-09-08 12:53:54 UTC
README
翻译无聊?不再无聊,有了强大的机器学习工具DeepL的帮助。感谢此包,您可以翻译OroPlatform数据库中所有未翻译的字符串,并将它们导出为YAML或CSV文件以供重用。
翻译将注意不翻译带有以下标签的字符串:"如果这个 {{ 不会被翻译 }} 或者我的亲爱的 %hello world% 平安",
如果您在自己的包中创建了翻译文件,在通过Deepl进行翻译之前,它们需要被加载到数据库中。您必须先使用命令 "oro:translation:convert"。
特别推荐
通过DeepL API翻译是收费的。因此,如果在导出时出现任何问题,请现在不要再次运行相同的命令。相反,打开... TODO(因为我必须检查确切的操作...)
CSV导出
在这种情况下,导出CSV文件,英语值也将导出,可用于人工翻译或检查翻译值。检查翻译后,使用命令 "diglin:oro:deepl:translate:convert" 将CSV转换为位于 translations
文件夹中的YAML文件,然后将其内容加载到您的OroPlatform数据库中。在生产环境中,您只需在部署后将生成的文件放置在 translations
文件夹中,然后运行命令 oro:platform:update --force
(运行它之前请进行数据库备份)。
YAML导出
生成的文件可以直接用于加载到您的应用程序中。如果需要,OroPlatform还可以将其加载到您的数据库中(例如,允许后端用户编辑这些翻译)。与CSV导出相同,在生产环境中,您只需将生成的文件放置在 translations
文件夹中,然后部署后运行命令 oro:platform:update --force
(运行它之前请进行数据库备份)。
安装
composer require diglin/oro-deepl
要求
- OroPlatform 4.x, 5.0, 5.1(可能适用于旧版本,但未测试)
配置
如果您想自动翻译字符串,则需要DeepL API密钥。
- 请访问OroPlatform后台办公室,菜单
系统 > 配置 > 系统配置 > 集成 > DeepL
- 或通过参数
deepl-api-key
提供密钥。 - 或将密钥设置在
var/deepl-license.key
文件中。
如果没有API密钥,将显示错误消息,但仍然会生成空翻译。
使用示例
导出要翻译的值的空字符串到CSV
bin/console --env=prod diglin:oro:deepl:translate:export --format csv --disable-deepl de_DE
将翻译导出到CSV文件,将提供英语值以供翻译检查
bin/console --env=prod diglin:oro:deepl:translate:export --format csv de_DE
直接将翻译导出到YAML文件,现有数据将被合并,如果发生重复则被覆盖。生成的文件将包含时间戳
bin/console --env=prod diglin:oro:deepl:translate:export --format yml de_DE
直接将翻译导出到YAML文件,现有数据将被合并,如果发生重复则被覆盖。现有的域翻译文件(例如,messages.de_DE.yml)将被覆盖。
bin/console --env=prod diglin:oro:deepl:translate:export --format yml --overwrite de_DE
仅翻译消息域
bin/console --env=prod diglin:oro:deepl:translate:export --domains messages de_DE
计算将导出的字符数量,用于估算DeepL的费用
bin/console --env=prod diglin:oro:deepl:translate:export --domains messages,jsmessages,workflows,validators,security --simulate de_DE
加载先前生成的CSV文件,将其转换为YAML格式,导入数据库并重建语言缓存,无需中断前端
bin/console --env=prod diglin:oro:deepl:translate:convert --rebuild-cache translations/messages.de_DE.csv de_DE
你有小贴士吗?
好吧,我们承认diglin:oro:deepl:translate:export
是一个长的命令,但至少它描述了它所做的事情。如果你愿意,可以使用这个快捷方式:d:o:d:t:e
路线图
- 为后端用户在不同区域(CMS、产品、翻译管理)添加翻译按钮-
许可证
见MIT
作者
- Diglin GmbH
- https://www.diglin.com/
- @diglin_
- 在github上关注我!