如何使用 poedit 解析木材(树枝)模板并检测带引号的字符串以进行翻译

How to parse Timber (twig) templates with poedit and detect quoted strings to translate

我想用 poedit 解析 Timber 的 twig 模板,我需要翻译引用的内容。问题是我找不到不跳过引用内容的解析器。

示例:

<htmltag attribute="{{ __('value','textdomain') }}" />

有人知道用于检测引用内容(例如 html 属性内容)的 poedit 解析器吗?

当您使用 Poedit 时,不会自动识别 Twig 文件。要解决此问题,Timber’s documentation offers three options:

  • 每个 .twig 文件以 {#<?php#}
  • 开头
  • 或者使用 The Twig Gettext Extractor,一种«poedit 友好的工具,可以从 twig 模板中提取翻译»。
  • 或者使用 Python 解析器。请参阅documentation了解如何在 Poedit 中进行设置。

我选择了选项 3,效果很好。

我找到的解决方法是设置一个变量并将其用作我的属性值。

{% set attr_value = __('value', 'textdomain') %}
<a href='{{ attr_value }}'>link</a>

这样,PHP 和 Python 解析器就可以按照 Timber documentation 中的建议工作。

使用 Twig-Gettext-Extractor,由于无法识别 __() 函数,我得到一个 Twig-Error-Syntax。

与 OSX Sierra 有同样的问题,三个解决方案中的 none 对我有用:

  • 在我的 .twig 文件上使用 {#<?php#} 导致 poedit 无法识别我的字符串
  • 使用 Twig-Gettext-Extractor 抛出很多错误
  • 使用python编译也抛出很多错误

我使用第一个选项({#<?php#} 在我的 .twig 文件之上)解决了问题,但我还编辑了 PoEdit PHP 提取器,以便它也可以在 .twig 文件中搜索。 我希望这可以帮助,

干杯!