首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取设备语言而不是languageCode的flutter_localizations包

获取设备语言而不是languageCode的flutter_localizations包
EN

Stack Overflow用户
提问于 2019-04-04 22:00:36
回答 1查看 2.2K关注 0票数 0

我尝试根据用户位置显示应用程序的内容。为此,我试图从他们国家获得languageCode,但它不工作。检索到的languageCode对应于设备语言而不是国家。

我想说的是:

代码语言:javascript
复制
@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是包含所有国家/语言代码的列表:

代码语言:javascript
复制
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来执行此操作:

代码语言:javascript
复制
String language = Localizations.localeOf(context).languageCode;

但该方法始终忽略该位置,并采用设备默认语言:(

例如:我的朋友住在巴西,他的设备是en-CA语言,他看不到巴西的内容,因为语言代码总是'en‘而不是'pt’。

EN

回答 1

Stack Overflow用户

发布于 2021-04-16 14:39:25

代码语言:javascript
复制
import dart.io;

...
final localeStr = Platform.localeName; // 'en-US'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55517874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档