diff options
Diffstat (limited to 'src/countries.go')
| -rw-r--r-- | src/countries.go | 88 |
1 files changed, 60 insertions, 28 deletions
diff --git a/src/countries.go b/src/countries.go index b8a27bd..d168266 100644 --- a/src/countries.go +++ b/src/countries.go @@ -1,45 +1,77 @@ -package src +package app import ( "slices" "golang.org/x/text/collate" "golang.org/x/text/language" + + "git.thomasvoss.com/euro-cash.eu/src/i18n" ) type country struct { Code, Name string } -func sortedCountries(p Printer) []country { - /* TODO: Add Kosovo and Montenegro */ +var countryCodeToName = map[string]string{ + "ad": "Andorra", + "at": "Austria", + "be": "Belgium", + /* TODO(2026): Add Bulgaria */ + /* "bg": "Bulgaria", */ + "cy": "Cyprus", + "de": "Germany", + "ee": "Estonia", + "es": "Spain", + "fi": "Finland", + "fr": "France", + "gr": "Greece", + "hr": "Croatia", + "ie": "Ireland", + "it": "Italy", + "lt": "Lithuania", + "lu": "Luxembourg", + "lv": "Latvia", + "mc": "Monaco", + "mt": "Malta", + "nl": "Netherlands", + "pt": "Portugal", + "si": "Slovenia", + "sk": "Slovakia", + "sm": "San Marino", + "va": "Vatican City", +} + +func sortedCountries(p i18n.Printer) []country { xs := []country{ - {Code: "ad", Name: p.T("Andorra")}, - {Code: "at", Name: p.T("Austria")}, - {Code: "be", Name: p.T("Belgium")}, - {Code: "cy", Name: p.T("Cyprus")}, - {Code: "de", Name: p.T("Germany")}, - {Code: "ee", Name: p.T("Estonia")}, - {Code: "es", Name: p.T("Spain")}, - {Code: "fi", Name: p.T("Finland")}, - {Code: "fr", Name: p.T("France")}, - {Code: "gr", Name: p.T("Greece")}, - {Code: "hr", Name: p.T("Croatia")}, - {Code: "ie", Name: p.T("Ireland")}, - {Code: "it", Name: p.T("Italy")}, - {Code: "lt", Name: p.T("Lithuania")}, - {Code: "lu", Name: p.T("Luxembourg")}, - {Code: "lv", Name: p.T("Latvia")}, - {Code: "mc", Name: p.T("Monaco")}, - {Code: "mt", Name: p.T("Malta")}, - {Code: "nl", Name: p.T("Netherlands")}, - {Code: "pt", Name: p.T("Portugal")}, - {Code: "si", Name: p.T("Slovenia")}, - {Code: "sk", Name: p.T("Slovakia")}, - {Code: "sm", Name: p.T("San Marino")}, - {Code: "va", Name: p.T("Vatican City")}, + {Code: "ad", Name: p.GetC("Andorra", "Place Name")}, + {Code: "at", Name: p.GetC("Austria", "Place Name")}, + {Code: "be", Name: p.GetC("Belgium", "Place Name")}, + /* TODO(2026): Add Bulgaria */ + /* {Code: "bg", Name: p.GetC("Bulgaria", "Place Name")}, */ + {Code: "cy", Name: p.GetC("Cyprus", "Place Name")}, + {Code: "de", Name: p.GetC("Germany", "Place Name")}, + {Code: "ee", Name: p.GetC("Estonia", "Place Name")}, + {Code: "es", Name: p.GetC("Spain", "Place Name")}, + {Code: "fi", Name: p.GetC("Finland", "Place Name")}, + {Code: "fr", Name: p.GetC("France", "Place Name")}, + {Code: "gr", Name: p.GetC("Greece", "Place Name")}, + {Code: "hr", Name: p.GetC("Croatia", "Place Name")}, + {Code: "ie", Name: p.GetC("Ireland", "Place Name")}, + {Code: "it", Name: p.GetC("Italy", "Place Name")}, + {Code: "lt", Name: p.GetC("Lithuania", "Place Name")}, + {Code: "lu", Name: p.GetC("Luxembourg", "Place Name")}, + {Code: "lv", Name: p.GetC("Latvia", "Place Name")}, + {Code: "mc", Name: p.GetC("Monaco", "Place Name")}, + {Code: "mt", Name: p.GetC("Malta", "Place Name")}, + {Code: "nl", Name: p.GetC("Netherlands", "Place Name")}, + {Code: "pt", Name: p.GetC("Portugal", "Place Name")}, + {Code: "si", Name: p.GetC("Slovenia", "Place Name")}, + {Code: "sk", Name: p.GetC("Slovakia", "Place Name")}, + {Code: "sm", Name: p.GetC("San Marino", "Place Name")}, + {Code: "va", Name: p.GetC("Vatican City", "Place Name")}, } - c := collate.New(language.MustParse(p.Locale.Bcp)) + c := collate.New(language.MustParse(p.Bcp)) slices.SortFunc(xs, func(x, y country) int { return c.CompareString(x.Name, y.Name) }) |