xgettext 能够从各种源语言中提取字符串进行翻译。
-L, --language=NAME
recognise the specified language (C, C++, ObjectiveC, PO,
Shell, Python, Lisp, EmacsLisp, librep, Scheme, Smalltalk,
Java, JavaProperties, C#, awk, YCP, Tcl, Perl, PHP, GCC-source,
NXStringTable, RST, Glade, Lua, JavaScript, Vala, Desktop)
(您的确切列表可能因平台而异)
它还根据文件扩展名猜测类型,因此:
$ xgettext -o out.pot in.php
将使用 PHP 解析器而不需要-L PHP
.
但是,我希望翻译不是这些语言的文件。是否可以直接将字符串列表提交到 xgettext 中?还是教它一门新语言?
例如,考虑一些使用自定义辅助函数的 Handlebars 模板__
,如下所示:
<title>{{__ 'My Website'}}</title>
可以使用 grep 从文件中提取所有字符串:
$ grep '\{\{__ (.+?)\}\}' -Ero views
views/index.hbs:{{__ 'My Website'}}
但是有什么方法可以将此信息输入 xgettext 以生成有效的 pot 文件?
注意:虽然我很欣赏这种特定情况的解决方案,但问题实际上是关于未知语言的一般情况。