(57)【要約】【課題】双方向にテキストレンダリングする言語と片方向にテキストレンダリングする言語が混在するページに対して、それぞれの言語に対して正しい語順で並び替え、表示または印刷できるようにする情報処理装置を提供すること。【解決手段】テキストの方向性を検査する手段と、テキストを格納するコンテナの方向性を判定する手段と、これらを比較する手段と、テキストの方向性を維持する手段からなる。【選択図】図２
2017027323.tif 000002
【特許請求の範囲】
【請求項１】
テキストデータを双方向テキストレンダリング処理することのできる情報処理装置であって、
テキストデータを含むことのできるコンテナに対して、
コンテナに設定されている双方向テキストレンダリングにおける方向性を判定するコンテナ方向性判定手段と、
テキストデータに含まれる内容を検査しテキストの方向性が設定されているかを判定するテキストデータ検査手段と、
前記コンテナ方向性判定手段で判定した結果と前記テキストデータ検査手段で検査した結果を比較する比較手段と、
前記比較手段の結果に応じて、テキストデータ検査手段で検査した方向性を維持するようにテキストデータを処理するテキストデータ処理手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記情報処理装置は表示部を有し、
コンテナに含まれるテキストに対して方向制御を行った処理結果を
前記表示部に表示する手段を有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は印刷部を有し、
コンテナに含まれるテキストに対して方向制御を行った処理結果を
前記印刷部に印刷する手段を有することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記コンテナ方向性判定手段において、
コンテナが包含関係にある場合かつ判定対象のコンテナにて判定できない場合は、
判定対象のコンテナを包含しているコンテナの方向性で判定する手段
を有することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記テキストデータ検査手段において、
文字コードを発声順および表示順に応じて格納する記憶手段と、
前記記憶手段に格納されている順序において最初に現れる強い方向性の文字コードの方向性を方向性として判定する手段と、
を有することを特徴とする請求項１に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、双方向にテキストレンダリングする言語と片方向にテキストレンダリングする言語が混在するページに対して、それぞれの言語に対して正しく並び替えを実施する情報表示装置、印刷装置に関する。
【背景技術】
【０００２】
英語の場合、言語をテキストとして表示する場合に、発声順に左から右に向けて一方向に表示していく。また、日本語の場合は、テキストとして表示する方向は、左から右、上から下、右から左といった複数の方向に表示しても意味が通じるが、いずれにしろ、発声順に一方向に表示していく。
【０００３】
一方、アラビア語、ペルシャ語、ヘブライ語といった言語では、発音した音声をテキストとして表示する場合に、発声順に従って表示が一方向に限定されることはなく、双方向に表示する方法をとる。
【０００４】
このような双方向のテキストレンダリングを実現するために、Unicode規格の UNICODE BIDIRECTIONAL ALGORITHM (Unicode Standard Annex #9 Revision 31) が定義されている。UNICODE BIDIRECTIONAL ALGORITHM では、各文字コードに対して、方向性（左、右、中立）やその強弱（強い、弱い、無し）に応じた属性を割り当て、文字コードを双方向に並び替えるアルゴリズムを定義している。さらに、UNICODE BIDIRECTIONAL ALGORITHM では、文字のみの双方向の並び替えだけでは実現できない並び順を実現するために、方向制御文字を定義している。方向制御文字には、例えば、以下のようなものがある。
【０００５】
LRM (Left-to-Right Mark : 0x200E)
テキスト レンダリングシステムの設定（暗黙的な設定）を左から右に文字表記する設定にする。
【０００６】
RLM (Right-to-Left Mark : 0x200F)
テキスト レンダリングシステムの設定（暗黙的な設定）を右から左に文字表記する設定にする。
【０００７】
LRO (Left-to-Right Override : 0ｘ202D)
（暗黙的な設定に対して）文字列を左から右にレンダリングするように明示的に設定する。
【０００８】
RLO (Right-to-Left Override : 0x202E)
（暗黙的な設定に対して）文字列を右から左にレンダリングするように明示的に設定する。
【０００９】
LRE (Left-to-Right Embedding : 0x202A)
周囲の文字方向設定（暗黙的な設定、明示的な設定）に依存せずに、埋め込まれた文字列を左から右に文字表記する。
【００１０】
RLE (Right-to-Left Embedding : 0x202B)
周囲の文字方向設定（暗黙的な設定、明示的な設定）に依存せずに、埋め込まれた文字列を右から左に文字表記する。
【００１１】
PDF (Pop Directional Formatting ： 0x202C)
LRE, RLE, LRO, RLO に対する終了タグ。周囲の文字方向指定に戻す。
【００１２】
方向制御文字は、CodePage 1255やCodePage 1256でも取扱いがある。Unicodeで定義されている方向制御文字のうちの下記の２個が定義されている。
【００１３】
LRM (Left-to-Right Mark : 0xFD)
テキスト レンダリングシステムの設定（暗黙的な設定）を左から右に文字表記する設定にする。
【００１４】
RLM (Right-to-Left Mark : 0xFE)
テキスト レンダリングシステムの設定（暗黙的な設定）を右から左に文字表記する設定にする。
【００１５】
また、UNICODE BIDIRECTIONAL ALGORITHMにおいては、"("の括弧と")"の括弧や、"「"の括弧と"」"の括弧、そして不等号"<"と">"ような、対になる文字コードの組み合わせ、二百数十組に対して、テキストレンダリングの方向性に応じて、入れ替えて表示するミラーリングというアルゴリズムをえている。例えば、メモリに"("の文字コードが格納されている場合、テキストレンダリングが右から左の方向性の場合は、"("の文字コードを")"の文字コードに置換して表示する。
【００１６】
さらに、UNICODE EMOJI (Unicode(R) Technical Report #51) においては、携帯電話やスマートフォンでよく使用される、絵文字に対しても文字コードを割り振り、方向性を考慮すべき絵に対しては、異なる文字コードを割り振ることが記載されている。よって、絵文字も、双方向テキストレンダリングの対象とすることができるようになっている。
【００１７】
特許文献１では、ウェブページ内にあるテキストコンテンツ内の双方向テキストをチェックするための方法およびシステムについて述べている。具体的には、ページに対するテキストの方向の宣言と、ページ内に含まれる複数のテキスト部分それぞれのテキストの方向性が異なる場合は、エラーを報告することについて述べている。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特表2013-544395号公報
【発明の概要】
【発明が解決しようとする課題】
【００１９】
ここでは、ウェブページに左から右の方向性のコンテンツと右から左の方向性のコンテンツを同時に取り込んだ際に発生する、語順に関する具体的事例を中心に課題を説明する。別途、産業上の利用可能性の項でも、それぞれの利用可能性に対して、どのような課題があり、本発明でそれをどのように解決するのかについて、まとめて述べている。
【００２０】
アラビア語話者が方向性が異なるテキストが混在しているウェブページをまとめて編集する場合、UnicodeやCodePage 1255/1256の方向制御文字をテキスト中に挿入したり、HTMLのdir属性、CSSのdirectionプロパティといった方向性を切り替える仕組みを組み合わせることによって、方向性を手動で細かく調整していくことができる。
【００２１】
一方、英語話者が、英語のコンテンツを作成する場合は、方向性については考慮せずにテキストを作成することが一般的である。なぜなら、英語話者が日常利用しているASCII文字やCodePage 1252の文字コードには、方向制御文字が収録されていないからである。
【００２２】
近年のウェブページは、複数のコンテンツを自動的に組み合わせて１つのウェブページとして表示する。また、コンテンツには、双方向にテキストレンダリングすることを考慮しているコンテンツと、双方向にテキストレンダリングされることを考慮していないコンテンツ（例えば英語のコンテンツ）があり、これらが混在することになる。
【００２３】
これらが混在してしまった場合、双方向にテキストレンダリングすることを考慮せずに作成されたテキストは、ウェブページに対して設定されている方向性に影響を受け、意図しない並び替えが発生し、誤った語順の言語表示になってしまう場合がある。
【００２４】
図４にて、誤った語順の言語表示の例を説明する。
【００２５】
４１１、４１２は、ピリオドの語順を説明するための図である。
【００２６】
４１１は、正しい語順表示の英語文章である。英語は、文章を左から右に書く言語のため、ピリオドは、文章の右側に来る。一方、この英語の文章を、右から左の方向性のフレームに取り込んで表示すると、メモリ内の格納順は同じままであっても４１２のようにピリオドは左側に表示されしまう。
【００２７】
４２１、４２２は、括弧の語順およびミラーリングを説明するための図である。
【００２８】
４２１は、英語とともに正しい対応付けの括弧が表示されている例である。このテキストを、右から左の方向性のフレームに取り込んで表示すると、４２２のように閉じ括弧がなくなり、代わりにテキストの左側に余計な括弧が挿入されてしまう。これは、"English"と"123"の間の括弧は左から右のコンテキスト内の括弧として認識され処理されるためそのまま表示されているのに対し、最後の閉じ括弧は、右から左の方向性のフレームの中で単体の括弧として認識されたために、表示位置が全体の左側になるのとともに、ミラーリング処理が行われ ")" の括弧の対となる "(" の括弧に置換されてから表示されたためである。
【００２９】
４３１、４３２、４３３は、分数または区切り斜線の語順を説明するための図である。
【００３０】
左側の数字と右側の数字を空白を含めずに斜線"/"で区切って表示した場合は、４３１で示すように、左右どちらの方向性のフレームに取り込んで表示した場合も、"121/147" となり、表示結果は同じになる。
【００３１】
一方、"1"と"7"と"/"の縦線の誤読を避けるため、"121"と"/"と"147"の間に空白を入れた場合は、フレームの方向性によって表示結果が異なる。４３２は、左から右の方向性のフレームにテキストを取り込んで表示した結果で、４３３は右から左の方向性のフレームにテキストを取り込んで表示した結果で、４３３が分数であった場合は４３２と値に違いが生じてしまう。
【００３２】
４４１、４４２、４４３は、数式の語順を説明するための図である。
【００３３】
４４１のように英文字を使って数式を記載した場合は、左右どちらの方向性のフレームに取り込んで表示した場合も、４４１の表示結果になり一致する。
【００３４】
一方、数値でこの数式を記載した場合、フレームの方向性によって表示結果が異なる。４４２は、左から右の方向性のフレームにテキストを取り込んで表示した結果で、４４３は右から左の方向性のフレームにテキストを取り込んで表示した結果である。４４３の数式では、数値の左側にくるべきマイナス記号が右側にきてしまっていて、正しい語順になっていない。
【００３５】
双方向テキストレンダリングを前提とした、ミラーリング処理が、ミラーリング処理をするべきではない英語コンテンツの一部に対して実行されてしまい、括弧の対応が崩れてしまう現象が発生することがある（例えば、英単語に連続して数値を括弧で囲った場合など）。同様に、双方向にテキストレンダリングされるべきコンテンツと、片方向にテキストレンダリングされるべきコンテンツが混在するケースで、ページに対して片方向にテキストレンダリングされる設定がなされていると、双方向にテキストレンダリングするべきコンテンツの表示に不整合が発生する。
【００３６】
本発明は、ある方向性をもつテキストが、異なる方向性のページに取り込まれて表示される場合に、そのテキストが異なる方向性のページに取り込まれることを想定していなくても、テキストレンダリングシステムが、表示テキスト毎に適した方向性でテキストレンダリングできるようにすることを第一の課題としている。
【００３７】
本発明の第二の課題は、方向性の設定が、ページに対してではなく、アプリケーションに対してなされている場合にも、第一の課題と同様に、予めアプリケーションの方向性を考慮していないテキストを、アプリケーションとして正しい方向でテキストレンダリングできるようにすることである。
【００３８】
本発明の第三の課題は、方向性の設定が、ページに対してではなく、システムの言語設定に対してなされている場合にも、第一の課題と同様に、予めシステムの言語設定を考慮していないテキストを、システムとして正しい方向でテキストレンダリングできるようにすることである。
【００３９】
本発明の第四の課題は、あるコンテナに方向性が設定されていない場合も、そのコンテナの方向性を判定することができるようにすることである。
【００４０】
本発明の第五の課題は、テキストデータの方向性を簡易に判定できるようにすることである。
【課題を解決するための手段】
【００４１】
［解決手段１］
本発明に係る情報処理装置は、
テキストデータを双方向テキストレンダリング処理することのできる情報処理装置が、
テキストデータを含むコンテナに対して、
コンテナに設定されている双方向テキストレンダリングにおける方向性を判定するフレーム方向性判定手段と、
テキストデータに含まれる内容を検査しテキストの方向性が設定されているかを判定するテキストデータ検査手段と、
前記コンテナ方向性判定手段で判定した結果と前記テキストデータ検査手段で検査した結果を比較する比較手段と、
前記比較手段の結果に応じて、テキストデータ検査手段で検査した方向性を維持するようにテキストデータを処理するテキストデータ処理手段と、
を有することを特徴とする。
【００４２】
［解決手段２］
前記解決手段１において、情報処理装置は表示部を有し、
コンテナに含まれるテキストに対して方向制御を行った処理結果を
前記表示部に表示する手段を有することを特徴とする。
【００４３】
［解決手段３］
前記解決手段１において、情報処理装置は印刷部を有し、
コンテナに含まれるテキストに対して方向制御を行った処理結果を
前記印刷部に印刷する手段を有することを特徴とする。
【００４４】
［解決手段４］
前記解決手段１のコンテナ方向性判定手段において、情報処理装置は、
コンテナが包含関係にある場合かつ判定対象のコンテナにて判定できない場合は、
判定対象のコンテナを包含しているコンテナの方向性で判定する手段
を有することを特徴とする。
【００４５】
［解決手段５］
前記解決手段１のテキストデータ検査手段において、情報処理装置は、
文字コードを発声順および表示順に応じて格納する記憶手段と、
前記記憶手段に格納されている順序において最初に現れる強い方向性の文字コードの方向性を方向性として判定する手段と、
を有することを特徴とする。
【発明の効果】
【００４６】
従来、UnicodeやCodePage1255/1256やHTMLで方向制御文字を挿入したり、HTMLやCSSの属性を使ってテキストの方向性を制御する場合、予め１つのページに複数の方向性のテキストが混在していることが分かってる必要があり、さらに、それぞれに対して手動で方向制御文字を挿入したり、手動で方向性を設定する必要があった。一方、本発明では、最終的に１つのページを構成する複数のテキストそれぞれが、予め別の方向性を持つページに取り込まれることを想定していなくても、ページの方向性とテキストの方向性を判定し、ページの方向性とは逆の方向性のテキストに対しても、適切にテキストレンダリングするところが本発明の効果である。
【００４７】
また、特願2013-536928は、方向性が異なる場合に方向性を正しい方向性に方向性を固定する手段がないため、誤った並び順でテキストが表示されることがあるのに対し、本発明では正しい方向性に方向性を固定する手段を有することで、正しい方向性でテキストを表示したり印刷したりすることができるようになることが本発明の効果である。
【００４８】
本発明の第四の解決手段を用いることで、あるコンテナに方向性が設定されていない場合も、そのコンテナの方向性を判定することができるようになる。
【００４９】
本発明の第五の解決手段を用いることで、テキストデータの方向性を簡易に判定できるようになる。
【図面の簡単な説明】
【００５０】
【図１】本発明における代表的なシステム構成図
【図２】本発明における代表的なフローチャート
【図３】ウェブブラウザを例としたコンテナについて説明するための図
【図４】本発明において、テキストに対して方向性指定を行わず、テキストの方向性を暗黙的に確定しておく事前処理を行った場合のフローチャート
【図５（Ａ）】データを付与して方向性を固定する方法と処理で方向性を維持する方法の説明図
【図５（Ｂ）】データを付与して方向性を固定する方法と処理で方向性を維持する方法の説明図
【図５（Ｃ）】データを付与して方向性を固定する方法と処理で方向性を維持する方法の説明図
【図５（Ｄ）】データを付与して方向性を固定する方法と処理で方向性を維持する方法の説明図
【発明を実施するための形態】
【００５１】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【実施例１】
【００５２】
本発明では、フレーム、ページという文言を用いるが、これらは内部に１つ以上のテキストを保持することができるコンテナの名称として用いている。
【００５３】
また、コンテナの中にコンテナを含むことができ、コンテナの入れ子構造も可能である。
【００５４】
図１は本発明の双方向テキストレンダリングシステムを説明するためのシステム構成図である。
【００５５】
本システムは双方向テキスト整形器１１０を有しており、本発明を表示システムに適用する場合は表示部１２０を有し、本発明を印刷システムに適用する場合は印刷部１３０を有し、本発明を表示および印刷の両方に適用する場合は表示部１２０および印刷部１３０を同時に有している。
【００５６】
また、本システムから表示画面を指定したり、印刷を指示するための、操作部１４０を有する。操作部１４０は、タッチパネルのように表示部１２０と一体となっている形態でもよいし、ディスプレイとして表示部１２０があり、キーボードやマウスやハードキーとして操作部１４０がある形態でもよい。
【００５７】
表示部１２０は、双方向テキスト整形器１１０と同一機器内に存在する構成でもよいし、双方向テキスト整形器１１０と無線通信やネットワーク通信を行う別機器の構成でもよい。
【００５８】
印刷部１３０は、双方向テキスト整形器１１０と直接接続されている構成でもよいし、双方向テキスト整形器１１０とネットワークを介して接続されている構成でもよい。
【００５９】
双方向テキスト整形器１１０は、ページやテキストの塊に対して設定されている双方向テキストレンダリングの方向性を判定するための方向性設定判定器１１１と、双方向テキストレンダリングの方向性が明示されていないテキストデータの方向性を判定するためにテキストデータに含まれる文字コードを検査するためのテキストデータ検査機１１２と、テキストデータが表示部１２０や印刷部１３０に正しく双方向テキストレンダリングされるように、テキストデータに対して処理を加えるテキストデータ処理器１１３とを有する。
【００６０】
図３はウェブブラウザを例としたコンテナについて説明するための図である。
【００６１】
まず始めに、構成を説明し、次にコンテナの方向性の判定方法を実施例を説明する。
【００６２】
オペレーティングシステム３０１に、ウェブブラウザ３０２を搭載し、ウェブブラウザ３０２は、複数のタブ３０３を切り替えてページ３０４を表示することができ、ページ３０４は複数のフレーム３０５で構成され、フレーム３０５は複数のブロック要素３０６を含むことがでる。テキストデータ３０７はブロック要素３０６に記載されている。
【００６３】
このような構成の場合、オペレーティングシステム３０１はウェブブラウザ３０２のコンテナ、ウェブブラウザ３０２はタブ３０３のコンテナ、タブ３０３はページ３０４のコンテナ、ページ３０４はフレーム３０５のコンテナ、フレーム３０５はブロック要素３０６のコンテナ、ブロック要素３０６はテキストデータ３０７のコンテナと呼ぶことにする。
【００６４】
また、ここには図示していないが、フレーム３０５にテキストデータ３０７を直接記載することも可能で、この場合、フレーム３０５はテキストデータ３０７の直接のコンテナになる。
【００６５】
次に、コンテナに設定されている双方向テキストレンダリングにおける方向性を判定する方法の実施例を説明する。
【００６６】
まず、テキストデータ３０７を直接格納しているブロック要素３０６に方向性が設定されているかを判定する。例えば、ブロック要素３０６がHTMLタグの場合、ブロック要素３０６のHTMLタグのdir属性を参照することで、方向性が設定されているかどうかを判定することができる。テキストデータ３０７を直接格納しているコンテナに方向属性が設定されていない場合、テキストデータ３０７を直接格納格納しているコンテナを格納しているコンテナの方向属性の設定を判定する。例えば、図６では、ブロック要素３０６を格納しているフレーム３０５に方向性属性が設定されているかを判定する。
【００６７】
フレーム３０５がHTMLタグの場合、フレーム３０５のHTMLタグのdir属性を参照することで、フレーム３０５に対して方向性が設定されているかどうかを判定することができる。フレーム３０５に方向性属性が設定されていない場合、フレーム３０５を格納しているコンテナのページ３０４に方向性属性が設定されているかを判定する。例えば、ページ３０４に対して、言語の指定がある場合、指定されている言語の特性を元に方向性を判定することができる。さらに、ページ３０４に方向性の設定が無い場合、ページ３０４をコンテナとして格納しているタブ３０３の方向性を判定する。コンテナによっては、方向性を指定する手段を持たない場合もある。この場合、方向性を指定する手段を持たないコンテナを格納しているコンテナの方向性を判定する。例えば、タブ３０３が、方向性を指定する手段を持たないコンテナである場合、タブ３０３を格納するコンテナであるウェブブラウザ３０２の方向性を判定する。例えば、ウェブブラウザ３０２に対してエンコーディングを指定できる場合、指定されているエンコーディングをもとに方向性を判定する。ここでは、ウェブブラウザ３０２というアプリケーションについて述べたので、方向性を３０２のエンコーディング設定から判定することができたが、方向性を判定する手段のないアプリケーションであったり、エンコーディングのように方向性に影響があるものの、そのアプリケーションがその設定によって方向性を切り替えていない場合、さらに、アプリケーションのコンテナであるオペレーティングシステム３０１のロケール設定を参照して方向性を判定することもある。
【００６８】
図２は本発明の双方向テキストレンダリングシステムの代表例を説明するためのフローチャートである。
【００６９】
Ｓ２０１にて、１つ以上のテキストデータを含むコンテナに対して、コンテナの方向性を判定する。判定は、アプリケーションの方向性設定、システムのロケール設定、フレームに対する方向性設定等の、テキストデータの周囲で設定されている方向性に関連する情報を元に行う。
【００７０】
Ｓ２０２にて、テキストに対する方向性の指定を検査する。検査は、テキストを囲むHTMLタグに方向制御の指定がなされているかや、テキストが方向制御文字で囲まれているかを検査する。
【００７１】
Ｓ２０３にて、テキストに対してＳ２０１およびＳ２０２にて外部から方向性が指定されているかを判定する。方向性が指定されている場合は、そのテキストは指定されている方向性で表示または印刷するようにする。
【００７２】
Ｓ２０４は、Ｓ２０３で方向性が指定されていない場合の処理である。テキストの内部の文字コードの方向性属性を検査する。強い方向性を持つ文字を検出した場合は、その方向性をそのテキストの方向性として認識する。
【００７３】
Ｓ２０５にて、前記Ｓ２０１で判定したコンテナの方向性とＳ２０４で検査したテキストの方向性を比較する。
【００７４】
コンテナと同じ方向性のテキストはそのまま表示または印刷する。
【００７５】
一方、方向性が異なる場合は、Ｓ２０６に進み、テキストデータの方向性を固定するための処理を行う。
【００７６】
テキストデータの方向性を固定するための手段としては、Ｓ２０２で述べたように、テキストデータに対して方向制御文字を追加する方法や、テキストデータを方向制御指定されたHTMLタグで囲む方法がある。
【００７７】
Ｓ２０７にて、以上の結果を踏まえた表示または印刷を行う。
【００７８】
方向制御に関する第一の実施例として、アラビア語設定のフレームにアラビア語設定のフレームに取り込まれることを想定していない英語のテキストを取り込んで表示する実施例について説明する。
【００７９】
アラビア語設定のフレームとは、RTLの方向性で双方向テキストレンダリングを行うことを意味している。
【００８０】
取り込む英語のテキストはアラビア語設定のフレームに取り込まれることを意識して作成されていないが、フレームに取り込む際に取り込み側がLROとPDFで囲むことにより、周囲のアラビア語はRTLの方向性で双方向テキストレンダリングが行われ、取り込んだ英語テキストはLTRの方向性で双方向テキストレンダリングが行われるようになる。アラビア語設定で表示することを前提としている場合、周囲のアラビア語を作成する際に、アラビア語のテキストデータにRLMを埋め込むことを省略することができる。これは、表示処理の過程でRLMを埋め込んだ場合と同等の方向制御がなされるためである。
【００８１】
この実施例は、アラビア語やヘブライ語に取り込まれることを意識せずに作成された英語のテキストデータを、編集し直すことなくアラビア語やヘブライ語の中に取り込んで表示したい場合に有用である。
【００８２】
方向制御に関する第二の実施例として、アラビア語のテキストを取り込むことを想定していない英語設定のフレームにアラビア語のテキストを取り込んで表示する実施例について説明する。
【００８３】
英語設定のフレームとは、LTRの方向性で双方向テキストレンダリングを行うことを意味している。
【００８４】
フレーム側が内部に取り込むテキストの方向性の切り替えを行わないため、取り込まれるアラビア語をRLOとPDFで囲んで作成しておく。このようにして作成されたアラビア語のテキストデータは、アラビア語設定のフレームに取り込まれた場合はもちろんのこと、アラビア語のテキストを取り込むことを想定していない英語設定のフレームに取り込まれた場合も、正しい双方向テキストレンダリングが行われることとなる。RLOとPDFをアラビア語テキストに追加する手段は、テキストデータ保存時に自動的に付与する方法を用いることで、アラビア語テキスト編集者が、テキスト作成時に意識する必要がなくなる。
【００８５】
この実施例は、アラビア語やヘブライ語を想定せずに設計されたシステムにおいて、アラビア語やヘブライ語の対応を追加で行う場合に有用である。
【００８６】
図５（Ａ）、図５（Ｂ）、図５（Ｃ）、図５（Ｄ）はデータを付与して方向性を固定する方法と処理で方向性を維持する方法を説明するための図である。
【００８７】
図５（Ａ）、図５（Ｂ）、図５（Ｃ）、図５（Ｄ）は、共に、テキストデータを表示装置に読み込んで表示し、読み込んだテキストデータを印刷装置に送って印刷する流れを示している。
【００８８】
図５（Ａ）は表示装置、印刷装置ともに、本発明の双方向テキスト整形器を搭載していないケースを説明する図である。
【００８９】
テキストデータ511のように方向制御データが含まれている場合、表示装置512はテキストデータ511を正しい並び順で表示し、印刷装置513は正しい並び順で印字する。
【００９０】
一方、テキストデータ514のように方向制御データを含まないテキストデータの場合、表示装置515はテキストデータ514を正しい語順で表示できない場合がある。また、印刷装置516もテキストデータ514を正しい語順で表示できない場合がある。
【００９１】
図５（Ｂ）は表示装置に本発明の双方向テキスト整形器を搭載していて、表示装置のテキストデータ処理器の処理を表示制御で行うケースを説明する図である。印刷装置は、図5.1と同様に双方向テキスト整形器を搭載していない。
【００９２】
方向制御データを含むテキストデータ521の場合は、表示装置522はテキストデータ521を正しい並び順で表示し、印刷装置523は正しい並び順で印字する。
【００９３】
一方、テキストデータ524のように方向制御データを含まないテキストデータの場合、表示装置525は表示制御として方向制御情報を付与して表示するため正しい語順でテキストデータを表示する。一方、印刷装置526は、本発明の双方向テキスト整形器を搭載していないため、方向制御情報が付与されていないテキストデータに対しては、正しい語順でテキストデータを印字できないケースが存在してくる。
【００９４】
図５（Ｃ）は図５（Ｂ）の印刷装置にも本発明の双方向テキスト整形器を搭載したケースを説明する図である。
【００９５】
方向制御データを含むテキストデータ531の場合は、表示装置532はテキストデータ531を正しい並び順で表示し、印刷装置533は正しい並び順で印字する。
【００９６】
また、テキストデータ534のように方向制御データを含まないテキストデータの場合、表示装置535は表示制御として方向制御情報を付与して表示するため正しい語順でテキストデータを表示する。さらに、印刷装置536にも、本発明の双方向テキスト整形器を搭載しているため、方向制御情報が付与されていないテキストデータに対して、正しい語順でテキストデータを印字することができる。
【００９７】
図５（Ｄ）は図５（Ｂ）の表示装置の双方向テキスト整形器がテキストデータに対して方向制御文字を付与する形式で行われるケースを説明する図である。
【００９８】
方向制御データを含むテキストデータ541の場合は、表示装置542はテキストデータ541を正しい並び順で表示し、印刷装置543は正しい並び順で印字する。
【００９９】
また、方向制御データを含まないテキスト544に対して、表示装置545は本発明の双方向テキスト整形器のテキストデータ処理器で方向制御データを付与することで、正しい語順で表示できるようにする。印刷装置546は本発明の双方向テキスト整形器の機能を有していないが、表示装置545でテキストデータに方向制御データを付与しているため、このケースでは正しい語順で印字することができる。
【産業上の利用可能性】
【０１００】
(1) ウェブブラウザ
本発明は、ウェブブラウザでページを表示する際に利用することができる。
通常、ウェブブラウザは、１つのページに複数のテキストデータを含むコンテンツを読み込んで表示するようことが可能である。また、HTMLやCSSの仕組みで、双方向テキストレンダリングの方向性を指定することができるが、単一方向にしかレンダリングされない言語のテキストに対しては、コンテンツが他の方向性のページに読み込まれることを想定して、この指定を明示的に行っていることは稀であり、大多数のテキストは方向性が明示的になされていない。
【０１０１】
このような状況の中、従来、異なる方向性のコンテンツを同一ページに表示すると、明示的に方向性が指定されていないコンテンツで、ページの方向性とコンテンツの方向性が異なる場合に、弱い方向性の文字属性の文字コード（例えば、数字や記号）が正しい位置に表示されない課題があった。
【０１０２】
本発明を利用することで、このようなページと異なる方向性を持ち、明示的に方向性が設定されていないコンテンツも、そのコンテンツが本来あるべき正しい並び順で表示することができるようになる。
【０１０３】
異なる方向性のコンテンツを正しい並び順で表示する手段としては、HTMLのタグを用いる方法、CSSで指定する方法、テキストデータに方向性制御文字を追加する方法などを用いることができる。
【０１０４】
(2) プリントドライバと帳票印刷
本発明は、複数のテキストデータを合成して紙に対して帳票印刷するためのプリントドライバで利用することができる。
【０１０５】
通常、帳票印刷に利用されるためにデータベースに格納されているテキストデータは、異なる方向性のテキストと混在したときに方向性が崩れないようにするための付加情報は付与されていない。
【０１０６】
複数のテキストデータに、異なる方向性のテキストデータが含まれる場合、従来は、帳票印刷データの方向性と異なる方向性をもったテキストデータで、異なる方向性の帳票として合成されて方向性を維持するための方向制御データが付与されていないテキストデータは、印刷時にテキストの並び順が崩れることがあるという課題があった。
【０１０７】
本発明を利用することで、このような複数の方向性の異なるテキストデータを合成して帳票印刷を行う場合に、それぞれの正しい方向性でテキストデータを印刷することが可能になる。
【０１０８】
異なる方向性のテキストをそれぞれ正しい方向性で固定する手段としては、部分部分のテキストデータ毎にそれぞれの方向性でベクターまたはビットマップに変換し並び順を確定してしまう方法などを用いることができる。
【０１０９】
(3) ダイアログ表示
本発明は、複数言語のメッセージを同時にダイアログに表示するシステムで利用することができる。
【０１１０】
複数言語の表示を行うことができるソフトウェアでは、英語でソフトウェアの機能に対応するメッセージを検討し、英語のメッセージをアラビア語やヘブライ語などの他の言語に翻訳するという順序で、ソフトウェアの作成が行われることが多い。英語のメッセージを作成する際、米国および西欧諸国の言語の文字を表すことができるCodePage1252が用いられることが多い。このCodePage1252には、ヘブライ語で用いられるCodePage1255に含まれるやアラビア語やペルシャ語で用いられるCodePage1256に含まれる方向制御文字が含まれていない。よって、英語のメッセージをアラビア語に翻訳し、アラビア語メッセージのダイアログを表示する場合、未翻訳の英語メッセージや数字や記号があると、それらには方向制御文字が含まれていないため、正しい並び順で表示されないという課題があった。
【０１１１】
本発明を利用することで、このような双方向にテキストレンダリングする言語と片方向にテキストレンダリングする言語を同一のダイアログに表示する際にテキストを正しい並び順で表示することが可能になる。
【０１１２】
CodePage1255やCodePage1256のように双方向にテキストレンダリングする言語と、他の言語を混在させて１つのダイアログに正しい並び順で表示させる方法としては、言語に対応したCodePageからUnicodeに変換した後、方向性を適切に固定するための方向制御文字を付与する方法がある。また、別の方法として、それぞれのテキスト領域をビットマップに展開してしまい、展開したビットマップを結合して１つのダイアログを構築する方法もある。
【０１１３】
(4) 引用メール
本発明は、メールソフトで他の人のメールを引用する場合に利用することができる。具体的には、単一方向にテキストをレンダリングする言語圏の人のメールを双方向にテキストをレンダリングする言語圏の人が引用する場合に利用することができる。
【０１１４】
英語圏の人は、ASCIIコードを使ってメールを書くことが多い。ASCIIコードには、双方向テキストレンダリングで方向性を制御するための方向制御文字が含まれていないため、英語圏の人が書いたメールには、アラビア語のメールに引用された際にテキストの方向性を正しく維持するための方向制御文字は付与されていない。このような状況で、従来は、アラビア語のメールに英語メールを引用すると、英語のテキストに含まれる弱い方向性の文字属性を持つ文字（数字や記号）が正しい位置に表示されないという課題があった。
【０１１５】
本発明を利用することで、アラビア語のメールに英語圏の人が書いたメールを引用した場合に、英語圏の人が書いたメールのテキストに含まれる弱い方向性の文字属性を持つ文字（数字や記号）の表示順序が正しく維持されるようになる。
【０１１６】
英語圏の人が書いたメールをアラビア語圏の人のメールに引用する場合、CodePage1255やCodePage1256には英語アルファベットが含まれることを利用して、英語圏の人が書いたCodePage1252のメールのテキスト部分をLTRとRTLの文字コードで囲み、英語圏の人が書いたメールのテキストの方向性を正しく維持する方法を用いることができる。
【０１１７】
(5) スプレッドシート
本発明は、複数のセルを行と列で表示するスプレッドシートで利用することができる。
【０１１８】
セルにデータをインポートする機能のあるスプレッドシートのアプリケーションでは、この機能を使って、複数言語のテキストデータを１枚のシートに読み込むことができる。また、シートやアプリケーションに対して、表示の方向性を指定することができる。
この機能を使って、別々に作成された方向性の異なる複数の言語を１枚のシートに読み込んだ場合、シートに対して設定されている方向性と異なる方向性の言語のテキストデータは、弱い方向性の文字属性を持つ文字の位置が正しい位置に表示されないという課題があった。
【０１１９】
本発明を利用し、方向性が明示されていないテキストの並び順を自動補正する処理を行うことで、スプレッドシートに複数の方向性の言語をインポートして表示させるときに発生する課題を解決することができる。
【０１２０】
インポートした複数の方向性の言語のテキストデータに対して、それぞれのセルにに含まれるテキストの文字の方向性を検査し、セルの方向性を自動で制御する方法を用いることで、複数の方向性の言語を正しい並び順で同時に表示することができるようになる。
【０１２１】
(6) その他
ここまで、本発明では、全体に対する方向性の設定がなされる手段として、ウェブページ、紙、ダイアログ、スプレッドシートなどについて説明してきた。これらに対して、明示的に直接方向性が設定されていない場合、アプリケーションの設定、システムのロケール設定や言語設定、情報処理装置のロケール設定や言語設定といった、より上位の設定情報を引き継いで全体の方向を判定する方法を用いることも可能である。
【符号の説明】
【０１２２】
１１０  双方向テキスト整形器、１２０  表示部、１３０  印刷部
【図１】
2017027323.tif 000003
【図２】
2017027323.tif 000004
【図３】
2017027323.tif 000005
【図４】
2017027323.tif 000006
【図５（Ａ）】
2017027323.tif 000007
【図５（Ｂ）】
2017027323.tif 000008
【図５（Ｃ）】
2017027323.tif 000009
【図５（Ｄ）】
2017027323.tif 000010