<i18n dev> [10] RFR: 8160199: Language's script should be reflected in user.script on Mac OS X
Naoto Sato
naoto.sato at oracle.com
Wed Jun 28 22:13:50 UTC 2017
Thanks, Brent! Here is the updated webrev:
http://cr.openjdk.java.net/~naoto/8160199/webrev.04/
And my comments embedded below:
On 6/28/17 2:16 PM, Brent Christian wrote:
> Hi, Naoto
>
> This looks quite good.
>
> I will test a bit with some of the trickier locales. BTW, the script
> will now also be reflected in Locale.getScript() and
> Locale.getDisplayScript().
>
> Just a few comments:
>
> ---
> src/java.base/macosx/native/libjava/java_props_macosx.h
>
> Update copyright year
>
> ---
> src/java.base/unix/native/libjava/locale_str.h
>
> Update copyright year
Done.
>
> 214 "Hans", "Hans",
> 215 "Hant", "Hant",
> 216 "Latn", "Latn",
> 217 "Cyrl", "Cyrl",
> 218 "Arab", "Arab",
>
> MacOS 10.12 ("Sierra") has a number of new languages not present in
> 10.11, including a few new scripts. I believe these should also be
> added here:
>
> Deva
> Ethi
> Sund
> Syrc
> Tfng
Good catch! Added those and tested, except "Syrc" script (could not find
on my machine).
>
> ---
> src/java.base/macosx/native/libjava/java_props_macosx.c
>
> Similar to the previous code, the call to:
>
> 79 CFStringGetCString(CFLocaleGetIdentifier(CFLocaleCopyCurrent()),
> 80 localeString, LOCALEIDLENGTH,
> CFStringGetSystemEncoding());
>
> can be moved inside the if():
>
> 84 if (hyphenPos == NULL || // languageString contains
> ISO639 only, e.g., "en"
> 85 languageString + langStrLen - hyphenPos == 5) {
Done.
>
>
> FWIW, I believe this code path will only be taken for MacOS 10.11 and
> earlier. Per TN2418[1] (and my testing thus far), 10.12 will always
> provide a region to 'languageString'. 10.11 and prior often return just
> a two-character language code.
Yes.
>
>
> 134 * lang{_region}{@script}. e.g.,
> 135 * for "zh-Hans-US" into "zh_US at Hans"
>
> This comment could fit on one line.
>
>
> 152 char tmp[4];
>
> Maybe a more descriptive name ("tmpScript" ?)
Done.
>
>
> 173 assert((length == 3 || length == 8) &&
> ...
>
> Idea: adding another set of ()s grouping:
>
> length 3 or 8 case
> length 4 or 9 case
> length == 5 case
>
> would cause each case to highlight nicely in an IDE. Just a thought.
I grouped those, but haven't confirmed on an IDE :-)
>
>
> A JDK 10 Reviewer will also need to take a look.
Sure, wait for another review then.
Naoto
>
> Thanks,
> -Brent
>
> 1. https://developer.apple.com/library/content/technotes/tn2418/_index.html
>
>
> On 6/28/17 10:51 AM, Naoto Sato wrote:
>> Hello,
>>
>> Please review the fix to the following issue:
>>
>> https://bugs.openjdk.java.net/browse/JDK-8160199
>>
>> The fix is located at:
>>
>> http://cr.openjdk.java.net/~naoto/8160199/webrev.03/
>>
>> The gist of the issue was that the script code has not been properly
>> treated in macOS specific code. Since it shares the same code with
>> other Unix, the locale format should follow POSIX, such as az-Cyrl-AZ
>> needing to be az_AZ at Cyrl.
>>
>> Naoto
More information about the i18n-dev
mailing list