2015-02-24 27 views
1

我试图将本地化应用程序,但似乎我错过了一些东西。 这里是我的routes.php文件Laravel 5 - 本地化无法正常工作

Route::get('dil/{dil}', '[email protected]'); 

这里是我的CoreController.php

<?php namespace Secret\Http\Controllers; 

    use Auth; 
    use Session; 
    use Input; 
    use Redirect; 

class CoreController extends Controller { 

    public function languageChoose($dil) 
    { 
     Session::set('locale', $dil); 
     return Redirect::back(); 
    } 
} 

我使用

{{ Config::get('app.locale') }} 
我的刀片

这样我就可以显示当前语言。但它总是说“tr”,这是我在config/app.php中选择的默认语言。 我错过了什么? 我试图通过“app.foo/dil/en”更改语言

+0

Laravel 5从4改变了很多。请按照本教程(伟大的Laracast教程)https://laracasts.com/discuss/channels/tips/example-on-how-to-use-multiple-locales-in -your-laravel-5-website – 2015-02-24 07:26:41

+0

我无法更好地解释这个教程:) – 2015-02-24 07:27:19

+0

非常感谢你@LeaTano在打开这个主题之前,我检查了大多数laravel 5本地化示例。但是这是路由本地化等我只想改变会话语言。我会为每种语言使用相同的路线。 – 2015-02-24 23:20:14

回答

2

首先,设置名为“locale”的会话项不会与您的“app.locale”配置以任何方式进行交互。因此{{ Config::get('app.locale') }}将始终返回您的默认语言。

创建会话项目:

Session::put('key', 'value'); 

session(['key' => 'value']); 

检索会话项:

$value = Session::get('key'); 

$value = session('key'); 

如文档中描述的:http://laravel.com/docs/5.0/session

需要注意的是,如果你愿意做Config::set('app.locale', $dil)编辑您的配置值“区域设置”,改变不会是永久性的,你就必须重新设置在每一个新的要求。