2012-10-11 62 views
0

我試圖讓我的網站多語言。我創建了2個文件夾和2個文件至今:CodeIgniter語言的問題

/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

UPDATE:

  • autoload.php沒有什麼可以$autoload['language']
  • config.php文件仍然有$config['language'] = 'english'

回答

0

的第一語言,你的負載成爲默認語言。如果你以相反的順序做到了這一點,你會得到「世界世界」。

+0

我該如何切換語言? – StackOverflowNewbie

+0

@StackOverflowNewbie您不會在頁面加載中切換語言。你要做的是在你做任何其他事情之前設置語言(並且只設置一次) – hsanders

0

加載該語言後,它會跟蹤「應用程序」語言文件已加載。所以一旦它被加載,第二次調用實際上不會做任何事情,因爲它將它視爲已加載(在跟蹤加載的文件時,它忽略第二個參數)。

看看這裏的代碼:https://github.com/EllisLab/CodeIgniter/blob/master/system/core/Lang.php,它看起來像你可能會破解它,所以它再次加載它(從$ is_loaded屬性中取消設置),但我想更好的問題可能是爲什麼你需要做這個?不知何故,加載2個不同的語言文件似乎有點奇怪!

+0

我不想加載2個語言文件。我正在嘗試切換語言。測試代碼只是爲了看看我能做到。 – StackOverflowNewbie

+0

如果你只運行'$ this-> lang-> load('application','fr-ca'); echo $ this-> lang-> line('lang_company_name');'?你是否輸出「世界」?無論如何,語言選擇會每頁加載一次,所以這會告訴你,如果選擇實際工作或沒有! – manavo