language_code 0.6.0-rc.1 copy "language_code: ^0.6.0-rc.1" to clipboard
language_code: ^0.6.0-rc.1 copied to clipboard

Get the current language code and Locale of the device. Also includes almost the language codes with English names and native names.

Language Code #

codecov

A Dart package for working with language codes and device locales.
Includes a complete set of ISO 639-1 (2-letter) and ISO 639-2 (3-letter) codes with English and native names.


Features #

  • Detect the device’s current language and locale
  • Convert between Locale and LanguageCodes
  • Look up by code, English name, or native name
  • Includes almost all ISO 639 codes with English + native names
  • Test-friendly (override locale or code in tests)
  • Auto-generated from Wikipedia’s ISO 639-2 list

Usage #

Get the current device language #

final languageCode = LanguageCode.code; // as LanguageCodes
final locale = LanguageCode.locale;     // as Locale

Get the raw device locale #

May not be supported by LanguageCodes:

final rawLocale = LanguageCode.rawLocale;

Get language details #

var language = LanguageCodes.en;
print(language.englishName); // 'English'
print(language.nativeName);  // 'English'

language = LanguageCodes.vi;
print(language.englishName); // 'Vietnamese'
print(language.nativeName);  // 'Tiếng Việt'

Convert values to LanguageCodes #

LanguageCodes.fromLocale(Locale('vi'));        // → LanguageCodes.vi
LanguageCodes.fromCode('vi');                  // → LanguageCodes.vi
LanguageCodes.fromEnglishName('Vietnamese');   // → Iterable<LanguageCodes>
LanguageCodes.fromNativeName('Tiếng Việt');    // → Iterable<LanguageCodes>

⚠️ If no matching element is found, the methods throw a StateError unless an orElse is provided.

Optional default fallback #

final code = LanguageCode.tryCode(defaultCode: LanguageCodes.en);

Fallback order:

  1. Full rawLocale
  2. rawLocale.languageCode
  3. defaultCode (default: LanguageCodes.und)

Testing #

Override values in unit tests:

LanguageCode.setTestCode(LanguageCodes.vi);
// or
LanguageCode.setTestLocale(const Locale('fr'));

Reset with null to restore normal behavior.

⚠️ You can only use one override at a time.


Contributions #

Missing or incorrect language? Please open an issue or create a PR. The codes are auto-generated via a crawler, but feedback is always welcome.

17
likes
0
points
9.95k
downloads

Publisher

verified publisherlamnhan.dev

Weekly Downloads

Get the current language code and Locale of the device. Also includes almost the language codes with English names and native names.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on language_code