程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET 2.0(C#)(5) - Localization(本地化,多語言)

ASP.NET 2.0(C#)(5) - Localization(本地化,多語言)

編輯:關於ASP.NET

介紹

聲明性資源表達式可使您的應用程序使用多種語言,而不必手動編寫代碼來檢索資源並在頁中進行替換。您只需使用 ASP.NET 2.0 中新提供的表達式語法即可對資源替換進行定義。ASP.NET 2.0 支持標准的 resx 文件格式自動進行運行時資源檢索。

關鍵

1、Culture - 決定各種數據類型是如何組織,如數字與日期;UICulture - 決定了采用哪一種本地化資源,也就是使用哪種語言。在頁的@Page指令中或者配置文件的<system.web><globalization>元素中設置(另外該元素內還可以設置屬性requestEncoding,responseEncoding,fileEncoding)。Culture="en-us"和Culture="auto:en-us"的區別在於,後者會先自動匹配,無法自動匹配則用en-us

2、HTTP 允許浏覽器使用“接受語言”(Accept-Language) HTTP 請求標頭字段將一個首選語言列表發送到 Web 服務器。在IE中選擇工具 - Internet 選項 - 語言

3、web.sitemap應用本地化的時候設置<siteMap>的屬性enableLocalization="true"。訪問全局資源:$Resources: 全局資源名, 資源內的key, 默認值;或者resourceKey="web.sitemap.resx文件中的key"

4、編程方式處理用GetGlobalResourceObject() 和 GetLocalResourceObject()

5、編程設置Culture 和 UICulture請重寫InitializeCulture(),對 Thread.CurrentThread.CurrentCulture 和 Thread.CurrentThread.CurrentUICulture進行設置

6、訪問全局資源:$ Resources:全局資源名,資源內的key;顯式訪問本地資源:$ Resources:key.屬性;隱式訪問本地資源:meta:resourcekey="key"。

示例

本地化測試

Localization/Test.aspx

<%@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Test.aspx.cs"
  Inherits="Localization_Test" Title="本地化測試" Culture="en-us" UICulture="en-us"
  meta:resourcekey="Title" %>
  
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
  <p>
    目前語言:
    <asp:Label ID="lblCurrentCulture" runat="Server" />
  </p>
  <p>
    當前時間:
    <%=DateTime.Now %>
  </p>
  <p>
    隱式:
    <asp:Label ID="lbl" runat="server" meta:resourcekey="lbl" /></p>
  <p>
    顯式:
    <asp:Label ID="lbl2" runat="server" Text="<%$ Resources:lbl.Text %>" ToolTip="<%$ Resources:lbl.ToolTip %>" />
  </p>
  <p>
    全局:
    <asp:Label ID="lbl3" runat="Server" Text="<%$ Resources:MyGlobal,GlobalText %>" />
  </p>
  <p>
    編碼方式(全局資源):
    <asp:Label ID="lbl4" runat="server" />
  </p>
  <p>
    編碼方式(本地資源):
    <asp:Label ID="lbl5" runat="server" />
  </p>
  <p>
    Localize控件方式(Label控件到客戶端會解析成&lt;span&gt;,而Localize到客戶端後就是解析成其所包含的文字):
    <asp:Localize ID="AboutUs" runat="server" meta:resourcekey="AboutUs"></asp:Localize>
  </p>
  <p>
    <a href="?currentculture=zh-cn">中文</a>
    &nbsp;
    <a href="?currentculture=en-us">英文</a>
  </p>
  <p>
    注:<br />
    Culture - 決定各種數據類型是如何組織,如數字與日期<br />
    UICulture - 決定了采用哪一種本地化資源,也就是使用哪種語言
  </p>
</asp:Content>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved