5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
180 lines
5.8 KiB
Lua
180 lines
5.8 KiB
Lua
local SettingsLanguageCtrl = class("SettingsLanguageCtrl", BaseCtrl)
|
|
SettingsLanguageCtrl._mapNodeConfig = {
|
|
txtPageTitle = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Settings_Language"
|
|
},
|
|
txtVoiceTittle = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Settings_Language_Settings"
|
|
},
|
|
Option = {},
|
|
btnPackage = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Package"
|
|
},
|
|
txtPackage = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Settings_Language_Package"
|
|
},
|
|
txtBtnPackage = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Settings_Btn_Go"
|
|
},
|
|
Voice = {
|
|
sCtrlName = "Game.UI.Settings.OptionDynamicCtrl"
|
|
},
|
|
Language = {
|
|
sCtrlName = "Game.UI.Settings.OptionDynamicCtrl"
|
|
}
|
|
}
|
|
SettingsLanguageCtrl._mapEventConfig = {
|
|
SettingsDownloadLanguage = "OnEvent_DownloadLanguage"
|
|
}
|
|
function SettingsLanguageCtrl:RefreshText()
|
|
local lan_voc = ConfigTable.GetUIText("Settings_Language_Voice")
|
|
local lan_txt = ConfigTable.GetUIText("Settings_Language_Text")
|
|
local lan_needDownload = ConfigTable.GetUIText("Settings_Language_NeedDownload")
|
|
local lan_downloaded = ConfigTable.GetUIText("Settings_Language_Downloaded")
|
|
local tbText = {}
|
|
tbText[AllEnum.Language.CN] = ConfigTable.GetUIText("Settings_Language_Text_Chinese")
|
|
tbText[AllEnum.Language.JP] = ConfigTable.GetUIText("Settings_Language_Text_Japanese")
|
|
tbText[AllEnum.Language.EN] = ConfigTable.GetUIText("Settings_Language_Text_English")
|
|
tbText[AllEnum.Language.KR] = ConfigTable.GetUIText("Settings_Language_Text_Korean")
|
|
tbText[AllEnum.Language.TW] = ConfigTable.GetUIText("Settings_Language_Text_TraditionalChinese")
|
|
local nTextCount = table.nums(tbText)
|
|
local tbLang = {}
|
|
tbLang[AllEnum.Language.CN] = ConfigTable.GetUIText("Settings_Language_Voice_Chinese")
|
|
tbLang[AllEnum.Language.JP] = ConfigTable.GetUIText("Settings_Language_Voice_Japanese")
|
|
tbLang[AllEnum.Language.EN] = ConfigTable.GetUIText("Settings_Language_Voice_English")
|
|
tbLang[AllEnum.Language.KR] = ConfigTable.GetUIText("Settings_Language_Voice_Korean")
|
|
tbLang[AllEnum.Language.TW] = ConfigTable.GetUIText("Settings_Language_Voice_TraditionalChinese")
|
|
local nLangCount = table.nums(tbLang)
|
|
local textLang = {}
|
|
for i = 1, nTextCount do
|
|
textLang[i] = tbText[self.tbTextAvailable[i]]
|
|
end
|
|
local voLang = {}
|
|
for i = 1, nLangCount do
|
|
voLang[i] = ""
|
|
if self.tbVoAvailable[i] then
|
|
local sPre = tbLang[self.tbVoAvailable[i]]
|
|
local sSuf = self.tbDownload[self.tbVoAvailable[i]].bDownloaded and lan_downloaded or lan_needDownload
|
|
voLang[i] = sPre .. sSuf
|
|
end
|
|
end
|
|
self._mapNode.Voice:SetText(lan_voc, voLang)
|
|
self._mapNode.Language:SetText(lan_txt, textLang)
|
|
end
|
|
function SettingsLanguageCtrl:Init()
|
|
if self.bInit then
|
|
return
|
|
end
|
|
self.bInit = true
|
|
self:LoadSetting()
|
|
self:RefreshText()
|
|
end
|
|
function SettingsLanguageCtrl:Quit()
|
|
if not self.bInit then
|
|
return
|
|
end
|
|
end
|
|
function SettingsLanguageCtrl:LoadSetting()
|
|
local tbTextAvailable = NovaAPI.GetAvailable_TextLanguage()
|
|
local tbVoAvailable = NovaAPI.GetAvailable_VoLanguage()
|
|
self.tbTextAvailable, self.tbVoAvailable, self.tbDownload = {}, {}, {}
|
|
for i = 0, tbTextAvailable.Length - 1 do
|
|
table.insert(self.tbTextAvailable, tbTextAvailable[i])
|
|
end
|
|
for i = 0, tbVoAvailable.Length - 1 do
|
|
local sVoLan = tbVoAvailable[i]
|
|
table.insert(self.tbVoAvailable, sVoLan)
|
|
local bDownloaded, nTotalSize, nNeedDownloadSize = NovaAPI.HasDownload_VoLanguage(sVoLan)
|
|
self.tbDownload[sVoLan] = {
|
|
bDownloaded = bDownloaded,
|
|
nTotalSize = nTotalSize,
|
|
nNeedDownloadSize = nNeedDownloadSize
|
|
}
|
|
end
|
|
local sCurrentTxtLanguage = NovaAPI.GetCur_TextLanguage()
|
|
local sCurrentVoLanguage = NovaAPI.GetCur_VoiceLanguage()
|
|
self.nVoLang = table.indexof(self.tbVoAvailable, sCurrentVoLanguage)
|
|
self.nTextLang = table.indexof(self.tbTextAvailable, sCurrentTxtLanguage)
|
|
self._mapNode.Voice:Init(function(index)
|
|
NovaAPI.SetCur_VoiceLanguage(self.tbVoAvailable[index])
|
|
Settings.sCurrentVoLanguage = self.tbVoAvailable[index]
|
|
self.nVoLang = index
|
|
local tab = {}
|
|
table.insert(tab, {
|
|
"role_id",
|
|
tostring(PlayerData.Base._nPlayerId)
|
|
})
|
|
table.insert(tab, {
|
|
"set",
|
|
"vocie_language"
|
|
})
|
|
table.insert(tab, {
|
|
"arg",
|
|
tostring(index)
|
|
})
|
|
NovaAPI.UserEventUpload("setting_choice", tab)
|
|
end, self.nVoLang, #self.tbVoAvailable, nil, true)
|
|
self._mapNode.Language:Init(function(index)
|
|
NovaAPI.SetCur_TextLanguage(self.tbTextAvailable[index])
|
|
Settings.sCurrentTxtLanguage = self.tbTextAvailable[index]
|
|
self.nTextLang = index
|
|
local tab = {}
|
|
table.insert(tab, {
|
|
"role_id",
|
|
tostring(PlayerData.Base._nPlayerId)
|
|
})
|
|
table.insert(tab, {
|
|
"set",
|
|
"game_language"
|
|
})
|
|
table.insert(tab, {
|
|
"arg",
|
|
tostring(index)
|
|
})
|
|
NovaAPI.UserEventUpload("setting_choice", tab)
|
|
PanelManager.OnConfirmBackToLogIn()
|
|
end, self.nTextLang, #self.tbTextAvailable, ConfigTable.GetUIText("Settings_Language_BackConfirm"))
|
|
local gray = function(tbAvailable)
|
|
local tbGray = {}
|
|
for k, v in ipairs(tbAvailable) do
|
|
if not self.tbDownload[v].bDownloaded then
|
|
tbGray[k] = true
|
|
end
|
|
end
|
|
return tbGray
|
|
end
|
|
self._mapNode.Voice:SetGray(gray(self.tbVoAvailable), ConfigTable.GetUIText("Settings_VoiceGrayTips"))
|
|
if self.tbVoAvailable ~= nil and 1 >= #self.tbVoAvailable then
|
|
self._mapNode.Option:SetActive(false)
|
|
local languageTra = self._mapNode.Language.gameObject.transform
|
|
local goLanLine = languageTra:Find("line").gameObject
|
|
goLanLine:SetActive(false)
|
|
end
|
|
end
|
|
function SettingsLanguageCtrl:SaveSetting()
|
|
end
|
|
function SettingsLanguageCtrl:Awake()
|
|
self.bInit = false
|
|
end
|
|
function SettingsLanguageCtrl:OnEnable()
|
|
end
|
|
function SettingsLanguageCtrl:OnDisable()
|
|
if not self.bInit then
|
|
return
|
|
end
|
|
self:SaveSetting()
|
|
end
|
|
function SettingsLanguageCtrl:OnDestroy()
|
|
end
|
|
function SettingsLanguageCtrl:OnBtnClick_Package()
|
|
EventManager.Hit("SettingsLanguage", self.tbVoAvailable, self.tbDownload)
|
|
end
|
|
function SettingsLanguageCtrl:OnEvent_DownloadLanguage()
|
|
end
|
|
return SettingsLanguageCtrl
|