WPF:Localization 基础
在项目文件(<Project_Name>.csproj)中指定当前的本地化信息:
<PropertyGroup>
<UICulture>en-US</UICulture>
</propertyGroup>
Rebuild,将生成Debug\en-US\<Project_Name>.resources.dll
需使用x:Uid为每个UIElement设定唯一标识:
<Button x:Uid="btnTest">Test Localization</Button>
可以使用工具自动生成:
msbuild /t:updateuid <project_name>.csproj
生成当前语言的本地化文本文件-<Project_Name>.resources.CVS:
locbaml /parse en-US\<Project_Name>.resources.dll
手工修正并另存为目标语言文本文件-<Project_Name>.resources.Chinese.CVS
创建目录:Debug\zh-CN
创建目标语言库-zh-CN\<Project_Name>.resources.dll:
locbaml /generate en-US\<Project_Name>.resources.dll
/trans:<Project_Name>.resources.French.csv
/cul:zh-CN
/out:zh-CN
本地化变更代码:
using System.Threading;
using System.
public MyCcApp()
{
CultureInfo ci = new CultureInfo("zh-CN");
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;
}
using System.
public MyCcApp()
{
CultureInfo ci = new CultureInfo("zh-CN");
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;
}
附注:
LocBaml Tool Sample(下载)(需编译,我编译后将exe复制到了bin\debug目录下)
Culture Name(查看)
^_^补充:
写完随笔后,看到了一篇文章,内容惊人的相似(Localization in WPF),且比我写的还要简洁易懂,汗!
突然有感:技术跟随者的创新原来都是模仿。汗消,我俩原是同类,Yeah!
明天改行做美工,先给自己设计一个大头像,挂到网上,贴上“真原创:俺自己瞎画的”。^_^