Commit 636ea6a1 authored by Alexander Barkov's avatar Alexander Barkov

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
parent 80f6940f
......@@ -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
......@@ -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
......@@ -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:
......
......@@ -927,10 +927,10 @@ class Create_func_floor : public Create_func_arg1
};
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;
}
......
......@@ -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)
/* We need this test to handle 'nan' and short values */
if (lc->grouping[0] > 0 &&
str_length >= dec_length + 1 + lc->grouping[0])
{
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)
{
*pos= *(pos - diff);
pos--;
*pos= *(pos - diff);
pos--;
*pos= *(pos - diff);
pos--;
pos[0]=',';
pos--;
diff--;
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)
{
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;
}
......
......@@ -498,8 +498,13 @@ class Item_func_make_set :public Item_str_func
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"; }
......
......@@ -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;
......
......@@ -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;
}
}
......
......@@ -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'"
......@@ -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 *****/
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment