Class: ArcadiaLocalization

Inherits:
Object
  • Object
show all
Includes:
Configurable
Defined in:
lib/a-core.rb

Constant Summary collapse

KEY_CACHE_VERSION =
'__VERSION__'
STANDARD_LOCALE =
'en-UK'
PARAM_SIG =
'$'

Constants included from Configurable

Configurable::ADD_SYMBOL, Configurable::FONT_TYPE_SYMBOL, Configurable::LC_SYMBOL, Configurable::LINK_SYMBOL

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Configurable

clear_properties_group_cache, #hash2properties_file, #make_locale_value, #make_value, #properties_file2hash, properties_group, #resolve_locale_value, #resolve_properties_link, #resolve_value

Constructor Details

#initializeArcadiaLocalization

Returns a new instance of ArcadiaLocalization.


2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
# File 'lib/a-core.rb', line 2695

def initialize
  @standard_locale=Arcadia.conf("locale.standard").nil? ? STANDARD_LOCALE : Arcadia.conf("locale.standard")
  @locale=Arcadia.conf("locale").nil? ? STANDARD_LOCALE : Arcadia.conf("locale")
  lc_lang_standard_file="conf/LC/#{Arcadia.conf('locale.standard')}.LANG"
  lc_lang_locale_file="conf/LC/#{Arcadia.conf('locale')}.LANG"
  need_cache_update = false
  if @standard_locale == @locale || !File.exist?(lc_lang_locale_file)
    @lc_lang = properties_file2hash(lc_lang_standard_file) if File.exist?(lc_lang_standard_file)
  else
    lc_lang_cache_file=File.join(Arcadia.local_dir, "#{Arcadia.conf('locale')}.LC_LANG_CACHE")
    if File.exist?(lc_lang_cache_file)
      @lc_lang = properties_file2hash(lc_lang_cache_file)
      if @lc_lang[KEY_CACHE_VERSION] != Arcadia.version
        # is to update
        need_cache_update = true
      end
    else
      need_cache_update = true
    end
    if need_cache_update
      @lc_lang = properties_file2hash(lc_lang_standard_file)
      @lc_lang.each_pair{|key,value| @lc_lang[key] = "#{@locale}:#{value}"}
      if File.exist?(lc_lang_locale_file)
        lc_lang_locale = properties_file2hash(lc_lang_locale_file)
      else
        lc_lang_locale = {}
      end
      lc_lang_locale.each{|k,v| @lc_lang[k]=v}
      @lc_lang[KEY_CACHE_VERSION]=Arcadia.version
      hash2properties_file(@lc_lang, lc_lang_cache_file)
    end
  end
end

Instance Attribute Details

#lc_langObject (readonly)

Returns the value of attribute lc_lang


2694
2695
2696
# File 'lib/a-core.rb', line 2694

def lc_lang
  @lc_lang
end

Instance Method Details

#text(_key, _params = nil) ⇒ Object


2729
2730
2731
2732
2733
2734
2735
# File 'lib/a-core.rb', line 2729

def text(_key, _params = nil)
  ret = @lc_lang.nil?||@lc_lang[_key].nil? ? "?" : @lc_lang[_key]
  if !_params.nil?
    _params.each_with_index{|param, i| ret = ret.gsub("#{PARAM_SIG}#{i}", param.to_s) }
  end
  ret
end