Я пытаюсь, чтобы мои пользователи искали данные по странам. Пользователи набирают название страны на своих родных языках. Однако моя база данных содержит только альфа-коды для каждой страны.конвертировать переведенные имена стран в alpha2 с pycountry и gettext
Мой текущий подход:
user_input = "France"
country_code = pycountry.countries.get(name=user_input).alpha2 # u'FR'
это работает отлично, если пользовательский ввод выполнен на английском языке. Поскольку данные показаны на предпочтительном для пользователей языке, она также будет искать его на своем предпочтительном языке.
С помощью Gettext с локалями pycountry, я имею возможность показать страну-имена в пользователях Языке:
# example for a German user
gettext.translation('iso3166', pycountry.LOCALES_DIR, languages=['de']).install()
country_code = 'FR'
country = _(pycountry.countries.get(alpha2=country_code).name) # 'Frankreich'
теперь я искал способ, чтобы перевести вход пользователей обратно на английский (предположим, нет опечаток) и извлечь код страны из него:
user_input = "Frankreich"
translated_user_input = ??? # 'France'
country_code = pycountry.countries.get(name=translated_user_input).alpha2 # u'FR'
кто-нибудь хорошая идея, как этого добиться? В идеале, используя только gettext и picountry?
кстати. Я использую '. '.join()' здесь, чтобы выровнять результирующий список до строки и получить пустые результаты на том же шаге. – Tim