rstgroup/active_i18n

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# ActiveI18n

ActiveI18n is an translation panel designed to work inside an activeadmin.

[![Gem Version](https://badge.fury.io/rb/active_i18n.svg)](http://badge.fury.io/rb/active_i18n) [![Code Climate](https://codeclimate.com/github/rstgroup/active_i18n/badges/gpa.svg)](https://codeclimate.com/github/rstgroup/active_i18n) [![Build Status](https://travis-ci.org/rstgroup/active_i18n.svg?branch=master)](https://travis-ci.org/rstgroup/active_i18n) [![RST](http://rst-it.com/files/rstwithpassion.png)](http://rst-it.com) [![RST](http://rst-it.com/files/howwedoapps.png)](http://howwedoapps.com)

how it looks:

<a href="./screen.png"><img src="./screen.png"></a>

### ActiveAdmin and Rails version

This library was tested only on rails 3.2.x. with activeadmin 0.6.x. If you would like to use it with 4.x rails version - just let me know I will port it.

### Prerequisites

1. [activeadmin](http://activeadmin.info/) gem
2. [active_skin](https://github.com/rstgroup/active_skin) gem (optional for better looking)

### Installation

##### 0. make sure you have activeadmin installed

##### 1. add gems to your gemfile:
    
```ruby 
# gemfile
gem "activeadmin", "~> 0.6.3"
gem "active_skin" #for better looking
gem "active_i18n"
gem "haml" # because aa views are in haml
gem "redis" # when you are using Redis as a translations store
```

and then run: `bundle install`

##### 2. add rails initializer

create file active_i18n.rb in config/initializers

```ruby
# config/initializers/active_i18n.rb
ActiveI18n.config(
  store: I18n::Backend::KeyValue.new(Redis.new),
  except: ["testtranslationkey", "date", "datetime"]
)
```

**store**:  sets translation store (in this example redis database - required) 
**except**: removes some of the keys from the sidebar menu (optional)

If you are using redis you also will need to run the redis server `redis-server` in console

##### 3. define languages to translate

now having everything set up you could narrow the list of available languages and select base locale (if you don't - your users will see in selectboxes list of all available locales). You will do this in application.rb

```ruby
config.i18n.default_locale = :en
config.i18n.available_locales = [:en, :pl, :de] #placing :en again allows users to change default texts on your website
```

##### 4. add translation to the active admin menu

in your app/admin folder create new file called translations.rb (or whatever) 

```ruby
ActiveAdmin.register_translation "Translations", 
  :parent => "CMS",
  :priority => 2, 
  :label => "Translations"
```
hash is the same as in menu function in ActiveAdmin.

##### 5. add css and js

inside active_admin.js add active_i18n: 

```
...
//= require active_admin/base
...

//= require active_i18n

```

and inside active_admin.css.scss also add active_i18n: 
```scss
...
@import "active_admin/mixins";
@import "active_admin/base";
@import "active_skin";
...

@import "active_i18n";

```

##### and you are ready to go

## Contributing

1. Fork it ( http://github.com/rstgroup/active_i18n/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request