[习题]TreeView、Menu、SiteMapPath #2 --多国语系 /当地语系 / Localization
http://www.dotblogs.com.tw/mis2000lab/archive/2008/05/06/3803.aspx
请看完这篇入门文章之后,再来研读底下的习题:
[习题]TreeView、Menu、SiteMapPath #0,巡览控件入门(书本文章分享)
*的ASP.NET中文书籍,较少提到 Localization的部份。
可是目前撰写的系统,要应付全球这么多国的语系,不可能不提到Localization。以我为例,一套系统要给*与*使用,中文就会分成「正体中文」与「简体中文」两个版本了。
执行结果:
我们可以修改浏览器里面的「语言、语系」设定,默认值如果是中文,就会看见中文内容(如下,左图)。
如果是英文语系,网页就会自动变成英文画面(如下,右图)。
=========================================================
首先,修改上一个范例的 .Sitemap档案(http://www.dotblogs.com.tw/mis2000lab/archive/2008/05/06/3802.aspx)。
必须增修两个部份。
第一,<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0"enableLocalization="true">
第二,把 "每一个" 节点的 title 与 description属性都删除,只保留 url属性。并加入resourceKey属性。切记!~每一个节点都要改。
然后,在Visual Studio 2005/ 2008/ 2010里面,新增一个ASP.NET专属目录(/App_GlobalResource)
App_GlobalResource 目录里面新增两个 .resx文件,默认值是中文语系,文件名 Web.sitemap.resx。 此档名,建议跟 .sitemap档的完整名称相同~另一个语系是英文(en),档名为 Web.sitemap.en.resx。
如此一来,当使用者的浏览器,使用英文语系(en)来浏览网站时,我们的ASP.NET就会自动以 Web.sitemap.en.resx档案,来呈现英文内容。
这两个档案,内部的写法如下:
写法很简单。第一个档案 Web.sitemap.resx表示「预设的语言」,如:中文语系。
|
「名称」那边请填入==> 每一个节点的 resourceKey.title 与 resourceKey.description。也就是说,每个节点的 title(标题)与description(介绍文字),都由这个 .resx档案来提供。 |
|
「值」的部份,请填入中文。 |
当然,直接用 WordPad文字编辑器,打开此 .resx文件(默认值是中文语系,文件名 Web.sitemap.resx)。手动添加内容也行 ,这个档案是一个XML档案,只需修改最后面的部份....。内容如下:
第二个档案 Web.sitemap.en.resx 表示「英文」语系 ,内容如下。
如果是法文,则将档名改为Web.sitemap.fr.resx,以此类推。
「值」的部份( 就是<value>的部份 ),请填入英文的说明、文字。
最后,每一个网页(.aspx檔)的第一行,都要加上这一段,让网页能依照「使用者设定的语系」自动提供不同语言版本的内容:
<%@ Page Language="VB"Culture="Auto" UICulture="Auto"%>
这样就完成了,很简单。
不过,我修改微软的SDK文件去修改,却一直作不成功......
2009/5/19补充:
本系列第三篇文章,请看: [习题]TreeView、Menu、SiteMapPath #3 -- (会员登入)透过DropDownList控制TreeView与不同的 Sitemap檔
2010/4/29补充:
ASP.NET 4.0 实时切换网页语系的多国语言设计(1) http://www.delightpress.com.tw/article_c.aspx?article_id=47
ASP.NET 4.0 实时切换网页语系的多国语言设计(2) http://www.delightpress.com.tw/article_c.aspx?article_id=48
转载于:https://www.cnblogs.com/mis2000lab/archive/2010/10/15/2008_05_06_3803_TreeView_Menu_Global_MultiLingo_Localization.html