如何从JSON文件中获取字符串?

时间:2014-07-28 07:51:27

标签: json gettext xgettext

我正在编写一个用Vala编写的国际化桌面程序,其中使用extern JSON file来存储语言列表。

我在l10n中使用gettext,所以如果我从json文件中获取字符串并执行类似_(string_var)的操作,我就可以获得翻译后的字符串。问题是我不知道如何使用xgettext或类似工具将字符串添加到pot文件中。

任何想法??

2 个答案:

答案 0 :(得分:0)

如果工具jq(http://stedolan.github.io/jq/)是您的选项,则下面可能有效;

$ curl -s https://raw.githubusercontent.com/chavaone/gnomecat/master/data/languages.json | jq .languages[43].name
"English"

答案 1 :(得分:0)

我最终使用的解决方案是仅在我想翻译该字符串时修改JSON文件以使用双引号字符串。例如:

{
    'code' : 'es',
    'name' : "Spanish; Castilian",
    'pluralform' : 'nplurals=2; plural=(n != 1);',
    'default-team-email': 'gnome-es-list@gnome.org'
}

在上一段JSON文件中,我想要翻译的唯一字符串是“Spanish; Castillian”。然后在POTFILES.in中,我只使用gettext/quoted类型。

# List of source files containing translatable strings.
# Please keep this file sorted alphabetically.
[encoding: UTF-8]
[type: gettext/quoted]data/languages.json
[type: gettext/quoted]data/plurals.json
[type: gettext/glade]data/ui/appmenu.ui

[...]