最後に、config/app.php に構成変数を作成しました。
'available_language' => array('en', 'fr', 'es'),
filters.php で、ブラウザーの言語を検出します。
Route::filter('detectLang', function($lang = "auto")
{
if($lang != "auto" && in_array($lang , Config::get('app.available_language')))
{
Config::set('app.locale', $lang);
}else{
$browser_lang = !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? strtok(strip_tags($_SERVER['HTTP_ACCEPT_LANGUAGE']), ',') : '';
$browser_lang = substr($browser_lang, 0,2);
$userLang = (in_array($browser_lang, Config::get('app.available_language'))) ? $browser_lang : Config::get('app.locale');
Config::set('app.locale', $userLang);
}
});
そして、routes.php で、言語を検出するか強制することができます。
Route::get('/', array(
'before' => 'detectLang()', // auto-detect language
function(){
...
})
);
また
Route::get('/', array(
'before' => 'detectLang("fr")', // force language to "fe"
function(){
...
})
);