0

こんにちはフォーラム、 CI 2.0.3 と国際化 (i18n) ライブラリを使用しているときに、この問題に遭遇しました。ここで同様の投稿を読みましたが、問題は解決しませんでした。ここの誰かが私を正しい方向に向けてくれることを願っています。

routes.php:

$route['default_controller'] = "home";
$route['404_override'] = '';
$route['scaffolding_trigger'] = "";

// '/en', '/de', '/ru' URIs -> use default controller
$route['^(en|de|ru)$'] = $route['default_controller'];  

// URI like '/en/about' -> use controller 'about'
$route['^(en|de|ru)/(:any)'] = "$2";  

これは完全に機能しますが、「ブログ」と呼ばれる領域があり、ブログ内 CI_Controller はデータベースから記事を取得する関数です。

public function article()
 {
  $this->db->where('id', $this->uri->segment(4));
  $data['query']= $this->db->get('blogentries');

  $this->load->view('article_view',$data); 
 }  

素晴らしい、作品も。結果は /en/blog/article/1 のような URL になります。言語ファイルには、変数が次のように保存されています。

$lang['menu.blog'] = "Blog"; 

ブログ ビューでは、$lang 変数が読み込まれます。

<?=lang('menu.blog')?> 

記事を開くときに問題が発生し、言語ファイルの var がまったく読み込まれません。「ブログ」の代わりにhttp://localhost/ 。ルーティングの関係だと思います。したがって、/en/blog のような URL の場合、次のようになります。

$route['^(en|de|ru)/(:any)'] = "$2"; 

他のすべての URL は完全に機能し、言語ファイルから変数を正しくロードします。

しかし、/en/blog/article/1 のような URL を処理するにはどうすればよいでしょうか? 私は正しい方向に考えていますか?提案を歓迎します。

ありがとうございました。

4

1 に答える 1

0

あなたが何を求めているのか理解できないかもしれませんが、できるようです:

$route['^(en|de|ru)/blog/article/(:any)']

これは別の言語をキャプチャする必要がありますが、ID を介してブログ記事に移動します。

于 2012-05-10T13:17:39.580 に答える