グローバリゼーションとローカライズのガイドライン

Applies to Windows and Windows Phone

広範なユーザー向けにアプリをグローバル化したり、特定の市場を対象にアプリをローカライズするときは、次のベスト プラクティスに従ってください。

グローバリゼーション機能をアプリに追加する方法については、以下をご覧ください。

推奨と非推奨

グローバリゼーション

グローバル化に適した UI の用語と画像が選択され、Globalization API を使ってアプリ データがフォーマットされ、場所や言語に基づく前提のない、異なる市場に簡単に適応できるアプリを準備します。

推奨事項説明

数値、日付、時刻、住所、電話番号には正しい形式を使う。

数値、日付、時刻などのデータに使われる形式は、カルチャ、地域、言語、市場により異なります。数値、日付、時刻などのデータを表示する場合は、Globalization API を使って特定のユーザーに適した形式を取得します。

詳しくは、「クイック スタート: グローバル対応の形式の使用 (JavaScript と HTML を使った Windows ストア アプリ)」または「クイック スタート: グローバル対応の形式の使用 (C#/VB/C++ と XAML を使った Windows ストア アプリ)」をご覧ください。

国際的な用紙サイズをサポートする。

最も一般的な用紙サイズは国によって異なるため、用紙サイズによって変化する機能 (印刷など) を含める場合には、必ず一般的な国際サイズをサポートし、テストしてください。

国際的な計測単位と通貨をサポートする。

使われる単位と尺度は国によって異なりますが、最も使われているのはメートル法とヤード ポンド法です。長さ、温度、範囲などの計測を扱う場合は、Globalization 名前空間を使って正しいシステム計測を取得してください。アプリが通貨の表示をサポートする場合は、必ず正しい書式設定を使ってください。CurrenciesInUse プロパティを使って、ユーザーの地理的な地域の通貨を取得することもできます。

テキストとフォントを正しく表示する。

テキストに適したフォント、フォント サイズ、方向は、市場によって異なります。

詳しくは、「RTL 言語とローカライズ フォントのレイアウトを調整する方法 (JavaScript と HTML を使った Windows ストア アプリ)」または「How to adjust layout and fonts for various languages, and support RTL layouts (Windows Store apps using C#/VB/C++ and XAML)」をご覧ください。

文字エンコードに Unicode を使う。

既定では、最近のバージョンの Microsoft Visual Studio は、すべてのドキュメントに Unicode 文字エンコードを使います。別のエディターを使っている場合は、適切な Unicode 文字エンコードでソース ファイルが保存されるようにしてください。Windows ランタイム API はどれも、UTF-16 エンコードの文字列を返します。

入力の言語を記録する。

アプリがユーザーにテキスト入力を求めるときに、入力の言語が記録されるようにします。こうすると、その入力が後で表示されるときに適切な書式設定でユーザーに提示されます。現在の入力言語の取得には、CurrentInputMethodLanguage プロパティを使います。

言語からユーザーの位置を想定する、または位置からユーザーの言語を想定することはしない。

Windows では、ユーザーの言語と位置は別の概念です。特定の地理的な言語バリアント (en-gb (英国で話される英語) など) を話しても、住んでいる国または地域はまったく異なる場合があります。UI テキストなどのためにアプリがユーザーの言語について認識する必要があるか、ライセンス問題などのためにアプリがユーザーの位置について認識する必要があるかを検討してください。

詳しくは、「言語と地域を管理する方法 (JavaScript と HTML を使った Windows ストア アプリ)」または「How to manage language and region (Windows Store apps using C#/VB/C++ and XAML)」をご覧ください。

俗語や比喩を使わない。

一部のカルチャや年齢などの集団にしか伝わらない言葉は、その集団の人しか使わないので、理解や翻訳が難しい場合があります。同様に、比喩も人によって伝わったり伝わらなかったりします。たとえば、"ブルーバード" はスキーをする人には伝わりますが、スキーをしない人には伝わりません。アプリをローカライズしてくだけた表現を使うことを計画している場合は、ローカライズ担当者に翻訳対象の意味と口調を十分に説明してください。

専門的な用語、省略形、略語を使わない。

専門用語は、専門知識のないユーザーや他のカルチャまたは地域の人々には意図が伝わりにくく、翻訳も困難です。このような言葉は日常会話では使われません。専門用語は、ハードウェアとソフトウェアの問題を特定するため、エラー メッセージ内でよく使われます。専門用語が必要な場合があるかもしれませんが、普通の言葉に置き換えることが望まれます。

不快感を与えかねない画像を使わない。

自分が所属するカルチャでは妥当な画像でも、別のカルチャでは不快感を与えたり、誤って解釈されたりすることがあります。宗教的なシンボル、動物、国旗や政治運動に関連付けられる色の組み合わせなどは避けてください。

地図や、地域についての言及では、政治的侵害を避ける。

地図には論争の的になっている地域や国境が含まれている可能性があり、それらはしばしば政治的な侵害のきっかけになります。 国家の選択に使う UI は、必ず "国/地域" という名称にしてください。(住所フォームなどで) "国" という名称の一覧に領有権未決の領域を含めると、トラブルになりかねません。

言語タグを比較する目的で文字列比較を単独で使わない。

BCP-47 言語タグは複雑です。言語タグの比較では、スクリプト情報、前のタグ、複数の地域バリアントの対応付けに伴う問題など、多数の問題が発生します。Windows のリソース管理システムでは、対応付けが自動的に行われます。開発者はどの言語で作られたリソース セットでも指定でき、システムがユーザーとアプリのために適切なものを選びます。

リソース管理について詳しくは、「アプリ リソースの定義 (JavaScript と HTML を使った Windows ストア アプリ)」または「アプリ リソースの定義 (C#/VB/C++ と XAML を使った Windows ストア アプリ)」をご覧ください。

並べ替えが常にアルファベット順で行われると想定しない。

ラテン文字を使わない言語の場合、並べ替えは発音、ペン ストロークの数などの要素に基づいて行われます。ラテン文字を使う言語でも、常にアルファベット順の並べ替えを行うわけではありません。たとえば、一部のカルチャでは電話帳はアルファベット順では並んでいない場合があります。システムによって並べ替えが自動的に行われますが、自分で独自の並べ替えアルゴリズムを作る場合は、必ず、アプリの対象市場で使われている並べ替え方法を考慮してください。

 

ローカライズ

推奨事項説明

UI 文字列や画像などのリソースをコードから分離する。

アプリは、文字列や画像などのリソースがコードから分離されるように設計してください。こうすることで、さまざまなスケール ファクター、アクセシビリティ オプション、ユーザーとコンピューターに関する多くのコンテキストに対して、それらの保守、ローカライズ、カスタマイズを個別に行うことができます。

文字列リソースはアプリのコードから分離し、言語に依存しない単一のコードベースを作ってください。文字列は、常にアプリのコードやマークアップから分離し、リソース ファイル (ResW や ResJSON ファイルなど) に入れてください。

Windows のリソース インフラストラクチャを使って、ユーザーの実行時環境に最適なリソースが選ばれるように処理してください。詳しくは、「Guidelines for app resources」をご覧ください。

他のローカライズ可能なリソース ファイルを分離する。

ローカライズが必要な他のファイル (翻訳するテキストを含んだ画像やカルチャ上の配慮のために変更が必要な画像など) は、言語名でタグ化されたフォルダーに入れてください。

既定の言語を設定し、既定の言語で作られているものも含め、すべてのリソースをマークする。

アプリの既定の言語は常に適切に設定してください。アプリでサポートされる言語のどれもユーザーが話さない場合、使われる言語は既定の言語によって決定されます。既定の言語リソースをその言語でマークしてください (例: en-us/Logo.png)。こうすることで、システムはリソースで使われている言語と、個々の状況でそのリソースがどのように使われるかを判断できます。

ローカライズが必要なアプリ リソースを特定する。

他の市場向けにアプリをローカライズすることになった場合には、何を変更する必要があるでしょうか。テキスト文字列を他の言語に翻訳する必要があります。他のカルチャに合わせて画像を変更する必要がある場合もあります。アプリが使う他のリソース (オーディオや動画など) にローカライズがどのような影響を与えるかを考慮してください。

リソースを参照するには、コードとマークアップでリソース識別子を使ってください。

文字列リテラル、または画像の特定のファイル名をマークアップに含めるのではなく、リソースの参照を利用してください。必ず、リソースごとに一意の識別子を使ってください。詳しくは、「How to name resources using qualifiers (Windows Store apps using C#/VB/C++ and XAML)」または「How to name resources using qualifiers (Windows Store apps using JavaScript and HTML)」をご覧ください。

テキスト サイズを拡大できるようにする。

翻訳されるとテキスト サイズが大きくなる可能性があるため、テキスト バッファーは動的に割り当ててください。静的なバッファーを使う必要がある場合は、(英語文字列の長さを倍にするなどの方法で) それらを特大サイズにし、文字列が翻訳された時点で起きる可能性がある拡大に対応してください。 ユーザー インターフェイスに利用可能な領域が制限されることもあります。ローカライズされた言語に対応するには、文字列の長さが、日本語に必要となりそうな長さよりも約 40% 長くします。単一の語句のように非常に短い文字列の場合、必要領域が約 300% も増える可能性があります。さらに、コントロール内で複数行のサポートとテキストの折り返しを有効にすると、各文字列を表示するための領域を増やすことができます。

左右反転をサポートする。

テキストの配置と読み取りは、英語のように左から右の順にも、アラビア語やヘブライ語のように右から左の順 (RTL) にも行うことができます。読み取り順が自国語とは異なる言語に製品をローカライズする場合は、UI 要素のレイアウトが左右反転をサポートする必要があります。戻るボタン、UI 切り替え効果、画像などのアイテムですら、左右反転が必要になることがあります。

詳しくは、「RTL 言語とローカライズ フォントのレイアウトを調整する方法 (JavaScript と HTML を使った Windows ストア アプリ)」または「How to adjust layout and fonts for various languages, and localize fonts (Windows Store apps using C#/VB/C++ and XAML)」をご覧ください。

文字列にコメントする。

文字列に適切にコメントを入れ、翻訳が必要な文字列だけをローカライズ担当者に提供してください。過剰なローカライズは、よく問題を引き起こします。

短い文字列を使う。

文字列を短くすると翻訳が簡単になり、翻訳データを再使用できます。翻訳データを再使用すると、同じ文字列はローカライズ担当者に再び送られることがないため、コストを節約できます。

8,192 文字を超える文字列は、一部のローカライズ ツールではサポートされない可能性があります。このため、文字列は 4,000 文字以内に抑えてください。

文全体が入った文字列を提供する。

単語の訳は文におけるその位置によって変化する可能性があるため、文を個々の単語に分割せず、文全体が入った文字列を提供してください。1 つのフレーズが複数のパラメーターから構成される場合、どの言語でもパラメーターの順序は変わらないと想定してはなりません。

画像ファイルとオーディオ ファイルをローカライズ用に最適化する。

画像内にテキストを入れることやオーディオ ファイルに音声を入れることを避けると、ローカライズ コストが抑えられます。読み取り順が自国語とは異なる言語にローカライズする場合は、左右対称の画像や効果を使うと左右反転をサポートしやすくなります。

文字列は異なるコンテキストで再使用しない。

文字列は異なるコンテキストで再使用してはなりません。"オン" や "オフ" などの簡単な語句でも、コンテキストに基づいて別の翻訳がなされる可能性があります。

 

関連トピック

開発者向け (HTML)
Windows.Globalization namespace
アプリのグローバル化
Guidelines for app resources
開発者向け (XAML)
Windows.Globalization namespace
アプリのグローバル化
Guidelines for app resources
サンプル
アプリ リソースとローカライズのサンプル
グローバリゼーション設定サンプルに関するページ

 

 

表示:
© 2014 Microsoft