【发布时间】:2016-09-01 10:24:25
【问题描述】:
使用 Laravel 5.2.41
使用以下翻译包:mcamara/laravel-localization
在我的视图中链接:
<a href="{{ LaravelLocalization::getLocalizedURL(null, trans('routes.account-edit'), ["id" => Auth::user()->id]) }}"> Edit Link</a>
Lang/fr & Lang/nl 中的routes.php 文件
<?php
return [
'account-edit' => "account/wijzig-gegevens/{id}",
];
<?php
return [
'account-edit' => "donnees/modifier-donnees/{id}",
];
Laravel 路由文件:
Route::group([
'prefix' => LaravelLocalization::setLocale(),
'middleware' => ['localize','localeSessionRedirect', 'localizationRedirect' ]
], function()
{
Route::get(LaravelLocalization::transRoute('routes.account-edit'),'AccountController@edit');
});
当我以我的默认语言 (nl) 查看链接时,我得到了正确的链接,如下所示:
<a href="http://blabla.dev/nl/account/wijzig-gegevens/1">Edit Link</a>
但是当我将语言更改为法语时,我得到以下链接:
<a href="http://blabla.dev/fr/donnees/modifier-donnees/{id}">Edit Link</a>
不知道为什么会这样
【问题讨论】:
-
我对这个翻译包真的没有任何经验。但是,我看到您正在翻译
trans('routes.account-edit'),在您的...::getLocalizeURL(...中。尝试删除它。 -
@ThomasVanderVeen 感谢您的回复,但这并不是真正的问题,因为该部分正在工作,就像您在我返回的链接中看到的那样。如果我在那里对链接进行硬编码,它将消除翻译 url 的目的。我对所有链接都这样做,效果很好。就是当我有一个像这种情况下的参数时,它有这种奇怪的行为
-
尝试拆分。首先在正常的
route()函数、dd()返回值等上测试trans()函数。我想我无法进一步帮助您:( -
@ThomasVanderVeen 我确实尝试过,每个部分都完成了他们的工作,只有 user()->id 在法语翻译中丢失了。没问题,谢谢!
标签: php laravel laravel-5 localization