在一个项目中,有时候会遇到不同国家或地区的软件用户,这样就需要对软件UI界面进行语言翻译,我们可以利用DynamicResource和资源字典来实现这一需求。我们可以将不同的语言字典封装到一个项目中,然后其它项目再引用即可。
第一步,创建语言字典项目:WpfLanguage
在这个项目中,新建一个Resource目录,在目录中再创建两个语言包文件,分别是en-US.xaml和zh-CN.xaml
两个文件的内容大致如下
zh-CN.xaml
en-US.xaml
可以看到其中的key键都是相同的,只是不同文件对应的值不同。这样我们在UI中只需要引用这个key键的内容即可。
第二步,创建新的项目,在app.xaml.cs中按不同的情况引用不同的资源字典文件。
需要注意的是,要提前将WpfLanguage项目引入到新项目中。
然后就可以在app.xaml.cs中做具体的语言包的引用
图中的CultureName可以从配置文件中导入,当CultureName=zh-CN时,就表示使用zh-CN.xaml字典,当CultureName=en-US,表示使用en-US.xaml字典。
补充:如何设置默认的语言包,请看下图!
我们在app.xaml中,利用ResourceDictionary.MergedDictionaries引用默认的语言包
至于使用?那就简单了
在任何需要显示string的地方,绑定为DynamicResource类型即可,后面写上具体的Key键名字。