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.



2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
# File 'lib/a-core.rb', line 2171

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.



2170
2171
2172
# File 'lib/a-core.rb', line 2170

def lc_lang
  @lc_lang
end

Instance Method Details

#text(_key, _params = nil) ⇒ Object



2205
2206
2207
2208
2209
2210
2211
# File 'lib/a-core.rb', line 2205

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