diff --git a/mysql-test/r/rpl_locale.result b/mysql-test/r/rpl_locale.result
new file mode 100644
index 0000000000000000000000000000000000000000..5de5bab9a0b93c21ec97a90307be1c10b96f9a13
--- /dev/null
+++ b/mysql-test/r/rpl_locale.result
@@ -0,0 +1,16 @@
+stop slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+reset master;
+reset slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+start slave;
+create table t1 (s1 char(10));
+set lc_time_names= 'de_DE';
+insert into t1 values (date_format('2001-01-01','%W'));
+select * from t1;
+s1
+Montag
+select * from t1;
+s1
+Montag
+drop table t1;
diff --git a/mysql-test/r/variables.result b/mysql-test/r/variables.result
index cd834a789bdb3322c0e4112e285117097108e899..c3d7d5ac4ebe9e41bc367f116c74a065cac07528 100644
--- a/mysql-test/r/variables.result
+++ b/mysql-test/r/variables.result
@@ -580,6 +580,63 @@ set names latin1;
 select @@have_innodb;
 @@have_innodb
 #
+*** Various tests with LC_TIME_NAMES
+*** LC_TIME_NAMES: testing case insensitivity
+set @@lc_time_names='ru_ru';
+select @@lc_time_names;
+@@lc_time_names
+ru_RU
+*** LC_TIME_NAMES: testing with a user variable
+set @lc='JA_JP';
+set @@lc_time_names=@lc;
+select @@lc_time_names;
+@@lc_time_names
+ja_JP
+*** LC_TIME_NAMES: testing with string expressions
+set lc_time_names=concat('de','_','DE');
+select @@lc_time_names;
+@@lc_time_names
+de_DE
+set lc_time_names=concat('de','+','DE');
+ERROR HY000: Unknown locale: 'de+DE'
+select @@lc_time_names;
+@@lc_time_names
+de_DE
+LC_TIME_NAMES: testing with numeric expressions
+set @@lc_time_names=1+2;
+select @@lc_time_names;
+@@lc_time_names
+sv_SE
+set @@lc_time_names=1/0;
+ERROR 42000: Incorrect argument type to variable 'lc_time_names'
+select @@lc_time_names;
+@@lc_time_names
+sv_SE
+set lc_time_names=en_US;
+LC_TIME_NAMES: testing NULL and a negative number:
+set lc_time_names=NULL;
+ERROR 42000: Variable 'lc_time_names' can't be set to the value of 'NULL'
+set lc_time_names=-1;
+ERROR HY000: Unknown locale: '-1'
+select @@lc_time_names;
+@@lc_time_names
+en_US
+LC_TIME_NAMES: testing locale with the last ID:
+set lc_time_names=108;
+select @@lc_time_names;
+@@lc_time_names
+zh_HK
+LC_TIME_NAMES: testing a number beyond the valid ID range:
+set lc_time_names=109;
+ERROR HY000: Unknown locale: '109'
+select @@lc_time_names;
+@@lc_time_names
+zh_HK
+LC_TIME_NAMES: testing that 0 is en_US:
+set lc_time_names=0;
+select @@lc_time_names;
+@@lc_time_names
+en_US
 set @test = @@query_prealloc_size;
 set @@query_prealloc_size = @test;
 select @@query_prealloc_size = @test;
diff --git a/mysql-test/t/disabled.def b/mysql-test/t/disabled.def
index eaea7c710b0cef6ffc12d6d11ee69facb156bbf7..bff70a306b31739a837c319b821b8d0bccd15c48 100644
--- a/mysql-test/t/disabled.def
+++ b/mysql-test/t/disabled.def
@@ -11,5 +11,6 @@
 ##############################################################################
 
 ndb_load        : Bug#17233
+rpl_locale	: Bug#22645
 user_limits     : Bug#23921 random failure of user_limits.test
 
diff --git a/mysql-test/t/rpl_locale.test b/mysql-test/t/rpl_locale.test
new file mode 100644
index 0000000000000000000000000000000000000000..530a3d77636d30055a3b7afae86c83c88aba13ad
--- /dev/null
+++ b/mysql-test/t/rpl_locale.test
@@ -0,0 +1,22 @@
+# Replication of locale variables
+
+source include/master-slave.inc;
+
+#
+# Bug#22645 LC_TIME_NAMES: Statement not replicated
+#
+connection master;
+create table t1 (s1 char(10));
+set lc_time_names= 'de_DE';
+insert into t1 values (date_format('2001-01-01','%W'));
+select * from t1;
+sync_slave_with_master;
+connection slave;
+select * from t1;
+connection master;
+drop table t1;
+sync_slave_with_master;
+
+# End of 4.1 tests
+
+
diff --git a/mysql-test/t/variables.test b/mysql-test/t/variables.test
index d855b4d82660f3e16dc4eab8a446d3238c7b7bf3..5edb8fb754bfa2f17236497351b9a4185bb0607e 100644
--- a/mysql-test/t/variables.test
+++ b/mysql-test/t/variables.test
@@ -460,6 +460,50 @@ set names latin1;
 --replace_column 1 #
 select @@have_innodb;
 
+#
+# Tests for lc_time_names
+# Note, when adding new locales, please fix ID accordingly:
+# - to test the last ID (currently 108)
+# - and the next after the last (currently 109)
+#
+--echo *** Various tests with LC_TIME_NAMES
+--echo *** LC_TIME_NAMES: testing case insensitivity
+set @@lc_time_names='ru_ru';
+select @@lc_time_names;
+--echo *** LC_TIME_NAMES: testing with a user variable
+set @lc='JA_JP';
+set @@lc_time_names=@lc;
+select @@lc_time_names;
+--echo *** LC_TIME_NAMES: testing with string expressions
+set lc_time_names=concat('de','_','DE');
+select @@lc_time_names;
+--error 1105
+set lc_time_names=concat('de','+','DE');
+select @@lc_time_names;
+--echo LC_TIME_NAMES: testing with numeric expressions
+set @@lc_time_names=1+2;
+select @@lc_time_names;
+--error 1232
+set @@lc_time_names=1/0;
+select @@lc_time_names;
+set lc_time_names=en_US;
+--echo LC_TIME_NAMES: testing NULL and a negative number:
+--error 1231
+set lc_time_names=NULL;
+--error 1105
+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 1105
+set lc_time_names=109;
+select @@lc_time_names;
+--echo LC_TIME_NAMES: testing that 0 is en_US:
+set lc_time_names=0;
+select @@lc_time_names;
+
 #
 # Bug #13334: query_prealloc_size default less than minimum
 #
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h
index ac0b9f56567d8e43289e4016277ac9f4a824848c..27d2941386573841c3727bf2cb245fe866776be5 100644
--- a/sql/mysql_priv.h
+++ b/sql/mysql_priv.h
@@ -109,6 +109,7 @@ enum Derivation
 
 typedef struct my_locale_st
 {
+  uint  number;
   const char *name;
   const char *description;
   const bool is_ascii;
@@ -117,9 +118,11 @@ typedef struct my_locale_st
   TYPELIB *day_names;
   TYPELIB *ab_day_names;
 #ifdef __cplusplus 
-  my_locale_st(const char *name_par, const char *descr_par, bool is_ascii_par,
+  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) : 
+    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)
@@ -131,6 +134,7 @@ extern MY_LOCALE my_locale_en_US;
 extern MY_LOCALE *my_locales[];
 
 MY_LOCALE *my_locale_by_name(const char *name);
+MY_LOCALE *my_locale_by_number(uint number);
 
 /***************************************************************************
   Configuration parameters
diff --git a/sql/set_var.cc b/sql/set_var.cc
index 55c62a9a5a52db99fdb5e6026bf443d570575b5f..0978a84d403b9717a7e340c8c20ccaff7c676495 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -2782,17 +2782,39 @@ byte *sys_var_max_user_conn::value_ptr(THD *thd, enum_var_type type,
   return (byte*) &(max_user_connections);
 }
 
+
 bool sys_var_thd_lc_time_names::check(THD *thd, set_var *var)
 {
-  char *locale_str =var->value->str_value.c_ptr();
-  MY_LOCALE *locale_match=  my_locale_by_name(locale_str);
+  MY_LOCALE *locale_match;
 
-  if (locale_match == NULL)
+  if (var->value->result_type() == INT_RESULT)
   {
-    my_printf_error(ER_UNKNOWN_ERROR,
-                    "Unknown locale: '%s'", MYF(0), locale_str);
-    return 1;
+    if (!(locale_match= my_locale_by_number((uint) var->value->val_int())))
+    {
+      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);
+      return 1;
+    }
+  }
+  else // STRING_RESULT
+  {
+    char buff[6]; 
+    String str(buff, sizeof(buff), &my_charset_latin1), *res;
+    if (!(res=var->value->val_str(&str)))
+    {
+      my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), name, "NULL");
+      return 1;
+    }
+    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);
+      return 1;
+    }
   }
+
   var->save_result.locale_value= locale_match;
   return 0;
 }
diff --git a/sql/set_var.h b/sql/set_var.h
index 11de6ceafe59f5f0066d0d58d6dc6a9f984c06bf..7093fb8278cd57f380bda8c4cd2565b0ada35337 100644
--- a/sql/set_var.h
+++ b/sql/set_var.h
@@ -819,13 +819,17 @@ class sys_var_thd_lc_time_names :public sys_var_thd
 {
 public:
   sys_var_thd_lc_time_names(const char *name_arg):
-    sys_var_thd(name_arg)
-  {}
+    sys_var_thd(name_arg) 
+  {
+#if MYSQL_VERSION_ID < 50000
+    no_support_one_shot= 0;
+#endif
+  }
   bool check(THD *thd, set_var *var);
   SHOW_TYPE type() { return SHOW_CHAR; }
   bool check_update_type(Item_result type)
   {
-    return type != STRING_RESULT;		/* Only accept strings */
+    return ((type != STRING_RESULT) && (type != INT_RESULT));
   }
   bool check_default(enum_var_type type) { return 0; }
   bool update(THD *thd, set_var *var);
diff --git a/sql/sql_locale.cc b/sql/sql_locale.cc
index b947b9dfa98b7cf68250d915858865e474d1c036..3645ddb82cbee364c82a1cdb073bb68ea976821f 100644
--- a/sql/sql_locale.cc
+++ b/sql/sql_locale.cc
@@ -24,17 +24,6 @@
 #include "mysql_priv.h"
 
 
-MY_LOCALE *my_locale_by_name(const char *name)
-{
-  MY_LOCALE **locale;
-  for( locale= my_locales; *locale != NULL; locale++) 
-  {
-    if(!strcmp((*locale)->name, name))
-      return *locale;
-  }
-  return NULL;
-}
-
 /***** LOCALE BEGIN ar_AE: Arabic - United Arab Emirates *****/
 static const char *my_locale_month_names_ar_AE[13] = 
  {"يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر", NullS };
@@ -52,7 +41,17 @@ static TYPELIB my_locale_typelib_day_names_ar_AE =
  { array_elements(my_locale_day_names_ar_AE)-1, "", my_locale_day_names_ar_AE, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_ar_AE = 
  { array_elements(my_locale_ab_day_names_ar_AE)-1, "", my_locale_ab_day_names_ar_AE, NULL };
-MY_LOCALE my_locale_ar_AE ( "ar_AE", "Arabic - United Arab Emirates", FALSE, &my_locale_typelib_month_names_ar_AE, &my_locale_typelib_ab_month_names_ar_AE, &my_locale_typelib_day_names_ar_AE, &my_locale_typelib_ab_day_names_ar_AE );
+MY_LOCALE my_locale_ar_AE
+(
+  6,
+  "ar_AE",
+  "Arabic - United Arab Emirates",
+  FALSE,
+  &my_locale_typelib_month_names_ar_AE,
+  &my_locale_typelib_ab_month_names_ar_AE,
+  &my_locale_typelib_day_names_ar_AE,
+  &my_locale_typelib_ab_day_names_ar_AE
+);
 /***** LOCALE END ar_AE *****/
 
 /***** LOCALE BEGIN ar_BH: Arabic - Bahrain *****/
@@ -72,7 +71,17 @@ static TYPELIB my_locale_typelib_day_names_ar_BH =
  { array_elements(my_locale_day_names_ar_BH)-1, "", my_locale_day_names_ar_BH, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_ar_BH = 
  { array_elements(my_locale_ab_day_names_ar_BH)-1, "", my_locale_ab_day_names_ar_BH, NULL };
-MY_LOCALE my_locale_ar_BH ( "ar_BH", "Arabic - Bahrain", FALSE, &my_locale_typelib_month_names_ar_BH, &my_locale_typelib_ab_month_names_ar_BH, &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH );
+MY_LOCALE my_locale_ar_BH
+(
+  7,
+  "ar_BH",
+  "Arabic - Bahrain",
+  FALSE,
+  &my_locale_typelib_month_names_ar_BH,
+  &my_locale_typelib_ab_month_names_ar_BH,
+  &my_locale_typelib_day_names_ar_BH,
+  &my_locale_typelib_ab_day_names_ar_BH
+);
 /***** LOCALE END ar_BH *****/
 
 /***** LOCALE BEGIN ar_JO: Arabic - Jordan *****/
@@ -92,7 +101,17 @@ static TYPELIB my_locale_typelib_day_names_ar_JO =
  { array_elements(my_locale_day_names_ar_JO)-1, "", my_locale_day_names_ar_JO, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_ar_JO = 
  { array_elements(my_locale_ab_day_names_ar_JO)-1, "", my_locale_ab_day_names_ar_JO, NULL };
-MY_LOCALE my_locale_ar_JO ( "ar_JO", "Arabic - Jordan", FALSE, &my_locale_typelib_month_names_ar_JO, &my_locale_typelib_ab_month_names_ar_JO, &my_locale_typelib_day_names_ar_JO, &my_locale_typelib_ab_day_names_ar_JO );
+MY_LOCALE my_locale_ar_JO
+(
+  8,
+  "ar_JO",
+  "Arabic - Jordan",
+  FALSE,
+  &my_locale_typelib_month_names_ar_JO,
+  &my_locale_typelib_ab_month_names_ar_JO,
+  &my_locale_typelib_day_names_ar_JO,
+  &my_locale_typelib_ab_day_names_ar_JO
+);
 /***** LOCALE END ar_JO *****/
 
 /***** LOCALE BEGIN ar_SA: Arabic - Saudi Arabia *****/
@@ -112,7 +131,17 @@ static TYPELIB my_locale_typelib_day_names_ar_SA =
  { array_elements(my_locale_day_names_ar_SA)-1, "", my_locale_day_names_ar_SA, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_ar_SA = 
  { array_elements(my_locale_ab_day_names_ar_SA)-1, "", my_locale_ab_day_names_ar_SA, NULL };
-MY_LOCALE my_locale_ar_SA ( "ar_SA", "Arabic - Saudi Arabia", FALSE, &my_locale_typelib_month_names_ar_SA, &my_locale_typelib_ab_month_names_ar_SA, &my_locale_typelib_day_names_ar_SA, &my_locale_typelib_ab_day_names_ar_SA );
+MY_LOCALE my_locale_ar_SA
+(
+  9,
+  "ar_SA",
+  "Arabic - Saudi Arabia",
+  FALSE,
+  &my_locale_typelib_month_names_ar_SA,
+  &my_locale_typelib_ab_month_names_ar_SA,
+  &my_locale_typelib_day_names_ar_SA,
+  &my_locale_typelib_ab_day_names_ar_SA
+);
 /***** LOCALE END ar_SA *****/
 
 /***** LOCALE BEGIN ar_SY: Arabic - Syria *****/
@@ -132,7 +161,17 @@ static TYPELIB my_locale_typelib_day_names_ar_SY =
  { array_elements(my_locale_day_names_ar_SY)-1, "", my_locale_day_names_ar_SY, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_ar_SY = 
  { array_elements(my_locale_ab_day_names_ar_SY)-1, "", my_locale_ab_day_names_ar_SY, NULL };
-MY_LOCALE my_locale_ar_SY ( "ar_SY", "Arabic - Syria", FALSE, &my_locale_typelib_month_names_ar_SY, &my_locale_typelib_ab_month_names_ar_SY, &my_locale_typelib_day_names_ar_SY, &my_locale_typelib_ab_day_names_ar_SY );
+MY_LOCALE my_locale_ar_SY
+(
+  10,
+  "ar_SY",
+  "Arabic - Syria",
+  FALSE,
+  &my_locale_typelib_month_names_ar_SY,
+  &my_locale_typelib_ab_month_names_ar_SY,
+  &my_locale_typelib_day_names_ar_SY,
+  &my_locale_typelib_ab_day_names_ar_SY
+);
 /***** LOCALE END ar_SY *****/
 
 /***** LOCALE BEGIN be_BY: Belarusian - Belarus *****/
@@ -152,7 +191,17 @@ static TYPELIB my_locale_typelib_day_names_be_BY =
  { array_elements(my_locale_day_names_be_BY)-1, "", my_locale_day_names_be_BY, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_be_BY = 
  { array_elements(my_locale_ab_day_names_be_BY)-1, "", my_locale_ab_day_names_be_BY, NULL };
-MY_LOCALE my_locale_be_BY ( "be_BY", "Belarusian - Belarus", FALSE, &my_locale_typelib_month_names_be_BY, &my_locale_typelib_ab_month_names_be_BY, &my_locale_typelib_day_names_be_BY, &my_locale_typelib_ab_day_names_be_BY );
+MY_LOCALE my_locale_be_BY
+(
+  11,
+  "be_BY",
+  "Belarusian - Belarus",
+  FALSE,
+  &my_locale_typelib_month_names_be_BY,
+  &my_locale_typelib_ab_month_names_be_BY,
+  &my_locale_typelib_day_names_be_BY,
+  &my_locale_typelib_ab_day_names_be_BY
+);
 /***** LOCALE END be_BY *****/
 
 /***** LOCALE BEGIN bg_BG: Bulgarian - Bulgaria *****/
@@ -172,7 +221,17 @@ static TYPELIB my_locale_typelib_day_names_bg_BG =
  { array_elements(my_locale_day_names_bg_BG)-1, "", my_locale_day_names_bg_BG, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_bg_BG = 
  { array_elements(my_locale_ab_day_names_bg_BG)-1, "", my_locale_ab_day_names_bg_BG, NULL };
-MY_LOCALE my_locale_bg_BG ( "bg_BG", "Bulgarian - Bulgaria", FALSE, &my_locale_typelib_month_names_bg_BG, &my_locale_typelib_ab_month_names_bg_BG, &my_locale_typelib_day_names_bg_BG, &my_locale_typelib_ab_day_names_bg_BG );
+MY_LOCALE my_locale_bg_BG
+(
+  12,
+  "bg_BG",
+  "Bulgarian - Bulgaria",
+  FALSE,
+  &my_locale_typelib_month_names_bg_BG,
+  &my_locale_typelib_ab_month_names_bg_BG,
+  &my_locale_typelib_day_names_bg_BG,
+  &my_locale_typelib_ab_day_names_bg_BG
+);
 /***** LOCALE END bg_BG *****/
 
 /***** LOCALE BEGIN ca_ES: Catalan - Catalan *****/
@@ -192,7 +251,17 @@ static TYPELIB my_locale_typelib_day_names_ca_ES =
  { array_elements(my_locale_day_names_ca_ES)-1, "", my_locale_day_names_ca_ES, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_ca_ES = 
  { array_elements(my_locale_ab_day_names_ca_ES)-1, "", my_locale_ab_day_names_ca_ES, NULL };
-MY_LOCALE my_locale_ca_ES ( "ca_ES", "Catalan - Catalan", FALSE, &my_locale_typelib_month_names_ca_ES, &my_locale_typelib_ab_month_names_ca_ES, &my_locale_typelib_day_names_ca_ES, &my_locale_typelib_ab_day_names_ca_ES );
+MY_LOCALE my_locale_ca_ES
+(
+  13,
+  "ca_ES",
+  "Catalan - Catalan",
+  FALSE,
+  &my_locale_typelib_month_names_ca_ES,
+  &my_locale_typelib_ab_month_names_ca_ES,
+  &my_locale_typelib_day_names_ca_ES,
+  &my_locale_typelib_ab_day_names_ca_ES
+);
 /***** LOCALE END ca_ES *****/
 
 /***** LOCALE BEGIN cs_CZ: Czech - Czech Republic *****/
@@ -212,7 +281,17 @@ static TYPELIB my_locale_typelib_day_names_cs_CZ =
  { array_elements(my_locale_day_names_cs_CZ)-1, "", my_locale_day_names_cs_CZ, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_cs_CZ = 
  { array_elements(my_locale_ab_day_names_cs_CZ)-1, "", my_locale_ab_day_names_cs_CZ, NULL };
-MY_LOCALE my_locale_cs_CZ ( "cs_CZ", "Czech - Czech Republic", FALSE, &my_locale_typelib_month_names_cs_CZ, &my_locale_typelib_ab_month_names_cs_CZ, &my_locale_typelib_day_names_cs_CZ, &my_locale_typelib_ab_day_names_cs_CZ );
+MY_LOCALE my_locale_cs_CZ
+(
+  14,
+  "cs_CZ",
+  "Czech - Czech Republic",
+  FALSE,
+  &my_locale_typelib_month_names_cs_CZ,
+  &my_locale_typelib_ab_month_names_cs_CZ,
+  &my_locale_typelib_day_names_cs_CZ,
+  &my_locale_typelib_ab_day_names_cs_CZ
+);
 /***** LOCALE END cs_CZ *****/
 
 /***** LOCALE BEGIN da_DK: Danish - Denmark *****/
@@ -232,7 +311,17 @@ static TYPELIB my_locale_typelib_day_names_da_DK =
  { array_elements(my_locale_day_names_da_DK)-1, "", my_locale_day_names_da_DK, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_da_DK = 
  { array_elements(my_locale_ab_day_names_da_DK)-1, "", my_locale_ab_day_names_da_DK, NULL };
-MY_LOCALE my_locale_da_DK ( "da_DK", "Danish - Denmark", FALSE, &my_locale_typelib_month_names_da_DK, &my_locale_typelib_ab_month_names_da_DK, &my_locale_typelib_day_names_da_DK, &my_locale_typelib_ab_day_names_da_DK );
+MY_LOCALE my_locale_da_DK
+(
+  15,
+  "da_DK",
+  "Danish - Denmark",
+  FALSE,
+  &my_locale_typelib_month_names_da_DK,
+  &my_locale_typelib_ab_month_names_da_DK,
+  &my_locale_typelib_day_names_da_DK,
+  &my_locale_typelib_ab_day_names_da_DK
+);
 /***** LOCALE END da_DK *****/
 
 /***** LOCALE BEGIN de_AT: German - Austria *****/
@@ -252,7 +341,17 @@ static TYPELIB my_locale_typelib_day_names_de_AT =
  { array_elements(my_locale_day_names_de_AT)-1, "", my_locale_day_names_de_AT, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_de_AT = 
  { array_elements(my_locale_ab_day_names_de_AT)-1, "", my_locale_ab_day_names_de_AT, NULL };
-MY_LOCALE my_locale_de_AT ( "de_AT", "German - Austria", FALSE, &my_locale_typelib_month_names_de_AT, &my_locale_typelib_ab_month_names_de_AT, &my_locale_typelib_day_names_de_AT, &my_locale_typelib_ab_day_names_de_AT );
+MY_LOCALE my_locale_de_AT
+(
+  16,
+  "de_AT",
+  "German - Austria",
+  FALSE,
+  &my_locale_typelib_month_names_de_AT,
+  &my_locale_typelib_ab_month_names_de_AT,
+  &my_locale_typelib_day_names_de_AT,
+  &my_locale_typelib_ab_day_names_de_AT
+);
 /***** LOCALE END de_AT *****/
 
 /***** LOCALE BEGIN de_DE: German - Germany *****/
@@ -272,7 +371,17 @@ static TYPELIB my_locale_typelib_day_names_de_DE =
  { array_elements(my_locale_day_names_de_DE)-1, "", my_locale_day_names_de_DE, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_de_DE = 
  { array_elements(my_locale_ab_day_names_de_DE)-1, "", my_locale_ab_day_names_de_DE, NULL };
-MY_LOCALE my_locale_de_DE ( "de_DE", "German - Germany", FALSE, &my_locale_typelib_month_names_de_DE, &my_locale_typelib_ab_month_names_de_DE, &my_locale_typelib_day_names_de_DE, &my_locale_typelib_ab_day_names_de_DE );
+MY_LOCALE my_locale_de_DE
+(
+  4,
+  "de_DE",
+  "German - Germany",
+  FALSE,
+  &my_locale_typelib_month_names_de_DE,
+  &my_locale_typelib_ab_month_names_de_DE,
+  &my_locale_typelib_day_names_de_DE,
+  &my_locale_typelib_ab_day_names_de_DE
+);
 /***** LOCALE END de_DE *****/
 
 /***** LOCALE BEGIN en_US: English - United States *****/
@@ -292,7 +401,17 @@ static TYPELIB my_locale_typelib_day_names_en_US =
  { array_elements(my_locale_day_names_en_US)-1, "", my_locale_day_names_en_US, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_en_US = 
  { array_elements(my_locale_ab_day_names_en_US)-1, "", my_locale_ab_day_names_en_US, NULL };
-MY_LOCALE my_locale_en_US ( "en_US", "English - United States", TRUE, &my_locale_typelib_month_names_en_US, &my_locale_typelib_ab_month_names_en_US, &my_locale_typelib_day_names_en_US, &my_locale_typelib_ab_day_names_en_US );
+MY_LOCALE my_locale_en_US
+(
+  0,
+  "en_US",
+  "English - United States",
+  TRUE,
+  &my_locale_typelib_month_names_en_US,
+  &my_locale_typelib_ab_month_names_en_US,
+  &my_locale_typelib_day_names_en_US,
+  &my_locale_typelib_ab_day_names_en_US
+);
 /***** LOCALE END en_US *****/
 
 /***** LOCALE BEGIN es_ES: Spanish - Spain *****/
@@ -312,7 +431,17 @@ static TYPELIB my_locale_typelib_day_names_es_ES =
  { array_elements(my_locale_day_names_es_ES)-1, "", my_locale_day_names_es_ES, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_es_ES = 
  { array_elements(my_locale_ab_day_names_es_ES)-1, "", my_locale_ab_day_names_es_ES, NULL };
-MY_LOCALE my_locale_es_ES ( "es_ES", "Spanish - Spain", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_ES
+(
+  17,
+  "es_ES",
+  "Spanish - Spain",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_ES *****/
 
 /***** LOCALE BEGIN et_EE: Estonian - Estonia *****/
@@ -332,7 +461,17 @@ static TYPELIB my_locale_typelib_day_names_et_EE =
  { array_elements(my_locale_day_names_et_EE)-1, "", my_locale_day_names_et_EE, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_et_EE = 
  { array_elements(my_locale_ab_day_names_et_EE)-1, "", my_locale_ab_day_names_et_EE, NULL };
-MY_LOCALE my_locale_et_EE ( "et_EE", "Estonian - Estonia", FALSE, &my_locale_typelib_month_names_et_EE, &my_locale_typelib_ab_month_names_et_EE, &my_locale_typelib_day_names_et_EE, &my_locale_typelib_ab_day_names_et_EE );
+MY_LOCALE my_locale_et_EE
+(
+  18,
+  "et_EE",
+  "Estonian - Estonia",
+  FALSE,
+  &my_locale_typelib_month_names_et_EE,
+  &my_locale_typelib_ab_month_names_et_EE,
+  &my_locale_typelib_day_names_et_EE,
+  &my_locale_typelib_ab_day_names_et_EE
+);
 /***** LOCALE END et_EE *****/
 
 /***** LOCALE BEGIN eu_ES: Basque - Basque *****/
@@ -352,7 +491,17 @@ static TYPELIB my_locale_typelib_day_names_eu_ES =
  { array_elements(my_locale_day_names_eu_ES)-1, "", my_locale_day_names_eu_ES, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_eu_ES = 
  { array_elements(my_locale_ab_day_names_eu_ES)-1, "", my_locale_ab_day_names_eu_ES, NULL };
-MY_LOCALE my_locale_eu_ES ( "eu_ES", "Basque - Basque", TRUE, &my_locale_typelib_month_names_eu_ES, &my_locale_typelib_ab_month_names_eu_ES, &my_locale_typelib_day_names_eu_ES, &my_locale_typelib_ab_day_names_eu_ES );
+MY_LOCALE my_locale_eu_ES
+(
+  19,
+  "eu_ES",
+  "Basque - Basque",
+  TRUE,
+  &my_locale_typelib_month_names_eu_ES,
+  &my_locale_typelib_ab_month_names_eu_ES,
+  &my_locale_typelib_day_names_eu_ES,
+  &my_locale_typelib_ab_day_names_eu_ES
+);
 /***** LOCALE END eu_ES *****/
 
 /***** LOCALE BEGIN fi_FI: Finnish - Finland *****/
@@ -372,7 +521,17 @@ static TYPELIB my_locale_typelib_day_names_fi_FI =
  { array_elements(my_locale_day_names_fi_FI)-1, "", my_locale_day_names_fi_FI, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_fi_FI = 
  { array_elements(my_locale_ab_day_names_fi_FI)-1, "", my_locale_ab_day_names_fi_FI, NULL };
-MY_LOCALE my_locale_fi_FI ( "fi_FI", "Finnish - Finland", FALSE, &my_locale_typelib_month_names_fi_FI, &my_locale_typelib_ab_month_names_fi_FI, &my_locale_typelib_day_names_fi_FI, &my_locale_typelib_ab_day_names_fi_FI );
+MY_LOCALE my_locale_fi_FI
+(
+  20,
+  "fi_FI",
+  "Finnish - Finland",
+  FALSE,
+  &my_locale_typelib_month_names_fi_FI,
+  &my_locale_typelib_ab_month_names_fi_FI,
+  &my_locale_typelib_day_names_fi_FI,
+  &my_locale_typelib_ab_day_names_fi_FI
+);
 /***** LOCALE END fi_FI *****/
 
 /***** LOCALE BEGIN fo_FO: Faroese - Faroe Islands *****/
@@ -392,7 +551,17 @@ static TYPELIB my_locale_typelib_day_names_fo_FO =
  { array_elements(my_locale_day_names_fo_FO)-1, "", my_locale_day_names_fo_FO, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_fo_FO = 
  { array_elements(my_locale_ab_day_names_fo_FO)-1, "", my_locale_ab_day_names_fo_FO, NULL };
-MY_LOCALE my_locale_fo_FO ( "fo_FO", "Faroese - Faroe Islands", FALSE, &my_locale_typelib_month_names_fo_FO, &my_locale_typelib_ab_month_names_fo_FO, &my_locale_typelib_day_names_fo_FO, &my_locale_typelib_ab_day_names_fo_FO );
+MY_LOCALE my_locale_fo_FO
+(
+  21,
+  "fo_FO",
+  "Faroese - Faroe Islands",
+  FALSE,
+  &my_locale_typelib_month_names_fo_FO,
+  &my_locale_typelib_ab_month_names_fo_FO,
+  &my_locale_typelib_day_names_fo_FO,
+  &my_locale_typelib_ab_day_names_fo_FO
+);
 /***** LOCALE END fo_FO *****/
 
 /***** LOCALE BEGIN fr_FR: French - France *****/
@@ -412,7 +581,17 @@ static TYPELIB my_locale_typelib_day_names_fr_FR =
  { array_elements(my_locale_day_names_fr_FR)-1, "", my_locale_day_names_fr_FR, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_fr_FR = 
  { array_elements(my_locale_ab_day_names_fr_FR)-1, "", my_locale_ab_day_names_fr_FR, NULL };
-MY_LOCALE my_locale_fr_FR ( "fr_FR", "French - France", FALSE, &my_locale_typelib_month_names_fr_FR, &my_locale_typelib_ab_month_names_fr_FR, &my_locale_typelib_day_names_fr_FR, &my_locale_typelib_ab_day_names_fr_FR );
+MY_LOCALE my_locale_fr_FR
+(
+  5,
+  "fr_FR",
+  "French - France",
+  FALSE,
+  &my_locale_typelib_month_names_fr_FR,
+  &my_locale_typelib_ab_month_names_fr_FR,
+  &my_locale_typelib_day_names_fr_FR,
+  &my_locale_typelib_ab_day_names_fr_FR
+);
 /***** LOCALE END fr_FR *****/
 
 /***** LOCALE BEGIN gl_ES: Galician - Galician *****/
@@ -432,7 +611,17 @@ static TYPELIB my_locale_typelib_day_names_gl_ES =
  { array_elements(my_locale_day_names_gl_ES)-1, "", my_locale_day_names_gl_ES, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_gl_ES = 
  { array_elements(my_locale_ab_day_names_gl_ES)-1, "", my_locale_ab_day_names_gl_ES, NULL };
-MY_LOCALE my_locale_gl_ES ( "gl_ES", "Galician - Galician", FALSE, &my_locale_typelib_month_names_gl_ES, &my_locale_typelib_ab_month_names_gl_ES, &my_locale_typelib_day_names_gl_ES, &my_locale_typelib_ab_day_names_gl_ES );
+MY_LOCALE my_locale_gl_ES
+(
+  22,
+  "gl_ES",
+  "Galician - Galician",
+  FALSE,
+  &my_locale_typelib_month_names_gl_ES,
+  &my_locale_typelib_ab_month_names_gl_ES,
+  &my_locale_typelib_day_names_gl_ES,
+  &my_locale_typelib_ab_day_names_gl_ES
+);
 /***** LOCALE END gl_ES *****/
 
 /***** LOCALE BEGIN gu_IN: Gujarati - India *****/
@@ -452,7 +641,17 @@ static TYPELIB my_locale_typelib_day_names_gu_IN =
  { array_elements(my_locale_day_names_gu_IN)-1, "", my_locale_day_names_gu_IN, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_gu_IN = 
  { array_elements(my_locale_ab_day_names_gu_IN)-1, "", my_locale_ab_day_names_gu_IN, NULL };
-MY_LOCALE my_locale_gu_IN ( "gu_IN", "Gujarati - India", FALSE, &my_locale_typelib_month_names_gu_IN, &my_locale_typelib_ab_month_names_gu_IN, &my_locale_typelib_day_names_gu_IN, &my_locale_typelib_ab_day_names_gu_IN );
+MY_LOCALE my_locale_gu_IN
+(
+  23,
+  "gu_IN",
+  "Gujarati - India",
+  FALSE,
+  &my_locale_typelib_month_names_gu_IN,
+  &my_locale_typelib_ab_month_names_gu_IN,
+  &my_locale_typelib_day_names_gu_IN,
+  &my_locale_typelib_ab_day_names_gu_IN
+);
 /***** LOCALE END gu_IN *****/
 
 /***** LOCALE BEGIN he_IL: Hebrew - Israel *****/
@@ -472,7 +671,17 @@ static TYPELIB my_locale_typelib_day_names_he_IL =
  { array_elements(my_locale_day_names_he_IL)-1, "", my_locale_day_names_he_IL, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_he_IL = 
  { array_elements(my_locale_ab_day_names_he_IL)-1, "", my_locale_ab_day_names_he_IL, NULL };
-MY_LOCALE my_locale_he_IL ( "he_IL", "Hebrew - Israel", FALSE, &my_locale_typelib_month_names_he_IL, &my_locale_typelib_ab_month_names_he_IL, &my_locale_typelib_day_names_he_IL, &my_locale_typelib_ab_day_names_he_IL );
+MY_LOCALE my_locale_he_IL
+(
+  24,
+  "he_IL",
+  "Hebrew - Israel",
+  FALSE,
+  &my_locale_typelib_month_names_he_IL,
+  &my_locale_typelib_ab_month_names_he_IL,
+  &my_locale_typelib_day_names_he_IL,
+  &my_locale_typelib_ab_day_names_he_IL
+);
 /***** LOCALE END he_IL *****/
 
 /***** LOCALE BEGIN hi_IN: Hindi - India *****/
@@ -492,7 +701,17 @@ static TYPELIB my_locale_typelib_day_names_hi_IN =
  { array_elements(my_locale_day_names_hi_IN)-1, "", my_locale_day_names_hi_IN, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_hi_IN = 
  { array_elements(my_locale_ab_day_names_hi_IN)-1, "", my_locale_ab_day_names_hi_IN, NULL };
-MY_LOCALE my_locale_hi_IN ( "hi_IN", "Hindi - India", FALSE, &my_locale_typelib_month_names_hi_IN, &my_locale_typelib_ab_month_names_hi_IN, &my_locale_typelib_day_names_hi_IN, &my_locale_typelib_ab_day_names_hi_IN );
+MY_LOCALE my_locale_hi_IN
+(
+  25,
+  "hi_IN",
+  "Hindi - India",
+  FALSE,
+  &my_locale_typelib_month_names_hi_IN,
+  &my_locale_typelib_ab_month_names_hi_IN,
+  &my_locale_typelib_day_names_hi_IN,
+  &my_locale_typelib_ab_day_names_hi_IN
+);
 /***** LOCALE END hi_IN *****/
 
 /***** LOCALE BEGIN hr_HR: Croatian - Croatia *****/
@@ -512,7 +731,17 @@ static TYPELIB my_locale_typelib_day_names_hr_HR =
  { array_elements(my_locale_day_names_hr_HR)-1, "", my_locale_day_names_hr_HR, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_hr_HR = 
  { array_elements(my_locale_ab_day_names_hr_HR)-1, "", my_locale_ab_day_names_hr_HR, NULL };
-MY_LOCALE my_locale_hr_HR ( "hr_HR", "Croatian - Croatia", FALSE, &my_locale_typelib_month_names_hr_HR, &my_locale_typelib_ab_month_names_hr_HR, &my_locale_typelib_day_names_hr_HR, &my_locale_typelib_ab_day_names_hr_HR );
+MY_LOCALE my_locale_hr_HR
+(
+  26,
+  "hr_HR",
+  "Croatian - Croatia",
+  FALSE,
+  &my_locale_typelib_month_names_hr_HR,
+  &my_locale_typelib_ab_month_names_hr_HR,
+  &my_locale_typelib_day_names_hr_HR,
+  &my_locale_typelib_ab_day_names_hr_HR
+);
 /***** LOCALE END hr_HR *****/
 
 /***** LOCALE BEGIN hu_HU: Hungarian - Hungary *****/
@@ -532,7 +761,17 @@ static TYPELIB my_locale_typelib_day_names_hu_HU =
  { array_elements(my_locale_day_names_hu_HU)-1, "", my_locale_day_names_hu_HU, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_hu_HU = 
  { array_elements(my_locale_ab_day_names_hu_HU)-1, "", my_locale_ab_day_names_hu_HU, NULL };
-MY_LOCALE my_locale_hu_HU ( "hu_HU", "Hungarian - Hungary", FALSE, &my_locale_typelib_month_names_hu_HU, &my_locale_typelib_ab_month_names_hu_HU, &my_locale_typelib_day_names_hu_HU, &my_locale_typelib_ab_day_names_hu_HU );
+MY_LOCALE my_locale_hu_HU
+(
+  27,
+  "hu_HU",
+  "Hungarian - Hungary",
+  FALSE,
+  &my_locale_typelib_month_names_hu_HU,
+  &my_locale_typelib_ab_month_names_hu_HU,
+  &my_locale_typelib_day_names_hu_HU,
+  &my_locale_typelib_ab_day_names_hu_HU
+);
 /***** LOCALE END hu_HU *****/
 
 /***** LOCALE BEGIN id_ID: Indonesian - Indonesia *****/
@@ -552,7 +791,17 @@ static TYPELIB my_locale_typelib_day_names_id_ID =
  { array_elements(my_locale_day_names_id_ID)-1, "", my_locale_day_names_id_ID, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_id_ID = 
  { array_elements(my_locale_ab_day_names_id_ID)-1, "", my_locale_ab_day_names_id_ID, NULL };
-MY_LOCALE my_locale_id_ID ( "id_ID", "Indonesian - Indonesia", TRUE, &my_locale_typelib_month_names_id_ID, &my_locale_typelib_ab_month_names_id_ID, &my_locale_typelib_day_names_id_ID, &my_locale_typelib_ab_day_names_id_ID );
+MY_LOCALE my_locale_id_ID
+(
+  28,
+  "id_ID",
+  "Indonesian - Indonesia",
+  TRUE,
+  &my_locale_typelib_month_names_id_ID,
+  &my_locale_typelib_ab_month_names_id_ID,
+  &my_locale_typelib_day_names_id_ID,
+  &my_locale_typelib_ab_day_names_id_ID
+);
 /***** LOCALE END id_ID *****/
 
 /***** LOCALE BEGIN is_IS: Icelandic - Iceland *****/
@@ -572,7 +821,17 @@ static TYPELIB my_locale_typelib_day_names_is_IS =
  { array_elements(my_locale_day_names_is_IS)-1, "", my_locale_day_names_is_IS, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_is_IS = 
  { array_elements(my_locale_ab_day_names_is_IS)-1, "", my_locale_ab_day_names_is_IS, NULL };
-MY_LOCALE my_locale_is_IS ( "is_IS", "Icelandic - Iceland", FALSE, &my_locale_typelib_month_names_is_IS, &my_locale_typelib_ab_month_names_is_IS, &my_locale_typelib_day_names_is_IS, &my_locale_typelib_ab_day_names_is_IS );
+MY_LOCALE my_locale_is_IS
+(
+  29,
+  "is_IS",
+  "Icelandic - Iceland",
+  FALSE,
+  &my_locale_typelib_month_names_is_IS,
+  &my_locale_typelib_ab_month_names_is_IS,
+  &my_locale_typelib_day_names_is_IS,
+  &my_locale_typelib_ab_day_names_is_IS
+);
 /***** LOCALE END is_IS *****/
 
 /***** LOCALE BEGIN it_CH: Italian - Switzerland *****/
@@ -592,7 +851,17 @@ static TYPELIB my_locale_typelib_day_names_it_CH =
  { array_elements(my_locale_day_names_it_CH)-1, "", my_locale_day_names_it_CH, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_it_CH = 
  { array_elements(my_locale_ab_day_names_it_CH)-1, "", my_locale_ab_day_names_it_CH, NULL };
-MY_LOCALE my_locale_it_CH ( "it_CH", "Italian - Switzerland", FALSE, &my_locale_typelib_month_names_it_CH, &my_locale_typelib_ab_month_names_it_CH, &my_locale_typelib_day_names_it_CH, &my_locale_typelib_ab_day_names_it_CH );
+MY_LOCALE my_locale_it_CH
+(
+  30,
+  "it_CH",
+  "Italian - Switzerland",
+  FALSE,
+  &my_locale_typelib_month_names_it_CH,
+  &my_locale_typelib_ab_month_names_it_CH,
+  &my_locale_typelib_day_names_it_CH,
+  &my_locale_typelib_ab_day_names_it_CH
+);
 /***** LOCALE END it_CH *****/
 
 /***** LOCALE BEGIN ja_JP: Japanese - Japan *****/
@@ -612,7 +881,17 @@ static TYPELIB my_locale_typelib_day_names_ja_JP =
  { array_elements(my_locale_day_names_ja_JP)-1, "", my_locale_day_names_ja_JP, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_ja_JP = 
  { array_elements(my_locale_ab_day_names_ja_JP)-1, "", my_locale_ab_day_names_ja_JP, NULL };
-MY_LOCALE my_locale_ja_JP ( "ja_JP", "Japanese - Japan", FALSE, &my_locale_typelib_month_names_ja_JP, &my_locale_typelib_ab_month_names_ja_JP, &my_locale_typelib_day_names_ja_JP, &my_locale_typelib_ab_day_names_ja_JP );
+MY_LOCALE my_locale_ja_JP
+(
+  2,
+  "ja_JP",
+  "Japanese - Japan",
+  FALSE,
+  &my_locale_typelib_month_names_ja_JP,
+  &my_locale_typelib_ab_month_names_ja_JP,
+  &my_locale_typelib_day_names_ja_JP,
+  &my_locale_typelib_ab_day_names_ja_JP
+);
 /***** LOCALE END ja_JP *****/
 
 /***** LOCALE BEGIN ko_KR: Korean - Korea *****/
@@ -632,7 +911,17 @@ static TYPELIB my_locale_typelib_day_names_ko_KR =
  { array_elements(my_locale_day_names_ko_KR)-1, "", my_locale_day_names_ko_KR, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_ko_KR = 
  { array_elements(my_locale_ab_day_names_ko_KR)-1, "", my_locale_ab_day_names_ko_KR, NULL };
-MY_LOCALE my_locale_ko_KR ( "ko_KR", "Korean - Korea", FALSE, &my_locale_typelib_month_names_ko_KR, &my_locale_typelib_ab_month_names_ko_KR, &my_locale_typelib_day_names_ko_KR, &my_locale_typelib_ab_day_names_ko_KR );
+MY_LOCALE my_locale_ko_KR
+(
+  31,
+  "ko_KR",
+  "Korean - Korea",
+  FALSE,
+  &my_locale_typelib_month_names_ko_KR,
+  &my_locale_typelib_ab_month_names_ko_KR,
+  &my_locale_typelib_day_names_ko_KR,
+  &my_locale_typelib_ab_day_names_ko_KR
+);
 /***** LOCALE END ko_KR *****/
 
 /***** LOCALE BEGIN lt_LT: Lithuanian - Lithuania *****/
@@ -652,7 +941,17 @@ static TYPELIB my_locale_typelib_day_names_lt_LT =
  { array_elements(my_locale_day_names_lt_LT)-1, "", my_locale_day_names_lt_LT, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_lt_LT = 
  { array_elements(my_locale_ab_day_names_lt_LT)-1, "", my_locale_ab_day_names_lt_LT, NULL };
-MY_LOCALE my_locale_lt_LT ( "lt_LT", "Lithuanian - Lithuania", FALSE, &my_locale_typelib_month_names_lt_LT, &my_locale_typelib_ab_month_names_lt_LT, &my_locale_typelib_day_names_lt_LT, &my_locale_typelib_ab_day_names_lt_LT );
+MY_LOCALE my_locale_lt_LT
+(
+  32,
+  "lt_LT",
+  "Lithuanian - Lithuania",
+  FALSE,
+  &my_locale_typelib_month_names_lt_LT,
+  &my_locale_typelib_ab_month_names_lt_LT,
+  &my_locale_typelib_day_names_lt_LT,
+  &my_locale_typelib_ab_day_names_lt_LT
+);
 /***** LOCALE END lt_LT *****/
 
 /***** LOCALE BEGIN lv_LV: Latvian - Latvia *****/
@@ -672,7 +971,17 @@ static TYPELIB my_locale_typelib_day_names_lv_LV =
  { array_elements(my_locale_day_names_lv_LV)-1, "", my_locale_day_names_lv_LV, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_lv_LV = 
  { array_elements(my_locale_ab_day_names_lv_LV)-1, "", my_locale_ab_day_names_lv_LV, NULL };
-MY_LOCALE my_locale_lv_LV ( "lv_LV", "Latvian - Latvia", FALSE, &my_locale_typelib_month_names_lv_LV, &my_locale_typelib_ab_month_names_lv_LV, &my_locale_typelib_day_names_lv_LV, &my_locale_typelib_ab_day_names_lv_LV );
+MY_LOCALE my_locale_lv_LV
+(
+  33,
+  "lv_LV",
+  "Latvian - Latvia",
+  FALSE,
+  &my_locale_typelib_month_names_lv_LV,
+  &my_locale_typelib_ab_month_names_lv_LV,
+  &my_locale_typelib_day_names_lv_LV,
+  &my_locale_typelib_ab_day_names_lv_LV
+);
 /***** LOCALE END lv_LV *****/
 
 /***** LOCALE BEGIN mk_MK: Macedonian - FYROM *****/
@@ -692,7 +1001,17 @@ static TYPELIB my_locale_typelib_day_names_mk_MK =
  { array_elements(my_locale_day_names_mk_MK)-1, "", my_locale_day_names_mk_MK, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_mk_MK = 
  { array_elements(my_locale_ab_day_names_mk_MK)-1, "", my_locale_ab_day_names_mk_MK, NULL };
-MY_LOCALE my_locale_mk_MK ( "mk_MK", "Macedonian - FYROM", FALSE, &my_locale_typelib_month_names_mk_MK, &my_locale_typelib_ab_month_names_mk_MK, &my_locale_typelib_day_names_mk_MK, &my_locale_typelib_ab_day_names_mk_MK );
+MY_LOCALE my_locale_mk_MK
+(
+  34,
+  "mk_MK",
+  "Macedonian - FYROM",
+  FALSE,
+  &my_locale_typelib_month_names_mk_MK,
+  &my_locale_typelib_ab_month_names_mk_MK,
+  &my_locale_typelib_day_names_mk_MK,
+  &my_locale_typelib_ab_day_names_mk_MK
+);
 /***** LOCALE END mk_MK *****/
 
 /***** LOCALE BEGIN mn_MN: Mongolia - Mongolian *****/
@@ -712,7 +1031,17 @@ static TYPELIB my_locale_typelib_day_names_mn_MN =
  { array_elements(my_locale_day_names_mn_MN)-1, "", my_locale_day_names_mn_MN, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_mn_MN = 
  { array_elements(my_locale_ab_day_names_mn_MN)-1, "", my_locale_ab_day_names_mn_MN, NULL };
-MY_LOCALE my_locale_mn_MN ( "mn_MN", "Mongolia - Mongolian", FALSE, &my_locale_typelib_month_names_mn_MN, &my_locale_typelib_ab_month_names_mn_MN, &my_locale_typelib_day_names_mn_MN, &my_locale_typelib_ab_day_names_mn_MN );
+MY_LOCALE my_locale_mn_MN
+(
+  35,
+  "mn_MN",
+  "Mongolia - Mongolian",
+  FALSE,
+  &my_locale_typelib_month_names_mn_MN,
+  &my_locale_typelib_ab_month_names_mn_MN,
+  &my_locale_typelib_day_names_mn_MN,
+  &my_locale_typelib_ab_day_names_mn_MN
+);
 /***** LOCALE END mn_MN *****/
 
 /***** LOCALE BEGIN ms_MY: Malay - Malaysia *****/
@@ -732,7 +1061,17 @@ static TYPELIB my_locale_typelib_day_names_ms_MY =
  { array_elements(my_locale_day_names_ms_MY)-1, "", my_locale_day_names_ms_MY, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_ms_MY = 
  { array_elements(my_locale_ab_day_names_ms_MY)-1, "", my_locale_ab_day_names_ms_MY, NULL };
-MY_LOCALE my_locale_ms_MY ( "ms_MY", "Malay - Malaysia", TRUE, &my_locale_typelib_month_names_ms_MY, &my_locale_typelib_ab_month_names_ms_MY, &my_locale_typelib_day_names_ms_MY, &my_locale_typelib_ab_day_names_ms_MY );
+MY_LOCALE my_locale_ms_MY
+(
+  36,
+  "ms_MY",
+  "Malay - Malaysia",
+  TRUE,
+  &my_locale_typelib_month_names_ms_MY,
+  &my_locale_typelib_ab_month_names_ms_MY,
+  &my_locale_typelib_day_names_ms_MY,
+  &my_locale_typelib_ab_day_names_ms_MY
+);
 /***** LOCALE END ms_MY *****/
 
 /***** LOCALE BEGIN nb_NO: Norwegian(Bokml) - Norway *****/
@@ -752,7 +1091,17 @@ static TYPELIB my_locale_typelib_day_names_nb_NO =
  { array_elements(my_locale_day_names_nb_NO)-1, "", my_locale_day_names_nb_NO, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_nb_NO = 
  { array_elements(my_locale_ab_day_names_nb_NO)-1, "", my_locale_ab_day_names_nb_NO, NULL };
-MY_LOCALE my_locale_nb_NO ( "nb_NO", "Norwegian(Bokml) - Norway", FALSE, &my_locale_typelib_month_names_nb_NO, &my_locale_typelib_ab_month_names_nb_NO, &my_locale_typelib_day_names_nb_NO, &my_locale_typelib_ab_day_names_nb_NO );
+MY_LOCALE my_locale_nb_NO
+(
+  37,
+  "nb_NO",
+  "Norwegian(Bokml) - Norway",
+  FALSE,
+  &my_locale_typelib_month_names_nb_NO,
+  &my_locale_typelib_ab_month_names_nb_NO,
+  &my_locale_typelib_day_names_nb_NO,
+  &my_locale_typelib_ab_day_names_nb_NO
+);
 /***** LOCALE END nb_NO *****/
 
 /***** LOCALE BEGIN nl_NL: Dutch - The Netherlands *****/
@@ -772,7 +1121,17 @@ static TYPELIB my_locale_typelib_day_names_nl_NL =
  { array_elements(my_locale_day_names_nl_NL)-1, "", my_locale_day_names_nl_NL, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_nl_NL = 
  { array_elements(my_locale_ab_day_names_nl_NL)-1, "", my_locale_ab_day_names_nl_NL, NULL };
-MY_LOCALE my_locale_nl_NL ( "nl_NL", "Dutch - The Netherlands", TRUE, &my_locale_typelib_month_names_nl_NL, &my_locale_typelib_ab_month_names_nl_NL, &my_locale_typelib_day_names_nl_NL, &my_locale_typelib_ab_day_names_nl_NL );
+MY_LOCALE my_locale_nl_NL
+(
+  38,
+  "nl_NL",
+  "Dutch - The Netherlands",
+  TRUE,
+  &my_locale_typelib_month_names_nl_NL,
+  &my_locale_typelib_ab_month_names_nl_NL,
+  &my_locale_typelib_day_names_nl_NL,
+  &my_locale_typelib_ab_day_names_nl_NL
+);
 /***** LOCALE END nl_NL *****/
 
 /***** LOCALE BEGIN pl_PL: Polish - Poland *****/
@@ -792,7 +1151,17 @@ static TYPELIB my_locale_typelib_day_names_pl_PL =
  { array_elements(my_locale_day_names_pl_PL)-1, "", my_locale_day_names_pl_PL, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_pl_PL = 
  { array_elements(my_locale_ab_day_names_pl_PL)-1, "", my_locale_ab_day_names_pl_PL, NULL };
-MY_LOCALE my_locale_pl_PL ( "pl_PL", "Polish - Poland", FALSE, &my_locale_typelib_month_names_pl_PL, &my_locale_typelib_ab_month_names_pl_PL, &my_locale_typelib_day_names_pl_PL, &my_locale_typelib_ab_day_names_pl_PL );
+MY_LOCALE my_locale_pl_PL
+(
+  39,
+  "pl_PL",
+  "Polish - Poland",
+  FALSE,
+  &my_locale_typelib_month_names_pl_PL,
+  &my_locale_typelib_ab_month_names_pl_PL,
+  &my_locale_typelib_day_names_pl_PL,
+  &my_locale_typelib_ab_day_names_pl_PL
+);
 /***** LOCALE END pl_PL *****/
 
 /***** LOCALE BEGIN pt_BR: Portugese - Brazil *****/
@@ -812,7 +1181,17 @@ static TYPELIB my_locale_typelib_day_names_pt_BR =
  { array_elements(my_locale_day_names_pt_BR)-1, "", my_locale_day_names_pt_BR, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_pt_BR = 
  { array_elements(my_locale_ab_day_names_pt_BR)-1, "", my_locale_ab_day_names_pt_BR, NULL };
-MY_LOCALE my_locale_pt_BR ( "pt_BR", "Portugese - Brazil", FALSE, &my_locale_typelib_month_names_pt_BR, &my_locale_typelib_ab_month_names_pt_BR, &my_locale_typelib_day_names_pt_BR, &my_locale_typelib_ab_day_names_pt_BR );
+MY_LOCALE my_locale_pt_BR
+(
+  40,
+  "pt_BR",
+  "Portugese - Brazil",
+  FALSE,
+  &my_locale_typelib_month_names_pt_BR,
+  &my_locale_typelib_ab_month_names_pt_BR,
+  &my_locale_typelib_day_names_pt_BR,
+  &my_locale_typelib_ab_day_names_pt_BR
+);
 /***** LOCALE END pt_BR *****/
 
 /***** LOCALE BEGIN pt_PT: Portugese - Portugal *****/
@@ -832,7 +1211,17 @@ static TYPELIB my_locale_typelib_day_names_pt_PT =
  { array_elements(my_locale_day_names_pt_PT)-1, "", my_locale_day_names_pt_PT, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_pt_PT = 
  { array_elements(my_locale_ab_day_names_pt_PT)-1, "", my_locale_ab_day_names_pt_PT, NULL };
-MY_LOCALE my_locale_pt_PT ( "pt_PT", "Portugese - Portugal", FALSE, &my_locale_typelib_month_names_pt_PT, &my_locale_typelib_ab_month_names_pt_PT, &my_locale_typelib_day_names_pt_PT, &my_locale_typelib_ab_day_names_pt_PT );
+MY_LOCALE my_locale_pt_PT
+(
+  41,
+  "pt_PT",
+  "Portugese - Portugal",
+  FALSE,
+  &my_locale_typelib_month_names_pt_PT,
+  &my_locale_typelib_ab_month_names_pt_PT,
+  &my_locale_typelib_day_names_pt_PT,
+  &my_locale_typelib_ab_day_names_pt_PT
+);
 /***** LOCALE END pt_PT *****/
 
 /***** LOCALE BEGIN ro_RO: Romanian - Romania *****/
@@ -852,7 +1241,17 @@ static TYPELIB my_locale_typelib_day_names_ro_RO =
  { array_elements(my_locale_day_names_ro_RO)-1, "", my_locale_day_names_ro_RO, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_ro_RO = 
  { array_elements(my_locale_ab_day_names_ro_RO)-1, "", my_locale_ab_day_names_ro_RO, NULL };
-MY_LOCALE my_locale_ro_RO ( "ro_RO", "Romanian - Romania", FALSE, &my_locale_typelib_month_names_ro_RO, &my_locale_typelib_ab_month_names_ro_RO, &my_locale_typelib_day_names_ro_RO, &my_locale_typelib_ab_day_names_ro_RO );
+MY_LOCALE my_locale_ro_RO
+(
+  42,
+  "ro_RO",
+  "Romanian - Romania",
+  FALSE,
+  &my_locale_typelib_month_names_ro_RO,
+  &my_locale_typelib_ab_month_names_ro_RO,
+  &my_locale_typelib_day_names_ro_RO,
+  &my_locale_typelib_ab_day_names_ro_RO
+);
 /***** LOCALE END ro_RO *****/
 
 /***** LOCALE BEGIN ru_RU: Russian - Russia *****/
@@ -872,7 +1271,17 @@ static TYPELIB my_locale_typelib_day_names_ru_RU =
  { array_elements(my_locale_day_names_ru_RU)-1, "", my_locale_day_names_ru_RU, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_ru_RU = 
  { array_elements(my_locale_ab_day_names_ru_RU)-1, "", my_locale_ab_day_names_ru_RU, NULL };
-MY_LOCALE my_locale_ru_RU ( "ru_RU", "Russian - Russia", FALSE, &my_locale_typelib_month_names_ru_RU, &my_locale_typelib_ab_month_names_ru_RU, &my_locale_typelib_day_names_ru_RU, &my_locale_typelib_ab_day_names_ru_RU );
+MY_LOCALE my_locale_ru_RU
+(
+  43,
+  "ru_RU",
+  "Russian - Russia",
+  FALSE,
+  &my_locale_typelib_month_names_ru_RU,
+  &my_locale_typelib_ab_month_names_ru_RU,
+  &my_locale_typelib_day_names_ru_RU,
+  &my_locale_typelib_ab_day_names_ru_RU
+);
 /***** LOCALE END ru_RU *****/
 
 /***** LOCALE BEGIN ru_UA: Russian - Ukraine *****/
@@ -892,7 +1301,17 @@ static TYPELIB my_locale_typelib_day_names_ru_UA =
  { array_elements(my_locale_day_names_ru_UA)-1, "", my_locale_day_names_ru_UA, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_ru_UA = 
  { array_elements(my_locale_ab_day_names_ru_UA)-1, "", my_locale_ab_day_names_ru_UA, NULL };
-MY_LOCALE my_locale_ru_UA ( "ru_UA", "Russian - Ukraine", FALSE, &my_locale_typelib_month_names_ru_UA, &my_locale_typelib_ab_month_names_ru_UA, &my_locale_typelib_day_names_ru_UA, &my_locale_typelib_ab_day_names_ru_UA );
+MY_LOCALE my_locale_ru_UA
+(
+  44,
+  "ru_UA",
+  "Russian - Ukraine",
+  FALSE,
+  &my_locale_typelib_month_names_ru_UA,
+  &my_locale_typelib_ab_month_names_ru_UA,
+  &my_locale_typelib_day_names_ru_UA,
+  &my_locale_typelib_ab_day_names_ru_UA
+);
 /***** LOCALE END ru_UA *****/
 
 /***** LOCALE BEGIN sk_SK: Slovak - Slovakia *****/
@@ -912,7 +1331,17 @@ static TYPELIB my_locale_typelib_day_names_sk_SK =
  { array_elements(my_locale_day_names_sk_SK)-1, "", my_locale_day_names_sk_SK, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_sk_SK = 
  { array_elements(my_locale_ab_day_names_sk_SK)-1, "", my_locale_ab_day_names_sk_SK, NULL };
-MY_LOCALE my_locale_sk_SK ( "sk_SK", "Slovak - Slovakia", FALSE, &my_locale_typelib_month_names_sk_SK, &my_locale_typelib_ab_month_names_sk_SK, &my_locale_typelib_day_names_sk_SK, &my_locale_typelib_ab_day_names_sk_SK );
+MY_LOCALE my_locale_sk_SK
+(
+  45,
+  "sk_SK",
+  "Slovak - Slovakia",
+  FALSE,
+  &my_locale_typelib_month_names_sk_SK,
+  &my_locale_typelib_ab_month_names_sk_SK,
+  &my_locale_typelib_day_names_sk_SK,
+  &my_locale_typelib_ab_day_names_sk_SK
+);
 /***** LOCALE END sk_SK *****/
 
 /***** LOCALE BEGIN sl_SI: Slovenian - Slovenia *****/
@@ -932,7 +1361,17 @@ static TYPELIB my_locale_typelib_day_names_sl_SI =
  { array_elements(my_locale_day_names_sl_SI)-1, "", my_locale_day_names_sl_SI, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_sl_SI = 
  { array_elements(my_locale_ab_day_names_sl_SI)-1, "", my_locale_ab_day_names_sl_SI, NULL };
-MY_LOCALE my_locale_sl_SI ( "sl_SI", "Slovenian - Slovenia", FALSE, &my_locale_typelib_month_names_sl_SI, &my_locale_typelib_ab_month_names_sl_SI, &my_locale_typelib_day_names_sl_SI, &my_locale_typelib_ab_day_names_sl_SI );
+MY_LOCALE my_locale_sl_SI
+(
+  46,
+  "sl_SI",
+  "Slovenian - Slovenia",
+  FALSE,
+  &my_locale_typelib_month_names_sl_SI,
+  &my_locale_typelib_ab_month_names_sl_SI,
+  &my_locale_typelib_day_names_sl_SI,
+  &my_locale_typelib_ab_day_names_sl_SI
+);
 /***** LOCALE END sl_SI *****/
 
 /***** LOCALE BEGIN sq_AL: Albanian - Albania *****/
@@ -952,7 +1391,17 @@ static TYPELIB my_locale_typelib_day_names_sq_AL =
  { array_elements(my_locale_day_names_sq_AL)-1, "", my_locale_day_names_sq_AL, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_sq_AL = 
  { array_elements(my_locale_ab_day_names_sq_AL)-1, "", my_locale_ab_day_names_sq_AL, NULL };
-MY_LOCALE my_locale_sq_AL ( "sq_AL", "Albanian - Albania", FALSE, &my_locale_typelib_month_names_sq_AL, &my_locale_typelib_ab_month_names_sq_AL, &my_locale_typelib_day_names_sq_AL, &my_locale_typelib_ab_day_names_sq_AL );
+MY_LOCALE my_locale_sq_AL
+(
+  47,
+  "sq_AL",
+  "Albanian - Albania",
+  FALSE,
+  &my_locale_typelib_month_names_sq_AL,
+  &my_locale_typelib_ab_month_names_sq_AL,
+  &my_locale_typelib_day_names_sq_AL,
+  &my_locale_typelib_ab_day_names_sq_AL
+);
 /***** LOCALE END sq_AL *****/
 
 /***** LOCALE BEGIN sr_YU: Servian - Yugoslavia *****/
@@ -972,7 +1421,17 @@ static TYPELIB my_locale_typelib_day_names_sr_YU =
  { array_elements(my_locale_day_names_sr_YU)-1, "", my_locale_day_names_sr_YU, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_sr_YU = 
  { array_elements(my_locale_ab_day_names_sr_YU)-1, "", my_locale_ab_day_names_sr_YU, NULL };
-MY_LOCALE my_locale_sr_YU ( "sr_YU", "Servian - Yugoslavia", FALSE, &my_locale_typelib_month_names_sr_YU, &my_locale_typelib_ab_month_names_sr_YU, &my_locale_typelib_day_names_sr_YU, &my_locale_typelib_ab_day_names_sr_YU );
+MY_LOCALE my_locale_sr_YU
+(
+  48,
+  "sr_YU",
+  "Servian - Yugoslavia",
+  FALSE,
+  &my_locale_typelib_month_names_sr_YU,
+  &my_locale_typelib_ab_month_names_sr_YU,
+  &my_locale_typelib_day_names_sr_YU,
+  &my_locale_typelib_ab_day_names_sr_YU
+);
 /***** LOCALE END sr_YU *****/
 
 /***** LOCALE BEGIN sv_SE: Swedish - Sweden *****/
@@ -992,7 +1451,17 @@ static TYPELIB my_locale_typelib_day_names_sv_SE =
  { array_elements(my_locale_day_names_sv_SE)-1, "", my_locale_day_names_sv_SE, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_sv_SE = 
  { array_elements(my_locale_ab_day_names_sv_SE)-1, "", my_locale_ab_day_names_sv_SE, NULL };
-MY_LOCALE my_locale_sv_SE ( "sv_SE", "Swedish - Sweden", FALSE, &my_locale_typelib_month_names_sv_SE, &my_locale_typelib_ab_month_names_sv_SE, &my_locale_typelib_day_names_sv_SE, &my_locale_typelib_ab_day_names_sv_SE );
+MY_LOCALE my_locale_sv_SE
+(
+  3,
+  "sv_SE",
+  "Swedish - Sweden",
+  FALSE,
+  &my_locale_typelib_month_names_sv_SE,
+  &my_locale_typelib_ab_month_names_sv_SE,
+  &my_locale_typelib_day_names_sv_SE,
+  &my_locale_typelib_ab_day_names_sv_SE
+);
 /***** LOCALE END sv_SE *****/
 
 /***** LOCALE BEGIN ta_IN: Tamil - India *****/
@@ -1012,7 +1481,17 @@ static TYPELIB my_locale_typelib_day_names_ta_IN =
  { array_elements(my_locale_day_names_ta_IN)-1, "", my_locale_day_names_ta_IN, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_ta_IN = 
  { array_elements(my_locale_ab_day_names_ta_IN)-1, "", my_locale_ab_day_names_ta_IN, NULL };
-MY_LOCALE my_locale_ta_IN ( "ta_IN", "Tamil - India", FALSE, &my_locale_typelib_month_names_ta_IN, &my_locale_typelib_ab_month_names_ta_IN, &my_locale_typelib_day_names_ta_IN, &my_locale_typelib_ab_day_names_ta_IN );
+MY_LOCALE my_locale_ta_IN
+(
+  49,
+  "ta_IN",
+  "Tamil - India",
+  FALSE,
+  &my_locale_typelib_month_names_ta_IN,
+  &my_locale_typelib_ab_month_names_ta_IN,
+  &my_locale_typelib_day_names_ta_IN,
+  &my_locale_typelib_ab_day_names_ta_IN
+);
 /***** LOCALE END ta_IN *****/
 
 /***** LOCALE BEGIN te_IN: Telugu - India *****/
@@ -1032,7 +1511,17 @@ static TYPELIB my_locale_typelib_day_names_te_IN =
  { array_elements(my_locale_day_names_te_IN)-1, "", my_locale_day_names_te_IN, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_te_IN = 
  { array_elements(my_locale_ab_day_names_te_IN)-1, "", my_locale_ab_day_names_te_IN, NULL };
-MY_LOCALE my_locale_te_IN ( "te_IN", "Telugu - India", FALSE, &my_locale_typelib_month_names_te_IN, &my_locale_typelib_ab_month_names_te_IN, &my_locale_typelib_day_names_te_IN, &my_locale_typelib_ab_day_names_te_IN );
+MY_LOCALE my_locale_te_IN
+(
+  50,
+  "te_IN",
+  "Telugu - India",
+  FALSE,
+  &my_locale_typelib_month_names_te_IN,
+  &my_locale_typelib_ab_month_names_te_IN,
+  &my_locale_typelib_day_names_te_IN,
+  &my_locale_typelib_ab_day_names_te_IN
+);
 /***** LOCALE END te_IN *****/
 
 /***** LOCALE BEGIN th_TH: Thai - Thailand *****/
@@ -1052,7 +1541,17 @@ static TYPELIB my_locale_typelib_day_names_th_TH =
  { array_elements(my_locale_day_names_th_TH)-1, "", my_locale_day_names_th_TH, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_th_TH = 
  { array_elements(my_locale_ab_day_names_th_TH)-1, "", my_locale_ab_day_names_th_TH, NULL };
-MY_LOCALE my_locale_th_TH ( "th_TH", "Thai - Thailand", FALSE, &my_locale_typelib_month_names_th_TH, &my_locale_typelib_ab_month_names_th_TH, &my_locale_typelib_day_names_th_TH, &my_locale_typelib_ab_day_names_th_TH );
+MY_LOCALE my_locale_th_TH
+(
+  51,
+  "th_TH",
+  "Thai - Thailand",
+  FALSE,
+  &my_locale_typelib_month_names_th_TH,
+  &my_locale_typelib_ab_month_names_th_TH,
+  &my_locale_typelib_day_names_th_TH,
+  &my_locale_typelib_ab_day_names_th_TH
+);
 /***** LOCALE END th_TH *****/
 
 /***** LOCALE BEGIN tr_TR: Turkish - Turkey *****/
@@ -1072,7 +1571,17 @@ static TYPELIB my_locale_typelib_day_names_tr_TR =
  { array_elements(my_locale_day_names_tr_TR)-1, "", my_locale_day_names_tr_TR, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_tr_TR = 
  { array_elements(my_locale_ab_day_names_tr_TR)-1, "", my_locale_ab_day_names_tr_TR, NULL };
-MY_LOCALE my_locale_tr_TR ( "tr_TR", "Turkish - Turkey", FALSE, &my_locale_typelib_month_names_tr_TR, &my_locale_typelib_ab_month_names_tr_TR, &my_locale_typelib_day_names_tr_TR, &my_locale_typelib_ab_day_names_tr_TR );
+MY_LOCALE my_locale_tr_TR
+(
+  52,
+  "tr_TR",
+  "Turkish - Turkey",
+  FALSE,
+  &my_locale_typelib_month_names_tr_TR,
+  &my_locale_typelib_ab_month_names_tr_TR,
+  &my_locale_typelib_day_names_tr_TR,
+  &my_locale_typelib_ab_day_names_tr_TR
+);
 /***** LOCALE END tr_TR *****/
 
 /***** LOCALE BEGIN uk_UA: Ukrainian - Ukraine *****/
@@ -1092,7 +1601,17 @@ static TYPELIB my_locale_typelib_day_names_uk_UA =
  { array_elements(my_locale_day_names_uk_UA)-1, "", my_locale_day_names_uk_UA, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_uk_UA = 
  { array_elements(my_locale_ab_day_names_uk_UA)-1, "", my_locale_ab_day_names_uk_UA, NULL };
-MY_LOCALE my_locale_uk_UA ( "uk_UA", "Ukrainian - Ukraine", FALSE, &my_locale_typelib_month_names_uk_UA, &my_locale_typelib_ab_month_names_uk_UA, &my_locale_typelib_day_names_uk_UA, &my_locale_typelib_ab_day_names_uk_UA );
+MY_LOCALE my_locale_uk_UA
+(
+  53,
+  "uk_UA",
+  "Ukrainian - Ukraine",
+  FALSE,
+  &my_locale_typelib_month_names_uk_UA,
+  &my_locale_typelib_ab_month_names_uk_UA,
+  &my_locale_typelib_day_names_uk_UA,
+  &my_locale_typelib_ab_day_names_uk_UA
+);
 /***** LOCALE END uk_UA *****/
 
 /***** LOCALE BEGIN ur_PK: Urdu - Pakistan *****/
@@ -1112,7 +1631,17 @@ static TYPELIB my_locale_typelib_day_names_ur_PK =
  { array_elements(my_locale_day_names_ur_PK)-1, "", my_locale_day_names_ur_PK, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_ur_PK = 
  { array_elements(my_locale_ab_day_names_ur_PK)-1, "", my_locale_ab_day_names_ur_PK, NULL };
-MY_LOCALE my_locale_ur_PK ( "ur_PK", "Urdu - Pakistan", FALSE, &my_locale_typelib_month_names_ur_PK, &my_locale_typelib_ab_month_names_ur_PK, &my_locale_typelib_day_names_ur_PK, &my_locale_typelib_ab_day_names_ur_PK );
+MY_LOCALE my_locale_ur_PK
+(
+  54,
+  "ur_PK",
+  "Urdu - Pakistan",
+  FALSE,
+  &my_locale_typelib_month_names_ur_PK,
+  &my_locale_typelib_ab_month_names_ur_PK,
+  &my_locale_typelib_day_names_ur_PK,
+  &my_locale_typelib_ab_day_names_ur_PK
+);
 /***** LOCALE END ur_PK *****/
 
 /***** LOCALE BEGIN vi_VN: Vietnamese - Vietnam *****/
@@ -1132,7 +1661,17 @@ static TYPELIB my_locale_typelib_day_names_vi_VN =
  { array_elements(my_locale_day_names_vi_VN)-1, "", my_locale_day_names_vi_VN, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_vi_VN = 
  { array_elements(my_locale_ab_day_names_vi_VN)-1, "", my_locale_ab_day_names_vi_VN, NULL };
-MY_LOCALE my_locale_vi_VN ( "vi_VN", "Vietnamese - Vietnam", FALSE, &my_locale_typelib_month_names_vi_VN, &my_locale_typelib_ab_month_names_vi_VN, &my_locale_typelib_day_names_vi_VN, &my_locale_typelib_ab_day_names_vi_VN );
+MY_LOCALE my_locale_vi_VN
+(
+  55,
+  "vi_VN",
+  "Vietnamese - Vietnam",
+  FALSE,
+  &my_locale_typelib_month_names_vi_VN,
+  &my_locale_typelib_ab_month_names_vi_VN,
+  &my_locale_typelib_day_names_vi_VN,
+  &my_locale_typelib_ab_day_names_vi_VN
+);
 /***** LOCALE END vi_VN *****/
 
 /***** LOCALE BEGIN zh_CN: Chinese - Peoples Republic of China *****/
@@ -1152,7 +1691,17 @@ static TYPELIB my_locale_typelib_day_names_zh_CN =
  { array_elements(my_locale_day_names_zh_CN)-1, "", my_locale_day_names_zh_CN, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_zh_CN = 
  { array_elements(my_locale_ab_day_names_zh_CN)-1, "", my_locale_ab_day_names_zh_CN, NULL };
-MY_LOCALE my_locale_zh_CN ( "zh_CN", "Chinese - Peoples Republic of China", FALSE, &my_locale_typelib_month_names_zh_CN, &my_locale_typelib_ab_month_names_zh_CN, &my_locale_typelib_day_names_zh_CN, &my_locale_typelib_ab_day_names_zh_CN );
+MY_LOCALE my_locale_zh_CN
+(
+  56,
+  "zh_CN",
+  "Chinese - Peoples Republic of China",
+  FALSE,
+  &my_locale_typelib_month_names_zh_CN,
+  &my_locale_typelib_ab_month_names_zh_CN,
+  &my_locale_typelib_day_names_zh_CN,
+  &my_locale_typelib_ab_day_names_zh_CN
+);
 /***** LOCALE END zh_CN *****/
 
 /***** LOCALE BEGIN zh_TW: Chinese - Taiwan *****/
@@ -1172,217 +1721,754 @@ static TYPELIB my_locale_typelib_day_names_zh_TW =
  { array_elements(my_locale_day_names_zh_TW)-1, "", my_locale_day_names_zh_TW, NULL };
 static TYPELIB my_locale_typelib_ab_day_names_zh_TW = 
  { array_elements(my_locale_ab_day_names_zh_TW)-1, "", my_locale_ab_day_names_zh_TW, NULL };
-MY_LOCALE my_locale_zh_TW ( "zh_TW", "Chinese - Taiwan", FALSE, &my_locale_typelib_month_names_zh_TW, &my_locale_typelib_ab_month_names_zh_TW, &my_locale_typelib_day_names_zh_TW, &my_locale_typelib_ab_day_names_zh_TW );
+MY_LOCALE my_locale_zh_TW
+(
+  57,
+  "zh_TW",
+  "Chinese - Taiwan",
+  FALSE,
+  &my_locale_typelib_month_names_zh_TW,
+  &my_locale_typelib_ab_month_names_zh_TW,
+  &my_locale_typelib_day_names_zh_TW,
+  &my_locale_typelib_ab_day_names_zh_TW
+);
 /***** LOCALE END zh_TW *****/
 
 /***** LOCALE BEGIN ar_DZ: Arabic - Algeria *****/
-MY_LOCALE my_locale_ar_DZ ( "ar_DZ", "Arabic - Algeria", FALSE, &my_locale_typelib_month_names_ar_BH, &my_locale_typelib_ab_month_names_ar_BH, &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH );
+MY_LOCALE my_locale_ar_DZ
+(
+  58,
+  "ar_DZ",
+  "Arabic - Algeria",
+  FALSE,
+  &my_locale_typelib_month_names_ar_BH,
+  &my_locale_typelib_ab_month_names_ar_BH,
+  &my_locale_typelib_day_names_ar_BH,
+  &my_locale_typelib_ab_day_names_ar_BH
+);
 /***** LOCALE END ar_DZ *****/
 
 /***** LOCALE BEGIN ar_EG: Arabic - Egypt *****/
-MY_LOCALE my_locale_ar_EG ( "ar_EG", "Arabic - Egypt", FALSE, &my_locale_typelib_month_names_ar_BH, &my_locale_typelib_ab_month_names_ar_BH, &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH );
+MY_LOCALE my_locale_ar_EG
+(
+  59,
+  "ar_EG",
+  "Arabic - Egypt",
+  FALSE,
+  &my_locale_typelib_month_names_ar_BH,
+  &my_locale_typelib_ab_month_names_ar_BH,
+  &my_locale_typelib_day_names_ar_BH,
+  &my_locale_typelib_ab_day_names_ar_BH
+);
 /***** LOCALE END ar_EG *****/
 
 /***** LOCALE BEGIN ar_IN: Arabic - Iran *****/
-MY_LOCALE my_locale_ar_IN ( "ar_IN", "Arabic - Iran", FALSE, &my_locale_typelib_month_names_ar_BH, &my_locale_typelib_ab_month_names_ar_BH, &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH );
+MY_LOCALE my_locale_ar_IN
+(
+  60,
+  "ar_IN",
+  "Arabic - Iran",
+  FALSE,
+  &my_locale_typelib_month_names_ar_BH,
+  &my_locale_typelib_ab_month_names_ar_BH,
+  &my_locale_typelib_day_names_ar_BH,
+  &my_locale_typelib_ab_day_names_ar_BH
+);
 /***** LOCALE END ar_IN *****/
 
 /***** LOCALE BEGIN ar_IQ: Arabic - Iraq *****/
-MY_LOCALE my_locale_ar_IQ ( "ar_IQ", "Arabic - Iraq", FALSE, &my_locale_typelib_month_names_ar_BH, &my_locale_typelib_ab_month_names_ar_BH, &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH );
+MY_LOCALE my_locale_ar_IQ
+(
+  61,
+  "ar_IQ",
+  "Arabic - Iraq",
+  FALSE,
+  &my_locale_typelib_month_names_ar_BH,
+  &my_locale_typelib_ab_month_names_ar_BH,
+  &my_locale_typelib_day_names_ar_BH,
+  &my_locale_typelib_ab_day_names_ar_BH
+);
 /***** LOCALE END ar_IQ *****/
 
 /***** LOCALE BEGIN ar_KW: Arabic - Kuwait *****/
-MY_LOCALE my_locale_ar_KW ( "ar_KW", "Arabic - Kuwait", FALSE, &my_locale_typelib_month_names_ar_BH, &my_locale_typelib_ab_month_names_ar_BH, &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH );
+MY_LOCALE my_locale_ar_KW
+(
+  62,
+  "ar_KW",
+  "Arabic - Kuwait",
+  FALSE,
+  &my_locale_typelib_month_names_ar_BH,
+  &my_locale_typelib_ab_month_names_ar_BH,
+  &my_locale_typelib_day_names_ar_BH,
+  &my_locale_typelib_ab_day_names_ar_BH
+);
 /***** LOCALE END ar_KW *****/
 
 /***** LOCALE BEGIN ar_LB: Arabic - Lebanon *****/
-MY_LOCALE my_locale_ar_LB ( "ar_LB", "Arabic - Lebanon", FALSE, &my_locale_typelib_month_names_ar_JO, &my_locale_typelib_ab_month_names_ar_JO, &my_locale_typelib_day_names_ar_JO, &my_locale_typelib_ab_day_names_ar_JO );
+MY_LOCALE my_locale_ar_LB
+(
+  63,
+  "ar_LB",
+  "Arabic - Lebanon",
+  FALSE,
+  &my_locale_typelib_month_names_ar_JO,
+  &my_locale_typelib_ab_month_names_ar_JO,
+  &my_locale_typelib_day_names_ar_JO,
+  &my_locale_typelib_ab_day_names_ar_JO
+);
 /***** LOCALE END ar_LB *****/
 
 /***** LOCALE BEGIN ar_LY: Arabic - Libya *****/
-MY_LOCALE my_locale_ar_LY ( "ar_LY", "Arabic - Libya", FALSE, &my_locale_typelib_month_names_ar_BH, &my_locale_typelib_ab_month_names_ar_BH, &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH );
+MY_LOCALE my_locale_ar_LY
+(
+  64,
+  "ar_LY",
+  "Arabic - Libya",
+  FALSE,
+  &my_locale_typelib_month_names_ar_BH,
+  &my_locale_typelib_ab_month_names_ar_BH,
+  &my_locale_typelib_day_names_ar_BH,
+  &my_locale_typelib_ab_day_names_ar_BH
+);
 /***** LOCALE END ar_LY *****/
 
 /***** LOCALE BEGIN ar_MA: Arabic - Morocco *****/
-MY_LOCALE my_locale_ar_MA ( "ar_MA", "Arabic - Morocco", FALSE, &my_locale_typelib_month_names_ar_BH, &my_locale_typelib_ab_month_names_ar_BH, &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH );
+MY_LOCALE my_locale_ar_MA
+(
+  65,
+  "ar_MA",
+  "Arabic - Morocco",
+  FALSE,
+  &my_locale_typelib_month_names_ar_BH,
+  &my_locale_typelib_ab_month_names_ar_BH,
+  &my_locale_typelib_day_names_ar_BH,
+  &my_locale_typelib_ab_day_names_ar_BH
+);
 /***** LOCALE END ar_MA *****/
 
 /***** LOCALE BEGIN ar_OM: Arabic - Oman *****/
-MY_LOCALE my_locale_ar_OM ( "ar_OM", "Arabic - Oman", FALSE, &my_locale_typelib_month_names_ar_BH, &my_locale_typelib_ab_month_names_ar_BH, &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH );
+MY_LOCALE my_locale_ar_OM
+(
+  66,
+  "ar_OM",
+  "Arabic - Oman",
+  FALSE,
+  &my_locale_typelib_month_names_ar_BH,
+  &my_locale_typelib_ab_month_names_ar_BH,
+  &my_locale_typelib_day_names_ar_BH,
+  &my_locale_typelib_ab_day_names_ar_BH
+);
 /***** LOCALE END ar_OM *****/
 
 /***** LOCALE BEGIN ar_QA: Arabic - Qatar *****/
-MY_LOCALE my_locale_ar_QA ( "ar_QA", "Arabic - Qatar", FALSE, &my_locale_typelib_month_names_ar_BH, &my_locale_typelib_ab_month_names_ar_BH, &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH );
+MY_LOCALE my_locale_ar_QA
+(
+  67,
+  "ar_QA",
+  "Arabic - Qatar",
+  FALSE,
+  &my_locale_typelib_month_names_ar_BH,
+  &my_locale_typelib_ab_month_names_ar_BH,
+  &my_locale_typelib_day_names_ar_BH,
+  &my_locale_typelib_ab_day_names_ar_BH
+);
 /***** LOCALE END ar_QA *****/
 
 /***** LOCALE BEGIN ar_SD: Arabic - Sudan *****/
-MY_LOCALE my_locale_ar_SD ( "ar_SD", "Arabic - Sudan", FALSE, &my_locale_typelib_month_names_ar_BH, &my_locale_typelib_ab_month_names_ar_BH, &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH );
+MY_LOCALE my_locale_ar_SD
+(
+  68,
+  "ar_SD",
+  "Arabic - Sudan",
+  FALSE,
+  &my_locale_typelib_month_names_ar_BH,
+  &my_locale_typelib_ab_month_names_ar_BH,
+  &my_locale_typelib_day_names_ar_BH,
+  &my_locale_typelib_ab_day_names_ar_BH
+);
 /***** LOCALE END ar_SD *****/
 
 /***** LOCALE BEGIN ar_TN: Arabic - Tunisia *****/
-MY_LOCALE my_locale_ar_TN ( "ar_TN", "Arabic - Tunisia", FALSE, &my_locale_typelib_month_names_ar_BH, &my_locale_typelib_ab_month_names_ar_BH, &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH );
+MY_LOCALE my_locale_ar_TN
+(
+  69,
+  "ar_TN",
+  "Arabic - Tunisia",
+  FALSE,
+  &my_locale_typelib_month_names_ar_BH,
+  &my_locale_typelib_ab_month_names_ar_BH,
+  &my_locale_typelib_day_names_ar_BH,
+  &my_locale_typelib_ab_day_names_ar_BH
+);
 /***** LOCALE END ar_TN *****/
 
 /***** LOCALE BEGIN ar_YE: Arabic - Yemen *****/
-MY_LOCALE my_locale_ar_YE ( "ar_YE", "Arabic - Yemen", FALSE, &my_locale_typelib_month_names_ar_BH, &my_locale_typelib_ab_month_names_ar_BH, &my_locale_typelib_day_names_ar_BH, &my_locale_typelib_ab_day_names_ar_BH );
+MY_LOCALE my_locale_ar_YE
+(
+  70,
+  "ar_YE",
+  "Arabic - Yemen",
+  FALSE,
+  &my_locale_typelib_month_names_ar_BH,
+  &my_locale_typelib_ab_month_names_ar_BH,
+  &my_locale_typelib_day_names_ar_BH,
+  &my_locale_typelib_ab_day_names_ar_BH
+);
 /***** LOCALE END ar_YE *****/
 
 /***** LOCALE BEGIN de_BE: German - Belgium *****/
-MY_LOCALE my_locale_de_BE ( "de_BE", "German - Belgium", FALSE, &my_locale_typelib_month_names_de_DE, &my_locale_typelib_ab_month_names_de_DE, &my_locale_typelib_day_names_de_DE, &my_locale_typelib_ab_day_names_de_DE );
+MY_LOCALE my_locale_de_BE
+(
+  71,
+  "de_BE",
+  "German - Belgium",
+  FALSE,
+  &my_locale_typelib_month_names_de_DE,
+  &my_locale_typelib_ab_month_names_de_DE,
+  &my_locale_typelib_day_names_de_DE,
+  &my_locale_typelib_ab_day_names_de_DE
+);
 /***** LOCALE END de_BE *****/
 
 /***** LOCALE BEGIN de_CH: German - Switzerland *****/
-MY_LOCALE my_locale_de_CH ( "de_CH", "German - Switzerland", FALSE, &my_locale_typelib_month_names_de_DE, &my_locale_typelib_ab_month_names_de_DE, &my_locale_typelib_day_names_de_DE, &my_locale_typelib_ab_day_names_de_DE );
+MY_LOCALE my_locale_de_CH
+(
+  72,
+  "de_CH",
+  "German - Switzerland",
+  FALSE,
+  &my_locale_typelib_month_names_de_DE,
+  &my_locale_typelib_ab_month_names_de_DE,
+  &my_locale_typelib_day_names_de_DE,
+  &my_locale_typelib_ab_day_names_de_DE
+);
 /***** LOCALE END de_CH *****/
 
 /***** LOCALE BEGIN de_LU: German - Luxembourg *****/
-MY_LOCALE my_locale_de_LU ( "de_LU", "German - Luxembourg", FALSE, &my_locale_typelib_month_names_de_DE, &my_locale_typelib_ab_month_names_de_DE, &my_locale_typelib_day_names_de_DE, &my_locale_typelib_ab_day_names_de_DE );
+MY_LOCALE my_locale_de_LU
+(
+  73,
+  "de_LU",
+  "German - Luxembourg",
+  FALSE,
+  &my_locale_typelib_month_names_de_DE,
+  &my_locale_typelib_ab_month_names_de_DE,
+  &my_locale_typelib_day_names_de_DE,
+  &my_locale_typelib_ab_day_names_de_DE
+);
 /***** LOCALE END de_LU *****/
 
 /***** LOCALE BEGIN en_AU: English - Australia *****/
-MY_LOCALE my_locale_en_AU ( "en_AU", "English - Australia", TRUE, &my_locale_typelib_month_names_en_US, &my_locale_typelib_ab_month_names_en_US, &my_locale_typelib_day_names_en_US, &my_locale_typelib_ab_day_names_en_US );
+MY_LOCALE my_locale_en_AU
+(
+  74,
+  "en_AU",
+  "English - Australia",
+  TRUE,
+  &my_locale_typelib_month_names_en_US,
+  &my_locale_typelib_ab_month_names_en_US,
+  &my_locale_typelib_day_names_en_US,
+  &my_locale_typelib_ab_day_names_en_US
+);
 /***** LOCALE END en_AU *****/
 
 /***** LOCALE BEGIN en_CA: English - Canada *****/
-MY_LOCALE my_locale_en_CA ( "en_CA", "English - Canada", TRUE, &my_locale_typelib_month_names_en_US, &my_locale_typelib_ab_month_names_en_US, &my_locale_typelib_day_names_en_US, &my_locale_typelib_ab_day_names_en_US );
+MY_LOCALE my_locale_en_CA
+(
+  75,
+  "en_CA",
+  "English - Canada",
+  TRUE,
+  &my_locale_typelib_month_names_en_US,
+  &my_locale_typelib_ab_month_names_en_US,
+  &my_locale_typelib_day_names_en_US,
+  &my_locale_typelib_ab_day_names_en_US
+);
 /***** LOCALE END en_CA *****/
 
 /***** LOCALE BEGIN en_GB: English - United Kingdom *****/
-MY_LOCALE my_locale_en_GB ( "en_GB", "English - United Kingdom", TRUE, &my_locale_typelib_month_names_en_US, &my_locale_typelib_ab_month_names_en_US, &my_locale_typelib_day_names_en_US, &my_locale_typelib_ab_day_names_en_US );
+MY_LOCALE my_locale_en_GB
+(
+  1,
+  "en_GB",
+  "English - United Kingdom",
+  TRUE,
+  &my_locale_typelib_month_names_en_US,
+  &my_locale_typelib_ab_month_names_en_US,
+  &my_locale_typelib_day_names_en_US,
+  &my_locale_typelib_ab_day_names_en_US
+);
 /***** LOCALE END en_GB *****/
 
 /***** LOCALE BEGIN en_IN: English - India *****/
-MY_LOCALE my_locale_en_IN ( "en_IN", "English - India", TRUE, &my_locale_typelib_month_names_en_US, &my_locale_typelib_ab_month_names_en_US, &my_locale_typelib_day_names_en_US, &my_locale_typelib_ab_day_names_en_US );
+MY_LOCALE my_locale_en_IN
+(
+  76,
+  "en_IN",
+  "English - India",
+  TRUE,
+  &my_locale_typelib_month_names_en_US,
+  &my_locale_typelib_ab_month_names_en_US,
+  &my_locale_typelib_day_names_en_US,
+  &my_locale_typelib_ab_day_names_en_US
+);
 /***** LOCALE END en_IN *****/
 
 /***** LOCALE BEGIN en_NZ: English - New Zealand *****/
-MY_LOCALE my_locale_en_NZ ( "en_NZ", "English - New Zealand", TRUE, &my_locale_typelib_month_names_en_US, &my_locale_typelib_ab_month_names_en_US, &my_locale_typelib_day_names_en_US, &my_locale_typelib_ab_day_names_en_US );
+MY_LOCALE my_locale_en_NZ
+(
+  77,
+  "en_NZ",
+  "English - New Zealand",
+  TRUE,
+  &my_locale_typelib_month_names_en_US,
+  &my_locale_typelib_ab_month_names_en_US,
+  &my_locale_typelib_day_names_en_US,
+  &my_locale_typelib_ab_day_names_en_US
+);
 /***** LOCALE END en_NZ *****/
 
 /***** LOCALE BEGIN en_PH: English - Philippines *****/
-MY_LOCALE my_locale_en_PH ( "en_PH", "English - Philippines", TRUE, &my_locale_typelib_month_names_en_US, &my_locale_typelib_ab_month_names_en_US, &my_locale_typelib_day_names_en_US, &my_locale_typelib_ab_day_names_en_US );
+MY_LOCALE my_locale_en_PH
+(
+  78,
+  "en_PH",
+  "English - Philippines",
+  TRUE,
+  &my_locale_typelib_month_names_en_US,
+  &my_locale_typelib_ab_month_names_en_US,
+  &my_locale_typelib_day_names_en_US,
+  &my_locale_typelib_ab_day_names_en_US
+);
 /***** LOCALE END en_PH *****/
 
 /***** LOCALE BEGIN en_ZA: English - South Africa *****/
-MY_LOCALE my_locale_en_ZA ( "en_ZA", "English - South Africa", TRUE, &my_locale_typelib_month_names_en_US, &my_locale_typelib_ab_month_names_en_US, &my_locale_typelib_day_names_en_US, &my_locale_typelib_ab_day_names_en_US );
+MY_LOCALE my_locale_en_ZA
+(
+  79,
+  "en_ZA",
+  "English - South Africa",
+  TRUE,
+  &my_locale_typelib_month_names_en_US,
+  &my_locale_typelib_ab_month_names_en_US,
+  &my_locale_typelib_day_names_en_US,
+  &my_locale_typelib_ab_day_names_en_US
+);
 /***** LOCALE END en_ZA *****/
 
 /***** LOCALE BEGIN en_ZW: English - Zimbabwe *****/
-MY_LOCALE my_locale_en_ZW ( "en_ZW", "English - Zimbabwe", TRUE, &my_locale_typelib_month_names_en_US, &my_locale_typelib_ab_month_names_en_US, &my_locale_typelib_day_names_en_US, &my_locale_typelib_ab_day_names_en_US );
+MY_LOCALE my_locale_en_ZW
+(
+  80,
+  "en_ZW",
+  "English - Zimbabwe",
+  TRUE,
+  &my_locale_typelib_month_names_en_US,
+  &my_locale_typelib_ab_month_names_en_US,
+  &my_locale_typelib_day_names_en_US,
+  &my_locale_typelib_ab_day_names_en_US
+);
 /***** LOCALE END en_ZW *****/
 
 /***** LOCALE BEGIN es_AR: Spanish - Argentina *****/
-MY_LOCALE my_locale_es_AR ( "es_AR", "Spanish - Argentina", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_AR
+(
+  81,
+  "es_AR",
+  "Spanish - Argentina",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_AR *****/
 
 /***** LOCALE BEGIN es_BO: Spanish - Bolivia *****/
-MY_LOCALE my_locale_es_BO ( "es_BO", "Spanish - Bolivia", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_BO
+(
+  82,
+  "es_BO",
+  "Spanish - Bolivia",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_BO *****/
 
 /***** LOCALE BEGIN es_CL: Spanish - Chile *****/
-MY_LOCALE my_locale_es_CL ( "es_CL", "Spanish - Chile", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_CL
+(
+  83,
+  "es_CL",
+  "Spanish - Chile",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_CL *****/
 
 /***** LOCALE BEGIN es_CO: Spanish - Columbia *****/
-MY_LOCALE my_locale_es_CO ( "es_CO", "Spanish - Columbia", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_CO
+(
+  84,
+  "es_CO",
+  "Spanish - Columbia",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_CO *****/
 
 /***** LOCALE BEGIN es_CR: Spanish - Costa Rica *****/
-MY_LOCALE my_locale_es_CR ( "es_CR", "Spanish - Costa Rica", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_CR
+(
+  85,
+  "es_CR",
+  "Spanish - Costa Rica",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_CR *****/
 
 /***** LOCALE BEGIN es_DO: Spanish - Dominican Republic *****/
-MY_LOCALE my_locale_es_DO ( "es_DO", "Spanish - Dominican Republic", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_DO
+(
+  86,
+  "es_DO",
+  "Spanish - Dominican Republic",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_DO *****/
 
 /***** LOCALE BEGIN es_EC: Spanish - Ecuador *****/
-MY_LOCALE my_locale_es_EC ( "es_EC", "Spanish - Ecuador", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_EC
+(
+  87,
+  "es_EC",
+  "Spanish - Ecuador",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_EC *****/
 
 /***** LOCALE BEGIN es_GT: Spanish - Guatemala *****/
-MY_LOCALE my_locale_es_GT ( "es_GT", "Spanish - Guatemala", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_GT
+(
+  88,
+  "es_GT",
+  "Spanish - Guatemala",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_GT *****/
 
 /***** LOCALE BEGIN es_HN: Spanish - Honduras *****/
-MY_LOCALE my_locale_es_HN ( "es_HN", "Spanish - Honduras", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_HN
+(
+  89,
+  "es_HN",
+  "Spanish - Honduras",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_HN *****/
 
 /***** LOCALE BEGIN es_MX: Spanish - Mexico *****/
-MY_LOCALE my_locale_es_MX ( "es_MX", "Spanish - Mexico", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_MX
+(
+  90,
+  "es_MX",
+  "Spanish - Mexico",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_MX *****/
 
 /***** LOCALE BEGIN es_NI: Spanish - Nicaragua *****/
-MY_LOCALE my_locale_es_NI ( "es_NI", "Spanish - Nicaragua", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_NI
+(
+  91,
+  "es_NI",
+  "Spanish - Nicaragua",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_NI *****/
 
 /***** LOCALE BEGIN es_PA: Spanish - Panama *****/
-MY_LOCALE my_locale_es_PA ( "es_PA", "Spanish - Panama", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_PA
+(
+  92,
+  "es_PA",
+  "Spanish - Panama",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_PA *****/
 
 /***** LOCALE BEGIN es_PE: Spanish - Peru *****/
-MY_LOCALE my_locale_es_PE ( "es_PE", "Spanish - Peru", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_PE
+(
+  93,
+  "es_PE",
+  "Spanish - Peru",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_PE *****/
 
 /***** LOCALE BEGIN es_PR: Spanish - Puerto Rico *****/
-MY_LOCALE my_locale_es_PR ( "es_PR", "Spanish - Puerto Rico", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_PR
+(
+  94,
+  "es_PR",
+  "Spanish - Puerto Rico",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_PR *****/
 
 /***** LOCALE BEGIN es_PY: Spanish - Paraguay *****/
-MY_LOCALE my_locale_es_PY ( "es_PY", "Spanish - Paraguay", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_PY
+(
+  95,
+  "es_PY",
+  "Spanish - Paraguay",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_PY *****/
 
 /***** LOCALE BEGIN es_SV: Spanish - El Salvador *****/
-MY_LOCALE my_locale_es_SV ( "es_SV", "Spanish - El Salvador", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_SV
+(
+  96,
+  "es_SV",
+  "Spanish - El Salvador",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_SV *****/
 
 /***** LOCALE BEGIN es_US: Spanish - United States *****/
-MY_LOCALE my_locale_es_US ( "es_US", "Spanish - United States", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_US
+(
+  97,
+  "es_US",
+  "Spanish - United States",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_US *****/
 
 /***** LOCALE BEGIN es_UY: Spanish - Uruguay *****/
-MY_LOCALE my_locale_es_UY ( "es_UY", "Spanish - Uruguay", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_UY
+(
+  98,
+  "es_UY",
+  "Spanish - Uruguay",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_UY *****/
 
 /***** LOCALE BEGIN es_VE: Spanish - Venezuela *****/
-MY_LOCALE my_locale_es_VE ( "es_VE", "Spanish - Venezuela", FALSE, &my_locale_typelib_month_names_es_ES, &my_locale_typelib_ab_month_names_es_ES, &my_locale_typelib_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES );
+MY_LOCALE my_locale_es_VE
+(
+  99,
+  "es_VE",
+  "Spanish - Venezuela",
+  FALSE,
+  &my_locale_typelib_month_names_es_ES,
+  &my_locale_typelib_ab_month_names_es_ES,
+  &my_locale_typelib_day_names_es_ES,
+  &my_locale_typelib_ab_day_names_es_ES
+);
 /***** LOCALE END es_VE *****/
 
 /***** LOCALE BEGIN fr_BE: French - Belgium *****/
-MY_LOCALE my_locale_fr_BE ( "fr_BE", "French - Belgium", FALSE, &my_locale_typelib_month_names_fr_FR, &my_locale_typelib_ab_month_names_fr_FR, &my_locale_typelib_day_names_fr_FR, &my_locale_typelib_ab_day_names_fr_FR );
+MY_LOCALE my_locale_fr_BE
+(
+  100,
+  "fr_BE",
+  "French - Belgium",
+  FALSE,
+  &my_locale_typelib_month_names_fr_FR,
+  &my_locale_typelib_ab_month_names_fr_FR,
+  &my_locale_typelib_day_names_fr_FR,
+  &my_locale_typelib_ab_day_names_fr_FR
+);
 /***** LOCALE END fr_BE *****/
 
 /***** LOCALE BEGIN fr_CA: French - Canada *****/
-MY_LOCALE my_locale_fr_CA ( "fr_CA", "French - Canada", FALSE, &my_locale_typelib_month_names_fr_FR, &my_locale_typelib_ab_month_names_fr_FR, &my_locale_typelib_day_names_fr_FR, &my_locale_typelib_ab_day_names_fr_FR );
+MY_LOCALE my_locale_fr_CA
+(
+  101,
+  "fr_CA",
+  "French - Canada",
+  FALSE,
+  &my_locale_typelib_month_names_fr_FR,
+  &my_locale_typelib_ab_month_names_fr_FR,
+  &my_locale_typelib_day_names_fr_FR,
+  &my_locale_typelib_ab_day_names_fr_FR
+);
 /***** LOCALE END fr_CA *****/
 
 /***** LOCALE BEGIN fr_CH: French - Switzerland *****/
-MY_LOCALE my_locale_fr_CH ( "fr_CH", "French - Switzerland", FALSE, &my_locale_typelib_month_names_fr_FR, &my_locale_typelib_ab_month_names_fr_FR, &my_locale_typelib_day_names_fr_FR, &my_locale_typelib_ab_day_names_fr_FR );
+MY_LOCALE my_locale_fr_CH
+(
+  102,
+  "fr_CH",
+  "French - Switzerland",
+  FALSE,
+  &my_locale_typelib_month_names_fr_FR,
+  &my_locale_typelib_ab_month_names_fr_FR,
+  &my_locale_typelib_day_names_fr_FR,
+  &my_locale_typelib_ab_day_names_fr_FR
+);
 /***** LOCALE END fr_CH *****/
 
 /***** LOCALE BEGIN fr_LU: French - Luxembourg *****/
-MY_LOCALE my_locale_fr_LU ( "fr_LU", "French - Luxembourg", FALSE, &my_locale_typelib_month_names_fr_FR, &my_locale_typelib_ab_month_names_fr_FR, &my_locale_typelib_day_names_fr_FR, &my_locale_typelib_ab_day_names_fr_FR );
+MY_LOCALE my_locale_fr_LU
+(
+  103,
+  "fr_LU",
+  "French - Luxembourg",
+  FALSE,
+  &my_locale_typelib_month_names_fr_FR,
+  &my_locale_typelib_ab_month_names_fr_FR,
+  &my_locale_typelib_day_names_fr_FR,
+  &my_locale_typelib_ab_day_names_fr_FR
+);
 /***** LOCALE END fr_LU *****/
 
 /***** LOCALE BEGIN it_IT: Italian - Italy *****/
-MY_LOCALE my_locale_it_IT ( "it_IT", "Italian - Italy", FALSE, &my_locale_typelib_month_names_it_CH, &my_locale_typelib_ab_month_names_it_CH, &my_locale_typelib_day_names_it_CH, &my_locale_typelib_ab_day_names_it_CH );
+MY_LOCALE my_locale_it_IT
+(
+  104,
+  "it_IT",
+  "Italian - Italy",
+  FALSE,
+  &my_locale_typelib_month_names_it_CH,
+  &my_locale_typelib_ab_month_names_it_CH,
+  &my_locale_typelib_day_names_it_CH,
+  &my_locale_typelib_ab_day_names_it_CH
+);
 /***** LOCALE END it_IT *****/
 
 /***** LOCALE BEGIN nl_BE: Dutch - Belgium *****/
-MY_LOCALE my_locale_nl_BE ( "nl_BE", "Dutch - Belgium", TRUE, &my_locale_typelib_month_names_nl_NL, &my_locale_typelib_ab_month_names_nl_NL, &my_locale_typelib_day_names_nl_NL, &my_locale_typelib_ab_day_names_nl_NL );
+MY_LOCALE my_locale_nl_BE
+(
+  105,
+  "nl_BE",
+  "Dutch - Belgium",
+  TRUE,
+  &my_locale_typelib_month_names_nl_NL,
+  &my_locale_typelib_ab_month_names_nl_NL,
+  &my_locale_typelib_day_names_nl_NL,
+  &my_locale_typelib_ab_day_names_nl_NL
+);
 /***** LOCALE END nl_BE *****/
 
 /***** LOCALE BEGIN no_NO: Norwegian - Norway *****/
-MY_LOCALE my_locale_no_NO ( "no_NO", "Norwegian - Norway", FALSE, &my_locale_typelib_month_names_nb_NO, &my_locale_typelib_ab_month_names_nb_NO, &my_locale_typelib_day_names_nb_NO, &my_locale_typelib_ab_day_names_nb_NO );
+MY_LOCALE my_locale_no_NO
+(
+  106,
+  "no_NO",
+  "Norwegian - Norway",
+  FALSE,
+  &my_locale_typelib_month_names_nb_NO,
+  &my_locale_typelib_ab_month_names_nb_NO,
+  &my_locale_typelib_day_names_nb_NO,
+  &my_locale_typelib_ab_day_names_nb_NO
+);
 /***** LOCALE END no_NO *****/
 
 /***** LOCALE BEGIN sv_FI: Swedish - Finland *****/
-MY_LOCALE my_locale_sv_FI ( "sv_FI", "Swedish - Finland", FALSE, &my_locale_typelib_month_names_sv_SE, &my_locale_typelib_ab_month_names_sv_SE, &my_locale_typelib_day_names_sv_SE, &my_locale_typelib_ab_day_names_sv_SE );
+MY_LOCALE my_locale_sv_FI
+(
+  107,
+  "sv_FI",
+  "Swedish - Finland",
+  FALSE,
+  &my_locale_typelib_month_names_sv_SE,
+  &my_locale_typelib_ab_month_names_sv_SE,
+  &my_locale_typelib_day_names_sv_SE,
+  &my_locale_typelib_ab_day_names_sv_SE
+);
 /***** LOCALE END sv_FI *****/
 
 /***** LOCALE BEGIN zh_HK: Chinese - Hong Kong SAR *****/
-MY_LOCALE my_locale_zh_HK ( "zh_HK", "Chinese - Hong Kong SAR", FALSE, &my_locale_typelib_month_names_zh_CN, &my_locale_typelib_ab_month_names_zh_CN, &my_locale_typelib_day_names_zh_CN, &my_locale_typelib_ab_day_names_zh_CN );
+MY_LOCALE my_locale_zh_HK
+(
+  108,
+  "zh_HK",
+  "Chinese - Hong Kong SAR",
+  FALSE,
+  &my_locale_typelib_month_names_zh_CN,
+  &my_locale_typelib_ab_month_names_zh_CN,
+  &my_locale_typelib_day_names_zh_CN,
+  &my_locale_typelib_ab_day_names_zh_CN
+);
 /***** LOCALE END zh_HK *****/
 
+
+/*
+  The list of all locales.
+  Note, locales must be ordered according to their
+  numbers to make my_locale_by_number() work fast.
+  Some debug asserts below check this.
+*/
 MY_LOCALE *my_locales[]=
   {
     &my_locale_en_US,
@@ -1496,3 +2582,31 @@ MY_LOCALE *my_locales[]=
     &my_locale_zh_HK,
     NULL 
   };
+
+
+MY_LOCALE *my_locale_by_number(uint number)
+{
+  MY_LOCALE *locale;
+  if (number >= array_elements(my_locales) - 1)
+    return NULL;
+  locale= my_locales[number];
+  // Check that locale is on its correct position in the array
+  DBUG_ASSERT(locale == my_locales[locale->number]);
+  return locale;
+}
+
+
+MY_LOCALE *my_locale_by_name(const char *name)
+{
+  MY_LOCALE **locale;
+  for (locale= my_locales; *locale != NULL; locale++) 
+  {
+    if (!my_strcasecmp(&my_charset_latin1, (*locale)->name, name))
+    {
+      // Check that locale is on its correct position in the array
+      DBUG_ASSERT((*locale) == my_locales[(*locale)->number]);
+      return *locale;
+    }
+  }
+  return NULL;
+}
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index e3ee9f340cfe6c23eef7a70431cdbde60fecbb17..ac7dc8ec46a6a3de4384b33438c3e1cb941d0819 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -2383,6 +2383,7 @@ static void reset_one_shot_variables(THD *thd)
   thd->update_charset();
   thd->variables.time_zone=
     global_system_variables.time_zone;
+  thd->variables.lc_time_names= &my_locale_en_US;
   thd->one_shot_set= 0;
 }