Class: TranslationEngine::Translation

Inherits:
Object
  • Object
show all
Defined in:
app/models/translation_engine/translation.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(text, keys) ⇒ Translation

Returns a new instance of Translation.



50
51
52
53
54
# File 'app/models/translation_engine/translation.rb', line 50

def initialize(text, keys)
  @text = text
  @keys = keys
  self.class.catch(@text, @keys)
end

Class Method Details

.catch(text, keys) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'app/models/translation_engine/translation.rb', line 11

def self.catch(text, keys)
  if text.is_a?(Hash)
    text.each do |key, value|
      TranslationEngine::Translation.catch(value, keys + [key])
    end
  else
    catch_basic_value(text, keys)
  end
end

.catch_basic_value(text, keys) ⇒ Object



21
22
23
24
25
26
27
# File 'app/models/translation_engine/translation.rb', line 21

def self.catch_basic_value(text, keys)
  catched << {
    data_type: data_type(text),
    key:       keys.join('.'),
    text:      normalize_for_translation_server(text)
  }
end

.catchedObject



3
4
5
# File 'app/models/translation_engine/translation.rb', line 3

def self.catched
  @catched ||= []
end

.clear_catchedObject



7
8
9
# File 'app/models/translation_engine/translation.rb', line 7

def self.clear_catched
  @catched = []
end

.data_type(text) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
# File 'app/models/translation_engine/translation.rb', line 37

def self.data_type(text)
  case text
  when Array      then 'array'
  when String     then 'string'
  when Float      then 'float'
  when Integer    then 'integer'
  when TrueClass  then 'boolean'
  when FalseClass then 'boolean'
  when Symbol     then 'symbol'
  else nil
  end
end

.normalize_for_translation_server(value) ⇒ Object



29
30
31
32
33
34
35
# File 'app/models/translation_engine/translation.rb', line 29

def self.normalize_for_translation_server(value)
  if value.is_a?(Array)
    YAML.dump(value).gsub("---\n", '')
  else
    value
  end
end

Instance Method Details

#full_keyObject



56
57
58
# File 'app/models/translation_engine/translation.rb', line 56

def full_key
  @keys.join('.') rescue ''
end

#to_sObject



60
61
62
63
64
65
66
# File 'app/models/translation_engine/translation.rb', line 60

def to_s
  if TranslationEngine.use_screenshots && @text.is_a?(String) && !full_key.include?('.routes')
    "--TRANSLATION--#{full_key}--#{@text}"
  else
    @text
  end
end