No commit activity in last 3 years
No release in over 3 years
Synchronizes the different locales represeinted in yaml for I18n
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 2.0

Runtime

 Project Readme
TranslationsSync
================

This gem is intended to help the developer to synchronize the different
locales for the project that uses yaml based locales, in particular, I18n.


Requirements
------------

    gem 'ya2yaml'
    gem 'active_support'

Installation
------------

1. Add to your Gemfile

    gem 'translations_sync'

2. If you are using the gem without bundle just install it

    gem install translations_sync


Description
-----------

This gem allows different organizations of translation files. They can be
grouped in the directories that correspond to locales, or the locale
may be defined in the suffix of a file name separated by a dot or underscore.
Let us call the file name without locale suffix and extension as
**base name**

When a file name is to be given as parameter in the description below
it should not include nor locale prefix, nor locale suffix and extension
whichever organization is used.

The main goal of the gem to assist in managing the translations for the
project. This can be done by using the `rake` tasks described below.

The following parameters can be given:

* `LIST=comma,separated,list` specifies the locales that should
participate in synchronization.
For example, `LIST=en,de,fr,zh-CN`
If omitted, I18n.available_locales will be used.
The order of the locales is important as the existing for the first
locale in the list will be provided for a missing translation(s).
The locale in LIST must not be present in I18n.available_locales.
This allows easily to add new locales to the project.
* `EXCLUDE=comma,separated,list` specifies the locales that should NOT participate.
* `NAME=name`. By default missing translations are written to the
**base name** "missing".
This parameter tells to use the given name as **base name**.
If any of the corresponding files exist, the missing translations will
be added to them.
* `SOURCE=name`. Only files with the given **base name** will be considered.
* `GEMS=list`. When `SOURCE` is in effect additionally the translations from
the listed gems will be included.
* `IN=name`. It is equivalent to `NAME=name SOURCE=name`
* `KEY=path.to.key`. Points to the key to be moved or removed.
Obviously, it should not include locale.
* `TO=path.to.key`.

Rake tasks
----------

### rake translations:sync

This task verifies that all the translation keys are present in all
files specifed by the given parameters and if any is missing creates/updates
corresponding file(s).

### rake translations:singles

This task generates a single file config/locales/singles.yml that contains the
translations occurring only in one locale.

### rake translations:move KEY=key.to.move TO=where.to.move

This task moves the content of given KEY under the TO.
You can use all the parameters available for the translations:sync task
with the default value for the NAME equal to 'moved'.

### rake translations:remove KEY=key.to.remove

This task removes the key from the translations. NAME defaults to 'removed' here.


Copyright (c) 2010-2016 Dmitri Koulikoff, released under the MIT license