Я хотел бы добиться локализации в laravel https://laravel.com/docs/5.8/локализация
Я хотел бы разрешить пользователю настроить файл .json и загрузить переводы значений ключа.
Для этого мне нужно создать каталог на resources/lang/' . $request->language, то есть $path = base_path('resources/lang/' . $request->language . '/');, а затем файл json $request->language. '.json'
я пробовал это
File::makeDirectory(base_path()."'resources/lang/' . $request->language . '/'", $mode = 0777, true, true);
потом
//Write File
$newJsonString = json_encode($request->translation, JSON_PRETTY_PRINT);
file_put_contents(base_path($path . $request->language. '.json'), stripslashes($newJsonString));
По некоторым причинам он не создает даже каталог. Могу ли я что-то упустить?






Я создал каталог, протестировав его таким образом, пожалуйста, убедитесь, что вы файловая система.php в папке конфигурации и права доступа к папке хранилища.
// This will create folder in storage/app/folder_name
Route::get('/test',function(){
Storage::disk('local')->makeDirectory('app/testFolder');
});
// This will create folder in resources/lang/folder_name
Route::get('/test',function(){
$result = File::makeDirectory(base_path().'/resources/lang/testFolder');
dd($result); // return true if folder created
});
// For more clarity try running this
Route::get('/test',function(){
$langs = ['en', 'fr', 'de','bs'];
foreach ($langs as $key) {
$path = base_path().'/resources/lang/'.$key;
if (!File::exists($path)){
$result = File::makeDirectory($path);
dump("New Folder Created : ".$key);
}else{
dump("Folder Already Exist : ".$key);
}
}
dd("ALL DONE");
});
надеюсь, это поможет
Я хочу, чтобы это было здесь resources/lang/
Пожалуйста, вернитесь назад, если есть какие-либо проблемы.
Звучит лучше для базы данных, и у spatie есть хороший пакет именно для этого: laravel-news.com/translation-loader-пакет