我遇到了一个似乎没有我感到满意的明智/易处理的解决方案的问题。 Silverlight和国际化 - 制作中的泥潭。Silverlight - 国际化的参数化资源值
我有一组包含翻译字符串的资源文件。
在简单的情况下,我可以声明语言资源等,并绑定强类型资源中的值的内容/文本。这很好 - 大量的例子发布周围。
一个不那么简单的情况是字符串可以有一个参数,所以我需要在字符串中插入一个值来显示它,它本身可以是一个数据绑定。
更复杂的情况是具有多个参数的字符串。
你可以争辩说虚拟机应该提供这种能力,但我不高兴,因为它打破了UX Designer和Developer之间的鸿沟,要求开发人员在VM上实现一个属性/方法来支持每一个字符串UI需要。
例如:设计师决定在用户反馈之后添加一个自定义工具提示并提供更多信息。工具提示是通过声明完成的,并将更好的解释与datacontext中的值结合在一起。解释存储在资源中,使用的值来自现有数据上下文或元素绑定。
如果我必须通过虚拟机运行每个字符串,那么添加这样的东西需要虚拟机的更改。同样,如果参数的来源将来自其他元素,则VM不一定能够提供格式化的字符串。
人们是如何围绕/接近这个问题的?
A.
该解决方案将其全部放回到原始问题的虚拟机中,以及我希望避免的问题。如果虚拟机应该意识到它将被视图所占用,使每个视图中消耗虚拟机的每个字符串都来自虚拟机将不可行,并且任何不是来自虚拟机的元素绑定的元素都不会能够被使用。 例如表示“当前值为{0}”的文本块以及来自视图上的滑块的占位符。虚拟机可能不知道滑块,因为它是一个纯粹的UX片段,并没有持久化(比方说当前的缩放级别)。 – Andrew 2009-06-30 10:05:29