mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-06-16 14:29:46 +00:00
#562: ICU 56.2 sync to upstream
This commit is contained in:
parent
44e037bfbc
commit
1fd25c5107
|
@ -1,3 +1,5 @@
|
||||||
|
// Copyright (C) 2016 and later: Unicode, Inc. and others.
|
||||||
|
// License & terms of use: http://www.unicode.org/copyright.html
|
||||||
/*
|
/*
|
||||||
**********************************************************************
|
**********************************************************************
|
||||||
* Copyright (C) 1997-2015, International Business Machines
|
* Copyright (C) 1997-2015, International Business Machines
|
||||||
|
@ -64,6 +66,12 @@ static Locale *gDefaultLocale = NULL;
|
||||||
*/
|
*/
|
||||||
#define ULOC_STRING_LIMIT 357913941
|
#define ULOC_STRING_LIMIT 357913941
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \def ULOC_STRING_LIMIT
|
||||||
|
* strings beyond this value crash in CharString
|
||||||
|
*/
|
||||||
|
#define ULOC_STRING_LIMIT 357913941
|
||||||
|
|
||||||
U_NAMESPACE_END
|
U_NAMESPACE_END
|
||||||
|
|
||||||
typedef enum ELocalePos {
|
typedef enum ELocalePos {
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
// Copyright (C) 2016 and later: Unicode, Inc. and others.
|
||||||
|
// License & terms of use: http://www.unicode.org/copyright.html
|
||||||
/*
|
/*
|
||||||
**********************************************************************
|
**********************************************************************
|
||||||
* Copyright (C) 1997-2015, International Business Machines
|
* Copyright (C) 1997-2015, International Business Machines
|
||||||
|
@ -45,6 +47,8 @@
|
||||||
|
|
||||||
#include <stdio.h> /* for sprintf */
|
#include <stdio.h> /* for sprintf */
|
||||||
|
|
||||||
|
using namespace icu;
|
||||||
|
|
||||||
/* ### Declarations **************************************************/
|
/* ### Declarations **************************************************/
|
||||||
|
|
||||||
/* Locale stuff from locid.cpp */
|
/* Locale stuff from locid.cpp */
|
||||||
|
@ -94,90 +98,90 @@ locale_getKeywords(const char *localeID,
|
||||||
/* Generated using org.unicode.cldr.icu.GenerateISO639LanguageTables */
|
/* Generated using org.unicode.cldr.icu.GenerateISO639LanguageTables */
|
||||||
/* ISO639 table version is 20150505 */
|
/* ISO639 table version is 20150505 */
|
||||||
static const char * const LANGUAGES[] = {
|
static const char * const LANGUAGES[] = {
|
||||||
"aa", "ab", "ace", "ach", "ada", "ady", "ae", "aeb",
|
"aa", "ab", "ace", "ach", "ada", "ady", "ae", "aeb",
|
||||||
"af", "afh", "agq", "ain", "ak", "akk", "akz", "ale",
|
"af", "afh", "agq", "ain", "ak", "akk", "akz", "ale",
|
||||||
"aln", "alt", "am", "an", "ang", "anp", "ar", "arc",
|
"aln", "alt", "am", "an", "ang", "anp", "ar", "arc",
|
||||||
"arn", "aro", "arp", "arq", "arw", "ary", "arz", "as",
|
"arn", "aro", "arp", "arq", "arw", "ary", "arz", "as",
|
||||||
"asa", "ase", "ast", "av", "avk", "awa", "ay", "az",
|
"asa", "ase", "ast", "av", "avk", "awa", "ay", "az",
|
||||||
"ba", "bal", "ban", "bar", "bas", "bax", "bbc", "bbj",
|
"ba", "bal", "ban", "bar", "bas", "bax", "bbc", "bbj",
|
||||||
"be", "bej", "bem", "bew", "bez", "bfd", "bfq", "bg",
|
"be", "bej", "bem", "bew", "bez", "bfd", "bfq", "bg",
|
||||||
"bgn", "bho", "bi", "bik", "bin", "bjn", "bkm", "bla",
|
"bgn", "bho", "bi", "bik", "bin", "bjn", "bkm", "bla",
|
||||||
"bm", "bn", "bo", "bpy", "bqi", "br", "bra", "brh",
|
"bm", "bn", "bo", "bpy", "bqi", "br", "bra", "brh",
|
||||||
"brx", "bs", "bss", "bua", "bug", "bum", "byn", "byv",
|
"brx", "bs", "bss", "bua", "bug", "bum", "byn", "byv",
|
||||||
"ca", "cad", "car", "cay", "cch", "ce", "ceb", "cgg",
|
"ca", "cad", "car", "cay", "cch", "ce", "ceb", "cgg",
|
||||||
"ch", "chb", "chg", "chk", "chm", "chn", "cho", "chp",
|
"ch", "chb", "chg", "chk", "chm", "chn", "cho", "chp",
|
||||||
"chr", "chy", "ckb", "co", "cop", "cps", "cr", "crh",
|
"chr", "chy", "ckb", "co", "cop", "cps", "cr", "crh",
|
||||||
"cs", "csb", "cu", "cv", "cy",
|
"cs", "csb", "cu", "cv", "cy",
|
||||||
"da", "dak", "dar", "dav", "de", "del", "den", "dgr",
|
"da", "dak", "dar", "dav", "de", "del", "den", "dgr",
|
||||||
"din", "dje", "doi", "dsb", "dtp", "dua", "dum", "dv",
|
"din", "dje", "doi", "dsb", "dtp", "dua", "dum", "dv",
|
||||||
"dyo", "dyu", "dz", "dzg",
|
"dyo", "dyu", "dz", "dzg",
|
||||||
"ebu", "ee", "efi", "egl", "egy", "eka", "el", "elx",
|
"ebu", "ee", "efi", "egl", "egy", "eka", "el", "elx",
|
||||||
"en", "enm", "eo", "es", "esu", "et", "eu", "ewo",
|
"en", "enm", "eo", "es", "esu", "et", "eu", "ewo",
|
||||||
"ext",
|
"ext",
|
||||||
"fa", "fan", "fat", "ff", "fi", "fil", "fit", "fj",
|
"fa", "fan", "fat", "ff", "fi", "fil", "fit", "fj",
|
||||||
"fo", "fon", "fr", "frc", "frm", "fro", "frp", "frr",
|
"fo", "fon", "fr", "frc", "frm", "fro", "frp", "frr",
|
||||||
"frs", "fur", "fy",
|
"frs", "fur", "fy",
|
||||||
"ga", "gaa", "gag", "gan", "gay", "gba", "gbz", "gd",
|
"ga", "gaa", "gag", "gan", "gay", "gba", "gbz", "gd",
|
||||||
"gez", "gil", "gl", "glk", "gmh", "gn", "goh", "gom",
|
"gez", "gil", "gl", "glk", "gmh", "gn", "goh", "gom",
|
||||||
"gon", "gor", "got", "grb", "grc", "gsw", "gu", "guc",
|
"gon", "gor", "got", "grb", "grc", "gsw", "gu", "guc",
|
||||||
"gur", "guz", "gv", "gwi",
|
"gur", "guz", "gv", "gwi",
|
||||||
"ha", "hai", "hak", "haw", "he", "hi", "hif", "hil",
|
"ha", "hai", "hak", "haw", "he", "hi", "hif", "hil",
|
||||||
"hit", "hmn", "ho", "hr", "hsb", "hsn", "ht", "hu",
|
"hit", "hmn", "ho", "hr", "hsb", "hsn", "ht", "hu",
|
||||||
"hup", "hy", "hz",
|
"hup", "hy", "hz",
|
||||||
"ia", "iba", "ibb", "id", "ie", "ig", "ii", "ik",
|
"ia", "iba", "ibb", "id", "ie", "ig", "ii", "ik",
|
||||||
"ilo", "inh", "io", "is", "it", "iu", "izh",
|
"ilo", "inh", "io", "is", "it", "iu", "izh",
|
||||||
"ja", "jam", "jbo", "jgo", "jmc", "jpr", "jrb", "jut",
|
"ja", "jam", "jbo", "jgo", "jmc", "jpr", "jrb", "jut",
|
||||||
"jv",
|
"jv",
|
||||||
"ka", "kaa", "kab", "kac", "kaj", "kam", "kaw", "kbd",
|
"ka", "kaa", "kab", "kac", "kaj", "kam", "kaw", "kbd",
|
||||||
"kbl", "kcg", "kde", "kea", "ken", "kfo", "kg", "kgp",
|
"kbl", "kcg", "kde", "kea", "ken", "kfo", "kg", "kgp",
|
||||||
"kha", "kho", "khq", "khw", "ki", "kiu", "kj", "kk",
|
"kha", "kho", "khq", "khw", "ki", "kiu", "kj", "kk",
|
||||||
"kkj", "kl", "kln", "km", "kmb", "kn", "ko", "koi",
|
"kkj", "kl", "kln", "km", "kmb", "kn", "ko", "koi",
|
||||||
"kok", "kos", "kpe", "kr", "krc", "kri", "krj", "krl",
|
"kok", "kos", "kpe", "kr", "krc", "kri", "krj", "krl",
|
||||||
"kru", "ks", "ksb", "ksf", "ksh", "ku", "kum", "kut",
|
"kru", "ks", "ksb", "ksf", "ksh", "ku", "kum", "kut",
|
||||||
"kv", "kw", "ky",
|
"kv", "kw", "ky",
|
||||||
"la", "lad", "lag", "lah", "lam", "lb", "lez", "lfn",
|
"la", "lad", "lag", "lah", "lam", "lb", "lez", "lfn",
|
||||||
"lg", "li", "lij", "liv", "lkt", "lmo", "ln", "lo",
|
"lg", "li", "lij", "liv", "lkt", "lmo", "ln", "lo",
|
||||||
"lol", "loz", "lrc", "lt", "ltg", "lu", "lua", "lui",
|
"lol", "loz", "lrc", "lt", "ltg", "lu", "lua", "lui",
|
||||||
"lun", "luo", "lus", "luy", "lv", "lzh", "lzz",
|
"lun", "luo", "lus", "luy", "lv", "lzh", "lzz",
|
||||||
"mad", "maf", "mag", "mai", "mak", "man", "mas", "mde",
|
"mad", "maf", "mag", "mai", "mak", "man", "mas", "mde",
|
||||||
"mdf", "mdh", "mdr", "men", "mer", "mfe", "mg", "mga",
|
"mdf", "mdh", "mdr", "men", "mer", "mfe", "mg", "mga",
|
||||||
"mgh", "mgo", "mh", "mi", "mic", "min", "mis", "mk",
|
"mgh", "mgo", "mh", "mi", "mic", "min", "mis", "mk",
|
||||||
"ml", "mn", "mnc", "mni", "moh", "mos", "mr", "mrj",
|
"ml", "mn", "mnc", "mni", "moh", "mos", "mr", "mrj",
|
||||||
"ms", "mt", "mua", "mul", "mus", "mwl", "mwr", "mwv",
|
"ms", "mt", "mua", "mul", "mus", "mwl", "mwr", "mwv",
|
||||||
"my", "mye", "myv", "mzn",
|
"my", "mye", "myv", "mzn",
|
||||||
"na", "nan", "nap", "naq", "nb", "nd", "nds", "ne",
|
"na", "nan", "nap", "naq", "nb", "nd", "nds", "ne",
|
||||||
"new", "ng", "nia", "niu", "njo", "nl", "nmg", "nn",
|
"new", "ng", "nia", "niu", "njo", "nl", "nmg", "nn",
|
||||||
"nnh", "no", "nog", "non", "nov", "nqo", "nr", "nso",
|
"nnh", "no", "nog", "non", "nov", "nqo", "nr", "nso",
|
||||||
"nus", "nv", "nwc", "ny", "nym", "nyn", "nyo", "nzi",
|
"nus", "nv", "nwc", "ny", "nym", "nyn", "nyo", "nzi",
|
||||||
"oc", "oj", "om", "or", "os", "osa", "ota",
|
"oc", "oj", "om", "or", "os", "osa", "ota",
|
||||||
"pa", "pag", "pal", "pam", "pap", "pau", "pcd", "pdc",
|
"pa", "pag", "pal", "pam", "pap", "pau", "pcd", "pdc",
|
||||||
"pdt", "peo", "pfl", "phn", "pi", "pl", "pms", "pnt",
|
"pdt", "peo", "pfl", "phn", "pi", "pl", "pms", "pnt",
|
||||||
"pon", "prg", "pro", "ps", "pt",
|
"pon", "prg", "pro", "ps", "pt",
|
||||||
"qu", "quc", "qug",
|
"qu", "quc", "qug",
|
||||||
"raj", "rap", "rar", "rgn", "rif", "rm", "rn", "ro",
|
"raj", "rap", "rar", "rgn", "rif", "rm", "rn", "ro",
|
||||||
"rof", "rom", "rtm", "ru", "rue", "rug", "rup",
|
"rof", "rom", "rtm", "ru", "rue", "rug", "rup",
|
||||||
"rw", "rwk",
|
"rw", "rwk",
|
||||||
"sa", "sad", "sah", "sam", "saq", "sas", "sat", "saz",
|
"sa", "sad", "sah", "sam", "saq", "sas", "sat", "saz",
|
||||||
"sba", "sbp", "sc", "scn", "sco", "sd", "sdc", "sdh",
|
"sba", "sbp", "sc", "scn", "sco", "sd", "sdc", "sdh",
|
||||||
"se", "see", "seh", "sei", "sel", "ses", "sg", "sga",
|
"se", "see", "seh", "sei", "sel", "ses", "sg", "sga",
|
||||||
"sgs", "shi", "shn", "shu", "si", "sid", "sk",
|
"sgs", "shi", "shn", "shu", "si", "sid", "sk",
|
||||||
"sl", "sli", "sly", "sm", "sma", "smj", "smn", "sms",
|
"sl", "sli", "sly", "sm", "sma", "smj", "smn", "sms",
|
||||||
"sn", "snk", "so", "sog", "sq", "sr", "srn", "srr",
|
"sn", "snk", "so", "sog", "sq", "sr", "srn", "srr",
|
||||||
"ss", "ssy", "st", "stq", "su", "suk", "sus", "sux",
|
"ss", "ssy", "st", "stq", "su", "suk", "sus", "sux",
|
||||||
"sv", "sw", "swb", "swc", "syc", "syr", "szl",
|
"sv", "sw", "swb", "swc", "syc", "syr", "szl",
|
||||||
"ta", "tcy", "te", "tem", "teo", "ter", "tet", "tg",
|
"ta", "tcy", "te", "tem", "teo", "ter", "tet", "tg",
|
||||||
"th", "ti", "tig", "tiv", "tk", "tkl", "tkr", "tl",
|
"th", "ti", "tig", "tiv", "tk", "tkl", "tkr", "tl",
|
||||||
"tlh", "tli", "tly", "tmh", "tn", "to", "tog", "tpi",
|
"tlh", "tli", "tly", "tmh", "tn", "to", "tog", "tpi",
|
||||||
"tr", "tru", "trv", "ts", "tsd", "tsi", "tt", "ttt",
|
"tr", "tru", "trv", "ts", "tsd", "tsi", "tt", "ttt",
|
||||||
"tum", "tvl", "tw", "twq", "ty", "tyv", "tzm",
|
"tum", "tvl", "tw", "twq", "ty", "tyv", "tzm",
|
||||||
"udm", "ug", "uga", "uk", "umb", "und", "ur", "uz",
|
"udm", "ug", "uga", "uk", "umb", "und", "ur", "uz",
|
||||||
"vai", "ve", "vec", "vep", "vi", "vls", "vmf", "vo",
|
"vai", "ve", "vec", "vep", "vi", "vls", "vmf", "vo",
|
||||||
"vot", "vro", "vun",
|
"vot", "vro", "vun",
|
||||||
"wa", "wae", "wal", "war", "was", "wbp", "wo", "wuu",
|
"wa", "wae", "wal", "war", "was", "wbp", "wo", "wuu",
|
||||||
"xal", "xh", "xmf", "xog",
|
"xal", "xh", "xmf", "xog",
|
||||||
"yao", "yap", "yav", "ybb", "yi", "yo", "yrl", "yue",
|
"yao", "yap", "yav", "ybb", "yi", "yo", "yrl", "yue",
|
||||||
"za", "zap", "zbl", "zea", "zen", "zgh", "zh", "zu",
|
"za", "zap", "zbl", "zea", "zen", "zgh", "zh", "zu",
|
||||||
"zun", "zxx", "zza",
|
"zun", "zxx", "zza",
|
||||||
NULL,
|
NULL,
|
||||||
"in", "iw", "ji", "jw", "sh", /* obsolete language codes */
|
"in", "iw", "ji", "jw", "sh", /* obsolete language codes */
|
||||||
NULL
|
NULL
|
||||||
|
@ -209,90 +213,90 @@ static const char* const REPLACEMENT_LANGUAGES[]={
|
||||||
/* Generated using org.unicode.cldr.icu.GenerateISO639LanguageTables */
|
/* Generated using org.unicode.cldr.icu.GenerateISO639LanguageTables */
|
||||||
/* ISO639 table version is 20150505 */
|
/* ISO639 table version is 20150505 */
|
||||||
static const char * const LANGUAGES_3[] = {
|
static const char * const LANGUAGES_3[] = {
|
||||||
"aar", "abk", "ace", "ach", "ada", "ady", "ave", "aeb",
|
"aar", "abk", "ace", "ach", "ada", "ady", "ave", "aeb",
|
||||||
"afr", "afh", "agq", "ain", "aka", "akk", "akz", "ale",
|
"afr", "afh", "agq", "ain", "aka", "akk", "akz", "ale",
|
||||||
"aln", "alt", "amh", "arg", "ang", "anp", "ara", "arc",
|
"aln", "alt", "amh", "arg", "ang", "anp", "ara", "arc",
|
||||||
"arn", "aro", "arp", "arq", "arw", "ary", "arz", "asm",
|
"arn", "aro", "arp", "arq", "arw", "ary", "arz", "asm",
|
||||||
"asa", "ase", "ast", "ava", "avk", "awa", "aym", "aze",
|
"asa", "ase", "ast", "ava", "avk", "awa", "aym", "aze",
|
||||||
"bak", "bal", "ban", "bar", "bas", "bax", "bbc", "bbj",
|
"bak", "bal", "ban", "bar", "bas", "bax", "bbc", "bbj",
|
||||||
"bel", "bej", "bem", "bew", "bez", "bfd", "bfq", "bul",
|
"bel", "bej", "bem", "bew", "bez", "bfd", "bfq", "bul",
|
||||||
"bgn", "bho", "bis", "bik", "bin", "bjn", "bkm", "bla",
|
"bgn", "bho", "bis", "bik", "bin", "bjn", "bkm", "bla",
|
||||||
"bam", "ben", "bod", "bpy", "bqi", "bre", "bra", "brh",
|
"bam", "ben", "bod", "bpy", "bqi", "bre", "bra", "brh",
|
||||||
"brx", "bos", "bss", "bua", "bug", "bum", "byn", "byv",
|
"brx", "bos", "bss", "bua", "bug", "bum", "byn", "byv",
|
||||||
"cat", "cad", "car", "cay", "cch", "che", "ceb", "cgg",
|
"cat", "cad", "car", "cay", "cch", "che", "ceb", "cgg",
|
||||||
"cha", "chb", "chg", "chk", "chm", "chn", "cho", "chp",
|
"cha", "chb", "chg", "chk", "chm", "chn", "cho", "chp",
|
||||||
"chr", "chy", "ckb", "cos", "cop", "cps", "cre", "crh",
|
"chr", "chy", "ckb", "cos", "cop", "cps", "cre", "crh",
|
||||||
"ces", "csb", "chu", "chv", "cym",
|
"ces", "csb", "chu", "chv", "cym",
|
||||||
"dan", "dak", "dar", "dav", "deu", "del", "den", "dgr",
|
"dan", "dak", "dar", "dav", "deu", "del", "den", "dgr",
|
||||||
"din", "dje", "doi", "dsb", "dtp", "dua", "dum", "div",
|
"din", "dje", "doi", "dsb", "dtp", "dua", "dum", "div",
|
||||||
"dyo", "dyu", "dzo", "dzg",
|
"dyo", "dyu", "dzo", "dzg",
|
||||||
"ebu", "ewe", "efi", "egl", "egy", "eka", "ell", "elx",
|
"ebu", "ewe", "efi", "egl", "egy", "eka", "ell", "elx",
|
||||||
"eng", "enm", "epo", "spa", "esu", "est", "eus", "ewo",
|
"eng", "enm", "epo", "spa", "esu", "est", "eus", "ewo",
|
||||||
"ext",
|
"ext",
|
||||||
"fas", "fan", "fat", "ful", "fin", "fil", "fit", "fij",
|
"fas", "fan", "fat", "ful", "fin", "fil", "fit", "fij",
|
||||||
"fao", "fon", "fra", "frc", "frm", "fro", "frp", "frr",
|
"fao", "fon", "fra", "frc", "frm", "fro", "frp", "frr",
|
||||||
"frs", "fur", "fry",
|
"frs", "fur", "fry",
|
||||||
"gle", "gaa", "gag", "gan", "gay", "gba", "gbz", "gla",
|
"gle", "gaa", "gag", "gan", "gay", "gba", "gbz", "gla",
|
||||||
"gez", "gil", "glg", "glk", "gmh", "grn", "goh", "gom",
|
"gez", "gil", "glg", "glk", "gmh", "grn", "goh", "gom",
|
||||||
"gon", "gor", "got", "grb", "grc", "gsw", "guj", "guc",
|
"gon", "gor", "got", "grb", "grc", "gsw", "guj", "guc",
|
||||||
"gur", "guz", "glv", "gwi",
|
"gur", "guz", "glv", "gwi",
|
||||||
"hau", "hai", "hak", "haw", "heb", "hin", "hif", "hil",
|
"hau", "hai", "hak", "haw", "heb", "hin", "hif", "hil",
|
||||||
"hit", "hmn", "hmo", "hrv", "hsb", "hsn", "hat", "hun",
|
"hit", "hmn", "hmo", "hrv", "hsb", "hsn", "hat", "hun",
|
||||||
"hup", "hye", "her",
|
"hup", "hye", "her",
|
||||||
"ina", "iba", "ibb", "ind", "ile", "ibo", "iii", "ipk",
|
"ina", "iba", "ibb", "ind", "ile", "ibo", "iii", "ipk",
|
||||||
"ilo", "inh", "ido", "isl", "ita", "iku", "izh",
|
"ilo", "inh", "ido", "isl", "ita", "iku", "izh",
|
||||||
"jpn", "jam", "jbo", "jgo", "jmc", "jpr", "jrb", "jut",
|
"jpn", "jam", "jbo", "jgo", "jmc", "jpr", "jrb", "jut",
|
||||||
"jav",
|
"jav",
|
||||||
"kat", "kaa", "kab", "kac", "kaj", "kam", "kaw", "kbd",
|
"kat", "kaa", "kab", "kac", "kaj", "kam", "kaw", "kbd",
|
||||||
"kbl", "kcg", "kde", "kea", "ken", "kfo", "kon", "kgp",
|
"kbl", "kcg", "kde", "kea", "ken", "kfo", "kon", "kgp",
|
||||||
"kha", "kho", "khq", "khw", "kik", "kiu", "kua", "kaz",
|
"kha", "kho", "khq", "khw", "kik", "kiu", "kua", "kaz",
|
||||||
"kkj", "kal", "kln", "khm", "kmb", "kan", "kor", "koi",
|
"kkj", "kal", "kln", "khm", "kmb", "kan", "kor", "koi",
|
||||||
"kok", "kos", "kpe", "kau", "krc", "kri", "krj", "krl",
|
"kok", "kos", "kpe", "kau", "krc", "kri", "krj", "krl",
|
||||||
"kru", "kas", "ksb", "ksf", "ksh", "kur", "kum", "kut",
|
"kru", "kas", "ksb", "ksf", "ksh", "kur", "kum", "kut",
|
||||||
"kom", "cor", "kir",
|
"kom", "cor", "kir",
|
||||||
"lat", "lad", "lag", "lah", "lam", "ltz", "lez", "lfn",
|
"lat", "lad", "lag", "lah", "lam", "ltz", "lez", "lfn",
|
||||||
"lug", "lim", "lij", "liv", "lkt", "lmo", "lin", "lao",
|
"lug", "lim", "lij", "liv", "lkt", "lmo", "lin", "lao",
|
||||||
"lol", "loz", "lrc", "lit", "ltg", "lub", "lua", "lui",
|
"lol", "loz", "lrc", "lit", "ltg", "lub", "lua", "lui",
|
||||||
"lun", "luo", "lus", "luy", "lav", "lzh", "lzz",
|
"lun", "luo", "lus", "luy", "lav", "lzh", "lzz",
|
||||||
"mad", "maf", "mag", "mai", "mak", "man", "mas", "mde",
|
"mad", "maf", "mag", "mai", "mak", "man", "mas", "mde",
|
||||||
"mdf", "mdh", "mdr", "men", "mer", "mfe", "mlg", "mga",
|
"mdf", "mdh", "mdr", "men", "mer", "mfe", "mlg", "mga",
|
||||||
"mgh", "mgo", "mah", "mri", "mic", "min", "mis", "mkd",
|
"mgh", "mgo", "mah", "mri", "mic", "min", "mis", "mkd",
|
||||||
"mal", "mon", "mnc", "mni", "moh", "mos", "mar", "mrj",
|
"mal", "mon", "mnc", "mni", "moh", "mos", "mar", "mrj",
|
||||||
"msa", "mlt", "mua", "mul", "mus", "mwl", "mwr", "mwv",
|
"msa", "mlt", "mua", "mul", "mus", "mwl", "mwr", "mwv",
|
||||||
"mya", "mye", "myv", "mzn",
|
"mya", "mye", "myv", "mzn",
|
||||||
"nau", "nan", "nap", "naq", "nob", "nde", "nds", "nep",
|
"nau", "nan", "nap", "naq", "nob", "nde", "nds", "nep",
|
||||||
"new", "ndo", "nia", "niu", "njo", "nld", "nmg", "nno",
|
"new", "ndo", "nia", "niu", "njo", "nld", "nmg", "nno",
|
||||||
"nnh", "nor", "nog", "non", "nov", "nqo", "nbl", "nso",
|
"nnh", "nor", "nog", "non", "nov", "nqo", "nbl", "nso",
|
||||||
"nus", "nav", "nwc", "nya", "nym", "nyn", "nyo", "nzi",
|
"nus", "nav", "nwc", "nya", "nym", "nyn", "nyo", "nzi",
|
||||||
"oci", "oji", "orm", "ori", "oss", "osa", "ota",
|
"oci", "oji", "orm", "ori", "oss", "osa", "ota",
|
||||||
"pan", "pag", "pal", "pam", "pap", "pau", "pcd", "pdc",
|
"pan", "pag", "pal", "pam", "pap", "pau", "pcd", "pdc",
|
||||||
"pdt", "peo", "pfl", "phn", "pli", "pol", "pms", "pnt",
|
"pdt", "peo", "pfl", "phn", "pli", "pol", "pms", "pnt",
|
||||||
"pon", "prg", "pro", "pus", "por",
|
"pon", "prg", "pro", "pus", "por",
|
||||||
"que", "quc", "qug",
|
"que", "quc", "qug",
|
||||||
"raj", "rap", "rar", "rgn", "rif", "roh", "run", "ron",
|
"raj", "rap", "rar", "rgn", "rif", "roh", "run", "ron",
|
||||||
"rof", "rom", "rtm", "rus", "rue", "rug", "rup",
|
"rof", "rom", "rtm", "rus", "rue", "rug", "rup",
|
||||||
"kin", "rwk",
|
"kin", "rwk",
|
||||||
"san", "sad", "sah", "sam", "saq", "sas", "sat", "saz",
|
"san", "sad", "sah", "sam", "saq", "sas", "sat", "saz",
|
||||||
"sba", "sbp", "srd", "scn", "sco", "snd", "sdc", "sdh",
|
"sba", "sbp", "srd", "scn", "sco", "snd", "sdc", "sdh",
|
||||||
"sme", "see", "seh", "sei", "sel", "ses", "sag", "sga",
|
"sme", "see", "seh", "sei", "sel", "ses", "sag", "sga",
|
||||||
"sgs", "shi", "shn", "shu", "sin", "sid", "slk",
|
"sgs", "shi", "shn", "shu", "sin", "sid", "slk",
|
||||||
"slv", "sli", "sly", "smo", "sma", "smj", "smn", "sms",
|
"slv", "sli", "sly", "smo", "sma", "smj", "smn", "sms",
|
||||||
"sna", "snk", "som", "sog", "sqi", "srp", "srn", "srr",
|
"sna", "snk", "som", "sog", "sqi", "srp", "srn", "srr",
|
||||||
"ssw", "ssy", "sot", "stq", "sun", "suk", "sus", "sux",
|
"ssw", "ssy", "sot", "stq", "sun", "suk", "sus", "sux",
|
||||||
"swe", "swa", "swb", "swc", "syc", "syr", "szl",
|
"swe", "swa", "swb", "swc", "syc", "syr", "szl",
|
||||||
"tam", "tcy", "tel", "tem", "teo", "ter", "tet", "tgk",
|
"tam", "tcy", "tel", "tem", "teo", "ter", "tet", "tgk",
|
||||||
"tha", "tir", "tig", "tiv", "tuk", "tkl", "tkr", "tgl",
|
"tha", "tir", "tig", "tiv", "tuk", "tkl", "tkr", "tgl",
|
||||||
"tlh", "tli", "tly", "tmh", "tsn", "ton", "tog", "tpi",
|
"tlh", "tli", "tly", "tmh", "tsn", "ton", "tog", "tpi",
|
||||||
"tur", "tru", "trv", "tso", "tsd", "tsi", "tat", "ttt",
|
"tur", "tru", "trv", "tso", "tsd", "tsi", "tat", "ttt",
|
||||||
"tum", "tvl", "twi", "twq", "tah", "tyv", "tzm",
|
"tum", "tvl", "twi", "twq", "tah", "tyv", "tzm",
|
||||||
"udm", "uig", "uga", "ukr", "umb", "und", "urd", "uzb",
|
"udm", "uig", "uga", "ukr", "umb", "und", "urd", "uzb",
|
||||||
"vai", "ven", "vec", "vep", "vie", "vls", "vmf", "vol",
|
"vai", "ven", "vec", "vep", "vie", "vls", "vmf", "vol",
|
||||||
"vot", "vro", "vun",
|
"vot", "vro", "vun",
|
||||||
"wln", "wae", "wal", "war", "was", "wbp", "wol", "wuu",
|
"wln", "wae", "wal", "war", "was", "wbp", "wol", "wuu",
|
||||||
"xal", "xho", "xmf", "xog",
|
"xal", "xho", "xmf", "xog",
|
||||||
"yao", "yap", "yav", "ybb", "yid", "yor", "yrl", "yue",
|
"yao", "yap", "yav", "ybb", "yid", "yor", "yrl", "yue",
|
||||||
"zha", "zap", "zbl", "zea", "zen", "zgh", "zho", "zul",
|
"zha", "zap", "zbl", "zea", "zen", "zgh", "zho", "zul",
|
||||||
"zun", "zxx", "zza",
|
"zun", "zxx", "zza",
|
||||||
NULL,
|
NULL,
|
||||||
/* "in", "iw", "ji", "jw", "sh", */
|
/* "in", "iw", "ji", "jw", "sh", */
|
||||||
"ind", "heb", "yid", "jaw", "srp",
|
"ind", "heb", "yid", "jaw", "srp",
|
||||||
|
@ -364,9 +368,9 @@ static const char* const DEPRECATED_COUNTRIES[] = {
|
||||||
};
|
};
|
||||||
static const char* const REPLACEMENT_COUNTRIES[] = {
|
static const char* const REPLACEMENT_COUNTRIES[] = {
|
||||||
/* "AN", "BU", "CS", "DD", "DY", "FX", "HV", "NH", "RH", "SU", "TP", "UK", "VD", "YD", "YU", "ZR" */
|
/* "AN", "BU", "CS", "DD", "DY", "FX", "HV", "NH", "RH", "SU", "TP", "UK", "VD", "YD", "YU", "ZR" */
|
||||||
"CW", "MM", "RS", "DE", "BJ", "FR", "BF", "VU", "ZW", "RU", "TL", "GB", "VN", "YE", "RS", "CD", NULL, NULL /* replacement country codes */
|
"CW", "MM", "RS", "DE", "BJ", "FR", "BF", "VU", "ZW", "RU", "TL", "GB", "VN", "YE", "RS", "CD", NULL, NULL /* replacement country codes */
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Table of 3-letter country codes.
|
* Table of 3-letter country codes.
|
||||||
*
|
*
|
||||||
|
@ -594,19 +598,19 @@ static int32_t locale_canonKeywordName(char *buf, const char *keywordName, UErro
|
||||||
{
|
{
|
||||||
int32_t i;
|
int32_t i;
|
||||||
int32_t keywordNameLen = (int32_t)uprv_strlen(keywordName);
|
int32_t keywordNameLen = (int32_t)uprv_strlen(keywordName);
|
||||||
|
|
||||||
if(keywordNameLen >= ULOC_KEYWORD_BUFFER_LEN) {
|
if(keywordNameLen >= ULOC_KEYWORD_BUFFER_LEN) {
|
||||||
/* keyword name too long for internal buffer */
|
/* keyword name too long for internal buffer */
|
||||||
*status = U_INTERNAL_PROGRAM_ERROR;
|
*status = U_INTERNAL_PROGRAM_ERROR;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* normalize the keyword name */
|
/* normalize the keyword name */
|
||||||
for(i = 0; i < keywordNameLen; i++) {
|
for(i = 0; i < keywordNameLen; i++) {
|
||||||
buf[i] = uprv_tolower(keywordName[i]);
|
buf[i] = uprv_tolower(keywordName[i]);
|
||||||
}
|
}
|
||||||
buf[i] = 0;
|
buf[i] = 0;
|
||||||
|
|
||||||
return keywordNameLen;
|
return keywordNameLen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -641,7 +645,7 @@ _getKeywords(const char *localeID,
|
||||||
UErrorCode *status)
|
UErrorCode *status)
|
||||||
{
|
{
|
||||||
KeywordStruct keywordList[ULOC_MAX_NO_KEYWORDS];
|
KeywordStruct keywordList[ULOC_MAX_NO_KEYWORDS];
|
||||||
|
|
||||||
int32_t maxKeywords = ULOC_MAX_NO_KEYWORDS;
|
int32_t maxKeywords = ULOC_MAX_NO_KEYWORDS;
|
||||||
int32_t numKeywords = 0;
|
int32_t numKeywords = 0;
|
||||||
const char* pos = localeID;
|
const char* pos = localeID;
|
||||||
|
@ -766,7 +770,7 @@ _getKeywords(const char *localeID,
|
||||||
/* now we have a list of keywords */
|
/* now we have a list of keywords */
|
||||||
/* we need to sort it */
|
/* we need to sort it */
|
||||||
uprv_sortArray(keywordList, numKeywords, sizeof(KeywordStruct), compareKeywordStructs, NULL, FALSE, status);
|
uprv_sortArray(keywordList, numKeywords, sizeof(KeywordStruct), compareKeywordStructs, NULL, FALSE, status);
|
||||||
|
|
||||||
/* Now construct the keyword part */
|
/* Now construct the keyword part */
|
||||||
for(i = 0; i < numKeywords; i++) {
|
for(i = 0; i < numKeywords; i++) {
|
||||||
if(keywordsLen + keywordList[i].keywordLen + 1< keywordCapacity) {
|
if(keywordsLen + keywordList[i].keywordLen + 1< keywordCapacity) {
|
||||||
|
@ -783,9 +787,9 @@ _getKeywords(const char *localeID,
|
||||||
uprv_strncpy(keywords+keywordsLen, keywordList[i].valueStart, keywordList[i].valueLen);
|
uprv_strncpy(keywords+keywordsLen, keywordList[i].valueStart, keywordList[i].valueLen);
|
||||||
}
|
}
|
||||||
keywordsLen += keywordList[i].valueLen;
|
keywordsLen += keywordList[i].valueLen;
|
||||||
|
|
||||||
if(i < numKeywords - 1) {
|
if(i < numKeywords - 1) {
|
||||||
if(keywordsLen < keywordCapacity) {
|
if(keywordsLen < keywordCapacity) {
|
||||||
keywords[keywordsLen] = ';';
|
keywords[keywordsLen] = ';';
|
||||||
}
|
}
|
||||||
keywordsLen++;
|
keywordsLen++;
|
||||||
|
@ -805,7 +809,7 @@ _getKeywords(const char *localeID,
|
||||||
*valLen = valuesLen;
|
*valLen = valuesLen;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return u_terminateChars(keywords, keywordCapacity, keywordsLen, status);
|
return u_terminateChars(keywords, keywordCapacity, keywordsLen, status);
|
||||||
} else {
|
} else {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -828,7 +832,7 @@ uloc_getKeywordValue(const char* localeID,
|
||||||
const char* keywordName,
|
const char* keywordName,
|
||||||
char* buffer, int32_t bufferCapacity,
|
char* buffer, int32_t bufferCapacity,
|
||||||
UErrorCode* status)
|
UErrorCode* status)
|
||||||
{
|
{
|
||||||
const char* startSearchHere = NULL;
|
const char* startSearchHere = NULL;
|
||||||
const char* nextSeparator = NULL;
|
const char* nextSeparator = NULL;
|
||||||
char keywordNameBuffer[ULOC_KEYWORD_BUFFER_LEN];
|
char keywordNameBuffer[ULOC_KEYWORD_BUFFER_LEN];
|
||||||
|
@ -845,7 +849,7 @@ uloc_getKeywordValue(const char* localeID,
|
||||||
} else {
|
} else {
|
||||||
tmpLocaleID=localeID;
|
tmpLocaleID=localeID;
|
||||||
}
|
}
|
||||||
|
|
||||||
startSearchHere = uprv_strchr(tmpLocaleID, '@'); /* TODO: REVISIT: shouldn't this be locale_getKeywordsStart ? */
|
startSearchHere = uprv_strchr(tmpLocaleID, '@'); /* TODO: REVISIT: shouldn't this be locale_getKeywordsStart ? */
|
||||||
if(startSearchHere == NULL) {
|
if(startSearchHere == NULL) {
|
||||||
/* no keywords, return at once */
|
/* no keywords, return at once */
|
||||||
|
@ -856,7 +860,7 @@ uloc_getKeywordValue(const char* localeID,
|
||||||
if(U_FAILURE(*status)) {
|
if(U_FAILURE(*status)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* find the first keyword */
|
/* find the first keyword */
|
||||||
while(startSearchHere) {
|
while(startSearchHere) {
|
||||||
startSearchHere++;
|
startSearchHere++;
|
||||||
|
@ -883,9 +887,9 @@ uloc_getKeywordValue(const char* localeID,
|
||||||
U_ASSERT(i>=0);
|
U_ASSERT(i>=0);
|
||||||
}
|
}
|
||||||
localeKeywordNameBuffer[i] = 0;
|
localeKeywordNameBuffer[i] = 0;
|
||||||
|
|
||||||
startSearchHere = uprv_strchr(nextSeparator, ';');
|
startSearchHere = uprv_strchr(nextSeparator, ';');
|
||||||
|
|
||||||
if(uprv_strcmp(keywordNameBuffer, localeKeywordNameBuffer) == 0) {
|
if(uprv_strcmp(keywordNameBuffer, localeKeywordNameBuffer) == 0) {
|
||||||
nextSeparator++;
|
nextSeparator++;
|
||||||
while(*nextSeparator == ' ') {
|
while(*nextSeparator == ' ') {
|
||||||
|
@ -911,7 +915,7 @@ uloc_getKeywordValue(const char* localeID,
|
||||||
if(startSearchHere) {
|
if(startSearchHere) {
|
||||||
result = (int32_t)(startSearchHere - nextSeparator);
|
result = (int32_t)(startSearchHere - nextSeparator);
|
||||||
} else {
|
} else {
|
||||||
result = (int32_t)uprv_strlen(nextSeparator);
|
result = (int32_t)uprv_strlen(nextSeparator);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
@ -943,8 +947,8 @@ uloc_setKeywordValue(const char* keywordName,
|
||||||
char* startSearchHere = NULL;
|
char* startSearchHere = NULL;
|
||||||
char* keywordStart = NULL;
|
char* keywordStart = NULL;
|
||||||
char *insertHere = NULL;
|
char *insertHere = NULL;
|
||||||
if(U_FAILURE(*status)) {
|
if(U_FAILURE(*status)) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if(bufferCapacity>1) {
|
if(bufferCapacity>1) {
|
||||||
bufLen = (int32_t)uprv_strlen(buffer);
|
bufLen = (int32_t)uprv_strlen(buffer);
|
||||||
|
@ -957,12 +961,12 @@ uloc_setKeywordValue(const char* keywordName,
|
||||||
*status = U_ILLEGAL_ARGUMENT_ERROR;
|
*status = U_ILLEGAL_ARGUMENT_ERROR;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if(keywordValue && !*keywordValue) {
|
if(keywordValue && !*keywordValue) {
|
||||||
keywordValue = NULL;
|
keywordValue = NULL;
|
||||||
}
|
}
|
||||||
if(keywordValue) {
|
if(keywordValue) {
|
||||||
keywordValueLen = (int32_t)uprv_strlen(keywordValue);
|
keywordValueLen = (int32_t)uprv_strlen(keywordValue);
|
||||||
} else {
|
} else {
|
||||||
keywordValueLen = 0;
|
keywordValueLen = 0;
|
||||||
}
|
}
|
||||||
keywordNameLen = locale_canonKeywordName(keywordNameBuffer, keywordName, status);
|
keywordNameLen = locale_canonKeywordName(keywordNameBuffer, keywordName, status);
|
||||||
|
@ -972,11 +976,11 @@ uloc_setKeywordValue(const char* keywordName,
|
||||||
startSearchHere = (char*)locale_getKeywordsStart(buffer);
|
startSearchHere = (char*)locale_getKeywordsStart(buffer);
|
||||||
if(startSearchHere == NULL || (startSearchHere[1]==0)) {
|
if(startSearchHere == NULL || (startSearchHere[1]==0)) {
|
||||||
if(!keywordValue) { /* no keywords = nothing to remove */
|
if(!keywordValue) { /* no keywords = nothing to remove */
|
||||||
return bufLen;
|
return bufLen;
|
||||||
}
|
}
|
||||||
|
|
||||||
needLen = bufLen+1+keywordNameLen+1+keywordValueLen;
|
needLen = bufLen+1+keywordNameLen+1+keywordValueLen;
|
||||||
if(startSearchHere) { /* had a single @ */
|
if(startSearchHere) { /* had a single @ */
|
||||||
needLen--; /* already had the @ */
|
needLen--; /* already had the @ */
|
||||||
/* startSearchHere points at the @ */
|
/* startSearchHere points at the @ */
|
||||||
} else {
|
} else {
|
||||||
|
@ -996,7 +1000,7 @@ uloc_setKeywordValue(const char* keywordName,
|
||||||
startSearchHere+=keywordValueLen;
|
startSearchHere+=keywordValueLen;
|
||||||
return needLen;
|
return needLen;
|
||||||
} /* end shortcut - no @ */
|
} /* end shortcut - no @ */
|
||||||
|
|
||||||
keywordStart = startSearchHere;
|
keywordStart = startSearchHere;
|
||||||
/* search for keyword */
|
/* search for keyword */
|
||||||
while(keywordStart) {
|
while(keywordStart) {
|
||||||
|
@ -1084,7 +1088,7 @@ uloc_setKeywordValue(const char* keywordName,
|
||||||
}
|
}
|
||||||
keywordStart = nextSeparator;
|
keywordStart = nextSeparator;
|
||||||
} /* end loop searching */
|
} /* end loop searching */
|
||||||
|
|
||||||
if(!keywordValue) {
|
if(!keywordValue) {
|
||||||
return bufLen; /* removal of non-extant keyword - no change */
|
return bufLen; /* removal of non-extant keyword - no change */
|
||||||
}
|
}
|
||||||
|
@ -1095,7 +1099,7 @@ uloc_setKeywordValue(const char* keywordName,
|
||||||
*status = U_BUFFER_OVERFLOW_ERROR;
|
*status = U_BUFFER_OVERFLOW_ERROR;
|
||||||
return needLen; /* no change */
|
return needLen; /* no change */
|
||||||
}
|
}
|
||||||
|
|
||||||
if(insertHere) {
|
if(insertHere) {
|
||||||
uprv_memmove(insertHere+(1+keywordNameLen+1+keywordValueLen), insertHere, bufLen-(insertHere-buffer));
|
uprv_memmove(insertHere+(1+keywordNameLen+1+keywordValueLen), insertHere, bufLen-(insertHere-buffer));
|
||||||
keywordStart = insertHere;
|
keywordStart = insertHere;
|
||||||
|
@ -1190,7 +1194,7 @@ _copyCount(char *dest, int32_t destCapacity, const char *src) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
U_CFUNC const char*
|
U_CFUNC const char*
|
||||||
uloc_getCurrentCountryID(const char* oldID){
|
uloc_getCurrentCountryID(const char* oldID){
|
||||||
int32_t offset = _findIndex(DEPRECATED_COUNTRIES, oldID);
|
int32_t offset = _findIndex(DEPRECATED_COUNTRIES, oldID);
|
||||||
if (offset >= 0) {
|
if (offset >= 0) {
|
||||||
|
@ -1198,13 +1202,13 @@ uloc_getCurrentCountryID(const char* oldID){
|
||||||
}
|
}
|
||||||
return oldID;
|
return oldID;
|
||||||
}
|
}
|
||||||
U_CFUNC const char*
|
U_CFUNC const char*
|
||||||
uloc_getCurrentLanguageID(const char* oldID){
|
uloc_getCurrentLanguageID(const char* oldID){
|
||||||
int32_t offset = _findIndex(DEPRECATED_LANGUAGES, oldID);
|
int32_t offset = _findIndex(DEPRECATED_LANGUAGES, oldID);
|
||||||
if (offset >= 0) {
|
if (offset >= 0) {
|
||||||
return REPLACEMENT_LANGUAGES[offset];
|
return REPLACEMENT_LANGUAGES[offset];
|
||||||
}
|
}
|
||||||
return oldID;
|
return oldID;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* the internal functions _getLanguage(), _getCountry(), _getVariant()
|
* the internal functions _getLanguage(), _getCountry(), _getVariant()
|
||||||
|
@ -1233,7 +1237,7 @@ ulocimp_getLanguage(const char *localeID,
|
||||||
i+=2;
|
i+=2;
|
||||||
localeID+=2;
|
localeID+=2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* copy the language as far as possible and count its length */
|
/* copy the language as far as possible and count its length */
|
||||||
while(!_isTerminator(*localeID) && !_isIDSeparator(*localeID)) {
|
while(!_isTerminator(*localeID) && !_isIDSeparator(*localeID)) {
|
||||||
if(i<languageCapacity) {
|
if(i<languageCapacity) {
|
||||||
|
@ -1408,7 +1412,7 @@ _getVariantEx(const char *localeID,
|
||||||
localeID++;
|
localeID++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1488,7 +1492,7 @@ uloc_kw_countKeywords(UEnumeration *en, UErrorCode * /*status*/) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char* U_CALLCONV
|
static const char* U_CALLCONV
|
||||||
uloc_kw_nextKeyword(UEnumeration* en,
|
uloc_kw_nextKeyword(UEnumeration* en,
|
||||||
int32_t* resultLength,
|
int32_t* resultLength,
|
||||||
UErrorCode* /*status*/) {
|
UErrorCode* /*status*/) {
|
||||||
|
@ -1506,8 +1510,8 @@ uloc_kw_nextKeyword(UEnumeration* en,
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void U_CALLCONV
|
static void U_CALLCONV
|
||||||
uloc_kw_resetKeywords(UEnumeration* en,
|
uloc_kw_resetKeywords(UEnumeration* en,
|
||||||
UErrorCode* /*status*/) {
|
UErrorCode* /*status*/) {
|
||||||
((UKeywordsContext *)en->context)->current = ((UKeywordsContext *)en->context)->keywords;
|
((UKeywordsContext *)en->context)->current = ((UKeywordsContext *)en->context)->keywords;
|
||||||
}
|
}
|
||||||
|
@ -1554,7 +1558,7 @@ uloc_openKeywordList(const char *keywordList, int32_t keywordListSize, UErrorCod
|
||||||
|
|
||||||
U_CAPI UEnumeration* U_EXPORT2
|
U_CAPI UEnumeration* U_EXPORT2
|
||||||
uloc_openKeywords(const char* localeID,
|
uloc_openKeywords(const char* localeID,
|
||||||
UErrorCode* status)
|
UErrorCode* status)
|
||||||
{
|
{
|
||||||
int32_t i=0;
|
int32_t i=0;
|
||||||
char keywords[256];
|
char keywords[256];
|
||||||
|
@ -1565,7 +1569,7 @@ uloc_openKeywords(const char* localeID,
|
||||||
if(status==NULL || U_FAILURE(*status)) {
|
if(status==NULL || U_FAILURE(*status)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_hasBCP47Extension(localeID)) {
|
if (_hasBCP47Extension(localeID)) {
|
||||||
_ConvertBCP47(tmpLocaleID, localeID, tempBuffer, sizeof(tempBuffer), status);
|
_ConvertBCP47(tmpLocaleID, localeID, tempBuffer, sizeof(tempBuffer), status);
|
||||||
} else {
|
} else {
|
||||||
|
@ -1644,7 +1648,7 @@ _canonicalize(const char* localeID,
|
||||||
if (U_FAILURE(*err)) {
|
if (U_FAILURE(*err)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_hasBCP47Extension(localeID)) {
|
if (_hasBCP47Extension(localeID)) {
|
||||||
_ConvertBCP47(tmpLocaleID, localeID, tempBuffer, sizeof(tempBuffer), err);
|
_ConvertBCP47(tmpLocaleID, localeID, tempBuffer, sizeof(tempBuffer), err);
|
||||||
} else {
|
} else {
|
||||||
|
@ -1672,7 +1676,7 @@ _canonicalize(const char* localeID,
|
||||||
|
|
||||||
if(len == I_DEFAULT_LENGTH && uprv_strncmp(origLocaleID, i_default, len) == 0) {
|
if(len == I_DEFAULT_LENGTH && uprv_strncmp(origLocaleID, i_default, len) == 0) {
|
||||||
const char *d = uloc_getDefault();
|
const char *d = uloc_getDefault();
|
||||||
|
|
||||||
len = (int32_t)uprv_strlen(d);
|
len = (int32_t)uprv_strlen(d);
|
||||||
|
|
||||||
if (name != NULL) {
|
if (name != NULL) {
|
||||||
|
@ -1878,10 +1882,10 @@ uloc_getParent(const char* localeID,
|
||||||
{
|
{
|
||||||
const char *lastUnderscore;
|
const char *lastUnderscore;
|
||||||
int32_t i;
|
int32_t i;
|
||||||
|
|
||||||
if (U_FAILURE(*err))
|
if (U_FAILURE(*err))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (localeID == NULL)
|
if (localeID == NULL)
|
||||||
localeID = uloc_getDefault();
|
localeID = uloc_getDefault();
|
||||||
|
|
||||||
|
@ -1910,7 +1914,7 @@ uloc_getLanguage(const char* localeID,
|
||||||
if (err==NULL || U_FAILURE(*err)) {
|
if (err==NULL || U_FAILURE(*err)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(localeID==NULL) {
|
if(localeID==NULL) {
|
||||||
localeID=uloc_getDefault();
|
localeID=uloc_getDefault();
|
||||||
}
|
}
|
||||||
|
@ -1947,7 +1951,7 @@ U_CAPI int32_t U_EXPORT2
|
||||||
uloc_getCountry(const char* localeID,
|
uloc_getCountry(const char* localeID,
|
||||||
char* country,
|
char* country,
|
||||||
int32_t countryCapacity,
|
int32_t countryCapacity,
|
||||||
UErrorCode* err)
|
UErrorCode* err)
|
||||||
{
|
{
|
||||||
int32_t i=0;
|
int32_t i=0;
|
||||||
|
|
||||||
|
@ -1980,16 +1984,16 @@ U_CAPI int32_t U_EXPORT2
|
||||||
uloc_getVariant(const char* localeID,
|
uloc_getVariant(const char* localeID,
|
||||||
char* variant,
|
char* variant,
|
||||||
int32_t variantCapacity,
|
int32_t variantCapacity,
|
||||||
UErrorCode* err)
|
UErrorCode* err)
|
||||||
{
|
{
|
||||||
char tempBuffer[ULOC_FULLNAME_CAPACITY];
|
char tempBuffer[ULOC_FULLNAME_CAPACITY];
|
||||||
const char* tmpLocaleID;
|
const char* tmpLocaleID;
|
||||||
int32_t i=0;
|
int32_t i=0;
|
||||||
|
|
||||||
if(err==NULL || U_FAILURE(*err)) {
|
if(err==NULL || U_FAILURE(*err)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_hasBCP47Extension(localeID)) {
|
if (_hasBCP47Extension(localeID)) {
|
||||||
_ConvertBCP47(tmpLocaleID, localeID, tempBuffer, sizeof(tempBuffer), err);
|
_ConvertBCP47(tmpLocaleID, localeID, tempBuffer, sizeof(tempBuffer), err);
|
||||||
} else {
|
} else {
|
||||||
|
@ -1998,7 +2002,7 @@ uloc_getVariant(const char* localeID,
|
||||||
}
|
}
|
||||||
tmpLocaleID=localeID;
|
tmpLocaleID=localeID;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Skip the language */
|
/* Skip the language */
|
||||||
ulocimp_getLanguage(tmpLocaleID, NULL, 0, &tmpLocaleID);
|
ulocimp_getLanguage(tmpLocaleID, NULL, 0, &tmpLocaleID);
|
||||||
if(_isIDSeparator(*tmpLocaleID)) {
|
if(_isIDSeparator(*tmpLocaleID)) {
|
||||||
|
@ -2026,7 +2030,7 @@ uloc_getVariant(const char* localeID,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* removed by weiv. We don't want to handle POSIX variants anymore. Use canonicalization function */
|
/* removed by weiv. We don't want to handle POSIX variants anymore. Use canonicalization function */
|
||||||
/* if we do not have a variant tag yet then try a POSIX variant after '@' */
|
/* if we do not have a variant tag yet then try a POSIX variant after '@' */
|
||||||
/*
|
/*
|
||||||
|
@ -2041,7 +2045,7 @@ U_CAPI int32_t U_EXPORT2
|
||||||
uloc_getName(const char* localeID,
|
uloc_getName(const char* localeID,
|
||||||
char* name,
|
char* name,
|
||||||
int32_t nameCapacity,
|
int32_t nameCapacity,
|
||||||
UErrorCode* err)
|
UErrorCode* err)
|
||||||
{
|
{
|
||||||
return _canonicalize(localeID, name, nameCapacity, 0, err);
|
return _canonicalize(localeID, name, nameCapacity, 0, err);
|
||||||
}
|
}
|
||||||
|
@ -2050,7 +2054,7 @@ U_CAPI int32_t U_EXPORT2
|
||||||
uloc_getBaseName(const char* localeID,
|
uloc_getBaseName(const char* localeID,
|
||||||
char* name,
|
char* name,
|
||||||
int32_t nameCapacity,
|
int32_t nameCapacity,
|
||||||
UErrorCode* err)
|
UErrorCode* err)
|
||||||
{
|
{
|
||||||
return _canonicalize(localeID, name, nameCapacity, _ULOC_STRIP_KEYWORDS, err);
|
return _canonicalize(localeID, name, nameCapacity, _ULOC_STRIP_KEYWORDS, err);
|
||||||
}
|
}
|
||||||
|
@ -2059,18 +2063,18 @@ U_CAPI int32_t U_EXPORT2
|
||||||
uloc_canonicalize(const char* localeID,
|
uloc_canonicalize(const char* localeID,
|
||||||
char* name,
|
char* name,
|
||||||
int32_t nameCapacity,
|
int32_t nameCapacity,
|
||||||
UErrorCode* err)
|
UErrorCode* err)
|
||||||
{
|
{
|
||||||
return _canonicalize(localeID, name, nameCapacity, _ULOC_CANONICALIZE, err);
|
return _canonicalize(localeID, name, nameCapacity, _ULOC_CANONICALIZE, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
U_CAPI const char* U_EXPORT2
|
U_CAPI const char* U_EXPORT2
|
||||||
uloc_getISO3Language(const char* localeID)
|
uloc_getISO3Language(const char* localeID)
|
||||||
{
|
{
|
||||||
int16_t offset;
|
int16_t offset;
|
||||||
char lang[ULOC_LANG_CAPACITY];
|
char lang[ULOC_LANG_CAPACITY];
|
||||||
UErrorCode err = U_ZERO_ERROR;
|
UErrorCode err = U_ZERO_ERROR;
|
||||||
|
|
||||||
if (localeID == NULL)
|
if (localeID == NULL)
|
||||||
{
|
{
|
||||||
localeID = uloc_getDefault();
|
localeID = uloc_getDefault();
|
||||||
|
@ -2085,12 +2089,12 @@ uloc_getISO3Language(const char* localeID)
|
||||||
}
|
}
|
||||||
|
|
||||||
U_CAPI const char* U_EXPORT2
|
U_CAPI const char* U_EXPORT2
|
||||||
uloc_getISO3Country(const char* localeID)
|
uloc_getISO3Country(const char* localeID)
|
||||||
{
|
{
|
||||||
int16_t offset;
|
int16_t offset;
|
||||||
char cntry[ULOC_LANG_CAPACITY];
|
char cntry[ULOC_LANG_CAPACITY];
|
||||||
UErrorCode err = U_ZERO_ERROR;
|
UErrorCode err = U_ZERO_ERROR;
|
||||||
|
|
||||||
if (localeID == NULL)
|
if (localeID == NULL)
|
||||||
{
|
{
|
||||||
localeID = uloc_getDefault();
|
localeID = uloc_getDefault();
|
||||||
|
@ -2101,12 +2105,12 @@ uloc_getISO3Country(const char* localeID)
|
||||||
offset = _findIndex(COUNTRIES, cntry);
|
offset = _findIndex(COUNTRIES, cntry);
|
||||||
if (offset < 0)
|
if (offset < 0)
|
||||||
return "";
|
return "";
|
||||||
|
|
||||||
return COUNTRIES_3[offset];
|
return COUNTRIES_3[offset];
|
||||||
}
|
}
|
||||||
|
|
||||||
U_CAPI uint32_t U_EXPORT2
|
U_CAPI uint32_t U_EXPORT2
|
||||||
uloc_getLCID(const char* localeID)
|
uloc_getLCID(const char* localeID)
|
||||||
{
|
{
|
||||||
UErrorCode status = U_ZERO_ERROR;
|
UErrorCode status = U_ZERO_ERROR;
|
||||||
char langID[ULOC_FULLNAME_CAPACITY];
|
char langID[ULOC_FULLNAME_CAPACITY];
|
||||||
|
@ -2169,12 +2173,12 @@ uloc_getDefault()
|
||||||
|
|
||||||
U_CAPI void U_EXPORT2
|
U_CAPI void U_EXPORT2
|
||||||
uloc_setDefault(const char* newDefaultLocale,
|
uloc_setDefault(const char* newDefaultLocale,
|
||||||
UErrorCode* err)
|
UErrorCode* err)
|
||||||
{
|
{
|
||||||
if (U_FAILURE(*err))
|
if (U_FAILURE(*err))
|
||||||
return;
|
return;
|
||||||
/* the error code isn't currently used for anything by this function*/
|
/* the error code isn't currently used for anything by this function*/
|
||||||
|
|
||||||
/* propagate change to C++ */
|
/* propagate change to C++ */
|
||||||
locale_set_default(newDefaultLocale);
|
locale_set_default(newDefaultLocale);
|
||||||
}
|
}
|
||||||
|
@ -2186,7 +2190,7 @@ uloc_setDefault(const char* newDefaultLocale,
|
||||||
* terminated with a null pointer.
|
* terminated with a null pointer.
|
||||||
*/
|
*/
|
||||||
U_CAPI const char* const* U_EXPORT2
|
U_CAPI const char* const* U_EXPORT2
|
||||||
uloc_getISOLanguages()
|
uloc_getISOLanguages()
|
||||||
{
|
{
|
||||||
return LANGUAGES;
|
return LANGUAGES;
|
||||||
}
|
}
|
||||||
|
@ -2198,7 +2202,7 @@ uloc_getISOLanguages()
|
||||||
* terminated with a null pointer.
|
* terminated with a null pointer.
|
||||||
*/
|
*/
|
||||||
U_CAPI const char* const* U_EXPORT2
|
U_CAPI const char* const* U_EXPORT2
|
||||||
uloc_getISOCountries()
|
uloc_getISOCountries()
|
||||||
{
|
{
|
||||||
return COUNTRIES;
|
return COUNTRIES;
|
||||||
}
|
}
|
||||||
|
@ -2269,8 +2273,8 @@ uloc_acceptLanguageCompare(const void * /*context*/, const void *a, const void *
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(ULOC_DEBUG)
|
#if defined(ULOC_DEBUG)
|
||||||
/* fprintf(stderr, "a:[%s:%g], b:[%s:%g] -> %d\n",
|
/* fprintf(stderr, "a:[%s:%g], b:[%s:%g] -> %d\n",
|
||||||
aa->locale, aa->q,
|
aa->locale, aa->q,
|
||||||
bb->locale, bb->q,
|
bb->locale, bb->q,
|
||||||
rc);*/
|
rc);*/
|
||||||
#endif
|
#endif
|
||||||
|
@ -2278,7 +2282,7 @@ uloc_acceptLanguageCompare(const void * /*context*/, const void *a, const void *
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
mt-mt, ja;q=0.76, en-us;q=0.95, en;q=0.92, en-gb;q=0.89, fr;q=0.87, iu-ca;q=0.84, iu;q=0.82, ja-jp;q=0.79, mt;q=0.97, de-de;q=0.74, de;q=0.71, es;q=0.68, it-it;q=0.66, it;q=0.63, vi-vn;q=0.61, vi;q=0.58, nl-nl;q=0.55, nl;q=0.53
|
mt-mt, ja;q=0.76, en-us;q=0.95, en;q=0.92, en-gb;q=0.89, fr;q=0.87, iu-ca;q=0.84, iu;q=0.82, ja-jp;q=0.79, mt;q=0.97, de-de;q=0.74, de;q=0.71, es;q=0.68, it-it;q=0.66, it;q=0.63, vi-vn;q=0.61, vi;q=0.58, nl-nl;q=0.55, nl;q=0.53
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -2311,7 +2315,7 @@ uloc_acceptLanguageFromHTTP(char *result, int32_t resultAvailable, UAcceptResult
|
||||||
if(!itemEnd) {
|
if(!itemEnd) {
|
||||||
itemEnd = httpAcceptLanguage+l; /* end of string */
|
itemEnd = httpAcceptLanguage+l; /* end of string */
|
||||||
}
|
}
|
||||||
if(paramEnd && paramEnd<itemEnd) {
|
if(paramEnd && paramEnd<itemEnd) {
|
||||||
/* semicolon (;) is closer than end (,) */
|
/* semicolon (;) is closer than end (,) */
|
||||||
t = paramEnd+1;
|
t = paramEnd+1;
|
||||||
if(*t=='q') {
|
if(*t=='q') {
|
||||||
|
@ -2416,7 +2420,7 @@ uloc_acceptLanguage(char *result, int32_t resultAvailable,
|
||||||
#endif
|
#endif
|
||||||
len = (int32_t)uprv_strlen(l);
|
len = (int32_t)uprv_strlen(l);
|
||||||
if(!uprv_strcmp(acceptList[i], l)) {
|
if(!uprv_strcmp(acceptList[i], l)) {
|
||||||
if(outResult) {
|
if(outResult) {
|
||||||
*outResult = ULOC_ACCEPT_VALID;
|
*outResult = ULOC_ACCEPT_VALID;
|
||||||
}
|
}
|
||||||
#if defined(ULOC_DEBUG)
|
#if defined(ULOC_DEBUG)
|
||||||
|
@ -2429,13 +2433,13 @@ uloc_acceptLanguage(char *result, int32_t resultAvailable,
|
||||||
uprv_free(fallbackList[j]);
|
uprv_free(fallbackList[j]);
|
||||||
}
|
}
|
||||||
uprv_free(fallbackList);
|
uprv_free(fallbackList);
|
||||||
return u_terminateChars(result, resultAvailable, len, status);
|
return u_terminateChars(result, resultAvailable, len, status);
|
||||||
}
|
}
|
||||||
if(len>maxLen) {
|
if(len>maxLen) {
|
||||||
maxLen = len;
|
maxLen = len;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
uenum_reset(availableLocales, status);
|
uenum_reset(availableLocales, status);
|
||||||
/* save off parent info */
|
/* save off parent info */
|
||||||
if(uloc_getParent(acceptList[i], tmp, sizeof(tmp)/sizeof(tmp[0]), status)!=0) {
|
if(uloc_getParent(acceptList[i], tmp, sizeof(tmp)/sizeof(tmp[0]), status)!=0) {
|
||||||
fallbackList[i] = uprv_strdup(tmp);
|
fallbackList[i] = uprv_strdup(tmp);
|
||||||
|
@ -2456,7 +2460,7 @@ uloc_acceptLanguage(char *result, int32_t resultAvailable,
|
||||||
#endif
|
#endif
|
||||||
len = (int32_t)uprv_strlen(l);
|
len = (int32_t)uprv_strlen(l);
|
||||||
if(!uprv_strcmp(fallbackList[i], l)) {
|
if(!uprv_strcmp(fallbackList[i], l)) {
|
||||||
if(outResult) {
|
if(outResult) {
|
||||||
*outResult = ULOC_ACCEPT_FALLBACK;
|
*outResult = ULOC_ACCEPT_FALLBACK;
|
||||||
}
|
}
|
||||||
#if defined(ULOC_DEBUG)
|
#if defined(ULOC_DEBUG)
|
||||||
|
@ -2472,7 +2476,7 @@ uloc_acceptLanguage(char *result, int32_t resultAvailable,
|
||||||
return u_terminateChars(result, resultAvailable, len, status);
|
return u_terminateChars(result, resultAvailable, len, status);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
uenum_reset(availableLocales, status);
|
uenum_reset(availableLocales, status);
|
||||||
|
|
||||||
if(uloc_getParent(fallbackList[i], tmp, sizeof(tmp)/sizeof(tmp[0]), status)!=0) {
|
if(uloc_getParent(fallbackList[i], tmp, sizeof(tmp)/sizeof(tmp[0]), status)!=0) {
|
||||||
uprv_free(fallbackList[i]);
|
uprv_free(fallbackList[i]);
|
||||||
|
@ -2483,7 +2487,7 @@ uloc_acceptLanguage(char *result, int32_t resultAvailable,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(outResult) {
|
if(outResult) {
|
||||||
*outResult = ULOC_ACCEPT_FAILED;
|
*outResult = ULOC_ACCEPT_FAILED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,7 +63,7 @@
|
||||||
* This value will change in the subsequent releases of ICU
|
* This value will change in the subsequent releases of ICU
|
||||||
* @stable ICU 2.6
|
* @stable ICU 2.6
|
||||||
*/
|
*/
|
||||||
#define U_ICU_VERSION_MINOR_NUM 1
|
#define U_ICU_VERSION_MINOR_NUM 2
|
||||||
|
|
||||||
/** The current ICU patchlevel version as an integer.
|
/** The current ICU patchlevel version as an integer.
|
||||||
* This value will change in the subsequent releases of ICU
|
* This value will change in the subsequent releases of ICU
|
||||||
|
@ -118,7 +118,7 @@
|
||||||
* This value will change in the subsequent releases of ICU
|
* This value will change in the subsequent releases of ICU
|
||||||
* @stable ICU 2.4
|
* @stable ICU 2.4
|
||||||
*/
|
*/
|
||||||
#define U_ICU_VERSION "56.1"
|
#define U_ICU_VERSION "56.2"
|
||||||
|
|
||||||
/** The current ICU library major/minor version as a string without dots, for library name suffixes.
|
/** The current ICU library major/minor version as a string without dots, for library name suffixes.
|
||||||
* This value will change in the subsequent releases of ICU
|
* This value will change in the subsequent releases of ICU
|
||||||
|
@ -130,7 +130,7 @@
|
||||||
/** Data version in ICU4C.
|
/** Data version in ICU4C.
|
||||||
* @internal ICU 4.4 Internal Use Only
|
* @internal ICU 4.4 Internal Use Only
|
||||||
**/
|
**/
|
||||||
#define U_ICU_DATA_VERSION "56.1"
|
#define U_ICU_DATA_VERSION "56.2"
|
||||||
#endif /* U_HIDE_INTERNAL_API */
|
#endif /* U_HIDE_INTERNAL_API */
|
||||||
|
|
||||||
/*===========================================================================
|
/*===========================================================================
|
||||||
|
|
|
@ -1596,6 +1596,7 @@ ar{
|
||||||
"تيشو",
|
"تيشو",
|
||||||
"شووا",
|
"شووا",
|
||||||
"هيسي",
|
"هيسي",
|
||||||
|
"ريوا",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -993,6 +993,7 @@ bs_Cyrl{
|
||||||
"Таишо",
|
"Таишо",
|
||||||
"Шова",
|
"Шова",
|
||||||
"Хаисеи",
|
"Хаисеи",
|
||||||
|
"Реива",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1186,6 +1186,7 @@ de{
|
||||||
"Taishō",
|
"Taishō",
|
||||||
"Shōwa",
|
"Shōwa",
|
||||||
"Heisei",
|
"Heisei",
|
||||||
|
"Reiwa",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1385,6 +1385,7 @@ he{
|
||||||
"Taishō",
|
"Taishō",
|
||||||
"Shōwa",
|
"Shōwa",
|
||||||
"Heisei",
|
"Heisei",
|
||||||
|
"Reiwa",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1185,6 +1185,7 @@ hi{
|
||||||
"ताईशो",
|
"ताईशो",
|
||||||
"शोवा",
|
"शोवा",
|
||||||
"हेईसेई",
|
"हेईसेई",
|
||||||
|
"रेइवा",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1532,6 +1532,7 @@ hr{
|
||||||
"Taishō",
|
"Taishō",
|
||||||
"Shōwa",
|
"Shōwa",
|
||||||
"Heisei",
|
"Heisei",
|
||||||
|
"Reiwa",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1907,6 +1907,7 @@ id{
|
||||||
"Taishō",
|
"Taishō",
|
||||||
"Shōwa",
|
"Shōwa",
|
||||||
"Heisei",
|
"Heisei",
|
||||||
|
"Reiwa",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2381,6 +2381,7 @@ ja{
|
||||||
"大正",
|
"大正",
|
||||||
"昭和",
|
"昭和",
|
||||||
"平成",
|
"平成",
|
||||||
|
"令和",
|
||||||
}
|
}
|
||||||
narrow{
|
narrow{
|
||||||
"大化",
|
"大化",
|
||||||
|
@ -2619,6 +2620,7 @@ ja{
|
||||||
"T",
|
"T",
|
||||||
"S",
|
"S",
|
||||||
"H",
|
"H",
|
||||||
|
"R",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1846,6 +1846,7 @@ ko{
|
||||||
"다이쇼",
|
"다이쇼",
|
||||||
"쇼와",
|
"쇼와",
|
||||||
"헤이세이",
|
"헤이세이",
|
||||||
|
"레이와",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1817,6 +1817,7 @@ lo{
|
||||||
"ໄຕໂຊ",
|
"ໄຕໂຊ",
|
||||||
"ໂຊວາ",
|
"ໂຊວາ",
|
||||||
"ຮີຊີ",
|
"ຮີຊີ",
|
||||||
|
"Reiwa",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2388,6 +2388,7 @@ lt{
|
||||||
"Taišo",
|
"Taišo",
|
||||||
"Šova",
|
"Šova",
|
||||||
"Heisei",
|
"Heisei",
|
||||||
|
"Reiwa",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1999,6 +1999,7 @@ nb{
|
||||||
"T",
|
"T",
|
||||||
"S",
|
"S",
|
||||||
"H",
|
"H",
|
||||||
|
"R",
|
||||||
}
|
}
|
||||||
wide{
|
wide{
|
||||||
"Taika (645–650)",
|
"Taika (645–650)",
|
||||||
|
@ -2237,6 +2238,7 @@ nb{
|
||||||
"Taishō",
|
"Taishō",
|
||||||
"Shōwa",
|
"Shōwa",
|
||||||
"Heisei",
|
"Heisei",
|
||||||
|
"Reiwa",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2181,6 +2181,7 @@ nl{
|
||||||
"Taishō",
|
"Taishō",
|
||||||
"Shōwa",
|
"Shōwa",
|
||||||
"Heisei",
|
"Heisei",
|
||||||
|
"Reiwa",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1879,6 +1879,7 @@ root{
|
||||||
"Taishō",
|
"Taishō",
|
||||||
"Shōwa",
|
"Shōwa",
|
||||||
"Heisei",
|
"Heisei",
|
||||||
|
"Reiwa",
|
||||||
}
|
}
|
||||||
narrow{
|
narrow{
|
||||||
"Taika (645–650)",
|
"Taika (645–650)",
|
||||||
|
@ -2117,6 +2118,7 @@ root{
|
||||||
"T",
|
"T",
|
||||||
"S",
|
"S",
|
||||||
"H",
|
"H",
|
||||||
|
"R",
|
||||||
}
|
}
|
||||||
wide:alias{"/LOCALE/calendar/japanese/eras/abbreviated"}
|
wide:alias{"/LOCALE/calendar/japanese/eras/abbreviated"}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1648,6 +1648,7 @@ ru{
|
||||||
"Эпоха Тайсьо",
|
"Эпоха Тайсьо",
|
||||||
"Сьова",
|
"Сьова",
|
||||||
"Эпоха Хэйсэй",
|
"Эпоха Хэйсэй",
|
||||||
|
"Рэйва",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1169,6 +1169,7 @@ sr{
|
||||||
"Таишо",
|
"Таишо",
|
||||||
"Шова",
|
"Шова",
|
||||||
"Хаисеи",
|
"Хаисеи",
|
||||||
|
"Реива",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1170,6 +1170,7 @@ sr_Latn{
|
||||||
"Taišo",
|
"Taišo",
|
||||||
"Šova",
|
"Šova",
|
||||||
"Haisei",
|
"Haisei",
|
||||||
|
"Reiva",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1490,6 +1490,7 @@ sv{
|
||||||
"Taishō",
|
"Taishō",
|
||||||
"Shōwa",
|
"Shōwa",
|
||||||
"Heisei",
|
"Heisei",
|
||||||
|
"Reiwa",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2262,6 +2262,7 @@ th{
|
||||||
"ทะอิโช",
|
"ทะอิโช",
|
||||||
"โชวะ",
|
"โชวะ",
|
||||||
"เฮเซ",
|
"เฮเซ",
|
||||||
|
"เรวะ",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2063,6 +2063,7 @@ zh{
|
||||||
"大正",
|
"大正",
|
||||||
"昭和",
|
"昭和",
|
||||||
"平成",
|
"平成",
|
||||||
|
"令和",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2343,6 +2343,7 @@ zh_Hant{
|
||||||
"大正",
|
"大正",
|
||||||
"昭和",
|
"昭和",
|
||||||
"平成",
|
"平成",
|
||||||
|
"令和",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,6 @@
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
|
|
||||||
icuver:table(nofallback){
|
icuver:table(nofallback){
|
||||||
DataVersion { "56.1.0.0" }
|
DataVersion { "56.2.0.0" }
|
||||||
ICUVersion { "56.1.0.0" }
|
ICUVersion { "56.2.0.0" }
|
||||||
}
|
}
|
||||||
|
|
|
@ -813,7 +813,7 @@ metaZones:table(nofallback){
|
||||||
{
|
{
|
||||||
"Europe_Western",
|
"Europe_Western",
|
||||||
"1985-12-31 23:00",
|
"1985-12-31 23:00",
|
||||||
"9999-12-31 23:59",
|
"2018-10-28 02:00",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"Africa:Ceuta"{
|
"Africa:Ceuta"{
|
||||||
|
@ -862,7 +862,7 @@ metaZones:table(nofallback){
|
||||||
{
|
{
|
||||||
"Europe_Western",
|
"Europe_Western",
|
||||||
"1976-04-14 01:00",
|
"1976-04-14 01:00",
|
||||||
"9999-12-31 23:59",
|
"2018-10-28 02:00",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"Africa:Freetown"{
|
"Africa:Freetown"{
|
||||||
|
@ -1035,6 +1035,11 @@ metaZones:table(nofallback){
|
||||||
{
|
{
|
||||||
"Africa_Western",
|
"Africa_Western",
|
||||||
"2018-01-01 01:00",
|
"2018-01-01 01:00",
|
||||||
|
"2019-01-01 01:00",
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"GMT",
|
||||||
|
"2019-01-01 01:00",
|
||||||
"9999-12-31 23:59",
|
"9999-12-31 23:59",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2076,6 +2081,16 @@ metaZones:table(nofallback){
|
||||||
{
|
{
|
||||||
"Alaska",
|
"Alaska",
|
||||||
"2015-11-01 10:00",
|
"2015-11-01 10:00",
|
||||||
|
"2018-11-04 10:00",
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"America_Pacific",
|
||||||
|
"2018-11-04 10:00",
|
||||||
|
"2019-01-20 10:00",
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"Alaska",
|
||||||
|
"2019-01-20 10:00",
|
||||||
"9999-12-31 23:59",
|
"9999-12-31 23:59",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2559,7 +2574,7 @@ metaZones:table(nofallback){
|
||||||
{
|
{
|
||||||
"Casey",
|
"Casey",
|
||||||
"2016-10-21 16:00",
|
"2016-10-21 16:00",
|
||||||
"2016-03-10 17:00",
|
"2018-03-10 17:00",
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
"Australia_Western",
|
"Australia_Western",
|
||||||
|
@ -3132,11 +3147,11 @@ metaZones:table(nofallback){
|
||||||
{
|
{
|
||||||
"Pyongyang",
|
"Pyongyang",
|
||||||
"2015-08-14 15:00",
|
"2015-08-14 15:00",
|
||||||
"2018-05-05 08:30",
|
"2018-05-04 15:00",
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
"Korea",
|
"Korea",
|
||||||
"2018-05-05 08:30",
|
"2018-05-04 15:00",
|
||||||
"9999-12-31 23:59",
|
"9999-12-31 23:59",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3152,6 +3167,13 @@ metaZones:table(nofallback){
|
||||||
"9999-12-31 23:59",
|
"9999-12-31 23:59",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
"Asia:Qostanay"{
|
||||||
|
{
|
||||||
|
"Kazakhstan_Eastern",
|
||||||
|
"2004-10-30 21:00",
|
||||||
|
"9999-12-31 23:59",
|
||||||
|
}
|
||||||
|
}
|
||||||
"Asia:Qyzylorda"{
|
"Asia:Qyzylorda"{
|
||||||
{
|
{
|
||||||
"Kizilorda",
|
"Kizilorda",
|
||||||
|
@ -3166,6 +3188,11 @@ metaZones:table(nofallback){
|
||||||
{
|
{
|
||||||
"Kazakhstan_Eastern",
|
"Kazakhstan_Eastern",
|
||||||
"2004-10-30 21:00",
|
"2004-10-30 21:00",
|
||||||
|
"2018-12-20 18:00",
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"Kazakhstan_Western",
|
||||||
|
"2018-12-20 18:00",
|
||||||
"9999-12-31 23:59",
|
"9999-12-31 23:59",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3992,6 +4019,11 @@ metaZones:table(nofallback){
|
||||||
{
|
{
|
||||||
"Moscow",
|
"Moscow",
|
||||||
"1992-03-28 22:00",
|
"1992-03-28 22:00",
|
||||||
|
"2018-10-27 23:00",
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"Volgograd",
|
||||||
|
"2018-10-27 23:00",
|
||||||
"9999-12-31 23:59",
|
"9999-12-31 23:59",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4211,11 +4243,11 @@ metaZones:table(nofallback){
|
||||||
{
|
{
|
||||||
"Kwajalein",
|
"Kwajalein",
|
||||||
"1970-01-01 00:00",
|
"1970-01-01 00:00",
|
||||||
"1993-08-20 12:00",
|
"1993-08-21 12:00",
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
"Marshall_Islands",
|
"Marshall_Islands",
|
||||||
"1993-08-20 12:00",
|
"1993-08-21 12:00",
|
||||||
"9999-12-31 23:59",
|
"9999-12-31 23:59",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -416,6 +416,7 @@ timezoneTypes:table(nofallback){
|
||||||
"Asia:Pontianak"{"idpnk"}
|
"Asia:Pontianak"{"idpnk"}
|
||||||
"Asia:Pyongyang"{"kpfnj"}
|
"Asia:Pyongyang"{"kpfnj"}
|
||||||
"Asia:Qatar"{"qadoh"}
|
"Asia:Qatar"{"qadoh"}
|
||||||
|
"Asia:Qostanay"{"kzksn"}
|
||||||
"Asia:Qyzylorda"{"kzkzo"}
|
"Asia:Qyzylorda"{"kzkzo"}
|
||||||
"Asia:Rangoon"{"mmrgn"}
|
"Asia:Rangoon"{"mmrgn"}
|
||||||
"Asia:Riyadh"{"saruh"}
|
"Asia:Riyadh"{"saruh"}
|
||||||
|
|
|
@ -17,8 +17,8 @@ windowsZones:table(nofallback){
|
||||||
"Alaskan Standard Time"{
|
"Alaskan Standard Time"{
|
||||||
001{"America/Anchorage"}
|
001{"America/Anchorage"}
|
||||||
US{
|
US{
|
||||||
"America/Anchorage America/Juneau America/Metlakatla America/Nome Ame"
|
"America/Anchorage America/Juneau America/Nome America/Sitka America/"
|
||||||
"rica/Sitka America/Yakutat"
|
"Yakutat"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"Aleutian Standard Time"{
|
"Aleutian Standard Time"{
|
||||||
|
@ -130,7 +130,7 @@ windowsZones:table(nofallback){
|
||||||
CN{"Asia/Urumqi"}
|
CN{"Asia/Urumqi"}
|
||||||
IO{"Indian/Chagos"}
|
IO{"Indian/Chagos"}
|
||||||
KG{"Asia/Bishkek"}
|
KG{"Asia/Bishkek"}
|
||||||
KZ{"Asia/Almaty Asia/Qyzylorda"}
|
KZ{"Asia/Almaty Asia/Qostanay"}
|
||||||
ZZ{"Etc/GMT-6"}
|
ZZ{"Etc/GMT-6"}
|
||||||
}
|
}
|
||||||
"Central Brazilian Standard Time"{
|
"Central Brazilian Standard Time"{
|
||||||
|
@ -287,7 +287,7 @@ windowsZones:table(nofallback){
|
||||||
}
|
}
|
||||||
"GTB Standard Time"{
|
"GTB Standard Time"{
|
||||||
001{"Europe/Bucharest"}
|
001{"Europe/Bucharest"}
|
||||||
CY{"Asia/Nicosia"}
|
CY{"Asia/Famagusta Asia/Nicosia"}
|
||||||
GR{"Europe/Athens"}
|
GR{"Europe/Athens"}
|
||||||
RO{"Europe/Bucharest"}
|
RO{"Europe/Bucharest"}
|
||||||
}
|
}
|
||||||
|
@ -468,7 +468,7 @@ windowsZones:table(nofallback){
|
||||||
"Pacific Standard Time"{
|
"Pacific Standard Time"{
|
||||||
001{"America/Los_Angeles"}
|
001{"America/Los_Angeles"}
|
||||||
CA{"America/Vancouver America/Dawson America/Whitehorse"}
|
CA{"America/Vancouver America/Dawson America/Whitehorse"}
|
||||||
US{"America/Los_Angeles"}
|
US{"America/Los_Angeles America/Metlakatla"}
|
||||||
ZZ{"PST8PDT"}
|
ZZ{"PST8PDT"}
|
||||||
}
|
}
|
||||||
"Pakistan Standard Time"{
|
"Pakistan Standard Time"{
|
||||||
|
@ -580,6 +580,10 @@ windowsZones:table(nofallback){
|
||||||
001{"Pacific/Apia"}
|
001{"Pacific/Apia"}
|
||||||
WS{"Pacific/Apia"}
|
WS{"Pacific/Apia"}
|
||||||
}
|
}
|
||||||
|
"Sao Tome Standard Time"{
|
||||||
|
001{"Africa/Sao_Tome"}
|
||||||
|
ST{"Africa/Sao_Tome"}
|
||||||
|
}
|
||||||
"Saratov Standard Time"{
|
"Saratov Standard Time"{
|
||||||
001{"Europe/Saratov"}
|
001{"Europe/Saratov"}
|
||||||
RU{"Europe/Saratov"}
|
RU{"Europe/Saratov"}
|
||||||
|
@ -654,7 +658,6 @@ windowsZones:table(nofallback){
|
||||||
}
|
}
|
||||||
"Turkey Standard Time"{
|
"Turkey Standard Time"{
|
||||||
001{"Europe/Istanbul"}
|
001{"Europe/Istanbul"}
|
||||||
CY{"Asia/Famagusta"}
|
|
||||||
TR{"Europe/Istanbul"}
|
TR{"Europe/Istanbul"}
|
||||||
}
|
}
|
||||||
"Turks And Caicos Standard Time"{
|
"Turks And Caicos Standard Time"{
|
||||||
|
@ -746,7 +749,6 @@ windowsZones:table(nofallback){
|
||||||
GQ{"Africa/Malabo"}
|
GQ{"Africa/Malabo"}
|
||||||
NE{"Africa/Niamey"}
|
NE{"Africa/Niamey"}
|
||||||
NG{"Africa/Lagos"}
|
NG{"Africa/Lagos"}
|
||||||
ST{"Africa/Sao_Tome"}
|
|
||||||
TD{"Africa/Ndjamena"}
|
TD{"Africa/Ndjamena"}
|
||||||
TN{"Africa/Tunis"}
|
TN{"Africa/Tunis"}
|
||||||
ZZ{"Etc/GMT-1"}
|
ZZ{"Etc/GMT-1"}
|
||||||
|
@ -777,7 +779,7 @@ windowsZones:table(nofallback){
|
||||||
"West Asia Standard Time"{
|
"West Asia Standard Time"{
|
||||||
001{"Asia/Tashkent"}
|
001{"Asia/Tashkent"}
|
||||||
AQ{"Antarctica/Mawson"}
|
AQ{"Antarctica/Mawson"}
|
||||||
KZ{"Asia/Oral Asia/Aqtau Asia/Aqtobe Asia/Atyrau"}
|
KZ{"Asia/Oral Asia/Aqtau Asia/Aqtobe Asia/Atyrau Asia/Qyzylorda"}
|
||||||
MV{"Indian/Maldives"}
|
MV{"Indian/Maldives"}
|
||||||
TF{"Indian/Kerguelen"}
|
TF{"Indian/Kerguelen"}
|
||||||
TJ{"Asia/Dushanbe"}
|
TJ{"Asia/Dushanbe"}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -273,7 +273,8 @@ static const struct {
|
||||||
{ 1868, 9, 8 }, // Meiji 232
|
{ 1868, 9, 8 }, // Meiji 232
|
||||||
{ 1912, 7, 30 }, // Taisho 233
|
{ 1912, 7, 30 }, // Taisho 233
|
||||||
{ 1926, 12, 25 }, // Showa 234
|
{ 1926, 12, 25 }, // Showa 234
|
||||||
{ 1989, 1, 8 } // Heisei 235
|
{ 1989, 1, 8 }, // Heisei 235
|
||||||
|
{ 2019, 5, 1 } // Reiwa 236
|
||||||
};
|
};
|
||||||
|
|
||||||
#define kEraCount (sizeof(kEraInfo)/sizeof(kEraInfo[0]))
|
#define kEraCount (sizeof(kEraInfo)/sizeof(kEraInfo[0]))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user