- ASPXにヘッダー追加
- カルチャ(言語と地域)の設定をASPXのヘッダー部分に追加します。
Default.aspx
<%@ Page Language="C#" ...%>
-><%@ Page Culture="auto" UICulture="auto" Language="C#" ...%>
- 文字列の外部化(リテラルの置換)
- ASP.NETは、文字列リソースの管理のために、4つの構文を持っています。
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>
- 構文1は '<%=..%>' を必要とします。
- '"' は構文2では切り落とされます。
- 構文3は構文1と非常に似ていますが、少し違います。
- 構文4ではmeta属性を追加することで、デフォルトのテキストを残すことが出来ます。
- 構文3と4はASPタグのみにしか使えません。
各文字列の場所に応じて、適切な構文を使う必要があります。
(ASPタグでは構文3または4どちらかが使えます。)
- 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 site!</value>(RESOURCE_STRING)
</data>
</root>
- コンパイルとローカリゼーション