gpt4 book ai didi

flutter - 在 Dart 中显示本地化标签的问题

转载 作者:IT王子 更新时间:2023-10-29 07:09:03 29 4
gpt4 key购买 nike

我无法在我的应用中设置本地化。

我正在尝试在我的应用中添加语言设置和相关的本地化。我能够设置语言选项。我正在使用“intl”插件进行国际化。我的代码在几乎所有 UI .dart 文件中看起来如下所示。

AppTranslations.of(context).accountNumber +
" ${accountDetails.accountNumber}",

setter/getter 设置为:

String get accountNumber => _text("account_number");

String _text(String key) {
return _localisedValues[key] ?? _defaultLocaleValues[key];
}

我还放置了包含 3 种不同语言的本地化标签的 json 文件。但是,定位插件似乎存在一些实例化问题。代码没有进入 getter 行。

如有任何帮助,我们将不胜感激。

最佳答案

AppTranslations.of(context) 是访问本地化标签的标准方式。你对实例化是正确的。如果程序没有转到 getter 行,则表示代码初始部分的某处存在问题。它可能在 main.dart 中。

检查您在哪里初始化 LocalStorageProvider()。如果它没有初始化,那就是问题所在。假设您使用的是 MaterialApp,请尝试以下建议:使用 LocalStorageProvider() 包装 MaterialApp。我的意思是,在主小部件构建中,返回 LocalStorageProvider() 并将您现有的 MaterialApp() 代码作为子项传递给它。下面的示例(请忽略主题等,因为我只是从我的一个应用程序中复制了代码):

@override
Widget build(BuildContext context) {
LocalStorage localStorage = LocalStorage();
return LocalStorageProvider(
localStorage: localStorage,
child: LocaleProvider(
localStorage: localStorage,
localeWrapper: LocaleWrapper(),
child: Builder(
builder: (context) {
return AnimatedBuilder(
animation: LocaleProvider.of(context).localeWrapper,
builder: (context, _) {
return MaterialApp(
onGenerateTitle: (context) =>
AppTranslations.of(context).appName,
locale: LocaleProvider.of(context).locale,
title: "App Title",
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MapsDemo(),
localizationsDelegates: [
AppTranslationsDelegate(
LocaleProvider.of(context).supportedLanguagesCodes,
),
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: LocaleProvider.of(context).supportedLocales,
);
},
);
},
),
),
);
}

关于flutter - 在 Dart 中显示本地化标签的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57353113/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com