言語と文字
TouchGFXでは、国際化およびローカライズされたアプリケーションを使用できます。
このためにTouchGFXは、幅広い言語と文字をサポートし、テキスト・レイアウトのメカニズム(書字方向やコンテキスト・フォームなど)を判別します。
言語
サポートされる言語は、Unicodeの基本多言語水準の言語で、左から右または右から左への書字システムを採用している言語に制限されます。 つまりアラビア語、中国語、英語など多くの言語がサポートされ、おそらく制限された言語はわずかです。 現在サポートされていない言語の例として、ウルドゥー語とミャンマー語が挙げられます。
文字
文字のエンコードはUnicode標準に基づきます。 16ビットUnicodeがサポートされ、 現在サポートされていない言語の例として、ウルドゥー語とミャンマー語が挙げられます。 一部の言語では、所定のフォントの特殊文字用に0xE000~0xE3FFの私用領域を使用することもあります(デーヴァナーガリーなど)。
書字方向
TouchGFXは左から右(LTR)および右から左(RTL)の書字システムをサポートします。 上から下(Top-to-Bottom)の書字システムのサポートは組み込まれていません。
RTLとはテキストが(LTRとの対比で)後ろ向きに書字されるという意味ではないので注意してください。 単語が右から左に向かって書き込まれることを意味しています。 アラビア語やヘブライ語では、これが正しい設定です。 つまり、"TouchGFX"が"XFGhcuoT"と書字されるのではなく、RTL / LTR設定を使用することで単語(または単語のコレクション)の向きを制御できるのです。
TouchGFXアプリケーション内のLTRおよびRTLの書字処理は、この2つを混合したものをある程度まで許容します。 これは双方向スクリプト・サポートと呼ばれます。 双方向の書字の公式規則のサブセットが、TouchGFXによってサポートされています。 つまり、たとえば"10:45"、"3.14159"、"STMicroelectronics TouchGFX"などは、たとえRTLテキストの中であっても、LTRで完全に認識され書字されます。
RTLテキストでは、テキストの一部をLTRで書字する必要があります。 このテキストは検索され選り分けられます。つまり、非RTL文字列のすべての文字が選り分けられます。 コロン(:)、ドット(.)、コンマ(,)、スペース( )などの文字は、2つの連続するLTRパーツを「結び付ける」こともあります。 このため、"10:45"は単一のLTRエンティティとして処理されますが、"Mark:"(末尾がコロン)のコロンは左端に移動します。アラビア語やヘブライ語を使用する国では、"<アラビア語のメッセージ> :Mark"となることが期待され、コロンがRTLテキストの左側に来るからです。
ラテン文字セットで使用される数字(0~9)とアラビア文字セットで使用される数字は、ディスプレイに数字が正しく表示されるように、すべてLTR文字として処置されることに注意してください。
LTRエンティティとRTLエンティティが混在しているテキストでは、書字方向が非常に重要であることにも注意してください。 また、テキストがRTLなのかLTRなのかは、テキスト内の文字を調べてもわかりません。 最初にヘブライ語の単語(RTL)、次に英語の単語(LTR)を含むテキストの場合、ディスプレイ上の出力はテキストの書字方向に左右されます。 テキストがRTLに設定されている場合、出力は"English werbeH"のようになります。テキスト全体がRTLなので、最初の単語が右側に書字される必要があるからです。しかしテキストがLTRに設定されている場合、出力は"werbeH English"のようになります。テキストの最初の単語を左端から開始する必要があるからです。 RTLとLTRの設定は自動的には決定できません。英語のテキストにヘブライ語の単語が含まれることもあれば、ヘブライ語のテキストに英語の単語が含まれることもあるからです。
RTLテキストに関するもう1つの重要事項は、括弧文字の自動スワッピングです。 括弧文字とは、( ) { } [ ] < > のことです。 これらはすべて、テキストが正しく見えるように反対側の文字と自動的にスワップされます。 ラテン文字からアラビア文字への数字の自動変換は、行われないので注意してください。 必要な場合には、テキストを表示する前にユーザが変換を行う必要があります。
コンテキスト・フォーム
特定のスクリプトでは、文字のコンテキストに応じて、異なる形式の1つ以上の文字 / グリフが選択されます。 例として、アラビア語のアルファベットには、単語内の文字の位置に応じて、アルファベット内の文字にさまざまなコンテキスト・フォームがあります。 TouchGFXでは、合成文字の簡略化された規則セットを実装することで、言語のこうしたコンテキスト・フォームをサポートしています。 さらに、カスタム・ロジックを使用していくつかの発音区別符号が配置され、縦位置が決定されます。これはアラビア語、タイ語、デーヴァナーガリーに適用されます。
サポートされる言語のリスト
サポートされるすべての言語を網羅する完全なリストを提供することは困難です。 一般的に、特別な並べ替えや配置規則を持たない標準のグリフはサポートされています。 ヒンディー語(デーヴァナーガリー)やアラビア語などの、特別な規則を持つ一部の言語も、TouchGFXには含まれています。
左から右(LTR)の言語
ラテン文字を使用する単純な言語
一般的に、特別な並べ替えや配置を必要としない文字やグリフを使用する単純な言語はサポートされます。 これらの言語には以下のようなものがあります(ただし以下に限定されません)。
- ボスニア語、ブルガリア語、クロアチア語、チェコ語、デンマーク語、オランダ語、英語、エストニア語、フィンランド語、フランス語、ドイツ語、ハンガリー語、イタリア語、ラトビア語、リトアニア語、ノルウェー語、ポーランド語、ポルトガル語、ルーマニア語、セルビア語、スロベニア語、スロバキア語、スペイン語、スウェーデン語、トルコ語、ウクライナ語
その他
いくつかの言語では、単純な配置規則に従うものの、異なる文字とグリフのセットを使用します。 以下のこうした言語もサポートされ含まれます(ただし以下に限定されません)。
- 中国語、ギリシャ語、日本語、ロシア語
その他
- タイ語は限定的にサポートされます。 声調記号はTouchGFXの規則を使用して(縦に)配置されます。
- ヒンディー語(デーヴァナーガリー)も限定的にサポートされます。 一部の文字の配置に少し誤りがあるかもしれませんが、テキストが読めないことはありません。
右から左(RTL)の言語
その他
- ヘブライ語、インドネシア語、カザフスタン語
さまざまな形式(単独形、頭字、中字、尾字)のさまざまなリガチャがある言語
- アラビア語(4文字を超えるシーケンスは認識されず、1つのリガチャに変換されます。 Sallallahou Alayhe Wasallam、Jallajalalouhou、Rial Signが該当します)。 一部の発音区別符号の配置に少し誤りがあるかもしれません。
- ペルシア語
- マレー語(単独形では、ݢ "Keheh with dot above"のみがサポートされています)
サポートされない言語
以下の言語は、リガチャ、二重字、縦位置の多用に依存しているため、サポートされていません。
- ウルドゥー語、ミャンマー語