]> git.ipfire.org Git - thirdparty/babel.git/commitdiff
Use CLDR 46 (#1145)
authorTomas R. <tomas.roun8@gmail.com>
Fri, 15 Nov 2024 12:23:05 +0000 (13:23 +0100)
committerGitHub <noreply@github.com>
Fri, 15 Nov 2024 12:23:05 +0000 (14:23 +0200)
* Use CLDR 46

* Update checksum

* Add tests for units

* Add a test for alt='official'

* Fix formatting

scripts/download_import_cldr.py
tests/test_core.py
tests/test_date_intervals.py
tests/test_numbers.py
tests/test_units.py [new file with mode: 0644]

index cf670ed98c47e12de7dc8d7109a641bd85d5ea42..9fb0ab58035cd75d41eeb4917656b35e5b5c98e9 100755 (executable)
@@ -9,10 +9,10 @@ import sys
 import zipfile
 from urllib.request import urlretrieve
 
-URL = 'https://unicode.org/Public/cldr/45/cldr-common-45.0.zip'
-FILENAME = 'cldr-common-45.0.zip'
+URL = 'https://unicode.org/Public/cldr/46/cldr-common-46.0.zip'
+FILENAME = 'cldr-common-46.0.zip'
 # Via https://unicode.org/Public/cldr/45/hashes/SHASUM512.txt
-FILESUM = '638123882bd29911fc9492ec152926572fec48eb6c1f5dd706aee3e59cad8be4963a334bb7a09a645dbedc3356f60ef7ac2ef7ab4ccf2c8926b547782175603c'
+FILESUM = '316d644b79a4976d4da57d59ca57c689b339908fe61bb49110bfe1a9269c94144cb27322a0ea080398e6dc4c54a16752fd1ca837e14c054b3a6806b1ef9d3ec3'
 BLKSIZE = 131072
 
 
index 57f1a89c64ee752c38fb8c4ca24a57371f6186f3..21debf6c9e0a08a07f80bda7f56034ec31435230 100644 (file)
@@ -362,3 +362,16 @@ def test_issue_1112():
         Locale.parse('de_DE').territories['TR'] ==
         'Türkei'
     )
+
+
+def test_language_alt_official_not_used():
+    # If there exists an official and customary language name, the customary
+    # name should be used.
+    #
+    # For example, here 'Muscogee' should be used instead of 'Mvskoke':
+    # <language type="mus">Muscogee</language>
+    # <language type="mus" alt="official">Mvskoke</language>
+
+    locale = Locale('mus')
+    assert locale.get_display_name() == 'Mvskoke'
+    assert locale.get_display_name(Locale('en')) == 'Muscogee'
index 55992b59511a428a8e6b6684386dc400d86e1a19..c0532c9d2f67e38015d746e53c3d4008f2ccfa0a 100644 (file)
@@ -9,7 +9,7 @@ TEST_DATE = TEST_DT.date()
 
 
 def test_format_interval_same_instant_1():
-    assert dates.format_interval(TEST_DT, TEST_DT, "yMMMd", fuzzy=False, locale="fi") == "8. tammik. 2016"
+    assert dates.format_interval(TEST_DT, TEST_DT, "yMMMd", fuzzy=False, locale="fi") == "8.1.2016"
 
 
 def test_format_interval_same_instant_2():
index 5e6ee01bb0c1c322a50b1ad226ffaab34e942e0a..106b83edf1df1cd931b7444db353cb6763bc2671 100644 (file)
@@ -188,7 +188,8 @@ class NumberParsingTestCase(unittest.TestCase):
     def test_can_parse_decimals(self):
         assert decimal.Decimal('1099.98') == numbers.parse_decimal('1,099.98', locale='en_US')
         assert decimal.Decimal('1099.98') == numbers.parse_decimal('1.099,98', locale='de')
-        assert decimal.Decimal('1099.98') == numbers.parse_decimal('1٬099٫98', locale='ar', numbering_system="default")
+        assert decimal.Decimal('1099.98') == numbers.parse_decimal('1,099.98', locale='ar', numbering_system="default")
+        assert decimal.Decimal('1099.98') == numbers.parse_decimal('1٬099٫98', locale='ar_EG', numbering_system="default")
         with pytest.raises(numbers.NumberFormatError):
             numbers.parse_decimal('2,109,998', locale='de')
         with pytest.raises(numbers.UnsupportedNumberingSystemError):
@@ -249,7 +250,7 @@ def test_list_currencies():
 
     assert list_currencies(locale='pa_Arab') == {'PKR', 'INR', 'EUR'}
 
-    assert len(list_currencies()) == 306
+    assert len(list_currencies()) == 307
 
 
 def test_validate_currency():
@@ -300,7 +301,7 @@ def test_get_currency_precision():
 
 def test_get_currency_unit_pattern():
     assert get_currency_unit_pattern('USD', locale='en_US') == '{0} {1}'
-    assert get_currency_unit_pattern('USD', locale='es_GT') == '{1} {0}'
+    assert get_currency_unit_pattern('USD', locale='sw') == '{1} {0}'
 
     # 'ro' locale various pattern according to count
     assert get_currency_unit_pattern('USD', locale='ro', count=1) == '{0} {1}'
@@ -598,7 +599,7 @@ def test_format_currency_long_display_name():
             == '1.00 dola ya Marekani')
     # This tests unicode chars:
     assert (numbers.format_currency(1099.98, 'USD', locale='es_GT', format_type='name')
-            == 'dólares estadounidenses 1,099.98')
+            == '1,099.98 dólares estadounidenses')
     # Test for completely unknown currency, should fallback to currency code
     assert (numbers.format_currency(1099.98, 'XAB', locale='en_US', format_type='name')
             == '1,099.98 XAB')
diff --git a/tests/test_units.py b/tests/test_units.py
new file mode 100644 (file)
index 0000000..7c6ad6b
--- /dev/null
@@ -0,0 +1,19 @@
+import pytest
+
+from babel.units import format_unit
+
+
+# New units in CLDR 46
+@pytest.mark.parametrize(('unit', 'count', 'expected'), [
+    ('speed-light-speed', 1, '1 světlo'),
+    ('speed-light-speed', 2, '2 světla'),
+    ('speed-light-speed', 5, '5 světel'),
+    ('concentr-portion-per-1e9', 1, '1 částice na miliardu'),
+    ('concentr-portion-per-1e9', 2, '2 částice na miliardu'),
+    ('concentr-portion-per-1e9', 5, '5 částic na miliardu'),
+    ('duration-night', 1, '1 noc'),
+    ('duration-night', 2, '2 noci'),
+    ('duration-night', 5, '5 nocí'),
+])
+def test_new_cldr46_units(unit, count, expected):
+    assert format_unit(count, unit, locale='cs_CZ') == expected