GADGET FACTORY 雑記帳

iPhone アプリ / Flash コンテンツ /Adobe AIR などを開発していて気づいたことや備忘録、TIPS、HACKなど

Adobe AIR アプリ iPhone / Android の 言語環境毎のアプリ名設定

先日より、世界各国向けのローカライズが必要なプロジェクトを進めております。

Adobe AIR での使用言語判別方法 - GADGET FACTORY 雑記帳

本日はそのアプリ名の設定について。

Adobe AIRiPhone / Android アプリを制作する際に、各端末のアプリの下に表示されるアプリ名は、アプリマニュフェストファイル(.xml)のタグに記載します。

<name>アプリ名</name>

と記載すれば、アプリ名を指定できます。



それとは別で、アプリを再生する言語環境ごとにアプリ名の変更もできます。
タグの中に再生言語環境ごとのアプリ名を記載していけばOK。

<name>
        <text xml:lang="ja">日本語アプリ名</text>
        <text xml:lang="en">英語アプリ名</text>
</name>

上記の場合は、再生環境が日本語と英語の場合に表示されるアプリ名を指定することになり、その他言語の再生環境で、異なるアプリ名を付ける場合は、

lang="??"

の部分に、その言語コードを記述すれば良いことになっています。
指定する言語コードに関して、ドキュメントを調べたところ、

RFC4646(http://www.ietf.org/rfc/rfc4646.txt)に定義された言語コードを指定します。

と表記されています。

ところが、上記に指定されたサイトを見ても指定する言語コードが、よくわからない。

そこで、いろいろと調べたら以下のサイトにリストがあって、それを参照して記載することに。

マニュフェストファイルに各言語のアプリ名を記載して、テストしたところ、いろんなことが判明しました。

中国語の指定について

中国語には、中国本国などで利用される簡体字と、台湾などで利用される繁体字という2種類があります。

中国語のコードは「zh」なのですが、上記の2種類を分別するのに、追加でコードが必要になります。
「Capabilities.language」で戻ってくる値も同様で、

中国簡体字(中国) zh-CN
中国繁体字(台湾) zh-TW

の2種類が戻ってきます。

ならば、上記の値を指定すれば良いのでは? と考えて、

<name>
        <text xml:lang="zh-CN">中国アプリ名</text>
        <text xml:lang="zh-TW">台湾アプリ名</text>
</name>

と指定したところ、Android環境では、ちゃんと表示されましたが、iPhone環境では思った通りに動作しませんでした。

さらに調べたところ、簡体字繁体字には、他の表記方法もあることが判明。

中国簡体字(中国) zh-Hans
中国繁体字(台湾) zh-Hant

というのがそれ。

ならばと、iOS版マニュフェストファイル内の表記を、

<name>
        <text xml:lang="zh-Hans">中国アプリ名</text>
        <text xml:lang="zh-Hant">台湾アプリ名</text>
</name>

と記載して試したものの、やはりうまく動作しない。

さらに色々と調べたり試した結果、なんとか判別させることに成功。
iOS版の正しい表記方法は以下の形となりました。

<name>
        <text xml:lang="zh_Hans">中国アプリ名</text>
        <text xml:lang="zh_Hant">台湾アプリ名</text>
</name>

"-(ハイフン)"の代わりに"_(アンダーバー)"を使えば、動作しました。

Adobe AIR 比対応の言語設定

現状で、Adobe AIRが対応していると表記されていない言語についても、色々とテストしてみました。
例えばタイ語の場合、

<name>
        <text xml:lang="th">タイ語?</text>
        <text xml:lang="th-TH">タイ語?</text>
        <text xml:lang="th_TH">タイ語?</text>
</name>

と、試してみましたが・・・
残念ながら、非対応の言語については、判別できませんでした。

うーん、(非対応の)言語の壁は厚かった。

この部分はもしかしたら各ストア毎に別アプリでリリースしないと、対応出来ないかも。