ソースからリソースを呼び出す
Local Resource
* GetLocalResourceObject(【キー】).ToString()
サンプル
Dim textValue As String = GetLocalResourceObject("Key").ToString()
Global Resource
* 【リソースファイル】.【キー】 * GetGlobalResourceObject(【キー】).ToString()
サンプル
Dim textValue1 As String = TextResources.KeyValue Dim textValue2 As String = GetGlobalResourceObject("KeyValue").ToString()
Web.sitemapの多言語化
方法1
[1] グローバル・リソースを用意する(例:ファイル名「SiteMapResources.resource」) [2] 以下の例にならって、Web.sitemapを修正する <siteMapNode title="$Resources:SiteMapResources,DefaultTitle" description="$Resources:SiteMapResources,DefaultDescription" url="~/Default.aspx"> * サイトマップのローカライズを有効にするには、 <siteMap>要素のenableLocalization属性をtrueに設定 * グローバル・リソース・ファイルを取得するには 「$Resources:ベース名,キー名」の形式で指定
方法2:複数のサイトマップ・ファイルを設置する
[1] ロケールごとのサイトマップ・ファイルを用意する (例:ファイル名「WebJp.sitemap」「WebEn.sitemap」) [2] サイトマップ・ファイルをアプリケーション(Web.config)に登録する <siteMap enabled="true"> <providers> <add name="JaSiteMapProvider" type="System.Web.XmlSiteMapProvider" siteMapFile="WebJp.sitemap" /> <add name="EnSiteMapProvider" type="System.Web.XmlSiteMapProvider" siteMapFile="WebEn.sitemap" /> [3] ページのロード時に実行されるイベント・ハンドラで、 サイトマップ・プロバイダを動的に変更する If (Request.UserLanguages(0).StartsWith("ja")) Then ' ロケールが“ja”の場合には“JaSiteMapProvider”をセット smds.SiteMapProvider = "JaSiteMapProvider" Else If (Request.UserLanguages(0).StartsWith("en")) Then ' ....
参考資料
http://www.atmarkit.co.jp/fdotnet/dotnettips/508asplocalizesitemap1/asplocalizesitemap1.htmlhttp://www.atmarkit.co.jp/fdotnet/dotnettips/510asplocalizesitemap2/asplocalizesitemap2.html