如何在Flutter中将iOS系统对话框(如位置权限)更改为葡萄牙语?

时间:2019-04-02 23:41:47

标签: ios flutter localization

我们使用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设备是葡萄牙语,而该地区是巴西。

3 个答案:

答案 0 :(得分:0)

iOS中的

权限对话框使用Info.plist中的字符串而不是Flutter代码上的文本。因此,您必须本地化Info.plist文件。

以您为例。请执行以下步骤:

  1. 在Flutter项目的iOs文件夹中打开xCode项目
  2. 选择项目,然后选择“信息”。
  3. 在“本地化”部分中,添加新语言。 pt_BR在您的应用上。
  4. 您将看到一个对话框,要求选择文件进行本地化。选择Info.plist。
  5. 打开pt-Br的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

How to localise a string inside the iOS info.plist file?

答案 1 :(得分:0)

iOS中的权限对话框,除了可以自定义的部分外,其余语言与移动电话系统选择的语言相同。但是当您使用Debug时,它可能仍然是英文。可能是因为在项目的本地化中选择了开发语言。但是您发送的Release软件包应与电话系统语言相同。

答案 2 :(得分:0)

几个简单的步骤:

  1. 打开Xcode
  2. 在ios / Runner中创建一个名为“ InfoPlist.strings”的字符串文件
  3. 单击“亚军”,然后单击“信息”。在这里,您会看到“本地化”,添加巴西葡萄牙语并选择您之前创建的新文件。这将在InfoPlist.strings下生成两个不同的文件,一个用于英语,一个用于巴西葡萄牙语。

现在在每个文件中,您都必须以该语言(例如,在InfoPlist.strings(英语)中)添加KEY和VALUE:

Group with existing app id

然后,iOS将自动在这些文件中查找本地化值。您无需执行其他任何操作,只需在Info.plist中查看需要本地化并将其复制到新文件中的密钥即可。