(57)【要約】【課題】  右から左へ記述される言語のＧＵＩを表示する際、描画内容を左右反転すべきオブジェクトを簡易かつ適切に決定する。【解決手段】  左から右へ記述される言語のＧＵＩにおいて遷移動作と関連付けられているオブジェクトを対象に決定し、決定したオブジェクトをＹ軸反転変換して描画し、描画したオブジェクトを右から左へ記述される言語のＧＵＩとして表示させる。【選択図】  図３
2019056729.tif 000002
【特許請求の範囲】
【請求項１】
左から右へ記述される第１の言語で表現された第１の内容からの、右から左へ記述される第２の言語で表現された第２の内容の生成において、前記第１の内容を構成するオブジェクトのうち、遷移動作と関連付けられているオブジェクトを決定する決定手段と、
前記決定手段で決定されたオブジェクトを、Ｙ軸反転変換して描画する描画手段と、
前記描画手段で描画されたオブジェクトを、前記第２の内容を構成するオブジェクトとして表示させる表示手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記表示手段は、前記第１の内容における前記オブジェクトの位置から左右反転した位置に前記オブジェクトを表示させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記決定手段は、ペアとなるオブジェクトが水平方向に存在しないオブジェクトを対象から除外することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記決定手段は、前記オブジェクトの内容として文字列が含まれているオブジェクトを対象から除外することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記決定手段は、前記オブジェクトの内容としてロゴが含まれているオブジェクトを対象から除外することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記表示手段は、ＧＵＩを表示させることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記遷移動作と関連付けられているオブジェクトは、矢印であることを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記決定手段は、ペアとなるオブジェクトが水平方向で許容距離より離れているオブジェクトを対象から除外することを特徴とする請求項１に記載の情報処理装置。
【請求項９】
左から右へ記述される第１の言語で表現された第１の内容からの、右から左へ記述される第２の言語で表現された第２の内容の生成において、前記第１の内容を構成するオブジェクトのうち、遷移動作と関連付けられているオブジェクトを決定する決定工程と、
前記決定工程で決定されたオブジェクトを、Ｙ軸反転変換して描画する描画工程と、
前記描画工程で描画されたオブジェクトを、前記第２の内容を構成するオブジェクトとして表示させる表示工程と、を備えることを特徴とする情報処理方法。
【請求項１０】
コンピュータを
左から右へ記述される第１の言語で表現された第１の内容からの、右から左へ記述される第２の言語で表現された第２の内容の生成において、前記第１の内容を構成するオブジェクトのうち、遷移動作と関連付けられているオブジェクトを決定する決定手段と、
前記決定手段で決定されたオブジェクトを、Ｙ軸反転変換して描画する描画手段と、
前記描画手段で描画されたオブジェクトを、前記第２の内容を構成するオブジェクトとして表示させる表示手段と、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザインタフェースとしてのオブジェクトを表示する技術に関し、特に、オブジェクトの表示を言語により変更する技術に関する。
【背景技術】
【０００２】
機器の利用者にグラフィカル・ユーザ・インタフェース（以下、ＧＵＩと記す）を提示する際、文字列を左から右に記述する言語（以下、ＬＴＲ言語）と、右から左に記述する言語（以下、ＲＴＬ言語）では、ＧＵＩの配置位置が鏡写しのようになる。さらに、オブジェクトの配置方向も左右が逆転する。例えば、ＬＴＲ言語では、“戻る、進む”と表示するが、ＲＴＬ言語では、逆順に、“進む、戻る”と表示するのが正しい。ＬＴＲ言語とＲＴＬ言語のＧＵＩを、それぞれ独立して開発するのは非効率であるため、しばしば、ＬＴＲ言語のＧＵＩのみを開発し、その情報を基にＲＴＬ言語での表示用にレイアウト位置を計算する方法がとられる。
【０００３】
さらに、ＲＴＬ言語では、オブジェクトの表示内容に横方向の方向性が含まれている場合、表示位置だけでなく、その描画内容も左右反転すべきである。例えば、履歴を「戻る」または「進む」よう指示するボタンオブジェクトは、方向性を示す矢印記号などが含まれている場合が多い。ＬＴＲ言語では、「戻る」を指示するために左側に左方向の矢印オブジェクト（←）を配置し、「進む」を指示するために右側に右方向の矢印オブジェクト（→）を配置する。例えば、“（戻る）←→（進む）”のように表示される。ＲＴＬ言語では、ＬＴＲ言語と意味が逆転し、左方向の矢印オブジェクト（←）が「進む」、右方向の矢印オブジェクト（→）が「戻る」意味を持つ。
【０００４】
単純に、ＬＴＲ言語用に“（戻る）←→（進む）”としていたオブジェクトの表示位置を、ＲＴＬ言語用に入れ替えて、“（進む）→←（戻る）”としただけでは、ＲＴＬ言語として、矢印オブジェクトの方向と意図する意味とが正しく対応しなくなる。ＲＴＬ言語として正しく“（進む）←→（戻る）”と表示されるように工夫される。
【０００５】
例えば特許文献１では、表示言語に応じてオブジェクトを表示する際の左右の向き、表示位置、進行方向をオブジェクトごとに予め決定している。また、左右の向きが１方向の１つのオブジェクトを記憶し、その方向とは異なる表示言語が選択された際は、左右反転して表示している。さらに、左右２方向の２つのオブジェクトを記憶し、表示言語と合致する方のオブジェクトを表示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−３１７０８６
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１で開示される技術では、ＧＵＩの開発者が、反転描画対象とするすべてのオブジェクトをあらかじめ指定する必要がある。意図的に全言語で共通の描画内容とすべきアイコンや、表示内容に文字列が含まれているオブジェクトなど、反転描画が不要なオブジェクトもあるからである。多量のＧＵＩオブジェクトを使用する場合、この作業は開発者の負荷となるだけでなく、指定漏れなどの作業ミスが発生する恐れがある。
【０００８】
本発明は、上記の課題を鑑みてなされたもので、ＬＴＲ言語用のＧＵＩからＲＴＬ言語用のＧＵＩを簡易かつ適切に生成することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、表示言語におけるオブジェクトのレイアウト方向を特定する方向特定手段と、実行する動作の中から遷移に係る動作を決定する遷移動作決定手段を備える。そして、該レイアウト方向とオブジェクトに関連付けられた動作を基に、反転表示の対象となるオブジェクトを決定する反転対象決定手段を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ＬＴＲ言語用のＧＵＩからＲＴＬ言語用のＧＵＩを簡易かつ適切に生成することができる。
【図面の簡単な説明】
【００１１】
【図１】ハードウェア構成の一例を示す図である。
【図２】機能ブロック図の一例を示す図である。
【図３】ＧＵＩ表示の一例を示す図である。
【図４】動作情報の一例を示す図である。
【図５】オブジェクト情報の一例を示す図である。
【図６】レイアウト処理の流れを示すフローチャートである。
【図７】描画処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１２】
［実施形態１］
本実施形態では、カメラの各種設定を行うＧＵＩを、ＲＴＬ言語で表示する例を説明する。その際、オブジェクトに関連付けられた動作を基に、左右の方向性をもつオブジェクトを特定し、当該オブジェクトを左右反転に描画して利用者に提示する。以下、カメラを情報処理装置とも記載する。
【００１３】
図１は、本実施形態の情報処理装置のハードウェア構成の一例を示す図である。ＣＰＵ１００は、ＧＵＩ表示に係るプログラムに基づいて各種処理を実行する。以降のフローチャートは、ＣＰＵが制御プログラムを実行することにより実現される。ＲＯＭ１０１には、レイアウト処理や描画処理を行う各種プログラム、オブジェクトのレイアウトや動作情報などが、読み取り専用データとして格納されている。ＲＡＭ１０２は、ＣＰＵ１００のメインメモリとして機能する。ディスプレイ１０３は、ＧＵＩの内容を利用者に提示する。バス１０４は、各ハードウェア間でのデータ交換に使用する。
【００１４】
図２は、本実施形態の機能ブロック図の一例を示す図である。図中の矢印とそれに付記された文字列は、各機能ブロック間のデータの流れの例を意味する。データの流れは、図２の矢印方向に限られない。また、カメラ機器２０６の枠内に記載した機能ブロックはカメラ機器の内部で実行するものである。遷移動作決定部２０１は、カメラ機器の外部で実行する機能ブロックである。
【００１５】
制御部２００は、ＧＵＩ表示に係る処理全体の流れを制御すると共に、保持部２０４や他の機能ブロック間でデータの受け渡しを行う。遷移動作決定部２０１は、カメラ機器の動作前に実行される機能ブロックであり、利用者がＧＵＩのオブジェクトを操作した際に実行する動作に関する情報と、その中から、遷移に係る動作を特定する情報を作成し、保持部２０４に格納する。格納する情報の具体例は後述する。反転描画対象決定部２０２は、制御部２００からオブジェクト情報と動作情報を受け取り、それらを基に反転して描画する反転描画対象オブジェクトを決定し、制御部２００に返す。描画部２０３は、制御部２００からオブジェクト情報と反転描画対象オブジェクトの情報を受け取り、機器の利用者に表示するビットマップデータを作成する。作成したビットマップデータは、表示部２０５に転送することで、利用者に提示する。保持部２０４は、ＲＯＭ等である。表示部２０５は、ディスプレイ等である。
【００１６】
これら各構成は、不図示のＣＰＵにより統括的に制御されている。尚、ＣＰＵはプログラムを実行することで各種の手段として機能することが可能である。なお、ＣＰＵと協調して動作するＡＳＩＣなどの制御回路がこれらの手段として機能してもよい。また、ＣＰＵと情報処理装置の動作を制御する制御回路との協調によってこれらの手段が実現されてもよい。また、ＣＰＵは単一のものである必要はなく、複数であってもよい。この場合、複数のＣＰＵは分散して処理を実行することが可能である。また、複数のＣＰＵは単一のコンピュータに配置されていてもよいし、物理的に異なる複数のコンピュータに配置されていてもよい。なお、ＣＰＵがプログラムを実行することで実現する手段が専用の回路によって実現されてもよい。
【００１７】
図３は、本実施形態のＧＵＩ表示の一例を示す図である。このＧＵＩは、カメラの撮影に関するパラメータを設定するためのもので、ＬＴＲ表示３００は、ＧＵＩの表示言語が、英語や日本語などのＬＴＲ言語（第１の方向へ記述される第１の言語）である場合の表示内容である。ＰＲＥＶボタン３０１とＮＥＸＴボタン３０２は、設定画面をそれぞれ前後のページに切り替えるボタンオブジェクトである。これらのボタンを利用者が操作することにより、他の設定画面への切り替えを行う。第一項目ラベル３０３は、各設定画面における最上段の設定項目を表示する。第一値ラベル３０４は、第一項目ラベル３０３に対応する現在の設定値を表示する。
【００１８】
ＲＴＬ表示３０５は、ＧＵＩの表示言語が、アラビア語やヘブライ語などのＲＴＬ言語（第１の方向と反対の第２の方向へ記述される第２の言語）である場合の表示内容である。この場合、表示されるすべてのオブジェクトの表示位置が左右反転する。例えば、ＰＲＥＶボタン３０１と第一項目ラベル３０３は、ＬＴＲ表示３００では向かって左側に表示されていたが、ＲＴＬ表示３０５では右側に表示される。このとき、ＰＲＥＶボタン３０１とＮＥＸＴボタン３０２は、ＬＴＲ表示３００から単に配置を逆にしただけでは、矢印オブジェクトの方向と意図する意味とが正しく対応しなくなる。利用者が操作した際に画面を切り替える遷移動作を行うため、配置を逆にするだけでなく、オブジェクトの内容が、左右反転して描画されている。一方で、第一項目ラベル３０３と第一値ラベル３０４は、遷移動作を行わないため、位置だけが左右反転し、描画内容は左右反転されない。「ｓＲＧＢ」などの専門用語は、ＲＴＬ表示３０５でも英語のまま表示する。
【００１９】
図４は、本実施形態の動作情報の一例を示す図である。動作情報とは、遷移動作決定部２０１が作成してＲＯＭ１０１に格納するもので、利用者がＧＵＩオブジェクトを操作した際に実行され得る、すべての動作の名称や値を含む情報である。本実施形態では、動作はイベントとして定義されるものとし、その名称がイベント名４００に格納されている。また、イベント値４０１は、各イベントを一意に特定する整数値である。そして、遷移動作情報４０２は、当該イベントが遷移に関連するイベントか否かを示す真偽値である。これは、ＧＵＩの開発者がイベント情報の作成時に指定するものであり、本実施形態では、ＰＲＥＶイベント４０３とＮＥＸＴイベント４０４が遷移に係る動作と定められている。この例のように、汎用的に前後に移動する際に使用するイベントや、その他では、例えば、ＵＮＤＯ／ＲＥＤＯなど、作業のやり直し動作を行うイベントも遷移動作と定めても良い。
【００２０】
図５は、オブジェクト情報の一例を示す図である。ＧＵＩの内容を構成するオブジェクトのリストを示している。オブジェクト名５００は、表示するオブジェクトを一意に特定するための情報である。表示位置５０１は、ＬＴＲ表示３００における各オブジェクトの表示位置を（Ｘ，Ｙ）座標で示した値である。表示サイズ５０２は、各オブジェクトの縦横方向の長さを示す値である。イベント名５０３は、各オブジェクトに対して利用者が操作を行った際に、出力され得るイベントを示す。これらのイベントは、図４で示した動作情報の中から選択されるものであり、複数のイベントが関連付けられても良い。例えば、ＰｒｅｖＢｕｔｔｏｎ情報５０４とＮｅｘｔＢｕｔｔｏｎ情報５０５は、それぞれＰＲＥＶイベント４０３とＮＥＸＴイベント４０４を送信する可能性があることを示す。一方、第一ＭｅｎｕＩｔｅｍＫｅｙ情報５０６は、利用者に文字列を表示するためだけのオブジェクトであり、特に動作を行わないため、イベント名５０３に値が格納されない。オブジェクト情報により、オブジェクトが遷移動作と関連付けられているか否かが分かる。
【００２１】
図６は、本実施形態における全体の処理の流れを示すフローチャートである。ＬＴＲ言語で表現された内容から、ＲＴＬ言語で表現された内容を生成している。
【００２２】
はじめに、制御部２００は、ステップＳ６００において、現在のレイアウト方向がＲＴＬか否かの判定を行う。レイアウト方向は文字列の記述方向と一致するため、表示言語がアラビア語やヘブライ語などのＲＴＬ言語であるか否かによって判定する。この方向特定処理において、レイアウト方向がＲＴＬでなかった場合（ステップＳ６００でＮｏ）、描画部２０３は、ステップＳ６０９において、図５で示したオブジェクト情報をそのまま利用して、各オブジェクトを描画し、そのまま処理を終了する。この描画処理に関しては後に詳細を説明する。一方、表示言語がＲＴＬであった場合（ステップＳ６００でＹｅｓ）、制御部２００は、ステップＳ６０１において、処理対象を１番奥のオブジェクトに設定する。２Ｄグラフィックにも、オブジェクトの背面／前面など、Ｚオーダーなどと呼ばれる奥／手前方向の概念があり、奥にあるオブジェクトは、手前のオブジェクトに重なったときに隠れるように描画される。
【００２３】
次に、反転描画対象決定部２０２は、ステップＳ６０２において、ＲＴＬ言語における描画位置を計算する。この計算は、左右方向の反転を行うため、ディスプレイ１０３の横幅から表示位置５０１のＸ座標の値を引き、さらに、表示サイズ５０２の幅を引いた値が、ＲＴＬ言語における表示位置となる。続いて、反転描画対象決定部２０２は、ステップＳ６０３において、当該オブジェクトが遷移動作を行うか否かを判定する。ここでは、図５で示したオブジェクト情報のイベント名５０３に、図４で示した動作情報で遷移動作情報４０２の値がＴｒｕｅのイベントが１つ以上存在する場合に、真と判定する。本実施形態では、ＰｒｅｖＢｕｔｔｏｎ情報５０４とＮｅｘｔＢｕｔｔｏｎ情報５０５が遷移動作を行うと判定される。第一ＭｅｎｕＩｔｅｍＫｅｙ情報５０６など、イベント名５０３が存在しないものも、遷移動作を行わないと判定される。遷移動作を行う場合（ステップＳ６０３でＹｅｓ）、反転描画対象決定部２０２は、ステップＳ６０４において、当該オブジェクトを反転描画対象としてＲＡＭ１０２上に記憶する。一方、遷移動作を行う可能性がない場合（ステップＳ６０３でＮｏ）、ステップＳ６０４の処理は行わない。
【００２４】
次に、制御部２００は、ステップＳ６０５において、すべてのオブジェクトに対して処理を行ったかどうか判定する。ここで、未処理のオブジェクトが残っている場合（ステップＳ６０５でＮｏ）、制御部２００は、ステップＳ６０６において、処理対象を１つ手前のオブジェクトに設定して、ステップＳ６０２に戻る。全オブジェクトに対して処理が終了した場合（Ｓ６０５でＹｅｓ）、反転描画対象決定部２０２は、ステップＳ６０７において、反転して描画する対象オブジェクトのうち、水平方向に他の反転描画対象オブジェクトが存在しないものを反転描画対象から除外する。これには、図５で示したオブジェクト情報を利用し、例えば、表示位置５０１のＹ座標の差や、表示位置５０１と表示サイズ５０２の情報から各オブジェクトの重心を求め、その差が一定の範囲に収まるかどうか判定する。垂直方向（上下方向）にペアで配置されている遷移動作と関連付けられているオブジェクトを除外する意図である。
【００２５】
次に、反転描画対象決定部２０２は、ステップＳ６０８において、水平方向にある反転描画対象オブジェクトとの距離が許容距離以上あるものを、反転対象から除外する。本実施形態では、許容距離を２００と定めるが、この値はディスプレイ１０３のサイズなどに応じて任意に設定可能である。表示位置５０１のＸ座標と表示サイズ５０２の幅情報を用いて、各オブジェクト間の横方向の距離を計算し、水平方向に存在するすべての反転描画対象オブジェクトとの距離が２００以上あるものは、反転対象から除外する。
【００２６】
ステップＳ６０７とステップＳ６０８で実行した除外処理により、反転描画対象オブジェクトの決定精度をより高めることが可能となる。例えば、遷移動作を行うオブジェクトどうしが縦方向に配置されていた場合、そのオブジェクトの描画内容には縦方向の方向性が含まれている可能性が高い。ＲＴＬ言語において、描画内容を左右反転する必要があるのは、内部に左右方向の方向性を備えている場合であるため、これらのオブジェクトに関しては不要な反転描画を適用しないようにする。最後に、描画部２０３は、ステップＳ６０９において、これまでに決定した反転描画対象オブジェクトの情報を利用して全オブジェクトを描画し、ディスプレイ１０３を介して利用者に提示する。もちろん、Ｓ６０７，Ｓ６０８での判定を省くこともできる。Ｓ６０４で記憶した反転描画対象オブジェクトを全てＳ６０９の描画対象にしても良い。その他、Ｓ６０７、Ｓ６０８で反転描画対象オブジェクトを絞る代わりに、図４に情報を追加し、左右でペアとなるイベント名を規定しても良い。それら左右のペアが存在すると規定されたオブジェクトを反転描画対象オブジェクトとすることもできる。
【００２７】
図７は、本実施形態における描画処理のフローチャートである。本フローチャートに記載された各ステップは、すべて描画部２０３によって実行される。はじめに、描画部２０３は、ステップＳ７００において、描画対象をもっとも奥のオブジェクトに設定する。奥のオブジェクトについては、Ｓ６０１で説明した通りである。次に、当該オブジェクトが、図６で示したフローチャートに従って決定された反転描画対象オブジェクトか否かを判定する。ここで、反転描画対象でなかった場合（ステップＳ７０１でＮｏ）、ステップＳ７０３において、そのままオブジェクトを描画する。一方、反転描画対象オブジェクトであった場合（ステップＳ７０１でＮｏ）、ステップＳ７０２において、当該オブジェクトに対してＹ軸反転変換を適用する。そして、ステップＳ７０３において、図３のＲＴＬ表示３０５内のボタン３０１，３０２のように、位置だけでなく、描画内容の左右反転を適用したオブジェクトを描画する。次に、描画部２０３は、ステップＳ７０４において、全オブジェクトの描画が完了したか否かを判定する。まだ未描画のオブジェクトが残っている場合、ステップＳ７０５において、描画対象を１つ手前のオブジェクトに設定、ステップＳ７０１に戻る。一方、全オブジェクトの描画が完了していた場合（ステップＳ７０４でＹｅｓ）、そのまま描画処理を終了する。
【００２８】
以上で説明した本発明の実施形態によれば、ＧＵＩ開発者の作業負荷を減らして、ＲＴＬ言語の表示時の反転描画の対象オブジェクトを決定し、描画に反映することができる。これにより、開発者の作業負荷や作業ミスの発生頻度を低減することが可能となる。
【００２９】
なお、本発明は、図３で示したＧＵＩの内容や、表示言語に限定されるものではない。ＬＴＲ言語とＲＴＬ言語のそれぞれで表示するＧＵＩであれば、どのようなものであっても良い。また、本実施形態では、オブジェクトに関連付けられる動作として、図４で示したイベント送信の例を説明したが、本発明はそれらの具体的な動作には限定されない。その内容を基に遷移動作か否か決定可能であればどのようなものであっても良く、例えば、一連の動作を定義した関数などであっても良い。さらに、本実施形態では、反転描画対象決定部２０２の処理をカメラ機器上で実行する例を示したが、必ずしも機器上で行う必要はない。カメラ機器の外部で反転描画対象決定部２０２の各処理を行った上で、その結果をＲＯＭ１０１に格納しておいても良い。
【００３０】
［他の実施形態］
実施形態１では、反転描画対象オブジェクトの決定精度を向上するために、水平方向に位置する他の反転描画対象オブジェクトの有無や距離によって除外処理を行ったが、他の条件を利用しても良い。例えば、オブジェクトの表示内容に反転描画不可要素が含まれているか否かを条件としても良い。反転描画不可要素の一例として、文字列が挙げられる。オブジェクトの内部に文字列を含んでいる場合、左右反転描画を行うと利用者が解読不可能となるため、他の条件に関わらず、反転描画対象から除外する。他の例では、全世界共通のデザインで使用するロゴのアイコンなども、反転描画不可要素に定めても良い。この場合、図６で示したレイアウト処理のフローチャートにおいて、ステップＳ６０２の後、当該オブジェクトの表示内容に反転描画不可要素が含まれるか否かを判定し、含まれている場合はＳ６０３とＳ６０４の処理を行わないようにすれば良い。
【００３１】
以上、実施形態を詳述したが、本発明は上述の実施形態に限定されるのではなく、本発明の趣旨を逸脱しない限りにおいて適宜変更が可能である。
【００３２】
本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００３３】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００３４】
３００  ＬＴＲ表示
３０１  ＰＲＥＶボタン
３０２  ＮＥＸＴボタン
３０３  第一項目ラベル
３０４  第一値ラベル
３０５  ＲＴＬ表示
【図１】
2019056729.tif 000003
【図２】
2019056729.tif 000004
【図３】
2019056729.tif 000005
【図４】
2019056729.tif 000006
【図５】
2019056729.tif 000007
【図６】
2019056729.tif 000008
【図７】
2019056729.tif 000009