xgettext 不提取 HTML 属性中的字符串
xgettext does not extract string in HTML attribute
我正在使用 Timber 作为模板引擎(用于 Wordpress 的 twig)开发 Wordpress 网站。我想通过 PoEdit(使用 xgettext)使用 Wordpress gettext 机制翻译界面。
模板片段:
<form action="/{{ current_language }}/api/search/{{ viewModel.currentSuperCategory.key }}"
method="post"
class="search-results__search"
id="search-form">
<input placeholder="{{ __('City, region, ZIP', text_domain) }}…"
class="input search-results__search__input"
name="search-query"
type="text"
data-search-autocomplete />
我正在使用 PoEdit 从 *.twig 文件中提取字符串。
如果我将 {{ __('City, region, ZIP', text_domain) }} 放在 上模板中的一个单独的行,但它 在放置在输入占位符中时 不起作用,如上面的代码片段所示。
我按照此处的说明配置了 PoEdit:https://github.com/jarednova/timber/wiki/Text-Cookbook#generating-po-files-using-poedit
有人知道为什么会这样吗? xgettext 是否忽略 HTML 属性中的字符串?
另一个例子:
在以下情况下,将提取字符串进行翻译:
<i class="fa fa-envelope"></i>
{{ __('Search subscription', text_domain) }}
{{ __('Save free search subscription', text_domain) }}
但以下情况则不然:
<i class="fa fa-envelope"></i>
<span data-rt-xs="{{ __('Search subscription', text_domain) }}" data-rt-lg="{{ __('Save free search subscription', text_domain) }}"></span>
那是因为您实际上并不是从“HTML 属性”中提取,而是从 xgettext
不支持的模板语言中提取。为了解决这个问题,我猜,使用该页面上的粗 Python hack。实际上,你在 xgettext/Poedit 关于文件包含的内容 上撒谎,坦率地说,结果是意料之中的。该文件是有效的 Python 文件吗?不,不是,是 Twig。当你误导工具关于语言的时候,你不能真的期望它被正确解析。
相反,我建议按照该页面还推荐的方式进行操作,这是一种更好的方法:
A nicer solution is to use Twig-Gettext-Extractor, a special Twig parser to Poedit. The linked page contains instructions on how to set it up.
我正在使用 Timber 作为模板引擎(用于 Wordpress 的 twig)开发 Wordpress 网站。我想通过 PoEdit(使用 xgettext)使用 Wordpress gettext 机制翻译界面。
模板片段:
<form action="/{{ current_language }}/api/search/{{ viewModel.currentSuperCategory.key }}"
method="post"
class="search-results__search"
id="search-form">
<input placeholder="{{ __('City, region, ZIP', text_domain) }}…"
class="input search-results__search__input"
name="search-query"
type="text"
data-search-autocomplete />
我正在使用 PoEdit 从 *.twig 文件中提取字符串。
如果我将 {{ __('City, region, ZIP', text_domain) }} 放在 上模板中的一个单独的行,但它 在放置在输入占位符中时 不起作用,如上面的代码片段所示。
我按照此处的说明配置了 PoEdit:https://github.com/jarednova/timber/wiki/Text-Cookbook#generating-po-files-using-poedit
有人知道为什么会这样吗? xgettext 是否忽略 HTML 属性中的字符串?
另一个例子:
在以下情况下,将提取字符串进行翻译:
<i class="fa fa-envelope"></i>
{{ __('Search subscription', text_domain) }}
{{ __('Save free search subscription', text_domain) }}
但以下情况则不然:
<i class="fa fa-envelope"></i>
<span data-rt-xs="{{ __('Search subscription', text_domain) }}" data-rt-lg="{{ __('Save free search subscription', text_domain) }}"></span>
那是因为您实际上并不是从“HTML 属性”中提取,而是从 xgettext
不支持的模板语言中提取。为了解决这个问题,我猜,使用该页面上的粗 Python hack。实际上,你在 xgettext/Poedit 关于文件包含的内容 上撒谎,坦率地说,结果是意料之中的。该文件是有效的 Python 文件吗?不,不是,是 Twig。当你误导工具关于语言的时候,你不能真的期望它被正确解析。
相反,我建议按照该页面还推荐的方式进行操作,这是一种更好的方法:
A nicer solution is to use Twig-Gettext-Extractor, a special Twig parser to Poedit. The linked page contains instructions on how to set it up.