如何在现有Flutter项目中添加Localizable.strings文件?
在Flutter iOS项目中添加Localizable.strings处理APNS本地化推送
在iOS设备上运行的Flutter应用,用firebase_messaging包接收APNS推送通知时,如果通知负载的alert部分带本地化键(比如"loc-key" : "GAME_PLAY_REQUEST_FORMAT"),设备会直接显示这个键名,不会自动转成本地化文本。解决这个问题的核心是把对应键添加到iOS项目的Localizable.strings文件中,具体操作步骤如下:
- 打开iOS模块:用Xcode打开Flutter项目根目录下的
ios/Runner.xcworkspace文件。 - 创建/找到Localizable.strings文件:
- 要是项目里还没有这个文件,在Xcode的Runner目录右键选「New File...」,搜索「Strings File」后创建名为
Localizable.strings的文件; - 已经有的话直接定位到该文件。
- 要是项目里还没有这个文件,在Xcode的Runner目录右键选「New File...」,搜索「Strings File」后创建名为
- 配置多语言支持:
- 选中
Localizable.strings,打开右侧「File Inspector」面板(快捷键⌘+Option+1); - 点击「Localize...」按钮,选默认语言(比如英语)后点「Localize」;
- 在「Localizations」区域勾选需要支持的语言(比如简体中文),Xcode会自动生成对应语言的
Localizable.strings文件。
- 选中
- 添加本地化键值对:
- 打开对应语言的文件,按格式添加键值对:
英语版本(en.lproj/Localizable.strings):
简体中文版本(zh-Hans.lproj/Localizable.strings):"GAME_PLAY_REQUEST_FORMAT" = "%@ wants to play %@ with you";"GAME_PLAY_REQUEST_FORMAT" = "%@ 想要和你一起玩 %@"; - 注意键和值都要用双引号包裹,末尾必须加分号。
- 打开对应语言的文件,按格式添加键值对:
- 验证配置:
- 检查Xcode项目的「Info.plist」里,「Localizations」列表包含你添加的语言(可在项目设置的「Info」标签页查看);
- 重新编译Flutter项目到iOS设备,发送带对应
loc-key的APNS推送,测试是否显示正确的本地化文本。
内容的提问来源于stack exchange,提问作者jakobleck
相关产品推荐
相关产品推荐

