【问题标题】:xgettext fails to extract tag attributesxgettext 无法提取标签属性
【发布时间】:2021-12-07 03:49:36
【问题描述】:

我对@9​​87654323@ HTML 模板中缺少标签属性感到困惑,例如:

xgettext --keyword=_ --language=Python -o - - <<EOF
<!DOCTYPE html>
<html>
  <head>
    % msg = _('A translatable string')
    <title>{{ _('Page title') }}</title>
  </head>
  <body>
    <a href="#" title="{{ _('title') }}">_('Link text')</a>
  </body>
</html>
EOF

返回

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-10-20 11:52+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#: standard input:4
msgid "A translatable string"
msgstr ""

#: standard input:5
msgid "Page title"
msgstr ""

#: standard input:8
msgid "Link text"
msgstr ""

其中atitle 属性被跳过。

FWIW,模板语言是 Python bottleSimpleTemplate Engine 与标准 pybabel 不兼容。

(说实话,使用pybabel 的javascript 提取器,您将得到相同的结果——即忽略标签属性,我宁愿将其与以下babel.cfg 一起使用)

[python: **/**.py]
[javascript: views/**.html]

我做的其他尝试:使用与 SimpleTemplate Engine 的模板继承语法不兼容的 Jinja2 提取器{{!base}}

【问题讨论】:

    标签: python jinja2 bottle python-babel xgettext


    【解决方案1】:

    我最终破解了 jinja2.Environment 初始化,因此将 {{!base}} 命令视为注释。

    [python: **/**.py]
    [jinja2: views/**.html]
    comment_start_string = {{!
    comment_end_string = }}
    silent=False
    

    这样它就不会在转义的打印中找到任何翻译 - 这就是 {{! ... }} 在 SimpleTemplate Engine 中的用途,应该是您想要转义翻译文本的罕见情况。

    python 中的 %&lt;% ... %&gt; 中的翻译也不知何故被跳过了,我还没有找到解决办法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-06
      • 1970-01-01
      • 2021-07-27
      • 2022-10-21
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      相关资源
      最近更新 更多