我花了很多时间试图弄清楚如何在基于Slim的应用程序中“编译”我的所有Twig模板,以确保xgettext
准备好接收所有字符串以进行进一步处理和翻译。
一旦我将正确的信息整合在一起,结果就变得非常容易了,但我在互联网上找不到任何地方告诉我如何在Slim应用程序中使用Twig做到这一点。
答案 0 :(得分:0)
Twig文档有一个很好的how to extract template strings示例。但是,在您能够做到这一点之前,您需要将Twig环境从Slim应用程序中移除as described in the Slim Knowledge Base。
所以,这里是Twig文档中示例的修改版本:
// Specify where your templates are located.
$tplDir = '/path/to/your/templates';
// Get the Twig environment from your Slim app, $app.
$twig = $app->view()->getEnvironment();
// Iterate over all your templates.
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($tplDir), RecursiveIteratorIterator::LEAVES_ONLY) as $file)
{
// Force compilation.
if ($file->isFile()) {
$twig->loadTemplate(str_replace($tplDir.'/', '', $file));
}
}