And*_*ohr 8 localization flutter
按照1和2的教程,我正在尝试为我的 Flutter 应用程序设置本地化。这工作正常,我可以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(),
);
}
}
Run Code Online (Sandbox Code Playgroud)
对于上面的代码,我得到一个异常,因为I18n.of(context)
返回null
. 我错过了什么?
Rém*_*let 11
您应该使用onGenerateTitle
代替title
字段:
MaterialApp(
...
onGenerateTitle: (context) => I18n.of(context).trans('title'),
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1869 次 |
最近记录: |