2011-01-24 3 views
-1

私は自分の.htaccess、私のコントローラを持っています。ローカリゼーションを追加したので、現在はポルトガル語(デフォルト)、英語とイタリア語があります。
私はappplication/languagesディレクトリの_langファイルを使用しています。私はsession-> userdata( 'lang')を使用しています。 私のコントローラの名前は、ポルトガル語で、トップメニューの後に付けられます。私が探しているのは:
私のURLを書き換えるには、session-> userdata( 'lang')に応じてコントローラの名前を変更します。
これも可能ですか?どうやって?CodeIgniter URL書き換え(言語に依存)

if ($this->session->userdata('lang') == 'english') { 
    $route['novidades/([a-z]+)'] = 'news/$1'; 
} 

をしかし、私は、アプリケーションを開いたとき、私はちょうど空白の画面が出ます:

は、ルート・ファイルで、InFogが示唆されているように私は、しようとしているあなたに

ありがとうございます。
と私はif節なしでそれを試してみた、と私は名前を変換するために

http://localhost/myapp/novidades

URLは同じ

答えて

1

これはCodeIgniter Routesを使用して解決できます。 /ニュース/実行愚か者 『noticias /実行-愚か者『にremapedされます』:「のようなURLが

$route['news/([a-z]+)'] = 'noticias/$1'; 

この方法はシステム/アプリケーション/設定/ routes.phpの』あなたはファイルに編集を行うことができます。今ではただ1つのコントローラー=を持つことができます)

幸運

+0

あなたのコメントの後に私の質問を編集しました。それをチェックしていただけますか? –

+0

私はそれを間違った方法で行っていました。私はcodeigniterが主要なuriをローカライズされたものに置き換えたかったので、私はhrefsの言語に依存していました。Solved、ありがとう皆さん –

+0

こんにちは! 「必要なら」必要はありません。ルートを追加するだけで、同じページに2つのアドレスが設定されます。代わりに(:any)を使用してみてください([a-z] +)。 –

1

オーバーライドCI_Routerままに行くとき何も、起こりませんコントローラを変更するfetch_class()メソッドfetch_method()をオーバーライドしてメソッドを変更します。

+0

私は行って、どのようにオーバーライドできるかを調査する必要があります。私は後でいくつかのフィードバックを残します。 Thanx –