我尝试根据用户位置显示应用程序的内容。为此,我试图从他们国家获得languageCode,但它不工作。检索到的languageCode对应于设备语言而不是国家。
我想说的是:
@override
Widget build(BuildContext context) {
return ScopedModel<UserModel>(
model: UserModel(),
child: ScopedModelDescendant<UserModel>(builder: (context, child, snapshot) {
return MaterialApp(
title: "APP",
debugShowCheckedModeBanner: false,
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: allTranslations.supportedLocales(),
);
}));
}其中,我的supportedLocales是包含所有国家/语言代码的列表:
Iterable<Locale> supportedLocales() => [
const Locale('ar','AE'),
const Locale('ar','BH'),
const Locale('ar','DZ'),
const Locale('ar','EG'),
const Locale('ar','IL'),
const Locale('ar','IQ'),
const Locale('ar','JO'),
const Locale('ar','KW'),
const Locale('ar','LB'),
const Locale('ar','LY'),
const Locale('ar','MA'),
const Locale('ar','MR'),
const Locale('ar','OM'),
const Locale('ar','PS'),
const Locale('ar','QA'),
...我正在尝试获取正确的languageCode来执行此操作:
String language = Localizations.localeOf(context).languageCode;但该方法始终忽略该位置,并采用设备默认语言:(
例如:我的朋友住在巴西,他的设备是en-CA语言,他看不到巴西的内容,因为语言代码总是'en‘而不是'pt’。
发布于 2021-04-16 14:39:25
import dart.io;
...
final localeStr = Platform.localeName; // 'en-US'https://stackoverflow.com/questions/55517874
复制相似问题