因为项目是多国语言的,所以用到了wpf的多国语言相关知识,其实也比较简单,分享给大家,自己也做个备忘。
基本步骤如下:
1.让界面上所有能够出现的label都使用动态资源(DynamicResource)这样我们在切换语言的时候程序界面上的字符才会自动切换,这里我们举个简单的TextBlock的例子,原本也许你会直接写
<TextBlock Text="选取语言" Width="150" VerticalAlignment="Center"/>
但是如果需要国际化,那么你需要这样写
<TextBlock Text="{DynamicResource SELECT_LANG}" Width="150" VerticalAlignment="Center"/>
把原本hard code在程序里面的字符扣出来,当做动态资源导入。
2.将所用到的字符资源写进资源字典(ResourceDictionary)中,有几种语言就写成几个资源字典,一般我们会放在lang文件夹下面
例如英文的资源字典叫做en-us.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="clr-namespace:System;assembly=mscorlib">
<s:String x:Key="WINDOW_TITLE">Localization Demo</s:String>
<s:String x:Key="SELECT_LANG">Select Language</s:String>
<s:String x:Key="TEST_LABLE">Test Lable</s:String>
<s:String x:Key="TEST">Test</s:String>
</ResourceDictionary>
同样的中文字典文件叫做zh-cn.xaml