我正面临一个问题,我试图LocalizationsDelegates在MaterialApp.
我正在使用 Dartintl工具为我的标签提供翻译。当我只有多个LocalizationsDelegates指定的一个时,第一个获取翻译的值。下一个委托的标签,获取Intl.message()函数中提供的默认值。
我在 GitHub 上设置了一个最小项目作为此问题的示例。
在 中MaterialApp,我定义了一堆localizationsDelegates,包括两个特定于应用程序的:DogLocalizationsDelegate和CatLocalizationsDelegate。
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)