diff options
author | Alexander Barkov <bar@mysql.com> | 2009-10-05 20:06:04 +0500 |
---|---|---|
committer | Alexander Barkov <bar@mysql.com> | 2009-10-05 20:06:04 +0500 |
commit | 636ea6a1c464b247a3665bebac7bf28495ac087a (patch) | |
tree | 7ea09d9be115743b02431c299c6f2a442eeb8009 | |
parent | 80f6940f07978bff7de4433a9bc3626b974698f0 (diff) | |
download | mariadb-git-636ea6a1c464b247a3665bebac7bf28495ac087a.tar.gz |
WL#4584 Internationalized number format
@ mysql-test/r/func_str.result
Adding tests
@ mysql-test/t/func_str.test
Adding tests
@ mysql-test/t/variables.test
Fixing error number
@ sql/item_create.cc
Allowing 2 and 3 arguments to format()
@ sql/item_strfunc.cc
Adding new formatting code.
@ sql/item_strfunc.h
Adding new contructors and "locale" member
@ sql/mysql_priv.h
Adding number formatting members into MY_LOCALE
@ sql/sql_locale.cc
Adding number formatting data into locale constants
@ sql/set_var.cc
Using new error message
@ sql/share/errmgs.txt
Adding new error message
-rw-r--r-- | mysql-test/r/func_str.result | 130 | ||||
-rw-r--r-- | mysql-test/t/func_str.test | 42 | ||||
-rw-r--r-- | mysql-test/t/variables.test | 6 | ||||
-rw-r--r-- | sql/item_create.cc | 33 | ||||
-rw-r--r-- | sql/item_strfunc.cc | 94 | ||||
-rw-r--r-- | sql/item_strfunc.h | 7 | ||||
-rw-r--r-- | sql/mysql_priv.h | 12 | ||||
-rw-r--r-- | sql/set_var.cc | 5 | ||||
-rw-r--r-- | sql/share/errmsg.txt | 2 | ||||
-rw-r--r-- | sql/sql_locale.cc | 547 |
10 files changed, 727 insertions, 151 deletions
diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index c87879e13b5..39d11aa3e2c 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -2558,3 +2558,133 @@ id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 Using join buffer 2 DERIVED t1 ALL NULL NULL NULL NULL 2 drop table t1; +Start of 5.4 tests +SELECT format(12345678901234567890.123, 3); +format(12345678901234567890.123, 3) +12,345,678,901,234,567,890.123 +SELECT format(12345678901234567890.123, 3, NULL); +format(12345678901234567890.123, 3, NULL) +12,345,678,901,234,567,890.123 +Warnings: +Warning 1647 Unknown locale: 'NULL' +SELECT format(12345678901234567890.123, 3, 'ar_AE'); +format(12345678901234567890.123, 3, 'ar_AE') +12,345,678,901,234,567,890.123 +SELECT format(12345678901234567890.123, 3, 'ar_SA'); +format(12345678901234567890.123, 3, 'ar_SA') +12345678901234567890.123 +SELECT format(12345678901234567890.123, 3, 'be_BY'); +format(12345678901234567890.123, 3, 'be_BY') +12.345.678.901.234.567.890,123 +SELECT format(12345678901234567890.123, 3, 'de_DE'); +format(12345678901234567890.123, 3, 'de_DE') +12.345.678.901.234.567.890,123 +SELECT format(12345678901234567890.123, 3, 'en_IN'); +format(12345678901234567890.123, 3, 'en_IN') +1,23,45,67,89,01,23,45,67,890.123 +SELECT format(12345678901234567890.123, 3, 'en_US'); +format(12345678901234567890.123, 3, 'en_US') +12,345,678,901,234,567,890.123 +SELECT format(12345678901234567890.123, 3, 'it_CH'); +format(12345678901234567890.123, 3, 'it_CH') +12'345'678'901'234'567'890,123 +SELECT format(12345678901234567890.123, 3, 'ru_RU'); +format(12345678901234567890.123, 3, 'ru_RU') +12 345 678 901 234 567 890,123 +SELECT format(12345678901234567890.123, 3, 'ta_IN'); +format(12345678901234567890.123, 3, 'ta_IN') +1,23,45,67,89,01,23,45,67,890.123 +CREATE TABLE t1 (fmt CHAR(5) NOT NULL); +INSERT INTO t1 VALUES ('ar_AE'); +INSERT INTO t1 VALUES ('ar_SA'); +INSERT INTO t1 VALUES ('be_BY'); +INSERT INTO t1 VALUES ('de_DE'); +INSERT INTO t1 VALUES ('en_IN'); +INSERT INTO t1 VALUES ('en_US'); +INSERT INTO t1 VALUES ('it_CH'); +INSERT INTO t1 VALUES ('ru_RU'); +INSERT INTO t1 VALUES ('ta_IN'); +SELECT fmt, format(12345678901234567890.123, 3, fmt) FROM t1 ORDER BY fmt; +fmt format(12345678901234567890.123, 3, fmt) +ar_AE 12,345,678,901,234,567,890.123 +ar_SA 12345678901234567890.123 +be_BY 12.345.678.901.234.567.890,123 +de_DE 12.345.678.901.234.567.890,123 +en_IN 1,23,45,67,89,01,23,45,67,890.123 +en_US 12,345,678,901,234,567,890.123 +it_CH 12'345'678'901'234'567'890,123 +ru_RU 12 345 678 901 234 567 890,123 +ta_IN 1,23,45,67,89,01,23,45,67,890.123 +SELECT fmt, format(12345678901234567890.123, 0, fmt) FROM t1 ORDER BY fmt; +fmt format(12345678901234567890.123, 0, fmt) +ar_AE 12,345,678,901,234,567,890 +ar_SA 12345678901234567890 +be_BY 12.345.678.901.234.567.890 +de_DE 12.345.678.901.234.567.890 +en_IN 1,23,45,67,89,01,23,45,67,890 +en_US 12,345,678,901,234,567,890 +it_CH 12'345'678'901'234'567'890 +ru_RU 12 345 678 901 234 567 890 +ta_IN 1,23,45,67,89,01,23,45,67,890 +SELECT fmt, format(12345678901234567890, 3, fmt) FROM t1 ORDER BY fmt; +fmt format(12345678901234567890, 3, fmt) +ar_AE 12,345,678,901,234,567,890.000 +ar_SA 12345678901234567890.000 +be_BY 12.345.678.901.234.567.890,000 +de_DE 12.345.678.901.234.567.890,000 +en_IN 1,23,45,67,89,01,23,45,67,890.000 +en_US 12,345,678,901,234,567,890.000 +it_CH 12'345'678'901'234'567'890,000 +ru_RU 12 345 678 901 234 567 890,000 +ta_IN 1,23,45,67,89,01,23,45,67,890.000 +SELECT fmt, format(-12345678901234567890, 3, fmt) FROM t1 ORDER BY fmt; +fmt format(-12345678901234567890, 3, fmt) +ar_AE -12,345,678,901,234,567,890.000 +ar_SA -12345678901234567890.000 +be_BY -12.345.678.901.234.567.890,000 +de_DE -12.345.678.901.234.567.890,000 +en_IN -1,23,45,67,89,01,23,45,67,890.000 +en_US -12,345,678,901,234,567,890.000 +it_CH -12'345'678'901'234'567'890,000 +ru_RU -12 345 678 901 234 567 890,000 +ta_IN -1,23,45,67,89,01,23,45,67,890.000 +SELECT fmt, format(-02345678901234567890, 3, fmt) FROM t1 ORDER BY fmt; +fmt format(-02345678901234567890, 3, fmt) +ar_AE -2,345,678,901,234,567,890.000 +ar_SA -2345678901234567890.000 +be_BY -2.345.678.901.234.567.890,000 +de_DE -2.345.678.901.234.567.890,000 +en_IN -23,45,67,89,01,23,45,67,890.000 +en_US -2,345,678,901,234,567,890.000 +it_CH -2'345'678'901'234'567'890,000 +ru_RU -2 345 678 901 234 567 890,000 +ta_IN -23,45,67,89,01,23,45,67,890.000 +SELECT fmt, format(-00345678901234567890, 3, fmt) FROM t1 ORDER BY fmt; +fmt format(-00345678901234567890, 3, fmt) +ar_AE -345,678,901,234,567,890.000 +ar_SA -345678901234567890.000 +be_BY -345.678.901.234.567.890,000 +de_DE -345.678.901.234.567.890,000 +en_IN -3,45,67,89,01,23,45,67,890.000 +en_US -345,678,901,234,567,890.000 +it_CH -345'678'901'234'567'890,000 +ru_RU -345 678 901 234 567 890,000 +ta_IN -3,45,67,89,01,23,45,67,890.000 +SELECT fmt, format(-00045678901234567890, 3, fmt) FROM t1 ORDER BY fmt; +fmt format(-00045678901234567890, 3, fmt) +ar_AE -45,678,901,234,567,890.000 +ar_SA -45678901234567890.000 +be_BY -45.678.901.234.567.890,000 +de_DE -45.678.901.234.567.890,000 +en_IN -45,67,89,01,23,45,67,890.000 +en_US -45,678,901,234,567,890.000 +it_CH -45'678'901'234'567'890,000 +ru_RU -45 678 901 234 567 890,000 +ta_IN -45,67,89,01,23,45,67,890.000 +DROP TABLE t1; +SELECT format(123, 1, 'Non-existent-locale'); +format(123, 1, 'Non-existent-locale') +123.0 +Warnings: +Warning 1647 Unknown locale: 'Non-existent-locale' +End of 5.4 tests diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test index 66b9eabd385..032c9ade643 100644 --- a/mysql-test/t/func_str.test +++ b/mysql-test/t/func_str.test @@ -1318,3 +1318,45 @@ insert into t1 values (-1),(null); explain select 1 as a from t1,(select decode(f1,f1) as b from t1) a; explain select 1 as a from t1,(select encode(f1,f1) as b from t1) a; drop table t1; + + + +--echo Start of 5.4 tests +# +# WL#4584 Internationalized number format +# +SELECT format(12345678901234567890.123, 3); +SELECT format(12345678901234567890.123, 3, NULL); +SELECT format(12345678901234567890.123, 3, 'ar_AE'); +SELECT format(12345678901234567890.123, 3, 'ar_SA'); +SELECT format(12345678901234567890.123, 3, 'be_BY'); +SELECT format(12345678901234567890.123, 3, 'de_DE'); +SELECT format(12345678901234567890.123, 3, 'en_IN'); +SELECT format(12345678901234567890.123, 3, 'en_US'); +SELECT format(12345678901234567890.123, 3, 'it_CH'); +SELECT format(12345678901234567890.123, 3, 'ru_RU'); +SELECT format(12345678901234567890.123, 3, 'ta_IN'); + +CREATE TABLE t1 (fmt CHAR(5) NOT NULL); +INSERT INTO t1 VALUES ('ar_AE'); +INSERT INTO t1 VALUES ('ar_SA'); +INSERT INTO t1 VALUES ('be_BY'); +INSERT INTO t1 VALUES ('de_DE'); +INSERT INTO t1 VALUES ('en_IN'); +INSERT INTO t1 VALUES ('en_US'); +INSERT INTO t1 VALUES ('it_CH'); +INSERT INTO t1 VALUES ('ru_RU'); +INSERT INTO t1 VALUES ('ta_IN'); +SELECT fmt, format(12345678901234567890.123, 3, fmt) FROM t1 ORDER BY fmt; +SELECT fmt, format(12345678901234567890.123, 0, fmt) FROM t1 ORDER BY fmt; +SELECT fmt, format(12345678901234567890, 3, fmt) FROM t1 ORDER BY fmt; +SELECT fmt, format(-12345678901234567890, 3, fmt) FROM t1 ORDER BY fmt; +SELECT fmt, format(-02345678901234567890, 3, fmt) FROM t1 ORDER BY fmt; +SELECT fmt, format(-00345678901234567890, 3, fmt) FROM t1 ORDER BY fmt; +SELECT fmt, format(-00045678901234567890, 3, fmt) FROM t1 ORDER BY fmt; +DROP TABLE t1; + +SELECT format(123, 1, 'Non-existent-locale'); + +--echo End of 5.4 tests + diff --git a/mysql-test/t/variables.test b/mysql-test/t/variables.test index 1580d7f36d7..a98163e026c 100644 --- a/mysql-test/t/variables.test +++ b/mysql-test/t/variables.test @@ -559,7 +559,7 @@ select @@lc_time_names; --echo *** LC_TIME_NAMES: testing with string expressions set lc_time_names=concat('de','_','DE'); select @@lc_time_names; ---error ER_UNKNOWN_ERROR +--error ER_UNKNOWN_LOCALE set lc_time_names=concat('de','+','DE'); select @@lc_time_names; --echo LC_TIME_NAMES: testing with numeric expressions @@ -572,14 +572,14 @@ set lc_time_names=en_US; --echo LC_TIME_NAMES: testing NULL and a negative number: --error ER_WRONG_VALUE_FOR_VAR set lc_time_names=NULL; ---error ER_UNKNOWN_ERROR +--error ER_UNKNOWN_LOCALE set lc_time_names=-1; select @@lc_time_names; --echo LC_TIME_NAMES: testing locale with the last ID: set lc_time_names=108; select @@lc_time_names; --echo LC_TIME_NAMES: testing a number beyond the valid ID range: ---error ER_UNKNOWN_ERROR +--error ER_UNKNOWN_LOCALE set lc_time_names=109; select @@lc_time_names; --echo LC_TIME_NAMES: testing that 0 is en_US: diff --git a/sql/item_create.cc b/sql/item_create.cc index 7991d9adf82..2f80d16b928 100644 --- a/sql/item_create.cc +++ b/sql/item_create.cc @@ -927,10 +927,10 @@ protected: }; -class Create_func_format : public Create_func_arg2 +class Create_func_format : public Create_native_func { public: - virtual Item *create(THD *thd, Item *arg1, Item *arg2); + virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); static Create_func_format s_singleton; @@ -3352,9 +3352,34 @@ Create_func_floor::create(THD *thd, Item *arg1) Create_func_format Create_func_format::s_singleton; Item* -Create_func_format::create(THD *thd, Item *arg1, Item *arg2) +Create_func_format::create_native(THD *thd, LEX_STRING name, + List<Item> *item_list) { - return new (thd->mem_root) Item_func_format(arg1, arg2); + Item *func= NULL; + int arg_count= item_list ? item_list->elements : 0; + + switch (arg_count) { + case 2: + { + Item *param_1= item_list->pop(); + Item *param_2= item_list->pop(); + func= new (thd->mem_root) Item_func_format(param_1, param_2); + break; + } + case 3: + { + Item *param_1= item_list->pop(); + Item *param_2= item_list->pop(); + Item *param_3= item_list->pop(); + func= new (thd->mem_root) Item_func_format(param_1, param_2, param_3); + break; + } + default: + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + break; + } + + return func; } diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index 7a4ffedac10..d4ef55e5609 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -2040,9 +2040,22 @@ String *Item_func_soundex::val_str(String *str) const int FORMAT_MAX_DECIMALS= 30; -Item_func_format::Item_func_format(Item *org, Item *dec) -: Item_str_func(org, dec) + +MY_LOCALE *Item_func_format::get_locale(Item *item) { + DBUG_ASSERT(arg_count == 3); + String tmp, *locale_name= args[2]->val_str(&tmp); + MY_LOCALE *lc; + if (!locale_name || + !(lc= my_locale_by_name(locale_name->c_ptr_safe()))) + { + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + ER_UNKNOWN_LOCALE, + ER(ER_UNKNOWN_LOCALE), + locale_name ? locale_name->c_ptr_safe() : "NULL"); + lc= &my_locale_en_US; + } + return lc; } void Item_func_format::fix_length_and_dec() @@ -2052,6 +2065,10 @@ void Item_func_format::fix_length_and_dec() collation.set(default_charset()); max_length= (char_length + max_sep_count + decimals) * collation.collation->mbmaxlen; + if (arg_count == 3) + locale= args[2]->basic_const_item() ? get_locale(args[2]) : NULL; + else + locale= &my_locale_en_US; /* Two arguments */ } @@ -2063,13 +2080,12 @@ void Item_func_format::fix_length_and_dec() String *Item_func_format::val_str(String *str) { - uint32 length; uint32 str_length; /* Number of decimal digits */ int dec; /* Number of characters used to represent the decimals, including '.' */ uint32 dec_length; - int diff; + MY_LOCALE *lc; DBUG_ASSERT(fixed == 1); dec= (int) args[1]->val_int(); @@ -2079,6 +2095,8 @@ String *Item_func_format::val_str(String *str) return NULL; } + lc= locale ? locale : get_locale(args[2]); + dec= set_zone(dec, 0, FORMAT_MAX_DECIMALS); dec_length= dec ? dec+1 : 0; null_value=0; @@ -2093,8 +2111,6 @@ String *Item_func_format::val_str(String *str) my_decimal_round(E_DEC_FATAL_ERROR, res, dec, false, &rnd_dec); my_decimal2string(E_DEC_FATAL_ERROR, &rnd_dec, 0, 0, 0, str); str_length= str->length(); - if (rnd_dec.sign()) - str_length--; } else { @@ -2107,31 +2123,51 @@ String *Item_func_format::val_str(String *str) if (isnan(nr)) return str; str_length=str->length(); - if (nr < 0) - str_length--; // Don't count sign - } - /* We need this test to handle 'nan' values */ - if (str_length >= dec_length+4) - { - char *tmp,*pos; - length= str->length()+(diff=((int)(str_length- dec_length-1))/3); - str= copy_if_not_alloced(&tmp_str,str,length); - str->length(length); - tmp= (char*) str->ptr()+length - dec_length-1; - for (pos= (char*) str->ptr()+length-1; pos != tmp; pos--) - pos[0]= pos[-diff]; - while (diff) + } + /* We need this test to handle 'nan' and short values */ + if (lc->grouping[0] > 0 && + str_length >= dec_length + 1 + lc->grouping[0]) + { + char buf[DECIMAL_MAX_STR_LENGTH * 2]; /* 2 - in the worst case when grouping=1 */ + int count; + const char *grouping= lc->grouping; + char sign_length= *str->ptr() == '-' ? 1 : 0; + const char *src= str->ptr() + str_length - dec_length - 1; + const char *src_begin= str->ptr() + sign_length; + char *dst= buf + sizeof(buf); + + /* Put the fractional part */ + if (dec) { - *pos= *(pos - diff); - pos--; - *pos= *(pos - diff); - pos--; - *pos= *(pos - diff); - pos--; - pos[0]=','; - pos--; - diff--; + dst-= (dec + 1); + *dst= lc->decimal_point; + memcpy(dst + 1, src + 2, dec); } + + /* Put the integer part with grouping */ + for (count= *grouping; src >= src_begin; count--) + { + /* + When *grouping==0x80 (which means "end of grouping") + count will be initialized to -1 and + we'll never get into this "if" anymore. + */ + if (!count) + { + *--dst= lc->thousand_sep; + if (grouping[1]) + grouping++; + count= *grouping; + } + DBUG_ASSERT(dst > buf); + *--dst= *src--; + } + + if (sign_length) /* Put '-' */ + *--dst= *str->ptr(); + + /* Put the rest of the integer part without grouping */ + str->copy(dst, buf + sizeof(buf) - dst, &my_charset_latin1); } return str; } diff --git a/sql/item_strfunc.h b/sql/item_strfunc.h index 2cdb45100ae..87d8c7bd438 100644 --- a/sql/item_strfunc.h +++ b/sql/item_strfunc.h @@ -498,8 +498,13 @@ public: class Item_func_format :public Item_str_func { String tmp_str; + MY_LOCALE *locale; public: - Item_func_format(Item *org, Item *dec); + Item_func_format(Item *org, Item *dec): Item_str_func(org, dec) {} + Item_func_format(Item *org, Item *dec, Item *lang): + Item_str_func(org, dec, lang) {} + + MY_LOCALE *get_locale(Item *item); String *val_str(String *); void fix_length_and_dec(); const char *func_name() const { return "format"; } diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h index f5e43c5100a..fc0c688610b 100644 --- a/sql/mysql_priv.h +++ b/sql/mysql_priv.h @@ -156,18 +156,26 @@ typedef struct my_locale_st TYPELIB *ab_day_names; uint max_month_name_length; uint max_day_name_length; + uint decimal_point; + uint thousand_sep; + const char *grouping; #ifdef __cplusplus my_locale_st(uint number_par, const char *name_par, const char *descr_par, bool is_ascii_par, TYPELIB *month_names_par, TYPELIB *ab_month_names_par, TYPELIB *day_names_par, TYPELIB *ab_day_names_par, - uint max_month_name_length_par, uint max_day_name_length_par) : + uint max_month_name_length_par, uint max_day_name_length_par, + uint decimal_point_par, uint thousand_sep_par, + const char *grouping_par) : number(number_par), name(name_par), description(descr_par), is_ascii(is_ascii_par), month_names(month_names_par), ab_month_names(ab_month_names_par), day_names(day_names_par), ab_day_names(ab_day_names_par), max_month_name_length(max_month_name_length_par), - max_day_name_length(max_day_name_length_par) + max_day_name_length(max_day_name_length_par), + decimal_point(decimal_point_par), + thousand_sep(thousand_sep_par), + grouping(grouping_par) {} #endif } MY_LOCALE; diff --git a/sql/set_var.cc b/sql/set_var.cc index 2e2bb369af1..def0be4aff4 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -2916,7 +2916,7 @@ bool sys_var_thd_lc_time_names::check(THD *thd, set_var *var) { char buf[20]; int10_to_str((int) var->value->val_int(), buf, -10); - my_printf_error(ER_UNKNOWN_ERROR, "Unknown locale: '%s'", MYF(0), buf); + my_printf_error(ER_UNKNOWN_LOCALE, ER(ER_UNKNOWN_LOCALE), MYF(0), buf); return 1; } } @@ -2932,8 +2932,7 @@ bool sys_var_thd_lc_time_names::check(THD *thd, set_var *var) const char *locale_str= res->c_ptr(); if (!(locale_match= my_locale_by_name(locale_str))) { - my_printf_error(ER_UNKNOWN_ERROR, - "Unknown locale: '%s'", MYF(0), locale_str); + my_printf_error(ER_UNKNOWN_LOCALE, ER(ER_UNKNOWN_LOCALE), MYF(0), locale_str); return 1; } } diff --git a/sql/share/errmsg.txt b/sql/share/errmsg.txt index 49707f09ca5..a98b3af5dd5 100644 --- a/sql/share/errmsg.txt +++ b/sql/share/errmsg.txt @@ -6228,3 +6228,5 @@ WARN_COND_ITEM_TRUNCATED ER_COND_ITEM_TOO_LONG eng "Data too long for condition item '%s'" +ER_UNKNOWN_LOCALE + eng "Unknown locale: '%-.64s'" diff --git a/sql/sql_locale.cc b/sql/sql_locale.cc index 3def9864c29..b59c3f16735 100644 --- a/sql/sql_locale.cc +++ b/sql/sql_locale.cc @@ -51,7 +51,10 @@ MY_LOCALE my_locale_ar_AE &my_locale_typelib_day_names_ar_AE, &my_locale_typelib_ab_day_names_ar_AE, 6, - 8 + 8, + '.', /* decimal point ar_AE */ + ',', /* thousands_sep ar_AE */ + "\x03" /* grouping ar_AE */ ); /***** LOCALE END ar_AE *****/ @@ -83,7 +86,10 @@ MY_LOCALE my_locale_ar_BH &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH, 6, - 8 + 8, + '.', /* decimal point ar_BH */ + ',', /* thousands_sep ar_BH */ + "\x03" /* grouping ar_BH */ ); /***** LOCALE END ar_BH *****/ @@ -115,7 +121,10 @@ MY_LOCALE my_locale_ar_JO &my_locale_typelib_day_names_ar_JO, &my_locale_typelib_ab_day_names_ar_JO, 12, - 8 + 8, + '.', /* decimal point ar_JO */ + ',', /* thousands_sep ar_JO */ + "\x03" /* grouping ar_JO */ ); /***** LOCALE END ar_JO *****/ @@ -147,7 +156,10 @@ MY_LOCALE my_locale_ar_SA &my_locale_typelib_day_names_ar_SA, &my_locale_typelib_ab_day_names_ar_SA, 12, - 8 + 8, + '.', /* decimal point ar_SA */ + '\0', /* thousands_sep ar_SA */ + "\x80" /* grouping ar_SA */ ); /***** LOCALE END ar_SA *****/ @@ -179,7 +191,10 @@ MY_LOCALE my_locale_ar_SY &my_locale_typelib_day_names_ar_SY, &my_locale_typelib_ab_day_names_ar_SY, 12, - 8 + 8, + '.', /* decimal point ar_SY */ + ',', /* thousands_sep ar_SY */ + "\x03" /* grouping ar_SY */ ); /***** LOCALE END ar_SY *****/ @@ -211,7 +226,10 @@ MY_LOCALE my_locale_be_BY &my_locale_typelib_day_names_be_BY, &my_locale_typelib_ab_day_names_be_BY, 10, - 10 + 10, + ',', /* decimal point be_BY */ + '.', /* thousands_sep be_BY */ + "\x03\x03" /* grouping be_BY */ ); /***** LOCALE END be_BY *****/ @@ -243,7 +261,10 @@ MY_LOCALE my_locale_bg_BG &my_locale_typelib_day_names_bg_BG, &my_locale_typelib_ab_day_names_bg_BG, 9, - 10 + 10, + ',', /* decimal point bg_BG */ + '\0', /* thousands_sep bg_BG */ + "\x03\x03" /* grouping bg_BG */ ); /***** LOCALE END bg_BG *****/ @@ -275,7 +296,11 @@ MY_LOCALE my_locale_ca_ES &my_locale_typelib_day_names_ca_ES, &my_locale_typelib_ab_day_names_ca_ES, 8, - 9 + 9, + ',', /* decimal point ca_ES */ + '\0', /* thousands_sep ca_ES */ + "\x80\x80" /* grouping ca_ES */ + ); /***** LOCALE END ca_ES *****/ @@ -307,7 +332,10 @@ MY_LOCALE my_locale_cs_CZ &my_locale_typelib_day_names_cs_CZ, &my_locale_typelib_ab_day_names_cs_CZ, 8, - 7 + 7, + ',', /* decimal point cs_CZ */ + ' ', /* thousands_sep cs_CZ */ + "\x03\x03" /* grouping cs_CZ */ ); /***** LOCALE END cs_CZ *****/ @@ -339,7 +367,10 @@ MY_LOCALE my_locale_da_DK &my_locale_typelib_day_names_da_DK, &my_locale_typelib_ab_day_names_da_DK, 9, - 7 + 7, + ',', /* decimal point da_DK */ + '.', /* thousands_sep da_DK */ + "\x03\x03" /* grouping da_DK */ ); /***** LOCALE END da_DK *****/ @@ -371,7 +402,10 @@ MY_LOCALE my_locale_de_AT &my_locale_typelib_day_names_de_AT, &my_locale_typelib_ab_day_names_de_AT, 9, - 10 + 10, + ',', /* decimal point de_AT */ + '\0', /* thousands_sep de_AT */ + "\x80\x80" /* grouping de_AT */ ); /***** LOCALE END de_AT *****/ @@ -403,7 +437,10 @@ MY_LOCALE my_locale_de_DE &my_locale_typelib_day_names_de_DE, &my_locale_typelib_ab_day_names_de_DE, 9, - 10 + 10, + ',', /* decimal point de_DE */ + '.', /* thousands_sep de_DE */ + "\x03\x03" /* grouping de_DE */ ); /***** LOCALE END de_DE *****/ @@ -435,7 +472,10 @@ MY_LOCALE my_locale_en_US &my_locale_typelib_day_names_en_US, &my_locale_typelib_ab_day_names_en_US, 9, - 9 + 9, + '.', /* decimal point en_US */ + ',', /* thousands_sep en_US */ + "\x03\x03" /* grouping en_US */ ); /***** LOCALE END en_US *****/ @@ -467,7 +507,10 @@ MY_LOCALE my_locale_es_ES &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + ',', /* decimal point es_ES */ + '\0', /* thousands_sep es_ES */ + "\x80\x80" /* grouping es_ES */ ); /***** LOCALE END es_ES *****/ @@ -499,7 +542,10 @@ MY_LOCALE my_locale_et_EE &my_locale_typelib_day_names_et_EE, &my_locale_typelib_ab_day_names_et_EE, 9, - 9 + 9, + ',', /* decimal point et_EE */ + ' ', /* thousands_sep et_EE */ + "\x03\x03" /* grouping et_EE */ ); /***** LOCALE END et_EE *****/ @@ -531,7 +577,10 @@ MY_LOCALE my_locale_eu_ES &my_locale_typelib_day_names_eu_ES, &my_locale_typelib_ab_day_names_eu_ES, 9, - 10 + 10, + ',', /* decimal point eu_ES */ + '\0', /* thousands_sep eu_ES */ + "\x80\x80" /* grouping eu_ES */ ); /***** LOCALE END eu_ES *****/ @@ -563,7 +612,10 @@ MY_LOCALE my_locale_fi_FI &my_locale_typelib_day_names_fi_FI, &my_locale_typelib_ab_day_names_fi_FI, 9, - 11 + 11, + ',', /* decimal point fi_FI */ + ' ', /* thousands_sep fi_FI */ + "\x03\x03" /* grouping fi_FI */ ); /***** LOCALE END fi_FI *****/ @@ -595,7 +647,10 @@ MY_LOCALE my_locale_fo_FO &my_locale_typelib_day_names_fo_FO, &my_locale_typelib_ab_day_names_fo_FO, 9, - 12 + 12, + ',', /* decimal point fo_FO */ + '.', /* thousands_sep fo_FO */ + "\x03\x03" /* grouping fo_FO */ ); /***** LOCALE END fo_FO *****/ @@ -627,7 +682,10 @@ MY_LOCALE my_locale_fr_FR &my_locale_typelib_day_names_fr_FR, &my_locale_typelib_ab_day_names_fr_FR, 9, - 8 + 8, + ',', /* decimal point fr_FR */ + '\0', /* thousands_sep fr_FR */ + "\x80\x80" /* grouping fr_FR */ ); /***** LOCALE END fr_FR *****/ @@ -659,7 +717,10 @@ MY_LOCALE my_locale_gl_ES &my_locale_typelib_day_names_gl_ES, &my_locale_typelib_ab_day_names_gl_ES, 8, - 8 + 8, + ',', /* decimal point gl_ES */ + '\0', /* thousands_sep gl_ES */ + "\x80\x80" /* grouping gl_ES */ ); /***** LOCALE END gl_ES *****/ @@ -691,7 +752,10 @@ MY_LOCALE my_locale_gu_IN &my_locale_typelib_day_names_gu_IN, &my_locale_typelib_ab_day_names_gu_IN, 10, - 8 + 8, + '.', /* decimal point gu_IN */ + ',', /* thousands_sep gu_IN */ + "\x03" /* grouping gu_IN */ ); /***** LOCALE END gu_IN *****/ @@ -723,7 +787,10 @@ MY_LOCALE my_locale_he_IL &my_locale_typelib_day_names_he_IL, &my_locale_typelib_ab_day_names_he_IL, 7, - 5 + 5, + '.', /* decimal point he_IL */ + ',', /* thousands_sep he_IL */ + "\x03\x03" /* grouping he_IL */ ); /***** LOCALE END he_IL *****/ @@ -755,7 +822,10 @@ MY_LOCALE my_locale_hi_IN &my_locale_typelib_day_names_hi_IN, &my_locale_typelib_ab_day_names_hi_IN, 7, - 9 + 9, + '.', /* decimal point hi_IN */ + ',', /* thousands_sep hi_IN */ + "\x03" /* grouping hi_IN */ ); /***** LOCALE END hi_IN *****/ @@ -787,7 +857,10 @@ MY_LOCALE my_locale_hr_HR &my_locale_typelib_day_names_hr_HR, &my_locale_typelib_ab_day_names_hr_HR, 8, - 11 + 11, + ',', /* decimal point hr_HR */ + '\0', /* thousands_sep hr_HR */ + "\x80\x80" /* grouping hr_HR */ ); /***** LOCALE END hr_HR *****/ @@ -819,7 +892,10 @@ MY_LOCALE my_locale_hu_HU &my_locale_typelib_day_names_hu_HU, &my_locale_typelib_ab_day_names_hu_HU, 10, - 9 + 9, + ',', /* decimal point hu_HU */ + '.', /* thousands_sep hu_HU */ + "\x03\x03" /* grouping hu_HU */ ); /***** LOCALE END hu_HU *****/ @@ -851,7 +927,10 @@ MY_LOCALE my_locale_id_ID &my_locale_typelib_day_names_id_ID, &my_locale_typelib_ab_day_names_id_ID, 9, - 6 + 6, + ',', /* decimal point id_ID */ + '.', /* thousands_sep id_ID */ + "\x03\x03" /* grouping id_ID */ ); /***** LOCALE END id_ID *****/ @@ -883,7 +962,10 @@ MY_LOCALE my_locale_is_IS &my_locale_typelib_day_names_is_IS, &my_locale_typelib_ab_day_names_is_IS, 9, - 12 + 12, + ',', /* decimal point is_IS */ + '.', /* thousands_sep is_IS */ + "\x03\x03" /* grouping is_IS */ ); /***** LOCALE END is_IS *****/ @@ -915,7 +997,10 @@ MY_LOCALE my_locale_it_CH &my_locale_typelib_day_names_it_CH, &my_locale_typelib_ab_day_names_it_CH, 9, - 9 + 9, + ',', /* decimal point it_CH */ + '\'', /* thousands_sep it_CH */ + "\x03\x03" /* grouping it_CH */ ); /***** LOCALE END it_CH *****/ @@ -947,7 +1032,10 @@ MY_LOCALE my_locale_ja_JP &my_locale_typelib_day_names_ja_JP, &my_locale_typelib_ab_day_names_ja_JP, 3, - 3 + 3, + '.', /* decimal point ja_JP */ + ',', /* thousands_sep ja_JP */ + "\x03" /* grouping ja_JP */ ); /***** LOCALE END ja_JP *****/ @@ -979,7 +1067,10 @@ MY_LOCALE my_locale_ko_KR &my_locale_typelib_day_names_ko_KR, &my_locale_typelib_ab_day_names_ko_KR, 3, - 3 + 3, + '.', /* decimal point ko_KR */ + ',', /* thousands_sep ko_KR */ + "\x03\x03" /* grouping ko_KR */ ); /***** LOCALE END ko_KR *****/ @@ -1011,7 +1102,10 @@ MY_LOCALE my_locale_lt_LT &my_locale_typelib_day_names_lt_LT, &my_locale_typelib_ab_day_names_lt_LT, 9, - 14 + 14, + ',', /* decimal point lt_LT */ + '.', /* thousands_sep lt_LT */ + "\x03\x03" /* grouping lt_LT */ ); /***** LOCALE END lt_LT *****/ @@ -1043,7 +1137,10 @@ MY_LOCALE my_locale_lv_LV &my_locale_typelib_day_names_lv_LV, &my_locale_typelib_ab_day_names_lv_LV, 10, - 11 + 11, + ',', /* decimal point lv_LV */ + ' ', /* thousands_sep lv_LV */ + "\x03\x03" /* grouping lv_LV */ ); /***** LOCALE END lv_LV *****/ @@ -1075,7 +1172,10 @@ MY_LOCALE my_locale_mk_MK &my_locale_typelib_day_names_mk_MK, &my_locale_typelib_ab_day_names_mk_MK, 9, - 10 + 10, + ',', /* decimal point mk_MK */ + ' ', /* thousands_sep mk_MK */ + "\x03\x03" /* grouping mk_MK */ ); /***** LOCALE END mk_MK *****/ @@ -1107,7 +1207,10 @@ MY_LOCALE my_locale_mn_MN &my_locale_typelib_day_names_mn_MN, &my_locale_typelib_ab_day_names_mn_MN, 18, - 6 + 6, + ',', /* decimal point mn_MN */ + '.', /* thousands_sep mn_MN */ + "\x03\x03" /* grouping mn_MN */ ); /***** LOCALE END mn_MN *****/ @@ -1139,7 +1242,10 @@ MY_LOCALE my_locale_ms_MY &my_locale_typelib_day_names_ms_MY, &my_locale_typelib_ab_day_names_ms_MY, 9, - 6 + 6, + '.', /* decimal point ms_MY */ + ',', /* thousands_sep ms_MY */ + "\x03" /* grouping ms_MY */ ); /***** LOCALE END ms_MY *****/ @@ -1171,7 +1277,10 @@ MY_LOCALE my_locale_nb_NO &my_locale_typelib_day_names_nb_NO, &my_locale_typelib_ab_day_names_nb_NO, 9, - 7 + 7, + ',', /* decimal point nb_NO */ + '.', /* thousands_sep nb_NO */ + "\x03\x03" /* grouping nb_NO */ ); /***** LOCALE END nb_NO *****/ @@ -1203,7 +1312,10 @@ MY_LOCALE my_locale_nl_NL &my_locale_typelib_day_names_nl_NL, &my_locale_typelib_ab_day_names_nl_NL, 9, - 9 + 9, + ',', /* decimal point nl_NL */ + '\0', /* thousands_sep nl_NL */ + "\x80\x80" /* grouping nl_NL */ ); /***** LOCALE END nl_NL *****/ @@ -1235,7 +1347,10 @@ MY_LOCALE my_locale_pl_PL &my_locale_typelib_day_names_pl_PL, &my_locale_typelib_ab_day_names_pl_PL, 11, - 12 + 12, + ',', /* decimal point pl_PL */ + '\0', /* thousands_sep pl_PL */ + "\x80\x80" /* grouping pl_PL */ ); /***** LOCALE END pl_PL *****/ @@ -1267,7 +1382,10 @@ MY_LOCALE my_locale_pt_BR &my_locale_typelib_day_names_pt_BR, &my_locale_typelib_ab_day_names_pt_BR, 9, - 7 + 7, + ',', /* decimal point pt_BR */ + '\0', /* thousands_sep pt_BR */ + "\x80\x80" /* grouping pt_BR */ ); /***** LOCALE END pt_BR *****/ @@ -1299,7 +1417,10 @@ MY_LOCALE my_locale_pt_PT &my_locale_typelib_day_names_pt_PT, &my_locale_typelib_ab_day_names_pt_PT, 9, - 7 + 7, + ',', /* decimal point pt_PT */ + '\0', /* thousands_sep pt_PT */ + "\x80\x80" /* grouping pt_PT */ ); /***** LOCALE END pt_PT *****/ @@ -1331,7 +1452,10 @@ MY_LOCALE my_locale_ro_RO &my_locale_typelib_day_names_ro_RO, &my_locale_typelib_ab_day_names_ro_RO, 10, - 8 + 8, + ',', /* decimal point ro_RO */ + '.', /* thousands_sep ro_RO */ + "\x03\x03" /* grouping ro_RO */ ); /***** LOCALE END ro_RO *****/ @@ -1363,7 +1487,10 @@ MY_LOCALE my_locale_ru_RU &my_locale_typelib_day_names_ru_RU, &my_locale_typelib_ab_day_names_ru_RU, 8, - 11 + 11, + ',', /* decimal point ru_RU */ + ' ', /* thousands_sep ru_RU */ + "\x03\x03" /* grouping ru_RU */ ); /***** LOCALE END ru_RU *****/ @@ -1395,7 +1522,10 @@ MY_LOCALE my_locale_ru_UA &my_locale_typelib_day_names_ru_UA, &my_locale_typelib_ab_day_names_ru_UA, 8, - 11 + 11, + ',', /* decimal point ru_UA */ + '.', /* thousands_sep ru_UA */ + "\x03\x03" /* grouping ru_UA */ ); /***** LOCALE END ru_UA *****/ @@ -1427,7 +1557,10 @@ MY_LOCALE my_locale_sk_SK &my_locale_typelib_day_names_sk_SK, &my_locale_typelib_ab_day_names_sk_SK, 9, - 8 + 8, + ',', /* decimal point sk_SK */ + ' ', /* thousands_sep sk_SK */ + "\x03\x03" /* grouping sk_SK */ ); /***** LOCALE END sk_SK *****/ @@ -1459,7 +1592,10 @@ MY_LOCALE my_locale_sl_SI &my_locale_typelib_day_names_sl_SI, &my_locale_typelib_ab_day_names_sl_SI, 9, - 10 + 10, + ',', /* decimal point sl_SI */ + ' ', /* thousands_sep sl_SI */ + "\x80\x80" /* grouping sl_SI */ ); /***** LOCALE END sl_SI *****/ @@ -1491,7 +1627,10 @@ MY_LOCALE my_locale_sq_AL &my_locale_typelib_day_names_sq_AL, &my_locale_typelib_ab_day_names_sq_AL, 7, - 10 + 10, + ',', /* decimal point sq_AL */ + '.', /* thousands_sep sq_AL */ + "\x03" /* grouping sq_AL */ ); /***** LOCALE END sq_AL *****/ @@ -1523,7 +1662,10 @@ MY_LOCALE my_locale_sr_YU &my_locale_typelib_day_names_sr_YU, &my_locale_typelib_ab_day_names_sr_YU, 9, - 10 + 10, + '.', /* decimal point sr_YU */ + '\0', /* thousands_sep sr_YU */ + "\x80" /* grouping sr_YU */ ); /***** LOCALE END sr_YU *****/ @@ -1555,7 +1697,10 @@ MY_LOCALE my_locale_sv_SE &my_locale_typelib_day_names_sv_SE, &my_locale_typelib_ab_day_names_sv_SE, 9, - 7 + 7, + ',', /* decimal point sv_SE */ + ' ', /* thousands_sep sv_SE */ + "\x03\x03" /* grouping sv_SE */ ); /***** LOCALE END sv_SE *****/ @@ -1587,7 +1732,10 @@ MY_LOCALE my_locale_ta_IN &my_locale_typelib_day_names_ta_IN, &my_locale_typelib_ab_day_names_ta_IN, 10, - 8 + 8, + '.', /* decimal point ta_IN */ + ',', /* thousands_sep ta_IN */ + "\x03\x02" /* grouping ta_IN */ ); /***** LOCALE END ta_IN *****/ @@ -1619,7 +1767,10 @@ MY_LOCALE my_locale_te_IN &my_locale_typelib_day_names_te_IN, &my_locale_typelib_ab_day_names_te_IN, 10, - 9 + 9, + '.', /* decimal point te_IN */ + ',', /* thousands_sep te_IN */ + "\x03\x02" /* grouping te_IN */ ); /***** LOCALE END te_IN *****/ @@ -1651,7 +1802,10 @@ MY_LOCALE my_locale_th_TH &my_locale_typelib_day_names_th_TH, &my_locale_typelib_ab_day_names_th_TH, 10, - 8 + 8, + '.', /* decimal point th_TH */ + ',', /* thousands_sep th_TH */ + "\x03" /* grouping th_TH */ ); /***** LOCALE END th_TH *****/ @@ -1683,7 +1837,10 @@ MY_LOCALE my_locale_tr_TR &my_locale_typelib_day_names_tr_TR, &my_locale_typelib_ab_day_names_tr_TR, 7, - 9 + 9, + ',', /* decimal point tr_TR */ + '.', /* thousands_sep tr_TR */ + "\x03\x03" /* grouping tr_TR */ ); /***** LOCALE END tr_TR *****/ @@ -1715,7 +1872,10 @@ MY_LOCALE my_locale_uk_UA &my_locale_typelib_day_names_uk_UA, &my_locale_typelib_ab_day_names_uk_UA, 8, - 9 + 9, + ',', /* decimal point uk_UA */ + '.', /* thousands_sep uk_UA */ + "\x03\x03" /* grouping uk_UA */ ); /***** LOCALE END uk_UA *****/ @@ -1747,7 +1907,10 @@ MY_LOCALE my_locale_ur_PK &my_locale_typelib_day_names_ur_PK, &my_locale_typelib_ab_day_names_ur_PK, 6, - 6 + 6, + '.', /* decimal point ur_PK */ + ',', /* thousands_sep ur_PK */ + "\x03\x03" /* grouping ur_PK */ ); /***** LOCALE END ur_PK *****/ @@ -1779,7 +1942,10 @@ MY_LOCALE my_locale_vi_VN &my_locale_typelib_day_names_vi_VN, &my_locale_typelib_ab_day_names_vi_VN, 16, - 11 + 11, + ',', /* decimal point vi_VN */ + '.', /* thousands_sep vi_VN */ + "\x03\x03" /* grouping vi_VN */ ); /***** LOCALE END vi_VN *****/ @@ -1811,7 +1977,10 @@ MY_LOCALE my_locale_zh_CN &my_locale_typelib_day_names_zh_CN, &my_locale_typelib_ab_day_names_zh_CN, 3, - 3 + 3, + '.', /* decimal point zh_CN */ + ',', /* thousands_sep zh_CN */ + "\x03" /* grouping zh_CN */ ); /***** LOCALE END zh_CN *****/ @@ -1843,7 +2012,10 @@ MY_LOCALE my_locale_zh_TW &my_locale_typelib_day_names_zh_TW, &my_locale_typelib_ab_day_names_zh_TW, 3, - 2 + 2, + '.', /* decimal point zh_TW */ + ',', /* thousands_sep zh_TW */ + "\x03" /* grouping zh_TW */ ); /***** LOCALE END zh_TW *****/ @@ -1859,7 +2031,10 @@ MY_LOCALE my_locale_ar_DZ &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH, 6, - 8 + 8, + '.', /* decimal point ar_DZ */ + ',', /* thousands_sep ar_DZ */ + "\x03" /* grouping ar_DZ */ ); /***** LOCALE END ar_DZ *****/ @@ -1875,7 +2050,10 @@ MY_LOCALE my_locale_ar_EG &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH, 6, - 8 + 8, + '.', /* decimal point ar_EG */ + ',', /* thousands_sep ar_EG */ + "\x03" /* grouping ar_EG */ ); /***** LOCALE END ar_EG *****/ @@ -1891,7 +2069,10 @@ MY_LOCALE my_locale_ar_IN &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH, 6, - 8 + 8, + '.', /* decimal point ar_IN */ + ',', /* thousands_sep ar_IN */ + "\x03" /* grouping ar_IN */ ); /***** LOCALE END ar_IN *****/ @@ -1907,7 +2088,10 @@ MY_LOCALE my_locale_ar_IQ &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH, 6, - 8 + 8, + '.', /* decimal point ar_IQ */ + ',', /* thousands_sep ar_IQ */ + "\x03" /* grouping ar_IQ */ ); /***** LOCALE END ar_IQ *****/ @@ -1923,7 +2107,10 @@ MY_LOCALE my_locale_ar_KW &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH, 6, - 8 + 8, + '.', /* decimal point ar_KW */ + ',', /* thousands_sep ar_KW */ + "\x03" /* grouping ar_KW */ ); /***** LOCALE END ar_KW *****/ @@ -1939,7 +2126,10 @@ MY_LOCALE my_locale_ar_LB &my_locale_typelib_day_names_ar_JO, &my_locale_typelib_ab_day_names_ar_JO, 12, - 8 + 8, + '.', /* decimal point ar_LB */ + ',', /* thousands_sep ar_LB */ + "\x03" /* grouping ar_LB */ ); /***** LOCALE END ar_LB *****/ @@ -1955,7 +2145,10 @@ MY_LOCALE my_locale_ar_LY &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH, 6, - 8 + 8, + '.', /* decimal point ar_LY */ + ',', /* thousands_sep ar_LY */ + "\x03" /* grouping ar_LY */ ); /***** LOCALE END ar_LY *****/ @@ -1971,7 +2164,10 @@ MY_LOCALE my_locale_ar_MA &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH, 6, - 8 + 8, + '.', /* decimal point ar_MA */ + ',', /* thousands_sep ar_MA */ + "\x03" /* grouping ar_MA */ ); /***** LOCALE END ar_MA *****/ @@ -1987,7 +2183,10 @@ MY_LOCALE my_locale_ar_OM &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH, 6, - 8 + 8, + '.', /* decimal point ar_OM */ + ',', /* thousands_sep ar_OM */ + "\x03" /* grouping ar_OM */ ); /***** LOCALE END ar_OM *****/ @@ -2003,7 +2202,10 @@ MY_LOCALE my_locale_ar_QA &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH, 6, - 8 + 8, + '.', /* decimal point ar_QA */ + ',', /* thousands_sep ar_QA */ + "\x03" /* grouping ar_QA */ ); /***** LOCALE END ar_QA *****/ @@ -2019,7 +2221,10 @@ MY_LOCALE my_locale_ar_SD &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH, 6, - 8 + 8, + '.', /* decimal point ar_SD */ + ',', /* thousands_sep ar_SD */ + "\x03" /* grouping ar_SD */ ); /***** LOCALE END ar_SD *****/ @@ -2035,7 +2240,10 @@ MY_LOCALE my_locale_ar_TN &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH, 6, - 8 + 8, + '.', /* decimal point ar_TN */ + ',', /* thousands_sep ar_TN */ + "\x03" /* grouping ar_TN */ ); /***** LOCALE END ar_TN *****/ @@ -2051,7 +2259,10 @@ MY_LOCALE my_locale_ar_YE &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH, 6, - 8 + 8, + '.', /* decimal point ar_YE */ + ',', /* thousands_sep ar_YE */ + "\x03" /* grouping ar_YE */ ); /***** LOCALE END ar_YE *****/ @@ -2067,7 +2278,10 @@ MY_LOCALE my_locale_de_BE &my_locale_typelib_day_names_de_DE, &my_locale_typelib_ab_day_names_de_DE, 9, - 10 + 10, + ',', /* decimal point de_BE */ + '.', /* thousands_sep de_BE */ + "\x03\x03" /* grouping de_BE */ ); /***** LOCALE END de_BE *****/ @@ -2083,7 +2297,10 @@ MY_LOCALE my_locale_de_CH &my_locale_typelib_day_names_de_DE, &my_locale_typelib_ab_day_names_de_DE, 9, - 10 + 10, + '.', /* decimal point de_CH */ + '\'', /* thousands_sep de_CH */ + "\x03\x03" /* grouping de_CH */ ); /***** LOCALE END de_CH *****/ @@ -2099,7 +2316,10 @@ MY_LOCALE my_locale_de_LU &my_locale_typelib_day_names_de_DE, &my_locale_typelib_ab_day_names_de_DE, 9, - 10 + 10, + ',', /* decimal point de_LU */ + '.', /* thousands_sep de_LU */ + "\x03\x03" /* grouping de_LU */ ); /***** LOCALE END de_LU *****/ @@ -2115,7 +2335,10 @@ MY_LOCALE my_locale_en_AU &my_locale_typelib_day_names_en_US, &my_locale_typelib_ab_day_names_en_US, 9, - 9 + 9, + '.', /* decimal point en_AU */ + ',', /* thousands_sep en_AU */ + "\x03\x03" /* grouping en_AU */ ); /***** LOCALE END en_AU *****/ @@ -2131,7 +2354,10 @@ MY_LOCALE my_locale_en_CA &my_locale_typelib_day_names_en_US, &my_locale_typelib_ab_day_names_en_US, 9, - 9 + 9, + '.', /* decimal point en_CA */ + ',', /* thousands_sep en_CA */ + "\x03\x03" /* grouping en_CA */ ); /***** LOCALE END en_CA *****/ @@ -2147,7 +2373,10 @@ MY_LOCALE my_locale_en_GB &my_locale_typelib_day_names_en_US, &my_locale_typelib_ab_day_names_en_US, 9, - 9 + 9, + '.', /* decimal point en_GB */ + ',', /* thousands_sep en_GB */ + "\x03\x03" /* grouping en_GB */ ); /***** LOCALE END en_GB *****/ @@ -2163,7 +2392,10 @@ MY_LOCALE my_locale_en_IN &my_locale_typelib_day_names_en_US, &my_locale_typelib_ab_day_names_en_US, 9, - 9 + 9, + '.', /* decimal point en_IN */ + ',', /* thousands_sep en_IN */ + "\x03\x02" /* grouping en_IN */ ); /***** LOCALE END en_IN *****/ @@ -2179,7 +2411,10 @@ MY_LOCALE my_locale_en_NZ &my_locale_typelib_day_names_en_US, &my_locale_typelib_ab_day_names_en_US, 9, - 9 + 9, + '.', /* decimal point en_NZ */ + ',', /* thousands_sep en_NZ */ + "\x03\x03" /* grouping en_NZ */ ); /***** LOCALE END en_NZ *****/ @@ -2195,7 +2430,10 @@ MY_LOCALE my_locale_en_PH &my_locale_typelib_day_names_en_US, &my_locale_typelib_ab_day_names_en_US, 9, - 9 + 9, + '.', /* decimal point en_PH */ + ',', /* thousands_sep en_PH */ + "\x03" /* grouping en_PH */ ); /***** LOCALE END en_PH *****/ @@ -2211,7 +2449,10 @@ MY_LOCALE my_locale_en_ZA &my_locale_typelib_day_names_en_US, &my_locale_typelib_ab_day_names_en_US, 9, - 9 + 9, + '.', /* decimal point en_ZA */ + ',', /* thousands_sep en_ZA */ + "\x03\x03" /* grouping en_ZA */ ); /***** LOCALE END en_ZA *****/ @@ -2227,7 +2468,10 @@ MY_LOCALE my_locale_en_ZW &my_locale_typelib_day_names_en_US, &my_locale_typelib_ab_day_names_en_US, 9, - 9 + 9, + '.', /* decimal point en_ZW */ + ',', /* thousands_sep en_ZW */ + "\x03\x03" /* grouping en_ZW */ ); /***** LOCALE END en_ZW *****/ @@ -2243,7 +2487,10 @@ MY_LOCALE my_locale_es_AR &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + ',', /* decimal point es_AR */ + '.', /* thousands_sep es_AR */ + "\x03\x03" /* grouping es_AR */ ); /***** LOCALE END es_AR *****/ @@ -2259,7 +2506,10 @@ MY_LOCALE my_locale_es_BO &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + ',', /* decimal point es_BO */ + '\0', /* thousands_sep es_BO */ + "\x80\x80" /* grouping es_BO */ ); /***** LOCALE END es_BO *****/ @@ -2275,7 +2525,10 @@ MY_LOCALE my_locale_es_CL &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + ',', /* decimal point es_CL */ + '\0', /* thousands_sep es_CL */ + "\x80\x80" /* grouping es_CL */ ); /***** LOCALE END es_CL *****/ @@ -2291,7 +2544,10 @@ MY_LOCALE my_locale_es_CO &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + ',', /* decimal point es_CO */ + '\0', /* thousands_sep es_CO */ + "\x80\x80" /* grouping es_CO */ ); /***** LOCALE END es_CO *****/ @@ -2307,7 +2563,10 @@ MY_LOCALE my_locale_es_CR &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + '.', /* decimal point es_CR */ + '\0', /* thousands_sep es_CR */ + "\x80\x80" /* grouping es_CR */ ); /***** LOCALE END es_CR *****/ @@ -2323,7 +2582,10 @@ MY_LOCALE my_locale_es_DO &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + '.', /* decimal point es_DO */ + '\0', /* thousands_sep es_DO */ + "\x80\x80" /* grouping es_DO */ ); /***** LOCALE END es_DO *****/ @@ -2339,7 +2601,10 @@ MY_LOCALE my_locale_es_EC &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + ',', /* decimal point es_EC */ + '\0', /* thousands_sep es_EC */ + "\x80\x80" /* grouping es_EC */ ); /***** LOCALE END es_EC *****/ @@ -2355,7 +2620,10 @@ MY_LOCALE my_locale_es_GT &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + '.', /* decimal point es_GT */ + '\0', /* thousands_sep es_GT */ + "\x80\x80" /* grouping es_GT */ ); /***** LOCALE END es_GT *****/ @@ -2371,7 +2639,10 @@ MY_LOCALE my_locale_es_HN &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + '.', /* decimal point es_HN */ + '\0', /* thousands_sep es_HN */ + "\x80\x80" /* grouping es_HN */ ); /***** LOCALE END es_HN *****/ @@ -2387,7 +2658,10 @@ MY_LOCALE my_locale_es_MX &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + '.', /* decimal point es_MX */ + '\0', /* thousands_sep es_MX */ + "\x80\x80" /* grouping es_MX */ ); /***** LOCALE END es_MX *****/ @@ -2403,7 +2677,10 @@ MY_LOCALE my_locale_es_NI &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + '.', /* decimal point es_NI */ + '\0', /* thousands_sep es_NI */ + "\x80\x80" /* grouping es_NI */ ); /***** LOCALE END es_NI *****/ @@ -2419,7 +2696,10 @@ MY_LOCALE my_locale_es_PA &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + '.', /* decimal point es_PA */ + '\0', /* thousands_sep es_PA */ + "\x80\x80" /* grouping es_PA */ ); /***** LOCALE END es_PA *****/ @@ -2435,7 +2715,10 @@ MY_LOCALE my_locale_es_PE &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + '.', /* decimal point es_PE */ + '\0', /* thousands_sep es_PE */ + "\x80\x80" /* grouping es_PE */ ); /***** LOCALE END es_PE *****/ @@ -2451,7 +2734,10 @@ MY_LOCALE my_locale_es_PR &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + '.', /* decimal point es_PR */ + '\0', /* thousands_sep es_PR */ + "\x80\x80" /* grouping es_PR */ ); /***** LOCALE END es_PR *****/ @@ -2467,7 +2753,10 @@ MY_LOCALE my_locale_es_PY &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + ',', /* decimal point es_PY */ + '\0', /* thousands_sep es_PY */ + "\x80\x80" /* grouping es_PY */ ); /***** LOCALE END es_PY *****/ @@ -2483,7 +2772,10 @@ MY_LOCALE my_locale_es_SV &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + '.', /* decimal point es_SV */ + '\0', /* thousands_sep es_SV */ + "\x80\x80" /* grouping es_SV */ ); /***** LOCALE END es_SV *****/ @@ -2499,7 +2791,10 @@ MY_LOCALE my_locale_es_US &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + '.', /* decimal point es_US */ + ',', /* thousands_sep es_US */ + "\x03\x03" /* grouping es_US */ ); /***** LOCALE END es_US *****/ @@ -2515,7 +2810,10 @@ MY_LOCALE my_locale_es_UY &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + ',', /* decimal point es_UY */ + '\0', /* thousands_sep es_UY */ + "\x80\x80" /* grouping es_UY */ ); /***** LOCALE END es_UY *****/ @@ -2531,7 +2829,10 @@ MY_LOCALE my_locale_es_VE &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES, 10, - 9 + 9, + ',', /* decimal point es_VE */ + '\0', /* thousands_sep es_VE */ + "\x80\x80" /* grouping es_VE */ ); /***** LOCALE END es_VE *****/ @@ -2547,7 +2848,10 @@ MY_LOCALE my_locale_fr_BE &my_locale_typelib_day_names_fr_FR, &my_locale_typelib_ab_day_names_fr_FR, 9, - 8 + 8, + ',', /* decimal point fr_BE */ + '.', /* thousands_sep fr_BE */ + "\x80\x80" /* grouping fr_BE */ ); /***** LOCALE END fr_BE *****/ @@ -2563,7 +2867,10 @@ MY_LOCALE my_locale_fr_CA &my_locale_typelib_day_names_fr_FR, &my_locale_typelib_ab_day_names_fr_FR, 9, - 8 + 8, + ',', /* decimal point fr_CA */ + ' ', /* thousands_sep fr_CA */ + "\x80\x80" /* grouping fr_CA */ ); /***** LOCALE END fr_CA *****/ @@ -2579,7 +2886,10 @@ MY_LOCALE my_locale_fr_CH &my_locale_typelib_day_names_fr_FR, &my_locale_typelib_ab_day_names_fr_FR, 9, - 8 + 8, + ',', /* decimal point fr_CH */ + '\0', /* thousands_sep fr_CH */ + "\x80\x80" /* grouping fr_CH */ ); /***** LOCALE END fr_CH *****/ @@ -2595,7 +2905,10 @@ MY_LOCALE my_locale_fr_LU &my_locale_typelib_day_names_fr_FR, &my_locale_typelib_ab_day_names_fr_FR, 9, - 8 + 8, + ',', /* decimal point fr_LU */ + '\0', /* thousands_sep fr_LU */ + "\x80\x80" /* grouping fr_LU */ ); /***** LOCALE END fr_LU *****/ @@ -2611,7 +2924,10 @@ MY_LOCALE my_locale_it_IT &my_locale_typelib_day_names_it_CH, &my_locale_typelib_ab_day_names_it_CH, 9, - 9 + 9, + ',', /* decimal point it_IT */ + '\0', /* thousands_sep it_IT */ + "\x80\x80" /* grouping it_IT */ ); /***** LOCALE END it_IT *****/ @@ -2627,7 +2943,10 @@ MY_LOCALE my_locale_nl_BE &my_locale_typelib_day_names_nl_NL, &my_locale_typelib_ab_day_names_nl_NL, 9, - 9 + 9, + ',', /* decimal point nl_BE */ + '.', /* thousands_sep nl_BE */ + "\x80\x80" /* grouping nl_BE */ ); /***** LOCALE END nl_BE *****/ @@ -2643,7 +2962,10 @@ MY_LOCALE my_locale_no_NO &my_locale_typelib_day_names_nb_NO, &my_locale_typelib_ab_day_names_nb_NO, 9, - 7 + 7, + ',', /* decimal point no_NO */ + '.', /* thousands_sep no_NO */ + "\x03\x03" /* grouping no_NO */ ); /***** LOCALE END no_NO *****/ @@ -2659,7 +2981,10 @@ MY_LOCALE my_locale_sv_FI &my_locale_typelib_day_names_sv_SE, &my_locale_typelib_ab_day_names_sv_SE, 9, - 7 + 7, + ',', /* decimal point sv_FI */ + ' ', /* thousands_sep sv_FI */ + "\x03\x03" /* grouping sv_FI */ ); /***** LOCALE END sv_FI *****/ @@ -2675,7 +3000,11 @@ MY_LOCALE my_locale_zh_HK &my_locale_typelib_day_names_zh_CN, &my_locale_typelib_ab_day_names_zh_CN, 3, - 3 + 3, + '.', /* decimal point zh_HK */ + ',', /* thousands_sep zh_HK */ + "\x03" /* grouping zh_HK */ + ); /***** LOCALE END zh_HK *****/ |