Python: Доступ к базе данных локали Posix без setlocale () - PullRequest
3 голосов
/ 02 марта 2010

Установка представляет собой веб-сайт на основе Django на серверной системе Ubuntu с большим количеством полезной информации в /usr/share/i18n/locales.

Вопрос: могу ли я получить доступ к этому пулу мудрости без , используя ранее locale.setlocale() Python?

Причина: Документы говорят, что это

  1. очень дорого звонить setlocale(), а

  2. влияет на все приложение.

Но в моем случае у меня есть, скажем, французский сайт (Django обрабатывает локаль автоматически), и я просто хочу отобразить имя января в локали de_AT или отформатировать число, как в России .

1 Ответ

3 голосов
/ 02 марта 2010

Волшебная библиотека для достижения этого называется Бабель .Делает то, что я хочу:

До

import locale
setlocale(LC_ALL, 'de')
x = locale.format('%.2f', 123)
setlocale(LC_ALL, '')

После

from babel.numbers import format_decimal
x = format_decimal(123, format='#0.00', locale='de')

... и имеет хорошую интеграцию Djang бесплатно.

...