现在我在使用Flutter的应用程序中工作,我有4种不同的语言,我使用json(arb文件)进行本地化(翻译)
我需要传递不同的字符串值,应用程序使用API获取它们,如下面的示例所示
AppLocalizations.of(context)!snapshot.data![index].state_pickup[0]
但是"AppLocalizations.of(context)!"
不会从snapshot.data![index].state_pickup[0]
获取返回数据,而是将其作为字符串查找,并尝试在AppLocalization.dart类中搜索匹配字符串名称?
知道如何将动态字符串参数传递给AppLocalizations.of(context)!
吗?
2条答案
按热度按时间zlhcx6iw1#
您所尝试做的,即在运行时通过方法的名称调用方法,称为反射,Flutter本机不支持这种方法(尽管有一些包尝试模拟这种方法,但我没有使用它们的经验)。
对您有效的方法是手动将API中的值Map到
AppLocalizations.of(context)
中的相应方法,尽管这可能很繁琐。t98cgbkg2#
创建了一个软件包来解决这个问题,因为flutter不支持这个。如果有帮助,请投票作为答案。
阅读文档以设置https://pub.dev/packages/localization_mapper_annotation