AppIntent本地化后快捷指令应用未显示翻译问题求助
AppIntent本地化在快捷指令中不生效的解决方法
我按照以下代码对AddTask这个AppIntent的标题和描述做了本地化:
@available(iOS 16.0, macOS 13.0, watchOS 9.0, *) struct AddTask : AppIntent { static var title: LocalizedStringResource = LocalizedStringResource("Add rope", table: "Localizable.strings.") static var description = IntentDescription(LocalizedStringResource("Add task to the ropes app", table: "Localizable.strings.")) }
我已经在Localizable.strings文件中完成了俄语翻译,应用内可以正常显示俄语,但在快捷指令App中打开时,这些文本仍显示未翻译的英文,截图显示快捷指令里的Intent标题和描述均为英文状态。
解决步骤:
- 修正本地化表名称:代码中
table参数的"Localizable.strings."包含了多余的扩展名和句号,正确表名应为"Localizable"。修改后代码:
@available(iOS 16.0, macOS 13.0, watchOS 9.0, *) struct AddTask : AppIntent { static var title: LocalizedStringResource = LocalizedStringResource("Add rope", table: "Localizable") static var description = IntentDescription(LocalizedStringResource("Add task to the ropes app", table: "Localizable")) }
- 确认本地化文件配置:确保俄语本地化文件
Localizable.strings放在ru.lproj目录下,且已添加到Xcode项目目标的「Copy Bundle Resources」中,同时勾选了俄语本地化选项。 - 清理缓存并重建项目:执行Xcode菜单的
Product > Clean Build Folder,重新构建应用后再检查快捷指令显示。 - 刷新Intent系统索引:重启设备,或前往「设置 > Siri与搜索 > 所有快捷指令」中刷新应用的Intent列表。
- 验证字符串键值匹配:确保
ru.lproj/Localizable.strings中的键与代码里的字符串完全一致,示例:
"Add rope" = "Добавить канат"; "Add task to the ropes app" = "Добавить задачу в приложение канатов";
注意键名无拼写错误,格式符合.strings文件规范。
内容的提问来源于stack exchange,提问作者Plutonictoast1
相关产品推荐
相关产品推荐

