当我为使用 Flutter 开发的 iOS 应用程序实现显示名称本地化时,我遇到了一个特殊问题。除了简体中文 (zh-Hans) 之外,所有语言环境中的一切都按预期工作。当我在设备或模拟器上切换到 zh-Hans 时,应用程序图标下显示的名称默认为
Runner
,这是默认的 Flutter 名称。
更令人费解的是,只有主页和设置屏幕上的显示名称显示为
Runner
。我尝试使用 Dart 检索应用程序内的显示名称,它返回了我设置的确切字符串。甚至删除确认对话框也显示正确的名称!
以下为
InfoPlist.xcstrings
内容:
{
"sourceLanguage" : "en",
"strings" : {
"CFBundleDisplayName" : {
"comment" : "Display name",
"extractionState" : "manual",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "xBangon"
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "瓦工帮"
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "translated",
"value" : "瓦工幫"
}
},
"zh-HK" : {
"stringUnit" : {
"state" : "translated",
"value" : "瓦工帮"
}
}
}
},
"CFBundleName" : {
"comment" : "Bundle name",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "xBangon"
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "瓦工帮"
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "translated",
"value" : "瓦工幫"
}
},
"zh-HK" : {
"stringUnit" : {
"state" : "translated",
"value" : "瓦工帮"
}
}
}
}
},
"version" : "1.0"
}