从Slim中的Twig中提取i18n的模板字符串

时间:2014-03-13 10:03:38

标签: internationalization twig translation gettext slim

我花了很多时间试图弄清楚如何在基于Slim的应用程序中“编译”我的所有Twig模板,以确保xgettext准备好接收所有字符串以进行进一步处理和翻译。

一旦我将正确的信息整合在一起,结果就变得非常容易了,但我在互联网上找不到任何地方告诉我如何在Slim应用程序中使用Twig做到这一点。

1 个答案:

答案 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));
    }
}