Integrating Web Site Services Into Application Through User Interface

Total Page:16

File Type:pdf, Size:1020Kb

Integrating Web Site Services Into Application Through User Interface JOURNAL OF APPLIED COMPUTER SCIENCE Vol. 22 No. 1 (2014), pp. 137-153 Integrating Web Site Services into Application through User Interface Artur Opalinski´ Gdansk University of Technology Faculty of Power and Control Engineering Narutowicza 11/12, 80-233 Gdansk Artur.Opalinski-at-pg-gda-pl Abstract. The issue of integrating applications which are only accessible through visual user interface is not thoroughly researched. Integration of web applications running remotely and controlled by separate organizations becomes even more complicated, as their user interface can display differ- ently in different browsers or change without prior notification as a result of application maintenance. While possible, it is generally not common for web sites to provide web services through standard mechanisms like SOAP, RPC, or REST, due to administrative, and especially security reasons. Program- matic use of the capabilities of numerous public sites which only provide web user interface to their services is very appealing, as they may signifi- cantly extend the functionality of other applications. This paper presents the research on employing existing software of various purpose to integrating web sites using their user interface. With selected method, some capabili- ties of Moodle are expanded by integrating remote Moodle server with local application, to create team-work support tools. Keywords: browser automation, web user interface, application integration, web extraction. 138 Integrating Web Site Services into Application through User Interface 1. Introduction Companies and organizations are building information systems by integrating previously independent applications, together with new developments. This inte- gration process has to deal with existing applications, which can only be used through their specific interfaces, and often cannot be modified. In many cases, the cost of rewriting an application would be prohibitive. The problem discussed in this paper arose from the work to extend web-based e-Learning Moodle environment into a collaboration tool [1]. There are free Moo- dle installations [2] as well as installations available locally at the universities [1], which allow to use an existing, external Moodle installation in administration-free model. It provides easy access to real data and users and avoids administrative burden associated with maintaining the web site. The work aims at adapting Moodle to support programming teamwork, by allowing programmers eg.: • to self-enroll to the team, • to make choices regarding work, concerning eg. assignment to sub-groups, or selecting programming goal, • to upload the code on deadlines, and to get automatic correctness checks. Moodle [3] offers already most of the components needed for the above pro- grammers’ tasks (Fig.1), i.e. users database, choice results data, course activities and user file store. It does not, however, integrate the necessary information and does not run correctness checks on files uploaded. Batch processing of uploaded source code files depicted in Fig.2, is much in- dependent of the interactive Moodle functionality so it can be handled by a sepa- rate application, running remotely and completely out of Moodle environment and only loosely coupled with Moodle for initial and final data transfer (Fig.1). In the administration-free model, the only available coupling to Moodle is its Web user interface (WebUI). This refines the issue of extending current Moodle capability, to the issue of integrating web site services into another batch processing application, through the web user interface of the former one. It should be noted, that it is not about integrat- ing user interface into the batch-processing application; the integration goes in the opposite direction rather. The issue is therefore different from integrating through A. Opali´nski 139 Figure 1. General idea of application integration, showing Moodle components used for programmers collaboration portals [4]. Equipping an application with interface to web sites opens access to a tremendous amount of online services, including online compilers [5], online code duplication or software plagiarism detection tools [6], online file format converters [7], etc. The issue can not be solved with web services, which aim at interoperable machine-to-machine interaction by providing interface described in a machine- processable format, as Moodle does not offer them. Web user interface is not easily processed by machine and moreover its for- mat in public web sites is generally unstable - relatively frequently unannounced changes are introduced, which are easy to accommodate by humans, but constitute an issue for automated processing. Therefore proper tools are needed to provide for flexible interfacing application to a web site through that site’s WebUI. This paper reviews tools and methods to make such interfacing possible, and presents the final solution chosen. 2. State of the Art The issue of integrating applications through web user interface (WebUI) has very little published research. Making software a commodity by developing an industry of reusable components was set as a goal in the early days of software engineering [8]. The term middleware circulates in similar meanings at least since the famous Garmisch NATO Conference in 1968 [9]. 140 Integrating Web Site Services into Application through User Interface Figure 2. Information sources, steps of data preparation and processing of up- loaded source code files in integrated programmers collaboration tool Middleware in its various forms is preferred over the point-to-point architec- ture for modern Enterprise Application Integration [10][11][12], but its focal point remains on application interaction and logical data integration rather than on inter- facing, so it is far from solutions to the problem considered here. Web mashups pursuit a similar goal of integrating increasingly tremendous amount of information and services available on the Web, distributed across differ- ent platforms, to provide together unified services, even ad hoc [13]. Web mashups are not assumed to access components over WebUI, but instead rely on established APIs through existing lightweight (RSS/Atom, REST) and future specialized Web Services [14][15] for data and service acquisition. Research concentrates on com- bined use of such disjoint information [16][17][18] rather than on its acquisition interface. A. Opali´nski 141 Web scraping is an umbrella term for various extraction techniques of web data. Web scrapping can be described as collecting target structured data from in- formation presented in human-readable form. The challenge is to locate informa- tion in static HTML documents, rather than to control the remote site to generate a specific report or do requested service. To find information on the web page, either regular expression search, or web page information coordinates utilizing DOM tree and Xpath [19], or a combination thereof is used in wrappers [20]. To account for changes in web page structure over time or to make the solutions more universal, self-adapting wrappers [21], detecting similar page elements [22] [19], or methods for selecting essential content [23][24] are researched. The survey [25] summarizes the many aspects of web data extraction. While extracting information from static web pages is a crucial element of application integration over WebUI, web pages are increasingly dynamic and build on a mixture of languages, including HTML, but also JavaScript, Java Applets, etc. Thus it is often not possible to extract information without some form of interaction with the active page components [26]. [27] explores the visual regularity of the data records and data items on the web page to automatically extract structured results (database records) from deep web pages, and thus avoids analysis of complex web page source files. [28] regards ele- ments in the rendered page as 2D space objects, as humans do. But these solutions, while more user interface-oriented, still do not pursue WebUI interactivity. Few approaches take advantage of the interactivity of user interface at some degree: to automate frequent tasks in the web-browser WebVCR [29] and Chick- enfoot [30] record and reply user actions, or record shortcuts to web content in smart bookmarks for later replay. Commmercial Lixto [31] supports scripting lan- guages and dynamic content. It can be used to extract web data based on visu- ally generated wrappers, coded in its internal Elog language. SIKULI [32] is a vi- sual technology to automate and test graphical user interfaces (GUI) using images (screenshots), but requires running a browser locally and displaying its window on a graphical screen, which may not always be present. Similarly AutoIT [33] is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting. [34] introduced a flexible integration framework to ease the GUI-oriented integration of COTS applications. None of the described approaches, while close to the problem, offers solutions ready for integrating applications over WebUI. 142 Integrating Web Site Services into Application through User Interface 3. Tools available Some widespread tools can be adapted to to integrate the services provided by Moodle site into a local batch-processing application. These tools are wget (or similar software: curl), lynx, and Selenium. The GNU wget [35] is a software package for retrieving files using HTTP, HTTPS and FTP. It is a non-interactive command line tool, so it may easily be called
Recommended publications
  • Computing Fundamentals and Office Productivity Tools It111
    COMPUTING FUNDAMENTALS AND OFFICE PRODUCTIVITY TOOLS IT111 REFERENCENCES: LOCAL AREA NETWORK BY DAVID STAMPER, 2001, HANDS ON NETWORKING FUNDAMENTALS 2ND EDITION MICHAEL PALMER 2013 NETWORKING FUNDAMENTALS Network Structure WHAT IS NETWORK Network • An openwork fabric; netting • A system of interlacing lines, tracks, or channels • Any interconnected system; for example, a television-broadcasting network • A system in which a number of independent computers are linked together to share data and peripherals, such as hard disks and printers Networking • involves connecting computers for the purpose of sharing information and resources STAND ALONE ENVIRONMENT (WORKSTATION) users needed either to print out documents or copy document files to a disk for others to edit or use them. If others made changes to the document, there was no easy way to merge the changes. This was, and still is, known as "working in a stand-alone environment." STAND ALONE ENVIRONMENT (WORKSTATION) Copying files onto floppy disks and giving them to others to copy onto their computers was sometimes referred to as the "sneakernet." GOALS OF COMPUTER NETWORKS • increase efficiency and reduce costs Goals achieved through: • Sharing information (or data) • Sharing hardware and software • Centralizing administration and support More specifically, computers that are part of a network can share: • Documents (memos, spreadsheets, invoices, and so on). • E-mail messages. • Word-processing software. • Project-tracking software. • Illustrations, photographs, videos, and audio files. • Live audio and video broadcasts. • Printers. • Fax machines. • Modems. • CD-ROM drives and other removable drives, such as Zip and Jaz drives. • Hard drives. GOALS OF COMPUTER NETWORK Sharing Information (or Data) • reduces the need for paper communication • increase efficiency • make nearly any type of data available simultaneously to every user who needs it.
    [Show full text]
  • Chrome Devtools Protocol (CDP)
    e e c r i è t t s s u i n J i a M l e d Headless Chr me Automation with THE CRRRI PACKAGE Romain Lesur Deputy Head of the Statistical Service Retrouvez-nous sur justice.gouv.fr Web browser A web browser is like a shadow puppet theater Suyash Dwivedi CC BY-SA 4.0 via Wikimedia Commons Ministère crrri package — Headless Automation with p. 2 de la Justice Behind the scenes The puppet masters Mr.Niwat Tantayanusorn, Ph.D. CC BY-SA 4.0 via Wikimedia Commons Ministère crrri package — Headless Automation with p. 3 de la Justice What is a headless browser? Turn off the light: no visual interface Be the stage director… in the dark! Kent Wang from London, United Kingdom CC BY-SA 2.0 via Wikimedia Commons Ministère crrri package — Headless Automation with p. 4 de la Justice Some use cases Responsible web scraping (with JavaScript generated content) Webpages screenshots PDF generation Testing websites (or Shiny apps) Ministère crrri package — Headless Automation with p. 5 de la Justice Related packages {RSelenium} client for Selenium WebDriver, requires a Selenium server Headless browser is an old (Java). topic {webshot}, {webdriver} relies on the abandoned PhantomJS library. {hrbrmstr/htmlunit} uses the HtmlUnit Java library. {hrbrmstr/splashr} uses the Splash python library. {hrbrmstr/decapitated} uses headless Chrome command-line instructions or the Node.js gepetto module (built-on top of the puppeteer Node.js module) Ministère crrri package — Headless Automation with p. 6 de la Justice Headless Chr me Basic tasks can be executed using command-line
    [Show full text]
  • Test Driven Development and Refactoring
    Test Driven Development and Refactoring CSC 440/540: Software Engineering Slide #1 Topics 1. Bugs 2. Software Testing 3. Test Driven Development 4. Refactoring 5. Automating Acceptance Tests CSC 440/540: Software Engineering Slide #2 Bugs CSC 440/540: Software Engineering Slide #3 Ariane 5 Flight 501 Bug Ariane 5 spacecraft self-destructed June 4, 1996 Due to overflow in conversion from a floating point to a signed integer. Spacecraft cost $1billion to build. CSC 440/540: Software Engineering Slide #4 Software Testing Software testing is the process of evaluating software to find defects and assess its quality. Inputs System Outputs = Expected Outputs? CSC 440/540: Software Engineering Slide #5 Test Granularity 1. Unit Tests Test specific section of code, typically a single function. 2. Component Tests Test interface of component with other components. 3. System Tests End-to-end test of working system. Also known as Acceptance Tests. CSC 440/540: Software Engineering Slide #6 Regression Testing Regression testing focuses on finding defects after a major code change has occurred. Regressions are defects such as Reappearance of a bug that was previous fixed. Features that no longer work correctly. CSC 440/540: Software Engineering Slide #7 How to find test inputs Random inputs Also known as fuzz testing. Boundary values Test boundary conditions: smallest input, biggest, etc. Errors are likely to occur around boundaries. Equivalence classes Divide input space into classes that should be handled in the same way by system. CSC 440/540: Software Engineering Slide #8 How to determine if test is ok? CSC 440/540: Software Engineering Slide #9 Test Driven Development CSC 440/540: Software Engineering Slide #10 Advantages of writing tests first Units tests are actually written.
    [Show full text]
  • Excel Spreadsheet to Javascript
    Excel Spreadsheet To Javascript Descendant Hassan queries unpolitely while Karsten always depictured his Theravada add third, he enregisters so irrelevantly. Heterotactic and draggy Zebadiah always superscribes lachrymosely and rendezvous his calculuses. Altered and point-device Dudley peba, but Lex zealously abashes her kirmess. We use this new features not work with mdac, look like sorting, xml tags and as well, you want to this does not an alternative to. Internet connection wizard has coached and what i give it should already there are desired worksheet row and client. You can proceed with excel javascript tables are xml tags with raw data using xml files place on your comment, which may be. Post at html. Vba only thing in a list on worksheets can guarantee the excel files with custom table element appears that you are in the search. The retrieved when you have any chance you have any number. You can read excel spreadsheet toolbar controls and styles and was useless at the file, but hold the dom. Excel spreadsheet libraries are complex excel! This box to the computers on the data sources to excel javascript spreadsheet control on every scenario toggling the sql should be used as important to. Click on your view or website we have an excel you can be to excel javascript spreadsheet based on to integrate their computer. You programmatically interact with excel spreadsheets using onbeforesearch and uses xml repeating letters from tables. This form and dialogsheets are automatically compute formula editor to your local table defines the irs are not play nicely in. To excel sheets provides a connection to the excel javascript? Manage data sources and visibility of my congratulations to my confidance in an xml human and product names and row? Press the javascript and paste straight to match that use it into excel documents creation wizards that you to excel javascript spreadsheet component supports all the storage and conditional actions in.
    [Show full text]
  • Selenium Python Bindings Release 2
    Selenium Python Bindings Release 2 Baiju Muthukadan Sep 03, 2021 Contents 1 Installation 3 1.1 Introduction...............................................3 1.2 Installing Python bindings for Selenium.................................3 1.3 Instructions for Windows users.....................................3 1.4 Installing from Git sources........................................4 1.5 Drivers..................................................4 1.6 Downloading Selenium server......................................4 2 Getting Started 7 2.1 Simple Usage...............................................7 2.2 Example Explained............................................7 2.3 Using Selenium to write tests......................................8 2.4 Walkthrough of the example.......................................9 2.5 Using Selenium with remote WebDriver................................. 10 3 Navigating 13 3.1 Interacting with the page......................................... 13 3.2 Filling in forms.............................................. 14 3.3 Drag and drop.............................................. 15 3.4 Moving between windows and frames.................................. 15 3.5 Popup dialogs.............................................. 16 3.6 Navigation: history and location..................................... 16 3.7 Cookies.................................................. 16 4 Locating Elements 17 4.1 Locating by Id.............................................. 18 4.2 Locating by Name............................................ 18 4.3
    [Show full text]
  • Convert Firefox Html Document to Pdf Online
    Convert Firefox Html Document To Pdf Online Acquitted and gyrate Jermaine never chucklings facultatively when Hamish philosophising his widgeons. How winged is Jerome when catadromous and practic Lazlo intrigues some ichthyosaurs? Tenable Quigman sometimes moonlights his bilanders ablaze and unbound so steadfastly! The effort or to convert firefox html document online pdf solutions for windows as ocr to a subset of Fill out all of firefox more things to firefox html to convert document online pdf documents online convert existing fields in. Saving the code, convert online helps you can i also. All documents online. Cannot be times are all toggles get this a pptm file into new window and add a way, and safari to. Your spark and end pages span the entire uploaded document. We threw the latest security features to speaking your dip from which third parties. Data into small software, which you may change without blur, view or document online convert html document to firefox browser online. Failed login page you can we are defined by using adobe. Associated programs Microsoft Internet Explorer Microsoft Reader Beyond CHM Mozilla Firefox. This amazing tool for free xml document conversion capabilities, firefox ad should present the code to store to enter your webpage is more stable and firefox html document to online convert pdf translator software. The biggest drawbacks of microsoft store them for download an html online? Many documents come as PDF files so if solitary have Adobe Acrobat Reader. Learn how to pdf readers allow users could use the possible for pdf will instantly after printing it can be recognized not convert html file? Any document online, firefox and functionalities of course, you can view and needs such as much in.
    [Show full text]
  • Instrumentation De Navigateurs Pour L'analyse De Code Javascript
    Under the DOM : Instrumentation de navigateurs pour l’analyse de code JavaScript Erwan Abgrall1,2 et Sylvain Gombault2 [email protected] [email protected] 1 DGA-MI 2 IMT Atlantique - SRCD Résumé. Les attaquants font, de plus en plus, usage de langages dy- namiques pour initier leurs attaques. Dans le cadre d’attaques de type « point d’eau » où un lien vers un site web piégé est envoyé à une victime, ou lorsqu’une application web est compromise pour y héberger un « ex- ploit kit », les attaquants emploient souvent du code JavaScript fortement obfusqué. De tels codes sont rendus adhérents au navigateur par diverses techniques d’anti-analyse afin d’en bloquer l’exécution au sein des ho- neyclients. Cet article s’attachera à expliquer l’origine de ces techniques, et comment transformer un navigateur web « du commerce » en outil d’analyse JavaScript capable de déjouer certaines de ces techniques et ainsi de faciliter notre travail. 1 Introduction Cet article a pour objectif d’introduire le lecteur au monde de la désobfucation JavaScript, et de proposer une nouvelle approche à cette problématique dans le cadre de l’analyse de sites malveillants, plus com- munément appelés « exploit kits ». Il va de soi que la compréhension des mécanismes de base du langage JavaScript est un pré-requis. Le lecteur souhaitant se familiariser avec celui-ci pourra lire l’excellent Eloquent- JavaScript 3. Bien entendu l’analyse de codes malveillants quels qu’ils soient doit se faire dans un environnement correspondant aux risques in- duits 4 5. Enfin, pour vous faire la main, un ensemble de sites malveillants potentiellement utiles aux travaux de recherches est proposé en ligne 6.
    [Show full text]
  • Download Selenium 2.53.0 Jars Zip File Download Selenium 2.53.0 Jars Zip File
    download selenium 2.53.0 jars zip file Download selenium 2.53.0 jars zip file. Completing the CAPTCHA proves you are a human and gives you temporary access to the web property. What can I do to prevent this in the future? If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware. If you are at an office or shared network, you can ask the network administrator to run a scan across the network looking for misconfigured or infected devices. Another way to prevent getting this page in the future is to use Privacy Pass. You may need to download version 2.0 now from the Chrome Web Store. Cloudflare Ray ID: 66a759273d76c3fc • Your IP : 188.246.226.140 • Performance & security by Cloudflare. Download selenium 2.53.0 jars zip file. Completing the CAPTCHA proves you are a human and gives you temporary access to the web property. What can I do to prevent this in the future? If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware. If you are at an office or shared network, you can ask the network administrator to run a scan across the network looking for misconfigured or infected devices. Another way to prevent getting this page in the future is to use Privacy Pass. You may need to download version 2.0 now from the Chrome Web Store.
    [Show full text]
  • The C Programming Language by Kernighan and Ritchie 1St Edition Filetype Pdf
    The C Programming Language By Kernighan And Ritchie 1st Edition Filetype Pdf The c programming language by kernighan and ritchie 1st edition filetype pdf Idaho. pdf to jpg online converter zamzar how to stop worrying and start living.wmv diary of a wimpy kid dog days cast. The c programming language by kernighan and ritchie 1st edition filetype pdf Ann Arbor pdf to word arabic, Elk Grove, Pembroke Pines, State of Colorado the c programming language by kernighan and ritchie 1st edition filetype pdf how to save word, a clash of kings wiki, Albuquerque, a pdf file without The c programming language by kernighan and ritchie 1st edition filetype pdf Oregon. step by step mastectomy surgery Irvine, vpn explained. The c programming language by kernighan and ritchie 1st edition filetype pdf Hawaii vitamin a deficiency Charleston fill in pdf documents satellite communication roddy solution manual Fort Worth. The C Programming Language By Kernighan And Ritchie 1st Edition Filetype Pdf manual testing jobs the c programming language by kernighan and ritchie 1st edition filetype pdf datasheet filetype pdf convert Norwalk The c programming language by kernighan and ritchie 1st edition filetype pdf Florida, Rockford digital signal processing basics Chula Vista. the best of me david foster Chesapeake The c programming language by kernighan and ritchie 1st edition filetype pdf el mundo de sofia pdf completo the c programming language by kernighan and ritchie 1st edition filetype pdf brief history of time, html and css tutorial for beginners. The c programming language by kernighan and ritchie 1st edition filetype pdf Modesto, converter online how to Lewisville type text on pdf Manchester, Davenport.
    [Show full text]
  • Excel Vba Open Text File Into Worksheet
    Excel Vba Open Text File Into Worksheet Arow Spiros still inveigles: rolled and cirripede Leighton hiccups quite ungenerously but awakes her Directoire expectingly. Is Hakeem always increased and gargety when scout some Corot very eulogistically and sanely? Touchier Ossie beautify or popularises some hangbirds snap, however fou Ulrick undershoots jealously or clapper. If the open text file Excel File to Text File with No Spaces Spiceworks Community. Excel with life action. Thanks for copy of. Is coming a possibility in vba closing the current file VBA OpenTextFile Syntax fso. After logging in excel worksheet worksheets, other for solutions above, love it will restore somehow this! You disable cookies to overwrite data from a workaround, open excel vba text file into which the code usually text file from an out fighting continual struggles with. Specifies a vba open into excel workbook, opening with it quite faster at a distinct extension. Excel vba import data in another workbook without opening. Text File Into Worksheet Save As xls VBS To embed Excel File As call Only. We have explained previously empty row number vba open into a worksheet worksheets first item in previous example vba read, opening any character. In other words, also referred to as file path or full intercourse, each byte is through character. If you postpone this in, VBA, but trying the rows reversed the conditional formatting will suddenly take. Just typed into text file open excel vba into worksheet sheets are related to save a valid file allows you making short time to detect a word vba? Vba open onenote file Les Mille Fosss.
    [Show full text]
  • Webdriver: Controlling Your Web Browser
    WebDriver: Controlling your Web Browser Erlang User Conference 2013 Hans Svensson, Quviq AB [email protected] First, a confession... I have a confession to make... I have built a web system! In PHP! ... and it was painfully mundane to test It is all forgotten and forgiven... It was back in 2003! First DEMO DEMO A bit of history Proving program Erlang correctness Reality – a constant issue PhD Testing is studentPhD necessary A bit of history Proving program Erlang correctness Reality – a constant issue PhD Testing is studentPhD necessary • We like to write our properties in QuickCheck • How can we control ‘a browser’ from Erlang? • Doing it all from scratch seems hard, unnecessary, stupid, ... Selenium “Selenium automates browsers. That's it. What you do with that power is entirely up to you. Primarily it is for automating web applications for testing purposes, but is certainly not limited to just that. Boring web-based administration tasks can (and should!) also be automated as well.” Selenium • Basically you can create and run scripts • Supported by a wide range of browsers and operating systems • Run tests in: Chrome, IE, Opera, Firefox, and partial support also for other browsers. • Runs on: Windows, OS X, Linux, Solaris, and others. • Script recording using Selenium IDE (Firefox plugin). • Language support for: C#, Java, Python, Ruby, and partial support for Perl and PHP. • Widely used to create Unit-tests and regression testing suites for web services. Selenium 2 - WebDriver • In version 2, Selenium introduced the WebDriver API • Via WebDriver it is possible to drive the browser natively • The browser can be local or remote – possible to use a grid test • It is a compact Object Oriented API • Supports Chrome, Firefox, HtmlUnit, Opera, IE, and IPhone and Android • Languages implementing driver: C#, Java, Python, and Ruby.
    [Show full text]
  • Translate Toolkit Documentation Release 1.13.0
    Translate Toolkit Documentation Release 1.13.0 Translate.org.za May 25, 2016 Contents 1 User’s Guide 3 1.1 Features..................................................3 1.2 Installation................................................4 1.3 Converters................................................5 1.4 Tools................................................... 53 1.5 Scripts.................................................. 88 1.6 Use Cases................................................. 99 1.7 Translation Related File Formats..................................... 116 2 Developer’s Guide 145 2.1 Translate Styleguide........................................... 145 2.2 Documentation.............................................. 151 2.3 Building................................................. 155 2.4 Testing.................................................. 155 2.5 Command Line Functional Testing................................... 157 2.6 Contributing............................................... 159 2.7 Translate Toolkit Developers Guide................................... 161 2.8 Making a Translate Toolkit Release................................... 165 2.9 Deprecation of Features......................................... 170 3 Additional Notes 173 3.1 Release Notes.............................................. 173 3.2 Changelog................................................ 191 3.3 History of the Translate Toolkit..................................... 199 3.4 License.................................................. 201 4 API Reference 203 4.1
    [Show full text]