2

我正在使用 gettext() 来处理我的网站的国际化。事实上,我使用 Smarty 作为模板引擎,我不得不通过 smarty 的标签来注释我的部分 html 代码:{* *}。问题是这些注释充满了我曾经开发但我不想摆脱的代码。因此 gettext() 读取内部(大括号之间)代码,并生成一个包含许多非必要翻译项的 .po 文件。如何防止自己拥有一个没有额外翻译项目的干净 po 文件。我的代码上的正则表达式或使用 gettext() 设置的参数?

4

1 回答 1

2

xgettext手册中,这些是支持的语言:C、C++、ObjectiveC、PO、Shell、Python、Lisp、EmacsLisp、librep、Scheme、Smalltalk、Java、JavaProperties、C#、awk、YCP、Tcl、Perl、PHP、GCC -source、NXStringTable、RST、Glade

因此,除非其中一种语言具有类似聪明的注释 {* *},否则我认为您不能(轻松)绕过注释代码。

但是,我猜测可能的解决方法是以某种方式编译所有模板,然后跨 *.php 文件而不是 *.tpl 运行 poedit。由于 smarty 注释不会包含在编译的模板中,它们将被排除在外

于 2012-12-27T21:54:43.003 回答