## 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 and Ember JavaScript. 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: ```ruby group :development do gem 'aigu' end ``` ## Usage Aigu provides an executable named `aigu`. ### Exporting the JSON file for Accent The `export` command looks for localization files and generates a JSON file. This file will then be compatible with Accent. ```bash $ aigu --locale=fr --input-directory=config/locales --output-file=my-project.json ``` #### Options | Option | Description | |-------------------|------------------------------------------------------------------------| | `locale` | The locale used to find localization files. | | `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 | |-------------------|----------------------------| | `rails-export` | Rails YAML | | `android-export` | Android XML | | `core-export` | Java Enum Core | | `ios-export` | iOS strings & stringsdict | | `ember-export` | Ember.js JavaScript | ### Importing the JSON file from Accent The `import` command takes a generated JSON file from Accent and generates localization files in the output directory. ```bash $ aigu --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 `..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 | |-------------------|----------------------------| | `rails-import` | Rails YAML | | `android-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 | ### 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 | ### 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. ```yaml 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: ```bash $ 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-2015 [Mirego](http://www.mirego.com) and may be freely distributed under the [New BSD license](http://opensource.org/licenses/BSD-3-Clause). See the [`LICENSE.md`](https://github.com/mirego/aigu/blob/master/LICENSE.md) file. ## About Mirego [Mirego](http://mirego.com) 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](http://life.mirego.com) who imagine and build beautiful Web and mobile applications. We come together to share ideas and [change the world](http://mirego.org). We also [love open-source software](http://open.mirego.com) and we try to give back to the community as much as we can.