A Flutter package for displaying Countries and Languages flags π
This package provides a set of widgets and enums to display flags of countries and languages inspired by blade-flags package for Laravel by Mohamed Ashraf from Egypt.
The package uses flags from TwEmoji Countries & Languages Flags by Twitter
This GIF is taken from the Example Project
Import the package:
import 'package:dash_flags/dash_flags.dart';
Display a flag of a country:
CountryFlag(
country: Country.eg, // OR Country.fromCode('eg')
height: 50,
)
Display a flag of a language:
LanguageFlag(
language: Language.ar, // OR Language.fromCode('ar')
height: 50,
)
Display a flag of a timezone:
TimezoneFlag(
timezone: Timezone.africa_cairo, // OR Timezone.fromString('Africa/Cairo')
height: 50,
)
π You can checkout the complete API Reference here
- If you have the
Country Code
orLanguage Code
asStrings
, then you can useCountry.fromCode(countryCode)
orLanguage.fromCode(languageCode)
. - If the the
Country Code
orLanguage Code
consists of more than one part, then you will find it separated by anunderscore
, for example:sh_ac
anden_au
. - If the the
Country Code
orLanguage Code
is a reserved keyword in Dart, then you will find it prefixed withc_
orl_
respectively, for example:c_as
andl_as
. - If an unknown
Country Code
orLanguage Code
used with.fromCode(String)
method, an unknown flag would be displayed.
- The forward slash sign
/
in the name of the timezone is replaced with an underscore_
. - If the
Timezone
contains minus-
sign, then you will find it replaced with_minus_
, for example:US_East_minus_Indiana
,US_Indiana_minus_Starke
, andAsia_Ust_minus_Nera
- If the
Timezone
contains plus+
sign, then you will find it replaced_plus_
, for example:Etc_GMT_plus_0
,Etc_GMT_plus_1
, andEtc_GMT_plus_10
- If the
Timezone
is associated with more than one country, then you will find a default enum member for it and other enum members for each country, for example:Africa_Johannesburg
,Africa_Johannesburg_ZA
,Africa_Johannesburg_LS
, andAfrica_Johannesburg_SZ
- If you have the
Timezone
asString
and you want to get the correspondingTimezone
enum member, then you can use.fromString()
method. - If you want to use the
Timezone
with its original name without the above changes, then use.fromString()
method, for example:Timezone.fromString('Africa/Cairo')
- Add Tests π§ͺ
- Add a simple way to use the raw svg assets π¨
- Make an online Gallery with all the available flags π
- Add the ability to use the flags from the internet, such as,
CountryFlag.network(...)
π - Add the ability to automatically detect the current
Country
orLanguage
, such as,Country.autoDetect
&Language.autoDetect
π΅π»ββοΈ
If you are looking for a Laravel Version of this package, check blade-flags, the original parent package of this library which that provides a set of flags for all countries and languages by Mohamed Ashraf from Egypt.
I would be happy to have your contributions π
If you find a bug or want a feature, but don't know how to fix/implement it, please fill an Issue.
If you fixed a bug or implemented a feature, please send a Pull Request.
Made with contrib.rocks.