我正在使用 gettext() 来处理我的网站的国际化。事实是,我使用 Smarty 作为模板引擎,并且我必须通过 smarty 的标签来注释部分 html 代码:{* *}。问题是这些注释充满了我曾经开发过但我不想删除的代码。因此 gettext() 读取内部(大括号之间)代码,并生成一个包含许多非必要翻译项的 .po 文件。我怎样才能防止自己拥有一个干净的 po 文件,没有额外的翻译项目。我的代码中的正则表达式或使用 gettext() 设置的参数?
最佳答案
来自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
因此,除非其中一种语言具有类似 smarty 的注释,{* *},否则我认为您无法(轻松)绕过注释代码。
但是,我猜测可能的解决方法是以某种方式编译所有模板,然后在 *.php 文件(而不是 *.tpl)上运行 poedit。由于聪明的注释不会包含在编译的模板中,因此它们将被排除
关于html - 如何防止使用 gettext() 翻译注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14052604/