zope.i18n 5.1__py3-none-any.whl → 5.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- zope/i18n/format.py +2 -2
- zope/i18n/testmessagecatalog.py +2 -2
- zope/i18n/tests/test_formats.py +603 -714
- zope/i18n/tests/test_translationdomain.py +11 -4
- zope/i18n/tests/test_zcml.py +7 -7
- zope.i18n-5.3-py3.12-nspkg.pth +1 -0
- {zope.i18n-5.1.dist-info → zope_i18n-5.3.dist-info}/METADATA +51 -20
- {zope.i18n-5.1.dist-info → zope_i18n-5.3.dist-info}/RECORD +12 -12
- {zope.i18n-5.1.dist-info → zope_i18n-5.3.dist-info}/WHEEL +1 -1
- zope.i18n-5.1-py3.11-nspkg.pth +0 -1
- {zope.i18n-5.1.dist-info → zope_i18n-5.3.dist-info/licenses}/LICENSE.txt +0 -0
- {zope.i18n-5.1.dist-info → zope_i18n-5.3.dist-info}/namespace_packages.txt +0 -0
- {zope.i18n-5.1.dist-info → zope_i18n-5.3.dist-info}/top_level.txt +0 -0
@@ -113,10 +113,17 @@ class TestGlobalTranslationDomain(TestITranslationDomain, unittest.TestCase):
|
|
113
113
|
mapping={})
|
114
114
|
msgid2 = factory("48-not-there", 'Message 2 and $msg1',
|
115
115
|
mapping={})
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
116
|
+
try:
|
117
|
+
msgid1.mapping['msg2'] = msgid2
|
118
|
+
msgid2.mapping['msg1'] = msgid1
|
119
|
+
except TypeError:
|
120
|
+
# this is a `zope.i118nmessageid >= 7` message id enforcing
|
121
|
+
# immutability; circular references therefore
|
122
|
+
# cannot be created in this way
|
123
|
+
pass
|
124
|
+
else:
|
125
|
+
self.assertRaises(ValueError,
|
126
|
+
translate, msgid1, None, None, 'en', "default")
|
120
127
|
# Recursive translations also work if the original message id wasn't a
|
121
128
|
# message id but a Unicode with a directly passed mapping
|
122
129
|
self.assertEqual(
|
zope/i18n/tests/test_zcml.py
CHANGED
@@ -52,7 +52,7 @@ class DirectivesTest(PlacelessSetup, unittest.TestCase):
|
|
52
52
|
config.ALLOWED_LANGUAGES = self.allowed
|
53
53
|
|
54
54
|
def testRegisterTranslations(self):
|
55
|
-
self.
|
55
|
+
self.assertIsNone(queryUtility(ITranslationDomain))
|
56
56
|
xmlconfig.string(
|
57
57
|
template % '''
|
58
58
|
<configure package="zope.i18n.tests">
|
@@ -66,7 +66,7 @@ class DirectivesTest(PlacelessSetup, unittest.TestCase):
|
|
66
66
|
self.assertEqual(util._catalogs.get('en'), [str(path)])
|
67
67
|
|
68
68
|
def testAllowedTranslations(self):
|
69
|
-
self.
|
69
|
+
self.assertIsNone(queryUtility(ITranslationDomain))
|
70
70
|
config.ALLOWED_LANGUAGES = ('de', 'fr')
|
71
71
|
xmlconfig.string(
|
72
72
|
template % '''
|
@@ -81,7 +81,7 @@ class DirectivesTest(PlacelessSetup, unittest.TestCase):
|
|
81
81
|
{'test': ['test'], 'de': [str(path)]})
|
82
82
|
|
83
83
|
def testRegisterDistributedTranslations(self):
|
84
|
-
self.
|
84
|
+
self.assertIsNone(queryUtility(ITranslationDomain, 'zope-i18n'))
|
85
85
|
xmlconfig.string(
|
86
86
|
template % '''
|
87
87
|
<configure package="zope.i18n.tests">
|
@@ -114,7 +114,7 @@ class DirectivesTest(PlacelessSetup, unittest.TestCase):
|
|
114
114
|
|
115
115
|
def testRegisterAndCompileTranslations(self):
|
116
116
|
config.COMPILE_MO_FILES = True
|
117
|
-
self.
|
117
|
+
self.assertIsNone(queryUtility(ITranslationDomain))
|
118
118
|
|
119
119
|
# Copy an old and outdated file over, so we can test if the
|
120
120
|
# newer file check works
|
@@ -151,8 +151,8 @@ class DirectivesTest(PlacelessSetup, unittest.TestCase):
|
|
151
151
|
os.utime(path, (path_atime, path_mtime))
|
152
152
|
|
153
153
|
def testRegisterTranslationsForDomain(self):
|
154
|
-
self.
|
155
|
-
self.
|
154
|
+
self.assertIsNone(queryUtility(ITranslationDomain, 'zope-i18n'))
|
155
|
+
self.assertIsNone(queryUtility(ITranslationDomain, 'zope-i18n2'))
|
156
156
|
xmlconfig.string(
|
157
157
|
template % '''
|
158
158
|
<configure package="zope.i18n.tests">
|
@@ -166,7 +166,7 @@ class DirectivesTest(PlacelessSetup, unittest.TestCase):
|
|
166
166
|
self.assertEqual(util._catalogs,
|
167
167
|
{'test': ['test'], 'en': [str(path)]})
|
168
168
|
|
169
|
-
self.
|
169
|
+
self.assertIsNone(queryUtility(ITranslationDomain, 'zope-i18n2'))
|
170
170
|
|
171
171
|
|
172
172
|
def test_suite():
|
@@ -0,0 +1 @@
|
|
1
|
+
import sys, types, os;p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('zope',));importlib = __import__('importlib.util');__import__('importlib.machinery');m = sys.modules.setdefault('zope', importlib.util.module_from_spec(importlib.machinery.PathFinder.find_spec('zope', [os.path.dirname(p)])));m = m or sys.modules.setdefault('zope', types.ModuleType('zope'));mp = (m or []) and m.__dict__.setdefault('__path__',[]);(p not in mp) and mp.append(p)
|
@@ -1,11 +1,11 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: zope.i18n
|
3
|
-
Version: 5.
|
3
|
+
Version: 5.3
|
4
4
|
Summary: Zope Internationalization Support
|
5
5
|
Home-page: https://github.com/zopefoundation/zope.i18n
|
6
6
|
Author: Zope Foundation and Contributors
|
7
7
|
Author-email: zope-dev@zope.dev
|
8
|
-
License: ZPL
|
8
|
+
License: ZPL-2.1
|
9
9
|
Keywords: zope3 internationalization localization i18n l10n gettext ICU locale
|
10
10
|
Classifier: Development Status :: 5 - Production/Stable
|
11
11
|
Classifier: Environment :: Web Environment
|
@@ -13,41 +13,53 @@ Classifier: Intended Audience :: Developers
|
|
13
13
|
Classifier: License :: OSI Approved :: Zope Public License
|
14
14
|
Classifier: Programming Language :: Python
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
16
|
-
Classifier: Programming Language :: Python :: 3.7
|
17
|
-
Classifier: Programming Language :: Python :: 3.8
|
18
16
|
Classifier: Programming Language :: Python :: 3.9
|
19
17
|
Classifier: Programming Language :: Python :: 3.10
|
20
18
|
Classifier: Programming Language :: Python :: 3.11
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
21
21
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
22
22
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
23
23
|
Classifier: Natural Language :: English
|
24
24
|
Classifier: Operating System :: OS Independent
|
25
25
|
Classifier: Topic :: Internet :: WWW/HTTP
|
26
26
|
Classifier: Framework :: Zope :: 3
|
27
|
-
Requires-Python: >=3.
|
27
|
+
Requires-Python: >=3.9
|
28
28
|
License-File: LICENSE.txt
|
29
29
|
Requires-Dist: setuptools
|
30
30
|
Requires-Dist: python-gettext
|
31
31
|
Requires-Dist: pytz
|
32
32
|
Requires-Dist: zope.deprecation
|
33
33
|
Requires-Dist: zope.schema
|
34
|
-
Requires-Dist: zope.i18nmessageid
|
34
|
+
Requires-Dist: zope.i18nmessageid>=4.3
|
35
35
|
Requires-Dist: zope.component
|
36
|
-
Provides-Extra: compile
|
37
|
-
Provides-Extra: docs
|
38
|
-
Requires-Dist: Sphinx ; extra == 'docs'
|
39
|
-
Requires-Dist: repoze.sphinx.autointerface ; extra == 'docs'
|
40
36
|
Provides-Extra: test
|
41
|
-
Requires-Dist: zope.component[zcml]
|
42
|
-
Requires-Dist: zope.configuration
|
43
|
-
Requires-Dist: zope.security
|
44
|
-
Requires-Dist: zope.publisher
|
45
|
-
Requires-Dist: zope.testing
|
46
|
-
Requires-Dist: zope.testrunner
|
37
|
+
Requires-Dist: zope.component[zcml]; extra == "test"
|
38
|
+
Requires-Dist: zope.configuration; extra == "test"
|
39
|
+
Requires-Dist: zope.security; extra == "test"
|
40
|
+
Requires-Dist: zope.publisher; extra == "test"
|
41
|
+
Requires-Dist: zope.testing; extra == "test"
|
42
|
+
Requires-Dist: zope.testrunner; extra == "test"
|
43
|
+
Provides-Extra: compile
|
47
44
|
Provides-Extra: zcml
|
48
|
-
Requires-Dist: zope.component[zcml]
|
49
|
-
Requires-Dist: zope.configuration
|
50
|
-
Requires-Dist: zope.security
|
45
|
+
Requires-Dist: zope.component[zcml]; extra == "zcml"
|
46
|
+
Requires-Dist: zope.configuration; extra == "zcml"
|
47
|
+
Requires-Dist: zope.security; extra == "zcml"
|
48
|
+
Provides-Extra: docs
|
49
|
+
Requires-Dist: Sphinx; extra == "docs"
|
50
|
+
Requires-Dist: repoze.sphinx.autointerface; extra == "docs"
|
51
|
+
Dynamic: author
|
52
|
+
Dynamic: author-email
|
53
|
+
Dynamic: classifier
|
54
|
+
Dynamic: description
|
55
|
+
Dynamic: home-page
|
56
|
+
Dynamic: keywords
|
57
|
+
Dynamic: license
|
58
|
+
Dynamic: license-file
|
59
|
+
Dynamic: provides-extra
|
60
|
+
Dynamic: requires-dist
|
61
|
+
Dynamic: requires-python
|
62
|
+
Dynamic: summary
|
51
63
|
|
52
64
|
zope.i18n
|
53
65
|
=========
|
@@ -88,6 +100,25 @@ localization.
|
|
88
100
|
CHANGES
|
89
101
|
=========
|
90
102
|
|
103
|
+
5.3 (2025-07-23)
|
104
|
+
================
|
105
|
+
|
106
|
+
- Add support for Python 3.13.
|
107
|
+
|
108
|
+
- Drop support for Python 3.8.
|
109
|
+
|
110
|
+
|
111
|
+
5.2 (2024-09-27)
|
112
|
+
================
|
113
|
+
|
114
|
+
- Add support for Python 3.12.
|
115
|
+
|
116
|
+
- Drop support for Python 3.7.
|
117
|
+
|
118
|
+
- Fix test incompatibility for ``zope.i18nmessageid >= 7.0``
|
119
|
+
(`#62 <https://github.com/zopefoundation/zope.i18n/issues/62>`_).
|
120
|
+
|
121
|
+
|
91
122
|
5.1 (2023-08-28)
|
92
123
|
================
|
93
124
|
|
@@ -1,16 +1,16 @@
|
|
1
|
-
zope.i18n-5.
|
1
|
+
zope.i18n-5.3-py3.12-nspkg.pth,sha256=_l6EZJaefCi1yytmDbFQGX_jfS2gAtFyaDmlK1uFLec,457
|
2
2
|
zope/i18n/__init__.py,sha256=NMpvR4IsTXy_OficD1vx2eR6yzJMWRaONWmMibaX-l8,7514
|
3
3
|
zope/i18n/compile.py,sha256=0kpclbhChlZQIbfTctPp4Cqc2F5RqEcR7jquLnkcLh4,1429
|
4
4
|
zope/i18n/config.py,sha256=20aYlJ4eg-2iuSXHDRqXkkzALDa4URhRchKvFPH9Y6I,1669
|
5
5
|
zope/i18n/configure.zcml,sha256=oebDJrOzCVDc6U957WVABZiA4GpG061rEHil-9lJ_Uc,278
|
6
|
-
zope/i18n/format.py,sha256=
|
6
|
+
zope/i18n/format.py,sha256=j2HFlXVC10c4_woTlqv-wTHRpUrYMsU7NHkuA3WPGF4,34941
|
7
7
|
zope/i18n/gettextmessagecatalog.py,sha256=kyGa_Y4X2_EY6X3viIvz3GuLOVZvk_vSAFEAb0SMOgM,3726
|
8
8
|
zope/i18n/i18nobject.txt,sha256=mi5UD13ZvBxNLSNGvPMVy1We2rFCMpuF1fTJnl9Rc8I,3074
|
9
9
|
zope/i18n/meta.zcml,sha256=ymIRohOID745zvv_jCCRUOkrvRMeOOx_umKSS_0EtME,396
|
10
10
|
zope/i18n/negotiator.py,sha256=RNLHH1YYouj6IcceQr5Q_1m6whRx0nMMHJyw9iB7GnI,2159
|
11
11
|
zope/i18n/simpletranslationdomain.py,sha256=idz4JmY9U70bJK2Ut8TReYhB70Rjd2TgFxNYuVJps7E,2669
|
12
12
|
zope/i18n/testing.py,sha256=hZlCwqiY-mfaRjOdsynCLQz39lJrUGDrQiJM6jieZiM,2052
|
13
|
-
zope/i18n/testmessagecatalog.py,sha256=
|
13
|
+
zope/i18n/testmessagecatalog.py,sha256=kmyXIjJmps5RvHPRxm6aXZgzCazikwpOTYbRNg-D4E4,1703
|
14
14
|
zope/i18n/testmessagecatalog.rst,sha256=SdsHRBM6rus52_XmPgztuzg7oA2cjBhfofHPstLBJec,1910
|
15
15
|
zope/i18n/translationdomain.py,sha256=6TWaKavvCUrpd3Phprcmy0WliRaO6IVXzTgZiIa6bvs,7645
|
16
16
|
zope/i18n/zcml.py,sha256=qFQ7fFigMbXrJOI-almGq5yojtN79mY2ccSVmK-Dmuw,5080
|
@@ -317,7 +317,7 @@ zope/i18n/tests/__init__.py,sha256=690b_c98_VbdhbkaIIiCjDZc8aFNpJYPu9eSy_5lq-w,6
|
|
317
317
|
zope/i18n/tests/configure.txt,sha256=QwqTf4X5jAy_YfBel4dbablEVqCzsqllr5vm33jmpvU,488
|
318
318
|
zope/i18n/tests/test.py,sha256=pzvIS-cWySb-MN4sF50bdcTOfuCpWa7Xickbm_qe9Rk,1146
|
319
319
|
zope/i18n/tests/test_compile.py,sha256=9XGD7n_IRuurzspmqOtyyArknHWgOuUxHhWd-SRvKJM,2274
|
320
|
-
zope/i18n/tests/test_formats.py,sha256=
|
320
|
+
zope/i18n/tests/test_formats.py,sha256=zb0jRqZHrJ1LuTsUzR8gbV8rIgJBYixgzPCo8Ih158Y,62010
|
321
321
|
zope/i18n/tests/test_gettextmessagecatalog.py,sha256=gbT9eUtXmIqaWqx6NeZrEw-PYvMC9XstNLhYu6oKe7E,1356
|
322
322
|
zope/i18n/tests/test_imessagecatalog.py,sha256=vEAdVNT-csTV_lHk9JYAwy8k9DJOZAQ12zzJ31wDYfs,2304
|
323
323
|
zope/i18n/tests/test_itranslationdomain.py,sha256=XvkndUhZZ7CplyWoVjfb5Kdfw6RZKVJZGc0ql4lTbyU,4114
|
@@ -325,8 +325,8 @@ zope/i18n/tests/test_negotiator.py,sha256=SKCHns3rgUVAGgcxCfaB91gUeDPawkM7Us7LXj
|
|
325
325
|
zope/i18n/tests/test_plurals.py,sha256=RpVI5MmYJu47cxV4wr-YRs4UhatP17ITq-Glf_0bBuA,12821
|
326
326
|
zope/i18n/tests/test_simpletranslationdomain.py,sha256=JK0-yjKb2tvOGw8DrlcE0fG0aBdAf849jerUHROktEc,1409
|
327
327
|
zope/i18n/tests/test_testmessagecatalog.py,sha256=lJdxoaqwXyAdpkUVtL9iO2vKrU8gfrq1OHQF11dmOk0,783
|
328
|
-
zope/i18n/tests/test_translationdomain.py,sha256=
|
329
|
-
zope/i18n/tests/test_zcml.py,sha256=
|
328
|
+
zope/i18n/tests/test_translationdomain.py,sha256=Mp7ZJ8d02xyBjaRyuJAkqalG89XdaHKNpZScVliFZFI,12084
|
329
|
+
zope/i18n/tests/test_zcml.py,sha256=hfBW9gHgX7euDyPhmnZKzWt0o6uWCe5JAXykJ2__lSw,7013
|
330
330
|
zope/i18n/tests/testi18nawareobject.py,sha256=MxG1mOYvcB5-pI_lHjdG3trQlW6A_aRA3wQsExqGpRE,3218
|
331
331
|
zope/i18n/tests/locale/de/LC_MESSAGES/zope-i18n.mo,sha256=hvyVplTpEPj_Du85TmnqGTV5t0GqPO04A7NdBy15BLs,277
|
332
332
|
zope/i18n/tests/locale/de/LC_MESSAGES/zope-i18n.po,sha256=4H0LHuWcXybGArSmIXF3cKckfMjmViT9Cet8r4FB6do,276
|
@@ -356,9 +356,9 @@ zope/i18n/tests/locale3/en/LC_MESSAGES/zope-i18n.mo,sha256=8yHbDhd1pX_kC8c4gUoqb
|
|
356
356
|
zope/i18n/tests/locale3/en/LC_MESSAGES/zope-i18n.po,sha256=93dkAV6YWB1n31wDtAzlIHln-9StXSkLNzcbGMoO8VY,294
|
357
357
|
zope/i18n/tests/locale3/en/LC_MESSAGES/zope-i18n2.mo,sha256=_1PrSjMzwuIv6-vsT7_EQmphH4QTLIj9ltK98C_bbKo,291
|
358
358
|
zope/i18n/tests/locale3/en/LC_MESSAGES/zope-i18n2.po,sha256=5q-1okvFJffR926Z4NUiz6EmEbTp8lR0iM-OckZ8R3k,290
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
359
|
+
zope_i18n-5.3.dist-info/licenses/LICENSE.txt,sha256=PmcdsR32h1FswdtbPWXkqjg-rKPCDOo_r1Og9zNdCjw,2070
|
360
|
+
zope_i18n-5.3.dist-info/METADATA,sha256=eaNUs7T1PqonVxblGiJoQrkbzHL86_93SWZwOkKKBwA,14495
|
361
|
+
zope_i18n-5.3.dist-info/WHEEL,sha256=lTU6B6eIfYoiQJTZNc-fyaR6BpL6ehTzU3xGYxn2n8k,91
|
362
|
+
zope_i18n-5.3.dist-info/namespace_packages.txt,sha256=QpUHvpO4wIuZDeEgKY8qZCtD-tAukB0fn_f6utzlb98,5
|
363
|
+
zope_i18n-5.3.dist-info/top_level.txt,sha256=QpUHvpO4wIuZDeEgKY8qZCtD-tAukB0fn_f6utzlb98,5
|
364
|
+
zope_i18n-5.3.dist-info/RECORD,,
|
zope.i18n-5.1-py3.11-nspkg.pth
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
import sys, types, os;has_mfs = sys.version_info > (3, 5);p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('zope',));importlib = has_mfs and __import__('importlib.util');has_mfs and __import__('importlib.machinery');m = has_mfs and sys.modules.setdefault('zope', importlib.util.module_from_spec(importlib.machinery.PathFinder.find_spec('zope', [os.path.dirname(p)])));m = m or sys.modules.setdefault('zope', types.ModuleType('zope'));mp = (m or []) and m.__dict__.setdefault('__path__',[]);(p not in mp) and mp.append(p)
|
File without changes
|
File without changes
|
File without changes
|