如何在codeigniter中翻译某些文本时显示默认翻译

时间:2014-04-27 18:30:31

标签: php codeigniter internationalization multilingual

我有一个支持3种语言的应用程序。如果我切换语言,如果文本没有当前语言的翻译,则不会显示。但是我希望显示默认语言的翻译,而不是显示任何内容。怎么做?

谢谢。

1 个答案:

答案 0 :(得分:3)

我会用我自己的扩展核心类CI_Lang

class MY_Lang extends CI_Lang {

    var $defaultLanguage = array();

    function __construct()
    {
        parent::__construct();                      
    }

    function line($line = '')
    {
        // Get the value from the current language.
        $value = parent::line($line);

        // Fallback on default language if not found.
        if ($value === FALSE) {                             
            $value = $this->defaultLanguage[$line];
        }

        return $value;
    }

    function loadDefault($langfile = '', $idiom = '') {         
        $this->defaultLanguage = array_merge($this->defaultLanguage, (array)$this->load($langfile, $idiom, TRUE));
    }    
}

然后在我的控制器中加载我想要的默认语言文件。

$this->lang->load('error', 'french');          // Standard way
$this->lang->loadDefault('error', 'english');  // New way for defaults

这样,如果您查询的是法语翻译中的内容,则默认为英语翻译。