Flutter Supported Locales

The complete list of locales Flutter's flutter_localizations supports — 87 entries with language codes, country codes, native names and RTL flags. Search, filter, and copy Locale() snippets straight into your app.

87 of 87
LanguageNative nameLocaleDartDir
AfrikaansAfrikaansafLocale('af')LTR
AmharicአማርኛamLocale('am')LTR
ArabicالعربيةarLocale('ar')RTL
AzerbaijaniAzərbaycanazLocale('az')LTR
BelarusianБеларускаяbeLocale('be')LTR
BulgarianБългарскиbgLocale('bg')LTR
BengaliবাংলাbnLocale('bn')LTR
BosnianBosanskibsLocale('bs')LTR
CatalanCatalàcaLocale('ca')LTR
CzechČeštinacsLocale('cs')LTR
DanishDanskdaLocale('da')LTR
GermanDeutschdeLocale('de')LTR
German (Switzerland)Deutsch (Schweiz)de_CHLocale('de', 'CH')LTR
GreekΕλληνικάelLocale('el')LTR
EnglishEnglishenLocale('en')LTR
English (United States)English (US)en_USLocale('en', 'US')LTR
English (United Kingdom)English (UK)en_GBLocale('en', 'GB')LTR
English (Australia)English (AU)en_AULocale('en', 'AU')LTR
English (Canada)English (CA)en_CALocale('en', 'CA')LTR
English (India)English (IN)en_INLocale('en', 'IN')LTR
SpanishEspañolesLocale('es')LTR
Spanish (Mexico)Español (México)es_MXLocale('es', 'MX')LTR
Spanish (United States)Español (EE. UU.)es_USLocale('es', 'US')LTR
EstonianEestietLocale('et')LTR
BasqueEuskaraeuLocale('eu')LTR
PersianفارسیfaLocale('fa')RTL
FinnishSuomifiLocale('fi')LTR
FilipinoFilipinofilLocale('fil')LTR
FrenchFrançaisfrLocale('fr')LTR
French (Canada)Français (Canada)fr_CALocale('fr', 'CA')LTR
GalicianGalegoglLocale('gl')LTR
GujaratiગુજરાતીguLocale('gu')LTR
HebrewעבריתheLocale('he')RTL
Hindiहिन्दीhiLocale('hi')LTR
CroatianHrvatskihrLocale('hr')LTR
HungarianMagyarhuLocale('hu')LTR
ArmenianՀայերենhyLocale('hy')LTR
IndonesianBahasa IndonesiaidLocale('id')LTR
IcelandicÍslenskaisLocale('is')LTR
ItalianItalianoitLocale('it')LTR
Japanese日本語jaLocale('ja')LTR
GeorgianქართულიkaLocale('ka')LTR
KazakhҚазақkkLocale('kk')LTR
Khmerខ្មែរkmLocale('km')LTR
Kannadaಕನ್ನಡknLocale('kn')LTR
Korean한국어koLocale('ko')LTR
KyrgyzКыргызkyLocale('ky')LTR
LaoລາວloLocale('lo')LTR
LithuanianLietuviųltLocale('lt')LTR
LatvianLatviešulvLocale('lv')LTR
MacedonianМакедонскиmkLocale('mk')LTR
MalayalamമലയാളംmlLocale('ml')LTR
MongolianМонголmnLocale('mn')LTR
MarathiमराठीmrLocale('mr')LTR
MalayBahasa MelayumsLocale('ms')LTR
Burmeseမြန်မာmyLocale('my')LTR
NepaliनेपालीneLocale('ne')LTR
DutchNederlandsnlLocale('nl')LTR
NorwegianNorsknoLocale('no')LTR
Odiaଓଡ଼ିଆorLocale('or')LTR
PunjabiਪੰਜਾਬੀpaLocale('pa')LTR
PolishPolskiplLocale('pl')LTR
PashtoپښتوpsLocale('ps')RTL
PortuguesePortuguêsptLocale('pt')LTR
Portuguese (Portugal)Português (Portugal)pt_PTLocale('pt', 'PT')LTR
RomanianRomânăroLocale('ro')LTR
RussianРусскийruLocale('ru')LTR
SinhalaසිංහලsiLocale('si')LTR
SlovakSlovenčinaskLocale('sk')LTR
SlovenianSlovenščinaslLocale('sl')LTR
AlbanianShqipsqLocale('sq')LTR
SerbianСрпскиsrLocale('sr')LTR
SwedishSvenskasvLocale('sv')LTR
SwahiliKiswahiliswLocale('sw')LTR
Tamilதமிழ்taLocale('ta')LTR
TeluguతెలుగుteLocale('te')LTR
ThaiไทยthLocale('th')LTR
TagalogTagalogtlLocale('tl')LTR
TurkishTürkçetrLocale('tr')LTR
UkrainianУкраїнськаukLocale('uk')LTR
UrduاردوurLocale('ur')RTL
UzbekOʻzbekuzLocale('uz')LTR
VietnameseTiếng ViệtviLocale('vi')LTR
Chinese (Simplified)简体中文zhLocale('zh')LTR
Chinese (Traditional)繁體中文zh_TWLocale('zh', 'TW')LTR
Chinese (Hong Kong)繁體中文 (香港)zh_HKLocale('zh', 'HK')LTR
ZuluisiZuluzuLocale('zu')LTR

supportedLocales (none selected — showing first 3)

Tick “add” on rows above to build your app's supportedLocales list, then paste it into your MaterialApp.

supportedLocales: const [
  Locale('af'),
  Locale('am'),
  Locale('ar'),
],

Managing translations across all these locales by hand?

FlutterLocalisation auto-fills missing translations with AI, keeps every locale in sync across your team, and pushes updates over-the-air.

Start Free →

How to add supported locales in Flutter

Flutter apps declare the languages they support through MaterialApp.supportedLocales together with the localization delegates from flutter_localizations. Each entry is a Locale built from a language code and an optional region code:

return MaterialApp(
  localizationsDelegates: AppLocalizations.localizationsDelegates,
  supportedLocales: AppLocalizations.supportedLocales,
  // or list them explicitly:
  // supportedLocales: const [Locale('en'), Locale('es'), Locale('ar')],
);

Right-to-left (RTL) locales

Flutter automatically flips layout direction for RTL languages — Arabic (ar), Hebrew (he), Persian (fa), Urdu (ur) and Pashto (ps). Use Directionality and direction-aware widgets (e.g. EdgeInsetsDirectional) so your UI mirrors correctly.

Frequently asked questions

How many locales does Flutter support?

Flutter's flutter_localizations package (GlobalMaterialLocalizations) ships built-in translations for 80+ locales, including regional variants like en_US, en_GB, es_MX, pt_PT, and zh_TW. You can also add your own locales for any language by providing the corresponding .arb files.

What is a Flutter Locale object?

A Locale identifies a language and optional region. You create one with Locale('es') for Spanish, or Locale('es', 'MX') for Mexican Spanish. You pass the list of locales your app supports to MaterialApp's supportedLocales property.

What is the difference between a language code and a country code?

The language code (like en, es, ar) is the ISO 639 language subtag. The country/region code (like US, MX, EG) is the ISO 3166 region subtag. Together they form a locale identifier such as en_US. Region only matters when translations differ between regions.

How do I set supportedLocales in Flutter?

Pass a list of Locale objects to MaterialApp.supportedLocales and add the localization delegates. Use the “Copy supportedLocales” button on this page to generate the Dart list for the locales you select.

Which Flutter locales are right-to-left (RTL)?

Arabic (ar), Hebrew (he), Persian/Farsi (fa), Urdu (ur), and Pashto (ps) are right-to-left. Flutter handles RTL layout automatically when the active locale is RTL — use the “RTL only” filter above to see them all.

Related Flutter localization tools