ソフトウェア国際化ツールWorld Wide Navi(ワールドワイドナビ)の国際化プログラミング参考情報から、ASP.NETの国際化の抜粋です。
1. ASPXにヘッダー追加
カルチャ(言語と地域)の設定をASPXのヘッダー部分に追加します。
Default.aspx
<%@ Page Language="C#" ...%>
=><%@ Page Culture="auto"
UICulture="auto" Language="C#" ...%>
2. 文字列の外部化(リテラルの置換)
ASP.NETは、文字列リソースの管理のために、4つの構文を持っています。
- 構文1は “<%=..%>” を必要とします。
- “”" は構文2では切り落とされます。
- 構文3は構文1と非常に似ていますが、
少し違います。 - 構文4ではmeta属性を追加することで、
デフォルトのテキストを残すことが出来ます。 - 構文3と4はASPタグのみにしか使えません。
Default.aspx * 構文1. (タグテキストの置換) "<%=" "Resources.Default." RESOURCE_KEY "%>" <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>This is a sample site!</title> => <title><%=Resources. Default.DefaultWwnaviMsg1%></title> </head> <body> * 構文2. (プログラム内のリテラルの置換) "Resources.Default." RESOURCE_KEY <div> <% Response.Write("Hello, World!"); %> => <% Response.Write( Resources.Default.DefaultWwnaviMsg2); %> </div> * 構文3. (ASPタグ内のテキストの置換) "<%$" "Resources.Default," RESOURCE_KEY "%>" <asp:Label ID="Label1" runat="server" Text="This is label 1."> =><asp:Label ID="Label1" runat="server" Text= "<%$Resources:Default, DefaultWwnaviMsg3%>"> </asp:Label> * 構文4. (ASPタグ内のmeta属性の追加) "meta:resourcekey="" RESOURCE_KEY """ <asp:Label ID="Label1" runat="server" Text="This is label 1."> =><asp:Label ID="Label2" runat="server" Text= "This is label 1." meta:resourcekey= "DefaultWwnaviMsg4" > </asp:Label>
各文字列の場所に応じて、適切な構文を使う必要があります。
(ASPタグでは構文3または4どちらかが使えます。)
3. Resxファイルの作成
外部化された文字列をresx(リソース)ファイルに配置します。”App_GlobalResources”フォルダをプロジェクトディレクトリの直下に作成し、resxファイルをその下に、”ASPX_FILE_NAME(拡張子なし).resx”(*1)という名前で作成します。
PROJECT_DIRECTORY - App_GlobalResources - Default.resx - WebForm1.resx *1)構文4(meta属性)を使っている場合は、 拡張子を付ける必要があります(Default.aspx.resx)。
Default.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:schema> ... <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <data name="DefaultWwnaviMsg1" xml:space="preserve"> (RESOURCE_KEY) <value>This is a sample clomid site!</value> (RESOURCE_STRING) </data> </root>
4. コンパイルとローカリゼーション
ビルドと実行をしてください、ブラウザ内でリソース文字列が表示されるのが確認できるはずです。他の言語のリソースを追加したい場合は、ASPX_FILE_NAME.LOCALE_CODE(例:”ja”).resxをApp_GlobalResourcesに追加してください。
App_GlobalResources - Default.resx ... マスターリソース (例:英語) - Default.ja.resx ... ローカライズされたリソース (例:日本語)
最近のコメント