代码之家  ›  专栏  ›  技术社区  ›  Boldewyn

python:不使用setlocale()访问posix的locale数据库

  •  3
  • Boldewyn  · 技术社区  · 14 年前

    安装程序是一个基于django的网站,它基于一个Ubuntu服务器系统,其中包含许多有用的信息 /usr/share/i18n/locales .

    问题是:我能进入这个智慧池吗? 没有 使用Python的 locale.setlocale() 在前面?

    原因: The docs 说,它是

    1. 打电话很贵 setlocale()

    2. 影响整个应用程序。

    但在我的例子中,我有一个,比方说,法语站点(django自动处理设置区域设置),我只想在 de_AT 区域设置,或像在俄罗斯一样格式化数字。

    1 回复  |  直到 14 年前
        1
  •  3
  •   Boldewyn    14 年前

    实现这一点的魔法图书馆被称为 Babel . 做我想要的:

    以前

    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集成免费。