田中達彦のブログ

Windowsクライアントの開発系の情報を出していきます。

良いWindowsストア アプリの作り方 vol.06 ~多言語対応~

良いWindowsストア アプリの作り方 vol.06 ~多言語対応~

  • Comments 2
マイクロソフトの田中達彦です。 
本連載では、良いWindowsストア アプリを作るために、知っておくべきポイントを紹介します。


せっかくWindowsストア アプリを作るなら、英語などのUIも用意して、多くの国の方に使ってもらいましょう。
今回はアプリの多言語対応について説明します。
いつものように、C#を使った例を紹介します。
ここでは、日本語と英語の2か国語に対したアプリを作ります。


[リソースの用意]
C#の[新しいアプリケーション]プロジェクトを元に多言語のリソースを追加していきましょう。

まず、対応する言語ごとにリソースを用意します。
ソリューション エクスプローラーで下図のようにstring\en、string\jaフォルダーを作成します。



jaフォルダー上で右クリックし、[追加]-[新しい項目]を選びます。

下図のように左のペインでVisual C#を選択し、右側で[リソースファイル(.resw)]を選択し、追加します。



enフォルダーも同様にResources.reswを追加します。




jaのResources.reswに以下のリソースを追加します。




enのResources.reswには以下のリソースを追加します。




これでリソースの用意ができました。



[リソースの使用]
用意したリソースを表示させるために、MainPage.xamlにTextBlockを貼り付けます。
ここではわかりやすいように、フォントを大きくしています。



XAMLのコードのTextBlockの部分に、黄色くマーカーした部分を追加します。

<TextBlock x:Uid="String1" HorizontalAlignment="Left" Margin="120,70,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" FontSize="36"/>

日本語環境で実行すると、以下のように「こんにちは」と表示されます。



次に、英語環境で試してみましょう。 コントロールパネルを起動し、右上の検索ボックスで「言語」と検索します。

[言語の追加]を選び、ここで英語を追加します。
上のほうにある[言語の追加]を選択し、[英語]をクリックして[英語(米国)]を選択します。
以下のように、英語の優先度を一番上に移動させます。



この状態でアプリを起動すると、「Hello」と表示されるようになりました。



これで、アプリが日本語と英語の両方に対応するようになりました。



[ストアへの登録]
Windowsストアでは、多言語対応しているアプリは、言語ごとに説明文を用意できます。
日本語と英語(米国)の説明文を用意するには、以下のようにします。
ソリューション エクスプローラーのPackage.appxmanifest上で右クリックして、[コードの表示]を選びます。
Resourcesの部分に、サポートする言語を追加します。
以下の例は、日本語と英語(米国)をサポートしています。
   <Resources>
    <Resource Language="JA-JP" />
    <Resource Language="EN-US" />
  </Resources>
Appxパッケージを作成し、開発者ポータルでAppxパッケージをアップします。
以下のように、説明を日本語と英語で入れられるようになります。




このとき、英語の説明は英語で入力し、スクリーンショットも英語版をご使用ください。


[より詳細な情報]
言語と地域を管理する方法
http://msdn.microsoft.com/ja-jp/library/windows/apps/xaml/Hh967761(v=win.10).aspx

言語の選択 (現在は英語記事のみ)

http://msdn.microsoft.com/ja-jp/library/windows/apps/jj657969.aspx

サンプル

http://code.msdn.microsoft.com/windowsapps/Application-resources-and-cd0c6eaa/


[前後の記事]

vol.05 : ワイドタイルはライブタイルとして実装する
vol.07 : スプラッシュ スクリーン


マイクロソフト

田中達彦

※ 「Metroスタイル アプリ」は、「Windowsストア アプリ」に名前が変わりました。
Leave a Comment
  • Please add 8 and 7 and type the answer here:
  • Post
  • リソースはenとjaと広範囲にしておいて、Languageでen-USとja-JPと限定するわけですか。

    リソースをen-USとja-JPで作ってLanguage="x-generate"のデフォルトに任せるのと、どう違うのでしょう?

  • リソース、Languageともに、"ja"と"ja-JP"の両方の表記を使用できます。英語の場合、細かい地域ごとにリソースを用意しないのであれば、"en"の表記だけでも構いません。

    Languageにx-generateを指定したときは、用意しているリソースとPackage.appxmanifestをデザイナーで開いたときにある[既定の言語]の情報を元に、appxパッケージを作る際に具体的な言語に変換します。

    例えば、リソースとして日本語と英語を用意するにもかかわらず、ストアでの説明を日本語しか用意しない場合は、Languageにja-JP(またはja)のみを指定します。

    逆に、リソースは英語しか用意していないにもかかわらず、ストアの説明を日本語と英語の両方を用意するときは、Languageにja-JP(またはja)とen-US(またはen)を設定します。

    すなわち、リソースはアプリを起動する環境によって表示する言語を変える仕組みで、Languageに用意する言語の種類はストア上での説明文に影響します。

Page 1 of 1 (2 items)