Hello Everybody!
I've noticed a difference between two GS version regarding Collators and Locales.
Some time ago, using version 3.2.8.1, while playing around with Indexes I was able to use a collator for "es_AR". Now, while trying to do the same ini 3.4.3 version, such collator doesn't exist.
As far as I read on the programming guide, Gemstone relies on ICU library but I don't think that ICU removed collator for "es_AR" because there exists a locale for that language-country.
If I take a look at the result of IcuLocale availableLocales it returns an array which includes "es_AR".
But if I try to create a collator for this locale, an error is returned: "a ArgumentError occurred (error 2718), No predefined IcuCollator for locale 'es_AR'"
Taking a closer look at IcuCollator methods, there is one called "availableLocales". Executing it, returns an array where is not included "es_AR".
From this phrase on the Prog guide: "The classes IcuLocale and IcuCollator provide an interface to the ICU (International Components for Unicode) libraries."
I expected IcuCollator and IcuLocale to work with the same locales.
So, is this behavior correct? Was "es_AR" removed by Gemstone or by ICU?
How can I add my own collator for "es_AR"?
Hope I could made my self clear and sorry if I missunderstood anything here.
Thank you
Sent from the Gemstone/S mailing list archive at Nabble.com. _______________________________________________ GemStone-Smalltalk mailing list [hidden email] https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk |
brianstone, This is a good question ... first off the reason that there was any change at all is that we ship new versions of GemStone of with the latest version of ICU. In 3.2.8.1 we were using version 50.2 of the ICU libraries and in 3.4.3 we were using version 58.2 of the ICU libraries. If you would like to use ICU version 50.2 with GemStone 3.4.3, that is possible and here is the information you need to switch ICU versions: The libicu libraries are in $GEMSTONE/lib of each release , for example in 3.4.x we provide libicu.58.2.so libicudata.51.2.so libicudata.54.1.so libicui18n.51.2.so libicui18n.54.1.so libicuuc.51.2.so libicuuc.54.1.so Older versions have 3 .so files per version, 58+ has just one .so To change the version of libicu that is loaded , login as SystemUser run Globals at: #IcuLibraryVersion "the version configured, 58.2 is default for gemstone v3.4.3" % run Globals at: #IcuLibraryVersion put: '51.2' . "use version that was default in gemstone v3.2" System commit % logout, stopstone, startstone to have the change take effect. stopstone,startstone required because stone remembers icu lib version loaded by first session to login and denys subsequent logins that are loading a different version. It does seem that the "es_AR" collator _was_ removed at some point between 51.2[1] and 58.2[2]. My skimming of the release description for all of the versions between 50 and 58 did not result in an explicit mention of "es_AR" collator support being removed ...(other than a comment that the "Collation code was re-implemented and Collation data size was cut in half" in version 53[3]) Looking at the available collators for 51.2 there were 400 collators and in 58.2 there were only 100 collators, so there was a significant reduction in the number of collators supported. In 58,2, there is only a single Spanish collator ("es"), while
there are 28 Spanish locales: topaz 1> obj IcuLibraryVersion 58.2 topaz 1> run (IcuCollator availableLocales select:[:x | x displayName includesString:'span']) collect:[:x | x name , ' ', x displayName ] % anArray topaz 1> obj1 ** a Array #1 es Spanish topaz 1> run (IcuLocale availableLocales select:[:x | x displayName includesString:'span']) collect:[:x | x name , ' ', x displayName ] % anArray topaz 1> obj1 ** a Array #1 es Spanish #2 es_419 Spanish (Latin America) #3 es_AR Spanish (Argentina) #4 es_BO Spanish (Bolivia) #5 es_BR Spanish (Brazil) #6 es_CL Spanish (Chile) #7 es_CO Spanish (Colombia) #8 es_CR Spanish (Costa Rica) #9 es_CU Spanish (Cuba) #10 es_DO Spanish (Dominican Republic) #11 es_EA Spanish (Ceuta & Melilla) #12 es_EC Spanish (Ecuador) #13 es_ES Spanish (Spain) #14 es_GQ Spanish (Equatorial Guinea) #15 es_GT Spanish (Guatemala) #16 es_HN Spanish (Honduras) #17 es_IC Spanish (Canary Islands) #18 es_MX Spanish (Mexico) #19 es_NI Spanish (Nicaragua) #20 es_PA Spanish (Panama) #21 es_PE Spanish (Peru) #22 es_PH Spanish (Philippines) #23 es_PR Spanish (Puerto Rico) #24 es_PY Spanish (Paraguay) #25 es_SV Spanish (El Salvador) #26 es_US Spanish (United States) #27 es_UY Spanish (Uruguay) #28 es_VE Spanish (Venezuela) My interpretation of this is that all of the Spanish locales now share a single collator, and the primary differences between the different locales involves calendar, currency, and numbers[4]... Hope this helps, Dale [2] http://site.icu-project.org/download/58 On 12/13/19 6:00 AM, brianstone via
GemStone-Smalltalk wrote:
Hello Everybody! I've noticed a difference between two GS version regarding Collators and Locales. Some time ago, using version 3.2.8.1, while playing around with Indexes I was able to use a collator for "es_AR". Now, while trying to do the same ini 3.4.3 version, such collator doesn't exist. _______________________________________________ GemStone-Smalltalk mailing list [hidden email] https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk |
Hello Dale,
Thank you so much for your quick and very detailed answer. I tried some string comparisons and at first glance, it seems workin ok using only "es".</br> In any case, with your help I can get back to the old library version if I want to. Thank you! -- Sent from: http://forum.world.st/Gemstone-S-f1461796.html _______________________________________________ GemStone-Smalltalk mailing list [hidden email] https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk |
Free forum by Nabble | Edit this page |