如何防止使用gettext()翻译注释



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

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

所以除非其中一种语言有类似于注释{* *}的注释,否则我不认为您可以(轻松地)绕过注释的代码。

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

最新更新