以下、本発明を、実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。なお、以下に参照する各図においては、共通する要素について同じ符号を用い、適宜その説明を省略するものとする。
図1は、本実施形態の情報処理装置100に表示される画面の例を示す図である。図1(a)は、情報処理装置100のシステムの言語を設定する画面を、図1(b)は、設定された言語が英語である場合の画面を、図1(c)は、設定された言語が日本語である場合の画面を、それぞれ例示している。
本実施形態の情報処理装置100は、スマートホン端末、携帯電話、タブレット端末、パーソナルコンピュータ、PDA(Personal Digital Assistant)などといった種々の装置から選択することができ、例えば、Android(登録商標)OS上で動作するスマートホンやタブレット端末などとすることができる。なお、以下の説明における本実施形態の情報処理装置100は、スマートホン端末を例にして説明するが、実施形態を限定するものではない。
図1(a)は、システムにおける表示言語を選択し、設定する画面を示している。図1(a)では、画面上に各種の言語名が表示されており、ユーザは当該画面から所望の表示言語を選択できる。なお、以下の説明は、表示言語が英語および日本語の場合を例示しているが、当然これら以外の言語であってもよい。
図1(b)、(c)は、システムのホーム画面を例示したものであり、各種アプリケーションのアイコンおよびアプリケーション名が表示されている。図1(a)の設定画面で英語を選択した場合には、図1(b)のような画面が表示され、日本語を選択した場合には、図1(c)のような画面が表示される。
図1(b)および(c)を比較すると、「Mail」をカタカナに置き換えた「メール」や、「Music」を意味する日本語に置き換えられた「音楽」などのように、英語と日本語でそれぞれ対応するアプリケーション名が表示される。このように、システムの設定で選択された言語に応じた用語を表示できる。
ここで、本明細書で使用する用語について説明する。用語データとは、用語を識別する識別情報(以下、「用語ID」として参照する)と、表示する文字列とを対応付けて定義したデータベースであり、各言語に対応した用語が含まれる。デフォルト用語データとは、アプリケーションのインストール時やアップデート時に提供される用語データである。デフォルト用語データは、一般にアプリケーションに組み込まれている。外部定義用語データとは、デフォルト用語データ以外の言語を表示する用語データであり、例えば、アプリケーションのリリース後などに提供される。外部定義用語データは、システム内のアプリケーションからの読み込みが可能な領域に格納される。
補完用語データとは、外部定義用語データのうち、外部定義用語データに定義されていない用語がある場合などに、デフォルト用語データに基づいて外部定義用語データを補完した用語データである。また、補完用語データは、外部定義用語データの新旧を比較した結果に基づいて生成されてもよい。
次に、用語IDと、表示する文字列について、図2および図3を以て説明する。図2は、本実施形態の用語データの例を示す図である。ここではシステムの表示言語を英語から日本語に設定した場合を例に説明する。図2(a)は、用語データの定義を、XML(eXtend Markup Language)形式で記述したファイル(以下、「XMLファイル」として参照する)の例を示している。
XMLファイルには、用語IDと、表示する文字列とが対応付けられており、例えば、用語ID「text_0001」には、表示用文字列「Black & White」が対応付けられている。例えば情報処理装置100のOSがAndroid(登録商標)である場合には、XMLファイルは、「アプリケーションフォルダ>res>values-en」フォルダ内に「string.xml」ファイルとして格納される。なお、「values-en」フォルダの末尾は言語を示しており、例えば「en」であれば英語を、「ja」であれば日本語をそれぞれ示している。
このようにして定義された用語データは、図2(b)のようにまとめられる。図2(b)は、英語で定義されたデフォルト用語データの例を示しており、システムの表示言語が英語である場合には、アプリケーションはこのXMLファイルを参照することで、データベースに基づく文字列を表示する。
ここで、用語IDと、アプリケーションに表示される文字列との対応について説明する。図3は、本実施形態の用語データに基づいて表示されるアプリケーションの画面の例を示す図であり、図3(a)は、アプリケーションで表示される文字列の表示箇所を示している。アプリケーションはデフォルト用語データを参照し、濃い色で示された領域の用語IDに対応する文字列を、当該領域に表示する。
したがって、図2(b)のデフォルト用語データで定義された各表示用文字列が、対応する用語IDの領域に表示されることになり、図3(b)のような画面が表示される。
説明を図2に戻す。図2(c)は、日本語で定義された外部定義用語データの例を示しており、図2(b)のデフォルト用語データと同様に、用語IDと表示用文字列とが対応付けて保持されている。外部定義用語データは、アプリケーションからの読み込みが可能な領域に格納される。システムの表示言語が日本語である場合には、アプリケーションはこのデータベースを参照して文字列を表示する。
図2(b)および(c)において同じ用語IDを参照すると、「text_0001」は、図2(b)では「Black & White」として定義されており、図2(c)では「Black & White」を意味する日本語の「白黒」として定義されており、他の用語IDも同様にして定義されている。一方で、外部定義用語データでは、図2(c)の濃い色で示される箇所のように、表示用文字列が定義されていない場合がある。このような場合には、アプリケーションは外部定義用語データを参照しても、表示用文字列がないため用語の置き換えが行うことができず、適切な画面が表示されない。
このような場合においても適切に画面表示をするために、本実施形態では、デフォルト用語データに基づいて、未定義の用語を補完した、補完用語データとしての外部定義用語データを生成する。補完した外部定義用語データを生成することで、アプリケーションは当該用語データを参照して適切な文字列を表示できる。
すなわち、以下のようにして、アプリケーションは用語の置き換えを行うことができる。まず、リリース時には英語のみに対応していたアプリケーションは、英語のデフォルト用語データが提供されている。その後、システムの表示言語の設定が変更され、当該アプリケーションで日本語を表示する場合には、提供された日本語の外部定義用語データに基づいて表示する。外部定義用語データに定義されていない用語がある場合には、補完用語データを生成し、当該補完用語データに基づいて、日本語での表示を行うことができる。
ここまで、本実施形態の用語データのデータベースについて説明した。次に、情報処理装置100のハードウェア構成について説明する。図4は、本実施形態の情報処理装置100に含まれるハードウェア構成を示す図である。情報処理装置100は、CPU401と、RAM402と、ROM403と、記憶装置404と、通信I/F405と、モニタ406と、入力装置407とを含んで構成され、各ハードウェアはバスを介して接続されている。
CPU401は、情報処理装置100の動作を制御するプログラムを実行し、所定の処理を行う装置である。RAM402は、CPU401が実行するプログラムの実行空間を提供するための揮発性の記憶装置であり、プログラムやデータの格納用、展開用として使用される。ROM403は、CPU401が実行するプログラムやファームウェアなどを記憶するための不揮発性の記憶装置である。
記憶装置404は、情報処理装置100を機能させるOSや各種アプリケーション、設定情報、各種データなどを記憶する、読み書き可能な不揮発性の記憶装置である。通信I/F405は、情報処理装置100とネットワークとを接続し、ネットワークを介して、他の装置との通信を可能にする。ネットワークを介した通信は、有線通信または無線通信のいずれであってもよく、TCP/IPなどの所定の通信プロトコルを使用し、各種データを送受信できる。
モニタ406は、各種データや情報処理装置100の状態などを、ユーザに対して表示する表示装置であり、例として、LCD(Liquid Crystal Display)などが挙げられる。入力装置407は、ユーザが情報処理装置100を操作するための装置であり、例として、キーボード、マウスなどが挙げられる。なお、モニタ406と入力装置407は、それぞれ別個の装置であってもよいし、タッチパネルディスプレイのような両方の機能を備えるものであってもよい。
以上、本実施形態の情報処理装置100に含まれるハードウェア構成について説明した。次に、本実施形態における各ハードウェアによって実行される機能手段について、図5を以て説明する。図5は、本実施形態の情報処理装置100に含まれるソフトウェアブロック図である。
情報処理装置100は、外部定義用語データ入力部501、デフォルト用語データ取得部502、用語データ比較部503、用語データ補完部504、記憶部505の各種機能手段を含んで構成される。また、情報処理装置100には、OSや種々の機能を有するアプリケーションがインストールされている。
外部定義用語データ入力部501は、外部定義用語データの入力を受け付ける手段である。外部定義用語データは、一例として、ネットワークから取得することができる。入力された外部定義用語データは、用語データ比較部503に通知される。また、外部定義用語データは、記憶部505のシステムデータエリア505aに格納されてもよい。
デフォルト用語データ取得部502は、アプリケーションが保持するデフォルト用語データを取得する手段である。デフォルト用語データは、記憶部505のアプリケーションデータエリア505bに格納されており、デフォルト用語データ取得部502によって取得され、用語データ比較部503に通知される。
用語データ比較部503は、デフォルト用語データと外部定義用語データとを比較し、外部定義用語データに不足している用語の用語IDを抽出する手段である。また、用語データ比較部503は、記憶部505のシステムデータエリア505aに格納されている外部定義用語データと、新たに入力された外部定義用語データとを比較することができる。すなわち、以前に入力された外部定義用語データと、新しく入力された外部定義用語データを比較することで、定義されている用語が更新されているかを判定することができる。用語データ比較部503が比較し、抽出または判定した結果は、用語データ補完部504に通知される。
用語データ補完部504は、用語データ比較部503からの通知に基づいて補完が必要な表示用文字列を特定し、用語データを補完した補完用語データとしての外部定義用語データを生成する手段である。また、用語データ補完部504は、文字数を優先した補完や、単語を優先した補完など、補完を行う優先基準をユーザに選択させることができ、当該基準に基づいて補完用語データを生成できる。
外部定義用語データに不足している用語がある場合には、デフォルト用語データに基づいて外部定義用語データを補完した用語データを生成する。また、定義されている用語が更新されている場合には、今回入力された外部定義用語データにおいて更新のあった用語を、以前に入力された外部定義用語データに反映した補完用語データを生成する。また、補完用語データは、各用語が補完された用語であるか否か、すなわち、補完の有無を識別するためのフラグ(以下、「補完フラグ」として参照する)として補完識別情報が付加された、拡張外部定義用語データとして生成されてもよい。用語データ補完部504が生成した用語データは記憶部505のシステムデータエリア505aに格納される。
記憶部505は、記憶装置404に各種用語データを記憶する手段であり、システム(OS)に割り当てられた記憶領域としてのシステムデータエリア505aと、各アプリケーションに割り当てられた記憶領域としてのアプリケーションデータエリア505bとを含む。記憶部505の詳細について、図6を以て説明する。図6は、本実施形態の記憶部505が保持するデータ領域およびデータベースを説明する図である。
記憶部505に含まれるシステムデータエリア505aには、外部定義用語データエリア601および拡張外部定義用語データエリア602が割り当てられる。これらのデータエリアには、各アプリケーションに対応した外部定義用語データが、言語ごとに格納される。格納される外部定義用語データは、外部定義用語データ入力部501に入力されたものに限らず、用語データ補完部504が生成した、補完用語データとしての外部定義用語データや拡張外部定義用語データであってもよい。
また、デフォルト用語データは、アプリケーションデータエリア505b内にアプリケーションに組み込まれて格納される。アプリケーションが保持するデフォルト用語データは、言語ごとにXMLファイルとして保持される。
アプリケーションは、各種用語データを用いて当該アプリケーションに係る画面を、表示装置に表示する表示制御手段を含む。アプリケーションは、画面の表示制御を行う場合には、システムデータエリア505aまたはアプリケーションデータエリア505bにアクセスし、システムで選択されている表示言語の用語データを参照することで、アプリケーションの用語をシステムで選択されている言語で以て表示できる。
例えば、システムで選択されている言語の用語データが、アプリケーションデータエリア505b内にデフォルト用語データとして格納されている場合には、アプリケーションは当該デフォルト用語データに基づいて文字列を表示する。また、システムで選択されている言語の用語データが、アプリケーションデータエリア505b内にデフォルト用語データとして格納されていない場合には、アプリケーションはシステムデータエリア505aを参照する。そして、アプリケーションは、参照した用語データに基づいて、用語IDに対応する表示用文字列に置き換えて表示する。
なお、図5および図6に示したソフトウェアブロックは、CPU401が本実施形態のプログラムを実行することで、各ハードウェアを機能させることにより、実現される機能手段に相当する。また、各実施形態に示した機能手段は、全部がソフトウェア的に実現されても良いし、その一部または全部を同等の機能を提供するハードウェアとして実装することもできる。
次に、本実施形態において、外部定義用語データに基づくアプリケーションの画面表示について説明する。図7は、本実施形態においてシステムの表示言語を変更した場合に表示されるアプリケーションの画面の例を示す図である。
以下では、システムの表示言語を英語から日本語に変更して設定した場合であって、デフォルト用語データに日本語の用語データがない場合を例に説明する。表示言語が英語に設定されていた場合では、アプリケーションは図3(b)に例示する画面を表示する。その後、ユーザが表示言語を日本語に設定し、当該アプリケーションを起動すると、情報処理装置100は日本語の用語データを持っていないため、アプリケーションの用語を日本語で表示できず、図7(a)に示すポップアップが表示される。
図7(a)では、ユーザに対して日本語の用語データがない旨、および日本語の用語データを取得するか否かの選択を通知する。図7(a)の画面でユーザが「ダウンロード」を選択した場合には、アプリケーションストアやダウンロードサイトなどにアクセスし、日本語で定義された外部定義用語データをダウンロードする。ダウンロードされた外部定義用語データは、一例として、図2(c)に示す用語データであって、外部定義用語データ入力部501に入力される。
一方で、図2(c)に示す用語データは、text_0007やtext_0023の用語が定義されておらず、アプリケーションはこれらの用語IDに対応する用語を日本語で表示することができない。したがって、本実施形態では、デフォルト用語データに基づいて当該外部定義用語データに補完処理を行い、補完用語データとしての外部定義用語データを生成する。
図8は、本実施形態において補完された外部定義用語データの例を示す図である。図8(a)は、図2(b)のデフォルト用語データに基づいて、図2(c)の外部定義用語データを補完した場合の外部定義用語データの例を示している。例えば、用語ID「text_0007」の用語は、デフォルト用語データでは「Scan Size」として定義されている。一方で、「Scan」と「Size」に対応する用語ID「text_0020」と「text_0021」は、日本語の外部定義用語データにおいて、それぞれ「読み取り」、「サイズ」として定義されている。したがって、本実施形態の用語データ補完部504は、外部定義用語データの用語ID「text_0007」の用語を、「読み取りサイズ」として定義し、補完する。
「text_0023」の用語も同様にして補完することができる。デフォルト用語データの中に「not」に対応する用語が定義されていない場合には、図8(a)に示すように「text_0023」の用語を「not読み取り開始」と定義してもよい。また、デフォルト用語データ以外のデータベースを参照して補完してもよく、例えば英語の「not」と日本語の「しない」とが対応付けられたデータベースがあれば、このデータベースを利用して、「text_0023」の用語を「読み取り開始しない」と定義してもよい。
上述のようにして補完された外部定義用語データは、記憶部505の外部定義用語データエリア601に格納される。アプリケーションは、この用語データを読み込むことでアプリケーションに表示する用語を取得でき、適切な用語の置き換えを実施することができる。すなわち、図2(c)の外部定義用語データでは図3(a)に示す「text_0007」の領域に適切な文字列が表示されないが、図8(a)に示す補完された外部定義用語データでは、「text_0007」の領域に「読み取りサイズ」と表示される。このようにして補完処理された外部定義用語データを用いることで、図7(b)に示すように適切に用語が置き換えられたアプリケーションの画面が表示できる。
なお、補完された外部定義用語データには、補完フラグを拡張情報として付加し、拡張外部定義用語データとして生成されてもよい。図8(b)は、拡張外部定義用語データの例を示しており、図8(a)のデータのうち、補完処理された用語である「text_0007」および「text_0023」は、補完の有無が「有り」として記録されている。
ここまで、外部定義用語データの補完について説明した。次に、本実施形態において情報処理装置100が実行する具体的な処理について説明する。図9は、本実施形態においてシステムの表示言語を変更した場合に用語を表示する処理のシーケンス図である。
ユーザはシステムの表示言語を変更し、ステップS1001でアプリケーションを起動する。アプリケーションは、ステップS1002でシステムに対して、表示する文字列の取得を依頼し、さらにステップS1003で、表示する用語IDを通知する。ステップS1003で通知する用語IDは、図3(a)に示すような表示画面に対応する。
用語IDの通知を受けたシステムは、ステップS1004で、記憶部505を参照し、変更後の表示言語の外部定義用語データが記憶されているか否かをチェックする。外部定義用語データが記憶されている場合には、ステップS1005〜S1007の処理を行う。外部定義用語データが記憶されていない場合には、ステップS1008〜S1012の処理を行う。
まず、外部定義用語データが記憶されている場合について説明する。ステップS1005では、システムは、ステップS1003で通知された用語IDに対応する表示用文字列を、当該外部定義用語データから取得する。その後、ステップS1006で、システムは取得した文字列をアプリケーションに通知し、ステップS1007でアプリケーションは、文字列をモニタ406に表示する。
次に、外部定義用語データが記憶されていない場合について説明する。ステップS1008では、外部定義用語データが未登録である旨をシステムに通知し、ステップS1009で、システムは表示する文字列がない旨をアプリケーションに通知する。なお、アプリケーションは、図7(a)の画面を表示し、ユーザに対して外部定義用語データの取得を促してもよい。
外部定義用語データがない場合に、アプリケーションは変更後の表示言語での文字列表示ができないため、デフォルト用語データにある表示言語で文字列を表示する。したがって、表示用文字列がない旨の通知を受けたアプリケーションは、ステップS1010で、記憶部505に対してデフォルト用語データの取得を依頼する。記憶部505は、デフォルト用語データをアプリケーションに通知し、アプリケーションはデフォルト設定されている用語データの言語で文字列を表示する。
以上、システムの表示言語を変更した場合に用語を表示する処理について説明した。次に、本実施形態における補完処理について説明する。図10および図11は、本実施形態において外部定義用語データに基づいて補完用語データを生成する処理のシーケンス図である。まず、図10について説明する。
ステップS2001で、ユーザは、外部定義用語データを入力する操作を行う。外部定義用語データを入力する操作とは、一例として図7(a)の画面から用語データをダウンロードする操作である。なお、情報処理装置100は、外部定義用語データを入力する操作を受けなくても外部定義用語データを取得することができる。例えば選択された表示言語の用語データの有無を判定し、用語データがないと判定した場合に、ネットワークなどの外部のソースから外部定義用語データを取得してもよい。
ステップS2001などの処理によって外部定義用語データ入力部501に外部定義用語データが入力されると、ステップS2002で、入力された外部定義用語データを用語データ比較部503に通知する。通知を受けた用語データ比較部503は、ステップS2003で、デフォルト用語データ取得部502に対して、デフォルト用語データを要求する。
ステップS2003の要求を受けたデフォルト用語データ取得部502は、ステップS2004でアプリケーションデータエリア505bにデータの取得を依頼し、ステップS2005でデフォルト用語データの通知を受ける。その後、デフォルト用語データ取得部502は、ステップS2006で、取得したデフォルト用語データを用語データ比較部503に提供する。
デフォルト用語データを取得した用語データ比較部503は、ステップS2007、S2008でシステムデータエリア505aに対して拡張外部定義用語データの有無を確認する。初めて補完処理を行う場合など、システムデータエリア505aに拡張外部定義用語データがない場合には、ステップS2009〜S2011の処理を行う。一方で、以前に補完処理を行ったことがある場合など、システムデータエリア505aに拡張外部定義用語データがある場合には、ステップS2012〜S2014の処理を行う。
まず、拡張外部定義用語データがない場合について説明する。用語データ比較部503は、ステップS2009で、入力された外部定義用語データのうち、未定義データを検索する。具体的には、外部定義用語データに含まれる用語IDと、デフォルト用語データに含まれる用語IDとを比較する。そして、デフォルト用語データには含まれているが、外部定義用語データには含まれていない用語IDを検索し、抽出する。その後、ステップS2010では、ステップS2009で抽出された用語IDを、未定義の用語IDとして用語データ補完部504に通知する。
用語データ比較部503からの通知を受けた用語データ補完部504は、ステップS2011で、未定義の用語IDに基づいて補完が必要な用語を特定し、用語の補完処理を行う。なお、用語の補完処理の詳細は後述する。
次に、拡張外部定義用語データがある場合について説明する。用語データ比較部503は、ステップS2012で、入力された外部定義用語データのうち、新規入力用語を検索する。具体的には、入力された外部定義用語データと拡張外部定義用語データとを比較する。補完フラグが「無し」である用語は、以前に入力された外部定義用語データにおいて定義済みであった用語であることから、今回入力された外部定義用語データと比較することで、差分を抽出する。また、補完フラグが「有り」である用語は、以前に入力された外部定義用語データにおいて定義されていない用語であることから、新規に入力された外部定義用語データで定義されているか否かを判定する。
その後、ステップS2013で、用語データ比較部503は、抽出された差分や判定結果などの検索結果を用語データ補完部504に対して通知する。用語データ補完部504は、ステップS2014で、通知された検索結果に基づいて補完が必要な用語を特定し、補完処理を行う。補完処理は、上記の比較において差分があった用語や新規に定義された用語について、拡張外部定義用語データの用語を更新することで行う。また、新規に入力された外部定義データに定義されていなくても、当該外部定義データに含まれる他の用語と、デフォルト用語データとを用いることで、補完フラグ有りの用語をより適切な用語に置き換えることができる。
ステップS2011またはS2014で補完処理された後、用語データ補完部504は、ステップS2015で補完用語データとしての外部定義用語データを生成する。ここで生成される外部定義用語データは、拡張外部定義用語データであってもよい。その後、ステップS2016で、生成した補完用語データをシステムデータエリア505aに記憶する。
なお、図10に示した補完処理は拡張外部定義用語データに基づいて差分を抽出したが、図11に示すように、前回入力された外部定義用語データ(以下、「旧入力用語データ」として参照する)に基づいて差分を抽出し、新たに定義された用語について補完処理をしてもよい。以下に、旧入力用語データに基づく補完処理について説明する。
ステップS3001およびS3002は、ステップS2001およびS2002と同様に、外部定義用語データを入力し、用語データ比較部503に通知する。なお、直近で入力された外部定義用語データを、「新入力用語データ」として参照することで、旧入力用語データと区別する。その後、ステップS3003では、用語データ比較部はシステムデータエリア505aに対して、旧入力用語データの取得を依頼し、ステップS3004で、システムデータエリア505aから通知を受ける。
旧入力用語データを受領した用語データ比較部503は、ステップS3005で、用語データの差分を抽出する。具体的には、新入力用語データと、旧入力用語データとを比較する。そして、新入力用語データには含まれていて、旧入力データに含まれていない文字列を、両者の差分として抽出する。抽出された文字列は、当該文字列に対応する用語IDと併せて抽出結果として、ステップS3007で、用語データ補完部504に通知される。
なお、このとき用語データ比較部503は、ステップS3006で、新入力用語データをシステムデータエリア505aに保存する。このようにして新入力用語データを保存することで、以降に新たに外部定義用語データが入力された場合にも、本処理と同様にして、外部定義用語データの新旧に基づく補完処理を行うことができる。
抽出結果の通知を受けた用語データ補完部504は、ステップS3008で未定義の用語IDに基づいて補完が必要な用語を特定し、補完処理を行う。その後、ステップS3009で、補完された外部定義用語データを生成し、ステップS3010で、システムデータエリア505aに保存する。
ここまで、外部定義用語データに基づいて補完用語データを生成する処理について説明した。以下では、本実施形態において、各用語に対して行われる補完処理についてより具体的に説明する。図12は、本実施形態における補完処理のフローチャートである。
まず、本実施形態の情報処理装置100は、ステップS4000から処理を開始する。次に、ステップS4001で、外部定義用語データの入力を受け付ける。その後、ステップS4002で、デフォルト用語データを取得する。ここで、外部定義用語データに含まれる登録用語数をJ個とし、デフォルト用語データに含まれる登録用語数をN個とする。なお、ステップS4001およびS4002の処理は、図10におけるステップS2001からS2006の処理に対応する。
次に、ステップS4003で、デフォルト用語データのうち1番目の用語IDを取り出す。また、このときn=1としてカウントする。ステップS4004では、用語データ比較部503は、ステップS4003で取り出した用語IDが外部定義用語データに含まれているか否かの判定、すなわち定義/未定義判定をする。用語IDが外部定義用語データに含まれていない場合には(NO)、用語が未定義であることから、ステップS4005に処理を分岐する。また、用語IDが外部定義用語データに含まれている場合には(YES)、用語が定義済みであることから、ステップS4006に処理を分岐する。
ステップS4005では、用語データ補完部504が、当該用語IDの用語の補完処理を行う。例えばステップS4005で実行される補完処理は、一致する文字数を優先するモードや、一致する単語を優先するモードなどで行うことができる。これらの優先するモードは、ユーザがあらかじめ設定でき、例えば、図13に示す画面によって選択できる。図13は、本実施形態において補完処理時に優先するモードを選択する画面の例を示す図である。
図13に示す画面は、アプリケーションの用語の置き換えの設定を行う画面であり、ユーザは優先するモードを、文字数優先とするかまたは単語優先とするかを選択することができる。なお、それぞれのモードにおける補完処理の詳細については後述する。さらに、図13に示す設定は、実施形態を限定するものではなく、これら以外の優先モードによって用語を置き換えてもよい。
説明を図12に戻す。ステップS4004において用語IDが外部定義用語データに含まれていると判定した後、またはステップS4005で補完処理を行った後、ステップS4006に進む。ステップS4006では、n<Nであるか、すなわち、判定対象または補完対象であった用語IDの番号が、デフォルト用語データに含まれる用語数よりも小さいかを判定する。n<Nである場合には、定義/未定義判定を行っていない用語IDがあることから、ステップS4007に処理を分岐する。一方で、n<Nでない場合には、全ての用語IDについて定義/未定義判定を行ったことから、ステップS4008に処理を分岐する。
ステップS4007では、デフォルト用語データのうち(n+1)番目の用語IDを取り出す。また、このときn=n+1としてカウントアップする。そして、ステップS4004の処理に戻り、ステップS4004〜S4006の処理を繰り返す。なお、これらの処理は、デフォルト用語データに含まれる全ての登録文字列に対して実行され、ステップS4006においてn=Nとなるまで繰り返される。
ステップS4006でn<Nでないと判定された場合、すなわち、デフォルト用語データに含まれる全ての登録文字列に対して判定処理および補完処理が行われた後、ステップS4008に進む。ステップS4008で、用語データ補完部504は、補完処理された、補完用語データとしての外部定義用語データを生成し、記憶部505に保存する。その後、ステップS4009で処理を終了する。
上述した処理によって、入力された外部定義用語データの未定義の用語を補完した、補完用語データとしての外部定義用語データを生成できる。
次に、ユーザが選択した優先するモードによる補完処理について説明する。ステップS4005の処理は、ユーザが選択したモードによって処理が異なり、文字数優先の場合には図14に示す処理を行い、単語優先の場合には図15に示す処理を行う。まず、文字数優先の場合について説明する。図14は、本実施形態において一致する文字数を優先した補完処理のフローチャートである。
情報処理装置100は、ステップS5000から処理を開始する。ステップS5000以降の処理は、図12のステップS4004において、用語IDが外部定義用語データに含まれていないと判定されたことを契機に開始される。なお、上述したように外部定義用語データに含まれる登録用語数はJ個であって、処理開始時にj=1としてカウントする。
次に、ステップS5001で補完モードが文字数優先の補完であるかを判定する。補完モードの選択は、図13に示した画面によってユーザがあらかじめ行うことができる。文字数優先の補完モードである場合(YES)には、以下に説明する処理を行う。また、文字数優先の補完モードでない場合(NO)には、図15のステップS6001に進み、後述する単語優先の補完処理を行う。
ステップS5002では、外部定義用語データのうち、1番目の用語IDの登録文字列を抽出する。その後、ステップS5003で、デフォルト用語データの表示用文字列と、外部定義用語データの表示用文字列とを比較する。具体的には、ステップS5002で抽出した文字列と、デフォルト用語データに含まれる各文字列とを比較し、合致する文字数を比較結果として取得する。
次に、ステップS5004で、ステップS5003において比較した結果の合致する文字数が、補完候補の文字列よりも多いか否かを判定し、最も多いと判定した場合(YES)にはステップS5005に処理を分岐し、当該文字列を補完候補として保持する。例えば、j=1のときは、補完候補の文字列がないことから、文字数が多いと判定し、ステップS5005で補完候補として保持される。また、j>2のときには、補完候補として保持されている文字列の文字数と比較して、文字数が多いかを判定する。このとき、文字数が多いと判定された場合には、ステップS5005で、保持する文字列を更新することで、当該文字列を補完候補として保持する。
ステップS5004において補完候補よりも文字数が少ないと判定された場合(NO)、または、ステップS5005で補完候補として保持する処理を行った後、ステップS5006に進む。ステップS5006では、j<Jであるか、すなわち、処理対象として抽出された用語IDの番号が、外部定義用語データの用語登録数よりも小さいかを判定する。j<Jである場合(YES)には、ステップS5009に処理を分岐し、j<Jでない場合(NO)には、ステップS5007に処理を分岐する。
ステップS5007では、未補完の用語があり、かつ、当該未補完の部分が前回と状況が異なる、すなわち、未補完部分の用語に変化があるかを判定する。具体的には、補完対象の文字列のうち補完候補の文字列を除外した文字列を、未補完の部分とする。そして、今回の補完対象となっている文字列と、未補完の部分が一致するかを判定する。なお、外部定義用語データが初めて入力された場合は、補完対象となっている文字列と、未補完の部分が一致しないことから、前回と状況が異なるということに相当する。
ステップS5007において、未補完の単語があり、かつ、前回と状況が異なる場合(YES)には、ステップS5008に処理を分岐する。ステップS5008では、jの値を0にリセットし、ステップS5009に進む。そして、未補完の部分を新たな補完対象として、ステップS5002に戻り、補完候補となる文字列を検索する。このように、未補完の部分について、繰り返し検索処理を行うことで、複数の用語を組み合わせて補完でき、正確な用語の置き換えが可能となる。
また、ステップS5007において、未補完の用語がないか、または、前回と状況が同じである場合(NO)には、ステップS5010に処理を分岐する。例えば、未補完の用語があっても、当該未補完の用語がデフォルト用語データにない場合には、これ以上検索しても補完候補を抽出することができないため、この段階までで補完候補となっている用語によって補完を行う。
ステップS5009では、jの値をj+1としてカウントアップし、ステップS5002の処理に戻る。以降、ステップS5002〜S5009の処理を、未補完の用語がなくなるか、または、前回と状況が同じであると判定されるまで繰り返す。
ステップS5010では、補完候補の文字列と、デフォルト用語データから、補完用の表示用文字列を生成する。その後、ステップS5011で、ステップS5010で生成した表示用文字列に基づいて、外部定義用語データにおける未定義の用語IDを補完する。そして、ステップS5012で処理を終了し、図12のS4005の処理を完了する。
ここまでで説明した文字数を優先した補完処理について、より具体的な例で以て説明する。ここでは、図2(c)の外部定義用語データを、図2(b)のデフォルト用語データに基づいて、文字数を優先して補完する場合について説明する。
例えば、「text_0023」を補完する場合には、デフォルト用語データの「Not Start Scan」に含まれる文字列は、「text_0020」の「Scan」に対応する「読み取り」や、「text_0022」の「Start Scan」に対応する「読み取り開始」などが補完候補となり得る。ここでは、一致する文字数が多い用語を優先することから、文字数の多い「読み取り開始」が最終的な補完候補となり、「text_0023」は「not 読み取り開始」として補完される。
以上、文字数を優先した場合の補完処理について説明した。上述したフローチャートの処理によって、一致する文字数が最も多い用語を補完する用語とすることができる。
次に単語優先の場合について説明する。図15は、本実施形態において一致する単語を優先した補完処理のフローチャートである。
情報処理装置100は、ステップS6000から処理を開始する。ステップS6000以降の処理は、図12のステップS4004において、用語IDが外部定義用語データに含まれていないと判定されたことを契機に開始される。なお、文字数優先の補完モードの場合と同様に、外部定義用語データに含まれる登録用語数はJ個であって、処理開始時にj=1としてカウントする。
次に、ステップS6001で補完モードが単語優先の補完であるかを判定する。補完モードの選択は、図13に示した画面によってユーザがあらかじめ行うことができる。単語優先の補完モードである場合(YES)には、以下に説明する処理を行う。また、単語優先の補完モードでない場合(NO)には、図14のステップS5001に進み、上述した文字数優先の補完処理を行う。したがって、ステップS6001の処理は、図14におけるステップS5001の処理と、相補的な関係にある。
ステップS6002では、外部定義用語データのうち、1番目の用語IDの登録文字列を抽出する。なお、ステップS6002の処理は、図14におけるステップS5002の処理と同様である。その後、ステップS6003で、ステップS6002で抽出した文字列が単語であるか否かを判定する。単語である場合(YES)には、当該文字列が補完の候補となり得ることから、ステップS6004に処理を分岐する。また、単語でない場合(NO)には、当該文字列は補完の候補となり得ないことから、ステップS6007に進む。
ステップS6002から分岐された後、ステップS6004では、デフォルト用語データの表示用文字列と、外部定義用語データの表示用文字列とを比較する。その後、ステップS6005で、合致する単語があるか否かを判定する。具体的には、ステップS6002で抽出した文字列と、デフォルト用語データに含まれる各文字列とを比較することで、合致する単語の有無を判定する。ステップS6005で合致する単語があると判定した場合(YES)には、ステップS6006に処理を分岐し、当該文字列を補完候補として保持する。
ステップS6005において合致する単語がないと判定した場合(NO)、または、ステップS6006で補完候補として保持する処理を行った後、ステップS6007に進む。ステップS6007では、j<Jであるか、すなわち、処理対象として抽出された用語IDの番号が、外部定義用語データの用語登録数よりも小さいかを判定する。j<Jである場合(YES)には、ステップS6008に処理を分岐し、j<Jでない場合(NO)には、ステップS6009に処理を分岐する。なお、ステップS6007の処理は、図14におけるステップS5006の処理と同様である。
ステップS6008では、jの値をj+1としてカウントアップし、ステップS6002の処理に戻る。以降、ステップS6002〜S6007の処理を、j=Jとなるまで、すなわち、外部定義用語データに含まれる全ての用語に対して実行する。
ステップS6009では、補完候補の文字列と、デフォルト用語データから、補完用の表示用文字列を生成する。その後、ステップS6010で、ステップS6009で生成した表示用文字列に基づいて、外部定義用語データにおける未定義の用語IDを補完する。そして、ステップS6011で処理を終了し、図12のS4005の処理を完了する。
ここまでで説明した単語を優先した補完処理について、より具体的な例で以て説明する。上述した文字数優先の例と同様に、以下では、図2(c)の外部定義用語データを、図2(b)のデフォルト用語データに基づいて、単語を優先して補完する場合について説明する。
例えば、「text_0023」を補完する場合には、デフォルト用語データの「Not Start Scan」に含まれる文字列は、「text_0020」の「Scan」に対応する「読み取り」が補完候補となり得る。一方で、「text_0022」の「Start Scan」に対応する「読み取り開始」は単語ではないことから、補完候補とはならない。したがって、合致する単語に基づいて補完することから、「text_0023」は「not start 読み取り」として補完される。
なお、上述の各優先モードの具体例ではそれぞれ、「not 読み取り開始」と「not start 読み取り」となったが、各優先モードの置き換え結果の優劣を示すものではない。すなわち、用語の内容や、各用語データの定義によって、好適なモードを適宜選択でき、これによって、より妥当な用語の置き換えが可能となる。
以上、単語を優先した場合の補完処理について説明した。上述したフローチャートの処理によって、単語の意味に準じた用語によって補完できる。
このようにして、ユーザが選択したモードに応じて、外部定義用語データの未定義の用語を補完することができ、入力された外部定義用語データを、補完用語データとしての外部定義用語データを生成することができる。
以上、説明した本発明の実施形態によれば、置き換え後の用語が全て定義されていない場合であっても、アプリケーションの表示言語を置き換えができる情報処理装置、情報処理方法およびプログラムを提供することができる。
上述した本発明の実施形態の各機能は、C、C++、C#、Java(登録商標)等で記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、CD−ROM、MO、DVD、フレキシブルディスク、EEPROM、EPROM等の装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
以上、本発明について実施形態をもって説明してきたが、本発明は上述した実施形態に限定されるものではなく、当業者が推考しうる実施態様の範囲内において、本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。