ASP.NET実践:サイトマップのデータをローカライズ
11572 ワード
開発者は、Webサイトの地図の次のプロパティをローカライズできます. は、
これらのアトリビュート値を明示的または暗黙的に設定してローカライズできます.
明示的な式を使用して、Webサイトの地図ノードの Webサイトマップの に変更されました. Webサイトの地図で、ローカル化されたリソース列を必要とする属性値を変更します.以下の例では、大文字と小文字に敏感なコード: アプリケーションルートの下でのApp_GlobalResourcesディレクトリにカスタムを作成します.resxファイル.はい.resxファイルでは、一部の属性値はキーワードの 複数の言語のローカライズを実現する必要がある場合、ローカライズ情報を含むより多くの情報を作成する必要がある.resxファイル.例えば、リソースファイルのフランス語バージョンはSiteMapLocalizationsと命名される可能性がある.fr.resx.
暗黙的な式を使用して、Webサイトの地図ノードの Webサイトマップに に変更されました.ウェブサイト地図において、以下の例を用いる大文字と小文字に敏感なコードをローカライズする必要があるウェブサイト地図ノードに属性 アプリケーションルートの下でのApp_GlobalResourcesディレクトリにカスタムを作成します.resxファイル.はい.resxファイルでは、異なる属性値が 複数の言語のローカライズを実現する必要がある場合、ローカライズ情報を含むより多くの情報を作成する必要がある.resxファイル.例えば、リソースファイルのフランス語バージョンはWebと命名される可能性がある.sitemap.fr.resx.
ローカライズされたWebサイトの地図の
ユーザーの場所に応じて異なるバージョンのナビゲーション構造を定義します.は、異なる地域に対して異なるウェブサイト地図ファイルを定義する. はWeb.configファイルでは、さまざまな言語バージョンのWebサイトの地図ファイルを参照します. は、実行時にプログラミングによって必要に応じて
堅牢なコードの作成
明示的な式と暗黙的な式は、同じWebサイトの地図ファイルで同時に使用できません.
Title
Description
Attributes
のセットに含まれるカスタム属性を含む.これらのアトリビュート値を明示的または暗黙的に設定してローカライズできます.
明示的な式を使用して、Webサイトの地図ノードの
Title
またはDescription
のプロパティをローカライズします.EnableLocalization
プロパティを設定する値はtrue
です.例えば、Web.sitemapファイルの<siteMap>
ノードは、
<siteMap enableLocalization="true">
$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からHomePageTitle
およびHomePageDescription
のリソースキーワードを使用する.resxファイルでは、ローカライズされたtitle
およびdescription
が取得されます.別の名前からresxのリソースファイルで、ローカライズされた他のカスタムパラメータを取得します.name
パラメータ値をインデックスとして使用します.前の例のSiteMapLocalizations.resxファイルはそうかもしれません.
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" 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>
暗黙的な式を使用して、Webサイトの地図ノードの
Title
またはDescription
のプロパティをローカライズします.EnableLocalization
プロパティを設定する値はtrue
です.例えば、Web.sitemapファイルの<siteMap>
ノードは、
<siteMap enableLocalization="true">
resourceKey
:
resourceKey="HomePage"
、例えばWebを追加する.sitemapファイルの<siteMap>
ノードは、
<siteMapNode
url="~/Home.aspx"
resourceKey="HomePage"
title = "Default Title"
description = "Default Description"
/>
がHomePage.title
およびHomePage.description
リソースキーワードを使用して、ファイルからローカライズされたtitle
およびdescription
を取得する場合がある.name
パラメータでインデックスされます.ヒント:グローバルリソースファイルのキーワード名に句点(.)を含めることはできません.ただし、句点の使用は、グローバルリソースファイルで暗黙的な式を使用してWebサイトの地図ファイルを参照する場合には必要ありません.なぜなら、resourceKey
パラメータの標準構文であるからです.たとえば、Visual Web Developerなどのコード編集環境では、開発者がキーワード名で句点を使用すると、設計時のエラーが発生します.ただし、このエラーは無視でき、ファイルの編集や保存にも影響しません.
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" 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>
ローカライズされたWebサイトの地図の
URL
プロパティUrl
プロパティは、Webサイトの地図でローカライズできないため、Title
プロパティとは異なります.ユーザーの場所に応じて異なるバージョンのナビゲーション構造を定義します.
Description
の切り替えを行うことができる.この操作は、Provider
オブジェクトのSiteMapDataSource
プロパティまたはSitemapProvider
オブジェクトのSiteMapPath
プロパティ値をプロバイダの名前に設定することによって行うことができる.堅牢なコードの作成
明示的な式と暗黙的な式は、同じWebサイトの地図ファイルで同時に使用できません.