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

Lists

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.