JP5766651B2 - 多言語対応WebサーバシステムおよびWebサーバシステムにおける多言語対応方法 - Google Patents

多言語対応WebサーバシステムおよびWebサーバシステムにおける多言語対応方法 Download PDF

Info

Publication number
JP5766651B2
JP5766651B2 JP2012106864A JP2012106864A JP5766651B2 JP 5766651 B2 JP5766651 B2 JP 5766651B2 JP 2012106864 A JP2012106864 A JP 2012106864A JP 2012106864 A JP2012106864 A JP 2012106864A JP 5766651 B2 JP5766651 B2 JP 5766651B2
Authority
JP
Japan
Prior art keywords
input
dictionary
web server
server system
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012106864A
Other languages
English (en)
Other versions
JP2013235382A (ja
Inventor
聡一 大原
聡一 大原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nomura Research Institute Ltd
Original Assignee
Nomura Research Institute Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nomura Research Institute Ltd filed Critical Nomura Research Institute Ltd
Priority to JP2012106864A priority Critical patent/JP5766651B2/ja
Publication of JP2013235382A publication Critical patent/JP2013235382A/ja
Application granted granted Critical
Publication of JP5766651B2 publication Critical patent/JP5766651B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Description

本発明は、Webサーバシステムにおける多言語対応の技術に関し、特に、辞書を用いて1つのソースコードで多言語に対応する多言語対応WebサーバシステムおよびWebサーバシステムにおける多言語対応方法に適用して有効な技術に関するものである。
IT技術の発展やビジネスのグローバル化等を背景に、WebサイトやWebアプリケーションを複数の言語に対応させるという必要性が高まっている。複数の言語環境によってWebサイトやWebアプリケーションへのアクセスを可能とする手法としては、例えば、従来から行われているものとして、同一内容について各言語によりそれぞれ翻訳された個別のコンテンツを予め用意しておき、ユーザが使用する言語環境等に応じてこれらを自動もしくは手動で選択して使用するという手法がある。また、この他にも、アプリケーションプログラムにおいて多言語対応するための技術として種々のものが提案されている。
例えば、特開2003−44474号公報(特許文献1)には、クライアントおよびユーザ情報に基づいて言語を確定し、コンテンツ要素を含むコンテンツ部のスケルトンを確定し、各スケルトンコンテンツ要素の保存された翻訳テーブルを利用するか、または各スケルトンコンテンツ要素の動的な自然言語翻訳を利用して、スケルトンコンテンツ要素をクライアントおよびユーザ情報に基づいて確定された言語に翻訳し、翻訳したスケルトンコンテンツ要素をコンテンツ部に統合することで、コンテンツ部の動的な言語翻訳を提供する技術が記載されている。
また、例えば、特開平11−3338号公報(特許文献2)には、アプリケーションからの情報(各言語に応じたフォントや書式の設定情報、アプリケーションの種類を示す情報)あるいは多言語入力システム側での環境設定機能によって設定された情報(各言語に対して設定された条件や優先度の情報)に基づいて対象言語を認識し、対象言語が日本語の場合には日本語処理部を通じて日本語入力処理を行い、対象言語が英語の場合には英語処理部を通じて英語入力処理を行い、対象言語が中国語の場合には中国語処理部を通じて中国語入力処理を行うことで、複数の言語の入力を可能とし、対象言語に応じて各入力システムを自動的に切り替えて文書作成を効率良く行う技術が記載されている。
また、例えば、特開平9−251463号公報(特許文献3)には、入力部を介して使用しようとする言語の種類が管理プロセスに与えられると、管理プロセスは、内蔵する言語に対応する言語変換システム、フォントの種類の対応表からその言語を入力するために必要な言語変換システムを抽出し、OS(Operating System)に対して言語変換システムの切り替え命令を発し、また、アプリケーションに対してフォントの切り替えコマンドを発し、アプリケーションは受け取ったコマンドに基づきOSに対してフォント切り替えを要求することで、使用者が使用する言語の種類を入力するという1回の処理により、管理プロセスが必要な命令を各部に行い、言語変換システム、フォントの切り替えを容易に行えるようにする技術が記載されている。
また、例えば、特開2010−128861号公報(特許文献4)には、情報処理装置にアクセスするクライアントの言語環境を識別し、言語環境を設定する言語設定部に、クライアントの言語環境を指定する言語識別値を設定するクライアント接続処理部と、アクセス要求が含むスクリプトを検査し、多言語処理を要求するコマンドの存在を判断するコマンド処理部と、コマンド処理部が多言語処理を要求すると判断した場合に、コマンドを受領して、言語設定部に設定された言語環境によりデータベースにアクセスさせる言語リソース処理部とを含むことで、データベースシステム等において多言語対応を可能とする技術が記載されている。
特開2003−44474号公報 特開平11−3338号公報 特開平9−251463号公報 特開2010−128861号公報
上記の特許文献1〜4に記載されたような従来技術を利用することで、例えば、クライアント端末等の言語環境に応じてコンテンツを翻訳し、もしくは翻訳されたコンテンツを表示し、また、IME(Input Method Editor:文字変換プログラム)やフォントを切り替える等の処理を、ソースコードを変更することなく動的に行うことができる。また、データベースへのアクセスの際の言語等を切り替えることも可能である。
しかしながら、これらの技術では、例えば業務データベースにアクセスするアプリケーションにおいて、検索条件を入力するための入力フィールド等の各種コントロール(画面部品)について、クライアント端末の言語環境に応じてその外観や属性、制御処理等を動的に切り替えるということまではできない。例えば、クライアント端末の言語環境を日本語から英語に変更した場合、テキストコントロール等によって画面上に表示されるテキストについては英語になるものの、データを入力するための入力フィールド等のコントロールの属性等については日本語のときのままとなる。
すなわち、例えばIMEのモードが全角ひらがなのままとなったり、入力・表示可能な文字列の長さが日本語での文字数のままとなったりすることになる。また、画面上の入力フィールドに入力されたデータを業務データベース等に登録するようなアプリケーションの場合、入力フィールド等にて指定されたデータの妥当性をチェックする場合があるが、そのチェック内容についても日本語での入力データを対象としたチェックのままとなる。
なお、特許文献2、3に記載されたような技術では、クライアント端末の言語環境に応じてIMEのモードの変更やフォントの変更などを行うことができるが、入力フィールド等のコントロールの外観や属性、妥当性チェックなどの制御処理の動的な変更を行うことまではできない。
そこで本発明の目的は、Webアプリケーションにおいて、画面上に入出力項目を表示するためのコントロールの外観や属性、制御処理などを含むユーザインタフェースを、言語環境に応じて、ソースコードを変更することなく動的に変更することを可能とする多言語対応WebサーバシステムおよびWebサーバシステムにおける多言語対応方法を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
本発明の代表的な実施の形態による多言語対応Webサーバシステムは、クライアント端末からの要求を受けて対応するビジネスロジックを呼び出す要求処理部と、前記ビジネスロジックによる処理結果を前記クライアント端末に対して応答する応答処理部とを有し、複数の言語環境により前記クライアント端末に対してサービスを提供するアプリケーションプログラムを稼働させるWebサーバシステムであって、以下の特徴を有するものである。
すなわち、多言語対応Webサーバシステムは、さらに、前記アプリケーションプログラムにおける入出力項目の識別情報をキーとして、前記クライアント端末の画面上に表示する1つ以上の前記入出力項目についてのラベルコントロールのテキストを示す表示名の情報と前記入出力項目を入力もしくは出力するために表示する入出力コントロールに係る情報とを少なくとも有するパーツオブジェクトについての1つ以上のパラメータの初期値からなる情報を辞書データとして保持する、言語環境毎の辞書テーブルと、指定された言語環境の前記辞書テーブルから前記入出力項目の識別情報に対応する前記辞書データを取得する辞書処理部とを有する。
また、前記応答処理部は、ソースコードに含まれる前記パーツオブジェクトについて、対応する前記入出力項目の識別情報をキーとして、前記辞書処理部を介して、指定された言語環境の前記辞書テーブルから対応する前記パーツオブジェクトについての前記パラメータの一部または全部の情報を取得し、取得した前記パラメータおよび前記処理結果に基づいて、前記クライアント端末の画面上に前記ラベルコントロールおよび/または前記入出力コントロールを表示させるHTMLデータを生成することを特徴とするものである。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
すなわち、本発明の代表的な実施の形態によれば、Webアプリケーションにおいて、画面上に入出力項目を表示するためのコントロールの外観や属性、制御処理などを含むユーザインタフェースを、言語環境に応じて、ソースコードを変更することなく動的に変更することが可能となる。
本発明の一実施の形態である多言語対応Webサーバシステムの構成例について概要を示した図である。 本発明の一実施の形態におけるパーツオブジェクトにより対応するカラムの入出力項目を画面上に表示する際の処理の例について概要を示した図である。 本発明の一実施の形態におけるパーツオブジェクトにより表示されるコントロールの外観等を他の言語に変更する際の処理の例について概要を示した図である。 本発明の一実施の形態におけるパーツオブジェクトにより表示されるコントロールの外観等について変更する際の処理の例について概要を示した図である。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
本発明の一実施の形態である多言語対応Webサーバシステムは、ソースコードを変更することなく複数の言語によるユーザインタフェースを提供することを可能とするため、言語環境毎に辞書を作成して保持する。当該辞書は、単に表示名称等のテキストデータを各言語によって翻訳したものを保持するだけではなく、データ辞書として項目の各種属性情報等も管理することができるものとする。すなわち、ユーザインタフェースにおいて各言語で固有となる情報を辞書データとして保持することができるものである。
このような辞書を用いることにより、例えば、アプリケーションの開発を複数言語で同時並行的に行うことができ、また、対応言語の追加が容易となり拡張性を向上させることが可能となる。また、データ辞書として用いることで、システム内でデータ項目を標準化することができる。
本実施の形態では、例えば、業務データベースにアクセスするCRUD(Create,Read,Update,Delete)型のWebアプリケーションプログラムにおいて、画面上の入出力項目(例えば、業務データベースからデータを取得するための検索条件の内容を指定する入力項目や、検索結果の内容を表示する出力項目)に係る内容を表示するために、標準的なコントロールオブジェクト(以下では単に“コントロール”と記載する場合がある)を直接用いるのではなく、後述するような、表示名称とコントロールの設定内容や制御処理および説明テキストの各データが一体となったパーツオブジェクトを用いるものとする。
このパーツオブジェクトは、画面上にどのようなコントロールを表示するか(例えば、テキストコントロールのみ、(テキストコントロールと)入力フィールド、(テキストコントロールと)ドロップダウンリスト、…等)をパラメータとして指定することが可能である。また、コントロールの属性値(例えば、テキストコントロールに表示されるテキストの内容や、入力フィールドの長さ等)や、制御情報(例えば、入力データの妥当性チェックをどのように行うか等)などについても指定することができるものとし、指定された内容に従ってコントロールを表示および制御するよう実装されている。
換言すると、パーツオブジェクトは、入力フィールドやドロップダウンリスト、テキストなどの、入出力項目のデータを取り扱う入出力コントロールと、入出力項目の名称等を表示するテキストコントロールであるラベルコントロールとを組み合わせて表示するよう構成されており、これらのコントロールの出力のパターンを指定可能であるという構成を有する。
このとき、ラベルコントロールと入出力コントロールとを一括して整合性を持った形でコントロールの幅等の属性値を調整することができるため、ユーザが個別に整合性を持つように属性値等を指定するという煩雑な処理の必要がなく、表示されるコントロールの外観の調整を行うことができる。この調整には、例えば、表示可能領域に対して、ラベルコントロールが意図しない箇所で改行されたり、逆に意図した箇所で改行されなかったり等を防止するよう、ラベルコントロールと入出力コントロールの表示幅を一体的に調整することなどが含まれる。
本実施の形態では、Webアプリケーションプログラムは、画面上の各入出力項目に係る内容について当該パーツオブジェクトを使用して表示するものとしてソースコードが作成されているものとする。すなわち、パーツオブジェクトを使用して間接的にコントロールを表示する(パーツオブジェクトがWebサーバシステム上での実行時に対象のコントロールを表示するHTML(HyperText Markup Language)やスクリプト等を動的に生成する)。また、アクセスする対象のデータベースの各カラムと画面上の入出力項目とのマッピングに係る情報は、データベースの各カラムの識別情報(例えばカラム名称)と、対応するパーツオブジェクトの識別情報(例えばHTMLのID属性値)とのマッピング情報としてソースコード上に保持する。
さらに、本実施の形態では、各パーツオブジェクトにおいてラベルコントロールに表示するテキスト、および入出力コントロールの属性値や制御処理に係る情報などについて、後述するように、一部を除き、ソースコード上で直接指定するのではなく、パーツオブジェクトのIDもしくは対応するデータベースのカラム名称等の識別情報と関連付けられた辞書データとして外出しにして保持するよう構成する。この辞書データの内容を言語環境毎に定義しておき、実行時に対象の言語環境に対応する辞書データを参照することで、いったん生成されたソースコードに対して変更を加えずに、パーツオブジェクトにより画面上に表示されるコントロールの外観や属性等を言語環境に応じて動的に変更可能とする。
<システム構成>
図1は、本発明の一実施の形態である多言語対応Webサーバシステムの構成例について概要を示した図である。多言語対応Webサーバシステム100は、例えば、サーバ機器やクラウドコンピューティング環境での仮想サーバなどのコンピュータ機器により構成され、図示しないOSやDBMS(DataBase Management System)、Webサーバプログラムなどのミドルウェアに加え、ユーザが作成したソースコード101もしくはそこから呼び出されるライブラリやオブジェクト等のソフトウェアプログラムにより実装される要求処理部110、辞書処理部120、ビジネスロジック130、および応答処理部140などの各部を有する。また、データベースやファイルテーブル等により実装される辞書テーブル121を有する。
また、多言語対応Webサーバシステム100は、インターネット等のネットワーク300を介して接続されるクライアント端末200上の図示しないWebブラウザ等のプログラムからの要求に対して、ビジネスロジック130により業務データベース(DB)131にアクセスして処理を行い、クライアント端末200に対してHTMLデータ102を出力して応答することによってサービスを提供する。
要求処理部110は、クライアント端末200からの要求を受けて、対応するソースコード101に基づいてコンテンツ(ビジネスロジック130)を呼び出す機能を有し、ソフトウェアプログラムにより実装されるID変換部111、および入力チェック部112などの各部を有する。ID変換部111は、要求メッセージに含まれる、画面上の入力項目に対応するパーツオブジェクトの識別情報(ID)を、ソースコード101に保持されたマッピング情報に基づいて、入出力項目に対応する業務DB131のカラムの識別情報(カラム名称等)に変換する機能を有する。
このマッピング情報は、画面上に表示されるパーツオブジェクトの識別情報(例えばHTMLのID属性値)と、アクセスする対象の業務DB131の各カラムの識別情報(カラム名等)との対応を保持する。これにより、後述するように、ソースコード101において画面上に配置された各パーツオブジェクトは、まずID変換部111によって自身のIDに対応するカラム名称を取得した後、当該カラム名称をキーとして、業務DB131へのアクセスや、後述する辞書テーブル121からの辞書データの取得等の後続の処理を行うことができる。
従って、クライアント端末200に応答するHTMLデータ102上では、各パーツオブジェクト(によって表示されるコントロール)において、対応する業務DB131のカラム名称をキー等の情報として直接指定する必要がなく、自身のIDをキー等の情報とすることができるため、実際のカラム名称をHTMLデータ102上から隠蔽してセキュリティの強化を図ることが可能である。なお、このような変換を行わず、HTMLデータ102上で各パーツオブジェクト(によって表示されるコントロール)において対応する業務DB131のカラム名称をキー等の情報として直接指定するようにしてもよい。
入力チェック部112は、要求メッセージに含まれる、画面上のパーツオブジェクト(によって表示されるコントロール)を介して指定された入力項目のデータの内容について一般的な妥当性チェックを行う機能を有する。妥当性チェックの種類としては、例えば、文字数や文字タイプ(数字やアルファベット、かな、全半角など)、使用可能文字の制限、日時や各種コード値などのフォーマットチェックなどが考えられる。
妥当性チェックの内容は言語環境によって異なるものとなり得る。従って、本実施の形態では、入力チェック部112において言語毎のバリエーションも考慮した複数パターンの妥当性チェックのタイプを実装しておき、対象の入力項目についていずれのタイプを用いるかを、言語環境に応じて選択・決定するものとする。ここでは、後述する辞書処理部120を介して、対象の言語の辞書テーブル121にアクセスし、対象の入力項目に対応する辞書データの内容から妥当性チェックのタイプの情報を取得して決定する。
辞書処理部120は、指定された言語の辞書テーブル121から、指定されたキー(本実施の形態では、例えば、対象の入出力項目(パーツオブジェクト)に対応する業務DB131のカラム名称)に対する辞書データを取得して出力する機能を有する。言語の指定は、例えば、クライアント端末200からの要求メッセージに含まれるWebブラウザの言語環境から取得してもよいし、多言語対応Webサーバシステム100上で稼働するWebサイト毎に言語を定義しておき、この値を取得してもよい。図1の例では、日本語(“ja”)、英語(“en”)、中国語(“zh”)の各言語の辞書テーブル121を保持していることを示している。
辞書テーブル121における辞書データの内容やフォーマットは特に限定されない。本実施の形態では、簡易な手法として、例えば後述するように、画面を介して業務DB131の対象のカラムへのデータの入出力処理を行うのに必要な種々のデータ(入出力を行うためのパーツオブジェクトの属性値や制御のために必要なパラメータ等)を所定の順序でカンマ区切り等により指定するものとする。具体的には、例えば、対応するパーツオブジェクトにおいてラベルコントロールを表示する際の内容である表示名称や、入出力コントロールとして入力フィールドを表示する際の長さ(文字数)、妥当性チェックの種別やIMEのモードなどの制御処理の内容に係る指定、出力データをテーブルに一覧表示する際の短縮されたテキストである短縮表示名称および表示幅、ドロップダウンリスト等により表示する際の値リストなどが考えられる。
ビジネスロジック130は、業務DB131を利用して業務アプリケーションとしての処理を行う機能を有する。本実施の形態では、上述したように、業務DB131に対するCRUD型アプリケーションを対象とするが、特にこれに限定されるものではない。
応答処理部140は、ソースコード101の内容に基づくビジネスロジック130等の処理結果に基づいてHTMLデータ102を生成し、クライアント端末200に対して応答する機能を有し、ソフトウェアプログラムにより実装される翻訳部141、および表示部142などの各部を有する。翻訳部141は、応答に含まれる各出力項目について、対応するパーツオブジェクトを対象の言語環境の下で表示するためのラベルコントロールのテキストや入出力コントロールの属性値、制御情報などのパラメータ値を取得する。ここでは、辞書処理部120を介して対応する言語の辞書テーブル121にアクセスして、対象の出力項目(パーツオブジェクト)に対応する辞書データから表示名称や属性値等の各種パラメータ値を取得する。
表示部142は、翻訳部141が取得した、各パーツオブジェクトについてのラベルコントロールのテキストや入出力コントロールの属性値、制御情報などのパラメータ値に基づいて、各パーツオブジェクトにより表示されるコントロールが配置された応答画面のHTMLデータ102を生成する機能を有する。
<画面表示処理>
図2は、CRUD型アプリケーションにおいてパーツオブジェクトにより対応するカラムの入出力項目を画面上に表示する際の処理の例について概要を示した図である。図2の例では、日本語環境において、業務DB131からデータを読み出す際の検索条件を入力する画面において、“顧客名”を指定する入力フィールドを表示する場合の例を抜粋して示している。
図の上段に示しているWebアプリケーションプログラムのソースコード101では、“顧客名”を指定する入力フィールドを表示するためにパーツオブジェクト103を呼び出している。具体的には、まず、ソースコード101上に保持されているマッピング情報(図2の例では、array()により対応関係を保持している)からID(“A01”)に対応するカラム名称(“customer_name”)の情報を取得する。
その後、例えば、パーツオブジェクト103の機能を実装したクラスから継承したサブクラスについてインスタンスを作成する形で呼び出す(“CF_itemDic();”)。図2の例では、パラメータの一部として、呼び出す辞書テーブル121のタイプ(“共通辞書”)、表示する入出力コントロールのタイプ(“入力フィールド”)、HTMLのID属性値(“A01”)などを指定して呼び出した状態を簡略化して示している。なお、HTMLのID属性値(“A01”)は、マッピング情報によりカラム名称(“customer_name”)に動的に変換される。
このようなコードにより呼び出されたパーツオブジェクト103は、データとして、少なくとも表示名(ラベルコントロールのテキスト)と表示する入出力コントロールの内容に係る情報を含むデータを保持する。図2に示すように、さらに説明テキストなどの他の情報を保持していてもよい。図2の例では、パーツオブジェクト103の上記の3つの情報のうち、コントロールについては、ソースコード101において“入力フィールド”がパラメータとして指定されているため、これが設定される。
呼び出されたパーツオブジェクト103は、さらに、所定の関数やメソッド等により辞書処理部120を介して日本語環境(“ja”)における対象の辞書テーブル121(“共通辞書”)にアクセスして、カラム名称(“customer_name”)に対応する辞書データ(本実施の形態では“顧客名”、40文字、20文字、…などの複数の値の集合)を取得する。
図2の例では、辞書テーブル121の辞書データとして、上から順に、名称(ラベルコントロールに表示するテキスト)、入力フィールドの場合の長さ(半角時の文字数)、入力フィールドの場合の最大長さ(文字数)、入力データの妥当性チェックのタイプ、IMEの初期モード、説明コメント、テーブルに一覧表示する場合のテキスト(表示名)、およびテーブルに一覧表示する場合の表示幅(ピクセル値)などの情報を保持するものとしている。なお、これらの辞書データを取得する際の出力フォーマットとしては、例えば、これらの値をカンマ等で区切った一連の文字列としてもよいし、連想配列等のアクセスしやすいデータとしてもよい。
辞書テーブル121については、処理効率を考慮した場合、初期処理もしくは最初のアクセス時にメモリ上に辞書データの内容を展開するのが望ましい。この場合、全ての辞書データを展開するとメモリ使用量を圧迫したり、展開処理に時間を要したり等、却って処理効率が低下する場合がある。従って、実装上は、必要な時に必要な範囲の辞書データをメモリ上に展開できるようにするのが望ましい。
そこで、本実施の形態では、適用範囲が異なる複数の辞書テーブル121からなる階層構造を有し、これらを適宜選択して使用する構成をとる。例えば、多言語対応Webサーバシステム100上で稼働するシステムやアプリケーション全体で共通の辞書(“共通辞書”)や、指定されたWebサイト内でのみ共通の辞書(“サイト辞書”)、サブシステム内でのみ共通の辞書(“ライブラリ辞書”)、画面単位での辞書(“コントローラ辞書”)などの、適用範囲が異なる複数種類の辞書テーブル121を有するものとする。
この場合、例えば、“コントローラ辞書”などの適用範囲の狭い辞書を参照して該当する辞書データが得られなかった場合に、“ライブラリ辞書”→“サイト辞書”→“共通辞書”と順に上位の(適用範囲が広い)辞書テーブル121に遡って参照できるようにしてもよい。また、辞書データが得られなかったとしてデフォルト値を用いるようにしたりエラーとしたりしてもよい。
パーツオブジェクト103は、取得した辞書データから必要なデータを抽出して、コントロールを表示したり制御したりする際のパラメータとして設定する。例えば、入出力コントロールとして入力フィールドを表示する場合の属性値として、辞書データから取得したフィールドの長さを設定するとともに、妥当性チェックのタイプやIMEの初期モードなどの値、説明テキストの内容などを設定する。なお、入力データの妥当性チェックや、IMEのモード設定などの入出力コントロールの制御に係る処理は、入力チェック部112や表示部142の機能であるが、具体的な実装としては、例えば、パーツオブジェクト103の継承元のクラスにメソッドとして定義しておくなど、パーツオブジェクト103が有する、もしくはパーツオブジェクト103が呼び出すことができる機能として実装しておくものとする。
これにより、図2の下段の画面例に示すように、実行時に“顧客名”を指定するための入力フィールドのコントロールを表示するよう、パーツオブジェクト103がHTMLデータ102を生成することができる。このとき、例えば、パーツオブジェクト103の説明テキストの情報を当該入出力項目についてのヘルプ情報等として用いることができる。
なお、入力フィールドを表示する場合、入力フィールドのコントロールだけを表示したのでは何を入力すべきかが不明であるため、本実施の形態では、図2に示すように、当該パーツオブジェクト103に対応する入出力項目の表示名を表示するテキストコントロール(“顧客名”)を入力フィールドに隣接させてラベルとして表示する(ラベルコントロール)。当該テキストは、パーツオブジェクト103の保持データにおける表示名の情報、すなわちパーツオブジェクト103が辞書テーブル121から取得した辞書データの名称の値(“顧客名”)を設定する。
このようなHTMLデータ102の生成に係る処理は、表示部142等の機能であるが、具体的な実装としては、例えば、パーツオブジェクト103の継承元のクラスにメソッドとして定義しておくなど、パーツオブジェクト103が有する、もしくはパーツオブジェクト103が呼び出すことができる機能として実装しておくものとする。なお、ここでは、上述したように、表示するラベルコントロールや入出力コントロール、および説明テキストの3つの要素について、一括して整合性を持った形で外観等に係る属性値を調整するものとする。
このように、本実施の形態では、入出力項目をパーツオブジェクト103により表示するHTMLデータ102を生成することができる。従って、本実施の形態におけるCRUD型アプリケーションは、業務DB131の各カラムに対応する入出力項目としてパーツオブジェクト103を所定のルールに従って画面上に配置し、標準的な機能や動作の実装と組み合わせるようソースコード101を作成することで実現することができる。また、アプリケーションプログラムの開発支援システム等として、このようなソースコード101を自動的に生成する機能を実装することも可能である。
例えば、業務DB131へのエントリーの登録(C:Create)を行うアプリケーションとしては、業務DB131の各カラムに対して登録するデータを指定する入力フィールドを画面上に表示するためのパーツオブジェクト103を、業務DB131のカラムの並び順に従って配置するようソースコード101を作成する。このとき、必要に応じて画面表示するコントロールのIDとカラムの名称との対応関係をマッピング情報として保持しておく。さらに、標準的な機能として業務DB131へのエントリーの登録を実行するための“登録”ボタンや“キャンセル”ボタンなどを配置する。さらに、言語環境毎の辞書テーブル121に、各パーツオブジェクト103についてコントロールを表示する際に用いる属性値や制御情報などの情報を辞書データとして保持しておく。このとき、各項目について特に指定がされない場合はそれぞれデフォルト値により設定する。
また、例えば、業務DB131に対する検索(R:Read)を行うアプリケーションとしては、上記と同様に、業務DB131を検索するための条件を指定する入力フィールドを画面上に表示するためのパーツオブジェクト103を配置するようソースコード101を作成する。このとき、業務DB131の対象テーブルの全カラムについて検索条件として指定可能とすると過剰になることから、例えば、暫定的に先頭の5つのカラムについてだけ入力フィールドを表示するなどの簡略化を行ない、後から変更可能としてもよい。また、必要に応じて画面表示するコントロールのIDとカラムの名称との対応関係をマッピング情報として保持しておく。さらに、標準的な機能として業務DB131のエントリーの検索を行うための“検索”ボタンなどを配置する。
また、例えば、検索条件を入力する領域の下部に、検索結果を表示するためのテーブル(表)コントロールを自動的に配置する。ここでは、例えば、テーブルコントロールのオブジェクトの項目定義配列に、業務DB131の各カラムに対応するパーツオブジェクト103の呼び出しに相当する内容を設定する。これにより、テーブルコントロールの各列に業務DB131の各カラムの内容が表示されるよう、表示部142もしくはパーツオブジェクト103を実装することが可能である。
この状態で、ソースコード101の内容を変更せずに、Webアプリケーションを他の異なる言語に対応させるには、対象の言語の辞書テーブル121を用意すればよい。図3は、パーツオブジェクト103により表示されるコントロールの外観等を他の言語に変更する際の処理の例について概要を示した図である。ここでは、図2の例に示したソースコード101の内容は変更せずに、新たに英語環境(“en”)の辞書テーブル121を作成している。
これにより、当該Webアプリケーションの実行時に、パーツオブジェクト103が英語環境(“en”)での対象の辞書テーブル121における当該エントリーの内容を参照し、その内容に応じて図3の下段の画面例に示すように表示名としてのラベルコントロールのテキストデータだけでなく、入出力コントロールの属性等(図3の例では入力フィールドの長さ(幅)や入力データの妥当性チェックの内容、IMEのモード等)についても英語環境に動的に変更することができる。
また、図4は、パーツオブジェクト103により表示されるコントロールの外観等について変更する際の処理の例について概要を示した図である。ここでは、図2の例に示したソースコード101の内容に簡易な変更を加えている。具体的には、パーツオブジェクト103の呼び出しの際に、表示する入出力コントロールのタイプのパラメータを“入力フィールド”から“ドロップダウンリスト”に変更している。また、辞書テーブル121には、辞書データの末尾にドロップダウンリストに設定される値リストの内容(“田中:1,山本:2,…”)を追加定義している。
これにより、当該Webアプリケーションの実行時に、パーツオブジェクト103が、指定された種類の入出力コントロールにより入出力項目の表示内容を変更するようHTMLデータ102を生成することができる。図4の例では、同一のパーツオブジェクト103について、入出力コントロールを入力フィールドからドロップダウンリストに変更しているが、例えば、入出力コントロールのタイプのパラメータを“テキスト”と設定した場合は、パーツオブジェクト103は、値をテキストとして表示する。ラベルコントロールと入出力コントロールのいずれか一方のみ表示することも可能である。また、パラメータを“隠す”と設定した場合は、内部的にデータは保持するものの、画面表示上には当該入出力項目についてはコントロールを何も表示しないようにする。
以上に説明したように、本発明の一実施の形態である多言語対応Webサーバシステム100によれば、Webアプリケーションプログラムのユーザインタフェースにおいて各言語で固有となる情報(入出力項目の表示名称等のテキストデータおよび各種属性情報等)を、辞書データとして言語環境毎の辞書テーブル121に保持する。また、Webアプリケーションは、入出力項目を画面上に表示する際に、標準的なコントロールを直接使用するのではなく、パーツオブジェクト103を使用して間接的に標準的なコントロールを表示するものとする。
このパーツオブジェクト103が、言語環境に対応した辞書テーブル121から対応する辞書データを取得し、その内容に基づいて画面上に入出力項目を表示するためのコントロールの外観や属性、制御処理などを含むユーザインタフェースを動的に変更する。これにより、アプリケーションのソースコード101を変更することなく、言語環境に応じてユーザインタフェースを動的に変更することが可能となる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、本実施の形態では、標準的なCRUD型のWebアプリケーションを対象にしているがこれに限らない。ユーザが、辞書テーブル121とパーツオブジェクト103を組み合わせた形で、ユーザインタフェースやビジネスロジックなどの動作内容も含めて構築した独自のアプリケーション(Webアプリケーションに限らず、クライアント/サーバ型やスタンドアロン型などであってもよい)に対して、同様の概念により、言語環境毎の辞書テーブル121を定義して多言語対応することが可能である。
本発明は、辞書を用いて1つのソースコードで多言語に対応する多言語対応WebサーバシステムおよびWebサーバシステムにおける多言語対応方法に利用可能である。
100…多言語対応Webサーバシステム、101…ソースコード、102…HTMLデータ、103…パーツオブジェクト、110…要求処理部、111…ID変換部、112…入力チェック部、120…辞書処理部、121…辞書テーブル、130…ビジネスロジック、131…業務データベース(DB)、140…応答処理部、141…翻訳部、142…表示部、
200…クライアント端末、
300…ネットワーク。

Claims (7)

  1. クライアント端末からの要求を受けて対応するビジネスロジックを呼び出す要求処理部と、前記ビジネスロジックによる処理結果を前記クライアント端末に対して応答する応答処理部とを有し、
    複数の言語環境により前記クライアント端末に対してサービスを提供するアプリケーションプログラムを稼働させる多言語対応Webサーバシステムであって、
    さらに、前記アプリケーションプログラムにおける入出力項目の識別情報をキーとして、前記クライアント端末の画面上に表示する1つ以上の前記入出力項目についてのラベルコントロールのテキストを示す表示名の情報と前記入出力項目を入力もしくは出力するために表示する入出力コントロールに係る情報とを少なくとも有するパーツオブジェクトについての1つ以上のパラメータの初期値からなる情報を辞書データとして保持する、言語環境毎の辞書テーブルと、
    指定された言語環境の前記辞書テーブルから前記入出力項目の識別情報に対応する前記辞書データを取得する辞書処理部とを有し、
    前記応答処理部は、ソースコードに含まれる前記パーツオブジェクトについて、対応する前記入出力項目の識別情報をキーとして、前記辞書処理部を介して、指定された言語環境の前記辞書テーブルから対応する前記パーツオブジェクトについての前記パラメータの一部または全部の情報を取得し、取得した前記パラメータおよび前記処理結果に基づいて、前記クライアント端末の画面上に対応する前記ラベルコントロールおよび/または前記入出力コントロールを表示させるHTMLデータを生成することを特徴とする多言語対応Webサーバシステム。
  2. 請求項1に記載の多言語対応Webサーバシステムにおいて、
    前記ソースコードは、前記パーツオブジェクトについての識別情報と、対応する前記入出力項目の識別情報との対応関係についてのマッピング情報を保持し、
    前記要求処理部は、前記クライアント端末からの要求に含まれる前記パーツオブジェクトの識別情報に対応する入力項目の識別情報を前記マッピング情報から取得し、取得した前記入力項目の識別情報をキーとして、前記辞書処理部を介して、指定された言語環境の前記辞書テーブルにアクセスすることを特徴とする多言語対応Webサーバシステム。
  3. 請求項2に記載の多言語対応Webサーバシステムにおいて、
    前記要求処理部は、前記辞書処理部を介して、指定された言語環境の辞書テーブルから対応する前記入力項目についての妥当性チェックの種別に係る情報を取得し、前記入力項目の値の妥当性のチェックを行うことを特徴とする多言語対応Webサーバシステム。
  4. 請求項1〜3のいずれか1項に記載の多言語対応Webサーバシステムにおいて、
    前記パーツオブジェクトは、前記ラベルコントロールと、指定された種類の前記入出力コントロールとを組み合わせて表示し、もしくは前記ラベルコントロールおよび/または前記入出力コントロールを表示しないよう表示制御することを特徴とする多言語対応Webサーバシステム。
  5. 請求項1〜4のいずれか1項に記載の多言語対応Webサーバシステムにおいて、
    前記パーツオブジェクトは、表示する前記入出力コントロールに応じた制御処理を実装しており、
    前記辞書テーブルは、前記辞書データにおいて、前記パーツオブジェクトについての前記パラメータとして、前記制御処理の内容を指定するための情報を登録可能であることを特徴とする多言語対応Webサーバシステム。
  6. 請求項1〜5のいずれか1項に記載の多言語対応Webサーバシステムにおいて、
    前記辞書テーブルは、同一種類の言語環境について、適用範囲がより広いものを上位とした複数種類のテーブルからなる階層構造を有し、
    前記辞書処理部は、前記辞書テーブルから指定された前記キーに対応する前記辞書データを取得する際に、いずれの階層の前記辞書テーブルを参照するかの指定を受け付け、指定された階層の前記辞書テーブルに、指定された前記キーに対応する前記辞書データが存在しない場合、さらに上位の前記辞書テーブルに対して順次、前記キーに対応する前記辞書データを有するか否かを問い合わせることを特徴とする多言語対応Webサーバシステム。
  7. 複数の言語環境により、クライアント端末からの要求を受けて対応するビジネスロジックを呼び出し、前記ビジネスロジックによる処理結果を前記クライアント端末に対して応答するアプリケーションプログラムを稼働させるWebサーバシステムにおける多言語対応方法であって、
    前記Webサーバシステムが、前記アプリケーションプログラムにおける入出力項目の識別情報をキーとして、前記クライアント端末の画面上に表示する1つ以上の前記入出力項目についてのラベルコントロールのテキストを示す表示名の情報と前記入出力項目を入力もしくは出力するために表示する入出力コントロールに係る情報とを少なくとも有するパーツオブジェクトについての1つ以上のパラメータの初期値からなる情報を辞書データとして保持する、言語環境毎の辞書テーブルを保持する第1の手順と、
    前記Webサーバシステムが、指定された言語環境の前記辞書テーブルから前記入出力項目の識別情報に対応する前記辞書データを取得する第2の手順と、
    前記Webサーバシステムが、ソースコードに含まれる前記パーツオブジェクトについて、対応する前記入出力項目の識別情報をキーとして、前記第2の手順により、指定された言語環境の前記辞書テーブルから対応する前記パーツオブジェクトについての前記パラメータの一部または全部の情報を取得し、取得した前記パラメータおよび前記ビジネスロジックによる前記処理結果に基づいて、前記クライアント端末の画面上に前記パーツオブジェクトに対応する前記ラベルコントロールおよび/または前記入出力コントロールを表示させるHTMLデータを生成する第3の手順とを実行することを特徴とするWebサーバシステムにおける多言語対応方法。
JP2012106864A 2012-05-08 2012-05-08 多言語対応WebサーバシステムおよびWebサーバシステムにおける多言語対応方法 Active JP5766651B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012106864A JP5766651B2 (ja) 2012-05-08 2012-05-08 多言語対応WebサーバシステムおよびWebサーバシステムにおける多言語対応方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012106864A JP5766651B2 (ja) 2012-05-08 2012-05-08 多言語対応WebサーバシステムおよびWebサーバシステムにおける多言語対応方法

Publications (2)

Publication Number Publication Date
JP2013235382A JP2013235382A (ja) 2013-11-21
JP5766651B2 true JP5766651B2 (ja) 2015-08-19

Family

ID=49761469

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012106864A Active JP5766651B2 (ja) 2012-05-08 2012-05-08 多言語対応WebサーバシステムおよびWebサーバシステムにおける多言語対応方法

Country Status (1)

Country Link
JP (1) JP5766651B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015029193A1 (ja) 2013-08-29 2015-03-05 株式会社野村総合研究所 Webサーバシステム、アプリケーション開発支援システム、Webサーバシステムにおける多言語対応方法、Webサーバシステムにおけるマルチデバイス対応方法、およびアプリケーション開発支援方法
JP6534862B2 (ja) * 2015-06-01 2019-06-26 河村電器産業株式会社 ラック監視システム
JP7411341B2 (ja) * 2019-06-19 2024-01-11 株式会社オービック アプリケーション開発装置、アプリケーション開発方法、及びアプリケーション開発プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002183251A (ja) * 2000-12-13 2002-06-28 Yamato Protec Co 製品管理システム
JP2004341675A (ja) * 2003-05-14 2004-12-02 Dainippon Printing Co Ltd 開発システム、電子フォーム利用システム、サーバ、プログラム及び記録媒体
JP2004355274A (ja) * 2003-05-28 2004-12-16 Ricoh Co Ltd 文書配信装置、画面情報提供方法、画面情報提供プログラム及び記録媒体
JP2005135369A (ja) * 2003-10-09 2005-05-26 Seiko Epson Corp 処理装置、応用プログラム、リソース再生方法、応用プログラム生成方法及びリソースデータ群のデータ構造
US20090132232A1 (en) * 2006-03-30 2009-05-21 Pegasystems Inc. Methods and apparatus for implementing multilingual software applications

Also Published As

Publication number Publication date
JP2013235382A (ja) 2013-11-21

Similar Documents

Publication Publication Date Title
US9952836B2 (en) Web server system, application development support system, multilingual support method in web server system, multi-device support method in web server system, and application development support method
JP5911594B2 (ja) アプリケーションのローカリゼイションにおける翻訳支援の提供
US9817811B2 (en) Web server system, dictionary system, dictionary call method, screen control display method, and demonstration application generation method
US10956505B2 (en) Data search method, data search apparatus, and non-transitory computer-readable storage medium storing program for data search
CN104375808B (zh) 界面显示方法及装置
KR101275871B1 (ko) SaaS 환경에서의 홈페이지 제작 시스템 및 방법, 그 방법을 컴퓨터에서 실행하기 위한 컴퓨터 프로그램이 기록된, 컴퓨터로 판독 가능한 기록 매체
US7784026B1 (en) Web application internationalization
CN101876897A (zh) 用于在Web浏览器上处理Widget的系统和方法
KR20150085716A (ko) 웹 스크래핑 추출 데이터 설정 방법
CN103646023A (zh) 一种基于web的增加页面/控件的方法
JP6692289B2 (ja) 画面情報生成装置、画面情報生成方法、及びプログラム
JP5766651B2 (ja) 多言語対応WebサーバシステムおよびWebサーバシステムにおける多言語対応方法
CN113535587B (zh) 目标应用检测方法、装置及计算机设备
JP5727413B2 (ja) アプリケーション開発支援システムおよびアプリケーション開発支援プログラム
Swearngin et al. Genie: Input Retargeting on the Web through Command Reverse Engineering
JP5917350B2 (ja) 辞書システムおよび辞書呼び出し方法
JP6113983B2 (ja) 画面コントロール表示システムおよび画面コントロール表示プログラム
US11741295B2 (en) Independent rendering engine for a user interface internationalization
JP6231260B2 (ja) 画面制御システム、画面制御プログラム、画面作成支援プログラム及び画面制御方法
JP2014059699A (ja) デモアプリケーション生成システムおよびデモアプリケーション生成プログラム
JP2013235387A (ja) マルチデバイス対応WebサーバシステムおよびWebサーバシステムにおけるマルチデバイス対応方法
US11977866B2 (en) Application screen display program installing method
JP5962116B2 (ja) 画面制御システム、画面制御プログラム、画面作成支援プログラム及び画面制御方法
CN116186436A (zh) 以对应页面语种的目标语种显示网页页面的系统及方法
KR20130040167A (ko) SaaS 환경에서의 홈페이지 제작 시스템, 그 시스템의 기능을 컴퓨터에서 실행하기 위한 컴퓨터 프로그램이 기록된, 컴퓨터로 판독 가능한 기록 매체

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141224

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150617

R150 Certificate of patent or registration of utility model

Ref document number: 5766651

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250