2016-08-25 4 views
2

Я хотел бы использовать разные виды для разных языков в Laravel вместо перевода фразы по фразе.Как переключить вид по локали в Laravel 5?

Есть ли какой-либо механизм или пакет, который позволяет это сделать?

Другое Как я могу написать свои взгляды и контроллеры таким образом, чтобы это было сделано чисто и надежно?

Заранее спасибо

ответ

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 

не проверял, и я уверен, что там может быть какой-то разумный способ, но он должен работать, и это вполне читаемо и понятно. :)

+0

где я помещаю lcView, чтобы сделать его глобальным? Невозможно каким-либо образом изменить функцию исходного вида? Может быть, я буду использовать этот метод с некоторым резервным механизмом, если locale не установлен или локализованное представление не найдено. –

+1

Это зависит от вас, но я обычно создаю 'app/helpers.php' для общих помощников, а затем добавляю его в свой композитор. json autoload hash ('" files ": [" app/helpers.php "]' Я думаю, что это синтаксис). –

Смежные вопросы