哪种方法可以本地化在数据库中存储资源的WPF应用程序?
我的任务是构建一个应用程序并将其本地化,从数据库中读取text / labels / ... 用户可以在表中添加一个新文化,在表中存储资源,应用程序必须能够使用定义的文化之一。
+----------------+ |ID |EN |FR | +----------------+ |R001 |Dog |Chien| +----------------+ |R002 |... |.... | +----------------+ +----------------------+ |ID |EN |FR |IT | +----------------------+ |R001 |Dog |Chien|Cane | +----------------------+ |R002 |... |.... |... | +----------------------+
ObjectDataProvider可能是一个很好的解决方案,但我不想为我需要本地化的每个文本创建不同的ObjectDataProvider。 有没有办法在使用参数化绑定的不同控件中使用相同的ObjectDataProvider(参数是资源的键,例如R001?)
答案 0 :(得分:1)
我们在目前正在进行的项目中试过这个。我能给你的最好的建议是在启动时加载和缓存一切(如果更新的话)。往返DB以获取单个标签会导致性能下降。
在引导程序中构建附属程序集,或在内存中缓存转换。在任何情况下,尝试使其对您正在访问数据库的WPF透明。使用.NET ResourceManager似乎是我们最合理的选择。
这里有一个很好的解决方案:http://www.codeproject.com/Articles/35159/WPF-Localization-Using-RESX-Files