Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alexfilatov/getatrex
Gettext Automatic Translator in Elixir
https://github.com/alexfilatov/getatrex
elixir gettext locale phoenix-framework translation
Last synced: about 2 months ago
JSON representation
Gettext Automatic Translator in Elixir
- Host: GitHub
- URL: https://github.com/alexfilatov/getatrex
- Owner: alexfilatov
- Created: 2018-03-10T13:31:39.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-04-16T21:09:08.000Z (over 1 year ago)
- Last Synced: 2024-11-01T09:35:02.047Z (2 months ago)
- Topics: elixir, gettext, locale, phoenix-framework, translation
- Language: Elixir
- Homepage:
- Size: 64.5 KB
- Stars: 6
- Watchers: 4
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- freaking_awesome_elixir - Elixir - Automatic translation tool of Gettext locales with Google Translate for Elixir/Phoenix projects. (Translations and Internationalizations)
- fucking-awesome-elixir - getatrex - Automatic translation tool of Gettext locales with Google Translate for Elixir/Phoenix projects. (Translations and Internationalizations)
- awesome-elixir - getatrex - Automatic translation tool of Gettext locales with Google Translate for Elixir/Phoenix projects. (Translations and Internationalizations)
README
# Getatrex ![circleci](https://circleci.com/gh/alexfilatov/getatrex.svg?style=shield)
Getatrex is a Gettext Automatic Translator written in Elixir, designed to facilitate the translation process of `*.po` files generated by Gettext in your Elixir/Phoenix project.
## Features
- Automatically translates Gettext `*.po` files
- Simple integration with Elixir/Phoenix projects
- Utilizes Google Cloud Translation API for translations## Demo how it works
Watch a demonstration of Getatrex in action:
[![IMAGE ALT TEXT HERE](https://img.youtube.com/vi/DF6HmotIOZY/0.jpg)](https://www.youtube.com/watch?v=DF6HmotIOZY)
## Installation
### Add Getatrex as a dependency
To install Getatrex, add it to your list of dependencies in mix.exs:
```elixir
def deps do
[{:getatrex, "~> 0.1", only: :dev, runtime: false}]
end
```This will also install [`goth`](https://github.com/peburrows/goth) package, which is required for Google automatic translations.
### Configure Google Cloud Translation API Key for Goth
To use the Google Cloud Translation API, you'll need an API key. If you don't have one, obtain it from the [Google Cloud Console](https://console.cloud.google.com/apis/credentials).
Download the JSON file with your credentials and store it somewhere safe (avoid including it in your source control).
Next, open your config/config.exs file and add the following configuration:
```
# Google credentials
config :goth, json: "path/to/goth_credentials.json" |> File.read!```
Replace `path/to/goth_credentials.json` with the actual path to your credentials file.## Usage
1. Follow instruction in the [Workflow section](https://github.com/elixir-lang/gettext#workflow) of the Gettext library
2. Generate a new locale, e.g., for Spanish, run:```
$ mix gettext.merge priv/gettext --locale es
```
3. **IMPORTANT!** Commit your changes to git with a message like "adding new Spanish locale". This ensures you have a previous version to revert to if necessary.
```
$ git commit -a -m 'adding new Spanish locale'
```4. Use Getatrex to translate the new Spanish locale:
```
$ mix getatrex es
```Getatrex will generate a `translated_default.po` file with translations.
Open this file in your IDE to review and correct any inaccurate translations.
Replace the original `default.po` file with the corrected version when you're done.## Roadmap
1. Automatically write translations to the original `default.po` file, eliminating the need for a copy-paste step.
2. Implement support for plural forms.
3. Add translation support for `errors.po` files.