我构建了一个包含3种语言的多语言网站( mk - 默认, sq 和 en ),最后在路线中使用以下代码.PHP:
$languages = array('en', 'sq');
$locale = Request::segment(1);
if(in_array($locale, $languages)){
\App::setLocale($locale);
}else{
$locale = null;
}
// Set the session here
Session::put('locale', $locale);
Route::group(array('prefix' => $locale), function()
{
Route::get('/', array('as' => 'home', 'uses' => 'Controllers\Frontend\FrontendController@getIndex'));
// .... other routes
});
我的默认语言区域为'mk',我在Land文件夹中还有其他两种语言, sq 和 en 。 虽然路由工作正常,但问题是加载lang文件时。它适用于在app.php中设置的默认语言 mk 和 en ,但不会切换 sq 转换,而是加载< strong> en lang文件。
示例:
网址:http://website.com加载 mk lang文件
网址:http://website.com/en加载 en lang文件
网址:http://website./sq加载 en lang文件而不是 sq &lt; ---问题
在其他代码中,我在视图中有以下内容:
{{{ URL::route('home') }}}
控制器通常是:
public function getIndex($locale = null)
{
$data = array();
return View::make('frontend.frontpage', $data);
}
我的问题:当URI参数更改为 sq 时,为什么未加载 sq 语言文件?
答案 0 :(得分:2)
问题:“根据前缀/会话在Laravel中加载lang文件”
@ Pat的回答(在评论中)解决了我的问题(Loading lang files in Laravel depending on prefix/session)
简而言之,使用https://github.com/mcamara/laravel-localization可以轻松创建Lavarel的多语言网站。