0

私は自分のサイトを多言語にしようとしています。これまでに2つのフォルダーと2つのファイルを作成しました。

/application/language/en-us/
/application/language/en-us/application_lang.php
/application/language/fr-ca/
/application/language/fr-ca/application_lang.php

言語ファイルには、次の宣言があります。

$lang['lang_company_name'] = 'Hello'; // en-us
$lang['lang_company_name'] = 'World'; // fr-ca

次に、私のテストコード:

$this->lang->load('application', 'en-us');
echo $this->lang->line('lang_company_name');
$this->lang->load('application', 'fr-ca');
echo $this->lang->line('lang_company_name');

出力は次のとおりHelloHelloです。なぜ私は得られないのHelloWorldですか?

アップデート:

  • autoload.phpには何もありません$autoload['language']
  • config.phpにはまだあります$config['language'] = 'english'
4

2 に答える 2

0

ロードした最初の言語がデフォルト言語になります。逆の順序でそれを行うと、「ワールドワールド」が得られます。

于 2012-10-11T14:26:46.623 に答える
0

言語をロードすると、「アプリケーション」言語ファイルがロードされたことを追跡します。したがって、一度ロードされると、2番目の呼び出しはロードされたと見なすため、実際には何もしません(ロードされたファイルを追跡するときに2番目のパラメーターを無視します)。

ここでコードを見ると:https ://github.com/EllisLab/CodeIgniter/blob/master/system/core/Lang.php 、ハッキングできる可能性があるので、再度ロードします($から設定解除) is_loaded属性)、しかし私はより良い質問はなぜあなたがこれをする必要があるのか​​ということかもしれないと思いますか?どういうわけか、2つの異なる言語ファイルをロードするのは少し奇妙に思えます!

于 2012-10-11T14:31:48.953 に答える