There's a lot of open issues
A long-lived project that still receives updates
Semi-automatic maintenance of most translations in a Rails app.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme

Code Climate Test Coverage Build Status

AwesomeTranslations

Install

gem 'awesome_translations'
gem 'sqlite3', group: :development

AT uses SQLite3 for creating a database containing a farily large cache.

Then run the following:

bundle exec rake awesome_translations:install

Insert this into your "routes.rb" file:

mount AwesomeTranslations::Engine => "/awesome_translations" if Rails.env.development?

Translations under controllers and models

If you want to do translations from your models or controllers, you will need to add this to a new initializer file under "config/initializers/awesome_translations.rb"

AwesomeTranslations.load_object_extensions

If you don't like monkey patching the Object-class, you can also include it into ApplicationRecord' by inserting something like this to allow t-method-calls from inside models:

class ApplicationRecord < ActiveRecord::Base
  include AwesomeTranslations::TranslateFunctionality
end

You will also need to modify the line in your Gemfile a bit:

gem 'awesome_translations'

Helper translations

The t-method translates like from inside a view in Rails. To get around this, you can call 'helper_t' instead. Start by including that method in your helpers by adding this to ApplicationHelper:

module ApplicationHelper
  include AwesomeTranslations::ViewsHelper
end

Controller translations without action in key

Start by including this in your ApplicationController:

class ApplicationController
  include AwesomeTranslations::ControllerTranslateFunctionality

Then you can use the controller_t-method like this:

class UsersController < ApplicationController
  def create
    flash[:notice] = controller_t('.user_was_saved')
  end
end

This is an example of how it works and what the difference is:

module ApplicationHelper
  include AwesomeTranslations::ApplicationHelper

  # Sample method with translation
  def hello_world
    t('.hello_world') #=> translates with key '#{controller_name}.#{action_name}.hello_world'
    return helper_t('.hello_world') #=> translates with key 'helpers.application_helper.hello_world'
  end
end

Translating your application

Start a Rails server for your project and go to the namespace called something like "http://localhost:3000/awesome_translations". Start translating your app through the webinterface.

License

This project rocks and uses MIT-LICENSE.