这几天因为软件需要加英文版本,所以查了好久的资料找到了相关的信息,原资料参考:http://blog.csdn.net/softimite_zifeng
上网查的中英文切换大约有两种方式:1.动态加载资源文件2.做XML用来保存控件名,以及控件的内容,最后选择用XML来学习。
先来一点XML的预备知识吧:https://www.ibm.com/developerworks/cn/xml/x-newxml/#list1
XML是可扩展标记语言(Extensible Markup Language)的缩写,仅用于存储数据。所有元素都必须有关闭标签。
XML文档的第一行可以是一个 XML 声明。这是文件的可选部分,它将文件识别为 XML 文件,有助于工具和人类识别 XML(不会误认为是 SGML 或其他标记)。可以将这个声明简单地写成 <?xml?>,或包含 XML 版本(<?xml version="1.0"?>),甚至包含字符编码,比如针对 Unicode 的 <?xml version="1.0" encoding="utf-8"?>。
1.XML 文档必须有根元素
XML 文档必须有一个元素是所有其他元素的父元素。该元素称为根元素。
根元素的开始和结束标记用于包围 XML 文档的内容。一个文件只能有一个根元素,并且需要使用 “包装器” 包含它。清单1显示了经过删节的示例,其中的根元素名为 <recipe>。
清单 1. 根元素
<?xml version="1.0" encoding="UTF-8"?> <recipe> </recipe>
在构建文档时,内容和其他标记必须放在 <recipe> 和 </recipe> 之间。
2.标记的大小写保持一致
创建 XML 时,要确保开始和结束标记的大小写是一致的。如果大小写不一致,在使用或查看 XML 时将出现错误。例如,如果大小写不一致,Internet Explorer 将不能显示文件的内容,但它会显示开始和结束标记不一致的消息。
3.嵌套元素
嵌套 即把某个元素放到其他元素的内部。这些新的元素称为子元素,包含它们的元素称为父元素。
4.添加属性
有时候要为元素添加属性。属性由一个名称-值对构成,值包含在双引号中("),比如:type="dessert"。属性是在使用元素时存储额外信息的一种方式。在同一个文档中,可以根据需要对每个元素的不同实例采用不同的属性值。
您可以在元素的开始标记内部输入一个或多个属性,比如:<recipe type="dessert">。如果要添加多个属性,各个属性之间使用空格分开,比如:<recipename cuisine="american" servings="1">。
5.XML 中的注释
在 XML 中编写注释的语法与 HTML 的语法很相似:<!-- This is a comment -->
在 XML 中,空格会被保留在 XML 中,文档中的空格不会被删节。
6.XML 命名规则
XML 元素必须遵循以下命名规则:
-
- 名称可以含字母、数字以及其他的字符
- 名称不能以数字或者标点符号开始
- 名称不能以字符 “xml”(或者 XML、Xml)开始
- 名称不能包含空格
可使用任何名称,没有保留的字词。
7.形式良好的 XML 文档
“形式良好”(Well Formed)的 XML 文档会遵守前几章介绍过的 XML 语法规则:
-
- XML 文档必须有根元素
- XML 文档必须有关闭标签
- XML 标签对大小写敏感
- XML 元素必须被正确的嵌套
- XML 属性必须加引号
中英文切换的具体实现
一共有三个界面:登录界面、密码修改界面,主界面。每个界面都有一个中文XML和一个英文XML。
登录界面的中文XML:
1 <?xml version="1.0" encoding="utf-8" ?> 2 <Softimite Language="简体中文"> 3 <Form> 4 <!--登录界面--> 5 <Name>LoginForm</Name> 6 <Controls> 7 <Controls name="LoginForm" Text="登录" /> 8 <Control name="accountLab" text="账号"/> 9 <Control name="passwordLab" text="密码"/> 10 <Control name="loginBtn" text="登录"/> 11 <Control name="passwordBtn" text="修改密码"/> 12 <Control name="label_eg" text="中文"/> 13 </Controls> 14 </Form> 15 </Softimite>
主界面的英文XML:
1 <?xml version="1.0" encoding="utf-8" ?> 2 <Softimite Language="简体中文"> 3 <Form> 4 <!--主界面--> 5 <Name>MainForm</Name> 6 <Controls> 7 <Control name="MainForm" text="User-xxx"/> 8 <Control name="button1" text="Project"/> 9 <Control name="button2" text="Active Issues"/> 10 <Control name="button3" text="All Issues"/> 11 <Control name="button4" text="Issues statistics"/> 12 <Control name="button5" text="To-Do List"/> 13 <Control name="button6" text="Assign To Me"/> 14 <Control name="button7" text="My Assignment"/> 15 <Control name="button8" text="Notifications"/> 16 <Control name="button9" text="Version Management"/> 17 <Control name="xtraTabPage1" text="Project"/> 18 <Control name="xtraTabPage2" text="Active Issues"/> 19 <Control name="xtraTabPage3" text="All Issues"/> 20 <Control name="xtraTabPage4" text="Issues Statistics"/> 21 <Control name="xtraTabPage5" text="To-Do list"/> 22 <Control name="xtraTabPage6" text="Assign to me"/> 23 <Control name="xtraTabPage7" text="My Assignment"/> 24 <Control name="xtraTabPage8" text="Notifications"/> 25 <Control name="xtraTabPage9" text="Version Management"/> 26 </Controls> 27 <DataGridViewCells> 28 <DataGridViewCell name="Column1" HeaderText="Number"/> 29 <DataGridViewCell name="Column2" HeaderText="Type"/> 30 <DataGridViewCell name="Column3" HeaderText="Title"/> 31 <DataGridViewCell name="Column4" HeaderText="State"/> 32 <DataGridViewCell name="Column5" HeaderText="Priority"/> 33 <DataGridViewCell name="Column6" HeaderText="Assign"/> 34 <DataGridViewCell name="Column7" HeaderText="Planned Date"/> 35 <DataGridViewCell name="Column8" HeaderText="Deadline"/> 36 <DataGridViewCell name="Column9" HeaderText="Modification Times"/> 37 <DataGridViewCell name="dataGridViewTextBoxColumn1" HeaderText="Number"/> 38 <DataGridViewCell name="dataGridViewTextBoxColumn2" HeaderText="Type"/> 39 <DataGridViewCell name="dataGridViewTextBoxColumn3" HeaderText="Title"/> 40 <DataGridViewCell name="dataGridViewTextBoxColumn4" HeaderText="State"/> 41 <DataGridViewCell name="dataGridViewTextBoxColumn5" HeaderText="Priority"/> 42 <DataGridViewCell name="dataGridViewTextBoxColumn6" HeaderText="Assign"/> 43 <DataGridViewCell name="dataGridViewTextBoxColumn7" HeaderText="Handler"/> 44 <DataGridViewCell name="dataGridViewTextBoxColumn8" HeaderText="Assigner"/> 45 <DataGridViewCell name="dataGridViewTextBoxColumn9" HeaderText="Creation Time"/> 46 <DataGridViewCell name="Column10" HeaderText="Modification Times"/> 47 </DataGridViewCells> 48 </Form> 49 </Softimite>