(57)【要約】【課題】表示する値が設定されていないコントロールに対して、画面レイアウトを自動調整することができる仕組みを提供すること。【解決手段】予め生成された、画面コントロールを含む画面レイアウトファイルを指定する画面レイアウト指定手段と、予め生成された、画面コントロールに表示するための値が含まれるリソースファイルを指定するリソースファイル指定手段と、前記画面レイアウトに含まれるコントロール識別情報と、前記リソースファイルに含まれるコントロール識別情報とに従って、値のないコントロールを特定するコントロール特定手段と、前記コントロール特定手段で特定されたコントロールのレイアウトを調整するべく、前記コントロールに対して、サンプル値の入力を受け付ける値入力手段と、前記値入力手段で入力された値に従って、前記コントロールを含む画面レイアウトを調整する調整手段とを備える画面レイアウトの調整をするための情報処理装置。【選択図】図２
2014099003.tif 000002
【特許請求の範囲】
【請求項１】
画面レイアウトの調整をするための情報処理装置であって、
予め生成された、画面コントロールを含む画面レイアウトファイルを指定する画面レイアウト指定手段と、
予め生成された、画面コントロールに表示するための値が含まれるリソースファイルを指定するリソースファイル指定手段と、
前記画面レイアウトに含まれるコントロール識別情報と、前記リソースファイルに含まれるコントロール識別情報とに従って、値のないコントロールを特定するコントロール特定手段と、
前記コントロール特定手段で特定されたコントロールのレイアウトを調整するべく、前記コントロールに対して、サンプル値の入力を受け付ける値入力手段と、
前記値入力手段で入力された値に従って、前記コントロールを含む画面レイアウトを調整する調整手段と
を備えることを特徴とする情報処理装置。
【請求項２】
調整対象言語を指定する言語指定手段と、
予め生成されたリソースファイルの言語と、前記サンプル値と、調整対象言語と、言語における文字伸張率に従って、コントロールのサイズを算出する算出手段と
を更に備え、
前記調整手段は、前記算出手段で算出されたサイズに従って、前記コントロールを含む画面レイアウトを調整することを特徴とする請求項２に記載の情報処理装置。
【請求項３】
調整前の画面レイアウトと、前記調整手段で調整された画面レイアウトをプレビューするプレビュー手段
を更に備えることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記調整手段で調整した画面レイアウトの保存方法を指定する保存方法指定手段と、
前記保存方法指定手段で、共通の画面レイアウトとして保存する保存方法が指定された場合、前記調整手段で調整した画面レイアウトの画面レイアウトファイルを生成し、言語ごとの画面レイアウトとして保存する保存方法が指定された場合に、前記言語指定手段で指定された言語にのみ対応する画面レイアウトファイルを生成する生成手段と
を更に備えることを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
画面レイアウトの調整をするための情報処理装置の処理方法であって、
前記情報処理装置が、
予め生成された、画面コントロールを含む画面レイアウトファイルを指定する画面レイアウト指定ステップと、
予め生成された、画面コントロールに表示するための値が含まれるリソースファイルを指定するリソースファイル指定ステップと、
前記画面レイアウトに含まれるコントロール識別情報と、前記リソースファイルに含まれるコントロール識別情報とに従って、値のないコントロールを特定するコントロール特定ステップと、
前記コントロール特定ステップで特定されたコントロールのレイアウトを調整するべく、前記コントロールに対して、サンプル値の入力を受け付ける値入力ステップと、
前記値入力ステップで入力された値に従って、前記コントロールを含む画面レイアウトを調整する調整ステップと
を実行することを特徴とする処理方法。
【請求項６】
画面レイアウトの調整をするための情報処理装置のプログラムであって、
前記情報処理装置を、
予め生成された、画面コントロールを含む画面レイアウトファイルを指定する画面レイアウト指定手段と、
予め生成された、画面コントロールに表示するための値が含まれるリソースファイルを指定するリソースファイル指定手段と、
前記画面レイアウトに含まれるコントロール識別情報と、前記リソースファイルに含まれるコントロール識別情報とに従って、値のないコントロールを特定するコントロール特定手段と、
前記コントロール特定手段で特定されたコントロールのレイアウトを調整するべく、前記コントロールに対して、サンプル値の入力を受け付ける値入力手段と、
前記値入力手段で入力された値に従って、前記コントロールを含む画面レイアウトを調整する調整手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
画面レイアウト調整可能な情報処理装置と、その処理方法及びプログラムに関する。
【背景技術】
【０００２】
一般的に、多言語対応アプリケーションの画面を設計する際に、１つの画面レイアウトを作成する。その画面レイアウトに表示するための文字データを記憶するリソースファイルを言語ごとに作成することが行われる。このリソースファイルは、キー・バリュー（値）のペアで構成されている。つまり、ボタンなどのコントロール（キー）に対して、ボタンに表示する文字列（バリュー）が設定されている。
【０００３】
また、同じ意味の文字列は、言語によってその文字列の長さは異なることがある。そのため、アプリケーションの複数の言語に対応（多言語対応）において、設計者が画面レイアウトを設計する際には、表示文字がメニューやテキストボックスなどのＵＩ部品（以降、ＵＩコントロール）に収まるように、全ての対応言語の表示文字の長さを考慮し、そのＵＩコントロールのサイズ、また画面全体の配置の設計を行っている。
【０００４】
このような、多言語対応に関する技術として、特許文献１のシステムでは、リソースファイルから取得した文字列の長さに応じてその対応ＵＩコントロールの自動設定を行うシステムで、画面表示時のＵＩコントロールの自動調整が可能となっている。また、上記特許文献２のシステムでは、画面に配置されたＵＩコントロールに設定された文字列を複数の言語に対応付けた多言語文字列からその最大サイズを算出し、その画面レイアウトを自動調整するシステムで、ＵＩコントロールのサイズを変更する手段、文字列の表示サイズを変更する手段とＵＩコントロールの位置を変更する手段が提供されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１８６７９０号公報
【特許文献２】特開２００９−５３９４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、一般的に、画面上のＵＩコントロールには、表示文字が画面設計時点で用意している表示用ＵＩコントロール（例えば、ラベル、ボタン）と、画面の利用者が情報を入力するための入力用ＵＩコントロール（例えば、テキストボックス）の２種類がある。特に、テキストボックスのような入力用ＵＩコントロールについて、その対応している表示文字が画面のリソースファイルに一般的に定義されていない。ＵＩコントロールの表示文字リソースファイルに定義されていない場合、上記特許文献１や特許文献２ではＵＩコントロールの自動調整を行うことができない場合が存在する。
【０００７】
また、上記特許文献１や特許文献２では、複数の言語に対して画面のレイアウトを調整するため、対象とする全ての言語のリソースファイルを事前に準備する必要がある。しかし、一般的に画面を設計する際に、その対応する全ての言語のリソースファイルがまだ用意されていないケースが存在する。この場合、上記特許文献１や特許文献２では、全ての対象言語に対するＵＩコントロールの自動調整を行うことができない場合が存在する。
【０００８】
そこで、本発明の目的は、表示する値が設定されていないコントロールに対して、画面レイアウトを自動調整することができる仕組みを提供することである。
【課題を解決するための手段】
【０００９】
本目的を達成するための発明は、画面レイアウトの調整をするための情報処理装置であって、予め生成された、画面コントロールを含む画面レイアウトファイルを指定する画面レイアウト指定手段と、予め生成された、画面コントロールに表示するための値が含まれるリソースファイルを指定するリソースファイル指定手段と、前記画面レイアウトに含まれるコントロール識別情報と、前記リソースファイルに含まれるコントロール識別情報とに従って、値のないコントロールを特定するコントロール特定手段と、前記コントロール特定手段で特定されたコントロールのレイアウトを調整するべく、前記コントロールに対して、サンプル値の入力を受け付ける値入力手段と、前記値入力手段で入力された値に従って、前記コントロールを含む画面レイアウトを調整する調整手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、表示する値が設定されていないコントロールに対して、画面レイアウトを自動調整することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の画面レイアウト自動調整システムとしての情報処理装置のハードウェア構成の一例を示す構成図である。
【図２】情報処理装置の機能部を示す機能ブロック図である。
【図３】本発明における情報処理装置の画面レイアウト自動調整処理の一例を示すフローチャートである。
【図４】本発明における情報処理装置の原文文字サイズの算出処理の一例を示すフローチャートである。
【図５】本発明における情報処理装置の訳文の最大サイズの算出処理の一例を示すフローチャートである。
【図６】本発明における情報処理装置の訳文の対象言語毎のＵＩコントロールのレイアウト自動調整処理の一例を示すフローチャートである。
【図７】本発明における情報処理装置の画面仕様情報とＵＩコントロール仕様情報の一例を示すデータ構成図である。
【図８】本発明における情報処理装置の調整グループ定義情報とＵＩコントロール所属グルーブ情報を示すデータ構成図である。
【図９】本発明における情報処理装置におけるＵＩコントロールの表示文字情報の一例を示すデータ構成図である。
【図１０】本発明における情報処理装置の文字列伸張率情報の一例を示すデータ構成図である。
【図１１】本発明における情報処理装置の調整対象画面の調整前の元画面の一例を示す画面イメージ図である。
【図１２】本発明における情報処理装置の調整対象画面の元画面の画面ファイルのファイル構成とその画面ファイルのデータ構成の一例を示すデータ構成図である。
【図１３】本発明における情報処理装置の調整対象画面の調整後画面の画面ファイルのファイル構成とその画面ファイルのデータ構成の一例を示すデータ構成図である。
【図１４】本発明における情報処理装置の画面レイアウト調整の調整設定画面の一例を示す画面イメージ図である。
【図１５】本発明における情報処理装置の画面レイアウト調整の調整設定画面の一例を示す画面イメージ図である。
【図１６】本発明における情報処理装置の画面レイアウト調整の調整設定画面の一例を示す画面イメージ図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
図１は、本発明の情報処理装置１００のハードウェア構成の一例を示すブロック図である。
【００１３】
図１において、ＣＰＵ１０１は、システムバス１０４に接続される後述の各デバイスやコントローラを統括的に制御する。また、ＲＯＭ１０３あるいは外部メモリ１１１には、ＣＰＵ１０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。ＲＡＭ１０２は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。
【００１４】
ＣＰＵ１０１は、処理の実行に際して必要なプログラム等をＲＡＭ１０２にロードして、プログラムを実行することで各種動作を実現するものである。また、入力コントローラ（入力Ｃ）１０５は、キーボードやポインティングデバイス等で構成される入力装置１０９からの入力を制御する。ビデオコントローラ（ＶＣ）１０６は、ディスプレイ装置１１０等の表示装置への表示を制御する。ディスプレイ装置は、例えばＣＲＴディスプレイや液晶ディスプレイ等で構成される。
【００１５】
メモリコントローラ（ＭＣ）１０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフロッピーディスク（登録商標  ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュメモリ等の外部メモリ１１１へのアクセスを制御する（コンパクトフラッシュは登録商標）。
【００１６】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）１０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。
【００１７】
なお、ＣＰＵ１０１は、例えばＲＡＭ１０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ装置１１０上での表示を可能としている。また、ＣＰＵ１０１は、ディスプレイ装置１１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００１８】
本実施形態にかかる各種端末が後述する各種処理を実行するために用いられるプログラムは外部メモリ１１１に記録されており、必要に応じてＲＡＭ１０２にロードされることによりＣＰＵ１０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ１１１に格納されている。
次に、図２を用いて、本発明の画面レイアウトの調整をするための情報処理装置１００の機能ブロック図について説明する。
画面レイアウト指定部２０１は、予め生成された、画面コントロールを含む画面レイアウトファイルを指定する機能部である。
リソースファイル指定部２０２は、予め生成された、画面コントロールに表示するための値が含まれるリソースファイルを指定する機能部である。
【００１９】
コントロール特定部２０３は、前記画面レイアウトに含まれるコントロール識別情報と、前記リソースファイルに含まれるコントロール識別情報とに従って、値のないコントロールを特定する機能部である。
【００２０】
値入力部２０４は、コントロール特定部２０３で特定されたコントロールのレイアウトを調整するべく、前記コントロールに対して、サンプル値の入力を受け付ける機能部である。
【００２１】
調整部２０５は、値入力部２０４で入力された値に従って、前記コントロールを含む画面レイアウトを調整する機能部である。また、後述の算出部２０７で算出されたサイズに従って、前コントロールを含む画面レイアウトを調整する機能部である。
言語指定部２０６は、調整対象言語を指定する機能部である。
【００２２】
算出部２０７は、予め生成されたリソースファイルの言語と、前記サンプル値と、調整対象言語と、言語における文字伸張率に従って、コントロールのサイズを算出する機能部である。
プレビュー部２０８は、調整前の画面レイアウトと、前記調整手段で調整された画面レイアウトをプレビューする機能部である。
保存方法指定部２０９は、前記調整部２０５で調整した画面レイアウトの保存方法を指定する機能部である。
【００２３】
生成部２１０は、前記保存方法指定部２０９で、共通の画面レイアウトとして保存する保存方法が指定された場合、前記調整部２０５で調整した画面レイアウトの画面レイアウトファイルを生成し、言語ごとの画面レイアウトとして保存する保存方法が指定された場合に、前記言語指定部２０６で指定された言語にのみ対応する画面レイアウトファイルを生成する機能部である。
【００２４】
以下、本実施形態における画面レイアウト自動調整システムの全体の流れを説明する。ここでは、例えば．ＮＥＴ  ＦｒａｍｅｗｏｒｋのＷｉｎｄｏｗｓフォームアプリケーションを例にして説明する（Ｗｉｎｄｏｗｓは登録商標）。
まず、図３を参照して、本実施形態の画面レイアウト自動調整システム（情報処理装置）における画面レイアウト自動調整処理について説明する。
【００２５】
ステップＳ３０１では、ＣＰＵ１０１が、画面設計者の指示に従って調整対象とする画面をシステムに保存する。例えば、図１１の１１００の画面をＷｉｎｄｏｗｓフォームアプリケーションで設計し、ユーザの指示に従って保存した場合、図１２の１２００に示すように、画面レイアウトファイル１２０１、データ操作や画面イベントなどを制御する画面ロジックファイル１２０２と画面リソースファイル１２０３のファイル群として保存される。
【００２６】
ステップＳ３０２では、ＣＰＵ１０１が、画面レイアウトファイルのパスを指定する図１４の自動調整設定画面１４０１を表示する。画面設計者が画面レイアウトファイルのパスを指定し、「次へ」ボタンを押下した場合、ステップＳ３０３に進む。「キャンセル」ボタンを押下した場合または「画面を閉じる」ボタンを押下した場合は、処理を終了する。
【００２７】
ステップＳ３０３では、ＣＰＵ１０１が、自動調整設定画面１４０１によって設定された画面レイアウトファイルのパスを受け取る。画面レイアウト指定部２０１による、予め生成された、画面コントロールを含む画面レイアウトファイルを指定する処理の一例を示すステップである。
【００２８】
ステップＳ３０４では、ＣＰＵ１０１が、ステップＳ３０３から受け渡れた画面レイアウトファイルのパスより画面レイアウトファイルを読み込む。画面レイアウトファイル内で定義されている画面の幅と高さの情報を参照して、図７の画面仕様情報７００を作成し、その項目７０１と項目７０２を設定する。
【００２９】
画面レイアウトファイルファイル内に定義されている全てのＵＩコントロール、及び各々のＵＩコントロールのコントロールタイプ、フォント名とフォントサイズ、幅と高、Ｘ位置とＹ位置を参照して、ＵＩコントロール仕様情報７１００を作成し、その項目７１０１、項目７１０２、項目７１０４、項目７１０５、項目７１０６、項目７１０７、項目７１０８と項目７１０９を設定する。そして、項目７１０９の値によって、各データが所属する行を判断し、該当データの項目７１０３を設定する。例えば、図１２の１２００の画面レイアウトファイル１２０１を読み込んだ内容について１２１０を例にして説明する。
【００３０】
１２１０では、画面の幅と高さ（１２１５）、画面に含まれているＵＩコントロール「ｂｕｔｔｏｎ１」のコントロールタイプ（１２１１）、フォントサイズ（１２１４）、幅と高（１２１２）、Ｘ位置とＹ位置（１２１３）の定義の一例を示している。これらの情報を参照して、画面仕様情報７００とＵＩコントロール仕様情報７１００を作成し、７００の項目７０１と項目７０２、７１００の項目７１０１から項目７１０９までを設定する。
【００３１】
ステップＳ３０５では、ＣＰＵ１０１が、ＵＩコントロール仕様情報７１００を基づいて、調整グループを設定する図１４の自動調整設定画面１４０２を表示する。画面設計者が「グループを追加」ボタンを押下した場合、ステップＳ３０６に進む。調整グループの設定が完了し、「次へ」ボタンを押下した場合、ステップＳ３０７に進む。「戻る」ボタンを押下した場合、ステップＳ３０２に戻る。「画面を閉じる」ボタンを押下した場合は、処理を終了とする。
【００３２】
ステップＳ３０６では、ＣＰＵ１０１が、調整グループ編集画面１４０３を表示し、調整グループに含まれるＵＩコントロールの設定を受け付ける。「完了」ボタンを押下した場合、調整グループの内容を保存し、ステップＳ３０５に戻る。「キャンセル」ボタンまたは「画面を閉じる」を押下した場合、調整グループの内容を保存せず、ステップＳ３０５に戻る。
ステップＳ３０７では、ＣＰＵ１０１が、自動調整設定画面１４０２と調整グループ編集画面１４０３によって設定された調整グループを受け取る。
【００３３】
ステップＳ３０８では、ＣＰＵ１０１が、ステップＳ３０７から受け取った調整グループ情報をベースに、調整グループ定義情報８００とＵＩコントロール所属調整グループ情報８１０を作成する。例えば、調整グループが自動調整設定画面１４０２のように指定された場合、調整グループ定義情報８００に３つのグループ（項目８０１）が作成され、各々のグループの同タイプのＵＩコントロールの調整ルール（項目８０２と項目８０３）が設定されている。また、各グループに所属するＵＩコントロールはＵＩコントロール所属調整グループ情報８１０に示すように保存されている。
【００３４】
ステップＳ３０９では、ＣＰＵ１０１が、原文リソースを指定する図１５の自動調整設定画面１５０１を表示する。画面設計者によって、原文リソースファイルのパスと原文言語の指定が完了し、「次へ」ボタンを押下した場合、ステップＳ３１０に進む。「戻る」ボタンを押下した場合、ステップＳ３０５に戻る。「画面を閉じる」ボタンを押下した場合は、処理を終了する。
【００３５】
ステップＳ３１０では、ＣＰＵ１０１が、自動調整設定画面１５０１によって設定された原文リソースファイルのパスと原文言語を受け取る。リソースファイル指定部２０２による、予め生成された、画面コントロールに表示するための値が含まれるリソースファイルを指定する処理の一例を示すステップである。
【００３６】
ステップＳ３１１は、ＣＰＵ１０１が、ステップＳ３１０で受け取った原文リソースファイルのパスと原文言語を用いて、ＵＩコントロールの原文表示文字サイズを算出する処理である。この処理の詳細については、図４で後述する。
【００３７】
ステップＳ３１２では、ＣＰＵ１０１が、ＵＩコントロールの表示文字情報９００の項目９０２の値が「Ｎｏ」となっているデータがあるかを確認し、項目９０２の値が「Ｎｏ」となっているデータがある場合にはステップＳ３１３に進む。項目９０２の値が「Ｎｏ」となっているデータがない場合にはステップＳ３１６に進む。コントロール特定部２０３による、画面レイアウトに含まれるコントロール識別情報と、前記リソースファイルに含まれるコントロール識別情報とに従って、値のないコントロールを特定する処理の一例を示すステップである。
【００３８】
ステップＳ３１３では、ＣＰＵ１０１が、表示文字が未指定のＵＩコントロールの調整基準を指定する図１５の自動調整設定画面１５０２が表示される。画面設計者がＵＩコントロールの表示文字のサンプルの入力は完了し、「次へ」ボタンを押下した場合、ステップＳ３１４に進む。「戻る」ボタンを押下した場合、ステップＳ３１０に戻る。「画面を閉じる」ボタンを押下した場合は、処理を終了する。
【００３９】
ステップＳ３１４では、ＣＰＵ１０１が、自動調整設定画面１５０２に設定された各々のＵＩコントロールとその表示文字の文字サイズのペア情報を受け取る。例えば、画面１５０２のように、（ｔｅｘｔｂｏｘ１，１６）と（ｔｅｘｔｂｏｘ２，３６）を受け取る。値入力部２０４による、特定されたコントロールのレイアウトを調整するべく、前記コントロールに対して、サンプル値の入力を受け付ける処理の一例を示すステップである。
【００４０】
ステップＳ３１５では、ＣＰＵ１０１が、ステップＳ３１４で受け取ったＵＩコントロールとその文字サイズのペア情報を用いて、ＵＩコントロールの表示文字情報９００の項目９０１の値とペア情報のＵＩコントロールと一致するデータが探索され、そのデータの項目９０３をペアデータの文字サイズに設定する。例えば、（ｔｅｘｔｂｏｘ１，  １６）のペア情報の場合、ＵＩコントロールの表示文字情報９００の４行目のデータと一致するため、その４行目のデータの項目９０３を「１６」に設定する。本ステップの処理が終了した時点で、ＵＩコントロールの表示文字情報９００の各々のデータの項目９０１から９０３が全て設定され、図９の９１０に示すようになっている。
【００４１】
ステップＳ３１６では、ＣＰＵ１０１が、調整後の対象言語を指定する自動調整設定画面１６０１が表示される。画面設計者による対象言語、調整後の画面の最小フォントサイズ及びＵＩコントロール間の間隔の指定が完了し、「自動調整」ボタンを押下した場合、ステップＳ３１７に進む。「戻る」ボタンを押下した場合、ステップＳ３１３に戻る。「画面を閉じる」ボタンを押下した場合は、処理を終了する。
【００４２】
ステップＳ３１７では、ＣＰＵ１０１が、自動調整設定画面１６０１によって設定された対象言語、調整後の画面の最小フォントサイズ及びＵＩコントロール間の間隔を受け取る。言語指定部２０６による、調整対象言語を指定する処理の一例を示すステップである。
【００４３】
ステップＳ３１８は、ステップＳ３１７で受け取った対象言語を用いて、訳文の最大サイズを算出する処理である。この処理の詳細については、図５で後述する。算出部２０７による、予め生成されたリソースファイルの言語と、前記サンプル値と、調整対象言語と、言語における文字伸張率に従って、コントロールのサイズを算出する処理の一例を示すステップである。
【００４４】
ステップＳ３１９は、画面レイアウトの自動調整処理である。この処理の詳細については、図６で後述する。調整部２０５による、入力された値に従って、前記コントロールを含む画面レイアウトを調整する処理の一例を示すステップである。また、調整部２０５による、算出部２０７で算出されたサイズに従って、コントロールを含む画面レイアウトを調整する処理の一例を示すステップである。
【００４５】
ステップＳ３２０では、ＣＰＵ１０１が、画面仕様情報７００とＵＩコントロール仕様情報７１００を用いて、原文言語と訳文の対象言語毎の画面レイアウトファイルの一時ファイルを生成し、調整後画面のプレビューの自動調整設定画面１６０２を表示する。画面設計者が画面レイアウトの保存先と保存方法の指定が完了し、「保存」ボタンを押下した場合、ステップＳ３２１に進む。「戻る」ボタンを押下した場合、ステップＳ３１６に戻る。「画面を閉じる」ボタンを押下した場合は、処理を終了する。プレビュー部２０８による、調整前の画面レイアウトと、前記調整部２０５で調整された画面レイアウトをプレビューする処理の一例を示すステップである。
【００４６】
ステップＳ３２１では、ＣＰＵ１０１が、自動調整設定画面１６０２によって設定された画面レイアウトの保存先と保存方法を受け取る。保存方法指定部２０９による、調整した画面レイアウトの保存方法を指定する処理の一例を示すステップである。
【００４７】
ステップＳ３２２では、ＣＰＵ１０１が、ステップＳ３２１で受け取った保存方法を確認し、保存方法は個別レイアウトとして保存の場合にはステップＳ３２３に進む。保存方法は共通レイアウトとして保存の場合にはステップＳ３２４に進む。
【００４８】
ステップＳ３２３では、ＣＰＵ１０１が、ステップＳ３２０で生成された訳文の対象言語毎の調整後画面レイアウトの一時ファイルをステップＳ３２１で受け取った保存先に保存したら、全てのデータを削除し、処理を終了する。例えば、図１３の１３１０に示すように、原文言語用の画面レイアウトファイルと別に、ドイツ語用の調整後画面レイアウトファイル１３１１が保存されている。ファイル１３１１の内容は１３２０に示しているようになっている。尚、訳文の対象言語が複数ある場合、新規作成の調整後画面レイアウトファイルもその言語数分に生成される。
【００４９】
ステップＳ３２２、ステップＳ３２３は、生成部２１０による、共通の画面レイアウトとして保存する保存方法が指定された場合、調整した画面レイアウトの画面レイアウトファイルを生成し、言語ごとの画面レイアウトとして保存する保存方法が指定された場合に、指定された言語にのみ対応する画面レイアウトファイルを生成する処理の一例を示すステップである。
【００５０】
ステップＳ３２４では、ＣＰＵ１０１が、ステップＳ３２１で受け取った保存先に画面レイアウトファイルを保存する。原文言語用の画面レイアウトファイルパスと保存先が同じである場合、原文言語用の画面レイアウトファイルを上書きする。そして、全てのデータを削除し、処理を終了する。
次に図４を用いて、ステップＳ３１１で原文文字のサイズの算出処理について説明する。
【００５１】
ステップＳ４０１は、ループ始端である。ＵＩコントロールの表示文字情報９００の各々のデータに対して、ステップＳ４０２からステップＳ４０５の処理を行う。
【００５２】
ステップＳ４０２では、ＣＰＵ１０１が、ＵＩコントロールの表示文字情報９００の現在のデータの項目９０１がリソースファイル１２３０の項目１２３１に存在しているかを確認し、存在している場合にはステップＳ４０３に進む。存在していない場合にはステップＳ４０５に進む。例えば、現在のデータが「ｌａｂｅｌ２」の時、現在のデータがリソースファイル１２３０の項目１２３１に存在しているため、ステップＳ４０３に進む。現在のデータは「ｔｅｘｔｂｏｘ１」の時、現在のデータがリソースファイル１２３０の項目１２３１に存在していないため、ステップＳ４０５に進む。
ステップＳ４０３では、ＣＰＵ１０１が、ＵＩコントロールの表示文字情報９００の現在のデータの項目９０２を「Ｙｅｓ」に設定する。
【００５３】
ステップＳ４０４では、ＣＰＵ１０１が、リソースファイル１２３０の項目１２３２の値の文字サイズを計算し、表示文字サイズデータ９００の現在のデータの項目９０３をその計算結果に設定する。例えば、現在のデータは「ｌａｂｅｌ２」の時、リソースファイル１２３０の項目１２３１の値が「ｌａｂｅｌ２」である行の項目１２３２の値は「Ｎａｍｅ」であるため、その項目１２３２の値の文字サイズが「４」と計算される。そして、表示文字サイズデータ９００の現在のデータ「ｌａｂｅｌ２」の項目９０３を「４」に設定する。
ステップＳ４０５では、ＣＰＵ１０１が、ＵＩコントロールの表示文字情報９００の現在のデータの項目９０２を「Ｎｏ」に設定する。
【００５４】
ステップＳ４０６は、ステップＳ４０１に対応するループ終端である。ＵＩコントロールの表示文字情報９００に含まれるすべてのデータについてステップＳ４０２からステップＳ４０５の処理が終わるとループが終了する。このループが終了した時点で、リソースファイル１２３０の全てのデータを参照して、ＵＩコントロールの表示文字情報９００の対応している各々のデータの項目９０２と項目９０３が設定され、図９の９００に示すようになっている。
次に図５を用いて、ステップＳ３１８で訳文の最大サイズの算出処理について説明する。
【００５５】
ステップＳ５０１は、ループ始端である。ＵＩコントロールの表示文字情報９１０の各々のデータに対して、ステップＳ５０２からステップＳ５０６の処理を行う。
【００５６】
ステップＳ５０２は、ループ始端である。ステップＳ３１７から受け渡された訳文の対象言語の各々の言語に対して、ステップＳ５０３からステップＳ５０５の処理を行う。
【００５７】
ステップＳ５０３では、ＣＰＵ１０１が、ＵＩコントロールの表示文字情報９１０の現在のデータの項目９１３の値を取得する。例えば、ＵＩコントロールの表示文字情報９１０の現在のデータは「ｌａｂｅｌ２」の時、現在のデータの項目９１３の値「４」を取得する。
【００５８】
ステップＳ５０４では、ＣＰＵ１０１が、文字列伸張率情報１０００を参照して、ステップＳ５０３で取得した値が項目１００１の値の範囲内である行が探索され、その行の現在の対象言語の対応項目の値より現在の対象言語の訳文の最大サイズを計算する。例えば、現在のデータの項目９１３の値「４」は文字列伸張率情報１０００の１行目に該当し、現在の対象言語は「ドイツ語」の時、文字列伸張率情報１０００の項目１００５の値「１００％」である。そうすると、「訳文の最大サイズ＝原文文字サイズ＊（１＋文字列伸張率）」の計算式より計算して、現在のデータのドイツ語の訳文の最大サイズは「８」となる。なお、文字列伸張率情報は、不図示のサーバに記憶されており、サーバで計算する構成であってもよい。また、文字列伸張率情報をサーバから取得して、計算する構成であってもよい。
【００５９】
ステップＳ５０５では、ＣＰＵ１０１が、ＵＩコントロールの表示文字情報９１０の現在のデータの対応項目（項目９１４−項目９１７）をステップＳ５０４より計算された結果に設定する。例えば、現在の対象言語は「ドイツ語」の時、現在のデータ「ｌａｂｅｌ２」の項目９１７を「８」に設定する。
【００６０】
ステップＳ５０６は、ステップＳ５０２に対応するループ終端である。訳文の対象言語に含まれるすべての言語に対して、ステップＳ５０３からステップＳ５０５の処理が終わるとループが終了する。このループが終了した時点で、ＵＩコントロールの表示文字情報９１０の現在のデータの現在の対象言語と対応している項目（項目９１４−項目９１７）が設定されている。
【００６１】
ステップＳ５０７は、ステップＳ５０１に対応するループ終端である。ＵＩコントロールの表示文字情報９１０に含まれている全てのデータに対して、ステップＳ５０２からステップＳ５０６の処理が終わるとループが終了する。このループが終了した時点で、ＵＩコントロールの表示文字情報９１０の全てのデータの訳文の対象言語と対応している項目（項目９１４−項目９１７）が設定され、図９の９２０に示すようになっている。
【００６２】
次に図６を用いて、ステップＳ３１９で訳文の対象言語毎のＵＩコントロールのレイアウト自動調整処理について説明する。なお、図６の処理は、ＣＰＵ１０１が実行するものとする。
【００６３】
ステップＳ６０１では、画面仕様情報７００とＵＩコントロール仕様情報７１００の訳文の対象言語に対応している項目の値を設定する。つまり、画面仕様情報７００の項目７０３を項目７０２の値に設定する。ＵＩコントロール仕様情報７１００の項目７１００から項目７１１５までを、項目７１０４から項目７１０９までのそれぞれの値に設定する。
【００６４】
ステップＳ６０２では、各ＵＩコントロールに対して、ＵＩコントロールの表示文字情報９２０の訳文の対象言語に対応している項目（項目９２４−項目９２７）の値と、ＵＩコントロール仕様情報７１００のフォント情報（項目７１１０と項目７１１１）を参照して、各ＵＩコントロールの最適な幅を算出する。例えば、ＵＩコントロールの表示文字情報９２０の項目９２７とＵＩコントロール仕様情報７１００の項目７１１０と項目７１１１の情報より、ＵＩコントロール「ｂｕｔｔｏｎ１」の場合、そのＵＩコントロールのドイツ語の最大サイズ「１１」、フォント情報（Ａｒｉａｌ，１３）を参照して最適な幅は「１１５」と算出される。ＵＩコントロール「ｂｕｔｔｏｎ２」の場合、そのＵＩコントロールのドイツ語の最大サイズ「４」、フォント情報（Ａｒｉａｌ，１３）を参照して最適な幅は「４２」と算出される。
【００６５】
ステップＳ６０３では、ステップＳ６０２で算出された最適な幅はＵＩコントロール仕様情報７１００の該当データの項目７１１２の値より大きいであるかを判断し、計算結果はＵＩコントロール仕様情報７１００の該当データの項目７１１２の値より大きい場合、ステップ６０４に進む。その以外の場合、ステップＳ６０５に進む。例えば、ＵＩコントロール「ｂｕｔｔｏｎ１」の場合、算出された最適な幅「１１５」はその項目７１１２の値「７５」より大きいため、ステップ６０４に進む。ＵＩコントロール「ｂｕｔｔｏｎ２」の場合、算出された最適な幅「４２」はその項目７１１２の値「７５」より小さいため、ステップＳ６０５に進む。
【００６６】
ステップＳ６０４では、ＵＩコントロール仕様情報７１００の該当データの項目７１１２を算出結果に設定する。例えば、ＵＩコントロール「ｂｕｔｔｏｎ１」の場合、その項目７１１２の値を「１１５」に設定する。
【００６７】
ステップＳ６０５では、ＵＩコントロール仕様情報７１００の項目７１０３の値が一致している全てのＵＩコントロールの幅と画面設計者が指定されたＵＩコントロールの間隔＊（データ数＋１）の合計を計算し、その計算結果が画面仕様情報７００の項目７０１の値より大きいであるかを判断し、計算結果は画面仕様情報７００の項目７０１の値より大きい場合、ステップＳ６０６に進む。その以外の場合、ステップＳ６１１に進む。例えば、ＵＩコントロール仕様情報７１００の項目７１０３の値「１」の時、一致するデータは「ｌａｂｅｌ１」のみである。ＵＩコントロールの幅（項目７１１２）「１４２」と指定されたＵＩコントロールの間隔「５」（図１６の１６０１）の合計は「１５２」となり、画面仕様情報７００の項目７０１の値「３８０」より小さいため、ステップＳ６１１に進む。ＵＩコントロール仕様情報７１００の項目７１０３の値「３」の時、一致するデータは「ｌａｂｅｌ３」と「ｔｅｘｔｂｏｘ２」である。ＵＩコントロールの幅「１１８」、「３６２」、及び指定されたＵＩコントロールの間隔「５」（図１６の１６０１）の合計は「４９５」となり、画面仕様情報７００の項目７０１の値「３８０」より大きいため、ステップＳ６１１に進む。
【００６８】
ステップＳ６０６では、ＵＩコントロール仕様情報７１００の項目７１１１は画面設計者が指定された最小フォントサイズ（図１６の１６０１）より大きいであるかを判断し、ＵＩコントロール仕様情報７１００の項目７１１１は画面設計者が指定された最小フォントサイズより大きい場合、ステップＳ６０７に進む。その以外の場合、ステップＳ６０９に進む。例えば、「ｌａｂｅｌ３」と「ｔｅｘｔｂｏｘ２」の項目７１１１の値は「１１」の時、画面設計者が指定された最小フォントサイズ「１０」より大きいため、ステップＳ６０７に進む。「ｌａｂｅｌ３」と「ｔｅｘｔｂｏｘ２」の項目７１１１の値は「１０」の時、画面設計者が指定された最小フォントサイズ「１０」より大きくないため、ステップＳ６０９に進む。
【００６９】
ステップＳ６０７では、ＵＩコントロール仕様情報７１００の該当データの項目７１１１の値を１減らす。例えば、「ｌａｂｅｌ３」と「ｔｅｘｔｂｏｘ２」の項目７１１１の値を「１１」から「１０」に設定する。
【００７０】
ステップＳ６０８では、ＵＩコントロール仕様情報７１００の該当データの最適の幅を再計算し、項目７１１２に設定する。例えば、「ｌａｂｅｌ３」と「ｔｅｘｔｂｏｘ２」の場合、フォント情報（Ａｒｉａｌ，１０）で算出された最適の幅は「１０５」と「３１８」となる。
【００７１】
ステップＳ６０９では、ＵＩコントロールの幅とその間隔の合計が画面の幅より大きい行に対して、その全てのＵＩコントロールの項目７１１２を項目７１０４の値に設定する。例えば、行「３」の場合、「ｌａｂｅｌ３」と「ｔｅｘｔｂｏｘ２」の幅その間隔の合計「１０５＋３１８＋５＊３＝４３８」が画面の幅「３８０」（７００の項目７０１）より大きいため、「ｌａｂｅｌ３」の項目７１１２を項目７１０４の値「６２」、「ｔｅｘｔｂｏｘ２」の項目７１１２を項目７１０４の値「２９６」に設定する。
【００７２】
ステップＳ６１０では、上記のＵＩコントロールに対して、ＵＩコントロールの表示文字情報９２０の訳文の対象言語に対応している項目（項目９２４−項目９２７）の値と、ＵＩコントロール仕様情報７１００のフォント情報（項目７１１０と項目７１１１）を参照して、各ＵＩコントロールの最適な高さを算出し、項目７１１３に設定する。
ステップＳ６１１は、ループ始端である。調整グループ定義情報８００の各々のデータに対して、ステップＳ６１２からステップＳ６１５の処理を行う。
【００７３】
ステップＳ６１２では、調整グループ定義情報８００の現在のグループの項目８０２の値が「Ｙｅｓ」であるかを判断し、調整グループ定義情報８００の現在のグループの項目８０２の値が「Ｙｅｓ」である場合、ステップＳ６１３に進む。調整グループ定義情報８００の現在のグループの項目８０２の値が「Ｎｏ」である場合、ステップＳ６１４に進む。
【００７４】
ステップＳ６１３では、所属調整グループ情報８１０を参照して、現在のグループに所属するＵＩコントロールの一覧を取得する。現在のグループに所属するＵＩコントロールに対して、ＵＩコントロール仕様情報７１００の同タイプＵＩコントロールの各データの項目７１１２をその項目の最大値に設定する。例えば、現在のグループは「２」の時、所属調整グループ情報８１０を参照して、現在のグループに所属するＵＩコントロールは「ｌａｂｅｌ２、ｌａｂｅｌ３、ｔｅｘｔｂｏｘ１、ｔｅｘｔｂｏｘ２」である。その中、ＵＩコントロール仕様情報７１００を参照して、「ｌａｂｅｌ２」と「ｌａｂｅｌ３」が同タイプであり、「ｔｅｘｔｂｏｘ１」と「ｔｅｘｔｂｏｘ２」が同タイプである。そのため、「ｔｅｘｔｂｏｘ１」と「ｔｅｘｔｂｏｘ２」の項目７１１２をその最大値「２９６」に設定する。
【００７５】
ステップＳ６１４では、調整グループ定義情報８００の現在のグループの項目８０３の値が「Ｙｅｓ」であるかを判断し、調整グループ定義情報８００の現在のグループの項目８０３の値が「Ｙｅｓ」である場合、ステップＳ６１５に進む。調整グループ定義情報８００の現在のグループの項目８０３の値が「Ｎｏ」である場合、ステップＳ６１６に進む。
【００７６】
ステップＳ６１５では、所属調整グループ情報８１０を参照して、現在のグループに所属するＵＩコントロールの一覧を取得する。現在のグループに所属するＵＩコントロールに対して、ＵＩコントロール仕様情報７１００の同タイプＵＩコントロールの各データの項目７１１３をその項目の最大値に設定する。例えば、現在のグループは「３」の時、所属調整グループ情報８１０を参照して、現在のグループに所属するＵＩコントロールは「ｂｕｔｔｏｎ１、ｂｕｔｔｏｎ２」である。その中、ＵＩコントロール仕様情報７１００を参照して、「ｂｕｔｔｏｎ１」と「ｂｕｔｔｏｎ２」が同タイプである。そのため、「ｂｕｔｔｏｎ１」と「ｂｕｔｔｏｎ２」の項目７１１３をその最大値「２５」に設定する。
【００７７】
ステップＳ６１６は、ステップＳ６１１に対応するループ終端である。調整グループ定義情報８００のに含まれている全てのグループに対して、ステップＳ６１３からステップＳ６１５の処理が終わるとループが終了する。このループが終了した時点で、ＵＩコントロール仕様情報７１００の全てのデータに対して、所属するグループの指定された調整ルールに従った調整は完了している。
【００７８】
ステップＳ６１７では、ループ始端である。ＵＩコントロール仕様情報７１００の項目７１０３の重複しない各々のデータに対して、ステップＳ６１８からステップＳ６２１の処理を行う。
【００７９】
ステップＳ６１８では、現在の行の現在のＵＩコントロールの右下位置のＸ位置（項目７１１２＋項目７１１４）とＵＩコントロールの間隔の合計値、及びその隣のＵＩコントロールの左上位置のＸ位置（項目７１１４）を比較し、現在の行の現在のＵＩコントロールの右下位置のＸ位置とＵＩコントロールの間隔の合計値が隣のＵＩコントロールの左上位置のＸ位置の値より大きい場合、ステップＳ６１９に進む。それ以外の場合、ステップＳ６２０に進む。
【００８０】
ステップＳ６１９では、現在の行の全てのＵＩコントロールに対して、画面内に収まるように各ＵＩコントロールのＸ位置を修正する。例えば、現在の行は「２」の時、ＵＩコントロール「ｌａｂｅｌ２」とＵＩコントロール「ｔｅｘｔｂｏｘ１」のＸ位置を図７の７３００の項目７３１４に示すように調整する。
【００８１】
ステップＳ６２０では、現在の行の現在のＵＩコントロールの右下位置のＹ位置（項目７１１３＋項目７１１５）とＵＩコントロールの間隔の合計値、及びその次行のＵＩコントロールの左上位置のＹ位置（項目７１１５）を比較し、現在の行の現在のＵＩコントロールの右下位置のＹ位置とＵＩコントロールの間隔の合計値がその次行のＵＩコントロールの左上位置のＹ位置の値より大きい場合、ステップＳ６２１に進む。それ以外の場合、ステップＳ６２２に進む。
【００８２】
ステップＳ６２１では、現在の行の以降の行の全てのＵＩコントロールに対して、各ＵＩコントロールのＹ位置を修正する。必要の場合、画面仕様情報７００の項目７０３も修正する。例えば、現在の行は「３」の時、その以降の行「４」のＵＩコントロール「ｂｕｔｔｏｎ１」とＵＩコントロール「ｂｕｔｔｏｎ２」のＹ位置を図７の７３００の項目７３１５に示すように調整する。さらに、ＵＩコントロール「ｂｕｔｔｏｎ１」の右下位置（１８０＝Ｙ位置「１３９」＋高さ「４１」）の値が現在の画面の高さ（図７の７００の７０３「１７０」）より大きいため、現在の画面の高さを「１８５」（ＵＩコントロール「ｂｕｔｔｏｎ１」の右下位置「１８０」＋ＵＩコントロールの間隔「５」）に設定する。（図７の７２０の項目７２３）
【００８３】
ステップＳ６２２では、ステップＳ６１７に対応するループ終端である。ＵＩコントロール仕様情報７１００の全てのデータに対して、ステップＳ６１８からステップＳ６２１の処理が終わるとループが終了する。このループが終了した時点で、ＵＩコントロール仕様情報７１００の全てのデータのレイアウト調整はすべて完了し、ＵＩコントロール仕様情報を図７の７３００に示すようになっている。
本実施形態の画面レイアウトの自動調整システムにおける必要なデータ構成について、図７から図１３を用いて説明する。
【００８４】
図７は、画面レイアウトの画面仕様情報（７００は画面レイアウト自動調整前のデータ構成の一例であり、７２０は画面レイアウト自動調整完了後のデータ構成の一例である）とＵＩコントロール仕様情報（７１００は画面レイアウト自動調整前のデータ構成の一例であり、７３００は画面レイアウト自動調整完了後のデータ構成の一例である）を管理するデータ構成の一例を示している。
【００８５】
画面仕様情報は、原文画面と訳文画面のサイズを保持する。そのため、幅７０１、原文画面の高さ７０２及び訳文画面の高さ７０３を定義している。幅７０１と原文画面の高さ７０２の値は図１２の１２１０の画面定義を参照して設定される。訳文画面の高さ７０３の値は、最初に原文画面の高さ７０２の値に設定され、その後、システムの処理による調整される。
【００８６】
ＵＩコントロール仕様情報は、画面内のＵＩコントロールの一覧を保持し、ＵＩコントロールにＵＩコントロール７１０１、コントロールタイプ７１０２、行番号７１０３、原文フォント名７１０４、原文フォントサイズ７１０５、原文幅７１０６、原文高さ７１０７、原文Ｘ位置７１０８、原文Ｙ位置７１０９、訳文フォント名７１１０、訳文フォントサイズ７１１１、訳文幅７１１２、訳文高さ７１１３、訳文Ｘ位置７１１４、訳文Ｙ位置７１１５を定義している。項目７１０１から項目７１０９までの値は図１２の１２１０のＵＩコントロールの定義を参照して設定される。項目７１１０から項目７１１５までの値は、最初に対応している原文項目の値に設定され、その後、システムの処理による調整される。
【００８７】
行番号７１０３は、当ＵＩコントロールが所属する行番号を定義している。当ＵＩコントロールの原文Ｙ位置７１０９の値を参照して、当ＵＩコントロールが所属する行を判断し、行番号７１０３を設定する。例えば、図７の７１１０の設定例で、ＵＩコントロール「ｌａｂｅｌ１」の原文Ｙ位置７１０９の値は「１８」は原文Ｙ位置７１０９の最小値であり、ＵＩコントロール「ｌａｂｅｌ１」の行番号７１０３を「１」に設定する。原文Ｙ位置７１０９の２番目の値は「５９」であり、その値に対応しているＵＩコントロール「ｌａｂｅｌ２」とＵＩコントロール「ｔｅｘｔｂｏｘ１」の行番号７１０３を「２」に設定する。
【００８８】
尚、本実施形態では、画面設計者が複数の対象訳文言語指定した場合にも、画面仕様情報７００とＵＩコントロール仕様情報７１００に、対象訳文言語毎に必要な項目を定義してもよい。
図８は、調整グループ定義情報（８００）とＵＩコントロール所属調整グループ情報（８１０）のデータ構成の一例を示している。
【００８９】
調整グループ定義情報８００は、図１４の１４０２で画面設計者が指定された調整グループの一覧を保持し、グループ毎にグループ８０１、同タイプのＵＩコントロールの調整ルール（同じ幅）８０２と同タイプのＵＩコントロールの調整ルール（同じ高さ）８０３を定義している。
【００９０】
同タイプのＵＩコントロールの調整ルール（同じ幅）８０２は、当グループ内の同タイプのＵＩコントロールに対して、同じ幅で調整するかどうかを定義している。「Ｙｅｓ」の場合、当グループ内の同タイプのＵＩコントロールに対して、同じ幅で調整する必要であることを表す。「Ｎｏ」の場合、当グループ内の同タイプのＵＩコントロールに対して、同じ幅で調整する必要がないことを表す。
【００９１】
同タイプのＵＩコントロールの調整ルール（同じ高さ）８０３は、当グループ内の同タイプのＵＩコントロールに対して、同じ高さで調整するかどうかを定義している。「Ｙｅｓ」の場合、当グループ内の同タイプのＵＩコントロールに対して、同じ高さで調整する必要であることを表す。「Ｎｏ」の場合、当グループ内の同タイプのＵＩコントロールに対して、同じ高さで調整する必要がないことを表す。
【００９２】
ＵＩコントロール所属調整グループ情報８１０は、ＵＩコントロールが所属するグループの関連を保持し、ＵＩコントロール８１１と所属グループ８１２を定義している。例えば、８１０の設定例で、ＵＩコントロール「ｌａｂｅｌ１」はグループ「１」に所属している。ＵＩコントロール「ｌａｂｅｌ２」、ＵＩコントロール「ｌａｂｅｌ３」、ＵＩコントロール「ｔｅｘｔｂｏｘ１」とＵＩコントロール「ｔｅｘｔｂｏｘ２」はグループ「１」に所属している。ＵＩコントロール「ｂｕｔｔｏｎ１」とＵＩコントロール「ｂｕｔｔｏｎ２」はグループ「１」に所属している。
【００９３】
図９は、ＵＩコントロールの表示文字情報のデータ構成の一例を示している。９００は原文リソースファイル１２２０を参照して設定されたデータ構成の一例であり、９１０は画面設計者が図１５の１５０２に指定された表示文字のサンプルを参照して設定されたデータ構成の一例であり、９２０は文字列伸張率情報１０００を用いて訳文最大サイズを算出した後のデータ構成の一例である。
【００９４】
ＵＩコントロールの表示文字情報９００は、ＵＩコントロールの一覧を保持し、ＵＩコントロール毎にＵＩコントロール９０１、原文リソースあり９０２、原文文字サイズ９０３、訳文最大サイズ９０４−９０７を定義している。
【００９５】
原文リソースあり９０２は、原文リソースファイルに当ＵＩコントロールの表示文字が定義しているかを定義している。例えば、９００の設定例で、ＵＩコントロール「ｌａｂｅｌ１」、「ｌａｂｅｌ２」、「ｌａｂｅｌ３」、「ｂｕｔｔｏｎ１」と「ｂｕｔｔｏｎ２」が原文リソースファイル１２２０に表示文字指定されているため、この５つのデータの項目９０２が「Ｙｅｓ」となる。ＵＩコントロール「ｔｅｘｔｂｏｘ１」と「ｔｅｘｔｂｏｘ２」が原文リソースファイル１２２０に表示文字指定されていないため、この５つのデータの項目９０２が「Ｎｏ」となる。
【００９６】
原文文字サイズ９０３は、当ＵＩコントロールの表示文字の文字サイズである。原文リソースあり９０２が「Ｙｅｓ」の場合、原文リソースファイル１２２０の該当表示文字の文字サイズとする。原文リソースあり９０２が「Ｎｏ」の場合、画面設計者が図１５の１５０２に指定された表示文字のサンプルの文字サイズとする。
【００９７】
訳文最大サイズ９０４−９０７は、訳文言語毎の訳文の最大サイズである。本項目の値は、原文文字サイズ９０３と文字列伸張率情報１０００を用いて計算される。
【００９８】
図１０は、文字伸張率情報のデータ構成の一例を示している。文字列伸張率情報１０００は、原文文字サイズをある言語翻訳された時の文字列の伸張率を保持している。例えば、１０００の設計例で、文字サイズは１から４まで英語文字の時、ドイツ語に翻訳された場合、文字列の伸張率は１００％である。文字サイズは５から１０まで英語文字の時、ドイツ語に翻訳された場合、文字列の伸張率は８０％である。
【００９９】
図１１は、調整対象画面の元画面レイアウトの画面構成の一例を示している。１１００に示しているように、「ｌａｂｅｌ１」、「ｌａｂｅｌ２」、「ｌａｂｅｌ３」の３つのラベルコントロール、「ｔｅｘｔｂｏｘ１」、「ｔｅｘｔｂｏｘ２」の２つのテキストボックスコントロール、及び「ｂｕｔｔｏｎ１」、「ｂｕｔｔｏｎ２」の２つのボタンコントロールが画面上に配置される。各ＵＩコントロールのレイアウト情報は、１１１０に示している。１１１０の設計例で、ＵＩコントロール「ｔｅｘｔｂｏｘ１」は、左上位置１１１１（Ｘ位置：９６、Ｙ位置：５９）、幅１１１２（１３９）と高さ１１１３（２５）の３つの仕様でそのレイアウトが特定される。
図１２は、調整対象画面の元画面定義ファイルのファイル構成及びその定義ファイルのデータ構成の一例を示している。
【０１００】
１２００は、調整対象画面の元画面定義ファイルのファイル構成の一例である。例えば、１２００の設定例で、図１１の１１００のような画面を保存すると、保存フォルダ（Ｃ：￥ＳａｍｐｌｅＡｐｐｌｉｃａｔｉｏｎ）に画面及びその内の各ＵＩコントロールのレイアウトを定義する画面レイアウトファイル１２０１、データ操作や画面イベントなどを制御する画面ロジックファイル１２０２、画面上で使用する各リソースを定義する画面リソースファイル１２０３の３つのファイルが生成される。画面レイアウトファイル１２０１の中身は１２１０に示している。画面リソースファイル１２０３の中身は１２１０に示している。
【０１０１】
１２１０は、画面レイアウトファイルのデータ構成の一例である。例えば、１２１０の設定例で、「ＩｎｉｔｉａｌｉｚｅＣｏｍｐｏｎｅｎｔ」メソッド内で、画面仕様及びその中の各ＵＩコントロールの仕様を定義している。ＵＩコントロール「ｔｅｘｔｂｏｘ１」について、ＵＩコントロールタイプの定義１２１１、幅と高さの定義１２１２、Ｘ位置とＹ位置の定義１２１３、フォントの定義１２１４などの仕様が定義されている。また、画面の幅と高さは、１２１５のように定義されている。
【０１０２】
１２２０は、画面リソースファイルのデータ構成の一例である。リソースは（キー，値）のペアで定義される。例えば、１２１０の設定例で、（ｌａｂｅｌ１，  Ｓａｍｐｌｅ  Ｐａｇｅ）というリソースが定義されている。これは、ＵＩコントロール「ｌａｂｅｌ１」の表示文字は「Ｓａｍｐｌｅ  Ｐａｇｅ」であることを表す。
図１３は、調整対象画面の調整後の画面定義ファイルのファイル構成及びその定義ファイルのデータ構成の一例を示している。
【０１０３】
１３００は、調整対象画面の調整後の画面定義ファイルのファイル構成の一例である。例えば、画面設計者が図１６の１６０２で「言語毎のレイアウト画面として画面レイアウトファイルを保存」という保存方法を選択した場合、新たにドイツ語用の画面レイアウトファイル１３１１が１３００の設定例のように生成されている。尚、画面設計者が図１６の１６０２で「対象言語の共通レイアウト画面として画面レイアウトファイルを保存」という保存方法を選択した場合、新たなレイアウトファイルを生成せずに、図１２の１２００の画面レイアウトファイル１２０１を更新する。
【０１０４】
１３１０は、新規作成また更新後の画面レイアウトファイルのデータ構成の一例である。例えば、１３１０の設定例で、ＵＩコントロール「ｔｅｘｔｂｏｘ１」について、幅と高さの定義１３１１、Ｘ位置とＹ位置の定義１３１２は更新されている。また、画面の高さも、１３１３のように更新されている。
本実施形態の画面レイアウトの自動調整システムにおける必要な画面構成について、図１４から図１６を用いて説明する。
【０１０５】
図１４は、調整対象画面の画面レイアウトファイルと調整グループを指定する画面の一例である。１４０１に示しているように、画面設計者は調整対象画面の画面レイアウトファイルのパスを指定し、「次へ」ボタンを押下した場合、システムは指定されたパスの画面レイアウトファイル（図１２の１２１０）を読み込んで、画面仕様とＵＩコントロール仕様を取得したら、１４０２を表示する。
【０１０６】
１４０２は、調整グループを指定する画面の一例である。１４０２に示しているように、グループ番号、グループ所属ＵＩコントロールと同タイプのＵＩコントロールの調整ルールの３つの項目を指定する。画面設計者は、「グループを追加」ボタンを押下し、１４０３でグループを追加できる。追加された調整グループに対して、グループ内の「編集」ボタンを押下することでグループに含まれるＵＩコントロールを定義できる。グループ内の同タイプのＵＩコントロールの調整ルール「同じ幅にする」と「同じ高さにする」を指定できる。また、グループ番号の前の「×」ボタンを押下することでグループを削除できる。
【０１０７】
１４０２で「グループを追加」タンを押下した場合、１４０３が表示される。グループを追加する。１４０３は、グループ所属ＵＩコントロールを編集する画面の一例である。「追加」または「削除」ボタンを使用して、グループに含まれるＵＩコントロールを追加・削除する。編集完了後、「完了」ボタンを押下したら、１４０２に戻り、該当グループの「グループ所属ＵＩコントロール」に編集後の内容は反映されている。
図１５は、原文リソースファイルと表示文字未指定ＵＩコントロールの表示文字サンプルを指定する画面の一例である。
【０１０８】
１５０１に示しているように、画面設計者は原文リソースファイルのパスを指定し、「次へ」ボタンを押下した場合、システムは指定されたパスの原文リソースファイル（図１２の１２２０）を読み込んで、リソースの定義を取得したら、１５０２を表示する。
【０１０９】
１５０２は、表示文字未指定ＵＩコントロールの表示文字サンプルを指定する画面の一例である。１５０２に示しているように、原文リソースファイルに表示文字が指定されていないＵＩコントロールの一覧を表示している。画面設計者は、これらのＵＩコントロールに対して、表示文字のサンプルを入力したら、システムが自動的に表示文字のサンプルの文字サイズを計算し、画面に表示する。
図１６は、調整後画面の指定と調整後画面プレビュー及び保存の画面の一例である。
【０１１０】
１６０１に示しているように、画面設計者は、調整後画面の対象言語を指定し、調整後の画面の最小フォントサイズ及びＵＩコントロール間の間隔を指定し、「次へ」ボタンを押下したら、自動調整を行う。
【０１１１】
１６０２は、自動調整は完了し、調整した結果をプレビューで画面に表示する画面の一例である。１６０２に示しているように、調整前の元画面と調整後の画面を両方表示する。尚、調整後画面の対象言語は複数がある場合、対象言語毎に調整後の画面が表示される。画面設計者は、調整後の画面レイアウトファイルの保存先と保存方法を指定し、「保存」ボタンを押下した場合、調整後の画面レイアウトファイルが保存される。
【０１１２】
以上、本実施形態について説明したが、本実施形態によれば、表示する値が設定されていないコントロールに対して、画面レイアウトを自動調整することができる。
【０１１３】
より具体的には、文字を入力するためのＵＩコントロール（例えば、テキストボックス）の場合、その対応文字列がなくても、設計者が指定されたサンプル文字列または最大文字数によって画面を自動調整できる。また、自動調整のためのリソースファイルを１言語のみを用意するだけよいため、複数の言語の文字列を用意する手間を省くことができる。さらに、言語ごとに画面レイアウトを作成するか、言語共通の画面レイアウトを作成するかを選択可能にしており、アプリケーションの設計に応じた画面設計・開発が可能となる。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０１１４】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１１５】
また、本発明におけるプログラムは、図３〜図６に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は図３〜図６の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは図３〜図６の各装置の処理方法ごとのプログラムであってもよい。
【０１１６】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１１７】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【０１１８】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク、ソリッドステートドライブ等を用いることができる。
【０１１９】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２０】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２１】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１２２】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１２３】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
２０１  画面レイアウト指定部
２０２  リソースファイル指定部
２０３  コントロール特定部
２０４  値入力部
２０５  調整部
２０６  言語指定部
２０７  算出部
２０８  プレビュー部
２０９  保存方法指定部
２１０  生成部
【図１】
2014099003.tif 000003
【図２】
2014099003.tif 000004
【図３】
2014099003.tif 000005
【図４】
2014099003.tif 000006
【図５】
2014099003.tif 000007
【図６】
2014099003.tif 000008
【図７】
2014099003.tif 000009
【図８】
2014099003.tif 000010
【図９】
2014099003.tif 000011
【図１０】
2014099003.tif 000012
【図１１】
2014099003.tif 000013
【図１２】
2014099003.tif 000014
【図１３】
2014099003.tif 000015
【図１４】
2014099003.tif 000016
【図１５】
2014099003.tif 000017
【図１６】
2014099003.tif 000018