こんにちはフォーラム、 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 を処理するにはどうすればよいでしょうか? 私は正しい方向に考えていますか?提案を歓迎します。
ありがとうございました。