diff --git a/CLAUDE.md b/CLAUDE.md index b6de417..355c1ca 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -63,4 +63,4 @@ BeamLabCountries is a compile-time data library providing ISO 3166 country infor - `priv/data/unions/{CODE}.yaml` - Union/organization data files (13 unions: eu, nato, g7, g20, etc.) - `priv/data/languages.json` - Language codes and names (184 languages) - `priv/data/locales.json` - Regional locale data (85 locales: en-US, es-ES, pt-BR, etc.) -- `priv/data/locales/{LOCALE}.json` - Country name translations (15 locales: ar, de, en, es, fr, it, ja, ko, nl, pl, pt, ru, sv, uk, zh) +- `priv/data/locales/{LOCALE}.json` - Country name translations (16 locales: ar, de, en, es, et, fr, it, ja, ko, nl, pl, pt, ru, sv, uk, zh) diff --git a/README.md b/README.md index 77efe69..d23630c 100644 --- a/README.md +++ b/README.md @@ -262,7 +262,7 @@ Translations.get_all_names("IT") # Check supported locales Translations.supported_locales() -# ["ar", "de", "en", "es", "fr", "it", "ja", "ko", "nl", "pl", "pt", "ru", "sv", "uk", "zh"] +# ["ar", "de", "en", "es", "et", "fr", "it", "ja", "ko", "nl", "pl", "pt", "ru", "sv", "uk", "zh"] Translations.locale_supported?("ja") # true diff --git a/dev_docs/2026-03-28_roadmap.md b/dev_docs/2026-03-28_roadmap.md index 299477a..f656123 100644 --- a/dev_docs/2026-03-28_roadmap.md +++ b/dev_docs/2026-03-28_roadmap.md @@ -5,7 +5,8 @@ Improvement proposals and future direction for BeamLabCountries. ## Data Improvements ### Translation Locales -Currently 15 locales (ar, de, en, es, fr, it, ja, ko, nl, pl, pt, ru, sv, uk, zh). +Currently 16 locales (ar, de, en, es, et, fr, it, ja, ko, nl, pl, pt, ru, sv, uk, zh). +- [x] Add Estonian (et) - [ ] Add Hindi (hi) - [ ] Add Turkish (tr) - [ ] Add Thai (th) diff --git a/lib/translations.ex b/lib/translations.ex index 112e526..63c4859 100644 --- a/lib/translations.ex +++ b/lib/translations.ex @@ -2,7 +2,7 @@ defmodule BeamLabCountries.Translations do @moduledoc """ Module for looking up country names in different languages. - Supports 15 languages: ar, de, en, es, fr, it, ja, ko, nl, pl, pt, ru, sv, uk, zh + Supports 16 languages: ar, de, en, es, et, fr, it, ja, ko, nl, pl, pt, ru, sv, uk, zh ## Examples @@ -18,7 +18,7 @@ defmodule BeamLabCountries.Translations do """ @locales_path Path.join([:code.priv_dir(:beamlab_countries), "data", "locales"]) - @supported_locales ~w(ar de en es fr it ja ko nl pl pt ru sv uk zh) + @supported_locales ~w(ar de en es et fr it ja ko nl pl pt ru sv uk zh) # Load all locale files at compile time @translations @supported_locales diff --git a/priv/data/locales/et.json b/priv/data/locales/et.json new file mode 100644 index 0000000..804da5a --- /dev/null +++ b/priv/data/locales/et.json @@ -0,0 +1 @@ +{"AD":"Andorra","AE":"Araabia Ühendemiraadid","AF":"Afganistan","AG":"Antigua ja Barbuda","AI":"Anguilla","AL":"Albaania","AM":"Armeenia","AN":"Hollandi Antillid","AO":"Angola","AQ":"Antarktika","AR":"Argentina","AS":"Ameerika Samoa","AT":"Austria","AU":"Austraalia","AW":"Aruba","AX":"Ahvenamaa","AZ":"Aserbaidžaan","BA":"Bosnia ja Hertsegoviina","BB":"Barbados","BD":"Bangladesh","BE":"Belgia","BF":"Burkina Faso","BG":"Bulgaaria","BH":"Bahrein","BI":"Burundi","BJ":"Benin","BL":"Saint-Barthélemy","BM":"Bermuda","BN":"Brunei","BO":"Boliivia","BQ":"Kariibi Madalmaad","BR":"Brasiilia","BS":"Bahama","BT":"Bhutan","BV":"Bouvet’ saar","BW":"Botswana","BY":"Valgevene","BZ":"Belize","CA":"Kanada","CC":"Kookossaared","CD":"Kongo DV","CF":"Kesk-Aafrika Vabariik","CG":"Kongo Vabariik","CH":"Šveits","CI":"Elevandiluurannik","CK":"Cooki saared","CL":"Tšiili","CM":"Kamerun","CN":"Hiina","CO":"Colombia","CR":"Costa Rica","CU":"Kuuba","CV":"Roheneemesaared","CW":"Curaçao","CX":"Jõulusaar","CY":"Küpros","CZ":"Tšehhi","DE":"Saksamaa","DJ":"Djibouti","DK":"Taani","DM":"Dominica","DO":"Dominikaani Vabariik","DZ":"Alžeeria","EC":"Ecuador","EE":"Eesti","EG":"Egiptus","EH":"Lääne-Sahara","ER":"Eritrea","ES":"Hispaania","ET":"Etioopia","FI":"Soome","FJ":"Fidži","FK":"Falklandi saared","FM":"Mikroneesia","FO":"Fääri saared","FR":"Prantsusmaa","GA":"Gabon","GB":"Ühendkuningriik","GD":"Grenada","GE":"Gruusia","GF":"Prantsuse Guajaana","GG":"Guernsey","GH":"Ghana","GI":"Gibraltar","GL":"Gröönimaa","GM":"Gambia","GN":"Guinea","GP":"Guadeloupe","GQ":"Ekvatoriaal-Guinea","GR":"Kreeka","GS":"Lõuna-Georgia ja Lõuna-Sandwichi saared","GT":"Guatemala","GU":"Guam","GW":"Guinea-Bissau","GY":"Guyana","HK":"Hongkongi erihalduspiirkond","HM":"Heardi ja McDonaldi saared","HN":"Honduras","HR":"Horvaatia","HT":"Haiti","HU":"Ungari","ID":"Indoneesia","IE":"Iirimaa","IL":"Iisrael","IM":"Mani saar","IN":"India","IO":"Briti India ookeani ala","IQ":"Iraak","IR":"Iraan","IS":"Island","IT":"Itaalia","JE":"Jersey","JM":"Jamaica","JO":"Jordaania","JP":"Jaapan","KE":"Keenia","KG":"Kõrgõzstan","KH":"Kambodža","KI":"Kiribati","KM":"Komoorid","KN":"Saint Kitts ja Nevis","KP":"Põhja-Korea","KR":"Lõuna-Korea","KW":"Kuveit","KY":"Kaimanisaared","KZ":"Kasahstan","LA":"Laos","LB":"Liibanon","LC":"Saint Lucia","LI":"Liechtenstein","LK":"Sri Lanka","LR":"Libeeria","LS":"Lesotho","LT":"Leedu","LU":"Luksemburg","LV":"Läti","LY":"Liibüa","MA":"Maroko","MC":"Monaco","MD":"Moldova","ME":"Montenegro","MF":"Saint-Martin","MG":"Madagaskar","MH":"Marshalli Saared","MK":"Põhja-Makedoonia","ML":"Mali","MM":"Myanmar (Birma)","MN":"Mongoolia","MO":"Macau erihalduspiirkond","MP":"Põhja-Mariaanid","MQ":"Martinique","MR":"Mauritaania","MS":"Montserrat","MT":"Malta","MU":"Mauritius","MV":"Maldiivid","MW":"Malawi","MX":"Mehhiko","MY":"Malaisia","MZ":"Mosambiik","NA":"Namiibia","NC":"Uus-Kaledoonia","NE":"Niger","NF":"Norfolk","NG":"Nigeeria","NI":"Nicaragua","NL":"Holland","NO":"Norra","NP":"Nepal","NR":"Nauru","NU":"Niue","NZ":"Uus-Meremaa","OM":"Omaan","PA":"Panama","PE":"Peruu","PF":"Prantsuse Polüneesia","PG":"Paapua Uus-Guinea","PH":"Filipiinid","PK":"Pakistan","PL":"Poola","PM":"Saint-Pierre ja Miquelon","PN":"Pitcairni saared","PR":"Puerto Rico","PS":"Palestiina alad","PT":"Portugal","PW":"Belau","PY":"Paraguay","QA":"Katar","RE":"Réunion","RO":"Rumeenia","RS":"Serbia","RU":"Venemaa","RW":"Rwanda","SA":"Saudi Araabia","SB":"Saalomoni Saared","SC":"Seišellid","SD":"Sudaan","SE":"Rootsi","SG":"Singapur","SH":"Saint Helena","SI":"Sloveenia","SJ":"Svalbard ja Jan Mayen","SK":"Slovakkia","SL":"Sierra Leone","SM":"San Marino","SN":"Senegal","SO":"Somaalia","SR":"Suriname","SS":"Lõuna-Sudaan","ST":"São Tomé ja Príncipe","SV":"El Salvador","SX":"Sint Maarten","SY":"Süüria","SZ":"Svaasimaa","TC":"Turks ja Caicos","TD":"Tšaad","TF":"Prantsuse Lõunaalad","TG":"Togo","TH":"Tai","TJ":"Tadžikistan","TK":"Tokelau","TL":"Ida-Timor","TM":"Türkmenistan","TN":"Tuneesia","TO":"Tonga","TR":"Türgi","TT":"Trinidad ja Tobago","TV":"Tuvalu","TW":"Taiwan","TZ":"Tansaania","UA":"Ukraina","UG":"Uganda","UM":"Ühendriikide hajasaared","US":"Ameerika Ühendriigid","UY":"Uruguay","UZ":"Usbekistan","VA":"Vatikan","VC":"Saint Vincent ja Grenadiinid","VE":"Venezuela","VG":"Briti Neitsisaared","VI":"USA Neitsisaared","VN":"Vietnam","VU":"Vanuatu","WF":"Wallis ja Futuna","WS":"Samoa","YE":"Jeemen","YT":"Mayotte","ZA":"Lõuna-Aafrika Vabariik","ZM":"Sambia","ZW":"Zimbabwe"} \ No newline at end of file diff --git a/priv/data/locales/ru.json b/priv/data/locales/ru.json index b45ad2c..56576c7 100644 --- a/priv/data/locales/ru.json +++ b/priv/data/locales/ru.json @@ -1 +1 @@ -{"AD":"Андорра","AE":"Объединённые Арабские Эмираты","AF":"Афганистан","AG":"Антигуа и Барбуда","AI":"Ангвилла","AL":"Албания","AM":"Армения","AO":"Ангола","AQ":"Антарктика","AR":"Аргентина","AS":"Американские Самоа","AT":"Австрия","AU":"Австралия","AW":"Аруба","AX":"Аландские острова","AZ":"Азербайджан","BA":"Босния и Герцеговина","BB":"Барбадос","BD":"Бангладеш","BE":"Бельгия","BF":"Буркина-Фасо","BG":"Болгария","BH":"Бахрейн","BI":"Бурунди","BJ":"Бенин","BL":"Сен-Бартельми","BM":"Бермуды","BN":"Бруней Даруссалам","BO":"Боливия","BQ":"Бонайре, Синт-Эстатиус и Саба","BR":"Бразилия","BS":"Багамы","BT":"Бутан","BV":"Остров Буве","BW":"Ботсвана","BY":"Беларусь","BZ":"Белиз","CA":"Канада","CC":"Кокосовые острова","CD":"Демократическая Республика Конго","CF":"Центрально-африканская республика","CG":"Конго","CH":"Швейцария","CI":"Кот-д'Ивуар","CK":"Острова Кука","CL":"Чили","CM":"Камерун","CN":"Китай","CO":"Колумбия","CR":"Коста-Рика","CU":"Куба","CV":"Кабо-Верде","CW":"Кюрасао","CX":"Остров Рождества","CY":"Кипр","CZ":"Чехия","DE":"Германия","DJ":"Джибути","DK":"Дания","DM":"Доминика","DO":"Доминиканская республика","DZ":"Алжир","EC":"Эквадор","EE":"Эстония","EG":"Египет","EH":"Западная Сахара","ER":"Эритрея","ES":"Испания","ET":"Эфиопия","FI":"Финляндия","FJ":"Фиджи","FK":"Фолклендские (Мальвинские) острова","FM":"Федеративные Штаты Микронезии","FO":"Фарерские острова","FR":"Франция","GA":"Габон","GB":"Соединённое Королевство","GD":"Гренада","GE":"Грузия","GF":"Французская Гвиана","GG":"Гернси","GH":"Гана","GI":"Гибралтар","GL":"Гренландия","GM":"Гамбия","GN":"Гвинея","GP":"Гваделупа","GQ":"Экваториальная Гвинея","GR":"Греция","GS":"Южная Джорджия и Южные Сандвичевы острова","GT":"Гватемала","GU":"Гуам","GW":"Гвинея-Бисау","GY":"Гайана","HK":"Гонконг","HM":"Остров Херд и острова МакДональд","HN":"Гондурас","HR":"Хорватия","HT":"Гаити","HU":"Венгрия","ID":"Индонезия","IE":"Ирландия","IL":"Израиль","IM":"Остров Мэн","IN":"Индия","IO":"Британская территория Индийского океана","IQ":"Ирак","IR":"Иран","IS":"Исландия","IT":"Италия","JE":"Джерси","JM":"Ямайка","JO":"Иордания","JP":"Япония","KE":"Кения","KG":"Киргизия","KH":"Камбоджа","KI":"Кирибати","KM":"Коморы","KN":"Сент-Китс и Невис","KP":"Северная Корея","KR":"Южная Корея","KW":"Кувейт","KY":"Каймановы острова","KZ":"Казахстан","LA":"Лаосская Народно-Демократическая Республика","LB":"Ливан","LC":"Сент-Люсия","LI":"Лихтенштейн","LK":"Шри-Ланка","LR":"Либерия","LS":"Лесото","LT":"Литва","LU":"Люксембург","LV":"Латвия","LY":"Ливия","MA":"Марокко","MC":"Монако","MD":"Молдавия","ME":"Черногория","MF":"Сен-Мартен (Франция)","MG":"Мадагаскар","MH":"Маршалловы острова","MK":"Северная Македония","ML":"Мали","MM":"Мьянма","MN":"Монголия","MO":"Макао","MP":"Острова северной Марианы","MQ":"Мартиника","MR":"Мавритания","MS":"Монтсеррат","MT":"Мальта","MU":"Маврикий","MV":"Мальдивы","MW":"Малави","MX":"Мексика","MY":"Малайзия","MZ":"Мозамбик","NA":"Намибия","NC":"Новая Каледония","NE":"Нигер","NF":"Остров Норфолк","NG":"Нигерия","NI":"Никарагуа","NL":"Нидерланды","NO":"Норвегия","NP":"Непал","NR":"Науру","NU":"Ниуэ","NZ":"Новая Зеландия","OM":"Оман","PA":"Панама","PE":"Перу","PF":"Французская Полинезия","PG":"Папуа — Новая Гвинея","PH":"Филиппины","PK":"Пакистан","PL":"Польша","PM":"Сен-Пьер и Микелон","PN":"Питкэрн","PR":"Пуэрто-Рико","PS":"Палестина","PT":"Португалия","PW":"Палау","PY":"Парагвай","QA":"Катар","RE":"Реюньон","RO":"Румыния","RS":"Сербия","RU":"Российская Федерация","RW":"Руанда","SA":"Саудовская Аравия","SB":"Соломоновы Острова","SC":"Сейшелы","SD":"Судан","SE":"Швеция","SG":"Сингапур","SH":"Остров Святой Елены, Остров Вознесения и Тристан-да-Кунья","SI":"Словения","SJ":"Шпицберген и Ян-Майен","SK":"Словакия","SL":"Сьерра-Леоне","SM":"Сан-Марино","SN":"Сенегал","SO":"Сомали","SR":"Суринам","SS":"Южный Судан","ST":"Сан-Томе и Принсипи","SV":"Сальвадор","SX":"Синт-Мартен (голландская часть)","SY":"Сирийская Арабская Республика","SZ":"Эсватини","TC":"Острова Туркс и Каикос","TD":"Чад","TF":"Французские южные территории","TG":"Того","TH":"Таиланд","TJ":"Таджикистан","TK":"Токелау","TL":"Восточный Тимор","TM":"Туркменистан","TN":"Тунис","TO":"Тонга","TR":"Турция","TT":"Тринидад и Тобаго","TV":"Тувалу","TW":"Тайвань","TZ":"Танзания","UA":"Украина","UG":"Уганда","UM":"Соединенные штаты Малых Удаленных островов","US":"Соединённые штаты","UY":"Уругвай","UZ":"Узбекистан","VA":"Государство-город Ватикан","VC":"Сент-Винсент и Гренадины","VE":"Венесуэла","VG":"Виргинские острова (Британия)","VI":"Виргинские острова (США)","VN":"Вьетнам","VU":"Вануату","WF":"Уоллес и Футана","WS":"Самоа","YE":"Йемен","YT":"Майот","ZA":"Южная Африка","ZM":"Замбия","ZW":"Зимбабве"} \ No newline at end of file +{"AD":"Андорра","AE":"Объединённые Арабские Эмираты","AF":"Афганистан","AG":"Антигуа и Барбуда","AI":"Ангвилла","AL":"Албания","AM":"Армения","AN":"Нидерландские Антильские острова","AO":"Ангола","AQ":"Антарктика","AR":"Аргентина","AS":"Американские Самоа","AT":"Австрия","AU":"Австралия","AW":"Аруба","AX":"Аландские острова","AZ":"Азербайджан","BA":"Босния и Герцеговина","BB":"Барбадос","BD":"Бангладеш","BE":"Бельгия","BF":"Буркина-Фасо","BG":"Болгария","BH":"Бахрейн","BI":"Бурунди","BJ":"Бенин","BL":"Сен-Бартельми","BM":"Бермуды","BN":"Бруней Даруссалам","BO":"Боливия","BQ":"Бонайре, Синт-Эстатиус и Саба","BR":"Бразилия","BS":"Багамы","BT":"Бутан","BV":"Остров Буве","BW":"Ботсвана","BY":"Беларусь","BZ":"Белиз","CA":"Канада","CC":"Кокосовые острова","CD":"Демократическая Республика Конго","CF":"Центрально-африканская республика","CG":"Конго","CH":"Швейцария","CI":"Кот-д'Ивуар","CK":"Острова Кука","CL":"Чили","CM":"Камерун","CN":"Китай","CO":"Колумбия","CR":"Коста-Рика","CU":"Куба","CV":"Кабо-Верде","CW":"Кюрасао","CX":"Остров Рождества","CY":"Кипр","CZ":"Чехия","DE":"Германия","DJ":"Джибути","DK":"Дания","DM":"Доминика","DO":"Доминиканская республика","DZ":"Алжир","EC":"Эквадор","EE":"Эстония","EG":"Египет","EH":"Западная Сахара","ER":"Эритрея","ES":"Испания","ET":"Эфиопия","FI":"Финляндия","FJ":"Фиджи","FK":"Фолклендские (Мальвинские) острова","FM":"Федеративные Штаты Микронезии","FO":"Фарерские острова","FR":"Франция","GA":"Габон","GB":"Соединённое Королевство","GD":"Гренада","GE":"Грузия","GF":"Французская Гвиана","GG":"Гернси","GH":"Гана","GI":"Гибралтар","GL":"Гренландия","GM":"Гамбия","GN":"Гвинея","GP":"Гваделупа","GQ":"Экваториальная Гвинея","GR":"Греция","GS":"Южная Джорджия и Южные Сандвичевы острова","GT":"Гватемала","GU":"Гуам","GW":"Гвинея-Бисау","GY":"Гайана","HK":"Гонконг","HM":"Остров Херд и острова МакДональд","HN":"Гондурас","HR":"Хорватия","HT":"Гаити","HU":"Венгрия","ID":"Индонезия","IE":"Ирландия","IL":"Израиль","IM":"Остров Мэн","IN":"Индия","IO":"Британская территория Индийского океана","IQ":"Ирак","IR":"Иран","IS":"Исландия","IT":"Италия","JE":"Джерси","JM":"Ямайка","JO":"Иордания","JP":"Япония","KE":"Кения","KG":"Киргизия","KH":"Камбоджа","KI":"Кирибати","KM":"Коморы","KN":"Сент-Китс и Невис","KP":"Северная Корея","KR":"Южная Корея","KW":"Кувейт","KY":"Каймановы острова","KZ":"Казахстан","LA":"Лаосская Народно-Демократическая Республика","LB":"Ливан","LC":"Сент-Люсия","LI":"Лихтенштейн","LK":"Шри-Ланка","LR":"Либерия","LS":"Лесото","LT":"Литва","LU":"Люксембург","LV":"Латвия","LY":"Ливия","MA":"Марокко","MC":"Монако","MD":"Молдавия","ME":"Черногория","MF":"Сен-Мартен (Франция)","MG":"Мадагаскар","MH":"Маршалловы острова","MK":"Северная Македония","ML":"Мали","MM":"Мьянма","MN":"Монголия","MO":"Макао","MP":"Острова северной Марианы","MQ":"Мартиника","MR":"Мавритания","MS":"Монтсеррат","MT":"Мальта","MU":"Маврикий","MV":"Мальдивы","MW":"Малави","MX":"Мексика","MY":"Малайзия","MZ":"Мозамбик","NA":"Намибия","NC":"Новая Каледония","NE":"Нигер","NF":"Остров Норфолк","NG":"Нигерия","NI":"Никарагуа","NL":"Нидерланды","NO":"Норвегия","NP":"Непал","NR":"Науру","NU":"Ниуэ","NZ":"Новая Зеландия","OM":"Оман","PA":"Панама","PE":"Перу","PF":"Французская Полинезия","PG":"Папуа — Новая Гвинея","PH":"Филиппины","PK":"Пакистан","PL":"Польша","PM":"Сен-Пьер и Микелон","PN":"Питкэрн","PR":"Пуэрто-Рико","PS":"Палестина","PT":"Португалия","PW":"Палау","PY":"Парагвай","QA":"Катар","RE":"Реюньон","RO":"Румыния","RS":"Сербия","RU":"Российская Федерация","RW":"Руанда","SA":"Саудовская Аравия","SB":"Соломоновы Острова","SC":"Сейшелы","SD":"Судан","SE":"Швеция","SG":"Сингапур","SH":"Остров Святой Елены, Остров Вознесения и Тристан-да-Кунья","SI":"Словения","SJ":"Шпицберген и Ян-Майен","SK":"Словакия","SL":"Сьерра-Леоне","SM":"Сан-Марино","SN":"Сенегал","SO":"Сомали","SR":"Суринам","SS":"Южный Судан","ST":"Сан-Томе и Принсипи","SV":"Сальвадор","SX":"Синт-Мартен (голландская часть)","SY":"Сирийская Арабская Республика","SZ":"Эсватини","TC":"Острова Туркс и Каикос","TD":"Чад","TF":"Французские южные территории","TG":"Того","TH":"Таиланд","TJ":"Таджикистан","TK":"Токелау","TL":"Восточный Тимор","TM":"Туркменистан","TN":"Тунис","TO":"Тонга","TR":"Турция","TT":"Тринидад и Тобаго","TV":"Тувалу","TW":"Тайвань","TZ":"Танзания","UA":"Украина","UG":"Уганда","UM":"Соединенные штаты Малых Удаленных островов","US":"Соединённые штаты","UY":"Уругвай","UZ":"Узбекистан","VA":"Государство-город Ватикан","VC":"Сент-Винсент и Гренадины","VE":"Венесуэла","VG":"Виргинские острова (Британия)","VI":"Виргинские острова (США)","VN":"Вьетнам","VU":"Вануату","WF":"Уоллес и Футана","WS":"Самоа","YE":"Йемен","YT":"Майот","ZA":"Южная Африка","ZM":"Замбия","ZW":"Зимбабве"} \ No newline at end of file diff --git a/test/translations_test.exs b/test/translations_test.exs index 0b0ecdb..ff50140 100644 --- a/test/translations_test.exs +++ b/test/translations_test.exs @@ -4,6 +4,9 @@ defmodule BeamLabCountries.TranslationsTest do alias BeamLabCountries.Translations + # A blank or missing name doesn't count as a translation. + defp translated?(name), do: is_binary(name) and String.trim(name) != "" + describe "get_name/2" do test "returns translated country name" do assert Translations.get_name("DE", "fr") == "Allemagne" @@ -14,6 +17,22 @@ defmodule BeamLabCountries.TranslationsTest do assert Translations.get_name("de", "FR") == "Allemagne" end + test "covers every country in Estonian" do + assert Translations.get_name("EE", "et") == "Eesti" + assert Translations.get_name("FI", "et") == "Soome" + assert Translations.get_name("GB", "et") == "Ühendkuningriik" + + # Same coverage as English — the locale files skip a few historical + # codes (e.g. AN), and Estonian is not expected to be broader. + untranslated = + BeamLabCountries.all() + |> Enum.map(& &1.alpha2) + |> Enum.filter(&translated?(Translations.get_name(&1, "en"))) + |> Enum.reject(&translated?(Translations.get_name(&1, "et"))) + + assert untranslated == [] + end + test "returns nil for unknown country or locale" do assert Translations.get_name("XX", "en") == nil assert Translations.get_name("DE", "xx") == nil @@ -33,8 +52,8 @@ defmodule BeamLabCountries.TranslationsTest do end describe "supported_locales/0 and locale_supported?/1" do - test "lists 15 locales" do - assert length(Translations.supported_locales()) == 15 + test "lists 16 locales" do + assert length(Translations.supported_locales()) == 16 end test "locale_supported?/1 is case insensitive" do