Json与翻译

Json与翻译,json,gettext,Json,Gettext,我有一个json文档,其中一些字符串必须翻译。例如(组合语法),mydata.json: { "greeting": "trans:Hello" } 在这种情况下,字符串“Hello”被标记为可翻译,并带有前缀trans:(这似乎不太可靠)。然后,我将使用工具生成目录: xgettext data.json 然后将字符串翻译成我的目标语言。然后,我的应用程序将使用我的原始json和翻译映射: translations = { "en" : { "Hello": "Hello"

我有一个
json
文档,其中一些字符串必须翻译。例如(组合语法),my
data.json

{
  "greeting": "trans:Hello"
}
在这种情况下,字符串
“Hello”
被标记为可翻译,并带有前缀
trans:
(这似乎不太可靠)。然后,我将使用工具生成目录:

xgettext data.json
然后将字符串翻译成我的目标语言。然后,我的应用程序将使用我的原始json和翻译映射:

translations = {
  "en" : {
    "Hello": "Hello"
  },
  "es" : {
    "Hello": "Hola"
  }
}
并将生成最终的json(对于目标语言
es
):


在json中是否有指定可翻译字符串的标准方法,以便可以通过标准工具处理这些字符串以生成消息目录?

您可以使用适当的gettext语言预处理器来提取标记的字符串,这些字符串通常用
(string)
gettext(string
)标记,并创建一个包含这些字符串的gettext目录(
POT
文件)。在为特定语言创建本地化版本的目录后,可能会使用诸如
poedit
之类的工具,在本例中,您会将其转换为JSON表示形式——有关更多信息,以及有关在JavaScript中处理gettext样式消息目录的标准方法的想法,看看——然后在运行时将这个JSON格式的目录加载到您的应用程序中,并通过为此目的定义的实用程序访问它

符号
(字符串)
有两种效果。首先,它为提取器标记字符串。其次,在运行时,它调用一个名为
\uu
的函数来查找目录中的字符串并返回本地化值


JSON的问题在于,
(string)
显然是无效的JSON语法。如果可能的话,考虑把这个从JSON文件改为包含对象的JS文件。< /P> < P>回答旧的问题以供参考。可以从json生成一个临时JS源代码,如
my_strings.JS

_("first-string-to-translate");    
_("second-string-to-translate");
...
_("last-string-to-translate");

然后将这个
my_strings.js
传递给xgettext。

它必须是有效的json。gettest处理器理解json吗?我猜您指的是字符串提取器
xgettext
。如果您将语言设置为JavaScript,那么就可以理解JSON。正如我所解释的,问题在于
(“string”)
格式在JSON文件中无效。因此,您需要使用包含JavaScript对象的JavaScript文件。
_("first-string-to-translate");    
_("second-string-to-translate");
...
_("last-string-to-translate");