2
我试图让我的用户按国家搜索数据。用户将用他们的母语输入国名。 但是,我的数据库只包含每个国家的alpha2代码。用pycountry和gettext将翻译的国家名称转换为alpha2
我目前的做法:
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和pycountry?
BTW。我在这里使用'''.join()'将结果列表平坦化为一个字符串,并在同一步骤中捕获空结果。 – Tim