JP5063014B2 - アプリケーションローカライゼーション規則を実装するオーサリング - Google Patents

アプリケーションローカライゼーション規則を実装するオーサリング Download PDF

Info

Publication number
JP5063014B2
JP5063014B2 JP2006063069A JP2006063069A JP5063014B2 JP 5063014 B2 JP5063014 B2 JP 5063014B2 JP 2006063069 A JP2006063069 A JP 2006063069A JP 2006063069 A JP2006063069 A JP 2006063069A JP 5063014 B2 JP5063014 B2 JP 5063014B2
Authority
JP
Japan
Prior art keywords
localization
information
application
authored
authoring
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.)
Expired - Fee Related
Application number
JP2006063069A
Other languages
English (en)
Other versions
JP2006252552A (ja
JP2006252552A5 (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006252552A publication Critical patent/JP2006252552A/ja
Publication of JP2006252552A5 publication Critical patent/JP2006252552A5/ja
Application granted granted Critical
Publication of JP5063014B2 publication Critical patent/JP5063014B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47JKITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
    • A47J45/00Devices for fastening or gripping kitchen utensils or crockery
    • A47J45/06Handles for hollow-ware articles
    • A47J45/063Knobs, e.g. for lids
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47JKITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
    • A47J36/00Parts, details or accessories of cooking-vessels
    • A47J36/34Supports for cooking-vessels

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Food Science & Technology (AREA)
  • Stored Programmes (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は一般に、データ処理に関し、より詳細には、製品及びサービスのローカライゼーションに関する。
ローカライゼーションは、異なった市場における違いに対処するために、製品またはサービスを修正するプロセスである。ローカライゼーションのごく一般的な例は、アプリケーションがソース言語でオーサリングされ、元の言語とは異なるターゲット言語を使う市場に導入される際に生じる。例えば、アプリケーションは、英語でオーサリングされ、次いで、中国に導入された場合、アプリケーション中の様々な英語文字列およびUI要素(メニュー、アイコンなど)、ソフトウェアコンポーネントならびにユーザ支援を中国語に翻訳することによってローカライズされる。UIのレイアウトおよびスタイル(フォントタイプ、サイズ、制御位置などを含む)も、おそらく、ターゲット言語に合わせるように変更される。当然ながら、ローカライゼーションの概念は、単なる言語の修正よりも広い。同じ言語を使う市場が、他の理由で、異なるものである可能性がある。例えば、ソフトウェアアプリケーションを、異なる年齢グループ向けに「ローカライズする」ことができる。アプリケーションは、大人向けには1組の言語および外見を、子供または十代向けには別のものを有し得る。したがって、ローカライズは例示的に、別個の市場における多種多様な違いに適応する。
しかし、上述したように、ローカライゼーションは、文字列の単なる翻訳よりも、はるかに多くのことを伴う。ドキュメントの読解を容易にするためには、そのシナリオについての説明に集中することになる。同様に、実施例のほとんどは、ソフトウェアローカライゼーションの分野から取り上げられているが、本発明は、ソフトウェアのローカライゼーションに限定されない。同様に、本記述のほとんどが、製品のローカライゼーションに焦点を当てているが、本発明はそれに限定されず、サービスにも適用可能であり、したがって、その説明のために、「製品」という用語は「サービス」を含む。これまで、ローカライゼーションを提供するシステムレベルの試みがなく、個々の問題を解決するために、個々のコンポーネントを使ってローカライゼーションが実施されていた。例えば、ローカライザ(localizer)を、特定の機械翻訳技術を用いて、ローカライゼーション速度、正確さおよび一貫性を向上させるように増補することができる。しかし、異なるローカライザが、以前の翻訳を再利用することによってリサイクル率を上げ、ローカライザなしの場合よりも一貫性のある結果をより高速で提供するために、翻訳メモリを使うことができる。
また、このローカライゼーションはすべて、従来はオフラインで行われてきた。言い換えると、制作者は、アプリケーション全体またはあるコンポーネントの大部分を作成し、そのコンポーネントまたはアプリケーションが、ローカライゼーションのためにローカライザに与えられる。通常のプロセスは、制作者とのローカライザの対話が、最小限であるか、または存在しないようなものである。このプロセスでは、元のコンテンツに、そのローカライゼーションを簡単にすることになる変更を取り入れにくくなる。実際、多くのケースにおいて、製品全体が開発され、その製品を、異なる言語を使い、または別の面で区別される異なる市場に拡大するための戦略的マーケティング決定が行われてからしばらく経過しないと、ローカライゼーションは実施されない。こうしたケースすべてにおいて、一般に、アプリケーションを開発する際、ローカライゼーションを念頭において、もしくはローカライズ用に最適化するために行われる先行作業はごくわずかである。同様に、容易にローカライズ可能な製品またはサービスのオーサリングは、ローカライゼーションが容易でない製品またはサービスのオーサリングよりも難しくないのにも関わらず、開発/オーサリング段階における、ローカライゼーションが比較的容易であろうアプリケーションまたは他の製品/サービスの開発のサポートもごくわずかである。
したがって、製品、サービスおよびアプリケーションは従来、相異なる言語に翻訳され、あるいは複雑な、手作業による手間のかかるプロセスを介してローカライズされていた。このような、ソフトウェア製品のローカライゼーションコスト、および製品に関連するコンテンツの翻訳は、新たな市場に参入するために克服されなければならない深刻な障害を表している。これは、小規模から中規模の独立ソフトウェアベンダまたはコンテンツ制作者に特に当てはまる。
米国特許第6253170号明細書 米国特許第6098033号明細書 Gruber, A TRANSLATION APPROACH TO PORTABLE ONTOLOGIES, Knowledge Acquisition, 5 (2): 199-220 (1993)
ローカライゼーションの問題は、ソフトウェアが開発される具体的な場所に応じても増大する。大規模な市場がある場所でソフトウェアをオーサリングしている開発者にとって、異なる(かつ、おそらくはより小規模な)市場向けのソフトウェアのローカライゼーションは、それほど必要性がない。しかし、開発者が、比較的小規模な市場がある場所で(かつ、そのような言語を使って)オーサリングする場合、製品の全体的な存続可能性は、その製品を、より大規模な市場で使われる言語にローカライズ可能であることに依存し得る。このローカライゼーションには、製造元がローカライゼーションに過度に大量のリソースを費やすことが要求される。この要求のため、しばしば、開発用に使用可能なリソースが損なわれる。
従来のローカライゼーションへの取組みに関連した別の問題は、他の様々なローカライゼーションソースの作業のよい利用法がなかったことである。例えば、多種多様なベンダが、自社製品を様々な市場向けにローカライズする。異なるベンダによって開発された同様のアプリケーションはおそらく、同じ市場向けには同じであるか、あるいはほぼ同じ文字列またはソフトウェアをローカライズしている可能性がある。しかし、現在、2つのアプリケーションが、互いの取組みを利用し、または共有するための好都合な方法はない。したがって、製品のローカライゼーションには、かなりの重複作業がある。
さらに、別個のタイプのリソースマネージャ、リソース形式およびデータストアを有する、異なる多くのプログラミングモデル(Win32、CLRおよびWEB記述など)がある。こうしたプログラミングモデルは、異なるパーサおよびツールセットがローカライゼーションを扱うことを要求するが、そうすると、複雑でコストのかかるプロセス、およびローカライゼーションの品質における不整合が生じる。
本発明は、ローカライゼーションプラットフォームを有するオペレーティングシステム、またはオペレーティングシステムと完全には統合されていないが、それと密接に動作可能なコンポーネントを有する統合型ローカライゼーションプラットフォームを提供する。本ローカライゼーションプラットフォームは、オペレーティングシステムによってリクエストされるサービスとして提供することもできる。本発明は、ローカライゼーションプラットフォームを使用して、コンテンツおよびソフトウェアをローカライズする。本発明は、製品またはサービスのより迅速でより効率的なローカライゼーションを可能にする実践形式(practices)を実行して、製品またはサービスの開発中に用いることもできる。主にローカライゼーションプロセス中の翻訳を参照して説明を進めるが、本発明はそれに限定されず、ローカライゼーションは、別個の市場のための多種多様な他の調整も含む。本発明をより詳細に説明する前に、本発明を利用することができる環境の一実施形態を説明する。
図1は、本発明を実施することができる、適切なコンピューティングシステム環境100の例を示す。コンピューティングシステム環境100は、適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲に対するどのような限定を示唆することも意図していない。コンピューティング環境100は、例示的な動作環境100に示されるどのコンポーネントまたはその組合せに関するどのような依存も要件も有していると解釈されるべきではない。
本発明は、他の数多くの汎用または専用のコンピューティングシステム環境または構成でも動作する。本発明とともに使用するのに適切であり得る他の公知の計算システム、環境、および/または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、電話システム、上記のシステムまたはデバイスのいずれをも含む分散型コンピューティング環境などを含むが、それらに限定されない。
本発明は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令という一般的な文脈において説明することができる。概して、プログラムモジュールは、特定のタスクを実施しまたは特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は、通信ネットワークを介してリンクされるリモート処理装置によってタスクが実施される分散型コンピューティング環境においても実施されるように設計される。分散型コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカルおよびリモートコンピュータ記憶媒体の両方に置かれる。
図1を参照すると、本発明を実施する例示的なシステムは、汎用コンピューティングデバイスをコンピュータ110の形で含む。コンピュータ110のコンポーネントは、処理ユニット120と、システムメモリ130と、システムメモリなど様々なシステムコンポーネントを処理ユニット120に結合するシステムバス121とを含み得るが、それに限定されない。システムバス121は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、ペリフェラルバス、およびローカルバスなど、いくつかのタイプのバス構造のいずれでもよい。限定ではなく例として、このようなアーキテクチャは、ISA(Industry Standard Architecture)バス、MCA(マイクロチャネルアーキテクチャ)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびメザニン(Mezzanine)バスとしても知られるPCI(Peripheral Component Interconnect)バスを含む。
コンピュータ110は通常、様々なコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、コンピュータ110によってアクセスすることができるとともに揮発性媒体および不揮発性媒体の両方、および取外し可能な媒体および取外し不可能な媒体を含む、市販のどの媒体でもよい。限定ではなく例として、コンピュータ読取り可能媒体は、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を格納するためのどの方法でも技術でも実施される揮発性媒体および不揮発性媒体の両方、取外し可能な媒体および取外し不可能な媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、DVD(デジタル多用途ディスク)または他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは、所望の情報を格納するために使うことができるとともにコンピュータ110によってアクセスすることができる他のどの媒体も含むが、それに限定されない。通信媒体は一般に、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータを、例えば搬送波や他の移送機構などの被変調データ信号の形にし、どの情報配信媒体も含む。「被変調データ信号」という用語は、信号中の情報をエンコードするような方法で設定され、または変更される信号特性の1つまたは複数を有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続などの有線媒体、ならびに音響、RF(無線周波数)、赤外線、および他の無線媒体などの無線媒体を含む。上記のどの組合せも、やはりコンピュータ読取り可能媒体の範囲に含めるべきである。

システムメモリ130は、コンピュータ記憶媒体を、ROM(読出し専用メモリ)131およびRAM(ランダムアクセスメモリ)132など、揮発性および/または不揮発性メモリの形で含む。BIOS(基本入出力システム)133は、例えば起動中にコンピュータ110内部の要素の間で情報を転送するのを助ける基本ルーチンを含み、通常はROM131に格納される。RAM132は一般に、処理ユニット120に対してただちにアクセス可能な、かつ/または処理ユニット120によって現在操作されているデータおよび/またはプログラムモジュールを含む。限定ではなく例として、図1では、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137を示す。
コンピュータ110は、その他の取外し可能/取外し不可能、揮発性/不揮発性コンピュータ記憶媒体も含み得る。単なる例として、図1では、取外し不可能な不揮発性磁気媒体に対して、読出しまたは書込みを行うハードディスクドライブ141、取外し可能な不揮発性磁気ディスク152に対して、読出しまたは書込みを行う磁気ディスクドライブ151、および、CD−ROMや他の光学媒体など、取外し可能な不揮発性光ディスク156に対して読出しまたは書込みを行う光ディスクドライブ155を示す。例示的な動作環境で使うことができる、その他の取外し可能/取外し不可能、揮発性/不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体RAM、固体ROMなどを含むが、それに限定されない。ハードディスクドライブ141は通常、インターフェース140などの取外し不可能なメモリインターフェースによって、システムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は通常、インターフェース150などの取外し可能なメモリインターフェースによって、システムバス121に接続される。
上述し、かつ図1に示されているディスクドライブおよびそれに関連するコンピュータ読取り可能記憶媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、およびコンピュータ110用のその他のデータの格納を可能にする。図1では、例えば、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147を格納するものとして示してある。こうしたコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137と同じでも、異なってもよいことに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147には、少なくとも異なるものであることを示すために、ここでは異なる番号を与えてある。
ユーザは、入力デバイス、例えばキーボード162、マイクロホン163、およびマウス、トラックボール、またはタッチパッドなどのポインティングデバイス161を介して、コマンドおよび情報をコンピュータ110に入力することができる。その他の入力デバイス(図示せず)は、ジョイスティック、ゲーム用パッド、衛星パラボラアンテナ、スキャナなどを含み得る。こうしたおよびその他の入力デバイスはしばしば、システムバスに結合されたユーザ入力インターフェース160を介して処理ユニット120に接続されるが、その他のインターフェースおよびバス構造、例えばパラレルポート、ゲームポート、USB(ユニバーサルシリアルバス)によって接続することもできる。モニタ191またはその他のタイプの表示デバイスも、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続される。モニタに加え、コンピュータは、出力周辺インターフェース195を介して接続することができるスピーカ197およびプリンタ196など、その他の周辺出力デバイスも含み得る。
コンピュータ110は、リモートコンピュータ180など、1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク接続された環境において操作される。リモートコンピュータ180は、パーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークPC、ピアデバイス、またはその他の共通ネットワークノードでよく、通常、コンピュータ110に関連して上述した要素の多くまたはすべてを含む。図1に示す論理接続は、LAN(ローカルエリアネットワーク)171およびWAN(ワイドエリアネットワーク)173を含むが、その他のネットワークも含み得る。このようなネットワーク環境は、会社、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいてよく見られる。
LANネットワーク環境において使われる場合、コンピュータ110は、ネットワークインターフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーク環境において使われる場合、コンピュータ110は通常、モデム172、または、例えばインターネットなどのWAN173を介して通信を確立する他の手段を含む。モデム172は、内蔵でも外付けでもよく、ユーザ入力インターフェース160またはその他の適切な機構を介してシステムバス121に接続することができる。ネットワーク接続された環境では、コンピュータ110に関連して図示したプログラムモジュールまたはその一部は、リモートメモリ記憶デバイスに格納することができる。限定ではなく例として、図1では、リモートアプリケーションプログラム185を、リモートコンピュータ180に常駐するものとして示してある。図示したネットワーク接続は例示であり、コンピュータ間の通信リンクを確立するその他の手段も使用できることが理解されよう。
図2は、図1に示すオペレーティングシステム134に統合されたローカライゼーションプラットフォーム(またはシステム)200を示す。ローカライゼーションプラットフォーム200は、異なるいくつかのメモリストアとともに示してあり、こうしたメモリストアは、図1に示す多様な記憶デバイスのいずれの形でも、または異なる記憶デバイスの形でも実施できることが理解されよう。システム200は、ローカライゼーションを受けるアプリケーション202およびデータ収集コンポーネント205を介して様々な翻訳をシステム200内のデータストアに入力する様々な入力ソース204を有して、インタラクティブに示してある。
システム200は、それ自体が、リソースマネージャ206、レイアウトエンジン208、翻訳メモリ(TM)マッチャー(matcher)210、ダウンロードマネージャ212、翻訳メモリ(TM)データサービス214、機械翻訳(MT)システム216、フィルタ218、証明書システム220および異なる複数のデータストアを含む。図2に示すデータストアは、アプリケーション規則データストア222、ローカルおよび専用ストア224、226、用語ベースデータストア228および用語ベース翻訳データストア230、オントロジーストア232、翻訳メモリ234ならびに共通UI要素データストア236を含む。概して、アプリケーション規則は、リソース中で、アプリケーションに関連するリッチデータを指定するのに用いられ、フィルタは、データに何らかの影響を与えるエンティティ(または入力ソース204)が、それ自体が与えたデータのみを修正することができ、追加されたすべてのデータが、一定の規則に基づいてフィルタリングされることを保障するために使われる。当然ながら、データストアは、所望のどのやり方でも、様々にグループ化し、マージし、または分割することができる。システム200の詳細な動作については、本明細書において図2〜6を参照して後で説明する。図2に示すシステム200および項目の動作の簡潔な説明をここで行う。
ランタイム中に、リソースマネージャ206は、アプリケーション202に関連付けられたリソースをキャッシュメモリ207にロードする(同様のシナリオを、コンテンツおよび他のタイプのローカライズ可能なデータについて見ることができる)。リソースマネージャ206はまた、アプリケーション202から、リソースを求めるコールを受け取る。リソースマネージャ206は、それに応答して、プラットフォーム200によって現在選択されている地域に関連付けられた言語の文字列を最初にロードする。リソースマネージャ206は、リソースのどのバージョンをロードするかを、例えば可用性、信頼性レベル、ユーザ設定など、様々な基準に基づいて決定する。リソースマネージャ206は、TMマッチャー210の呼出しを決定することができる。そうするために、リソースマネージャ206は、TMマッチャー210をコールして、指定されたリソースの翻訳(すなわちローカライゼーション)を取得する。TMマッチャー210は、リソースのローディングにおけるランタイム遅延を防止するために、予め投入されたリソースデータをもっていてもよい。予め投入されている情報は、その情報がMTシステム216からのものであるか、それともTMマッチャー210からのものであるか、その信頼ソースなど、適切な情報でタグ付けされる。これについては、後でより詳細に論じる。TMマッチャー210が、リソースに関して一致(match)を返さない場合、リソースマネージャ206は、異なるフォールバック言語で翻訳を提供することができるように、リソースのフォールバックを介してカスケードする。これについても、後でより詳細に説明する。また、一実施形態では、リソースマネージャ206およびTMマッチャー210は両方とも、フォールバックを有する。両者は、お互いに異なっていてもよく、TMマッチャー210の結果は、リソースマネージャ206に影響を与え得るが、リソースマネージャ206は、TMマッチャー210をコールせずにフォールバックすることを決定することができる。
文字列に対するローカライゼーションによって行われる変更が、そうした文字列を含む表示項目に対する変更を強制することは珍しくない。一般的な例は、より多くの空間(より長い文字列)の必要性、ダイアログの流れに対する変更(右から左への言語に対して、左から右への言語)などを含む。調整プロセスは、ローカライゼーション時、レンダリング時またはその両方のときに起こり得る。最も一般的なケースは、ダイアログ中の項目の再編成およびサイズ変更が必要とされる場合であり、プロセスは、自動レイアウトと呼ばれる。オーサリングプロセス中に提供される情報の量および正確さは、ランタイム時に生じる結果に影響を与える。
TMマッチャー210は、翻訳の様々なソースとリソースマネージャ206との間に置かれ、リソースマネージャは、コンテンツの照合(すなわち、別の言語への翻訳あるいはローカライズ)をリクエストする。TMマッチャー210は、使用可能なソース(およびアプリケーション202によって信頼されるソース)を検索して、関連付けられた信頼性スコアが最高である翻訳を見つける。
TMマッチャー210の動作のより詳細な記述は、図4を参照して後に示す。ただし、簡潔に述べると、TMマッチャー210は、アプリケーションまたはコンテンツ202に関連付けられた、アプリケーション規則データストア222中の規則にアクセスして、リソースマネージャ206に戻されるどのローカライゼーションも、アプリケーション202を誤動作させないようにする。TMマッチャー210は最初に、ローカルデータストア224および専用データストア226を検索して、ローカライゼーションが既に存在するかどうかを見る。ローカルデータストア224は、リソースマネージャ206によって行われたリクエストが、以前行われたものであるケースにおいて、既にローカライズされているリソースの翻訳または他のローカライズを保持する。
TMマッチャー210は、TMデータサービス214も呼び出す。TMデータサービス214は、ストア236に格納された共通ユーザインターフェース(UI)要素、ならびに用語ベース228に格納された定義済みの用語などの、多種多様な異なるものの翻訳またはその他のローカライゼーションを含む翻訳メモリ234にアクセスし、オントロジーストア232は、アプリケーション202および関連付けられたドメインに、コンテキスト情報を提供する。
ローカライゼーションが、ストア224または226上にも、ストア234上にもまだ存在しない場合、TMマッチャー210は、任意選択で使用可能な機械翻訳(MT)システム216(または使用可能な複数のMTシステムの1つ)にアクセスして、ローカライズされるべきコンテンツに対して機械翻訳を実施することができる。TMマッチャー210による、MTシステム216の呼出しの決定は、ユーザのお気に入り、翻訳の入手可能性、入手可能な翻訳およびMTが提供する翻訳の質などに基づくものでよい。機械翻訳システム216は、一実施形態では、市販されているいずれかのMTシステムであり、例示的には、他のメモリソース(TMデータサービス214ならびにローカルおよび専用データストア224、226など)のいずれかに、より高い信頼性レベルと一致するものがない場合にのみ、翻訳に使用される。MTシステム216が、ほぼどのMTシステムでもよく、あるいは異なるストア中のデータ(例えば、以前の翻訳)を使って翻訳を作り出すことができるどのシステムでもよいことにより、システムの拡張性が大いに高まる。というのは、新しいMTシステムも異なるMTシステムも、TMマッチャー210によって容易に使用することができるからである。
当然ながら、MTシステムの拡張性は、システムにおける唯一の拡張性ではなく、一例に過ぎない。システム拡張性の他のいくつかの例は、コンテンツオーサリングエディタ、言語パーサ、サードパーティ翻訳メモリ、コミュニティエディタ、開発オーサリング環境、ウェブサービスへの接続などを含む。こうした、およびその他の分野における拡張性は、プラットフォーム200におけるAPIによってサポートされる。
いずれのケースでも、TMマッチャー210によって呼ばれる翻訳リソースはそれぞれ例示的に、TMマッチャー210に、リクエストされたローカライゼーションに関連付けられた信頼性または再利用率を示す信頼性スコア(あるいは翻訳率、リサイクル率、または他の同様の測度)を提供する。TMマッチャー210は次いで、最高スコアに関連付けられた翻訳を提供する、信頼できるソースからのローカライゼーションまたは翻訳を選択する。翻訳は次いで、ローカルストア224にまだ格納されていない場合、ダウンロードマネージャ212によってローカルストア224にダウンロードされる。
例示的な一実施形態では、多種多様の入力ソース204が、システム200内の様々なメモリに翻訳入力を提供することができる。例えば、ローカライゼーションプラットフォーム200を組み込んでいるオペレーティングシステムを開発するベンダまたはソフトウェア製造業者が、例示的に、信頼できる用語を様々なメモリに提供する。ただし、一実施形態では、入力ソース204は、一般社会および開発者コミュニティを含み得る。一般社会は、ローカライゼーションプラットフォーム200を使ってローカライゼーションサービスを実施する誰にでも、コンテンツの断片の推奨されたローカライゼーションを、データ収集コンポーネント205を介して適切なメモリに提供させる。入力ソース204は、(一般社会とは反対に)公に開発者として認識された開発者によってのみ提供された翻訳を格納する、開発者コミュニティも含み得る。したがって、ローカライゼーションプラットフォーム200は、ユーザの必要とするもの、および期待を満たすために、非常に大規模にコミュニティが関与するためにローカライゼーションプロセスを公開し、かつ微細なレベルで調整する(例えば、ユーザが、何を信頼し、何を信頼しないか決定する)ことが理解できよう。
さらに、データ収集コンポーネントは、動的に(セットアップ、ランタイム、設定などの間)、断続的に様々な入力ソース204から新しいデータを収集することができる。新しいデータは、当然ながら、新しいアプリケーション、新しいドメインをサポートし、実行中のオペレーティングシステムのセルフターニング(self-turning)を実施するための、新しいリソースデータならびに予めローカライズされたデータでも翻訳メモリデータでもよい。このことは、システムの適応性および正確さに等しい。
しかし、特定のアプリケーション開発者、システム管理者またはユーザは、特定のローカライゼーションコンテンツのみが信頼されることを望む場合がある。開発者は、例えば、一般社会または開発者コミュニティからのローカライゼーションコンテンツを信頼せず、ベンダおよびOS製造元からのローカライゼーションコンテンツのみを信頼することを希望する場合がある。この結果、開発者またはユーザは、プラットフォーム200がローカライゼーションタスクを異なるソースに公開する限度を設定することになる。この限度は、文字列単位で設定することもできる。
このような一実施形態において、プラットフォーム200は、特定のソースによって与えられたコンテンツに証明書を添付する証明書システム220を含む。その事例では、アプリケーション202の開発者は、証明書を添付されたローカライゼーションコンテンツのみが信頼されることを望み得る。例えば、開発者およびその他の関与者は、自身のアプリケーションに関連して、自分が属す層に関連する、自身のコンテンツに署名する権利を取得することができよう。これは、アプリケーションの開発者の証明書によって、その開発者を、その具体的なアプリケーション用の開発者層に入れ、他のすべての関与者は、「その他のISV」、コミュニティまたはユーザ層において一層下になることを意味する。証明書は、関与者の層に関連して信頼することができる。例えば、所与の製造業者が、常に最高層を有する可能性があるが、ユーザは、その層から最下層まで、信頼できる層を判定することができ、ある層内で、信頼できるソースを判定することができる。どのローカライゼーションコンテンツが信頼されるべきかに関する、所与のどのアプリケーション202またはどのユーザによる指示も、アプリケーション規則データストア222に格納することができる。証明書は、翻訳のための信頼システムを確立する助けとなる。
ユーザまたは開発者は、階層的な信頼できるソースを選ぶこともできる。例えば、ローカライゼーションコンテンツの発生元に基づいて、ユーザは、OS製造元のみを信頼するかどうかを判断することができ、何も入手可能でない場合は、独立ソフトウェアベンダの翻訳を信頼し、ソフトウェアベンダの翻訳が入手不可能な場合は、開発者コミュニティなどを信頼するしかない。例示的な一実施形態では、この階層は、デフォルトで確立されるが、ユーザは、これを個人設定で単に受諾し、または覆すだけでよい。このような設定は、各アプリケーションまたはこのアプリケーションを実行する個々のマシンに関連付けられたアプリケーション規則において実装することができる。
また、専用ストア226は、ユーザのデータストアに存在する点で、ローカルストア224と同様であることに留意されたい。ただし、ローカルストア224は例示的には、システム全体のストアであるが、専用ストア226は、ユーザによって自分専用に使用するために入れられるデータを含む、個々のユーザに対応する信頼できるローカライゼーションコンテンツを示すために使うことができるストアである。したがって、個々の各ユーザは、信頼できる様々なローカライゼーションコンテンツを識別することができる。そのコンテンツは、専用ストア226の中で、その特定のユーザのものと識別される。こうすることにより、個々のユーザは、ローカライゼーションプロセスを、個々のアプリケーションに関連付けられたものよりも、さらにカスタマイズできるようになる。例えば、ユーザは、アプリケーションによって必要とされ、許可されるように、自分自身のアプリケーションに変更を行うことができる。ユーザは、ローカルまたは専用ストアを、元のようにコミュニティと共有することもできる。
さらに、特定の翻訳を、修正されないようにロックすることができる。このロックは、悪意があるかもしれない翻訳を避けるために非常に重要であり得る。例えば、入力ソースの1つが、「自分のハードドライブをフォーマットするには、ここをクリックしてください」という用語を、「続けるには、ここをクリックしてください」と翻訳するような悪意のある翻訳を提供する可能性がある。
TMマッチャー210は、リソースマネージャ206からのリクエストに対する所望のローカライゼーションを取得すると、フィルタ218およびストア222にあるアプリケーション規則を適用する。フィルタ218は例示的に、所与の任意の言語の、どのローカライゼーションコンテンツにもあるべきでない用語を定義する。例えば、一部のユーザが、非常識な用語またはその他の不愉快なコンテンツのフィルタリングも望む場合がある。したがって、フィルタ218は、リソースマネージャ206によってリクエストされる、ローカライズされたコンテンツの使用に先立って適用される。フィルタ(ならびにその他のあらゆるタイプの検証)の適用は、ローカライゼーションにおける1ステップであり、例えば編集、ダウンロード、使用などのプロセス中の多くのステップにおいて、適用することができることに留意されたい。
例えば、検証は概して、(例えば、不正な活動に対して)2つのコンポーネントが完全に互いを信頼し、通信するために使われるチャネルも信頼されていない限り、この2つのコンポーネントがデータを交換するときは常に生じる。したがって、例えば、リソースが、信頼できるソースからダウンロードされ、有効な署名を含む場合、他に検証(署名の検証以外)を行う必要はない。ソースは信頼されるが、ファイルに署名されていない場合、情報を移送するために使われるチャネルも、信頼されるかどうかの判定のために評価される。例えば、インターネットからダウンロードされた無署名ファイルは、同じコンピュータ内の別のフォルダからユーザがコピーした無署名ファイルよりも改竄される可能性が高い。いくつかの要因に応じて、迅速で機能的な検証への着手を決定することもでき、不快な単語の調査や、元のリソース中の用語が確実に目標リソースに存在するように(例えば、「メニュー」が「フォルダ」と翻訳されないように)するなど、何らかの追加コンテンツ検証を執り行うこともできる。
アプリケーションセットアップ/設定コンポーネント240は、セットアップ中およびセットアップ後の設定において使われる。セットアップ中に、アプリケーション202は、そのリソースをローカルリソースストア224に登録する。コンポーネント240は例示的に、ユーザに、アプリケーションがまだローカライズされていない場合、プラットフォームによってサポートされるターゲット言語にローカライズすることを可能にするユーザインターフェースを公開する。ユーザインターフェースは、ユーザに、ターゲット言語を明示的に選択させることができる。オンデマンドローカライゼーションコンポーネント241は、こうしたリクエストをリソースマネージャ206に、かつおそらくはTMマッチャー210にも渡す。
レガシーアプリケーション242は、過去に開発され、プラットフォーム200を認識していないアプリケーションを表す。互換レイヤ243は、レガシーアプリケーション242によって使われる既存のリソースインターフェースをサポートし、コールをリソースマネージャ206にリダイレクトする。
図3は、本発明の一実施形態による、プラットフォーム200の動作をより詳細に示すフロー図である。ランタイム中、ユーザは最初にアプリケーション202を選択し、または起動する。これは、図3のブロック300で示してある。次に、本実施形態では、リソースマネージャ206が、アプリケーション202に関連付けられた、必要とされるリソースをキャッシュメモリ207(または別の記憶デバイスだが、このコンテキストではすべて「キャッシュ」と呼ぶ)にロードする。これは、ブロック302で示してある。
バックグラウンドで、オペレーティングシステム(具体的には、ローカライゼーションプラットフォーム200)が、キャッシュ207中のリソースを、所望の言語に翻訳し始める。その際、プラットフォーム200は、アプリケーション202に関連付けられたアプリケーション規則222、およびアプリケーション202またはユーザ(どちらでも、当てはまる方)に関連付けられた信頼モデル(すなわち、信頼できるローカライゼーションソース)を使用する。リソースマネージャ206は、キャッシュ207に格納されたリソースに対して、TMマッチャー210を呼び出して、リソースのローカライズされた値を取得する。バックグラウンドでキャッシュ207にロードされるリソースのローカライゼーションを、図3のブロック304で示す。
アプリケーション向けの、ローカライズされたリソースの投入(populating)は、ランタイムまで待つ必要はないことにも留意されたい。それどころか、投入は、セットアップ中にも、別のときにも行うことができる。さらに、ローカライゼーションの一部は、ランタイム時に実行することができ、それ以外の部分は、セットアップ時または別のときに行うことができる。例えば、より計算コストが高い、または時間のかかるタスクのいくつかは、バックグラウンドで、セットアップ中または別のときに実施することができ、より速いタスクは、ランタイム時に実施することができる。さらに別の実施形態では、タスクは、特定のどの時間でも実施されるように(ユーザによって)割り当てることができ、こうしたタスクの状況も同様に表示することができる。
リソースがバックグラウンドでローカライズされると、ローカライズされた値は、キャッシュ207に格納されるだけでなく、ローカルストア224にも置かれる。したがって、アプリケーション202が次に起動されるとき、ローカライズされているリソース値がすべて、既にローカルストア224中に配置されているので、ローカライゼーションプロセスはより速くなる。したがって、ローカライゼーションはシステムによって記憶されるので、TMマッチャー210は、TMデータサービス214を検索する必要も、機械翻訳システム216を使って翻訳された値を持つ必要もない。ローカライゼーションは、単にローカルストア224から取り出せばよい。ローカルストア224への翻訳の格納を、図3のブロック306で示す。また、必要に応じて、全翻訳を、ダウンロードマネージャ212を使って、ローカルストア224にロードすることができる。
当然ながら、本システムは、アップデートも調べることができる。例えば、より優れた翻訳を見つけ出すことができないために、理想的でない翻訳が最初に選ばれる可能性がある。しかし、後からより優れた翻訳を、ソース204の1つによってメモリの1つにロードすることができる。リソースは次いで、この翻訳に適応するために、周期的にアップデートすることができる。
同様に、コードのアップデートにより、以前ローカライズされたリソースが妥当でなくなる可能性がある。したがって、一実施形態では、コード変更が、リソースの一部または全部の再ローカライゼーションをトリガする。
リソース翻訳が行われると、レイアウトエンジン208が、アプリケーション用の表示のレイアウトの修正を要求する特定の翻訳を識別する。さらに、アプリケーションにおいてソース言語で使われているフォントが、ターゲット言語でのフォントにマップされる。このマップは、レイアウトエンジン208または他のコンポーネントによって、ランタイム時またはそれ以前に行うことができる。レイアウトおよびフォントマッピングは、図3のブロック308で示す。
このようにして、オペレーティングシステム内のローカライゼーションプラットフォーム200は、アプリケーション202に関連付けられ、キャッシュ207に格納されているリソースのローカライズを続ける。ただし、アプリケーションが、バックグラウンドでまだローカライズされていないリソースに対してリクエストを行うこともあり得る。このようなリクエストは、図3のブロック310で示す。リソースマネージャ206は最初に、リクエストされたリソースが既にローカライズされ、キャッシュ207に格納されているかどうか判定する。これは、図3のブロック312で示してある。ローカライズされ、格納されている場合、リクエストされたリソースのローカライゼーションは、単にキャッシュメモリ207からアプリケーション202に返される。これは、ブロック314で示してある。
ただし、リソースがまだバックグラウンドでローカライズされキャッシュ207に格納されていない場合、リソースマネージャ206は、TMマッチャー210に対してリソースのローカライゼーションをリクエストする。TMマッチャー210は次いで、アクセスできる様々なソースに対してリソースのローカライゼーションをリクエストし、リクエストされたリソースのローカライゼーションを返す。TMマッチャー210の起動を、図3のブロック316で示す。TMマッチャー210の動作については、後で図4を参照してより詳しく説明する。
キャッシュ207中のリソースをバックグラウンドでローカライズすることによって、ローカライゼーションプラットフォーム200は、従来のシステムからは大幅に逸脱している。従来のシステムは、リソースを有するキャッシュをロードする。しかし、このローディングは、ローカライゼーションにおける深刻な欠点につながる。ローカライゼーションプラットフォームが、オンザフライでMTを起動することによって、アプリケーションがリソースをローカライズするためのリソースのリクエストを待つと、おそらくアプリケーション202の動作に望ましくない遅れが生じるか、または結果が、このような制限された環境で用いることができるアルゴリズムの組によって限定される(性能要件により正確さが制限される)。現在の機械翻訳技術は、一文を翻訳するのに約0.5秒を要する。オンザフライ翻訳および他のローカライゼーションが、本発明によって確かに企図されるが、リソースをすべて、機械翻訳システム216を使ってオンザフライで翻訳すると、おそらくアプリケーションの動作に過度の遅れを生じる。当然ながら、リソースの相当数が以前ローカライズされたことがあり、ローカルストア224または専用ストア226に格納されている場合、あるいは翻訳メモリ234に格納され、リソースの比較的ごく一部分のみがMTシステム216によって翻訳される必要があった場合、バックグラウンドでのキャッシュ207のローカライゼーションは、アプリケーション202の動作を危うくするのを避けることほど重要ではない。
いずれのケースでも、TMマッチャー210は、バックグラウンドで、かつ/またはオンザフライで、キャッシュ207中の値をローカライズし続ける。TMマッチャー210は、リソースがすべてローカライズされるまで続ける。
概して、TMマッチャー210は、1つまたは複数のデータストアに対して働き得る。TMマッチャー210は、任意選択で、他のリサイクルエンジン(TMマッチャーやMTシステムなど)と統合することができる。TMマッチャー210は、任意選択で、専門用語を、その翻訳および関係(オントロジー)とともに利用することができる。TMマッチャー210は、メタデータを使って、ストア中のデータのどの断片が、検索空間(ドメインエリア、制作者、承認状況、または他のメタデータなど)を構成することになっているか決定することができる。TMマッチャー210は、文字列自体に対する制約(アプリケーション規則/フィルタ)を見て、より一致するものまたはより簡単に検証される一致を生み出すために、制約を利用することができる。当然ながら、こうした特徴はすべて任意選択であり、より多くの特徴を追加することもでき、所望に応じて変更することも、TMマッチャーの動作から削除することもできる。
図4は、TMマッチャー210の動作の一実施形態を例示のためにのみ、より詳しく示すフロー図である。リソースマネージャ206は最初に、TMマッチャー210にローカライゼーションを求めるリクエストを送る。これは、図4のブロック350で示してある。TMマッチャー210は次いで、現在のコンテキスト用の信頼モデル情報を取得する。一実施形態では、信頼モデル情報は、データ自体とともに格納されるが、専用ストア226に格納しても、現在のコンテキストを与えられた場合、信頼できるローカライゼーションソースが判定されるべきコンテキストの他のいかなる項目を識別する他のどのソースに格納してもよい。信頼モデル情報は、どのソースが信頼されるかという指示、またはローカライズされた項目が有効であり検討されるために満たされなければならない要件のリストを含み得る。この情報は、アップデートシナリオも支援する。コードに対するアップデートは、リソースが満たさなければならない制約の組を変更し得る。こうした変更には、予め仮定された有効なリソースの再検証が要求される。これは、図4のブロック352で示してある。
TMマッチャー210は次いで、例示的に、信頼できるすべてのローカライゼーションソースに対してリソースのローカライゼーションをリクエストするが、所与の順序でそうすることができる。チェックされるソースの順序および数は例示的には、状況(例えば、ローカライゼーションがランタイム、セットアップ時、バッチ処理中に起こっているかどうかなど)に応じて変わる。これは、ブロック354で示してある。言い換えると、一実施形態では、TMマッチャー210は、信頼できないソースに対しては、翻訳をリクエストすることさえない。その事例では、ユーザが、入力ソース204において、一般社会から、または開発者コミュニティからの翻訳を信頼することを希望しないと仮定する。TMマッチャー210は、信頼できるソースから発生したローカライゼーションコンテンツを求めるだけであり、そうすることによって、一般社会および開発者コミュニティによって与えられるローカライゼーションコンテンツをすべて排除する。当然ながら、TMマッチャー210は、現在のコンテキストを与えられた場合、信頼できるソースに基づいてローカライゼーション結果がリクエストされたソースを修正する。
TMマッチャー210からのリクエストに応答して、ローカライゼーションコンテンツをリクエストされた様々なソースが、ソースに関連付けられた信頼性スコアを返す。例えば、ソース言語での入力が与えられた場合に、翻訳が正しい可能性はどの程度かを示す、関連付けられた信頼性レベルを、翻訳結果が有することは非常に一般的である。本発明の目的にとって、翻訳または他のローカライゼーションに関連付けられた信頼性を示すために、どのような特定の測度が使われるかは重要ではない。説明のための実施形態では、すべてのソースからのスコアは、同じ測度か、または互いに相関するいくつかの測度を用いるので、TMマッチャー210は、スコアの相対規模を判定することができる。翻訳(またはローカライゼーションコンテンツ)に関連付けられた信頼性スコアの戻しを、図4のブロック356で示す。
TMマッチャー210は次いで、最高スコアの信頼できるソースから、ローカライズされたコンテンツ(例えば、翻訳)を取得する。これは、ブロック358で示してある。また、TMマッチャー210は、ローカライズされたコンテンツを取得するために要求される時間、ローカライズされたコンテンツがターゲット市場にどれだけ近づいているか、検証基準または他の基準あるいはいくつかの基準の任意の組合せなど、他のまたは追加基準にも基づいて、ローカライズされたコンテンツを選択することができる。さらに、TMマッチャーは、多数のソースからローカライゼーションコンテンツを取得し、組み合わせることができる。
翻訳が受け取られると、TMマッチャー210は、フィルタ218および他の検証を適用して、アプリケーションおよびコンテキストならびにユーザによって所望されるどのフィルタまたは検証基準を与えられても、ローカライゼーションコンテンツ(または翻訳)が適切になるようにする。フィルタおよび他の検証の適用については、図4のブロック360で示す。TMマッチャー210は、例示的には、所与のリソース向けに取り出されたローカライゼーションコンテンツがアプリケーションの動作を阻止することも、不適切な動作を引き起こすことも、アプリケーションをクラッシュさせることもないようなアプリケーション規則も適用する。フィルタリングおよび検証処理のいくつかは、プロセスにおけるこの時点で、必要なすべてのステップを実施するのを待つのではなく、予め計算できることにも留意されたい。
上記の処理が行われると、TMマッチャー210は、リソースマネージャ206に結果を返す。これは、ブロック362で示してある。このプロセスは、TMマッチャー210がリソースマネージャ206によって呼び出されるといつでも実施されることが理解されよう。したがって、上記プロセスは、キャッシュ207中のリソースがバックグラウンドでローカライズされているときに実施され、アプリケーション202が、依然としてローカライズされていないリソースに対するコールを行うときに実施される。
いずれのケースでも、TMマッチャー210は、所望の言語で対応可能な翻訳がないか、または返された信頼性スコアが所与の閾値未満であるが、機械翻訳システム216を使って翻訳に着手しなければならないことを知ることができる。その時点で、一実施形態では、リソースマネージャ206は通知を受け、TMマッチャー210に、フォールバック言語での翻訳を探すようリクエストすることができる。例えば、ターゲット言語がカタロニア語の場合、アプリケーション202は、リソースの翻訳をリクエストすることができるが、カタロニア語での翻訳が入手可能でない場合がある。しかし、リソースマネージャ206は、スペイン語がカタロニア語にとって第1のフォールバック言語であるように構成することができる。その場合、TMマッチャー210は、カタロニア語での翻訳が入手可能でなく、このような翻訳を取得するためには機械翻訳システム216を呼び出さなければならないという指示をリソースマネージャ206に返す(あるいは、TMマッチャー210による第1のコールにおいて、MTシステム216をコールすることができる)。リソースマネージャ206は、オンザフライ機械翻訳に関連した実施上の不利益を受けるのではなく、単に、TMマッチャー210に、リクエストされたリソースの翻訳をスペイン語で返すようリクエストすればよい。スペイン語での翻訳が入手可能な場合は、TMマッチャー210によって返される。
当然ながら、上述したように、フォールバック地域/言語は、様々な地域が他の様々な地域にとってのフォールバックとなり、その最終的なフォールバックがソース言語となり得るように、所望のどの程度までも階層的にカスケードすることができる。したがって、最終的なフォールバックに到達すると、リクエストされたリソースの翻訳を提供するのではなく、リソースマネージャ206は、アプリケーション202に、プラットフォームによって保障される、リクエストされたリソースを最終的なフォールバックの形で単に返すので、アプリケーションは、クラッシュすることも、プラットフォームのせいでユーザとの対話点を失うこともない。
ユーザは例示的には、フォールバック階層がどのように作用するかを設定することもできる。例えば、ユーザは、リソース群を一緒に(例えば、ダイアログをいくつかの文字列とともに)表示することを、ダイアログのいくつかの部分をある言語で(または、ある市場にローカライズされる)、いくつかの部分を別の言語で(例えば、フォールバックで)見せることができるように指示することができる。他のユーザは、表示されたリソース群がすべて、1つの言語となる(または同じ市場にローカライズされる)ように指示することができる。
ユーザは、アプリケーションを、プラットフォーム200によって翻訳させるように起動する必要がないことにも留意されたい。ユーザは、ローカライゼーション用のアプリケーションまたは他のソフトウェアコンポーネントを選択するだけでよく、プラットフォーム200は、バックグラウンドでローカライズすることができる。例えば、一実施形態では、ユーザは、アプリケーションを右クリックし、メニューから、「ローカライズする」を選択する。プラットフォーム200は次いで、アプリケーションのローカライズをバックグラウンドで開始し、ローカライズされたコンテンツをローカルストアに格納する。コンテンツは、バックグラウンドでローカライズすることもできる。一実施形態では、ユーザは、ファイルシステムまたはサーバに格納されているドキュメントを右クリックし、「ローカライズする」を選ぶ。ローカライゼーションプラットフォームは、ドキュメントをバックグラウンドでローカライズする。同じことが、インターネットからダウンロードされるドキュメントに当てはまる。
さらに、アプリケーションがインストールされるとき(またはそれより後で)、ユーザは、異なる複数の言語をインストール用に選択することができる。こうした言語は次いで、ローカルデータストア224にロードされる。翻訳は、コンパクトディスク、またはその他の記憶媒体に格納することができる。
図5は、開発のコンテキストにおけるプラットフォーム200のコンポーネントを示すブロック図である。多数の項目は、図2に示すものと同じであり、同じように番号をつけてある。
図5は、支援プラットフォーム380および開発コンポーネント382を示す。開発コンポーネント382は、ワシントン州レドモンドのマイクロソフトコーポレーションから市販されているVisual Studioや、オーサリングソフトウェア用の他のあらゆる所望の開発コンポーネントなど、望ましいどの開発コンポーネントでもよい。支援プラットフォーム380は、翻訳プラットフォーム381など、開発者にリサイクル率が高い製品を開発させるプラットフォーム200の1つまたは複数のコンポーネントと対話することによって、コンテンツのオーサリングを支援し、異なる言語へのローカライゼーション用コストを大幅に削減する。開発コンポーネント382および支援プラットフォーム380は両方とも、プラットフォーム200によって提供されるサービスを消費する。その際、開発コンポーネント382および支援プラットフォーム380は、他のコンポーネントとともに、特定の実践形式をフロントエンド開発/オーサリングプロセスに構築し、このプロセスは、おそらく、異なる様々な市場に参入するための製品のローカライズ可能性を大幅に高め、また、開発投資に対する収益を大幅に上げるだろう。
ビルドコンポーネント384は、ローカライゼーションプラットフォームおよび/または支援プラットフォーム380あるいはデータストア222中のAPIおよびアプリケーション規則を介してローカライゼーションプラットフォームにアクセスすることができる他のどのコンテンツオーサリングツールによって提供される情報も利用し、アプリケーション202ならびにコンテンツドキュメントを構築する。
図5の記述は、概してアプリケーションを開発する開発者またはコンテンツをオーサリングする制作者に関連して進むことにも留意されたい。ただし、本システムは、開発者が開発し、または制作者がオーサリングしているコンテンツにもソフトウェアのタイプにも関わらず、様々なものに対して使うことができる。
本発明の一実施形態によると、開発者または制作者が、それぞれソフトウェアを開発するための開発コンポーネント382またはコンテンツを開発するための支援プラットフォーム380を使う2通りの方法がある。第1の方法は、プラットフォームのアプリケーションプログラミングインターフェース(API)または他の同様の機構を介して、何らかの同様のコンテンツまたはソフトウェアが既に開発されているか、プラットフォーム200内のメモリのいずれかに格納されているどうか判定する、自分のオーサリング/開発環境における特徴を用いるものである。第2の方法は、開発者が、ソフトウェアまたはコンテンツ(元の、またはそうでないもの)を単に開発するものである。後者のケースにおいて、プラットフォーム200は、単に開発者にコンテンツ/ソフトウェアのリサイクル率(例えば、以前の翻訳を与えられた場合、プラットフォーム200において、異なる言語に翻訳することができるコンテンツ/ソフトウェアの量)に関するフィードバックを提供し、リサイクル率を上げるであろう実施を推奨し、また、ローカライゼーション後にアプリケーションが誤動作するのを阻止する実践形式を推奨するように振る舞う。
第1の実施形態によると、コンテンツ制作者は、支援プラットフォーム380を介して入力を与え、支援プラットフォーム380は、リソースをオーサリングするためのAPIまたは他の同様の機構をコールする。これは、図6のブロック500で示してある。支援プラットフォーム380は次いで、TMマッチャー210を呼び出して、ローカルストア224にアクセスし、既に翻訳されているすべてのタイプのリソースを返す。これは、図6のブロック502で示してある。例えば、開発者のプラットフォームは、コンテンツ開発者がリソースのオーサリングを希望していることを示すAPIを呼び出すことができる。それに応答して、プラットフォーム380は、プラットフォーム200に含まれ、異なる様々な言語に既に翻訳されているリソースの相異なるクラスすべての指示を返す。例えば、プラットフォームからの、開発者プラットフォームによってユーザに提示される結果は、「メニュー」および「エラーメッセージ」クラスであると仮定する。
API中の公開されている機能を介して、開発者は、「エラーメッセージ」クラスを選ぶことができ、支援プラットフォーム380は、プラットフォーム200のこの情報(どのメモリにも格納することができるということ)をリクエストし、次いで、プラットフォーム200に含まれるエラーメッセージの相異なるクラスをすべて返す。開発者は次いで、エラーメッセージのクラスの1つを選択し、プラットフォーム380は、そのクラスに関連付けられた具体的なエラーメッセージをすべて返す。ユーザは次いで、既にオーサリングされているとともに、ローカライズが既に高効率である(例えば、異なる様々な言語に既に翻訳されているか、あるいはローカライズされているために)エラーメッセージの1つを単に選択するだけでよい。タイプ、クラスおよび具体的なリソースを、入手可能な場合に選択する開発者については、図6のブロック504で示す。
当然ながら、開発者がオーサリングすることを希望する具体的な、正確なメッセージが既に入手可能でない場合があることも理解されよう。その場合、ユーザは、非常に近いメッセージを選択し、修正することができる。修正されたメッセージはおそらく、その大多数が既にローカライゼーションプラットフォーム200内に存在するので、多くのケースにおいて、かなり効率的にローカライズすることが可能である。いずれのケースでも、同一のメッセージではなく同様のものを選ぶと、信頼性において不利益が生じる。選んだリソースの修正を、図6のブロック506で示す。
このタイプのリサイクルは、制作者に、従来技術によるローカライザに比較して、開発後に起こる高度の柔軟性をもたらす。例えば、制作者は、ソフトウェア文字列上の配置物の数を変更することができるが、従来のローカライザは、より一層制約を受ける。また、制作者は、ソース文を全体的に置き換えることができる(主要な用語は維持されると仮定する)が、従来のローカライザは、そうすることができない。「ファイル{0}は存在しません」というエラーメッセージ用の文を検討する。制作者は、この文を、「ドライブ{1}上のファイル{0}は見つけることができませんでした。」と変更することができるが、従来のローカライザは、第1文の翻訳を、第2文用の翻訳として使うことができない。というのは、コードにアクセスせずには、従来のローカライザは、配置物の数に関する、コードの根底にある前提を変更することができないからである。リサイクルは、メッセージ中に見つかったテキストを参照して行うことができるだけでなく、データストア236中の共通UI要素を参照して行うこともできる。従来のUI要素を再利用すると、製品のリサイクル率およびローカライゼーションも高まる。
開発中に、開発者は、オントロジー間関係ストア(ontology-to-ontology store)232の提供を希望する場合もある。オントロジーとは、概念化(conceptualization)の規格であり、コンテンツおよび文字列の意味的エンコードを可能にする、用語間の関係を記述する。オントロジーの一実施形態は、例えば特許文献1および特許文献2に示されている。オントロジーの別の説明が、例えば非特許文献1に示されている。
概して、単語は、文脈に応じて異なるように翻訳される。具体的には、単語または用語は、ソフトウェアのローカライゼーションにおけるアプリケーションコンテキストに応じて異なるように翻訳することができる。ローカライゼーションプラットフォーム200は、用語間の関係を記述するオントロジーデータストア232の形の意味データにアクセスする。オントロジーは、単語または用語とともに意味情報を入れることによって、手作業でも、単語または用語の、他の単語または用語への近接によって意味的文脈を判断することが可能なアルゴリズムを適用することによって、自動的にも生成することができる。データストア232は例示的には、リソースフォーマットから導出された構造およびアプリケーションコンテキストによって投入を受ける。オントロジーストア232における意味的エンコードのタイプにより、プラットフォーム200は、翻訳されるリソースに対するセマンティクスの多義性を排除することが可能になるとともに、クエリの多義性排除も可能になるので、強力な検索機能も提供する。翻訳プラットフォーム381は、図6のブロック508において、多義性排除が要求されるかどうか判定する。要求される場合、オントロジーストア232にアクセスして、多義性のある意味情報を取得することもでき、開発コンポーネント382が開発者に対して同じことを行い得るのと同じやり方で、支援プラットフォーム380が制作者に対して多義性のある意味情報をリクエストすることもできる。これは、図6のブロック510で示してある。
開発者が製品の開発を続ける際、オーサリングされたリソースはそれぞれ、プラットフォーム200内の翻訳プラットフォーム381によるローカライゼーションレート推定値に従う。オーサリングされたリソースのローカライゼーションレートを推定する際、翻訳プラットフォーム381は、既に翻訳(あるいはローカライズ)されており、プラットフォーム200上のどこかに存在するリソースの割合を識別する。翻訳プラットフォーム381は、システム216による機械翻訳をリソースに受けさせるための要件も明らかにし、プラットフォーム200上にある翻訳それぞれに関連付けられた信頼性スコアも考慮に入れる。こうした項目は、オーサリングされる製品が、異なる言語で稼動する市場にローカライズするのがどれだけ容易であるかという測度であるリサイクル率を提供するように組み合わされる。実行される場合、全体的リサイクル率が、図6のブロック512において示される。
リサイクル率は、多種多様な異なるやり方で用いられることができることに留意されたい。例えば、開発者が、システム全体のあるコンポーネントを開発しているに過ぎない場合、コンポーネントは、チェックインされることが許可される前に、一定のリサイクル率閾値を満たすことが要求され得る。同様に、リサイクル率は、製品が他の市場に導入される可能性がどの程度あるかを問われた場合、製品の値を示し得るであろう。当然ながら、このリサイクル率は、多種多様な他のやり方でも用いられることができる。
システムは、プラットフォーム上で開発されないコードに対するリサイクル率を計算できることにも留意されたい。コードは、プラットフォーム200に単に与えるだけでよく、TMマッチャー210が、コードに対するリサイクル率を全体として計算し、所望に応じて返すことができる。この計算法は、製品を新たな市場に展開するかどうかの決定にも、製品における権利を購入するかどうかの決定にさえも使うことができる。
ここで、開発者が、既に存在するリソースを選んでいない実施形態を参照して、記述を進める。開発者は、予めオーサリングされたリソースからの選択を希望せず、元のリソースまたはコンテンツをオーサリングすることができると仮定する。これは、図6のブロック514で示してある。その場合、開発者は、コンテンツの部分を単にオーサリングし、支援プラットフォーム380が、TMマッチャー210をコールして、オーサリングされたコンテンツに対するリサイクル率を判定する。これは、図6のブロック516で示してある。TMマッチャー210は次いで、そのローカライゼーションソースにアクセスし、新たにオーサリングされたリソースまたはコンテンツに対するリサイクル率を返す。これは、図6のブロック518で示してある。
この時点で、プラットフォーム200は、制作者が開発中の製品のリサイクル率を向上させるのを助け得る実践形式(practices)に関して、制作者に通知を行い、またはローカライズされるとアプリケーションを誤動作させる可能性がある特定の実践形式について制作者に警告するのに使うこともできる。こうしたヒントの戻しを、図6のブロック520で示す。一実施形態では、こうしたヒントは、製品のソースが再利用されている場合でさえも与えられる。ソースが再利用されているということは、当然ながら、チェックのいくつかが既に実施されていることを意味し得る。
リサイクル率またはアプリケーション機能に影響するかもしれない実践形式のいくつかの例は、例えば、長い文字列を書くことを含む。長い文字列は、理解しにくいだけでなく、翻訳するのがより難しい。さらに、ソフトウェアが、アプリケーションをクラッシュさせるであろうバッファのオーバーランという危険を提示する。リサイクル率またはアプリケーション機能に影響し得る他の実践形式は、特殊文字の使用または不適切な、すなわち正しくない文法の使用を含む。適切な文法構文を使用すると、テキストを翻訳する能力が大幅に向上する。TMマッチャー210はしたがって、コードのリサイクル率および実践形式の助言に関してリアルタイムフィードバックを提供する。
また、プラットフォーム200は、分析されているコンテンツにおけるこうした問題エリアの悪影響を削減するための特定のアクションをとり得る。こうしたアクションは、アプリケーションが、ローカライゼーションを受けた後でクラッシュする可能性を削減する。プラットフォーム200は、こうした救済アクションがとられることをユーザに警告することができる。
本発明に関して、他のいくつかの項目にも留意されたい。第1に、本発明は、例示的にはホットキーの自動化(hot key automation)を提供する。翻訳プラットフォーム381は例示的には、2つの機能が所与の1つのUIにおいて同じホットキーを割り当てられるのを避けるために、所与のどのUIでも表示されるホットキーを追跡する。翻訳プラットフォーム381は、ホットキーを自動的に選択するように呼び出すこともでき、所与の1つのUIにおいてホットキーの重複が企てられないよう確認するために単に呼び出すこともできる。ホットキーを選択し、またはユーザに推奨できるようにするためには、プラットフォームは、どの項目をユーザが同時に利用できるかということに関する情報を必要とし、それによって繰返しを避けることができる。その情報は、ユーザのコンピュータに情報を提供するために必要とされるものに密接に関連する。
本発明は、ランタイム環境の検証およびシミュレーションも提供することができる。開発者は、コンポーネントをオーサリングすると、開発プラットフォーム382においてAPIを呼び出すことができ、プラットフォーム200は、ローカライゼーションが要求されるランタイム環境をシミュレートする。ランタイムシミュレーションにより、開発者は、ローカライズされた後の、表示画面上の表示を物理的に見ることができる。こうすることにより、開発者は、バグをチェックし、表示の美観を評価して、所望に応じて変更を行うことができる。
本発明はこのようにして、開発者が、既に開発されたコンテンツを再利用する能力を高める。こうすることにより、製品のリサイクル率およびローカライゼーションが大幅に高まる。
さらに、本発明は、オペレーティングシステム、アプリケーション、コミュニティおよびサードパーティ、さらに機械翻訳からの、ローカライズされたコンテンツを知的に組み合わせるシステムを提供する。リソースマネージャは、様々なソースまたはデータストア(ローカライゼーションコンテンツコンポーネントとも呼ばれる)から、必要とされる言語あるいは他の文化的または市場基準に従ってリクエストされたリソースを返すことによって、アプリケーションのリソースをロードする。
さらに、ローカライゼーションプラットフォームは、ローカライズされたデータを、多種多様なリクエスト側エンティティ、例えばアプリケーション、ブラウザ、検索エンジン、リソースローダ、オーサリングツールなどに提供するために使うことができる。
また、コミュニティおよび一般社会にローカライゼーションの代替案を推奨させることによって、本発明は、コミュニティの標準ローカライゼーションを定義させ、ときには、いくつかの非常に小規模な市場へのローカライゼーションを可能にする。例えば、本発明は、ユーザに、英語のアプリケーションをスワヒリ語向けにローカライズさせる。ユーザは、このローカライゼーションを、アプリケーションにおいて様々なリソースの推奨された翻訳としてプラットフォーム200に戻すことができる。他の南アフリカのユーザは、このローカライズされたコンテンツを信頼し、スワヒリ語でダウンロードすることも、自分たちでローカライズし、またはローカライゼーションを修正し、独自のローカライゼーションをプラットフォーム200に戻すことを選ぶこともできる。このようにして、アプリケーションはローカライズされ、見直されることができ、小規模な市場規模のためにそれ以外のやり方では不可能だった市場で流通させることができる。
一実施形態では、入力ソース204がデータを提供すると、データ収集コンポーネント205も、例えば発生元、使用、コンテキスト情報(リソースのバージョン付けなど)、信頼性レベル、属性、機械翻訳ヒントなどのメタデータを記録する。同様に、他のデータを集め、格納することもできる。また、一実施形態では、データを提供した入力ソース204のみが、そのデータを変更することができる。
本発明は、コミュニティからの翻訳のダウンローディングだけでなく、翻訳のアップローディングも提供する。さらに、ソース文字列も、同様にしてアップロード/ダウンロードすることができる。
サードパーティ企業およびコミュニティが、プラットフォーム200に新しいソースおよび翻訳メモリを追加できることにも留意されたい。例示的な一実施形態では、プラットフォーム200が、新しいソース用語およびそのメタデータの追加を可能にするウェブページまたはウェブサービスを提供する。ユーザは例示的には、新たに追加された各アイテムのソースをプラットフォーム200が判定し得るような認証を受ける。
さらに、プラットフォーム200は例示的には、ユーザにいくつかの文字列を一度にアップロードさせることを可能にする、公表されたスキーマ(XMLスキーマなど)に従って動作する。この場合もやはり、すべての動作が認証を要求し得るので、各文字列のソースが知られている。このようなソース文字列は例示的には、1つまたは複数の翻訳とともに追加することができる。プラットフォーム200は、用語データベース中の用語を参照して同様に動作する。
また、一実施形態によると、コミュニティは、プラットフォーム200におけるソース文字列に翻訳を提供することができる。翻訳を編集する場合、ソース中に存在するメタデータは例示的には、「翻訳者」にとって利用可能であり、メタデータは、翻訳の受諾に先立って強制される。これは、シンプルなウェブインターフェースで行うことができる。こうした翻訳は、ユーザが自分の翻訳をコミュニティと共有することを選んだ場合、他の人々によって使うことができる。
本発明は例示的には、コミュニティが、プラットフォーム200に既に存在する翻訳を見直すことも可能にする。こうすることにより、翻訳のソースに、自分の翻訳が他のユーザによって何回選ばれたか判定させることができる。こうすることにより、コミュニティにおける入力ソースが、作業の質に基づいて、それ自体の名前を構築することが可能になり、入力ソースがコミュニティにおいてより価値が高くなるように、入力ソースに、より優れたジョブを行わせる。
本発明のさらに別の実施形態によると、開発者は、翻訳用のアプリケーションをアップロードする場合、エンドユーザが製品の独自にローカライズされたバージョンをダウンロードすることを可能にするための機会が与えられる。この選択肢が可能にされた場合、ユーザは、プラットフォーム200にログインし、製品の個人的なバージョンを生成するために、どの言語、エンジンおよび翻訳を使うかを選ぶことができる。
例えば、ユーザは、コミュニティ(または具体的なユーザ)が承認した翻訳メモリを使って翻訳エンジンの正確な一致のみを指定しながら、製品の「xyz」バージョンを所望することができる。このプロセスは、より高い割合のリソース翻訳を取得するために、定期的に繰り返すことができる。プラットフォーム200は、新たな翻訳が利用可能になると、メールまたは他の警告サービスを介してユーザに通知を提供することもできる。
別の実施形態によると、サードパーティが、プラットフォーム200に新たなソース検証(または翻訳)エンジンを追加することができる。上述したように、開発者は、プラットフォーム200にアプリケーションを提出して、アプリケーションが十分にローカライズ可能かどうか判定することができる。サードパーティは、この判定をサポートするための新しいエンジンを書くことができる。サードパーティが、ソース検証を実施するための基準を満たすエンジンを開発する(例えば、所望のインターフェースを実装する)と、サードパーティは、プラットフォーム200にアップロードし、ユーザにエンジンのダウンロードを託すことができる。本発明に関連して説明したプロセスの他の部分と同様に、署名および認証は例示的には、エンジンのソースが周知であり、ユーザは、そのソースを信頼すると判断していることを確認するために用いられる。
翻訳エンジンを同様にして追加することができるが、例示的には、翻訳エンジンは、既に存在するどの翻訳データも破壊しないようにするためにとられるステップを、プラットフォーム200に実装しているサーバ上で実行することができる。さらに、本発明は、開発者を支援するためのグローバリゼーションおよび言語的チェックを実施する。本発明は、コミュニティが、開発者を助けることも可能にする。例えば、コミュニティに、ソース文字列を容易にローカライズすることができる特定のドメイン内で、ダイアログボックス上のソース文字列を所望することができる。これは、開発者が十分にローカライズ可能なコンテンツのオーサリングに着手するのを支援する。
説明した実施形態では、特定の機能が特定のコンポーネントに割り当てられるが、これが該当しなくてもよいことにも留意されたい。こうした機能は、異なるコンポーネントによって実施することも、いくつかのコンポーネントを削除し、修正し、または追加することもでき、そのすべてが本発明の範囲内である。
したがって、本発明は、多種多様な製品および多種多様な入力ソースの過去のローカライゼーションからのローカライゼーション用のデータを統一することが理解できよう。各アプリケーションまたは製品が、他の製品によってアクセス可能でない、翻訳の独自メモリを有するのではなく、プラットフォーム200は、この情報を、所望に応じて開発者またはユーザによって、異なる製品の以降のローカライゼーションに利用可能にする。プラットフォーム200は、エンドユーザが、自分のコンピュータ経験をカスタマイズする(ローカライズする)ためのより広範囲の選択肢にアクセスするようなローカライゼーションプロセスも変更する。プラットフォーム200は、プロセスへのコミュニティの参加も可能にする。その結果、ローカライゼーションタスク自体が製品に依存しなくなり、アプリケーションコンテキストを介して製品にリンクされるだけとなる。他のアプリケーションは、信頼モデルおよびアプリケーションコンテキストが認めた場合、ローカライズされた文字列にいつでもアクセスすることができる。
特定の実施形態を参照して本発明を説明したが、本発明の趣旨および範囲から逸脱することなく、形体および細部において修正を行うことができることは当業者には理解されよう。
本発明を実施することができる環境の例示的な一実施形態を示すブロック図である。 本発明の態様を実施するランタイム環境を示す、より詳細なブロック図である。 翻訳が入手可能でない、図2に示すプラットフォーム(またはシステム)の動作全体を示すフロー図である。 図2に示す照合コンポーネントの動作を示すフロー図である。 アプリケーションまたは他のコンテンツの開発中に使われる、図2に示すローカライゼーションプラットフォーム(またはシステム)のより詳細なブロック図である。 本発明の一実施形態による、以降のローカライゼーションを支援する技術を実装する製品をどのようにして開発することができるかを示すフロー図である。

Claims (13)

  1. ローカライズされていないコンテンツであり、オーサリングされた情報を示すユーザ入力を受け取るように構成されたオーサリングツールと、
    前記オーサリングツールに動作可能に結合され、ローカライゼーションコンポーネント、および前記情報がオーサリングされるアプリケーションに関連づけられた規則を格納するアプリケーション規則データストアを含むローカライゼーションプラットフォームとを備え、
    前記ローカライゼーションコンポーネントは、前記アプリケーションに関連づけられた前記規則に基づいて、動作情報を前記オーサリングツールに提供するように構成され、前記動作情報は、前記オーサリングされた情報が前記アプリケーションの動作に悪影響を与えるかどうかを示し、前記ローカライゼーションコンポーネントは、前記オーサリングされた情報がオーサリングされた市場とは別個の市場にローカライズされる場合に、前記動作情報を、前記アプリケーションの動作を阻止する前記オーサリングされた情報の特性を示す情報として提供するように構成され、前記オーサリングされた情報がローカライズされる場合に、前記オーサリングされた情報の特性を修正して、前記アプリケーションの動作に影響を及ぼす阻止の影響を低下させるように構成されていることを特徴とするローカライゼーションオーサリングシステム。
  2. 前記ローカライゼーションコンポーネントは、ローカライゼーション照合コンポーネントおよびリソースマネージャコンポーネントのうちの1つを備えることを特徴とする請求項1に記載のローカライゼーションオーサリングシステム。
  3. 前記オーサリングされた情報は、テキストコンテンツを含むことを特徴とする請求項1に記載のローカライゼーションオーサリングシステム。
  4. 前記オーサリングされた情報は、アプリケーションコードを含むことを特徴とする請求項1に記載のローカライゼーションオーサリングシステム。
  5. 前記オーサリングされた情報は、アプリケーションコード用のリソースを含むことを特徴とする請求項1に記載のローカライゼーションオーサリングシステム。
  6. 前記動作情報は、前記オーサリングされた情報の、前記オーサリングされた情報のリサイクル率を低下させる特性を示すことを特徴とする請求項に記載のローカライゼーションオーサリングシステム。
  7. 前記動作情報は、前記オーサリングされた情報における文法の不適切な使用を示すことを特徴とする請求項に記載のローカライゼーションオーサリングシステム。
  8. 前記動作情報は、前記オーサリングされた情報の、バッファオーバーランを生じさせる特性を示すことを特徴とする請求項2に記載のローカライゼーションオーサリングシステム。
  9. 前記オーサリングツールは、テキストコンテンツオーサリングツールを備えることを特徴とする請求項に記載のローカライゼーションオーサリングシステム。
  10. 前記オーサリングツールは、アプリケーションコードをオーサリングする開発ツールを備えることを特徴とする請求項に記載のローカライゼーションオーサリングシステム。
  11. コンピュータに実装される、情報をオーサリングする方法であって、
    オーサリングコンポーネントから、ローカライズされていないコンテンツである、オーサリングされた情報を示すユーザ入力を受け取ること、
    前記情報がオーサリングされるアプリケーションに関連づけられた規則を格納するアプリケーション規則データストアにアクセスすること、
    前記アプリケーションに関連づけられた前記規則に基づいて、動作情報を識別することであって、前記動作情報は、前記オーサリングされた情報が、前記アプリケーションの動作に悪影響を与えるかどうかを示し、
    前記オーサリングされた情報がオーサリングされた市場とは別個の市場に前記オーサリングされた情報がローカライズされる場合に、前記アプリケーションの動作を阻止する前記オーサリングされた情報の特性を示す情報を識別することを含むこと、
    前記動作情報を前記オーサリングコンポーネントに提供すること、および、
    前記オーサリングされた情報がローカライズされる場合に、前記動作情報を使用して、前記オーサリングされた情報の特性を修正し、前記アプリケーションの動作に影響を及ぼす阻止の影響を低下させること
    を含むことを特徴とする方法。
  12. 入力サービスから前記アプリケーション規則を収集すること、および、
    前記アプリケーション規則を前記アプリケーション規則データストアに格納すること
    をさらに含むことを特徴とする請求項11に記載の方法。
  13. コンピュータ実行可能命令を格納したコンピュータ記憶媒体であって、前記コンピュータ実行可能命令がプロセッサによって実行されると、前記プロセッサに、請求項11または12に記載の方法を実行させることを特徴とするコンピュータ記憶媒体。
JP2006063069A 2005-03-08 2006-03-08 アプリケーションローカライゼーション規則を実装するオーサリング Expired - Fee Related JP5063014B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US65961605P 2005-03-08 2005-03-08
US60/659,616 2005-03-08
US11/118,438 2005-04-29
US11/118,438 US20060206797A1 (en) 2005-03-08 2005-04-29 Authorizing implementing application localization rules

Publications (3)

Publication Number Publication Date
JP2006252552A JP2006252552A (ja) 2006-09-21
JP2006252552A5 JP2006252552A5 (ja) 2009-04-23
JP5063014B2 true JP5063014B2 (ja) 2012-10-31

Family

ID=36359141

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006063069A Expired - Fee Related JP5063014B2 (ja) 2005-03-08 2006-03-08 アプリケーションローカライゼーション規則を実装するオーサリング

Country Status (6)

Country Link
US (1) US20060206797A1 (ja)
EP (1) EP1701255B1 (ja)
JP (1) JP5063014B2 (ja)
KR (1) KR20060096944A (ja)
AT (1) ATE409902T1 (ja)
DE (1) DE602006002901D1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060116864A1 (en) * 2004-12-01 2006-06-01 Microsoft Corporation Safe, secure resource editing for application localization with automatic adjustment of application user interface for translated resources
US7716641B2 (en) * 2004-12-01 2010-05-11 Microsoft Corporation Method and system for automatically identifying and marking subsets of localizable resources
US7617092B2 (en) * 2004-12-01 2009-11-10 Microsoft Corporation Safe, secure resource editing for application localization
US8219907B2 (en) * 2005-03-08 2012-07-10 Microsoft Corporation Resource authoring with re-usability score and suggested re-usable data
US8265801B2 (en) * 2006-11-22 2012-09-11 Honeywell International Inc. Visual display system for an aircraft
US8086692B2 (en) * 2008-08-27 2011-12-27 Satyam Computer Services Limited System and method for efficient delivery in a multi-source, multi destination network
US8312390B2 (en) 2009-06-10 2012-11-13 Microsoft Corporation Dynamic screentip language translation
US8432298B2 (en) 2009-10-30 2013-04-30 Honeywell International Inc. Aircraft visual display system with direct page navigation
US8386235B2 (en) * 2010-05-20 2013-02-26 Acosys Limited Collaborative translation system and method
US20110289424A1 (en) * 2010-05-21 2011-11-24 Microsoft Corporation Secure application of custom resources in multi-tier systems
US20140006004A1 (en) * 2012-07-02 2014-01-02 Microsoft Corporation Generating localized user interfaces
US20140195220A1 (en) * 2013-01-07 2014-07-10 Unisys Corporation Method and system for internationalization of a computing device
EP3665599A4 (en) * 2017-08-10 2021-10-27 Cherwell Software, LLC SYSTEMS AND PROCEDURES FOR PROVIDING GLOBALIZATION FUNCTIONS IN A SERVICE MANAGEMENT APPLICATION INTERFACE

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58101365A (ja) * 1981-12-14 1983-06-16 Hitachi Ltd 機械翻訳システム
JP3176059B2 (ja) * 1990-11-15 2001-06-11 キヤノン株式会社 翻訳装置
CA2141221A1 (en) * 1992-09-04 1994-03-17 Jaime G. Carbonell Integrated authoring and translation system
US5822720A (en) * 1994-02-16 1998-10-13 Sentius Corporation System amd method for linking streams of multimedia data for reference material for display
US5678039A (en) * 1994-09-30 1997-10-14 Borland International, Inc. System and methods for translating software into localized versions
US5694559A (en) * 1995-03-07 1997-12-02 Microsoft Corporation On-line help method and system utilizing free text query
US5671378A (en) * 1995-03-31 1997-09-23 International Business Machines Corporation Method and system for sizing of graphical user interface objects for localization
JP3344528B2 (ja) * 1995-06-29 2002-11-11 インターナショナル・ビジネス・マシーンズ・コーポレーション ウィンドウの表示方法およびそのシステム
US6516296B1 (en) * 1995-11-27 2003-02-04 Fujitsu Limited Translating apparatus, dictionary search apparatus, and translating method
US5809493A (en) * 1995-12-14 1998-09-15 Lucent Technologies Inc. Knowledge processing system employing confidence levels
US5903859A (en) * 1996-03-27 1999-05-11 Dell Usa, L.P. Dynamic multi-lingual software module system
US6169981B1 (en) * 1996-06-04 2001-01-02 Paul J. Werbos 3-brain architecture for an intelligent decision and control system
JPH1074204A (ja) * 1996-06-28 1998-03-17 Toshiba Corp 機械翻訳方法及び原文・訳文表示方法
JP3121548B2 (ja) * 1996-10-15 2001-01-09 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 機械翻訳方法及び装置
US6085162A (en) * 1996-10-18 2000-07-04 Gedanken Corporation Translation system and method in which words are translated by a specialized dictionary and then a general dictionary
KR20000064776A (ko) * 1997-01-24 2000-11-06 이데이 노부유끼 도형 데이터 생성 장치, 도형 데이터 생성 방법 및 그 매체
EP0968475B1 (en) * 1997-05-28 2001-12-19 Shinar Linguistic Technologies Inc. Translation system
US6035121A (en) * 1997-07-07 2000-03-07 Netscape Communication Corporation Method and system for localizing a computer program
US6098033A (en) 1997-07-31 2000-08-01 Microsoft Corporation Determining similarity between words
US6078878A (en) 1997-07-31 2000-06-20 Microsoft Corporation Bootstrapping sense characterizations of occurrences of polysemous words
US6092036A (en) * 1998-06-02 2000-07-18 Davox Corporation Multi-lingual data processing system and system and method for translating text used in computer software utilizing an embedded translator
JP3972230B2 (ja) * 1999-02-15 2007-09-05 株式会社セガ ゲーム装置、ゲーム装置の制御方法及び記録媒体
US6321190B1 (en) * 1999-06-28 2001-11-20 Avaya Technologies Corp. Infrastructure for developing application-independent language modules for language-independent applications
US6425123B1 (en) * 1999-06-29 2002-07-23 International Business Machines Corporation System, method, and program for testing translatability of software by using english multi-byte transliteration creating double-wide characters
US6275790B1 (en) * 1999-07-28 2001-08-14 International Business Machines Corporation Introspective editor system, program, and method for software translation
US7865358B2 (en) * 2000-06-26 2011-01-04 Oracle International Corporation Multi-user functionality for converting data from a first form to a second form
US20040205671A1 (en) * 2000-09-13 2004-10-14 Tatsuya Sukehiro Natural-language processing system
AU2001296823A1 (en) * 2000-10-13 2002-04-22 Trados Corporation Client-driven workflow environment
EP1202168A3 (en) * 2000-10-30 2006-08-23 Microsoft Corporation System and method for dynamically veryfying the compatibility of a user interface resource
US20020118231A1 (en) * 2000-11-14 2002-08-29 Jeff Smith Method of realistically displaying and interacting with electronic files
US6738083B2 (en) * 2000-12-20 2004-05-18 Siemens Information And Communication Networks, Inc. Method and system of displaying telecommunication trace diagnostic information
DE10104018A1 (de) * 2001-01-31 2002-08-08 Bosch Gmbh Robert Verfahren zur Darstellung von einem Internetobjekt
US6983238B2 (en) * 2001-02-07 2006-01-03 American International Group, Inc. Methods and apparatus for globalizing software
US6782529B2 (en) * 2001-03-29 2004-08-24 International Business Machines Corporation Method, apparatus and computer program product for editing in a translation verification test procedure
US7047502B2 (en) * 2001-09-24 2006-05-16 Ask Jeeves, Inc. Methods and apparatus for mouse-over preview of contextually relevant information
US7447624B2 (en) * 2001-11-27 2008-11-04 Sun Microsystems, Inc. Generation of localized software applications
US6944846B2 (en) * 2001-12-14 2005-09-13 Hewlett-Packard Development Company, L.P. Algorithm for localization of a JAVA application using reflection API and a custom class loader
US20030154071A1 (en) * 2002-02-11 2003-08-14 Shreve Gregory M. Process for the document management and computer-assisted translation of documents utilizing document corpora constructed by intelligent agents
US7124073B2 (en) * 2002-02-12 2006-10-17 Sunflare Co., Ltd Computer-assisted memory translation scheme based on template automaton and latent semantic index principle
WO2003077079A2 (en) * 2002-03-08 2003-09-18 Enleague Systems, Inc Methods and systems for modeling and using computer resources over a heterogeneous distributed network using semantic ontologies
CN1643511A (zh) * 2002-03-11 2005-07-20 南加利福尼亚大学 命名实体翻译
US7110937B1 (en) * 2002-06-20 2006-09-19 Siebel Systems, Inc. Translation leveraging
US7596777B2 (en) * 2002-06-25 2009-09-29 Siebel Systems, Inc. Method and apparatus to control translatable properties of metadata
US7353165B2 (en) * 2002-06-28 2008-04-01 Microsoft Corporation Example based machine translation system
US7913183B2 (en) * 2002-10-08 2011-03-22 Microsoft Corporation System and method for managing software applications in a graphical user interface
WO2004049195A2 (en) * 2002-11-22 2004-06-10 Transclick, Inc. System and method for language translation via remote devices
US7509251B2 (en) * 2002-12-23 2009-03-24 International Business Machines Corporation Mock translating software applications at runtime
US7627479B2 (en) * 2003-02-21 2009-12-01 Motionpoint Corporation Automation tool for web site content language translation
US7240292B2 (en) * 2003-04-17 2007-07-03 Microsoft Corporation Virtual address bar user interface control
JP3765798B2 (ja) * 2003-05-27 2006-04-12 沖電気工業株式会社 文書対応関係検査装置、翻訳処理装置、文書対応関係検査方法、翻訳処理方法、および文書対応関係検査プログラム
US7127776B2 (en) * 2003-06-04 2006-10-31 Lg Electronics Inc. Dual display type portable computer and control method for the same
JP2004362249A (ja) * 2003-06-04 2004-12-24 Advanced Telecommunication Research Institute International 翻訳知識最適化装置、翻訳知識最適化のためのコンピュータプログラム、コンピュータ及び記憶媒体
US7437704B2 (en) * 2003-08-28 2008-10-14 Ines Antje Dahne-Steuber Real-time generation of software translation
JP3919771B2 (ja) * 2003-09-09 2007-05-30 株式会社国際電気通信基礎技術研究所 機械翻訳システム、その制御装置、及びコンピュータプログラム
US7318020B1 (en) * 2003-10-08 2008-01-08 Microsoft Corporation Methods and systems for external localization
US7480863B2 (en) * 2003-11-26 2009-01-20 International Business Machines Corporation Dynamic and intelligent hover assistance
CN1950820A (zh) * 2004-03-02 2007-04-18 梅林格有限公司 嵌入式翻译文档方法和系统
US7659890B2 (en) * 2004-03-19 2010-02-09 Microsoft Corporation Automatic height adjustment for electronic highlighter pens and mousing devices
JP2005275936A (ja) * 2004-03-25 2005-10-06 Fujitsu Ltd ウィンドウ管理システム
US20050283466A1 (en) * 2004-06-17 2005-12-22 International Business Machines Corporation Techniques for creating queries
US7624384B2 (en) * 2004-11-30 2009-11-24 Intel Corporation Apparatus, system, and method of dynamic binary translation with translation reuse
US20060116864A1 (en) * 2004-12-01 2006-06-01 Microsoft Corporation Safe, secure resource editing for application localization with automatic adjustment of application user interface for translated resources
US7617092B2 (en) * 2004-12-01 2009-11-10 Microsoft Corporation Safe, secure resource editing for application localization
US7716641B2 (en) * 2004-12-01 2010-05-11 Microsoft Corporation Method and system for automatically identifying and marking subsets of localizable resources
US7788648B2 (en) * 2005-02-28 2010-08-31 International Business Machines Corporation System and method for the localization of released computer program
US7653528B2 (en) * 2005-03-08 2010-01-26 Microsoft Corporation Resource authoring incorporating ontology
US8219907B2 (en) * 2005-03-08 2012-07-10 Microsoft Corporation Resource authoring with re-usability score and suggested re-usable data
US7774195B2 (en) * 2005-03-08 2010-08-10 Microsoft Corporation Method and system for creating, storing, managing and consuming culture specific data
US7698126B2 (en) * 2005-03-08 2010-04-13 Microsoft Corporation Localization matching component
US7822596B2 (en) * 2005-12-05 2010-10-26 Microsoft Corporation Flexible display translation

Also Published As

Publication number Publication date
EP1701255B1 (en) 2008-10-01
ATE409902T1 (de) 2008-10-15
EP1701255A1 (en) 2006-09-13
US20060206797A1 (en) 2006-09-14
DE602006002901D1 (de) 2008-11-13
JP2006252552A (ja) 2006-09-21
KR20060096944A (ko) 2006-09-13

Similar Documents

Publication Publication Date Title
JP5058500B2 (ja) 再利用スコアおよび推奨された再利用可能データを用いたリソースオーサリング
JP5058499B2 (ja) 文化特有のデータを作成し、格納し、管理し、消費する方法およびシステム
JP5063014B2 (ja) アプリケーションローカライゼーション規則を実装するオーサリング
JP5058966B2 (ja) オントロジを組み込むリソース・オーサリング
US7698126B2 (en) Localization matching component
US10956652B2 (en) Support for non-native file types in web application environment
KR100855853B1 (ko) 이미지-기반 소프트웨어 설치
WO2022068556A1 (zh) 一种代码翻译方法、装置及设备
US7966562B1 (en) System and method for providing domain-sensitive help
US20240160436A1 (en) Software development tool installation and command routing

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090306

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120411

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: 20120727

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120807

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150817

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees