Module: Tr8nClientSdk::ActionViewExtension

Extended by:
ActiveSupport::Concern
Defined in:
lib/tr8n_client_sdk/extensions/action_view_extension.rb

Instance Method Summary collapse

Instance Method Details

#tr8n_dir_attribute_tag(lang = tr8n_current_language) ⇒ Object



177
178
179
180
# File 'lib/tr8n_client_sdk/extensions/action_view_extension.rb', line 177

def tr8n_dir_attribute_tag(lang = tr8n_current_language)
  return "dir='ltr'" if Tr8n.config.disabled?
  "dir='#{lang.dir}'".html_safe
end

#tr8n_flashes_tag(opts = {}) ⇒ Object



100
101
102
# File 'lib/tr8n_client_sdk/extensions/action_view_extension.rb', line 100

def tr8n_flashes_tag(opts = {})
  render(:partial => '/tr8n_client_sdk/tags/flashes', :locals => {:opts => opts})
end

#tr8n_lang_attribute_tag(lang = tr8n_current_language) ⇒ Object



182
183
184
185
# File 'lib/tr8n_client_sdk/extensions/action_view_extension.rb', line 182

def tr8n_lang_attribute_tag(lang = tr8n_current_language)
  return "lang='en-US'" if Tr8n.config.disabled?
  "lang='#{lang.locale}'".html_safe
end

#tr8n_language_flag_tag(lang = tr8n_current_language, opts = {}) ⇒ Object



58
59
60
61
62
63
# File 'lib/tr8n_client_sdk/extensions/action_view_extension.rb', line 58

def tr8n_language_flag_tag(lang = tr8n_current_language, opts = {})
  return "" unless tr8n_application.feature_enabled?(:language_flags)
  html = image_tag(lang.flag_url, :style => "vertical-align:middle;", :title => lang.native_name)
  html << "&nbsp;".html_safe
  html.html_safe
end

#tr8n_language_name_tag(lang = tr8n_current_language, opts = {}) ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/tr8n_client_sdk/extensions/action_view_extension.rb', line 65

def tr8n_language_name_tag(lang = tr8n_current_language, opts = {})
  show_flag = opts[:flag].nil? ? true : opts[:flag]
  name_type = opts[:name].nil? ? :full : opts[:name] # :full, :native, :english, :locale
  linked = opts[:linked].nil? ? true : opts[:linked]

  html = "<span style='white-space: nowrap'>"
  html << tr8n_language_flag_tag(lang, opts) if show_flag
  html << "<span dir='ltr'>"

  name = case name_type
    when :native  then lang.native_name
    when :english then lang.english_name
    when :locale  then lang.locale
    else lang.full_name
  end

  html << name
  html << "</span></span>"
  html.html_safe
end

#tr8n_language_selector_tag(opts = {}) ⇒ Object



86
87
88
89
# File 'lib/tr8n_client_sdk/extensions/action_view_extension.rb', line 86

def tr8n_language_selector_tag(opts = {})
  return unless Tr8n.config.enabled?
  render(:partial => '/tr8n_client_sdk/tags/language_selector', :locals => {:opts => opts})
end

#tr8n_language_strip_tag(opts = {}) ⇒ Object



91
92
93
94
95
96
97
98
# File 'lib/tr8n_client_sdk/extensions/action_view_extension.rb', line 91

def tr8n_language_strip_tag(opts = {})
  opts[:flag] = opts[:flag].nil? ? false : opts[:flag]
  opts[:name] = opts[:name].nil? ? :native : opts[:name]
  opts[:linked] = opts[:linked].nil? ? true : opts[:linked]
  opts[:javascript] = opts[:javascript].nil? ? false : opts[:javascript]

  render(:partial => '/tr8n_client_sdk/tags/language_strip', :locals => {:opts => opts})
end

#tr8n_options_for_select(options, selected = nil, description = nil, lang = Tr8n.session.current_language) ⇒ Object



45
46
47
# File 'lib/tr8n_client_sdk/extensions/action_view_extension.rb', line 45

def tr8n_options_for_select(options, selected = nil, description = nil, lang = Tr8n.session.current_language)
  options_for_select(options.tro(description), selected)
end


49
50
51
52
53
54
55
56
# File 'lib/tr8n_client_sdk/extensions/action_view_extension.rb', line 49

def tr8n_phrases_link_tag(search = "", phrase_type = :without, phrase_status = :any)
  return unless Tr8n.config.enabled?
  return if tr8n_current_language.default?
  return unless tr8n_current_translator.inline?

  link_to(image_tag(tr8n_application.url_for("/assets/tr8n/translate_icn.gif"), :style => "vertical-align:middle; border: 0px;", :title => search),
          tr8n_application.url_for("/tr8n/app/phrases/index?search=#{search}")).html_safe
end

#tr8n_scripts_tag(opts = {}) ⇒ Object



104
105
106
# File 'lib/tr8n_client_sdk/extensions/action_view_extension.rb', line 104

def tr8n_scripts_tag(opts = {})
  render(:partial => '/tr8n_client_sdk/tags/scripts', :locals => {:opts => opts})
end

#tr8n_select_month(date, options = {}, html_options = {}) ⇒ Object



108
109
110
111
112
113
# File 'lib/tr8n_client_sdk/extensions/action_view_extension.rb', line 108

def tr8n_select_month(date, options = {}, html_options = {})
  month_names = options[:use_short_month] ? Tr8n.config.default_abbr_month_names : Tr8n.config.default_month_names
  select_month(date, options.merge(
    :use_month_names => month_names.collect{|month_name| tr8n_current_language.translate(month_name, options[:description] || "Month name")}
  ), html_options)
end

#tr8n_style_attribute_tag(attr_name = 'float', default = 'right', lang = tr8n_current_language) ⇒ Object

Language Direction Support



167
168
169
170
# File 'lib/tr8n_client_sdk/extensions/action_view_extension.rb', line 167

def tr8n_style_attribute_tag(attr_name = 'float', default = 'right', lang = tr8n_current_language)
  return "#{attr_name}:#{default}".html_safe if Tr8n.config.disabled?
  "#{attr_name}:#{lang.align(default)}".html_safe
end

#tr8n_style_directional_attribute_tag(attr_name = 'padding', default = 'right', value = '5px', lang = tr8n_current_language) ⇒ Object



172
173
174
175
# File 'lib/tr8n_client_sdk/extensions/action_view_extension.rb', line 172

def tr8n_style_directional_attribute_tag(attr_name = 'padding', default = 'right', value = '5px', lang = tr8n_current_language)
  return "#{attr_name}-#{default}:#{value}".html_safe if Tr8n.config.disabled?
  "#{attr_name}-#{lang.align(default)}:#{value}".html_safe
end

#tr8n_url_tag(path) ⇒ Object



159
160
161
# File 'lib/tr8n_client_sdk/extensions/action_view_extension.rb', line 159

def tr8n_url_tag(path)
  tr8n_application.url_for(path)
end

#tr8n_when_string_tag(time, opts = {}) ⇒ Object



132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# File 'lib/tr8n_client_sdk/extensions/action_view_extension.rb', line 132

def tr8n_when_string_tag(time, opts = {})
  elapsed_seconds = Time.now - time
  if elapsed_seconds < 0
    tr('In the future, Marty!', 'Time reference')
  elsif elapsed_seconds < 2.minutes
    tr('a moment ago', 'Time reference')
  elsif elapsed_seconds < 55.minutes
    elapsed_minutes = (elapsed_seconds / 1.minute).to_i
    tr('{minutes || minute} ago', 'Time reference', :minutes => elapsed_minutes)
  elsif elapsed_seconds < 1.75.hours
    tr('about an hour ago', 'Time reference')
  elsif elapsed_seconds < 12.hours
    elapsed_hours = (elapsed_seconds / 1.hour).to_i
    tr('{hours || hour} ago', 'Time reference', :hours => elapsed_hours)
  elsif time.today_in_time_zone?
    display_time(time, :time_am_pm)
  elsif time.yesterday_in_time_zone?
    tr("Yesterday at {time}", 'Time reference', :time => time.tr(:time_am_pm).gsub('/ ', '/').sub(/^[0:]*/,""))
  elsif elapsed_seconds < 5.days
    time.tr(:day_time).gsub('/ ', '/').sub(/^[0:]*/,"")
  elsif time.same_year_in_time_zone?
    time.tr(:monthname_abbr_time).gsub('/ ', '/').sub(/^[0:]*/, '')
  else
    time.tr(:monthname_abbr_year_time).gsub('/ ', '/').sub(/^[0:]*/, '')
  end
end

#tr8n_with_options_tag(opts, &block) ⇒ Object Also known as: tr8n_block



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# File 'lib/tr8n_client_sdk/extensions/action_view_extension.rb', line 115

def tr8n_with_options_tag(opts, &block)
  if Tr8n.config.disabled?
    return capture(&block) if block_given?
    return ""
  end

  Tr8n.session.push_block_options(opts)

  if block_given?
    ret = capture(&block)
  end

  Tr8n.session.pop_block_options
  ret
end

#trh(tokens = {}, options = {}, &block) ⇒ Object



36
37
38
39
40
41
42
43
# File 'lib/tr8n_client_sdk/extensions/action_view_extension.rb', line 36

def trh(tokens = {}, options = {}, &block)
  return '' unless block_given?

  label = capture(&block)

  tokenizer = Tr8n::Tokenizers::Dom.new(tokens, options)
  tokenizer.translate(label).html_safe
end