Initial version - 1.2.0.60
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
This commit is contained in:
@@ -0,0 +1,179 @@
|
||||
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
|
||||
Reference in New Issue
Block a user