module Fake.Provider.Locale ( fakeLocale , localeMap ) where ------------------------------------------------------------------------------ import qualified Data.Map as M import Data.Monoid ------------------------------------------------------------------------------ import Fake.Combinators import Fake.Types ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- | Generates fake locales. "en_US", "de_CH", etc... fakeLocale :: FGen String fakeLocale = elements $ concat $ makeList <$> M.toList localeMap makeList :: (String, [String]) -> [String] makeList (k,vs) = map (\v -> k <> "_" <> v) vs ------------------------------------------------------------------------------ -- | A map of all the locales localeMap :: M.Map String [String] localeMap = M.fromList [ ("aa", ["DJ", "ER", "ET"]) , ("af", ["ZA"]) , ("ak", ["GH"]) , ("am", ["ET"]) , ("an", ["ES"]) , ("apn", ["IN"]) , ("ar", ["AE", "BH", "DJ", "DZ", "EG", "EH", "ER", "IL", "IN" ,"IQ", "JO", "KM", "KW", "LB", "LY", "MA", "MR", "OM" ,"PS", "QA", "SA", "SD", "SO", "SS", "SY", "TD", "TN", "YE"]) , ("as", ["IN"]) , ("ast", ["ES"]) , ("ayc", ["PE"]) , ("az", ["AZ", "IN"]) , ("be", ["BY"]) , ("bem", ["ZM"]) , ("ber", ["DZ", "MA"]) , ("bg", ["BG"]) , ("bhb", ["IN"]) , ("bho", ["IN"]) , ("bn", ["BD", "IN"]) , ("bo", ["CN", "IN"]) , ("br", ["FR"]) , ("brx", ["IN"]) , ("bs", ["BA"]) , ("byn", ["ER"]) , ("ca", ["AD", "ES", "FR", "IT"]) , ("ce", ["RU"]) , ("ckb", ["IQ"]) , ("cmn", ["TW"]) , ("crh", ["UA"]) , ("cs", ["CZ"]) , ("csb", ["PL"]) , ("cv", ["RU"]) , ("cy", ["GB"]) , ("da", ["DK"]) , ("de", ["AT", "BE", "CH", "DE", "LI", "LU"]) , ("doi", ["IN"]) , ("dv", ["MV"]) , ("dz", ["BT"]) , ("el", ["GR", "CY"]) , ("en", ["AG", "AU", "BW", "CA", "DK", "GB", "HK", "IE", "IN", "NG" ,"NZ", "PH", "SG", "US", "ZA", "ZM", "ZW"]) , ("eo", ["US"]) , ("es", ["AR", "BO", "CL", "CO", "CR", "CU", "DO", "EC", "ES", "GT" ,"HN", "MX", "NI", "PA", "PE", "PR", "PY", "SV", "US", "UY", "VE"]) , ("et", ["EE"]) , ("eu", ["ES", "FR"]) , ("fa", ["IR"]) , ("ff", ["SN"]) , ("fi", ["FI"]) , ("fil", ["PH"]) , ("fo", ["FO"]) , ("fr", ["CA", "CH", "FR", "LU"]) , ("fur", ["IT"]) , ("fy", ["NL", "DE"]) , ("ga", ["IE"]) , ("gd", ["GB"]) , ("gez", ["ER", "ET"]) , ("gl", ["ES"]) , ("gu", ["IN"]) , ("gv", ["GB"]) , ("ha", ["NG"]) , ("hak", ["TW"]) , ("he", ["IL"]) , ("hi", ["IN"]) , ("hne", ["IN"]) , ("hr", ["HR"]) , ("hsb", ["DE"]) , ("ht", ["HT"]) , ("hu", ["HU"]) , ("hy", ["AM"]) , ("ia", ["FR"]) , ("id", ["ID"]) , ("ig", ["NG"]) , ("ik", ["CA"]) , ("is", ["IS"]) , ("it", ["CH", "IT"]) , ("iu", ["CA"]) , ("iw", ["IL"]) , ("ja", ["JP"]) , ("ka", ["GE"]) , ("kk", ["KZ"]) , ("kl", ["GL"]) , ("km", ["KH"]) , ("kn", ["IN"]) , ("ko", ["KR"]) , ("kok", ["IN"]) , ("ks", ["IN"]) , ("ku", ["TR"]) , ("kw", ["GB"]) , ("ky", ["KG"]) , ("lb", ["LU"]) , ("lg", ["UG"]) , ("li", ["BE", "NL"]) , ("lij", ["IT"]) , ("ln", ["CD"]) , ("lo", ["LA"]) , ("lt", ["LT"]) , ("lv", ["LV"]) , ("lzh", ["TW"]) , ("mag", ["IN"]) , ("mai", ["IN"]) , ("mg", ["MG"]) , ("mhr", ["RU"]) , ("mi", ["NZ"]) , ("mk", ["MK"]) , ("ml", ["IN"]) , ("mn", ["MN"]) , ("mni", ["IN"]) , ("mr", ["IN"]) , ("ms", ["MY"]) , ("mt", ["MT"]) , ("my", ["MM"]) , ("nan", ["TW"]) , ("nb", ["NO"]) , ("nds", ["DE", "NL"]) , ("ne", ["NP"]) , ("nhn", ["MX"]) , ("niu", ["NU", "NZ"]) , ("nl", ["AW", "BE", "NL"]) , ("nn", ["NO"]) , ("nr", ["ZA"]) , ("nso", ["ZA"]) , ("oc", ["FR"]) , ("om", ["ET", "KE"]) , ("or", ["IN"]) , ("os", ["RU"]) , ("pa", ["IN", "PK"]) , ("pap", ["AN", "AW", "CW"]) , ("pl", ["PL"]) , ("ps", ["AF"]) , ("pt", ["BR", "PT"]) , ("quz", ["PE"]) , ("raj", ["IN"]) , ("ro", ["RO"]) , ("ru", ["RU", "UA"]) , ("rw", ["RW"]) , ("sa", ["IN"]) , ("sat", ["IN"]) , ("sc", ["IT"]) , ("sd", ["IN", "PK"]) , ("se", ["NO"]) , ("shs", ["CA"]) , ("si", ["LK"]) , ("sid", ["ET"]) , ("sk", ["SK"]) , ("sl", ["SI"]) , ("so", ["DJ", "ET", "KE", "SO"]) , ("sq", ["AL", "ML"]) , ("sr", ["ME", "RS"]) , ("ss", ["ZA"]) , ("st", ["ZA"]) , ("sv", ["FI", "SE"]) , ("sw", ["KE", "TZ"]) , ("szl", ["PL"]) , ("ta", ["IN", "LK"]) , ("tcy", ["IN"]) , ("te", ["IN"]) , ("tg", ["TJ"]) , ("th", ["TH"]) , ("the", ["NP"]) , ("ti", ["ER", "ET"]) , ("tig", ["ER"]) , ("tk", ["TM"]) , ("tl", ["PH"]) , ("tn", ["ZA"]) , ("tr", ["CY", "TR"]) , ("ts", ["ZA"]) , ("tt", ["RU"]) , ("ug", ["CN"]) , ("uk", ["UA"]) , ("unm", ["US"]) , ("ur", ["IN", "PK"]) , ("uz", ["UZ"]) , ("ve", ["ZA"]) , ("vi", ["VN"]) , ("wa", ["BE"]) , ("wae", ["CH"]) , ("wal", ["ET"]) , ("wo", ["SN"]) , ("xh", ["ZA"]) , ("yi", ["US"]) , ("yo", ["NG"]) , ("yue", ["HK"]) , ("zh", ["CN", "HK", "SG", "TW"]) , ("zu", ["ZA"]) ]