StringTableProxy.lua 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. local DebugProxy = requireProxy( "DebugProxy" )
  2. local StringTableProxy = class( "StringTableProxy", DebugProxy )
  3. StringTableProxy.NAME = global.ProxyTable.StringTable
  4. function StringTableProxy:ctor()
  5. self._data = {}
  6. self._language_data = {}
  7. self._new_str = {}
  8. StringTableProxy.super.ctor( self )
  9. end
  10. function StringTableProxy:GetString( key )
  11. local str = self._data[key]
  12. if nil == str then
  13. PrintTraceback()
  14. return "ERROR"
  15. else
  16. str = self._new_str[str] or str
  17. return self._language_data[str] or str
  18. end
  19. end
  20. function StringTableProxy:onRegister()
  21. self._data = requireConfig( "string_table.lua" )
  22. local showLanguage = global.L_GameEnvManager:GetEnvDataByKey("showLanguage")
  23. if showLanguage and string.len(showLanguage) > 0 then
  24. local path = "data_config/string_language.json"
  25. if global.FileUtilCtl:isFileExist( path ) then
  26. local jsonStr = global.FileUtilCtl:getDataFromFileEx(path)
  27. if jsonStr and jsonStr ~= "" then
  28. local cjson = require("cjson")
  29. local jsonData = cjson.decode(jsonStr)
  30. self._language_data = jsonData[showLanguage] or {}
  31. end
  32. end
  33. end
  34. local fileName = "cfg_new_string.lua"
  35. if global.FileUtilCtl:isFileExist( "scripts/game_config/" .. fileName ) then
  36. local config = requireGameConfig(fileName)
  37. for k,v in ipairs(config or {}) do
  38. if v.key and v.value and v.key ~= "" and v.value ~= "" then
  39. self._new_str[v.key] = v.value
  40. end
  41. end
  42. end
  43. StringTableProxy.super.onRegister( self )
  44. end
  45. function StringTableProxy:fixNewLanguageString( str )
  46. if str then
  47. return self._language_data[str] or str
  48. end
  49. end
  50. function GET_STRING( key )
  51. local stProxy = global.Facade:retrieveProxy( global.ProxyTable.StringTable )
  52. return stProxy:GetString( key )
  53. end
  54. return StringTableProxy