Module: I18nHelpers
- Defined in:
- app/helpers/i18n_helpers.rb
Instance Method Summary collapse
-
#t_action(action = nil, model = nil) ⇒ Object
Returns translated string for current
action
. -
#t_attr(attribute, model = nil) ⇒ Object
Returns translated name for the given
attribute
. -
#t_confirm_delete(record) ⇒ Object
Returns translated deletion confirmation for
record
. -
#t_model(model = nil) ⇒ Object
Returns translated name for the given
model
. -
#t_page_head ⇒ Object
Returns translated identifier.
-
#t_select_prompt(model = nil) ⇒ Object
Returns translated drop down field prompt for
model
. -
#t_title(action = nil, model = nil) ⇒ Object
(also: #t_crud)
Returns translated title for current
action
onmodel
.
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_head ⇒ Object
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 |