2016-02-25 64 views
0

我目前正在研究一個本地化類,它將是靜態的,並在應用程序的其他部分,在飛鏢中訪問。爲飛鏢物體做點符號?

我的目標的目標是要連接簡單的方式代碼:

Localization.MY_STRING 

,然後將返回:"my string"

起初,我以爲一切都在本土化將是靜態的,並公開可用的,但是寫東西展現出來:

static String MY_STRING = "my string"; 

似乎有些單調乏味,再加上我是想它是在一個地圖,有點像JSON文件:

{ 
    MY_STRING: "my string" 
} 

是否有一種簡單的方法來創建靜態地圖,以便我可以實現我的目標?

我想我或許能夠或許定義它覆蓋.

String .operator (String value){ 
    return map[value]?map[value]:""; 
} 

以類似的方式在類定義<=operator

有沒有其他人試過這樣的事情?我想我可能會把所有東西都存儲在一個JSON文件中,然後把這些信息讀入某個類。

+0

我以爲我會實際使用解釋器自動將這個腳本文件。 – Fallenreaper

+0

你可能會看看'intl'包。 –

回答

1

您不能覆蓋.運算符。只有有限的一組操作符可能會超載。

如果您在類的外部創建字段,則不需要static。您可以使用前綴導入庫,以獲得與靜態字段訪問相同的語法。

+0

我創建了一個dart文件,它將通過讀取JSON文件完成本地化所需的所有工作,然後輸出可引用的dart文件。只要在運行Web應用程序之前執行該項目,該結束dart文件便可供項目使用。這樣,它動態地創建了一個大型的靜態類文件,以允許我執行'Localization.MY_STRING' – Fallenreaper

+0

您仍然可以看看intl'包。它需要一些額外的東西。支持Google翻譯支持的文件格式,語言文件的延遲加載,複數形式......我有一段時間仔細觀察,不記得所有細節。 –

+1

是的,我正在考慮看看'intl',但是上面的soemone說不。所以,我只是創造了一些東西,直到更高決定他們如何做事。 – Fallenreaper