twitter_cldr 6.11.5 → 6.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +3 -1
- data/README.md +0 -1111
- data/lib/twitter_cldr/resources/calendars_importer.rb +1 -1
- data/lib/twitter_cldr/resources/cldr_locale.rb +4 -3
- data/lib/twitter_cldr/resources/currency_symbols_importer.rb +8 -4
- data/lib/twitter_cldr/resources/locales_resources_importer.rb +33 -1
- data/lib/twitter_cldr/resources/number_formats_importer.rb +4 -1
- data/lib/twitter_cldr/resources/postal_codes_importer.rb +1 -1
- data/lib/twitter_cldr/resources/segment_rules_importer.rb +6 -3
- data/lib/twitter_cldr/resources/segment_tests_importer.rb +118 -16
- data/lib/twitter_cldr/resources/tailoring_importer.rb +6 -6
- data/lib/twitter_cldr/resources/timezone_tests_importer.rb +0 -8
- data/lib/twitter_cldr/resources/transform_tests_importer.rb +0 -5
- data/lib/twitter_cldr/resources/transforms_importer.rb +33 -1
- data/lib/twitter_cldr/segmentation/break_iterator.rb +14 -16
- data/lib/twitter_cldr/segmentation/metadata.rb +4 -0
- data/lib/twitter_cldr/segmentation/state_machine.rb +13 -1
- data/lib/twitter_cldr/shared/properties_database.rb +12 -0
- data/lib/twitter_cldr/shared/property_set.rb +14 -0
- data/lib/twitter_cldr/transforms/conversions/side.rb +20 -12
- data/lib/twitter_cldr/transforms/transformer.rb +1 -1
- data/lib/twitter_cldr/transforms/transforms/transform_rule.rb +1 -1
- data/lib/twitter_cldr/utils/regexp_ast.rb +3 -0
- data/lib/twitter_cldr/version.rb +1 -1
- data/lib/twitter_cldr/versions.rb +3 -3
- data/lib/twitter_cldr.rb +4 -5
- data/resources/locales/af/calendars.yml +9 -9
- data/resources/locales/af/currencies.yml +1 -0
- data/resources/locales/af/fields.yml +25 -0
- data/resources/locales/af/languages.yml +41 -0
- data/resources/locales/af/lists.yml +5 -5
- data/resources/locales/af/numbers.yml +115 -1
- data/resources/locales/af/timezones.yml +4 -0
- data/resources/locales/af/units.yml +54 -9
- data/resources/locales/ar/calendars.yml +5 -5
- data/resources/locales/ar/fields.yml +24 -0
- data/resources/locales/ar/languages.yml +34 -0
- data/resources/locales/ar/lists.yml +8 -8
- data/resources/locales/ar/numbers.yml +116 -2
- data/resources/locales/ar/rbnf.yml +139 -139
- data/resources/locales/ar/timezones.yml +4 -0
- data/resources/locales/ar/units.yml +890 -31
- data/resources/locales/az/calendars.yml +11 -11
- data/resources/locales/az/fields.yml +32 -0
- data/resources/locales/az/languages.yml +39 -0
- data/resources/locales/az/lists.yml +2 -2
- data/resources/locales/az/numbers.yml +114 -0
- data/resources/locales/az/timezones.yml +2 -0
- data/resources/locales/az/units.yml +385 -6
- data/resources/locales/be/calendars.yml +16 -16
- data/resources/locales/be/fields.yml +32 -0
- data/resources/locales/be/languages.yml +43 -1
- data/resources/locales/be/lists.yml +6 -6
- data/resources/locales/be/numbers.yml +114 -0
- data/resources/locales/be/territories.yml +1 -1
- data/resources/locales/be/timezones.yml +4 -0
- data/resources/locales/be/units.yml +947 -124
- data/resources/locales/bg/calendars.yml +30 -30
- data/resources/locales/bg/fields.yml +4 -4
- data/resources/locales/bg/languages.yml +42 -3
- data/resources/locales/bg/lists.yml +6 -6
- data/resources/locales/bg/numbers.yml +115 -1
- data/resources/locales/bg/rbnf.yml +1213 -116
- data/resources/locales/bg/timezones.yml +5 -1
- data/resources/locales/bg/units.yml +433 -9
- data/resources/locales/bn/calendars.yml +19 -19
- data/resources/locales/bn/currencies.yml +23 -22
- data/resources/locales/bn/fields.yml +12 -12
- data/resources/locales/bn/languages.yml +74 -50
- data/resources/locales/bn/lists.yml +4 -4
- data/resources/locales/bn/numbers.yml +115 -0
- data/resources/locales/bn/territories.yml +16 -16
- data/resources/locales/bn/timezones.yml +12 -8
- data/resources/locales/bn/units.yml +338 -9
- data/resources/locales/bo/numbers.yml +114 -0
- data/resources/locales/bo/timezones.yml +10 -0
- data/resources/locales/bo/units.yml +4 -2
- data/resources/locales/bs/calendars.yml +10 -10
- data/resources/locales/bs/fields.yml +56 -0
- data/resources/locales/bs/languages.yml +36 -0
- data/resources/locales/bs/lists.yml +6 -6
- data/resources/locales/bs/numbers.yml +1276 -236
- data/resources/locales/bs/timezones.yml +2 -0
- data/resources/locales/bs/units.yml +534 -8
- data/resources/locales/ca/calendars.yml +17 -17
- data/resources/locales/ca/languages.yml +32 -0
- data/resources/locales/ca/lists.yml +6 -6
- data/resources/locales/ca/numbers.yml +153 -37
- data/resources/locales/ca/plural_rules.yml +2 -1
- data/resources/locales/ca/plurals.yml +4 -1
- data/resources/locales/ca/territories.yml +6 -6
- data/resources/locales/ca/timezones.yml +5 -1
- data/resources/locales/ca/units.yml +472 -20
- data/resources/locales/cs/calendars.yml +14 -10
- data/resources/locales/cs/languages.yml +42 -1
- data/resources/locales/cs/lists.yml +7 -7
- data/resources/locales/cs/numbers.yml +114 -0
- data/resources/locales/cs/timezones.yml +310 -306
- data/resources/locales/cs/units.yml +406 -356
- data/resources/locales/cy/calendars.yml +10 -10
- data/resources/locales/cy/fields.yml +25 -0
- data/resources/locales/cy/languages.yml +40 -1
- data/resources/locales/cy/lists.yml +4 -4
- data/resources/locales/cy/numbers.yml +114 -0
- data/resources/locales/cy/timezones.yml +2 -0
- data/resources/locales/cy/units.yml +650 -25
- data/resources/locales/da/calendars.yml +30 -30
- data/resources/locales/da/fields.yml +4 -0
- data/resources/locales/da/languages.yml +36 -3
- data/resources/locales/da/lists.yml +2 -2
- data/resources/locales/da/numbers.yml +114 -0
- data/resources/locales/da/territories.yml +2 -2
- data/resources/locales/da/timezones.yml +2 -0
- data/resources/locales/da/units.yml +593 -224
- data/resources/locales/de/calendars.yml +8 -8
- data/resources/locales/de/languages.yml +31 -0
- data/resources/locales/de/lists.yml +6 -6
- data/resources/locales/de/numbers.yml +114 -0
- data/resources/locales/de/timezones.yml +44 -42
- data/resources/locales/de/units.yml +247 -25
- data/resources/locales/de-AT/calendars.yml +8 -8
- data/resources/locales/de-AT/languages.yml +31 -0
- data/resources/locales/de-AT/lists.yml +6 -6
- data/resources/locales/de-AT/numbers.yml +114 -0
- data/resources/locales/de-AT/timezones.yml +44 -42
- data/resources/locales/de-AT/units.yml +247 -25
- data/resources/locales/de-CH/calendars.yml +7 -7
- data/resources/locales/de-CH/languages.yml +37 -6
- data/resources/locales/de-CH/lists.yml +6 -6
- data/resources/locales/de-CH/numbers.yml +114 -0
- data/resources/locales/de-CH/territories.yml +1 -1
- data/resources/locales/de-CH/timezones.yml +44 -42
- data/resources/locales/de-CH/units.yml +247 -25
- data/resources/locales/el/calendars.yml +13 -13
- data/resources/locales/el/languages.yml +34 -0
- data/resources/locales/el/lists.yml +4 -4
- data/resources/locales/el/numbers.yml +114 -0
- data/resources/locales/el/rbnf.yml +15 -3
- data/resources/locales/el/territories.yml +1 -1
- data/resources/locales/el/timezones.yml +4 -0
- data/resources/locales/el/units.yml +477 -72
- data/resources/locales/en/calendars.yml +15 -15
- data/resources/locales/en/currencies.yml +15 -7
- data/resources/locales/en/fields.yml +72 -0
- data/resources/locales/en/languages.yml +45 -5
- data/resources/locales/en/numbers.yml +114 -0
- data/resources/locales/en/rbnf.yml +2 -2
- data/resources/locales/en/territories.yml +2 -1
- data/resources/locales/en/timezones.yml +9 -1
- data/resources/locales/en/units.yml +29 -11
- data/resources/locales/en-001/calendars.yml +13 -13
- data/resources/locales/en-001/currencies.yml +12 -4
- data/resources/locales/en-001/fields.yml +12 -0
- data/resources/locales/en-001/languages.yml +43 -3
- data/resources/locales/en-001/numbers.yml +114 -0
- data/resources/locales/en-001/territories.yml +9 -8
- data/resources/locales/en-001/timezones.yml +13 -1
- data/resources/locales/en-001/units.yml +36 -17
- data/resources/locales/en-150/calendars.yml +13 -13
- data/resources/locales/en-150/currencies.yml +12 -4
- data/resources/locales/en-150/fields.yml +12 -0
- data/resources/locales/en-150/languages.yml +43 -3
- data/resources/locales/en-150/numbers.yml +114 -0
- data/resources/locales/en-150/territories.yml +9 -8
- data/resources/locales/en-150/timezones.yml +13 -1
- data/resources/locales/en-150/units.yml +36 -17
- data/resources/locales/en-AU/calendars.yml +25 -25
- data/resources/locales/en-AU/currencies.yml +21 -14
- data/resources/locales/en-AU/fields.yml +5 -3
- data/resources/locales/en-AU/languages.yml +43 -3
- data/resources/locales/en-AU/numbers.yml +114 -0
- data/resources/locales/en-AU/territories.yml +4 -3
- data/resources/locales/en-AU/timezones.yml +15 -1
- data/resources/locales/en-AU/units.yml +40 -21
- data/resources/locales/en-CA/calendars.yml +23 -23
- data/resources/locales/en-CA/currencies.yml +28 -20
- data/resources/locales/en-CA/fields.yml +12 -0
- data/resources/locales/en-CA/languages.yml +52 -12
- data/resources/locales/en-CA/numbers.yml +114 -0
- data/resources/locales/en-CA/territories.yml +8 -7
- data/resources/locales/en-CA/timezones.yml +12 -2
- data/resources/locales/en-CA/units.yml +41 -20
- data/resources/locales/en-GB/calendars.yml +10 -10
- data/resources/locales/en-GB/currencies.yml +12 -4
- data/resources/locales/en-GB/fields.yml +1 -0
- data/resources/locales/en-GB/languages.yml +42 -2
- data/resources/locales/en-GB/numbers.yml +114 -0
- data/resources/locales/en-GB/territories.yml +2 -1
- data/resources/locales/en-GB/timezones.yml +5 -1
- data/resources/locales/en-GB/units.yml +31 -13
- data/resources/locales/en-IE/calendars.yml +13 -13
- data/resources/locales/en-IE/currencies.yml +12 -4
- data/resources/locales/en-IE/fields.yml +12 -0
- data/resources/locales/en-IE/languages.yml +43 -3
- data/resources/locales/en-IE/numbers.yml +114 -0
- data/resources/locales/en-IE/territories.yml +9 -8
- data/resources/locales/en-IE/timezones.yml +13 -1
- data/resources/locales/en-IE/units.yml +36 -17
- data/resources/locales/en-IN/calendars.yml +17 -17
- data/resources/locales/en-IN/currencies.yml +12 -4
- data/resources/locales/en-IN/fields.yml +12 -0
- data/resources/locales/en-IN/languages.yml +43 -3
- data/resources/locales/en-IN/numbers.yml +114 -0
- data/resources/locales/en-IN/territories.yml +9 -8
- data/resources/locales/en-IN/timezones.yml +15 -1
- data/resources/locales/en-IN/units.yml +35 -16
- data/resources/locales/en-NZ/calendars.yml +13 -13
- data/resources/locales/en-NZ/currencies.yml +12 -4
- data/resources/locales/en-NZ/fields.yml +12 -0
- data/resources/locales/en-NZ/languages.yml +43 -3
- data/resources/locales/en-NZ/numbers.yml +114 -0
- data/resources/locales/en-NZ/territories.yml +9 -8
- data/resources/locales/en-NZ/timezones.yml +13 -1
- data/resources/locales/en-NZ/units.yml +36 -17
- data/resources/locales/en-SG/calendars.yml +13 -13
- data/resources/locales/en-SG/currencies.yml +12 -4
- data/resources/locales/en-SG/fields.yml +12 -0
- data/resources/locales/en-SG/languages.yml +43 -3
- data/resources/locales/en-SG/numbers.yml +114 -0
- data/resources/locales/en-SG/territories.yml +9 -8
- data/resources/locales/en-SG/timezones.yml +13 -1
- data/resources/locales/en-SG/units.yml +36 -17
- data/resources/locales/en-US/calendars.yml +15 -15
- data/resources/locales/en-US/currencies.yml +15 -7
- data/resources/locales/en-US/fields.yml +72 -0
- data/resources/locales/en-US/languages.yml +45 -5
- data/resources/locales/en-US/numbers.yml +114 -0
- data/resources/locales/en-US/territories.yml +2 -1
- data/resources/locales/en-US/timezones.yml +9 -1
- data/resources/locales/en-US/units.yml +29 -11
- data/resources/locales/en-ZA/calendars.yml +13 -13
- data/resources/locales/en-ZA/currencies.yml +12 -4
- data/resources/locales/en-ZA/fields.yml +12 -0
- data/resources/locales/en-ZA/languages.yml +43 -3
- data/resources/locales/en-ZA/numbers.yml +116 -2
- data/resources/locales/en-ZA/territories.yml +9 -8
- data/resources/locales/en-ZA/timezones.yml +13 -1
- data/resources/locales/en-ZA/units.yml +36 -17
- data/resources/locales/eo/calendars.yml +80 -80
- data/resources/locales/eo/fields.yml +439 -8
- data/resources/locales/eo/numbers.yml +114 -0
- data/resources/locales/eo/timezones.yml +10 -0
- data/resources/locales/eo/units.yml +4 -2
- data/resources/locales/es/calendars.yml +16 -16
- data/resources/locales/es/languages.yml +38 -4
- data/resources/locales/es/lists.yml +6 -6
- data/resources/locales/es/numbers.yml +114 -0
- data/resources/locales/es/rbnf.yml +18 -0
- data/resources/locales/es/timezones.yml +4 -2
- data/resources/locales/es/units.yml +40 -9
- data/resources/locales/es-419/calendars.yml +26 -26
- data/resources/locales/es-419/fields.yml +1 -1
- data/resources/locales/es-419/languages.yml +35 -1
- data/resources/locales/es-419/lists.yml +6 -6
- data/resources/locales/es-419/numbers.yml +114 -0
- data/resources/locales/es-419/timezones.yml +4 -0
- data/resources/locales/es-419/units.yml +45 -17
- data/resources/locales/es-AR/calendars.yml +17 -17
- data/resources/locales/es-AR/languages.yml +35 -1
- data/resources/locales/es-AR/lists.yml +6 -6
- data/resources/locales/es-AR/numbers.yml +114 -0
- data/resources/locales/es-AR/timezones.yml +4 -0
- data/resources/locales/es-AR/units.yml +45 -17
- data/resources/locales/es-CO/calendars.yml +22 -22
- data/resources/locales/es-CO/languages.yml +35 -1
- data/resources/locales/es-CO/lists.yml +6 -6
- data/resources/locales/es-CO/numbers.yml +114 -0
- data/resources/locales/es-CO/timezones.yml +4 -0
- data/resources/locales/es-CO/units.yml +45 -17
- data/resources/locales/es-MX/calendars.yml +21 -21
- data/resources/locales/es-MX/fields.yml +3 -3
- data/resources/locales/es-MX/languages.yml +43 -9
- data/resources/locales/es-MX/lists.yml +6 -6
- data/resources/locales/es-MX/numbers.yml +115 -1
- data/resources/locales/es-MX/territories.yml +2 -2
- data/resources/locales/es-MX/timezones.yml +4 -0
- data/resources/locales/es-MX/units.yml +49 -21
- data/resources/locales/es-US/calendars.yml +24 -24
- data/resources/locales/es-US/languages.yml +43 -9
- data/resources/locales/es-US/lists.yml +6 -6
- data/resources/locales/es-US/numbers.yml +114 -0
- data/resources/locales/es-US/timezones.yml +4 -0
- data/resources/locales/es-US/units.yml +52 -26
- data/resources/locales/et/calendars.yml +25 -25
- data/resources/locales/et/fields.yml +8 -0
- data/resources/locales/et/languages.yml +33 -0
- data/resources/locales/et/lists.yml +4 -4
- data/resources/locales/et/numbers.yml +114 -0
- data/resources/locales/et/timezones.yml +2 -0
- data/resources/locales/et/units.yml +405 -6
- data/resources/locales/eu/calendars.yml +35 -35
- data/resources/locales/eu/currencies.yml +11 -0
- data/resources/locales/eu/fields.yml +40 -0
- data/resources/locales/eu/languages.yml +128 -88
- data/resources/locales/eu/lists.yml +6 -6
- data/resources/locales/eu/numbers.yml +1233 -237
- data/resources/locales/eu/timezones.yml +12 -0
- data/resources/locales/eu/units.yml +386 -17
- data/resources/locales/fa/calendars.yml +4 -4
- data/resources/locales/fa/currencies.yml +1 -0
- data/resources/locales/fa/fields.yml +4 -4
- data/resources/locales/fa/languages.yml +44 -7
- data/resources/locales/fa/lists.yml +4 -4
- data/resources/locales/fa/numbers.yml +118 -2
- data/resources/locales/fa/timezones.yml +4 -0
- data/resources/locales/fa/units.yml +255 -40
- data/resources/locales/fi/calendars.yml +7 -7
- data/resources/locales/fi/currencies.yml +6 -2
- data/resources/locales/fi/languages.yml +34 -1
- data/resources/locales/fi/lists.yml +6 -6
- data/resources/locales/fi/numbers.yml +116 -1
- data/resources/locales/fi/timezones.yml +2 -0
- data/resources/locales/fi/units.yml +121 -65
- data/resources/locales/fil/calendars.yml +21 -21
- data/resources/locales/fil/currencies.yml +46 -46
- data/resources/locales/fil/fields.yml +48 -48
- data/resources/locales/fil/languages.yml +41 -4
- data/resources/locales/fil/lists.yml +4 -4
- data/resources/locales/fil/numbers.yml +116 -1
- data/resources/locales/fil/territories.yml +1 -1
- data/resources/locales/fil/timezones.yml +21 -19
- data/resources/locales/fil/units.yml +355 -9
- data/resources/locales/fr/calendars.yml +9 -9
- data/resources/locales/fr/currencies.yml +3 -3
- data/resources/locales/fr/fields.yml +4 -0
- data/resources/locales/fr/languages.yml +34 -3
- data/resources/locales/fr/lists.yml +4 -4
- data/resources/locales/fr/numbers.yml +114 -0
- data/resources/locales/fr/timezones.yml +14 -12
- data/resources/locales/fr/units.yml +84 -30
- data/resources/locales/fr-BE/calendars.yml +9 -9
- data/resources/locales/fr-BE/currencies.yml +3 -3
- data/resources/locales/fr-BE/fields.yml +4 -0
- data/resources/locales/fr-BE/languages.yml +34 -3
- data/resources/locales/fr-BE/lists.yml +4 -4
- data/resources/locales/fr-BE/numbers.yml +114 -0
- data/resources/locales/fr-BE/timezones.yml +14 -12
- data/resources/locales/fr-BE/units.yml +84 -30
- data/resources/locales/fr-CA/calendars.yml +5 -5
- data/resources/locales/fr-CA/fields.yml +4 -0
- data/resources/locales/fr-CA/languages.yml +34 -3
- data/resources/locales/fr-CA/lists.yml +4 -4
- data/resources/locales/fr-CA/numbers.yml +114 -0
- data/resources/locales/fr-CA/timezones.yml +4 -0
- data/resources/locales/fr-CA/units.yml +43 -25
- data/resources/locales/fr-CH/calendars.yml +7 -7
- data/resources/locales/fr-CH/currencies.yml +3 -3
- data/resources/locales/fr-CH/fields.yml +4 -0
- data/resources/locales/fr-CH/languages.yml +34 -3
- data/resources/locales/fr-CH/lists.yml +4 -4
- data/resources/locales/fr-CH/numbers.yml +114 -0
- data/resources/locales/fr-CH/timezones.yml +14 -12
- data/resources/locales/fr-CH/units.yml +84 -30
- data/resources/locales/ga/calendars.yml +26 -26
- data/resources/locales/ga/currencies.yml +6 -4
- data/resources/locales/ga/fields.yml +39 -39
- data/resources/locales/ga/languages.yml +131 -13
- data/resources/locales/ga/lists.yml +3 -3
- data/resources/locales/ga/numbers.yml +114 -0
- data/resources/locales/ga/timezones.yml +2 -0
- data/resources/locales/ga/units.yml +379 -23
- data/resources/locales/gl/calendars.yml +11 -11
- data/resources/locales/gl/fields.yml +12 -0
- data/resources/locales/gl/languages.yml +43 -0
- data/resources/locales/gl/lists.yml +6 -6
- data/resources/locales/gl/numbers.yml +116 -2
- data/resources/locales/gl/timezones.yml +311 -309
- data/resources/locales/gl/units.yml +470 -10
- data/resources/locales/gu/currencies.yml +1 -0
- data/resources/locales/gu/languages.yml +39 -3
- data/resources/locales/gu/lists.yml +3 -3
- data/resources/locales/gu/numbers.yml +115 -0
- data/resources/locales/gu/territories.yml +1 -1
- data/resources/locales/gu/timezones.yml +4 -0
- data/resources/locales/gu/units.yml +447 -11
- data/resources/locales/he/calendars.yml +2 -2
- data/resources/locales/he/currencies.yml +29 -20
- data/resources/locales/he/fields.yml +9 -0
- data/resources/locales/he/languages.yml +35 -3
- data/resources/locales/he/lists.yml +6 -6
- data/resources/locales/he/numbers.yml +117 -2
- data/resources/locales/he/plural_rules.yml +2 -3
- data/resources/locales/he/plurals.yml +2 -4
- data/resources/locales/he/rbnf.yml +12 -0
- data/resources/locales/he/territories.yml +2 -2
- data/resources/locales/he/timezones.yml +9 -5
- data/resources/locales/he/units.yml +664 -33
- data/resources/locales/hi/calendars.yml +2 -2
- data/resources/locales/hi/currencies.yml +1 -0
- data/resources/locales/hi/fields.yml +20 -0
- data/resources/locales/hi/languages.yml +39 -3
- data/resources/locales/hi/lists.yml +6 -6
- data/resources/locales/hi/numbers.yml +725 -44
- data/resources/locales/hi/territories.yml +4 -4
- data/resources/locales/hi/timezones.yml +4 -0
- data/resources/locales/hi/units.yml +423 -89
- data/resources/locales/hr/calendars.yml +7 -7
- data/resources/locales/hr/currencies.yml +1 -1
- data/resources/locales/hr/languages.yml +33 -0
- data/resources/locales/hr/lists.yml +8 -8
- data/resources/locales/hr/numbers.yml +114 -0
- data/resources/locales/hr/territories.yml +2 -2
- data/resources/locales/hr/timezones.yml +5 -3
- data/resources/locales/hr/units.yml +311 -69
- data/resources/locales/hu/calendars.yml +7 -7
- data/resources/locales/hu/currencies.yml +21 -7
- data/resources/locales/hu/fields.yml +24 -12
- data/resources/locales/hu/languages.yml +33 -0
- data/resources/locales/hu/lists.yml +6 -6
- data/resources/locales/hu/numbers.yml +136 -11
- data/resources/locales/hu/timezones.yml +2 -0
- data/resources/locales/hu/units.yml +631 -210
- data/resources/locales/hy/calendars.yml +1 -1
- data/resources/locales/hy/fields.yml +16 -0
- data/resources/locales/hy/languages.yml +46 -5
- data/resources/locales/hy/lists.yml +4 -4
- data/resources/locales/hy/numbers.yml +114 -0
- data/resources/locales/hy/timezones.yml +4 -0
- data/resources/locales/hy/units.yml +517 -123
- data/resources/locales/id/calendars.yml +12 -12
- data/resources/locales/id/currencies.yml +1 -0
- data/resources/locales/id/fields.yml +19 -0
- data/resources/locales/id/languages.yml +36 -2
- data/resources/locales/id/lists.yml +4 -4
- data/resources/locales/id/numbers.yml +114 -0
- data/resources/locales/id/timezones.yml +2 -0
- data/resources/locales/id/units.yml +302 -4
- data/resources/locales/is/calendars.yml +7 -7
- data/resources/locales/is/currencies.yml +15 -10
- data/resources/locales/is/fields.yml +17 -3
- data/resources/locales/is/languages.yml +36 -1
- data/resources/locales/is/lists.yml +4 -4
- data/resources/locales/is/numbers.yml +114 -0
- data/resources/locales/is/plural_rules.yml +2 -2
- data/resources/locales/is/plurals.yml +2 -2
- data/resources/locales/is/timezones.yml +9 -4
- data/resources/locales/is/units.yml +462 -135
- data/resources/locales/it/calendars.yml +9 -9
- data/resources/locales/it/currencies.yml +6 -6
- data/resources/locales/it/languages.yml +33 -2
- data/resources/locales/it/lists.yml +6 -6
- data/resources/locales/it/numbers.yml +114 -0
- data/resources/locales/it/rbnf.yml +566 -0
- data/resources/locales/it/territories.yml +5 -5
- data/resources/locales/it/timezones.yml +10 -5
- data/resources/locales/it/units.yml +94 -27
- data/resources/locales/it-CH/calendars.yml +11 -11
- data/resources/locales/it-CH/currencies.yml +6 -6
- data/resources/locales/it-CH/languages.yml +33 -2
- data/resources/locales/it-CH/lists.yml +6 -6
- data/resources/locales/it-CH/numbers.yml +114 -0
- data/resources/locales/it-CH/territories.yml +5 -5
- data/resources/locales/it-CH/timezones.yml +10 -5
- data/resources/locales/it-CH/units.yml +94 -27
- data/resources/locales/ja/currencies.yml +3 -3
- data/resources/locales/ja/languages.yml +32 -0
- data/resources/locales/ja/lists.yml +12 -12
- data/resources/locales/ja/numbers.yml +159 -0
- data/resources/locales/ja/timezones.yml +5 -1
- data/resources/locales/ja/units.yml +28 -8
- data/resources/locales/ka/languages.yml +40 -1
- data/resources/locales/ka/lists.yml +6 -6
- data/resources/locales/ka/numbers.yml +114 -0
- data/resources/locales/ka/timezones.yml +4 -0
- data/resources/locales/ka/units.yml +61 -10
- data/resources/locales/kk/calendars.yml +25 -25
- data/resources/locales/kk/currencies.yml +12 -12
- data/resources/locales/kk/fields.yml +37 -1
- data/resources/locales/kk/languages.yml +51 -14
- data/resources/locales/kk/lists.yml +5 -5
- data/resources/locales/kk/numbers.yml +114 -0
- data/resources/locales/kk/rbnf.yml +307 -0
- data/resources/locales/kk/territories.yml +4 -4
- data/resources/locales/kk/timezones.yml +27 -23
- data/resources/locales/kk/units.yml +465 -57
- data/resources/locales/km/currencies.yml +1 -0
- data/resources/locales/km/languages.yml +46 -0
- data/resources/locales/km/lists.yml +5 -5
- data/resources/locales/km/numbers.yml +114 -0
- data/resources/locales/km/timezones.yml +4 -0
- data/resources/locales/km/units.yml +306 -4
- data/resources/locales/kn/calendars.yml +5 -5
- data/resources/locales/kn/currencies.yml +2 -1
- data/resources/locales/kn/languages.yml +36 -1
- data/resources/locales/kn/lists.yml +4 -4
- data/resources/locales/kn/numbers.yml +719 -44
- data/resources/locales/kn/territories.yml +2 -2
- data/resources/locales/kn/timezones.yml +4 -0
- data/resources/locales/kn/units.yml +261 -164
- data/resources/locales/ko/calendars.yml +2 -2
- data/resources/locales/ko/currencies.yml +60 -58
- data/resources/locales/ko/fields.yml +48 -0
- data/resources/locales/ko/languages.yml +33 -0
- data/resources/locales/ko/lists.yml +6 -6
- data/resources/locales/ko/numbers.yml +114 -0
- data/resources/locales/ko/territories.yml +2 -2
- data/resources/locales/ko/timezones.yml +4 -0
- data/resources/locales/ko/units.yml +230 -6
- data/resources/locales/lo/calendars.yml +5 -4
- data/resources/locales/lo/currencies.yml +1 -0
- data/resources/locales/lo/fields.yml +50 -0
- data/resources/locales/lo/languages.yml +37 -3
- data/resources/locales/lo/lists.yml +5 -5
- data/resources/locales/lo/numbers.yml +114 -0
- data/resources/locales/lo/timezones.yml +4 -0
- data/resources/locales/lo/units.yml +320 -4
- data/resources/locales/lt/calendars.yml +10 -10
- data/resources/locales/lt/languages.yml +33 -1
- data/resources/locales/lt/lists.yml +6 -6
- data/resources/locales/lt/numbers.yml +114 -0
- data/resources/locales/lt/timezones.yml +2 -0
- data/resources/locales/lt/units.yml +907 -222
- data/resources/locales/lv/calendars.yml +8 -8
- data/resources/locales/lv/currencies.yml +2 -0
- data/resources/locales/lv/fields.yml +8 -0
- data/resources/locales/lv/languages.yml +36 -0
- data/resources/locales/lv/lists.yml +6 -6
- data/resources/locales/lv/numbers.yml +114 -0
- data/resources/locales/lv/timezones.yml +4 -0
- data/resources/locales/lv/units.yml +688 -124
- data/resources/locales/mk/calendars.yml +50 -50
- data/resources/locales/mk/fields.yml +2 -2
- data/resources/locales/mk/languages.yml +32 -0
- data/resources/locales/mk/lists.yml +5 -5
- data/resources/locales/mk/numbers.yml +114 -0
- data/resources/locales/mk/territories.yml +2 -2
- data/resources/locales/mk/timezones.yml +48 -44
- data/resources/locales/mk/units.yml +459 -6
- data/resources/locales/mr/calendars.yml +2 -8
- data/resources/locales/mr/currencies.yml +3 -2
- data/resources/locales/mr/day_periods.yml +2 -16
- data/resources/locales/mr/fields.yml +8 -0
- data/resources/locales/mr/languages.yml +35 -0
- data/resources/locales/mr/lists.yml +5 -5
- data/resources/locales/mr/numbers.yml +115 -0
- data/resources/locales/mr/territories.yml +2 -2
- data/resources/locales/mr/timezones.yml +4 -0
- data/resources/locales/mr/units.yml +478 -119
- data/resources/locales/ms/calendars.yml +13 -13
- data/resources/locales/ms/currencies.yml +8 -2
- data/resources/locales/ms/fields.yml +4 -0
- data/resources/locales/ms/languages.yml +39 -2
- data/resources/locales/ms/lists.yml +4 -4
- data/resources/locales/ms/numbers.yml +126 -6
- data/resources/locales/ms/territories.yml +2 -2
- data/resources/locales/ms/timezones.yml +2 -0
- data/resources/locales/ms/units.yml +148 -6
- data/resources/locales/mt/calendars.yml +10 -10
- data/resources/locales/mt/currencies.yml +2 -0
- data/resources/locales/mt/fields.yml +196 -102
- data/resources/locales/mt/numbers.yml +115 -0
- data/resources/locales/mt/plural_rules.yml +2 -1
- data/resources/locales/mt/plurals.yml +4 -3
- data/resources/locales/mt/timezones.yml +2 -0
- data/resources/locales/mt/units.yml +27 -8
- data/resources/locales/my/calendars.yml +23 -23
- data/resources/locales/my/fields.yml +32 -0
- data/resources/locales/my/languages.yml +45 -4
- data/resources/locales/my/lists.yml +6 -6
- data/resources/locales/my/numbers.yml +151 -36
- data/resources/locales/my/timezones.yml +36 -32
- data/resources/locales/my/units.yml +304 -14
- data/resources/locales/nb/calendars.yml +10 -10
- data/resources/locales/nb/languages.yml +33 -2
- data/resources/locales/nb/lists.yml +6 -6
- data/resources/locales/nb/numbers.yml +114 -0
- data/resources/locales/nb/timezones.yml +5 -1
- data/resources/locales/nb/units.yml +532 -231
- data/resources/locales/nl/calendars.yml +22 -22
- data/resources/locales/nl/currencies.yml +15 -6
- data/resources/locales/nl/fields.yml +7 -7
- data/resources/locales/nl/languages.yml +33 -0
- data/resources/locales/nl/lists.yml +6 -6
- data/resources/locales/nl/numbers.yml +195 -6
- data/resources/locales/nl/rbnf.yml +1 -1
- data/resources/locales/nl/timezones.yml +2 -0
- data/resources/locales/nl/units.yml +163 -15
- data/resources/locales/nl-BE/calendars.yml +22 -22
- data/resources/locales/nl-BE/currencies.yml +15 -6
- data/resources/locales/nl-BE/fields.yml +7 -7
- data/resources/locales/nl-BE/languages.yml +33 -0
- data/resources/locales/nl-BE/lists.yml +6 -6
- data/resources/locales/nl-BE/numbers.yml +195 -6
- data/resources/locales/nl-BE/timezones.yml +2 -0
- data/resources/locales/nl-BE/units.yml +163 -15
- data/resources/locales/pl/calendars.yml +7 -7
- data/resources/locales/pl/fields.yml +3 -0
- data/resources/locales/pl/languages.yml +32 -0
- data/resources/locales/pl/lists.yml +4 -4
- data/resources/locales/pl/numbers.yml +114 -0
- data/resources/locales/pl/timezones.yml +2 -0
- data/resources/locales/pl/units.yml +1420 -309
- data/resources/locales/pt/calendars.yml +13 -13
- data/resources/locales/pt/fields.yml +6 -0
- data/resources/locales/pt/languages.yml +35 -1
- data/resources/locales/pt/lists.yml +4 -4
- data/resources/locales/pt/numbers.yml +114 -0
- data/resources/locales/pt/rbnf.yml +1 -1
- data/resources/locales/pt/timezones.yml +2 -0
- data/resources/locales/pt/units.yml +599 -15
- data/resources/locales/pt-PT/calendars.yml +10 -10
- data/resources/locales/pt-PT/languages.yml +37 -3
- data/resources/locales/pt-PT/lists.yml +4 -4
- data/resources/locales/pt-PT/numbers.yml +114 -0
- data/resources/locales/pt-PT/plural_rules.yml +2 -2
- data/resources/locales/pt-PT/plurals.yml +3 -3
- data/resources/locales/pt-PT/territories.yml +1 -1
- data/resources/locales/pt-PT/timezones.yml +2 -0
- data/resources/locales/pt-PT/units.yml +420 -7
- data/resources/locales/ro/calendars.yml +10 -10
- data/resources/locales/ro/currencies.yml +22 -22
- data/resources/locales/ro/languages.yml +33 -0
- data/resources/locales/ro/lists.yml +4 -4
- data/resources/locales/ro/numbers.yml +114 -0
- data/resources/locales/ro/plural_rules.yml +1 -1
- data/resources/locales/ro/plurals.yml +3 -3
- data/resources/locales/ro/timezones.yml +2 -0
- data/resources/locales/ro/units.yml +580 -124
- data/resources/locales/ru/calendars.yml +23 -23
- data/resources/locales/ru/languages.yml +34 -1
- data/resources/locales/ru/lists.yml +4 -4
- data/resources/locales/ru/numbers.yml +114 -0
- data/resources/locales/ru/rbnf.yml +240 -12
- data/resources/locales/ru/territories.yml +7 -7
- data/resources/locales/ru/timezones.yml +4 -0
- data/resources/locales/ru/units.yml +858 -251
- data/resources/locales/sk/calendars.yml +9 -9
- data/resources/locales/sk/currencies.yml +7 -7
- data/resources/locales/sk/fields.yml +8 -0
- data/resources/locales/sk/languages.yml +34 -0
- data/resources/locales/sk/lists.yml +6 -6
- data/resources/locales/sk/numbers.yml +114 -0
- data/resources/locales/sk/timezones.yml +2 -0
- data/resources/locales/sk/units.yml +812 -330
- data/resources/locales/sl/calendars.yml +9 -9
- data/resources/locales/sl/languages.yml +36 -0
- data/resources/locales/sl/lists.yml +6 -6
- data/resources/locales/sl/numbers.yml +114 -0
- data/resources/locales/sl/timezones.yml +4 -2
- data/resources/locales/sl/units.yml +967 -243
- data/resources/locales/sq/calendars.yml +11 -11
- data/resources/locales/sq/currencies.yml +1 -1
- data/resources/locales/sq/fields.yml +20 -0
- data/resources/locales/sq/languages.yml +41 -0
- data/resources/locales/sq/lists.yml +6 -6
- data/resources/locales/sq/numbers.yml +114 -0
- data/resources/locales/sq/timezones.yml +4 -0
- data/resources/locales/sq/units.yml +461 -6
- data/resources/locales/sr/calendars.yml +16 -16
- data/resources/locales/sr/fields.yml +6 -0
- data/resources/locales/sr/languages.yml +37 -0
- data/resources/locales/sr/lists.yml +6 -6
- data/resources/locales/sr/numbers.yml +114 -0
- data/resources/locales/sr/timezones.yml +4 -0
- data/resources/locales/sr/units.yml +676 -68
- data/resources/locales/sr-Cyrl-ME/calendars.yml +18 -18
- data/resources/locales/sr-Cyrl-ME/fields.yml +6 -0
- data/resources/locales/sr-Cyrl-ME/languages.yml +37 -0
- data/resources/locales/sr-Cyrl-ME/lists.yml +6 -6
- data/resources/locales/sr-Cyrl-ME/numbers.yml +114 -0
- data/resources/locales/sr-Cyrl-ME/timezones.yml +4 -0
- data/resources/locales/sr-Cyrl-ME/units.yml +676 -68
- data/resources/locales/sr-Latn-ME/calendars.yml +18 -18
- data/resources/locales/sr-Latn-ME/currencies.yml +1197 -1197
- data/resources/locales/sr-Latn-ME/fields.yml +432 -426
- data/resources/locales/sr-Latn-ME/languages.yml +531 -494
- data/resources/locales/sr-Latn-ME/lists.yml +6 -6
- data/resources/locales/sr-Latn-ME/numbers.yml +114 -0
- data/resources/locales/sr-Latn-ME/timezones.yml +4 -0
- data/resources/locales/sr-Latn-ME/units.yml +677 -69
- data/resources/locales/sv/calendars.yml +11 -11
- data/resources/locales/sv/currencies.yml +9 -7
- data/resources/locales/sv/fields.yml +5 -1
- data/resources/locales/sv/languages.yml +32 -0
- data/resources/locales/sv/lists.yml +4 -4
- data/resources/locales/sv/numbers.yml +122 -3
- data/resources/locales/sv/territories.yml +1 -1
- data/resources/locales/sv/timezones.yml +2 -0
- data/resources/locales/sv/units.yml +724 -328
- data/resources/locales/sw/calendars.yml +11 -11
- data/resources/locales/sw/fields.yml +24 -0
- data/resources/locales/sw/languages.yml +41 -0
- data/resources/locales/sw/lists.yml +2 -2
- data/resources/locales/sw/numbers.yml +114 -0
- data/resources/locales/sw/timezones.yml +2 -0
- data/resources/locales/sw/units.yml +423 -17
- data/resources/locales/ta/calendars.yml +1 -1
- data/resources/locales/ta/languages.yml +38 -2
- data/resources/locales/ta/lists.yml +4 -4
- data/resources/locales/ta/numbers.yml +117 -2
- data/resources/locales/ta/territories.yml +2 -2
- data/resources/locales/ta/timezones.yml +4 -0
- data/resources/locales/ta/units.yml +173 -148
- data/resources/locales/th/calendars.yml +9 -9
- data/resources/locales/th/currencies.yml +1 -0
- data/resources/locales/th/fields.yml +1 -0
- data/resources/locales/th/languages.yml +50 -19
- data/resources/locales/th/lists.yml +6 -6
- data/resources/locales/th/numbers.yml +114 -0
- data/resources/locales/th/timezones.yml +5 -1
- data/resources/locales/th/units.yml +25 -7
- data/resources/locales/tr/calendars.yml +9 -9
- data/resources/locales/tr/fields.yml +8 -0
- data/resources/locales/tr/languages.yml +36 -5
- data/resources/locales/tr/lists.yml +4 -4
- data/resources/locales/tr/numbers.yml +214 -20
- data/resources/locales/tr/timezones.yml +2 -0
- data/resources/locales/tr/units.yml +191 -13
- data/resources/locales/uk/calendars.yml +22 -21
- data/resources/locales/uk/fields.yml +18 -18
- data/resources/locales/uk/languages.yml +42 -11
- data/resources/locales/uk/lists.yml +8 -8
- data/resources/locales/uk/numbers.yml +114 -0
- data/resources/locales/uk/rbnf.yml +12 -0
- data/resources/locales/uk/territories.yml +1 -1
- data/resources/locales/uk/timezones.yml +9 -5
- data/resources/locales/uk/units.yml +742 -359
- data/resources/locales/ur/calendars.yml +4 -4
- data/resources/locales/ur/languages.yml +42 -0
- data/resources/locales/ur/lists.yml +10 -10
- data/resources/locales/ur/numbers.yml +115 -1
- data/resources/locales/ur/territories.yml +1 -1
- data/resources/locales/ur/timezones.yml +5 -1
- data/resources/locales/ur/units.yml +397 -10
- data/resources/locales/vi/calendars.yml +12 -12
- data/resources/locales/vi/currencies.yml +2 -0
- data/resources/locales/vi/fields.yml +3 -0
- data/resources/locales/vi/languages.yml +34 -0
- data/resources/locales/vi/lists.yml +4 -4
- data/resources/locales/vi/numbers.yml +114 -0
- data/resources/locales/vi/timezones.yml +2 -0
- data/resources/locales/vi/units.yml +348 -10
- data/resources/locales/xh/calendars.yml +101 -101
- data/resources/locales/xh/currencies.yml +664 -82
- data/resources/locales/xh/fields.yml +107 -0
- data/resources/locales/xh/languages.yml +38 -2
- data/resources/locales/xh/numbers.yml +114 -0
- data/resources/locales/xh/territories.yml +264 -2
- data/resources/locales/xh/timezones.yml +1393 -6
- data/resources/locales/xh/units.yml +4 -2
- data/resources/locales/zh/currencies.yml +37 -10
- data/resources/locales/zh/languages.yml +38 -3
- data/resources/locales/zh/lists.yml +12 -12
- data/resources/locales/zh/numbers.yml +117 -0
- data/resources/locales/zh/timezones.yml +7 -3
- data/resources/locales/zh/units.yml +227 -57
- data/resources/locales/zh-Hant/currencies.yml +27 -9
- data/resources/locales/zh-Hant/languages.yml +47 -1
- data/resources/locales/zh-Hant/lists.yml +12 -12
- data/resources/locales/zh-Hant/numbers.yml +115 -0
- data/resources/locales/zh-Hant/timezones.yml +4 -0
- data/resources/locales/zh-Hant/units.yml +44 -8
- data/resources/locales/zu/calendars.yml +7 -7
- data/resources/locales/zu/currencies.yml +1 -0
- data/resources/locales/zu/fields.yml +53 -0
- data/resources/locales/zu/languages.yml +39 -0
- data/resources/locales/zu/numbers.yml +148 -10
- data/resources/locales/zu/timezones.yml +2 -0
- data/resources/locales/zu/units.yml +647 -6
- data/resources/shared/aliases.yml +4 -0
- data/resources/shared/bcp47_timezone_metadata.yml +5 -1
- data/resources/shared/currency_digits_and_rounding.yml +3 -0
- data/resources/shared/hyphenation/ca.yml +1 -1
- data/resources/shared/hyphenation/de-AT.yml +1 -1
- data/resources/shared/hyphenation/de-CH.yml +1 -1
- data/resources/shared/hyphenation/de-DE.yml +1 -1
- data/resources/shared/hyphenation/fr.yml +1 -1
- data/resources/shared/hyphenation/hr-HR.yml +1 -1
- data/resources/shared/hyphenation/mn-MN.yml +1 -1
- data/resources/shared/hyphenation/sl-SI.yml +1 -1
- data/resources/shared/likely_subtags.yml +6180 -11
- data/resources/shared/metazones.yml +29 -20
- data/resources/shared/numbering_systems.yml +6 -0
- data/resources/shared/parent_locales.yml +13 -5
- data/resources/shared/postal_codes.yml +160 -125
- data/resources/shared/rbnf_root.yml +6 -0
- data/resources/shared/segments/dictionaries/cjdict.dump +0 -0
- data/resources/shared/segments/dictionaries/laodict.dump +0 -0
- data/resources/shared/segments/dictionaries/thaidict.dump +0 -0
- data/resources/shared/segments/rules/el/sentence.yml +719 -711
- data/resources/shared/segments/rules/en-US-POSIX/word.yml +535 -527
- data/resources/shared/segments/rules/fi/word.yml +591 -0
- data/resources/shared/segments/rules/ja/line.yml +509 -500
- data/resources/shared/segments/rules/ja/word.yml +535 -527
- data/resources/shared/segments/rules/root/grapheme.yml +376 -370
- data/resources/shared/segments/rules/root/line.yml +509 -500
- data/resources/shared/segments/rules/root/sentence.yml +719 -711
- data/resources/shared/segments/rules/root/word.yml +535 -527
- data/resources/shared/segments/rules/sv/word.yml +591 -0
- data/resources/shared/segments/rules/zh/line.yml +509 -500
- data/resources/shared/segments/rules/zh-Hant/line.yml +509 -500
- data/resources/shared/segments/tests/icu_grapheme_break_test_results.yml +1717 -0
- data/resources/shared/segments/tests/icu_line_break_test_results.yml +20284 -0
- data/resources/shared/segments/tests/icu_sentence_break_test_results.yml +1134 -0
- data/resources/shared/segments/tests/icu_word_break_test_results.yml +6275 -0
- data/resources/shared/territories_containment.yml +1 -0
- data/resources/shared/timezone_regions.yml +15 -6
- data/resources/shared/transforms/Arabic-Latin.yml +42 -0
- data/resources/shared/transforms/Cyrillic-Latin.yml +23 -4
- data/resources/shared/transforms/Devanagari-InterIndic.yml +1 -0
- data/resources/shared/transforms/Devanagari-Latin.yml +1 -1
- data/resources/shared/transforms/Greek-Latin.yml +2 -1
- data/resources/shared/transforms/Han-Latin.yml +9 -9
- data/resources/shared/transforms/Han-Spacedhan.yml +18 -1
- data/resources/shared/transforms/Hebrew-Latin.yml +5 -2
- data/resources/shared/transforms/InterIndic-Latin.yml +4 -1
- data/resources/shared/transforms/Japn-Latn.yml +4132 -0
- data/resources/shared/transforms/Khmer-Latin.yml +211 -0
- data/resources/shared/transforms/Lao-Latin.yml +90 -0
- data/resources/shared/transforms/Latin-Armenian.yml +4 -0
- data/resources/shared/transforms/Latin-Ethiopic.yml +3 -3
- data/resources/shared/transforms/Malayalam-InterIndic.yml +5 -0
- data/resources/shared/transforms/Malayalam-Latin.yml +1 -1
- data/resources/shared/transforms/Myanmar-Latin.yml +1 -0
- data/resources/shared/transforms/Oriya-Latin.yml +1 -1
- data/resources/shared/transforms/Simplified-Traditional.yml +20 -4
- data/resources/shared/transforms/Sinhala-Latin.yml +100 -0
- data/resources/shared/transforms/am-Ethi-t-am-brai.yml +413 -0
- data/resources/shared/transforms/am-Ethi-t-am-ethi-m0-geminate.yml +6900 -0
- data/resources/shared/transforms/am-Ethi-t-d0-morse.yml +428 -0
- data/resources/shared/transforms/byn-Ethi-t-byn-latn-m0-tekie-alibekit.yml +468 -0
- data/resources/shared/transforms/byn-Ethi-t-byn-latn-m0-xaleget.yml +398 -0
- data/resources/shared/transforms/gz-Ethi-t-und-sarb.yml +85 -0
- data/resources/shared/transforms/my-t-my-d0-zawgyi.yml +40 -36
- data/resources/shared/transforms/my-t-my-s0-zawgyi.yml +2 -2
- data/resources/shared/transforms/sgw-Ethi-t-und-ethi.yml +105 -0
- data/resources/shared/transforms/transform_id_map.yml +827 -757
- data/resources/shared/transforms/und-Ethi-t-und-cyrl-m0-gutgarts.yml +497 -0
- data/resources/shared/transforms/und-Ethi-t-und-latn-m0-aethiopi-geminate.yml +13 -0
- data/resources/shared/transforms/und-Ethi-t-und-latn-m0-aethiopi.yml +515 -0
- data/resources/shared/transforms/und-Ethi-t-und-latn-m0-alaloc-geminate.yml +13 -0
- data/resources/shared/transforms/und-Ethi-t-und-latn-m0-alaloc.yml +466 -0
- data/resources/shared/transforms/und-Ethi-t-und-latn-m0-beta_metsehaf-geminate.yml +13 -0
- data/resources/shared/transforms/und-Ethi-t-und-latn-m0-beta_metsehaf.yml +515 -0
- data/resources/shared/transforms/und-Ethi-t-und-latn-m0-es3842.yml +536 -0
- data/resources/shared/transforms/und-Ethi-t-und-latn-m0-ies-jes-1964-geminate.yml +13 -0
- data/resources/shared/transforms/und-Ethi-t-und-latn-m0-ies-jes-1964.yml +515 -0
- data/resources/shared/transforms/und-Ethi-t-und-latn-m0-lambdin.yml +487 -0
- data/resources/shared/transforms/und-Ethi-t-und-latn-m0-sera.yml +575 -0
- data/resources/shared/transforms/und-Ethi-t-und-latn.yml +12 -0
- data/resources/shared/validity_data.yml +42 -10
- data/resources/unicode_data/blocks/alchemical_symbols.yml +128 -0
- data/resources/unicode_data/blocks/arabic_extended_c.yml +49 -0
- data/resources/unicode_data/blocks/cjk_unified_ideographs_extension_c.yml +2 -2
- data/resources/unicode_data/blocks/cjk_unified_ideographs_extension_h.yml +33 -0
- data/resources/unicode_data/blocks/cyrillic_extended_d.yml +1009 -0
- data/resources/unicode_data/blocks/devanagari_extended_a.yml +161 -0
- data/resources/unicode_data/blocks/egyptian_hieroglyph_format_controls.yml +464 -0
- data/resources/unicode_data/blocks/egyptian_hieroglyphs.yml +16 -0
- data/resources/unicode_data/blocks/geometric_shapes_extended.yml +16 -0
- data/resources/unicode_data/blocks/kaktovik_numerals.yml +321 -0
- data/resources/unicode_data/blocks/kannada.yml +16 -0
- data/resources/unicode_data/blocks/kawi.yml +1377 -0
- data/resources/unicode_data/blocks/khojki.yml +48 -0
- data/resources/unicode_data/blocks/lao.yml +16 -0
- data/resources/unicode_data/blocks/latin_extended_g.yml +96 -0
- data/resources/unicode_data/blocks/nag_mundari.yml +673 -0
- data/resources/unicode_data/blocks/small_kana_extension.yml +32 -0
- data/resources/unicode_data/blocks/symbols_and_pictographs_extended_a.yml +304 -0
- data/resources/unicode_data/blocks/transport_and_map_symbols.yml +16 -0
- data/resources/unicode_data/blocks.yml +29 -1
- data/resources/unicode_data/properties/Age/15.0/value.dump +0 -0
- data/resources/unicode_data/properties/Alphabetic/value.dump +0 -0
- data/resources/unicode_data/properties/Bidi_Class/L/value.dump +0 -0
- data/resources/unicode_data/properties/Bidi_Class/NSM/value.dump +0 -0
- data/resources/unicode_data/properties/Bidi_Class/ON/value.dump +0 -0
- data/resources/unicode_data/properties/Bidi_Mirrored/N/value.dump +0 -0
- data/resources/unicode_data/properties/Block/Arabic Extended-C/value.dump +3 -0
- data/resources/unicode_data/properties/Block/CJK Unified Ideographs Extension H/value.dump +3 -0
- data/resources/unicode_data/properties/Block/Cyrillic Extended-D/value.dump +3 -0
- data/resources/unicode_data/properties/Block/Devanagari Extended-A/value.dump +0 -0
- data/resources/unicode_data/properties/Block/Egyptian Hieroglyph Format Controls/value.dump +1 -1
- data/resources/unicode_data/properties/Block/Kaktovik Numerals/value.dump +3 -0
- data/resources/unicode_data/properties/Block/Kawi/value.dump +0 -0
- data/resources/unicode_data/properties/Block/Nag Mundari/value.dump +3 -0
- data/resources/unicode_data/properties/Canonical_Combining_Class/0/value.dump +0 -0
- data/resources/unicode_data/properties/Canonical_Combining_Class/220/value.dump +5 -3
- data/resources/unicode_data/properties/Canonical_Combining_Class/230/value.dump +0 -0
- data/resources/unicode_data/properties/Canonical_Combining_Class/232/value.dump +3 -3
- data/resources/unicode_data/properties/Canonical_Combining_Class/9/value.dump +3 -2
- data/resources/unicode_data/properties/Case_Ignorable/value.dump +0 -0
- data/resources/unicode_data/properties/Cased/value.dump +0 -0
- data/resources/unicode_data/properties/Diacritic/value.dump +0 -0
- data/resources/unicode_data/properties/East_Asian_Width/N/value.dump +0 -0
- data/resources/unicode_data/properties/East_Asian_Width/W/value.dump +0 -0
- data/resources/unicode_data/properties/Emoji/value.dump +0 -0
- data/resources/unicode_data/properties/Emoji_Modifier_Base/value.dump +1 -1
- data/resources/unicode_data/properties/Emoji_Presentation/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/C/f/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/L/l/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/L/m/value.dump +5 -3
- data/resources/unicode_data/properties/General_Category/L/o/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/M/c/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/M/n/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/N/d/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/N/o/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/P/o/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/S/o/value.dump +0 -0
- data/resources/unicode_data/properties/Grapheme_Base/value.dump +0 -0
- data/resources/unicode_data/properties/Grapheme_Cluster_Break/Control/value.dump +0 -0
- data/resources/unicode_data/properties/Grapheme_Cluster_Break/Extend/value.dump +0 -0
- data/resources/unicode_data/properties/Grapheme_Cluster_Break/Prepend/value.dump +0 -0
- data/resources/unicode_data/properties/Grapheme_Cluster_Break/SpacingMark/value.dump +0 -0
- data/resources/unicode_data/properties/Grapheme_Extend/value.dump +0 -0
- data/resources/unicode_data/properties/Grapheme_Link/value.dump +3 -2
- data/resources/unicode_data/properties/ID_Continue/value.dump +0 -0
- data/resources/unicode_data/properties/ID_Start/value.dump +0 -0
- data/resources/unicode_data/properties/Ideographic/value.dump +0 -0
- data/resources/unicode_data/properties/Indic_Positional_Category/Bottom/value.dump +5 -3
- data/resources/unicode_data/properties/Indic_Positional_Category/Left/value.dump +3 -2
- data/resources/unicode_data/properties/Indic_Positional_Category/Right/value.dump +0 -0
- data/resources/unicode_data/properties/Indic_Positional_Category/Top/value.dump +0 -0
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Bindu/value.dump +0 -0
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Cantillation_Mark/value.dump +4 -1
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Consonant/value.dump +0 -0
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Consonant_Preceding_Repha/value.dump +3 -2
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Gemination_Mark/value.dump +4 -1
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Invisible_Stacker/value.dump +3 -2
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Number/value.dump +0 -0
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Pure_Killer/value.dump +3 -2
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Syllable_Modifier/value.dump +3 -2
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Visarga/value.dump +3 -2
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Vowel_Dependent/value.dump +6 -3
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Vowel_Independent/value.dump +0 -0
- data/resources/unicode_data/properties/Line_Break/AL/value.dump +0 -0
- data/resources/unicode_data/properties/Line_Break/BA/value.dump +0 -0
- data/resources/unicode_data/properties/Line_Break/BB/value.dump +0 -0
- data/resources/unicode_data/properties/Line_Break/CJ/value.dump +5 -3
- data/resources/unicode_data/properties/Line_Break/CL/value.dump +4 -2
- data/resources/unicode_data/properties/Line_Break/CM/value.dump +0 -0
- data/resources/unicode_data/properties/Line_Break/EB/value.dump +1 -1
- data/resources/unicode_data/properties/Line_Break/GL/value.dump +6 -3
- data/resources/unicode_data/properties/Line_Break/ID/value.dump +0 -0
- data/resources/unicode_data/properties/Line_Break/NU/value.dump +0 -0
- data/resources/unicode_data/properties/Line_Break/OP/value.dump +4 -2
- data/resources/unicode_data/properties/Line_Break/PO/value.dump +3 -2
- data/resources/unicode_data/properties/Line_Break/SA/value.dump +0 -0
- data/resources/unicode_data/properties/Lowercase/value.dump +0 -0
- data/resources/unicode_data/properties/Numeric_Type/0/value.dump +0 -0
- data/resources/unicode_data/properties/Numeric_Type/1/value.dump +5 -3
- data/resources/unicode_data/properties/Numeric_Type/2/value.dump +5 -3
- data/resources/unicode_data/properties/Numeric_Type/3/value.dump +5 -3
- data/resources/unicode_data/properties/Numeric_Type/4/value.dump +5 -3
- data/resources/unicode_data/properties/Numeric_Type/5/value.dump +5 -3
- data/resources/unicode_data/properties/Numeric_Type/6/value.dump +5 -3
- data/resources/unicode_data/properties/Numeric_Type/7/value.dump +5 -3
- data/resources/unicode_data/properties/Numeric_Type/8/value.dump +5 -3
- data/resources/unicode_data/properties/Numeric_Type/9/value.dump +5 -3
- data/resources/unicode_data/properties/Numeric_Type/value.dump +0 -0
- data/resources/unicode_data/properties/Other_Alphabetic/value.dump +0 -0
- data/resources/unicode_data/properties/Other_Lowercase/value.dump +9 -5
- data/resources/unicode_data/properties/Script/Arabic/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Common/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Cyrillic/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Devanagari/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Egyptian_Hieroglyphs/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Han/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Hiragana/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Kannada/value.dump +1 -1
- data/resources/unicode_data/properties/Script/Katakana/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Kawi/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Khojki/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Lao/value.dump +1 -1
- data/resources/unicode_data/properties/Script/Latin/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Nag_Mundari/value.dump +3 -0
- data/resources/unicode_data/properties/Sentence_Break/Extend/value.dump +0 -0
- data/resources/unicode_data/properties/Sentence_Break/Format/value.dump +0 -0
- data/resources/unicode_data/properties/Sentence_Break/Lower/value.dump +0 -0
- data/resources/unicode_data/properties/Sentence_Break/Numeric/value.dump +0 -0
- data/resources/unicode_data/properties/Sentence_Break/OLetter/value.dump +0 -0
- data/resources/unicode_data/properties/Sentence_Break/STerm/value.dump +0 -0
- data/resources/unicode_data/properties/Sentence_Terminal/value.dump +0 -0
- data/resources/unicode_data/properties/Soft_Dotted/value.dump +4 -2
- data/resources/unicode_data/properties/Terminal_Punctuation/value.dump +0 -0
- data/resources/unicode_data/properties/Unified_Ideograph/value.dump +0 -0
- data/resources/unicode_data/properties/Word_Break/ALetter/value.dump +0 -0
- data/resources/unicode_data/properties/Word_Break/Extend/value.dump +0 -0
- data/resources/unicode_data/properties/Word_Break/Format/value.dump +0 -0
- data/resources/unicode_data/properties/Word_Break/Katakana/value.dump +0 -0
- data/resources/unicode_data/properties/Word_Break/Numeric/value.dump +0 -0
- data/resources/unicode_data/properties/XID_Continue/value.dump +0 -0
- data/resources/unicode_data/properties/XID_Start/value.dump +0 -0
- data/resources/unicode_data/property_value_aliases.yml +21 -1
- data/spec/formatters/numbers/rbnf/locales/ar/rbnf_test.yml +626 -626
- data/spec/formatters/numbers/rbnf/locales/bg/rbnf_test.yml +1619 -215
- data/spec/formatters/numbers/rbnf/locales/el/rbnf_test.yml +116 -116
- data/spec/formatters/numbers/rbnf/locales/es/rbnf_test.yml +234 -0
- data/spec/formatters/numbers/rbnf/locales/he/rbnf_test.yml +116 -116
- data/spec/formatters/numbers/rbnf/locales/it/rbnf_test.yml +234 -0
- data/spec/formatters/numbers/rbnf/locales/kk/rbnf_test.yml +706 -0
- data/spec/formatters/numbers/rbnf/locales/ru/rbnf_test.yml +2899 -115
- data/spec/formatters/numbers/rbnf/locales/uk/rbnf_test.yml +116 -116
- data/spec/localized/localized_datetime_spec.rb +1 -1
- data/spec/parsers/symbol_table_spec.rb +1 -3
- data/spec/parsers/unicode_regex/character_set_spec.rb +1 -1
- data/spec/segmentation/rule_set_spec.rb +50 -54
- data/spec/shared/calendar_spec.rb +2 -2
- data/spec/shared/currencies_spec.rb +1 -1
- data/spec/shared/numbers_spec.rb +1 -1
- data/spec/shared/unit_spec.rb +10 -10
- data/spec/spec_helper.rb +0 -2
- data/spec/timezones/tests/af.yml +73 -10
- data/spec/timezones/tests/ar.yml +73 -10
- data/spec/timezones/tests/az.yml +73 -10
- data/spec/timezones/tests/be.yml +73 -10
- data/spec/timezones/tests/bg.yml +79 -16
- data/spec/timezones/tests/bn.yml +128 -69
- data/spec/timezones/tests/bo.yml +85 -22
- data/spec/timezones/tests/bs.yml +73 -10
- data/spec/timezones/tests/ca.yml +85 -22
- data/spec/timezones/tests/cs.yml +2059 -1996
- data/spec/timezones/tests/cy.yml +73 -10
- data/spec/timezones/tests/da.yml +76 -13
- data/spec/timezones/tests/de-AT.yml +1226 -1163
- data/spec/timezones/tests/de-CH.yml +1226 -1163
- data/spec/timezones/tests/de.yml +1226 -1163
- data/spec/timezones/tests/el.yml +74 -11
- data/spec/timezones/tests/en-001.yml +105 -42
- data/spec/timezones/tests/en-150.yml +105 -42
- data/spec/timezones/tests/en-AU.yml +99 -36
- data/spec/timezones/tests/en-CA.yml +152 -89
- data/spec/timezones/tests/en-GB.yml +87 -24
- data/spec/timezones/tests/en-IE.yml +105 -42
- data/spec/timezones/tests/en-IN.yml +109 -46
- data/spec/timezones/tests/en-NZ.yml +105 -42
- data/spec/timezones/tests/en-SG.yml +105 -42
- data/spec/timezones/tests/en-US.yml +90 -27
- data/spec/timezones/tests/en-ZA.yml +105 -42
- data/spec/timezones/tests/en.yml +90 -27
- data/spec/timezones/tests/eo.yml +85 -22
- data/spec/timezones/tests/es-419.yml +73 -10
- data/spec/timezones/tests/es-AR.yml +73 -10
- data/spec/timezones/tests/es-CO.yml +73 -10
- data/spec/timezones/tests/es-MX.yml +73 -10
- data/spec/timezones/tests/es-US.yml +74 -11
- data/spec/timezones/tests/es.yml +77 -14
- data/spec/timezones/tests/et.yml +73 -10
- data/spec/timezones/tests/eu.yml +74 -11
- data/spec/timezones/tests/fa.yml +73 -10
- data/spec/timezones/tests/fi.yml +73 -10
- data/spec/timezones/tests/fil.yml +266 -203
- data/spec/timezones/tests/fr-BE.yml +94 -31
- data/spec/timezones/tests/fr-CA.yml +74 -11
- data/spec/timezones/tests/fr-CH.yml +94 -31
- data/spec/timezones/tests/fr.yml +94 -31
- data/spec/timezones/tests/ga.yml +73 -10
- data/spec/timezones/tests/gl.yml +2198 -2135
- data/spec/timezones/tests/gu.yml +82 -19
- data/spec/timezones/tests/he.yml +91 -28
- data/spec/timezones/tests/hi.yml +88 -25
- data/spec/timezones/tests/hr.yml +95 -32
- data/spec/timezones/tests/hu.yml +73 -10
- data/spec/timezones/tests/hy.yml +73 -10
- data/spec/timezones/tests/id.yml +74 -11
- data/spec/timezones/tests/is.yml +76 -13
- data/spec/timezones/tests/it-CH.yml +89 -26
- data/spec/timezones/tests/it.yml +89 -26
- data/spec/timezones/tests/ja.yml +74 -11
- data/spec/timezones/tests/ka.yml +73 -10
- data/spec/timezones/tests/kk.yml +161 -98
- data/spec/timezones/tests/km.yml +73 -10
- data/spec/timezones/tests/kn.yml +77 -14
- data/spec/timezones/tests/ko.yml +84 -21
- data/spec/timezones/tests/lo.yml +73 -10
- data/spec/timezones/tests/lt.yml +73 -10
- data/spec/timezones/tests/lv.yml +73 -10
- data/spec/timezones/tests/mk.yml +134 -71
- data/spec/timezones/tests/mr.yml +84 -21
- data/spec/timezones/tests/ms.yml +84 -21
- data/spec/timezones/tests/mt.yml +72 -9
- data/spec/timezones/tests/my.yml +300 -237
- data/spec/timezones/tests/nb.yml +75 -12
- data/spec/timezones/tests/nl-BE.yml +74 -11
- data/spec/timezones/tests/nl.yml +74 -11
- data/spec/timezones/tests/pl.yml +73 -10
- data/spec/timezones/tests/pt-PT.yml +75 -12
- data/spec/timezones/tests/pt.yml +73 -10
- data/spec/timezones/tests/ro.yml +73 -10
- data/spec/timezones/tests/ru.yml +87 -24
- data/spec/timezones/tests/sk.yml +73 -10
- data/spec/timezones/tests/sl.yml +76 -13
- data/spec/timezones/tests/sq.yml +73 -10
- data/spec/timezones/tests/sr-Cyrl-ME.yml +2263 -2200
- data/spec/timezones/tests/sr-Latn-ME.yml +73 -10
- data/spec/timezones/tests/sr.yml +73 -10
- data/spec/timezones/tests/sv.yml +75 -12
- data/spec/timezones/tests/sw.yml +73 -10
- data/spec/timezones/tests/ta.yml +84 -21
- data/spec/timezones/tests/th.yml +76 -13
- data/spec/timezones/tests/tr.yml +73 -10
- data/spec/timezones/tests/uk.yml +80 -17
- data/spec/timezones/tests/ur.yml +88 -25
- data/spec/timezones/tests/vi.yml +74 -11
- data/spec/timezones/tests/xh.yml +2297 -2234
- data/spec/timezones/tests/zh-Hant.yml +74 -11
- data/spec/timezones/tests/zh.yml +82 -19
- data/spec/timezones/tests/zu.yml +73 -10
- data/spec/timezones/timezone_spec.rb +3 -0
- data/spec/transforms/test_data.yml +568 -562
- data/twitter_cldr.gemspec +24 -12
- metadata +74 -18
- data/lib/twitter_cldr/segmentation/line_iterator.rb +0 -23
@@ -184,7 +184,7 @@ module TwitterCldr
|
|
184
184
|
def default_format(type)
|
185
185
|
if node = calendar.xpath("#{type}Formats/default").first
|
186
186
|
key = node.attribute('choice').value.to_sym
|
187
|
-
{ :
|
187
|
+
{ default: :"calendars.gregorian.formats.#{type.downcase}.#{key}" }
|
188
188
|
end
|
189
189
|
end
|
190
190
|
|
@@ -32,15 +32,16 @@ module TwitterCldr
|
|
32
32
|
parents = TwitterCldr::Shared::Locale
|
33
33
|
.parse(cur)
|
34
34
|
.permutations
|
35
|
-
.select do |loc|
|
36
|
-
File.exist?(File.join(cldr_requirement.common_path, 'main', "#{loc}.xml"))
|
37
|
-
end
|
38
35
|
|
39
36
|
ancestry.concat(parents - [cur])
|
40
37
|
break
|
41
38
|
end
|
42
39
|
end
|
43
40
|
|
41
|
+
ancestry.select! do |locale|
|
42
|
+
File.exist?(File.join(cldr_requirement.common_path, 'main', "#{from_fs(locale)}.xml"))
|
43
|
+
end
|
44
|
+
|
44
45
|
ancestry << "root"
|
45
46
|
ancestry.freeze
|
46
47
|
end
|
@@ -32,12 +32,16 @@ module TwitterCldr
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def symbol_data
|
35
|
+
# ughh all of this is gross
|
35
36
|
doc = Nokogiri::HTML(URI.open(URL).read)
|
36
|
-
rows = doc.css('.
|
37
|
+
rows = doc.css('.Container__FluidWrapper-sc-1skoo0z-0 ul li')
|
37
38
|
|
38
|
-
rows
|
39
|
-
|
40
|
-
|
39
|
+
rows.each_with_object({}) do |row, ret|
|
40
|
+
columns = row.css('div')
|
41
|
+
next if columns[1].text == 'Country and Currency' # skip header
|
42
|
+
|
43
|
+
code = columns[3].text
|
44
|
+
symbol = columns[4].text
|
41
45
|
ret[code] = { code_points: symbol.codepoints, symbol: symbol }
|
42
46
|
end
|
43
47
|
end
|
@@ -10,6 +10,36 @@ require 'parallel'
|
|
10
10
|
require 'etc'
|
11
11
|
require 'set'
|
12
12
|
|
13
|
+
# @TODO: remove these patches after migrating away from ruby-cldr
|
14
|
+
class ::File
|
15
|
+
class << self
|
16
|
+
# the exists? method was inexplicably removed in Ruby 3.0
|
17
|
+
alias exists? exist?
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
module CldrExportPatch
|
22
|
+
attr_accessor :cldr_requirement
|
23
|
+
|
24
|
+
def locales(locale, component, options)
|
25
|
+
cldr_locales[locale] ||= TwitterCldr::Resources::CldrLocale.new(locale, cldr_requirement)
|
26
|
+
ancestors = cldr_locales[locale].ancestors.map(&:to_sym)
|
27
|
+
|
28
|
+
if !should_merge_root?(locale, component, options)
|
29
|
+
ancestors.delete(:root)
|
30
|
+
end
|
31
|
+
|
32
|
+
ancestors
|
33
|
+
end
|
34
|
+
|
35
|
+
def cldr_locales
|
36
|
+
@cldr_locales ||= {}
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
Cldr::Export.singleton_class.prepend(CldrExportPatch)
|
41
|
+
|
42
|
+
|
13
43
|
module TwitterCldr
|
14
44
|
module Resources
|
15
45
|
|
@@ -61,6 +91,8 @@ module TwitterCldr
|
|
61
91
|
STDOUT.write "\rImported #{locale}, #{locales.size} of #{params[:locales].size} total"
|
62
92
|
end
|
63
93
|
|
94
|
+
Cldr::Export.cldr_requirement = requirements[:cldr]
|
95
|
+
|
64
96
|
Parallel.each(params[:locales], in_processes: Etc.nprocessors, finish: finish) do |locale|
|
65
97
|
export_args = {
|
66
98
|
locales: [locale],
|
@@ -101,7 +133,7 @@ module TwitterCldr
|
|
101
133
|
|
102
134
|
def deep_symbolize(path)
|
103
135
|
return unless File.extname(path) == '.yml'
|
104
|
-
data = YAML.load(File.read(path))
|
136
|
+
data = YAML.respond_to?(:unsafe_load) ? YAML.unsafe_load(File.read(path)) : YAML.load(File.read(path))
|
105
137
|
|
106
138
|
File.open(path, 'w:utf-8') do |output|
|
107
139
|
output.write(
|
@@ -166,8 +166,11 @@ module TwitterCldr
|
|
166
166
|
|
167
167
|
def patterns_from(format_node)
|
168
168
|
format_node.xpath('pattern').each_with_object({}) do |pattern_node, pattern_result|
|
169
|
-
|
169
|
+
# CLDR v42 added a few new alt patterns, alphaNextToNumber and noCurrency.
|
170
|
+
# See: https://cldr.unicode.org/index/downloads/cldr-42#h.ocxunccgtf28
|
171
|
+
next if pattern_node.attribute('alt')
|
170
172
|
|
173
|
+
pattern_key_node = pattern_node.attribute('type')
|
171
174
|
pattern_count_node = pattern_node.attribute('count')
|
172
175
|
|
173
176
|
unless cldr_req.draft?(pattern_node)
|
@@ -101,7 +101,7 @@ module TwitterCldr
|
|
101
101
|
|
102
102
|
def encode_rbbi_data(data)
|
103
103
|
{
|
104
|
-
metadata: metadata_from(data
|
104
|
+
metadata: metadata_from(data),
|
105
105
|
forward_table: StateTable.new(data.fFTable.fTable.to_a, data.fFTable.fFlags).dump16,
|
106
106
|
backward_table: StateTable.new(data.fRTable.fTable.to_a, data.fRTable.fFlags).dump16,
|
107
107
|
status_table: StatusTable.new(data.fStatusTable.to_a).dump,
|
@@ -109,8 +109,11 @@ module TwitterCldr
|
|
109
109
|
}
|
110
110
|
end
|
111
111
|
|
112
|
-
def metadata_from(
|
113
|
-
{
|
112
|
+
def metadata_from(data)
|
113
|
+
{
|
114
|
+
category_count: data.fHeader.fCatCount,
|
115
|
+
lookahead_results_size: data.fFTable.fLookAheadResultsSize
|
116
|
+
}
|
114
117
|
end
|
115
118
|
|
116
119
|
def encode_suppressions(suppressions)
|
@@ -90,18 +90,25 @@ module TwitterCldr
|
|
90
90
|
private
|
91
91
|
|
92
92
|
def import_conformance_files
|
93
|
-
CONFORMANCE_FILES.each do |
|
94
|
-
|
93
|
+
CONFORMANCE_FILES.each do |conformance_file|
|
94
|
+
test_lines = parse_conformance_file(conformance_file)
|
95
|
+
persist_conformance_data(conformance_file, test_lines)
|
96
|
+
|
97
|
+
results = run_conformance_tests_with_icu(conformance_file, test_lines)
|
98
|
+
persist_icu_conformance_test_results(conformance_file, results)
|
95
99
|
end
|
96
100
|
end
|
97
101
|
|
98
|
-
def
|
102
|
+
def parse_conformance_file(conformance_file)
|
99
103
|
source_file = conformance_source_path_for(conformance_file)
|
100
104
|
FileUtils.mkdir_p(File.dirname(source_file))
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
+
UnicodeFileParser.parse_standard_file(source_file).map(&:first)
|
106
|
+
end
|
107
|
+
|
108
|
+
def persist_conformance_data(conformance_file, test_lines)
|
109
|
+
output_path = conformance_output_path_for(conformance_file)
|
110
|
+
FileUtils.mkdir_p(File.dirname(output_path))
|
111
|
+
File.write(output_path, YAML.dump(test_lines))
|
105
112
|
end
|
106
113
|
|
107
114
|
def import_dictionary_break_tests
|
@@ -117,18 +124,105 @@ module TwitterCldr
|
|
117
124
|
dump_dictionary_break_test('combined', data)
|
118
125
|
end
|
119
126
|
|
120
|
-
def
|
127
|
+
def run_conformance_tests_with_icu(conformance_file, test_lines)
|
128
|
+
boundary_type = case File.basename(conformance_file)
|
129
|
+
when 'WordBreakTest.txt'
|
130
|
+
:word
|
131
|
+
when 'SentenceBreakTest.txt'
|
132
|
+
:sentence
|
133
|
+
when 'GraphemeBreakTest.txt'
|
134
|
+
:grapheme
|
135
|
+
when 'LineBreakTest.txt'
|
136
|
+
:line
|
137
|
+
end
|
138
|
+
|
139
|
+
test_lines.map do |test_line|
|
140
|
+
test_codepoints = test_line
|
141
|
+
.split(/[÷×]/)
|
142
|
+
.map(&:strip)
|
143
|
+
.reject(&:empty?)
|
144
|
+
.map { |cp| cp.to_i(16) }
|
145
|
+
|
146
|
+
utf_16_pos = 0
|
147
|
+
|
148
|
+
# Java strings are encoded using UTF-16, meaning some of the more exotic characters are
|
149
|
+
# represented by two characters that together make a "surrogate pair." Unfortunately, such
|
150
|
+
# pairs are not treated as a single logical character, but as two individual ones.
|
151
|
+
# TwitterCLDR uses UTF-8 everywhere, so we have to come up with a way of translating ICU's
|
152
|
+
# UTF-16 boundary positions into UTF-8 ones. Or perhaps more correctly, we have to come up
|
153
|
+
# with a way of translating positions inside strings that use surrogate pairs to strings
|
154
|
+
# that do not.
|
155
|
+
logical_position_map = test_codepoints.each_with_object({}).with_index do |(cp, memo), idx|
|
156
|
+
memo[utf_16_pos] = idx
|
157
|
+
|
158
|
+
# Encode into UTF-8, convert to UTF-16, count bytes. Subtract 2 for BOM. Number of utf-16
|
159
|
+
# chars is remaining bytes / 2, since there are 2 bytes per 16-bit character.
|
160
|
+
utf_16_pos += ([cp].pack('U*').encode(Encoding::UTF_16).bytesize - 2) / 2
|
161
|
+
end
|
162
|
+
|
163
|
+
logical_position_map[utf_16_pos] = logical_position_map.size
|
164
|
+
test_str = test_codepoints.pack('U*')
|
165
|
+
|
166
|
+
boundaries = collect_boundaries(test_str, boundary_type).map do |boundary|
|
167
|
+
logical_position_map[boundary]
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
def persist_icu_conformance_test_results(conformance_file, results)
|
173
|
+
output_path = icu_test_results_output_path_for(conformance_file)
|
174
|
+
FileUtils.mkdir_p(File.dirname(output_path))
|
175
|
+
File.write(output_path, YAML.dump(results))
|
176
|
+
end
|
177
|
+
|
178
|
+
def collect_boundaries(text_sample, boundary_type, locale = nil)
|
121
179
|
done = break_iterator.const_get(:DONE)
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
segments << text_sample[start...stop]
|
129
|
-
start = stop
|
180
|
+
brk_iter = get_break_iterator_instance_for(boundary_type, locale)
|
181
|
+
brk_iter.set_text(text_sample)
|
182
|
+
boundaries = [brk_iter.current]
|
183
|
+
|
184
|
+
until (current = brk_iter.next) == done do
|
185
|
+
boundaries << current
|
130
186
|
end
|
131
187
|
|
188
|
+
boundaries
|
189
|
+
end
|
190
|
+
|
191
|
+
def boundary_split(text_sample, boundaries)
|
192
|
+
eos = text_sample.size
|
193
|
+
|
194
|
+
boundaries = [*boundaries]
|
195
|
+
boundaries.unshift(0) unless boundaries.first == 0
|
196
|
+
boundaries.push(eos) unless boundaries.last == eos
|
197
|
+
|
198
|
+
boundaries.each_cons(2).filter_map do |start, stop|
|
199
|
+
text_sample[start...stop] if start != stop
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
def get_break_iterator_instance_for(boundary_type, locale = nil)
|
204
|
+
mtd = case boundary_type
|
205
|
+
when :word
|
206
|
+
:get_word_instance
|
207
|
+
when :sentence
|
208
|
+
:get_sentence_instance
|
209
|
+
when :grapheme
|
210
|
+
:get_character_instance
|
211
|
+
when :line
|
212
|
+
:get_line_instance
|
213
|
+
end
|
214
|
+
|
215
|
+
if locale
|
216
|
+
break_iterator.send(mtd, ulocale_class.new(locale))
|
217
|
+
else
|
218
|
+
break_iterator.send(mtd)
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
222
|
+
def create_dictionary_break_test(locale, text_sample)
|
223
|
+
boundaries = collect_boundaries(text_sample, :word, locale)
|
224
|
+
segments = boundary_split(text_sample, boundaries)
|
225
|
+
|
132
226
|
{
|
133
227
|
locale: locale,
|
134
228
|
text: text_sample,
|
@@ -151,6 +245,14 @@ module TwitterCldr
|
|
151
245
|
File.join(params.fetch(:output_path), "#{file}.yml")
|
152
246
|
end
|
153
247
|
|
248
|
+
def icu_test_results_output_path_for(conformance_file)
|
249
|
+
output_path = conformance_output_path_for(conformance_file)
|
250
|
+
dir_name = File.dirname(output_path)
|
251
|
+
base_name = File.basename(output_path)
|
252
|
+
|
253
|
+
File.join(dir_name, "icu_#{base_name.chomp('.yml')}_results.yml")
|
254
|
+
end
|
255
|
+
|
154
256
|
def dictionary_test_output_path_for(locale)
|
155
257
|
File.join(params.fetch(:output_path), 'dictionary_tests', "#{locale}.yml")
|
156
258
|
end
|
@@ -24,12 +24,12 @@ module TwitterCldr
|
|
24
24
|
LAST_BYTE_MASK = 0xFF
|
25
25
|
|
26
26
|
LOCALES_MAP = {
|
27
|
-
|
28
|
-
:
|
29
|
-
:
|
30
|
-
:
|
31
|
-
:
|
32
|
-
:
|
27
|
+
'zh-Hant': :'zh_Hant',
|
28
|
+
id: :root,
|
29
|
+
it: :root,
|
30
|
+
ms: :root,
|
31
|
+
nl: :root,
|
32
|
+
pt: :root
|
33
33
|
}
|
34
34
|
|
35
35
|
EMPTY_TAILORING_DATA = {
|
@@ -58,14 +58,6 @@ module TwitterCldr
|
|
58
58
|
private
|
59
59
|
|
60
60
|
def check_tzdata_versions
|
61
|
-
puts(
|
62
|
-
"Time zone data version check disabled. If you're upgrading to a new "\
|
63
|
-
"version of CLDR and ICU, please consider re-enabling this check in "\
|
64
|
-
"#{__FILE__} on line #{__LINE__ - 4}"
|
65
|
-
)
|
66
|
-
|
67
|
-
return
|
68
|
-
|
69
61
|
resource_bundle = requirements[:icu].get_class('com.ibm.icu.util.UResourceBundle')
|
70
62
|
icu_data = requirements[:icu].get_class('com.ibm.icu.impl.ICUData')
|
71
63
|
zone_info_res_field = requirements[:icu]
|
@@ -107,11 +107,6 @@ module TwitterCldr
|
|
107
107
|
samples.each_with_object({}) do |sample, ret|
|
108
108
|
ret[sample] = trans.transliterate(sample)
|
109
109
|
end
|
110
|
-
rescue Java::JavaLang::IllegalArgumentException
|
111
|
-
# illegal transform id
|
112
|
-
# this happens specifically with Serbian-Latin, although
|
113
|
-
# that appears to be a totally valid transform id
|
114
|
-
nil
|
115
110
|
end
|
116
111
|
|
117
112
|
def have_text_samples_for?(script)
|
@@ -11,6 +11,24 @@ module TwitterCldr
|
|
11
11
|
|
12
12
|
class TransformsImporter < Importer
|
13
13
|
|
14
|
+
IGNORED_TRANSFORMS = [
|
15
|
+
# This transform appears to be broken. Two of its rules that deal with separator
|
16
|
+
# characters don't make sense to me:
|
17
|
+
#
|
18
|
+
# "[:Separator:]* > ' ';"
|
19
|
+
# "$space = [:Separator:]*;"
|
20
|
+
#
|
21
|
+
# Why would zero characters be replaced with a space? And why would zero characters
|
22
|
+
# be considered a separator?
|
23
|
+
#
|
24
|
+
# More importantly, the algorithm in this library works with every other transform,
|
25
|
+
# provisional and otherwise, except this one. Something's amiss with these rules.
|
26
|
+
# ICU probably works because they, once again, fixed the rules but neglected to
|
27
|
+
# upstream them into CLDR.
|
28
|
+
#
|
29
|
+
{ source: 'ug', target: 'Latin' }
|
30
|
+
]
|
31
|
+
|
14
32
|
requirement :cldr, Versions.cldr_version
|
15
33
|
output_path 'shared/transforms'
|
16
34
|
ruby_engine :mri
|
@@ -23,7 +41,14 @@ module TwitterCldr
|
|
23
41
|
FileUtils.mkdir_p(output_path)
|
24
42
|
|
25
43
|
each_transform_file do |transform_file|
|
26
|
-
transform_data =
|
44
|
+
transform_data =
|
45
|
+
parse_transform_data(File.read(transform_file))
|
46
|
+
.reject do |transform_datum|
|
47
|
+
ignored_transform?(transform_datum)
|
48
|
+
end
|
49
|
+
|
50
|
+
next if transform_data.empty?
|
51
|
+
|
27
52
|
output_file = File.join(output_path, "#{File.basename(transform_file).chomp('.xml')}.yml")
|
28
53
|
transform_id_map.merge!(map_aliases(transform_data, output_file))
|
29
54
|
write_transform_data(transform_data, output_file)
|
@@ -32,6 +57,13 @@ module TwitterCldr
|
|
32
57
|
write_transform_id_map(transform_id_map)
|
33
58
|
end
|
34
59
|
|
60
|
+
def ignored_transform?(transform_data)
|
61
|
+
IGNORED_TRANSFORMS.any? do |ignored_transform|
|
62
|
+
ignored_transform[:source] == transform_data[:source] &&
|
63
|
+
ignored_transform[:target] == transform_data[:target]
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
35
67
|
def map_aliases(transform_data, path)
|
36
68
|
filename = File.basename(path).chomp('.yml')
|
37
69
|
|
@@ -6,6 +6,19 @@
|
|
6
6
|
module TwitterCldr
|
7
7
|
module Segmentation
|
8
8
|
class BreakIterator
|
9
|
+
class << self
|
10
|
+
def iterator_for(boundary_type, locale = nil, options = {})
|
11
|
+
rule_set = RuleSet.create(locale, boundary_type, options)
|
12
|
+
|
13
|
+
case boundary_type
|
14
|
+
when 'word'
|
15
|
+
WordIterator.new(rule_set)
|
16
|
+
else
|
17
|
+
SegmentIterator.new(rule_set)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
9
22
|
attr_reader :locale, :options
|
10
23
|
|
11
24
|
def initialize(locale = TwitterCldr.locale, options = {})
|
@@ -36,22 +49,7 @@ module TwitterCldr
|
|
36
49
|
private
|
37
50
|
|
38
51
|
def iterator_for(boundary_type)
|
39
|
-
|
40
|
-
rule_set = RuleSet.create(locale, boundary_type, options)
|
41
|
-
|
42
|
-
case boundary_type
|
43
|
-
when 'line'
|
44
|
-
LineIterator.new(rule_set)
|
45
|
-
when 'word'
|
46
|
-
WordIterator.new(rule_set)
|
47
|
-
else
|
48
|
-
SegmentIterator.new(rule_set)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
def iterator_cache
|
54
|
-
@iterator_cache ||= {}
|
52
|
+
self.class.iterator_for(boundary_type, locale, options)
|
55
53
|
end
|
56
54
|
end
|
57
55
|
end
|
@@ -16,6 +16,7 @@ module TwitterCldr
|
|
16
16
|
NEXT_STATES = 3
|
17
17
|
ACCEPTING = 0
|
18
18
|
ACCEPTING_UNCONDITIONAL = 1
|
19
|
+
LOOKAHEAD = 1
|
19
20
|
|
20
21
|
class << self
|
21
22
|
def instance(boundary_type, locale)
|
@@ -66,6 +67,7 @@ module TwitterCldr
|
|
66
67
|
@rtable = rtable
|
67
68
|
@status_table = status_table
|
68
69
|
@category_table = category_table
|
70
|
+
@lookahead_matches = Array.new(metadata.lookahead_results_size, 0)
|
69
71
|
end
|
70
72
|
|
71
73
|
def handle_next(cursor)
|
@@ -94,10 +96,20 @@ module TwitterCldr
|
|
94
96
|
|
95
97
|
state = ftable[row + NEXT_STATES + category]
|
96
98
|
row = state * (metadata.category_count + NEXT_STATES)
|
99
|
+
accepting = ftable[row + ACCEPTING]
|
97
100
|
|
98
|
-
if
|
101
|
+
if accepting == ACCEPTING_UNCONDITIONAL
|
99
102
|
# match found
|
100
103
|
result = cursor.position
|
104
|
+
elsif accepting > ACCEPTING_UNCONDITIONAL
|
105
|
+
if (lookahead_result = @lookahead_matches[accepting]) >= 0
|
106
|
+
cursor.position = lookahead_result
|
107
|
+
return lookahead_result
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
if (rule = ftable[row + LOOKAHEAD]) != 0
|
112
|
+
@lookahead_matches[rule] = cursor.position
|
101
113
|
end
|
102
114
|
end
|
103
115
|
|
@@ -59,6 +59,11 @@ module TwitterCldr
|
|
59
59
|
PropertySet.new(lookup_code_point(code_point))
|
60
60
|
end
|
61
61
|
|
62
|
+
# List of property names
|
63
|
+
# @return [Array<String>] Array of property names string
|
64
|
+
# @example
|
65
|
+
# TwitterCldr::Shared::CodePoint.properties.property_names
|
66
|
+
# # => ["ASCII_Hex_Digit", "Age", "Alphabetic", … ]
|
62
67
|
def property_names
|
63
68
|
glob = File.join(root_path, '*')
|
64
69
|
@property_names ||= Dir.glob(glob).map do |path|
|
@@ -66,6 +71,13 @@ module TwitterCldr
|
|
66
71
|
end
|
67
72
|
end
|
68
73
|
|
74
|
+
# Return possible values for a given property
|
75
|
+
# @param property_name [String] Property name
|
76
|
+
# @return [Array<String>|nil] List of values Values
|
77
|
+
# @example
|
78
|
+
# TwitterCldr::Shared::CodePoint.properties.property_values_for('Script')
|
79
|
+
# # => ["Adlam", "Ahom", "Anatolian_Hieroglyphs", … ]
|
80
|
+
# TwitterCldr::Shared::CodePoint.properties.property_values_for('Alphabetic') # => nil
|
69
81
|
def property_values_for(property_name)
|
70
82
|
if property_values.include?(property_name)
|
71
83
|
return property_values[property_name]
|
@@ -7,6 +7,7 @@ require 'forwardable'
|
|
7
7
|
|
8
8
|
module TwitterCldr
|
9
9
|
module Shared
|
10
|
+
# @note Properties are mostly accessed through the {TwitterCldr::Shared::CodePoint} class. {TwitterCldr::Shared::PropertySet} is used internally.
|
10
11
|
class PropertySet
|
11
12
|
include TwitterCldr::Shared::Properties
|
12
13
|
extend SingleForwardable
|
@@ -19,10 +20,20 @@ module TwitterCldr
|
|
19
20
|
@properties_hash = properties_hash
|
20
21
|
end
|
21
22
|
|
23
|
+
# @example
|
24
|
+
# properties = TwitterCldr::Shared::CodePoint.get(12367).properties
|
25
|
+
# properties.age # => #<Set: {"1.1"}>
|
22
26
|
def age
|
23
27
|
properties_hash.fetch('Age', ['Unassigned'])
|
24
28
|
end
|
25
29
|
|
30
|
+
# @example
|
31
|
+
# # ZERO WIDTH JOINER
|
32
|
+
# properties = TwitterCldr::Shared::CodePoint.get(0x200D).properties
|
33
|
+
# properties.joining_type # => #<Set: {"Join_Causing"}>
|
34
|
+
# # SPACE
|
35
|
+
# properties = TwitterCldr::Shared::CodePoint.get(32).properties
|
36
|
+
# properties.joining_type # => ["Non_Joining", "Non_Joining"]
|
26
37
|
def joining_type
|
27
38
|
properties_hash['Joining_Type'] ||= if general_category.empty?
|
28
39
|
[ArabicShaping.joining_type_for_general_category('xx')]
|
@@ -39,6 +50,9 @@ module TwitterCldr
|
|
39
50
|
]
|
40
51
|
end
|
41
52
|
|
53
|
+
# @example
|
54
|
+
# properties = TwitterCldr::Shared::CodePoint.get(0x200D).properties
|
55
|
+
# properties.block # => #<Set: {"General Punctuation"}>
|
42
56
|
def block
|
43
57
|
properties_hash['Block'] ||= ['No_Block']
|
44
58
|
end
|
@@ -106,23 +106,31 @@ module TwitterCldr
|
|
106
106
|
# is that regular negated character classes don't match the ends of
|
107
107
|
# strings. CLDR's transform rules expect the after context to match
|
108
108
|
# the end of a string, since, in a sense, "nothing" is always part
|
109
|
-
# of a negated character class. "I want to match on
|
110
|
-
# these specific characters" should also include
|
111
|
-
# Accordingly, this function adds "\z" to the ends of
|
112
|
-
# character classes. Hopefully this works for all cases.
|
109
|
+
# of a negated character class. In other words, "I want to match on
|
110
|
+
# anything but these specific characters" should also include _no_
|
111
|
+
# characters. Accordingly, this function adds "\z" to the ends of
|
112
|
+
# negated character classes. Hopefully this works for all cases.
|
113
113
|
def compile_regexp(regexp_str)
|
114
114
|
TwitterCldr::Shared::UnicodeRegex.compile(regexp_str).tap do |re|
|
115
|
-
re.elements.
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
115
|
+
re.elements.replace(
|
116
|
+
re.elements.flat_map do |element|
|
117
|
+
new_elem = case element.type
|
118
|
+
when :character_class
|
119
|
+
if element.negated?
|
120
|
+
repl = TwitterCldr::Shared::UnicodeRegex.compile(
|
121
|
+
"(?:#{element.to_regexp_str[3..-2]}|\\z)"
|
122
|
+
)
|
123
|
+
|
124
|
+
repl.elements
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
new_elem || element
|
122
129
|
end
|
123
|
-
|
130
|
+
)
|
124
131
|
end
|
125
132
|
end
|
133
|
+
|
126
134
|
end
|
127
135
|
|
128
136
|
end
|
data/lib/twitter_cldr/version.rb
CHANGED