2016-02-27 3 views
1

У меня возникла проблема с использованием функции trans() в файле конфигурации, я считаю, что она не должна использоваться таким образом. Однако я не знаю, что было бы самым эффективным способом перевода текстового текста в файлы конфигурации (файлы в папке/config).Строка Laravel Локализация в файлах конфигурации

Оригинальный код

<?php 

return [ 
    'daily' => 'Daily' 
]; 

Когда я пытаюсь реализовать транс() сбои приложений и Laravel вернуть белую страницу без каких-либо сообщений об ошибках

<?php 

return [ 
    'daily' => trans('app.daily_text') 
]; 
+0

ли вы какие-либо решения? У меня такая же проблема, но я не мог найти решение. – hkucuk

ответ

4

Файлы конфигурации являются одним из первых вещей Laravel инициализации , это означает, что вы не можете использовать Translator или UrlGenerator внутри файла конфигурации.

Я не знаю, что вы пытаетесь сделать, но вы не должны использовать Translator внутри файла конфигурации, хотя ...

4

Вы не можете не использовать транс или маршрутную метод внутри конфигурационного файла Laravel , Во время загрузки файла конфигурации эти методы недоступны для запуска. Кроме того, назначение файла конфигурации используется для хранения чистого значения, и мы не должны запускать какие-либо действия внутри файла конфигурации.

Я знаю, что иногда вы хотите поместить вещи в конфигурационный файл с динамическими данными, сгенерированными из маршрута или текста из языкового ключа. В моей учетной записи: настройка структуры меню внутри файла конфигурации. В этом случае вы должны выбрать подход: сохранение только ключа трансляции и массива, который включает информацию, которую вы можете создать URL во время выполнения.

Я разместил здесь свой gist, чтобы вы могли найти подходящий подход.

0

Я не знаю, если это хорошая практика, но я закончил делать это в моей подобной ситуации.

config.php:

'Foo' => array(' 
'route' => 'route.name', 
'name' => 'translated_line', //translated in lang file ex. /en/general.php 
'), 

Тогда в представлении я использовал:

<a href="{{ route(Config::get('foo.route')) }}">{{ Lang::get('general.'.Config::get('foo.name'))) }}</a> 

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

0

Вы можете просто сохранить ключ в конфигурационном файле, а затем использовать функцию trans в представлении, чтобы получить переводы:

Файл конфигурации:

<?php 

return [ 
'foo' => 'bar' 

]; 

Тогда в представлении:

{{ trans(config('config.foo') }} 
Смежные вопросы