(57)【特許請求の範囲】
【請求項１】
ユーザによる入力を受け付ける入力デバイスと、
文字列を含む画像を表示する表示手段と、を有する情報処理装置であって、
ユーザが使用する言語を表す第１の言語情報を含むユーザ情報であって、前記第１の言語情報を含む第１のフォント優先リストと関連付く前記ユーザ情報を保持するユーザ情報保持手段と、
前記ユーザ情報を、前記入力デバイスから入力される認証に必要な情報と照合することでユーザの認証処理を行う認証手段と、
前記第１の言語情報に次いで優先的に用いられる第２の言語情報が、前記情報処理装置が設置されている地域で用いられる言語の言語情報となるように、前記第１の言語情報及び前記第２の言語情報に基づいて第２のフォント優先リストを作成するフォント優先リスト制御手段と、を備え、
前記表示手段は、前記認証手段で認証されたユーザの前記ユーザ情報に含まれる前記第１の言語情報を最優先に用いることで前記文字列を表示し、
前記フォント優先リスト制御手段は、前記第２のフォント優先リストにおいて前記第２の言語情報に次いで優先的に用いられる言語情報を、前記第１のフォント優先リストにおいて前記第１の言語情報に次ぐ優先順位である第３の言語情報とすることを特徴とする、
情報処理装置。
【請求項２】
前記フォント優先リスト制御手段は、前記第１の言語情報で表される言語と前記第２の言語情報で表される言語とが異なるときに、前記第２のフォント優先リストを作成することを特徴とする、
請求項１記載の情報処理装置。
【請求項３】
予め設定された言語毎の優先順位が異なる複数のデフォルトの前記第１のフォント優先リストを保持するフォント優先リスト保持手段を備えており、
前記フォント優先リスト制御手段は、前記第１の言語情報の言語に対応する前記第１のフォント優先リストを前記フォント優先リスト保持手段から取得し、取得した前記第１のフォント優先リストに含まれる言語の優先順位の並び替えを行うことで、前記第２のフォント優先リストを作成することを特徴とする、
請求項１又は２記載の情報処理装置。
【請求項４】
前記フォント優先リスト制御手段で作成された前記第２のフォント優先リストを、前記第１の言語情報及び前記第２の言語情報とともに記憶するキャッシュ手段を備えており、
前記フォント優先リスト制御手段は、前記第２のフォント優先リストを前記キャッシュ手段に記憶させた後に、次の第２のフォント優先リストを作成する際に取得した第１の言語情報及び第２の言語情報が前記キャッシュ手段に記憶された前記第１の言語情報及び前記第２の言語情報に一致すれば、前記キャッシュ手段に記憶された前記第２のフォント優先リストを前記文字列の描画に用いるフォント優先リストとすることを特徴とする、
請求項１〜３のいずれか１項記載の情報処理装置。
【請求項５】
前記第２のフォント優先リストに基づいて、前記文字列の描画を行うフォント描画処理手段と、
言語毎の前記文字列を表す言語メッセージデータを格納する言語メッセージデータ格納手段と、
前記認証手段から前記第１の言語情報を含む表示言語の切替指示を受け付けて、前記言語メッセージデータ格納手段から、該第１の言語情報で表される言語の前記言語メッセージデータを取得し、展開して保持する言語切替手段と、
前記言語切替手段に展開された前記言語メッセージデータから前記文字列を生成して前記フォント描画処理手段に送信するアプリケーション手段と、を備えることを特徴とする、
請求項１〜４のいずれか１項記載の情報処理装置。
【請求項６】
前記第２の言語情報を格納するデバイス言語格納手段と、
前記言語切替手段から前記第１の言語情報を含む表示言語の切替通知を受信して、前記第１の言語情報を第１の保持手段に保持させ、前記デバイス言語格納手段から取得した前記第２の言語情報を第２の保持手段に保持させるフォント言語切替処理手段とを備え、
前記フォント優先リスト制御手段は、前記第１の保持手段から前記第１の言語情報を取得し、前記第２の保持手段から前記第２の言語情報を取得することを特徴とする、
請求項５記載の情報処理装置。
【請求項７】
前記第２の言語情報は、前記第２のフォント優先リストにおいて、前記第２のフォント優先リスト中の他の言語情報と重複しないことを特徴とする、
請求項１〜６のいずれか１項記載の情報処理装置。
【請求項８】
ユーザによる入力を受け付ける入力デバイスと、文字列を含む画像を表示する表示手段と、を有する情報処理装置により実行される方法であって、
ユーザが使用する言語を表す第１の言語情報を含むユーザ情報であって、前記第１の言語情報を含む第１のフォント優先リストと関連付く前記ユーザ情報を保持するユーザ情報保持ステップと、
前記ユーザ情報を、前記入力デバイスから入力される認証に必要な情報と照合することでユーザの認証処理を行う認証ステップと、
前記表示手段に、前記認証ステップで認証されたユーザの前記ユーザ情報に含まれる前記第１の言語情報を最優先に用いることで前記文字列を表示させるステップと、
前記第１の言語情報に次いで優先的に用いられる第２の言語情報が、前記情報処理装置が設置されている地域で用いられる言語の言語情報となるように、前記第１の言語情報及び前記第２の言語情報に基づいて第２のフォント優先リストを作成するフォント優先リスト作成ステップと、を行い、
前記フォント優先リスト作成ステップでは、前記第２のフォント優先リストにおいて前記第２の言語情報に次いで優先的に用いられる言語情報を、前記第１のフォント優先リストにおいて前記第１の言語情報に次ぐ優先順位である第３の言語情報とすることを特徴とする
表示方法。
【請求項９】
ユーザによる入力を受け付ける入力デバイスと、
文字列を含む画像を表示する表示手段と、を備えるコンピュータを、
ユーザが使用する言語を表す第１の言語情報を含むユーザ情報であって、前記第１の言語情報を含む第１のフォント優先リストと関連付く前記ユーザ情報を保持するユーザ情報保持手段、
前記ユーザ情報を、前記入力デバイスから入力される認証に必要な情報と照合することでユーザの認証処理を行う認証手段と、
前記第１の言語情報に次いで優先的に用いられる第２の言語情報が、前記コンピュータが設置されている地域で用いられる言語の言語情報となるように、前記第１の言語情報及び前記第２の言語情報に基づいて第２のフォント優先リストを作成するフォント優先リスト制御手段、として機能させ、
前記表示手段に、前記認証手段で認証されたユーザの前記ユーザ情報に含まれる前記第１の言語情報を最優先に用いることで前記文字列を表示させ、
前記フォント優先リスト制御手段により、前記第２のフォント優先リストにおいて前記第２の言語情報に次いで優先的に用いられる言語情報を、前記第１のフォント優先リストにおいて前記第１の言語情報に次ぐ優先順位である第３の言語情報とする、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多言語表示を可能にするために複数言語のフォントを備えた情報処理装置に関する。
【背景技術】
【０００２】
認証機能を備え且つ多言語表示に対応する情報処理装置は、ユーザがログインすることで、登録されているユーザの情報（以下、「ユーザ情報」という。）に基づいた言語に表示言語を自動的に切り替える。特許文献１の情報処理装置は、このような多言語表示に対応した情報処理装置を開示する。ユーザは、ログインを行うことで表示言語が自動的に切り替わるために、手動で表示言語を切り替える必要が無い。そのために情報処理装置の利便性が向上する。
【０００３】
プリンタ等の画像形成装置やスマートフォンのように表示装置を備える情報処理装置は、ユーザの操作により、任意のタイミングで表示言語を切り替えることが可能である。また、このような情報処理装置は、例えば英語、日本語、中国語等の複数の言語を同時に表示画面上に表示することが可能である。複数の言語を同時に表示するために、情報処理装置には、各言語の文字コードを統一したUnicodeといわれる文字コード体系が構築される。
【０００４】
情報処理装置は、文字コード体系をUnicodeで構築する他に、言語毎のフォントデータを保持し、表示言語に対応するフォントデータから優先的に使用して表示することで、表示言語を切り替えることもできる。また、情報処理装置は、例えば、使用する言語の優先順位を記憶するフォント優先リストを用意しておき、フォント優先リストの優先順位に応じて表示言語を切り替えてもよい。フォント優先リストは、予め言語の優先順位の異なるものが情報処理装置内に複数用意されて、表示言語に応じて切り替えて用いられる。また、フォント優先リストは、表示中の言語を最優先にして履歴順に設定してもよい。これらの技術を組み合わせることで、ログインしたユーザのユーザ情報に基づく言語に自動的に表示言語を切り替え、多言語表示を可能にすることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１６０６６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
Unicodeのうち、日本語、中国語、韓国語、台湾語、ベトナム語で用いられる漢字は、ＣＪＫＶ（Chinese-Japanese-Korean-Vietnamese）統合漢字と言われる。ＣＪＫＶ統合漢字では、いくつかの似た文字が同じ文字コードにマッピングされる。ＣＪＫＶ統合漢字は、各言語用のフォントデータを有する。情報処理装置は、ＣＪＫＶ統合漢字が有する複数のフォントデータから、表示言語に応じて最優先に使うフォントデータを切り替えることで、最適なフォントを表示することができる。
【０００７】
ログインしたユーザのユーザ情報に基づいて表示言語を切り替える場合、従来のような言語の優先順位の決定方法では、二番目以降の優先順位がユーザの期待している順位とは異なることがある。例えば、韓国語に設定されている情報処理装置を複数のユーザで使用する場合、ログインしたユーザのユーザ情報が英語を指示するものであっても、画面に表示されるファイル名、フォルダ名、宛先名等は韓国語で登録されている可能性が高い。二番目以降の優先順位が固定、或いは履歴順で決まる場合、例えば英語の次に日本語の優先順位が高くなり、文字列が韓国語フォントではなく日本語フォントで表示されてしまうことがある。この場合、情報処理装置は、韓国語で登録されているファイル名、フォルダ名、宛先名等の文字列を日本語フォントで表示するために、最適な文字表示が行えなくなるといった問題がある。
【０００８】
本発明は、上記の問題を解決するために、最適な文字表示を可能とする情報処理装置を提供することを主たる課題とする。
【課題を解決するための手段】
【０００９】
上記課題を解決する本発明の情報処理装置は、ユーザによる入力を受け付ける入力デバイスと、文字列を含む画像を表示する表示手段と、を有する情報処理装置であって、ユーザが使用する言語を表す第１の言語情報を含むユーザ情報であって、前記第１の言語情報を含む第１のフォント優先リストと関連付く前記ユーザ情報を保持するユーザ情報保持手段と、前記ユーザ情報を、前記入力デバイスから入力される認証に必要な情報と照合することでユーザの認証処理を行う認証手段と、前記第１の言語情報に次いで優先的に用いられる第２の言語情報が、前記情報処理装置が設置されている地域で用いられる言語の言語情報となるように、前記第１の言語情報及び前記第２の言語情報に基づいて第２のフォント優先リストを作成するフォント優先リスト制御手段と、を備え、前記表示手段は、前記認証手段で認証されたユーザの前記ユーザ情報に含まれる前記第１の言語情報を最優先に用いることで前記文字列を表示し、前記フォント優先リスト制御手段は、前記第２のフォント優先リストにおいて前記第２の言語情報に次いで優先的に用いられる言語情報を、前記第１のフォント優先リストにおいて前記第１の言語情報に次ぐ優先順位である第３の言語情報とすることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、認証したユーザの言語を最優先とし、情報処理装置にデフォルトで設定されている言語をその次に優先する言語として設定するため、ユーザが使っている環境に最適な文字表示が可能となる。
【図面の簡単な説明】
【００１１】
【図１】情報処理装置のハードウェア構成図。
【図２】表示言語制御のための機能を表す機能ブロック図。
【図３】テーブルの説明図。
【図４】表示言語の切り替え処理を表すフローチャート。
【図５】描画処理を表すフローチャート。
【図６】最終フォント優先リストの並び替え処理を表すフローチャート。
【図７】フォントファミリを最終フォント優先リストに反映する処理を表すフローチャート。
【図８】フォント優先リストの例示図。
【図９】文書一覧の例示図。
【図１０】テーブルの変形例の説明図。
【図１１】最終フォント優先リストの並び替え処理を表すフローチャート。
【発明を実施するための形態】
【００１２】
以下、図面を参照して実施の形態を詳細に説明する。
【００１３】
（構成）
図１は、本実施形態の情報処理装置のハードウェア構成図である。情報処理装置１０１は、画像形成装置やスマートフォンのようにディスプレイ１１９（表示装置）を備える。情報処理装置１０１は、ユーザの認証機能を有しており、ユーザの認証時（ログイン時）に用いるユーザ情報に基づいた言語を表示言語として文字表示を行う。情報処理装置１０１は、ディスプレイ１１９の他に、制御部１１０、タッチパネル１１８、及び外部メモリ１２０を備える。制御部１１０は、ＣＰＵ（Central Processing Unit）１１１、ＲＡＭ（Random Access Memory）１１２、及びＲＯＭ（Read Only Memory）１１３により、情報処理装置１０１全体の動作を制御する。そのために制御部１１０は、タッチパネル１１８に接続される入力制御部１１４、ディスプレイ１１９に接続される表示制御部１１５、外部メモリ１２０に接続される外部メモリインタフェース（Ｉ／Ｆ）１１６を備える。また制御部１１０は、ＬＡＮ（Local Area Network）等のネットワーク１０２との間で通信制御を行う通信Ｉ／Ｆコントローラ１１７を備える。ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、入力制御部１１４、表示制御部１１５、外部メモリＩ／Ｆ１１６、及び通信Ｉ／Ｆコントローラ１１７は、システムバスＢを介して相互に通信可能に接続される。
【００１４】
ＣＰＵ１１１は、ＲＯＭ１１３に格納されるコンピュータプログラムを読み出し、ＲＡＭ１１２をワークエリアとして用いて実行することで、情報処理装置１０１の各部の動作を制御する。ＲＯＭ１１３は不揮発性メモリであり、コンピュータプログラムの他に、処理に必要な各種のデータを保持する。ＲＡＭ１１２は揮発性メモリであり、処理を行う際の一時記憶領域を提供する。
【００１５】
入力制御部１１４は、入力デバイスを用いたユーザの操作を受け付けて、受け付けた操作に応じた制御信号をＣＰＵ１１１に送信する。図１では、入力デバイスとしてタッチパネル１１８を用いる。タッチパネル１１８は、ユーザの指やスタイラスペン等によりタッチされた位置を検出するポインティングデバイスである。タッチパネル１１８は、抵抗膜方式や静電容量方式、表面弾性波方式、赤外線方式、電磁誘導方式、画像認識方式、光センサ方式等、様々な方式のものを用いることができる。入力デバイスには、タッチパネル１１８の他に、キーボード等の文字入力デバイスやマウス等のポインティングデバイスを用いることができる。入力制御部１１４は、タッチパネル１１８が検出した位置に応じた制御信号をＣＰＵ１１１に送信する。ＣＰＵ１１１は、該制御信号に基づいて処理を実行する。ＣＰＵ１１１は、これにより情報処理装置１０１に対するユーザの操作に応じた処理を行う。
【００１６】
表示制御部１１５は、ＣＰＵ１１１の制御により、ディスプレイ１１９に画像を表示させる。表示制御部１１５は、例えば、ディスプレイ１１９に、処理に関連付けられたオブジェクトで構成される画像を表示させる。また、アプリケーションソフトウェア（以下、「ＡＰ」という。）の実行画面を表示する。画像には、所定の言語のフォントで描画された文字も含まれる。
【００１７】
ディスプレイ１１９の表示画面には、タッチパネル１１８が一体になるように設けられる。タッチパネル１１８は、ディスプレイ１１９の表示を妨げないような透過率で構成される。ＣＰＵ１１１は、ディスプレイ１１９に表示されるオブジェクトの位置と、タッチパネル１１８で検出されたタッチ位置とから、ユーザが操作（タッチ）したオブジェクトを特定し、該オブジェクトに関連付けられた処理を実行する。このようにタッチパネル１１８及びディスプレイ１１９により、ユーザがディスプレイ１１９に表示された画像を直接的に操作して入力を行うようなＧＵＩ（Graphical User Interface）を構成することができる。
【００１８】
外部メモリＩ／Ｆ１１６は、ハードディスク、フレキシブルディスク、ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disc）、メモリカード等の外部メモリ１２０が装着可能な記憶媒体である。外部メモリＩ／Ｆ１１６は、ＣＰＵ１１１の制御に基づき、装着された外部メモリ１２０からのデータの読み出しや、当該外部メモリ１２０へのデータの書き込みを行う。通信Ｉ／Ｆコントローラ１１７は、ネットワーク１０２を介して、ネットワーク１０２に接続された他の装置との通信を制御する。
【００１９】
図２は、情報処理装置１０１の制御部１１０に実現される表示言語制御のための機能を表す機能ブロック図である。各機能は、ＣＰＵ１１１がＲＯＭ１１３からコンピュータプログラムを読み出して実行することで形成されるが、ハードウェアとして構成されてもよい。情報処理装置１０１には、言語メッセージデータ格納部２０１、言語切替部３０１、アプリケーション部４０１、ユーザ情報保持部５０１、デバイス言語格納部６０１、フォント制御部７０１が形成される。なお、図２の点線はデータ参照、実線は処理の指示、データの格納を意味する。
【００２０】
言語メッセージデータ格納部２０１は、ＲＯＭ１１３或いは外部メモリ１２０に設けられ、ＡＰの実行画面に表示するメッセージ（文字列）を表すデータである言語メッセージデータを格納する。言語メッセージデータ格納部２０１は、言語毎の言語メッセージデータを格納する。図２の例では、言語メッセージデータ格納部２０１に、日本語、英語、フランス語、及び台湾語の各言語の言語メッセージデータが格納される。
【００２１】
言語切替部３０１は、表示言語の切り替え指示に応じて、アプリケーション部４０１及びフォント制御部７０１に表示言語の切替通知を送信し、指示された言語の言語メッセージデータを言語メッセージデータ格納部２０１から取得して保持する。そのために言語切替部３０１は、言語切替通知部３０２、言語メッセージデータ取得部３０３、及び言語メッセージデータ展開部３０４を備える。
【００２２】
言語切替通知部３０２は、例えばアプリケーション部４０１から表示言語の切替指示を受け付けて、言語メッセージデータ取得部３０３、アプリケーション部４０１、フォント制御部７０１に対して表示言語の切替通知を送信する。表示言語の切替指示は、例えばユーザのログインによる認証処理により送信され、認証したユーザのユーザ情報に含まれる言語情報を含む。表示言語の切替通知は、切替指示に含まれる言語情報を含む。この言語情報で表される言語に表示言語が変更される。
【００２３】
言語メッセージデータ取得部３０３は、言語切替通知部３０２から送信された切替通知を受信する。言語メッセージデータ取得部３０３は、受信した切替通知に含まれる言語情報に対応する言語メッセージデータを言語メッセージデータ格納部２０１から取得し、言語メッセージデータ展開部３０４にアプリケーション部４０１が解釈可能な形式で展開する。言語メッセージデータ展開部３０４は、ＲＡＭ１１２に設けられ、言語メッセージデータ取得部３０３により展開された言語メッセージデータを保持する。
【００２４】
アプリケーション部４０１は、認証アプリケーション（以下、「認証ＡＰ」という。）４０２、ユーザモードアプリケーション（以下、「ユーザモードＡＰ」という。）４０３、及び一般アプリケーション（以下、「一般ＡＰ」という。）４０４を備える。アプリケーション部４０１は、外部メモリ１２０等からアプリケーションプログラムを読み込んで実行する。
【００２５】
認証ＡＰ４０２は、ユーザのログイン時の認証処理を行うＡＰである。認証ＡＰ４０２は、ユーザのログイン時に、タッチパネル１１８から認証に必要な情報（ユーザＩＤ、パスワード等）を取得して、ユーザ情報保持部５０１が保持するユーザ情報と照合することで認証処理を行う。ユーザ情報保持部５０１は、ＲＯＭ１１３、外部メモリ１２０、或いはネットワーク１０２を介して接続されるサーバ等の外部装置に設けられており、ユーザ情報を保持する。ユーザ情報には、情報処理装置１０１に登録されたユーザのユーザＩＤ、パスワード、ユーザの使用する言語を表す言語情報、使用可能なＡＰ等の情報が含まれる。認証ＡＰ４０２は、言語切替通知部３０２に、認証処理により照合したユーザ情報に含まれる言語情報を含む表示言語の切替指示を送信する。
【００２６】
ユーザモードＡＰ４０３は、情報処理装置１０１の設定及びユーザの登録を行うＡＰである。ユーザ情報保持部５０１にユーザ情報を登録する際には、ユーザモードＡＰ４０３がタッチパネル１１８からのユーザ情報の入力を受け付けて、ユーザ情報保持部５０１に記憶する。これによりユーザの情報処理装置１０１への登録が行われる。ユーザモードＡＰ４０３は、デフォルトの表示言語の設定を行う。ユーザモードＡＰ４０３は、情報処理装置１０１にデフォルトの表示言語の設定する際に、デバイス言語格納部６０１に、設定された言語を表す言語情報を送信する。
【００２７】
一般ＡＰ４０４は、情報処理装置１０１が提供する機能を実現するためのＡＰである。例えば情報処理装置１０１が複合機であれば、一般ＡＰ４０４は、コピー機能、スキャンした画像の送信機能、スキャンした画像の保存機能等の機能を実現する。一般ＡＰ４０４は、機能毎に用意される。
【００２８】
アプリケーション部４０１は、例えば一般ＡＰ４０４により、表示制御部１１５を介してディスプレイ１１９に画像を表示させる。また、アプリケーション部４０１は、言語切替通知部３０２からの表示言語の切替通知に含まれる言語情報に応じた文字列描画を、フォント制御部７０１に指示する。そのためにアプリケーション部４０１は、言語メッセージデータ展開部３０４に展開された言語メッセージデータを取得する。アプリケーション部４０１は、取得した言語メッセージデータに基づいて描画する文字列を生成し、フォント制御部７０１に生成した描画する文字列等の情報を含む文字列描画の指示を送信する。
【００２９】
デバイス言語格納部６０１は、ＲＡＭ１１２或いは外部メモリ１２０に設けられ、情報処理装置１０１にデフォルトで設定された表示言語を表す言語情報６０２及び情報処理装置１０１が設置されている国を表す国情報６０３を格納する。言語情報６０２は、通常、国情報６０３が示す国の言語を表す。言語情報６０２は、ユーザモードＡＰ４０３により設定される。国情報６０３は、情報処理装置１０１の設置の際に、設置する地域や国にあわせて、サービスマンによりユーザモードＡＰ４０３を用いて設定される。国情報６０３は、情報処理装置１０１の設置場所等が変更されると、それに応じて変更可能である。
【００３０】
フォント制御部７０１は、表示言語の切り替えのためにフォント言語切替処理部７０２、ログインユーザ言語保持部７０３、及びデバイス言語保持部７０４を備える。フォント制御部７０１は、フォントを描画するためにフォント描画処理部７０５、フォント優先リスト制御部７０６、フォント優先リスト保持部７０７、及びフォントデータ保持部７０８を備える。またフォント制御部７０１は、フォント優先リスト情報キャッシュ部７０９を備える。
【００３１】
フォント言語切替処理部７０２は、言語切替通知部３０２から表示言語の切替通知を受信して、受信した切替通知に含まれる言語情報をログインユーザ言語保持部７０３に保持する。フォント言語切替処理部７０２は、デバイス言語格納部６０１から言語情報６０２を取得して、デバイス言語保持部７０４に保持する。これにより、ログインユーザ言語保持部７０３は、切り替える言語を表す言語情報を保持し、デバイス言語保持部７０４は、情報処理装置１０１に設定されている言語を表す言語情報６０２を保持する。ログインユーザ言語保持部７０３及びデバイス言語保持部７０４は、ＲＡＭ１１２に設けられる。
【００３２】
フォント描画処理部７０５は、アプリケーション部４０１から文字列描画の指示を受信して、フォント優先リスト制御部７０６にフォント優先リストの作成を指示する。フォント優先リストは、文字列の描画に使用する言語の優先順位を表す。文字列描画の指示には、描画する文字列の他に、フォント種類を表すフォントファミリ、言語タイプ等の情報が含まれる。フォント描画処理部７０５は、作成されたフォント優先リストと、フォントデータ保持部７０８に保持されるフォントデータとに基づいて、文字列描画の指示に基づくフォントで文字列描画を行う。フォントデータ保持部７０８は、フォント描画処理部７０５が描画するための各言語のフォントデータを保持する。フォントデータ保持部７０８は、ＲＯＭ１１３、外部メモリ１２０、或いはＲＡＭ１１２に設けられる。
【００３３】
なお、「フォントファミリ」とは、一般的に“Arial”、“ＭＳゴシック”のようなものが挙げられる。本実施形態では後述する図３の優先リスト１００３で優先順に表される「日本語フォント」、「ラテン語フォント」等の言語毎のフォントデータがフォントファミリに相当する。また、情報処理装置１０１に予め設定されているフォントファミリを「デフォルトフォントファミリ」という。フォントファミリを明示的に指定した場合は、そのフォントを最優先で用いる。
【００３４】
フォント優先リスト制御部７０６は、フォント描画処理部７０５からフォント優先リストの作成の指示を受信してフォント優先リストを作成する。フォント優先リスト制御部７０６は、ログインユーザ言語保持部７０３の言語情報、デバイス言語保持部７０４の言語情報、及びフォント優先リスト保持部７０７の情報を取得してフォント優先リストを作成する。ログインユーザ言語保持部７０３から取得したユーザの言語情報を「ユーザ表示言語」、デバイス言語保持部７０４から取得した情報処理装置１０１に設定された言語情報を「デバイス表示言語」という。フォント優先リスト保持部７０７は、予め設定されたデフォルトのフォント優先リスト（以下、「デフォルトフォント優先リスト」という。）を保持する。フォント優先リスト保持部７０７は、各々、言語毎のフォントデータの優先順位が異なる複数のデフォルトフォント優先リストを保持する。フォント優先リスト保持部７０７は、ＲＯＭ１１３、外部メモリ１２０、或いはＲＡＭ１１２に設けられる。
【００３５】
フォント優先リスト制御部７０６は、ユーザ表示言語が表す言語のフォントデータが最優先に設定されているデフォルトフォント優先リストをフォント優先リスト制御部７０６から取得する。フォント優先リスト制御部７０６は、取得したデフォルトフォント優先リストの二番目に設定されているフォントデータが、デバイス表示言語が表す言語のフォントデータであるか否かを判断する。デフォルトフォント優先リストの二番目に設定されているフォントデータが、デバイス表示言語が表す言語のフォントデータであれば、フォント優先リスト制御部７０６は、デフォルトフォント優先リストを最終フォントリストとする。フォント優先リスト制御部７０６は、最終フォント優先リストをフォント描画処理部７０５に送信する。デフォルトフォント優先リストの二番目に設定されているフォントデータが、デバイス表示言語が表す言語のフォントデータでなければ、フォント優先リスト制御部７０６は、デフォルトフォント優先リストの言語の優先順位を入れ替える。フォント優先リスト制御部７０６は、優先順位の入れ替えで作成した新たなフォント優先リストを最終フォント優先リストとしてフォント描画処理部７０５に送信する。
【００３６】
フォント優先リスト情報キャッシュ部７０９は、フォント優先リスト制御部７０６によって作成された最終フォント優先リストを記憶しておく領域であり、ＲＡＭ１１２に設けられる。フォント優先リスト情報キャッシュ部７０９は、最終フォント優先リストを「フォント優先リスト」として記憶する。また、フォント優先リスト情報キャッシュ部７０９は、最終フォント優先リストを作成した際の「ユーザ表示言語」、「デバイス表示言語」、「言語タイプ」、「フォントファミリ（優先リスト１００３）」を記憶する。
【００３７】
（運用形態）
図３は、表示言語、言語タイプ、及びフォント優先リストの各テーブルの説明図である。各テーブルは、フォント優先リスト保持部７０７に保持される。
【００３８】
表示言語テーブル８０１は、表示言語８０２と言語タイプ８０３との対応を表す。表示言語８０２は、情報処理装置１０１がディスプレイ１１９に表示可能な言語である。言語タイプ８０３は、文字コードセットに相当し、日本語であれば「ShiftJIS」、英語であれば「Windows Code Page 1252」、台湾語であれば「Big5」というように、一般的な文字コードセットを示している。ヒンディ語は独自の文字コードセットがないため、便宜的に「Hindi」という独自の文字コードセットを定義している。表示言語テーブル８０１の表示言語８０２には一部の言語しか示していないが、実際にはその他の言語も存在する。つまり表示言語テーブル８０１は、表示言語８０２がどの文字コードセットに相当するかという一覧を示すものになっている。
【００３９】
言語タイプテーブル９０１は、表示言語テーブル８０１の言語タイプ８０３にリンクする言語タイプ９０２と、言語タイプ９０２に対応するフォント優先リスト９０３とから構成される。フォント優先リスト９０３は、フォント優先リストテーブル１００１のフォント優先リスト１００２へのリンクとなる。
【００４０】
フォント優先リストテーブル１００１は、言語タイプテーブル９０１のフォント優先リスト９０３にリンクするフォント優先リスト１００２と、文字列描画の際に参照する言語毎のフォントデータの優先順位を表す優先リスト１００３とから構成される。図３の優先リスト１００３は第１優先から第８優先までしか示していないが、これに限定されるものではない。また、第１優先から第８優先に記述しているフォントは少なくとも１つ以上のフォントデータを含んでいる。フォント優先リストテーブル１００１は、デフォルトフォント優先リストである。
【００４１】
フォント優先リスト制御部７０６は、表示言語テーブル８０１、言語タイプテーブル９０１、フォント優先リストテーブル１００１の順に参照することで、表示言語８０２に基づいて優先リスト１００３を決めることができる。例えば、フォント優先リスト制御部７０６は、ログインユーザ言語保持部７０３が保持する言語情報で表される言語により、表示言語８０２を特定し、これに対応するフォント優先リスト１００２をデフォルトフォント優先リストとして特定する。通常は、アプリケーション部４０１から指示される言語タイプがUnicodeであり、その場合、フォント優先リスト制御部７０６は、表示言語８０２の中から言語タイプ９０２を決め、優先リスト１００３を決定する。Ｗｅｂページのようにコンテンツ中で文字設定を指定された場合には、他の言語タイプ（例えばShiftJIS）を指定することも可能である。この場合、フォント優先リスト制御部７０６は、指定された言語タイプから直接、優先リストを決定する。
【００４２】
図４は、表示言語の切り替え処理を表すフローチャートである。フォント制御部７０１のフォント言語切替処理部７０２が、言語切替部３０１の言語切替通知部３０２から表示言語の切替通知を受信したときに図４のフローチャートの処理を実行する。
【００４３】
フォント言語切替処理部７０２は、言語切替通知部３０２から、ログインしたユーザのユーザ情報に基づく言語情報を含む表示言語の切替通知を受信する（Ｓ１０１）。フォント言語切替処理部７０２は、切替通知の受信を契機に、デバイス言語格納部６０１から情報処理装置１０１に設定されている表示言語を表す言語情報６０２を取得する（Ｓ１０２）。フォント言語切替処理部７０２は、言語切替通知部３０２から受信した切替通知に含まれる言語情報をログインユーザ言語保持部７０３に保持する（Ｓ１０３）。フォント言語切替処理部７０２は、デバイス言語格納部６０１から取得した言語情報６０２をデバイス言語保持部７０４に保持する（Ｓ１０４）。
【００４４】
このようにフォント言語切替処理部７０２は、言語切替通知部３０２から表示言語の切替通知を受信すると、ログインユーザ言語保持部７０３に認証されたユーザのユーザ情報に基づく言語情報を記憶する。またフォント言語切替処理部７０２は、デバイス言語格納部６０１に、情報処理装置１０１に設定されている言語情報６０２を記憶する。
【００４５】
図５は、文字列の描画処理を表すフローチャートである。フォント制御部７０１のフォント描画処理部７０５が、アプリケーション部４０１から文字列描画の指示を受信したときに図５のフローチャートの処理を実行する。
【００４６】
フォント描画処理部７０５は、アプリケーション部４０１から文字列描画の指示を受け付けると、フォント優先リスト制御部７０６にフォント優先リストの作成を指示する（Ｓ２０１）。フォント優先リストの作成が指示されたフォント優先リスト制御部７０６は、フォント優先リスト保持部７０７からフォント優先リストテーブル１００１の優先リスト１００３に含まれるフォントデータの個数Ｎを取得する（Ｓ２０２）。本実施形態では、個数Ｎ＝８（第１優先〜第８優先）とするが、個数Ｎは、リストアップするフォントデータの数に応じて動的に変わる。フォント優先リスト制御部７０６は、取得したフォントデータの個数Ｎで、最終的に使用する最終フォント優先リストを初期化する（Ｓ２０３）。
【００４７】
フォント優先リスト制御部７０６は、フォント優先リスト情報キャッシュ部７０９に記憶（キャッシュ）されたフォント優先リストが使用可能か否かを判定する（Ｓ２０４）。フォント優先リスト制御部７０６は、この判定のために、ユーザ表示言語及びデバイス表示言語を取得する。フォント優先リスト制御部７０６は、取得したユーザ表示言語及びデバイス表示言語がフォント優先リスト情報キャッシュ部７０９に記憶されたユーザ表示言語及びデバイス表示言語と一致するか否かを判断する。また、フォント優先リスト制御部７０６は、アプリケーション部４０１から指示された言語タイプ、フォントファミリが、フォント優先リスト情報キャッシュ部７０９に記憶されたフォント優先リストと一致するか否かを判断する。これらの情報が一致するか否かにより、フォント優先リスト制御部７０６は、フォント優先リスト情報キャッシュ部７０９に記憶されたフォント優先リストが使用可能か否かを判定する。フォント優先リスト制御部７０６は、キャッシュされたフォント優先リストが使用可能であれば（Ｓ２０４：Y）、最終フォント優先リストに、キャッシュされているフォント優先リストをすべてコピーする（Ｓ２０５）。
【００４８】
フォント優先リスト制御部７０６は、キャッシュされたフォント優先リストが使用不可であれば（Ｓ２０４：N）、アプリケーション部４０１から指示された言語タイプがUnicodeであるか否かを判定する（Ｓ２０６）。言語タイプがUnicodeであれば（Ｓ２０６：Y）、フォント優先リスト制御部７０６は、ユーザ表示言語に対応する言語タイプを表示言語テーブル８０１から決定してベース言語タイプとする（Ｓ２０７）。言語タイプがUnicodeでなければ（Ｓ２０６：N）、フォント優先リスト制御部７０６は、アプリケーション部４０１から指示された言語タイプをベース言語タイプに決定する（Ｓ２０８）。
【００４９】
ベース言語タイプの決定後にフォント優先リスト制御部７０６は、デバイス言語保持部７０４に保持するデバイス表示言語を用いて、表示言語テーブル８０１により言語タイプ（デバイス言語タイプ）を決定する（Ｓ２０９）。デバイス言語タイプの決定後にフォント優先リスト制御部７０６は、アプリケーション部４０１の指示からフォントファミリを取得する（Ｓ２１０）。フォント優先リスト制御部７０６は、最終フォント優先リストの並び替え処理を行う（Ｓ２１１）。最終フォント優先リストの並び替え処理の詳細については後述する。
【００５０】
最終フォント優先リストの並び替え処理後にフォント優先リスト制御部７０６は、フォント優先リスト情報キャッシュ部７０９にキャッシュされる情報を更新する（Ｓ２１２）。更新される情報の項目は、ユーザ表示言語、デバイス表示言語、アプリ言語タイプ、フォントファミリ、最終フォント優先リスト等がある。
【００５１】
フォント描画処理部７０５は、生成された最終フォント優先リストに定義されているフォントデータを設定する（Ｓ２１３）。設定されるフォントデータは、１以上のフォントデータを含み、また例えば、日本語であれば全角フォント及び半角フォント、アラビア語であればアラビア語及びローマ字、というように複数のフォントデータを含むことも可能である。フォント描画処理部７０５は、フォントデータが重複しないように設定する。フォント描画処理部７０５は、アプリケーション部４０１から指示のあった文字列を１文字ずつ、設定したフォントデータを順に検索して、該当するコードのフォントデータを用いて描画して処理を終了する（Ｓ２１４）。
【００５２】
図６は、図５のステップＳ２１１の最終フォント優先リストの並び替え処理を表すフローチャートである。
【００５３】
フォント優先リスト制御部７０６は、最終フォント優先リストを生成するためのカウンタの値ｉを「１」に初期化する（Ｓ３０１）。また、フォント優先リスト制御部７０６は、コピー元となるベース言語タイプに紐付いたデフォルトフォント優先リストを順に参照するためのカウンタの値ｎを「１」に初期化する（Ｓ３０２）。
【００５４】
フォント優先リスト制御部７０６は、アプリケーション部４０１からの文字列描画の指示に含まれるフォントファミリの一番目が情報処理装置１０１に設定されるデフォルトの表示言語（以下、「デフォルトフォント」という。）か否かを判定する（Ｓ３０３）。フォント優先リスト制御部７０６は、文字列描画の指示に含まれるフォントファミリの一番目が、デフォルトフォント優先リストの一番目とフォントデータと同じか否かにより、この判定を行う。デフォルトフォントでなければ（Ｓ３０３：N）、フォント優先リスト制御部７０６は、アプリケーション部４０１から指示のあったフォントファミリを最終フォント優先リストに反映する（Ｓ３０４）。
【００５５】
デフォルトフォントであれば（Ｓ３０３：Y）、フォント優先リスト制御部７０６は、ベース言語タイプとデバイス言語タイプとが一致するか否かを判定する（Ｓ３０５）。一致しなければ（Ｓ３０５：N）、フォント優先リスト制御部７０６は、最終フォント優先リストのｉ番目（ｉ＝１）に、ベース言語タイプに紐付くデフォルトフォント優先リストのｎ番目（ｎ＝１）のフォントデータをコピーする（Ｓ３０６）。コピー後にフォント優先リスト制御部７０６は、カウンタの値ｉ、ｎをそれぞれ１ずつインクリメントする（Ｓ３０７）。
【００５６】
フォント優先リスト制御部７０６は、最終フォント優先リストのｉ番目（ｉ＝２）に、デバイス言語タイプに紐付くデフォルトフォント優先リストの一番目のフォントデータをコピーする（Ｓ３０８）。コピー後にフォント優先リスト制御部７０６は、カウンタの値ｉを１インクリメントする（Ｓ３０９）。
【００５７】
フォント優先リスト制御部７０６は、最終フォント優先リストを生成するためのカウンタの値ｉが、最終フォント優先リストの個数Ｎを超えているか否かを判定する（Ｓ３１０）。超えていれば（Ｓ３１０：Y）、フォント優先リスト制御部７０６は、フォント優先リストの並び替えを終了する。超えていなければ（Ｓ３１０：N）、フォント優先リスト制御部７０６は、ベース言語タイプに紐付くデフォルトフォント優先リストのｎ番目が既に最終フォント優先リストに存在するか否かを判定する（Ｓ３１１）。存在すれば（Ｓ３１１：Y）、フォント優先リスト制御部７０６は、カウンタの値ｎを１インクリメントする（Ｓ３１４）。存在しなければ（Ｓ３１１：N）、フォント優先リスト制御部７０６は、最終フォント優先リストのｉ番目にベース言語タイプに紐づくデフォルトフォント優先リストのｎ番目をコピーする（Ｓ３１２）。また、フォント優先リスト制御部７０６は、カウンタの値ｉ、ｎをそれぞれ１ずつインクリメントする（Ｓ３１３、Ｓ３１４）。
【００５８】
フォント優先リスト制御部７０６は、カウンタの値ｎが個数Ｎを超えているか否か判定する（Ｓ３１５）。超えていなければ（Ｓ３１５：N）、フォント優先リスト制御部７０６は、再度、最終フォント優先リストを生成するためのカウンタの値ｉが、最終フォント優先リストの個数Ｎを超えているか否かを判定する（Ｓ３１０）。超えていれば（Ｓ３１５：Y）、フォント優先リスト制御部７０６は、フォント優先リストの並び替えを終了する。カウンタの値ｎが個数Ｎを超えるまで、フォント優先リスト制御部７０６は、ステップＳ３１０〜Ｓ３１５の処理を繰り返す。
【００５９】
図７は、図６のステップＳ３０４のフォントファミリを最終フォント優先リストに反映する処理を表すフローチャートである。
【００６０】
フォント優先リスト制御部７０６は、アプリケーション部４０１からの文字列描画の指示に含まれるフォントファミリの数Ｋを取得する（Ｓ４０１）。フォント優先リスト制御部７０６は、文字列描画の指示に含まれるフォントファミリを参照するためのカウンタの値ｋを「１」に初期化する（Ｓ４０２）。
【００６１】
フォント優先リスト制御部７０６は、最終フォント優先リストのカウンタの値ｉがフォント優先リストの個数Ｎを超えていないか否かを判定する（Ｓ４０３）。超えていれば（Ｓ４０３：Y）、フォント優先リスト制御部７０６は、フォントファミリの最終フォント優先リストへの反映処理を終了する。
【００６２】
超えていなければ（Ｓ４０３：N）、フォント優先リスト制御部７０６は、フォントファミリのｋ番目がデフォルトフォントであるか否かを判定する（Ｓ４０４）。デフォルトフォントであれば（Ｓ４０４：Y）、フォント優先リスト制御部７０６は、カウンタの値ｋを１インクリメントする（Ｓ４０８）。デフォルトフォントでなければ（Ｓ４０４：N）、フォント優先リスト制御部７０６は、フォントファミリのｋ番目が、既に最終フォント優先リストに存在するか否かを判定する（Ｓ４０５）。存在すれば（Ｓ４０５：Y）フォント優先リスト制御部７０６は、カウンタの値ｋを１インクリメントする（Ｓ４０８）。
【００６３】
存在しなければ（Ｓ４０５：N）、フォント優先リスト制御部７０６は、最終フォント優先リストのｉ番目に、アプリケーション部４０１から指示されたフォントファミリのｋ番目のフォントデータをコピーする（Ｓ４０６）。その後、フォント優先リスト制御部７０６は、カウンタの値ｉ、ｎをそれぞれ１ずつインクリメントする（Ｓ４０７、Ｓ４０８）。
【００６４】
フォント優先リスト制御部７０６は、カウンタの値ｋがフォントファミリの数Ｋを超えているか否か判定する（Ｓ４０９）。超えていなければ（Ｓ４０９：N）、フォント優先リスト制御部７０６は、再度、最終フォント優先リストのカウンタの値ｉがフォント優先リストの個数Ｎを超えているか否かを判定する（Ｓ４０３）。超えていれば（Ｓ４０９：Y）、フォント優先リスト制御部７０６は、フォントファミリの最終フォント優先リストへの反映処理を終了する。カウンタの値ｋがフォントファミリの数Ｋを超えるまで、フォント優先リスト制御部７０６は、ステップＳ４０３以降の処理を繰り返す。
【００６５】
図８は、ユーザ表示言語が英語、デバイス表示言語が韓国語、アプリケーション部４０１から指示される言語タイプがUnicode、フォントファミリがデフォルトフォントの場合に、優先順が並び替えられた最終フォント優先リストの例示図である。
【００６６】
図５の処理の実行前のデフォルトフォント優先リストは、図３に示すフォント優先リストテーブル１００１に示す通りであり、フォント優先リスト保持部７０７に保持されている。図５の処理を実行することで、フォント優先リストテーブル１００１は、図８に示すフォント優先リストテーブル１１０１に並び替えられる。フォント優先リストテーブル１１０１は、処理によりフォント優先リスト１１０２の「ラテンフォント優先リスト」の第２優先フォントが「韓国語フォント」になり、第３優先フォント以降の優先順位が１つずつずれる。また、図６のステップＳ３１１の判定により、同じ言語のフォントが重複してフォント優先リストに追加されないようになっている。
【００６７】
図９は、情報処理装置１０１のディスプレイ１１９に表示される文書一覧の例示図である。ここでは、ユーザ表示言語が英語、デバイス表示言語が韓国語である。文書一覧１２０１は、図３の優先順位変更前のデフォルトフォント優先リストを使用して表示されており、漢字は日本語のフォントデータを使って表示される。文書一覧１２０２は、図８の優先順位変更後の最終フォント優先リストを使用して表示されており、漢字は韓国語のフォントデータを使って表示される。文書一覧１２０１、１２０２で示す通り、漢字の字形が異なるものとなる。
【００６８】
以上のように、ユーザ表示言語が最優先言語となるだけでなく、ログインユーザが情報処理装置１０１を使用している環境（設定された言語）に応じて、次に優先される言語が決定される。そのために、よりユーザの環境にあった多言語表示が可能となる。
【００６９】
（他の運用形態）
図１０は、図３のテーブルの変形例の説明図である。図３では、表示言語８０２と言語タイプ８０３との関係を表す表示言語テーブル８０１を用いているが、図１０では、国１３０２と言語タイプ１３０３との関係を表す国テーブル１３０１を用いる。言語タイプテーブル９０１及びフォント優先リストテーブル１００１は、図３と図１０とで同様のものである。国テーブル１３０１により、国情報６０３（図２参照）からフォント優先リストを作成可能となる。国１３０２は、情報処理装置１０１が設置される国を表す。
【００７０】
図１１は、図６の最終フォント優先リストの並び替え処理を表すフローチャートの変形例示図である。図１１では、図６のステップＳ３０９の処理とＳ３１０の処理との間に処理が追加される。図１１の他の処理は図６の処理と同様であるので説明を省略する。図１１の処理では、図１０の国テーブル１３０１を図３の表示言語テーブル８０１の代わりに用い、表示言語８０２の代わりに国１３０２を用いる。
【００７１】
フォント優先リスト制御部７０６は、国１３０２が示す国コードに紐付けられた言語タイプ８０３がベース言語タイプ又はデバイス言語タイプと一致するかを判定する（Ｓ５０１）。一致すれば（Ｓ５０１：Y）、フォント優先リスト制御部７０６は、ステップＳ３１０以降の処理を実行する。一致しなければ（Ｓ５０１：N）、フォント優先リスト制御部７０６は、最終フォントリストのｉ番目（カウンタの値ｉ＝３）に、国コードに紐づく言語タイプのデフォルトフォント優先リストの一番目をコピーする（Ｓ５０２）。フォント優先リスト制御部７０６は、カウンタの値ｉをインクリメントして（Ｓ５０３）、ステップＳ３１０以降の処理を実行する。
【００７２】
以上のような処理により、ユーザ表示言語、デバイス表示言語、情報処理装置１０１に設定されている国コードに紐づく表示言語の順でフォントが表示される。そのために、さらにユーザの環境にあった多言語表示が可能となる。
【符号の説明】
【００７３】
１０１…情報処理装置、１１０…制御部、１１８…タッチパネル、１１９…ディスプレイ、１２０…外部メモリ
【図１】
0006618246.tif 000002
【図２】
0006618246.tif 000003
【図３】
0006618246.tif 000004
【図４】
0006618246.tif 000005
【図５】
0006618246.tif 000006
【図６】
0006618246.tif 000007
【図７】
0006618246.tif 000008
【図８】
0006618246.tif 000009
【図９】
0006618246.tif 000010
【図１０】
0006618246.tif 000011
【図１１】
0006618246.tif 000012