Dash Flags
๐ก Overview
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
๐ป Usage
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
๐ Notes
Countries & Languages Codes:
- If you have the
Country CodeorLanguage CodeasStrings, then you can useCountry.fromCode(countryCode)orLanguage.fromCode(languageCode). - If the the
Country CodeorLanguage Codeconsists of more than one part, then you will find it separated by anunderscore, for example:sh_acanden_au. - If the the
Country CodeorLanguage Codeis a reserved keyword in Dart, then you will find it prefixed withc_orl_respectively, for example:c_asandl_as. - If an unknown
Country CodeorLanguage Codeused with.fromCode(String)method, an unknown flag would be displayed.
Timezones Codes:
- The forward slash sign
/in the name of the timezone is replaced with an underscore_. - If the
Timezonecontains 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
Timezonecontains 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
Timezoneis 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
TimezoneasStringand you want to get the correspondingTimezoneenum member, then you can use.fromString()method. - If you want to use the
Timezonewith its original name without the above changes, then use.fromString()method, for example:Timezone.fromString('Africa/Cairo')
โ Roadmap
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 currentCountryorLanguage, such as,Country.autoDetect&Language.autoDetect๐ต๐ปโโ๏ธ
๐ Laravel Version
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.
๐ช๐ป Contribution Guide
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.
Libraries
- dash_flags
- A package for displaying Countries and Languages flags.