Deep Insider の Tutor コーナー
>>  Deep Insider は本サイトからスピンオフした姉妹サイトです。よろしく! 
VB開発者のためのWindowsストアアプリをリリースするための13の極意

VB開発者のためのWindowsストアアプリをリリースするための13の極意

極意10: サポートしている全ての言語でアプリをローカライズしなければならない

2013年9月27日

日本語版のWindowsストア・アプリ上の表記に英単語があると申請時にリジェクトされる?! その対象方法を紹介する。

  • このエントリーをはてなブックマークに追加

前書き ―― 今回の極意について

  「Windows 8 アプリの認定の要件」の中に、以下の記述がある。
   「6.5 サポートしているすべての言語でアプリをローカライズしなければならない

 詳細は次のように記述されている。

・アプリでサポートできる言語は、Windowsストアの利用可能な言語だけです。また、サポートする少なくとも1つの言語が認定言語でなければなりません。アプリのエクスペリエンスは、サポートするどの言語でも同じように機能しなければなりません。
・アプリのパッケージで宣言する各言語で、ユーザー向けにアプリの詳しい説明を提供する必要があります。スクリーンショット、テキスト、プロモーション用の画像など、アプリを説明するその他の要素もローカライズする必要があります。ローカライズされたバージョンで特定の機能が使用できなくなるようにアプリをローカライズする場合は、アプリの説明の中にローカライズの制限を明確に記述、または表示する必要があります。

この「認定の要件」の意味とは

 この認定の要件は、プログラミング経験者なら、ある程度は理解できるのではないだろうか。特に、Windows Phoneアプリの開発経験がある方なら、容易に理解できるかもしれない。

 「言語」という文字が出てきているので、何か言葉に関することなのだろう、とは想像が付く。また、ローカライズとは「地域化」という意味であり、「ローカライズとは、ある国を対象に作られた製品を、外国でも使用できるように、外国の言語に対応させることである」とWebに記載されている。ということは、日本対応の日本語のアプリの場合は、アプリ内の表記を全て日本語に対応させることなのか、と想像が付く。Windows Phoneアプリ開発経験のある方なら、すぐにピンとくる要件なのだが、そんな経験もなく、なおさら、初めてプログラミングに挑戦する方には、すぐに理解するには、少し難しい内容だ。

 筆者はWindows Phoneアプリの開発経験があったので、その意味ではこの要件は特に問題はなかった。簡単にいうと、例えば日本語のアプリの場合は、アプリの中で使用するアイコンやボタンの表記には日本語を使いなさい、ということだと理解できた。

 日本語版のアプリの場合は、UI(ユーザー・インターフェイス)を日本語でローカライズし、日本語以外をサポートする場合は、その言語でローカライズする必要がある。日本語版なのに、アプリの画面上や、ストアに登録するスクリーンショットに英語または他国語があるときは、この要件で落ちる可能性があるということだ。

日本語にローカライズしたアプリ

 筆者はWindowsストアに「惑星画像の合成」を公開している(次の画像を参照)。

「惑星画像の合成」アプリ

 Webカメラで写した写真に、惑星の画像を拡大/縮小して、任意の位置に配置して合成し、保存するアプリだ。

XAMLコードの編集

 上の画面を見ると分かると思うが、[写真を撮る]ボタンと[一覧]ボタンは日本語で表記している。デフォルトでは[写真を撮る]は[Attach Camera]、[一覧]は[Folder]という英語表記になっている。これらのボタンはリスト1のXAMLコードのように、ButtonコントロールのStyleプロパティにStaticResourceを用いて、ソリューション・エクスプローラー内のCommonフォルダー内にあるStandatdStyles.xamlファイル内のスタイルを参照させているのだ(次の画面を参照)。

XAML
<Button x:Name="shutterButton" HorizontalAlignment="Left" Height="91" VerticalAlignment="Top" Width="104"
  Style="{StaticResource AttachCameraAppBarButtonStyle}" Margin="445,204,0,0"/>
<Button x:Name="ichiranButton" HorizontalAlignment="Left" Height="91" VerticalAlignment="Top" Width="104"
  Style="{StaticResource FolderppBarButtonStyle}" IsEnabled="False" Margin="798,592,0,0"/>
リスト1 <Button>要素のStyleプロパティで各ボタンのスタイルを参照するXAMLコード
ソリューション・エクスプローラー内のCommonフォルダー内にStandardStyles.xamlファイルが存在している
ソリューション・エクスプローラー内のCommonフォルダー内にStandardStyles.xamlファイルが存在している

 ここで参照している「AttachCameraAppBarButtonStyle」や「FolderppBarButtonStyle」の名称は、前述のように、もともとは英語表記で[Attach Camera]と[Folder]という名称になっていた。それを、リスト2のようにそれぞれのValueプロパティの値を[写真を撮る]、[一覧]という日本語表記に書き換えた。これで日本語へのローカライズは完了だ。

XAML
<Style x:Key="AttachCameraAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}">
  <Setter Property="AutomationProperties.AutomationId" Value="AttachCameraAppBarButton"/>
  <Setter Property="AutomationProperties.Name" Value="写真を撮る"/>
  <Setter Property="Content" Value="&#xE12D;"/>
</Style>

<Style x:Key="FolderppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}">
  <Setter Property="AutomationProperties.AutomationId" Value="FolderAppBarButton"/>
  <Setter Property="AutomationProperties.Name" Value="一覧"/>
  <Setter Property="Content" Value="&#xE188;"/>
</Style>
リスト2 StandardStyles.xamlファイルでスタイル定義のValueプロパティの値を日本語表記にした

英語表記のままでも認定されていた不思議さ

 現在は、このようなボタンの表記などは全て日本語に書き換えて表示させているのだが、実は数カ月前までは日本語に書き換えず、英語表記のままで申請していた。そして、それが何も問題なく全て認定されていたのだ。筆者の頭の中には、「ボタンの表記は英語表記のままでいいのか?」という疑問はあったが、生来の面倒くさがりの性格もあって、英語の表記のまま申請していた。それが、問題なく認定されていたものだから、その後、同じパターンのアプリを申請する際も、全て英語表記のままで申請し続けた。それでも、何事もなく順調に認定され続けた。だから、ボタンの表記が英語のままでも問題ないのだ、と錯覚してしまった。

 ところが、ある日突然に、全く突然に、この「認定の要件」でリジェクトされてしまったのだ。リジェクトされた「認定レポート」を探してみたのだが、どうにも見付からないので、今回は「認定レポート」の掲載は省かせていただく。

 筆者がまだ修正しないで、ボタンが英語表記のままで認定されているアプリが、Windowsストアに公開されている。「カメラでお花」というアプリだ。アプリバー内に3つのボタンが表示されているが、[Attach Camera][Save][Folder]という英語表記のままになっている。本来なら[写真を撮る][保存][一覧]となるべきだ。このころはWindowsストアの作法にもむとんちゃくであったため、タイトルさえも入っていない。今となっては恥ずかしい。修正してリリース2を申請しなければならない。

 なぜ、今までは英語表記のままで認定されていたのか、理由は今でも分からない。審査員のうっかりミスなのだろうか? それとも、この「認定の要件」については審査の基準が甘いのであろうか? 日本語のアプリなのだから、この「認定の要件」に従えば、ボタンの表記が英語であれば、リジェクトされるのが当然である。もちろん、その後、英語表記のままで認定されていたアプリの8割は、日本語表記に直してリリース2として申請し直した。全て認定済みである。残りの2割も修正しなければならないのだが、いかんせん時間がない!

対処の仕方

 今回の「認定の要件」の対処の仕方は簡単である。日本語アプリの場合は、全ての表記を日本語にするだけだ。スクリーンショットも日本語表記のスクリーンショットを付ければいい。また、英語対応の場合は、全て英語表記にすることだ。例えば日本語のアプリで、ゲームなどでよく表示される「Game Over」を使うとリジェクトされるので注意しよう。もちろんボタン上の表記に[OK]や[Cancel]もリジェクトの対象になる。[決定][中止]といった日本語表記にする必要がある。

忘れやすいボタンの表記

 筆者がときどき忘れてしまうのが、動画を表示させる場合に使用するボタンの表記だ。デフォルトでは[Play][Pause][Stop]となっている。これを日本語表記に変更するのを忘れてしまう。[再生][休止][停止]が本来の正しい名称だが、時折、日本語アプリであっても、英語表記のままでも認定されてしまうことがある。繰り返しになるが、審査員のうっかりミスなのか、許容範囲なのかは分からない。一番確実なのは、日本語のアプリの場合は、全て日本語表記にしておくことだ。

 先の「惑星画像の合成」アプリの画面を見ていただくとお分かりになるが、コンボボックス内に表示されているのは、筆者がPCに接続しているWebカメラのデバイス名だ。いくら日本語アプリだからといって、このように自動的に取得されるデバイス名まで日本語にすることは不可能だ。このような場合は英語表記でも問題はない。当然のことだ。

 筆者は現在、Windowsストアに260個以上のアプリを公開している。我ながら、数も数だが、よくネタがあったものだと感心する。そのネタに関するコラムを次に書いてみた。ネタに困ったときの参考にしてほしい。

【コラム】Windows ストア・アプリのネタに困ったら

 ちょっと筆者の自慢話になって恐縮だが、筆者は以前に開催されたコンテスト「エイっと作ろう!Windows ストア・アプリ選手権」で、「エイっと作ったで賞」で優勝した。

 2カ月間でアプリを160本、筆者1人で作って、Windowsストアに公開した。2カ月間で160本は、毎日2本強、アプリを申請して認定されなければならない。通常、会社勤務の人には、時間的に無理な数字だ。筆者は現在63歳で、SOHO稼業を営んでいるから、この作業だけに2カ月間集中できた。でなければ、160本ものアプリは作れない。実際には180本近くのアプリは作れたはずなのだが、以前のコラムに書いたように、このころから筆者のアカウントが審査されなくなったのだ。締め切り1週間前には、全く審査がされなくなり、結局160本で終わってしまった。筆者としては少し残念な思いも残った。

 一番苦労したのがアプリのネタである。ネタを考えるうえで大いに利用したのが、Web APIだ、半分以上はWeb APIを利用したアプリになっている。しかし、Web APIを利用するとリスクも伴う。いつWeb APIの提供が停止されるか分からないからだ。そのリスクを避ける意味でも、筆者はGoogleやYahooとかいった大企業のWeb APIを利用した。これらの企業のWeb APIなら、突然の提供停止はないだろうと思ったからだ。予想にたがわず、現時点まで、これらのWeb APIを使用したアプリは問題なく動いている。もし、ネタに困れば、皆さんもWeb APIを利用されることをお勧めする。Web検索で「Web API」と検索すれば、ピンからキリまでのWeb APIが表示される。できるだけピンのWeb APIの利用をお勧めする。

 しかし、無料の場合は、Googleでも1日に1000アクセスしか許可していないWeb APIがある。いくつも同じWeb APIを使ってアプリを公開していると、1000アクセスはすぐに達してしまう。そうなると、そのWeb APIは翌日になるまで機能しない。実際に筆者もこの状態に陥った。筆者の場合は仕方がないので、いくらかのお金を支払って、1日のアクセス数を10万アクセスまで許可できるようにした。現在のところ、この数字で問題は発生していない。

 趣味で1個や2個、このGoogleのWeb APIを使って公開する場合は問題ないが、コンテストなどで、数十個も公開する場合は、無料の1000アクセスでは、すぐにOver Accessになって、アプリが正常に動作しなくなる。日付が変われば問題はないのだが。ダウンロードしていただいたユーザーには申し訳ないし、コンテストの審査の際に機能していなかったら、最悪だ。その意味でも、10万アクセスの許可を取得しておく方が望ましいだろう。

 筆者が公開しているアプリで、「現在地からの○○」というアプリがたくさんある。実はこれらのアプリはGoogleが提供しているWeb APIを利用している。「Google Places API」というAPIを利用している。英文ではあるが、興味のある方はのぞいみるといい。気に入れば使ってみるのもいいだろう。

お知らせ

Windows 8の[検索]チャームで「ストア」を指定し、検索欄に、「kuniyasu」または「YakushijiKuniyasu」または「eightman」と入力すると、筆者の公開しているアプリの一覧を見ることができる

 今回はこれで終わりだ。この「認定の要件」は意味さえ分かってしまえば、対処方法は簡単だ。そんなに悩む必要もない「認定の要件」だと思うが、初めて申請して、そこでリジェクトされた内容が、この「認定の要件」であった場合は、多少戸惑ってしまうことだろう。その戸惑いを無くし、予防接種(-_-;)の意味でも、この極意が少しでも読者のお役に立つことを願っている。

 では、また次の機会にお会いしよう。

※以下では、本稿の前後を合わせて5回分(第8回~第12回)のみ表示しています。
 連載の全タイトルを参照するには、[この記事の連載 INDEX]を参照してください。

VB開発者のためのWindowsストアアプリをリリースするための13の極意
8. 極意8: アプリで広告を表示するために、説明、タイル、通知、アプリ バー、または端からのスワイプ操作を使ってはならない

収益を得るために広告を掲載する場合、何が良くて何がダメなのか。不合格になった認定レポートを紹介し、その対処方法を紹介する。

VB開発者のためのWindowsストアアプリをリリースするための13の極意
9. 極意9: アプリで提供されるプライマリ・エクスペリエンスはアプリ内で行われなければならない

Windowsストア・アプリからWeb上の情報を表示するために、Webブラウザーを開くと申請時にリジェクトされる?! その対象方法を紹介する。

VB開発者のためのWindowsストアアプリをリリースするための13の極意
10. 【現在、表示中】≫ 極意10: サポートしている全ての言語でアプリをローカライズしなければならない

日本語版のWindowsストア・アプリ上の表記に英単語があると申請時にリジェクトされる?! その対象方法を紹介する。

VB開発者のためのWindowsストアアプリをリリースするための13の極意
11. 極意11: バージョンの一致と日本語OS

アプリの実バージョンと、表示しているバージョンが一致していない場合のリジェクト例。また、日本語版限定に用意した機能を申請する場合に注意するポイントを紹介する。

VB開発者のためのWindowsストアアプリをリリースするための13の極意
12. 極意12: アプリは応答を停止したり、予期せず終了したり、プログラミング・エラーを含んでいてはならない

当然ながらアプリにバグがあれば申請はリジェクトされる。その実例と、Webカメラを使った際のある不具合の解消方法を紹介する。

サイトからのお知らせ

Twitterでつぶやこう!