|
- require("Editor.CompileFile")
-
-
- -- 收集languageCN.lua里的语言
- local function collectLanguages(transDict)
- local Languages = require("languageCN");
- for i , v in pairs(Languages) do
- print("收集Lang文本" , v);
- local trans = XmlTranslator:collect(v);
- transDict[trans] = "";
- end
- end
-
- -- 收集一个语言片
- local function collectConfig(transDict , record , fieldName , translator)
- local trans = translator:collect(record[fieldName]);
- if type(trans) ~= "string" then
- error("trans不是字符串" .. type(trans) .. tostring(trans));
- end
- transDict[trans] = "";
- 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
- end
- end
-
- -- 保存到文件
- local function saveXmlFile(transDict , dictFile)
- local f = io.open(dictFile , "wb");
- for i , v in pairsByKeys(transDict)do
- f:write(i);
- f:write("\n");
- end
- f:close();
- end
-
- -- 收集一个ui
- local function collectSingleUI(transDict , ui)
- if ui.collectText then
- local result = ui:collectText();
- for i , v in ipairs(result) do
- print("收集到UI语言:" , v);
- transDict[v] = "";
- end
- 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);
- end
- visitPath("res/ui" , saveui);
- end
-
- -- 生成所有语言
- function generateDict(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
- -- 加载xml
- loadAllXML()
-
- local transDict = {};
-
- -- 生成所有配置的语言
- 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);
-
- saveXmlFile(transDict , dictFile);
-
- end
|