使用Localizable.strings2Excel本地化转换工具的10个常见问题与解决方案:实战避坑FAQ清单

使用Localizable.strings2Excel本地化转换工具的10个常见问题与解决方案:实战避坑FAQ清单 使用Localizable.strings2Excel本地化转换工具的10个常见问题与解决方案实战避坑FAQ清单【免费下载链接】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.项目地址: https://gitcode.com/gh_mirrors/lo/Localizable.strings2Excel做 App 多语言开发时iOS 的Localizable.strings、Android 的strings.xml往往要交给翻译团队维护而Localizable.strings2Excel正是解决这一痛点的本地化转换工具它能在iOS strings 文件与 Excel、Android strings.xml 与 Excel 之间双向转换还能把 iOS strings 直接转成 Android xml。下面整理了 10 个新手最容易踩的坑与解决方案建议收藏备用。问题 1这个本地化转换工具支持哪些转换方向这是新手第一个问题。工具提供 5 个独立脚本各管一个方向转换方向对应脚本iOS strings → Excelpython/Strings2Xls.pyExcel → iOS stringspython/Xls2Strings.pyAndroid strings.xml → Excelpython/Xml2Xls.pyExcel → Android strings.xmlpython/Xls2Xml.pyiOS strings → Android strings.xmlpython/Strings2Xml.py解决方案先确认自己要转的方向再选对应脚本不要“一个脚本全用”这是很多报错的根源。问题 2为什么必须安装 Python 2.xPython 3 会报错这是最经典的坑。工具的源码如 python/XlsFileUtil.py使用了 Python 2 专属语法例如print语句、reload(sys)等用 Python 3 运行会直接抛出SyntaxError。解决方案用python --version确认版本要求是2.x如 2.7.10没有 pip 的先安装 pip 再装依赖若环境里只有 Python 3建议单独装一个 2.7 并指定解释器运行不要强行改动源码。问题 3运行前需要安装哪些依赖转换脚本只依赖两个第三方库缺少任何一个都会ImportErrorpyExcelerator负责生成.xls文件xlrd负责读取 Excel 文件。解决方案执行pip install pyExcelerator和pip install xlrd即可。注意包名大小写写错会提示找不到包。问题 4-f 和 -t 参数具体填什么路径所有脚本共用一套参数以 iOS strings 转 Excel 为例python python/Strings2Xls.py -f examples/ios/ -t examples/output-f源文件所在目录不是单个文件路径-t转换结果保存的目标目录不知道参数时可加-h查看帮助。解决方案-f一定填“目录”。例如 iOS 场景要填到包含各.lproj子目录的层级而不是直接指向某个.strings文件。问题 5-e 参数 single 和 multiple 两种存储形式有什么区别这是进阶但极易混淆的选项-e --excelStorageForm默认multiplemultiple默认每个语言一个 Excel 文件例如en.xls、zh-Hans.xlssingle所有语言合并进一个Excel首列为 key后面每列依次是各语言译文更适合给翻译团队集中审校。解决方案反向转换Excel 转回字符串文件时-e必须与当初导出时一致。方向不匹配会出现“语言名解析错位”或结果为空。问题 6结果为什么不在 -t 指定的目录里而是多了一层文件夹这是“找不到结果”的第一大原因。脚本会自动在-t目录下再创建带时间戳的子目录例如examples/output/strings-files-to-xls_20190129_165830/解决方案转换成功后留意终端输出的完整路径you can see xls file in ...那句话就是结果位置。同一秒内重复运行会覆盖同名目录跨天重跑则各生成新目录不会互相污染。问题 7为什么有的目录被跳过转换结果缺少某些语言这是第二个高频坑脚本按目录命名规则识别语言而不是扫描所有文件iOS 场景只认名字以.lproj结尾的目录如en.lproj、zh-Hans.lprojAndroid 场景只认以values开头的目录如values、values-zh-rCN。解决方案如果你的 iOS 语言目录用了自定义命名没有.lproj后缀或 Android 的 strings.xml 没有放在res/values*结构里就需要先整理目录结构再执行转换否则这些语言会被静默跳过。问题 8为什么中文被转成了 values-zh-rCN英文变成 values这是工具的内置约定在 python/Xls2Xml.py 中可以看到zh-Hans会统一改写成 Android 惯用的zh-rCNen不生成values-en而是写入 Android 的默认资源目录values。解决方案这是特性不是 Bug。如果你的项目要求保留values-en可在生成后手动重命名目录反向导入 iOS strings 时同理注意核对语言目录名。问题 9为什么转换后的 Excel 或 strings 里少了一部分 key工具在写出文件时会做空值校验value 为空的 key 会被跳过并打印错误日志格式为Key:xxxs value is None. Index:n。所以“缺 key”基本只有两个原因源文件里对应译文本来就是空的常见于翻译未完成Excel 的 value 列被填成了空格或全角字符肉眼看似有内容。解决方案转换后搜索日志中的error关键字能直接定位是哪些行被丢弃回到 Excel 检查对应行的 value 列补齐译文后重新转换即可。空值过滤逻辑见 python/StringsFileUtil.py 的writeToFile方法。问题 10iOS 项目想直接复用到 Android能一步转换吗可以。python/Strings2Xml.py 就是为“跨平台复用文案”设计的python python/Strings2Xml.py -f examples/ios/en.lproj/ -t examples/output/它会把目录下的Localizable.strings、InfoPlist.strings分别生成对应的Localizable.xml、InfoPlist.xml。注意此脚本的-f指向的是单个语言目录如en.lproj而不是 iOS 根目录。解决方案多语言复用建议逐个.lproj目录执行输出目录各自分开再合并到 Android 工程的values*结构中。常见问题速查表症状大概率原因对应章节语法报错 SyntaxError用了 Python 3问题 2找不到语言/结果缺文件目录命名不符合.lproj、values*规则问题 7找不到输出文件多了一层时间戳目录问题 6缺 key源文件译文为空问题 9中文目录名变成 zh-rCN工具内置约定问题 8示例数据可以直接用仓库自带的 examples/ios/ 和 examples/android/ 目录练习跑通一遍基本就掌握全部用法了。【免费下载链接】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.项目地址: https://gitcode.com/gh_mirrors/lo/Localizable.strings2Excel创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考