我正在为 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);
}
它运作良好,唯一的问题是它没有缓存,效率不高。我想知道我应该做些什么来缓存这些翻译?