我正在尝试为我的Flutter应用设置本地化,遵循1和2的教程。这很好用,我可以在小部件中使用I18n.of(context).trans(<key>)
来访问翻译后的字符串。
然而,我不知道如何在MaterialApp
顶层小部件中访问翻译。
import 'package:flutter/material.dart';
import 'package:flutter_app/i18n/i18n.dart';
import 'package:flutter_app/views/menu.dart';
import 'package:flutter\_localizations/flutter\_localizations.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
supportedLocales: [
const Locale('en', 'US'),
const Locale('de', 'DE'),
],
localizationsDelegates: [
const I18nDelegate(),
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate
],
title: I18n.of(context).trans('title'), //FIXME doesn't work
home: new Menu(),
);
}
}
我得到了一个异常,因为上面的代码中I18n.of(context)
返回了null
。我错过了什么吗?