0

I'm trying to make my site multi-lingual. I've created 2 folders and 2 files so far:

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

In the language files, I have the following declarations:

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

Then my test code:

$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');

The output is: HelloHello. Why am I not getting HelloWorld?

UPDATE:

  • autoload.php has nothing for $autoload['language'].
  • config.php still has $config['language'] = 'english'
4

2 回答 2

0

加载语言后,它会跟踪“应用程序”语言文件是否已加载。因此,一旦它被加载,第二个调用实际上并没有做任何事情,因为它认为它已加载(在跟踪加载的文件时它会忽略第二个参数)。

看看这里的代码:https ://github.com/EllisLab/CodeIgniter/blob/master/system/core/Lang.php ,看起来你可能能够破解它,所以它再次加载它(从 $ is_loaded 属性),但我想更好的问题可能是你为什么需要这样做?不知何故,加载 2 个不同的语言文件似乎有点奇怪!

于 2012-10-11T14:31:48.953 回答
0

您加载的第一种语言将成为默认语言。如果您以相反的顺序执行此操作,您将获得“worldworld”。

于 2012-10-11T14:26:46.623 回答