Objective-C环境下如何在Storyboard中添加本地化Accessibility Label?
在Objective-C项目的Storyboard中设置本地化Accessibility Label的方法
嘿,我来分享三种实用的方案,帮你搞定这个需求,都是Objective-C项目里常用的操作,你可以根据自己的项目场景选择:
方法一:通过User Defined Runtime Attributes直接在Storyboard配置
这种方法不用写代码,纯可视化操作就能完成:
- 先确保你已经创建了
Localizable.strings本地化文件(如果还没有,在Xcode里新建一个Strings File,命名为Localizable.strings,然后在右侧Inspector面板点击「Localize」,添加需要的语言版本)。 - 打开Storyboard,选中需要设置Accessibility Label的控件,切换到Identity Inspector(右侧第三个图标)。
- 在User Defined Runtime Attributes区域,点击
+号添加一条属性:- Key Path:填写
accessibilityLabel - Type:选择
String - Value:填入
NSLocalizedString(@"你的本地化键名", nil),比如NSLocalizedString(@"login_btn_accessibility", nil)
- Key Path:填写
- 最后在
Localizable.strings的对应语言文件里添加键值对,比如英文版本:
中文版本:"login_btn_accessibility" = "Tap to log into your account";"login_btn_accessibility" = "点击登录你的账号";
方法二:通过代码直接赋值(适合动态逻辑场景)
如果你的Accessibility Label需要根据业务状态动态变化,或者更习惯用代码控制:
- 同样先准备好
Localizable.strings文件并添加对应键值对。 - 在控件所在的ViewController的
viewDidLoad方法里,给目标控件设置Accessibility Label:
这里第二个参数是给翻译人员的注释,建议加上,方便翻译理解上下文含义。- (void)viewDidLoad { [super viewDidLoad]; // 假设你给按钮绑定了IBOutlet,名为loginButton self.loginButton.accessibilityLabel = NSLocalizedString(@"login_btn_accessibility", @"Accessibility label for login button"); }
方法三:直接本地化Storyboard文件
如果希望整个Storyboard的元素统一做本地化,也可以直接对Storyboard本身进行本地化:
- 选中你的Storyboard文件,在右侧Inspector面板点击Localize按钮,选择基准语言(比如English)。
- 进入项目的Localizations设置(Project > Info > Localizations),添加需要的语言,勾选对应的Storyboard,选择
Localizable Strings(生成字符串文件,比单独的Storyboard文件更易维护)。 - 此时会生成对应语言的Storyboard.strings文件,里面会包含控件Accessibility Label的自动生成键,比如:
你只需要在不同语言的文件里修改对应的值即可,键名是Xcode自动生成的控件标识,无需手动修改。/* Accessibility Label for login button */ "aBc-45-6dE.accessibilityLabel" = "Tap to log into your account";
这些方法都能完美实现本地化的Accessibility Label,按需选择就行~
内容的提问来源于stack exchange,提问作者Mugunth Chandran
相关产品推荐
相关产品推荐

