【发布时间】:2019-06-13 15:17:27
【问题描述】:
我无法弄清楚为什么 LaravelLocalization 无法翻译我在使用 nwidart laravel-modules 包为 laravel 创建的模块的 routes.php (Modules/ModuleName/Http/routes.php) 文件中声明的路由, 'localize' (\Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRoutes::class) 中间件也存在于应用程序的 Kernel.php 和路由组中,如here 所述。该路线未翻译并显示为 /en/booking::all.companies.index 而不是 /en/companies(或 /ru/kompanii):
Route::group(
[
'prefix' => LaravelLocalization::setLocale(),
'middleware' => ['web', 'auth', 'localize', 'optimizeImages'],
'namespace' => 'Modules\Booking\Http\Controllers',
],
function() {
Route::get(LaravelLocalization::transRoute('booking::all.companies.index'), 'CompanyController@index')->name('booking.companies.index');
});
但是当模块命名空间前缀“booking::”从翻译字符串中移除时 (LaravelLocalization::transRoute('all.companies.index') 而不是 LaravelLocalization::transRoute('booking::all.companies.index') ) 它可以翻译路线。
请帮我解决问题,谢谢。
(如果有帮助,我的安装:Laravel Framework 5.5.43,“mcamara/laravel-localization”:“1.3”,“nwidart/laravel-modules”:“2.7”。除了 mcamara/laravel 之外,没有安装其他本地化包-本地化)
【问题讨论】:
-
您找到解决方案了吗?
-
很遗憾没有。我将路由翻译放在标准的 laravel 资源/lang 目录中。命名空间的路线名称(例如:“booking::”,例如放在 Modules/Booking/Resources/lang 目录中)没有被 mcamara/laravel-localization 包正确翻译。
标签: php module laravel-5.5 laravel-routing