Class: SgtnClient::Translation

Inherits:
Object
  • Object
show all
Defined in:
lib/sgtn-client/api/translation.rb

Class Method Summary collapse

Class Method Details

.get_offbundle(component, locale) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/sgtn-client/api/translation.rb', line 47

def self.get_offbundle(component, locale)
  env = SgtnClient::Config.default_environment
  product_name = SgtnClient::Config.configurations[env]["product_name"]
  version = SgtnClient::Config.configurations[env]["version"].to_s
  translation_bundle = SgtnClient::Config.configurations[env]["translation_bundle"]
  bundlepath = translation_bundle + "/" + product_name + "/" + version + "/" + component + "/messages_" + locale + ".json"
  SgtnClient.logger.debug "Getting translations from offline bundle: " + bundlepath
  begin
    file = File.read(bundlepath)
    data_hash = JSON.parse(file)
  rescue => exception
    SgtnClient.logger.error exception.message
  end
  return data_hash
end

.get_server(component, locale) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/sgtn-client/api/translation.rb', line 63

def self.get_server(component, locale)
  env = SgtnClient::Config.default_environment
  product_name = SgtnClient::Config.configurations[env]["product_name"]
  vip_server = SgtnClient::Config.configurations[env]["vip_server"]
  SgtnClient.logger.debug "Getting translations from server: " + vip_server
  version = SgtnClient::Config.configurations[env]["version"].to_s
  url = vip_server + "/i18n/api/v2/translation/products/" + product_name + "/versions/" + version + "/locales/" + locale + "/components/" + component+ "?checkTranslationStatus=false&machineTranslation=false&pseudo=false"
  begin
    obj = SgtnClient::Core::Request.get(url)
  rescue => exception
    SgtnClient.logger.error exception.message
  end
  if obj != nil
    obj = obj["data"]
  end
  return obj
end

.getString(component, key, locale) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/sgtn-client/api/translation.rb', line 13

def self.getString(component, key, locale)
  cache_key = SgtnClient::CacheUtil.get_cachekey(component, locale)
  items = SgtnClient::CacheUtil.get_cache(cache_key)
  if items.nil?
    items = getTranslations(component, locale)
    SgtnClient::CacheUtil.write_cache(cache_key, items)
  else
    SgtnClient.logger.debug "Getting translations from cache with key: " + cache_key
  end
  if items.nil?
    return SgtnClient::Source.getSource(component, key)
  end

  str = items["messages"][key]
  if str.nil?
    return SgtnClient::Source.getSource(component, key)
  else
    return str
  end

end

.getTranslations(component, locale) ⇒ Object



37
38
39
40
41
42
43
44
45
# File 'lib/sgtn-client/api/translation.rb', line 37

def self.getTranslations(component, locale)
  env = SgtnClient::Config.default_environment
  mode = SgtnClient::Config.configurations[env]["bundle_mode"]
  if mode == 'offline'
    return get_offbundle(component, locale)
  else
    return get_server(component, locale)
  end
end