How to get the current locale in Flutter using the GetX package?

Viewed 11175

The example https://pub.dev/packages/get/example only shows setting the locale from a string manually:

void main() {
  runApp(GetMaterialApp(
    ...
    locale: Locale('pt', 'BR'),
    ...

If I don't use "locale: Locale ('pt', 'BR')", then code like Text("title".tr) don't work. So, I need setup current locale to "locale" property, but how get current locale?

6 Answers

To get Device Current Locale:

import 'package:get/get.dart';

return GetMaterialApp(
     locale: Get.deviceLocale,   //returns Locale('<language code>', '<country code>')
);

To get the App Current Locale:

import 'package:get/get.dart';

return GetMaterialApp(
     locale: Get.locale,   //returns Locale('<language code>', '<country code>')
);

GetX | Flutter

Sample Code

The authors of the package added information about this in Readme (https://pub.dev/packages/get#internationalization):

To read the system locale, you could use window.locale.

import 'dart:ui' as ui;

return GetMaterialApp(
    locale: ui.window.locale,
);

if u need device locale, u can use

return GetMaterialApp(
     locale: Get.deviceLocale,
);

but u need current app locale u must be use

final locale = Get.locale;

You can use Get.locale read only property defined inside the LocalesIntl extension from package:get/get_utils/src/extensions/internacionalization.dart

final locale = Get.locale;

If you want current system locale, window.locale and add import 'dart:ui';

return GetMaterialApp( locale: Get.deviceLocale, );

Related