如何将动态字符串与 flutter_localizations 结合使用

问题描述 投票:0回答:1

我在flutter中使用这两个类进行本地化 按照这篇文章设置。

import 'package:flutter/cupertino.dart';

abstract class Languages {
  final String? extra;

  Languages({this.extra});
  static Languages? of(BuildContext context, {String? extra}) {
    return Localizations.of<Languages>(context, Languages);
  }
String get text199;
}

以及此语言En:

import 'languages.dart';

class LanguageEn extends Languages
{
  LanguageEn({String? extra}) : super(extra: extra);
  @override
String get text199 => "Update data($extra)";
}

当我传递这个额外参数时,无论我使用什么语言,我都会得到 null

"Update data(null)"

Languages.of(context,extra: "$activeID")!.text199),

但是当我直接选择一个语言课程并执行此操作时,它会起作用,并且我得到数字而不是空

"Update data(4)"

LanguageEn(extra: "$activeID").text199),

如何用这个包传递动态字符串?

flutter localization flutter-dependencies flutter-localizations
1个回答
0
投票

通过用以下内容替换语言类来解决这个问题:

import 'package:flutter/cupertino.dart';

abstract class Languages {
    String? extra;

  Languages({this.extra});
  static Languages? of(BuildContext context, {String? extra}) {
    final Languages? instance = Localizations.of<Languages>(context, Languages);
    if (instance != null) {
      instance.extra = extra; // Assign the extra parameter to the instance.
    }
    return instance;
  }

  String get text199;
  }

参考。

© www.soinside.com 2019 - 2024. All rights reserved.