例子 Examples

例子 # 1: 多语言网站 Multi-language website

这是一个示例,显示了由URL管理的多语言网站。中间件用于加载当前语言文件。

<?php# application/routes/web.phpRoute::get('/', function(){    // Route "by default". This is a good place to request a cookie, session variable    // or something that allows us to restore the last language of the user, or show a    // language selection screen if no information is provided.    redirect(route('homepage', ['_locale' => 'en']));});Route::group('{((es|en|it|br|ge)):_locale}', ['middleware' => ['Lang_middleware']], function(){    Route::get('home', function(){        var_dump( ci()->lang->line('test') );    })->name('homepage');    Route::get('about', function(){        var_dump( ci()->lang->line('test') );    })->name('about');});
<?php# application/middleware/Lang_middleware.phpclass Lang_middleware{    public function run()    {        // Obtaining the value of the "_locale" sticky parameter        $locale = ci()->route->param('_locale');        $langs = [            'es' => 'spanish',            'en' => 'english',            'it' => 'italian',            'br' => 'portuguese-brazilian',            'ge' => 'german',        ];        ci()->lang->load('test', $langs[$locale]);    }}