Module: TmlRails::ActionViewExtension
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/tml_rails/extensions/action_view_extension.rb
Instance Method Summary collapse
-
#tml_dir_attribute_tag(lang = tml_current_language) ⇒ Object
providers the direction of the language.
-
#tml_flashes_tag(opts = {}) ⇒ Object
Translates flashes.
-
#tml_html_attributes_tag(lang = tml_current_language) ⇒ Object
(also: #tml_lang_attributes_tag)
provides the locale and direction of the language.
-
#tml_lang_attribute_tag(lang = tml_current_language) ⇒ Object
provides the locale of the language.
-
#tml_language_flag_tag(lang = tml_current_language, opts = {}) ⇒ Object
Returns language flag.
-
#tml_language_name_tag(lang = tml_current_language, opts = {}) ⇒ Object
Returns language name.
-
#tml_language_selector_tag(type = nil, opts = {}) ⇒ Object
Returns language selector UI.
-
#tml_language_strip_tag(opts = {}) ⇒ Object
Returns language strip UI.
-
#tml_options_for_select(options, selected = nil, description = nil, lang = Tml.session.current_language) ⇒ Object
Translates <select><option></option></select>.
- #tml_scripts_tag(opts = {}) ⇒ Object
- #tml_select_month(date, options = {}, html_options = {}) ⇒ Object
- #tml_source(source, &block) ⇒ Object
-
#tml_style_attribute_tag(attr_name = 'float', default = 'right', lang = tml_current_language) ⇒ Object
switches CSS positions based on the language direction <%= tml_style_attribute_tag(‘float’, ‘right’) %> => “float: right” : “float: left” <%= tml_style_attribute_tag(‘align’, ‘right’) %> => “align: right” : “align: left”.
-
#tml_style_directional_attribute_tag(attr_name = 'padding', default = 'right', value = '5px', lang = tml_current_language) ⇒ Object
supports directional CSS attributes <%= tml_style_directional_attribute_tag(‘padding’, ‘right’, ‘5px’) %> => “padding-right: 5px” : “padding-left: 5px”.
- #tml_stylesheet_link_tag(ltr, rtl, attrs = {}) ⇒ Object
- #tml_url_tag(path) ⇒ Object
- #tml_when_string_tag(time, opts = {}) ⇒ Object
- #tml_with_options_tag(opts, &block) ⇒ Object (also: #tml_block)
-
#trh(tokens = {}, options = {}, &block) ⇒ Object
Translates HTML block noinspection RubyArgCount.
Instance Method Details
#tml_dir_attribute_tag(lang = tml_current_language) ⇒ Object
providers the direction of the language
207 208 209 210 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 207 def tml_dir_attribute_tag(lang = tml_current_language) return "dir='ltr'" if Tml.config.disabled? "dir='#{lang.dir}'".html_safe end |
#tml_flashes_tag(opts = {}) ⇒ Object
Translates flashes
114 115 116 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 114 def tml_flashes_tag(opts = {}) render(:partial => '/tml_rails/tags/flashes', :locals => {:opts => opts}) end |
#tml_html_attributes_tag(lang = tml_current_language) ⇒ Object Also known as: tml_lang_attributes_tag
provides the locale and direction of the language
201 202 203 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 201 def tml_html_attributes_tag(lang = tml_current_language) "xml:lang='#{lang.locale}' #{tml_lang_attribute_tag(lang)} #{tml_dir_attribute_tag(lang)}".html_safe end |
#tml_lang_attribute_tag(lang = tml_current_language) ⇒ Object
provides the locale of the language
213 214 215 216 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 213 def tml_lang_attribute_tag(lang = tml_current_language) return "lang='en-US'" if Tml.config.disabled? "lang='#{lang.locale}'".html_safe end |
#tml_language_flag_tag(lang = tml_current_language, opts = {}) ⇒ Object
Returns language flag
53 54 55 56 57 58 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 53 def tml_language_flag_tag(lang = tml_current_language, opts = {}) return '' unless tml_application.feature_enabled?(:language_flags) html = image_tag(lang.flag_url, :style => (opts[:style] || 'vertical-align:middle;'), :title => lang.native_name) html << ' '.html_safe html.html_safe end |
#tml_language_name_tag(lang = tml_current_language, opts = {}) ⇒ Object
Returns language name
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 61 def tml_language_name_tag(lang = tml_current_language, opts = {}) show_flag = opts[:flag].nil? ? true : opts[:flag] name_type = opts[:language].nil? ? :english : opts[:language].to_sym # :full, :native, :english, :locale, :both html = [] html << "<span style='white-space: nowrap'>" html << tml_language_flag_tag(lang, opts) if show_flag html << "<span dir='ltr'>" if name_type == :both html << lang.english_name.to_s html << '<span class="trex-native-name">' html << lang.native_name html << '</span>' else name = case name_type when :native then lang.native_name when :full then lang.full_name when :locale then lang.locale else lang.english_name end html << name.to_s end html << '</span></span>' html.join.html_safe end |
#tml_language_selector_tag(type = nil, opts = {}) ⇒ Object
Returns language selector UI
90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 90 def tml_language_selector_tag(type = nil, opts = {}) return unless Tml.config.enabled? type ||= :default type = :dropdown if type == :select unless [:bootstrap, :default, :inline, :dropdown, :popup, :flags].include?(type.to_sym) return "Unsupported language selector #{type}" end render(:partial => "/tml_rails/tags/language_selector_#{type}", :locals => {:opts => opts}) end |
#tml_language_strip_tag(opts = {}) ⇒ Object
Returns language strip UI
104 105 106 107 108 109 110 111 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 104 def tml_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 => '/tml_rails/tags/language_strip', :locals => {:opts => opts}) end |
#tml_options_for_select(options, selected = nil, description = nil, lang = Tml.session.current_language) ⇒ Object
Translates <select><option></option></select>
48 49 50 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 48 def (, selected = nil, description = nil, lang = Tml.session.current_language) (.tro(description), selected) end |
#tml_scripts_tag(opts = {}) ⇒ Object
118 119 120 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 118 def tml_scripts_tag(opts = {}) render(:partial => '/tml_rails/tags/scripts', :locals => {:opts => opts}) end |
#tml_select_month(date, options = {}, html_options = {}) ⇒ Object
122 123 124 125 126 127 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 122 def tml_select_month(date, = {}, = {}) month_names = [:use_short_month] ? Tml.config.default_abbr_month_names : Tml.config.default_month_names select_month(date, .merge( :use_month_names => month_names.collect{|month_name| tml_current_language.translate(month_name, [:description] || "Month name")} ), ) end |
#tml_source(source, &block) ⇒ Object
146 147 148 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 146 def tml_source(source, &block) ({source: source}, &block) end |
#tml_style_attribute_tag(attr_name = 'float', default = 'right', lang = tml_current_language) ⇒ Object
switches CSS positions based on the language direction <%= tml_style_attribute_tag(‘float’, ‘right’) %> => “float: right” : “float: left” <%= tml_style_attribute_tag(‘align’, ‘right’) %> => “align: right” : “align: left”
188 189 190 191 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 188 def tml_style_attribute_tag(attr_name = 'float', default = 'right', lang = tml_current_language) return "#{attr_name}:#{default}".html_safe if Tml.config.disabled? "#{attr_name}:#{lang.align(default)}".html_safe end |
#tml_style_directional_attribute_tag(attr_name = 'padding', default = 'right', value = '5px', lang = tml_current_language) ⇒ Object
supports directional CSS attributes <%= tml_style_directional_attribute_tag(‘padding’, ‘right’, ‘5px’) %> => “padding-right: 5px” : “padding-left: 5px”
195 196 197 198 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 195 def tml_style_directional_attribute_tag(attr_name = 'padding', default = 'right', value = '5px', lang = tml_current_language) return "#{attr_name}-#{default}:#{value}".html_safe if Tml.config.disabled? "#{attr_name}-#{lang.align(default)}:#{value}".html_safe end |
#tml_stylesheet_link_tag(ltr, rtl, attrs = {}) ⇒ Object
218 219 220 221 222 223 224 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 218 def tml_stylesheet_link_tag(ltr, rtl, attrs = {}) if tml_current_language.right_to_left? stylesheet_link_tag(rtl, attrs) else stylesheet_link_tag(ltr, attrs) end end |
#tml_url_tag(path) ⇒ Object
177 178 179 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 177 def tml_url_tag(path) tml_application.url_for(path) end |
#tml_when_string_tag(time, opts = {}) ⇒ Object
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 150 def tml_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 |
#tml_with_options_tag(opts, &block) ⇒ Object Also known as: tml_block
129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 129 def (opts, &block) if Tml.config.disabled? return capture(&block) if block_given? return "" end Tml.session.(opts) if block_given? ret = capture(&block) end Tml.session. ret end |
#trh(tokens = {}, options = {}, &block) ⇒ Object
Translates HTML block noinspection RubyArgCount
38 39 40 41 42 43 44 45 |
# File 'lib/tml_rails/extensions/action_view_extension.rb', line 38 def trh(tokens = {}, = {}, &block) return '' unless block_given? label = capture(&block) tokenizer = Tml::Tokenizers::Dom.new(tokens, ) tokenizer.translate(label).html_safe end |