我正在编写一个用Vala编写的国际化桌面程序,其中使用extern JSON file来存储语言列表。
我在l10n中使用gettext,所以如果我从json文件中获取字符串并执行类似_(string_var)
的操作,我就可以获得翻译后的字符串。问题是我不知道如何使用xgettext或类似工具将字符串添加到pot文件中。
任何想法??
答案 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
[...]