你的位置:首页 > ASP.net教程

[ASP.net教程]如何汉化XAF应用


这是一个入门级的问题,应网友请求,总结一下XAF汉化过程的几个关键点。

一、所有Dev的控件的汉化,Dev官方有汉化文件。点击下载15.2版本。

正版用户登陆至官网是有专门的下载界面的,并且可以参与汉化。否则,就要去各种论坛或网上搜索了。

 

下载完成后,如上图所示,解决并放置到Win/Web的ZH-Hans目录中去。选中*.resources.dll,并按下F4键,调出设置属性窗口:

将复制到输出目录选中为:如果较新则复制。

说明:这里使用的是卫星资源文件,是国际化的常见方式。Dev提供了多数汉化内容,比如在XAF 中的Grid翻页时使用的英文。

原时:在程序运行时,能找到dll/exe所在路径的ZH-Hans目录中有资源文件就会去加载,只要满足了这个条件就可以了。

二、XAF部分的汉化

上一步的工作只是处理了控件部分,XAF是由标准控件+XAF自己的代码组成的。

XAF支持多语言国际化,汉化当然是其中一种了。

如上图所示打开Model.xafml,在Language菜单中显示的当前有哪些语言PerferredLanguae是当前使用的语言。

选中Language Manger..可以管理软件将拥有哪些语言,点Add->ZH-Hans->OK,再次查看下拉框Language可以看到语言中多了ZH-Hans。

注意,这并不是说你的软件支持了这个语言,只能说你第一步中增加的那些dll有被选择的来源了。

在PerferredLanguae中选择ZH-Hans即可真正的应用了下载回来的dll.

此时,官方提供的“控件”等多数内容已经汉化,但仍有一部分没有。

比如说:XAF的那新新建、编辑、删除等按钮,这些内容就可以在上图中的XAFML 编辑器中汉化了。

重要的:如果在Language中选择了一种语言,则说明接下来的设置(仅属于与国际化有关的字符部分)将在指定的语言中生效。

如果选中了“(Default Language)”并在上面做修改,则说明所有语言都会被改变。

如果先在“(Default Language)”上面修改,再去修改指定的语言,则指定的语言的修改会升效。

接下来修改信息吧:

上图所示的是汉化按钮的信息,右侧的属性栏中,可以看到,带有地球标记的属性,都是国际化相关的。

左边这颗树,如果你还不熟悉,一定要多展开来经常看,这是XAF程序的最大控制中心,除了这里还有一个,一会儿会说。基本上所有的汉化内容都会在这里找到的。第一步中已经说了,官方提供了多数汉化,但有些控件中仍有一部分汉化,接下来请看第三步:

三、汉化遗漏的控件内容

 

不管是win、web项目,都可以打开winapplication.cs/webapplicatin.cs出现上图,按A,B,C,D的顺序,依次点击,操作完成后,Localization将会多出一些结点。你可以查看界面上没有被汉化的内容在xafml中查找。99%能找到你要找的结点。

另外1%是什么情况:

1:比如你修改了模板,由于类型的名称变了,资源文件不生效了。我之前的做法是将类名称改为和官方一样的。(什么是模板?不知道没有关系,不用知道,当你有一天知道了,并且你的记性足够好,你的耳边就想回响去这段话)

2:官方的bug没有制作汉化相关内容,这个情况多数功能都不存在了。

3.对,上面这部分就是XAF的另一个控件中心,界面操作的部分,只有xafml editor和这里。别的都是代码啦!

四、自动翻译批量汉化

在XAFML中,选中了一种语言后,有一个地球图标会可用,如图所示,我使用的语言是“zh-CHS”,点击后,选中行后,再点击Translate按钮,可以调用bing自动翻译。

如果按照教程使用之前的zh-hans,到这一步时,是不能自动翻译的,原因是bing不能识别zh-hans,所以我使用了zh-CHS,至于zh-cn/zh-hans/zh-chs这些都是中文语言的不同名称到底有什么区别,自己补习吧。

如果一次选中了多行,将会批量的翻译。之前官方提供了google翻译引擎的代码,可以去官方搜索。

 

 关于汉化的话汉的话题还有很多,不过对于多数软件开发,这些也够用了。有其他问题请在下面留言,方便追踪。