我正在使用flutter_localizations. dart包将我的应用程序本地化为不同的语言。通常,我使用S.of(context).wordToLocalize
来根据每种语言调用String。
但是,在登录过程中,我没有上下文,所以我不能使用相同的过程。我我有以下错误:
未定义名称"context"。请尝试将该名称更正为已定义的名称,或定义该名称。
我需要使用它的代码如下所示
import 'dart:async';
import 'package:aplians_fish/generated/l10n.dart';
class Validators {
final validarEmail = StreamTransformer<String, String>.fromHandlers(
handleData: (email, sink) {
Pattern pattern = r'^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$';
RegExp regExp = new RegExp(pattern);
if (regExp.hasMatch(email)) {
sink.add(email);
} else {
sink.addError('It must be a valid e-mail');
// I would like to change the previous line for S.of(context).validEmail
}
}
);
在这段代码中,我如何调用Flutter定位?
1条答案
按热度按时间ykejflvf1#
您可以使用本地化的BuildContext初始化
Validators
。该类可以在可传递BuildContext的
Widget build()
中初始化。