私は 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);
}
うまく機能しますが、唯一の問題はキャッシュされないことであり、あまり効率的ではありません。これらの翻訳をキャッシュするにはどうすればよいのでしょうか?