roydejong / twig-gettext-extractor
(已更新至 Twig 2.2) Twig Gettext Extractor 是一个 Poedit 兼容的工具,可以从 twig 模板中提取翻译。
Requires
- php: >=5.5.9
- symfony/filesystem: ~3.0
- symfony/translation: ~3.0
- twig/extensions: ~1.4
- twig/twig: ~2.2
Requires (Dev)
- phpunit/phpunit: ~4.8
This package is auto-updated.
Last update: 2024-08-29 01:59:43 UTC
README
Twig Gettext Extractor 是一个 Poedit 兼容的工具,可以从 twig 模板中提取翻译。
此分支
大家好。以下是一些此分支提供的内容
- 此分支旨在与 twig 版本 2 兼容。这是一个小窍门,但它是有效的。
- 移除了 symfony 依赖项,这可能使安装变得更容易。
- 您可以通过添加
--filter
参数来添加 "dummy filters",以防止提取器在遇到会导致模板解析中断的用户定义过滤器时崩溃(提示:在提取器命令的--files
部分之前添加此内容)。 - 如果由于任何原因提取失败,日志文件将被输出到 gettext 提取器库所在的目录。
此分支可在 Packagist 上作为 composer 包提供,以便您方便使用
composer require roydejong/twig-gettext-extractor
或者,要全局安装(到您的家目录) - 推荐
composer global require roydejong/twig-gettext-extractor
原始文档
安装
手册
本地
下载 twig-gettext-extractor.phar
文件,并将其存储在您的计算机上的某个位置。
全局
您可以使用以下命令轻松从系统中的任何位置访问 twig-gettext-extractor
$ sudo wget https://github.com/umpirsky/Twig-Gettext-Extractor/releases/download/1.2.0/twig-gettext-extractor.phar -O /usr/local/bin/twig-gettext-extractor $ sudo chmod a+x /usr/local/bin/twig-gettext-extractor
然后,只需运行 twig-gettext-extractor
。
Composer
本地
$ composer require umpirsky/twig-gettext-extractor
全局
$ composer global require umpirsky/twig-gettext-extractor
请确保您的 PATH
中有 ~/.composer/vendor/bin
,然后您就可以开始了
$ export PATH="$PATH:$HOME/.composer/vendor/bin"
如果您想在重启后保留此更改,别忘了在 .bashrc
文件中添加此行。
设置
默认情况下,Poedit 没有解析 Twig 模板的能力。可以通过添加一个额外的解析器(编辑 > 首选项 > 解析器)来解决这个问题,如下所示
- 语言:
Twig
- 扩展名列表:
*.twig
- 调用
- 解析器命令:
<project>/vendor/bin/twig-gettext-extractor --sort-output --force-po -o %o %C %K -L PHP --files %F
(将<project>
替换为您项目的绝对路径) - 关键字列表中的项目:
-k%k
- 输入文件列表中的项目:
%f
- 源代码字符集:
--from-code=%c
- 解析器命令:
现在您可以更新您的目录,Poedit 将将其与您的 twig 模板同步。
自定义扩展
Twig-Gettext-Extractor 注册了一些默认的 twig 扩展。但是,如果您正在使用自定义扩展,您需要先注册它们,然后再提取数据。为了实现这一点,请将 bin 文件复制到某个自定义位置。一种常见的做法是:cp vendor/bin/twig-gettext-extractor bin/twig-gettext-extractor
现在您可以在 这里 添加您的自定义扩展
$twig->addFunction(new \Twig_SimpleFunction('myCustomExtension', true)); $twig->addFunction(new \Twig_SimpleFunction('myCustomExtension2', true));
自定义过滤器(在此分支中)
如果您正在使用自定义的用户定义 twig 过滤器,提取器在遇到它们时会中断。
如果您想注册自定义过滤器,可以修改 Poedit 中的解析器命令。
这样做将创建一个虚拟过滤器,它将返回输入而不修改它。
例如,如果您有一个 currency
过滤器,将解析器命令修改如下
twig-gettext-extractor --sort-output --force-po -o %o %C %K -L PHP --filters currency --files %F
--filters
命令必须在 gettext 参数之后但 --files
声明之前添加才能正常工作。您可以通过空格分隔多个过滤器来添加多个过滤器。