2014-04-24 36 views
1

我有來自yii的多種語言的問題。如何從I18n yii獲取私有變量?

我希望管理員能夠添加任何語言到我的系統。

因此,我需要從i18nyii獲取所有國家和地區代碼語言。

這意味着我會顯示一個下拉列表。它具有所有的名稱語言。當我選擇任何語言。它會自動生成地區代碼。

例如:我選擇了英文,它會自動生成地區代碼爲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的核心,因此我無法改變它。從消息目錄

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

    closedir($handle); 
} 

它優於擴展類,並複製它的所有內容(_data是私有的,所以你不能訪問它)

+0

擴展類使您不必更改核心類 – tinybyte

+0

@tinybyte 可以描述詳細嗎? –

回答

1

解析文件夾名稱。

+0

我不清除你的代碼。 我的意思是我想從yii的i18n獲得所有語言。 我們必須得到$ _data才能在用戶選擇的下拉列表中顯示它。 –

+0

亞歷克斯的想法是正確的,只是閱讀文件,並且這樣你得到的語言列表 – Asped

+0

你不能得到_data,它是私人的。我建議你閱讀語言目錄。 – Alex