Cargando ...
Lo sentimos. Ocurrió un error mientras se cargaba el contenido.

Re: [pythonmexico] Locale

Expandir mensajes
  • Patricio Paez
    Olá Antonio, Probé en Mandriva Linux 2007 (Portugués) y Ubuntu Breezy (Inglés). thousands_sep y grouping están bien en Inglés, vacíos en Portugués;
    Mensaje 1 de 3 , 19 oct 2006
    Ver origen
    • 0 Archivo adjunto
      Olá Antonio,

      Probé en Mandriva Linux 2007 (Portugués) y Ubuntu Breezy (Inglés).
      thousands_sep y grouping están bien en Inglés, vacíos en Portugués;
      decimal_point está bien en ambos:

      [user@mandriva2007 ~]$ python
      Python 2.4.3 (#2, Sep 18 2006, 21:07:35)
      [GCC 4.1.1 20060724 (prerelease) (4.1.1-3mdk)] on linux2
      Type "help", "copyright", "credits" or "license" for more information.
      >>> import locale
      >>> locale.setlocale( locale.LC_ALL, '' )
      'pt_BR.UTF-8'
      >>> locale.format( '%.2f', 12345678.1, True )
      '12345678,10'
      >>> locale.localeconv()
      {'mon_decimal_point': ',', 'int_frac_digits': 2, 'p_sep_by_space': 1,
      'frac_digits': 2, 'thousands_sep': '', 'n_sign_posn': 1, 'decimal_point':
      ',', 'int_curr_symbol': 'BRL ', 'n_cs_precedes': 1, 'p_sign_posn': 1,
      'mon_thousands_sep': '.', 'negative_sign': '-', 'currency_symbol': 'R$',
      'n_sep_by_space': 1, 'mon_grouping': [3, 3, 0], 'p_cs_precedes': 1,
      'positive_sign': '', 'grouping': []}

      -------------------------------------

      user@ubuntubreezy:~$ python
      Python 2.4.2 (#2, Oct 5 2006, 16:54:45)
      [GCC 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu9)] on linux2
      Type "help", "copyright", "credits" or "license" for more information.
      >>> import locale
      >>> locale.setlocale( locale.LC_ALL, '' )
      'en_US.UTF-8'
      >>> locale.format( '%.2f', 12345678.1, True )
      '12,345,678.10'
      >>> locale.localeconv()
      {'mon_decimal_point': '.', 'int_frac_digits': 2, 'p_sep_by_space': 0,
      'frac_digits': 2, 'thousands_sep': ',', 'n_sign_posn': 1, 'decimal_point':
      '.', 'int_curr_symbol': 'USD ', 'n_cs_precedes': 1, 'p_sign_posn': 1,
      'mon_thousands_sep': ',', 'negative_sign': '-', 'currency_symbol': '$',
      'n_sep_by_space': 0, 'mon_grouping': [3, 3, 0], 'p_cs_precedes': 1,
      'positive_sign': '', 'grouping': [3, 3, 0]}
    • Patricio Paez
      Antonio, las variables thousands_sep y grouping son parte del Native Language Support o NLS. En Ubuntu el paquete locales trae los archivos de texto para
      Mensaje 2 de 3 , 20 oct 2006
      Ver origen
      • 0 Archivo adjunto
        Antonio,

        las variables thousands_sep y grouping son parte del Native Language
        Support o NLS. En Ubuntu el paquete locales trae los archivos de texto
        para definir variables de NLS, se instalan en /usr/share/i18n/locales.
        Por ejemplo /usr/share/i18n/locales/pt_BR.

        Esos textos se transforman en binarios y los utiliza la librería Gnu libc,
        que el módulo locale de Python consulta. Varios idiomas, entre ellos es y
        pt tienen thousands_sep y grouping nulos, otros sí tienen valores, como
        en. Creo que no es una falla, simplemente así están definidas esas
        variables en Ubuntu.

        Solamente para probar, en Ubuntu Breezy hice esto:

        diff /usr/share/i18n/locales/pt_BR{-ori,}
        82,83c82,83
        < thousands_sep ""
        < grouping 0;0
        ---
        > thousands_sep "<U002E>"
        > grouping 3

        localedef -i pt_BR -f UTF-8 pt_BR

        y entonces:

        >>> import locale
        >>> locale.setlocale( locale.LC_ALL, 'pt_BR.UTF-8' )
        'pt_BR.UTF-8'
        >>> locale.format( '%.2f', 12345678.1, True )
        '12.345.678,10'
      Su mensaje se envió con éxito y se entregará al destinatario en breve.