问题
I was programming a program in Python, where I need to output date as per user's locale:
- Get a list of timezones in a country specified as per user input (did that using pytz)
- Get the locale of the user (which I am unable to figure out how to do)
Is there a way to get locale from county/timezone or some other method needs to be followed?
Or do I need to get the locale input from user itself?
EDIT
The program is to be a web-app. The user can provide me his country. But does he have to explicitly provide me the locale also or can I get it from his timezone/country?
回答1:
I don't think it's possible to convert country + timezone into a single 'correct' locale... in countries with multiple languages there is not a 1:1 relation between language and timezone.
The closest I can see is to use Babel:
from babel import Locale
Locale.parse('und_BR') # 'und' here means unknown
>>> Locale('pt', territory='BR')
This gives you a single 'most likely' (or default) locale for the country. To handle the languages properly you need to ask the user their preferred language.
回答2:
Use pycountry to do this.
sudo pip install pycountry
来源:https://stackoverflow.com/questions/9839227/is-there-a-way-to-get-locale-from-country-or-timezone