共用方式為


HOW TO:當地語系化網站導覽資料

更新:2007 年 11 月

您可以當地語系化網站導覽中的下列屬性 (Property):

這些屬性是使用明確或隱含的運算式做為屬性值來當地語系化。如需運算式的詳細資訊,請參閱 ASP.NET 運算式概觀。如需資源檔案的詳細資訊,請參閱 ASP.NET 應用程式中的資源

若要使用明確運算式當地語系化網站導覽節點的 Title 或 Description 屬性

  1. 在您的網站導覽中,將 EnableLocalization 屬性設定為 true。例如,在 Web.sitemap 檔中,變更 <siteMap> 節點,讓它看起來像是下列程式碼:

    <siteMap enableLocalization="true">
    
  2. 在您的網站導覽中,將想要當地語系化的屬性值變更為資源字串,如下行區分大小寫的程式碼所示:

    $resources:ClassName,KeyName,DefaultValue
    

    例如,在 Web.sitemap 檔中,您的網站導覽節點可能看起來像是下列範例程式碼。

    <siteMapNode 
      url="~/Home.aspx" 
      title="$resources:SiteMapLocalizations,HomePageTitle"
    description="$resources:SiteMapLocalizations,HomePageDescription,Default description"
      myCustomAttribute="$resources: CustomLocalizations,MyCustomAttribute"
    />
    

    已當地語系化的標題和描述是從名為 SiteMapLocalizations.resx 的檔案使用 HomePageTitle 和 HomePageDescription 資源索引鍵取得。已當地語系化的自訂屬性 (Attribute) 則是從名為 CustomLocalizations.resx 的個別檔案取得。如需資源字串的詳細資訊,請參閱 ASP.NET 運算式概觀

  3. 在應用程式根目錄內名為 App_GlobalResources 的資料夾中,建立您的 .resx 檔案。在 .resx 檔案內,個別屬性值是依機碼名稱值來製成索引。對於上述範例而言,SiteMapLocalizations.resx 檔案可能看起來像是下面這個樣子。

    <?xml version="1.0" encoding="utf-8"?>
    <root>
      <xsd:schema id="root"  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
        <xsd:element name="root" msdata:IsDataSet="true">
          <xsd:complexType>
            <xsd:choice maxOccurs="unbounded">
              <xsd:element name="metadata">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="value" type="xsd:string" minOccurs="0" />
                  </xsd:sequence>
                  <xsd:attribute name="name" type="xsd:string" />
                  <xsd:attribute name="type" type="xsd:string" />
                  <xsd:attribute name="mimetype" type="xsd:string" />
                </xsd:complexType>
              </xsd:element>
              <xsd:element name="assembly">
                <xsd:complexType>
                  <xsd:attribute name="alias" type="xsd:string" />
                  <xsd:attribute name="name" type="xsd:string" />
                </xsd:complexType>
              </xsd:element>
              <xsd:element name="data">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                    <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
                  </xsd:sequence>
                  <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
                  <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
                  <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
                </xsd:complexType>
              </xsd:element>
              <xsd:element name="resheader">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                  </xsd:sequence>
                  <xsd:attribute name="name" type="xsd:string" use="required" />
                </xsd:complexType>
              </xsd:element>
            </xsd:choice>
          </xsd:complexType>
        </xsd:element>
      </xsd:schema>
      <resheader name="resmimetype">
        <value>text/microsoft-resx</value>
      </resheader>
      <resheader name="version">
        <value>2.0</value>
      </resheader>
      <resheader name="reader">
        <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
      </resheader>
      <resheader name="writer">
        <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
      </resheader>
      <data name="HomePageTitle">
        <value xml:space="preserve">Home Page</value>
      </data>
      <data name="HomePageDescription">
        <value xml:space="preserve">Home page of site</value>
      </data>
    </root>
    
  4. 如果您需要將字串當地語系化為多種語言,則可以建立其他 .resc 檔案,並在檔案名稱中加入地區設定資訊。例如,您可以將法文版的資源檔命名為 SiteMapLocalizations.fr.resx。

若要使用隱含運算式當地語系化網站導覽節點的 Title 或 Description 屬性

  1. 在您的網站導覽中,將 EnableLocalization 屬性設定為 true。例如,在 Web.sitemap 檔中,變更 <siteMap> 節點,讓它看起來像是下列程式碼:

    <siteMap enableLocalization="true">
    
  2. 在您的網站導覽中,使用下列會區分大小寫的程式碼行,將名為 resourceKey 的屬性加入至想要當地語系化的網站導覽節點:

    resourceKey="HomePage"
    

    例如,在 Web.sitemap 檔中,您的 <siteMap> 節點可能看起來像是下列範例程式碼:

    <siteMapNode 
      url="~/Home.aspx" 
      resourceKey="HomePage"
      title = "Default Title"   
      description = "Default Description" 
     />
    

    已當地語系化的標題和描述是從名為 Web.sitemap.resx 的檔案使用 HomePage.title 和 HomePage.description 資源索引鍵而取得。

  3. 在應用程式根目錄內名為 App_GlobalResources 的資料夾中,建立您的 .resx 檔案。在 .resx 檔案內,個別屬性值是依名稱來製成索引。對於上述範例而言,Web.sitemap.resx 檔案可能看起來像是下面這個樣子:

    注意事項:

    全域資源檔中的機碼名稱不得包含句號 (.)。但是,使用隱含運算式時,網站導覽檔案中參考的全域資源中必須有句號。這是基於 resourceKey 語法的緣故。在某些編輯環境中 (如 Visual Web Developer),如果您在機碼名稱中使用句號,則可能會發生設計階段的錯誤。不過,這應該不會影響到編輯或儲存檔案的能力,而且是可省略的。

    <?xml version="1.0" encoding="utf-8"?>
    <root>
      <xsd:schema id="root"  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
        <xsd:element name="root" msdata:IsDataSet="true">
          <xsd:complexType>
            <xsd:choice maxOccurs="unbounded">
              <xsd:element name="metadata">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="value" type="xsd:string" minOccurs="0" />
                  </xsd:sequence>
                  <xsd:attribute name="name" type="xsd:string" />
                  <xsd:attribute name="type" type="xsd:string" />
                  <xsd:attribute name="mimetype" type="xsd:string" />
                </xsd:complexType>
              </xsd:element>
              <xsd:element name="assembly">
                <xsd:complexType>
                  <xsd:attribute name="alias" type="xsd:string" />
                  <xsd:attribute name="name" type="xsd:string" />
                </xsd:complexType>
              </xsd:element>
              <xsd:element name="data">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                    <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
                  </xsd:sequence>
                  <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
                  <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
                  <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
                </xsd:complexType>
              </xsd:element>
              <xsd:element name="resheader">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                  </xsd:sequence>
                  <xsd:attribute name="name" type="xsd:string" use="required" />
                </xsd:complexType>
              </xsd:element>
            </xsd:choice>
          </xsd:complexType>
        </xsd:element>
      </xsd:schema>
      <resheader name="resmimetype">
        <value>text/microsoft-resx</value>
      </resheader>
      <resheader name="version">
        <value>2.0</value>
      </resheader>
      <resheader name="reader">
        <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
      </resheader>
      <resheader name="writer">
        <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
      </resheader>
      <data name="HomePage.description">
        <value xml:space="preserve">Home Page Description</value>
      </data>
      <data name="HomePage.Text">
        <value xml:space="preserve">Home Page Text from Resource File</value>
      </data>
      <data name="HomePage.title">
        <value xml:space="preserve">Home Page Title from Resource File</value>
      </data>
      <assembly alias="mscorlib" name="mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      <data name="LabelResource1.Visible" type="System.Boolean, mscorlib">
        <value>True</value>
      </data>
    </root>
    
  4. 如果您需要將字串當地語系化為多種語言,則可以建立其他 .resc 檔案,並在檔案名稱中加入地區設定資訊。例如,您可以將法文版的資源檔命名為 Web.sitemap.fr.resx。

當地語系化網站導覽中的 URL 屬性

在網站導覽中,Url 屬性無法和 TitleDescription 屬性一樣被當地語系化。

若要定義根據使用者的地區設定定義不同的巡覽結構

  1. 為每一個地區設定 (Locale) 定義不同的網站導覽檔。

  2. 將每一個網站導覽加入至 Web.config 檔案。如需詳細資訊,請參閱 HOW TO:設定多個網站導覽和網站導覽提供者

  3. 在執行階段以程式設計方式切換至適當的 Provider。做法是將 SiteMapDataSource 物件的 SiteMapProvider 屬性 (或是將 SiteMapPath 物件的 SiteMapProvider 屬性) 設定為提供者名稱。如需詳細資訊,請參閱 HOW TO:在記憶體中以程式設計方式修改網站導覽節點

穩固程式設計

明確和隱含運算式都不可以用於相同的網站導覽檔案中。

請參閱

工作

HOW TO:設定多個網站導覽和網站導覽提供者

HOW TO:在記憶體中以程式設計方式修改網站導覽節點

概念

ASP.NET 網站導覽

ASP.NET 應用程式中的資源

ASP.NET 運算式概觀

設定 ASP.NET 網站巡覽的安全性

設定資料存取的安全性

參考

Title

Description

Attributes

其他資源

裝載環境中 ASP.NET 應用程式的安全性