Weblate添加iOS翻译字符串首次提交缺失引号,二次提交恢复正常求解决方案
我之前处理iOS本地化项目时也碰到过一模一样的情况——第一次通过Weblate网页添加新字符串时,键和值都不带双引号,第二次提交却自动修正了。下面是几个亲测有效的解决办法:
检查Weblate的iOS Strings格式配置
进入你的项目组件设置,找到「Files」标签页,定位到iOS strings文件的配置项。确保「Quote style」选择了「Double quotes」,同时勾选「Always quote strings」选项。这个设置会强制Weblate在生成新的键值对时自动包裹双引号,从根源上解决缺失问题。自定义字符串生成模板
如果默认配置没生效,你可以在组件的「Settings」->「Strings」里修改字符串的生成模板。把模板改成:"%s" = "%s";这样Weblate在添加新字符串时,会直接套用这个带引号的格式,不用等第二次提交修正。
清理缓存并同步仓库
有时候Weblate的缓存会保留旧的格式规则,导致新生成的字符串异常。去项目的「Maintenance」页面,点击「Clear cache」清理缓存,然后再执行「Sync repository」同步仓库。完成后再添加新字符串,应该就能正常生成带引号的格式了。确认文件格式识别正确
确保Weblate把你的本地化文件识别为「iOS strings」格式,而不是普通文本文件。在组件设置的「File format」选项里,选中「iOS strings」,避免格式识别错误导致的引号缺失。
至于为什么第二次提交会自动修正,大概率是Weblate在首次生成时用了临时的未格式化内容,提交后重新解析仓库里的现有文件,会自动对齐已有的格式规范,所以第二次就正常了。
内容的提问来源于stack exchange,提问作者AJocham

