来自db的WPF本地化

时间:2014-07-15 08:41:28

标签: wpf localization localizable.strings

哪种方法可以本地化在数据库中存储资源的WPF应用程序?

我的任务是构建一个应用程序并将其本地化,从数据库中读取text / labels / ... 用户可以在表中添加一个新文化,在表中存储资源,应用程序必须能够使用定义的文化之一。

+----------------+
|ID   |EN  |FR   |
+----------------+
|R001 |Dog |Chien|
+----------------+
|R002 |... |.... |
+----------------+

+----------------------+
|ID   |EN  |FR   |IT   | 
+----------------------+
|R001 |Dog |Chien|Cane |
+----------------------+
|R002 |... |.... |...  |
+----------------------+

ObjectDataProvider可能是一个很好的解决方案,但我不想为我需要本地化的每个文本创建不同的ObjectDataProvider。 有没有办法在使用参数化绑定的不同控件中使用相同的ObjectDataProvider(参数是资源的键,例如R001?)

1 个答案:

答案 0 :(得分:1)

我们在目前正在进行的项目中试过这个。我能给你的最好的建议是在启动时加载和缓存一切(如果更新的话)。往返DB以获取单个标签会导致性能下降。

在引导程序中构建附属程序集,或在内存中缓存转换。在任何情况下,尝试使其对您正在访问数据库的WPF透明。使用.NET ResourceManager似乎是我们最合理的选择。

这里有一个很好的解决方案:http://www.codeproject.com/Articles/35159/WPF-Localization-Using-RESX-Files