如何加载和缓存翻译?

时间:2012-12-04 04:23:02

标签: symfony

我正在使用SF2的gettext翻译,我将翻译文件安排在不同于普通软件包的文件夹结构中(我为某些特定需求创建了自己的迷你插件系统)。

无论如何,这就是我加载翻译文件的方式:

$finder = new Finder();
$finder->files()->filter(function (\SplFileInfo $file)
{
    return 2 === substr_count($file->getBasename(), '.') && preg_match('/\.\w+$/', $file->getBasename());
})->in($dirs);
foreach ($finder as $file) {
    // filename is domain.locale.format
    list($domain, $locale, $format) = explode('.', $file->getBasename(), 3);

    // we have to add resource right away or it will be too late
    $translator->addResource($format, (string)$file, $locale, $domain);
}

它运行良好,唯一的问题是它没有缓存,效率不高。我想知道我该怎么做才能缓存这些翻译?

1 个答案:

答案 0 :(得分:0)

我的问题是我在配置文件中忘记了声明翻译,因此翻译通行证不起作用

framework:
  translator: { fallback: %locale% }