[英]Extracting gettext strings from Javascript and HTML files (templates)
我知道至少有两种方法可以从 .js 文件中提取 gettext 字符串 - 在 python 模式下使用 gettext 解析器(我听说它有一些缺点)和用 python 编写的 Babel。
有没有办法从 HTML 文件中提取 gettext 字符串 - 或者更准确地说 - Javascript 模板(下划线、小胡子等)。 据我所知,Babel 或 gettext 都不会这样做。
我的一个朋友试图用 Babel 来做这件事,但它有一些严重的问题,比如缺少一些翻译等等......
更新:一位朋友对我进行了一些指导,所以现在看来我可以按照我想要的方式提取所有字符串。 我唯一缺少的是“翻译评论”。 我使用的命令是这样的:
find . -iname '*.html' -o -iname '*.js' | xargs xgettext --language=Python --from-code=utf-8 --keyword=pgettext:1c,2 --keyword=npgettext:1c,2,3
这将在关键字中包含 pgettext 和 npgettext
更新 2:我发现要提取 HTML 标记属性内的 gettext 消息,我必须在 JS 部分之间插入换行符。 例如,我必须转换这个:
<a href="" title="<%= ST.i18n.gettext('Click to add another row') %>"></a>
进入这个:
<a href="" title="
<%= ST.i18n.gettext('Click to add another row') %>"></a>
Python 模式下的 xgettext 不会提取 gettext 消息,如果它在同一行上。 不过,这是一个快速的 hack,似乎对我有用。
更新 3:似乎 PHP 模式下的 xgettext 从 HTML 中提取消息没有问题(至少使用 Undsrscore 模板),这也适用于翻译器注释。
find ../app -iname '*.html' | xargs xgettext --language=PHP --from-code=utf-8 -c --keyword=gettext --keyword=ngettext:1,2 --keyword=pgettext:1c,2 --keyword=npgettext:1c,2,3 -o translations.po
这样,我可以在模板文件中保持正常格式:
<a href="" title="<%= ST.i18n.gettext('Click to add another row') %>"></a>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.