module SgtnClient::TranslationLoader::SourceComparer
Public Instance Methods
load_bundle(component, locale)
click to toggle source
Calls superclass method
# File lib/sgtn-client/loader/source_comparer.rb, line 8 def load_bundle(component, locale) # source locale always uses source bundles return SgtnClient::Source.load_bundle(component) if SgtnClient::LocaleUtil.is_source_locale(locale) translation_bundle_thread = Thread.new { super(component, locale) } old_source_bundle = super(component, SgtnClient::LocaleUtil.get_source_locale) source_bundle = get_cs(component, SgtnClient::LocaleUtil.get_source_locale) translation_bundle = translation_bundle_thread.value compare_source(translation_bundle, old_source_bundle, source_bundle) end
Private Instance Methods
compare_source(translation_bundle, old_source_bundle, source_bundle)
click to toggle source
# File lib/sgtn-client/loader/source_comparer.rb, line 22 def compare_source(translation_bundle, old_source_bundle, source_bundle) return translation_bundle if translation_bundle.nil? || source_bundle.nil? || old_source_bundle.nil? old_source_messages = old_source_bundle['messages'] translation_messages = translation_bundle['messages'] translation_bundle['messages'] = new_translation_messages = {} source_bundle['messages'].each do |key, value| translation = translation_messages[key] new_translation_messages[key] = if old_source_messages[key] == value && !translation.nil? translation else SgtnClient::StringUtil.new(value, SgtnClient::LocaleUtil.get_source_locale) end end translation_bundle end