Module: I18nHelpers

Defined in:
app/helpers/i18n_helpers.rb

Instance Method Summary collapse

Instance Method Details

#t_action(action = nil, model = nil) ⇒ Object

Returns translated string for current action.

If no action is given, it uses the current action.

The translation file comes with the plugin supports the following actions by default: index, edit, show, new, delete, back, next, previous

Example:

t_action('delete')        => 'Löschen'
t_action                  => 'Ändern'  # when called in an edit view


93
94
95
96
# File 'app/helpers/i18n_helpers.rb', line 93

def t_action(action = nil, model = nil)
  action ||= action_name
  I18n::translate(action, :scope => 'crud.action', :model => t_model(model))
end

#t_attr(attribute, model = nil) ⇒ Object

Returns translated name for the given attribute.

If no model is given, it uses the controller name to guess the model by singularize it.

Example:

t_attr('first_name', Patient) => 'Vorname'
t_attr('first_name')          => 'Vorname' # when called in patients_controller views


20
21
22
23
24
25
26
27
# File 'app/helpers/i18n_helpers.rb', line 20

def t_attr(attribute, model = nil)
  if model.is_a? Class
    model_class = model
  elsif model.nil?
    model_class = controller_name.classify.constantize
  end
  model_class.human_attribute_name(attribute)
end

#t_confirm_delete(record) ⇒ Object

Returns translated deletion confirmation for record.

It uses record.to_s in the message.

Example:

t_confirm_delete(@account) => 'Konto Kasse wirklich löschen'


105
106
107
# File 'app/helpers/i18n_helpers.rb', line 105

def t_confirm_delete(record)
  I18n::translate('messages.confirm_delete', :model => t_model(record), :record => record.to_s)
end

#t_model(model = nil) ⇒ Object

Returns translated name for the given model.

If no model is given, it uses the controller name to guess the model by singularize it. model can be both a class or an actual instance.

Example:

t_model(Account)     => 'Konto'
t_model(Account.new) => 'Konto'
t_model              => 'Konto' # when called in patients_controller views


39
40
41
42
43
44
45
46
47
48
# File 'app/helpers/i18n_helpers.rb', line 39

def t_model(model = nil)
  if model.is_a? Class
    model_name = model.name.underscore
  elsif model.nil?
    model_name = controller_name.singularize
  else
    model_name = model.class.name.underscore
  end
  I18n::translate(model_name, :scope => [:activerecord, :models])
end

#t_page_headObject

Returns translated identifier



3
4
5
6
7
8
9
# File 'app/helpers/i18n_helpers.rb', line 3

def t_page_head
  if params[:id] and resource
    return "%s %s" % [t_title, resource.to_s]
  else
    return t_title
  end
end

#t_select_prompt(model = nil) ⇒ Object

Returns translated drop down field prompt for model.

If no model is given, it tries to guess it from the controller.

Example:

t_select_prompt(Account) => 'Konto auswählen'


116
117
118
# File 'app/helpers/i18n_helpers.rb', line 116

def t_select_prompt(model = nil)
  I18n::translate('messages.select_prompt', :model => t_model(model))
end

#t_title(action = nil, model = nil) ⇒ Object Also known as: t_crud

Returns translated title for current action on model.

If no action is given, it uses the current action.

If no model is given, it uses the controller name to guess the model by singularize it. model can be both a class or an actual instance.

The translation file comming with the plugin supports the following actions by default: index, edit, show, new, delete

You may provide controller specific titles in the translation file. The keys should have the following format:

#{controller_name}.#{action}.title

Example:

t_title('new', Account') => 'Konto anlegen'
t_title('delete')        => 'Konto löschen' # when called in accounts_controller views
t_title                  => 'Konto ändern'  # when called in accounts_controller edit view


70
71
72
73
74
75
76
77
78
79
# File 'app/helpers/i18n_helpers.rb', line 70

def t_title(action = nil, model = nil)
  action ||= action_name
  if model
    context = model.name.pluralize.underscore
  else
    context = controller_name.underscore
  end

  I18n::translate("#{context}.#{action}.title", :default => [:"crud.title.#{action}"], :model => t_model(model))
end