diff --git a/starboard/nplb/BUILD.gn b/starboard/nplb/BUILD.gn index 037b38014b7d..cda80b47e193 100644 --- a/starboard/nplb/BUILD.gn +++ b/starboard/nplb/BUILD.gn @@ -164,6 +164,8 @@ test("nplb") { "posix_compliance/posix_locale_helpers.h", "posix_compliance/posix_locale_langinfo_test.cc", "posix_compliance/posix_locale_langinfo_test_data.cc.inc", + "posix_compliance/posix_locale_localeconv_test.cc", + "posix_compliance/posix_locale_localeconv_test_data.cc.inc", "posix_compliance/posix_locale_set_test.cc", "posix_compliance/posix_locale_thread_test.cc", "posix_compliance/posix_lstat_test.cc", diff --git a/starboard/nplb/posix_compliance/posix_locale_localeconv_test.cc b/starboard/nplb/posix_compliance/posix_locale_localeconv_test.cc new file mode 100644 index 000000000000..901a03fd936c --- /dev/null +++ b/starboard/nplb/posix_compliance/posix_locale_localeconv_test.cc @@ -0,0 +1,256 @@ +// Copyright 2025 The Cobalt Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License-for-dev at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#include + +#include +#include +#include +#include + +#include "starboard/nplb/posix_compliance/posix_locale_helpers.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace { +struct LocaleconvTestData { + const char* locale_name; + + // Members from struct lconv + const char* decimal_point; + const char* thousands_sep; + const char* grouping; + const char* int_curr_symbol; + const char* currency_symbol; + const char* mon_decimal_point; + const char* mon_thousands_sep; + const char* mon_grouping; + const char* positive_sign; + const char* negative_sign; + char int_frac_digits; + char frac_digits; + char p_cs_precedes; + char p_sep_by_space; + char n_cs_precedes; + char n_sep_by_space; + char p_sign_posn; + char n_sign_posn; + char int_p_cs_precedes; + char int_p_sep_by_space; + char int_n_cs_precedes; + char int_n_sep_by_space; + char int_p_sign_posn; + char int_n_sign_posn; + + friend void PrintTo(const LocaleconvTestData& data, ::std::ostream* os); +}; + +void PrintTo(const LocaleconvTestData& data, ::std::ostream* os) { + *os << "{ locale_name: " << (data.locale_name ? data.locale_name : "null") + << " ... }"; +} + +struct LocaleconvTestDataNameGenerator { + std::string operator()( + const ::testing::TestParamInfo& info) const { + std::string name = info.param.locale_name; + std::replace(name.begin(), name.end(), '@', '_'); + return name; + } +}; + +#include "starboard/nplb/posix_compliance/posix_locale_localeconv_test_data.cc.inc" + +void CheckLconv(const lconv* lc, const LocaleconvTestData& data) { + EXPECT_STREQ(lc->decimal_point, data.decimal_point); + EXPECT_STREQ(lc->thousands_sep, data.thousands_sep); + EXPECT_STREQ(lc->grouping, data.grouping); + EXPECT_STREQ(lc->int_curr_symbol, data.int_curr_symbol); + EXPECT_STREQ(lc->currency_symbol, data.currency_symbol); + EXPECT_STREQ(lc->mon_decimal_point, data.mon_decimal_point); + EXPECT_STREQ(lc->mon_thousands_sep, data.mon_thousands_sep); + EXPECT_STREQ(lc->mon_grouping, data.mon_grouping); + EXPECT_STREQ(lc->positive_sign, data.positive_sign); + EXPECT_STREQ(lc->negative_sign, data.negative_sign); + EXPECT_EQ(lc->int_frac_digits, data.int_frac_digits); + EXPECT_EQ(lc->frac_digits, data.frac_digits); + EXPECT_EQ(lc->p_cs_precedes, data.p_cs_precedes); + EXPECT_EQ(lc->p_sep_by_space, data.p_sep_by_space); + EXPECT_EQ(lc->n_cs_precedes, data.n_cs_precedes); + EXPECT_EQ(lc->n_sep_by_space, data.n_sep_by_space); + EXPECT_EQ(lc->p_sign_posn, data.p_sign_posn); + EXPECT_EQ(lc->n_sign_posn, data.n_sign_posn); + EXPECT_EQ(lc->int_p_cs_precedes, data.int_p_cs_precedes); + EXPECT_EQ(lc->int_p_sep_by_space, data.int_p_sep_by_space); + EXPECT_EQ(lc->int_n_cs_precedes, data.int_n_cs_precedes); + EXPECT_EQ(lc->int_n_sep_by_space, data.int_n_sep_by_space); + EXPECT_EQ(lc->int_p_sign_posn, data.int_p_sign_posn); + EXPECT_EQ(lc->int_n_sign_posn, data.int_n_sign_posn); +} + +class LocaleconvTest : public ::testing::TestWithParam { + protected: + void SetUp() override { + const LocaleconvTestData& data = GetParam(); + // Save the current locale. + char* old_locale_cstr = setlocale(LC_ALL, nullptr); + ASSERT_NE(old_locale_cstr, nullptr); + old_locale_ = old_locale_cstr; + + // Set the locale for the test. + if (!setlocale(LC_ALL, data.locale_name)) { + GTEST_SKIP() << "Locale " << data.locale_name << " not supported."; + } + } + + void TearDown() override { + // Restore the original locale. + setlocale(LC_ALL, old_locale_.c_str()); + } + + private: + std::string old_locale_; +}; + +TEST_P(LocaleconvTest, AllItems) { + const LocaleconvTestData& data = GetParam(); + const lconv* lc = localeconv(); + ASSERT_NE(lc, nullptr); + CheckLconv(lc, data); +} + +INSTANTIATE_TEST_SUITE_P(Posix, + LocaleconvTest, + ::testing::ValuesIn(kLocaleconvTestData), + LocaleconvTestDataNameGenerator()); + +class UselocaleLocaleconvTest + : public ::testing::TestWithParam {}; + +TEST_P(UselocaleLocaleconvTest, AllItems) { + const LocaleconvTestData& data = GetParam(); + locale_t new_loc = newlocale(LC_ALL_MASK, data.locale_name, (locale_t)0); + if (!new_loc) { + GTEST_SKIP() << "Locale " << data.locale_name << " not supported."; + } + + locale_t old_loc = uselocale(new_loc); + ASSERT_NE(old_loc, (locale_t)0); + + const lconv* lc = localeconv(); + ASSERT_NE(lc, nullptr); + CheckLconv(lc, data); + + uselocale(old_loc); + freelocale(new_loc); +} + +INSTANTIATE_TEST_SUITE_P(Posix, + UselocaleLocaleconvTest, + ::testing::ValuesIn(kLocaleconvTestData), + LocaleconvTestDataNameGenerator()); + +// --- Dumper Test --- + +const char* kLocaleFormats[] = { + "C", "POSIX", "af_ZA", "sq_AL", "am_ET", "ar_SA", "hy_AM", + "as_IN", "az_AZ", "bn_BD", "eu_ES", "be_BY", "bs_BA", "bg_BG", + "ca_ES", "zh_CN", "zh_HK", "zh_TW", "hr_HR", "cs_CZ", "da_DK", + "nl_NL", "en_US", "en_IN", "en_GB", "et_EE", "fil_PH", "fi_FI", + "fr_FR", "fr_CA", "gl_ES", "ka_GE", "de_DE", "el_GR", "gu_IN", + "he_IL", "hi_IN", "hu_HU", "is_IS", "id_ID", "it_IT", "ja_JP", + "kn_IN", "kk_KZ", "km_KH", "ko_KR", "ky_KG", "lo_LA", "lv_LV", + "lt_LT", "mk_MK", "ms_MY", "ml_IN", "mr_IN", "mn_MN", "my_MM", + "ne_NP", "or_IN", "fa_IR", "pl_PL", "pt_BR", "pt_PT", "pa_IN", + "ro_RO", "ru_RU", "sr_RS", "sr_RS@latin", "si_LK", "sk_SK", "sl_SI", + "es_MX", "es_ES", "es_US", "sw_KE", "sv_SE", "ta_IN", "te_IN", + "th_TH", "tr_TR", "uk_UA", "ur_PK", "uz_UZ", "vi_VN", "zu_ZA"}; + +std::string EscapeString(const char* str) { + if (!str) { + return ""; + } + std::string result; + for (const unsigned char* p = reinterpret_cast(str); *p; + ++p) { + if (*p >= 32 && *p <= 126 && *p != '"' && *p != '\\') { + result += *p; + } else { + char hex[5]; + snprintf(hex, sizeof(hex), "\\x%02x", *p); + result += hex; + } + } + return result; +} + +void DumpString(FILE* file, const char* name, const char* value) { + if (value) { + fprintf(file, " .%s = \"%s\",\n", name, EscapeString(value).c_str()); + } +} + +void DumpChar(FILE* file, const char* name, char value) { + if (value != CHAR_MAX) { + fprintf(file, " .%s = %d,\n", name, value); + } else { + fprintf(file, " .%s = CHAR_MAX,\n", name); + } +} + +TEST(PosixLocaleLocaleconvDumperTest, DISABLED_DumpAllLocaleDataForConstexpr) { + FILE* file = fopen( + "starboard/nplb/posix_compliance/posix_locale_localeconv_test_data.inc", + "w"); + ASSERT_NE(file, nullptr); + + fprintf(file, "constexpr LocaleconvTestData kLocaleconvTestData[] = {\n"); + for (const char* locale_name : kLocaleFormats) { + if (!setlocale(LC_ALL, locale_name)) { + continue; + } + const lconv* lc = localeconv(); + fprintf(file, " {\n"); + fprintf(file, " .locale_name = \"%s\",\n", locale_name); + DumpString(file, "decimal_point", lc->decimal_point); + DumpString(file, "thousands_sep", lc->thousands_sep); + DumpString(file, "grouping", lc->grouping); + DumpString(file, "int_curr_symbol", lc->int_curr_symbol); + DumpString(file, "currency_symbol", lc->currency_symbol); + DumpString(file, "mon_decimal_point", lc->mon_decimal_point); + DumpString(file, "mon_thousands_sep", lc->mon_thousands_sep); + DumpString(file, "mon_grouping", lc->mon_grouping); + DumpString(file, "positive_sign", lc->positive_sign); + DumpString(file, "negative_sign", lc->negative_sign); + DumpChar(file, "int_frac_digits", lc->int_frac_digits); + DumpChar(file, "frac_digits", lc->frac_digits); + DumpChar(file, "p_cs_precedes", lc->p_cs_precedes); + DumpChar(file, "p_sep_by_space", lc->p_sep_by_space); + DumpChar(file, "n_cs_precedes", lc->n_cs_precedes); + DumpChar(file, "n_sep_by_space", lc->n_sep_by_space); + DumpChar(file, "p_sign_posn", lc->p_sign_posn); + DumpChar(file, "n_sign_posn", lc->n_sign_posn); + DumpChar(file, "int_p_cs_precedes", lc->int_p_cs_precedes); + DumpChar(file, "int_p_sep_by_space", lc->int_p_sep_by_space); + DumpChar(file, "int_n_cs_precedes", lc->int_n_cs_precedes); + DumpChar(file, "int_n_sep_by_space", lc->int_n_sep_by_space); + DumpChar(file, "int_p_sign_posn", lc->int_p_sign_posn); + DumpChar(file, "int_n_sign_posn", lc->int_n_sign_posn); + fprintf(file, " },\n"); + } + fprintf(file, "};\n"); + fclose(file); +} + +} // namespace diff --git a/starboard/nplb/posix_compliance/posix_locale_localeconv_test_data.cc.inc b/starboard/nplb/posix_compliance/posix_locale_localeconv_test_data.cc.inc new file mode 100644 index 000000000000..ffbe0a9e0c47 --- /dev/null +++ b/starboard/nplb/posix_compliance/posix_locale_localeconv_test_data.cc.inc @@ -0,0 +1,2270 @@ +constexpr LocaleconvTestData kLocaleconvTestData[] = { + { + .locale_name = "C", + .decimal_point = ".", + .thousands_sep = "", + .grouping = "", + .int_curr_symbol = "", + .currency_symbol = "", + .mon_decimal_point = "", + .mon_thousands_sep = "", + .mon_grouping = "", + .positive_sign = "", + .negative_sign = "", + .int_frac_digits = CHAR_MAX, + .frac_digits = CHAR_MAX, + .p_cs_precedes = CHAR_MAX, + .p_sep_by_space = CHAR_MAX, + .n_cs_precedes = CHAR_MAX, + .n_sep_by_space = CHAR_MAX, + .p_sign_posn = CHAR_MAX, + .n_sign_posn = CHAR_MAX, + .int_p_cs_precedes = CHAR_MAX, + .int_p_sep_by_space = CHAR_MAX, + .int_n_cs_precedes = CHAR_MAX, + .int_n_sep_by_space = CHAR_MAX, + .int_p_sign_posn = CHAR_MAX, + .int_n_sign_posn = CHAR_MAX, + }, + { + .locale_name = "POSIX", + .decimal_point = ".", + .thousands_sep = "", + .grouping = "", + .int_curr_symbol = "", + .currency_symbol = "", + .mon_decimal_point = "", + .mon_thousands_sep = "", + .mon_grouping = "", + .positive_sign = "", + .negative_sign = "", + .int_frac_digits = CHAR_MAX, + .frac_digits = CHAR_MAX, + .p_cs_precedes = CHAR_MAX, + .p_sep_by_space = CHAR_MAX, + .n_cs_precedes = CHAR_MAX, + .n_sep_by_space = CHAR_MAX, + .p_sign_posn = CHAR_MAX, + .n_sign_posn = CHAR_MAX, + .int_p_cs_precedes = CHAR_MAX, + .int_p_sep_by_space = CHAR_MAX, + .int_n_cs_precedes = CHAR_MAX, + .int_n_sep_by_space = CHAR_MAX, + .int_p_sign_posn = CHAR_MAX, + .int_n_sign_posn = CHAR_MAX, + }, +{ + .locale_name = "af_ZA", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x5a\x41\x52\x20", + .currency_symbol = "\x52", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "sq_AL", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x41\x4c\x4c\x20", + .currency_symbol = "\x4c\x65\x6b\xc3\xab", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 0, + .frac_digits = 0, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "am_ET", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x45\x54\x42\x20", + .currency_symbol = "\xe1\x89\xa5\xe1\x88\xad", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "ar_SA", + .decimal_point = "\xd9\xab", + .thousands_sep = "\xd9\xac", + .grouping = "\x03", + .int_curr_symbol = "\x53\x41\x52\x20", + .currency_symbol = "\xd8\xb1\x2e\xd8\xb3\x2e\xe2\x80\x8f", + .mon_decimal_point = "\xd9\xab", + .mon_thousands_sep = "\xd9\xac", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\xd8\x9c\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "hy_AM", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x41\x4d\x44\x20", + .currency_symbol = "\xd6\x8f", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "as_IN", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03\x02", + .int_curr_symbol = "\x49\x4e\x52\x20", + .currency_symbol = "\xe2\x82\xb9", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03\x02", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 1, + .n_cs_precedes = 1, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "az_AZ", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x41\x5a\x4e\x20", + .currency_symbol = "\xe2\x82\xbc", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "bn_BD", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03\x02", + .int_curr_symbol = "\x42\x44\x54\x20", + .currency_symbol = "\xe0\xa7\xb3", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03\x02", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "eu_ES", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x45\x55\x52\x20", + .currency_symbol = "\xe2\x82\xac", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\xe2\x88\x92", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "be_BY", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x42\x59\x4e\x20", + .currency_symbol = "\x42\x72", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "bs_BA", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x42\x41\x4d\x20", + .currency_symbol = "\x4b\x4d", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "bg_BG", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x42\x47\x4e\x20", + .currency_symbol = "\xd0\xbb\xd0\xb2\x2e", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "ca_ES", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x45\x55\x52\x20", + .currency_symbol = "\xe2\x82\xac", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "zh_CN", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x43\x4e\x59\x20", + .currency_symbol = "\xc2\xa5", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "zh_HK", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x48\x4b\x44\x20", + .currency_symbol = "\x48\x4b\x24", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "zh_TW", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x54\x57\x44\x20", + .currency_symbol = "\x24", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "hr_HR", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x45\x55\x52\x20", + .currency_symbol = "\xe2\x82\xac", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\xe2\x88\x92", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "cs_CZ", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x43\x5a\x4b\x20", + .currency_symbol = "\x4b\xc4\x8d", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "da_DK", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x44\x4b\x4b\x20", + .currency_symbol = "\x6b\x72\x2e", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "nl_NL", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x45\x55\x52\x20", + .currency_symbol = "\xe2\x82\xac", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 1, + .n_cs_precedes = 1, + .n_sep_by_space = 2, + .p_sign_posn = 1, + .n_sign_posn = 4, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 2, + .int_p_sign_posn = 1, + .int_n_sign_posn = 4, + }, + { + .locale_name = "en_US", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x55\x53\x44\x20", + .currency_symbol = "\x24", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "en_IN", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03\x02", + .int_curr_symbol = "\x49\x4e\x52\x20", + .currency_symbol = "\xe2\x82\xb9", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03\x02", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "en_GB", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x47\x42\x50\x20", + .currency_symbol = "\xc2\xa3", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "et_EE", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x45\x55\x52\x20", + .currency_symbol = "\xe2\x82\xac", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\xe2\x88\x92", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "fil_PH", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x50\x48\x50\x20", + .currency_symbol = "\xe2\x82\xb1", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "fi_FI", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x45\x55\x52\x20", + .currency_symbol = "\xe2\x82\xac", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\xe2\x88\x92", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "fr_FR", + .decimal_point = "\x2c", + .thousands_sep = "\xe2\x80\xaf", + .grouping = "\x03", + .int_curr_symbol = "\x45\x55\x52\x20", + .currency_symbol = "\xe2\x82\xac", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xe2\x80\xaf", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "fr_CA", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x43\x41\x44\x20", + .currency_symbol = "\x24", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "gl_ES", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x45\x55\x52\x20", + .currency_symbol = "\xe2\x82\xac", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "ka_GE", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x47\x45\x4c\x20", + .currency_symbol = "\xe2\x82\xbe", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "de_DE", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x45\x55\x52\x20", + .currency_symbol = "\xe2\x82\xac", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "el_GR", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x45\x55\x52\x20", + .currency_symbol = "\xe2\x82\xac", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "gu_IN", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03\x02", + .int_curr_symbol = "\x49\x4e\x52\x20", + .currency_symbol = "\xe2\x82\xb9", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03\x02", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "he_IL", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x49\x4c\x53\x20", + .currency_symbol = "\xe2\x82\xaa", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\xe2\x80\x8e\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "hi_IN", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03\x02", + .int_curr_symbol = "\x49\x4e\x52\x20", + .currency_symbol = "\xe2\x82\xb9", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03\x02", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "hu_HU", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x48\x55\x46\x20", + .currency_symbol = "\x46\x74", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "is_IS", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x49\x53\x4b\x20", + .currency_symbol = "\x6b\x72\x2e", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 0, + .frac_digits = 0, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "id_ID", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x49\x44\x52\x20", + .currency_symbol = "\x52\x70", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "it_IT", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x45\x55\x52\x20", + .currency_symbol = "\xe2\x82\xac", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "ja_JP", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x4a\x50\x59\x20", + .currency_symbol = "\xef\xbf\xa5", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 0, + .frac_digits = 0, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "kn_IN", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x49\x4e\x52\x20", + .currency_symbol = "\xe2\x82\xb9", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "kk_KZ", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x4b\x5a\x54\x20", + .currency_symbol = "\xe2\x82\xb8", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "km_KH", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x4b\x48\x52\x20", + .currency_symbol = "\xe1\x9f\x9b", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "ko_KR", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x4b\x52\x57\x20", + .currency_symbol = "\xe2\x82\xa9", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 0, + .frac_digits = 0, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "ky_KG", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x4b\x47\x53\x20", + .currency_symbol = "\xd1\x81\xd0\xbe\xd0\xbc", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "lo_LA", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x4c\x41\x4b\x20", + .currency_symbol = "\xe2\x82\xad", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 0, + .frac_digits = 0, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 4, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 4, + }, + { + .locale_name = "lv_LV", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x45\x55\x52\x20", + .currency_symbol = "\xe2\x82\xac", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "lt_LT", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x45\x55\x52\x20", + .currency_symbol = "\xe2\x82\xac", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\xe2\x88\x92", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "mk_MK", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x4d\x4b\x44\x20", + .currency_symbol = "\xd0\xb4\xd0\xb5\xd0\xbd\x2e", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "ms_MY", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x4d\x59\x52\x20", + .currency_symbol = "\x52\x4d", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "ml_IN", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03\x02", + .int_curr_symbol = "\x49\x4e\x52\x20", + .currency_symbol = "\xe2\x82\xb9", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "mr_IN", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03\x02", + .int_curr_symbol = "\x49\x4e\x52\x20", + .currency_symbol = "\xe2\x82\xb9", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "mn_MN", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x4d\x4e\x54\x20", + .currency_symbol = "\xe2\x82\xae", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 1, + .n_cs_precedes = 1, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "my_MM", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x4d\x4d\x4b\x20", + .currency_symbol = "\x4b", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 0, + .frac_digits = 0, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "ne_NP", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03\x02", + .int_curr_symbol = "\x4e\x50\x52\x20", + .currency_symbol = "\xe0\xa4\xa8\xe0\xa5\x87\xe0\xa4\xb0\xe0\xa5\x82", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03\x02", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 1, + .n_cs_precedes = 1, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "or_IN", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03\x02", + .int_curr_symbol = "\x49\x4e\x52\x20", + .currency_symbol = "\xe2\x82\xb9", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "fa_IR", + .decimal_point = "\xd9\xab", + .thousands_sep = "\xd9\xac", + .grouping = "\x03", + .int_curr_symbol = "\x49\x52\x52\x20", + .currency_symbol = "\xd8\xb1\xdb\x8c\xd8\xa7\xd9\x84", + .mon_decimal_point = "\xd9\xab", + .mon_thousands_sep = "\xd9\xac", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\xe2\x80\x8e\xe2\x88\x92", + .int_frac_digits = 0, + .frac_digits = 0, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "pl_PL", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x50\x4c\x4e\x20", + .currency_symbol = "\x7a\xc5\x82", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "pt_BR", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x42\x52\x4c\x20", + .currency_symbol = "\x52\x24", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 1, + .n_cs_precedes = 1, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "pt_PT", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x45\x55\x52\x20", + .currency_symbol = "\xe2\x82\xac", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "pa_IN", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03\x02", + .int_curr_symbol = "\x49\x4e\x52\x20", + .currency_symbol = "\xe2\x82\xb9", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03\x02", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "ro_RO", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x52\x4f\x4e\x20", + .currency_symbol = "\x52\x4f\x4e", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "ru_RU", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x52\x55\x42\x20", + .currency_symbol = "\xe2\x82\xbd", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "sr_RS", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x52\x53\x44\x20", + .currency_symbol = "\x52\x53\x44", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 0, + .frac_digits = 0, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "sr_RS@latin", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x52\x53\x44\x20", + .currency_symbol = "\x52\x53\x44", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 0, + .frac_digits = 0, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "si_LK", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x4c\x4b\x52\x20", + .currency_symbol = "\xe0\xb6\xbb\xe0\xb7\x94\x2e", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "sk_SK", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x45\x55\x52\x20", + .currency_symbol = "\xe2\x82\xac", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "sl_SI", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x45\x55\x52\x20", + .currency_symbol = "\xe2\x82\xac", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\xe2\x88\x92", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "es_MX", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x4d\x58\x4e\x20", + .currency_symbol = "\x24", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "es_ES", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x45\x55\x52\x20", + .currency_symbol = "\xe2\x82\xac", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "es_US", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x55\x53\x44\x20", + .currency_symbol = "\x24", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "sw_KE", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x4b\x45\x53\x20", + .currency_symbol = "\x4b\x73\x68", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 1, + .n_cs_precedes = 1, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "sv_SE", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x53\x45\x4b\x20", + .currency_symbol = "\x6b\x72", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\xe2\x88\x92", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "ta_IN", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03\x02", + .int_curr_symbol = "\x49\x4e\x52\x20", + .currency_symbol = "\xe2\x82\xb9", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03\x02", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "te_IN", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03\x02", + .int_curr_symbol = "\x49\x4e\x52\x20", + .currency_symbol = "\xe2\x82\xb9", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03\x02", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "th_TH", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x54\x48\x42\x20", + .currency_symbol = "\xe0\xb8\xbf", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "tr_TR", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x54\x52\x59\x20", + .currency_symbol = "\xe2\x82\xba", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "uk_UA", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x55\x41\x48\x20", + .currency_symbol = "\xe2\x82\xb4", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "ur_PK", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x50\x4b\x52\x20", + .currency_symbol = "\x52\x73", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\xe2\x80\x8e\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "uz_UZ", + .decimal_point = "\x2c", + .thousands_sep = "\xc2\xa0", + .grouping = "\x03", + .int_curr_symbol = "\x55\x5a\x53\x20", + .currency_symbol = "\x73\x6f\xca\xbb\x6d", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\xc2\xa0", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "vi_VN", + .decimal_point = "\x2c", + .thousands_sep = "\x2e", + .grouping = "\x03", + .int_curr_symbol = "\x56\x4e\x44\x20", + .currency_symbol = "\xe2\x82\xab", + .mon_decimal_point = "\x2c", + .mon_thousands_sep = "\x2e", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 0, + .frac_digits = 0, + .p_cs_precedes = 0, + .p_sep_by_space = 1, + .n_cs_precedes = 0, + .n_sep_by_space = 1, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 0, + .int_p_sep_by_space = 1, + .int_n_cs_precedes = 0, + .int_n_sep_by_space = 1, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, + { + .locale_name = "zu_ZA", + .decimal_point = "\x2e", + .thousands_sep = "\x2c", + .grouping = "\x03", + .int_curr_symbol = "\x5a\x41\x52\x20", + .currency_symbol = "\x52", + .mon_decimal_point = "\x2e", + .mon_thousands_sep = "\x2c", + .mon_grouping = "\x03", + .positive_sign = "", + .negative_sign = "\x2d", + .int_frac_digits = 2, + .frac_digits = 2, + .p_cs_precedes = 1, + .p_sep_by_space = 0, + .n_cs_precedes = 1, + .n_sep_by_space = 0, + .p_sign_posn = 1, + .n_sign_posn = 1, + .int_p_cs_precedes = 1, + .int_p_sep_by_space = 0, + .int_n_cs_precedes = 1, + .int_n_sep_by_space = 0, + .int_p_sign_posn = 1, + .int_n_sign_posn = 1, + }, +};