Перевод подразделений на русском языке на английский - PullRequest
0 голосов
/ 04 марта 2020

Я работаю над проектом, в котором я получаю предоставленные пользователем данные о провинциях / штатах стран на английском языке 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'

Есть ли способ добиться этого?

Спасибо!

...