|
- require("Editor.CompileFile")
- require("luaScript.Tools.Widgets.UIWidget")
-
-
- -- 收集languageCN.lua里的语言
- local function collectLanguages(transDict)
- local Languages = require("languageCN");
-
- local newLn = {};
- for i , v in pairs(Languages) do
- print("收集Lang文本" , v);
- local translated = transDict[XmlTranslator:collect(v)];
- if translated then
- newLn[i] = XmlTranslator:translate(v , translated);
- else
- newLn[i] = v;
- end
- end
-
- for i , v in pairs(newLn) do
- Languages[i] = v;
- end
- table.saveFile(Languages , "luaScript/Config/Languages/languageEN.lua");
- end
-
- -- 收集一个语言片
- local function collectConfig(transDict , record , fieldName , translator)
- local v = record[fieldName];
- if v then
- local translated = transDict[translator:collect(v)];
- if translated then
- record[fieldName] = translator:translate(v , translated);
- end
- end
- end
-
- -- 收集一个配置
- local function collectLanguageConfig(transDict , config)
- local desc = config:getConfigDesc();
- print("正在收集配置的语言:" , desc.XMLFile);
- if desc.Translation then
- for i , v in pairs(desc.Translation) do
- print("正在收集字段:" , i);
- for ii , vv in pairs(config) do
- if desc.SecondKeyName then
- for iii , vvv in pairs(vv) do
- collectConfig(transDict , vvv , i , v);
- end
- else
- collectConfig(transDict , vv , i , v);
- end
- end
- end
- saveLuaXMLConfig(config , desc, "dataconfig/" .. desc.XMLFile .. ".lua");
- end
- end
-
- -- 收集一个ui
- local function collectSingleUI(transDict , ui)
- if ui.applyDict then
- ui:applyDict(transDict);
- end
- end
- -- 收集一个ui
- local function collectUI(transDict , ui)
- collectSingleUI(transDict , ui);
- -- 递归所有子
- for i , v in pairs(ui:getChildren()) do
- collectUI(transDict , v);
- end
- end
-
- -- 收集所有UI的语言
- local function collectUILanguage(transDict)
- local function saveui(fileName)
- -- 返回pathName , baseName , ext
- local pathName , baseName , ext = string.splitFilename(fileName);
- print(pathName , baseName , ext);
- if ext ~= "ui" then
- return false;
- end
-
- print("\n\n");
- print("正在加载UI:" , fileName);
- local ui = cc.StreamObject:loadFromFile(fileName);
- collectUI(transDict , ui);
- ui:recalcAllPList();
- ui:saveToFile(fileName);
- end
- visitPath("res/ui" , saveui);
- end
-
- -- 载入字典文件,返回字典表
- local function loadDict(dictFile)
- local dict = {};
- local function onStartElement(name , atts)
- if name == "item" then
- dict[atts.source] = atts.target;
- end
- end
-
- local result , err = tiny.load(dictFile , onStartElement);
- if not result then
- error(err);
- end
- return dict;
- end
-
- -- 生成所有语言
- function applyDict(dictFile)
-
- -- initialize director
- local director = cc.Director:getInstance();
- local glview = director:getOpenGLView();
- if not glview then
- glview = cc.GLView:createWithRect("applyDict", {x=0,y=0,width=100,height=100});
- director:setOpenGLView(glview);
- end
-
- local transDict = loadDict(dictFile)
- -- 加载xml
- loadAllXML()
-
- -- 生成所有配置的语言
- for i , v in pairs(app.config) do
- if i ~= "Setting" and i ~= "RomSetting" then
- local desc = v:getConfigDesc();
- local filename = desc.XMLFile;
- collectLanguageConfig(transDict , v);
- end
- end
-
- -- 收集languageCN.lua里的语言
- collectLanguages(transDict);
-
- collectUILanguage(transDict);
- end
|