mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-06 22:15:31 +00:00
ICU-8423 Use stand-alone script names if possible in uloc_getDisplayScript()
X-SVN-Rev: 30619
This commit is contained in:
parent
34cbf1552e
commit
de229aa8da
3 changed files with 30 additions and 10 deletions
|
@ -277,6 +277,7 @@ U_NAMESPACE_USE
|
|||
the locale ResourceBundle data file.*/
|
||||
static const char _kLanguages[] = "Languages";
|
||||
static const char _kScripts[] = "Scripts";
|
||||
static const char _kScriptsStandAlone[] = "Scripts%stand-alone";
|
||||
static const char _kCountries[] = "Countries";
|
||||
static const char _kVariants[] = "Variants";
|
||||
static const char _kKeys[] = "Keys";
|
||||
|
@ -399,9 +400,28 @@ uloc_getDisplayScript(const char* locale,
|
|||
const char* displayLocale,
|
||||
UChar *dest, int32_t destCapacity,
|
||||
UErrorCode *pErrorCode)
|
||||
{
|
||||
UErrorCode err = U_ZERO_ERROR;
|
||||
int32_t res = _getDisplayNameForComponent(locale, displayLocale, dest, destCapacity,
|
||||
uloc_getScript, _kScriptsStandAlone, &err);
|
||||
|
||||
if ( err == U_USING_DEFAULT_WARNING ) {
|
||||
return _getDisplayNameForComponent(locale, displayLocale, dest, destCapacity,
|
||||
uloc_getScript, _kScripts, pErrorCode);
|
||||
} else {
|
||||
*pErrorCode = err;
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
U_INTERNAL int32_t U_EXPORT2
|
||||
uloc_getDisplayScriptInContext(const char* locale,
|
||||
const char* displayLocale,
|
||||
UChar *dest, int32_t destCapacity,
|
||||
UErrorCode *pErrorCode)
|
||||
{
|
||||
return _getDisplayNameForComponent(locale, displayLocale, dest, destCapacity,
|
||||
uloc_getScript, _kScripts, pErrorCode);
|
||||
uloc_getScript, _kScripts, pErrorCode);
|
||||
}
|
||||
|
||||
U_CAPI int32_t U_EXPORT2
|
||||
|
@ -579,7 +599,7 @@ uloc_getDisplayName(const char *locale,
|
|||
switch(resti++) {
|
||||
case 0:
|
||||
restPos=length;
|
||||
len=uloc_getDisplayScript(locale, displayLocale, p, cap, pErrorCode);
|
||||
len=uloc_getDisplayScriptInContext(locale, displayLocale, p, cap, pErrorCode);
|
||||
break;
|
||||
case 1:
|
||||
len=uloc_getDisplayCountry(locale, displayLocale, p, cap, pErrorCode);
|
||||
|
|
|
@ -75,7 +75,7 @@ static const char* const rawData2[LOCALE_INFO_SIZE][LOCALE_SIZE] = {
|
|||
/* display language (English) */
|
||||
{ "English", "French", "Catalan", "Greek", "Norwegian", "Chinese", "German", "Spanish", "Japanese" },
|
||||
/* display script code (English) */
|
||||
{ "", "", "", "", "", "Simplified", "", "", "" },
|
||||
{ "", "", "", "", "", "Simplified Han", "", "", "" },
|
||||
/* display country (English) */
|
||||
{ "United States", "France", "Spain", "Greece", "Norway", "China", "Germany", "", "Japan" },
|
||||
/* display variant (English) */
|
||||
|
@ -88,7 +88,7 @@ static const char* const rawData2[LOCALE_INFO_SIZE][LOCALE_SIZE] = {
|
|||
/* display language (French) */
|
||||
{ "anglais", "fran\\u00E7ais", "catalan", "grec", "norv\\u00E9gien", "chinois", "allemand", "espagnol", "japonais" },
|
||||
/* display script code (French) */
|
||||
{ "", "", "", "", "", "id\\u00e9ogrammes han simplifi\\u00e9s", "", "", "" },
|
||||
{ "", "", "", "", "", "chinois simplifi\\u00e9", "", "", "" },
|
||||
/* display country (French) */
|
||||
{ "\\u00C9tats-Unis", "France", "Espagne", "Gr\\u00E8ce", "Norv\\u00E8ge", "Chine", "Allemagne", "", "Japon" },
|
||||
/* display variant (French) */
|
||||
|
@ -101,7 +101,7 @@ static const char* const rawData2[LOCALE_INFO_SIZE][LOCALE_SIZE] = {
|
|||
/* display language (Catalan) */
|
||||
{ "angl\\u00E8s", "franc\\u00E8s", "catal\\u00E0", "grec", "noruec", "xin\\u00E8s", "alemany", "espanyol", "japon\\u00E8s" },
|
||||
/* display script code (Catalan) */
|
||||
{ "", "", "", "", "", "simplificat", "", "", "" },
|
||||
{ "", "", "", "", "", "xin\\u00E8s simplificat", "", "", "" },
|
||||
/* display country (Catalan) */
|
||||
{ "Estats Units", "Fran\\u00E7a", "Espanya", "Gr\\u00E8cia", "Noruega", "Xina", "Alemanya", "", "Jap\\u00F3" },
|
||||
/* display variant (Catalan) */
|
||||
|
@ -125,7 +125,7 @@ static const char* const rawData2[LOCALE_INFO_SIZE][LOCALE_SIZE] = {
|
|||
},
|
||||
/* display script code (Greek) */
|
||||
|
||||
{ "", "", "", "", "", "\\u0391\\u03c0\\u03bb\\u03bf\\u03c0\\u03bf\\u03b9\\u03b7\\u03bc\\u03ad\\u03bd\\u03bf \\u039a\\u03b9\\u03bd\\u03b5\\u03b6\\u03b9\\u03ba\\u03cc", "", "", "" },
|
||||
{ "", "", "", "", "", "\\u0391\\u03c0\\u03bb\\u03bf\\u03c0\\u03bf\\u03b9\\u03b7\\u03bc\\u03ad\\u03bd\\u03b1 \\u03a7\\u03b1\\u03bd", "", "", "" },
|
||||
/* display country (Greek) */
|
||||
{
|
||||
"\\u0397\\u03BD\\u03C9\\u03BC\\u03AD\\u03BD\\u03B5\\u03C2 \\u03A0\\u03BF\\u03BB\\u03B9\\u03C4\\u03B5\\u03AF\\u03B5\\u03C2 \\u03C4\\u03B7\\u03C2 \\u0391\\u03BC\\u03B5\\u03C1\\u03B9\\u03BA\\u03AE\\u03C2",
|
||||
|
|
|
@ -39,7 +39,7 @@ static const char* const rawData[33][8] = {
|
|||
// display langage (English)
|
||||
{ "English", "French", "Catalan", "Greek", "Norwegian", "Italian", "xx", "Chinese" },
|
||||
// display script (English)
|
||||
{ "", "", "", "", "", "", "", "Simplified" },
|
||||
{ "", "", "", "", "", "", "", "Simplified Han" },
|
||||
// display country (English)
|
||||
{ "United States", "France", "Spain", "Greece", "Norway", "", "YY", "China" },
|
||||
// display variant (English)
|
||||
|
@ -52,7 +52,7 @@ static const char* const rawData[33][8] = {
|
|||
// display langage (French)
|
||||
{ "anglais", "fran\\u00E7ais", "catalan", "grec", "norv\\u00E9gien", "italien", "xx", "chinois" },
|
||||
// display script (French)
|
||||
{ "", "", "", "", "", "", "", "id\\u00E9ogrammes han simplifi\\u00E9s" },
|
||||
{ "", "", "", "", "", "", "", "chinois simplifi\\u00E9" },
|
||||
// display country (French)
|
||||
{ "\\u00C9tats-Unis", "France", "Espagne", "Gr\\u00E8ce", "Norv\\u00E8ge", "", "YY", "Chine" },
|
||||
// display variant (French)
|
||||
|
@ -65,7 +65,7 @@ static const char* const rawData[33][8] = {
|
|||
/* display language (Catalan) */
|
||||
{ "angl\\u00E8s", "franc\\u00E8s", "catal\\u00E0", "grec", "noruec", "itali\\u00E0", "", "xin\\u00E8s" },
|
||||
/* display script (Catalan) */
|
||||
{ "", "", "", "", "", "", "", "simplificat" },
|
||||
{ "", "", "", "", "", "", "", "xin\\u00E8s simplificat" },
|
||||
/* display country (Catalan) */
|
||||
{ "Estats Units", "Fran\\u00E7a", "Espanya", "Gr\\u00E8cia", "Noruega", "", "", "Xina" },
|
||||
/* display variant (Catalan) */
|
||||
|
@ -84,7 +84,7 @@ static const char* const rawData[33][8] = {
|
|||
"\\u039A\\u03B9\\u03BD\\u03B5\\u03B6\\u03B9\\u03BA\\u03AC"
|
||||
},
|
||||
// display script (Greek)
|
||||
{ "", "", "", "", "", "", "", "\\u0391\\u03c0\\u03bb\\u03bf\\u03c0\\u03bf\\u03b9\\u03b7\\u03bc\\u03ad\\u03bd\\u03bf \\u039a\\u03b9\\u03bd\\u03b5\\u03b6\\u03b9\\u03ba\\u03cc" },
|
||||
{ "", "", "", "", "", "", "", "\\u0391\\u03c0\\u03bb\\u03bf\\u03c0\\u03bf\\u03b9\\u03b7\\u03bc\\u03ad\\u03bd\\u03b1 \\u03a7\\u03b1\\u03bd" },
|
||||
// display country (Greek)[actual values listed below]
|
||||
{ "\\u0397\\u03BD\\u03C9\\u03BC\\u03AD\\u03BD\\u03B5\\u03C2 \\u03A0\\u03BF\\u03BB\\u03B9\\u03C4\\u03B5\\u03AF\\u03B5\\u03C2 \\u03C4\\u03B7\\u03C2 \\u0391\\u03BC\\u03B5\\u03C1\\u03B9\\u03BA\\u03AE\\u03C2",
|
||||
"\\u0393\\u03b1\\u03bb\\u03bb\\u03af\\u03b1",
|
||||
|
|
Loading…
Add table
Reference in a new issue