module SgtnClient::Translation
Public Class Methods
getString(component, key, locale)
click to toggle source
# File lib/sgtn-client/api/translation.rb, line 16 def self.getString(component, key, locale) SgtnClient.logger.debug "[Translation.getString]component: #{component}, key: #{key}, locale: #{locale}" str = getTranslation(component, key, locale) if str.nil? && !LocaleUtil.is_source_locale(locale) str = getTranslation(component, key, LocaleUtil.get_source_locale) end str end
getString_f(component, key, args, locale, *optionals)
click to toggle source
# File lib/sgtn-client/api/translation.rb, line 39 def self.getString_f(component, key, args, locale, *optionals) SgtnClient.logger.debug "[Translation][getString_f]component=#{component}, key=#{key}, locale=#{locale}" s = getString(component, key, locale, *optionals) return nil if s.nil? if args.is_a?(Hash) args.each do |source, arg| s.gsub! "{#{source}}", arg end elsif args.is_a?(Array) s = s % args end s end
getString_p(component, key, plural_args, locale)
click to toggle source
# File lib/sgtn-client/api/translation.rb, line 25 def self.getString_p(component, key, plural_args, locale) SgtnClient.logger.debug "[Translation][getString_p]component=#{component}, key=#{key}, locale=#{locale}" str = getTranslation(component, key, locale) if str.nil? unless LocaleUtil.is_source_locale(locale) str = getTranslation(component, key, LocaleUtil.get_source_locale) str.to_plural_s(LocaleUtil.get_source_locale, plural_args) if str end else locale = str.locale if str.is_a?(SgtnClient::StringUtil) str.to_plural_s(locale, plural_args) end end
getStrings(component, locale)
click to toggle source
# File lib/sgtn-client/api/translation.rb, line 54 def self.getStrings(component, locale) SgtnClient.logger.debug "[Translation][getStrings]component=#{component}, locale=#{locale}" locale = SgtnClient::LocaleUtil.get_best_locale(locale) items = get_cs(component, locale) if (items.nil? || items['messages'].nil?) && !LocaleUtil.is_source_locale(locale) items = get_cs(component, LocaleUtil.get_source_locale) end items end
init_translations()
click to toggle source
# File lib/sgtn-client/api/translation.rb, line 86 def init_translations # TODO: Lock to initialize? env = SgtnClient::Config.default_environment mode = SgtnClient::Config.configurations[env]['bundle_mode'] SgtnClient.logger.debug "[Translation][init_translations]mode=#{mode}" if mode == 'offline' extend SgtnClient::TranslationLoader::LocalBundle else extend SgtnClient::TranslationLoader::ServerBundle end extend SgtnClient::TranslationLoader::SourceComparer extend SgtnClient::TranslationLoader::Cache load_translations @initialized = true end
Private Class Methods
getTranslation(component, key, locale)
click to toggle source
# File lib/sgtn-client/api/translation.rb, line 65 def self.getTranslation(component, key, locale) locale = SgtnClient::LocaleUtil.get_best_locale(locale) items = get_cs(component, locale) items&.dig('messages', key) end
get_cs(component, locale)
click to toggle source
# File lib/sgtn-client/api/translation.rb, line 71 def self.get_cs(component, locale) cache_item = load_bundle(component, locale) cache_item&.dig(:items) end
initialized?()
click to toggle source
# File lib/sgtn-client/api/translation.rb, line 82 def initialized? @initialized ||= false end
load_bundle(component, locale)
click to toggle source
Calls superclass method
# File lib/sgtn-client/api/translation.rb, line 76 def self.load_bundle(component, locale) init_translations unless initialized? super end
load_translations()
click to toggle source
# File lib/sgtn-client/api/translation.rb, line 105 def load_translations; end