http://blog.blueshop.com.tw/uni2tw/archive/2006/12/12/47151.aspx http://forums.microsoft.com/MSDN-CHT/Search/Search.aspx?words=%E5%A4%9A%E5%9C%8B%E8%AA%9E%E8%A8%80&searchKey=&lcid=1028&searchscope=allforums&siteid=14&ForumID=-1&ForumGroupID=-1
區域性名稱 |
區域性識別字 |
語言-國家/地區 |
zh-CN |
0x0804 |
中文-中國 |
zh-TW |
0x0404 |
中文-臺灣 |
zh-CHS |
0x0004 |
簡體中文 |
zh-CHT |
0x7C04 |
繁體中文 |
en |
0x0009 |
英語 |
en-US |
0x0409 |
英語-美國 |
en-GB |
0x0809 |
英語-英國 |
如果你的網頁是 Default.aspx 那多語系資源檔可以是 Default.aspx.resx Default.aspx.zh-cht.resx (繁中) Default.aspx.en.resx (英) Default.aspx.zh-chs.resx (簡中)
我們寫asp.net 抓到的 Thread.CurrentThread.CurrentCulture 是 zh-TW 如果沒有Default.aspx.zh-tw.resx, 因為zh-TW 的Parent 是zh-cht,所以就會讀取 Default.aspx.zh-cht.resx
而不論如何,Default.aspx.resx是一定要有的。
Page不需特別設定,就會自動讀對映的語系顯示網頁,但如果測試就特別指定 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="YourClass.aspx.cs" Inherits="YourClass" UICulture="zh-TW" %> 指定UICulture也就是指定用哪個語系的資源檔來顯示畫面
雖然設定 Culture 與 UICulture 都會改變畫面的語系 但如果是指定<%@ Page Culture="zh-TW"%>,是會改變 Thread.CurrentThread.CurrentCulture , 程式裏跟Culture相關的都會影響到,比方說 Response.Write(DateTime.Now.ToLongDateString() + DateTime.Now.ToLongTimeString() + "<br />"); 在 Cultrue="zh-TW" 的情況下,是秀出『2006年12月12日下午 03:34:46』 在 Cultrue="en-US" 的情況下,是秀出『Tuesday, December 12, 20063:49:08 PM』
文件裏獲得在地字串的方法有2種 <asp:Label ID="lblLanguage" runat="server" Text="<%$ Resources:Language %>"></asp:Label> <asp:Label ID="lblNavigaion" runat="server" meta:resourcekey="lblNavigation"></asp:Label>
如果想用程式取得 protected void Page_Init(object sender, EventArgs e) { lblNavigaion.Value = GetLocalResourceObject("Navigaion").ToString(); } User Control 裏也可以這樣讀
|
请发表评论