13

What do I need to do (modules to load, locale methods to invoke, etc.) so that when I call:

datetime.date(2009,1,16).strftime("%A %Y-%b-%d")

instead of getting:

Out[20]: 'Friday 2009-Jan-16'

i get spanish/french/german/... output

Out[20]: 'Viernes 2009-Ene-16'

without having to change my whole operating system's locale (i.e. just use python calls to dynamically set the locale and keep the changes scoped within my app)

Thanks.

4 Answers 4

8

locale.setlocale()

Sign up to request clarification or add additional context in comments.

9 Comments

sorry for the basic question, but how do you set it? 'spanish' in locale.locale_alias.keys() True locale.setlocale(locale.LC_ALL, 'spanish') Error: unsupported locale setting
locale.setlocale(local.LC_TIME, 'es_ES')
tried locale.setlocale(locale.LC_TIME, 'es_ES') and still get Error: unsupported locale setting
Then for some reason your operating system's locale entries are missing.
sudo locale-gen es_ES.UTF-8 did the trick; now your answer worked; thanks.
|
6

On Ubuntu,

$> sudo locale-gen es_ES.UTF-8
$> sudo dpkg-reconfigure locales
$> python
>>> import locale
>>> locale.setlocale(locale.LC_TIME, 'es_ES.UTF-8')

Comments

4

Also, have a look at the babel project.

Comments

2

After setting your locale (with locale.setlocale) You can use the locale modules' nl_langinfo method like so:

time.strftime(locale.nl_langinfo(locale.D_T_FMT), time.localtime())

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.