2012-08-13 102 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