2013-05-29 61 views
4

我正在嘗試實現多語言URL。因此,我想有這樣的URL:
/de/ueber-uns/kontakt/en/about-us/contact
到目前爲止好,我使用App::before()在filters.php來檢查給定的語言環境。我想我需要在routes.php中爲每一種語言的每個控制器動作使用一個路由。Laravel 4中的多語言網址

所以我想動態創建文件routes.php。我所需要的就是知道如何訪問所有可用的控制器或獲取代碼中的所有註冊路由(如工匠路由但不使用CLI)。

所以問題是:

  • 是多語種網址的一般方法正確嗎?
  • 是否可以訪問所有控制器以提取方法?
  • 如何獲取在\ Illuminate \ Routing \ Router.php中使用的RouteCollection?

預先感謝您!

回答

4

我結束了執行以下:在routes.php文件

1)的路由被動態地定製的工匠命令創建的。它解析所有控制器,併爲支持的每種語言中的每個操作創建路由。語言字符串通過路由處理,如 Route :: get('{lang}/customer/login','CustomerController @ getLogin') - > where('lang','[a-z] {2}')。 這樣,用戶可以更改語言字符串,並且網站將以正確的語言加載(如果支持)。 不同語言的路由都會導致相同的控制器操作。對於除英文以外的這些語言,我需要翻譯(route.php在/ app/lang中)。

2)在構造函數中設置了其操作被轉換的那些控制器的過濾器。它基本上檢查語言字符串是否有效,如果不是,則替換它。所選語言將在會話中設置。

我希望任何人都可以使用它:)