Я пытаюсь использовать языковые файлы внутри пользовательского пакета. Я следил за этой документацией: https://laravel.com/docs/master/packages#translations, но он не работает и выводит только пространство имен :: file.key в виде строки.Пакет файлов перевода не работает - Laravel 5.2
Ошибка. Что я мог сделать неправильно?
загружен как:
$this->loadTranslationsFrom(__DIR__.'/resources/lang', 'TranslatableRoute');
Используется как:
trans('TranslatableRoute::routes.create')
Моя структура путь заключается в следующем:
packages - doitonlinemedia - - translatableroutes - - - src - - - - TranslatableRoute.php - - - - TranslatableRoutesServiceProvider.php - - - - resources - - - - - lang - - - - - - en - - - - - - - routes.php
routes.php содержит:
return [
'create' => 'new',
'edit' => 'edit'
];
Обнаружено что-то странное. Когда я дамп $this->app['translator']
он содержит:
array:1 [
"TranslatableRoute" => array:1 [
"routes" => array:1 [
"en" => []
]
]
]
Но она не должна быть:
array:1 [
"TranslatableRoute" => array:1 [
"en" => array:1 [
"routes" => []
]
]
]
EDIT
Когда я добавляю языковые файлы с loadTranslationFrom, он вызывает addNamespace в vendor/laravel/Translation/FileLoader.php после этого заполняется $this->hints
. Но как только я хочу назвать это, эта функция в том же файле запускается: loadNamespaced()
в этой функции $this->hint
s снова пуст. Похоже на какую-то ошибку.
Какова структура вашего каталога? Является ли каталог 'resources/lang' относительно поставщика услуг, с которого вы загружаете переводы? – Bogdan