我遇到了一個似乎沒有我感到滿意的明智/易處理的解決方案的問題。 Silverlight和國際化 - 製作中的泥潭。Silverlight - 國際化的參數化資源值
我有一組包含翻譯字符串的資源文件。
在簡單的情況下,我可以聲明語言資源等,並綁定強類型資源中的值的內容/文本。這很好 - 大量的例子發佈周圍。
一個不那麼簡單的情況是字符串可以有一個參數,所以我需要在字符串中插入一個值來顯示它,它本身可以是一個數據綁定。
更復雜的情況是具有多個參數的字符串。
你可以爭辯說虛擬機應該提供這種能力,但我不高興,因爲它打破了UX Designer和Developer之間的鴻溝,要求開發人員在VM上實現一個屬性/方法來支持每一個字符串UI需要。
例如:設計師決定在用戶反饋之後添加一個自定義工具提示並提供更多信息。工具提示是通過聲明完成的,並將更好的解釋與datacontext中的值結合在一起。解釋存儲在資源中,使用的值來自現有數據上下文或元素綁定。
如果我必須通過虛擬機運行每個字符串,那麼添加這樣的東西需要虛擬機的更改。同樣,如果參數的來源將來自其他元素,則VM不一定能夠提供格式化的字符串。
人們是如何圍繞/接近這個問題的?
A.
該解決方案將其全部放回到原始問題的虛擬機中,以及我希望避免的問題。如果虛擬機應該意識到它將被視圖所佔用,使每個視圖中消耗虛擬機的每個字符串都來自虛擬機將不可行,並且任何不是來自虛擬機的元素綁定的元素都不會能夠被使用。 例如表示「當前值爲{0}」的文本塊以及來自視圖上的滑塊的佔位符。虛擬機可能不知道滑塊,因爲它是一個純粹的UX片段,並沒有持久化(比方說當前的縮放級別)。 – Andrew 2009-06-30 10:05:29