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.



2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
# File 'lib/a-core.rb', line 2152

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.



2151
2152
2153
# File 'lib/a-core.rb', line 2151

def lc_lang
  @lc_lang
end

Instance Method Details

#text(_key, _params = nil) ⇒ Object



2186
2187
2188
2189
2190
2191
2192
# File 'lib/a-core.rb', line 2186

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