| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- local DebugProxy = requireProxy( "DebugProxy" )
- local StringTableProxy = class( "StringTableProxy", DebugProxy )
- StringTableProxy.NAME = global.ProxyTable.StringTable
- function StringTableProxy:ctor()
- self._data = {}
- self._language_data = {}
- self._new_str = {}
- StringTableProxy.super.ctor( self )
- end
- function StringTableProxy:GetString( key )
- local str = self._data[key]
- if nil == str then
- PrintTraceback()
- return "ERROR"
- else
- str = self._new_str[str] or str
- return self._language_data[str] or str
- end
- end
- function StringTableProxy:onRegister()
- self._data = requireConfig( "string_table.lua" )
- local showLanguage = global.L_GameEnvManager:GetEnvDataByKey("showLanguage")
- if showLanguage and string.len(showLanguage) > 0 then
- local path = "data_config/string_language.json"
- if global.FileUtilCtl:isFileExist( path ) then
- local jsonStr = global.FileUtilCtl:getDataFromFileEx(path)
- if jsonStr and jsonStr ~= "" then
- local cjson = require("cjson")
- local jsonData = cjson.decode(jsonStr)
- self._language_data = jsonData[showLanguage] or {}
- end
- end
- end
- local fileName = "cfg_new_string.lua"
-
- if global.FileUtilCtl:isFileExist( "scripts/game_config/" .. fileName ) then
- local config = requireGameConfig(fileName)
- for k,v in ipairs(config or {}) do
- if v.key and v.value and v.key ~= "" and v.value ~= "" then
- self._new_str[v.key] = v.value
- end
- end
- end
- StringTableProxy.super.onRegister( self )
- end
- function StringTableProxy:fixNewLanguageString( str )
- if str then
- return self._language_data[str] or str
- end
- end
- function GET_STRING( key )
- local stProxy = global.Facade:retrieveProxy( global.ProxyTable.StringTable )
- return stProxy:GetString( key )
- end
- return StringTableProxy
|