https://github.com/dasch/transair
A translation management system
https://github.com/dasch/transair
Last synced: about 2 months ago
JSON representation
A translation management system
- Host: GitHub
- URL: https://github.com/dasch/transair
- Owner: dasch
- Created: 2015-05-08T12:39:45.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2015-05-13T13:07:47.000Z (about 11 years ago)
- Last Synced: 2025-06-20T14:42:53.521Z (12 months ago)
- Language: Ruby
- Size: 285 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Transair
A translation management system. Transair works by synchronizing a local database of translations with a remote service. Developers add the master strings to a local file and runs `transair sync`. New and updated master strings are uploaded to the service and made available for translation. Once the strings have been translated, `transair sync` will download and store the translations.
Both master and translation strings are supposed to be stored in version control, making deployment simple and reliable.
Transair supports multiple _versions_ of a string. Each version is identified by a digest of the master translation, meaning that any change to the master translation will implicitly cause a new version to be created when synchronizing. Translations are attached to a specific version of a key. This allows making changes to master strings in feature branches without impacting other branches, as you'll always get the translations specific to the local set of master strings.
###### Example usage
```
# Add master strings to `masters.yml`
$ cat masters.yml
foo.bar.hello: "Hello, World!"
foo.bar.goodbye: "Goodbye, Cruel World!"
# New and updated master strings will be uploaded
$ transair sync
Syncing key foo.bar.hello...
Key foo.bar.hello not found, uploading...
Uploaded key foo.bar.hello
Syncing key foo.bar.goodbye...
Key foo.bar.goodbye not found, uploading...
Uploaded key foo.bar.goodbye
$ transair sync
Syncing key foo.bar.hello...
Key foo.bar.hello found, storing 0 translations...
Syncing key foo.bar.goodbye...
Key foo.bar.goodbye found, storing 0 translations...
# Add translations using the API
$ transair translate --key foo.bar.hello --version 0a0a9f2a6772 --locale da --translation "Hejsa"
# Translations are automatically downloaded when syncing
$ transair sync
Syncing key foo.bar.hello...
Key foo.bar.hello found, storing 1 translations...
Syncing key foo.bar.goodbye...
Key foo.bar.goodbye found, storing 0 translations...
$ cat translations/da.yml
---
foo.bar.hello: Hejsa
```