我正嘗試在自定義包中使用語言文件。 我遵循這個文檔: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" => []
]
]
]
編輯
當我加入與loadTranslationFrom語言文件,它調用addNamespace供應商/ laravel /翻譯/ FileLoader.php之後,$this->hints
被填充。但是,只要我想調用它在同一個文件中的這個函數是觸發器:loadNamespaced()
在這個函數中$this->hint
s是空的。看起來像一些錯誤。
你的目錄結構是什麼? 「resources/lang」目錄是否與您要加載翻譯的服務提供商相關? – Bogdan