Bug 1104589 - Improve the mapping of lang tags to langGroup codes. r=smontagu

This commit is contained in:
Jonathan Kew 2014-11-26 10:24:16 +00:00
parent 96cf2f603e
commit bec275021c
2 changed files with 13 additions and 13 deletions

View File

@ -181,11 +181,15 @@ xh=x-western
yi=he
yo=x-western
zh-cn=zh-CN
# XXX : The following two entries are added as a quick fix (bug 251241).
# XXX : The following five entries are added as a quick fix (bug 251241, bug 1104589).
# When we have a general solution for ISO 15924 (script codes), the issue has
# to be revisited.
zh-hans=zh-CN
zh-hant=zh-TW
zh-latn=x-western
ja-latn=x-western
ko-latn=x-western
#
zh-tw=zh-TW
zh-hk=zh-HK
zh=zh-CN

View File

@ -105,25 +105,21 @@ nsLanguageAtomService::GetLanguageGroup(nsIAtom *aLanguage,
}
}
nsString langStr;
nsAutoString langStr;
aLanguage->ToString(langStr);
nsXPIDLString langGroupStr;
res = mLangGroups->GetStringFromName(langStr.get(),
getter_Copies(langGroupStr));
if (NS_FAILED(res)) {
int32_t hyphen = langStr.FindChar('-');
if (hyphen >= 0) {
nsAutoString truncated(langStr);
truncated.Truncate(hyphen);
res = mLangGroups->GetStringFromName(truncated.get(),
getter_Copies(langGroupStr));
if (NS_FAILED(res)) {
langGroupStr.AssignLiteral("x-unicode");
}
} else {
while (NS_FAILED(res)) {
int32_t hyphen = langStr.RFindChar('-');
if (hyphen <= 0) {
langGroupStr.AssignLiteral("x-unicode");
break;
}
langStr.Truncate(hyphen);
res = mLangGroups->GetStringFromName(langStr.get(),
getter_Copies(langGroupStr));
}
nsCOMPtr<nsIAtom> langGroup = do_GetAtom(langGroupStr);