Silverlight本地化很多朋友可能不感兴趣,因为很多时候都是针对一国语言(母语或英语)编程,很少考虑多国语言的支持。不过既然Silverlight是基于互联网的,多国语言支持有时候很有必要,尤其是对一些企业应用。当然对游戏来说也有用处,多国语言支持可以吸引更多的不同国家和文化背景的人参与,影响力远比只有本国人玩大啊。目前Silverlight在国外的装机率和热度比国内高,支持多国语言还是很有必要的。
本地化基本概念这里就不多写了,MSDN(
http://msdn.microsoft.com/zh-cn/library/cc838238(v=VS.95).aspx)写得很多了,罗罗嗦嗦一对内容,看着让人着急。我们更需要的是一个傻瓜范例,列举出实现本地化的最简单步骤。例如我们要实现中英双语,假设已经有一个Silverlight项目,添加本地化的步骤如下:
- 1 用记事本打开项目文件,例如Localization.csproj,找到<SupportedCultures></SupportedCultures>,添加zh-CN。注意不要用Visual Studio打开,必须用普通的文本编辑器。
- 2 在Silverlight项目下新建一个目录,例如Res。然后新建两个资源文件,例如:Resource1.resx和Resource1.zh-CN.resx。然后在两个资源文件中添加一一对应的中英文字符串。
- 3 在Silverlight Object中添加两个参数culture和uiculture。例如:
<
param
name
="culture"
value
="<%=Session["
Culture"].ToString()%
>
" />
< param name ="uiculture" value ="<%=Session[" Culture"].ToString()% > " />
< param name ="uiculture" value ="<%=Session[" Culture"].ToString()% > " />
- 4 在Silverlight中需要显示字符串的地方引用资源文件的字符串。Silverlight会根据culture和uiculture设置来决定用哪国语言显示。例如:
this
.textBlock1.Text
=
res.Resource1.String1;
大致步骤就是这样,是不是很简单?具体实现中还有很多方法,例如在xaml中定义成资源,从而实现与控件绑定。不过有了简单的例子作入门,复杂的应用实现起来也就不困难了。上面的步骤叙述也许不十分详尽,看代码就一目了然了。请在这里
下载源码。
这里有比较复杂的应用实例演示。需要郑重声明的是所有游戏都改编自网上的开源游戏,例如园子里webabcd的YY系列。网站纯属个人学习和兴趣目的,无半点商业行为,如有冒犯的地方请多包涵。