3

我有一个想要本地化的项目。虽然大多数字符串都在源代码中,其中 xgettext/Poedit 在使用本地化函数调用包装时可以轻松找到它们,但有些字符串在纯 JSON 文件中,我将其用于数据存储。因为它只是 JSON,而不是真正的 JS,所以我不能使用函数调用。例如,一个小数据库:

一些数据库.txt

[
{ "id": 1, "name": "Xyz", "local": "AxWhyZzz", /*...*/ },
/*...*/
]

有没有办法使用 xgettext 从 JSON 文件中提取“本地”值?如果没有,我有什么选择?创建一个包含所有本地值的源文件,并调用_?

或者,我当然可以编写自己的解析器,或者修改 gettext,但如果可用,我更愿意使用现有的解决方案。

4

2 回答 2

1

不,没有办法。JSON 只是一种通用的容器格式,值的实际含义是特定于域/应用程序的——并且xgettext必须理解含义才能知道要提取什么。它怎么能理解你的本土格式?

对于 XML 文件,这由ITS ( v2 ) 解决,gettext(以及 Poedit)从 0.19.7 开始支持。但是对于 JSON,什么都不存在……然而。不过,还有一些工作正在完成(请参见此处此处此处)。

于 2016-02-13T09:04:13.767 回答
-1

这是通过 XMLHttpRequest 将它们作为 JS 数组获取的方式:http: //codepen.io/KryptoniteDove/post/load-json-file-locally-using-pure-javascript

如果您通过添加变量 id somevar来修改它以提供进一步的访问权限,那么还有一种方法可以将 somedb.txt 包含为有效的 js :

somevar = [
{ "id": 1, "name": "Xyz", "local": "AxWhyZzz", /*...*/ },
/*...*/
]
于 2016-02-12T23:13:20.560 回答