Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress xgettext不提取HTML属性中的字符串_Wordpress_Twig_Poedit_Xgettext_Timber - Fatal编程技术网

Wordpress xgettext不提取HTML属性中的字符串

Wordpress xgettext不提取HTML属性中的字符串,wordpress,twig,poedit,xgettext,timber,Wordpress,Twig,Poedit,Xgettext,Timber,我在Wordpress网站上工作,使用木材作为模板引擎(Wordpress的细枝)。我想通过PoEdit(使用xgettext)使用Wordpress gettext机制翻译接口 模板片段: <form action="/{{ current_language }}/api/search/{{ viewModel.currentSuperCategory.key }}" method="post" class="search-results__search" id="searc

我在Wordpress网站上工作,使用木材作为模板引擎(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) }}&hellip;"
       class="input search-results__search__input"
       name="search-query"
       type="text"
       data-search-autocomplete />

我正在使用PoEdit从*.twig文件中提取字符串

如果我将{{{uuuuu('City,region,ZIP',text\u domain)}放在模板中的单独一行上,则它工作的,但是当它放置在输入占位符中时,它不工作,如上面的代码段所示

我配置了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 Attributes”中提取,而是从
xgettext
不支持的模板语言中提取。我猜,为了解决这个问题,您正在使用该页面中的gross Python hack。实际上,您在文件包含的内容上对xgettext/Poedit撒谎,坦率地说,结果是意料之中的。该文件是有效的Python文件吗?不,它不是,它是树枝。当您在语言方面误导工具时,您不能真正期望它被正确解析

相反,我建议做该页面也建议做的事情,作为一种更好的方式:

一个更好的解决方案是使用一个特殊的细枝解析器进行Poedit。链接页面包含有关如何设置的说明


谢谢你的回答。关于Python变通方法是一种黑客,您当然是对的。我还尝试过使用细枝Gettext提取器。但是命令本身不起作用:RuntimeException:Gettext命令
“xgettext--排序输出[…]失败,错误代码为1,输出:
。我无法调试它,因为它是一个系统命令,错误并没有真正起到作用。不过,我会尝试让它工作。最好的两个解决方案是:(1)让Twig创建所有模板文件的缓存版本。这些是实际的PHP文件。然后让
xgettext
或Poedit对这些缓存文件进行操作。(2)Poedit 2 Pro似乎具有内置的Twig支持。另请参阅和