我们希望与翻译人员交换PO文件,并将这些文件转换为i18next的原生JSON格式。使用i18next-conv utility时,这听起来非常简单。
然而,i18next期望更多或更少的特殊键;例如,关于i18next命名空间,dot具有特殊含义。相比之下,gettext PO文件旨在为其消息ID 提供源字符串(使用原始语言)。
我们知道消息ID可以是任意的,因此可以直接映射到i18next密钥,但我们希望使用源字符串并使用PO文件,因为它们出于各种原因。
主要原因是我们想要使用的所有翻译工具,以及我们所有翻译人员都希望使用的翻译工具。使用符号键会翻译真正的痛苦。无论如何,我们从围绕此的辩论中发现,这主要是一个意见问题;我们有点做了我们的,我们想把这个限制作为这个问题的要求。
此外,我们想知道一般的工作流程。如何生成原始PO文件?如何维护翻译文件?
我们理解这些问题非常基础,但我们对于有关i18next-gettext集成的信息很少感到有些惊讶。 i18next-conv工具存在且与广告一样完美,但它实际上有用吗?人们真的使用它吗?如果是,我们的问题是否相关?
最后,我们对系统成熟度的期望有点过高吗?
答案 0 :(得分:3)
如果您想使用源字符串作为键,只需更改
即可nsseparator = ':::'
keyseparator = '::'
所以.
和:
可以毫无顾虑地在密钥内使用。
答案 1 :(得分:1)
您可以尝试使用https://github.com/cheton/i18next-text。它允许您使用i18next翻译而不需要key
作为字符串,并且您不必担心i18n键命名。此外,您还可以使用把手注册i18n助手。
以下是一个简单的例子:
var i18n = require('i18next'); // extends i18n object to provide a new _() method i18n._ = require('i18next-text')._; i18n._('Save your time and work more efficiently.');JSFiddle上的