Search packages, repositories and app categories

Package detailsv2.0.0

locale_plus

LocalePlus allows easy access to native device locale data in Flutter apps. Includes language, country code, time zone, and number formatting preferences.

AndroidiOS
30-day downloads
6.5K
Likes
33
Pub points
140

Install package

flutter pub add locale_plus

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

LocalePlus is a Flutter package that provides seamless access to native device locale information, including language, country code, time zone, and number formatting preferences. It simplifies localization by retrieving system-level locale data without requiring complex setup. Ideal for apps needing accurate regional settings for dynamic content rendering, date/time display, and currency formatting. The package integrates smoothly with Flutter’s internationalization framework and supports both Android and iOS platforms.

Use cases

  • Dynamic UI based on user region
  • Displaying localized dates and times
  • Formatting numbers and currencies
  • Supporting multi-language apps
  • Adjusting app behavior by locale
  • Enhancing accessibility through regional settings

Key features

  • Retrieves device-native locale data
  • Supports language, country, timezone, and formatting
  • Simple API with minimal setup
  • Cross-platform (Android & iOS)
  • Lightweight and dependency-free
  • Auto-detects user's preferred locale

Suitable for

  • Apps requiring regional customization
  • Internationalized applications
  • Financial or travel apps
  • User-facing apps with localization needs
  • Developers seeking quick locale access
  • Projects using Flutter's i18n features

Considerations

  • Relies on device system settings
  • Does not handle translation strings
  • Limited to reading locale data
  • No built-in fallback mechanisms
  • Requires manual handling of locale changes
  • Not suitable for full i18n workflows alone

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

Locale Plus

LocalePlus allows easy access to native device locale data in Flutter apps. Includes language, country code, time zone, and number formatting preferences.

Table of Content

Overview

LocalePlus is a Flutter package that allows developers to easily retrieve data from the native device locale settings. With LocalePlus, developers can access information such as the device's language, country code, and time zone, as well as the device's number formatting preferences such as grouping and decimal separator. This makes it easy to build internationalized apps that provide a personalized experience for each user. Whether you're building a financial app that needs to display numbers in the user's local format or a social media app that needs to display timestamps in the user's time zone, LocalePlus has you covered. With a simple and intuitive API, LocalePlus is the perfect tool for any Flutter developer looking to add localization to their app.

Requirements

  • Dart sdk: ">=3.10.0 <4.0.0"
  • Flutter: ">=3.38.0"
  • Android: minSdkVersion 16
  • iOS 13.0+

The iOS plugin supports both Swift Package Manager and CocoaPods.

Installation

with Flutter:

$ flutter pub add locale_plus

This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get):

dependencies:
  locale_plus: ^2.0.0

Usage

Patch the locales with the users' group and decimal seperators

This function patches all locales in flutter, so that you can use the decimal seperator and group seperator from numberFormatSymbols after the patch is complete. The patchNumberSeperators function patches the locales on android and ios. The shouldPatchForSamsungKeyboard can be enabled, to patch for Samsung keyboards on android phones (they only allow for a . as input). It is safe to call on MacOS, Windows, Linux and web, but it does not patch the locales.

import 'package:locale_plus/locale_plus.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await PatchAllLocales.patchNumberSeperators(
    shouldPatchForSamsungKeyboard: true,
  );
  runApp(const MyApp());
}

Get if the user is using a samsung keyboard

final decimalSeparator = await LocalePlus().isUsingSamsungKeyboard();

Get Decimal & Grouping Separator

final decimalSeparator = await LocalePlus().getDecimalSeparator();
final groupingSeparator = await LocalePlus().getGroupingSeparator();

Get Language & Region Code

final regionCode = await LocalePlus().getRegionCode();
final languageCode = await LocalePlus().getLanguageCode();

Get Seconds from GMT

final secondsFromGMT = await LocalePlus().getSecondsFromGMT();

Is Device Using 24 hour time and Current Locale AM PM Symbols

final is24HourTime = await LocalePlus().is24HourTime();
final amSymbol = await LocalePlus().getAmSymbol();
final pmSymbol = await LocalePlus().getPmSymbol();

Is Device Using Metric System

final usesMetricSystem = await LocalePlus().usesMetricSystem();

Get TimeZone Identifier

final timeZoneIdentifier = await LocalePlus().getTimeZoneIdentifier();

Get First Day Of Week

final firstDayOfWeek = await LocalePlus().getFirstDayOfWeek();

Get Date format pattern

final dateFormatPattern = await LocalePlus().getDateFormatPattern();

Author

Gökberk Bardakçı, Uygar İşiçelik

Contributors

Bent Engbers, Renat Shakhmatov, Giovanni Lattanzio, Gökhan Çavuş

License

LocalePlus is available under the MIT license. See the LICENSE file for more info.

Categories

Dependencies

Dependency list 3 items

Source repository

Projects using this package

No data available yet.