From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from omta001.cacentral1.a.cloudfilter.net (omta001.cacentral1.a.cloudfilter.net [3.97.99.32]) by sourceware.org (Postfix) with ESMTPS id 6890E3858D32 for ; Mon, 13 Mar 2023 05:43:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6890E3858D32 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=Shaw.ca Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=shaw.ca Received: from shw-obgw-4003a.ext.cloudfilter.net ([10.228.9.183]) by cmsmtp with ESMTP id bLaop8sP1uZMSbayMpoQ8X; Mon, 13 Mar 2023 05:43:50 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=shaw.ca; s=s20180605; t=1678686230; bh=pVsfu+fXGegRwiwqNqvS2QAhSq0URrZsNxDFDeb7Ujw=; h=Date:Reply-To:Subject:To:References:From:In-Reply-To; b=FAhG+pVHs+dO8tR1qIe/J/BAuD7FJtARB3CvhZI58qf3mVtkJKS/Gp8ngP+AkS1YH Aew/L5pwuKaIqU2egtTU2WxLAaNpt8793cNbar/is3JH/IUO9iKFn8yQYBGWkTZTIm u/flv3NPSBXRHU+25CjaMNrghqJmcrmQEh2QTbcOr5iw0OdRUpteuQADE5Umq5WnH8 Wboi2eQb9C9MlEaZhfiu5S8YNGVpdwkuXUlAkDoxI0XD96skNvDPxoXdXWrrP8p+DL wuTtkJbcM9yKam/l91alyEYInpp7lwZj2hJZV3OQGPFwCE0voBZAn71UOqkQUnNrkD oo4B2pDo5Y5Qg== Received: from [10.0.0.5] ([184.64.102.149]) by cmsmtp with ESMTP id bavQpo5IkcyvubavRpyCaP; Mon, 13 Mar 2023 05:40:49 +0000 X-Authority-Analysis: v=2.4 cv=VbHkgXl9 c=1 sm=1 tr=0 ts=640eb761 a=DxHlV3/gbUaP7LOF0QAmaA==:117 a=DxHlV3/gbUaP7LOF0QAmaA==:17 a=IkcTkHD0fZMA:10 a=yMhMjlubAAAA:8 a=Luou0NOWAAAA:8 a=yuJ0Uhft01uisukBEcoA:9 a=QEXdDO2ut3YA:10 a=_8sh-BOXS069i1rCkLyZ:22 a=NWVoK91CQySWRX1oVYDe:22 a=akQNnlEPo0dw9OMZ98gL:22 a=_VvsggWwU7byVslUopaJ:22 a=OyhXfnr9WZvuyiWoDv4N:22 Message-ID: Date: Sun, 12 Mar 2023 23:40:48 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Reply-To: cygwin@cygwin.com Subject: Re: [ERROR] Locale Monetary Symbol Prints Wrongly on Windows : Cygwin Content-Language: en-CA To: cygwin@cygwin.com References: From: Brian Inglis Organization: Inglis In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-CMAE-Envelope: MS4xfMk68vzZ2hrebQzX00LxoXXHTYYO1VDIz0G8lpM+1jqwlyiqp9jiAKuN9ZXTDlzGkUnWvRJOc8RsqDS5hSPySF9U45AgbPeZhNtkrb/3oErcOeipubY0 oYRYSqIqvuMPjcc38JWGpKfcp/n9N/R8UQNJyHU2ZnfGwsyNSYmzNf9yww6LEjhDy8N9GmIpy/OQJQ== X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_05,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 2023-03-12 18:40, Yeo Kai Wei via Cygwin wrote: > May I ask if there's a bug with Cygwin and Windows currency? Windows Language Locale culture codes and currencies > This is the output from the code below. > Region: en_AU.utf-8 Currency symbol: $ International currency symbol: AUD > Region: en_CA.utf-8 Currency symbol: $ International currency symbol: CAD > Region: en_GB.utf-8 Currency symbol: £ International currency symbol: GBP > Region: en_US.utf-8 Currency symbol: $ International currency symbol: USD > Region: en_NZ.utf-8 Currency symbol: $ International currency symbol: NZD > Region: en_ZM.utf-8 Currency symbol: $ International currency symbol: NZD <---- > ERROR > The correct answer should be "Region: en_ZM.utf-8 Currency symbol: K > International currency symbol: ZMK" ZMW Zambia kwacha Install Cygwin package units and see /usr/share/units/currencies.units: $ units_cur $ grep zambia /usr/share/units/currency.units ZMW zambiakwacha zambiakwacha 0.049970632087833 USD > Supposedly, the code works on Linux. > Is this an issue with Windows? > How can one solve this issue? If you look at the Windows Locale culture id ref: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/70feba9f-294e-491e-b6eb-56532684c37f?source=recommendations https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-LCID/%5bMS-LCID%5d.pdf only two official languages are supported for Zambia and only since Windows 10: "... Language Location Language Language Supported (or type) ID tag version ... Bemba Zambia 0x1000 bem-ZM Release 10 ... English Zambia 0x1000 en-ZM Release 10 ... Language Language ID tag 0x1000 Locale without assigned LCID if the current user default locale. See section 2.2.1. ... 2.2.1 Locale Names without LCIDs Every locale name without an assigned LCID MAY be temporarily given one of the LCIDs in the following table, if the application requests an LCID.<14> These locale names include any valid [RFC5646] language tag. Note: LCID assignments for Locale Names without LCIDs are temporary and are not suitable for use across a protocol, or for interchange between processes or machines. These temporary LCID assignments are also unsuitable for tagging persisted data as the meaning of the LCID assignment will change over time. ... Name Value Conditions LOCALE_CUSTOM_UNSPECIFIED<17> 0x1000 When an LCID is requested for a locale without a permanent LCID assignment, nor a temporary assignment as above, the protocol will respond with LOCALE_CUSTOM_UNSPECIFIED for all such locales. Because this single value is used for numerous possible locale names, it is impossible to round trip this locale, even temporarily. Applications should discard this value as soon as possible and never persist it. If the system is forced to respond to a request for LCID_CUSTOM_UNSPECIFIED, it will fall back to the current user locale. This is often incorrect but may prevent an application or component from failing. As the meaning of this temporary LCID is unstable, it should never be used for interchange or persisted data. This is a 1-to-many relationship that is very unstable. ..." So it looks like you can only use this if you set this to the current user default locale, or set that up under your own custom locale using one of the other termporary assignment ids available, and set the current user default locale to that. Instructions for doing so are available out there on the web if you search hard! -- Take care. Thanks, Brian Inglis Calgary, Alberta, Canada La perfection est atteinte Perfection is achieved non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut -- Antoine de Saint-Exupéry