When resolving the formatting locale for a personName, using a test data example[3] and referencing the icu4j implementation of getNameLocale[1] it would appear the intent is that if the personName object has an associated locale then that locale should be used unmodified.
In that example the personName locale is “ja-AQ” which when maximally expanded includes the script `Jpan`. Using that locale returns a `surnameFrirst` format with no spaces in the template and therefore an incorrect test result of “MüllerKäthe”.
>
If the PersonName object can provide a name locale, return a locale formed from it by replacing its script by the name script.
Which doesn’t seem consistent with the icu4j implementation[1] (but then I’m not a java guy so maybe misreading it).
My questions:
1. When the personName object has an associated locale, is that locale expected to be used without further modification? If not then ….
2. If the derived script of the personName differs from the script of the personNames associated locale, is the nameLocale formed by the base language of the associated locale plus the derived personName script and the region of the personName locale?
3. If (2) is correct then is the fallback chain the same as that described for the derived name order[4] ? Which in this case would be:
ja_Latin_AQ, und_Latn_AQ, ja_Latn, und_Latn, ja_AQ, und_AQ, ja, und
4. Is it correct to say that if a personName has an associated locale then the formatting locale is not used to influence formatting?
5. Is is correct to say that if there is NOT an associated locale for the personName then the effective formatting locale is basically the base language and region of the formatting locale with the derived script of the personName then applying the fallback chain from [4]?
Many thanks for any guidance,
—Kip
References: