diff --git a/pkgs/intl/lib/date_symbol_data_local.dart b/pkgs/intl/lib/date_symbol_data_local.dart index a479d75ec..4c38d3e45 100644 --- a/pkgs/intl/lib/date_symbol_data_local.dart +++ b/pkgs/intl/lib/date_symbol_data_local.dart @@ -954,6 +954,167 @@ Map dateTimeSymbolMap() => { FIRSTDAYOFWEEK: 5, WEEKENDRANGE: const [4, 5], FIRSTWEEKCUTOFFDAY: 4), + // Date/time formatting symbols for locale ar_TN. + "ar_TN": new DateSymbols( + NAME: "ar_TN", + 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 as. "as": new DateSymbols( NAME: "as", diff --git a/pkgs/intl/lib/date_time_patterns.dart b/pkgs/intl/lib/date_time_patterns.dart index 8c3912847..c6a6f27c8 100644 --- a/pkgs/intl/lib/date_time_patterns.dart +++ b/pkgs/intl/lib/date_time_patterns.dart @@ -255,6 +255,54 @@ Map> dateTimePatternMap() => { 'ZZZZ': 'ZZZZ' // ABBR_UTC_TZ }, + /// Extended set of localized date/time patterns for locale ar_TN. + 'ar_TN': 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 as. 'as': const { 'd': 'd', // DAY diff --git a/pkgs/intl/lib/number_symbols_data.dart b/pkgs/intl/lib/number_symbols_data.dart index 04960e68a..511193c30 100644 --- a/pkgs/intl/lib/number_symbols_data.dart +++ b/pkgs/intl/lib/number_symbols_data.dart @@ -114,6 +114,25 @@ Map numberFormatSymbols = { PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u200F#,##0.00\u00A0\u00A4', DEF_CURRENCY_CODE: 'EGP'), + // Number formatting symbols for locale ar_TN. + "ar_TN": new NumberSymbols( + NAME: "ar_TN", + 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: + '\u200F#,##0.000\u00A0\u00A4;\u200F-#,##0.000\u00A0\u00A4', + DEF_CURRENCY_CODE: 'DT'), // Number formatting symbols for locale as. "as": new NumberSymbols( NAME: "as", diff --git a/pkgs/intl/lib/src/data/dates/locale_list.dart b/pkgs/intl/lib/src/data/dates/locale_list.dart index 23259dc1b..5e57875e2 100644 --- a/pkgs/intl/lib/src/data/dates/locale_list.dart +++ b/pkgs/intl/lib/src/data/dates/locale_list.dart @@ -10,6 +10,7 @@ final availableLocalesForDateFormatting = const [ 'ar', 'ar_DZ', 'ar_EG', + 'ar_TN', 'as', 'az', 'be', diff --git a/pkgs/intl/lib/src/data/dates/patterns/ar_TN.json b/pkgs/intl/lib/src/data/dates/patterns/ar_TN.json new file mode 100644 index 000000000..0038ae29f --- /dev/null +++ b/pkgs/intl/lib/src/data/dates/patterns/ar_TN.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/pkgs/intl/lib/src/data/dates/symbols/ar_TN.json b/pkgs/intl/lib/src/data/dates/symbols/ar_TN.json new file mode 100644 index 000000000..3637e4e38 --- /dev/null +++ b/pkgs/intl/lib/src/data/dates/symbols/ar_TN.json @@ -0,0 +1 @@ +{"NAME":"ar_TN","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/pkgs/intl/lib/src/plural_rules.dart b/pkgs/intl/lib/src/plural_rules.dart index cf939ee56..132884d3b 100644 --- a/pkgs/intl/lib/src/plural_rules.dart +++ b/pkgs/intl/lib/src/plural_rules.dart @@ -501,6 +501,7 @@ final pluralRules = { 'ar': _ar_rule, 'ar_DZ': _ar_rule, 'ar_EG': _ar_rule, + 'ar_TN': _ar_rule, 'as': _am_rule, 'az': _af_rule, 'be': _be_rule, diff --git a/pkgs/intl/test/compact_number_test_data.dart b/pkgs/intl/test/compact_number_test_data.dart index 623b26863..8ec3eb72d 100644 --- a/pkgs/intl/test/compact_number_test_data.dart +++ b/pkgs/intl/test/compact_number_test_data.dart @@ -491,6 +491,100 @@ Map>> compactNumberTestData = { ["-9999.12", "؜-١٠ ألف", "؜-١٠ ألف"], ["-9999.99", "؜-١٠ ألف", "؜-١٠ ألف"], ], + "ar_TN": [ + ["1", "1", "1"], + ["21", "21", "21"], + ["321", "321", "321"], + ["4321", "4,3 ألف", "4,3 ألف"], + ["54321", "54 ألف", "54 ألف"], + ["654321", "654 ألف", "654 ألف"], + ["7654321", "7,7 مليون", "7,7 مليون"], + ["87654321", "88 مليون", "88 مليون"], + ["987654321", "988 مليون", "988 مليون"], + ["1087654321", "1,1 مليار", "1,1 مليار"], + ["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 ألف"], + ["999999", "1 مليون", "1 مليون"], + ["9999999", "10 مليون", "10 ملايين"], + ["99999999", "100 مليون", "100 مليون"], + ["9994", "10 ألف", "10 ألف"], + ["99944", "100 ألف", "100 ألف"], + ["999444", "999 ألف", "999 ألف"], + ["9994444", "10 مليون", "10 ملايين"], + ["999444444", "999 مليون", "999 مليون"], + ["9994444444", "10 مليار", "10 مليار"], + ["1000000000000000", "1000 ترليون", "1000 ترليون"], + ["10000000000000000", "10000 ترليون", "10000 ترليون"], + ["0", "0", "0"], + ["-1", "‎-1", "‎-1"], + ["-2", "‎-2", "‎-2"], + ["-3", "‎-3", "‎-3"], + ["-1000", "‎-1 ألف", "‎-1 ألف"], + ["-1001", "‎-1 ألف", "‎-1 ألف"], + ["-1010", "‎-1 ألف", "‎-1 ألف"], + ["-1100", "‎-1,1 ألف", "‎-1,1 ألف"], + ["-2000", "‎-2 ألف", "‎-2 ألف"], + ["-2001", "‎-2 ألف", "‎-2 ألف"], + ["-2010", "‎-2 ألف", "‎-2 ألف"], + ["-2100", "‎-2,1 ألف", "‎-2,1 ألف"], + ["-9", "‎-9", "‎-9"], + ["-99", "‎-99", "‎-99"], + ["-999", "‎-999", "‎-999"], + ["-9999", "‎-10 ألف", "‎-10 ألف"], + ["-99999", "‎-100 ألف", "‎-100 ألف"], + ["-999999", "‎-1 مليون", "‎-1 مليون"], + ["-9999999", "‎-10 مليون", "‎-10 ملايين"], + ["-9999999999999999", "‎-10000 ترليون", "‎-10000 ترليون"], + ["1000", "1 ألف", "1 ألف"], + ["1001", "1 ألف", "1 ألف"], + ["1010", "1 ألف", "1 ألف"], + ["1100", "1,1 ألف", "1,1 ألف"], + ["2000", "2 ألف", "2 ألف"], + ["2001", "2 ألف", "2 ألف"], + ["2010", "2 ألف", "2 ألف"], + ["2100", "2,1 ألف", "2,1 ألف"], + ["3000", "3 آلاف", "3 آلاف"], + ["3001", "3 آلاف", "3 آلاف"], + ["3010", "3 آلاف", "3 آلاف"], + ["3100", "3,1 ألف", "3,1 ألف"], + ["4000", "4 آلاف", "4 آلاف"], + ["4001", "4 آلاف", "4 آلاف"], + ["4010", "4 آلاف", "4 آلاف"], + ["4100", "4,1 ألف", "4,1 ألف"], + ["5000", "5 آلاف", "5 آلاف"], + ["5001", "5 آلاف", "5 آلاف"], + ["5010", "5 آلاف", "5 آلاف"], + ["5100", "5,1 ألف", "5,1 ألف"], + ["0.001234", "0,0012", "0,0012"], + ["0.01234", "0,012", "0,012"], + ["0.1234", "0,12", "0,12"], + ["0.99", "0,99", "0,99"], + ["0.999", "1", "1"], + ["9.12", "9,1", "9,1"], + ["9.99", "10", "10"], + ["99.12", "99", "99"], + ["99.99", "100", "100"], + ["999.12", "999", "999"], + ["999.99", "1 ألف", "1 ألف"], + ["9999.12", "10 ألف", "10 ألف"], + ["9999.99", "10 ألف", "10 ألف"], + ["-0.12", "‎-0,12", "‎-0,12"], + ["-0.99", "‎-0,99", "‎-0,99"], + ["-9.12", "‎-9,1", "‎-9,1"], + ["-9.99", "‎-10", "‎-10"], + ["-999.12", "‎-999", "‎-999"], + ["-999.99", "‎-1 ألف", "‎-1 ألف"], + ["-9999.12", "‎-10 ألف", "‎-10 ألف"], + ["-9999.99", "‎-10 ألف", "‎-10 ألف"], + ], "as": [ ["1", "১", "১"], ["21", "২১", "২১"], diff --git a/pkgs/intl/test/number_test_data.dart b/pkgs/intl/test/number_test_data.dart index bb791a5d9..40b8920d3 100644 --- a/pkgs/intl/test/number_test_data.dart +++ b/pkgs/intl/test/number_test_data.dart @@ -45,6 +45,13 @@ List numberTestData = const [ r"١٢٬٣٠٠٪؜", r"؜-١٬٢٣٠٪؜", r"١٢٣٬٤٥٦٬٧٨٩٬٠٠٠٪؜", + "ar_TN", + r"123", + r"‎-12,3", + r"1.234.567.890", + r"12.300‎%‎", + r"‎-1.230‎%‎", + r"123.456.789.000‎%‎", "as", r"১২৩", r"-১২.৩",