#wp7dev_jp #wdev_jp

アプリケーションは何と言っても自国の言語に対応しているのが一番受けがいいです。が、全言語対応は難しいのでひとまず、英語と日本語に対応してみましょう。

まずは、アプリケーションの中の言葉を対応します。今回はその準備編です。5つのステップで行います。( MSDN情報

【1】 アプリケーションのニュートラル言語を英語に変更

標準を日本語、追加を英語にしてもいいですが、それ以外の国では日本語表記になってしまいます。そのため標準は英語にしておきましょう。

「プロジェクト」→「プロジェクト名のプロパティ」 でプロジェクトのプロパティを表示して、右にある「アセンブリ情報」ボタンを押します。

ダイアログが表示されたら、ニュートラル言語を「英語」に変更。

image

AssemblyInfo.cs の最終行を変更でもOK。

 

【2】 リソースファイルを追加(対応言語数必要)

リソースファイルを追加します。リソースファイルはいわゆる辞書ファイルです。なので、対応言語数分必要です。

「プロジェクト」→「新しい項目の追加」 アセンブリリソースファイルを選択。今回は「StringResource.resx」を作ってみます。

image

リソースファイルが開いたら、アクセス修飾子をPublicにします。

image

同じく、日本語用に「StringResource.ja-JP.resx」 を作ります。同じくアクセス修飾子を Public にしておきます。

【3】 プロジェクトファイル (csproj) の修正

プロジェクトの対応言語を追記します。ここでの設定が Marketplace にあげた時の対応言語になる...はず。

いったんプロジェクトを終了させ、プロジェクトファイル( アプリケーション名.csproj )をメモ帳で開き、修正します。

<SupportedCultures>と書かれている個所を探します。

image

を以下のように書き換え。複数言語の時はセミコロンで区切ります。 例)ja-JP;de-DE

<SupportedCultures>ja-JP</SupportedCultures>

★Visual Studio 製品版の場合

  1. 「ソリューションエクスプローラー」のプロジェクトファイルを右クリックし、「プロジェクトのアンロード」をえらび、
  2. さらに右クリックして「編集 アプリケーション名.csproj」を選んで
  3. Visual Studio で上記箇所の修正
  4. 終わったら右クリックして「プロジェクトの再読み込み」を選びます。

 

【4】 XAML 用にクラスファイルを作成

「プロジェクト」→「新しい項目の追加」 でクラスを選択。「LocalizedStrings.cs 」を作ります。(名前は任意)

クラスの中に2行追加。Using句はすべて削除しておきます。

public class LocalizedStrings
{
    private static StringResources _locRes = new StringResources();
    public StringResources LocRes { get { return _locRes; } }
}

【5】 App.xaml にリソースを追加

App.xaml の<Application.Resource> の中に上記で作ったクラスを登録します。Keyは上記で追加した2行目の変数名です。

<Application.Resources>
    <local:LocalizedStrings 
     xmlns:local="clr-namespace:ネームスペース名" x:Key="LocRes" />
</Application.Resources>

 

ひとまずまとめ

ということで、3つのファイルを修正し、3つのファイル(1つのクラス+2言語分のリソースファイル)を追加しました。

image

コンパイルして問題がないか確認しておきます。