RFR: 8159337: Introduce a method in Locale class to return the language tags as per RFC 5646 convention [v4]
Naoto Sato
naoto at openjdk.org
Wed May 3 17:01:17 UTC 2023
On Tue, 2 May 2023 21:42:09 GMT, Justin Lu <jlu at openjdk.org> wrote:
>> Please review this PR which adds the method `caseFoldLanguageTag(String languageTag)` to java.util.Locale.
>>
>> This method case folds a language tag to adhere to _[section 2.1.1. Formatting of Language Tags of RFC5646](https://www.rfc-editor.org/rfc/rfc5646.html#section-2.1)_. This format is defined as _"All subtags, including extension and private use subtags, use lowercase letters with two exceptions: two-letter and four-letter subtags that neither appear at the start of the tag nor occur after singletons. Such two-letter subtags are all uppercase ... and four-letter subtags are titlecase."_.
>>
>>
>> In order to match the behavior of existing language tag related Locale methods, this method matches the 2.1.1 RFC5646 specification with the following **exceptions**:
>> - Will not case fold variant subtags
>> - Will not case fold private use subtags prefixed by "lvariant"
>>
>> As an example, `caseFoldLanguageTag("ja-kana-jp-x-lvariant-Oracle-JDK-Standard-Edition")` returns _"ja-Kana-JP-x-lvariant-Oracle-JDK-Standard-Edition"_. Further examples can be seen in the test file.
>
> Justin Lu has updated the pull request incrementally with four additional commits since the last revision:
>
> - Review comment: Replace wellFormed with parseSts to pass errorMsg to exception
> - Review comment: Adjust method names
> - Review comment: Use assertThrows and correct IAE to ILE
> - Review comment: improve legacy_tags id
src/java.base/share/classes/sun/util/locale/LanguageTag.java line 411:
> 409:
> 410: public static String caseFoldTag(String tag) {
> 411: LanguageTag parsedTag = parse(tag, null);
I think we don't need to create a field `parseSts` but provide a local one here and use it in `parse(tag, sts), as that parse status is only referred to within this method.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/13679#discussion_r1183964205
More information about the core-libs-dev
mailing list