ayacoo / xliff
TYPO3 XLIFF 迁移
Requires
- ext-dom: *
- ext-libxml: *
- ext-simplexml: *
- phpoffice/phpspreadsheet: ^1.28
README
1 功能
- 将 XLIFF 文件从版本 1.0 迁移到 1.2
- 在定义的语言中生成 XLIFF 文件
- 在定义的语言中通过 Deepl 自动翻译生成 XLIFF 文件
- 以 csv 或 xlsx 文件格式导出 XLIFF 文件
2 使用方法
2.1 安装
使用 Composer 安装
推荐使用 Composer 安装该扩展。
在您的基于 Composer 的 TYPO3 项目中运行以下命令
composer require --dev ayacoo/xliff
不要忘记在扩展管理器中激活扩展,并在必要时/希望的情况下定义 Deepl API 设置。同时:由于我们使用 Deepl 的缓存,还需要进行 DB 比较。
注意:此扩展仅在开发模式下应处于活动状态!
2.2 CLI 命令
基础
此实用工具在 Resources/Private/Language 文件夹中搜索所有扩展 xlf 文件。之后,XLIFF 标头将被重建,并使用原始文件中的 trans-unit 元素。
将 XLIFF 1.0 迁移到 1.2
vendor/bin/typo3 xliff:migrate --extension=EXTENSION_NAME --overwrite=(1|0) --empty=(1|0) --path=SUBFOLDER --file==FILENAME
所有 XLIFF 文件将从版本 1.0 迁移到 1.2。如果您想禁用文件的覆盖并创建原始文件的副本,也可以。
也可以使用 empty
属性来迁移空 XLIFF 文件。
如果您想自定义单个文件,请使用 file
属性。如果此文件在子文件夹中,请添加 path
属性。
为定义的语言生成和/或翻译 XLIFF 文件
使用此命令,例如,应从扩展创建 locallang.xlf 的翻译变体。为此,您可以在 languages
参数中指定逗号分隔的 isocodes 列表。在此过程中,还会直接创建版本 1.2 的 XLIFF。
然后自动添加目标元素,其中包含原始源文本。CDATA 也被考虑在内。所有没有目标语言属性的 xlf 文件都将迁移。
如果您使用参数 translate 并将 true
,您还可以自动将文本从原始内容翻译。为此,使用 deepl 或 Google Translate。为此,必须存在 API 帐户及密钥。
在此处尚不清楚 Deepl API 是否有限制。如有疑问,最好是逐文件进行翻译。
vendor/bin/typo3 xliff:generate --extension=EXTENSION_NAME --languages=ISOCODES --translate=(0|1)
导出 xliff 文件
翻译机构有时需要不同的文件格式。因此,还有一个 CSV 导出。您可以导出任何 xlf 文件,或者您可以使用 file
和 path
参数精确控制一个文件。
vendor/bin/typo3 xliff:export --extension=EXTENSION_NAME
vendor/bin/typo3 xliff:export --extension=EXTENSION_NAME --file=FILENAME --path=PATH
如果您需要导出到 Excel 格式,这是如何操作的
vendor/bin/typo3 xliff:export --extension=EXTENSION_NAME --format=xlsx
如果您需要导出到 JSON 格式,这是如何操作的
vendor/bin/typo3 xliff:export --extension=EXTENSION_NAME --format=json
默认情况下,在最后创建一个导出文件,包含所有 xlf 文件。如果您想为每个 xlf 文件生成一个生成的文件,请使用参数 singleFileExport
。
vendor/bin/typo3 xliff:export --extension=EXTENSION_NAME --singleFileExport=(0|1)
3 文档
4 感谢
该扩展的开发得到了TYPO3代理机构brandung的支持。
使用了扩展wv_translate的DeeplService,并进行了轻微的调整。
当然,感谢deepl提供的卓越服务。