Я работаю над проектом, в котором я получаю предоставленные пользователем данные о провинциях / штатах стран на английском языке sh. И когда мне нужно сохранить его в базе данных, мне нужен код ISO 3166-2 провинции.
Проблема в том, что я использую pycountry, а pycountry имеет информацию о провинции только на местном языке (немецкий для Германии). Например: Нижняя Саксония на немецком языке - Niedersachsen.
Из-за этого я не могу найти код, используя имя Engli sh, полученное из источника данных.
Я пробовал следующее:
>>>gettext.translation('iso3166-2', pycountry.LOCALES_DIR, languages=['en']).install()
>>> country_code = ''.join([subdivision.code for subdivision in pycountry.subdivisions if _(subdivision.name) == 'Lower Saxony'])
>>> country_code # prints ' '
Я также пытался использовать googletran для перевода буквального немецкого на английский sh, который работает не во всех случаях.
>>>import googletrans
>>> translator = Translator()
>>> s = translator.translate('Rheinland-Pfalz', src='de', dest='en')
>>> s.text
u'Rheinland-Pfalz'
>>> s = translator.translate('Rheinland Pfalz', src='de', dest='en')
>>> s.text
u'Rheinland Pfalz'
>>> s = translator.translate('rheinland-Pfalz', src='de', dest='en')
>>> s.text
u'Rhineland-Palatinate'
>>> s = translator.translate('rheinland-pfalz', src='de', dest='en')
>>> s.text
u'rhineland'
>>> s = translator.translate('rheinland-pfalz', src='de', dest='en')
>>> s.text
u'rhineland'
Есть ли способ добиться этого?
Спасибо!