class Tr8n::Decorators::Html
Public Instance Methods
decorate(translated_label, translation_language, target_language, translation_key, options = {})
click to toggle source
# File lib/tr8n/decorators/html.rb, line 35 def decorate(translated_label, translation_language, target_language, translation_key, options = {}) #Tr8n.logger.info("Decorating #{translated_label} of #{translation_language.locale} to #{target_language.locale}") # skip decoration if instructed so return translated_label if options[:skip_decorations] # if translation key language is the same as target language - skip decorations return translated_label if translation_key.language == target_language return translated_label unless inline_mode? return translated_label if translation_key.locked? and not Tr8n.session.current_translator.manager? classes = %w(tr8n_translatable) if translation_key.locked? # must be a manager and enabling locking feature # return translated_label unless Tr8n.session.current_translator.feature_enabled?(:show_locked_keys) classes << 'tr8n_locked' elsif translation_language == translation_key.language classes << 'tr8n_not_translated' elsif translation_language == target_language classes << 'tr8n_translated' else classes << 'tr8n_fallback' end element = 'span' element = 'div' if options[:use_div] html = "<#{element} class='#{classes.join(' ')}' data-translation_key='#{translation_key.key}' data-target_locale='#{target_language.locale}'>" html << translated_label html << "</#{element}>" html end
decorate_language_case(language_case, rule, original, transformed, options = {})
click to toggle source
# File lib/tr8n/decorators/html.rb, line 69 def decorate_language_case(language_case, rule, original, transformed, options = {}) return transformed if options[:skip_decorations] or language_case.language.default? return transformed unless inline_mode? data = { 'keyword' => language_case.keyword, 'language_name' => language_case.language.english_name, 'latin_name' => language_case.latin_name, 'native_name' => language_case.native_name, 'conditions' => (rule ? rule.conditions : ''), 'operations' => (rule ? rule.operations : ''), 'original' => original, 'transformed' => transformed } attrs = [] { 'class' => 'tr8n_language_case', 'data-locale' => language_case.language.locale, 'data-rule' => CGI::escape(Base64.encode64(data.to_json).gsub("\n", '')) }.each do |key, value| attrs << "#{key}=\"#{value.to_s.gsub('"', "\"")}\"" end element = 'span' element = 'div' if options[:use_div] html = "<#{element} #{attrs.join(' ')}>" html << transformed html << "</#{element}>" html end