2011-09-20 94 views
0

我在想寫什麼最好的做法,並且主要是維護ICU資源包。更具體地說,處理重複字符串的最佳方式。ICU資源包最佳實踐

例如,假設你有以下資源包:

root:table { 
    remove_page:string { "Remove this page" } 
    remove_widget:sring { "Remove this widget" } 
} 

當然,這是最小的,但我暗示,有很多類似的字符串和「子表」的一大項目。是否最好保持這樣,即。使用特定的字符串代碼的每一個動作,或者這將是更好的做法,例如字符串相結合,因爲這樣:

root:table { 
    remove_this:string { "Remove this " } 
    page:string { "page" } 
    widget:string { "widget" } 
} 

作爲一個業餘,我沒有用ICU把ResourceBundle太多的經驗,到目前爲止,但如果他們建造得當,他們應該非常方便國際和維護,因此這個問題。

非常感謝您的時間。

編輯:ICU info on Recourse Bundle Format - 這些格式在構建資源包時可能也很好記,例如數組比內存數據表佔用的內存少。當然,這些都是「無名的」,這對閱讀代碼來說可能是一個巨大的痛苦。

+0

不確定你在這裏指的是'無名'。 –

+0

你完全可以控制這個問題,你應該能夠接受答案。我刪除了更多用於評論的「答案」。 –

回答

1

請參閱Formatting Messages。和MessageFormat::format() with named arguments。你不想「串聯」字符串。相反,你可能會做這樣的事情:

root { 
    remove_this { "Remove this {thing}." } 
    page { "page" } 
    widget { "widget" } 
} 

需要注意的是,由於各種語言的規則,可能更容易翻譯「刪除:{事}」,因爲「這」可能需要活用由於字性別,案例,數量等,其中見SelectFormat