説明

プルーフリーディング用ドキュメント作成方法、プログラム、メディア及び情報処理装置

【課題】 ローカライズ版プルーフリーディング用ドキュメントの作成方法において、ソフトウェアローカリゼーション開発者の作業効率を向上させる。
【解決手段】 GUI画面のスクリーンショットとUI部品属性情報の自動取得及びこれらのデータを用いてプルーフリードドキュメントを自動的に作成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理装置、GUIプログラムの画面制御方法及びプログラム、UI部品の属性情報の取得方法及びプログラム。特に、前記方法で取得したUIスクリーンショットとUI部品の属性情報を用いて、プルーフリーディングドキュメト作成の効率化に関する好適な技術に関する。
【背景技術】
【0002】
コンピュータシステムは数多くの言語で存在している。多数のソフトウェアアプリケーションおよびオペレーティングシステムは、第1の言語で作成され、次いで、他の言語に移植される。これを、アプリケーションおよびオペレーティングシステムのローカライゼーションと呼ぶことがある。通常のローカライゼーション手法として2つやり方が存在する。
【0003】
1. ソースプログラムのリソースファイル中の第1言語の文字列を抽出し、ローカル言語に翻訳した後、第1言語の文字列と差し替えて、ソースプログラムを再ビルド(コンパイル、リンク)することによって、ローカライズ版実行モジュールを生成する手法である。
【0004】
2. 第1言語の実行モジュールから第1言語の文字列を抽出し、ローカル言語に翻訳した後、直接実行モジュール中の第1言語文字列と差し替え、再ビルドしない手法である。
【0005】
前記何れの手法においても、翻訳作業は言語専門の翻訳者が担当し、ローカライズ版実行モジュールの作成作業は、専門のソフトエンジニアが担当するような形の共同作業が多い。このようなプロセスで作成されたローカライズ版の翻訳品質は翻訳担当者のレベルと経験に大きく依存しており、場合によって、翻訳精度は翻訳者の製品に関する知識にも関わる。また、熟練の翻訳者でも、文字列を翻訳する際、特定の文字列はUI上の用語なのか、メッセージ用語なのか、コンテキストヘルプ用語なのか、それとも非表示用語なのかを知らないケースが多いので、翻訳用語の一貫性を保てない問題が少なくない。一方、ソフトエンジニアがローカル言語の知識がないので、翻訳の品質をチェックすることができない。よって、高品質のローカライズ版ソフトウェアを作成するために、対象のローカル言語知識及び製品知識を両方持つ第三者によるプルーフリード(翻訳用語チェック)が必要となる。プルーフリードを実施する場合、プルーフリーダー(翻訳用語チェックを行う人)がソフトウェア開発環境を持っていないため、彼らのためにプルーフリード用ドキュメントを準備しなければいけない。通常プルーフリード用ドキュメントは以下のような構成となっている。
【0006】
1. 第1言語とローカル言語の該当プログラムの画面スクリーンショット
2. 前記画面上すべてUI部品に表示している用語の一覧
3. プルーフリーダーが読みやすい形で前記スクリーンショットとUI用語一覧を所定のフォーマットでまとめられ、プルーフリード結果やコメントの記入欄が用意されている
プルーフリード用ドキュメントの一例として、図1を参照ください。
【0007】
図1のようなドキュメントを作成するには、従来以下のような手法が主に使われていた。
【0008】
1. 第一言語OS環境で、第一言語で作られたプログラムを起動し、GUI画面の切り替え操作で所定の画面を表示させ、ユーティリティを利用し、画面のスクリーンショットをクリップボードから取得した後、プルーフリードドキュメント内所定の位置に貼り付ける。
【0009】
2. 次に、第一言語OS環境でステップ1の画面上のUI用語を一々ドキュメントに手入力するか、プログラムソースコードのリソースファイル等からコピーし、プルーフリードドキュメント内所定の位置に貼り付ける。
【0010】
3. 次に、ステップ1と同様な方法を用いて第二言語OS環境で、画面のスクリーンショットを取得し、プルーフリードドキュメント内第一言語スクリーンショットの右側に貼り付ける。
【0011】
4. 次に、ステップ2と同様な方法を用いて第二言語OS環境で、手入力するかプログラムソースコードのリソースファイル等からコピーしてプルーフリードドキュメント内第一言語用語の右側に貼り付ける。
【0012】
このようなプルーフリーディングドキュメント作成方法には、以下のような問題がある。
【0013】
1. 2つ以上のOS環境においての手作業が多く、時間がかかる。
【0014】
2. UI用語を手入力する場合、不慣れな開発者にとって、キーボード操作が難しいので、タイピングミスが発生しやすい。
【0015】
3. 図1に示されているように、UI用語一覧表の第一言語用語と第二言語用語が一対一の関係を持っているが、第二言語の意味が分らない開発者にとっては位置ズレ等編集ミスが発生しやすい。
【0016】
そこで、ドキュメント作成の効率を向上させるために、所定操作手順に従いプログラムを起動し、自動的に特定のGUI画面を表示させることが実現できれば、スクリーンショット取得するための画面操作は速くなるはず。ソフトウェア規模が大きく、大量のGUI画面を有する場合、特に有効と考えられる。
【0017】
文献1〜文献3に記載の操作マクロ生成装置では、利用者がシステムに対して操作を順に入力し、この一連の操作を記録することで、操作マクロを作成できる。利用者が行った操作から操作マクロを生成することにより、利用者がよく行う操作の手順を、操作マクロで実行することが可能となり、操作の効率が向上してきた。
【0018】
また、GUIを有するシステムの動作の正常さを検査する装置として、ソフトウェア製品が市販されている。市販ソフトウェア製品のGUI検査装置では、利用者の入力操作に対するシステムの動作を検査するために、利用者の入力操作を自動化するためのスクリプトを記述する。また、入力操作を記録してスクリプトを作成することもできる。さらに、記録したスクリプトを編集することもできる。このようなスクリプトを用いて利用者の入力操作を自動的に実行させ、システムの動作結果を記録することで、異常な動作を検出することが可能となっている。
【特許文献1】特開平6-348481号公報
【特許文献2】特開平6-274329号公報
【特許文献3】特開平5-173741号公報
【発明の開示】
【発明が解決しようとする課題】
【0019】
しかし、文献1〜文献3に記載されている自動化操作装置の何れも、特定UI画面のスクリーンショットを取得できなかった。また、GUI検査ツールはUI部品の動作を検証し、UIの問題とバッグを発見することが主目的なので、このようなシステムで自動生成されたスクリプトはローカル言語に依存し、複数言語を対応できないのが一般的である。更に、UI部品レベルまで詳細な属性情報(IDや文字列等)をスクリプトに記述しないと、後ほどチェック動作ができなくなるので、スクリプト文法は煩雑、スクリプトライン数が長く、手入力の作成編集は大変難しい。なお、プルーフリードドキュメントを作成する場合、UI部品を一々記述せず、特定ダイアログ画面を開く手順だけをスクリプトに記載すれば、プログラム実行時すべてのUI部品属性情報を自動的に取得することはできなかった。
【0020】
本発明の目的は、複雑なスクリプトを用いず、画面開く手順だけを記載する簡単なスクリプトを使用し、自動操作で指定画面を開き、画面スクリーンショットを取得し、また該当画面上すべてのUI部品の属性情報を取得できる。最終的に、前記取得した情報で、プルーフリード用ドキュメントを所定のフォーマットで自動的に生成できることである。
【課題を解決するための手段】
【0021】
本発明の目的はローカライズしたアプリケーションの翻訳品質をチェックするために、第一言語の画面スクリーンショット及びリソース情報と、一対となるローカル言語の画面スクリーンショット及びリソース情報を自動的に取得し、マージしてプルーフリード(用語チェック)用資料を自動的に生成できることである。
【0022】
なお、本発明のポイントは下記の通りである。
【0023】
所定のダイアログUIを開く手順を記述するUI操作手順記述手段を有する。
【0024】
前記UI操作手順記述手段はOSの言語に依存しないことが特徴である。つまり、一旦作成したUI手順記述をローカライズする必要がなく、どの言語のOS環境でも実行できることが特徴である。
【0025】
前記UI操作手順記述を複数OS間で共有できるUI操作手順共有手段を有する。
【0026】
前記UI操作手順記述に従い、所定のUI画面を開き、画面のスクリーンショットを取得し、イメージファイルに保存する画面スクリーンショット取得手段を有する。
【0027】
前記UI操作手順記述に従い表示させたUI画面上に配置されているすべてのUI部品(通常コントロールと呼ばれている)の表示可能な文字列及びホットキー等リソース情報を取得できるリソース情報取得手段を有する。
【0028】
前記複数OS環境で取得できた画面スクリーンショット及びリソース情報を一か所に集め、ドキュメント上に配置し、所定フォーマットのドキュメントを自動的に生成できるドキュメント生成手段を有する。
【発明の効果】
【0029】
GUI画面のスクリーンショットとUI部品属性情報の自動取得及びこれらのデータを用いてプルーフリードドキュメントを自動的に作成することで、ソフトウェアローカリゼーション開発者の作業効率を著しく向上させることができる。
【発明を実施するための最良の形態】
【0030】
次に、本発明の詳細を実施例の記述に従って説明する。
【実施例1】
【0031】
サーバPCの役割を果たすServer−1及びクライアントPCの役割を果たすClient−A、Client−B、Client−CがローカルエリアネットワークLAN−1により接続され、相互的に通信可能な状態にある。なお、GUIを有するシステムソフトウェアはプリンタドライバとする。プリンタドライバ開発のプロセスとして、先ず英語版がビルドされ、市場リリース可能な一定レベルの品質に達した後、英語版をベースに日本語や韓国語等ローカル言語版をビルドしていく。また、本実施例のプリンタドライバのアーキテクチャ(内部モジュール構成)は機能モジュールとリソースモジュールを分離し、UI部品関連用語やメッセージ等ローカライズ必要なリソース情報(文字列、アイコン、ビットマップ、ホットキー、マウスカーソル等)をリソース専用DLL(Dynamic Link Library)に配置する。なお、ローカライズ手法は発明背景のところで紹介したバイナリローカライズを採用し、完成後のすべてのローカル言語版とベースの英語版と同様なバイナリコードを使用し、UI関連リソースだけ違うような構造となることで、すべて言語のプリンタドライバは同様に振舞い、機能差がないメリットを得られる。更に、このような手法で作成されたローカル言語版UI部品の識別IDはベースの英語版と変わらないメリットも得られる。本発明により開示された技術を使用することで、ドライバ開発者はローカル言語がわからなくても、図1で示すようプルーフリードドキュメントを自動的に作成することができる。自動作成されたプルーフリードドキュメントを 用語チェック部門担当者に送付して、プリンタドライバがインストールされていない環境でも、ドライバUI用語のチェックを行うことが可能になる。
【0032】
さて、図2で示した各PCのソフトウェア環境を簡単に紹介する。
【0033】
● Server−1
日本語版Windows(登録商標)を搭載し、画面スクリーンショットやUI部品の属性情報(以降、便宜上リソース情報と呼ぶ)を取得する際に必要なダイアログ開く手順(以降、便宜上スクリプトと呼ぶ)をServer−1のハードディスク上に格納し、各クライアントPCからアクセスできるように共有している。また、各クライアントPC上で取得したリソース情報をLAN−1経由で本PCのリソースDBに保存される。また、リソースDBに格納された情報に基づき、所定のフォーマットに従って、プルーフリードドキュメントを自動生成する手段を有するプログラムも本PC上の記憶装置に格納される。また、Server−1に搭載するOS言語は日本語版に限らず、プルーフリードドキュメント作成者にとって使いやすい言語であれば、ローカル言語でも良い。また、プルーフリードドキュメント自動生成プログラムの使用言語に制限がない。
【0034】
● Client−A
英語版Windows(登録商標)及び英語版プリンタドライバを搭載する。更に、プリンタドライバUIのリソース情報を取得する手段を有するプログラムも本PC上の記憶装置に格納されている。また、リソース情報取得プログラムの表示用言語として、本実施例においては英語版を使用するが、他のローカル言語版でも良い。
【0035】
● Client−B
日本語版Windows(登録商標)及び日本語版プリンタドライバを搭載する。また、日本語版プリンタドライバは英語版プリンタドライバをベースにバイナリローカライズ手法でローカライズされたバージョンとする。更に、プリンタドライバUIのリソース情報を取得する手段を有するプログラムも本PC上の記憶装置に格納されている。また、リソース情報取得プログラムの表示用言語として、本実施例においては日本語版を使用するが、他のローカル言語版でも良い。
【0036】
● Client−C
韓国語版Windows(登録商標)及び韓国語版プリンタドライバを搭載する。また、韓国語版プリンタドライバは英語版プリンタドライバをベースにバイナリローカライズ手法でローカライズされたバージョンとする。更に、プリンタドライバUIのリソース情報を取得する手段を有するプログラムも本PC上の記憶装置に格納されている。また、リソース情報取得プログラムの表示用言語として、本実施例においては韓国語版を使用するが、他のローカル言語版でも良い。
【0037】
更に、Client−Bにインストール済みの日本語バージョンプリンタドライバとClient−Cにインストール済みの韓国語バージョンプリンタドライバはClient−Aにインストールされている英語バージョンプリンタドライバをベースにして、バイナリローカライズ手法でローカライズされたものである。各バージョンのUI用表示言語は別物だが、UIコントロール(部品)のIDは同じである。また、バイナリローカライズはドライバ実行モジュールのバイナリコードを変更しないため、機能面において各バージョンのドライバは同様な振舞いをする。
【0038】
つづいて、プリンタドライバUIのプルーフリードドキュメント自動生成は図3のメインフロー図で示されているように、301〜304の四つのステップから構成されている。次に、各ステップの機能及び実現方法について詳しく説明する。
【0039】
ステップ301にてUI部品に関するリソース情報(ビットマップやUI用語等)を取得するために使われるスクリプト(画面開く手順)を作成しておく。更に作成されたスクリプトファイルをServer−1の共有フォルダに保存し、各クライアントPCからアクセスできるように設定しておく。本実施例に使われるスクリプトファイルの一例を図4に示している。
【0040】
図4内一番左側の括弧内の数値は説明便宜上のライン番号を表し、スクリプトの内容ではない。スクリプト内容はライン番号の右側である。また、「;」より右側の内容はコメント(説明文)であり、スクリプトコマンドに影響しない。
【0041】
まず、01行目の「Conon MFP C6870 印刷言語LX 」はプリンタのフレンドリーネームを表す。Windows(登録商標)の「スタート」メニュー→「コントロールパネル」→「プリンタとFAX」の手順で操作すると、図5画面のように現在システムにインストールされているすべてのプリンタが表示される。この画面に表示されているプリンタの名称はフレンドリーネームである。本実施例においては、プルーフリード用資料を「Conon MFP C6870 印刷言語LX 」ドライバUIベースに作成されるので、Client−Aに英語バージョン「Conon MFP C6870 印刷言語LX 」プリンタドライバ、Client−Bに日本語バージョン「Conon MFP C6870 印刷言語LX 」プリンタドライバを事前にインストールされていることを前提とする。また、Windows(登録商標)環境でプリンタドライバ印刷設定画面を開いた際、ダイアログタイトルの一部としてプリンタフレンドリーネームが使われる。印刷設定を表すローカル言語文字列はWindows(登録商標)システムにより提供される。例えば、英語版OSの場合「Conon MFP C6870 印刷言語LX Printing Preferences」、日本語版OSの場合「Conon MFP C6870 印刷言語LX 印刷設定」と表示される。
【0042】
次、スクリプト02〜05行目はプリントドライバ印刷設定画面の第一階層(タブシートコントロール)のタブページ番号を表す。英語や日本語のようなLeft-To-Right言語の場合、タブシートの配置は左から右への順番で、図6の示す通り「Sheet 1=ページ設定」、「Sheet 2=仕上げ」、「Sheet 3=給紙」、「Sheet 4=印刷品質」である。逆に、アラビア語のようなRight-To-Left言語の場合、タブシートの配置順番は右から左へとなる。
【0043】
次、スクリプト06行目の「Button 0xFFEE000A 1」は第一階層「Sheet 1」タブページ(ページ設定)の「ユーザ定義用紙」プッシュボタンがクリックされた場合、表示される第2階層のダイアログを意味する。「0xFFEE000A」は「ユーザ定義用紙」プッシュボタンのコントロールIDを表す。Windows(登録商標)システムで、それぞれのUI部品は他の部品と区別できる唯一のIDが割り当てられている。更にドライバがローカライズされた後、UI部品の文字列が換わるが、IDが変わらない特徴がある。この特徴を利用して、文字列の代わりにコントロールIDで作成されたスクリプトはローカライズの必要性がなくなり、そのまま、すべてのローカル言語OS環境で利用できるメリットを得られる。07行目「CloseDialog」は第2階層のユーザ定義用紙ダイアログをクローズすることを意味する。同様に、08行目「Button 0xFFEE000B 2」は、第一階層「Sheet 2」タブページ(仕上げ)の「仕上げ詳細」プッシュボタンがクリックされた場合、表示される第2階層のダイアログを意味する。09行目「CloseDialog」は、「仕上げ詳細」ダイアログを閉じることを意味する。同様に、10行目「Button 0xFFEE000C 4」は、第一階層「Sheet 4」タブページ(印刷品質)の「色設定」プッシュボタンがクリックされた場合、表示される第2階層のダイアログを意味する。11行目「CloseDialog」は、「仕上げ詳細」ダイアログを閉じることを意味する。また、12行目「TheEnd」でスクリプトの終了を識別する。
【0044】
図4のスクリプト実施例は第2階層画面までしか操作しないが、決して制限を意味することがない。本特許で開示した方法で、複数階層の画面を開いたり、閉じたりすることが実現できる。例えば、下記スクリプトのように「Button XXX #」と「CloseDialog」のエンベッドにより、複数階層の対応が可能となる(;より右の内容は説明文)。
【0045】
Sheet 1;(第1階層のタブページ1を開く)
Button 0xFFEE000A 1;(第1階層のタブページ1上のButton 0xFFEE000Aをクリックし、第2階層ダイアログを開く)
Button 0xFFEE002B 2;(第2階層のタブページ2上のButton 0xFFEE002Bをクリックし、第3階層ダイアログを開く)
Button 0xFFEE003C 1;(第3階層のタブページ1上のButton 0xFFEE003Cをクリックし、第4階層ダイアログを開く)
CloseDialog;(第4階層のダイアログを閉じる)
CloseDialog;(第3階層のダイアログを閉じる)
CloseDialog;(第2階層のダイアログを閉じる)
TheEnd;(第1階層のダイアログを閉じ、スクリプトを終了させる)
前記説明したように、本実施例のスクリプトファイルはローカル言語に依存しないので、ローカライズせずにクライアントA、B、Cの環境で使える。ただ、スクリプトファイルを各クライアントPCに直接配布して使う場合、以下の問題点が考えられる。
【0046】
1. スクリプトを変更する場合、すべてのクライアントPC上のスクリプトを修正しなければならない。手間がかかる。
【0047】
2. あるクライアントPC上のスクリプトが不注意で変更されたら、他のクライアントPC上のスクリプトとマッチしなくなるので、プルーフリード用資料を作成する必要なリソース情報の整合性が取れなくなる。
【0048】
そこで、本実施例のステップ301(図3)で作成済みのスクリプトファイルをServer−1の記憶装置に格納し、他のクライアントPCからアクセスできるようにファイル共有を設定しておく。
【0049】
つづいて、ステップ302で共有スクリプトファイルに従い、第一言語(英語)とローカル言語(日本語等)のUI部品のリソース情報の取得方法について詳しく説明する。
【0050】
図7はUI部品のリソース情報を取得できるユーティリティ(GetAll)のメイン画面である。UI701は本ユーティリティの使用時のヘルプ情報を表示する。UI702コントロールでプリンタドライバUI言語を選択する。通常プリンタドライバUI言語はWindows(登録商標)言語と一致するので、手動設定の代わりに、Windows(登録商標) API関数を使用してOS言語を自動探索し、結果をUI702に自動反映しても良い。UI703は取得したUI部品リソース情報を格納する場所のサブフォルダを指定する。本ユーティリティのデフォルト設定で、格納先は「C:\AutoUI」であるが、UI703が「driver」に指定された場合、格納先は「C:\AutoUI\driver」となる。また、本ユーティリティは自動モード(Auto)と手動モード(Manual)2つのモードを提供する。UI705で手動モードを選択した場合、表示中1画面のりソース情報をしかとれない。本実施例は画面操作手順のスクリプトを使用して、複数画面の情報を一括で取得するために、UI704の自動モード状態でUI706の取得(Capture)ボタンを実行する。次に、「Capture」ボタンが押された時、図4のスクリプトコマンドをどのように実行するかについて図8を使ってその処理の流れを説明する。
【0051】
図8のステップ801で一行のスクリプトを読み込み、スクリプトコマンドの中身を分析する。ステップ806で「TheEnd」コマンドであるかどうかを判断する。Yesの場合、スクリプト処理を終了し、Noの場合、処理を継続する。次、ステップ807で「Conon MFP 6870 印刷言語LX 」のようなプリンタドライバフレンドリーネームかどうかを判断する。フレンドリーネームの命名規則はプリンタメーカーに委ねられていて、本実施例では「機種名+PDL名称」のような構成となっているが、必要に応じて別の命名規則やドライバ名称以外の他のアプリケーション名も構わない。ドライバフレンドリーネームと判断できた場合、ステップ802で該当プリンタドライバ印刷設定画面を特定する処理を行う。Noの場合、処理をステップ808に移る。
【0052】
ステップ802処理の目的は以降のスクリプトコマンドを実行するための前準備である。プリンタドライバ印刷設定画面が表示されなければ、画面のスクリーンショットやUI部品情報を取得できない。Windows(登録商標)環境でプリンタドライバ印刷設定画面を表示する方法は2つある。1つ目は手動操作であり、図5の「プリンタとFAX」ダイアログを表示させ、次に目的のプリンタアイコンを選択した上で、マウス右クリックでショートカット(ポップアップ)メニューを表示し、メニューから「印刷設定...」を選択する方法である。2つ目はWindows(登録商標)のシェル関数を呼び出すプログラムで自動表示させる方法である。何れの方法でもかまわないが、プリンタドライバの印刷設定画面が表示されると、ダイアログが初期化され、ウィンドウのインスタンスがシステム上に存在することになる。この時点でFindWindows() API関数を利用し、「ドライバフレンドリーネーム+印刷設定」をタイトルとするウィンドウを特定し、そのウィンドウハンドル情報を取得できる。前記ウィンドウタイトルはOS言語に依存であり、英語版の場合「ドライバフレンドリーネーム+Printing Settings」となるが、ターゲットWindows(登録商標)システムの命名方法に従えば、確実にプリンタドライバの印刷設定画面のウィンドウハンドルを取得できる。ステップ802の処理が完了したら、ステップ801へ移る。
【0053】
ステップ808の判断部で「Sheet」コマンドと判断した場合、第一階層上の所定のタブシートを表示させ、ステップ803で該当ダイアログのリソース情報を取得する処理を行う。「Sheet」コマンドは「Sheet #」のようなフォーマットで書かれる。「#」はタブシートのページ番号を表す。ステップ803処理のフローを図9で示しており、後で詳しく説明する。ステップ808の判断結果はNoの場合、処理がステップ809へ移る。
【0054】
ステップ809の判断部で「Button」コマンドと判断した場合、ステップ804の処理で現階層のダイアログ上の指定UI部品(通常コマンドボタン)をクリックして、次の階層のダイアログを表示させる。更に、ステップ804の処理が終わると、ステップ803で新しく開かれたダイアログのリソース情報を取得する処理を行う。「Button」コマンドは「Button Control-ID #」のようなフォーマットで書かれる。「#」はタブシートのページ番号を表し、「Control-ID」で指定されたUIコントロールは第#番目タブシートページ上に存在することを意味する。「Control-ID」はWindows(登録商標)システムに振り当てられたUI部品を識別するための唯一のIDであり(Microsoft社製のSPY++ユーティリティを使って、より簡単に調べだすことができる)、Windows(登録商標)のAPI関数(SendMessage()等)を使用して、IDで指定されたUIコントロールにクリックイベントを表すメッセージを送ると、UIコントロールのクリック操作をシミュレートし、次の階層のダイアログを表示させ、更にコントロールの文字列情報を使用しFindWindow() API関数で、新しいダイアログのウィンドウハンドルを取得することができる。ステップ809の判断結果はNoの場合、処理がステップ810へ移る。
【0055】
ステップ810の判断部で「CloseDialog」コマンドと判断した場合、ステップ805の処理において「Button」で開かれた現在のダイアログを閉じ、上の階層ダイアログを現在の画面として表示させる。更に、ステップ805の処理が終わると、処理がステップ801に移り、次のスクリプトコマンドの読み込み処理を継続する。
【0056】
図9はダイアログのリソース情報取得時の処理フローを示している。ステップ901で前記ステップ802または804で取得したウィンドウハンドルを利用して、Windows(登録商標)のBitBlt()関数で該当ダイアログのスクリーンショットのビットマップデータをバッファにコピーすることができる。バッファに格納されたビットマップデータは圧縮されておらず、そのままファイルに保存すれば、より多くの容量が必要となる。例えば、1024(pixel) *768(pixel) サイズの画面をフルカラー(32Bit/pixel)モードで保存する場合、1024*768*(32/8)=3145728バイトになる。ファイルサイズが大きくなればなるほど、ネットワークでの転送時間がかかり、最終的に作成されるプルーフリードドキュメントのサイズも膨大になる問題がある。この問題を解決するために、ステップ902の処理はバッファに格納したスクリーンショットのビットマップデータを圧縮フォーマット(PNGやJPEG等)に変換して、ファイルに保存することを実現する。図4のスクリプト (02)行目「Sheet 1」を実行する際、ステップ901処理で取得した画面スクリーンショットを図10の示す通りで、上は英語版、下は日本語版である。更に圧縮前・後の画像ファイルサイズの対比情報を以下に記載する。
【0057】
次に、ステップ903の処理で、所定ダイアログ上のすべてのUI部品を調べだす。Windows(登録商標)システムにおいて、UI部品も一つ一つ小さなウィンドウであり、更に厳密な所属関係があり、あるダイアログ上のUI部品の親ウィンドウは該当ダイアログとなっている。Windows(登録商標)に提供されるAPI関数を利用して所定ダイアログ上のすべてのUI部品を調べだすことができる。
【0058】
次に、ステップ904の処理で、API関数を利用してステップ903の調べた結果に従い、順次各UI部品のUI表示用文字列とホットキー情報を取得し、所定のテキストファイルに保存していく。UI部品の種類によって、取得する文字列方法が違う。図10のダイアログ画面を例に言うと、「お気に入り」のようなラベルや「縦」「横」のようなチェックボックスや「スタンプ編集」のようなプッシュボタンの場合、ターゲットUI部品に文字列情報取得メッセージを送り、一回だけで文字列情報及びホットキー情報を取得できるが、「原稿サイズ」コンボボックスやリストボックスの場合、ターゲットUI部品に複数回メッセージを送る必要がある。1回目のメッセージ送信は該当UI部品内のアイテム数を取得し、2回目以降のメッセージ送信により各アイテムの文字列取得を取得する。なお、本実施例では、1つダイアログ上のすべてのUI部品の文字とホットキー情報を1つのテキストファイルに格納するように実装している。図11は「Sheet 1」スクリプト実行後、取得した図10ダイアログの文字列情報を示している。左側は英語版OS環境での実行結果で、右側は日本語版OS環境での実行結果である。
【0059】
次に、ステップ905ですべてのUI部品を処理完了と判断した場合、リソース情報取得処理が終了する。図4のスクリプトファイルを英語版Client−A環境で実行した後、PCの「C:\AutoUI\driver」フォルダの下に、以下のようなリソースファイルが作成される。
【0060】
【表1】

図4のスクリプトファイルを日本語版Client−B環境で実行した後、PCの「C:\AutoUI\driver」フォルダの下に前記と同様な結果を得られる。
【0061】
次に、図3のステップ303の処理において、前記取得したリソースファイルをServer−1の共有フォルダ「\\Server-1\AutoUI\」へ格納する。前記リソースファイルがオーバーライトされないように、英語版を「\\Server-1\AutoUI\English\driver」、日本語版を「\\Server-1\AutoUI\Japanese\driver」の下に格納する。本実施例はリソース情報を単に画像ファイルとテキストファイルとしてServer−1の共有フォルダに格納しているが、検索・抽出しやすい形式のリレーションナルデータベースに格納しても可能で、オラクルデータベースやSQLサーバやDB2等典型的な市販品を使用することできる。
【0062】
次に、図3のステップ304のプルーフリード用ドキュメント作成処理はServer−1の環境で行い、処理の詳細は図12のフローチャートを使って説明する。ステップ1201はドキュメントを新規作成するための初期化処理を行う。本実施例では、マイクロソフト社のOffice製品のマクロ機能を利用しExcelフォーマットのプルーフリード用ドキュメントを作成することで、初期化処理においてはMicrosoft Excel(登録商標)とマクロプログラムを起動し、図13のような画面を表示する。「\\Server-1\AutoUI\」はServer−1の共有フォルダ名であり、ローカルフォルダ名は任意なので、ここで「C:\AutoUI\」とする。1301「Resource Folder」にてリソース情報の格納場所を指定できる。また、1302「Language」にてローカル言語を日本語に指定すると、英語と日本語用語対照一覧のプルーフリード資料を作成する。なお、1303の「Destination File」にて自動作成されるドキュメント名を指定できる。次に、1304「Checklist」コマンドボタンをクリックすると、処理は図12のステップ1202に移り、1つ目のページ設定画面(図10)関連のリソースファイルを特定し、以下の4つのファイルを開いて、データの読み込み準備をしておく。
【0063】
・C:\AutoUI\English\driver\001.png
・C:\AutoUI\English\driver\001.txt
・C:\AutoUI\Japanese\driver\001.png
・C:\AutoUI\ Japanese \driver\001.txt
ステップ1203で画像ファイル「C:\AutoUI\English\driver\001.png」から英語版「ページ設定」ダイアログのスクリーンショットを読み込み、新規のExcelシートの左上の適切な位置に配置する。同様にステップ1204で、画像ファイル「C:\AutoUI\Japanese\driver\001.png」から日本語版「ページ設定」ダイアログのスクリーンショットを読み込み、前記Excelシートの右上の適切な位置に配置する。次、ステップ1205でテキストファイル「C:\AutoUI\English\driver\001.txt」から英語版「ページ設定」ダイアログの文字列&ホットキーデータを読み込み、前記英語版「ページ設定」ダイアログのスクリーンショット下のセルに配置する。更に必要に応じて、コラムに名を付けてセルフォーマットを読みやすい形に整える。同様にステップ1206で、テキストファイル「C:\AutoUI\ Japanese \driver\001.txt」から日本語版「ページ設定」ダイアログの文字列&ホットキーデータを読み込み、前記日本語版「ページ設定」ダイアログのスクリーンショット下のセルに配置する。更に必要に応じて、コラムに名を付けてセルフォーマットを読みやすい形に整える。次、ステップ1207判断部ですべてのUI画面処理が完了したかどうかを判断し、「仕上げ」ダイアログ、「給紙」ダイアログ、「印刷品質」ダイアログ、「ユーザ定義用紙」ダイアログ、「仕上げ詳細」ダイアログ、「色設定」ダイアログに対して、前記ステップ1202〜1207の処理を繰り返す。すべてのダイアログ画面処理が完了したら、前記Excelシートをファイルとして所定のフォルダに保存する。結果、図1のようなプルーフリード用ドキュメントを自動的に作成できる。
【0064】
なお、前記説明はリソース情報が複数画像ファイル及びテキストファイルに格納される場合の処理説明であり、リソース情報がリレーションナルデータベースに格納される場合、データベースに接続しSQLクエリーを使用して、データベースからリソース情報データを抽出して、新規Excelシートに配置することで同様にプルーフリード用ドキュメントを自動的に作成できる。
【0065】
また、本実施例は2言語(英語+日本語)プルーフリード用ドキュメントの自動作成方法を説明したが、本特許で開示した方法で他の言語を簡単に追加することが可能で、2言語以上のドキュメントを作成することも可能である。
【0066】
また、本実施例において、Server−1、Client−A、Client−B、Client−Cは別々のPCで構成されているが、必要に応じて任意のクライアントPCにServer−1の機能を持たせることも可能である。
【0067】
また、本実施例においてはGUIを持つプリンタドライバのローカライズ版プルーフリード用ドキュメントの自動作成方法を例として説明してきたが、プリンタドライバ以外の他のGUIを持つアプリケーションに対しても適応する。
【実施例2】
【0068】
以下本特許の第二の好適な実施例を説明する。
【0069】
第二実施例は図14の示す通り、一台のPCに複数のOSを同時に稼働させるような構成となっている。このような環境を構築するには、まず1401英語版Windows XP(登録商標)をホストOSとしてPCにインストールする。次に、1402マイクロソフト社製Virtual−PCを1401ホストOSにインストールする。更に、Virtual−PCに日本語版Windows XP(登録商標)、韓国語版Windows XP(登録商標)、中国語簡体字版Windows XP(登録商標)、フランス語版Windows XP(登録商標)、ドイツ語版Windows XP(登録商標)等その他のローカル言語版Windows XP(登録商標)をインストールすることで、複数Windows XP(登録商標)を同時に一台のPCに立ち上げることが可能である。Virtual−PC動作時の画面の一例として図15を参照ください。
【0070】
図14の環境において、1403スクリプトが1401英語版Windows XP(登録商標)の記憶装置に格納され、他のOSからアクセスできるように共有されている。リソース情報を保存するための1404リソースデータDBも1401英語版Windows XP(登録商標)に格納され、1403と同様、複数OS間で共有されている。ドキュメント作成プログラムが1401環境で実行できる状態にある。尚且つ、それぞれのWindows XP(登録商標)にOSと同じ言語のプリンタドライバがインストールされ、リソース取得プログラムもインストールされている状態である。
【0071】
実施例1と同様な方法で、1401英語版Windows XP(登録商標)で動作しているリソース取得プログラムは1403スクリプトを読み込み、スクリプトコマンドに従い、英語版プリンタドライバUIを開き、リソース情報を取得して結果を1404リソースデータDBに保存する。
【0072】
また、実施例1と同様な方法で、ローカル言語版Windows XP(登録商標)上で動作しているリソース取得プログラムは1403スクリプトを取得し、スクリプト手順に従い、ローカル言語版プリンタドライバダイアログのリソース情報を取得して結果を1404リソースデータDBに保存する。
【0073】
実施例1と同様な方法で、1401英語版Windows XP(登録商標)で動作しているドキュメント作成プログラムは1404リソースデータDBから、画面スクリーンショットと文字列情報を抽出し、所定のフォーマットで1405プルーフリード用ドキュメントを自動的に作成できる。
【図面の簡単な説明】
【0074】
【図1】自動作成されたプルーフリード用ドキュメントの一例。
【図2】実施例1の全体構成図
【図3】実施例1のメインフロー図
【図4】スクリプトファイルの一例
【図5】プリンタフレンドリーネームの例
【図6】ドライバ印刷設定画面の第一階層
【図7】リソース情報取得ユーティリティのメイン画面
【図8】スクリプトコマンドの実行
【図9】ダイアログのリソース情報取得時の処理フロー
【図10】スクリプト実行後、取得したスクリーンショットの例
【図11】スクリプト実行後、取得した文字列情報の例
【図12】プルーフリード用ドキュメント作成処理のフローチャート
【図13】ドキュメント作成プログラム画面の一例
【図14】第二実施例の構成図
【図15】第二実施例Virtual PC画面。なお、図中、Windows(登録商標) Vistaは登録商標である。

【特許請求の範囲】
【請求項1】
GUIを有するプログラムを実行し、所定の画面操作手続きに従い、前記プログラムのGUI画面を表示させる画面表示制御手段と、前記画面表示制御手段により表示されたGUI画面のスクリーンショット(ビットマップ)を取得できるスクリーンショット取得手段と、前記表示されたGUI画面上のすべてのUI部品の属性情報を取得できるUI部品属性取得手段と、
第一言語のOS環境において、前記スクリーンショット取得手段で取得した画面スクリーンショットと前記UI部品属性取得手段で取得した画面上のUI部品属性情報及び、第二言語のOS環境において、前記スクリーンショット取得手段で取得した画面スクリーンショットと前記UI部品属性取得手段で取得した画面上のUI部品属性情報を一か所に集め、所定フォーマットに従って一つのドキュメント上に配置し、ドキュメントを自動的に生成するドキュメント生成手段と、
を有することを特徴とするプルーフリーディングドキュメント作成方法。
【請求項2】
前記スクリーンショット取得手段で取得した画面スクリーンショットを最終的にプルーフリーディングドキュメントに配置する前に、一時的に画像ファイルに保存できる画像ファイル保存手段を有することを特徴とする請求項1に記載のプルーフリーディングドキュメント作成方法。
【請求項3】
前記画像ファイル保存手段で保存された画像ファイルは画像データ圧縮手段により圧縮されたことを特徴とする請求項2に記載のプルーフリーディングドキュメント作成方法。
【請求項4】
前記UI部品属性取得手段で取得した画面上のUI部品属性情報を最終的にプルーフリーディングドキュメントに配置する前に、一時的に属性情報ファイルに保存できる属性情報ファイル保存手段を有することを特徴とする請求項1に記載のプルーフリーディングドキュメント作成方法。
【請求項5】
前記スクリーンショット取得手段で取得した画面スクリーンショット情報とUI部品属性取得手段で取得した画面上のUI部品属性情報を最終的にプルーフリーディングドキュメントに配置する前に、所定のフォーマットでデータバース(オラクル(登録商標)やSQL)に保存できるデータベース保存手段を有することを特徴とする請求項1に記載のプルーフリーディングドキュメント作成方法。
【請求項6】
前記UI部品属性取得手段により取得されたUI部品属性情報には、UI部品のリソースID、UI部品の文字列、UI部品のホットキー、UI部品のウィンドウクラス名の情報を有することを特徴とする請求項1に記載のプルーフリーディングドキュメント作成方法。
【請求項7】
前記画面操作手続き(スクリプトとも呼ばれる)はGUIプログラム画面の第一階層及び第二階層以降所定のUIダイアログを指定可能あることを特徴とする請求項1に記載のプルーフリーディングドキュメント作成方法。
【請求項8】
前記画面操作手続きに、UIダイアログ階層及び所定のUIダイアログを指定されなかった場合、すべての階層のUIダイアログを自動的に探索できることを特徴とする請求項7に記載のプルーフリーディングドキュメント作成方法。
【請求項9】
前記画面操作手続きは第一ローカル言語や第二ローカル言語の文字列に依存せず、一旦作成した手続きはどのローカル言語にも適応できることを特徴とする請求項1に記載のプルーフリーディングドキュメント作成方法。
【請求項10】
前記画面操作手続きは2つ以上のローカル言語OS間で共有手段により共有できることを特徴とする請求項1に記載のプルーフリーディングドキュメント作成方法。
【請求項11】
請求項1〜請求項10のいずれかに記載のプルーフリーディングドキュメント作成方法を有するプログラム、メディア及び情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2009−146357(P2009−146357A)
【公開日】平成21年7月2日(2009.7.2)
【国際特許分類】
【出願番号】特願2007−326050(P2007−326050)
【出願日】平成19年12月18日(2007.12.18)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】