|
0
|
| Florian Baierl · 技术社区 · 6 年前 |
|
|
1
2
我有一个
这些方法既可以作为执行翻译的手段,也可以作为xgettext提取文本的标记
我用的是这样的:
等 通过这种设置,我可以像这样运行xgettext:
重要的部分是
不过,Scala的三重引号不受支持。xgettext在遇到“未终止文字”时会发出警告,但无论如何都会继续。
IIRC,甚至
从实践中得出的几个观察结果并不能直接回答最初的问题:
|
|
|
2
1
Perl模块 Locale::XGettext 允许您为几乎所有文本格式编写自己的xgettext变体。您只需要为能够提取字符串的语言/格式提供解析器。 Extending Xgettext With Locale::XGettext .Java的示例提取器可在 https://github.com/gflohr/Locale-XGettext/tree/master/samples/Java 免责声明:我是上述所有软件和文档的作者!
如果与Perl代码的接口听起来太复杂,您也可以用自己选择的语言为Scala编写一个解析器,在xgettext之前运行该解析器,并将所有可翻译字符串转储为您的版本所需的格式
然后,只需使用生成的虚拟源文件作为
值得注意的是
最后,gettext工具的源代码被设计为可扩展的。如果你能用C语言为Scala语言编写字符串提取器和格式检查器,你可以添加Scala语言。但是,你不能在运行时添加对另一种语言的支持,但你必须编译自己版本的
|