Translatomatic (TM) is a free and open source text translation utility written in ruby. It combines the translation quality of a chinese gadget’s instruction manual with the convenience and ease of use of a command line tool such as git.
The main use of Translatomatic is to translate a file to one or more languages. The following file formats are currently supported:
- RESW (Windows resources file)
- Property lists (OSX plist)
- XCode strings
- Text files
The following translation APIs can be used with Translatomatic:
translatomatic gem with the following command:
$ gem install translatomatic
This gem provides an executable called
translatomatic command has a number of functions, not all of which are documented here. For help on available commands and options, execute:
$ translatomatic help
And for help on a command, execute:
$ translatomatic translate help $ translatomatic translate help file
Check for available translation services and options with the
$ translatomatic services
Options can be specified on the command line, in environment variables, or in translatomatic’s configuration file. The configuration file can be modified using translatomatic’s internal
config command. To list all available configuration settings, use:
$ translatomatic config list $ translatomatic config describe
See also the Configuration section below for more information.
When translating files,
translatomatic translates text one sentence or phrase at a time. If a file is re-translated, only sentences that have changed since the last translation are sent to the translator, and the rest are sourced from the local database.
To translate a Java properties file to German and French using the Google translator:
$ translatomatic translate file strings.properties de,fr --translator Google
This would create (or overwrite)
strings_fr.properties with translated properties.
Displaying strings from a resource bundle
To read and display the
store.name properties from local resource files in English, German, and French:
$ translatomatic display --locales=en,de,fr \ resources/strings.properties store.description store.name
Extracting strings from source files
To extract strings from some source files, use the
strings command, e.g.
$ translatomatic strings file.rb
Translatomatic configuration examples
To set one or more translation services to use:
$ translatomatic config set translator Microsoft,Yandex
Secondary translators will only be used if a translation error occurs when using the first choice.
To set a default list of target locales:
$ translatomatic config set target_locales en,de,es,fr,it
target_locales set, files can be translated without specifying target locales in the
translate file command.
$ translatomatic translate file resources/strings.properties
To display the current configuration, execute
$ translatomatic config list
translatomatic uses an sqlite3 database in
$HOME/.translatomatic/translatomatic.sqlite3 to store translated strings.
To store translations in a database, you should have an appropriate database adapter installed, such as the
sqlite3 gem. Translatomatic does not install database adapters automatically.
The database configuration can be changed by creating a
database.yml file under
$HOME/.translatomatic/database.yml for the
production environment, e.g.
production: adapter: mysql2 host: db.example.com database: translatomatic pool: 5 encoding: utf8 username: username password: password
The gem is available as open source under the terms of the MIT License.