About Translatomatic
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:
- Properties
- RESW (Windows resources file)
- Property lists (OSX plist)
- HTML
- XML
- Markdown
- XCode strings
- YAML
- Text files
The following translation APIs can be used with Translatomatic:
Installation
Install the translatomatic
gem with the following command:
$ gem install translatomatic
Usage
This gem provides an executable called translatomatic
. The 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
Setup
Check for available translation services and options with the services
command:
$ 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.
Translating files
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_de.properties
and strings_fr.properties
with translated properties.
Displaying strings from a resource bundle
To read and display the store.description
and 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
Configuration
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
With 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
Database configuration
By default, 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
License
The gem is available as open source under the terms of the MIT License.