localization - 如何将 ICU 格式的字符串转换为 TMX(翻译记忆交换)文件?
问题描述
我正在尝试将多个数据源和语言环境聚合到一个TMX 翻译记忆库文件中。
我似乎找不到任何关于如何转换为 TMX 格式的好的文档/现有工具。这些转换器是我发现的最接近的东西,但它们似乎不足以格式化 ICU 语法。
现在我已经将我的字符串提取为 JSON 格式,看起来像这样:
{
foo_id: {
en: "This is a test",
fr: "Some translation"
},
bar_id: {
en: "{count, plural, one{This is a singular} other{This is a test for count #}}",
fr: "{count, plural, one{Some translation} other{Some translation for count #}}"
}
}
根据有多少翻译供应商在提交内容时允许 ICU 格式化,然后将他们的 TM 导出为.tmx
文件,感觉这一定是一个已解决的问题,但信息似乎很少,有人有这方面的经验吗?我正在使用formatjs编写 ICU 字符串。
解决方案
由于 TMX 仅真正支持带有简单占位符(不是复数形式)的普通段,因此从 ICU 转换为 TMX 并不容易。
翻译工具对 ICU 的支持似乎相当不完整,但还有另一种格式可以做类似的工作并且有更好的支持:.po gettext。通过 .po 访问 TMX 可能有效:
推荐阅读
- python - TableView重新实现QAbstractTableModel后表格中没有数据显示
- go - Using go-kit logger api missing methods
- three.js - 在 THREE.js 中设置定向光的目标
- javascript - 如何检查双 v-for 和是否在两者中然后更改样式
- meteor - fs 找不到文件
- java - 无法从实时数据库中删除值
- asp.net-mvc - 在同一个项目中添加 ASP.NET MVC 和 Web API Web 应用程序
- python - 如何在更大的数组中搜索数组片段,可能使用阈值
- python - Django中的类视图,Html不显示
- sockets - socket recv 函数如何检测消息结束