Projects‎ > ‎Translatinor‎ > ‎

Translatinor Full Specification

Core Functionality

I have chosen to create a translation memory (TM) editor for my project. I have completed all of the core functionality outlined by the specification to a high standard following the principles of object oriented development to ensure code maintainability. My focus at this stage in the assignment was on stability and consistency within the application. A brief description of each piece of functionality implemented is outlined below:

Functionality

Comment

Resx xml input

My translation memory editor (Translatinor) takes a resx document as input, parses it and displays the strings that will be translated and added to the ouput TM in a JTable.   Elements in the resx document   with the suffix .Text are deemed to be strings that need to be translated.

Output to TM

Translatinor saves translations made (and the source language if needed) to TMX documents. These can be an existing TMX document or using the new button in the settings window, Translatinor, can generate a new TMX document. The new TMX documents have been validated using TMXValidator.exe a free TMX validation tool.

Automated TM lookups

All word/phrase look ups in existing TMs are automated. Initially the ResourceBundle library was used but it had limited functionality and due to the nature of its HashMapping threw an out-of-memory when large datasets were processed.   Therefore, the TranslatedTMXDocumentActorclass was developed.

TranslatedTMXDocumentActor makes matches based off <seg> elements (after the language has been checked) and therefore returns more translations. Secondly, entire documents aren’t stored in a hashmap making the application more stable and scalable.

Display Resx content in a table

Words/phrases and their meta-information is displayed in a JTable when Translated ready to be edited. Please note that keys and original terms may not be edited to maintain the integrity of the output document.

Save to Output

org.w3c.dom libraries are used to navigate and transform the output TMX document and the javax.xml.transform libraries are used to write the changes to the output document.


Extensions

The focus of the extensions was to make translating resx documets using Translatinor simpler and more efficient for users. Users of this application have been identified as translators working in the field of L10n. A brief description of extra functionality is outlined below:

Functionality

Comment

Pair Highlighting

Each translation pair is highlighted depending on the source of its translation.

Sort by source

To allow quick navigation through translated pairs the user can sort based on the translation state (translation source).

Save Options

Instead of saving immediately after a word/phrase is edited it is highlighted red. After a user has translated an entire page they have an option to write the Modified terms only or all of the terms being displayed.

Quick navigation through terms

Pressing enter after modifying a word/phrase pair will cause the next pair the be translated to be selected.

Multi-threading

Translations are searched for in parallel to speed up the translation processes.

Settings Window

The settings window allows users to configure the application using a graphical user interface.     In this window users may also toggle whether terms already in the output TMX should be allowed to be modified.

Google Translation

If no translation is returned for a String Translatinor sends the string to the GoogleTranslate service to be translated. If a match is still not found then it must be translated by a user.

Command line execution

Translatinor can be executed from the command line. It takes the arguments of the resx file and target language.   Notably, the configuration is loaded from the same properties file as the GUI uses. Therefore, it can be configured by directly editing this properties file or using the GUI. The command line does not allow words/phrases to be reviewed by a user.


Testing

Translatinor has been tested and has successfully completed translations to Chinese, Germand and Arabic. After each translation theTMXValidator.exe tool has been used to verify that the TMX complies to TMX standards.

In summary, Translatinor meets all of the specifications outlined by the project task sheet. It respects the outlined standards for data, display and exchanges. As a result output files can be successfully parsed by third party applications without error. FurtherEasmore, a diverse range of extension tasks have also been completed to make the application more efficient for a human user. The application has undergone robust testing and been modified as a result on a number of occasions. All code was written with appropriate use of white spaces and comments.

Comments