質問: codeigniterウェブサイトを多言語にするための最良の方法。 lang配列からの呼び出しはlangセッションに依存しますか? 私は何時間も研究していますが、それを作るための明確で効率的な方法を見つけることができませんでした:/英語のcodeigniterベースのwebサイトがあり、ポーランド語を追加する必要があります。訪問者の選択に応じて2言語でサイトを作成する最良の方法は何ですか?言語ごとに配列ファイルを作成し、言語選択からのセッションに依存するビューファイルでそれらを呼び出す方法はありますか?私はデータベースを使いたくありません。感謝します!締め切りが迫っています:/ありがとう!!
回答: コントローラーで、cunstructorを作成するときに次の行を追加しますすなわち、後parent :: controller();以下の行を追加 $this->load->helper('lang_translate'); $this->lang->load('nl_site', 'nl'); // ('filename', 'directory') ヘルパーファイルlang_translate_helper.phpを次の関数で作成し、ディレクトリsystem\application\helpersに配置しますfunction label($label, $obj) { $return = $obj->lang->line($label); if($return) echo $return; else echo $label; } 言語ごとに、system\application\languagesの下に、en、nl、frなどの言語略語のディレクトリを作成します。上記の(それぞれの)ディレクトリに言語ファイルを作成します。このファイルには、以下に示すようにlabel => language_valueのペアを保持する$ lang配列が含まれます。nl_site_lang.php$lang['welcome'] = 'welkom'; $lang['hello word'] = 'worde witaj'; en_site_lang.php$lang['welcome'] = 'welcome'; $lang['hello word'] = 'hello word'; 要件ごとに異なる方法で同じ言語の複数のファイルを保存できます。たとえば、バックエンド(管理者セクション)を管理するための個別の言語ファイルが必要な場合は、コントローラで$ this-> lang-> load( 'nl_admin'、 ' nl ');nl_admin_lang.php$lang['welcome'] = 'welkom'; $lang['hello word'] = 'worde witaj'; そして最後に希望する言語でラベルを印刷するには、ビューで以下のようにラベルにアクセスしますlabel( 'welcome'、$ this);orlabel( 'hello word'、$ this);hello&wordのスペースに注意してください。このように使用することもできます:)言語ファイルにラベルが定義されていない場合、関数ラベルに渡したものを単に出力します。