【发布时间】:2019-11-28 07:44:20
【问题描述】:
我在laravel 有一个服务提供商,它从locale 读取所有可用的语言并将它们保存在缓存文件中。一切正常,但所有翻译都是德语。我希望以de 和en 的语言获得它们。
这是来自ServiceProvider的代码:
$minutes = 24 * 60;
Cache::remember('translations', $minutes, function () {
$directories = array('de', 'en');
$collection = new \stdClass;
foreach ($directories as $directory) {
$path = resource_path('lang/' . $directory);
$allTranslations = collect(File::allFiles($path))->flatMap(function ($file, $directory) {
return [
($translation = $file->getBasename('.php')) => trans($translation, array(), null, $directory),
];
});
$allModuleTranslations = collect(File::allFiles($path . '/modul'))->flatMap(function ($file, $directory) {
return [
($translation = $file->getBasename('.php')) => trans('modul/' . $translation, array(), null, $directory),
];
});
$collection->$directory = $allTranslations->merge($allModuleTranslations);
}
return json_encode($collection);
});
谁能看到,为什么它会返回所有德语单词?
结果如下:
{
de:
auth:
failed: "Diese Zugangsdaten wurden nicht in unserer Datenbank gefunden."
throttle: "Zu viele Login Versuche. Versuchen Sie es bitte in :seconds Sekunden."
en:
auth:
failed: "Diese Zugangsdaten wurden nicht in unserer Datenbank gefunden."
throttle: "Zu viele Login Versuche. Versuchen Sie es bitte in :seconds Sekunden."
}
【问题讨论】:
标签: laravel laravel-5 locale service-provider