Update Dart Intl data to CLDR 31.0.1 and explicitly add en_MY, fr_CH, it_CH and ps.

Also added ps, on request from Flutter. They would also like "sd", but ICU reports that as non-verified data at this point.

Added a fix for an AWV test that breaks with the changed de_CH grouping separator. +dskloet

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=171965266
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 33b2a9a..031986e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,8 @@
 ## 0.15.2
  * Group the padding digits to the left of the number, if present. e.g. 00,001.
  * Tweak lookup code to support translated messages as JSON rather than code.
+ * Update data to CLDR 31.0.1
+ * Adds locales en_MY, fr_CH, it_CH, and ps.
 
 ## 0.15.1
  * Use the platform.locale API to get the OS platform.
diff --git a/lib/date_symbol_data_local.dart b/lib/date_symbol_data_local.dart
index 6a69c06..5ccbbbd 100644
--- a/lib/date_symbol_data_local.dart
+++ b/lib/date_symbol_data_local.dart
@@ -9,7 +9,7 @@
 /// DO NOT EDIT. This file is autogenerated by script.  See
 /// 'http://go/generate_datetime_constants.py' using the --for_dart
 /// flag.
-/// File generated from CLDR ver. 30.0.2
+/// File generated from CLDR ver. 31.0.1
 ///
 /// Before checkin, this file could have been manually edited. This is
 /// to incorporate changes before we could correct CLDR. All manual
@@ -625,6 +625,162 @@
           FIRSTDAYOFWEEK: 5,
           WEEKENDRANGE: const [4, 5],
           FIRSTWEEKCUTOFFDAY: 4),
+      // Date/time formatting symbols for locale ar_DZ.
+      "ar_DZ": new DateSymbols(
+          NAME: "ar_DZ",
+          ERAS: const ['ق.م', 'م'],
+          ERANAMES: const ['قبل الميلاد', 'ميلادي'],
+          NARROWMONTHS: const [
+            'ج',
+            'ف',
+            'م',
+            'أ',
+            'م',
+            'ج',
+            'ج',
+            'أ',
+            'س',
+            'أ',
+            'ن',
+            'د'
+          ],
+          STANDALONENARROWMONTHS: const [
+            'ج',
+            'ف',
+            'م',
+            'أ',
+            'م',
+            'ج',
+            'ج',
+            'أ',
+            'س',
+            'أ',
+            'ن',
+            'د'
+          ],
+          MONTHS: const [
+            'جانفي',
+            'فيفري',
+            'مارس',
+            'أفريل',
+            'ماي',
+            'جوان',
+            'جويلية',
+            'أوت',
+            'سبتمبر',
+            'أكتوبر',
+            'نوفمبر',
+            'ديسمبر'
+          ],
+          STANDALONEMONTHS: const [
+            'جانفي',
+            'فيفري',
+            'مارس',
+            'أفريل',
+            'ماي',
+            'جوان',
+            'جويلية',
+            'أوت',
+            'سبتمبر',
+            'أكتوبر',
+            'نوفمبر',
+            'ديسمبر'
+          ],
+          SHORTMONTHS: const [
+            'جانفي',
+            'فيفري',
+            'مارس',
+            'أفريل',
+            'ماي',
+            'جوان',
+            'جويلية',
+            'أوت',
+            'سبتمبر',
+            'أكتوبر',
+            'نوفمبر',
+            'ديسمبر'
+          ],
+          STANDALONESHORTMONTHS: const [
+            'جانفي',
+            'فيفري',
+            'مارس',
+            'أفريل',
+            'ماي',
+            'جوان',
+            'جويلية',
+            'أوت',
+            'سبتمبر',
+            'أكتوبر',
+            'نوفمبر',
+            'ديسمبر'
+          ],
+          WEEKDAYS: const [
+            'الأحد',
+            'الاثنين',
+            'الثلاثاء',
+            'الأربعاء',
+            'الخميس',
+            'الجمعة',
+            'السبت'
+          ],
+          STANDALONEWEEKDAYS: const [
+            'الأحد',
+            'الاثنين',
+            'الثلاثاء',
+            'الأربعاء',
+            'الخميس',
+            'الجمعة',
+            'السبت'
+          ],
+          SHORTWEEKDAYS: const [
+            'الأحد',
+            'الاثنين',
+            'الثلاثاء',
+            'الأربعاء',
+            'الخميس',
+            'الجمعة',
+            'السبت'
+          ],
+          STANDALONESHORTWEEKDAYS: const [
+            'الأحد',
+            'الاثنين',
+            'الثلاثاء',
+            'الأربعاء',
+            'الخميس',
+            'الجمعة',
+            'السبت'
+          ],
+          NARROWWEEKDAYS: const ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+          STANDALONENARROWWEEKDAYS: const ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+          SHORTQUARTERS: const [
+            'الربع الأول',
+            'الربع الثاني',
+            'الربع الثالث',
+            'الربع الرابع'
+          ],
+          QUARTERS: const [
+            'الربع الأول',
+            'الربع الثاني',
+            'الربع الثالث',
+            'الربع الرابع'
+          ],
+          AMPMS: const ['ص', 'م'],
+          DATEFORMATS: const [
+            'EEEE، d MMMM، y',
+            'd MMMM، y',
+            'dd‏/MM‏/y',
+            'd‏/M‏/y'
+          ],
+          TIMEFORMATS: const [
+            'h:mm:ss a zzzz',
+            'h:mm:ss a z',
+            'h:mm:ss a',
+            'h:mm a'
+          ],
+          DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'],
+          FIRSTDAYOFWEEK: 5,
+          WEEKENDRANGE: const [4, 5],
+          FIRSTWEEKCUTOFFDAY: 4),
       // Date/time formatting symbols for locale az.
       "az": new DateSymbols(
           NAME: "az",
@@ -3872,6 +4028,162 @@
           FIRSTDAYOFWEEK: 6,
           WEEKENDRANGE: const [6, 6],
           FIRSTWEEKCUTOFFDAY: 5),
+      // Date/time formatting symbols for locale en_MY.
+      "en_MY": new DateSymbols(
+          NAME: "en_MY",
+          ERAS: const ['BC', 'AD'],
+          ERANAMES: const ['Before Christ', 'Anno Domini'],
+          NARROWMONTHS: const [
+            'J',
+            'F',
+            'M',
+            'A',
+            'M',
+            'J',
+            'J',
+            'A',
+            'S',
+            'O',
+            'N',
+            'D'
+          ],
+          STANDALONENARROWMONTHS: const [
+            'J',
+            'F',
+            'M',
+            'A',
+            'M',
+            'J',
+            'J',
+            'A',
+            'S',
+            'O',
+            'N',
+            'D'
+          ],
+          MONTHS: const [
+            'January',
+            'February',
+            'March',
+            'April',
+            'May',
+            'June',
+            'July',
+            'August',
+            'September',
+            'October',
+            'November',
+            'December'
+          ],
+          STANDALONEMONTHS: const [
+            'January',
+            'February',
+            'March',
+            'April',
+            'May',
+            'June',
+            'July',
+            'August',
+            'September',
+            'October',
+            'November',
+            'December'
+          ],
+          SHORTMONTHS: const [
+            'Jan',
+            'Feb',
+            'Mar',
+            'Apr',
+            'May',
+            'Jun',
+            'Jul',
+            'Aug',
+            'Sep',
+            'Oct',
+            'Nov',
+            'Dec'
+          ],
+          STANDALONESHORTMONTHS: const [
+            'Jan',
+            'Feb',
+            'Mar',
+            'Apr',
+            'May',
+            'Jun',
+            'Jul',
+            'Aug',
+            'Sep',
+            'Oct',
+            'Nov',
+            'Dec'
+          ],
+          WEEKDAYS: const [
+            'Sunday',
+            'Monday',
+            'Tuesday',
+            'Wednesday',
+            'Thursday',
+            'Friday',
+            'Saturday'
+          ],
+          STANDALONEWEEKDAYS: const [
+            'Sunday',
+            'Monday',
+            'Tuesday',
+            'Wednesday',
+            'Thursday',
+            'Friday',
+            'Saturday'
+          ],
+          SHORTWEEKDAYS: const [
+            'Sun',
+            'Mon',
+            'Tue',
+            'Wed',
+            'Thu',
+            'Fri',
+            'Sat'
+          ],
+          STANDALONESHORTWEEKDAYS: const [
+            'Sun',
+            'Mon',
+            'Tue',
+            'Wed',
+            'Thu',
+            'Fri',
+            'Sat'
+          ],
+          NARROWWEEKDAYS: const ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+          STANDALONENARROWWEEKDAYS: const ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+          SHORTQUARTERS: const ['Q1', 'Q2', 'Q3', 'Q4'],
+          QUARTERS: const [
+            '1st quarter',
+            '2nd quarter',
+            '3rd quarter',
+            '4th quarter'
+          ],
+          AMPMS: const ['AM', 'PM'],
+          DATEFORMATS: const [
+            'EEEE, d MMMM y',
+            'd MMMM y',
+            'd MMM y',
+            'dd/MM/y'
+          ],
+          TIMEFORMATS: const [
+            'h:mm:ss a zzzz',
+            'h:mm:ss a z',
+            'h:mm:ss a',
+            'h:mm a'
+          ],
+          DATETIMEFORMATS: const [
+            '{1} \'at\' {0}',
+            '{1} \'at\' {0}',
+            '{1}, {0}',
+            '{1}, {0}'
+          ],
+          FIRSTDAYOFWEEK: 0,
+          WEEKENDRANGE: const [5, 6],
+          FIRSTWEEKCUTOFFDAY: 6),
       // Date/time formatting symbols for locale en_SG.
       "en_SG": new DateSymbols(
           NAME: "en_SG",
@@ -6154,6 +6466,162 @@
           FIRSTDAYOFWEEK: 6,
           WEEKENDRANGE: const [5, 6],
           FIRSTWEEKCUTOFFDAY: 5),
+      // Date/time formatting symbols for locale fr_CH.
+      "fr_CH": new DateSymbols(
+          NAME: "fr_CH",
+          ERAS: const ['av. J.-C.', 'ap. J.-C.'],
+          ERANAMES: const ['avant Jésus-Christ', 'après Jésus-Christ'],
+          NARROWMONTHS: const [
+            'J',
+            'F',
+            'M',
+            'A',
+            'M',
+            'J',
+            'J',
+            'A',
+            'S',
+            'O',
+            'N',
+            'D'
+          ],
+          STANDALONENARROWMONTHS: const [
+            'J',
+            'F',
+            'M',
+            'A',
+            'M',
+            'J',
+            'J',
+            'A',
+            'S',
+            'O',
+            'N',
+            'D'
+          ],
+          MONTHS: const [
+            'janvier',
+            'février',
+            'mars',
+            'avril',
+            'mai',
+            'juin',
+            'juillet',
+            'août',
+            'septembre',
+            'octobre',
+            'novembre',
+            'décembre'
+          ],
+          STANDALONEMONTHS: const [
+            'janvier',
+            'février',
+            'mars',
+            'avril',
+            'mai',
+            'juin',
+            'juillet',
+            'août',
+            'septembre',
+            'octobre',
+            'novembre',
+            'décembre'
+          ],
+          SHORTMONTHS: const [
+            'janv.',
+            'févr.',
+            'mars',
+            'avr.',
+            'mai',
+            'juin',
+            'juil.',
+            'août',
+            'sept.',
+            'oct.',
+            'nov.',
+            'déc.'
+          ],
+          STANDALONESHORTMONTHS: const [
+            'janv.',
+            'févr.',
+            'mars',
+            'avr.',
+            'mai',
+            'juin',
+            'juil.',
+            'août',
+            'sept.',
+            'oct.',
+            'nov.',
+            'déc.'
+          ],
+          WEEKDAYS: const [
+            'dimanche',
+            'lundi',
+            'mardi',
+            'mercredi',
+            'jeudi',
+            'vendredi',
+            'samedi'
+          ],
+          STANDALONEWEEKDAYS: const [
+            'dimanche',
+            'lundi',
+            'mardi',
+            'mercredi',
+            'jeudi',
+            'vendredi',
+            'samedi'
+          ],
+          SHORTWEEKDAYS: const [
+            'dim.',
+            'lun.',
+            'mar.',
+            'mer.',
+            'jeu.',
+            'ven.',
+            'sam.'
+          ],
+          STANDALONESHORTWEEKDAYS: const [
+            'dim.',
+            'lun.',
+            'mar.',
+            'mer.',
+            'jeu.',
+            'ven.',
+            'sam.'
+          ],
+          NARROWWEEKDAYS: const ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+          STANDALONENARROWWEEKDAYS: const ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+          SHORTQUARTERS: const ['T1', 'T2', 'T3', 'T4'],
+          QUARTERS: const [
+            '1er trimestre',
+            '2e trimestre',
+            '3e trimestre',
+            '4e trimestre'
+          ],
+          AMPMS: const ['AM', 'PM'],
+          DATEFORMATS: const [
+            'EEEE, d MMMM y',
+            'd MMMM y',
+            'd MMM y',
+            'dd.MM.yy'
+          ],
+          TIMEFORMATS: const [
+            'HH.mm:ss \'h\' zzzz',
+            'HH:mm:ss z',
+            'HH:mm:ss',
+            'HH:mm'
+          ],
+          DATETIMEFORMATS: const [
+            '{1} \'à\' {0}',
+            '{1} \'à\' {0}',
+            '{1} \'à\' {0}',
+            '{1} {0}'
+          ],
+          FIRSTDAYOFWEEK: 0,
+          WEEKENDRANGE: const [5, 6],
+          FIRSTWEEKCUTOFFDAY: 3),
       // Date/time formatting symbols for locale ga.
       "ga": new DateSymbols(
           NAME: "ga",
@@ -6590,7 +7058,7 @@
             '3. Quartal',
             '4. Quartal'
           ],
-          AMPMS: const ['vorm.', 'nam.'],
+          AMPMS: const ['am Vormittag', 'am Namittag'],
           DATEFORMATS: const [
             'EEEE, d. MMMM y',
             'd. MMMM y',
@@ -8294,6 +8762,157 @@
           FIRSTDAYOFWEEK: 0,
           WEEKENDRANGE: const [5, 6],
           FIRSTWEEKCUTOFFDAY: 3),
+      // Date/time formatting symbols for locale it_CH.
+      "it_CH": new DateSymbols(
+          NAME: "it_CH",
+          ERAS: const ['a.C.', 'd.C.'],
+          ERANAMES: const ['avanti Cristo', 'dopo Cristo'],
+          NARROWMONTHS: const [
+            'G',
+            'F',
+            'M',
+            'A',
+            'M',
+            'G',
+            'L',
+            'A',
+            'S',
+            'O',
+            'N',
+            'D'
+          ],
+          STANDALONENARROWMONTHS: const [
+            'G',
+            'F',
+            'M',
+            'A',
+            'M',
+            'G',
+            'L',
+            'A',
+            'S',
+            'O',
+            'N',
+            'D'
+          ],
+          MONTHS: const [
+            'gennaio',
+            'febbraio',
+            'marzo',
+            'aprile',
+            'maggio',
+            'giugno',
+            'luglio',
+            'agosto',
+            'settembre',
+            'ottobre',
+            'novembre',
+            'dicembre'
+          ],
+          STANDALONEMONTHS: const [
+            'gennaio',
+            'febbraio',
+            'marzo',
+            'aprile',
+            'maggio',
+            'giugno',
+            'luglio',
+            'agosto',
+            'settembre',
+            'ottobre',
+            'novembre',
+            'dicembre'
+          ],
+          SHORTMONTHS: const [
+            'gen',
+            'feb',
+            'mar',
+            'apr',
+            'mag',
+            'giu',
+            'lug',
+            'ago',
+            'set',
+            'ott',
+            'nov',
+            'dic'
+          ],
+          STANDALONESHORTMONTHS: const [
+            'gen',
+            'feb',
+            'mar',
+            'apr',
+            'mag',
+            'giu',
+            'lug',
+            'ago',
+            'set',
+            'ott',
+            'nov',
+            'dic'
+          ],
+          WEEKDAYS: const [
+            'domenica',
+            'lunedì',
+            'martedì',
+            'mercoledì',
+            'giovedì',
+            'venerdì',
+            'sabato'
+          ],
+          STANDALONEWEEKDAYS: const [
+            'domenica',
+            'lunedì',
+            'martedì',
+            'mercoledì',
+            'giovedì',
+            'venerdì',
+            'sabato'
+          ],
+          SHORTWEEKDAYS: const [
+            'dom',
+            'lun',
+            'mar',
+            'mer',
+            'gio',
+            'ven',
+            'sab'
+          ],
+          STANDALONESHORTWEEKDAYS: const [
+            'dom',
+            'lun',
+            'mar',
+            'mer',
+            'gio',
+            'ven',
+            'sab'
+          ],
+          NARROWWEEKDAYS: const ['D', 'L', 'M', 'M', 'G', 'V', 'S'],
+          STANDALONENARROWWEEKDAYS: const ['D', 'L', 'M', 'M', 'G', 'V', 'S'],
+          SHORTQUARTERS: const ['T1', 'T2', 'T3', 'T4'],
+          QUARTERS: const [
+            '1º trimestre',
+            '2º trimestre',
+            '3º trimestre',
+            '4º trimestre'
+          ],
+          AMPMS: const ['AM', 'PM'],
+          DATEFORMATS: const [
+            'EEEE, d MMMM y',
+            'd MMMM y',
+            'd MMM y',
+            'dd.MM.yy'
+          ],
+          TIMEFORMATS: const [
+            'HH:mm:ss zzzz',
+            'HH:mm:ss z',
+            'HH:mm:ss',
+            'HH:mm'
+          ],
+          DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1}, {0}', '{1}, {0}'],
+          FIRSTDAYOFWEEK: 0,
+          WEEKENDRANGE: const [5, 6],
+          FIRSTWEEKCUTOFFDAY: 3),
       // Date/time formatting symbols for locale iw.
       "iw": new DateSymbols(
           NAME: "iw",
@@ -12377,6 +12996,157 @@
           FIRSTDAYOFWEEK: 0,
           WEEKENDRANGE: const [5, 6],
           FIRSTWEEKCUTOFFDAY: 3),
+      // Date/time formatting symbols for locale ps.
+      "ps": new DateSymbols(
+          NAME: "ps",
+          ERAS: const ['له میلاد وړاندې', 'م.'],
+          ERANAMES: const ['له میلاد څخه وړاندې', 'له میلاد څخه وروسته'],
+          NARROWMONTHS: const [
+            '1',
+            '2',
+            '3',
+            '4',
+            '5',
+            '6',
+            '7',
+            '8',
+            '9',
+            '10',
+            '11',
+            '12'
+          ],
+          STANDALONENARROWMONTHS: const [
+            '1',
+            '2',
+            '3',
+            '4',
+            '5',
+            '6',
+            '7',
+            '8',
+            '9',
+            '10',
+            '11',
+            '12'
+          ],
+          MONTHS: const [
+            'جنوري',
+            'فبروري',
+            'مارچ',
+            'اپریل',
+            'مۍ',
+            'جون',
+            'جولای',
+            'اګست',
+            'سپتمبر',
+            'اکتوبر',
+            'نومبر',
+            'دسمبر'
+          ],
+          STANDALONEMONTHS: const [
+            'جنوري',
+            'فبروري',
+            'مارچ',
+            'اپریل',
+            'مۍ',
+            'جون',
+            'جولای',
+            'اګست',
+            'سپتمبر',
+            'اکتوبر',
+            'نومبر',
+            'دسمبر'
+          ],
+          SHORTMONTHS: const [
+            'جنوري',
+            'فبروري',
+            'مارچ',
+            'اپریل',
+            'مۍ',
+            'جون',
+            'جولای',
+            'اګست',
+            'سپتمبر',
+            'اکتوبر',
+            'نومبر',
+            'دسمبر'
+          ],
+          STANDALONESHORTMONTHS: const [
+            'جنوري',
+            'فبروري',
+            'مارچ',
+            'اپریل',
+            'مۍ',
+            'جون',
+            'جولای',
+            'اګست',
+            'سپتمبر',
+            'اکتوبر',
+            'نومبر',
+            'دسمبر'
+          ],
+          WEEKDAYS: const [
+            'یکشنبه',
+            'دوشنبه',
+            'سه‌شنبه',
+            'چهارشنبه',
+            'پنجشنبه',
+            'جمعه',
+            'شنبه'
+          ],
+          STANDALONEWEEKDAYS: const [
+            'یکشنبه',
+            'دوشنبه',
+            'سه‌شنبه',
+            'چهارشنبه',
+            'پنجشنبه',
+            'جمعه',
+            'شنبه'
+          ],
+          SHORTWEEKDAYS: const [
+            'یکشنبه',
+            'دوشنبه',
+            'سه‌شنبه',
+            'چهارشنبه',
+            'پنجشنبه',
+            'جمعه',
+            'شنبه'
+          ],
+          STANDALONESHORTWEEKDAYS: const [
+            'یکشنبه',
+            'دوشنبه',
+            'سه‌شنبه',
+            'چهارشنبه',
+            'پنجشنبه',
+            'جمعه',
+            'شنبه'
+          ],
+          NARROWWEEKDAYS: const ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+          STANDALONENARROWWEEKDAYS: const ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+          SHORTQUARTERS: const [
+            'لومړۍ ربعه',
+            '۲مه ربعه',
+            '۳مه ربعه',
+            '۴مه ربعه'
+          ],
+          QUARTERS: const ['لومړۍ ربعه', '۲مه ربعه', '۳مه ربعه', '۴مه ربعه'],
+          AMPMS: const ['غ.م.', 'غ.و.'],
+          DATEFORMATS: const [
+            'EEEE د y د MMMM d',
+            'د y د MMMM d',
+            'y MMM d',
+            'y/M/d'
+          ],
+          TIMEFORMATS: const [
+            'H:mm:ss (zzzz)',
+            'H:mm:ss (z)',
+            'H:mm:ss',
+            'H:mm'
+          ],
+          DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'],
+          FIRSTDAYOFWEEK: 5,
+          WEEKENDRANGE: const [3, 4],
+          FIRSTWEEKCUTOFFDAY: 4),
       // Date/time formatting symbols for locale pt.
       "pt": new DateSymbols(
           NAME: "pt",
@@ -16387,5 +17157,5 @@
           DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'],
           FIRSTDAYOFWEEK: 6,
           WEEKENDRANGE: const [5, 6],
-          FIRSTWEEKCUTOFFDAY: 5)
+          FIRSTWEEKCUTOFFDAY: 5),
     };
diff --git a/lib/date_time_patterns.dart b/lib/date_time_patterns.dart
index 0ff874e..584c0b3 100644
--- a/lib/date_time_patterns.dart
+++ b/lib/date_time_patterns.dart
@@ -6,7 +6,7 @@
 ///
 /// DO NOT EDIT. This file is autogenerated from ICU data. See
 /// 'http://go/generate_datetime_pattern_dart.cc' (Google internal)
-/// File generated from CLDR ver. 30.0.2
+/// File generated from CLDR ver. 31.0.1
 
 library date_time_patterns;
 
@@ -158,6 +158,54 @@
         'ZZZZ': 'ZZZZ' // ABBR_UTC_TZ
       },
 
+      /// Extended set of localized date/time patterns for locale ar_DZ.
+      'ar_DZ': const {
+        'd': 'd', // DAY
+        'E': 'ccc', // ABBR_WEEKDAY
+        'EEEE': 'cccc', // WEEKDAY
+        'LLL': 'LLL', // ABBR_STANDALONE_MONTH
+        'LLLL': 'LLLL', // STANDALONE_MONTH
+        'M': 'L', // NUM_MONTH
+        'Md': 'd/‏M', // NUM_MONTH_DAY
+        'MEd': 'EEE، d/M', // NUM_MONTH_WEEKDAY_DAY
+        'MMM': 'LLL', // ABBR_MONTH
+        'MMMd': 'd MMM', // ABBR_MONTH_DAY
+        'MMMEd': 'EEE، d MMM', // ABBR_MONTH_WEEKDAY_DAY
+        'MMMM': 'LLLL', // MONTH
+        'MMMMd': 'd MMMM', // MONTH_DAY
+        'MMMMEEEEd': 'EEEE، d MMMM', // MONTH_WEEKDAY_DAY
+        'QQQ': 'QQQ', // ABBR_QUARTER
+        'QQQQ': 'QQQQ', // QUARTER
+        'y': 'y', // YEAR
+        'yM': 'M‏/y', // YEAR_NUM_MONTH
+        'yMd': 'd‏/M‏/y', // YEAR_NUM_MONTH_DAY
+        'yMEd': 'EEE، d/‏M/‏y', // YEAR_NUM_MONTH_WEEKDAY_DAY
+        'yMMM': 'MMM y', // YEAR_ABBR_MONTH
+        'yMMMd': 'd MMM، y', // YEAR_ABBR_MONTH_DAY
+        'yMMMEd': 'EEE، d MMM، y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMMM': 'MMMM y', // YEAR_MONTH
+        'yMMMMd': 'd MMMM، y', // YEAR_MONTH_DAY
+        'yMMMMEEEEd': 'EEEE، d MMMM، y', // YEAR_MONTH_WEEKDAY_DAY
+        'yQQQ': 'QQQ y', // YEAR_ABBR_QUARTER
+        'yQQQQ': 'QQQQ y', // YEAR_QUARTER
+        'H': 'HH', // HOUR24
+        'Hm': 'HH:mm', // HOUR24_MINUTE
+        'Hms': 'HH:mm:ss', // HOUR24_MINUTE_SECOND
+        'j': 'h a', // HOUR
+        'jm': 'h:mm a', // HOUR_MINUTE
+        'jms': 'h:mm:ss a', // HOUR_MINUTE_SECOND
+        'jmv': 'h:mm a v', // HOUR_MINUTE_GENERIC_TZ
+        'jmz': 'h:mm a z', // HOUR_MINUTETZ
+        'jz': 'h a z', // HOURGENERIC_TZ
+        'm': 'm', // MINUTE
+        'ms': 'mm:ss', // MINUTE_SECOND
+        's': 's', // SECOND
+        'v': 'v', // ABBR_GENERIC_TZ
+        'z': 'z', // ABBR_SPECIFIC_TZ
+        'zzzz': 'zzzz', // SPECIFIC_TZ
+        'ZZZZ': 'ZZZZ' // ABBR_UTC_TZ
+      },
+
       /// Extended set of localized date/time patterns for locale az.
       'az': const {
         'd': 'd', // DAY
@@ -183,7 +231,7 @@
         'yMMM': 'MMM y', // YEAR_ABBR_MONTH
         'yMMMd': 'd MMM y', // YEAR_ABBR_MONTH_DAY
         'yMMMEd': 'd MMM y, EEE', // YEAR_ABBR_MONTH_WEEKDAY_DAY
-        'yMMMM': 'y MMMM', // YEAR_MONTH
+        'yMMMM': 'MMMM y', // YEAR_MONTH
         'yMMMMd': 'd MMMM y', // YEAR_MONTH_DAY
         'yMMMMEEEEd': 'd MMMM y, EEEE', // YEAR_MONTH_WEEKDAY_DAY
         'yQQQ': 'y QQQ', // YEAR_ABBR_QUARTER
@@ -3015,7 +3063,7 @@
         'yMMM': 'MMM y', // YEAR_ABBR_MONTH
         'yMMMd': 'd MMM y', // YEAR_ABBR_MONTH_DAY
         'yMMMEd': 'EEE, d MMM y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
-        'yMMMM': 'y MMMM', // YEAR_MONTH
+        'yMMMM': 'MMMM y', // YEAR_MONTH
         'yMMMMd': 'd MMMM y', // YEAR_MONTH_DAY
         'yMMMMEEEEd': 'EEEE, d MMMM y', // YEAR_MONTH_WEEKDAY_DAY
         'yQQQ': 'QQQ y', // YEAR_ABBR_QUARTER
@@ -3831,7 +3879,7 @@
         'yMMM': 'MMM y', // YEAR_ABBR_MONTH
         'yMMMd': 'd MMM y', // YEAR_ABBR_MONTH_DAY
         'yMMMEd': 'EEE, d MMM y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
-        'yMMMM': 'y MMMM', // YEAR_MONTH
+        'yMMMM': 'MMMM y', // YEAR_MONTH
         'yMMMMd': 'd MMMM y', // YEAR_MONTH_DAY
         'yMMMMEEEEd': 'EEEE, d MMMM y', // YEAR_MONTH_WEEKDAY_DAY
         'yQQQ': 'QQQ y', // YEAR_ABBR_QUARTER
@@ -4887,7 +4935,7 @@
         'yMMM': 'MMM y', // YEAR_ABBR_MONTH
         'yMMMd': 'd MMM، y', // YEAR_ABBR_MONTH_DAY
         'yMMMEd': 'EEE، d MMM، y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
-        'yMMMM': 'y MMMM', // YEAR_MONTH
+        'yMMMM': 'MMMM y', // YEAR_MONTH
         'yMMMMd': 'd MMMM، y', // YEAR_MONTH_DAY
         'yMMMMEEEEd': 'EEEE، d MMMM، y', // YEAR_MONTH_WEEKDAY_DAY
         'yQQQ': 'QQQ y', // YEAR_ABBR_QUARTER
@@ -5292,5 +5340,197 @@
         'z': 'z', // ABBR_SPECIFIC_TZ
         'zzzz': 'zzzz', // SPECIFIC_TZ
         'ZZZZ': 'ZZZZ' // ABBR_UTC_TZ
+      },
+
+      /// Extended set of localized date/time patterns for locale en_MY.
+      'en_MY': const {
+        'd': 'd', // DAY
+        'E': 'ccc', // ABBR_WEEKDAY
+        'EEEE': 'cccc', // WEEKDAY
+        'LLL': 'LLL', // ABBR_STANDALONE_MONTH
+        'LLLL': 'LLLL', // STANDALONE_MONTH
+        'M': 'L', // NUM_MONTH
+        'Md': 'dd/MM', // NUM_MONTH_DAY
+        'MEd': 'EEE, dd/MM', // NUM_MONTH_WEEKDAY_DAY
+        'MMM': 'LLL', // ABBR_MONTH
+        'MMMd': 'd MMM', // ABBR_MONTH_DAY
+        'MMMEd': 'EEE, d MMM', // ABBR_MONTH_WEEKDAY_DAY
+        'MMMM': 'LLLL', // MONTH
+        'MMMMd': 'd MMMM', // MONTH_DAY
+        'MMMMEEEEd': 'EEEE, d MMMM', // MONTH_WEEKDAY_DAY
+        'QQQ': 'QQQ', // ABBR_QUARTER
+        'QQQQ': 'QQQQ', // QUARTER
+        'y': 'y', // YEAR
+        'yM': 'MM/y', // YEAR_NUM_MONTH
+        'yMd': 'dd/MM/y', // YEAR_NUM_MONTH_DAY
+        'yMEd': 'EEE, dd/MM/y', // YEAR_NUM_MONTH_WEEKDAY_DAY
+        'yMMM': 'MMM y', // YEAR_ABBR_MONTH
+        'yMMMd': 'd MMM y', // YEAR_ABBR_MONTH_DAY
+        'yMMMEd': 'EEE, d MMM y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMMM': 'MMMM y', // YEAR_MONTH
+        'yMMMMd': 'd MMMM y', // YEAR_MONTH_DAY
+        'yMMMMEEEEd': 'EEEE, d MMMM y', // YEAR_MONTH_WEEKDAY_DAY
+        'yQQQ': 'QQQ y', // YEAR_ABBR_QUARTER
+        'yQQQQ': 'QQQQ y', // YEAR_QUARTER
+        'H': 'HH', // HOUR24
+        'Hm': 'HH:mm', // HOUR24_MINUTE
+        'Hms': 'HH:mm:ss', // HOUR24_MINUTE_SECOND
+        'j': 'h a', // HOUR
+        'jm': 'h:mm a', // HOUR_MINUTE
+        'jms': 'h:mm:ss a', // HOUR_MINUTE_SECOND
+        'jmv': 'h:mm a v', // HOUR_MINUTE_GENERIC_TZ
+        'jmz': 'h:mm a z', // HOUR_MINUTETZ
+        'jz': 'h a z', // HOURGENERIC_TZ
+        'm': 'm', // MINUTE
+        'ms': 'mm:ss', // MINUTE_SECOND
+        's': 's', // SECOND
+        'v': 'v', // ABBR_GENERIC_TZ
+        'z': 'z', // ABBR_SPECIFIC_TZ
+        'zzzz': 'zzzz', // SPECIFIC_TZ
+        'ZZZZ': 'ZZZZ' // ABBR_UTC_TZ
+      },
+
+      /// Extended set of localized date/time patterns for locale fr_CH.
+      'fr_CH': const {
+        'd': 'd', // DAY
+        'E': 'EEE', // ABBR_WEEKDAY
+        'EEEE': 'EEEE', // WEEKDAY
+        'LLL': 'LLL', // ABBR_STANDALONE_MONTH
+        'LLLL': 'LLLL', // STANDALONE_MONTH
+        'M': 'L', // NUM_MONTH
+        'Md': 'dd.MM.', // NUM_MONTH_DAY
+        'MEd': 'EEE, dd.MM.', // NUM_MONTH_WEEKDAY_DAY
+        'MMM': 'LLL', // ABBR_MONTH
+        'MMMd': 'd MMM', // ABBR_MONTH_DAY
+        'MMMEd': 'EEE d MMM', // ABBR_MONTH_WEEKDAY_DAY
+        'MMMM': 'LLLL', // MONTH
+        'MMMMd': 'd MMMM', // MONTH_DAY
+        'MMMMEEEEd': 'EEEE d MMMM', // MONTH_WEEKDAY_DAY
+        'QQQ': 'QQQ', // ABBR_QUARTER
+        'QQQQ': 'QQQQ', // QUARTER
+        'y': 'y', // YEAR
+        'yM': 'MM.y', // YEAR_NUM_MONTH
+        'yMd': 'dd.MM.y', // YEAR_NUM_MONTH_DAY
+        'yMEd': 'EEE, dd.MM.y', // YEAR_NUM_MONTH_WEEKDAY_DAY
+        'yMMM': 'MMM y', // YEAR_ABBR_MONTH
+        'yMMMd': 'd MMM y', // YEAR_ABBR_MONTH_DAY
+        'yMMMEd': 'EEE d MMM y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMMM': 'MMMM y', // YEAR_MONTH
+        'yMMMMd': 'd MMMM y', // YEAR_MONTH_DAY
+        'yMMMMEEEEd': 'EEEE, d MMMM y', // YEAR_MONTH_WEEKDAY_DAY
+        'yQQQ': 'QQQ y', // YEAR_ABBR_QUARTER
+        'yQQQQ': 'QQQQ y', // YEAR_QUARTER
+        'H': 'HH \'h\'', // HOUR24
+        'Hm': 'HH:mm', // HOUR24_MINUTE
+        'Hms': 'HH:mm:ss', // HOUR24_MINUTE_SECOND
+        'j': 'HH \'h\'', // HOUR
+        'jm': 'HH:mm', // HOUR_MINUTE
+        'jms': 'HH:mm:ss', // HOUR_MINUTE_SECOND
+        'jmv': 'HH:mm v', // HOUR_MINUTE_GENERIC_TZ
+        'jmz': 'HH:mm z', // HOUR_MINUTETZ
+        'jz': 'HH \'h\' z', // HOURGENERIC_TZ
+        'm': 'm', // MINUTE
+        'ms': 'mm:ss', // MINUTE_SECOND
+        's': 's', // SECOND
+        'v': 'v', // ABBR_GENERIC_TZ
+        'z': 'z', // ABBR_SPECIFIC_TZ
+        'zzzz': 'zzzz', // SPECIFIC_TZ
+        'ZZZZ': 'ZZZZ' // ABBR_UTC_TZ
+      },
+
+      /// Extended set of localized date/time patterns for locale it_CH.
+      'it_CH': const {
+        'd': 'd', // DAY
+        'E': 'ccc', // ABBR_WEEKDAY
+        'EEEE': 'cccc', // WEEKDAY
+        'LLL': 'LLL', // ABBR_STANDALONE_MONTH
+        'LLLL': 'LLLL', // STANDALONE_MONTH
+        'M': 'L', // NUM_MONTH
+        'Md': 'd/M', // NUM_MONTH_DAY
+        'MEd': 'EEE d/M', // NUM_MONTH_WEEKDAY_DAY
+        'MMM': 'LLL', // ABBR_MONTH
+        'MMMd': 'd MMM', // ABBR_MONTH_DAY
+        'MMMEd': 'EEE d MMM', // ABBR_MONTH_WEEKDAY_DAY
+        'MMMM': 'LLLL', // MONTH
+        'MMMMd': 'd MMMM', // MONTH_DAY
+        'MMMMEEEEd': 'EEEE d MMMM', // MONTH_WEEKDAY_DAY
+        'QQQ': 'QQQ', // ABBR_QUARTER
+        'QQQQ': 'QQQQ', // QUARTER
+        'y': 'y', // YEAR
+        'yM': 'M/y', // YEAR_NUM_MONTH
+        'yMd': 'd/M/y', // YEAR_NUM_MONTH_DAY
+        'yMEd': 'EEE d/M/y', // YEAR_NUM_MONTH_WEEKDAY_DAY
+        'yMMM': 'MMM y', // YEAR_ABBR_MONTH
+        'yMMMd': 'd MMM y', // YEAR_ABBR_MONTH_DAY
+        'yMMMEd': 'EEE d MMM y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMMM': 'MMMM y', // YEAR_MONTH
+        'yMMMMd': 'd MMMM y', // YEAR_MONTH_DAY
+        'yMMMMEEEEd': 'EEEE, d MMMM y', // YEAR_MONTH_WEEKDAY_DAY
+        'yQQQ': 'QQQ y', // YEAR_ABBR_QUARTER
+        'yQQQQ': 'QQQQ y', // YEAR_QUARTER
+        'H': 'HH', // HOUR24
+        'Hm': 'HH:mm', // HOUR24_MINUTE
+        'Hms': 'HH:mm:ss', // HOUR24_MINUTE_SECOND
+        'j': 'HH', // HOUR
+        'jm': 'HH:mm', // HOUR_MINUTE
+        'jms': 'HH:mm:ss', // HOUR_MINUTE_SECOND
+        'jmv': 'HH:mm v', // HOUR_MINUTE_GENERIC_TZ
+        'jmz': 'HH:mm z', // HOUR_MINUTETZ
+        'jz': 'HH z', // HOURGENERIC_TZ
+        'm': 'm', // MINUTE
+        'ms': 'mm:ss', // MINUTE_SECOND
+        's': 's', // SECOND
+        'v': 'v', // ABBR_GENERIC_TZ
+        'z': 'z', // ABBR_SPECIFIC_TZ
+        'zzzz': 'zzzz', // SPECIFIC_TZ
+        'ZZZZ': 'ZZZZ' // ABBR_UTC_TZ
+      },
+
+      /// Extended set of localized date/time patterns for locale ps.
+      'ps': const {
+        'd': 'd', // DAY
+        'E': 'ccc', // ABBR_WEEKDAY
+        'EEEE': 'cccc', // WEEKDAY
+        'LLL': 'LLL', // ABBR_STANDALONE_MONTH
+        'LLLL': 'LLLL', // STANDALONE_MONTH
+        'M': 'L', // NUM_MONTH
+        'Md': 'M/d', // NUM_MONTH_DAY
+        'MEd': 'MM-dd, EEE', // NUM_MONTH_WEEKDAY_DAY
+        'MMM': 'LLL', // ABBR_MONTH
+        'MMMd': 'MMM d', // ABBR_MONTH_DAY
+        'MMMEd': 'MMM d, EEE', // ABBR_MONTH_WEEKDAY_DAY
+        'MMMM': 'LLLL', // MONTH
+        'MMMMd': 'd MMMM', // MONTH_DAY
+        'MMMMEEEEd': 'MMMM d, EEEE', // MONTH_WEEKDAY_DAY
+        'QQQ': 'QQQ', // ABBR_QUARTER
+        'QQQQ': 'QQQQ', // QUARTER
+        'y': 'y', // YEAR
+        'yM': 'y/M', // YEAR_NUM_MONTH
+        'yMd': 'y-MM-dd', // YEAR_NUM_MONTH_DAY
+        'yMEd': 'y-MM-dd, EEE', // YEAR_NUM_MONTH_WEEKDAY_DAY
+        'yMMM': 'y MMM', // YEAR_ABBR_MONTH
+        'yMMMd': 'y MMM d', // YEAR_ABBR_MONTH_DAY
+        'yMMMEd': 'y MMM d, EEE', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMMM': 'د y د MMMM', // YEAR_MONTH
+        'yMMMMd': 'د y د MMMM d', // YEAR_MONTH_DAY
+        'yMMMMEEEEd': 'EEEE د y د MMMM d', // YEAR_MONTH_WEEKDAY_DAY
+        'yQQQ': 'y QQQ', // YEAR_ABBR_QUARTER
+        'yQQQQ': 'y QQQQ', // YEAR_QUARTER
+        'H': 'H', // HOUR24
+        'Hm': 'H:mm', // HOUR24_MINUTE
+        'Hms': 'H:mm:ss', // HOUR24_MINUTE_SECOND
+        'j': 'H', // HOUR
+        'jm': 'H:mm', // HOUR_MINUTE
+        'jms': 'H:mm:ss', // HOUR_MINUTE_SECOND
+        'jmv': 'HH:mm v', // HOUR_MINUTE_GENERIC_TZ
+        'jmz': 'HH:mm z', // HOUR_MINUTETZ
+        'jz': 'H (z)', // HOURGENERIC_TZ
+        'm': 'm', // MINUTE
+        'ms': 'mm:ss', // MINUTE_SECOND
+        's': 's', // SECOND
+        'v': 'v', // ABBR_GENERIC_TZ
+        'z': 'z', // ABBR_SPECIFIC_TZ
+        'zzzz': 'zzzz', // SPECIFIC_TZ
+        'ZZZZ': 'ZZZZ' // ABBR_UTC_TZ
       }
     };
diff --git a/lib/number_symbols_data.dart b/lib/number_symbols_data.dart
index 1082193..76a73af 100644
--- a/lib/number_symbols_data.dart
+++ b/lib/number_symbols_data.dart
@@ -73,6 +73,24 @@
       PERCENT_PATTERN: '#,##0\u00A0%',
       CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4',
       DEF_CURRENCY_CODE: 'EGP'),
+  // Number formatting symbols for locale ar_DZ.
+  "ar_DZ": new NumberSymbols(
+      NAME: "ar_DZ",
+      DECIMAL_SEP: ',',
+      GROUP_SEP: '.',
+      PERCENT: '\u200E%\u200E',
+      ZERO_DIGIT: '0',
+      PLUS_SIGN: '\u200E+',
+      MINUS_SIGN: '\u200E-',
+      EXP_SYMBOL: 'E',
+      PERMILL: '\u2030',
+      INFINITY: '\u221E',
+      NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645\u064B\u0627',
+      DECIMAL_PATTERN: '#,##0.###',
+      SCIENTIFIC_PATTERN: '#E0',
+      PERCENT_PATTERN: '#,##0%',
+      CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00',
+      DEF_CURRENCY_CODE: 'DZD'),
   // Number formatting symbols for locale az.
   "az": new NumberSymbols(
       NAME: "az",
@@ -125,7 +143,7 @@
       DECIMAL_PATTERN: '#,##0.###',
       SCIENTIFIC_PATTERN: '#E0',
       PERCENT_PATTERN: '#,##0%',
-      CURRENCY_PATTERN: '#0.00\u00A0\u00A4',
+      CURRENCY_PATTERN: '0.00\u00A0\u00A4',
       DEF_CURRENCY_CODE: 'BGN'),
   // Number formatting symbols for locale bn.
   "bn": new NumberSymbols(
@@ -311,7 +329,7 @@
   "de_CH": new NumberSymbols(
       NAME: "de_CH",
       DECIMAL_SEP: '.',
-      GROUP_SEP: '\'',
+      GROUP_SEP: '\u2019',
       PERCENT: '%',
       ZERO_DIGIT: '0',
       PLUS_SIGN: '+',
@@ -451,6 +469,24 @@
       PERCENT_PATTERN: '#,##,##0%',
       CURRENCY_PATTERN: '\u00A4\u00A0#,##,##0.00',
       DEF_CURRENCY_CODE: 'INR'),
+  // Number formatting symbols for locale en_MY.
+  "en_MY": new NumberSymbols(
+      NAME: "en_MY",
+      DECIMAL_SEP: '.',
+      GROUP_SEP: ',',
+      PERCENT: '%',
+      ZERO_DIGIT: '0',
+      PLUS_SIGN: '+',
+      MINUS_SIGN: '-',
+      EXP_SYMBOL: 'E',
+      PERMILL: '\u2030',
+      INFINITY: '\u221E',
+      NAN: 'NaN',
+      DECIMAL_PATTERN: '#,##0.###',
+      SCIENTIFIC_PATTERN: '#E0',
+      PERCENT_PATTERN: '#,##0%',
+      CURRENCY_PATTERN: '\u00A4#,##0.00',
+      DEF_CURRENCY_CODE: 'MYR'),
   // Number formatting symbols for locale en_SG.
   "en_SG": new NumberSymbols(
       NAME: "en_SG",
@@ -722,6 +758,24 @@
       PERCENT_PATTERN: '#,##0\u00A0%',
       CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4',
       DEF_CURRENCY_CODE: 'CAD'),
+  // Number formatting symbols for locale fr_CH.
+  "fr_CH": new NumberSymbols(
+      NAME: "fr_CH",
+      DECIMAL_SEP: ',',
+      GROUP_SEP: '\u00A0',
+      PERCENT: '%',
+      ZERO_DIGIT: '0',
+      PLUS_SIGN: '+',
+      MINUS_SIGN: '-',
+      EXP_SYMBOL: 'E',
+      PERMILL: '\u2030',
+      INFINITY: '\u221E',
+      NAN: 'NaN',
+      DECIMAL_PATTERN: '#,##0.###',
+      SCIENTIFIC_PATTERN: '#E0',
+      PERCENT_PATTERN: '#,##0%',
+      CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4',
+      DEF_CURRENCY_CODE: 'CHF'),
   // Number formatting symbols for locale ga.
   "ga": new NumberSymbols(
       NAME: "ga",
@@ -975,6 +1029,24 @@
       PERCENT_PATTERN: '#,##0%',
       CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4',
       DEF_CURRENCY_CODE: 'EUR'),
+  // Number formatting symbols for locale it_CH.
+  "it_CH": new NumberSymbols(
+      NAME: "it_CH",
+      DECIMAL_SEP: '.',
+      GROUP_SEP: '\u2019',
+      PERCENT: '%',
+      ZERO_DIGIT: '0',
+      PLUS_SIGN: '+',
+      MINUS_SIGN: '-',
+      EXP_SYMBOL: 'E',
+      PERMILL: '\u2030',
+      INFINITY: '\u221E',
+      NAN: 'NaN',
+      DECIMAL_PATTERN: '#,##0.###',
+      SCIENTIFIC_PATTERN: '#E0',
+      PERCENT_PATTERN: '#,##0%',
+      CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00;\u00A4-#,##0.00',
+      DEF_CURRENCY_CODE: 'CHF'),
   // Number formatting symbols for locale iw.
   "iw": new NumberSymbols(
       NAME: "iw",
@@ -1465,6 +1537,24 @@
       PERCENT_PATTERN: '#,##0%',
       CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4',
       DEF_CURRENCY_CODE: 'PLN'),
+  // Number formatting symbols for locale ps.
+  "ps": new NumberSymbols(
+      NAME: "ps",
+      DECIMAL_SEP: '\u066B',
+      GROUP_SEP: '\u066C',
+      PERCENT: '\u066A',
+      ZERO_DIGIT: '\u06F0',
+      PLUS_SIGN: '\u200E+\u200E',
+      MINUS_SIGN: '\u200E-\u200E',
+      EXP_SYMBOL: '\u00D7\u06F1\u06F0^',
+      PERMILL: '\u0609',
+      INFINITY: '\u221E',
+      NAN: 'NaN',
+      DECIMAL_PATTERN: '#,##0.###',
+      SCIENTIFIC_PATTERN: '#E0',
+      PERCENT_PATTERN: '#,##0%',
+      CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4',
+      DEF_CURRENCY_CODE: 'AFN'),
   // Number formatting symbols for locale pt.
   "pt": new NumberSymbols(
       NAME: "pt",
@@ -1599,7 +1689,7 @@
       PERCENT: '%',
       ZERO_DIGIT: '0',
       PLUS_SIGN: '+',
-      MINUS_SIGN: '\u2013',
+      MINUS_SIGN: '\u2212',
       EXP_SYMBOL: 'e',
       PERMILL: '\u2030',
       INFINITY: '\u221E',
@@ -2077,6 +2167,47 @@
     13: '\u00A4\u00A000\u00A0\u062A\u0631\u0644\u064A\u0648',
     14: '\u00A4\u00A0000\u00A0\u062A\u0631\u0644\u064A\u0648',
   }),
+  // Compact number symbols for locale ar_DZ.
+  "ar_DZ": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
+    3: '0\u00A0\u0623\u0644\u0641',
+    4: '00\u00A0\u0623\u0644\u0641',
+    5: '000\u00A0\u0623\u0644\u0641',
+    6: '0\u00A0\u0645\u0644\u064A\u0648',
+    7: '00\u00A0\u0645\u0644\u064A\u0648',
+    8: '000\u00A0\u0645\u0644\u064A\u0648',
+    9: '0\u00A0\u0645\u0644\u064A\u0627',
+    10: '00\u00A0\u0645\u0644\u064A\u0627',
+    11: '000\u00A0\u0645\u0644\u064A\u0627',
+    12: '0\u00A0\u062A\u0631\u0644\u064A\u0648',
+    13: '00\u00A0\u062A\u0631\u0644\u064A\u0648',
+    14: '000\u00A0\u062A\u0631\u0644\u064A\u0648',
+  }, COMPACT_DECIMAL_LONG_PATTERN: const {
+    3: '0 \u0623\u0644\u0641',
+    4: '00 \u0623\u0644\u0641',
+    5: '000 \u0623\u0644\u0641',
+    6: '0 \u0645\u0644\u064A\u0648\u0646',
+    7: '00 \u0645\u0644\u064A\u0648\u0646',
+    8: '000 \u0645\u0644\u064A\u0648\u0646',
+    9: '0 \u0645\u0644\u064A\u0627\u0631',
+    10: '00 \u0645\u0644\u064A\u0627\u0631',
+    11: '000 \u0645\u0644\u064A\u0627\u0631',
+    12: '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646',
+    13: '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646',
+    14: '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646',
+  }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
+    3: '\u00A4\u00A00\u00A0\u0623\u0644\u0641',
+    4: '\u00A4\u00A000\u00A0\u0623\u0644\u0641',
+    5: '\u00A4\u00A0000\u00A0\u0623\u0644\u0641',
+    6: '\u00A4\u00A00\u00A0\u0645\u0644\u064A\u0648',
+    7: '\u00A4\u00A000\u00A0\u0645\u0644\u064A\u0648',
+    8: '\u00A4\u00A0000\u00A0\u0645\u0644\u064A\u0648',
+    9: '\u00A4\u00A00\u00A0\u0645\u0644\u064A\u0627',
+    10: '\u00A4\u00A000\u00A0\u0645\u0644\u064A\u0627',
+    11: '\u00A4\u00A0000\u00A0\u0645\u0644\u064A\u0627',
+    12: '\u00A4\u00A00\u00A0\u062A\u0631\u0644\u064A\u0648',
+    13: '\u00A4\u00A000\u00A0\u062A\u0631\u0644\u064A\u0648',
+    14: '\u00A4\u00A0000\u00A0\u062A\u0631\u0644\u064A\u0648',
+  }),
   // Compact number symbols for locale az.
   "az": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
     3: '0K',
@@ -2517,9 +2648,9 @@
   }),
   // Compact number symbols for locale de.
   "de": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0Tsd.',
-    4: '00\u00A0Tsd.',
-    5: '000\u00A0Tsd.',
+    3: '0',
+    4: '0',
+    5: '0',
     6: '0\u00A0Mio.',
     7: '00\u00A0Mio.',
     8: '000\u00A0Mio.',
@@ -2558,9 +2689,9 @@
   }),
   // Compact number symbols for locale de_AT.
   "de_AT": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0Tsd.',
-    4: '00\u00A0Tsd.',
-    5: '000\u00A0Tsd.',
+    3: '0',
+    4: '0',
+    5: '0',
     6: '0\u00A0Mio.',
     7: '00\u00A0Mio.',
     8: '000\u00A0Mio.',
@@ -2599,9 +2730,9 @@
   }),
   // Compact number symbols for locale de_CH.
   "de_CH": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0Tsd.',
-    4: '00\u00A0Tsd.',
-    5: '000\u00A0Tsd.',
+    3: '0',
+    4: '0',
+    5: '0',
     6: '0\u00A0Mio.',
     7: '00\u00A0Mio.',
     8: '000\u00A0Mio.',
@@ -2925,6 +3056,47 @@
     13: '\u00A400T',
     14: '\u00A4000T',
   }),
+  // Compact number symbols for locale en_MY.
+  "en_MY": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
+    3: '0K',
+    4: '00K',
+    5: '000K',
+    6: '0M',
+    7: '00M',
+    8: '000M',
+    9: '0B',
+    10: '00B',
+    11: '000B',
+    12: '0T',
+    13: '00T',
+    14: '000T',
+  }, COMPACT_DECIMAL_LONG_PATTERN: const {
+    3: '0 thousand',
+    4: '00 thousand',
+    5: '000 thousand',
+    6: '0 million',
+    7: '00 million',
+    8: '000 million',
+    9: '0 billion',
+    10: '00 billion',
+    11: '000 billion',
+    12: '0 trillion',
+    13: '00 trillion',
+    14: '000 trillion',
+  }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
+    3: '\u00A40K',
+    4: '\u00A400K',
+    5: '\u00A4000K',
+    6: '\u00A40M',
+    7: '\u00A400M',
+    8: '\u00A4000M',
+    9: '\u00A40B',
+    10: '\u00A400B',
+    11: '\u00A4000B',
+    12: '\u00A40T',
+    13: '\u00A400T',
+    14: '\u00A4000T',
+  }),
   // Compact number symbols for locale en_SG.
   "en_SG": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
     3: '0K',
@@ -3540,6 +3712,47 @@
     13: '00\u00A0bns\u00A0\u00A4',
     14: '000\u00A0bns\u00A0\u00A4',
   }),
+  // Compact number symbols for locale fr_CH.
+  "fr_CH": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
+    3: '0\u00A0k',
+    4: '00\u00A0k',
+    5: '000\u00A0k',
+    6: '0\u00A0M',
+    7: '00\u00A0M',
+    8: '000\u00A0M',
+    9: '0\u00A0Md',
+    10: '00\u00A0Md',
+    11: '000\u00A0Md',
+    12: '0\u00A0Bn',
+    13: '00\u00A0Bn',
+    14: '000\u00A0Bn',
+  }, COMPACT_DECIMAL_LONG_PATTERN: const {
+    3: '0 mille',
+    4: '00 mille',
+    5: '000 mille',
+    6: '0 millions',
+    7: '00 millions',
+    8: '000 millions',
+    9: '0 milliards',
+    10: '00 milliards',
+    11: '000 milliards',
+    12: '0 billions',
+    13: '00 billions',
+    14: '000 billions',
+  }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
+    3: '0\u00A0k\u00A0\u00A4',
+    4: '00\u00A0k\u00A0\u00A4',
+    5: '000\u00A0k\u00A0\u00A4',
+    6: '0\u00A0M\u00A0\u00A4',
+    7: '00\u00A0M\u00A0\u00A4',
+    8: '000\u00A0M\u00A0\u00A4',
+    9: '0\u00A0Md\u00A0\u00A4',
+    10: '00\u00A0Md\u00A0\u00A4',
+    11: '000\u00A0Md\u00A0\u00A4',
+    12: '0\u00A0Bn\u00A0\u00A4',
+    13: '00\u00A0Bn\u00A0\u00A4',
+    14: '000\u00A0Bn\u00A0\u00A4',
+  }),
   // Compact number symbols for locale ga.
   "ga": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
     3: '0k',
@@ -3624,44 +3837,44 @@
   }),
   // Compact number symbols for locale gsw.
   "gsw": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0tsd',
-    4: '00\u00A0tsd',
-    5: '000\u00A0tsd',
-    6: '0\u00A0Mio',
-    7: '00\u00A0Mio',
-    8: '000\u00A0Mio',
-    9: '0\u00A0Mrd',
-    10: '00\u00A0Mrd',
-    11: '000\u00A0Mrd',
-    12: '0\u00A0Bio',
-    13: '00\u00A0Bio',
-    14: '000\u00A0Bio',
+    3: '0\u00A0Tsg.',
+    4: '00\u00A0Tsg.',
+    5: '000\u00A0Tsg.',
+    6: '0\u00A0Mio.',
+    7: '00\u00A0Mio.',
+    8: '000\u00A0Mio.',
+    9: '0\u00A0Mrd.',
+    10: '00\u00A0Mrd.',
+    11: '000\u00A0Mrd.',
+    12: '0\u00A0Bio.',
+    13: '00\u00A0Bio.',
+    14: '000\u00A0Bio.',
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 tausend',
-    4: '00 tausend',
-    5: '000 tausend',
-    6: '0 Millionen',
-    7: '00 Millionen',
-    8: '000 Millionen',
-    9: '0 Milliarden',
-    10: '00 Milliarden',
-    11: '000 Milliarden',
-    12: '0 Billionen',
-    13: '00 Billionen',
-    14: '000 Billionen',
+    3: '0 Tuusig',
+    4: '00 Tuusig',
+    5: '000 Tuusig',
+    6: '0 Millioone',
+    7: '00 Millioone',
+    8: '000 Millioone',
+    9: '0 Milliarde',
+    10: '00 Milliarde',
+    11: '000 Milliarde',
+    12: '0 Billioone',
+    13: '00 Billioone',
+    14: '000 Billioone',
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0tsd\u00A0\u00A4',
-    4: '00\u00A0tsd\u00A0\u00A4',
-    5: '000\u00A0tsd\u00A0\u00A4',
-    6: '0\u00A0Mio\u00A0\u00A4',
-    7: '00\u00A0Mio\u00A0\u00A4',
-    8: '000\u00A0Mio\u00A0\u00A4',
-    9: '0\u00A0Mrd\u00A0\u00A4',
-    10: '00\u00A0Mrd\u00A0\u00A4',
-    11: '000\u00A0Mrd\u00A0\u00A4',
-    12: '0\u00A0Bio\u00A0\u00A4',
-    13: '00\u00A0Bio\u00A0\u00A4',
-    14: '000\u00A0Bio\u00A0\u00A4',
+    3: '0\u00A0Tsg.\u00A0\u00A4',
+    4: '00\u00A0Tsg.\u00A0\u00A4',
+    5: '000\u00A0Tsg.\u00A0\u00A4',
+    6: '0\u00A0Mio.\u00A0\u00A4',
+    7: '00\u00A0Mio.\u00A0\u00A4',
+    8: '000\u00A0Mio.\u00A0\u00A4',
+    9: '0\u00A0Mrd.\u00A0\u00A4',
+    10: '00\u00A0Mrd.\u00A0\u00A4',
+    11: '000\u00A0Mrd.\u00A0\u00A4',
+    12: '0\u00A0Bio.\u00A0\u00A4',
+    13: '00\u00A0Bio.\u00A0\u00A4',
+    14: '000\u00A0Bio.\u00A0\u00A4',
   }),
   // Compact number symbols for locale gu.
   "gu": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
@@ -4101,6 +4314,47 @@
     13: '00\u00A0Bln\u00A0\u00A4',
     14: '000\u00A0Bln\u00A0\u00A4',
   }),
+  // Compact number symbols for locale it_CH.
+  "it_CH": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
+    3: '0',
+    4: '0',
+    5: '0',
+    6: '0\u00A0Mln',
+    7: '00\u00A0Mln',
+    8: '000\u00A0Mln',
+    9: '0\u00A0Mld',
+    10: '00\u00A0Mld',
+    11: '000\u00A0Mld',
+    12: '0\u00A0Bln',
+    13: '00\u00A0Bln',
+    14: '000\u00A0Bln',
+  }, COMPACT_DECIMAL_LONG_PATTERN: const {
+    3: '0 mila',
+    4: '00 mila',
+    5: '000 mila',
+    6: '0 milioni',
+    7: '00 milioni',
+    8: '000 milioni',
+    9: '0 miliardi',
+    10: '00 miliardi',
+    11: '000 miliardi',
+    12: '0 mila miliardi',
+    13: '00 mila miliardi',
+    14: '000 mila miliardi',
+  }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
+    3: '0',
+    4: '0',
+    5: '0',
+    6: '0\u00A0Mio\u00A0\u00A4',
+    7: '00\u00A0Mio\u00A0\u00A4',
+    8: '000\u00A0Mio\u00A0\u00A4',
+    9: '0\u00A0Mrd\u00A0\u00A4',
+    10: '00\u00A0Mrd\u00A0\u00A4',
+    11: '000\u00A0Mrd\u00A0\u00A4',
+    12: '0\u00A0Bln\u00A0\u00A4',
+    13: '00\u00A0Bln\u00A0\u00A4',
+    14: '000\u00A0Bln\u00A0\u00A4',
+  }),
   // Compact number symbols for locale iw.
   "iw": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
     3: '0K',
@@ -5169,6 +5423,34 @@
     13: '00\u00A0bln\u00A0\u00A4',
     14: '000\u00A0bln\u00A0\u00A4',
   }),
+  // Compact number symbols for locale ps.
+  "ps": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
+    3: '0K',
+    4: '00K',
+    5: '000K',
+    6: '0M',
+    7: '00M',
+    8: '000M',
+    9: '0G',
+    10: '00G',
+    11: '000G',
+    12: '0T',
+    13: '00T',
+    14: '000T',
+  }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
+    3: '0K\u00A0\u00A4',
+    4: '00K\u00A0\u00A4',
+    5: '000K\u00A0\u00A4',
+    6: '0M\u00A0\u00A4',
+    7: '00M\u00A0\u00A4',
+    8: '000M\u00A0\u00A4',
+    9: '0G\u00A0\u00A4',
+    10: '00G\u00A0\u00A4',
+    11: '000G\u00A0\u00A4',
+    12: '0T\u00A0\u00A4',
+    13: '00T\u00A0\u00A4',
+    14: '000T\u00A0\u00A4',
+  }),
   // Compact number symbols for locale pt.
   "pt": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
     3: '0\u00A0mil',
@@ -5663,44 +5945,44 @@
   }),
   // Compact number symbols for locale sw.
   "sw": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: 'elfu\u00A00',
-    4: 'elfu\u00A000',
-    5: 'elfu\u00A0000',
-    6: 'M0',
-    7: 'M00',
-    8: 'M000',
-    9: 'B0',
-    10: 'B00',
-    11: 'B000',
-    12: 'T0',
-    13: 'T00',
-    14: 'T000',
+    3: 'elfu\u00A00;elfu\u00A0-0',
+    4: 'elfu\u00A000;elfu\u00A0-00',
+    5: 'elfu\u00A0000;elfu\u00A0-000',
+    6: 'M0;M-0',
+    7: 'M00;M-00',
+    8: 'M000;M-000',
+    9: 'B0;B-0',
+    10: 'B00;B-00',
+    11: 'B000;B-000',
+    12: 'T0;T-0',
+    13: 'T00;T-00',
+    14: 'T000;T-000',
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: 'Elfu 0',
-    4: 'Elfu 00',
-    5: 'Elfu 000',
-    6: 'Milioni 0',
-    7: 'Milioni 00',
-    8: 'Milioni 000',
-    9: 'Bilioni 0',
-    10: 'Bilioni 00',
-    11: 'Bilioni 000',
-    12: 'Trilioni 0',
-    13: 'Trilioni 00',
-    14: 'Trilioni 000',
+    3: 'Elfu 0;Elfu -0',
+    4: 'Elfu 00;Elfu -00',
+    5: 'Elfu 000;Elfu -000',
+    6: 'Milioni 0;Milioni -0',
+    7: 'Milioni 00;Milioni -00',
+    8: 'Milioni 000;Milioni -000',
+    9: 'Bilioni 0;Bilioni -0',
+    10: 'Bilioni 00;Bilioni -00',
+    11: 'Bilioni 000;Bilioni -000',
+    12: 'Trilioni 0;Trilioni -0',
+    13: 'Trilioni 00;Trilioni -00',
+    14: 'Trilioni 000;Trilioni -000',
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4elfu\u00A00',
-    4: '\u00A4elfu\u00A000',
-    5: '\u00A4laki\u00A0000',
-    6: '\u00A4M0',
-    7: '\u00A4M00',
-    8: '\u00A4M000',
-    9: '\u00A4B0',
-    10: '\u00A4B00',
-    11: '\u00A4B000',
-    12: '\u00A4T0',
-    13: '\u00A4T00',
-    14: '\u00A4T000',
+    3: '\u00A4elfu\u00A00;\u00A4elfu\u00A0-0',
+    4: '\u00A4elfu\u00A000;\u00A4elfu\u00A0-00',
+    5: '\u00A4laki\u00A0000;\u00A4laki\u00A0-000',
+    6: '\u00A4M0;\u00A4M-0',
+    7: '\u00A4M00;\u00A4M-00',
+    8: '\u00A4M000;\u00A4M-000',
+    9: '\u00A4B0;\u00A4B-0',
+    10: '\u00A4B00;\u00A4B-00',
+    11: '\u00A4B000;\u00A4B-000',
+    12: '\u00A4T0;\u00A4T-0',
+    13: '\u00A4T00;\u00A4T-00',
+    14: '\u00A4T000;\u00A4T-000',
   }),
   // Compact number symbols for locale ta.
   "ta": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
@@ -5786,18 +6068,18 @@
   }),
   // Compact number symbols for locale th.
   "th": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u0E1E.',
-    4: '0\u00A0\u0E21.',
-    5: '0\u00A0\u0E2A.',
-    6: '0\u00A0\u0E25.',
-    7: '00\u00A0\u0E25.',
-    8: '000\u00A0\u0E25.',
-    9: '0\u00A0\u0E1E.\u0E25.',
-    10: '0\u00A0\u0E21.\u0E25.',
-    11: '0\u00A0\u0E2A.\u0E25.',
-    12: '0\u00A0\u0E25.\u0E25.',
-    13: '00\u00A0\u0E25.\u0E25.',
-    14: '000\u00A0\u0E25.\u0E25.',
+    3: '0K',
+    4: '00K',
+    5: '000K',
+    6: '0M',
+    7: '00M',
+    8: '000M',
+    9: '0B',
+    10: '00B',
+    11: '000B',
+    12: '0T',
+    13: '00T',
+    14: '000T',
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
     3: '0 \u0E1E\u0E31\u0E19',
     4: '0 \u0E2B\u0E21\u0E37\u0E48\u0E19',
@@ -5812,18 +6094,18 @@
     13: '00 \u0E25\u0E49\u0E32\u0E19\u0E25\u0E49\u0E32\u0E19',
     14: '000 \u0E25\u0E49\u0E32\u0E19\u0E25\u0E49\u0E32\u0E19',
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40\u00A0\u0E1E.',
-    4: '\u00A40\u00A0\u0E21.',
-    5: '\u00A40\u00A0\u0E2A.',
-    6: '\u00A40\u00A0\u0E25.',
-    7: '\u00A400\u00A0\u0E25.',
-    8: '\u00A4000\u00A0\u0E25.',
-    9: '\u00A40\u00A0\u0E1E.\u0E25.',
-    10: '\u00A40\u00A0\u0E21.\u0E25.',
-    11: '\u00A40\u00A0\u0E2A.\u0E25.',
-    12: '\u00A40\u00A0\u0E25.\u0E25.',
-    13: '\u00A400\u00A0\u0E25.\u0E25.',
-    14: '\u00A4000\u00A0\u0E25.\u0E25.',
+    3: '\u00A40K',
+    4: '\u00A400K',
+    5: '\u00A4000K',
+    6: '\u00A40M',
+    7: '\u00A400M',
+    8: '\u00A4000M',
+    9: '\u00A40B',
+    10: '\u00A400B',
+    11: '\u00A4000B',
+    12: '\u00A40T',
+    13: '\u00A400T',
+    14: '\u00A4000T',
   }),
   // Compact number symbols for locale tl.
   "tl": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
@@ -6073,7 +6355,7 @@
   }),
   // Compact number symbols for locale zh.
   "zh": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u5343',
+    3: '0',
     4: '0\u4E07',
     5: '00\u4E07',
     6: '000\u4E07',
@@ -6086,7 +6368,7 @@
     13: '00\u5146',
     14: '000\u5146',
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0\u5343',
+    3: '0',
     4: '0\u4E07',
     5: '00\u4E07',
     6: '000\u4E07',
@@ -6099,7 +6381,7 @@
     13: '00\u5146',
     14: '000\u5146',
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40\u5343',
+    3: '0',
     4: '\u00A40\u4E07',
     5: '\u00A400\u4E07',
     6: '\u00A4000\u4E07',
@@ -6114,7 +6396,7 @@
   }),
   // Compact number symbols for locale zh_CN.
   "zh_CN": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u5343',
+    3: '0',
     4: '0\u4E07',
     5: '00\u4E07',
     6: '000\u4E07',
@@ -6127,7 +6409,7 @@
     13: '00\u5146',
     14: '000\u5146',
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0\u5343',
+    3: '0',
     4: '0\u4E07',
     5: '00\u4E07',
     6: '000\u4E07',
@@ -6140,7 +6422,7 @@
     13: '00\u5146',
     14: '000\u5146',
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40\u5343',
+    3: '0',
     4: '\u00A40\u4E07',
     5: '\u00A400\u4E07',
     6: '\u00A4000\u4E07',
@@ -6168,7 +6450,7 @@
     13: '00T',
     14: '000T',
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0\u5343',
+    3: '0',
     4: '0\u842C',
     5: '00\u842C',
     6: '000\u842C',
@@ -6196,7 +6478,7 @@
   }),
   // Compact number symbols for locale zh_TW.
   "zh_TW": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u5343',
+    3: '0',
     4: '0\u842C',
     5: '00\u842C',
     6: '000\u842C',
@@ -6209,7 +6491,7 @@
     13: '00\u5146',
     14: '000\u5146',
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0\u5343',
+    3: '0',
     4: '0\u842C',
     5: '00\u842C',
     6: '000\u842C',
@@ -6222,7 +6504,7 @@
     13: '00\u5146',
     14: '000\u5146',
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40\u5343',
+    3: '0',
     4: '\u00A40\u842C',
     5: '\u00A400\u842C',
     6: '\u00A4000\u842C',
diff --git a/lib/src/data/dates/locale_list.dart b/lib/src/data/dates/locale_list.dart
index 1f2bb95..a283b91 100644
--- a/lib/src/data/dates/locale_list.dart
+++ b/lib/src/data/dates/locale_list.dart
@@ -8,6 +8,7 @@
   "af",
   "am",
   "ar",
+  "ar_DZ",
   "az",
   "be",
   "bg",
@@ -29,6 +30,7 @@
   "en_GB",
   "en_IE",
   "en_IN",
+  "en_MY",
   "en_SG",
   "en_US",
   "en_ZA",
@@ -44,6 +46,7 @@
   "fil",
   "fr",
   "fr_CA",
+  "fr_CH",
   "ga",
   "gl",
   "gsw",
@@ -58,6 +61,7 @@
   "in",
   "is",
   "it",
+  "it_CH",
   "iw",
   "ja",
   "ka",
@@ -85,6 +89,7 @@
   "or",
   "pa",
   "pl",
+  "ps",
   "pt",
   "pt_BR",
   "pt_PT",
diff --git a/lib/src/data/dates/patterns/ar_DZ.json b/lib/src/data/dates/patterns/ar_DZ.json
new file mode 100644
index 0000000..720db8c
--- /dev/null
+++ b/lib/src/data/dates/patterns/ar_DZ.json
@@ -0,0 +1 @@
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/‏M","MEd":"EEE، d/M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE، d MMM","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"EEEE، d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M‏/y","yMd":"d‏/M‏/y","yMEd":"EEE، d/‏M/‏y","yMMM":"MMM y","yMMMd":"d MMM، y","yMMMEd":"EEE، d MMM، y","yMMMM":"MMMM y","yMMMMd":"d MMMM، y","yMMMMEEEEd":"EEEE، d MMMM، y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/lib/src/data/dates/patterns/az.json b/lib/src/data/dates/patterns/az.json
index 4636739..8dca143 100644
--- a/lib/src/data/dates/patterns/az.json
+++ b/lib/src/data/dates/patterns/az.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"dd.MM","MEd":"dd.MM, EEE","MMM":"LLL","MMMd":"d MMM","MMMEd":"d MMM, EEE","MMMM":"LLLL","MMMMd":"MMMM d","MMMMEEEEd":"d MMMM, EEEE","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"MM.y","yMd":"dd.MM.y","yMEd":"dd.MM.y, EEE","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"d MMM y, EEE","yMMMM":"y MMMM","yMMMMd":"d MMMM y","yMMMMEEEEd":"d MMMM y, EEEE","yQQQ":"y QQQ","yQQQQ":"y QQQQ","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"dd.MM","MEd":"dd.MM, EEE","MMM":"LLL","MMMd":"d MMM","MMMEd":"d MMM, EEE","MMMM":"LLLL","MMMMd":"MMMM d","MMMMEEEEd":"d MMMM, EEEE","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"MM.y","yMd":"dd.MM.y","yMEd":"dd.MM.y, EEE","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"d MMM y, EEE","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"d MMMM y, EEEE","yQQQ":"y QQQ","yQQQQ":"y QQQQ","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/lib/src/data/dates/patterns/en_MY.json b/lib/src/data/dates/patterns/en_MY.json
new file mode 100644
index 0000000..fef102b
--- /dev/null
+++ b/lib/src/data/dates/patterns/en_MY.json
@@ -0,0 +1 @@
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"dd/MM","MEd":"EEE, dd/MM","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE, d MMM","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"EEEE, d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"MM/y","yMd":"dd/MM/y","yMEd":"EEE, dd/MM/y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE, d MMM y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE, d MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/lib/src/data/dates/patterns/fr_CH.json b/lib/src/data/dates/patterns/fr_CH.json
new file mode 100644
index 0000000..f504c2a
--- /dev/null
+++ b/lib/src/data/dates/patterns/fr_CH.json
@@ -0,0 +1 @@
+{"d":"d","E":"EEE","EEEE":"EEEE","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"dd.MM.","MEd":"EEE, dd.MM.","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE d MMM","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"EEEE d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"MM.y","yMd":"dd.MM.y","yMEd":"EEE, dd.MM.y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE d MMM y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE, d MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH 'h'","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH 'h'","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH 'h' z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/lib/src/data/dates/patterns/it_CH.json b/lib/src/data/dates/patterns/it_CH.json
new file mode 100644
index 0000000..5e13920
--- /dev/null
+++ b/lib/src/data/dates/patterns/it_CH.json
@@ -0,0 +1 @@
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE d/M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE d MMM","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"EEEE d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE d/M/y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE d MMM y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE, d MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/lib/src/data/dates/patterns/lo.json b/lib/src/data/dates/patterns/lo.json
index 4e9dca7..76762f0 100644
--- a/lib/src/data/dates/patterns/lo.json
+++ b/lib/src/data/dates/patterns/lo.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE, d/M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE d MMM","MMMM":"LLLL","MMMMd":"MMMM d","MMMMEEEEd":"EEEE d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE, d/M/y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE, d MMM y","yMMMM":"y MMMM","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE, d MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE, d/M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE d MMM","MMMM":"LLLL","MMMMd":"MMMM d","MMMMEEEEd":"EEEE d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE, d/M/y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE, d MMM y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE, d MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/lib/src/data/dates/patterns/pa.json b/lib/src/data/dates/patterns/pa.json
index e942ebe..bb1607c 100644
--- a/lib/src/data/dates/patterns/pa.json
+++ b/lib/src/data/dates/patterns/pa.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE, dd-MM.","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE, d MMM","MMMM":"LLLL","MMMMd":"MMMM d","MMMMEEEEd":"EEEE, d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE, d/M/y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE, d MMM y","yMMMM":"y MMMM","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE, d MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE, dd-MM.","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE, d MMM","MMMM":"LLLL","MMMMd":"MMMM d","MMMMEEEEd":"EEEE, d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE, d/M/y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE, d MMM y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE, d MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/lib/src/data/dates/patterns/ps.json b/lib/src/data/dates/patterns/ps.json
new file mode 100644
index 0000000..4e9a394
--- /dev/null
+++ b/lib/src/data/dates/patterns/ps.json
@@ -0,0 +1 @@
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"M/d","MEd":"MM-dd, EEE","MMM":"LLL","MMMd":"MMM d","MMMEd":"MMM d, EEE","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"MMMM d, EEEE","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"y/M","yMd":"y-MM-dd","yMEd":"y-MM-dd, EEE","yMMM":"y MMM","yMMMd":"y MMM d","yMMMEd":"y MMM d, EEE","yMMMM":"د y د MMMM","yMMMMd":"د y د MMMM d","yMMMMEEEEd":"EEEE د y د MMMM d","yQQQ":"y QQQ","yQQQQ":"y QQQQ","H":"H","Hm":"H:mm","Hms":"H:mm:ss","j":"H","jm":"H:mm","jms":"H:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"H (z)","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/lib/src/data/dates/patterns/sd.json b/lib/src/data/dates/patterns/sd.json
new file mode 100644
index 0000000..8e21ba7
--- /dev/null
+++ b/lib/src/data/dates/patterns/sd.json
@@ -0,0 +1 @@
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"M/d","MEd":"EEE, M/d","MMM":"LLL","MMMd":"MMM d","MMMEd":"EEE, MMM d","MMMM":"LLLL","MMMMd":"MMMM d","MMMMEEEEd":"EEEE, MMMM d","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"M/d/y","yMEd":"EEE, M/d/y","yMMM":"MMM y","yMMMd":"MMM d, y","yMMMEd":"EEE, MMM d, y","yMMMM":"MMMM y","yMMMMd":"MMMM d, y","yMMMMEEEEd":"EEEE, MMMM d, y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/lib/src/data/dates/patterns/ur.json b/lib/src/data/dates/patterns/ur.json
index bc124ee..35f5baa 100644
--- a/lib/src/data/dates/patterns/ur.json
+++ b/lib/src/data/dates/patterns/ur.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE، d/M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE، d MMM","MMMM":"LLLL","MMMMd":"MMMM d","MMMMEEEEd":"EEEE، d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE، d/M/y","yMMM":"MMM y","yMMMd":"d MMM، y","yMMMEd":"EEE، d MMM، y","yMMMM":"y MMMM","yMMMMd":"d MMMM، y","yMMMMEEEEd":"EEEE، d MMMM، y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE، d/M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE، d MMM","MMMM":"LLLL","MMMMd":"MMMM d","MMMMEEEEd":"EEEE، d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE، d/M/y","yMMM":"MMM y","yMMMd":"d MMM، y","yMMMEd":"EEE، d MMM، y","yMMMM":"MMMM y","yMMMMd":"d MMMM، y","yMMMMEEEEd":"EEEE، d MMMM، y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/lib/src/data/dates/symbols/ar_DZ.json b/lib/src/data/dates/symbols/ar_DZ.json
new file mode 100644
index 0000000..7dba2c0
--- /dev/null
+++ b/lib/src/data/dates/symbols/ar_DZ.json
@@ -0,0 +1 @@
+{"NAME":"ar_DZ","ERAS":["ق.م","م"],"ERANAMES":["قبل الميلاد","ميلادي"],"NARROWMONTHS":["ج","ف","م","أ","م","ج","ج","أ","س","أ","ن","د"],"STANDALONENARROWMONTHS":["ج","ف","م","أ","م","ج","ج","أ","س","أ","ن","د"],"MONTHS":["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"STANDALONEMONTHS":["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"SHORTMONTHS":["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"STANDALONESHORTMONTHS":["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"WEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"STANDALONEWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"SHORTWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"STANDALONESHORTWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"NARROWWEEKDAYS":["ح","ن","ث","ر","خ","ج","س"],"STANDALONENARROWWEEKDAYS":["ح","ن","ث","ر","خ","ج","س"],"SHORTQUARTERS":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"QUARTERS":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"AMPMS":["ص","م"],"DATEFORMATS":["EEEE، d MMMM، y","d MMMM، y","dd‏/MM‏/y","d‏/M‏/y"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":5,"WEEKENDRANGE":[4,5],"FIRSTWEEKCUTOFFDAY":4,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/lib/src/data/dates/symbols/en_MY.json b/lib/src/data/dates/symbols/en_MY.json
new file mode 100644
index 0000000..1bec747
--- /dev/null
+++ b/lib/src/data/dates/symbols/en_MY.json
@@ -0,0 +1 @@
+{"NAME":"en_MY","ERAS":["BC","AD"],"ERANAMES":["Before Christ","Anno Domini"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"STANDALONEMONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"STANDALONESHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"WEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"STANDALONEWEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"SHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"STANDALONESHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","dd/MM/y"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} 'at' {0}","{1} 'at' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/lib/src/data/dates/symbols/fr_CH.json b/lib/src/data/dates/symbols/fr_CH.json
new file mode 100644
index 0000000..68b4c83
--- /dev/null
+++ b/lib/src/data/dates/symbols/fr_CH.json
@@ -0,0 +1 @@
+{"NAME":"fr_CH","ERAS":["av. J.-C.","ap. J.-C."],"ERANAMES":["avant Jésus-Christ","après Jésus-Christ"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"STANDALONEMONTHS":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"SHORTMONTHS":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"STANDALONESHORTMONTHS":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"WEEKDAYS":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"STANDALONEWEEKDAYS":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"SHORTWEEKDAYS":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"STANDALONESHORTWEEKDAYS":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"NARROWWEEKDAYS":["D","L","M","M","J","V","S"],"STANDALONENARROWWEEKDAYS":["D","L","M","M","J","V","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","dd.MM.yy"],"TIMEFORMATS":["HH.mm:ss 'h' zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} 'à' {0}","{1} 'à' {0}","{1} 'à' {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/lib/src/data/dates/symbols/gsw.json b/lib/src/data/dates/symbols/gsw.json
index 53c9b20..275b715 100644
--- a/lib/src/data/dates/symbols/gsw.json
+++ b/lib/src/data/dates/symbols/gsw.json
@@ -1 +1 @@
-{"NAME":"gsw","ERAS":["v. Chr.","n. Chr."],"ERANAMES":["v. Chr.","n. Chr."],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["Januar","Februar","März","April","Mai","Juni","Juli","Auguscht","Septämber","Oktoober","Novämber","Dezämber"],"STANDALONEMONTHS":["Januar","Februar","März","April","Mai","Juni","Juli","Auguscht","Septämber","Oktoober","Novämber","Dezämber"],"SHORTMONTHS":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"STANDALONESHORTMONTHS":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"WEEKDAYS":["Sunntig","Määntig","Ziischtig","Mittwuch","Dunschtig","Friitig","Samschtig"],"STANDALONEWEEKDAYS":["Sunntig","Määntig","Ziischtig","Mittwuch","Dunschtig","Friitig","Samschtig"],"SHORTWEEKDAYS":["Su.","Mä.","Zi.","Mi.","Du.","Fr.","Sa."],"STANDALONESHORTWEEKDAYS":["Su.","Mä.","Zi.","Mi.","Du.","Fr.","Sa."],"NARROWWEEKDAYS":["S","M","D","M","D","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","D","M","D","F","S"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"AMPMS":["vorm.","nam."],"DATEFORMATS":["EEEE, d. MMMM y","d. MMMM y","dd.MM.y","dd.MM.yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"gsw","ERAS":["v. Chr.","n. Chr."],"ERANAMES":["v. Chr.","n. Chr."],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["Januar","Februar","März","April","Mai","Juni","Juli","Auguscht","Septämber","Oktoober","Novämber","Dezämber"],"STANDALONEMONTHS":["Januar","Februar","März","April","Mai","Juni","Juli","Auguscht","Septämber","Oktoober","Novämber","Dezämber"],"SHORTMONTHS":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"STANDALONESHORTMONTHS":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"WEEKDAYS":["Sunntig","Määntig","Ziischtig","Mittwuch","Dunschtig","Friitig","Samschtig"],"STANDALONEWEEKDAYS":["Sunntig","Määntig","Ziischtig","Mittwuch","Dunschtig","Friitig","Samschtig"],"SHORTWEEKDAYS":["Su.","Mä.","Zi.","Mi.","Du.","Fr.","Sa."],"STANDALONESHORTWEEKDAYS":["Su.","Mä.","Zi.","Mi.","Du.","Fr.","Sa."],"NARROWWEEKDAYS":["S","M","D","M","D","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","D","M","D","F","S"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"AMPMS":["am Vormittag","am Namittag"],"DATEFORMATS":["EEEE, d. MMMM y","d. MMMM y","dd.MM.y","dd.MM.yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/lib/src/data/dates/symbols/it_CH.json b/lib/src/data/dates/symbols/it_CH.json
new file mode 100644
index 0000000..b67d2b7
--- /dev/null
+++ b/lib/src/data/dates/symbols/it_CH.json
@@ -0,0 +1 @@
+{"NAME":"it_CH","ERAS":["a.C.","d.C."],"ERANAMES":["avanti Cristo","dopo Cristo"],"NARROWMONTHS":["G","F","M","A","M","G","L","A","S","O","N","D"],"STANDALONENARROWMONTHS":["G","F","M","A","M","G","L","A","S","O","N","D"],"MONTHS":["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],"STANDALONEMONTHS":["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],"SHORTMONTHS":["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],"STANDALONESHORTMONTHS":["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],"WEEKDAYS":["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"],"STANDALONEWEEKDAYS":["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"],"SHORTWEEKDAYS":["dom","lun","mar","mer","gio","ven","sab"],"STANDALONESHORTWEEKDAYS":["dom","lun","mar","mer","gio","ven","sab"],"NARROWWEEKDAYS":["D","L","M","M","G","V","S"],"STANDALONENARROWWEEKDAYS":["D","L","M","M","G","V","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","dd.MM.yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/lib/src/data/dates/symbols/ps.json b/lib/src/data/dates/symbols/ps.json
new file mode 100644
index 0000000..d6cfd84
--- /dev/null
+++ b/lib/src/data/dates/symbols/ps.json
@@ -0,0 +1 @@
+{"NAME":"ps","ERAS":["له میلاد وړاندې","م."],"ERANAMES":["له میلاد څخه وړاندې","له میلاد څخه وروسته"],"NARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"STANDALONENARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"MONTHS":["جنوري","فبروري","مارچ","اپریل","مۍ","جون","جولای","اګست","سپتمبر","اکتوبر","نومبر","دسمبر"],"STANDALONEMONTHS":["جنوري","فبروري","مارچ","اپریل","مۍ","جون","جولای","اګست","سپتمبر","اکتوبر","نومبر","دسمبر"],"SHORTMONTHS":["جنوري","فبروري","مارچ","اپریل","مۍ","جون","جولای","اګست","سپتمبر","اکتوبر","نومبر","دسمبر"],"STANDALONESHORTMONTHS":["جنوري","فبروري","مارچ","اپریل","مۍ","جون","جولای","اګست","سپتمبر","اکتوبر","نومبر","دسمبر"],"WEEKDAYS":["یکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],"STANDALONEWEEKDAYS":["یکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],"SHORTWEEKDAYS":["یکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],"STANDALONESHORTWEEKDAYS":["یکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["لومړۍ ربعه","۲مه ربعه","۳مه ربعه","۴مه ربعه"],"QUARTERS":["لومړۍ ربعه","۲مه ربعه","۳مه ربعه","۴مه ربعه"],"AMPMS":["غ.م.","غ.و."],"DATEFORMATS":["EEEE د y د MMMM d","د y د MMMM d","y MMM d","y/M/d"],"TIMEFORMATS":["H:mm:ss (zzzz)","H:mm:ss (z)","H:mm:ss","H:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":5,"WEEKENDRANGE":[3,4],"FIRSTWEEKCUTOFFDAY":4,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/lib/src/intl/compact_number_format.dart b/lib/src/intl/compact_number_format.dart
index ef4f332..5818018 100644
--- a/lib/src/intl/compact_number_format.dart
+++ b/lib/src/intl/compact_number_format.dart
@@ -4,6 +4,47 @@
 
 part of intl;
 
+/// An abstract class for compact number styles.
+abstract class _CompactStyleBase {
+  /// The _CompactStyle for the sign of [number], i.e. positive or
+  /// negative.
+  _CompactStyle styleForSign(number);
+
+  /// How many total digits do we expect in the number.
+  ///
+  /// If the pattern is
+  ///
+  ///       4: "00K",
+  ///
+  /// then this is 5, meaning we expect this to be a 5-digit (or more)
+  /// number. We will scale by 1000 and expect 2 integer digits remaining, so we
+  /// get something like '12K'. This is used to find the closest pattern for a
+  /// number.
+  int get totalDigits;
+
+  /// What should we divide the number by in order to print. Normally it is
+  /// either `10^requiredDigits` or 1 if we shouldn't divide at all.
+  int get divisor;
+
+  /// The iterable of all possible styles which we represent.
+  ///
+  /// Normally this will be either a list with just ourself, or of two elements
+  /// for our positive and negative styles.
+  Iterable<_CompactStyle> get allStyles;
+}
+
+/// A compact format with separate styles for positive and negative numbers.
+class _CompactStyleWithNegative extends _CompactStyleBase {
+  _CompactStyleWithNegative(this.positiveStyle, this.negativeStyle);
+  final _CompactStyle positiveStyle;
+  final _CompactStyle negativeStyle;
+  _CompactStyle styleForSign(number) =>
+      number < 0 ? negativeStyle : positiveStyle;
+  int get totalDigits => positiveStyle.totalDigits;
+  int get divisor => positiveStyle.divisor;
+  get allStyles => [positiveStyle, negativeStyle];
+}
+
 /// Represents a compact format for a particular base
 ///
 /// For example, 10k can be used to represent 10,000.  Corresponds to one of the
@@ -17,7 +58,7 @@
 ///      expectedDigits: 1, prefix: '', suffix: 'K');
 ///
 /// where expectedDigits is the number of zeros.
-class _CompactStyle {
+class _CompactStyle extends _CompactStyleBase {
   _CompactStyle(
       {this.pattern,
       this.requiredDigits: 0,
@@ -83,6 +124,9 @@
   bool get printsAsIs =>
       isFallback ||
       pattern.replaceAll(new RegExp('[0\u00a0\u00a4]'), '').isEmpty;
+
+  _CompactStyle styleForSign(number) => this;
+  get allStyles => [this];
 }
 
 enum _CompactFormatType {
@@ -99,7 +143,7 @@
   // COMPACT_DECIMAL_LONG_PATTERN, or COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN
   Map<int, String> _patterns;
 
-  List<_CompactStyle> _styles = [];
+  List<_CompactStyleBase> _styles = [];
 
   _CompactNumberFormat(
       {String locale,
@@ -122,6 +166,8 @@
       case _CompactFormatType.COMPACT_DECIMAL_SHORT_PATTERN:
         _patterns = compactSymbols.COMPACT_DECIMAL_SHORT_PATTERN;
         break;
+      // TODO(alanknight): Long formats have a one vs. other case,
+      // e.g. million/millions that we don't yet support.
       case _CompactFormatType.COMPACT_DECIMAL_LONG_PATTERN:
         _patterns = compactSymbols.COMPACT_DECIMAL_LONG_PATTERN ??
             compactSymbols.COMPACT_DECIMAL_SHORT_PATTERN;
@@ -132,37 +178,54 @@
       default:
         throw new ArgumentError.notNull("formatType");
     }
-    var regex = new RegExp('([^0]*)(0+)(.*)');
     _patterns.forEach((int impliedDigits, String pattern) {
-      var match = regex.firstMatch(pattern);
-      var integerDigits = match.group(2).length;
-      var prefix = match.group(1);
-      var suffix = match.group(3);
-      // If the pattern is just zeros, with no suffix, then we shouldn't divide
-      // by the number of digits. e.g. for 'af', the pattern for 3 is '0', but
-      // it doesn't mean that 4321 should print as 4. But if the pattern was
-      // '0K', then it should print as '4K'. So we have to check if the pattern
-      // has a suffix. This seems extremely hacky, but I don't know how else to
-      // encode that. Check what other things are doing.
-      var divisor = 1;
-      if (pattern.replaceAll('0', '').isNotEmpty) {
-        divisor = pow(10, impliedDigits - integerDigits + 1);
+      if (pattern.contains(";")) {
+        var patterns = pattern.split(";");
+        _styles.add(new _CompactStyleWithNegative(
+            _createStyle(patterns.first, impliedDigits),
+            _createStyle(patterns.last, impliedDigits)));
+      } else {
+        _styles.add(_createStyle(pattern, impliedDigits));
       }
-      var style = new _CompactStyle(
-          pattern: pattern,
-          requiredDigits: impliedDigits,
-          expectedDigits: integerDigits,
-          prefix: prefix,
-          suffix: suffix,
-          divisor: divisor);
-      _styles.add(style);
     });
+
     // Reverse the styles so that we look through them from largest to smallest.
     _styles = _styles.reversed.toList();
     // Add a fallback style that just prints the number.
     _styles.add(new _CompactStyle());
   }
 
+  final _regex = new RegExp('([^0]*)(0+)(.*)');
+
+  final _justZeros = new RegExp(r'^0*$');
+
+  /// Does pattern have any additional characters or is it just zeros.
+  bool _hasNonZeroContent(String pattern) => !_justZeros.hasMatch(pattern);
+
+  _CompactStyle _createStyle(String pattern, int impliedDigits) {
+    var match = _regex.firstMatch(pattern);
+    var integerDigits = match.group(2).length;
+    var prefix = match.group(1);
+    var suffix = match.group(3);
+    // If the pattern is just zeros, with no suffix, then we shouldn't divide
+    // by the number of digits. e.g. for 'af', the pattern for 3 is '0', but
+    // it doesn't mean that 4321 should print as 4. But if the pattern was
+    // '0K', then it should print as '4K'. So we have to check if the pattern
+    // has a suffix. This seems extremely hacky, but I don't know how else to
+    // encode that. Check what other things are doing.
+    var divisor = 1;
+    if (_hasNonZeroContent(pattern)) {
+      divisor = pow(10, impliedDigits - integerDigits + 1);
+    }
+    return new _CompactStyle(
+        pattern: pattern,
+        requiredDigits: impliedDigits,
+        expectedDigits: integerDigits,
+        prefix: prefix,
+        suffix: suffix,
+        divisor: divisor);
+  }
+
   /// The style in which we will format a particular number.
   ///
   /// This is a temporary variable that is only valid within a call to format.
@@ -246,15 +309,18 @@
     }
     for (var style in _styles) {
       if (digitLength > style.totalDigits) {
-        return style;
+        return style.styleForSign(number);
       }
     }
     throw new FormatException(
         "No compact style found for number. This should not happen", number);
   }
 
+  Iterable<_CompactStyle> get _stylesForSearching =>
+      _styles.reversed.expand((x) => x.allStyles);
+
   num parse(String text) {
-    for (var style in _styles.reversed) {
+    for (var style in _stylesForSearching) {
       if (text.startsWith(style.prefix) && text.endsWith(style.suffix)) {
         var numberText = text.substring(
             style.prefix.length, text.length - style.suffix.length);
diff --git a/test/compact_number_test_data.dart b/test/compact_number_test_data.dart
index 122858e..aba7a7e 100644
--- a/test/compact_number_test_data.dart
+++ b/test/compact_number_test_data.dart
@@ -109,6 +109,38 @@
     ["999444444", "٩٩٩ مليو", "٩٩٩ مليون"],
     ["9994444444", "٩٫٩٩ مليا", "٩٫٩٩ مليار"],
   ],
+  "ar_DZ": [
+    ["1", "1", "1"],
+    ["21", "21", "21"],
+    ["321", "321", "321"],
+    ["4321", "4,32 ألف", "4,32 ألف"],
+    ["54321", "54,3 ألف", "54,3 ألف"],
+    ["654321", "654 ألف", "654 ألف"],
+    ["7654321", "7,65 مليو", "7,65 مليون"],
+    ["87654321", "87,7 مليو", "87,7 مليون"],
+    ["987654321", "988 مليو", "988 مليون"],
+    ["1087654321", "1,09 مليا", "1,09 مليار"],
+    ["11987654321", "12 مليا", "12 مليار"],
+    ["129987654321", "130 مليا", "130 مليار"],
+    ["1398987654321", "1,4 ترليو", "1,4 تريليون"],
+    ["14987987654321", "15 ترليو", "15 تريليون"],
+    ["159876987654321", "160 ترليو", "160 تريليون"],
+    ["9", "9", "9"],
+    ["99", "99", "99"],
+    ["999", "999", "999"],
+    ["9999", "10 ألف", "10 ألف"],
+    ["99999", "100 ألف", "100 ألف"],
+    ["99999", "100 ألف", "100 ألف"],
+    ["999999", "1 مليو", "1 مليون"],
+    ["9999999", "10 مليو", "10 ملايين"],
+    ["99999999", "100 مليو", "100 مليون"],
+    ["9994", "9,99 ألف", "9,99 ألف"],
+    ["99944", "99,9 ألف", "99,9 ألف"],
+    ["999444", "999 ألف", "999 ألف"],
+    ["9994444", "9,99 مليو", "9,99 مليون"],
+    ["999444444", "999 مليو", "999 مليون"],
+    ["9994444444", "9,99 مليا", "9,99 مليار"],
+  ],
   "az": [
     ["1", "1", "1"],
     ["21", "21", "21"],
@@ -465,9 +497,9 @@
     ["1", "1", "1"],
     ["21", "21", "21"],
     ["321", "321", "321"],
-    ["4321", "4,32 Tsd.", "4,32 Tausend"],
-    ["54321", "54,3 Tsd.", "54,3 Tausend"],
-    ["654321", "654 Tsd.", "654 Tausend"],
+    ["4321", "4320", "4,32 Tausend"],
+    ["54321", "54300", "54,3 Tausend"],
+    ["654321", "654000", "654 Tausend"],
     ["7654321", "7,65 Mio.", "7,65 Millionen"],
     ["87654321", "87,7 Mio.", "87,7 Millionen"],
     ["987654321", "988 Mio.", "988 Millionen"],
@@ -480,15 +512,15 @@
     ["9", "9", "9"],
     ["99", "99", "99"],
     ["999", "999", "999"],
-    ["9999", "10 Tsd.", "10 Tausend"],
-    ["99999", "100 Tsd.", "100 Tausend"],
-    ["99999", "100 Tsd.", "100 Tausend"],
+    ["9999", "10000", "10 Tausend"],
+    ["99999", "100000", "100 Tausend"],
+    ["99999", "100000", "100 Tausend"],
     ["999999", "1 Mio.", "1 Million"],
     ["9999999", "10 Mio.", "10 Millionen"],
     ["99999999", "100 Mio.", "100 Millionen"],
-    ["9994", "9,99 Tsd.", "9,99 Tausend"],
-    ["99944", "99,9 Tsd.", "99,9 Tausend"],
-    ["999444", "999 Tsd.", "999 Tausend"],
+    ["9994", "9990", "9,99 Tausend"],
+    ["99944", "99900", "99,9 Tausend"],
+    ["999444", "999000", "999 Tausend"],
     ["9994444", "9,99 Mio.", "9,99 Millionen"],
     ["999444444", "999 Mio.", "999 Millionen"],
     ["9994444444", "9,99 Mrd.", "9,99 Milliarden"],
@@ -497,9 +529,9 @@
     ["1", "1", "1"],
     ["21", "21", "21"],
     ["321", "321", "321"],
-    ["4321", "4,32 Tsd.", "4,32 Tausend"],
-    ["54321", "54,3 Tsd.", "54,3 Tausend"],
-    ["654321", "654 Tsd.", "654 Tausend"],
+    ["4321", "4320", "4,32 Tausend"],
+    ["54321", "54300", "54,3 Tausend"],
+    ["654321", "654000", "654 Tausend"],
     ["7654321", "7,65 Mio.", "7,65 Millionen"],
     ["87654321", "87,7 Mio.", "87,7 Millionen"],
     ["987654321", "988 Mio.", "988 Millionen"],
@@ -512,15 +544,15 @@
     ["9", "9", "9"],
     ["99", "99", "99"],
     ["999", "999", "999"],
-    ["9999", "10 Tsd.", "10 Tausend"],
-    ["99999", "100 Tsd.", "100 Tausend"],
-    ["99999", "100 Tsd.", "100 Tausend"],
+    ["9999", "10000", "10 Tausend"],
+    ["99999", "100000", "100 Tausend"],
+    ["99999", "100000", "100 Tausend"],
     ["999999", "1 Mio.", "1 Million"],
     ["9999999", "10 Mio.", "10 Millionen"],
     ["99999999", "100 Mio.", "100 Millionen"],
-    ["9994", "9,99 Tsd.", "9,99 Tausend"],
-    ["99944", "99,9 Tsd.", "99,9 Tausend"],
-    ["999444", "999 Tsd.", "999 Tausend"],
+    ["9994", "9990", "9,99 Tausend"],
+    ["99944", "99900", "99,9 Tausend"],
+    ["999444", "999000", "999 Tausend"],
     ["9994444", "9,99 Mio.", "9,99 Millionen"],
     ["999444444", "999 Mio.", "999 Millionen"],
     ["9994444444", "9,99 Mrd.", "9,99 Milliarden"],
@@ -529,9 +561,9 @@
     ["1", "1", "1"],
     ["21", "21", "21"],
     ["321", "321", "321"],
-    ["4321", "4.32 Tsd.", "4.32 Tausend"],
-    ["54321", "54.3 Tsd.", "54.3 Tausend"],
-    ["654321", "654 Tsd.", "654 Tausend"],
+    ["4321", "4320", "4.32 Tausend"],
+    ["54321", "54300", "54.3 Tausend"],
+    ["654321", "654000", "654 Tausend"],
     ["7654321", "7.65 Mio.", "7.65 Millionen"],
     ["87654321", "87.7 Mio.", "87.7 Millionen"],
     ["987654321", "988 Mio.", "988 Millionen"],
@@ -544,15 +576,15 @@
     ["9", "9", "9"],
     ["99", "99", "99"],
     ["999", "999", "999"],
-    ["9999", "10 Tsd.", "10 Tausend"],
-    ["99999", "100 Tsd.", "100 Tausend"],
-    ["99999", "100 Tsd.", "100 Tausend"],
+    ["9999", "10000", "10 Tausend"],
+    ["99999", "100000", "100 Tausend"],
+    ["99999", "100000", "100 Tausend"],
     ["999999", "1 Mio.", "1 Million"],
     ["9999999", "10 Mio.", "10 Millionen"],
     ["99999999", "100 Mio.", "100 Millionen"],
-    ["9994", "9.99 Tsd.", "9.99 Tausend"],
-    ["99944", "99.9 Tsd.", "99.9 Tausend"],
-    ["999444", "999 Tsd.", "999 Tausend"],
+    ["9994", "9990", "9.99 Tausend"],
+    ["99944", "99900", "99.9 Tausend"],
+    ["999444", "999000", "999 Tausend"],
     ["9994444", "9.99 Mio.", "9.99 Millionen"],
     ["999444444", "999 Mio.", "999 Millionen"],
     ["9994444444", "9.99 Mrd.", "9.99 Milliarden"],
@@ -1329,33 +1361,33 @@
     ["1", "1", "1"],
     ["21", "21", "21"],
     ["321", "321", "321"],
-    ["4321", "4.32K", "4.32K"],
-    ["54321", "54.3K", "54.3K"],
-    ["654321", "654K", "654K"],
-    ["7654321", "7.65M", "7.65M"],
-    ["87654321", "87.7M", "87.7M"],
-    ["987654321", "988M", "988M"],
-    ["1087654321", "1.09G", "1.09G"],
-    ["11987654321", "12G", "12G"],
-    ["129987654321", "130G", "130G"],
-    ["1398987654321", "1.4T", "1.4T"],
-    ["14987987654321", "15T", "15T"],
-    ["159876987654321", "160T", "160T"],
+    ["4321", "4.32 Tsg.", "4.32 Tuusig"],
+    ["54321", "54.3 Tsg.", "54.3 Tuusig"],
+    ["654321", "654 Tsg.", "654 Tuusig"],
+    ["7654321", "7.65 Mio.", "7.65 Millioone"],
+    ["87654321", "87.7 Mio.", "87.7 Millioone"],
+    ["987654321", "988 Mio.", "988 Millioone"],
+    ["1087654321", "1.09 Mrd.", "1.09 Milliarde"],
+    ["11987654321", "12 Mrd.", "12 Milliarde"],
+    ["129987654321", "130 Mrd.", "130 Milliarde"],
+    ["1398987654321", "1.4 Bio.", "1.4 Billioone"],
+    ["14987987654321", "15 Bio.", "15 Billioone"],
+    ["159876987654321", "160 Bio.", "160 Billioone"],
     ["9", "9", "9"],
     ["99", "99", "99"],
     ["999", "999", "999"],
-    ["9999", "10K", "10K"],
-    ["99999", "100K", "100K"],
-    ["99999", "100K", "100K"],
-    ["999999", "1M", "1M"],
-    ["9999999", "10M", "10M"],
-    ["99999999", "100M", "100M"],
-    ["9994", "9.99K", "9.99K"],
-    ["99944", "99.9K", "99.9K"],
-    ["999444", "999K", "999K"],
-    ["9994444", "9.99M", "9.99M"],
-    ["999444444", "999M", "999M"],
-    ["9994444444", "9.99G", "9.99G"],
+    ["9999", "10 Tsg.", "10 Tuusig"],
+    ["99999", "100 Tsg.", "100 Tuusig"],
+    ["99999", "100 Tsg.", "100 Tuusig"],
+    ["999999", "1 Mio.", "1 Millioon"],
+    ["9999999", "10 Mio.", "10 Millioone"],
+    ["99999999", "100 Mio.", "100 Millioone"],
+    ["9994", "9.99 Tsg.", "9.99 Tuusig"],
+    ["99944", "99.9 Tsg.", "99.9 Tuusig"],
+    ["999444", "999 Tsg.", "999 Tuusig"],
+    ["9994444", "9.99 Mio.", "9.99 Millioone"],
+    ["999444444", "999 Mio.", "999 Millioone"],
+    ["9994444444", "9.99 Mrd.", "9.99 Milliarde"],
   ],
   "gu": [
     ["1", "1", "1"],
@@ -2583,10 +2615,10 @@
     ["7654321", "7,65 mi", "7,65 milhões"],
     ["87654321", "87,7 mi", "87,7 milhões"],
     ["987654321", "988 mi", "988 milhões"],
-    ["1087654321", "1,09 bi", "1,09 bilhões"],
+    ["1087654321", "1,09 bi", "1,09 bilhão"],
     ["11987654321", "12 bi", "12 bilhões"],
     ["129987654321", "130 bi", "130 bilhões"],
-    ["1398987654321", "1,4 tri", "1,4 trilhões"],
+    ["1398987654321", "1,4 tri", "1,4 trilhão"],
     ["14987987654321", "15 tri", "15 trilhões"],
     ["159876987654321", "160 tri", "160 trilhões"],
     ["9", "9", "9"],
@@ -2615,10 +2647,10 @@
     ["7654321", "7,65 mi", "7,65 milhões"],
     ["87654321", "87,7 mi", "87,7 milhões"],
     ["987654321", "988 mi", "988 milhões"],
-    ["1087654321", "1,09 bi", "1,09 bilhões"],
+    ["1087654321", "1,09 bi", "1,09 bilhão"],
     ["11987654321", "12 bi", "12 bilhões"],
     ["129987654321", "130 bi", "130 bilhões"],
-    ["1398987654321", "1,4 tri", "1,4 trilhões"],
+    ["1398987654321", "1,4 tri", "1,4 trilhão"],
     ["14987987654321", "15 tri", "15 trilhões"],
     ["159876987654321", "160 tri", "160 trilhões"],
     ["9", "9", "9"],
@@ -2650,7 +2682,7 @@
     ["1087654321", "1,09 mM", "1,09 mil milhões"],
     ["11987654321", "12 mM", "12 mil milhões"],
     ["129987654321", "130 mM", "130 mil milhões"],
-    ["1398987654321", "1,4 Bi", "1,4 biliões"],
+    ["1398987654321", "1,4 Bi", "1,4 bilião"],
     ["14987987654321", "15 Bi", "15 biliões"],
     ["159876987654321", "160 Bi", "160 biliões"],
     ["9", "9", "9"],
@@ -3057,33 +3089,33 @@
     ["1", "1", "1"],
     ["21", "21", "21"],
     ["321", "321", "321"],
-    ["4321", "4.32 พ.", "4.32 พัน"],
-    ["54321", "5.43 ม.", "5.43 หมื่น"],
-    ["654321", "6.54 ส.", "6.54 แสน"],
-    ["7654321", "7.65 ล.", "7.65 ล้าน"],
-    ["87654321", "87.7 ล.", "87.7 ล้าน"],
-    ["987654321", "988 ล.", "988 ล้าน"],
-    ["1087654321", "1.09 พ.ล.", "1.09 พันล้าน"],
-    ["11987654321", "1.2 ม.ล.", "1.2 หมื่นล้าน"],
-    ["129987654321", "1.3 ส.ล.", "1.3 แสนล้าน"],
-    ["1398987654321", "1.4 ล.ล.", "1.4 ล้านล้าน"],
-    ["14987987654321", "15 ล.ล.", "15 ล้านล้าน"],
-    ["159876987654321", "160 ล.ล.", "160 ล้านล้าน"],
+    ["4321", "4.32K", "4.32 พัน"],
+    ["54321", "54.3K", "5.43 หมื่น"],
+    ["654321", "654K", "6.54 แสน"],
+    ["7654321", "7.65M", "7.65 ล้าน"],
+    ["87654321", "87.7M", "87.7 ล้าน"],
+    ["987654321", "988M", "988 ล้าน"],
+    ["1087654321", "1.09B", "1.09 พันล้าน"],
+    ["11987654321", "12B", "1.2 หมื่นล้าน"],
+    ["129987654321", "130B", "1.3 แสนล้าน"],
+    ["1398987654321", "1.4T", "1.4 ล้านล้าน"],
+    ["14987987654321", "15T", "15 ล้านล้าน"],
+    ["159876987654321", "160T", "160 ล้านล้าน"],
     ["9", "9", "9"],
     ["99", "99", "99"],
     ["999", "999", "999"],
-    ["9999", "1 ม.", "1 หมื่น"],
-    ["99999", "1 ส.", "1 แสน"],
-    ["99999", "1 ส.", "1 แสน"],
-    ["999999", "1 ล.", "1 ล้าน"],
-    ["9999999", "10 ล.", "10 ล้าน"],
-    ["99999999", "100 ล.", "100 ล้าน"],
-    ["9994", "9.99 พ.", "9.99 พัน"],
-    ["99944", "9.99 ม.", "9.99 หมื่น"],
-    ["999444", "9.99 ส.", "9.99 แสน"],
-    ["9994444", "9.99 ล.", "9.99 ล้าน"],
-    ["999444444", "999 ล.", "999 ล้าน"],
-    ["9994444444", "9.99 พ.ล.", "9.99 พันล้าน"],
+    ["9999", "10K", "1 หมื่น"],
+    ["99999", "100K", "1 แสน"],
+    ["99999", "100K", "1 แสน"],
+    ["999999", "1M", "1 ล้าน"],
+    ["9999999", "10M", "10 ล้าน"],
+    ["99999999", "100M", "100 ล้าน"],
+    ["9994", "9.99K", "9.99 พัน"],
+    ["99944", "99.9K", "9.99 หมื่น"],
+    ["999444", "999K", "9.99 แสน"],
+    ["9994444", "9.99M", "9.99 ล้าน"],
+    ["999444444", "999M", "999 ล้าน"],
+    ["9994444444", "9.99B", "9.99 พันล้าน"],
   ],
   "tl": [
     ["1", "1", "1"],
@@ -3281,7 +3313,7 @@
     ["1", "1", "1"],
     ["21", "21", "21"],
     ["321", "321", "321"],
-    ["4321", "4.32千", "4.32千"],
+    ["4321", "4320", "4320"],
     ["54321", "5.43万", "5.43万"],
     ["654321", "65.4万", "65.4万"],
     ["7654321", "765万", "765万"],
@@ -3302,7 +3334,7 @@
     ["999999", "100万", "100万"],
     ["9999999", "1000万", "1000万"],
     ["99999999", "1亿", "1亿"],
-    ["9994", "9.99千", "9.99千"],
+    ["9994", "9990", "9990"],
     ["99944", "9.99万", "9.99万"],
     ["999444", "99.9万", "99.9万"],
     ["9994444", "999万", "999万"],
@@ -3313,7 +3345,7 @@
     ["1", "1", "1"],
     ["21", "21", "21"],
     ["321", "321", "321"],
-    ["4321", "4.32千", "4.32千"],
+    ["4321", "4320", "4320"],
     ["54321", "5.43万", "5.43万"],
     ["654321", "65.4万", "65.4万"],
     ["7654321", "765万", "765万"],
@@ -3334,7 +3366,7 @@
     ["999999", "100万", "100万"],
     ["9999999", "1000万", "1000万"],
     ["99999999", "1亿", "1亿"],
-    ["9994", "9.99千", "9.99千"],
+    ["9994", "9990", "9990"],
     ["99944", "9.99万", "9.99万"],
     ["999444", "99.9万", "99.9万"],
     ["9994444", "999万", "999万"],
@@ -3345,7 +3377,7 @@
     ["1", "1", "1"],
     ["21", "21", "21"],
     ["321", "321", "321"],
-    ["4321", "4.32K", "4.32千"],
+    ["4321", "4.32K", "4320"],
     ["54321", "54.3K", "5.43萬"],
     ["654321", "654K", "65.4萬"],
     ["7654321", "7.65M", "765萬"],
@@ -3366,7 +3398,7 @@
     ["999999", "1M", "100萬"],
     ["9999999", "10M", "1000萬"],
     ["99999999", "100M", "1億"],
-    ["9994", "9.99K", "9.99千"],
+    ["9994", "9.99K", "9990"],
     ["99944", "99.9K", "9.99萬"],
     ["999444", "999K", "99.9萬"],
     ["9994444", "9.99M", "999萬"],
@@ -3377,7 +3409,7 @@
     ["1", "1", "1"],
     ["21", "21", "21"],
     ["321", "321", "321"],
-    ["4321", "4.32千", "4.32千"],
+    ["4321", "4320", "4320"],
     ["54321", "5.43萬", "5.43萬"],
     ["654321", "65.4萬", "65.4萬"],
     ["7654321", "765萬", "765萬"],
@@ -3398,7 +3430,7 @@
     ["999999", "100萬", "100萬"],
     ["9999999", "1000萬", "1000萬"],
     ["99999999", "1億", "1億"],
-    ["9994", "9.99千", "9.99千"],
+    ["9994", "9990", "9990"],
     ["99944", "9.99萬", "9.99萬"],
     ["999444", "99.9萬", "99.9萬"],
     ["9994444", "999萬", "999萬"],
@@ -3437,4 +3469,132 @@
     ["999444444", "999M", "999 isigidi"],
     ["9994444444", "9.99B", "9.99 isigidi sezigidi"],
   ],
+  "en_MY": [
+    ["1", "1", "1"],
+    ["21", "21", "21"],
+    ["321", "321", "321"],
+    ["4321", "4.32K", "4.32 thousand"],
+    ["54321", "54.3K", "54.3 thousand"],
+    ["654321", "654K", "654 thousand"],
+    ["7654321", "7.65M", "7.65 million"],
+    ["87654321", "87.7M", "87.7 million"],
+    ["987654321", "988M", "988 million"],
+    ["1087654321", "1.09B", "1.09 billion"],
+    ["11987654321", "12B", "12 billion"],
+    ["129987654321", "130B", "130 billion"],
+    ["1398987654321", "1.4T", "1.4 trillion"],
+    ["14987987654321", "15T", "15 trillion"],
+    ["159876987654321", "160T", "160 trillion"],
+    ["9", "9", "9"],
+    ["99", "99", "99"],
+    ["999", "999", "999"],
+    ["9999", "10K", "10 thousand"],
+    ["99999", "100K", "100 thousand"],
+    ["99999", "100K", "100 thousand"],
+    ["999999", "1M", "1 million"],
+    ["9999999", "10M", "10 million"],
+    ["99999999", "100M", "100 million"],
+    ["9994", "9.99K", "9.99 thousand"],
+    ["99944", "99.9K", "99.9 thousand"],
+    ["999444", "999K", "999 thousand"],
+    ["9994444", "9.99M", "9.99 million"],
+    ["999444444", "999M", "999 million"],
+    ["9994444444", "9.99B", "9.99 billion"],
+  ],
+  "fr_CH": [
+    ["1", "1", "1"],
+    ["21", "21", "21"],
+    ["321", "321", "321"],
+    ["4321", "4,32 k", "4,32 mille"],
+    ["54321", "54,3 k", "54,3 mille"],
+    ["654321", "654 k", "654 mille"],
+    ["7654321", "7,65 M", "7,65 millions"],
+    ["87654321", "87,7 M", "87,7 millions"],
+    ["987654321", "988 M", "988 millions"],
+    ["1087654321", "1,09 Md", "1,09 milliard"],
+    ["11987654321", "12 Md", "12 milliards"],
+    ["129987654321", "130 Md", "130 milliards"],
+    ["1398987654321", "1,4 Bn", "1,4 billion"],
+    ["14987987654321", "15 Bn", "15 billions"],
+    ["159876987654321", "160 Bn", "160 billions"],
+    ["9", "9", "9"],
+    ["99", "99", "99"],
+    ["999", "999", "999"],
+    ["9999", "10 k", "10 mille"],
+    ["99999", "100 k", "100 mille"],
+    ["99999", "100 k", "100 mille"],
+    ["999999", "1 M", "1 million"],
+    ["9999999", "10 M", "10 millions"],
+    ["99999999", "100 M", "100 millions"],
+    ["9994", "9,99 k", "9,99 mille"],
+    ["99944", "99,9 k", "99,9 mille"],
+    ["999444", "999 k", "999 mille"],
+    ["9994444", "9,99 M", "9,99 millions"],
+    ["999444444", "999 M", "999 millions"],
+    ["9994444444", "9,99 Md", "9,99 milliards"],
+  ],
+  "it_CH": [
+    ["1", "1", "1"],
+    ["21", "21", "21"],
+    ["321", "321", "321"],
+    ["4321", "4320", "4.32 mila"],
+    ["54321", "54300", "54.3 mila"],
+    ["654321", "654000", "654 mila"],
+    ["7654321", "7.65 Mln", "7.65 milioni"],
+    ["87654321", "87.7 Mln", "87.7 milioni"],
+    ["987654321", "988 Mln", "988 milioni"],
+    ["1087654321", "1.09 Mld", "1.09 miliardi"],
+    ["11987654321", "12 Mld", "12 miliardi"],
+    ["129987654321", "130 Mld", "130 miliardi"],
+    ["1398987654321", "1.4 Bln", "1.4 mila miliardi"],
+    ["14987987654321", "15 Bln", "15 mila miliardi"],
+    ["159876987654321", "160 Bln", "160 mila miliardi"],
+    ["9", "9", "9"],
+    ["99", "99", "99"],
+    ["999", "999", "999"],
+    ["9999", "10000", "10 mila"],
+    ["99999", "100000", "100 mila"],
+    ["99999", "100000", "100 mila"],
+    ["999999", "1 Mln", "1 milione"],
+    ["9999999", "10 Mln", "10 milioni"],
+    ["99999999", "100 Mln", "100 milioni"],
+    ["9994", "9990", "9.99 mila"],
+    ["99944", "99900", "99.9 mila"],
+    ["999444", "999000", "999 mila"],
+    ["9994444", "9.99 Mln", "9.99 milioni"],
+    ["999444444", "999 Mln", "999 milioni"],
+    ["9994444444", "9.99 Mld", "9.99 miliardi"],
+  ],
+  "ps": [
+    ["1", "۱", "۱"],
+    ["21", "۲۱", "۲۱"],
+    ["321", "۳۲۱", "۳۲۱"],
+    ["4321", "۴٫۳۲K", "۴٫۳۲K"],
+    ["54321", "۵۴٫۳K", "۵۴٫۳K"],
+    ["654321", "۶۵۴K", "۶۵۴K"],
+    ["7654321", "۷٫۶۵M", "۷٫۶۵M"],
+    ["87654321", "۸۷٫۷M", "۸۷٫۷M"],
+    ["987654321", "۹۸۸M", "۹۸۸M"],
+    ["1087654321", "۱٫۰۹G", "۱٫۰۹G"],
+    ["11987654321", "۱۲G", "۱۲G"],
+    ["129987654321", "۱۳۰G", "۱۳۰G"],
+    ["1398987654321", "۱٫۴T", "۱٫۴T"],
+    ["14987987654321", "۱۵T", "۱۵T"],
+    ["159876987654321", "۱۶۰T", "۱۶۰T"],
+    ["9", "۹", "۹"],
+    ["99", "۹۹", "۹۹"],
+    ["999", "۹۹۹", "۹۹۹"],
+    ["9999", "۱۰K", "۱۰K"],
+    ["99999", "۱۰۰K", "۱۰۰K"],
+    ["99999", "۱۰۰K", "۱۰۰K"],
+    ["999999", "۱M", "۱M"],
+    ["9999999", "۱۰M", "۱۰M"],
+    ["99999999", "۱۰۰M", "۱۰۰M"],
+    ["9994", "۹٫۹۹K", "۹٫۹۹K"],
+    ["99944", "۹۹٫۹K", "۹۹٫۹K"],
+    ["999444", "۹۹۹K", "۹۹۹K"],
+    ["9994444", "۹٫۹۹M", "۹٫۹۹M"],
+    ["999444444", "۹۹۹M", "۹۹۹M"],
+    ["9994444444", "۹٫۹۹G", "۹٫۹۹G"],
+  ],
 };
diff --git a/test/number_format_compact_test.dart b/test/number_format_compact_test.dart
index 096392f..578ec12 100644
--- a/test/number_format_compact_test.dart
+++ b/test/number_format_compact_test.dart
@@ -134,6 +134,7 @@
   "lo", "mk", "my",
   "pt_PT", // Seems to differ in appending mil or not after thousands. pt_BR
   // does it.
+  "sd", // ICU considers this locale data questionable
   "th", // TH Expected abbreviations as '1.09 พ.ล.' rather than '1.09 พ'
   "tr", // TR Doesn't have a 0B format, goes directly to 00B, as a result 54321
   // just prints as 54321
@@ -150,20 +151,25 @@
 //TODO(alanknight): Narrow these down to particular numbers. Often it's just
 // 999999.
 var problemLocalesLong = [
-  "ar",
+  "ar", "ar_DZ",
   "be", "bg", "bs",
   "ca", "cs", "da", "de", "de_AT", "de_CH", "el", "es", "es_419", "es_ES",
   "es_MX", "es_US", "et", "fi",
   "fil", // FIL is different, seems like a genuine difference in suffixes
-  "fr", "fr_CA", "ga", "gl",
+  "fr", "fr_CA",
+  "fr_CH", // TODO(alanknight): million/millions, supported since CLDR 31.
+  "ga", "gl",
   "gsw", // GSW seems like we have long forms and pyICU doesn't
-  "hr", "is", "it", "lo", // LO seems to be picking up a different pattern.
+  "hr", "is", "it",
+  "it_CH", "lo", // LO seems to be picking up a different pattern.
   "lt", "lv", "mk",
   "my", // Seems to come out in the reverse order
   "nb", "ne", "no", "no_NO", "pl",
   "pt", // PT has some issues with scale as well, but I think it's differences
   // in the patterns.
-  "pt_BR", "pt_PT", "ro", "ru", "sk", "sl", "sr", "sr_Latn", "sv", "te", "tl",
+  "pt_BR", "pt_PT", "ro", "ru",
+  "sd", // ICU considers this locale data questionable
+   "sk", "sl", "sr", "sr_Latn", "sv", "te", "tl",
   "ur",
   "uk",
 ];
diff --git a/test/number_format_test.dart b/test/number_format_test.dart
index 64e8d04..aa0363c 100644
--- a/test/number_format_test.dart
+++ b/test/number_format_test.dart
@@ -164,14 +164,24 @@
     var swissConvention = new NumberFormat.currencyPattern('de_CH', r'$');
     formatted = swissConvention.format(amount);
     var nbsp = new String.fromCharCode(0xa0);
-    expect(formatted, r"$" + nbsp + "1'000'000.32");
+    var backquote = new String.fromCharCode(0x2019);
+    expect(formatted,
+        r"$" + nbsp + "1" + backquote + "000" + backquote + "000.32");
     readBack = swissConvention.parse(formatted);
     expect(readBack, amount);
 
+    var italianSwiss = new NumberFormat.currencyPattern('it_CH', r'$');
+    formatted = italianSwiss.format(amount);
+    expect(formatted,
+        r"$" + nbsp + "1" + backquote + "000" + backquote + "000.32");
+    readBack = italianSwiss.parse(formatted);
+    expect(readBack, amount);
+
     /// Verify we can leave off the currency and it gets filled in.
     var plainSwiss = new NumberFormat.currency(locale: 'de_CH');
     formatted = plainSwiss.format(amount);
-    expect(formatted, r"CHF" + nbsp + "1'000'000.32");
+    expect(formatted,
+        r"CHF" + nbsp + "1" + backquote + "000" + backquote + "000.32");
     readBack = plainSwiss.parse(formatted);
     expect(readBack, amount);
 
diff --git a/test/number_test_data.dart b/test/number_test_data.dart
index f79f19c..3206efd 100644
--- a/test/number_test_data.dart
+++ b/test/number_test_data.dart
@@ -5,7 +5,7 @@
 /// Test data for numeric formatting from a large set of locales.
 ///
 /// DO NOT EDIT. This file is autogenerated from ICU data.
-/// File generated from CLDR ver. 30.0.2
+/// File generated from CLDR ver. 31.0.1
 
 library number_test_data;
 
@@ -31,6 +31,13 @@
   r"١٢٬٣٠٠ ٪؜",
   r"؜-١٬٢٣٠ ٪؜",
   r"١٢٣٬٤٥٦٬٧٨٩٬٠٠٠ ٪؜",
+  "ar_DZ",
+  r"123",
+  r"‎-12,3",
+  r"1.234.567.890",
+  r"12.300‎%‎",
+  r"‎-1.230‎%‎",
+  r"123.456.789.000‎%‎",
   "az",
   r"123",
   r"-12,3",
@@ -125,10 +132,10 @@
   "de_CH",
   r"123",
   r"-12.3",
-  r"1'234'567'890",
-  r"12'300%",
-  r"-1'230%",
-  r"123'456'789'000%",
+  r"1’234’567’890",
+  r"12’300%",
+  r"-1’230%",
+  r"123’456’789’000%",
   "el",
   r"123",
   r"-12,3",
@@ -621,10 +628,10 @@
   r"123 456 789 000 %",
   "sl",
   r"123",
-  r"–12,3",
+  r"−12,3",
   r"1.234.567.890",
   r"12.300 %",
-  r"–1.230 %",
+  r"−1.230 %",
   r"123.456.789.000 %",
   "sq",
   r"123",