換功能?5腳本+4工具類的代碼架構(gòu)開發(fā)指南)
如何為Localizable.strings2Excel快速新增轉(zhuǎn)換功能5腳本4工具類的代碼架構(gòu)開發(fā)指南【免費(fèi)下載鏈接】Localizable.strings2ExcelPython command line tool for conversion between iOS strings files and excel files between android strings.xml files and excl files. strings files to android strings.xml files.項(xiàng)目地址: https://gitcode.com/gh_mirrors/lo/Localizable.strings2ExcelLocalizable.strings2Excel 是一款開源的 Python 命令行轉(zhuǎn)換工具支持 iOS strings 文件、Android strings.xml 文件與 Excel 表格之間的互相轉(zhuǎn)換常用于多語言本地化團(tuán)隊(duì)協(xié)作。它的代碼結(jié)構(gòu)非常教科書式5 個轉(zhuǎn)換腳本 4 個工具類讀懂這套架構(gòu)后你可以在 10 分鐘內(nèi)為項(xiàng)目新增一個轉(zhuǎn)換方向比如 strings 轉(zhuǎn) properties 文件。? 先看懂項(xiàng)目能做什么項(xiàng)目內(nèi)置 5 種轉(zhuǎn)換方向覆蓋移動端多語言協(xié)作的完整閉環(huán)轉(zhuǎn)換方向入口腳本典型場景strings → Excelpython/Strings2Xls.py把 iOS 多語言 strings 匯總給翻譯團(tuán)隊(duì)Excel → stringspython/Xls2Strings.py翻譯完成后回填 iOS 工程strings.xml → Excelpython/Xml2Xls.py把 Android 文案導(dǎo)出成表格Excel → strings.xmlpython/Xls2Xml.py翻譯回填 Android 工程strings → strings.xmlpython/Strings2Xml.pyiOS 項(xiàng)目直接遷移到 Android示例數(shù)據(jù)就放在examples/目錄可以直接對照理解iOS 格式examples/ios/en.lproj/Localizable.strings每行是key value;Android 格式examples/android/values/strings.xml即string namekeyvalue/string兩者語義完全一致差別只在文件格式——這正是工具類存在的意義。 代碼架構(gòu)總覽5 腳本 4 工具類所有源碼集中在 python/ 目錄可以分成兩層工具類層被復(fù)用的核心工具類文件職責(zé)StringsFileUtilpython/StringsFileUtil.py讀寫 iOS strings 文件含注釋剝離、編碼容錯XmlFileUtilpython/XmlFileUtil.py讀寫 Android strings.xml自動處理占位符格式XlsFileUtilpython/XlsFileUtil.py封裝 xlrd 讀取 Excel 工作表Logpython/Log.py彩色日志輸出工具類只暴露最小組合getKeysAndValues(path)讀入、writeToFile(keys, values, dir, name, additional)寫出。無論哪個腳本、哪個轉(zhuǎn)換方向數(shù)據(jù)在內(nèi)存中都統(tǒng)一流轉(zhuǎn)為(keys, values)兩個列表這就是新增功能時最大的復(fù)用點(diǎn)。腳本層每個轉(zhuǎn)換方向一個入口5 個腳本共享同一套三段式骨架以Strings2Xls.py為例addParser()—— 用optparse.OptionParser定義命令行參數(shù)如-f源目錄、-t目標(biāo)目錄、-eExcel 存儲形式startConvert(options)—— 參數(shù)校驗(yàn)后遍歷目錄調(diào)用工具類完成實(shí)際轉(zhuǎn)換輸出帶時間戳的結(jié)果目錄main()—— 串聯(lián)前兩步并執(zhí)行新增腳本時照抄骨架只替換中間的工具類調(diào)用即可。 三步新增一個轉(zhuǎn)換功能如 Excel → properties第一步確定輸入輸出選對工具類轉(zhuǎn)換的輸入端用讀取類輸出端用寫出類。本例輸入是 Excel復(fù)用XlsFileUtil.getAllTables()拿到 sheet 數(shù)據(jù)參考Xls2Strings.py中convertFromMultipleForm的遍歷方式輸出 properties 文件沒有現(xiàn)成寫出方法可仿照StringsFileUtil.writeToFile新增一個PropertiesFileUtil類。第二步新建腳本復(fù)用三段式骨架新建python/Xls2Properties.py照抄python/Xls2Strings.py的addParser()/startConvert()/main()結(jié)構(gòu)把其中寫入 strings 的部分換成新的工具類調(diào)用。第三步定義 CLI 參數(shù)并自測沿用項(xiàng)目統(tǒng)一的參數(shù)命名習(xí)慣-f源目錄、-t目標(biāo)目錄、-a附加內(nèi)容。跑通后用examples/目錄做回歸python python/Xls2Properties.py -f examples/ -t examples/output/ 兩個隱藏細(xì)節(jié)值得注意XmlFileUtil.writeToFile里用正則把 iOS 占位符%1$轉(zhuǎn)成 Android 的%1$s跨平臺轉(zhuǎn)換的坑基本都藏在這類細(xì)節(jié)里所有腳本輸出的目錄名都帶%Y%m%d_%H%M%S時間戳后綴避免覆蓋歷史結(jié)果 安裝與運(yùn)行項(xiàng)目基于 Python 2.x依賴pyExcelerator和xlrd兩個庫git clone https://gitcode.com/gh_mirrors/lo/Localizable.strings2Excel cd Localizable.strings2Excel pip install pyExcelerator xlrd python python/Strings2Xls.py -f examples/ios/ -t examples/output完整的使用說明見 README.md版本變更記錄見 CHANGELOG.md。? 小結(jié)Localizable.strings2Excel 的架構(gòu)精髓在于格式差異被工具類完全封裝轉(zhuǎn)換腳本只負(fù)責(zé)調(diào)度。想擴(kuò)展新格式、新平臺、新存儲方式時先問自己輸入端和輸出端分別缺哪個工具類缺什么補(bǔ)什么腳本層幾乎零成本復(fù)用——這就是這套 5 腳本 4 工具類結(jié)構(gòu)對二次開發(fā)最友好的地方。【免費(fèi)下載鏈接】Localizable.strings2ExcelPython command line tool for conversion between iOS strings files and excel files between android strings.xml files and excl files. strings files to android strings.xml files.項(xiàng)目地址: https://gitcode.com/gh_mirrors/lo/Localizable.strings2Excel創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考