Introduction
Aigu is a set of utility to process localization files to genarate JSON files to push to Accent service. Pulling from Accent to update localization files is also supported.
The following localization file formats are supported: Rails YAML, Android XML, Java Enum Core, iOS strings and stringsdict.
Merge and unmerge commands allows to merge different source files into a single JSON file to send as a single Accent project.
Push and pull can be used to interact directly with Accent.
Installation
Add these lines to your application’s Gemfile as development dependancies:
group :development do
gem 'aigu'
end
Usage
Aigu provides an executable named aigu
.
Exporting the JSON file for Accent
The export
command looks for YAML localization files and generates a JSON
file. This file will then be compatible with Accent.
$ aigu export --locale=fr --input-directory=config/locales --output-file=my-project.json
Options
Option | Description |
---|---|
locale |
The locale used to find localization files. Files that match *.<locale>.yml in the input directory will be processed. |
input-directory |
The directory used to find localization files |
output-file |
The path to the JSON file that will be written by aigu |
ignore |
The patterns aigu will use to skip ignored files (eg. routes.yml ) |
Command | File format |
---|---|
export |
Rails YAML |
andoird_export |
Android XML |
core_export |
Java Enum Core |
ios_export |
iOS strings & stringsdict |
Importing the JSON file from Accent
The import
command takes a generated JSON file from Accent and generates
the original YAML file structure.
$ aigu import --locale=fr --input-file=file-from-accent.json --output-directory=config/locales
Options
Option | Description |
---|---|
locale |
The locale used to generate localization files. Files will be generated as <file>.<locale>.yml |
input-file |
The path to the Accent-generated JSON file |
output-directory |
The directory where the localization YAML files will be generated |
Command | File format |
---|---|
import |
Rails YAML |
andoird_import |
Android XML |
core_import |
Java Enum Core |
ios_import |
iOS strings & stringsdict |
Merge
The merge
command will combine several JSON file into a single one to send into a single Accent project. It will prefix keys with
a pattern embedding the filename to allow later unmerging. It works from an input directory, mergin all json files in it.
A file can be named default.json
to avoid prefixes in the resulting json.
Options
Option | Description |
---|---|
input-directory |
The directory containing json files to merge |
output-file |
The path to the JSON file that will be written to |
Unmerge
The unmerge
will split the Accent JSON file into several json files, for further processing. It will look for the prefix pattern
of the merge command and will extract the filename or use default.json if pattern is not found.
Options
Option | Description |
---|---|
input-file |
The path to the Accent-generated JSON file |
output-directory |
The directory where the unmerged files will be written |
Sending to Accent
The push
command takes a JSON file exported by Aigu and send it to Accent
Options
Option | Description |
---|---|
input-file |
The path to the Aigu-generated JSON file |
accent-api-key |
The API key of the Accent project. (See project config in Accent) |
accent-url |
The URL to the instance of Accent to use (Prod: http://accent.mirego.com, QA: https://mirego-accent-qa.herokuapp.com ) |
Pulling from Accent
The pull
command GET the Accent generated JSON file
Options
Option | Description |
---|---|
output-file |
The path to write the Accent JSON file to |
accent-api-key |
The API key of the Accent project. (See project config in Accent) |
accent-url |
The URL to the instance of Accent to use (Prod: http://accent.mirego.com, QA: https://mirego-accent-qa.herokuapp.com ) |
Using .aigu.yml
Instead of using command-line arguments when running the aigu
command, you
can create a .aigu.yml
file at the root of your project and hard-code options
in that file.
ignore:
- routes.yml
- rails/**/*.yml
output-directory: config/locales
input-directory: config/locales
Contributing
We’re using phare
to make sure all Ruby code adheres to our coding style
guide. The best way to use phare
is as a pre-commit hook:
$ ln -s "`pwd`/bin/phare" .git/hooks/pre-commit
That way, whenever git commit
is ran, phare
will be executed and will abort
the commit if there are errors.
License
Aigu
is © 2014 Mirego and may be freely distributed under the New BSD license. See the LICENSE.md
file.
About Mirego
Mirego is a team of passionate people who believe that work is a place where you can innovate and have fun. We're a team of talented people who imagine and build beautiful Web and mobile applications. We come together to share ideas and change the world.
We also love open-source software and we try to give back to the community as much as we can.