起初我将本教程中的l10n 实现到 Flutter 的模板项目文件中,并且成功了。之后,我尝试将这些MyHomePage类移动到一个名为home.dart. 它停止工作,因为当我调用Translations.of(context)它时返回null. BuildContextwhen insidemain.dart和 有home.dart什么区别?
本地化.dart
import 'dart:async';
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
class Translations {
final Locale locale;
Map<String, dynamic> _messages;
Translations(this.locale);
static Translations of(BuildContext context) => Localizations.of<Translations>(context, Translations);
Future<bool> load() async {
String fileName = 'lang/${locale.languageCode}.json';
String data = await rootBundle.loadString(fileName);
_messages = json.decode(data);
return true;
}
String get(String key) => _messages[key] ?? "** $key not found";
}
class …Run Code Online (Sandbox Code Playgroud)