デベロッパードキュメントガイド各種の言語と文化のサポートアプリには、文化に固有のリソースが含まれていることがあります。アプリでは現在のロケールの言語に翻訳された文化固有の文字列を使用できます。文化固有のリソースは、通常はそれ以外の部分と切り離すことをおすすめします。システムのロケール設定に基づいて言語固有のリソースと文化固有のリソースが解決されます。ディレクトリを使用します。リソースには、アプリ利用者の文化に合わせて調整されたものを指定できます。ユーザーの言語や文化に適したあらゆるリソースタイプを提供することが可能です。リソースが、デバイスのデフォルトの(en_US)ロケールとスペイン語(es_ES)ロケールで表示されています。ディレクトリが自動的に作成されます。ディレクトリには、さまざまなリソースタイプのサブディレクトリがあります。ファイルもいくつかあります。さまざまな言語をサポートするということは、ロケール固有のリソースを使用する以外にも対応すべき点がでてきます。ロケールとして選択するユーザーもいます。スクリプトを使用する言語のコンテンツを表示したり生成したりするユーザーもいます。両方のユーザーに対応するには、アプリで次の処理を実行する必要があります。レイアウトを採用する。書式設定されたメッセージに表示されるテキストデータの向きを検出して、宣言する。この処理は通常、テキストデータの向きを自動的に判断するメソッドを呼び出すだけで実行されます。追加ディレクトリを作成します。各ディレクトリ名が次の形式に従っている必要があります。ロケールを対象とした文字列リソースが含まれます。ロケールを対象としたアイコンが含まれます。実行時のデバイスのロケール設定に従って適切なリソースが読み込まれます。詳しくは、代替リソースを提供するをご覧ください。サポートするロケールを決めたら、リソースのサブディレクトリとファイルを作成します。ファイルを示しています。バージョンを提供する場合など、すべてのリソースタイプについてロケール識別子(またはなんらかの設定識別子)を使用できます。詳しくは、ローカライズをご覧ください。属性を使ってリソースを参照できます。構文を使ってリソースを参照できます。このようにリソースはさまざまな方法で参照されます。構文を使ってリソースを参照できます。/>メッセージのテキストを書式設定するアプリでよく行われるのがテキストの書式設定です。ローカライズされたメッセージを書式設定するには、テキストや数値データを適切な位置に挿入します。データの場合、単純に書式設定するだけでは表示が不正確になったり、出力されたテキストが解読不能になったりすることがあります。方向で書かれることがあります。スクリプトを使用する言語も双方向です。方向で表示する必要があるためです。このような埋め込みの逆方向テキストは、ほとんどの場合アプリによって生成されます。アプリは任意の言語(および任意)の方向のテキストデータを、ローカライズされたメッセージに挿入します。このように複数の方向が混在する場合、どこからどこまでが逆方向テキストなのかを示すものが含まれていないことも珍しくありません。これはアプリ生成テキストの特徴であり、問題を発生させる原因となります。通常、システムのデフォルトでは双方向テキストは想定どおりに表示されますが、アプリによってローカライズ済みメッセージに挿入されると適切に表示されない可能性があります。次のような場合は高い可能性で正しく表示されません。方向が含まれているヘブライ語の単語「בננה」はバナナを意味します。ことですか?」というメッセージをアプリで表示する必要があるとします。実行時に住所で置き換えます。場合は、次のようになります。%sしかし、候補となるソースがロケール言語のテキストが含まれないデータベースである可能性もあります。カリフォルニアの住所は英語のテキストを使用するデータベースにあります。メッセージに挿入すると、結果は予期しないもの、または間違ったものになります。15番地が住所の左側ではなく右側に表示されるため、郵便番号のようにみえてしまいます。テキストを含める場合も、同じ問題が発生する可能性があります。前の例ではと、テキスト書式設定で「15」が住所の一部であることが指定されていないことが原因で問題が発生します。テキストに含まれるのかをシステムで判別できないのです。メソッドを使用します。使用しないでください。クエリなど、コンピュータで扱うことのできる文字列にテキストを挿入する場合。テキスト部分が適切に処理するもので囲まれているとわかっている場合。書式設定文字で文字列を囲みます。して宣言されたテキスト内に表示されるため、正しい位置に表示されることになります。バージョンを使用します。バージョンを使用します。数値を書式設定するアプリのロジックで数字を文字列に変換するには、メソッド呼び出しではなく書式設定文字列を使用します。myInt);これにより、ロケールに合わせて数字が書式設定され、その際異なる数字セットが使用される場合があります。クエリを作成するとき、クエリに渡されるパラメータが数字だと問題が発生します。無効な文字だからです。バージョンのうち最初のパラメータでロケールが指定されているものを使用する必要があります。インターフェースを優先して使います。これには右揃えのメニュー、右揃えのテキスト、次に進むことを示す左向きの矢印が含まれます。バージョンを比較しています。サポートを追加する場合は、特に次の点に注意することが重要です。17)以上が実行されているデバイスで使用する場合のみです。ミラーリングをサポートする方法については、従来のアプリのためのサポートを提供するをご覧ください。ユーザーを招待します。デザインのガイドラインをご覧ください。表示にするには、次のセクション内で手順を説明します。ファイルを次のように変更します。属性値は無視されます。ミラーリングはアプリで自動的には実行されません。要素をフレームワークでユーザーの言語設定に基づいて配置できるようになります。16)以下を対象とするアプリのためのサポートを提供する方法を確認してください。示されている属性を変更します。配置属性がどのように処理されるかを示しています。ファイルを追加します。-ldltr(layout-direction-left-to-right)のリソース識別子を使用できます。旧バージョンではリソースの言語識別子が適切なテキスト方向を推測するために使用されます。ファイルを追加するとします。ディレクトリに追加します。Hebrew.アラビア語テキスト専用に設計されたレイアウトの固有バージョンを追加する場合、ディレクトリ構造は次のようになります。言語固有リソースは、レイアウト方向固有リソースよりも優先されます。テキスト方向が自動的にサポートされています。テキスト方向がサポートされていないフレームワーク要素もいくつかあります。テキスト方向がサポートされます。テキスト方向を使用する必要があるかどうかを確認するには、次のロジックを使用します。以上を使用してください。スクリプトを使用したテキストが表示されるようになります。アプリロジックを更新するここでは、アプリのロジックのうち、複数のテキスト方向を処理するようにアプリを調整する際に更新が必要な特定の個所について説明します。コールバックを使用できます。オブジェクトを更新できます。ウィジェットを作成する場合は、コンテキストに応じた適切なレイアウト方向を設定します。スニペットは、そのプロセスを示しています。クラスの複数のメソッドに追加の考慮事項があります。onMeasure()ビュー測定は、テキスト方向に応じて異なることがあります。ロジックを調整する必要があります。スクリプトをサポートするようにコードを更新する必要があります。モードかどうかを判別するには、次のコードを使用します。バージョンに基づいて、以下のいずれかを実行します。ファイルを追加および定義する必要があります。ミラーリングの処理がシステムによって自動的に実行されるます。ミラーリングとなるような単純なドローアブルの場合のみです。ドローアブルに複数の要素が含まれる場合、またはドローアブルを反転するとその解釈方法が変化するような場合は、自分でミラーリングを実行しなければなりません。可能な場合はその言語に詳しい人に相談して、ドローアブルのミラーリングが意味が通じるものになっているかどうかを確認してもらいます。変更する必要があります。次のコードを使用しているとします。}この場合は、次のように変更する必要があります。使用している場合でも、左揃えの値および右揃えの値を処理する既存のコードはそのまま使用できます。引数が含まれるバージョンを使用してください。プラクティスに従ってください。引数の値を交換します。オーバーライドします。