WPF 程序全球化示例程序
- 最近一直在学习WPF技术,当看到全球化这块内容时候,起初理解的不是太透彻,上网搜了一下感觉这块的示例内容比较少。最终经过查看各种文档终于成功做出了一个DEMO。希望后来者遇到同样的问题,当你看到这篇文章能够节省你们的时间。
下面开始讲解:
- 新建一个新的WPF应用项目。
![]()
-
找到项目工程目录,打开
![]()
-
记事本打开WpfAppDemo.csproj文件
![]()
下面用记事本打开![]()
- 增加默认语言设置 <UICulture>zh-CN</UICulture>,如下:
![]()
-
修改AssemblyInfo.cs 文件。
![]()
6.取消对以下 NeutralResourceLanguage 特性的注释。zh-CN是我们设置默认的语言。根据需要设置自己的语言。
![]()
7.主页添加两个简单的组件,作为后面我们实现多语言显示用。
<StackPanel >
<TextBlock Width="auto">你好世界</TextBlock>
<TextBlock >再见 世界</TextBlock>
</StackPanel>

如果不需要翻译的属性值可以增加注解 Localization.Attributes="$Content(Ignore) Width(Ignore) 到下面标红的位置,这句说明后面生成的csv的翻译值是否可以修改或者忽略翻译此属性值。这项目里我忘记加了这一行,补充上这行做个记录吧,也可以不加。

8。将 UID 添加到您的 XAML 文件中。 UID 用于跟踪对文件进行的更改和标识必须要进行翻译的项。 若要将 UID 添加到您的文件中,请对项目文件运行 msbuild /t:updateuid WpfAppDemo.csproj。
(运行这个命令要打开命令行 切换到项目的工程目录作为执行路径)

这个指令执行后请看下图,箭头处自动为组件生成了X:UID。

9.重生成项目

查看bin目录,可以看到生成了zh-CN文件夹,和里面的WpfAppDemo.resources.dll,这个就是中文语言包。

10.切换命令行工具到debug目录,将 LocBaml.exe 复制到应用程序的 bin\debug 文件夹,即创建主应用程序集的位置。LocBaml.exe 这个东东可以到微软官方下载源码,自己编译下就可以用了。


11.分析附属程序集文件并将输出存储为 .csv 文件,请使用下面的命令
LocBaml.exe /parse zh-CN/WpfAppDemo.resources.dll /out:zh-CN.csv

生成csv文件如下:

12.复制zh-CN.csv另存一份,命名en-US.csv,用Excel也可以打开编辑。
Excel打开如下:

我们看到的Excel 的G列就是要翻译的文本。我用excel编辑后保存后格式会出错,导致后面的指令我法执行成功,这里我用记事本打开后翻译后面的值。

翻译成英文后如下:

保存文件!
13.使用下面的语法生成新的 WpfAppDemo.resources.dll 文件。 将区域性设为 en-US (/cul:en-US)。
LocBaml.exe /generate zh-CN/WpfAppDemo.resources.dll /trans:zh-CN.csv /out:E:\ /cul:en-US

注意:其中E:\ 标识生成的新的WpfAppDemo.resources.dll 保存路径。这里是E:\ 目录
14.打开E:\目录,可以看到生成的新的WpfAppDemo.resources.dll

15.在应用程序目录新建一个en-US文件夹,将上面的WpfAppDemo.resources.dll 拷贝到此目录。至此,如果已经翻译完成的话两个csv文件可以删除了。

16.现在中文语言包和英文语言包都已经生成完成,我们可以配置操作系统的语言设置可以切换程序显示不同的语言,我们还可以通过编码实现当前程序的语言设置。
下面我们通过编码实现:
打开项目的app.xaml.cs文件

增加如下代码配置当前程序的语言。

17.运行程序如下可以看到已经成为了中文。将上面的代码注释,就可以又显示中文语言了。到此,我们就实现了多语言设置。









浙公网安备 33010602011771号