如何从I18n yii获取私有变量?

时间:2014-04-24 03:36:52

标签: php yii multilingual

我遇到了来自yii的多语言问题。

我希望管理员能够为我的系统添加任何语言。

因此,我需要从i18n yii获取所有国家和地区代码语言。

这意味着我将显示一个下拉列表。它有所有的名称语言。当我选择任何语言。它会自动生成区域代码。

例如:我选择了英语,它将自动生成区域代码 en

我尝试$languages = Yii::app()->locale->_data;来获取数组。但因为变量$_data私有

这是来自Clocale类的代码:

class CLocale extends CComponent
{
    public static $dataPath;
    private $_id;
    private $_data;

这是我打电话给的代码视图:

$languages = Yii::app()->locale->_data;
var_dump($languages['languages']);

如果我将私人$_data;更改为public $_data;,则会返回结果。但这是yii的核心,因此我无法改变它。

1 个答案:

答案 0 :(得分:1)

从消息目录中解析文件夹名称

if ($handle = opendir('/path/to/files')) {
    while (false !== ($entry = readdir($handle))) {
        echo "$entry\n";
    }

    closedir($handle);
}

它比扩展类更好并复制其所有内容(_data是私有的,因此您无法访问它)。