Dash Flags Banner

Dash Flags

Platform Pub Package License: BSD-3-Clause
GitHub code size in bytes Star on GitHub GitHub Open Issues GitHub Last Commit Date


๐Ÿ’ก 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

Animated Example
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 Code or Language Code as Strings, then you can use Country.fromCode(countryCode) or Language.fromCode(languageCode).
  • If the the Country Code or Language Code consists of more than one part, then you will find it separated by an underscore, for example: sh_ac and en_au.
  • If the the Country Code or Language Code is a reserved keyword in Dart, then you will find it prefixed with c_ or l_ respectively, for example: c_as and l_as.
  • If an unknown Country Code or Language Code used 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 Timezone contains minus - sign, then you will find it replaced with _minus_, for example: US_East_minus_Indiana, US_Indiana_minus_Starke, and Asia_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, and Etc_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, and Africa_Johannesburg_SZ
  • If you have the Timezone as String and you want to get the corresponding Timezone 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')

โœ… 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 current Country or Language, 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.

Blade Flags Banner

๐Ÿ’ช๐Ÿป 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.