Swift:Storyboard本地化时新增控件未自动加入Main.strings怎么办?
解决Swift本地化新增控件不自动同步到Main.strings的问题
我太懂这种本地化到一半,新增控件却死活不进strings文件的抓狂感了!下面给你两种解决方案,优先推荐自动同步的方法,实在不行再手动操作:
一、强制Xcode自动同步新增控件到strings文件
这是最省心的方法,不用手动折腾ObjectID:
- 打开你的Xcode项目,确保选中项目根目录或者对应的
Main.storyboard文件 - 点击顶部菜单栏的 Editor > Update Localizations
- Xcode会自动扫描storyboard里的所有控件,把新增的标签、按钮等条目添加到Base以及所有目标语言的
Main.strings文件中,同时保留你已经完成的翻译内容
如果这个方法没生效,可能是Xcode缓存在搞鬼,先试试 Cmd+Shift+K 清理项目,再重新执行上述步骤。另外还要确认你的storyboard已经开启了本地化:选中Main.storyboard,打开右侧的File Inspector,在Localization部分确认Base和目标语言都已经勾选。
二、手动获取控件ObjectID并添加到strings文件
如果自动同步还是不行,或者你需要精准控制某几个控件的本地化,可以手动操作:
- 打开
Main.storyboard,选中你新增的标签/按钮 - 切换到右侧的 Identity Inspector(第三个标签,图标是身份证样式)
- 在Document区域找到Object ID,复制这个字符串(比如
BYZ-38-t0r) - 打开
Base.lproj/Main.strings文件,添加一行格式如下的内容:"BYZ-38-t0r.text" = "你的默认文本";注意:如果是按钮的标题,后缀是
.title,标签是.text,其他控件根据类型调整(比如文本框是.placeholder) - 再打开对应语言的
Main.strings文件,添加同样的ObjectID行,把值改成翻译后的文本:"BYZ-38-t0r.text" = "你的翻译文本";
这样新增的控件就能正常被本地化识别啦!
内容的提问来源于stack exchange,提问作者RjC
相关产品推荐
相关产品推荐

