2012-08-13 75 views
0

我想將默認應用程序語言設置爲我的訪客國家語言。我有一個API來獲得IP前綴成語,並基於這些信息,我想設置語言。使用CodeIgniter動態設置語言

這樣做的最好方法是什麼?我想創建一個cookie來存儲語言標識符,但我必須在哪裏設置?

謝謝。

+1

您可以使用Javascript閱讀瀏覽器的語言,並使用Ajax調用您自己的函數來設置語言(不使用cookie)。 – 2012-08-13 15:36:10

+1

我不認爲這是一個好主意,基於IP設置。他們可能正在使用代理服務器,以及如果他們不會說母語?另外,一個國家可能有多種通用語言。例如加拿大。你選擇哪種語言? – conor 2012-08-13 15:39:31

+0

我同意@conor,我會用'$ _SERVER [「HTTP_ACCEPT_LANGUAGE」]'來使用瀏覽器的語言。不是100%可靠,但比IP地址更好。 – jeroen 2012-08-13 15:44:53

回答

5

你見過CodeIgniter's Language library

語言類提供了檢索語言文件和文本行以實現國際化目的的功能。

在你的CodeIgniter系統文件夾中,你會發現一個叫做language的語言文件集。您可以根據需要創建自己的語言文件,以顯示其他語言的錯誤和其他消息。

語言文件通常存儲在您的系統/語言目錄中。或者,您可以在應用程序文件夾內創建一個名爲language的文件夾並將它們存儲在那裏。 CodeIgniter將首先在您的應用程序/語言目錄中查看。如果該目錄不存在或者指定的語言不在那裏,CI將會在您的全局系統/語言文件夾中查找。

在你的情況......

  • 你需要創建一個polish_lang.phpenglish_lang.php內部應用程序/語言/拋光
  • 然後創建你的鑰匙該文件內(如$lang['hello'] = "Witaj";
  • 然後負載它在你的控制器中就像$this->lang->load('polish_lang', 'polish');
  • 然後像$this->lang->line('hello');那樣獲取這行就把這個函數的返回值存儲在一個變量中,這樣你就可以使用它在你看來。

對英語和您需要的所有其他語言重複上述步驟。

+0

我已經這樣做了。我可以閱讀視圖/控制器中的語言鍵。問題是:如何動態地做到這一點? – 2012-08-13 15:56:56

+0

ok看到這個網址: - http://codeigniter.com/forums/viewthread/64118/#315142 – 2012-08-13 16:00:09

+0

並參見: - http://stackoverflow.com/questions/2018755/loading-multiple-language-files-in -codeigniter – 2012-08-13 16:03:10