Skip to content

kaspernj/awesome_translations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f8086ef · Feb 11, 2025
Jun 14, 2024
Feb 11, 2025
Apr 22, 2022
Mar 17, 2022
Apr 18, 2016
Feb 10, 2025
Feb 25, 2024
Jan 6, 2016
Oct 17, 2014
Sep 11, 2023
Feb 25, 2024
Oct 30, 2023
Feb 6, 2017
Jun 5, 2023
Jun 14, 2024
Oct 17, 2014
Jun 13, 2018
Oct 15, 2019
Feb 25, 2024
Oct 30, 2023

Repository files navigation

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.