我们使用Flutter开发了一个应用程序,但Apple拒绝了该应用程序,因为该应用程序是巴西葡萄牙语,但是诸如使用位置权限或通知权限之类的权限对话框是英语。
我们尝试安装flutter_localizations软件包并更改info.plist。这些是我们所做的更改:
Widget build(BuildContext context) {
return new MaterialApp(
title: 'My App',
theme: new ThemeData(
primarySwatch: Colors.blue,
),
home: AppStateContainer.of(context).page,
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: [Locale('pt', 'BR'),],
);
}
在info.plist上:
<key>CFBundleLocalizations</key>
<array>
<string>pt_BR</string>
</array>
这些步骤均无效。在iOS上,权限对话框仍为英文。我们正在测试的iOS设备是葡萄牙语,而该地区是巴西。
答案 0 :(得分:0)
权限对话框使用Info.plist中的字符串而不是Flutter代码上的文本。因此,您必须本地化Info.plist文件。
以您为例。请执行以下步骤:
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>your pt-Br text</string>
<key>NSLocationUsageDescription</key>
<string>your pt-Br text</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>your pt-Br text</string>
查看这些主题以获取更多详细信息:
https://medium.com/@guerrix/info-plist-localization-ad5daaea732a
答案 1 :(得分:0)
iOS中的权限对话框,除了可以自定义的部分外,其余语言与移动电话系统选择的语言相同。但是当您使用Debug时,它可能仍然是英文。可能是因为在项目的本地化中选择了开发语言。但是您发送的Release软件包应与电话系统语言相同。
答案 2 :(得分:0)
几个简单的步骤:
现在在每个文件中,您都必须以该语言(例如,在InfoPlist.strings(英语)中)添加KEY和VALUE:
Group with existing app id
然后,iOS将自动在这些文件中查找本地化值。您无需执行其他任何操作,只需在Info.plist中查看需要本地化并将其复制到新文件中的密钥即可。