You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift:Storyboard本地化时新增控件未自动加入Main.strings怎么办?

解决Swift本地化新增控件不自动同步到Main.strings的问题

我太懂这种本地化到一半,新增控件却死活不进strings文件的抓狂感了!下面给你两种解决方案,优先推荐自动同步的方法,实在不行再手动操作:

一、强制Xcode自动同步新增控件到strings文件

这是最省心的方法,不用手动折腾ObjectID:

  1. 打开你的Xcode项目,确保选中项目根目录或者对应的Main.storyboard文件
  2. 点击顶部菜单栏的 Editor > Update Localizations
  3. Xcode会自动扫描storyboard里的所有控件,把新增的标签、按钮等条目添加到Base以及所有目标语言的Main.strings文件中,同时保留你已经完成的翻译内容

如果这个方法没生效,可能是Xcode缓存在搞鬼,先试试 Cmd+Shift+K 清理项目,再重新执行上述步骤。另外还要确认你的storyboard已经开启了本地化:选中Main.storyboard,打开右侧的File Inspector,在Localization部分确认Base和目标语言都已经勾选。

二、手动获取控件ObjectID并添加到strings文件

如果自动同步还是不行,或者你需要精准控制某几个控件的本地化,可以手动操作:

  1. 打开Main.storyboard,选中你新增的标签/按钮
  2. 切换到右侧的 Identity Inspector(第三个标签,图标是身份证样式)
  3. 在Document区域找到Object ID,复制这个字符串(比如BYZ-38-t0r)
  4. 打开Base.lproj/Main.strings文件,添加一行格式如下的内容:
    "BYZ-38-t0r.text" = "你的默认文本";
    

    注意:如果是按钮的标题,后缀是.title,标签是.text,其他控件根据类型调整(比如文本框是.placeholder)

  5. 再打开对应语言的Main.strings文件,添加同样的ObjectID行,把值改成翻译后的文本:
    "BYZ-38-t0r.text" = "你的翻译文本";
    

这样新增的控件就能正常被本地化识别啦!

内容的提问来源于stack exchange,提问作者RjC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:04:56