Skip to content

henrik/i18n_utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

I18nUtils

I18n utilities for Ruby on Rails.

Usage

Just include I18nUtils::Helper in e.g. your ApplicationHelper to get all the things.

Or see under each section to only get that part.

t_model, t_attribute

Get this part with include I18nUtils::Model in e.g. your ApplicationHelper.

I think the Rails way to translate attributes and models is ugly and on the wrong object.

With this, your views can do t_model(User) instead of User.model_name.human. Or pass an instance: t_model(some_user)

Also t_attribute(User, :email) instead of User.human_attribute_name(:email).

Want to use them outside views? Feel free to include the module anywhere you like, or call them via the I18nUtils object, e.g. I18nUtils.t_model(User).

You could even do I18n.extend(I18nUtils::Model) to get e.g. I18n.t_model(User).

t_scope

Get this part with include I18nUtils::Scope in e.g. your ApplicationHelper.

Links or other markup in the middle of a translation is tricky. Either you put the HTML straight in the translation and risk the translator messing it up, or it becomes a mess:

= t("welcome.sign_in_now.text",
  sign_in: link_to(t("welcome.sign_in_now.sign_in"), sign_in_url))

The t_scope helper lets you use blocks for interpolated values, in your regular template:

= t_scope("welcome.sign_in_now.text") do |scope|
  - scope.sign_in do
    = link_to(scope.t(:sign_in), sign_in_url)

Installation

Add this line to your application's Gemfile:

gem 'i18n_utils'

And then execute:

$ bundle

Or install it yourself as:

$ gem install i18n_utils

About

I18n utilities for Ruby on Rails.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages