Back in November 2011, Uli checked in a large change which affected the LC_NUMERIC settings of various es_* locales. This change didn't reference any supporting documentation.
It's now being reported that various es_* locals have the wrong LC_NUMERIC settings for the decimal mark and thousands separator.
First I compared the es_* locales to CLDR for LC_NUMERIC settings. This turned up several differences (es_DO, es_GT, es_HN, es_MX, es_NI, es_PA, es_PE, es_PR, es_SV).
For each of those locales I then went in search of documents, preferably government documents which would show usage of the decimal mark and thousands separator.
We can get grouping from this document from the Guatemala Government. Once we know grouping uses ',', then the decimal mark must be '.'.
All the above referenced documents show a decimal mark as '.' and the thousands separator as ',', which indicate glibc's localedata is wrong.
Interestingly enough, Peru which was supposed to use '.' as the decimal separator and ',' as the thousands separator according to CLDR seems to do the opposite according to these government inflation and labor reports:
Thus es_PE is correct as-is.
Created attachment 6600 [details]
Patch to fix various es_* locales
On Wed, Aug 22, 2012 at 05:54:17PM +0000, law at redhat dot com wrote:
> Bug #: 14510
> Summary: LC_NUMERIC wrong for various latin america locales
> Product: glibc
> Version: 2.17
> Status: NEW
> Severity: normal
> Priority: P2
> Component: localedata
> AssignedTo: email@example.com
> ReportedBy: firstname.lastname@example.org
> CC: email@example.com
> Classification: Unclassified
> Back in November 2011, Uli checked in a large change which affected the
> LC_NUMERIC settings of various es_* locales. This change didn't reference any
> supporting documentation.
> It's now being reported that various es_* locals have the wrong LC_NUMERIC
> settings for the decimal mark and thousands separator.
> First I compared the es_* locales to CLDR for LC_NUMERIC settings. This turned
> up several differences (es_DO, es_GT, es_HN, es_MX, es_NI, es_PA, es_PE, es_PR,
> For each of those locales I then went in search of documents, preferably
> government documents which would show usage of the decimal mark and thousands
> Dominican Republic:
> We can get grouping from this document from the Guatemala Government. Once we
> know grouping uses ',', then the decimal mark must be '.'.
> Puerto Rico:
> El Salvador:
> All the above referenced documents show a decimal mark as '.' and the thousands
> separator as ',', which indicate glibc's localedata is wrong.
> Interestingly enough, Peru which was supposed to use '.' as the decimal
> separator and ',' as the thousands separator according to CLDR seems to do the
> opposite according to these government inflation and labor reports:
> Thus es_PE is correct as-is.
I checked a few of your references. They were economic reports.
Not kind of normative specifications from a standards or language authority.
You can also in my country (Denmark) find examples of use of the decimal point, which is
not according to standards here.
I looked i the IBM national Language Support Reference Manual ("The green bible"),
that I also used as one of the sources for making many locales.
For monetary decimal point, it seems like in North America in Spanish speaking
countries, they use the point, while in South America they use the comma.
This is not far from what you report, but I think we need some more authoritative sources.
I confirm that in Nicaragua the decimal_point is "." and thousands_sep is ","
In Mexico, the official regulation (NOM-008-SCFI-1993, and NOM-008-SCFI-2002) set the decimal sign is as in the IS; however, in 2009 both the comma and the point were declared valid. Unfortunately, these kind of regulations are not mandatory, and people use the other notation in daily use, or as in the examples by firstname.lastname@example.org
2009 reform: http://www.dof.gob.mx/nota_detalle.php?codigo=5111108&fecha=24/09/2009
Last release: http://www.amap.com.mx/download/26.NOM-008-SCFI-2002%20Sistema%20general%20de%20unidades%20de%20medida.pdf
Is a gobernment document for formal informational purposes and it obeys a visual design (like a powrpoint presentation), it is not intended for computer systems I'm listing the troubles with this document:
a) Numerical data is presented with one, two or three decimals, depending on the precision needed in the graph or paragraph. For day to day computational numerical presentations two digit is good enough, just the same as en_US.
b) The document arbitrarily use Monetary format without the thousand separator ",", page 22 uses the notation 833,998 mdp (millions of pesos) without the $ symbol, but like the en_US we do use the $ symbol for money
c) Commonly the percentual values are good enough with %XX.x, math is math here and in china.
Latin American numerical keyboard uses the "." for decimal and it is important for us because when we make calculations with this keyboard its we use this key for fast typing, same as in en_US
Right now the locale is like the spaniard persons use it. We can use the es_ES way (decimal"," & thousands".") only when we exchange documents with en_ES country, but it is not very common.
In México as of Jan 2010 it was introduced an increment in tax, up to 16%, this value introduces troubles while calculating accounting balances when using only 2 decimal digits, so since that date accounting and monetary systems began to use 4 digit precision. Formatted monetary values must include all 4 digits to avoid manual transcription errors or precision errors during numerical methods.
For the same reason we also use 4 digits when exchanging currencies (same as en_US): http://finance.yahoo.com/q?s=USDMXN=X
This issue goes back to 2012, its time to make it right
I just edited my
I just edited my
and inside LC_MONETARY
This issue has been fixed for a while now. Marking as fixed.
It does not fix the fractional digits for es_MX though, and those remain at 2. Please file a new bug to discuss making this 4.
2012-09-05 Jeff Law <email@example.com>
* locales/es_DO: Fix LC_NUMERIC decimal_point and thousands_sep.
* locales/es_GT: Likewise.
* locales/es_HN: Likewise.
* locales/es_MX: Likewise.
* locales/es_NI: Likewise.
* locales/es_PA: Likewise.
* locales/es_PR: Likewise.
* locales/es_SV: Likewise.