我想在Laravel中为不同的语言环境使用不同的视图,而不是逐句翻译。
是否有允许这样做的机制或包?
另外,我怎么能写出我的观点和控制器,以便干净利落地完成?
提前致谢
答案 0 :(得分:4)
最简单的方法可能是创建一个自定义视图加载器帮助器方法作为现有的一个包装器。
function lcView($view, $data = [], $mergeData = [])
{
return view($view.'.'.config('app.locale'), $data, $mergeData);
}
然后你打电话给那个:
// in some controller method
return view('index', $someData); // old way
return lcView('index', $someData); // new way
并为文件命名
index.en.blade.php
index.es.blade.php
index.sv.blade.php
Haven没有对它进行过测试,我确信可能会有一些更聪明的方法,但它应该有效并且它具有可读性和可理解性。 :)