TongueTied is a Web based application that helps with the creation of keywords with support for multi-language or multi-region resources. One of the key features of TongueTied is that it allows static resources to be exported from the application and can import translations from resources into the application. The following formats are currently supported for both export and import: Java Properties, .NET Resources (.resx), CSV, and Excel. TongueTied integrates an optional work flow around a keyword to track changes to a translation and ensure the validity of that translation. Operators are allowed to query a translation if they believe it to be incorrect.
The Okapi project’s main purpose is to architect a set of building blocks for the creation of larger open source localization and translation tools. But many Okapi components are generic enough to be of interest to the text mining, natural language processing, and text retrieval communities. Okapi’s many text filters (HTML, Properties, XML (ITS XPath-based rules), OpenXML, ODF, Regex etc.) provide a straightforward way to access the text of multiple document formats. Its document events and pipeline can be made to integrate with other frameworks such as UIMA, LingPipe, OpenPipeline, OpenNLP, GATE, and Lucene. The advantage of Okapi’s text filters is that not only is text extracted, but all non-textual formatting is preserved. It is possible to decompose a document into events, process them via the pipeline, and then rebuild the input document without loss. Structural information can be added to Okapi document events so that tables, lists, links, titles etc. are grouped together and treated as a unit. This is useful when context based on a “universal” document structure is needed. The Okapi event model supports user configurable annotations, similar to UIMA, but simpler and more restricted in scope. User can annotate spans of text or add new resources such as translation memory matches, terminology, token types, or part of speech information.
Openbakery Translation is an internationalization tool for Java. Unlike standard i18n in Java, openbakery translation uses the text in the default locale as the key. There is also a tool which checks all of the source code for translations. This tool then provides a list of key/value pairs which have to be added to a certain resource file, and another list of pairs which can be removed. The translation works by simply calling a static method called "translate". The code works out of the box, without writing any properties files. You only write properties files when you really translate the program to a second language.
OmegaT is a translation memory application intended for professional translators. It does not translate for you (software that does this is called "machine translation"). It features fuzzy matching, match propagation, simultaneous processing of multiple-file projects, simultaneous use of multiple translation memories, and external glossaries. Document file formats include plain text, HTML, and OpenOffice.org/StarOffice. It has Unicode (UTF-8) support (can be used with non-Latin alphabets). It is compatible with other translation memory applications (TMX Level 1).
The Gettext Commons project provides Java classes for internationalization through GNU gettext and Java ResourceBundles. This makes it possible to use the original text instead of custom property keys, which is less cumbersome and makes programs easier to read. It supports the easy extraction of user visible strings, marks strings as fuzzy when the original text changes to allow translators to check translations, powerful plural handling, and build process integration through Maven.
JInto is a plugin for Eclipse that lets the developer easily edit and maintain resource bundles (files that hold the localized strings for an application). It features parallel editing of all language versions (side by side), warnings when no text has been provided for a specific key, or when the text for one key is identical for different languages, and a search wizard to locate unused strings (strings that are referenced, but not actually defined in the resource bundle). It has been tested under Windows and Linux.