Skip to content

Rails i18n view helpers for things like crud actions, models and and attributes

License

Notifications You must be signed in to change notification settings

huerlisi/i18n_rails_helpers

Repository files navigation

I18nRailsHelpers

Build Status

Rails i18n view helpers for things like crud actions, models and and attributes.

Install

In Rails simply add this to your Gemfile:

gem 'i18n_rails_helpers'

Examples

View Helpers

t_attr

t_attr('first_name', Patient) # en: 'First name' de: 'Vorname' - when called from views of any controller
t_attr('first_name')          # en: 'First name' de: 'Vorname' - when called in patients_controller views
t_attr(:first_name)           # en: 'First name' de: 'Vorname' - can also be called with symbols

t_title

t_title(:index)   # en: "%{model} index" ,  de: "%{model} Liste"
t_title(:edit)    # en: "Edit %{model}",    de: "%{model} bearbeiten"
t_title(:update)  # en: "Edit %{model}",    de: "%{model} bearbeiten"
t_title(:show)    # en: "Show %{model}",    de: "%{model} anzeigen"
t_title(:new)     # en: "New %{model}",     de: "%{model} erfassen"
t_title(:create)  # en: "New %{model}",     de: "%{model} erfassen"
t_title(:delete)  # en: "Delete %{model}",  de: "%{model} löschen"
t_title(:destroy) # en: "Delete %{model}",  de: "%{model} löschen"

t_action

t_action(:index)    # en: "Index",     de: "Liste"
t_action(:edit)     # en: "Edit",      de: "Bearbeiten"
t_action(:update)   # en: "Edit",      de: "Bearbeiten"
t_action(:show)     # en: "Show",      de: "Anzeigen"
t_action(:new)      # en: "New",       de: "Erfassen"
t_action(:create)   # en: "New",       de: "Erfassen"
t_action(:delete)   # en: "Delete",    de: "Löschen"
t_action(:destroy)  # en: "Delete",    de: "Löschen"
t_action(:cancel)   # en: "Abbrechen", de: "Abbrechen"
t_action(:back)     # en: "Back",      de: "Zurück"
t_action(:previous) # en: "Previous",  de: "Zurück"
t_action(:next)     # en: "Next",      de: "Weiter"

t_confirm_delete

t_confirm_delete(@account) # en: 'Really delete account Kasse?' de: 'Konto Kasse wirklich löschen?'

t_select_prompt

t_select_prompt(@account) # en: 'Select Account' de: 'Konto auswählen'

Controller Helpers

redirect_notice

def create
  # ...
  redirect_to some_path, redirect_notice           # => 'Klient erstellt.'
  redirect_to some_path, redirect_notice(@client)  # => 'Klient Example Client erstellt.'
end

def update
  # ...
  redirect_to some_path, redirect_notice           # => 'Klient geändert.'
  redirect_to some_path, redirect_notice(@client)  # => 'Klient Example Client geändert.'
end


def destroy
  # ...
  redirect_to some_path, redirect_notice           # => 'Klient gelöscht.'
  redirect_to some_path, redirect_notice(@client)  # => 'Klient Example Client gelöscht.'
end

t_attr

t_title

t_action

Model helpers

enum_attribute_t methods

Automaticly generated enum attribut translation methods.

Required translations.

# Client model
enum gender: { undefined: 0, female: 1, male: 2, xy: 3 }

# in use
Client.first.gender    # => 'female'
Client.first.gender_t  # de: => 'Frau', en: => 'Woman'
Client.first.genders_t # => { undefined: 'Nicht definiert', female: 'Frau', male: 'Mann' }

t_enum

# Client model
enum gender: { undefined: 0, female: 1, male: 2, xy: 3 }

Client.first.gender # => 'female'
Client.first.t_enum(:gender) # de: => 'Frau', en: => 'Women'
Client.first.t_enum(:gender, :male) # de: => 'Mann', en: => 'Men'

Required translations in locales (config/locales/zz.yml)

---
de:
  activerecord:
    attributes:
      client:
        genders:
          undefined: Nicht definiert
          female: Frau
          male: Mann
---
en:
  activerecord:
    attributes:
      client:
        genders:
          undefined: Not defined
          female: Women
          male: Man
---
fr:
# ...

License

Released under the MIT license.