Home

Translation management system

image

Contents

1. Developer Workflow Manager 104 Language Database File System Fig 1 U S Patent Feb 25 2003 Sheet 2 of 12 US 6 526 426 B1 201 202 203 Visitor Module Browser Form Country Database Language Database File System 206 Cache Fig 2 U S Patent Feb 25 2003 301 Determine language and country of visitor Is content in cache Notify Web serve of appropriate localized content Place content into cache Record country and language 307 Notify browser of proper display font Sheet 3 of 12 Deliver the cached content US 6 526 426 B1 308 Intercept for input Convert to intemal format 309 310 Place into forms database Fig 3 U S Patent Feb 25 2003 Sheet 4 of 12 US 6 526 426 B1 401 402 404 403 Server Language Log Database File System Fig 4 U S Patent 501 Browser Term DB Country amp Region Database File System Feb 25 2003 502 Developer Module Fig 5 Sheet 5 of 12 US 6 526 426 B1 508 509 503 Web Server 504 Locale independent 505 Templates Language specific 506 Elements Country specific Elements Static HTML 507 U S Patent Feb 25 2003 Sheet 6 of 12 US 6 526 426 B1 601 Manager s 602 Console Workflow Pipeline Translation Resources Language Translation Database Que
2. 3 6 2 TermDBs tM A TermDB is an HTML representation of a multilingual glossary The glossary is built in the form of an HTML table Rows in the table correspond to entries in the glossary be they words phrases or arbitrary strings Columns in the table correspond to individual languages in the glossary such as English French or German One language in the TermDB is designated the primary language and is assigned to column 1 of the table This primary language is used as the language of the key when looking up entries in the TermDB The TermDB is used together with the WPReplaceBegin and WPReplaceEnd tags See Section 3 6 3 1 WPReplace The tags enclose text that will be replaced by a TermDB entry The text must be in the primary language The following example shows how the word hello would be translated using the TermDB Sample HTML lt WPReplaceBegin gt hello lt WPReplaceEnd gt Sample TermDB english hello french bonjour spanish hola 10 15 20 25 30 40 50 55 26 When WebPlexer accesses the TermDB it first finds the word hello by looking in row 1 the primary language row of the TermDB and finding the column that contains the desired term Then it retrieves the term from the row of the table corresponding to the current language row 2 in the case of French in the column it identified as containing the desired term This release of WebPlexer comes with a stan
3. lt WP_ include_ MCSSI airfares html gt lt BODY gt lt HTML gt When this document is processed WebPlexer will first determine the current language and replace the string Wel come to the ABC Travel Site with its translation out of the TermDB Please see Section 3 6 3 1 WPReplace for a description of WPReplace tags and how the replacement is done Note that this is not part of the MCSSI operation but is included to make the example a bit more realistic Next WebPlexer will process the MCSSI statement as follows 1 The currently selected country is determined Please see Section 3 5 Country and Language Management for an explanation of how this is done 2 The appropriate region that this country belongs to is determined using user defined regions from the WP_ Regions file and or WebPlexer predefined default regions Please see Section 4 9 WP_ Regions and Multi Country Server Side Includes MCSSI for more information about how regions are used 3 Based on the analysis of step 2 the target file airfares html is fetched from the appropriate directory on the server Please see Determining the country_or_ region_ directory for a description of how this directory is determined 4 The target file airfares html is inserted in line into the HTML stream Any WebPlexer tags e g WPReplace that are included within the file are subsequently pro cessed Note th
4. info html HTTP 1 0 200 3372 pp93 satcom net 28 Jul 1996 23 37 29 0700 GET cnv post coming flags United States gif HTTP 1 0 200 3594 3 2 2 InformationLog The InformationLog contains detailed information about WebPlexer s language selection processing for each request Examples of InformationLog entries are prune loria fr 26 Jul 1996 05 44 43 0700 Country Selection prune loria fr France prune loria fr 26 Jul 1996 05 44 43 0700 Language Set prune loria fr french continental french prune loria fr 26 Jul 1996 05 44 43 0700 Language Selection prune loria fr French continental 3 2 3 ErrorLog The ErrorLog shows any errors that occurred during WebPlexer operation or during the processing of a request Examples of ErrorLog entries are 23 Jul 1996 03 35 40 0700 FATAL Could not send request to HTTP server 23 Jul 1996 04 03 34 0700 Timed out when writing response to client 3 2 4 UsageLog The UsageLog contains a summary of country and lan guage statistics It is generated from the InformationLog using the usage log analysis tool The UsageLog can be further processed using the visits log analysis tool Please see section x xx for a description of WebPlexer s log analy sis tools Examples of UsageLog entries are 17 Oct 1996 13 40 11 0700 Language German www07 btx dtag de 17 Oct 1996 14 09 57 0700 Country Argentina serverl sminter com ar 3 3 Language Selection WebPlexer s
5. xyz html gt gt and current country is Japan head_of_messi_directory is lt docroot_directory gt messi 10 15 20 25 30 35 45 50 55 60 65 34 Then a primary search would look for the file in usr local etc httpd htdocs messi Japan xyz html b Secondary If the file is not in the primary location the secondary path will be checked lt head_of_messi_directory gt lt current_region gt lt messi_file gt where current_region is either the user defined or Web Plexer pre defined default region for this country Example Assume a statement of the form lt WP_include_MCSSI xyz html gt gt and current country is Japan current_region is Pacific Rim head_of_messi_directory is lt docroot_directory gt mcssi Then a secondary search would look for the file in usr local etc httpd htdocs messi Pacific Rim xyz html c Tertiary If the file is not in the secondary location the tertiary path will be checked lt head_of_mcssi_directory gt lt messi_file gt 5 If the messi_ file is not found in either the primary secondary or tertiary locations the file is considered to be not found and the following message will be injected into the HTML stream in place of the MCSSI directive an error occurred while processing MCSSI directive Multi Language Server Side Includes MLSSI MLSSI allows the Web site designer to further customize an HTML document ac
6. 45 50 55 60 65 32 For example if the current language were German this sequence lt WPReplaceBegin gt amp language lt WPReplaceEnd gt would be converted to Deutsch amp flag amp flag is a placeholder for the name of the gif file containing the flag of the currently selected country The name is automatically prepended with flag The Web Plexer release includes gif images of flags from the countries of the world For example if the current country were Germany this sequence lt img src image lt WPReplaceBegin gt amp flag lt WPReplaceEnd gt height 30 gt would be converted to lt img src image flags Germany gif height 30 gt 3 6 3 5 Server Side Includes An ordinary server side include is an HTML tag which causes an external file to be included within an HTML document The file is included when the document is served to the browser WebPlexer s server side include extends this capability by making the decision of what file to include based on the current country region or language This enables a docu ment to be built dynamically out of country and language specific components WebPlexer supports two kinds of server side includes 1 Multi country server side includes MCSSI 2 Multi language server side includes MLSSI MCSSI permits locale specific elements of a document to be included as a function of the current region or country MLSSI
7. Packet Convert Update Packet U S Patent Feb 25 2003 Sheet 12 of 12 US 6 526 426 B1 1201 1202 1203 Workflow Web Manager Server Module Webmaster s 1210 1211 English HTML 1212 French HTML 1213 German HTML 1207 1214 Japanese HTML 1 Joe 246 italian HTML 1209 Spanish HTML 1205 1204 Translation Queues Fig 12 US 6 526 426 B1 1 TRANSLATION MANAGEMENT SYSTEM This application claims benefit of Provisional Applica tion No 60 075 740 filed Feb 23 1998 BACKGROUND OF THE INVENTION 1 Technical Field The invention relates to the multilingual translation of documents in a computer environment More particularly the invention relates to the management of monolingual documents data streams non text files and databases to enable their translation into target languages in a computer environment 2 Description of the Prior Art The surge of growth in Internet access across the world has created the need for multilingual Web sites The majority of Web sites are created in English which creates a problem for non English speaking Internet users This also creates a problem for Web site managers that maintain Web sites that are or attempt to be multilingual The Web site content must be constantly maintained to be up to date and synchro nized in all of the languages supported by the Web site One approach is shown in PCT International Publication Number WO097 18516 of Flanagan et al pub
8. are available The information that needs to be entered in the WP_ Map file is 1 The top level URL of your site 2 The list of languages on your site and the names of the directories where the documents are located 3 The encodings in which the documents are represented e g ISO 8859 1 4 Default directories in case the requested language is not found usually English These four pieces of information together make up what is known as a URL group declaration Often a single server will serve multiple sites You can easily have WebPlexer support multiple sites by creating a separate URL group for each site The next sections explain each component of the URL group declaration Please refer to the example WP_ Map file supplied with this release while reading the following sec tions 3 3 2 1 Specifying the Top Level URL The top level URL is specified by adding lines of the form URL lt path gt lt path_type gt to the WP__Map file where lt path gt is the directory path of the top level URL below the htdoc root lt path type gt is either d or f depending on whether the path is a directory or a file NOTE In the current implementation when a directory is specified it is also necessary to specify the corresponding top level file as well usually index html In the previous example there would be two lines read ing URL joe d URL joe index html f Note that this file joe index html
9. directory as defined in the WP_ Map file corresponding to the current language selection and insert it in line into the HTML stream 4 Any WPReplace or WebPlexer tags that are found in the inserted file will be resolved after the file is inserted 3 9 7 Using CGI Scripts CGI scripts producing HTML output should be written to be as independent of language and country as possible This means these scripts should use the HTML extensions pro vided by the Multilingual ToolKit They should write out templates that do not contain language specific or country specific information Having only one script to maintain means that changes can be made easily and efficiently When the HTML output of such a CGI script is presented to the browser WebPlexer will fill in the template dynami cally with current language and country information Text that is marked up with WPReplace tags will also be trans lated In order for WebPlexer to correctly process a CGI script the filename of the script must be changed when it is referenced in an HTML document The filename must not include the path to the cgi root even though the script is actually located in that directory In addition the cgi root must be specified in the WP_ Config file see Section 4 1 18 cgiRoot For example suppose that the cgi root is cgi bin Normally a reference to a CGI script called script cgi would look like this lt A HREF cgi bin script cgi gt
10. guage Selection for a discussion of how WPCommands are used within the HTML Link WPCommand link lt link target gt The link command makes a hypertext link to the URL specified by lt link target gt This command has the side effect of notifying WebPlexer that a hypertext link was executed This information is used to save the location where the browser came from so it can return after country or lan guage selection When WebPlexer receives a link notification it saves the current value of the referer URL in the http request for this session After a change country or change language com mand is executed see next sections the saved referer URL is restored and the browser returns to the page from where the link was issued The link command is used when the change country or change language function is implemented on a separate page This allows the browser to return to the originating page once the new country or language is selected Please see Section 3 3 6 2 Using WPCommand link for addi tional information An example of the link command is included in the sample documents included with this release The change country and change language functions are implemented in the files countsel html and langsel html respectively These pages are reached by issuing a WPCommand link lt link target gt from the index and form pages Country WPCommand country lt new country gt The country command changes the
11. in a master language has been updated notifying the user which corresponding documents data streams or non text files in the other languages require translation adding new language content to a Web site database or file system wherein the user selects said new language from a pulldown list automatically initiating the translation of a document data stream or non text file into the desired language converting said document data stream or non text file requiring translation to a suitable internal format staging the translation of said document data stream or non text file and dynamically routing and sequencing said document data stream or non text file to the appropriate translation resources wherein said routing and sequencing is per formed according to the subject matter of the document to be processed target language of the translation and whether draft only or high quality is required 6 The process of claim 5 further comprising the steps of tracking the versions of a translated document data stream or non text file wherein said tracking step allows the easy integration with a third party authoring or document management system and controlling access to a document data stream or non text file and its constituent or dependent elements being translated 7 A process for managing tracking accounting and translating multilingual electronic content in a computer environment comprising the steps of
12. 12 United States Patent Lakritz US006526426B1 10 Patent No US 6 526 426 B1 54 75 73 21 22 60 51 52 58 56 TRANSLATION MANAGEMENT SYSTEM Inventor David Lakritz 1806 Parkwood Dr San Mateo CA US 94403 Assignee David Lakritz San Mateo CA US Notice Subject to any disclaimer the term of this patent is extended or adjusted under 35 U S C 154 b by 0 days Appl No 09 239 495 Filed Jan 28 1999 Related U S Application Data Provisional application No 60 075 740 filed on Feb 23 1998 j Ei VAR S BEERE PEE A GO6F 17 00 US Che cece eeeeeee 707 536 707 513 709 231 704 8 Field of Search ccccceeeceeee 707 511 536 707 513 704 1 8 709 203 231 References Cited U S PATENT DOCUMENTS 4 558 413 A 12 1985 Schmidt et al 707 203 5 220 657 A 6 1993 Bly etal 345 751 5 329 619 A 7 1994 Page et al 395 200 5 568 383 A 10 1996 Johnson et al 0 0 704 2 5 625 818 A 4 1997 Zarmer et al 395 615 5 655 130 A 8 1997 Dodge et al 707 511 5 892 949 A 4 1999 Noble wee 717 125 5 974 372 A 10 1999 Barnes et al 345 703 6 047 296 A 4 2000 Wilmott et al 707 500 6 065 026 A 5 2000 Cornelia et al 707 511 101 104 Language Database File System 45 Date of Patent Feb 25 2003 6 073 143 A 6 2000 Nishikawa et al 707 513 6 163 785 A 12 20
13. 3000 3 1 1 Operating Modes WebPlexer s InternetPort and ServerPort are configured to support two modes of operation test mode and pro duction mode 3 1 1 1 Test Mode In test mode a separate access path is created for clients to send requests to WebPlexer Normal http requests to port 80 and the existing Web server are not affected This permits off line testing of WebPlexer functionality until the site has been validated To configure test mode 1 Set InternetPort to an unused port number This will be used for all incoming WebPlexer requests 2 Set ServerPort to 80 This will allow WebPlexer to connect to your existing Web server 10 15 20 25 30 35 40 45 55 60 65 14 To access the Web server via WebPlexer you would type a URL of the form http www mysite com 1i1i where iiii is the InternetPort assigned above Normal requests of the form http www mysite com will go directly to the Web server bypassing WebPlexer You can make WebPlexer available to ordinary port 80 users even in test mode by including a special link on a page to send a request to WebPlexer s port For example lt A HREF http www mysite com 3080 webplexer index html gt WebPlexer test lt a gt could be included on a site s home page 3 1 1 2 Production Mode In production mode WebPlexer is configured to process all http requests before they reach the Web server This would normall
14. CGI lt A gt But with WebPlexer the cgi root should be omitted lt A HREF script cgi gt CGI lt A gt This will ensure correct country and language processing of the HTML 3 10 WebPlexer Console 3 10 1 Setting the Console Port 3 10 2 Setting the Console Password 3 10 3 Invoking the Console 3 10 4 Closing the Console 3 10 5 Writing Console Templates 3 10 6 Console Commands 3 10 6 1 System Configuration 3 10 6 2 URL Selection 3 10 6 3 System Status Status Annunciators 3 10 6 4 Language Status Status Annunciators 3 10 6 5 Queue Status 3 10 7 Translation Queues 3 10 7 1 Enqueue 3 10 7 2 Dequeue 3 10 7 3 Maintaining the Translation Queues 3 10 7 4 Initiating Off line Translation Using qtrans 3 10 8 Document Maintenance 3 10 8 1 Including Document Types 3 10 8 2 Including Specific Documents 3 10 8 3 Excluding Documents 3 10 9 Maintaining TermDBs 3 10 10 Maintaining Input Manager Database Files 3 10 1 1 Log Analysis 3 10 1 1 1 Usage utility US 6 526 426 B1 41 3 10 11 2 Visits utility 3 11 Runtime Options WebPlexer accepts a number of command line flags used for configuration and debugging These are described below 3 11 1 Configuration Flags internetport port serverport port consoleport port These flags override the InternetPort ServerPort and ConsolePort specified in the WP_ Config file alog file elog file ilog file These flags override the AccessLog ErrorLog and Infor
15. Great Britain Germany Countries must be chosen from the list of valid countries for WebPlexer See Appendix C List of Available Coun tries The WP_ Regions file contains only user defined regions WebPlexer also maintains a set of pre defined default regions These are listed in Appendix D List of WebPlexer Default Regions Determining the country_or_region_directory fur ther describes the interaction and relationship between pre defined default and user defined regions 4 10 Master_ termdb html The Master_termdb is included with the product and contains translations of the names of the world s countries and languages in the following languages and encodings Language Encoding english ISO 8859 1 english american ISO 8859 1 english british ISO 8859 1 arabic CP1256 portuguese brazilian ISO 8859 1 chinese simplified GB2312 chinese traditional BIGS dutch ISO 8859 1 finnish ISO 8859 1 french ISO 8859 1 french canadian ISO 8859 1 french continental ISO 8859 1 10 15 20 25 30 35 40 50 55 60 65 52 continued Language Encoding german ISO 8859 greek CP 1253 hebrew CP1255 indonesian ISO 8859 italian ISO 8859 japanese x euc jp kinyarwanda ISO 8859 kirundi ISO 8859 korean euc kr portuguese continental ISO 8859 russian CP1251 samoan ISO 8859 spanish ISO 8859 spanish castilian ISO 8859 spanish latin american ISO 8859 swedish ISO 8859 thai CP874 vietnam
16. Multilingual ToolKit tM The Multilingual ToolKit is a set of HTML extensions and templates that simplifies the design and construction of multi language and multi country Web pages The Multilingual ToolKit consists of several key Web Plexer resources 1 A template based model of page construction 2 External multilingual glossaries known as TermDBs 3 A set of HTML extensions to allow country and language settings to dynamically control a document s content 4 Built in support for manually changing language and country eliminating the need for special CGI scripts or complex interlinked pages 5 Custom variables to facilitate customization of a docu ment according to the current language and country 6 Custom functions to change the appearance of a page according to language and country 7 Server side includes to allow a document to be built out of language and country specific component parts The following sections discuss the specific components of the Multilingual ToolKit in more detail 3 6 1 Template Model WebPlexer s Multilingual ToolKit uses a template based approach to dynamically create documents tailored for a specific language or country A template contains placeholders for country and language specific information that has been removed from a document This information is dynamically inserted from a TermDB another template or document or provided auto matically by WebPlexer when the composite
17. a work packet is dispatched to a Translation Resource 1207 for processing the packet first flows from the translation queues 1205 through the Pipeline Adaptor for that Resource where it is converted from the Workflow s internal format into one that can be processed by that Resource Once the Translation Resource 1207 has finished its processing the packet which contains the work completed by the Translation Resource 1207 flows back through the Adaptor where it is re converted back into the Pipeline s internal format The Adaptor is also responsible for analyz ing the completion status of the Translation Resource and updating the packet s control and status information accord ingly A simplified example of a typical workflow sequence is shown below 1 Machine Translation automatically translate the untranslated i e new sections of the document 2 Translation Memory pre translate the document using saved source target translation pairs from the previous version of the document 3 Human Translation post edit the sections of the docu ment that were machine translated and review the entire document for quality 4 Terminology Management obtain the correct lexicons and glossaries required to properly apply the other Translation Resources Since the Pipeline 1206 is heavily instrumented the Console 1202 gives the Web Site manager 1201 continuous updates on the progress of the translation The Console 1202 also uses sta
18. and translating multilingual electronic content in a computer environment comprising the steps of detecting when a document data stream or non text file in the master language has been updated notifying the user which corresponding documents data streams or non text files in the other languages require translation adding new language content to a Web site database or file system wherein the user selects said new language from a pulldown list automatically initiating the translation of a document data stream or non text file into the desired language converting said document data stream or non text file requiring translation to a suitable internal format staging the translation of said document data stream or non text file and dynamically routing and sequencing said document data stream or non text file to the appropriate translation resources wherein said routing and sequencing is per formed according to the subject matter of the document to be processed target language of the translation and whether draft only or high quality is required 23 A program storage medium readable by a computer tangibly embodying a program of instructions executable by the computer to perform method steps for managing tracking accounting and translating multilingual electronic content in a computer environment comprising the steps of detecting when a document data stream or non text file in the master language has been up
19. constructed out of WPReplace tags Please see Section 3 6 3 1 WPReplace for further information about WPReplace tags MLSSI also helps to separate the form of a Web site the structure and layout of the site from its content the actual message to be displayed on the browser The design and layout of a multi language site is usually very similar and often invariant across languages MLSSI allows the language dependent parts of the content to be isolated from the structural design making it easy to update the design of the site and have changes reflected automati cally across all of the languages Likewise MLSSI allows language content to be easily updated and maintained with out affecting the overall site design Another application of MLSSI is to include language specific graphics or image maps within a template file For example a form based HTML document that is a pure template can be customized with a language specific banner and graphic at the top of the file as follows lt HTML gt lt BODY gt lt WP_ include MLSSI banner html gt gt lt INPUT NAME name gt lt WPReplaceBegin gt name lt WPReplaceEnd gt lt INPUT NAME address gt lt WPReplaceBegin gt address lt WPReplaceEnd gt lt BODY gt lt HTML gt When this file is processed the file banner html will be fetched from the language directory specified in the WP_ Map file i e french banner html ge
20. current country to lt new__country gt The current language may also change depending on the session state See Section 3 5 2 Determine Language from Country Language WPCommand language lt new language gt The language command changes the current language to lt new__language gt 3 6 3 4 Custom Variables WebPlexer s custom variables are special placeholders that can be included in HTML code They are automatically replaced by current country and language information when the document is served to the browser Custom variables begin with amp and must always be enclosed within lt WPReplaceBegin gt and lt WPReplaceEnd gt tags The next sections describe the custom variables supported in this release Please see the sample files e g contact html for examples of their use amp country amp country is a placeholder for the translated name of the currently selected country The name of the country is translated into the currently selected language For example if the current country were United States and the current language were Spanish this sequence lt WPReplaceBegin gt amp country lt WPReplaceEnd gt would be converted to Estados Unidos amp language amp language is a placeholder for the translated name of the currently selected language The name of the language is translated into the currently selected language 5 10 15 20 25 30 35 40
21. detecting when a document data stream or non text file in a master language has been updated notifying the user which corresponding documents data streams or non text files in the other languages require translation sending documents data streams or non text files to be translated down a pipeline wherein said pipeline is connected to a plurality of translation resources using one or more open Application Programming Interfaces API sending packets to translation resources through said Adaptor wherein work packets are converted to the appropriate translation resource format before sending said converted work packet to said translation resource receiving packets from translation resources through said Adaptor wherein received packets are converted back to the work packet format and the status and control information are updated in said work packet before sending said converted received packet to said pipeline 5 10 20 25 30 35 40 45 50 55 60 65 54 wherein said one or more open API allow a variety of translation resources to be connected to said pipeline and wherein said translation resources perform translation or other linguistic functions on a set of input documents and produce a set of output documents that have been transformed linguistically 8 The process of claim 7 wherein said translation resources are deployed across intranets as well as the Inter net 9 An apparatus for m
22. first foreign language is translated into a second foreign language The two documents are then displayed separately or together through a user interface European Pat No 0376741 B1 issued to Francisco on Oct 18 1995 is a method for displaying error messages on a document collating and envelope stuffing machine Said error messages exist simultaneously in a plurality of lan guages and are displayed in the language specified by the user This approach has storage and maintenance problems because each error message must be duplicated in its entirety for each language European Pat Appl No EP0774722A2 of Microsoft Corporation published on May 21 1997 is a method for an information retrieval system that separates the design and content components of a document page Pages are created with controls that define areas for content to be inserted into said pages 10 15 20 30 35 40 45 50 55 60 65 2 It would be advantageous to provide a translation man agement system that gives the user local control of the multilingual translation of electronic content It would fur ther be advantageous to provide a translation management system that allows the user to easily manage schedule and track translation resources and the content that are sent to the translation resources thereby enhancing the maintainability of the system as a whole SUMMARY OF THE INVENTION The invention provides a translation management s
23. for creating Work Packets Job Tickets and a Project Schedule for said project and a module for sending said Project Schedule to the user for review and validation 11 The apparatus of claim 10 further comprising a module for adjusting the Project Schedule when there are changes in the availability of translation resources or when manual changes are made to the project by a user 12 The apparatus of claim 9 further comprising a module for providing management status and reporting as the translation process progresses to the user a module for automatically notifying the user of the completion of translation a module for updating customer and translation resource accounting at said translation completion and a module for coordinating the delivery of the translated documents data streams or non text files and their constituent or dependent elements back to the user for installation into a Web site database or file system or for optional review 13 The apparatus of claim 9 further comprising a module for tracking the versions of a translated document data stream or non text file wherein said US 6 526 426 B1 55 tracking step allows the easy integration with a third party authoring or document management system and a module for controlling access to a document data stream or non text file and its constituent or dependent elements being translated 14 An apparatus for managing tracking accounting and tran
24. gt lt language__directory gt lt charset gt default lt default_language gt lt charset gt REQUIRED others lt others_language gt lt charset gt REQUIRED outbound lt TermDB2 1 gt outbound lt TermDB2 2 gt outbound lt TermDB2 N gt inbound lt cgi script2 1 gt lt template file2 1 gt lt prt file2 1 gt inbound lt cgi script2 2 gt lt template file2 2 gt lt prt file2 2 gt inbound lt cgi script2 N gt lt template file2 N gt lt prt file2 N gt URL Group N definition defaultCountry lt country gt defaultLanguage lt language gt 4 2 1 Specifying the Top Level URL Syntax URL lt path gt lt path_type gt where lt path gt is the directory path of the top level URL below the htdoc root lt path_type gt is either d or f depending on whether the path is a directory or a file Examples of valid paths and path_types are d userl d user1 docs d user1 docs info html f 10 20 25 30 35 45 50 55 65 46 You can specify as many paths as needed within a URL group A directory specification only matches a request for that directory It will not match any requests for files in that directory For example URL user1 d would match GET http www lai com user1 GET http www lai com user1 but would NOT match GET http Avww lai com user1 info html GET http Avww lai com user1 index html These would require additional path speci
25. list of languages in the group and the names of the directories where the documents are located 3 The encodings in which the documents are represented e g ISO 8859 1 4 Default directories in case the requested language is not found usually English 5 TermDB s used when processing files for this group 6 Input Manager files CGI script templates output files for any forms contained within this group The format of the file is as shown below Any text after a comment symbol is ignored URL Group 1 definition URL lt path1 gt lt path_type gt URL lt path2 gt lt path_type gt URL lt pathN gt lt path_type gt lt language gt lt language__directory gt lt charset gt lt language gt lt language__directory gt lt charset gt default lt default_language gt lt charset gt REQUIRED US 6 526 426 B1 45 others lt others_language gt lt charset gt REQUIRED outbound lt TermDB1 1 gt outbound lt TermDB1 2 gt outbound lt TermDB1 N gt inbound lt cgi script1 1 gt lt template file1 1 gt lt prt file1 1 gt inbound lt cgi script1 2 gt lt template file1 2 gt lt prt file1 2 gt inbound lt cgi scriptl N gt lt template filel N gt lt prt file1 N gt URL Group 2 definition URL lt path1 gt lt path_type gt URL lt path2 gt lt path_type gt URL lt pathN gt lt path_type gt lt language gt lt language__directory gt lt charset gt lt language
26. makes the site more compact reduces site resource requirements and lowers the cost of operating the Site The cost of making a design change is also reduced as only the master site needs to be updated This is in contrast to the more time consuming and expensive approach of propagating a single change throughout all language ver sions of the site which is unnecessary with the invention Keeping the translated content in a database 403 also makes it extremely easy and cost effective to add additional languages to the site Adding a language simply involves translating the appropriate content and creating new entries in the database 403 The Developer module makes it unnec essary to replicate the entire site for each new language and country as would typically be the case The toolkit 402 offers the multilingual Web designer a great deal of flexibility It allows a site to be built which combines content common to all languages with content that is specific to a particular language and country For example company wide information which needs to be served in all languages is easily combined with regional specific infor mation that may only be required in a single language The invention provides special tags that are used to insert language or country specific content into an HTML docu ment The tags are Multi country server side includes MCSSI and Multi language server side includes MLSSI MCSSI allows locale specific elements of an
27. permits localized elements of a document to be included as a function of the current language Multi Country Server Side Includes MCSSI The MCSSI feature provides the ability to dynamically insert country and regional specific content into the HTML stream MCSSI is invoked when this construct lt WP_ include MCSSI file name gt is detected in an HTML document being served to the browser When WebPlexer detects this command it will insert the file lt head_of_mecssi_directory gt lt country__or_region__ directory gt lt file_ name gt in line into the HTML stream Where head_of_messi_directory is the top level directory of the MCSSI area on the server and is defined in the WP_ Config file see Section 4 1 WP_ Config for more information and country_or_region is deter mined dynamically according to the algorithm described in Determining the country_or_region__ directory The file which is included by MCSSI can itself contain additional WebPlexer tags such as WPReplace and Custom Variables see Section 3 6 3 1 WPReplace and Section 3 6 3 4 Custom Variables It can also contain additional MCSSI and MLSSI includes see Multi Language Server Side Includes MLSSI By supporting WebPlexer tags such as WPReplace within the included MCSSI file regional specific content can be further localized according to language This feature allows US 6 526 426 B1 33 considerable flex
28. rendering the Web site useless The Workflow Manager provides a solution to this paradox by reducing the cost and time requirement for language update and synchronization dramatically thereby ensuring that information on the Web site is always current regardless of language 10 15 20 25 30 35 40 45 50 55 60 65 8 The Manager s Console is the user interface for the Workflow Manager and is the primary point of interaction for the Web site manager Referring to FIG 7 the Manager s Console detects when a document in the master language has been updated 705 It then notifies the Web site manager which corresponding documents in the other languages require translation 706 The Manager s Console provides one touch translation whereby at the click of a button documents from any source requiring translation are converted to the internal format 703 staged down the Workflow Pipeline 704 then dynami cally routed and sequenced to the individual Translation Resources where the actual translation is performed Docu ments may be Web based and non Web based and may also contain non text elements The documents may contain or refer to additional dependent components such as graphics audio video and other multi media elements When the Web site manager initiates the translation process the newly updated master language document and its constituent elements together with associated control information
29. sample included with this release the file info html is a combination of static and tag based templates whereas the template of contact html is com pletely tag based Please look through the sample files in the htdocs direc tory of this release for examples showing the use of tem plates File based templates require the server side include fea ture This feature is not available in the current release Tag based templates are the most generic and allow a single document to be used across all languages and coun tries In general the smaller the amount of static content in a template the more generic the template is and the fewer the number of times it needs to be instantiated The next sections discuss the template types in more detail Static Static templates are not really templates at all They are simply collections of static text File based File based templates allow external files containing local ized content such as country regional or language specific information to be inserted dynamically into a document File based templates are provided using the server side include feature described in Section 3 6 3 5 Server Side Includes Tag based Tag based templates allow replacement of marked up text with translations from an external TermDB according to the selected country or language Tag based templates are pro vided using the WebPlexer HTML extensions described in Section 3 6 3 1 WPReplace
30. set in the WP_ Map file with the directive defaultLanguage lt language gt and is normally the same as the local default language specified in the URL group definition Specifying the local default language is described in Section 3 3 2 3 Specifying the Local Default Languages The global default language is used as the default for the console and for some WebPlexer initialization US 6 526 426 B1 21 3 3 9 Content Tagging and Support for Multilingual Brows ers Content tagging allows WebPlexer to inform the browser of the language and charset used to encode a document when the document is accessed Some browsers like Netscape Navigator use this information to automatically switch to the correct font and encoding for a particular language Content tagging is always active whenever a document is fetched from a language directory that is specified in the WP Map file When a document is content tagged the http Content Language and Content Type response headers are returned with the document to indicate the language and charset in use These fields are automatically updated by WebPlexer even when the language is changed by manual selection 3 4 Country Selection WebPlexer provides three ways by which the country of an incoming request is determined Automatic country selection Manual country selection Cookie based country selection These are described in detail below 3 4 1 Automatic Country Selection With aut
31. the language and country of a Web site visitor and directs the Web server 203 to deliver the appropriate localized content contained in one or more country language databases and or file based content in a file system 204 to the visitor s browser 201 Recently 10 15 20 25 30 35 40 45 50 55 60 65 4 accessed localized content is placed into a Cache 206 The content is placed in the Cache 206 so that if a similar request comes in for a document in that language and for that country then the cached version will be pushed out to the browser 201 This saves time and processor overhead for accessing the database and file system 204 to rebuild the requested content In addition Visitor 202 informs the browser 201 of the proper font and content encoding needed to display the selected language and enables the browser 201 to download the font using for example Bitstream s True Doc technology if required The Visitor module intercepts input text that is submitted using an HTML form e g a customer feedback form and writes it into a form database 205 in a manner so that it is easily translated later via the Workflow Manager Most Web sites have forms that allow site visitors to submit comments or request more information from the site host This feed back might not be in English and would otherwise be incomprehensible to the recipient in a multilingual environ ment The form database 205 includes suffi
32. updated the Console 1202 will immedi ately alert the Web site manager 1201 that the corresponding foreign language versions of the document are out of date and need to be re translated From this point the Web site manager simply clicks on a button using the Console s 1202 one touch translation feature to automatically initiate the re translation and update of each document No additional action is required from the Web site manager 1201 until the documents have been translated and are ready to be mounted back onto the Site When the Web site manager 1201 initiates the translation process the newly updated master language document together with associated control information will be con verted by the Console 1202 to an internal format one which is more suitable for information transport over the Workflow Pipeline 1206 The converted document together with rel evant control and status information is known as a work packet The Workflow Pipeline 1206 is responsible for sending and receiving work packets to an appropriate set of Translation Resources 1207 1208 1209 where they are processed The sequence in which the Translation Resources are engaged by the Pipeline is pre determined according to Settings previously established by the Web site manager Subject matter of the content Target language of the translation Availability of a particular Resource 10 15 20 25 35 40 50 55 60 65 12 When
33. 0 is a block schematic diagram of a decision flow diagram of the Adaptor module according to the invention FIG 11 is a block schematic diagram of the major components of the Adaptor module according to the inven tion and FIG 12 is a block schematic diagram of the placement of the Workflow Manager module in a network environment according to the invention DETAILED DESCRIPTION OF THE INVENTION The invention is embodied in a translation management system for computer applications A system according to the invention provides an intuitive user interface for managing document content translation for multilingual Internet Web sites documents data streams and non text files enabling the user to incrementally update the language content of a Web site or document and automatically initiate the trans lation of the content into the corresponding target languages keeping the multilingual content synchronized and enhanc ing its maintainability and storage Many existing applica tion programs use approaches that make it difficult for the user to manage the translation and synchronization of mul tilingual content A preferred embodiment of the invention provides a comprehensive suite of three modules that allow a user to build operate and maintain a multilingual Web site easily and efficiently The invention enhances an existing Web site by adding advanced multilingual content management and process control capabilities to the customer
34. 00 Carbonell et al 704 10 6 208 956 B1 3 2001 Motoyama 704 2 6 349 276 B1 2 2002 McCarley 704 7 6 356 894 B2 3 2002 Noshohara eee 707 3 FOREIGN PATENT DOCUMENTS EP 0600234 A1 6 1994 EP 0376741 B1 10 1995 EP 0774722 A2 5 1997 EP 0600235 B1 2 1998 JP 9 44502 8 1995 JP 9114852 A 10 1995 WO 97 18516 5 1997 cited by examiner Primary Examiner Joseph H Feild 74 Attorney Agent or Firm Michael A Glenn Kirk D Wong 57 ABSTRACT A translation management system in a computer environ ment A preferred embodiment of the invention automati cally detects when a document data stream or non text file in the master language has been updated and notifies the user which corresponding documents data streams or non text files in the other languages require translation which are then staged and dynamically routed and sequenced to individual translation resources where the actual translation is per formed Management status reporting scheduling and accounting information is sent to the user as the translation process ensues The user is notified of the completion of translation and the invention coordinates the delivery of the translated documents data streams or non text files back to the user s site for installation and optional review 24 Claims 12 Drawing Sheets 102 Developer Workflow Manager U S Patent Feb 25 2003 Sheet 1 of 12 US 6 526 426 B1 102
35. 06 waits until all elements of a project have been received It then sends the Scheduler module 805 a description of the project and instructs the Scheduler module 805 to begin the project Typically the Project Analyzer module 806 works with the Accounting Manager module 809 to generate a project cost estimate prior to beginning the project Once the Scheduler module 805 receives the project information from the Project Analyzer module 806 it cre ates Work Packets Job Tickets and a Project Schedule A single project consists of a set of Work Packets and associ ated Job Tickets Each Job Ticket contains a reference to a Translation Resource A set of Job Tickets is associated with a single Work Packet and describes the activities to be performed by that Work Packet The Scheduler module 805 generates a Schedule that is sent to the Manager s Console for review and validation The documents and their con stituent or dependent components are then scheduled and sent down to the Workflow Pipeline The Scheduler module 805 updates the Project Schedule 810 and notifies the Accounting Manager module 809 during the course of the project This permits the Project Schedule 810 to be adjusted when there are changes in the availability of Translation Resources or when manual changes are made to the project by an operator via the Manager s Console The Accounting Manager module 809 updates customer and Translation Resource accounting in the Accountin
36. 25 30 35 40 45 50 55 60 65 50 lt rfc931 gt The remote logname of the user lt authuser gt The username by which the user has authenticated him self lt date gt Date and time of the request lt status message gt Status information pertaining to country or language processing Examples of InformationLog entries are pce113 fiz karlsruhe de 01 Aug 1996 01 55 13 0700 Country Selection pce113 fiz karlsruhe de gt Germany pce113 fiz karlsruhe de 01 Aug 1996 01 55 13 0700 Language Set pe113 fiz karlsruhe de gt german pce113 fiz karlsruhe de 01 Aug 1996 01 55 13 0700 Language Selection pce113 fiz karlsruhe de gt German 4 4 4 Usage Log The UsageLog contains a summary of country and lan guage statistics It is generated from the InformationLog using the usage log analysis tool The UsageLog can be further processed using the visits log analysis tool Please see Section 3 10 11 Log Analysis for a description of WebPlexer s log analysis tools The format of a UsageLog entry is lt date gt lt Language f Country f gt lt language country gt lt remotehost gt where the fields are defined as follows lt date gt Date and time of the request lt language gt New language of this request i e an entry is created when a visitor enters the site or changes language once on the site lt country gt New country of this request i e an entry is c
37. 3 3 1 The Document Matrix A group of language directories and the documents they contain can be likened to a matrix This matrix has one row for each language and one column for each document in the collection When expressed in this form the collection is known as a document matrix In the example just given the document matrix might look something like index html info html english X X 001b french x x spanish x x where the X indicates the presence of a document in that language WebPlexer s exclusive document management feature known as SPAMM Sparse Matrix Manager does not require each document to be translated in every language and therefore does not require every cell of the document matrix to be filled in In addition SPAMM also permits templates to be placed only in the default language directory see Section 3 3 2 3 Specifying the Local Default Languages and eliminates the need for them to be instantiated in every directory SPAMM offers an incremental approach to building a multilingual Web site Please see Section 3 9 2 SPAMM Sparse Matrix Manager for more information on this feature US 6 526 426 B1 17 3 3 2 Setting Up Language Selection WebPlexer s Language Selection feature is enabled by editing a few lines in the WP_ Map file located in the main WebPlexer directory Once the file has been set up any of the language selection modes browser specified automatic manual
38. 3 HTML Extensions The Multilingual ToolKit s HTML extensions are a set of special purpose commands and comment embedded HTML tags They enable WebPlexer to provide special country and language processing when serving a document The extensions consist of 1 WPReplace for replacing a text string with its transla tion from a TermDB 2 WPSort for sorting lists according to the sort rules of the currently selected language 3 WPCommands for providing the change language change country function without the need for CGI scripts or interlinked pages 4 Custom Vars for dynamically inserting language name country name and country flag into the HTML 5 Server side includes for building documents out of country and language specific components US 6 526 426 B1 29 Each of these is described in detail in the following sections 3 6 3 1 WPReplace The WPReplace function replaces a string with its trans lation The string to be replaced and the currently selected language are used as search keys within a TermDB The TermDB is accessed and returns the translation of the string in the specified language The WPReplace function is implemented with two tags lt WPReplaceBegin gt lt WPReplaceEnd gt The string to be replaced is enclosed between the tags lt WPReplaceBegin gt String to be replaced lt WPReplaceEnd gt The string must be in the primary language of the Ter mDB see Section 3 6 2 Ter
39. HTML document to be dynamically included as a function of the current region or country while MLSSI allows localized elements of an HTML document to be included as a function of the current language The Developer module also supports the incremental construction of a multilingual Web site through a feature that makes it unnecessary to fully populate the site s language matrix completely with documents If a requested document does not exist ie it has not been translated into the requested language the invention automatically retrieves the document in the next most appropriate language for the visitor or the default language of the document as specified by the Web site manager Documents can exist on separate servers and or databases The invention walks down a priority list of languages for a designated country If a document in the language that is first on the priority list is not present on the server it then looks for the next most appropriate language The list is sorted according to the most prevalent language or dialect for a particular country For example the languages entries for Egypt are arabic french english berber A visitor from Egypt will be presented with a requested document in Arabic if it is available If it is not the system will look for one in French and so on When a visitor is presented with content in an alternate language an informational text message can be included telling the visitor that the pre
40. Language Selection feature allows the most appropriate language of a requested document to be served to a Web browser Most appropriate language means a language that has been specified as a preference by the Web browser automatically selected by WebPlexer from the country of origin 10 15 20 25 30 35 40 45 50 55 60 65 16 manually chosen by the user specified by a cookie These three language selection modes all work together seamlessly They do not require the addition of any special CGI scripts or links to be added to your Web site The language selection algorithm requires that each lan guage be assigned a unique directory in the document tree All documents in that language are placed in the correspond ing directory The entire document tree then becomes a collection of parallel language directories For example if user Joe has english french and spanish documents on your site the directory structure might look like this htdocs joe english index html info html french index html info html spanish index html info html WebPlexer s language selection algorithm works by inserting the correct language directory in the URL before sending the request on to the Web server For example an incoming URL of http www lai com joe would send a modified URL of http www lai com joe french to the Web server if the browser s preferred language were French
41. PReplaceEnd gt gt lt WPSortFieldEnd gt lt A gt French lt WPSortLineEnd gt 35 lt LI gt lt A H REF WPCommand language german gt lt WPSortFieldBegin gt lt WPReplaceBegin gt German lt WPReplaceEnd gt lt WPSortFieldEnd gt lt A gt German 40 lt WPSortEnd gt This code will allow the list items to be sorted in the correct order according to the current language In the above example the WPReplace tags are processed first replacing the words English French and Ger 45 man with their translations The translations will then be used as the sort keys All WPSort tags are removed before sending the result to the browser 3 6 3 3 WPCommands 50 WPCommands are special WebPlexer commands included in a document s HTML They allow WebPlexer to manage country and language selection within a document WPCommands are coded as hypertext links in a docu ment When a link is clicked the WPCommand is sent to 55 WebPlexer in the request URL When WebPlexer receives the WPCommand it performs some function and returns the result to the browser WPCommands have the form 10 25 WPCommand lt command gt lt arg gt 60 where lt command gt is one of 1 link 2 country 3 language 65 and lt arg gt is a function of lt command gt Each of these commands is described in more detail in the following sections See also Section 3 3 5 Manual Lan US 6 526 426 B1 31
42. ami cally from a combination of the following parameters the browser s currently selected country the user defined region in the WP_ Regions file for the selected country the WebPlexer default region for the selected country where the file is located i e whether it is in the primary secondary or tertiary directory as defined below The specific algorithm for determining the country_or_ region directory from the above information is as follows 1 The browser s current country is obtained See Section 3 5 Country and Language Management for infor mation on how this is done 2 The WP_ Regions file is consulted to determine if this country is contained within a user defined region See Section 4 9 WP_ Regions for a definition of the syntax of the WP_ Regions file 3 If there is no user defined region for this country the WebPlexer pre defined region is used instead See Appendix D List of WebPlexer Default Regions for a list of pre defined regions 4 WebPlexer will look in 3 locations for the target MCSSI file These 3 locations are known as the primary secondary and tertiary MCSSI directories respec tively These directories are consulted in order one at a time until the requested file is found The directories are defined below a Primary lt head_of_messi_directory gt lt current country gt lt mcssi_ file gt Example Assume a statement of the form lt WP_ include_MCSSI
43. anaging tracking accounting and translating multilingual electronic content in a computer environment comprising a module for detecting when a document data stream or non text file in a master language has been updated a module for notifying the user which corresponding documents data streams or non text files in the other languages require translation a module for allowing the user to initiate the translation of a document data stream or non text file and its con stituent or dependent elements a module for converting said document data stream or non text file and its constituent or dependent elements requiring translation to an internal format a module for staging the translation of said document data stream or non text file and its constituent or dependent elements and a module for dynamically routing and sequencing said document data stream or non text file and its constitu ent or dependent elements to the appropriate translation resources wherein said routing and sequencing is per formed according to any of the subject matter of the document to be processed target language of the translation and whether draft only or high quality is required 10 The apparatus of claim 9 further comprising a module for analyzing all of the project components in sufficient detail to determine project cost and resource requirements a module for generating a project cost estimate prior to beginning the project a module
44. at the included MCSSI file can contain additional WebPlexer tags including MLSSI and WPReplace tags This allows the MCSSI file to be further customized for the current language by replacing strings with their translations using the TermDB MCSSI is very easy to use by following the steps given below 1 Determine which countries or regions are important for your site based on the country specific or regional specific content you wish to serve to visitors to your site 2 Group countries together into those regions of interest and edit the WP_ Regions file to identify those regions to WebPlexer Please see Section 4 9 WP_ Regions for information on the syntax of the WP_ Regions file 3 Create country and region directories on your server as shown below and place in those directories any country specific or regional specific parts of a document you wish to have managed by MCSSI 10 15 20 25 30 35 40 45 50 55 60 65 38 a Place country specific content in these directories lt head_of_ messi directory gt lt country gt lt messi_file gt where lt head_of_mcssi_directory gt is the top level directory of the MCSSI area on the server and is defined in the WP_Config file see Section 4 1 WP_ Config for more information lt country gt is the name of the desired country lt messi_file gt is the target file to be included b Place regional specific content in these directo
45. atch the new country For example if the current country is France and the current language is French and the current document being viewed is info html to request that the country be changed to German this request should be sent to WebPlexer http www lai com joe french_France WPCommand country germany WebPlexer will respond with a new URL that looks like http Avww lai com joe german Germany info html 10 15 20 25 30 35 40 45 50 55 60 65 22 and which will fetch the German version of the info html document 3 4 3 Cookie based Country Selection 3 4 4 Declaring Worldwide Regions Regions are defined in the WP_Regions file Regions allow groups of countries to be combined into geographical areas that are meaningful for the type of content that is on the site For example if a company had one sales office in Europe and another in Asia and had developed Web site content that was specific to these markets it might want to create two regions like this Sales_region1 France Germany Italy Spain Sales_region2 China Hong Kong Japan Regions can be either user defined or pre defined default User defined regions are specified in the WP_ Regions file see Section 4 9 WP_ Regions Pre defined default regions are established by Web Plexer Please see Appendix D List of WebPlexer Default Regions for more information Regions are used by the multi country server side inclu
46. ays be served in the most appropriate language based on what language content is actually available on the server The visitor will never see an error message i e a 404 document not found because the requested content is not available in the visitors language Regions are mapped and organized according to the Web site s needs For example a multi user server can have a separate region definition for each user s site The regions file organizes the regions countries and languages that the user is concerned with and is configured by the user The user sets up a mapping for example one user can have information specific to Italy and another user can have information that is just concerned with the European region and is not concerned with Italy This approach allows a hierarchical region based lookup scheme Content is hier archically stored as country and language independent ele ments such that a one to many and many to one mapping exists between country and language The advantage to this approach is that there is no content duplication the user has only as many files in the system as he has unique content With respect to FIGS 4 and 5 the toolkit 402 also features a novel mechanism to create localized content for specific geographic regions or countries by using a template based approach to dynamically create documents tailored for a specific language or country This feature makes it easy to create a true global site loca
47. cient information to identify the country language and encoding of the text to properly interpret it for subsequent translation Furthermore the invention includes a novel database viewer which allows the translated content to be viewed in the context of the form in which it was originally entered Referring to FIG 3 the Visitor module determines the Web site visitor s language and country 301 from one or more of the following criteria Language preference setting in the browser Cookie from previous visit to the Web site Root domain of the visitor Manual selection by visitor Language content available on the server Local database of countries and languages of the world Local configuration files on the Web site The Visitor module supports content in all languages and encodings including Unicode Manual language selection is easily implemented through the use of a special command set described later in this document thus eliminating the need for complex CGI scripts or interlinked pages The required content for the Web site visitor s language and country is checked to see if has been previously requested and resident in the cache 302 If the content is in the cache then it is delivered from the cache 303 If the required content is not in the cache then the Web server is notified of the appropriate localized content required 304 The appropriate content is then placed into the cache for future reference 305 The Web site visit
48. cording to language more generi cally than what can be provided by the WPReplace tags see Section 3 6 3 1 WPReplace Like MCSSI MLSSI allows a file to be included in line by referencing it within an HTML document However the path to the file is determined by the currently active language rather than by country or region The referenced file is pre translated and placed in each of the language directories referenced in the WP__Map file see Section 4 2 WP_ Map for a description of the WP_ Map file When the HTML document is presented to the browser the file included by MLSSI is retrieved from the directory corresponding to the currently active language and inserted in line into the HTML stream This allows a single HTML document to be easily customized by including components that are specific to the selected language of the browser MISSI is invoked when this construct lt WP include MLSSI file name gt is detected in an HTML document being served to the browser When WebPlexer detects this command it will insert the file lt language__directory gt lt file_name gt in line into the HTML stream Where language directory is the directory specified in the WP_ Map file and language is determined according to the rules outlined in Section 3 5 Country and Lan guage Management The file which is included by MLSSI can itself contain additional WebPlexer tags and commands such as WPReplace se
49. cuments data streams or non text files in the other languages require translation a module for sending documents data streams or non text files to be translated down a pipeline wherein said pipeline is connected to a plurality of translation resources using one or more open Application Pro gramming Interfaces API a module for sending packets to translation resources through said Adaptor wherein work packets are con verted to the appropriate translation resource format before sending said converted work packet to said translation resource a module for receiving packets from translation resources through said Adaptor wherein received packets are converted back to the work packet format and the status and control information are updated in said work packet before sending said converted received packet to said pipeline wherein said one or more open API allow a variety of translation resources to be connected to said pipeline and wherein said translation resources perform translation or other linguistic functions on a set of input documents and produce a set of output documents that have been transformed linguistically 16 The apparatus of claim 15 wherein said translation 10 15 20 25 30 45 50 55 65 56 17 A program storage medium readable by a computer tangibly embodying a program of instructions executable by the computer to perform method steps for managing tracking accounting and translati
50. d gt lt WPSortFieldBegin gt lt WPSortFieldEnd gt lt WPSortLineEnd gt lt WPSortBegin gt and lt WPSortEnd gt surround the entire block of text to be sorted 30 lt WPSortFieldBegin gt and lt WPSortFieldEnd gt surround the sort key on each line lt WPSortLineEnd gt delimits adjacent lines NOTE The first line must start with lt WPSortBegin 5 gt and the last line must end with lt WPSortEnd gt WPReplace tags can be included within a sort field and modify a sort key if desired In the above example the HTML would be coded as lt WPSortBegin gt lt lt WPSortFieldBegin gt box lt WPSortFieldEnd gt gt lt WPSortLineEnd gt lt lt WPSortFieldBegin gt ball lt WPSortFieldEnd gt gt lt WPSortLineEnd gt 15 Ba be lt WPSortFieldBegin gt car lt WPSortFieldEnd gt gt lt WPSortEnd gt WPSort can be used to sort a list of languages or countries 20 in local language order For example consider this bulleted list of languages lt WPSortBegin gt lt LI gt lt A HREF WPCommand language english gt lt WPSortFieldBegin gt lt WPReplaceBegin gt English lt WPReplaceEnd gt lt WPSortFieldEnd gt lt A gt English lt WPSortLineEnd gt lt LI gt lt A HREF WPCommand language french gt 30 lt WPSortFieldBegin gt gt lt WPReplaceBegin gt French lt W
51. d The format of this line is inbound lt cgi name gt lt template file gt lt prt file gt Please see the sample WP_ Map file included with this release for an example The template file tells the input manager which fields of the form should be extracted When the CGI script is invoked the input data from those fields is saved and appended to the output or prt pre translated file This file also contains the time stamp current country and language and domain of the requester 3 8 1 Template Definition The input manager template file has the following format lt FIELD LIST gt lt field1 gt L lt field2 gt L lt fieldn gt L lt LIST_END gt where lt FIELD LIST gt and lt LIST_END gt are required tokens and the remaining lines list the field names used in the HTML form The L at the end of each line is required For example if an input field in an HTML form were coded as lt INPUT TYPE text NAME phone SIZE 40 VALUE gt the matching line in the template file would be phone L Please see the files contact html and contact tmpl included in the sample directory of this release for additional examples 3 8 2 prt File Description The prt file is the output file that contains data from the extracted fields specified in the template file Each entry of the file is preceded by the time stamp current country and language and host domain The prt files can be queued by
52. d languageN is preferred over languageN 1 for this ipID NOTE The IPAddress Map file must be in WebPlexer s language subdirectory Example 192 42 172 9 farsi russian english 4 4 Log Specifications WebPlexer supports four log file types AccessLog ErrorLog InformationLog UsageLog US 6 526 426 B1 49 The filenames corresponding to these log file types except for the UsageLog are defined in the WP_ Config file See Section 4 1 4 AccessLog Section 4 1 6 InformationLog and Section 4 1 5 ErrorLog for addi tional information The UsageLog is created and main tained by the usage script described in Section 3 10 1 1 1 Usage utility 4 4 1 AccessLog The AccessLog records information about each request received by WebPlexer such as date time and request type Each AccessLog entry conforms to the Common Logfile Format lt remotehost gt lt rfc931 gt lt authuser gt lt date gt lt request gt lt status gt lt bytes gt where the fields are defined as follows lt remotehost gt Remote hostname or IP address if DNS hostname is not available lt rfc931 gt The remote logname of the user lt authuser gt The username by which the user has authenticated him self lt date gt Date and time of the request lt request gt The request line exactly as it came from the client lt status gt The HTTP status code returned to the client lt bytes
53. dard TermDB that includes the names of all languages and countries translated into 25 languages WebPlexer supports the use of multiple TermDBs Each top level URL declared in the WP_ Map file can be asso ciated with a different TermDB and multiple TermDBs can be defined for a given URL This makes it possible to maintain several small TermDBs rather than one large one There are three types of TermDBs The System TermDB included with the product Add on TermDBs available from Language Automation User defined TermDBs created with the tpbuilder utility explained in the next section TermDBs together with WebPlexer s WPReplace tag allow multilingual terminology to be centralized This has several advantages It makes it easy to add support for new languages without changing any of the documents on the site Changes to the form or structure of a document can be made immediately available in all languages All lan guages can be updated simultaneously The number of documents that need to be maintained on the site is reduced It is not necessary to have separate versions of a document for each language A single CGI script or form can be localized for multiple languages from a single copy of source code No update is required when new languages are added TermDBs and the other resources of the Multilingual ToolKit can be used most effectively if you plan appropri ately before you design your site If you need assistance in bu
54. dated 10 15 20 25 30 58 notifying the user which corresponding documents data streams or non text files in the other languages require translation sending documents data streams or non text files to be translated down a pipeline wherein said pipeline is connected to a plurality of translation resources using one or more open Application Programming Interfaces API sending packets to translation resources through said Adaptor wherein work packets are converted to the appropriate translation resource format before sending said converted work packet to said translation resource receiving packets from translation resources through said Adaptor wherein received packets are converted back to the work packet format and the status and control information are updated in said work packet before sending said converted received packet to said pipeline wherein said one or more open API allow a variety of translation resources to be connected to said pipeline and wherein said translation resources perform translation or other linguistic functions on a set of input documents and produce a set of output documents that have been transformed linguistically 24 The method of claim 23 wherein said translation resources are deployed across intranets as well as the Inter net
55. de feature see Multi Country Server Side Includes MCSSI They allow specific content to be presented to users from countries in those regions when they enter the Web site 3 4 5 Setting the Global Default Country The global default country is set in the WP__Map file with the directive defaultCountry lt country gt where lt country gt is one of the valid countries given in Appendix C List of Available Countries The global default country is used as the default for the console and for some additional WebPlexer functions 3 5 Country and Language Management WebPlexer has the unique ability to independently main tain both the country and the language associated with each request This provides a great deal of flexibility in selec tively targeting content to specific regions or countries of the world and at the same time making that content available in multiple languages It is important to understand how WebPlexer s country management and language management are different and how they are similar In the following description the term session refers to a logical grouping of requests between browser and Web Plexer A session begins with the browser making a request for the top level URL It ends with the final response being sent from WebPlexer to the browser A session can have any number of request response pairs between these two end points A session has a state associated with it Included in this
56. document is presented to the browser The basic approach to creating a template has two steps First remove as much country and language specific infor mation as possible from a document Then replace this information with appropriate WebPlexer tags and com mands The advantage to using templates is that a single docu ment can easily support many languages and countries For example a single form or CGI generated document can be constructed so that it will be automatically localized for different languages and locales This significantly reduces the number of documents that have to be maintained on the site and makes it very easy to add new languages It also allows a single update to a document to be immediately propagated to all languages and countries This technique also allows country or regional content to be conveniently separated from the structure of the document making it easy to change a design often by updating a single file This eliminates the ripple effect often seen when a single change must propagate through all of the localized documents on the site US 6 526 426 B1 25 3 6 1 1 Template Types WebPlexer supports three basic kinds of templates 1 Static no template 2 File based 3 Tag based One document may contain all three template types We call such a document a composite document since it is made up of multiple elements Most documents will have a mixture of these three basic types In the
57. does not actually exist in the document hierarchy but should match the URL the user will type when entering the site If the selected language were French the URL mappings would be http www lai com joe http www lai com joe french and http www lai com joe index html http www lai com joe french index html 3 3 2 2 Specifying the Language to Directory Map and Charset The language to directory map and charset document encoding are specified by adding lines of the form lt language gt lt language__directory gt lt charset gt immediately after the URL specification where lt language gt is the name of the language Please see Appendix B List of Available Languages for a list of which languages are available for this release lt language__directory gt is the name of the subdirectory containing documents of that language 10 15 20 25 30 35 40 50 55 60 65 18 lt charset gt is the encoding used for documents in that language e g ISO 8859 1 In the previous example these lines would read english english ISO 8859 1 french french ISO 8859 1 spanish spanish ISO 8859 1 3 3 2 3 Specifying the Local Default Languages The local default languages tell WebPlexer which lan guage to use in case the requested language is not available on the server There are two local default languages that need to be specified The first is called others and the second is sim
58. e Section 3 6 1 1 Template Types such as WPReplace see Section 3 6 3 1 WPReplace or MLSSI see Multi Language Server Side Includes MLSSI should be used instead Language dependent content means any static text that is present in the file Including language dependent content within an MCSSI file is not recommended since an MCSSI file is included based on the setting of the current country In other words MCSSI files should contain only country or regional specific content and be independent of language For example if the current country of the browser is Switzerland the user might be viewing the site in either French or German If an MCSSI file for Switzerland is included that contains static text in French the language will be wrong if the browser is requesting German This problem can be easily solved by replacing the static text in the MCSSI file with template tags either by 1 Placing the translations of the static text in a TermDB and using WPReplace tags in the MCSSI file or 2 Placing each language version of the text in a separate file and including it with a single MLSSI tag within the MCSSI file US 6 526 426 B1 39 3 9 6 Using Multi Language Server Side Includes MLSST MISSI is typically used to customize an HTML docu ment by including HTML that might be too complex to be managed by WPReplace tags For example MLSSI can be used to include a language specific heading at the top of a form
59. e Section 3 6 3 1 WPReplace It can also contain additional MLSSI and MCSSI includes If the MLSSI file_ name is not found on the server the following message will be injected into the HTML stream in place of the MLSSI directive an error occurred while processing MCSSI directive US 6 526 426 B1 35 3 7 Multilingual Navigator TM The Multilingual Navigator is a collection of WebPlexer enhanced HTML code which can be used to easily provide language and country selection for any document on the Web site It provides complete language and country selec tion without the need for CGI scripts or complex interlinked pages The Multilingual Navigator is easily customizable to meet the specific navigation needs of your site The Multilingual Navigator is included with this release in a file called mlnav html It is also included on the index html and contact html pages in the sample directory 3 8 Input Manager WebPlexer s input manager allows forms handling CGI scripts to be intercepted and user input extracted for later translation It can be used to support the translation of customer feedback forms in a multilingual environment To use the input manager the name of the CGI script to be intercepted is specified in WebPlexer s WP_ Map file along with the location of a template file and an output prt pre translated file There is one line at the end of the WP__Map file for each CGI script to be intercepte
60. e line ConsolePort ccc in the WP_ Config file This setting can also be overridden by a command line flag Please see Section 3 11 Runtime Options for more information 3 2 Logs WebPlexer supports 3 types of logs AccessLog ErrorLog InformationLog US 6 526 426 B1 15 The filenames of these logs are defined in the WP_ Config file Additional information on how to define the log files can be found in Chapter 4 Contents of WebPlexer Files NOTE A fourth log the Usage Log is generated by the updtusage tool that analyzes the Information Log This tool will be included in a future release The function of each log is described below A detailed specification can be found in Section 4 4 Log Specifica tions 3 2 1 AccessLog The AccessLog records information about each request received by WebPlexer such as date time and request type WebPlexer command requests WPCommands are also logged NOTE When WebPlexer is configured for production mode see Section 3 1 1 2 Production Mode WebPlex er s Access Log should be used in place of the Web server s access log for analysis and auditing purposes the Web server s access log will show all requests originating from WebPlexer Examples of AccessLog entries are pp93 satcom net 28 Jul 1996 23 37 23 0700 GET cnv post info html HTTP 1 0 302 pp93 satcom net 28 Jul 1996 23 37 24 0700 GET cnv post english american_United States
61. ent must specify a different prt file The template file tells the input manager which fields of the form should be extracted When the CGI script is invoked the input data from those fields is saved and appended to the output or prt pre translated file This file also contains the time stamp current country and language and domain of the requester Syntax inbound lt cgi scriptN gt lt template fileN gt lt prt fileN gt where lt cgi scriptN gt is the name of the CGI script to be intercepted lt template fileN gt is the name of the file defining the fields to be captured Please see Section 3 8 1 Template Definition for a defi nition of this file lt prt fileN gt is the name of the output pre translated file Please see Section 3 8 2 prt File Description for a definition of this file Examples inbound form cgi form tmpl form prt inbound contact cgi contact tmpl contact prt Also see the sample WP_Map file included with this release 4 2 5 Setting Global Defaults Global defaults are declared at the end of the WP_Map file and apply to all URL groups 4 2 5 1 defaultCountry Syntax defaultCountry lt country gt where lt country gt is the country to be used as WebPlexer s global default country NOTE The country must be a valid country from the country list file 10 15 20 25 30 35 40 45 50 55 60 65 48 Example defaultCountry United Stat
62. ermDB it is recommended that TermStrings that will not change be removed from the input files i e input files should only specify actions to be performed during the update Replacing an Entry To replace an entry simply replace old translation s in the target language input files with new translations of the TermString The original TermString must be specified in the master language input file If new translations are not available simply put a blank line in the target language input file s with a number that matches the original TermString in the master language input file The translations will be updated later through the WebPlexer console s translation management feature Deleting an Entry To delete an entry simply put a minus sign in front of the line in the master language input file corresponding to the entry to be deleted The master language entry for that TermString along with all translations will be removed from the TermDB Including HTML Tags in a TermDB Entry HTML tags can be included in TermStrings to allow complete HTML constructs to be embedded between WPRe place tags This provides a great deal of freedom in content organization Embedded HTML tags must be preceded by a backslash OD For example the following is a valid TermString 25 lt img src balloon giff gt The backslash character can also be used as a valid character in the TermString but it must be preceded by another backslash 3 6
63. erves multiple customers with and without multilingual sites from a single instance of the invention The following is an excerpt of a user manual describing the Visitor and Developer modules for a preferred embodi ment of the invention called WebPlexer 3 DETAILED FUNCTIONAL DESCRIPTION The following sections are ordered beginning with basic functions and gradually progressing to those that are more advanced Similar functions have been grouped together logically for easy reading 3 1 Communication Ports WebPlexer has 3 network ports These ports are used to communicate with the client the Web server and the con sole The ports can be assigned to any available port number on your system and are specified in WebPlexer s WP_ Config file The 3 ports are Internetport This is the port WebPlexer uses to commu nicate with the client ServerPort This is the port WebPlexer uses to commu nicate with the Web server ConsolePort This is the port WebPlexer uses to commu nicate with a client that is being used for the console Please see Section 3 10 WebPlexer Console for more information on console operation Port numbers are assigned starting at 1 Lower numbers are reserved for dedicated processes like ftp 21 http 80 and telnet 23 The lower numbered ports are also privileged in that they require root level authority to use For testing we recommend choosing an available port with a number of at least
64. es 4 2 5 2 defaultLanguage Syntax defaultLanguage lt language gt where lt language gt is the language to be used as WebPlexer s global default language NOTE The language must be a valid language from Appen dix B List of Available Languages Example defaultLanguage english 4 3 Map Overrides WebPlexer provides two files that can optionally force the selection of specific language s for certain hostnames or IP addresses when the top level URL is accessed These files are HostNameMap and IPAddrMap and are described below Both files are in WebPlexer s language subdirectory 4 3 1 HostName Map Syntax lt hostID1 gt lt language__setl gt lt hostID2 gt lt language__set2 gt lt hostIDN gt lt language__setN gt where lt hostID gt is a hostname lt language__set gt is an ordered list of one or more languages of the form lt language1 gt lt language2 gt lt languageN gt and languageN is preferred over languageN 1 for this hostID NOTE The HostName Map file must be in WebPlexer s language subdirectory Examples www lai com english www generichost com default 4 3 2 IPAddress Map Syntax lt ipID1 gt lt language__set1 gt lt ipID2 gt lt language_set2 gt lt ipIDN gt lt language__setN gt where lt ipID gt is an IP address lt language__set gt is an ordered list of one or more languages of the form lt language1 gt lt language2 gt lt languageN gt an
65. ese VIASCII Although the invention is described herein with reference to the preferred embodiment one skilled in the art will readily appreciate that other applications may be substituted for those set forth herein without departing from the spirit and scope of the present invention Accordingly the inven tion should only be limited by the claims included below What is claimed is 1 A process for managing tracking accounting and translating multilingual electronic content in a computer environment comprising the steps of detecting when a document data stream or non text file in a master language has been updated notifying the user which corresponding documents data streams or non text files in the other languages require translation allowing the user to initiate the translation of a document data stream or non text file and its constituent or dependent elements converting said document data stream or non text file and its constituent or dependent elements requiring translation to an internal format staging the translation of said document data stream or non text file and its constituent or dependent elements and dynamically routing and sequencing said document data stream or non text file and its constituent or dependent elements to the appropriate translation resources wherein said routing and sequencing is performed according to any of the subject matter of the document to be processed target language o
66. f I on gt This should be set to off in the current release 4 1 9 Console Syntax Console lt off I on gt Disables enables the WebPlexer console 4 1 10 MasterLanguage Syntax MasterLanguage lt language gt Specifies the language to be used as the master or refer ence language for the console i e documents in that lan guage will be used as a reference when determining which languages are out of date Example MasterLanguage english NOTE The language must be one of those supported by WebPlexer see Appendix B List of Available Languages 4 1 11 ConsoleTextExtensions Syntax ConsoleTextExtensions lt extl ext2 extN gt The extensions specified as extN indicate what filetypes will be under console maintenance functions Example ConsoleTextExtensions html htm 4 1 12 ConsoleFileInclude Syntax ConsoleFileInclude lt file1 file2 fileN gt Specifies individual files to be included under console maintenance functions beyond those included using the ConsoleTextExtensions directive Example ConsoleFileInclude faq txt info txt 4 1 13 ConsoleFileExclude Syntax ConsoleFileExclude lt file1 file2 fileN gt Specifies individual files to be excluded from console maintenance among the set that was included using the ConsoleTextExtensions directive Example ConsoleFileExclude dummy html empty html 4 1 14 Enqueue Syntax Enqueue lt directory gt Specifies the location of the console s enq
67. f the translation and whether draft only or high quality is required 2 The process of claim 1 further comprising the steps of analyzing all of the project components in sufficient detail to determine project cost and resource requirements generating a project cost estimate prior to beginning the project creating Work Packets Job Tickets and a Project Schedule for said project and sending said Project Schedule to the user for review and validation 3 The process of claim 2 further comprising the step of adjusting the Project Schedule when there are changes in the availability of translation resources or when manual changes are made to the project by a user US 6 526 426 B1 53 4 The process of claim 1 further comprising the steps of providing management status and reporting as the trans lation process progresses to the user automatically notifying the user of the completion of translation updating customer and translation resource accounting at said translation completion and coordinating the delivery of the translated documents data streams or non text files and their constituent or dependent elements back to the user for installation into a Web site database or file system or for optional review 5 A process for managing tracking accounting and translating multilingual electronic content in a computer environment comprising the steps of detecting when a document data stream or non text file
68. ferred language was not avail able The informational text is supplied in the most recently valid language for the visitor s country and language and is 10 15 20 25 30 35 40 45 50 55 60 65 6 embedded within Javascript code The Javascript code is embedded within the HTML stream that is sent back to the server The HTML body tag has an optional attribute where Javascript code can be inserted after the tag The informational text contained within the Javascript code is in english and enclosed within the appropriate system tags described below enabling it to be replaced with its transla tion in the most recently valid language of the visitor The informational text has been pretranslated into all of the languages in the system database for the customer This allows easy access to the appropriate translation for the informational text based on the most recently valid language for the visitor s country and language This allows a multilingual Web site to be built incrementally such that only a portion of the documents on the site need be translated and documents not available in a requested language will be served in the next most appro priate language for a Web site visitor This also gives the customer the option of translating only a subset of the total content on the site The Developer module controls all aspects of content navigation and deliv ery for the entire site so that a visitor will alw
69. fications URL Aiser1 info html f URL Auser1 index html f 4 2 2 Specifying Language Directory Charset Syntax lt language gt lt language__directory gt lt charset gt where lt language gt is the name of the language lt language__directory gt is the name of the subdirectory containing documents of that language lt charset gt is the encoding used for documents in that language e g ISO 8859 1 All the URLs in a group share a common language to directory map NOTE lt language gt must be one of the available languages listed in Appendix B List of Available Languages Examples of valid language to directory entries are french french ISO 8859 1 english eng_docs ISO 8859 1 catalan spanish_ dir ISO 8859 1 japanese japanese ISO 2022 JP There are two reserved lt language gt names that have spe cial meaning One is default and the other is others Both of these must be specified in the directory map of each URL group definition They are described in more detail below 4 2 2 1 others Syntax others lt others_language gt lt charset gt The others language is used when the requested lan guage is valid but does not exist on the server For example if English French and Spanish documents exist on the server but the requested language is Russian WebPlexer will use the language defined as others It is usually the case that others is set to English Example othe
70. flow Pipeline together with the Translation Resources allow the translation process to proceed rapidly and efficiently Translation Resources are centralized or distributed func tional blocks which are connected to the Workflow Pipeline where the actual work including translation is performed A typical workflow process will use one or more Translation Resources in a specified sequence to complete the required work A Translation Resource performs translation or other linguistic functions on a set of input documents and their constituent or dependent components and produces a set of output documents that have been transformed linguistically The Workflow Pipeline connects to any type of Transla tion Resource Four examples of Translation Resources are Machine translation systems Translation memory systems Human translators Terminology management systems US 6 526 426 B1 11 Machine translation is software which provides fully automatic draft quality translations Translation memory systems provide a database of source target translation pairs for a particular document When an updated version of a document needs to be translated the translation memory can be used to pre translate the document with translations from the previous version of the document Human translators are linked to the Workflow Pipeline through a special Adaptor that connects to the Internet or a customer s intranet This allows any translator anywhe
71. format e g HTML The document is then sent to the final destination With respect to FIG 10 the Adaptor converts work packets to the appropriate Translation Resource format 1001 The packets are then routed to the appropriate Trans lation Resource 1002 The Adaptor also receives packets from Translation resources 1003 The packet is converted back to the work packet format 1004 and the status and control information in the work packet is updated 1005 The Manager s Console is then notified of the work packet s availability 1006 in the translation queue This degree of flexibility allows new translation technolo gies and translation service providers to be quickly inte grated into the workflow process Additional resources are easily allocated to accommodate sites which require fre quent update and synchronization Referring to FIG 11 a task view of the Adaptor is shown The Convert to Translation Resource module 1101 converts work packets to the appropriate Translation Resource format that is understood by the resource The packets are then routed to the Translation Resource by the Route Packet module 1102 Packets are received by the Receive Packet module 1103 The Convert Update Packet module 1104 performs the packet conversion back to the work packet format and updates the packet s status and control information It then notifies the Manager s Console that the work packet is available in the translation queue The Work
72. g Database 811 as jobs complete The Accounting Manager module 809 generates project cost estimates based on input from the Project Analyzer module 806 handles customer billing and is responsible for generating purchase orders for Translation Resources when needed Completed documents and their constituent or dependent components that have been checked by the Web site man ager are then installed in one or more language and country databases and or file systems 808 by the Monitor Database Documents module 807 The Workflow Pipeline is a transport layer that delivers documents and their constituent or dependent components requiring translation to the Translation Resources where the actual work is performed The Workflow Pipeline is heavily instrumented so that status and tracking of ongoing work is instantly conveyed to the Web site manager on the Manag er s Console The Workflow Pipeline uses a highly configurable archi tecture allowing a variety of Translation Resources to be instantly available to the Web site manager These Transla tion Resources include both automated translation tools as well as human translators Translation Resources are connected to the Pipeline using an open Application Programming Interface API known as an Adaptor Adaptors allow a variety of Translation Resources to be connected to the Pipeline making it easy to tailor the Workflow Manager to meet a customer s require ments The flexible Pipeline arch
73. ge based on the geographic location of the requester The actual selection mechanism is controlled by the multi country server side include feature This feature is more fully described in Multi Country Server Side Includes MCSSI Additional information can be found in Section 3 6 1 Template Model which describes WebPlexer s template model 5 3 5 4 Modify Content for Language WebPlexer presents the content in the language selected by the requestor There are 3 methods that WebPlexer uses to present content in the selected language 1 A static document that has been pre translated is selected from the corresponding language directory For example if the language is French the document will be retrieved from the french directory 2 Content that has been pre translated is inserted into a template using the multi language server side include 10 m 5 20 25 30 35 40 45 50 55 60 65 24 feature This feature is more fully described in Multi Language Server Side Includes MLSSI Additional information can be found in Section 3 6 1 Template Model which describes WebPlexer s template model 3 Words and sentences that are marked up with Web Plexer s WPReplace tags are dynamically translated into the requested language using an external TermDB WPReplace tags and TermDBs are described in Section 3 6 3 1 WPReplace and Section 3 6 2 TermDBs tM 3 6
74. gt The content length of the document transferred Examples pp93 satcom net 28 Jul 1996 23 37 23 0700 GET cenv post info html HTTP 1 0 302 pp93 satcom net 28 Jul 1996 23 37 24 0700 GET cnv post english american__United States info html HTTP 1 0 200 3372 pp93 satcom net 28 Jul 1996 23 37 29 0700 GET cnv post coming flags United States gif HTTP 1 0 200 3594 NOTE When WebPlexer is configured for production mode see Section 3 1 1 2 Production Mode WebPlex er s AccessLog should be used in place of the Web server s access log for auditing purposes The Web server s access log will show all requests originating from WebPlexer 4 4 2 ErrorLog The ErrorLog logs any errors that occurred during Web Plexer operation or during the processing of a request The format of an ErrorLog entry is date lt Error Msg gt Examples 01 Aug 1996 21 02 23 0700 Couldn t bind to socket for internet port 3080 4 4 3 Information Log The InformationLog records information about Web Plexer language and country selection An entry is written whenever language or country changes whether automati cally or by manual selection The format of an InformationLog entry is lt remotehost gt lt rfc931 gt lt authuser gt lt date gt lt status message gt where the fields are defined as follows lt remotehost gt Remote hostname or IP address if DNS hostname is not available 5 10 15 20
75. guage selection has the highest pri ority upon entry to the site 3 3 4 Automatic Language Selection In automatic language selection WebPlexer determines the language by first determining the country from the requester s domain then looking up the language for that country in a database Automatic language selection is only active under the following two conditions 1 The request is to the top level URL specified in the WP_ Map file see Section 3 3 2 1 Specifying the Top Level URL 2 The browser has not set a preferred language see Section 3 3 3 Browser Specified Language Selection NOTE If the browser has specified a language preference it overrides any automatic language selection For example if the top level URL were joe and the host domain were eiffel tower fr a request to http Awww lai com joe would cause the URL to be mapped to http www lai com joe french and sent to the Web server The country to language database contains a list of lan guages for each country These languages are arranged in order of frequency from most used to least used This list of languages is processed in the same way as preferred languages are handled when received from a browser see Section 3 3 3 Browser Specified Language Selection This means that the languages are examined until the first one present on the server is found For example the languages of Switzerland are german french italian r
76. ibility in serving specific content for a region or country where more than one language is spoken Please note that language dependent content is normally not included in MCSSI files and that template tags see Section 3 6 1 1 Template Types such as WPReplace see Section 3 6 3 1 WPReplace or MLSSI see Multi Language Server Side Includes MLSSI should be used instead Language dependent content means any static text that is present in the file Including language dependent content within an MCSSI file is not recommended since an MCSSI file is included based on the setting of the current country In other words MCSSI files should contain only country or regional specific content and be independent of language For example if the current country of the browser is Switzerland the user might be viewing the site in either French or German If an MCSSI file for Switzerland is included that contains static text in French the language will be wrong if the browser is requesting German This problem can be easily solved by replacing the static text in the MCSSI file with template tags either by 1 Placing the translations of the static text in a TermDB and using WPReplace tags in the MCSSI file or 2 Placing each language version of the text in a separate file and including it with a single MLSSI tag within the MCSSI file Determining the country_or_region_ directory The country or region directory is determined dyn
77. ilding your multilingual site please contact Language Automation and one of our site support engineers will be happy to assist you 3 6 2 1 Building User defined TermDBs User defined TermDBs can be created and updated using the tpbuilder utility that comes with WebPlexer tpbuilder has the following syntax tpbuilder lt controlFile gt lt outputTermDB gt or tpbuilder lt controlFile gt lt inputTermDB gt lt outputTermDB gt The first form is used when creating a new TermDB The second form is used for updating an existing TermDB controlFile has the following syntax comments lt TermDB title string gt lt TermDB table caption gt lt TermDB text body gt lt blank line gt lt masterLanguage gt lt encoding gt lt input file gt lt languagel gt lt encoding1 gt lt input filel gt lt language2 gt lt encoding2 gt lt input file2 gt lt language3 gt lt encoding3 gt lt input file3 gt lt language4 gt lt encoding4 gt lt input file4 gt 60 lt languageN gt lt encodingN gt lt input fileN gt 65 where lt TermDB title string gt is the title string in the generated HTML file US 6 526 426 B1 27 lt TermDB table caption gt is the caption of the generated table lt TermDB text body gt is the string inserted before the actual table and is part of the text body Note that these strings are for informational and readabil ity purposes only and are not used by WebPlexer A line of the form
78. ion allows the browser to send more than one language in the header The group of lan guages is ordered with the most desirable language first WebPlexer uses the Accept Language header to select the correct language The header is only used when the request is to a URL that matches the top level URL given in the WP_ Map file see Section 4 2 1 Specifying the Top Level URL For example if the top level URL were joe and the browser preference were set to Spanish a request to http www lai com joe would cause the URL to be mapped to http www lai com joe spanish and sent to the Web server If the browser has specified more than one language WebPlexer goes through the languages in order and stop when it finds the first one that is present on the server If none of the languages are found WebPlexer uses the oth ers language specified in the WP_Map file see Section 4 2 2 1 others Once the language has been determined WebPlexer redi rects the browser to the directory for that language All accesses to relative links within the requested document stay within that directory US 6 526 426 B1 19 Changing the browser s language preference does not have any effect until the top level URL is again requested and the browser re enters the site The recommended way to change language within a language directory is by manual selection see Section 3 3 5 Manual Language Selection Browser specified lan
79. ios When tpbuilder is run it will write status information to stdout Updating an Existing TermDB An existing TermDB is updated using this form of the tpbuilder command tpbuilder lt controlFile gt lt inputTermDB gt lt outputTermDB gt NOTE The controlFile must contain all of the languages that were specified when the TermDB was initially created Generally speaking there are three types of update opera tions that can be performed on a TermDB 10 15 20 25 30 35 40 45 50 55 60 65 28 Adding new entries and optionally their translations Replacing old entries and optionally their translations Deleting entries These operations are controlled through the contents of the individual input files specified in the controlFile and are described in more detail below Adding an Entry To add a new entry simply add a new TermString to the master language input file and optionally corresponding TermStrings in the target language input files If a matching translation is not found in a target language input file an empty entry will be created and will be filled in later when the translation is available through the WebPlexer console s translation management feature Please see section x xx for further information on console operation If an empty TermDB entry is accessed during a lookup the TermDB will return the value of the original master language string i e the index NOTE Prior to updating a T
80. itecture can be deployed on intranets as well as the Internet Referring to FIG 9 Generators 901 are provided that convert the internal format document that is used within the Pipeline to the appropriate format required by the Transla tion Resource The Adaptors 902 invoke the specific gen 10 15 20 25 30 35 40 45 50 55 60 65 10 erator for the appropriate Translation Resource 904 Each Adaptor accepts the internal format document sends the document to the appropriate Generator 901 which converts the format to one that is acceptable to the Translation Resource 904 attached to the Adaptor 902 The Generator 901 sends the newly formatted document to the Adaptor 902 which in turn sends it to the Translation Resource 904 When the document has been translated by the Translation Resource 904 the Adaptor 902 accepts the document and its associated information and invokes a Parser 903 which converts the document back into the internal format The Parser 903 distributes the packet back up the Pipeline Parsers are also invoked whenever a document is extracted from the Translation queues and sent down the Pipeline The Parser converts the document into the internal format Generators are in a similar manner invoked when ever a translated document is posted back onto the Trans lation queues after completion of translation The Generator converts the internal format document back to the docu ment s original
81. language is changed WebPlexer requires that a special WPCommand be used to invoke the link to the change language page This WPCommand is of type link and takes the name of the page to link to as an argument Its external behavior is the same as if a direct HTML link were used except it notifies WebPlexer that a change language or change country WPCommand is about to be issued This allows WebPlexer to return the browser to the originating page once the language has changed In the HTML this link would be coded as lt A HREF WPCommand link langsel html gt Change Language lt A gt and would produce a request URL to WebPlexer of the form http www lai com joe english_United States WPCommand link langsel html where langsel html is the language selection page 3 3 7 Hostname and IP Address Overrides WebPlexer provides a method of optionally forcing the selection of specific language s for certain hostnames or ip addresses This feature overrides automatic language selection when the top level URL specified in the WP Map file is requested A browser specified language preference will still be used if specified There are two files used to specify automatic language selection overrides HostNameMap and IPAddrMap both of which are in WebPlexer s language subdirectory The format of these files is described in Section 4 3 Map Overrides 3 3 8 Setting the Global Default Language The global default language is
82. lications For example in a fax application documents are scanned and sent through the invention for translation into selected languages The translated documents are then automatically faxed to selected locations Another example would be a universal translator where spoken words are converted into a data stream and sent through the invention for translation into designated languages The translated data stream is con verted back into audible speech and sent to the designated audiences US 6 526 426 B1 13 The invention is scalable to provide multilingual presen tation and management functions across multiple servers in a distributed environment For example some sites might have English content on one server Japanese on another and so on Each server will have installed on its respective site an instance of the invention communicating with other instances of the invention throughout the system One server is designated the master and the others are slaves for the purpose of managing content The servers communicate over a dedicated interface allowing content to be managed in a distributed fashion This configuration also supports mir rored sites across multiple servers One skilled in the art will readily appreciate that although a single user system is specifically mentioned the same concept applies to multi user systems for example a multi user configuration would be appropriate for an Internet Service Provider ISP that s
83. lished on May 22 1997 This application integrates a machine translator in the end user s Web browser The user selects the desired target language and the Web document retrieved by the browser is then translated by the machine translator Unfortunately errors occur in the translation and the appro priate content is not consistently displayed to the user An alternative implementation in the above application places pre translated Web pages on a Web server The Web server stores all of the translated Web pages locally The Web site visitor sends a request to the Web server for a page in a specific language The Web server searches for the pre translated page that has been stored locally and sends it to the Web visitor s Web browser This creates a storage and file management problem on the Web server because of the duplication of each entire page of the Web site Some search engines on the Internet offer an option to translate the hits that come back from a search query into different languages The user initiates the translation through a menu selection The translation is performed automatically by machine Japanese Pat No 9 114852 is a method for a search unit which takes a search string in a second foreign language and translates it into a first foreign language The translated search string is used to search the original document which is in the first foreign language Japanese Pat No 9 44502 is a method wherein a docu ment in a
84. lized as a matrix with each row representing a lan guage and each column representing a document SPAMM eliminates the need to populate every cell of the matrix When a document is requested in a particular language WebPlexer will go to that cell of the matrix and try to retrieve the corresponding document If the document is not there i e it has not been translated into the requested language WebPlexer will automatically retrieve it from the default language directory specified by the default declaration in the WP_Map file for this top level URL see Section 4 2 WP_ Map for an expla nation of how to set up the default language directory SPAMM is completely transparent in operation It does not require any special set up or configuration It also works with MLSSI so that if an included file cannot be found in the current language directory it will look in the default direc tory instead Please note that even when SPAMM fetches a document from the default directory WebPlexer still maintains the correct settings of country and language This means that if a browser clicks on a link from within a document that was fetched from the default language directory through SPAMM WebPlexer will look for the new document in the currently active language directory not in the default lan guage directory 3 9 3 Specifying Language to Directory Mapping The mapping of language to directory must be specified in the WP_Map file s
85. lized for each area of the world with the smallest achievable site footprint on the Web server 503 A template contains placeholders for country and language specific information that has been removed from a document This information is dynamically inserted from a TermDB 508 an external glossary another template or document located in a database or file system 509 or provided automatically by the Developer module 502 when the composite document is presented to the browser 501 The basic approach to creating a template has two steps First remove as much country and language specific infor mation as possible from a document Then replace this information with appropriate tags and commands specific to the invention and described later in this document The advantage to using templates is that a single docu ment can easily support many languages and countries For example a single form or CGI generated document can be constructed so that it will be automatically localized for different languages and locales This significantly reduces US 6 526 426 B1 7 the number of documents that have to be maintained on the site and makes it very easy to add new languages It also allows a single update to a document to be immediately propagated to all languages and countries This technique allows country or regional content to be conveniently separated from the structure of the document thereby making it easy to change a design often by updati
86. lt languageN gt lt encodingN gt lt input fileN gt lt comment gt specifies the target language encoding and input file that contains the list of strings to be entered into the TermDB The first line must specify the TermDB s master language The master language is used to index into the TermDB using a key The key is obtained from the string contained between lt WPReplaceBegin gt and lt WPReplaceEnd gt tags NOTE the control file and input files must be in the same directory For example a typical control file might look like this Joe s TermDB This is the TermDB for Joe Joe s TermDB english SO 8859 1 laieng txt chinese GB2312 laichs txt french SO 8859 1 _ laifre txt In this case english is defined to be the master language of the TermDB and the list of index terms will be taken from the file laieng txt The corresponding translations into arabic and french will be read from the files laiarah txt and laifre txt respectively The input files have the following syntax 1 lt TermString1 gt 2 lt TermString2 gt N lt TermStringN gt where lt TermStringN gt is a string to be entered into the TermDB for that particular language Note that the numbers at the beginning of the line are arbitrary and are used to easily align the text across each of the input files For example a typical set of input files might look like this English 1 hello 2 goodbye French 1 bonjour 2 au revoir Spanish 1 hola 2 ad
87. mDBs TM For example if a TermDB contained these entries english hello french bonjour spanish hola then this HTML code lt WPReplaceBegin gt hello lt WPReplaceEnd gt would produce bonjour if the current language were French and hola if the current language were Spanish Please note the following 1 If the string is not found in the TermDB it is not replaced 2 The WPReplace commands are removed after replace ment Please see the sample file contact html included with this release for an example of WPReplace Please see Section 4 2 3 outbound Enabling the Output Manager for information on how to specify TermDBs 3 6 3 2 WPSort The WPSort function sorts a list of items according to the sort rules for the current language NOTE this is restricted in the current release Please see Section 1 3 Known Bugs and Limitations of This Release The text to be sorted is divided into a series of lines each of which contains a key Line 1 sort key box lt box gt Line 2 sort key ball lt ball gt Line 3 sort key car lt car gt After sorting the lines will be arranged such that the keys will be in the correct sort order Line 1 sort key ball lt ball gt Line 2 sort key box lt box gt Line 3 sort key car Sous Cs gt The WPSort function is implemented with five tags lt WPSortBegin gt lt WPSortEn
88. mationLog specified in the WP_ Config file c file This flag specifies a configuration file to use other than the default WP_ Config version This flag displays the current version of WebPlexer and libraries restart This flag forces WebPlexer to go through a restart sequence 3 11 2 Debugging Flags v vv debug These flags cause WebPlexer to send debugging and informational messages to stderr They should not be used in normal operation as they will cause some amount of per formance degradation Type webplexer h for more infor mation t file This flag uses the specified file to activate WebPlexer s test mode The test file contains a list of up to 64 domain suffixes that will be consecutively spoofed for each access For example if the file contained fr de it the first access would appear to come from France the next from Germany and the last from Italy then the cycle would repeat Depending on the access pattern and the contents of the document being retrieved e g if there are embedded graphics it may be necessary to repeat the same suffix more than once in the file to achieve the desired result nobg This flag tells WebPlexer to run in the foreground and not to fork a child process on startup noredirection This is a debugging flag and should not be used in normal operation nosigs This disables WebPlexer s exception handling Normally WebPlexer notifies the client when an exceptio
89. n occurs if possible noforking This is another debugging flag that forces requests to be handled by the parent process h help These flags list and describe the help options 4 Contents of WebPlexer Files The following sections give detailed specifications of all WebPlexer external files 10 15 20 25 30 35 40 45 50 55 60 65 42 4 1 WP_ Config The WP_ Config file contains site specific information used to set up and configure WebPlexer The WP_ Config file is similar in format to a httpd conf file and consists of a series of key value pairs one per line Akey is a non blank string ending with one or more white spaces Examples of keys are InternetPort and ServerPort A value is a parameter string and varies depending upon the key Examples of values are the strings 80 and logs WPErrorLog Keys are separated from values by one or more column delimiters spaces or tabs Any text on a line after a comment symbol is ignored The key values currently defined for WP_ Config are listed in the sections below 4 1 1 InternetPort Syntax InternetPort lt port gt where lt port gt is the port on the Internet side that WebPlexer monitors for an http request When WebPlexer is used in production mode see Section 3 1 1 2 Production Mode this value will be 80 the standard http port Example InternetPort 80 4 1 2 ServerPort Syntax ServerPort lt por
90. n one or more language and country databases and or file systems 605 Data streams and non text content are considered documents in the following text A brief summary of the duties of the three primary components are the Manager s Console which serves as the user interface the Workflow Pipeline or transport layer a set of Translation Resources that perform the actual translation work The Workflow Manager module is the core component of the invention The module allows the Web site manager with no prior linguistic experience to effortlessly manage the traditionally complex process of translating and updating a multilingual Web site The Workflow Manager module provides a natural migra tion path beyond the Visitor and Developer modules The Visitor and Developer modules provide a solution to effi ciently serve and organize content on a multilingual Web site The Workflow Manager completes the product family by enabling the language content on the site to be kept up to date efficiently and cost effectively The Web s very nature is dynamic A monolingual Web site must be updated frequently to remain current A multi lingual Web site has an even more demanding problem of requiring all languages to be updated and synchronized simultaneously Using traditional techniques the cost and time required to perform this update and synchronization exceed the benefit and lifetime of the newly updated infor mation to be served effectively
91. nager simply selects the new language from a pulldown list 701 and the Manager s Console automatically initiates the translation of documents into the desired language under the control of the Web site manager 702 The documents are converted to the internal format used by the invention 703 and staged down the Workflow Pipeline 704 The Manager s Console also has a built in access and version control system which allows it to be easily inte grated with a third party authoring or document manage ment system on the Web site With respect to FIG 8 a task view of the Manager s Console is shown The Update Status module 801 updates the Web site manager of the document translation status The Complete Document module 803 retrieves the translated document and its constituent or dependent components from the Translation queues 804 and updates the associated document status information The document delivery to the Web site manager is then coordinated by the Coordinate Document Delivery module 802 US 6 526 426 B1 9 Documents that need to be translated are extracted from the language and country databases and file systems 808 and are sent to Translation Queues 804 The Project Analyzer module 806 receives project components in the form of documents and other electronic content from the Translation Queues 804 and analyzes the project in sufficient detail to determine project cost and resource requirements The Project Analyzer module 8
92. nd language management is described in more detail below 3 5 1 Determine Country WebPlexer will first determine the country of the requester if it is not known on an initial request or when it is manually selected through a WebPlexer change country command see Section 3 4 2 Manual Country Selection 3 5 2 Determine Language from Country WebPlexer uses the country from the previous step to determine the slanguage of the requester A list of languages for the selected country is obtained from a database and the first one that matches a language present on the server is selected For example if the requestor s country were Switzerland the requestor s language could be set to either german french italian or romansch depending on which one was found first on the server The exceptions to this rule are 1 When the browser specifies the language explicitly in its preferences see Section 3 3 3 Browser Specified Language Selection 2 When the language is overridden through a HostName or IPAddress map see Section 3 3 7 Hostname and IP Address Overrides 3 When the language is manually selected through a WebPlexer change language command see Section 3 3 5 Manual Language Selection Once country and language are determined the following rules apply 3 5 3 Select Content for Country WebPlexer uses the country to dynamically select content specific to that country This allows the content to chan
93. ng a single file This in turn eliminates the ripple effect often seen when a single change must propagate through all of the localized documents on the site This allows the Web Server 503 to control the locale independent templates 504 language specific elements 505 country specific elements 506 and static HTML content 507 Visitors to a multilingual Web site may wish to enter information and feedback into a fill out form in their local language to send back to the Web site manager A mecha nism is provided and described above which facilitates the acquisition and translation of this information The Devel oper module captures and tags all such information in a sufficient manner so it can be subsequently translated and analyzed by the customer This approach allows a site to be built with minimal effort and cost and allows the site to grow over time to meet the exact needs of the customer Referring to FIG 6 the Workflow Manager module enables the Web site manager to orchestrate the creation of foreign language versions of the site and to automatically keep them synchronized and up to date cost effectively and with minimal effort The Workflow Manager module pro vides a Manager s Console 601 access to a Workflow Pipeline 602 and customizable Translation Resources 603 Translation queues 604 hold the incoming translated docu ments and outgoing documents to be translated Documents data streams and non text content are stored i
94. ng multilingual electronic content in a computer environment comprising the steps of detecting when a document data stream or non text file in the master language has been updated notifying the user which corresponding documents data streams or non text files in the other languages require translation allowing the user to initiate the translation of a document data stream or non text file and its constituent or dependent elements converting said document data stream or non text file and its constituent or dependent elements requiring translation to an internal format staging the translation of said document data stream or non text file and its constituent or dependent elements and dynamically routing and sequencing said document data stream or non text file and its constituent or dependent elements to the appropriate translation resources wherein said routing and sequencing is performed according to any of the subject matter of the document to be processed target language of the translation and whether draft only or high quality is required 18 The method of claim 17 further comprising the steps of analyzing all of the project components in sufficient detail to determine project cost and resource requirements generating a project cost estimate prior to beginning the project creating Work Packets Job Tickets and a Project Schedule for said project and sending said Project Schedule to the user for re
95. ntranets as well as the Internet Other aspects and advantages of the invention will become apparent from the following detailed description in combination with the accompanying drawings illustrating by way of example the principles of the invention BRIEF DESCRIPTION OF THE DRAWINGS FIG 1 is a block schematic diagram of the major com ponents of a preferred embodiment of the invention accord ing to the invention FIG 2 is a block schematic diagram of the placement of the Visitor module in a network environment according to the invention FIG 3 is a block schematic diagram of a decision flow diagram of the Visitor module according to the invention FIG 4 is a block schematic diagram of the major com ponents of the Developer module according to the invention FIG 5 is a block schematic diagram of the placement of the Developer module in a network environment according to the invention FIG 6 is a block schematic diagram of the major com ponents of the Workflow Manager module according to the invention FIG 7 is a block schematic diagram of a decision flow diagram of the Manager s Console module according to the invention FIG 8 is a block schematic diagram of the major com ponents of the Manager s Console module according to the invention US 6 526 426 B1 3 FIG 9 is a block schematic diagram of the major com ponents of the Adaptor segment of the Workflow Pipeline module according to the invention FIG 1
96. o the document manager can locate documents in the correct language Please see Section 3 3 2 2 Specifying the Language to Directory Map and Charset for detailed information on how to specify this mapping 3 9 4 Specifying Charsets Please see Section 3 3 2 2 Specifying the Language to Directory Map and Charset for detailed information on how to specify the charset used to encode a document This information is used by the document manager 3 9 5 Using Multi Country Server Side Includes MCSSI MCSSI allows an HTML document to be easily custom ized with country and regional specific content using a highly modular building block approach This reduces the number of individual files that need to be kept on the server lowering the cost and time required to maintain the site US 6 526 426 B1 37 One application of MCSSI is to insert a targeted country specific banner at the top of an HTML page It can also be used to easily tailor a marketing message for a specific country or region For example a travel company could use this feature to publish different airfares to various countries or regions Or tour packages or travel information could be presented only to those countries or regions where it is relevant The following is a simple example of an HTML document that shows how MCSSI is used lt HTML gt lt BODY gt lt WPReplaceBegin gt Welcome to the ABC Travel Site lt WPReplaceEnd gt
97. omansch and will be searched in that order The rules for selecting the local default languages are the same as for browser specified languages if the language cannot be found 3 3 5 Manual Language Selection Manual language selection is effective at any time Manual language selection overrides any automatic or browser specified language Manual language selection is performed by issuing a WPCommand whose type is language WPCommands are more fully described in Section 3 6 3 3 WPCommands They result in the browser sending a request to WebPlexer of the form http www lai com joe xxxx WPCommand language yyyy where xxxx is the current language plus country directory and yyyy is the desired language to switch to NOTE language plus country means that the language directory is appended with the currently selected country e g english__United States Note that even with manual language selection the lan guages and directories in the WP__Map file still need to be set up as in automatic language selection 3 3 6 Cookie based Language Selection 3 3 6 1 Using WPCommand language WPCommands are normally issued through hypertext links embedded in an HTML document This statement illustrates a simple example lt A HREF WPCommand language french gt French lt A gt If the user is currently looking at an English document clicking on the word French will cause the browser to send WebPlexer a reques
98. omatic country selection WebPlexer determines the country from the requester s domain If the domain cannot be determined usually because the requester is behind a firewall the country is set to the global default country see Section 3 4 5 Setting the Global Default Country Automatic country selection is only active when the browser request is to the top level URL specified in the WP_Map file See Section 3 3 2 1 Specifying the Top Level URL for a detailed description of how to set the top level URL Once the country has been determined its value is saved by appending it to the language directory in the mapped URL For example if the top level URL were joe and the host domain was eiffel tower fr a request to http Avww lai com joe would cause the URL to be mapped to http Avww lai com joe french_France By embedding the country name in the URL WebPlexer can retain the country setting for the lifetime of this session 3 4 2 Manual Country Selection Manual country selection is performed by issuing a WPCommand of type country WPCommands are more fully described in Section 3 6 3 3 WPCommands They result in the browser sending a request to WebPlexer of the form http www lai com joe xxxx WPCommand country yyyy where xxxx is the current language directory appended to the current country and yyyy is the desired country to switch to Once the country changes the language will also change to m
99. or s country and language preferences are recorded in the server log 306 The enhanced Web server log gives the site man ager a detailed breakdown of country and language for visitors to the Web site Finally the browser is notified of the proper display font and allowed to download the font 307 Input text that is submitted using an HTML form is intercepted 308 The text is converted to an internal format 309 and is placed in the forms database 310 for later translation The Developer module enables the Web site developer to build a single master site which is subsequently displayed in any number of languages compared with conventional methods whereby the site is re engineered for each lan guage Referring to FIG 4 the Developer module contains all of the features of the Visitor module 401 which records the US 6 526 426 B1 5 Web site visitor s country and language preferences in the server log 404 A toolkit 402 is provided which allows a master site to be built that is language and country independent The actual language content is placed in a language and country data base and or file system 403 where it is easily managed and maintained When a visitor enters the site the requested document is automatically served in the visitor s language and for the visitor s country by filling in a document template from the master site with the correct language and country content from one or more databases This structure
100. ply called default The others language is chosen when the requested language is valid but does not exist on the server For example if English French and Spanish documents exist on the server but the requested language is Russian WebPlexer will use the language defined as others The default language is chosen when WebPlexer cannot determine the language of a request and none has been specified by the browser This can happen when the country of origin cannot be determined because the hostname is unavailable for example when the requester is behind a firewall These directories are specified by including the following lines in the WP__Map file others lt others_language gt lt charset gt default lt default_language gt lt charset gt It is usually the case that others and default are both set to English In the example above these lines would read others english ISO 8859 1 default english ISO 8859 1 The next sections describe the language selection algo rithms in more detail 3 3 3 Browser Specified Language Selection In browser specified language selection the browser sends its language preference along with the http request The language is set through a preference or option setting in the browser The preference is sent to WebPlexer in the Accept Language header within the request message The Accept Language header is described in the http specification The specificat
101. re in the world to join a virtual translation team and provide translation services to multilingual Web sites or any other translation application serviced by the invention Terminology management systems provide functions that are necessary to support the entire translation process such as automated generation and retrieval of client specific glossaries and lexicons Both human based as well as technology based Translation Resources require access to appropriate glossaries and lexicons to ensure that linguistic transformations are performed in the correct terminological domain Technology based Translation Resources are easily upgraded as their technology improves For example older machine translation or translation memory systems are replaced with newer systems simply by unplugging the old systems and plugging in the new ones through the Adaptors on the Workflow Pipeline The Manager s Console provides the Web site manager with fully automated management of the entire translation process The following is a description of how the Web site manager interacts with the Manager s Console in the process of keeping a site up to date With respect to FIG 12 when the site is current and all language content is up to date the Manager s Console 1202 reports to the Web site manager 1201 that no action is required If a document in the master language is subsequently updated perhaps out of date product information on the Web site is being
102. reated when a visitor enters the site or changes country once on the site Examples of UsageLog entries are 17 Oct 1996 13 40 11 0700 Language German www07 btx dtag de 17 Oct 1996 14 09 57 0700 Country Argentina serverl sminter com ar 4 5 CountryMap The CountryMap contains a database of the world s languages and dialects It is not human readable 4 5 1 Creating a User defined CountryMap 4 6 country list The country list file contains a list of available countries It is identical to the list included in Appendix C List of Available Countries 4 7 WP_LangCode The WP_LangCode file contains the iso639 language map 4 8 WP_ Languages The WP_Languages file contains a list of available languages and dialects It is identical to the list included in Appendix B List of Available Languages US 6 526 426 B1 51 4 9 WP_ Regions The WP_Regions file consists of a list of names of user defined regions each one followed by a list of countries contained within that region Syntax this is user defined region1 lt user defined_region1 gt lt country1 gt lt country2 gt lt countryN gt this is user defined region2 lt user defined_region2 gt lt country1 gt lt country2 gt lt countryM gt Blank lines as well as lines beginning with are ignored Tabs at the beginning of a line are also ignored Example sales_region 1 Japan China Hong Kong sales_region2 France
103. ries lt head_of_messi_directory gt lt region gt lt messi_file gt where lt head_of_messi_directory gt is the top level directory of the MCSSI area on the server and is defined in the WP_Config file see Section 4 1 WP_ Config for more information lt region gt is the name of the desired region This is either a user defined region from the WP_ Regions file or a WebPlexer pre defined region given in Appendix D List of WebPlexer Default Regions lt messi_file gt is the target file to be included c Place generic content all regions and countries in this directory where lt head__of_mcssi_directory gt is the top level directory of the MCSSI area on the server and is defined in the WP_Config file see Section 4 1 WP_ Config lt messi file gt is the target file to be included 4 Include a statement in your HTML of the form lt WP_ include_MCSSI airfares html gt gt where airfares html is the name of the target MCSSI file 5 When WebPlexer detects the MCSSI include when processing the HTML it will fetch the file from the appro priate directory 3a b or c from above where ever it finds it first and insert it in line into the HTML stream 6 Any WPReplace or WebPlexer tags that are found in the inserted file will be resolved after the file is inserted Please note that language dependent content is normally not included in MCSSI files and that template tags se
104. rman banner html etc The contents of the banner html files might look some thing like french banner html lt IMG SRC images french banner gif WIDTH 80HEIGHT 20 gt Bienvenue lt br gt german banner html lt IMG SRC images german banner gif WIDTH 1OOHEIGHT 20 gt Wilikommen lt br gt and so on Of course the WPReplace strings name address will also be replaced by their translations from the TermDB during processing of the file See Section 3 6 3 1 WPReplace for a description of how this is done As can be seen MLSSI can be used to separate out the language specific components of an HTML document mak ing it easier to maintain the collection In the previous example if the structure of the HTML form needed to change it would only require changing the template file and not any of the language specific files on the site MISSI is very easy to use by following the steps given below 1 Place any language specific parts of a document you wish to have managed by MLSSI in the respective language directories specified in the WP_ Map file 2 Include a statement in your HTML of the form lt WP_include_MLSSI component html gt where component html is the name of the file created in step 1 10 15 20 25 30 35 40 45 50 55 60 65 40 3 When WebPlexer detects the MLSSI include when pro cessing the HTML it will fetch the file from the language
105. rs english ISO 8859 1 4 2 2 2 default Syntax default lt default_language gt lt charset gt The default language is used when WebPlexer cannot determine the language of a request and none has been specified by the browser This can happen when the country of origin cannot be determined because the hostname is unavailable or when the requester is behind a firewall It is usually the case that default is set to English Example default english ISO 8859 1 US 6 526 426 B1 47 4 2 3 outbound Enabling the Output Manager The output manager i e Multilingual ToolKit is enabled by specifying TermDB s in the WP_Map file for a given top level URL All documents containing templates tags or other resources of the Multilingual ToolKit which require dynamic processing will be processed through the listed TermDBs for this URL group Syntax outbound lt TermDBN gt where lt TermDBN gt is the name of a TermDB to be applied for this top level URL NOTE The TermDB should be in the main WebPlexer directory Examples outbound master_termdb html outbound user_termdb html 4 2 4 inbound Enabling the Input Manager To use the input manager the name of the CGI script to be intercepted is specified in the WP_Map file along with the location of a template file and an output prt file for this URL group A separate inbound statement is required for each CGI script NOTE Each inbound statem
106. s Web server It also uses standard and open interfaces thus enabling the invention to work with all Web servers on supported plat forms Each module is easy to set up and does not require special modifications to the Web site The invention provides an easy migration path from early stage customers who are only interested in measuring overseas visitor traffic to more sophisticated customers who need to manage the rapid translation of changing content on large distributed multi lingual Web sites Referring to FIG 1 the invention provides three compo nents The Visitor module 101 the Developer module and the Workflow Manager module 103 Each module accesses one or more language and country databases and file systems 104 The Visitor 101 Developer 102 and Workflow Man ager 103 modules can operate in the same environment or in a standalone mode The Visitor module greatly enhances the multilingual Web site visitor s experience by providing an automated and seamless way to serve content in the correct language Web site publishers can serve all their multilingual content through a single point of entry using the Visitor module Web site visitors will immediately understand the informa tion they see when they enter a site because it will be instantly presented in their language and for their country With respect to FIG 2 the Visitor module 202 works in tandem with a customer s existing Web server 203 It automatically determines
107. slating multilingual electronic content in a computer environment comprising a module for detecting when a document data stream or non text file in a master language has been updated a module for notifying the user which corresponding documents data streams or non text files in the other languages require translation a module for adding new language content to a Web site database or file system wherein the user selects said new language from a pulldown list a module for automatically initiating the translation of a document data stream or non text file into the desired language a module for converting said document data stream or non text file requiring translation to a suitable internal format a module for staging the translation of said document data stream or non text file and a module for dynamically routing and sequencing said document data stream or non text file to the appro priate translation resources wherein said routing and sequencing is performed according to the subject mat ter of the document to be processed target language of the translation and whether draft only or high quality is required 15 An apparatus for managing tracking accounting and translating multilingual electronic content in a computer environment comprising a module for detecting when a document data stream or non text file in a master language has been updated a module for notifying the user which corresponding do
108. state are the country and language of the requester Once the country and language state have been deter mined from the initial request they remain unchanged until the browser initiates an action like manually changing the country or language Unfortunately the http protocol used for data transport on the Web is a stateless protocol This means that the protocol does not allow state to be maintained from one request to another WebPlexer uses a unique persistence mechanism for retaining session state across multiple requests This mecha nism allows country and language information to be saved throughout the lifetime of a session WebPlexer uses a simple 4 step algorithm for managing country and language when processing a request US 6 526 426 B1 23 1 Determine country 2 Determine language from country 3 Select content for country 4 Modify content for language Once the country and language for a request have been established they are available as state variables within the HTML and can be used for 1 Content selection based on country region or lan guage 2 Word and phrase replacement out of an external glos sary this glossary is referred to as a TermDB 3 Setting language and country specific custom vari ables such as country flag language name and coun try name 4 Sorting a list of items according to sort rules of the currently displayed language WebPlexer s 4 step algorithm for country a
109. t for the URL 10 15 20 25 30 35 40 45 50 55 60 65 20 http www lai com joe english_United States WPCommand language french which will map to http www lai com joe french__United States xxx html where xxx html is the current document the one that con tains the WPCommand link Note that WebPlexer will return the browser to the original document in the new language in this case French The manual language selection feature is performed com pletely by WebPlexer without the need for CGI scripts or complex interlinking of HTML documents It merely requires the addition of a link in the HTML to send the WPCommand to WebPlexer for each desired language The WPCommand hypertext link can be used like any other HTML link that is it can be placed within a table connected to a graphic or icon or built into an imagemap 3 3 6 2 Using WPCommand link The method described above works well when the number of languages is small However as the number of languages on the server increases there may not be enough space to have the links for all the languages appear on each page In this case a generic mechanism exists for handling WPCommands that will move all of the language selection links off to a separate page Once the links are moved a hypertext link that points to this special language selection page is placed on each page of your site Because of the need to return to the originating page when the
110. t gt where lt port gt is the port used to communicate with the httpd server It should be set to an unused port e g 180 when WebPlexer is in production mode see Section 3 1 1 2 Production Mode It must match the port specified in the Web server s configuration file Example ServerPort 180 4 1 3 ConsolePort Syntax ConsolePort lt port gt where lt port gt is the port used to communicate with the WebPlexer console Example ConsolePort 2800 4 1 4 AccessLog Syntax AccessLog lt filename gt where lt filename gt is the name of WebPlexer s access log file It can be relative to the WebPlexer directory or it can be a fully specified file name Example AccessLog logs WPAccessLog 4 1 5 ErrorLog Syntax ErrorLog lt filename gt where lt filename gt is the name of WebPlexer s error log file It can be relative to the WebPlexer directory or it can be a fully specified file name Example ErrorLog logs WPErrorLog 4 1 6 InformationLog Syntax InformationLog lt filename gt where lt filename gt is the name of WebPlexer s information log file It can be relative to the WebPlexer directory or it can be a fully specified file name US 6 526 426 B1 43 Example InformationLog logs WPInfoLog 4 1 7 ServerName Syntax ServerName lt name gt where lt name gt is the DNS entry name of this server Example ServerName www lai com 4 1 8 RemoteMaintenanceKey Syntax RemoteMaintenanceKey lt of
111. the console for later translation Please see Section 3 10 10 Maintaining Input Manager Database Files for more information 10 15 20 25 30 35 40 45 50 55 60 65 36 3 9 Document Manager WebPlexer s document manager manages the selection of documents to serve based on the current country and lan guage It requires that documents be placed in parallel language directories off of the Web server s htdoc root It also requires that the location of language directories be specified in the WP_ Map file The following sections provide additional information 3 9 1 Arrangement of Documents on the Server The document manager requires that translated docu ments be arranged in parallel language directories off of the Web server s htdoc root Please see Section 3 3 Language Selection for detailed information on how to arrange the document hierarchy for the document manager 3 9 2 SPAMM Sparse Matrix Manager WebPlexer s exclusive document management feature known as SPAMM Sparse Matrix Manager provides an incremental approach to building a multilingual Web site SPAMM allows the site administrator to translate only a portion of documents on the site and into only those languages that are most relevant SPAMM is a feature that makes it unnecessary to fully populate the site s language matrix completely with docu ments If the set of documents on a multilingual Web site is visua
112. tus information to automatically provide dynamic dispatch and control decisions to achieve the fastest and most cost effective turnaround time After completion of the workflow sequence the translated documents are routed back to the Console 1202 where the Web site manager 1201 is notified of their completion From there the Web site manager 1201 can directly install the translated documents back onto the active area of the Web site 1203 file system local or remote or database local or remote at the click of a button or can make them available for internal review within the organization For example when the translated documents are installed onto the active area of the Web site 1203 they are referenced by the appropriate language HTML commands 1210 1211 1212 1213 1214 1215 inserted into the Web site pages and the translated content is removed from the translated documents and stored back in the database New languages are easily added to the Web site The Web site manager simply needs to select the new language from a pulldown list along with the desired documents on the Manager s Console and the necessary steps will be auto matically invoked to initiate the translation The invention provides the Web site manager with an effortless way of keeping the site up to date One skilled in the art will readily appreciate that although the invention has been described in the context of Web sites the same concept applies to other app
113. ues File 605 604 System Fig 6 U S Patent Feb 25 2003 Sheet 7 of 12 US 6 526 426 B1 701 Select 705 language initiate translation Notify web site manager of any document changes and any corresponding document that need updating intemal format Stage documents 704 to be translated Fig 7 U S Patent Feb 25 2003 Sheet 8 of 12 US 6 526 426 B1 User User 802 801 Coordinate Document Delivery Update Status 803 Complete Document 804 User Cee Translation Queues 805 Monitor Database Ane Be Documents Document 807 806 810 808 nD Accounting eed amend Manager ee Project E Schedules Language Database 811 File ope System Fig 8 Accounting Database U S Patent Feb 25 2003 Sheet 9 of 12 US 6 526 426 B1 901 902 903 ne me Joe Translation Resource Generator Fig 9 U S Patent Feb 25 2003 1001 Convert work Route packet to 1002 appropriate translation resource Fig 10 Sheet 10 of 12 US 6 526 426 B1 1003 Receive packet from translation resource 1004 Convert packet to work packet format 1005 1006 Notify console module that packet is available U S Patent Feb 25 2003 packet 1101 Convert to Translation Resource Format 1102 Route Packet packet US 6 526 426 B1 packet Receive
114. ueue directory NOTE This directory is relative to the DocumentRoot see below Example Enqueue enq 4 1 15 Dequeue Syntax Dequeue lt directory gt Specifies the location of the console s dequeue directory NOTE This directory is relative to the DocumentRoot see below 10 15 20 25 30 35 40 45 50 55 60 65 44 Example Dequeue deq 4 1 16 Plugins PlugIns use the WebPlexer API Information on PlugIns is not available in this release However the WP_ Config file should contain the following two lines PlugIns MLFWI Early 5 Plugins MLFWO Late 5 4 1 17 DocumentRoot Syntax DocumentRoot lt path gt where lt path gt is the path to the Web server s document root Example DocumentRoot usr local etc httpd htdocs 4 1 18 cgiRoot Syntax cgiRoot lt path gt where lt path gt is the path to the Web server s cgi root relative to the document root NOTE lt path gt should not contain a trailing slash Example cgiRoot cgi bin 4 1 19 MCSSIRoot Syntax MCSSIRoot lt path gt where lt path gt is the path to the head of MCSSI directory relative to the document root Example MCSSIRoot webplexer MCSSI 4 2 WP_ Map The WP_ Map file contains a list of top level URLs that are subject to language selection URLs are organized in URL groups and as many groups as necessary can be specified Each group contains the following information 1 The top level URL of the group 2 The
115. view and validation 19 The method of claim 18 further comprising the step of adjusting the Project Schedule when there are changes in the availability of translation resources or when manual changes are made to the project by a user 20 The method of claim 17 further comprising the steps of providing management status and reporting as the trans lation process progresses to the user automatically notifying the user of the completion of translation updating customer and translation resource accounting at said translation completion and coordinating the delivery of the translated documents data streams or non text files and their constituent or dependent elements back to the user for installation into a Web site database or file system or for optional review 21 The method of claim 17 further comprising the steps of tracking the versions of a translated document data stream or non text file wherein said tracking step allows the easy integration with a third party authoring or document management system and controlling access to a document data stream or non text file and its constituent or dependent elements being translated resources are deployed across intranets as well as the Inter net 22 A program storage medium readable by a computer tangibly embodying a program of instructions executable by US 6 526 426 B1 57 the computer to perform method steps for managing tracking accounting
116. will be converted by the Console to an internal format one which is more suitable for information transport over the Workflow Pipeline 703 The Manager s Console automatically controls the sequencing and selection of Translation Resources during workflow processing according to subject matter of the document to be processed target language of the translation quality level whether draft only or high quality is required and other variables The Web site manager can also indi vidually specify the use of a specific set of Translation Resources The Manager s Console provides management status and reporting as the translation process ensues 707 It then automatically notifies the Web site manager of the document translation completion and coordinates the delivery of the translated documents back to the Web site for installation and optional review 708 The Web site manager can directly install the translated documents back onto the active area of the Web site at the click of a button or can make them available for internal review within the organization Status information is presented through a highly usable interface that facilitates interaction and improves the pro ductivity of the Web site manager The Console interface is designed to allow translation and update of the multilingual Web site to be performed cost effectively and with minimal effort by a non specialist New languages are easily added to the site as well The Web site ma
117. y be done once off line testing was completed and the site was ready to go into production To configure production mode 1 Set InternetPort to 80 All http requests will be pro cessed by WebPlexer Note that this will typically mean that WebPlexer must run as a privileged process 2 Set ServerPort to an unused port This port will be dedicated to WebPlexer lt gt Web server communica tion 3 Reconfigure your Web server so it is connected to ServerPort This is typically done by editing your server s httpd conf file but the configuration method is determined by your specific server so please check the documentation that comes with your Web server Normal requests of the form http www mysite com will then go to WebPlexer for initial processing You can still access the Web server directly with a URL of the form http www mysite com ssss where ssss is the ServerPort assigned above 3 1 2 Setting InternetPort InternetPort is set by editing the line InternetPort iii in the WP_ Config file This setting can also be overridden by a command line flag Please see Section 3 11 Runtime Options for more information 3 1 3 Setting ServerPort ServerPort is set by editing the line ServerPort ssss in the WP_ Config file This setting can also be overridden by a command line flag Please see Section 3 11 Runtime Options for more information 3 1 4 Setting ConsolePort ConsolePort is set by editing th
118. ystem The invention utilizes an intuitive user interface for man aging document translation for multilingual Internet Web sites documents data streams and non text files enabling the user to incrementally update the language content of a Web site or document and enhancing the maintainability and storage of multilingual electronic content A preferred embodiment of the invention automatically detects when a document data stream or non text file in the master language has been updated and notifies the user which corresponding documents data streams or non text files in the other languages require translation The documents data streams or non text files requiring trans lation are staged and dynamically routed and sequenced to individual translation resources where the actual translation is performed Management status reporting scheduling and account ing information is sent to the user as the translation process ensues The user is notified of the completion of translation and the invention coordinates the delivery of the translated documents data streams or non text files back to the user s site for installation and optional review The invention makes a variety of translation resources instantly available to the user These translation resources include both automated translation tools as well as human translators The translation resources are connected to the invention using a flexible architecture that can be deployed on i

Download Pdf Manuals

image

Related Search

Related Contents

Manual de usuario - Instituto Politécnico Nacional  manual de instruções do limpador por ultra-som modelo ts  2 Ausgangsbasis für ein projektbegleitendes Qualitätsmanagement  Scheda tecnica - Chiudi e vai sul sito ien  Jenn-Air PROSTYLE JGD8348CDP User's Manual  Build Your Business with High-Quality, On  Descargar archivo - Sun Star San Luis Potosi  Manual de Instruções  DP-90 Digital Piano Bedienungsanleitung  Unicorn60x0 IP Analog Gateway – trixbox Configuration  

Copyright © All rights reserved.
Failed to retrieve file