ICU-4051 verify locale aliases

X-SVN-Rev: 18430
This commit is contained in:
Ram Viswanadha 2005-08-12 22:01:55 +00:00
parent d0d876fcf7
commit 7aaebd3ab7
45 changed files with 8061 additions and 194 deletions

View file

@ -31,6 +31,7 @@
#include "unicode/utypes.h"
#include "unicode/ustring.h"
#include "unicode/uloc.h"
#include "unicode/ures.h"
#include "putilimp.h"
#include "ustr_imp.h"
@ -173,6 +174,12 @@ NULL,
"in", "iw", "ji", "jw", "sh", /* obsolete language codes */
NULL
};
static const char* DEPRECATED_LANGUAGES[]={
"in", "iw", "ji", "jw", NULL, NULL
};
static const char* REPLACEMENT_LANGUAGES[]={
"id", "he", "yi", "jv", NULL, NULL
};
/**
* Table of 3-letter language codes.
@ -371,6 +378,14 @@ NULL,
NULL
};
static const char* DEPRECATED_COUNTRIES[] ={
"BU", "DY", "FX", "HV", "NH", "RH", "TP", "YU", "ZR", NULL, NULL /* deprecated country list */
};
static const char* REPLACEMENT_COUNTRIES[] = {
/* "BU", "DY", "FX", "HV", "NH", "RH", "TP", "YU", "ZR" */
"MM", "BJ", "FR", "BF", "VU", "ZW", "TL", "CS", "CD", NULL, NULL /* replacement country codes */
};
/**
* Table of 3-letter country codes.
*
@ -1124,6 +1139,22 @@ _copyCount(char *dest, int32_t destCapacity, const char *src) {
}
}
U_CFUNC const char*
uloc_getCurrentCountryID(const char* oldID){
int32_t offset = _findIndex(DEPRECATED_COUNTRIES, oldID);
if (offset >= 0) {
return REPLACEMENT_COUNTRIES[offset];
}
return oldID;
}
U_CFUNC const char*
uloc_getCurrentLanguageID(const char* oldID){
int32_t offset = _findIndex(DEPRECATED_LANGUAGES, oldID);
if (offset >= 0) {
return REPLACEMENT_LANGUAGES[offset];
}
return oldID;
}
/*
* the internal functions _getLanguage(), _getCountry(), _getVariant()
* avoid duplicating code to handle the earlier locale ID pieces
@ -1989,153 +2020,110 @@ _res_getTableStringWithFallback(const char *path, const char *locale,
int32_t *pLength,
UErrorCode *pErrorCode)
{
char localeBuffer[ULOC_FULLNAME_CAPACITY*4];
UResourceBundle *rb, table;
const UChar *item;
/* char localeBuffer[ULOC_FULLNAME_CAPACITY*4];*/
UResourceBundle *rb=NULL, table, subTable;
const UChar *item=NULL;
UErrorCode errorCode;
char explicitFallbackName[ULOC_FULLNAME_CAPACITY] = {0};
int32_t efnLen =0;
const UChar* ef = NULL;
UBool overrideExplicitFallback = FALSE;
for(;;) {
/*
* open the bundle for the current locale
* this falls back through the locale's chain to root
*/
errorCode=U_ZERO_ERROR;
rb=ures_open(path, locale, &errorCode);
if(U_FAILURE(errorCode)) {
/* total failure, not even root could be opened */
*pErrorCode=errorCode;
return NULL;
} else if(errorCode==U_USING_DEFAULT_WARNING ||
(errorCode==U_USING_FALLBACK_WARNING && *pErrorCode!=U_USING_DEFAULT_WARNING)
) {
/* set the "strongest" error code (success->fallback->default->failure) */
*pErrorCode=errorCode;
}
/*
* try to open the requested table
* this falls back through the locale's chain to root, but not through the default locale
*/
errorCode=U_ZERO_ERROR;
ures_initStackObject(&table);
ures_getByKey(rb, tableKey, &table, &errorCode);
if(U_FAILURE(errorCode)) {
/* no such table anywhere in this fallback chain */
ures_close(rb);
*pErrorCode=errorCode;
return NULL;
} else if(errorCode==U_USING_DEFAULT_WARNING ||
(errorCode==U_USING_FALLBACK_WARNING && *pErrorCode!=U_USING_DEFAULT_WARNING)
) {
/* set the "strongest" error code (success->fallback->default->failure) */
*pErrorCode=errorCode;
}
/* check if the fallback token is set */
ef = ures_getStringByKey(&table, "Fallback", &efnLen, &errorCode);
if(U_SUCCESS(errorCode)){
/* set the fallback chain */
u_UCharsToChars(ef, explicitFallbackName, efnLen);
/* null terminate the buffer */
explicitFallbackName[efnLen]=0;
}else if(errorCode==U_USING_DEFAULT_WARNING ||
(errorCode==U_USING_FALLBACK_WARNING && *pErrorCode!=U_USING_DEFAULT_WARNING)
) {
/* set the "strongest" error code (success->fallback->default->failure) */
*pErrorCode=errorCode;
}
/* try to open the requested item in the table */
errorCode=U_ZERO_ERROR;
if(subTableKey == NULL){
item=ures_getStringByKey(&table, itemKey, pLength, &errorCode);
}else{
UResourceBundle subTable;
ures_initStackObject(&subTable);
ures_getByKey(&table, subTableKey, &subTable, &errorCode);
item = ures_getStringByKey(&subTable, itemKey, pLength, &errorCode);
ures_close(&subTable);
}
if(U_SUCCESS(errorCode)) {
/* if the item for the key is empty ... override the explicit fall back set */
if(item[0]==0 && efnLen > 0){
overrideExplicitFallback = TRUE;
}else{
/* we got the requested item! */
ures_close(&table);
ures_close(rb);
if(errorCode==U_USING_DEFAULT_WARNING ||
(errorCode==U_USING_FALLBACK_WARNING && *pErrorCode!=U_USING_DEFAULT_WARNING)
) {
/* set the "strongest" error code (success->fallback->default->failure) */
*pErrorCode=errorCode;
}
/*
* It is safe to close the bundle and still return the
* string pointer because resource bundles are
* cached until u_cleanup().
*/
return item;
}
}
/*
* We get here if the item was not found.
* We will follow the chain to the parent locale bundle and look in
* the table there.
*/
/* get the real locale ID for this table */
errorCode=U_ZERO_ERROR;
locale=ures_getLocale(&table, &errorCode);
/* keep table and rb open until we are done using the locale string owned by the table bundle */
if(U_FAILURE(errorCode)) {
/* error getting the locale ID for an open RB - should never happen */
ures_close(&table);
ures_close(rb);
*pErrorCode=U_INTERNAL_PROGRAM_ERROR;
return NULL;
}
if(*locale==0 || 0==uprv_strcmp(locale, _kRootName) || 0==uprv_strcmp(locale,explicitFallbackName)) {
/* end of fallback; even root does not have the requested item either */
ures_close(&table);
ures_close(rb);
*pErrorCode=U_MISSING_RESOURCE_ERROR;
return NULL;
}
/* could not find the table, or its item, try to fall back to a different RB and table */
errorCode=U_ZERO_ERROR;
if(efnLen > 0 && overrideExplicitFallback == FALSE){
/* continue the fallback lookup with the explicit fallback that is requested */
locale = explicitFallbackName;
}else{
uloc_getParent(locale, localeBuffer, sizeof(localeBuffer), &errorCode);
if(U_FAILURE(errorCode) || errorCode==U_STRING_NOT_TERMINATED_WARNING) {
/* error getting the parent locale ID - should never happen */
*pErrorCode=U_INTERNAL_PROGRAM_ERROR;
return NULL;
}
/* continue the fallback lookup with the parent locale ID */
locale=localeBuffer;
/* adjust error code as we fall back */
if (uprv_strlen(locale) == 0) /* Falling back to root locale? */
*pErrorCode = U_USING_DEFAULT_WARNING;
else if (*pErrorCode != U_USING_DEFAULT_WARNING)
*pErrorCode = U_USING_FALLBACK_WARNING;
}
/* done with the locale string - ready to close table and rb */
ures_close(&table);
ures_close(rb);
/*
* open the bundle for the current locale
* this falls back through the locale's chain to root
*/
errorCode=U_ZERO_ERROR;
rb=ures_open(path, locale, &errorCode);
if(U_FAILURE(errorCode)) {
/* total failure, not even root could be opened */
*pErrorCode=errorCode;
return NULL;
} else if(errorCode==U_USING_DEFAULT_WARNING ||
(errorCode==U_USING_FALLBACK_WARNING && *pErrorCode!=U_USING_DEFAULT_WARNING)
) {
/* set the "strongest" error code (success->fallback->default->failure) */
*pErrorCode=errorCode;
}
for(;;){
ures_initStackObject(&table);
ures_initStackObject(&subTable);
ures_getByKeyWithFallback(rb, tableKey, &table, &errorCode);
if (subTableKey != NULL) {
/*
ures_getByKeyWithFallback(&table,subTableKey, &subTable, &errorCode);
item = ures_getStringByKeyWithFallback(&subTable, itemKey, pLength, &errorCode);
if(U_FAILURE(errorCode)){
*pErrorCode = errorCode;
}
break;*/
ures_getByKeyWithFallback(&table,subTableKey, &table, &errorCode);
}
if(U_SUCCESS(errorCode)){
item = ures_getStringByKeyWithFallback(&table, itemKey, pLength, &errorCode);
if(U_FAILURE(errorCode)){
const char* replacement = NULL;
*pErrorCode = errorCode; /*save the errorCode*/
errorCode = U_ZERO_ERROR;
/* may be a deprecated code */
if(uprv_strcmp(tableKey, "Countries")==0){
replacement = uloc_getCurrentCountryID(itemKey);
}else if(uprv_strcmp(tableKey, "Languages")==0){
replacement = uloc_getCurrentLanguageID(itemKey);
}
/*pointer comparison is ok since uloc_getCurrentCountryID & uloc_getCurrentLanguageID return the key itself is replacement is not found*/
if(replacement!=NULL && itemKey != replacement){
item = ures_getStringByKeyWithFallback(&table, replacement, pLength, &errorCode);
if(U_SUCCESS(errorCode)){
*pErrorCode = errorCode;
break;
}
}
}else{
break;
}
}
if(U_FAILURE(errorCode)){
/* still can't figure out ?.. try the fallback mechanism */
int32_t len = 0;
const UChar* fallbackLocale = NULL;
*pErrorCode = errorCode;
errorCode = U_ZERO_ERROR;
fallbackLocale = ures_getStringByKeyWithFallback(&table, "Fallback", &len, &errorCode);
if(U_FAILURE(errorCode)){
*pErrorCode = errorCode;
break;
}
u_UCharsToChars(fallbackLocale, explicitFallbackName, len);
/* guard against recursive fallback */
if(uprv_strcmp(explicitFallbackName, locale)==0){
*pErrorCode = U_INTERNAL_PROGRAM_ERROR;
break;
}
ures_close(rb);
rb = ures_open(NULL, explicitFallbackName, &errorCode);
if(U_FAILURE(errorCode)){
*pErrorCode = errorCode;
break;
}
/* succeeded in opening the fallback bundle .. continue and try to fetch the item */
}else{
break;
}
}
/* done with the locale string - ready to close table and rb */
ures_close(&subTable);
ures_close(&table);
ures_close(rb);
return item;
}
static int32_t

View file

@ -711,6 +711,27 @@ ures_getByKeyWithFallback(const UResourceBundle *resB,
UErrorCode *status);
/**
* Get a String with multi-level fallback. Normally only the top level resources will
* fallback to its parent. This performs fallback on subresources. For example, when a table
* is defined in a resource bundle and a parent resource bundle, normally no fallback occurs
* on the sub-resources because the table is defined in the current resource bundle, but this
* function can perform fallback on the sub-resources of the table.
* @param resB a resource
* @param inKey a key associated with the requested resource
* @param status: fills in the outgoing error code
* could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found
* could be a non-failing error
* e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT>
* @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must delete it
* @internal ICU 3.4
* @draft ICU 3.4
*/
U_INTERNAL const UChar* U_EXPORT2
ures_getStringByKeyWithFallback(const UResourceBundle *resB,
const char* inKey,
int32_t* len,
UErrorCode *status);
/**
* Create a string enumerator, owned by the caller, of all locales located within
* the specified resource tree.

View file

@ -1353,6 +1353,20 @@ ures_findSubResource(const UResourceBundle *resB, char* path, UResourceBundle *f
return result;
}
U_INTERNAL const UChar* U_EXPORT2
ures_getStringByKeyWithFallback(const UResourceBundle *resB,
const char* inKey,
int32_t* len,
UErrorCode *status) {
UResourceBundle stack;
const UChar* retVal = NULL;
ures_initStackObject(&stack);
ures_getByKeyWithFallback(resB, inKey, &stack, status);
retVal = ures_getString(&stack, len, status);
ures_close(&stack);
return retVal;
}
U_CAPI UResourceBundle* U_EXPORT2
ures_getByKeyWithFallback(const UResourceBundle *resB,

View file

@ -25,8 +25,8 @@
# Generated by LDML2ICUConverter, from LDML source files.
# Aliases which do not have a corresponding xx.xml file (see deprecatedList.xml)
COLLATION_SYNTHETIC_ALIAS = de__PHONEBOOK.txt es__TRADITIONAL.txt hi__DIRECT.txt zh_TW_STROKE.txt\
zh__PINYIN.txt
COLLATION_SYNTHETIC_ALIAS = de__PHONEBOOK.txt es__TRADITIONAL.txt hi__DIRECT.txt in.txt\
in_ID.txt iw.txt iw_IL.txt zh_TW_STROKE.txt zh__PINYIN.txt
# All aliases (to not be included under 'installed'), but not including root.

View file

@ -0,0 +1,11 @@
// ***************************************************************************
// *
// * Copyright (C) 2005 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File: deprecatedList.xml
// *
// ***************************************************************************
in{
"%%ALIAS"{"id"}
}

View file

@ -0,0 +1,11 @@
// ***************************************************************************
// *
// * Copyright (C) 2005 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File: deprecatedList.xml
// *
// ***************************************************************************
in_ID{
"%%ALIAS"{"id_ID"}
}

View file

@ -0,0 +1,11 @@
// ***************************************************************************
// *
// * Copyright (C) 2005 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File: deprecatedList.xml
// *
// ***************************************************************************
iw{
"%%ALIAS"{"he"}
}

View file

@ -0,0 +1,11 @@
// ***************************************************************************
// *
// * Copyright (C) 2005 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File: deprecatedList.xml
// *
// ***************************************************************************
iw_IL{
"%%ALIAS"{"he_IL"}
}

View file

@ -1590,6 +1590,22 @@ cs{
}
localPatternChars{"GuMtkHmsSEDFwWahKzUeygAZvcL"}
zoneStrings{
{
"Antarctica/South_Pole",
"",
"",
"",
"",
"Jižní pól",
}
{
"America/Cordoba",
"",
"",
"",
"",
"Kordoba",
}
{
"America/Halifax",
"Atlantický standardní čas",
@ -1598,6 +1614,30 @@ cs{
"ADT",
"Halifax",
}
{
"Asia/Kashgar",
"",
"",
"",
"",
"Kašghar",
}
{
"Pacific/Galapagos",
"",
"",
"",
"",
"Galapágy",
}
{
"Atlantic/Canary",
"",
"",
"",
"",
"Kanárské ostrovy",
}
{
"Europe/Paris",
"Středoevropský standardní čas",
@ -1606,6 +1646,22 @@ cs{
"CEST",
"Paříž",
}
{
"Europe/London",
"",
"",
"",
"",
"Londýn",
}
{
"Asia/Jakarta",
"",
"",
"",
"",
"Jakarta",
}
{
"Asia/Jerusalem",
"Izraelský standardní čas",
@ -1630,6 +1686,38 @@ cs{
"GMT",
"Casablanca",
}
{
"Asia/Ulaanbaatar",
"",
"",
"",
"",
"Ulánbátar",
}
{
"America/Tijuana",
"",
"",
"",
"",
"Tichuana",
}
{
"Atlantic/Azores",
"",
"",
"",
"",
"Azorské ostrovy",
}
{
"Europe/Lisbon",
"",
"",
"",
"",
"Lisabon",
}
{
"Europe/Bucharest",
"Východoevropský standardní čas",
@ -1638,6 +1726,78 @@ cs{
"EEST",
"Bukurešť",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"Moskva",
}
{
"Asia/Yekaterinburg",
"",
"",
"",
"",
"Jekatěrinburg",
}
{
"Asia/Krasnoyarsk",
"",
"",
"",
"",
"Krasnojarsk",
}
{
"Asia/Yakutsk",
"",
"",
"",
"",
"Jakutsk",
}
{
"Asia/Sakhalin",
"",
"",
"",
"",
"Sachalin",
}
{
"Asia/Kamchatka",
"",
"",
"",
"",
"Kamčatka",
}
{
"Europe/Uzhgorod",
"",
"",
"",
"",
"Užhorod",
}
{
"Europe/Kiev",
"",
"",
"",
"",
"Kyjev",
}
{
"Europe/Zaporozhye",
"",
"",
"",
"",
"Záporoží",
}
{
"Pacific/Honolulu",
"Havajský standardní čas",
@ -1702,5 +1862,13 @@ cs{
"EDT",
"New York",
}
{
"Asia/Tashkent",
"",
"",
"",
"",
"Taškent",
}
}
}

View file

@ -1813,6 +1813,14 @@ da{
}
localPatternChars{"GuMtkHmsSEDFwWahKzUeygAZvcL"}
zoneStrings{
{
"Antarctica/South_Pole",
"",
"",
"",
"",
"Sydpolen",
}
{
"America/Halifax",
"Atlantic-normaltid",
@ -1829,6 +1837,14 @@ da{
"CDT",
"St. Johns",
}
{
"Pacific/Easter",
"",
"",
"",
"",
"Påskeøen",
}
{
"Asia/Shanghai",
"Kinesisk normaltid",
@ -1837,6 +1853,14 @@ da{
"CDT",
"Shanghai",
}
{
"Atlantic/Canary",
"",
"",
"",
"",
"De Kanariske Øer",
}
{
"Europe/Paris",
"Mellemeuropæisk normaltid",
@ -1845,6 +1869,14 @@ da{
"CEST",
"Paris",
}
{
"America/Godthab",
"",
"",
"",
"",
"Nuuk",
}
{
"Asia/Jerusalem",
"Israelsk normaltid",
@ -1869,6 +1901,14 @@ da{
"GMT",
"Casablanca",
}
{
"Europe/Lisbon",
"",
"",
"",
"",
"Lissabon",
}
{
"Europe/Bucharest",
"Østeuropæisk normaltid",
@ -1877,6 +1917,14 @@ da{
"EEST",
"Bukarest",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"Moskva",
}
{
"Pacific/Honolulu",
"Hawaii-normaltid",

View file

@ -1910,6 +1910,38 @@ de{
}
localPatternChars{"GjMtkHmsSEDFwWahKzJeugAZvcL"}
zoneStrings{
{
"Antarctica/South_Pole",
"",
"",
"",
"",
"Südpol",
}
{
"Antarctica/Vostok",
"",
"",
"",
"",
"Wostok",
}
{
"America/St_Johns",
"",
"",
"",
"",
"St. John's",
}
{
"Pacific/Easter",
"",
"",
"",
"",
"Osterinsel",
}
{
"Europe/Berlin",
"Mitteleuropäische Zeit",
@ -1918,5 +1950,141 @@ de{
"MESZ",
"Berlin",
}
{
"Atlantic/Canary",
"",
"",
"",
"",
"Kanaren",
}
{
"Asia/Ulaanbaatar",
"",
"",
"",
"",
"Ulan-Bator",
}
{
"America/Mexico_City",
"",
"",
"",
"",
"Mexiko-Stadt",
}
{
"Atlantic/Azores",
"",
"",
"",
"",
"Azoren",
}
{
"Europe/Lisbon",
"",
"",
"",
"",
"Lissabon",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"Moskau",
}
{
"Asia/Yekaterinburg",
"",
"",
"",
"",
"Jekaterinburg",
}
{
"Asia/Novosibirsk",
"",
"",
"",
"",
"Nowosibirsk",
}
{
"Asia/Krasnoyarsk",
"",
"",
"",
"",
"Krasnojarsk",
}
{
"Asia/Yakutsk",
"",
"",
"",
"",
"Jakutsk",
}
{
"Asia/Vladivostok",
"",
"",
"",
"",
"Wladiwostok",
}
{
"Asia/Sakhalin",
"",
"",
"",
"",
"Sachalin",
}
{
"Asia/Kamchatka",
"",
"",
"",
"",
"Kamtschatka",
}
{
"Europe/Uzhgorod",
"",
"",
"",
"",
"Uschgorod",
}
{
"Europe/Kiev",
"",
"",
"",
"",
"Kiew",
}
{
"Europe/Zaporozhye",
"",
"",
"",
"",
"Saporischja",
}
{
"Asia/Tashkent",
"",
"",
"",
"",
"Taschkent",
}
}
}

View file

@ -0,0 +1,11 @@
// ***************************************************************************
// *
// * Copyright (C) 2005 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File: deprecatedList.xml
// *
// ***************************************************************************
en_RH{
"%%ALIAS"{"en_ZW"}
}

View file

@ -1908,6 +1908,22 @@ es{
}
localPatternChars{"GuMtkHmsSEDFwWahKzUeygAZvcL"}
zoneStrings{
{
"Antarctica/South_Pole",
"",
"",
"",
"",
"Polo Sur ",
}
{
"America/Cordoba",
"",
"",
"",
"",
"Córdoba",
}
{
"America/Halifax",
"Hora estándar del Atlántico",
@ -1924,6 +1940,14 @@ es{
"CDT",
"St. Johns",
}
{
"Pacific/Easter",
"",
"",
"",
"",
"Pascua",
}
{
"Asia/Shanghai",
"Hora estándar de China",
@ -1932,6 +1956,14 @@ es{
"CDT",
"Shanghai",
}
{
"Atlantic/Canary",
"",
"",
"",
"",
"Canarias",
}
{
"Europe/Paris",
"Hora estándar de Europa Central",
@ -1940,6 +1972,14 @@ es{
"CEST",
"París",
}
{
"Europe/London",
"",
"",
"",
"",
"Londres",
}
{
"Asia/Jerusalem",
"Hora estándar de Israel",
@ -1964,6 +2004,46 @@ es{
"GMT",
"Casablanca",
}
{
"America/Mexico_City",
"",
"",
"",
"",
"Ciudad de México ",
}
{
"America/Merida",
"",
"",
"",
"",
"Mérida",
}
{
"America/Cancun",
"",
"",
"",
"",
"Cancún",
}
{
"Pacific/Tahiti",
"",
"",
"",
"",
"Tahití",
}
{
"Europe/Lisbon",
"",
"",
"",
"",
"Lisboa",
}
{
"Europe/Bucharest",
"Hora estándar de Europa del Este",
@ -1972,6 +2052,30 @@ es{
"EEST",
"Bucarest",
}
{
"Europe/Kaliningrad",
"",
"",
"",
"",
"Kaliningrado",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"Moscú",
}
{
"Asia/Yekaterinburg",
"",
"",
"",
"",
"Yekaterinburgo",
}
{
"Pacific/Honolulu",
"Hora estándar de Hawai",

View file

@ -2045,6 +2045,38 @@ fi{
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
zoneStrings{
{
"Antarctica/South_Pole",
"",
"",
"",
"",
"Etelänapa",
}
{
"Antarctica/DumontDUrville",
"",
"",
"",
"",
"Dumont d'Urville",
}
{
"America/Argentina/ComodRivadavia",
"",
"",
"",
"",
"Comodoro Rivadavia",
}
{
"America/Sao_Paulo",
"",
"",
"",
"",
"São Paulo",
}
{
"America/Halifax",
"Kanadan Atlantin normaaliaika",
@ -2061,6 +2093,14 @@ fi{
"CDT",
"St. Johns",
}
{
"Pacific/Easter",
"",
"",
"",
"",
"Pääsiäissaari",
}
{
"Asia/Shanghai",
"Kiinan normaaliaika",
@ -2069,6 +2109,14 @@ fi{
"CTT",
"Shanghai",
}
{
"Atlantic/Canary",
"",
"",
"",
"",
"Kanariansaaret",
}
{
"Europe/Paris",
"Keski-Euroopan normaaliaika",
@ -2077,6 +2125,14 @@ fi{
"CEST",
"Pariisi",
}
{
"Europe/London",
"",
"",
"",
"",
"Lontoo",
}
{
"Asia/Jerusalem",
"Israelin normaaliaika",
@ -2101,6 +2157,38 @@ fi{
"GMT",
"Casablanca",
}
{
"Asia/Ulaanbaatar",
"",
"",
"",
"",
"Ulan Bator",
}
{
"America/Cancun",
"",
"",
"",
"",
"Cancún",
}
{
"Atlantic/Azores",
"",
"",
"",
"",
"Azorit",
}
{
"Europe/Lisbon",
"",
"",
"",
"",
"Lissabon",
}
{
"Europe/Bucharest",
"Itä-Euroopan normaaliaika",
@ -2109,6 +2197,70 @@ fi{
"EEST",
"Bukarest",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"Moskova",
}
{
"Asia/Yekaterinburg",
"",
"",
"",
"",
"Jekaterinburg",
}
{
"Asia/Krasnoyarsk",
"",
"",
"",
"",
"Krasnojarsk",
}
{
"Asia/Yakutsk",
"",
"",
"",
"",
"Jakutsk",
}
{
"Asia/Sakhalin",
"",
"",
"",
"",
"Sahalin",
}
{
"Asia/Kamchatka",
"",
"",
"",
"",
"Kamtšatka",
}
{
"Europe/Uzhgorod",
"",
"",
"",
"",
"Užgorod",
}
{
"Europe/Kiev",
"",
"",
"",
"",
"Kiova",
}
{
"Pacific/Honolulu",
"Havaijin normaaliaika",
@ -2149,6 +2301,14 @@ fi{
"MDT",
"Denver",
}
{
"America/North_Dakota/Center",
"",
"",
"",
"",
"keskinen North Dakota",
}
{
"America/Chicago",
"Yhdysvaltain keskinen normaaliaika>",
@ -2173,5 +2333,13 @@ fi{
"EDT",
"New York",
}
{
"Asia/Tashkent",
"",
"",
"",
"",
"Taškent",
}
}
}

View file

@ -1875,6 +1875,54 @@ fr{
}
localPatternChars{"GaMjkHmsSEDFwWxhKzAeugXZvcL"}
zoneStrings{
{
"Antarctica/South_Pole",
"",
"",
"",
"",
"Pôle Sud",
}
{
"Antarctica/DumontDUrville",
"",
"",
"",
"",
"Dumont d'Urville",
}
{
"Antarctica/McMurdo",
"",
"",
"",
"",
"Mac Murdo",
}
{
"America/Argentina/ComodRivadavia",
"",
"",
"",
"",
"Comodoro Rivadavia",
}
{
"Australia/Adelaide",
"",
"",
"",
"",
"Adélaïde",
}
{
"America/Manaus",
"",
"",
"",
"",
"Manaos",
}
{
"America/Vancouver",
"Heure normale du Pacifique",
@ -1935,6 +1983,22 @@ fr{
"Heure de Terre-Neuve",
"HT",
}
{
"Pacific/Easter",
"",
"",
"",
"",
"Île de Pâques",
}
{
"Asia/Kashgar",
"",
"",
"",
"",
"Kachgar",
}
{
"Asia/Shanghai",
"Heure normale de Chine",
@ -1943,6 +2007,14 @@ fr{
"HAC",
"Shanghai",
}
{
"Atlantic/Canary",
"",
"",
"",
"",
"Îles Canaries",
}
{
"Europe/Paris",
"Heure normale de lEurope centrale",
@ -1953,6 +2025,14 @@ fr{
"Heure de lEurope centrale",
"HEC",
}
{
"Europe/London",
"",
"",
"",
"",
"Londres",
}
{
"Asia/Jerusalem",
"Heure normale dIsraël",
@ -1969,6 +2049,94 @@ fr{
"HAJ",
"Tokyo",
}
{
"Asia/Aqtau",
"",
"",
"",
"",
"Chevtchenko",
}
{
"Asia/Oral",
"",
"",
"",
"",
"Ouralsk",
}
{
"Asia/Aqtobe",
"",
"",
"",
"",
"Aktioubinsk",
}
{
"Asia/Almaty",
"",
"",
"",
"",
"Alma Ata",
}
{
"Africa/Timbuktu",
"",
"",
"",
"",
"Tombouctou",
}
{
"Asia/Ulaanbaatar",
"",
"",
"",
"",
"Oulan-Bator",
}
{
"Asia/Choibalsan",
"",
"",
"",
"",
"Tchoïbalsan",
}
{
"America/Mexico_City",
"",
"",
"",
"",
"Mexico",
}
{
"Pacific/Marquesas",
"",
"",
"",
"",
"Marquises",
}
{
"Atlantic/Azores",
"",
"",
"",
"",
"Açores",
}
{
"Europe/Lisbon",
"",
"",
"",
"",
"Lisbonne",
}
{
"Europe/Bucharest",
"Heure normale de lEurope de lEst",
@ -1977,6 +2145,78 @@ fr{
"HAEE",
"Bucarest",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"Moscou",
}
{
"Asia/Yekaterinburg",
"",
"",
"",
"",
"Ekaterinbourg",
}
{
"Asia/Novosibirsk",
"",
"",
"",
"",
"Novossibirsk",
}
{
"Asia/Irkutsk",
"",
"",
"",
"",
"Irkoutsk",
}
{
"Asia/Yakutsk",
"",
"",
"",
"",
"Iakoutsk",
}
{
"Asia/Sakhalin",
"",
"",
"",
"",
"Sakhaline",
}
{
"Asia/Kamchatka",
"",
"",
"",
"",
"Kamtchatka",
}
{
"Europe/Uzhgorod",
"",
"",
"",
"",
"Oujgorod",
}
{
"Europe/Zaporozhye",
"",
"",
"",
"",
"Zaporojie",
}
{
"Pacific/Honolulu",
"Heure normale dHawaï",
@ -2047,6 +2287,14 @@ fr{
"Heure de lEst (ÉUA)",
"HE (ÉUA)",
}
{
"America/Detroit",
"",
"",
"",
"",
"Détroit",
}
{
"America/New_York",
"Heure normale de lEst (ÉUA)",

View file

@ -518,4 +518,470 @@ he{
islamic-civil:alias{"/LOCALE/calendar/islamic"}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
zoneStrings{
{
"Antarctica/Palmer",
"",
"",
"",
"",
"אמריקה/פאלמר",
}
{
"America/Mendoza",
"",
"",
"",
"",
"אמריקה/מנדוזה",
}
{
"America/Argentina/San_Juan",
"",
"",
"",
"",
"אמריקה/ארגנטינה/סאן-חואן",
}
{
"America/Cordoba",
"",
"",
"",
"",
"אמריקה/קורדובה",
}
{
"America/Buenos_Aires",
"",
"",
"",
"",
"בואנוס איירס",
}
{
"Australia/Perth",
"",
"",
"",
"",
"אוסטרליה/פרת'",
}
{
"Australia/Darwin",
"",
"",
"",
"",
"אוסטרליה/דרווין",
}
{
"Australia/Adelaide",
"",
"",
"",
"",
"אדלייד",
}
{
"Australia/Broken_Hill",
"",
"",
"",
"",
"אוסטרליה/ברוקן-היל",
}
{
"Australia/Melbourne",
"",
"",
"",
"",
"אוסטרליה/מלבורן",
}
{
"Australia/Hobart",
"",
"",
"",
"",
"אוסטרליה/הוברט",
}
{
"Australia/Sydney",
"",
"",
"",
"",
"אוסטרליה/סידני",
}
{
"Australia/Brisbane",
"",
"",
"",
"",
"אוסטרליה/בריסבן",
}
{
"America/Sao_Paulo",
"",
"",
"",
"",
"אמריקה/סאן-פאולו",
}
{
"America/Bahia",
"",
"",
"",
"",
"אמריקה/בהיאה",
}
{
"America/Vancouver",
"",
"",
"",
"",
"אמריקה/ונקובר",
}
{
"America/Dawson_Creek",
"",
"",
"",
"",
"אמריקה/דוסון-קריק",
}
{
"America/Edmonton",
"",
"",
"",
"",
"אמריקה/אדמנטון",
}
{
"America/Winnipeg",
"",
"",
"",
"",
"אמריקה/וויניפוג",
}
{
"America/Toronto",
"",
"",
"",
"",
"אמריקה/טורנטו",
}
{
"America/Montreal",
"",
"",
"",
"",
"אמריקה/מונטריאול",
}
{
"America/Halifax",
"",
"",
"",
"",
"אמריקה/הליפקס",
}
{
"America/Santiago",
"",
"",
"",
"",
"אמריקה/סנטיאגו",
}
{
"Asia/Shanghai",
"",
"",
"",
"",
"אסיה/שנחאי",
}
{
"Pacific/Galapagos",
"",
"",
"",
"",
"פסיפי/גלאפגוס",
}
{
"Atlantic/Canary",
"",
"",
"",
"",
"אטלנטי/קנרי",
}
{
"Europe/Madrid",
"",
"",
"",
"",
"אירופה/מדריד",
}
{
"Europe/Belfast",
"",
"",
"",
"",
"אירופה/בלפסט",
}
{
"Europe/London",
"",
"",
"",
"",
"אירופה/לונדון",
}
{
"Asia/Jakarta",
"",
"",
"",
"",
"אסיה/ג'קרטה",
}
{
"Asia/Oral",
"",
"",
"",
"",
"אסיה/אורל",
}
{
"Africa/Timbuktu",
"",
"",
"",
"",
"אפריקה/טימבקטו",
}
{
"America/Mazatlan",
"",
"",
"",
"",
"אמריקה/מזטלן",
}
{
"America/Monterrey",
"",
"",
"",
"",
"אמריקה/מונטריי",
}
{
"America/Mexico_City",
"",
"",
"",
"",
"אמריקה/מקסיקו סיטי",
}
{
"America/Cancun",
"",
"",
"",
"",
"אמריקה/קנקון",
}
{
"Asia/Kuala_Lumpur",
"",
"",
"",
"",
"קואלה לומפור",
}
{
"Pacific/Auckland",
"",
"",
"",
"",
"פסיפי/אוקלנד",
}
{
"Pacific/Tahiti",
"",
"",
"",
"",
"פסיפי/טהיטי",
}
{
"Europe/Lisbon",
"",
"",
"",
"",
"אירופה/ליסבון",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"אירופה/מוסקבה",
}
{
"Europe/Samara",
"",
"",
"",
"",
"אירופה/סמרה",
}
{
"Asia/Omsk",
"",
"",
"",
"",
"איה/אומסק",
}
{
"Asia/Novosibirsk",
"",
"",
"",
"",
"אסיה/נובוסיבירסק",
}
{
"Europe/Kiev",
"",
"",
"",
"",
"אירופה/קייב",
}
{
"Pacific/Honolulu",
"",
"",
"",
"",
"פסיפי/הונולולו",
}
{
"America/Los_Angeles",
"",
"",
"",
"",
"אמריקה/לוס-אנג'לס",
}
{
"America/Phoenix",
"",
"",
"",
"",
"אמריקה/פיניקס",
}
{
"America/Shiprock",
"",
"",
"",
"",
"אמריקה/שיפרוק",
}
{
"America/Denver",
"",
"",
"",
"",
"אמריקה/דנוור",
}
{
"America/North_Dakota/Center",
"",
"",
"",
"",
"אמריקה/צפון דקוטה/מרכז",
}
{
"America/Chicago",
"",
"",
"",
"",
"אמריקה/שיקגו",
}
{
"America/Indianapolis",
"",
"",
"",
"",
"אינדיאנפוליס",
}
{
"America/Louisville",
"",
"",
"",
"",
"אמריקה/לואיסוויל",
}
{
"America/Detroit",
"",
"",
"",
"",
"אמריקה/דטרויט",
}
{
"America/New_York",
"",
"",
"",
"",
"אמריקה/ניו-יורק",
}
{
"Asia/Samarkand",
"",
"",
"",
"",
"אסיה/סמרקנד",
}
{
"Asia/Tashkent",
"",
"",
"",
"",
"אסיה/טשקנט",
}
}
}

View file

@ -1249,4 +1249,102 @@ hr{
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
zoneStrings{
{
"Antarctica/South_Pole",
"",
"",
"",
"",
"Južni pol",
}
{
"Africa/Kinshasa",
"",
"",
"",
"",
"Kinšasa",
}
{
"Africa/Lubumbashi",
"",
"",
"",
"",
"Lubumbaši",
}
{
"Asia/Shanghai",
"",
"",
"",
"",
"Šangaj",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"Moskva",
}
{
"Asia/Krasnoyarsk",
"",
"",
"",
"",
"Krasnojarsk",
}
{
"Asia/Kamchatka",
"",
"",
"",
"",
"Kamčatka",
}
{
"Asia/Anadyr",
"",
"",
"",
"",
"Anadir",
}
{
"Europe/Uzhgorod",
"",
"",
"",
"",
"Uzgorod",
}
{
"Europe/Kiev",
"",
"",
"",
"",
"Kijev",
}
{
"Europe/Zaporozhye",
"",
"",
"",
"",
"Zaporožje",
}
{
"Asia/Tashkent",
"",
"",
"",
"",
"Taškent",
}
}
}

View file

@ -1616,4 +1616,14 @@ hu{
islamic-civil:alias{"/LOCALE/calendar/islamic"}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
zoneStrings{
{
"Europe/Paris",
"",
"",
"",
"",
"Paris",
}
}
}

View file

@ -1912,6 +1912,30 @@ it{
quotationStart{""}
}
zoneStrings{
{
"Antarctica/South_Pole",
"",
"",
"",
"",
"Polo Sud",
}
{
"America/Cordoba",
"",
"",
"",
"",
"Cordova",
}
{
"America/Sao_Paulo",
"",
"",
"",
"",
"San Paolo",
}
{
"America/Halifax",
"Ora Standard Atlantico",
@ -1928,6 +1952,14 @@ it{
"CDT",
"St. Johns",
}
{
"Pacific/Easter",
"",
"",
"",
"",
"Pasqua",
}
{
"Asia/Shanghai",
"Ora Standard Cina",
@ -1936,6 +1968,14 @@ it{
"CDT",
"Shanghai",
}
{
"Atlantic/Canary",
"",
"",
"",
"",
"Canarie",
}
{
"Europe/Paris",
"Ora Standard Centrale Europeo",
@ -1944,6 +1984,22 @@ it{
"CEST",
"Parigi",
}
{
"Europe/London",
"",
"",
"",
"",
"Londra",
}
{
"Asia/Jakarta",
"",
"",
"",
"",
"Giacarta",
}
{
"Asia/Jerusalem",
"Ora Standard Israele",
@ -1968,6 +2024,38 @@ it{
"GMT",
"Casablanca",
}
{
"Africa/Timbuktu",
"",
"",
"",
"",
"Timbuctu",
}
{
"America/Mexico_City",
"",
"",
"",
"",
"Città del Messico",
}
{
"Atlantic/Azores",
"",
"",
"",
"",
"Azzorre",
}
{
"Europe/Lisbon",
"",
"",
"",
"",
"Lisbona",
}
{
"Europe/Bucharest",
"Ora Standard Europa Orientale",
@ -1976,6 +2064,14 @@ it{
"EEST",
"Bucarest",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"Mosca",
}
{
"Pacific/Honolulu",
"Ora Standard Hawaii",
@ -2040,5 +2136,13 @@ it{
"EDT",
"New York",
}
{
"Asia/Samarkand",
"",
"",
"",
"",
"Samarcanda",
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -1908,6 +1908,46 @@ nb{
}
}
zoneStrings{
{
"Antarctica/South_Pole",
"",
"",
"",
"",
"Sydpolen",
}
{
"America/St_Johns",
"",
"",
"",
"",
"St. John's",
}
{
"America/Godthab",
"",
"",
"",
"",
"Godthåb",
}
{
"Atlantic/Azores",
"",
"",
"",
"",
"Azorene",
}
{
"Europe/Lisbon",
"",
"",
"",
"",
"Lisboa",
}
{
"Europe/Bucharest",
"Eastern European Standard Time",
@ -1916,5 +1956,13 @@ nb{
"EEST",
"Bucuresti",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"Moskva",
}
}
}

View file

@ -1989,6 +1989,94 @@ nl{
islamic-civil:alias{"/LOCALE/calendar/islamic"}
}
zoneStrings{
{
"Antarctica/South_Pole",
"",
"",
"",
"",
"Zuidpool",
}
{
"Antarctica/DumontDUrville",
"",
"",
"",
"",
"Dumont d'Urville",
}
{
"America/Argentina/Rio_Gallegos",
"",
"",
"",
"",
"Río Gallegos",
}
{
"America/Argentina/ComodRivadavia",
"",
"",
"",
"",
"Comodora Rivadavia",
}
{
"America/Cordoba",
"",
"",
"",
"",
"Córdoba",
}
{
"America/Porto_Velho",
"",
"",
"",
"",
"Pôrto Velho",
}
{
"America/Cuiaba",
"",
"",
"",
"",
"Cuiabá",
}
{
"America/Belem",
"",
"",
"",
"",
"Belém",
}
{
"America/Sao_Paulo",
"",
"",
"",
"",
"São Paulo",
}
{
"America/Maceio",
"",
"",
"",
"",
"Maceió",
}
{
"America/Montreal",
"",
"",
"",
"",
"Montréal",
}
{
"America/Halifax",
"Atlantic-standaardtijd",
@ -2005,6 +2093,14 @@ nl{
"CDT",
"St. Johns",
}
{
"Pacific/Easter",
"",
"",
"",
"",
"Paaseiland",
}
{
"Asia/Shanghai",
"Chinese standaardtijd",
@ -2013,6 +2109,14 @@ nl{
"CDT",
"Shanghai",
}
{
"Atlantic/Canary",
"",
"",
"",
"",
"Canarische Eilanden",
}
{
"Europe/Paris",
"Midden-Europese standaardtijd",
@ -2021,6 +2125,14 @@ nl{
"CEST",
"Parijs",
}
{
"Europe/London",
"",
"",
"",
"",
"Londen",
}
{
"Asia/Jerusalem",
"Israëlische standaardtijd",
@ -2045,6 +2157,70 @@ nl{
"GMT",
"Casablanca",
}
{
"Africa/Timbuktu",
"",
"",
"",
"",
"Timboektoe",
}
{
"Asia/Ulaanbaatar",
"",
"",
"",
"",
"Ulaanbaator",
}
{
"America/Mazatlan",
"",
"",
"",
"",
"Mazatlán",
}
{
"America/Mexico_City",
"",
"",
"",
"",
"Mexico Stad",
}
{
"America/Merida",
"",
"",
"",
"",
"Mérida",
}
{
"America/Cancun",
"",
"",
"",
"",
"Cancún",
}
{
"Atlantic/Azores",
"",
"",
"",
"",
"Azoren",
}
{
"Europe/Lisbon",
"",
"",
"",
"",
"Lissabon",
}
{
"Europe/Bucharest",
"Oost-Europese standaardtijd",
@ -2053,6 +2229,14 @@ nl{
"EEST",
"Boekarest",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"Moskou",
}
{
"Pacific/Honolulu",
"Hawaï-standaardtijd",
@ -2117,5 +2301,13 @@ nl{
"EDT",
"New York",
}
{
"Asia/Tashkent",
"",
"",
"",
"",
"Tasjkent",
}
}
}

View file

@ -112,4 +112,94 @@ pt_PT{
quotationEnd{""}
quotationStart{""}
}
zoneStrings{
{
"America/Cordoba",
"",
"",
"",
"",
"Córdoba",
}
{
"America/Cuiaba",
"",
"",
"",
"",
"Cuibá",
}
{
"America/Araguaina",
"",
"",
"",
"",
"Araguaina",
}
{
"America/Bahia",
"",
"",
"",
"",
"Baía",
}
{
"Europe/Madrid",
"",
"",
"",
"",
"Madrid",
}
{
"Asia/Ulaanbaatar",
"",
"",
"",
"",
"Ulan Bator",
}
{
"America/Cancun",
"",
"",
"",
"",
"Cancun",
}
{
"Europe/Kaliningrad",
"",
"",
"",
"",
"Kaliningrado",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"Moscovo",
}
{
"Asia/Sakhalin",
"",
"",
"",
"",
"Sacalina",
}
{
"America/North_Dakota/Center",
"",
"",
"",
"",
"Center",
}
}
}

View file

@ -25,8 +25,9 @@
# Generated by LDML2ICUConverter, from LDML source files.
# Aliases which do not have a corresponding xx.xml file (see deprecatedList.xml)
GENRB_SYNTHETIC_ALIAS = in.txt in_ID.txt iw.txt iw_IL.txt\
ja_JP_TRADITIONAL.txt no.txt no_NO.txt no_NO_NY.txt th_TH_TRADITIONAL.txt
GENRB_SYNTHETIC_ALIAS = en_RH.txt in.txt in_ID.txt iw.txt\
iw_IL.txt ja_JP_TRADITIONAL.txt no.txt no_NO.txt no_NO_NY.txt\
th_TH_TRADITIONAL.txt
# All aliases (to not be included under 'installed'), but not including root.

View file

@ -458,4 +458,102 @@ ro{
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
zoneStrings{
{
"Antarctica/South_Pole",
"",
"",
"",
"",
"Polul Sud",
}
{
"Atlantic/Canary",
"",
"",
"",
"",
"Canare",
}
{
"Europe/London",
"",
"",
"",
"",
"Londra",
}
{
"Atlantic/Azores",
"",
"",
"",
"",
"Azore",
}
{
"Europe/Lisbon",
"",
"",
"",
"",
"Lisabona",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"Moscova",
}
{
"Asia/Yekaterinburg",
"",
"",
"",
"",
"Ekaterinburg",
}
{
"Asia/Irkutsk",
"",
"",
"",
"",
"Irkuțk",
}
{
"Asia/Yakutsk",
"",
"",
"",
"",
"Yakuțk",
}
{
"Asia/Sakhalin",
"",
"",
"",
"",
"Sahalin",
}
{
"Asia/Kamchatka",
"",
"",
"",
"",
"Kamciatka",
}
{
"Europe/Zaporozhye",
"",
"",
"",
"",
"Zaporoje",
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -1415,4 +1415,158 @@ sk{
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
zoneStrings{
{
"Antarctica/South_Pole",
"",
"",
"",
"",
"Južný pól",
}
{
"Asia/Shanghai",
"",
"",
"",
"",
"Šanghaj",
}
{
"Pacific/Galapagos",
"",
"",
"",
"",
"Galapágy",
}
{
"Atlantic/Canary",
"",
"",
"",
"",
"Kanárske ostrovy",
}
{
"Europe/London",
"",
"",
"",
"",
"Londýn",
}
{
"Asia/Ulaanbaatar",
"",
"",
"",
"",
"Ulanbátar",
}
{
"Atlantic/Azores",
"",
"",
"",
"",
"Azorské ostrovy",
}
{
"Europe/Lisbon",
"",
"",
"",
"",
"Lisabon",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"Moskva",
}
{
"Asia/Yekaterinburg",
"",
"",
"",
"",
"Jekaterinburg",
}
{
"Asia/Krasnoyarsk",
"",
"",
"",
"",
"Krasnojarsko",
}
{
"Asia/Irkutsk",
"",
"",
"",
"",
"Irkutsko",
}
{
"Asia/Yakutsk",
"",
"",
"",
"",
"Jakutsko",
}
{
"Asia/Sakhalin",
"",
"",
"",
"",
"Sachalin",
}
{
"Asia/Kamchatka",
"",
"",
"",
"",
"Kamčatka",
}
{
"Europe/Uzhgorod",
"",
"",
"",
"",
"Užhorod",
}
{
"Europe/Kiev",
"",
"",
"",
"",
"Kyjev",
}
{
"Europe/Zaporozhye",
"",
"",
"",
"",
"Záporožie",
}
{
"Asia/Tashkent",
"",
"",
"",
"",
"Taškent",
}
}
}

View file

@ -504,4 +504,102 @@ sl{
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
zoneStrings{
{
"Antarctica/South_Pole",
"",
"",
"",
"",
"Južni pol",
}
{
"Africa/Kinshasa",
"",
"",
"",
"",
"Kinšasa",
}
{
"Africa/Lubumbashi",
"",
"",
"",
"",
"Lubumbaši",
}
{
"Asia/Shanghai",
"",
"",
"",
"",
"Šangaj",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"Moskva",
}
{
"Asia/Krasnoyarsk",
"",
"",
"",
"",
"Krasnojarsk",
}
{
"Asia/Kamchatka",
"",
"",
"",
"",
"Kamčatka",
}
{
"Asia/Anadyr",
"",
"",
"",
"",
"Anadir",
}
{
"Europe/Uzhgorod",
"",
"",
"",
"",
"Užgorod",
}
{
"Europe/Kiev",
"",
"",
"",
"",
"Kijev",
}
{
"Europe/Zaporozhye",
"",
"",
"",
"",
"Zaporožje",
}
{
"Asia/Tashkent",
"",
"",
"",
"",
"Taškent",
}
}
}

View file

@ -646,6 +646,30 @@ sr{
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
zoneStrings{
{
"Antarctica/South_Pole",
"",
"",
"",
"",
"Јужни пол",
}
{
"Africa/Lubumbashi",
"",
"",
"",
"",
"Лумумбаши",
}
{
"Asia/Shanghai",
"",
"",
"",
"",
"Шангај",
}
{
"Europe/Belgrade",
"Централно Европско Време",
@ -654,5 +678,69 @@ sr{
"CET",
"Belgrade",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"Москва",
}
{
"Asia/Krasnoyarsk",
"",
"",
"",
"",
"Краснојарск",
}
{
"Asia/Kamchatka",
"",
"",
"",
"",
"Камчатка",
}
{
"Asia/Anadyr",
"",
"",
"",
"",
"Анадир",
}
{
"Europe/Uzhgorod",
"",
"",
"",
"",
"Ужгород",
}
{
"Europe/Kiev",
"",
"",
"",
"",
"Кијев",
}
{
"Europe/Zaporozhye",
"",
"",
"",
"",
"Запорожје",
}
{
"Asia/Tashkent",
"",
"",
"",
"",
"Ташкент",
}
}
}

View file

@ -632,4 +632,102 @@ sr_Latn{
}
}
}
zoneStrings{
{
"Antarctica/South_Pole",
"",
"",
"",
"",
"Južni pol",
}
{
"Africa/Kinshasa",
"",
"",
"",
"",
"Kinšasa",
}
{
"Asia/Shanghai",
"",
"",
"",
"",
"Šangaj",
}
{
"Europe/Belgrade",
"Centralno Evropsko Vreme",
"",
"Centralno Evropsko Vreme",
"",
"Belgrade",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"Moskva",
}
{
"Asia/Krasnoyarsk",
"",
"",
"",
"",
"Krasnojarsk",
}
{
"Asia/Kamchatka",
"",
"",
"",
"",
"Kamčatka",
}
{
"Asia/Anadyr",
"",
"",
"",
"",
"Anadir",
}
{
"Europe/Uzhgorod",
"",
"",
"",
"",
"Užgorod",
}
{
"Europe/Kiev",
"",
"",
"",
"",
"Kijev",
}
{
"Europe/Zaporozhye",
"",
"",
"",
"",
"Zaporožje",
}
{
"Asia/Tashkent",
"",
"",
"",
"",
"Taškent",
}
}
}

View file

@ -1901,6 +1901,38 @@ sv{
}
}
zoneStrings{
{
"Antarctica/South_Pole",
"",
"",
"",
"",
"Sydpolen",
}
{
"Antarctica/DumontDUrville",
"",
"",
"",
"",
"Dumont d'Urville",
}
{
"America/Argentina/ComodRivadavia",
"",
"",
"",
"",
"Comod. Rivadavia",
}
{
"America/Sao_Paulo",
"",
"",
"",
"",
"São Paulo",
}
{
"America/Halifax",
"Atlantic, normaltid",
@ -1917,6 +1949,14 @@ sv{
"CDT",
"St. Johns",
}
{
"Pacific/Easter",
"",
"",
"",
"",
"Påskön",
}
{
"Asia/Shanghai",
"Kina, normaltid",
@ -1925,6 +1965,14 @@ sv{
"CDT",
"Shanghai",
}
{
"Atlantic/Canary",
"",
"",
"",
"",
"Kanarieöarna",
}
{
"Europe/Paris",
"Centraleuropa, normaltid",
@ -1933,6 +1981,14 @@ sv{
"CEST",
"Paris",
}
{
"America/Godthab",
"",
"",
"",
"",
"Godthåb",
}
{
"Asia/Jerusalem",
"Israel, normaltid",
@ -1949,6 +2005,14 @@ sv{
"JST",
"Tokyo",
}
{
"Asia/Almaty",
"",
"",
"",
"",
"Alma-Ata",
}
{
"Africa/Casablanca",
"Greenwichtid",
@ -1957,6 +2021,38 @@ sv{
"GMT",
"Casablanca",
}
{
"Asia/Ulaanbaatar",
"",
"",
"",
"",
"Ulan Bator",
}
{
"Asia/Choibalsan",
"",
"",
"",
"",
"Tjoibalsan",
}
{
"Atlantic/Azores",
"",
"",
"",
"",
"Azorerna",
}
{
"Europe/Lisbon",
"",
"",
"",
"",
"Lissabon",
}
{
"Europe/Bucharest",
"Östeuropa, normaltid",
@ -1965,6 +2061,78 @@ sv{
"EEST",
"Bukarest",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"Moskva",
}
{
"Asia/Yekaterinburg",
"",
"",
"",
"",
"Jekaterinburg",
}
{
"Asia/Krasnoyarsk",
"",
"",
"",
"",
"Krasnojarsk",
}
{
"Asia/Yakutsk",
"",
"",
"",
"",
"Jakutsk",
}
{
"Asia/Sakhalin",
"",
"",
"",
"",
"Sachalin",
}
{
"Asia/Kamchatka",
"",
"",
"",
"",
"Kamtjatka",
}
{
"Asia/Anadyr",
"",
"",
"",
"",
"Anadir",
}
{
"Europe/Uzhgorod",
"",
"",
"",
"",
"Uzjgorod",
}
{
"Europe/Zaporozhye",
"",
"",
"",
"",
"Zaporozjzja",
}
{
"Pacific/Honolulu",
"Hawaii, normaltid",
@ -2005,6 +2173,14 @@ sv{
"MDT",
"Denver",
}
{
"America/North_Dakota/Center",
"",
"",
"",
"",
"North Dakota",
}
{
"America/Chicago",
"Central, normaltid",
@ -2029,5 +2205,13 @@ sv{
"EDT",
"New York",
}
{
"Asia/Tashkent",
"",
"",
"",
"",
"Tasjkent",
}
}
}

View file

@ -687,4 +687,534 @@ th{
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
zoneStrings{
{
"Antarctica/South_Pole",
"",
"",
"",
"",
"ขั่วโลกใต้",
}
{
"Antarctica/Davis",
"",
"",
"",
"",
"เดวิส",
}
{
"Antarctica/Vostok",
"",
"",
"",
"",
"วอสทอก",
}
{
"America/Mendoza",
"",
"",
"",
"",
"เมนดูซา",
}
{
"America/Argentina/San_Juan",
"",
"",
"",
"",
"ซานจวน",
}
{
"America/Argentina/ComodRivadavia",
"",
"",
"",
"",
"โคมอดริวาดาเวีย",
}
{
"America/Argentina/La_Rioja",
"",
"",
"",
"",
"ลาริโอจา",
}
{
"America/Catamarca",
"",
"",
"",
"",
"คาตามาร์กา",
}
{
"America/Argentina/Tucuman",
"",
"",
"",
"",
"ทูคูแมน",
}
{
"Australia/Perth",
"",
"",
"",
"",
"เพิิร์ท",
}
{
"Australia/Darwin",
"",
"",
"",
"",
"ดาร์วิน",
}
{
"Australia/Adelaide",
"",
"",
"",
"",
"แอดิเลด",
}
{
"Australia/Broken_Hill",
"",
"",
"",
"",
"โบรกเคนฮิว",
}
{
"Australia/Melbourne",
"",
"",
"",
"",
"เมลเบิร์น",
}
{
"Australia/Hobart",
"",
"",
"",
"",
"โฮบาร์ต",
}
{
"Australia/Lindeman",
"",
"",
"",
"",
"ลินดีแมน",
}
{
"Australia/Sydney",
"",
"",
"",
"",
"ซิดนีย์ Sydney",
}
{
"Australia/Brisbane",
"",
"",
"",
"",
"บริสเบน",
}
{
"Australia/Lord_Howe",
"",
"",
"",
"",
"ลอร์ดโฮวี",
}
{
"America/Rio_Branco",
"",
"",
"",
"",
"ริโอบรังโก",
}
{
"America/Boa_Vista",
"",
"",
"",
"",
"บัววีชตา",
}
{
"America/Manaus",
"",
"",
"",
"",
"มาเนาส์",
}
{
"America/Cuiaba",
"",
"",
"",
"",
"กุยาบา",
}
{
"America/Campo_Grande",
"",
"",
"",
"",
"กัมปูกรัมดี",
}
{
"America/Belem",
"",
"",
"",
"",
"เบเลง",
}
{
"America/Sao_Paulo",
"",
"",
"",
"",
"เซาเปาลู",
}
{
"America/Fortaleza",
"",
"",
"",
"",
"ฟอร์ตาเลซา",
}
{
"America/Maceio",
"",
"",
"",
"",
"มาเซโอ",
}
{
"America/Recife",
"",
"",
"",
"",
"เรซีเฟ",
}
{
"America/Whitehorse",
"",
"",
"",
"",
"ไวต์ฮอร์ส",
}
{
"America/Vancouver",
"",
"",
"",
"",
"แวนคูเวอร์",
}
{
"America/Yellowknife",
"",
"",
"",
"",
"เยลโลว์ไนฟ์",
}
{
"America/Edmonton",
"",
"",
"",
"",
"เอดมันตัน",
}
{
"America/Cambridge_Bay",
"",
"",
"",
"",
"อ่าวแคมบรืดจ์",
}
{
"America/Regina",
"",
"",
"",
"",
"ริไจนา",
}
{
"America/Winnipeg",
"",
"",
"",
"",
"วินนิเพก",
}
{
"America/Rainy_River",
"",
"",
"",
"",
"เรนนี่ริเวอร์",
}
{
"America/Thunder_Bay",
"",
"",
"",
"",
"ทันเดอร์เบย์",
}
{
"America/Toronto",
"",
"",
"",
"",
"โทรอนโต",
}
{
"America/Iqaluit",
"",
"",
"",
"",
"อีกวาลิต",
}
{
"America/Halifax",
"",
"",
"",
"",
"แฮลิแฟกซ์",
}
{
"America/Goose_Bay",
"",
"",
"",
"",
"กูสเบย์",
}
{
"America/St_Johns",
"",
"",
"",
"",
"เซนต์จอนส์",
}
{
"Asia/Urumqi",
"",
"",
"",
"",
"อุรุมชี",
}
{
"Asia/Chongqing",
"",
"",
"",
"",
"ฉงชิ่ง",
}
{
"Asia/Shanghai",
"",
"",
"",
"",
"เซี่ยงไฮ้",
}
{
"Asia/Harbin",
"",
"",
"",
"",
"ฮาร์บิน",
}
{
"Europe/Belfast",
"",
"",
"",
"",
"เบลฟัสต์",
}
{
"Asia/Jakarta",
"",
"",
"",
"",
"จาการ์ตา",
}
{
"America/Hermosillo",
"",
"",
"",
"",
"เอร์โมซีโย",
}
{
"America/Chihuahua",
"",
"",
"",
"",
"ชีวาวา",
}
{
"America/Monterrey",
"",
"",
"",
"",
"มอนเตร์เรย์",
}
{
"America/Mexico_City",
"",
"",
"",
"",
"เม็กซิโกซิตี",
}
{
"America/Merida",
"",
"",
"",
"",
"เมรีดา",
}
{
"Asia/Kuala_Lumpur",
"",
"",
"",
"",
"กัวลาลัมเปอร์",
}
{
"Asia/Kuching",
"",
"",
"",
"",
"กูชิง",
}
{
"Asia/Yakutsk",
"",
"",
"",
"",
"ยาคุตสค์",
}
{
"America/Los_Angeles",
"",
"",
"",
"",
"ลอสแองเจลิส",
}
{
"America/Boise",
"",
"",
"",
"",
"บอยซี",
}
{
"America/Denver",
"",
"",
"",
"",
"เดนเวอร์",
}
{
"America/North_Dakota/Center",
"",
"",
"",
"",
"เซนเตอร์",
}
{
"America/Chicago",
"",
"",
"",
"",
"ชิคาโก",
}
{
"America/Indianapolis",
"",
"",
"",
"",
"อินเดียแนโพลิส",
}
{
"America/Detroit",
"",
"",
"",
"",
"ดีทรอยต์",
}
{
"America/New_York",
"",
"",
"",
"",
"นิวยอร์ก",
}
{
"Asia/Tashkent",
"",
"",
"",
"",
"ทาชเคนต์",
}
}
}

View file

@ -1695,4 +1695,334 @@ tr{
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
zoneStrings{
{
"Antarctica/South_Pole",
"",
"",
"",
"",
"Güney Kutbu",
}
{
"Australia/Melbourne",
"",
"",
"",
"",
"Melborn",
}
{
"Australia/Sydney",
"",
"",
"",
"",
"Sidney",
}
{
"America/Halifax",
"Atlantik Standart Saati",
"",
"Atlantik Yaz Saati",
"",
"Halifax",
}
{
"America/St_Johns",
"Newfoundland Standart Saati",
"",
"Newfoundland Yaz Saati",
"",
"St Johns",
}
{
"Africa/Kinshasa",
"",
"",
"",
"",
"Kinşasa",
}
{
"Africa/Lubumbashi",
"",
"",
"",
"",
"Lubumbaşi",
}
{
"Asia/Kashgar",
"",
"",
"",
"",
"Kaşgar",
}
{
"Asia/Urumqi",
"",
"",
"",
"",
"Urumçi",
}
{
"Asia/Chongqing",
"",
"",
"",
"",
"Çunking",
}
{
"Asia/Shanghai",
"Çin Standart Saati",
"",
"Çin Standart Saati",
"",
"Şangay",
}
{
"Atlantic/Canary",
"",
"",
"",
"",
"Kanarya",
}
{
"Africa/Ceuta",
"",
"",
"",
"",
"Septe",
}
{
"Europe/London",
"",
"",
"",
"",
"Londra",
}
{
"Asia/Jakarta",
"",
"",
"",
"",
"Cakarta",
}
{
"Asia/Aqtau",
"",
"",
"",
"",
"Şevçenko",
}
{
"Asia/Oral",
"",
"",
"",
"",
"Uralsk",
}
{
"Asia/Aqtobe",
"",
"",
"",
"",
"Aktyubinsk",
}
{
"Asia/Qyzylorda",
"",
"",
"",
"",
"Kızıl-Orda",
}
{
"Asia/Almaty",
"",
"",
"",
"",
"Almatı",
}
{
"Asia/Hovd",
"",
"",
"",
"",
"Kobdo",
}
{
"Asia/Ulaanbaatar",
"",
"",
"",
"",
"Ulanbator",
}
{
"Asia/Choibalsan",
"",
"",
"",
"",
"Çoybalsan",
}
{
"America/Mexico_City",
"",
"",
"",
"",
"Meksiko City",
}
{
"America/Cancun",
"",
"",
"",
"",
"Kankun",
}
{
"Asia/Kuching",
"",
"",
"",
"",
"Kuçing",
}
{
"Pacific/Marquesas",
"",
"",
"",
"",
"Markiz",
}
{
"Atlantic/Azores",
"",
"",
"",
"",
"Azor Adaları",
}
{
"Europe/Lisbon",
"",
"",
"",
"",
"Lizbon",
}
{
"Europe/Moscow",
"",
"",
"",
"",
"Moskova",
}
{
"Asia/Kamchatka",
"",
"",
"",
"",
"Kamçatka",
}
{
"Pacific/Honolulu",
"Hawaii Standart Saati",
"",
"Hawaii Standart Saati",
"",
"Honolulu",
}
{
"America/Anchorage",
"Alaska Standart Saati",
"",
"Alaska Yaz Saati",
"",
"Anchorage",
}
{
"America/Los_Angeles",
"Pasifik Standart Saati",
"",
"Pasifik Yaz Saati",
"",
"Los Angeles",
}
{
"America/Phoenix",
"ABD Sıradağlar Standart Saati",
"",
"ABD Sıradağlar Standart Saati",
"",
"Phoenix",
}
{
"America/Denver",
"ABD Sıradağlar Standart Saati",
"",
"ABD Sıradağlar Yaz Saati",
"",
"Denver",
}
{
"America/Chicago",
"Merkezi Standart Saati",
"",
"Merkezi Yaz Saati",
"",
"Şikago",
}
{
"America/Indianapolis",
"Doğu Standart Saati",
"",
"Doğu Standart Saati",
"",
"Indianapolis",
}
{
"America/New_York",
"Doğu Standart Saati",
"",
"Doğu Yaz Saati",
"",
"New York",
}
{
"Asia/Samarkand",
"",
"",
"",
"",
"Semerkand",
}
{
"Asia/Tashkent",
"",
"",
"",
"",
"Taşkent",
}
}
}

View file

@ -1619,4 +1619,142 @@ uk{
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
zoneStrings{
{
"America/Argentina/Rio_Gallegos",
"",
"",
"",
"",
"Ріо-Ґалеґос",
}
{
"America/Argentina/ComodRivadavia",
"",
"",
"",
"",
"Комодоро-Ривадавія",
}
{
"America/Rio_Branco",
"",
"",
"",
"",
"Ріо-Бранко",
}
{
"America/Porto_Velho",
"",
"",
"",
"",
"Порто-Велью",
}
{
"America/Regina",
"",
"",
"",
"",
"Реджайна",
}
{
"America/Winnipeg",
"",
"",
"",
"",
"Вінніпеґ",
}
{
"America/Pangnirtung",
"",
"",
"",
"",
"Панґніртунґ",
}
{
"Africa/Lubumbashi",
"",
"",
"",
"",
"Лубумбаші",
}
{
"Pacific/Galapagos",
"",
"",
"",
"",
"Ґалапагос",
}
{
"Pacific/Yap",
"",
"",
"",
"",
"Яп",
}
{
"Pacific/Kiritimati",
"",
"",
"",
"",
"Кіритиматі",
}
{
"Africa/Timbuktu",
"",
"",
"",
"",
"Тимбукту",
}
{
"Asia/Hovd",
"",
"",
"",
"",
"Говд",
}
{
"Asia/Kuching",
"",
"",
"",
"",
"Кучінґ",
}
{
"Pacific/Gambier",
"",
"",
"",
"",
"Гамбер",
}
{
"Atlantic/Jan_Mayen",
"",
"",
"",
"",
"Ян-Майєн",
}
{
"Arctic/Longyearbyen",
"",
"",
"",
"",
"Лонгербюйн",
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -1638,4 +1638,134 @@ zh_Hant{
}
}
}
zoneStrings{
{
"America/Halifax",
"大西洋標準時間",
"",
"大西洋日光節約時間",
"",
"哈里法克斯",
}
{
"America/St_Johns",
"紐芬蘭標準時間",
"",
"紐芬蘭日光節約時間",
"",
"聖約翰",
}
{
"Asia/Shanghai",
"中國標準時間",
"",
"中國標準時間",
"",
"上海",
}
{
"Europe/Paris",
"中歐標準時間",
"",
"中歐日光節約時間",
"",
"巴黎",
}
{
"Asia/Jerusalem",
"以色列標準時間",
"",
"以色列日光節約時間",
"",
"耶路撒冷",
}
{
"Asia/Tokyo",
"日本標準時間",
"",
"日本標準時間",
"",
"東京",
}
{
"Africa/Casablanca",
"格林威治標準時間",
"",
"格林威治標準時間",
"",
"卡薩布蘭卡",
}
{
"Europe/Bucharest",
"東歐標準時間",
"",
"東歐日光節約時間",
"",
"布加勒斯特",
}
{
"Pacific/Honolulu",
"夏威夷標準時間",
"",
"夏威夷標準時間",
"",
"檀香山",
}
{
"America/Anchorage",
"阿拉斯加標準時間",
"",
"阿拉斯加日光節約時間",
"",
"安克里治",
}
{
"America/Los_Angeles",
"太平洋標準時間",
"",
"太平洋日光節約時間",
"",
"洛杉磯",
}
{
"America/Phoenix",
"山區標準時間",
"",
"山區標準時間",
"",
"鳳凰城",
}
{
"America/Denver",
"山區標準時間",
"",
"山區日光節約時間",
"",
"丹佛",
}
{
"America/Chicago",
"中部標準時間",
"",
"中部日光節約時間",
"",
"芝加哥",
}
{
"America/Indianapolis",
"東部標準時間",
"",
"東部標準時間",
"",
"印第安那波里斯",
}
{
"America/New_York",
"東部標準時間",
"",
"東部日光節約時間",
"",
"紐約",
}
}
}

View file

@ -41,6 +41,10 @@
<alias from="hi__DIRECT" to="hi@collation=direct" xpath="//ldml/collations/default[@type='direct']"/>
<alias from="zh__PINYIN" to="zh@collation=pinyin" xpath="//ldml/collations/default[@type='pinyin']"/>
<alias from="zh_TW_STROKE" to="zh@collation=stroke" xpath="//ldml/collations/default[@type='stroke']"/>
<alias from="in" to="id" />
<alias from="in_ID" to="id_ID" />
<alias from="iw" to="he" />
<alias from="iw_IL" to="he_IL" />
</deprecates>
<!-- locale aliases (main) -->
@ -54,7 +58,8 @@
<alias from="jw" to="jv"/>
<alias from="no" to="nb"/>
<alias from="no_NO" to="nb_NO"/>
<alias from="no_NO_NY" to="nn_NO" />
<alias from="no_NO_NY" to="nn_NO" />
<alias from="en_RH" to="en_ZW" />
<alias from="th_TH_TRADITIONAL" to="th_TH@calendar=buddhist" xpath="//ldml/dates/calendars/default[@type='buddhist']" />
<aliasLocale locale="az_AZ" />
<aliasLocale locale="sh" />

View file

@ -852,7 +852,7 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError
/* TODO: Fix the case where the zoneStrings is not a perfect square array of information. */
fZoneStringsRowCount = ures_getSize(zoneArray);
fZoneStringsColCount = ures_getSize(zoneRow);
fZoneStringsColCount = 8;
fZoneStrings = (UnicodeString **)uprv_malloc(fZoneStringsRowCount * sizeof(UnicodeString *));
/* test for NULL */
if (fZoneStrings == 0) {

View file

@ -575,6 +575,24 @@ _appendSymbol(UnicodeString& dst,
dst += symbols[value];
}
//---------------------------------------------------------------------
inline void SimpleDateFormat::appendGMT(UnicodeString &appendTo, Calendar& cal, UErrorCode& status) const{
int32_t value = cal.get(UCAL_ZONE_OFFSET, status) +
cal.get(UCAL_DST_OFFSET, status);
if (value < 0) {
appendTo += gGmtMinus;
value = -value; // suppress the '-' sign for text display.
}else{
appendTo += gGmtPlus;
}
zeroPaddingNumber(appendTo, (int32_t)(value/U_MILLIS_PER_HOUR), 2, 2);
appendTo += (UChar)0x003A /*':'*/;
zeroPaddingNumber(appendTo, (int32_t)((value%U_MILLIS_PER_HOUR)/U_MILLIS_PER_MINUTE), 2, 2);
}
//---------------------------------------------------------------------
void
SimpleDateFormat::subFormat(UnicodeString &appendTo,
UChar ch,
@ -752,35 +770,27 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo,
UnicodeString str;
int32_t zoneIndex = fSymbols->getZoneIndex(cal.getTimeZone().getID(str));
if (zoneIndex == -1) {
value = cal.get(UCAL_ZONE_OFFSET, status) +
cal.get(UCAL_DST_OFFSET, status);
if (value < 0) {
appendTo += gGmtMinus;
value = -value; // suppress the '-' sign for text display.
}
else
appendTo += gGmtPlus;
zeroPaddingNumber(appendTo, (int32_t)(value/U_MILLIS_PER_HOUR), 2, 2);
appendTo += (UChar)0x003A /*':'*/;
zeroPaddingNumber(appendTo, (int32_t)((value%U_MILLIS_PER_HOUR)/U_MILLIS_PER_MINUTE), 2, 2);
appendGMT(appendTo, cal, status);
}
else {
int ix;
int zsrc = fSymbols->fZoneStringsColCount;
if (patternCharIndex == UDAT_TIMEZONE_GENERIC_FIELD && zsrc >= 7) {
ix = count < 4 ? 6 : 5;
if (zsrc > 7) {
ix += 1;
}
} else {
ix = count < 4 ? 2 : 1;
if (cal.get(UCAL_DST_OFFSET, status) != 0) {
ix += 2;
}
}
appendTo += fSymbols->fZoneStrings[zoneIndex][ix];
int ix;
int zsrc = fSymbols->fZoneStringsColCount;
if (patternCharIndex == UDAT_TIMEZONE_GENERIC_FIELD && zsrc >= 7) {
ix = count < 4 ? 6 : 5;
if (zsrc > 7) {
ix += 1;
}
} else {
ix = count < 4 ? 2 : 1;
if (cal.get(UCAL_DST_OFFSET, status) != 0) {
ix += 2;
}
}
if(fSymbols->fZoneStrings[zoneIndex][ix].length()==0){
appendGMT(appendTo, cal, status);
}else{
appendTo += fSymbols->fZoneStrings[zoneIndex][ix];
}
}
}
break;

View file

@ -790,6 +790,11 @@ private:
* as appropriate.
*/
int32_t subParseZoneString(const UnicodeString& text, int32_t start, Calendar& cal) const;
/**
* append the gmt string
*/
inline void appendGMT(UnicodeString &appendTo, Calendar& cal, UErrorCode& status) const;
/**
* Used to map pattern characters to Calendar field identifiers.

View file

@ -267,10 +267,17 @@ void TestCzechMonths459()
}
d = udat_parse(fmt, juneStr, u_strlen(juneStr), &pos, &status);
date = myDateFormat(fmt, d);
if(u_strcmp(myDateFormat(fmt, june), myDateFormat(fmt, d) ) !=0)
log_err("Error in handling the czech month june\n");
else
log_verbose("Pass: Date = %s (czech month June)\n", aescstrdup(date, -1));
if(U_SUCCESS(status)){
UChar* out1 = myDateFormat(fmt, june);
UChar* out2 = myDateFormat(fmt, d);
if(u_strcmp(out1, out2) !=0)
log_err("Error in handling the czech month june\n");
else
log_verbose("Pass: Date = %s (czech month June)\n", aescstrdup(date, -1));
}else{
log_err("udat_parse failed. Error. %s\n",u_errorName(status));
}
pos=0;
d = udat_parse(fmt, julyStr, u_strlen(julyStr), &pos, &status);
date = myDateFormat(fmt, d);

View file

@ -19,6 +19,7 @@
#include "cintltst.h"
#include "cstring.h"
#include "uparse.h"
#include "uresimp.h"
#include "unicode/putil.h"
#include "unicode/ubrk.h"
@ -218,7 +219,12 @@ void addLocaleTest(TestNode** root)
TESTCASE(TestGetLocale);
TESTCASE(TestDisplayNameWarning);
TESTCASE(TestNonexistentLanguageExemplars);
TESTCASE(TestAcceptLanguage);
TESTCASE(TestCalendar);
TESTCASE(TestDateFormat);
TESTCASE(TestCollation);
TESTCASE(TestULocale);
TESTCASE(TestUResourceBundle);
TESTCASE(TestDisplayName);
}
@ -2337,3 +2343,266 @@ static void TestAcceptLanguage(void) {
}
}
}
static const char* LOCALE_ALIAS[][2] = {
{"in", "id"},
{"in_ID", "id_ID"},
{"iw", "he"},
{"iw_IL", "he_IL"},
{"ji", "yi"},
{"en_BU", "en_MM"},
{"en_DY", "en_BJ"},
{"en_HV", "en_BF"},
{"en_NH", "en_VU"},
{"en_RH", "en_ZW"},
{"en_TP", "en_TL"},
{"en_ZR", "en_CD"}
};
static UBool isLocaleAvailable(UResourceBundle* resIndex, const char* loc){
UErrorCode status = U_ZERO_ERROR;
int32_t len = 0;
ures_getStringByKey(resIndex, loc,&len, &status);
if(U_FAILURE(status)){
return FALSE;
}
return TRUE;
}
static void TestCalendar() {
int i;
UErrorCode status = U_ZERO_ERROR;
UResourceBundle *resIndex = ures_open(NULL,"res_index", &status);
if(U_FAILURE(status)){
log_err("Could not open res_index.res. Exiting. Error: %s\n", u_errorName(status));
return;
}
for (i=0; i<LENGTHOF(LOCALE_ALIAS); i++) {
const char* oldLoc = LOCALE_ALIAS[i][0];
const char* newLoc = LOCALE_ALIAS[i][1];
UCalendar* c1 = NULL;
UCalendar* c2 = NULL;
/*Test function "getLocale(ULocale.VALID_LOCALE)"*/
const char* l1 = ucal_getLocaleByType(c1, ULOC_VALID_LOCALE, &status);
const char* l2 = ucal_getLocaleByType(c2, ULOC_VALID_LOCALE, &status);
if(!isLocaleAvailable(resIndex, newLoc)){
continue;
}
c1 = ucal_open(NULL, -1, oldLoc, UCAL_GREGORIAN, &status);
c2 = ucal_open(NULL, -1, newLoc, UCAL_GREGORIAN, &status);
if (strcmp(newLoc,l1)!=0 || strcmp(l1,l2)!=0 || status!=U_ZERO_ERROR) {
log_err("The locales are not equal!.Old: %s, New: %s \n", oldLoc, newLoc);
}
log_verbose("ucal_getLocaleByType old:%s new:%s\n", l1, l2);
ucal_close(c1);
ucal_close(c2);
}
ures_close(resIndex);
}
static void TestDateFormat() {
int i;
UErrorCode status = U_ZERO_ERROR;
UResourceBundle *resIndex = ures_open(NULL,"res_index", &status);
if(U_FAILURE(status)){
log_err("Could not open res_index.res. Exiting. Error: %s\n", u_errorName(status));
return;
}
for (i=0; i<LENGTHOF(LOCALE_ALIAS); i++) {
const char* oldLoc = LOCALE_ALIAS[i][0];
const char* newLoc = LOCALE_ALIAS[i][1];
UDateFormat* df1 = NULL;
UDateFormat* df2 = NULL;
const char* l1 = NULL;
const char* l2 = NULL;
if(!isLocaleAvailable(resIndex, newLoc)){
continue;
}
df1 = udat_open(UDAT_FULL, UDAT_FULL,oldLoc, NULL, 0, NULL, -1, &status);
df2 = udat_open(UDAT_FULL, UDAT_FULL,newLoc, NULL, 0, NULL, -1, &status);
if(U_FAILURE(status)){
log_err("Creation of date format failed %s\n", u_errorName(status));
return;
}
/*Test function "getLocale"*/
l1 = udat_getLocaleByType(df1, ULOC_VALID_LOCALE, &status);
l2 = udat_getLocaleByType(df2, ULOC_VALID_LOCALE, &status);
if(U_FAILURE(status)){
log_err("Fetching the locale by type failed. %s\n", u_errorName(status));
}
if (strcmp(newLoc,l1)!=0 || strcmp(l1,l2)!=0) {
log_err("The locales are not equal!.Old: %s, New: %s \n", oldLoc, newLoc);
}
log_verbose("udat_getLocaleByType old:%s new:%s\n", l1, l2);
udat_close(df1);
udat_close(df2);
}
ures_close(resIndex);
}
static void TestCollation() {
int i;
UErrorCode status = U_ZERO_ERROR;
UResourceBundle *resIndex = ures_open(NULL,"res_index", &status);
if(U_FAILURE(status)){
log_err("Could not open res_index.res. Exiting. Error: %s\n", u_errorName(status));
return;
}
for (i=0; i<LENGTHOF(LOCALE_ALIAS); i++) {
const char* oldLoc = LOCALE_ALIAS[i][0];
const char* newLoc = LOCALE_ALIAS[i][1];
UErrorCode status = U_ZERO_ERROR;
UCollator* c1 = NULL;
UCollator* c2 = NULL;
const char* l1 = NULL;
const char* l2 = NULL;
if(!isLocaleAvailable(resIndex, newLoc)){
continue;
}
if(U_FAILURE(status)){
log_err("Creation of collators failed %s\n", u_errorName(status));
return;
}
c1 = ucol_open(oldLoc, &status);
c2 = ucol_open(newLoc, &status);
l1 = ucol_getLocaleByType(c1, ULOC_VALID_LOCALE, &status);
l2 = ucol_getLocaleByType(c2, ULOC_VALID_LOCALE, &status);
if(U_FAILURE(status)){
log_err("Fetching the locale names failed failed %s\n", u_errorName(status));
}
if (strcmp(newLoc,l1)!=0 || strcmp(l1,l2)!=0) {
log_err("The locales are not equal!.Old: %s, New: %s \n", oldLoc, newLoc);
}
log_verbose("ucol_getLocaleByType old:%s new:%s\n", l1, l2);
ucol_close(c1);
ucol_close(c2);
}
ures_close(resIndex);
}
static void TestULocale() {
int i;
UErrorCode status = U_ZERO_ERROR;
UResourceBundle *resIndex = ures_open(NULL,"res_index", &status);
if(U_FAILURE(status)){
log_err("Could not open res_index.res. Exiting. Error: %s\n", u_errorName(status));
return;
}
for (i=0; i<LENGTHOF(LOCALE_ALIAS); i++) {
const char* oldLoc = LOCALE_ALIAS[i][0];
const char* newLoc = LOCALE_ALIAS[i][1];
UErrorCode status = U_ZERO_ERROR;
UChar name1[256], name2[256];
char names1[256], names2[256];
int32_t capacity = 256;
if(!isLocaleAvailable(resIndex, newLoc)){
continue;
}
uloc_getDisplayName(oldLoc, ULOC_US, name1, capacity, &status);
if(U_FAILURE(status)){
log_err("uloc_getDisplayName(%s) failed %s\n", oldLoc, u_errorName(status));
}
uloc_getDisplayName(newLoc, ULOC_US, name2, capacity, &status);
if(U_FAILURE(status)){
log_err("uloc_getDisplayName(%s) failed %s\n", newLoc, u_errorName(status));
}
if (u_strcmp(name1, name2)!=0) {
log_err("The locales are not equal!.Old: %s, New: %s \n", oldLoc, newLoc);
}
u_austrcpy(names1, name1);
u_austrcpy(names2, name2);
log_verbose("uloc_getDisplayName old:%s new:%s\n", names1, names2);
}
ures_close(resIndex);
}
static void TestUResourceBundle() {
const char* us1;
const char* us2;
int32_t length = 0;
UResourceBundle* rb1 = NULL;
UResourceBundle* rb2 = NULL;
UErrorCode status = U_ZERO_ERROR;
int i;
UResourceBundle *resIndex = NULL;
if(U_FAILURE(status)){
log_err("Could not open res_index.res. Exiting. Error: %s\n", u_errorName(status));
return;
}
resIndex = ures_open(NULL,"res_index", &status);
for (i=0; i<LENGTHOF(LOCALE_ALIAS); i++) {
const char* oldLoc = LOCALE_ALIAS[i][0];
const char* newLoc = LOCALE_ALIAS[i][1];
if(!isLocaleAvailable(resIndex, newLoc)){
continue;
}
rb1 = ures_open(NULL, oldLoc, &status);
if (U_FAILURE(U_ZERO_ERROR)) {
log_err("ures_open(%s) failed %s\n", oldLoc, u_errorName(status));
}
us1 = ures_getLocale(rb1, &status);
status = U_ZERO_ERROR;
rb2 = ures_open(NULL, newLoc, &status);
if (U_FAILURE(U_ZERO_ERROR)) {
log_err("ures_open(%s) failed %s\n", oldLoc, u_errorName(status));
}
us2 = ures_getLocale(rb2, &status);
if (strcmp(us1,newLoc)!=0 || strcmp(us1,us2)!=0 ) {
log_err("The locales are not equal!.Old: %s, New: %s \n", oldLoc, newLoc);
}
log_verbose("ures_getStringByKey old:%s new:%s\n", us1, us2);
ures_close(rb1);
rb1 = NULL;
ures_close(rb2);
rb2 = NULL;
}
ures_close(resIndex);
}
static void TestDisplayName() {
UChar oldCountry[256] = {'\0'};
UChar newCountry[256] = {'\0'};
UChar oldLang[256] = {'\0'};
UChar newLang[256] = {'\0'};
char country[256] ={'\0'};
char language[256] ={'\0'};
int32_t capacity = 256;
int i =0;
int j=0;
for (i=0; i<LENGTHOF(LOCALE_ALIAS); i++) {
const char* oldLoc = LOCALE_ALIAS[i][0];
const char* newLoc = LOCALE_ALIAS[i][1];
UErrorCode status = U_ZERO_ERROR;
int32_t available = uloc_countAvailable();
for(j=0; j<available; j++){
const char* dispLoc = uloc_getAvailable(j);
int32_t oldCountryLen = uloc_getDisplayCountry(oldLoc,dispLoc, oldCountry, capacity, &status);
int32_t newCountryLen = uloc_getDisplayCountry(newLoc, dispLoc, newCountry, capacity, &status);
int32_t oldLangLen = uloc_getDisplayLanguage(oldLoc, dispLoc, oldLang, capacity, &status);
int32_t newLangLen = uloc_getDisplayLanguage(newLoc, dispLoc, newLang, capacity, &status );
int32_t countryLen = uloc_getCountry(newLoc, country, capacity, &status);
int32_t langLen = uloc_getLanguage(newLoc, language, capacity, &status);
//there is a display name for the current country ID
if(countryLen != newCountryLen ){
if(u_strncmp(oldCountry,newCountry,oldCountryLen)!=0){
log_err("uloc_getDisplayCountry() failed for %s in display locale %s \n", oldLoc, dispLoc);
}
}
//there is a display name for the current lang ID
if(langLen!=newLangLen){
if(u_strncmp(oldLang,newLang,oldLangLen)){
log_err("uloc_getDisplayLanguage() failed for %s in display locale %s \n", oldLoc, dispLoc); }
}
}
}
}

View file

@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
* Copyright (c) 1997-2004, International Business Machines Corporation and
* Copyright (c) 1997-2005, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/********************************************************************************
@ -99,4 +99,14 @@ static void cleanUpDataTable(void);
/*static void displayDataTable(void);*/
static void TestAcceptLanguage(void);
/**
* test locale aliases
*/
static void TestCalendar(void);
static void TestDateFormat(void);
static void TestCollation(void);
static void TestULocale(void);
static void TestUResourceBundle(void);
static void TestDisplayName(void);
#endif

View file

@ -289,7 +289,7 @@ void DateFormatRoundTripTest::test(DateFormat *fmt, const Locale &origLocale, UB
for(loop = 0; loop < DEPTH; ++loop) {
if (loop > 0) {
d[loop] = fmt->parse(s[loop-1], status);
failure(status, "fmt->parse", s[loop-1]);
failure(status, "fmt->parse", s[loop-1]+" in locale: " + origLocale.getName());
status = U_ZERO_ERROR; /* any error would have been reported */
}

View file

@ -311,7 +311,8 @@ DateFormatMiscTests::test4117335()
UnicodeString jstLong(jstLongC, 5, 5);
UnicodeString jstShort = "JST";
UnicodeString tzID = "Asia/Tokyo";
UErrorCode status = U_ZERO_ERROR;
DateFormatSymbols *symbols = new DateFormatSymbols(Locale::getJapan(), status);
@ -338,25 +339,32 @@ DateFormatMiscTests::test4117335()
int32_t rowCount, colCount;
const UnicodeString **zones = symbols->getZoneStrings(rowCount, colCount);
int pos = 5;
logln(UnicodeString("Long zone name = ") + zones[pos][1]);
if (zones[pos][1] != jstLong) {
errln("*** Should have been " + prettify(jstLong)+ " but it is: " + prettify(zones[pos][1]));
//don't hard code the index .. compute it.
int32_t index = -1;
for (int32_t i = 0; i < rowCount; ++i) {
if (tzID == (zones[i][0])) {
index = i;
break;
}
}
logln(UnicodeString("Long zone name = ") + zones[index][1]);
if (zones[index][1] != jstLong) {
errln("*** Should have been " + prettify(jstLong)+ " but it is: " + prettify(zones[index][1]));
//throw new Exception("Error in long TZ name");
}
logln(UnicodeString("Short zone name = ") + zones[pos][2]);
if (zones[pos][2] != jstShort) {
errln("*** Should have been " + prettify(jstShort) + " but it is: " + prettify(zones[pos][2]));
logln(UnicodeString("Short zone name = ") + zones[index][2]);
if (zones[index][2] != jstShort) {
errln("*** Should have been " + prettify(jstShort) + " but it is: " + prettify(zones[index][2]));
//throw new Exception("Error in short TZ name");
}
logln(UnicodeString("Long zone name = ") + zones[pos][3]);
if (zones[pos][3] != jstLong) {
errln("*** Should have been " + prettify(jstLong) + " but it is: " + prettify(zones[pos][3]));
logln(UnicodeString("Long zone name = ") + zones[index][3]);
if (zones[index][3] != jstLong) {
errln("*** Should have been " + prettify(jstLong) + " but it is: " + prettify(zones[index][3]));
//throw new Exception("Error in long TZ name");
}
logln(UnicodeString("SHORT zone name = ") + zones[pos][4]);
if (zones[pos][4] != jstShort) {
errln("*** Should have been " + prettify(jstShort)+ " but it is: " + prettify(zones[pos][4]));
logln(UnicodeString("SHORT zone name = ") + zones[index][4]);
if (zones[index][4] != jstShort) {
errln("*** Should have been " + prettify(jstShort)+ " but it is: " + prettify(zones[index][4]));
//throw new Exception("Error in short TZ name");
}
delete symbols;