0

非常に単純に見える yii で問題が発生していますが、適切な解決策が見つかりません。Web ページで I18N を実行する必要があり、yii を使用しています。翻訳は既に完了しています。コントローラ クラスの言語を次のように簡単に変更できることがわかりました。

class Controller extends CController
{
    function init() {
        parent::init();
        if(isset($_GET['lang'])) {
            Yii::app()->language = 'lt';
        }
    }
}

すべて問題ありませんが、url に language パラメータが含まれていない場合、明らかに language パラメータが失われます。1 つの方法は、サイト全体のすべての URL にパラメーターを追加することですが、それは解決策とは思えません。

パラメータを渡す静的な方法はありますか? yii の UrlManager のオプションでしょうか。それとも、言語をより動的に変更する別の方法があるのでしょうか?

4

3 に答える 3

1

また、get-request がない場合にのみ session を使用する場合はどうなるでしょうか? しかし、同じ URL に異なるコンテンツを表示することは、依然として悪い考えです。

    if(isset($_GET['lang'])) {
          $app->session['language'] = 'lt';
    } elseif($app->session->contains('language')) {
          $app->language = $app->session['language'];
    }
于 2013-12-11T06:56:55.527 に答える