(57)【要約】      （修正有）【課題】国際化対応されていないプログラムコードを国際化対応に自動的に変換するためのプログラミング環境を提供する。【解決手段】ソースファイル１０１は、国際化対応のルールに従っていないプログラミングコードが記述された複数のファイルから構成されている。翻訳ファイル分離処理部１０２は、ソースファイル１０１から国際化対応されていない文字列を検索して抽出することで、翻訳ファイル１０４を作成する。翻訳ファイル１０４が生成されることで国際化対応されていない文字列は分離されるとともに、プログラミング環境Ｂが処理できるソースファイル改１０３と、ソースファイル改１０３との対応関係を保持している対応ファイル１０５と、が生成される。プログラミング環境Ｂ１２１は、ソースファイル改１０３とリソースファイル１０９とから実行ファイル１１１を生成するコンパイル／ビルド処理部１１０を有する。【選択図】  図１
2006146619.tif 000002
【特許請求の範囲】
【請求項１】
国際化対応のルールに従っていないプログラミングコードを含むソースファイルから、国際化対応されていない文字列が抽出された翻訳ファイルと、前記国際化対応が考慮されていない文字列に対して一意の識別子を割り当てられることによりコンパイル／ビルド処理が可能な形式を有するソースファイルに変換されたソースファイル改と、前記翻訳ファイルと前記一意の識別子とを前記文字列毎に対応付けする対応ファイルと、に分離する翻訳ファイル分離処理ステップと、
前記翻訳ファイルを翻訳し、翻訳結果ファイルを生成する自動翻訳ステップと、
前記翻訳結果ファイルと前記対応ファイルとに基づいて、識別子により識別されコンパイル／ビルド処理が可能な形式を有するリソースファイルを生成するリソース変換処理ステップと、
前記リソースファイルと前記ソースファイル改とに基づいてコンパイル／ビルド処理を行うことにより、実行ファイルを作成するコンパイル／ビルド処理ステップと
を有するプログラミング方法。
【請求項２】
さらに、前記自動翻訳ステップに続いて翻訳の手直しを行うステップと、該手直しによる翻訳結果を次回からの自動翻訳に反映させるためのテーブルを作成するステップと、を有することを特徴とする請求項１に記載のプログラミング方法。
【請求項３】
国際化対応のルールに従っていないプログラミングコードを含むソースファイルから、国際化対応されていない文字列が抽出された翻訳ファイルと、前記国際化対応が考慮されていない文字列に対して一意の識別子が割り当てられることでコンパイル／ビルド処理が可能な形式を有するソースファイルに変換されたソースファイル改と、前記翻訳ファイルと前記一意の識別子とを前記文字列毎に対応付けする対応ファイルと、に分離する翻訳ファイル分離処理部と、
前記翻訳ファイルを翻訳し、前記識別子を保持した翻訳結果ファイルを生成する自動翻訳部と、
前記翻訳結果ファイルと前記対応ファイルとに基づいて、識別子により識別されコンパイル／ビルド処理が可能な形式を有するリソースファイルを生成するリソース変換処理部と、
前記リソースファイルと前記ソースファイル改とに基づいてコンパイル／ビルド処理を行うことにより、実行ファイルを作成するコンパイル／ビルド処理部と
を有するプログラミング装置。
【請求項４】
前記自動翻訳部は、翻訳ファイルを複数の自然言語に基づく翻訳結果ファイルに翻訳する多国語対応対訳テーブルを有していることを特徴とする請求項３に記載のプログラミング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、国際化対応のプログラムの作成システムに関する。
【背景技術】
【０００２】
従来のプログラムは、各国語対応のものがそれぞれ存在しており、国際化対応プログラムを作成する場合は、それぞれのプログラミング言語で定められた国際化対応のプログラミングルールに従って作成する必要がある。すなわち、プログラミングコードで翻訳される文字列に対して一意の識別子を割り当てて記述したり、又は、国際化対応の関数を呼び出したりと、国際化を意識した処理コードを記述する必要があり、開発者の負担になっていた。
【０００３】
特に、プログラム開発時において、国際化対応を考慮していないプログラムを国際化する場合には、プログラムを修正する必要があるため修正に起因するプログラムのバグが増え修正に時間がかかることが多くなる。また、コーディングにおいて無理をしながら国際化対応することで、プログラムの処理の流れが見えにくくなるという問題もあった。すなわち、国際化対応されていないプログラムコードを国際化対応するには、プログラムコードの修正が必要となり、翻訳する前の段階で多くの時間と労力とが必要となっていた。
【０００４】
特許文献１に記載の技術では、オペレーティングシステムに自動翻訳の機能を付加することにより国際化対応のプログラムの作成を容易にしている。
【０００５】
【特許文献１】特開２００３−３６１６３号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記特許文献１に記載の技術は、プログラムの国際化対応を容易にはするものの、国際化を予め考慮していないプログラムには元々対応していない。従って、オペレーティングシステムが提供する翻訳機能を利用するためには、国際化を予め考慮していないプログラムではプログラムコードを修正する必要がある。プログラムが完成した後に、固定文字列をオペレーティングシステムの自動翻訳の対象とするためにはプログラムコードの修正が必要となり、プログラムコードの品質に影響するという問題がある。
【０００７】
本発明の目的は、プログラミング言語ごとに定義されている国際化のルールに従うことなく、国際化対応のプログラムを自動的に作成するためのプログラミング環境を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、国際化対応のプログラミングルールに従っていないプログラムコードを自動的に国際化対応のルールに従ったものに変換し、その過程で抽出した文字列を翻訳し、国際化対応プログラムを作成するプログラミング環境を有しており、より具体的には、国際化対応されていないプログラムコード（ソースファイル）を入力として受け付け、翻訳ファイルを取り出す手段と、翻訳ファイルを翻訳してプログラミング環境で受け付けるリソースファイルの形式に変換する手段と、ソースコードとリソースファイルとをビルドし国際化対応プログラムを生成する手段と、を有する。
【発明の効果】
【０００９】
本発明によれば、国際化対応されていないプログラムコードに基づいて自動的に国際化対応のプログラムを作成することができる。部分的に国際化の修正が施されたプログラムコードであっても、本発明により対応可能である。
【００１０】
また、自動翻訳機能が十分正確なものであれば、途中結果で生成される翻訳ファイルの修正をすることがなく、もしくは最小限の修正で、国際化対応のプログラムを迅速に開発することができる。
【００１１】
さらに、複数のプログラミング言語で構成されているプログラムコードに基づいて、それぞれのプログラミング言語で定義されている国際化対応ルールに従うことなく、国際化対応のプログラムを作成することが可能である。また、自動翻訳された結果を変更する場合も、プログラミング言語にかかわらず翻訳ファイルの形式が同じであるため、翻訳作業を効率よく行えるという利点がある。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の一実施の形態による国際化対応のプログラム作成システムについて図面を参照しつつ説明を行う。図１は、本実施の形態による国際化対応のプログラム作成システムの一構成例を示す図である。
【００１３】
図１に示すように、本実施の形態による国際化対応のプログラム作成システムは、プログラミング環境Ａ１２０と、プログラミング環境Ｂ１２１と、を有している。プログラミング環境Ａ１２０は、プログラムコード(ソースファイル)１０１を、ソースファイル改１０３と対応ファイル１０５と翻訳ファイル１０４とに分離する翻訳ファイル分離処理部１０２と、翻訳ファイル１０４を自動翻訳し翻訳結果ファイル１０７を生成する翻訳エンジン１０６と、対応ファイル１０５と翻訳結果ファイル１０７とからリソースファイル１０９を生成するリソース変換処理部１０８と、を有している。プログラミング環境Ｂ１２１は、ソースファイル改１０３とリソースファイル１０９とから実行ファイル１１１を生成するコンパイル／ビルド処理部１１０を有する。
【００１４】
ソースファイル１０１は、国際化対応のルールに従っていないプログラミングコードが記述された複数のファイルを含んで構成されている。翻訳ファイル分離処理部１０２は、ソースファイル１０１から国際化対応されていない、即ち日本語、英語等の特定の自然言語で記述された文字列を検索して抽出し、これに基づいて翻訳ファイル１０４を作成する。また、ソースファイル１０１の中で自然言語をそのまま記述していた箇所は、その部分を自然言語に依存しない識別子に置き換えて、国際化対応された形式のソースファイル改１０３を作成し、識別子と自然言語文字列との対応関係は、対応ファイル１０５で記述する。例えば、ソースファイル１０１に「Show Message(“ファイルを削除しますか？”)」という記述があった場合、“ファイルを削除しますか？”の部分は自然言語で記述されているため、抽出して翻訳ファイル１０４に出力し（図３−１参照）、この部分を識別子ＩＤ＿０００１に置き換えた記述「Show Message(ＩＤ＿０００１)」をソースファイル改１０３に出力する（図４参照）。また、識別子ＩＤ＿０００１と自然言語“ファイルを削除しますか？”との対応関係は、対応ファイル１０５に出力する（図５参照）。各図面の内容については、後に詳述する。
【００１５】
このように、翻訳ファイル１０４が生成されることにより、国際化対応されていない文字列が分離されるとともに、プログラミング環境Ｂが処理できるソースファイル改１０３と、ソースファイル改１０３との対応関係を後述する識別子により保持している対応ファイル１０５と、が生成される。
【００１６】
図２は、ソースファイル１０１から国際化対応されていない文字列を検索して抽出された翻訳ファイル１０４のファイル形式例を示す図である。図２に示すように、翻訳ファイルの１行目２１０は、例えば、”Japanese”(日本語)や”English”(英語)や”Chinese”(中国語)のような自然言語を特定する言語識別子１〜Ｎまでが記述される。その翻訳対象の言語数Ｎだけ列を設けることで、複数の自然言語に翻訳することができる。翻訳ファイル１０４の１列目２０１は、翻訳の対象となる言語１の文字列が記述され、２行目２０２以降には、翻訳された文字列（言語２からＮまで）が記述される。１処理で複数の自然言語に翻訳することができるため、処理が効率的になるという利点がある。
【００１７】
図３−１は、日本語から英語に翻訳を行う場合の翻訳ファイル１０４の具体的な例を示す図である。この場合には、翻訳ファイル１０４には、“ファイルを削除しますか？”、“致命的なエラーが発生しました。”などの日本語が記載される。次に、翻訳ファイル１０４内の内容は、翻訳エンジン１０６により翻訳処理され、翻訳結果ファイル１０７が生成される。翻訳エンジン１０６は、翻訳ファイル１０４の１列目の文字列を翻訳して２列目以降に翻訳結果を記述することにより、翻訳結果ファイル１０７を生成する。複数の言語に対応させるためには、複数の言語に対応した翻訳エンジンが必要になる。翻訳エンジンは、例えば対訳を記載したテーブル形式であっても良い。多国語に翻訳する場合には、多国語対応対訳テーブルを有しているのが好ましい。
【００１８】
図３−２は、図３−１の翻訳ファイルを翻訳エンジン１０６により処理した結果として作成された翻訳結果ファイル１０７の構成例を示す図である。日本語で“ファイルを削除しますか？”を英語の“Do you want to delete the file?”に、日本語の“致命的なエラーが発生しました。”を“A fatal error occurred.”に、翻訳している。但し、翻訳エンジン１０６は辞書をベースとした自動翻訳を行うプログラムであるが、翻訳結果に不適切なものがある場合は、翻訳結果ファイル１０７の２列目以降の記載（翻訳結果）を手作業で修正することも可能である。翻訳エンジンを利用することで翻訳作業はより迅速にできるが、翻訳エンジン自体は完全な翻訳を約束するものではないため、このような手作業による修正を行うことにより、精度の高い翻訳結果を得ることができる。尚、その後に同様の翻訳作業をする場合も多いため、学習機能を有した辞書により新たな対訳を追加できるようにするのが好ましい。
【００１９】
ソースファイル改１０３は、前述したように、ソースファイル１０１のうち自然言語に依存する文字列を識別子に置き換えて、自然言語に依存せず国際化対応した形式に改造したソースコードである。 図４は、ソースファイル１０１が翻訳ファイル分離処理部１０２によってソースファイル改１０３に変換される例を示したものである。国際化対応を全く考慮されていない、即ち自然言語をそのまま記述した“（ダブルクオート）で囲まれた文字列に対して一意の識別子４０１を割り当てることで、国際化プログラムを考慮したソースコードへの変換を行っている。識別子４０１は、1つの文字列に対して1つずつ割り当てられ、翻訳する文字列分の数の識別子が使用される。Show Message(“ファイルを削除しますか？”)は、Show Message(ＩＤ＿０００１)に、Show Message(“致命的なエラーが発生しました。”)は、Show Message(ＩＤ＿０００２)に、変更されている。
【００２０】
対応ファイル１０５は、識別子４０１と自然言語文字列とを対応付けるためのファイルであって、翻訳結果ファイル１０７をリソース変換処理部１０８においてリソースファイル１０９に変換するために必要とされる。図５は、対応ファイル１０５の構成例を示す図であり、ＩＤ＿０００１は、“ファイルを削除しますか？”に、ＩＤ＿０００２は、“致命的なエラーが発生しました。”に対応付けされている。リソース変換処理部１０８は、対応ファイル１０５と翻訳結果ファイル１０７とから、リソースファイル１０９を生成する処理を行う。リソースファイル１０９は、コンパイル／ビルド処理１１０で処理できる形式、すなわち、プログラミング言語で定義された国際化プログラミングのルールに従ったもの、例えば図６に示すような形式になっている。すなわち、ＩＤ＿０００１ = “Do you want to delete the file?”;、 ＩＤ＿０００２ = “A fatal error occurred”;というような変換が行われる。
【００２１】
ソースファイル改１０３とリソースファイル１０９とは、それぞれプログラミング言語で定義された国際化プログラミングのルールに従ったファイルである。従って、既存のプログラミング環境Ｂ１２１を利用して、国際化対応のプログラムである実行ファイル１１１を生成することが可能となる。
【００２２】
以上、本実施の形態による国際化対応のプログラム作成システムによれば、国際化対応されていないプログラムコードに対して、国際化の修正を加えずに国際化対応のプログラムを作成することができる。また、自動翻訳機能が十分正確なものであれば、途中結果で生成される翻訳ファイルの修正をすることがなく、もしくは修正を最小限に抑えられ、国際化対応のプログラムを迅速に作成し出荷することができる。
【００２３】
さらに、それぞれのプログラミング言語で定義されている国際化対応ルールに従わなくても、複数のプログラミング言語で構成されているプログラムコードに基づいて国際化対応のプログラムを作成することが可能である。また、自動翻訳された結果を変更する場合も、翻訳ファイルの形式がプログラミング言語ごとに異ならず同一のため、翻訳作業も効率よく行える。複数の自然言語に翻訳する場合に処理を並列化できるため、処理が簡略かつ迅速になる。
【００２４】
尚、ソースファイルが、部分的に国際化の修正が施されたプログラムコードである場合でも、翻訳ファイル分離処理により国際化の修正が施されたファイルとそうでないファイルとに分離されるため、国際化への対応が可能である。
【産業上の利用可能性】
【００２５】
本発明は、プログラム作成装置として利用可能である。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施の形態による国際化対応のプログラム作成システムの一構成例を示す図である。
【図２】翻訳ファイルのファイル形式例を示す図である。
【図３−１】日本語から英語に翻訳を行う場合の翻訳ファイルの具体的な例を示す図である。
【図３−２】図３−１の翻訳ファイルを翻訳エンジンにより処理した結果として作成された翻訳結果ファイルの構成例を示す図である。
【図４】ソースファイルが翻訳ファイル分離処理部によってソースファイル改に変換される例を示したものである。
【図５】対応ファイルの構成例を示す図である。
【図６】リソースファイルの構成例を示す図である。
【符号の説明】
【００２７】
１０１…ソースファイル、１０２…翻訳ファイル分離処理部、１０３…ソースコード改、１０４…翻訳ファイル、１０５…対応ファイル、１０６…翻訳エンジン、１０７…翻訳結果ファイル、１０８…リソース変換処理部、１０９…リソースファイル、１１０…コンパイル／ビルド処理部、１１１…実行ファイル、１２０…プログラミング環境Ａ、１２１…プログラミング環境Ｂ、２０１…翻訳ファイルの1列目、２０２…翻訳ファイルの2列目、２１０…翻訳ファイルの1行目、４０１…識別子。
【図１】
2006146619.tif 000003
【図２】
2006146619.tif 000004
【図３−１】
2006146619.tif 000005
【図３−２】
2006146619.tif 000006
【図４】
2006146619.tif 000007
【図５】
2006146619.tif 000008
【図６】
2006146619.tif 000009