标签: dart-intl

在 Flutter 中使用多个 LocalizationsDelegates

我正面临一个问题,我试图LocalizationsDelegatesMaterialApp.

我正在使用 Dartintl工具为我的标签提供翻译。当我只有多个LocalizationsDelegates指定的一个时,第一个获取翻译的值。下一个委托的标签,获取Intl.message()函数中提供的默认值。

简短的、自包含的、正确的例子

在 GitHub 上设置了一个最小项目作为此问题的示例。

代码片段

在 中MaterialApp,我定义了一堆localizationsDelegates,包括两个特定于应用程序的:DogLocalizationsDelegateCatLocalizationsDelegate

MaterialApp(
  // other properties
  locale: Locale("en"),
  localizationsDelegates: [
    CatLocalizationsDelegate(),
    DogLocalizationsDelegate(),
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
    GlobalCupertinoLocalizations.delegate,
  ],
  supportedLocales: [
    const Locale('en'),
    const Locale('nl'),
  ],
);
Run Code Online (Sandbox Code Playgroud)

代表具有相同的样板代码,但提供不同的标签。这是DogLocalizations和它的DogLocalizationsDelegate样子。

import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'messages_all.dart';

class DogLocalizations {
  static Future<DogLocalizations> load(Locale locale) {
    final String name = locale.languageCode;
    final String localeName = …
Run Code Online (Sandbox Code Playgroud)

internationalization flutter dart-intl

10
推荐指数
1
解决办法
2202
查看次数

标签 统计

dart-intl ×1

flutter ×1

internationalization ×1