wagtail 6.1.1__py3-none-any.whl → 6.1.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.
- wagtail/__init__.py +1 -1
- wagtail/admin/locale/ca/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/ca/LC_MESSAGES/django.po +1 -1
- wagtail/admin/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/fa/LC_MESSAGES/django.po +75 -1
- wagtail/admin/locale/fa/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/fa/LC_MESSAGES/djangojs.po +5 -1
- wagtail/admin/locale/fr/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/fr/LC_MESSAGES/django.po +89 -3
- wagtail/admin/locale/is_IS/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/is_IS/LC_MESSAGES/django.po +228 -2
- wagtail/admin/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/pt_BR/LC_MESSAGES/django.po +20 -1
- wagtail/admin/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/sk_SK/LC_MESSAGES/django.po +11 -1
- wagtail/admin/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/sl/LC_MESSAGES/django.po +97 -0
- wagtail/admin/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/sv/LC_MESSAGES/django.po +74 -0
- wagtail/admin/locale/sv/LC_MESSAGES/djangojs.mo +0 -0
- wagtail/admin/locale/sv/LC_MESSAGES/djangojs.po +5 -2
- wagtail/admin/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- wagtail/admin/locale/zh_Hans/LC_MESSAGES/django.po +71 -1
- wagtail/admin/static/wagtailadmin/js/telepath/widgets.js +1 -1
- wagtail/admin/views/generic/base.py +3 -2
- wagtail/contrib/forms/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/forms/locale/pt_BR/LC_MESSAGES/django.po +2 -2
- wagtail/contrib/redirects/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/redirects/locale/fa/LC_MESSAGES/django.po +14 -1
- wagtail/contrib/redirects/locale/pt_BR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/search_promotions/locale/fr/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/fr/LC_MESSAGES/django.po +5 -2
- wagtail/contrib/search_promotions/locale/is_IS/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/is_IS/LC_MESSAGES/django.po +6 -2
- wagtail/contrib/search_promotions/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/sl/LC_MESSAGES/django.po +56 -2
- wagtail/contrib/search_promotions/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/search_promotions/locale/sv/LC_MESSAGES/django.po +5 -2
- wagtail/contrib/settings/locale/hi/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/pt_BR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/settings/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/settings/locale/sk_SK/LC_MESSAGES/django.po +10 -1
- wagtail/contrib/settings/tests/generic/test_admin.py +144 -16
- wagtail/contrib/settings/tests/site_specific/test_admin.py +142 -17
- wagtail/contrib/settings/views.py +3 -0
- wagtail/contrib/simple_translation/locale/pt_BR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/styleguide/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/styleguide/locale/sk_SK/LC_MESSAGES/django.po +5 -1
- wagtail/contrib/styleguide/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/styleguide/locale/zh_Hans/LC_MESSAGES/django.po +3 -0
- wagtail/contrib/styleguide/tests.py +33 -0
- wagtail/contrib/styleguide/views.py +4 -1
- wagtail/contrib/table_block/locale/fr/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/fr/LC_MESSAGES/django.po +27 -1
- wagtail/contrib/table_block/locale/is_IS/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/is_IS/LC_MESSAGES/django.po +28 -2
- wagtail/contrib/table_block/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/table_block/locale/sl/LC_MESSAGES/django.po +27 -1
- wagtail/contrib/typed_table_block/locale/fr/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/typed_table_block/locale/fr/LC_MESSAGES/django.po +12 -1
- wagtail/contrib/typed_table_block/locale/is_IS/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/typed_table_block/locale/is_IS/LC_MESSAGES/django.po +12 -1
- wagtail/contrib/typed_table_block/locale/pt_BR/LC_MESSAGES/django.po +1 -1
- wagtail/contrib/typed_table_block/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/contrib/typed_table_block/locale/sl/LC_MESSAGES/django.po +12 -2
- wagtail/documents/locale/ca/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/ca/LC_MESSAGES/django.po +3 -2
- wagtail/documents/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/fa/LC_MESSAGES/django.po +9 -0
- wagtail/documents/locale/is_IS/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/is_IS/LC_MESSAGES/django.po +17 -2
- wagtail/documents/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/sk_SK/LC_MESSAGES/django.po +45 -2
- wagtail/documents/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/sl/LC_MESSAGES/django.po +11 -2
- wagtail/documents/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- wagtail/documents/locale/zh_Hans/LC_MESSAGES/django.po +7 -1
- wagtail/images/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/fa/LC_MESSAGES/django.po +20 -1
- wagtail/images/locale/is_IS/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/is_IS/LC_MESSAGES/django.po +28 -2
- wagtail/images/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/sk_SK/LC_MESSAGES/django.po +15 -0
- wagtail/images/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/sl/LC_MESSAGES/django.po +14 -2
- wagtail/images/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/sv/LC_MESSAGES/django.po +14 -2
- wagtail/images/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- wagtail/images/locale/zh_Hans/LC_MESSAGES/django.po +45 -1
- wagtail/images/models.py +1 -0
- wagtail/images/tests/test_admin_views.py +32 -0
- wagtail/images/tests/test_image_operations.py +12 -0
- wagtail/images/tests/tests.py +27 -2
- wagtail/images/views/images.py +7 -3
- wagtail/images/views/serve.py +1 -0
- wagtail/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/fa/LC_MESSAGES/django.po +3 -0
- wagtail/locale/fr/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/fr/LC_MESSAGES/django.po +23 -4
- wagtail/locale/is_IS/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/is_IS/LC_MESSAGES/django.po +22 -2
- wagtail/locale/pt_BR/LC_MESSAGES/django.po +1 -1
- wagtail/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/sl/LC_MESSAGES/django.po +77 -0
- wagtail/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/locale/sv/LC_MESSAGES/django.po +11 -2
- wagtail/locales/locale/it/LC_MESSAGES/django.mo +0 -0
- wagtail/locales/locale/it/LC_MESSAGES/django.po +16 -17
- wagtail/search/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/fa/LC_MESSAGES/django.po +24 -0
- wagtail/search/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- wagtail/search/locale/pt_BR/LC_MESSAGES/django.po +2 -2
- wagtail/search/tests/test_queries.py +24 -0
- wagtail/search/utils.py +6 -12
- wagtail/snippets/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/fa/LC_MESSAGES/django.po +17 -1
- wagtail/snippets/locale/pt_BR/LC_MESSAGES/django.po +1 -1
- wagtail/snippets/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/sk_SK/LC_MESSAGES/django.po +3 -0
- wagtail/snippets/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- wagtail/snippets/locale/zh_Hans/LC_MESSAGES/django.po +40 -1
- wagtail/test/testapp/templates/tests/icons/single-quotes.svg +1 -0
- wagtail/tests/test_blocks.py +27 -0
- wagtail/tests/test_utils.py +28 -1
- wagtail/users/locale/fa/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/fa/LC_MESSAGES/django.po +63 -1
- wagtail/users/locale/fr/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/fr/LC_MESSAGES/django.po +44 -3
- wagtail/users/locale/is_IS/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/is_IS/LC_MESSAGES/django.po +44 -2
- wagtail/users/locale/pt_BR/LC_MESSAGES/django.po +1 -1
- wagtail/users/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/sk_SK/LC_MESSAGES/django.po +8 -1
- wagtail/users/locale/sl/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/sl/LC_MESSAGES/django.po +46 -2
- wagtail/users/locale/sv/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/sv/LC_MESSAGES/django.po +41 -2
- wagtail/users/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- wagtail/users/locale/zh_Hans/LC_MESSAGES/django.po +45 -1
- wagtail/utils/utils.py +26 -0
- wagtail/widget_adapters.py +1 -1
- {wagtail-6.1.1.dist-info → wagtail-6.1.3.dist-info}/METADATA +1 -1
- {wagtail-6.1.1.dist-info → wagtail-6.1.3.dist-info}/RECORD +147 -145
- {wagtail-6.1.1.dist-info → wagtail-6.1.3.dist-info}/LICENSE +0 -0
- {wagtail-6.1.1.dist-info → wagtail-6.1.3.dist-info}/WHEEL +0 -0
- {wagtail-6.1.1.dist-info → wagtail-6.1.3.dist-info}/entry_points.txt +0 -0
- {wagtail-6.1.1.dist-info → wagtail-6.1.3.dist-info}/top_level.txt +0 -0
|
@@ -171,6 +171,30 @@ class TestParseQueryString(SimpleTestCase):
|
|
|
171
171
|
self.assertDictEqual(filters.dict(), {"author": "foo bar", "bar": "beer"})
|
|
172
172
|
self.assertEqual(repr(query), repr(Phrase("hello world")))
|
|
173
173
|
|
|
174
|
+
def test_long_queries(self):
|
|
175
|
+
filters, query = parse_query_string("0" * 60_000)
|
|
176
|
+
self.assertEqual(filters.dict(), {})
|
|
177
|
+
self.assertEqual(repr(query), repr(PlainText("0" * 60_000)))
|
|
178
|
+
|
|
179
|
+
filters, _ = parse_query_string(f'{"a" * 60_000}:"foo bar"')
|
|
180
|
+
self.assertEqual(filters.dict(), {"a" * 60_000: "foo bar"})
|
|
181
|
+
|
|
182
|
+
def test_long_filter_value(self):
|
|
183
|
+
filters, _ = parse_query_string(f'foo:ba{"r" * 60_000}')
|
|
184
|
+
self.assertEqual(filters.dict(), {"foo": f'ba{"r" * 60_000}'})
|
|
185
|
+
|
|
186
|
+
def test_joined_filters(self):
|
|
187
|
+
filters, query = parse_query_string("foo:bar:baz")
|
|
188
|
+
self.assertEqual(filters.dict(), {"foo": "bar"})
|
|
189
|
+
self.assertEqual(repr(query), repr(PlainText(":baz")))
|
|
190
|
+
|
|
191
|
+
filters, query = parse_query_string("foo:'bar':baz")
|
|
192
|
+
self.assertEqual(filters.dict(), {"foo": "bar"})
|
|
193
|
+
self.assertEqual(repr(query), repr(PlainText(":baz")))
|
|
194
|
+
|
|
195
|
+
filters, query = parse_query_string("foo:'bar:baz'")
|
|
196
|
+
self.assertEqual(filters.dict(), {"foo": "bar:baz"})
|
|
197
|
+
|
|
174
198
|
def test_multiple_phrases(self):
|
|
175
199
|
filters, query = parse_query_string('"hello world" "hi earth"')
|
|
176
200
|
|
wagtail/search/utils.py
CHANGED
|
@@ -69,6 +69,8 @@ MUL = partial(balanced_reduce, operator.mul)
|
|
|
69
69
|
|
|
70
70
|
MAX_QUERY_STRING_LENGTH = 255
|
|
71
71
|
|
|
72
|
+
filters_regexp = re.compile(r'\b(\w+):(\w+|"[^"]+"|\'[^\']+\')')
|
|
73
|
+
|
|
72
74
|
|
|
73
75
|
def normalise_query_string(query_string):
|
|
74
76
|
# Truncate query string
|
|
@@ -83,20 +85,12 @@ def normalise_query_string(query_string):
|
|
|
83
85
|
|
|
84
86
|
|
|
85
87
|
def separate_filters_from_query(query_string):
|
|
86
|
-
filters_regexp = r'(\w+):(\w+|"[^"]+"|\'[^\']+\')'
|
|
87
|
-
|
|
88
88
|
filters = QueryDict(mutable=True)
|
|
89
|
-
for match_object in
|
|
89
|
+
for match_object in filters_regexp.finditer(query_string):
|
|
90
90
|
key, value = match_object.groups()
|
|
91
|
-
filters.update(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
if value.strip('"') is not value
|
|
95
|
-
else value.strip("'")
|
|
96
|
-
}
|
|
97
|
-
)
|
|
98
|
-
|
|
99
|
-
query_string = re.sub(filters_regexp, "", query_string).strip()
|
|
91
|
+
filters.update({key: value.strip("\"'")})
|
|
92
|
+
|
|
93
|
+
query_string = filters_regexp.sub("", query_string).strip()
|
|
100
94
|
|
|
101
95
|
return filters, query_string
|
|
102
96
|
|
|
Binary file
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
# Translators:
|
|
6
6
|
# Amir Mahmoodi, 2022
|
|
7
7
|
# Amir Mahmoodi, 2022
|
|
8
|
+
# Bardia Khoshroo, 2024
|
|
8
9
|
# pyzenberg <pyzenberg@gmail.com>, 2017
|
|
9
10
|
# pyzenberg <pyzenberg@gmail.com>, 2017
|
|
10
11
|
msgid ""
|
|
@@ -13,7 +14,7 @@ msgstr ""
|
|
|
13
14
|
"Report-Msgid-Bugs-To: \n"
|
|
14
15
|
"POT-Creation-Date: 2024-05-02 10:04+0100\n"
|
|
15
16
|
"PO-Revision-Date: 2014-02-19 19:01+0000\n"
|
|
16
|
-
"Last-Translator:
|
|
17
|
+
"Last-Translator: Bardia Khoshroo, 2024\n"
|
|
17
18
|
"Language-Team: Persian (http://app.transifex.com/torchbox/wagtail/language/"
|
|
18
19
|
"fa/)\n"
|
|
19
20
|
"MIME-Version: 1.0\n"
|
|
@@ -36,6 +37,12 @@ msgstr "دوباره ثبت کردن در %(task_name)s"
|
|
|
36
37
|
msgid "Submit to %(workflow_name)s"
|
|
37
38
|
msgstr "ثبت کردن در %(workflow_name)s"
|
|
38
39
|
|
|
40
|
+
msgid "Restart workflow "
|
|
41
|
+
msgstr "بازنشانی رویه"
|
|
42
|
+
|
|
43
|
+
msgid "Cancel workflow "
|
|
44
|
+
msgstr "لغو رویه کاری"
|
|
45
|
+
|
|
39
46
|
msgid "Unpublish"
|
|
40
47
|
msgstr "لغو انتشار"
|
|
41
48
|
|
|
@@ -48,6 +55,9 @@ msgstr "ذخیره"
|
|
|
48
55
|
msgid "Locked"
|
|
49
56
|
msgstr "قفل شده"
|
|
50
57
|
|
|
58
|
+
msgid "Delete "
|
|
59
|
+
msgstr "حذف"
|
|
60
|
+
|
|
51
61
|
#, python-format
|
|
52
62
|
msgid "Used %(usage_count)s time"
|
|
53
63
|
msgid_plural "Used %(usage_count)s times"
|
|
@@ -86,6 +96,9 @@ msgstr "ذخیره پیشنویس"
|
|
|
86
96
|
msgid "Actions"
|
|
87
97
|
msgstr "اعمال"
|
|
88
98
|
|
|
99
|
+
msgid "Select all snippets in listing"
|
|
100
|
+
msgstr "انتخاب تمامی اسنیپت های لیست"
|
|
101
|
+
|
|
89
102
|
msgid "Choose"
|
|
90
103
|
msgstr "انتخاب"
|
|
91
104
|
|
|
@@ -95,6 +108,9 @@ msgstr "قطعهها"
|
|
|
95
108
|
msgid "Name"
|
|
96
109
|
msgstr "نام"
|
|
97
110
|
|
|
111
|
+
msgid "Instances"
|
|
112
|
+
msgstr "موارد"
|
|
113
|
+
|
|
98
114
|
msgid "Home"
|
|
99
115
|
msgstr "خانه"
|
|
100
116
|
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
# Gladson <gladsonbrito@gmail.com>, 2014
|
|
10
10
|
# Luiz Boaretto <lboaretto@gmail.com>, 2016
|
|
11
11
|
# Luiz Boaretto <lboaretto@gmail.com>, 2016-2019,2021,2024
|
|
12
|
-
# Rodrigo de Almeida Sottomaior Macedo <sottomaiormacedotec@
|
|
12
|
+
# Rodrigo de Almeida Sottomaior Macedo <sottomaiormacedotec@sottomaiormacedo.tech>, 2021
|
|
13
13
|
msgid ""
|
|
14
14
|
msgstr ""
|
|
15
15
|
"Project-Id-Version: Wagtail\n"
|
|
Binary file
|
|
Binary file
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
# 祝沙军 <zhushajun@gmail.com>, 2017
|
|
14
14
|
# Vincent Zhao <zhaopu2008@gmail.com>, 2017
|
|
15
15
|
# Yin Guanhao <sopium@mysterious.site>, 2021
|
|
16
|
+
# Yu Cheng, 2024
|
|
16
17
|
# 祝沙军 <zhushajun@gmail.com>, 2017
|
|
17
18
|
# 汇民 王 <whuim@qq.com>, 2018-2019,2021
|
|
18
19
|
# 祝沙军 <zhushajun@gmail.com>, 2017
|
|
@@ -22,7 +23,7 @@ msgstr ""
|
|
|
22
23
|
"Report-Msgid-Bugs-To: \n"
|
|
23
24
|
"POT-Creation-Date: 2024-05-02 10:04+0100\n"
|
|
24
25
|
"PO-Revision-Date: 2014-02-19 19:01+0000\n"
|
|
25
|
-
"Last-Translator:
|
|
26
|
+
"Last-Translator: Yu Cheng, 2024\n"
|
|
26
27
|
"Language-Team: Chinese (China) (http://app.transifex.com/torchbox/wagtail/"
|
|
27
28
|
"language/zh_CN/)\n"
|
|
28
29
|
"MIME-Version: 1.0\n"
|
|
@@ -70,10 +71,18 @@ msgstr "%(label)s 和发布"
|
|
|
70
71
|
msgid "Wagtail snippets"
|
|
71
72
|
msgstr "Wagtail 片段"
|
|
72
73
|
|
|
74
|
+
msgid "Delete selected snippets"
|
|
75
|
+
msgstr "删除选定的片段"
|
|
76
|
+
|
|
73
77
|
#, python-format
|
|
74
78
|
msgid "%(model_name)s '%(object)s' deleted."
|
|
75
79
|
msgstr "%(model_name)s '%(object)s' 已删除。"
|
|
76
80
|
|
|
81
|
+
#, python-format
|
|
82
|
+
msgid "%(count)d %(model_name)s deleted."
|
|
83
|
+
msgid_plural "%(count)d %(model_name)s deleted."
|
|
84
|
+
msgstr[0] "%(count)d %(model_name)s 已删除。"
|
|
85
|
+
|
|
77
86
|
#, python-format
|
|
78
87
|
msgid "Delete %(snippet_type_name)s"
|
|
79
88
|
msgstr "删除 %(snippet_type_name)s"
|
|
@@ -94,12 +103,24 @@ msgstr "确定要删除 %(snippet_type_name)s?"
|
|
|
94
103
|
msgid "Are you sure you want to delete %(count)s %(snippet_type_name)s?"
|
|
95
104
|
msgstr "你确定要删除 %(count)s%(snippet_type_name)s ?"
|
|
96
105
|
|
|
106
|
+
#, python-format
|
|
107
|
+
msgid "You don't have permission to delete this %(snippet_type_name)s"
|
|
108
|
+
msgstr "您无权删除此 %(snippet_type_name)s"
|
|
109
|
+
|
|
110
|
+
#, python-format
|
|
111
|
+
msgid "You don't have permission to delete these %(snippet_plural_name)s"
|
|
112
|
+
msgstr "您无权删除这些 %(snippet_plural_name)s"
|
|
113
|
+
|
|
97
114
|
msgid "Yes, delete"
|
|
98
115
|
msgstr "是的,删除"
|
|
99
116
|
|
|
100
117
|
msgid "No, don't delete"
|
|
101
118
|
msgstr "否,不删除"
|
|
102
119
|
|
|
120
|
+
#, python-format
|
|
121
|
+
msgid "Sorry, no snippets match \"<em>%(search_query)s</em>\""
|
|
122
|
+
msgstr "抱歉,没有片段匹配“<em>%(search_query)s</em>”"
|
|
123
|
+
|
|
103
124
|
msgid "Publishing…"
|
|
104
125
|
msgstr "正在发布..."
|
|
105
126
|
|
|
@@ -112,12 +133,18 @@ msgstr "正在保存……"
|
|
|
112
133
|
msgid "Replace current draft"
|
|
113
134
|
msgstr "替换当前的草稿"
|
|
114
135
|
|
|
136
|
+
msgid "Replace current revision"
|
|
137
|
+
msgstr "替换当前版本"
|
|
138
|
+
|
|
115
139
|
msgid "Save draft"
|
|
116
140
|
msgstr "保存草稿"
|
|
117
141
|
|
|
118
142
|
msgid "Actions"
|
|
119
143
|
msgstr "动作"
|
|
120
144
|
|
|
145
|
+
msgid "Select all snippets in listing"
|
|
146
|
+
msgstr "选择列表中的所有片段"
|
|
147
|
+
|
|
121
148
|
msgid "Choose"
|
|
122
149
|
msgstr "选择"
|
|
123
150
|
|
|
@@ -130,6 +157,18 @@ msgstr "名字"
|
|
|
130
157
|
msgid "Instances"
|
|
131
158
|
msgstr "实例"
|
|
132
159
|
|
|
160
|
+
#, python-format
|
|
161
|
+
msgid "More options for '%(title)s'"
|
|
162
|
+
msgstr "“%(title)s”的更多选项"
|
|
163
|
+
|
|
164
|
+
#, python-format
|
|
165
|
+
msgid "Edit this %(model_name)s"
|
|
166
|
+
msgstr "编辑此%(model_name)s"
|
|
167
|
+
|
|
168
|
+
#, python-format
|
|
169
|
+
msgid "%(model_name)s history"
|
|
170
|
+
msgstr "%(model_name)s 历史"
|
|
171
|
+
|
|
133
172
|
msgid "Home"
|
|
134
173
|
msgstr "首页"
|
|
135
174
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg id='icon-single-quotes' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><!--! Custom icon with single quotes for the id --></svg>
|
wagtail/tests/test_blocks.py
CHANGED
|
@@ -1122,6 +1122,18 @@ class TestChoiceBlock(WagtailTestUtils, SimpleTestCase):
|
|
|
1122
1122
|
with self.assertRaises(ValidationError):
|
|
1123
1123
|
block.clean("coffee")
|
|
1124
1124
|
|
|
1125
|
+
def test_get_form_state(self):
|
|
1126
|
+
block = blocks.ChoiceBlock(choices=[("tea", "Tea"), ("coffee", "Coffee")])
|
|
1127
|
+
form_state = block.get_form_state("tea")
|
|
1128
|
+
self.assertEqual(form_state, ["tea"])
|
|
1129
|
+
|
|
1130
|
+
def test_get_form_state_with_radio_widget(self):
|
|
1131
|
+
block = blocks.ChoiceBlock(
|
|
1132
|
+
choices=[("tea", "Tea"), ("coffee", "Coffee")], widget=forms.RadioSelect
|
|
1133
|
+
)
|
|
1134
|
+
form_state = block.get_form_state("tea")
|
|
1135
|
+
self.assertEqual(form_state, ["tea"])
|
|
1136
|
+
|
|
1125
1137
|
|
|
1126
1138
|
class TestMultipleChoiceBlock(WagtailTestUtils, SimpleTestCase):
|
|
1127
1139
|
def setUp(self):
|
|
@@ -1508,6 +1520,21 @@ class TestMultipleChoiceBlock(WagtailTestUtils, SimpleTestCase):
|
|
|
1508
1520
|
with self.assertRaises(ValidationError):
|
|
1509
1521
|
block.clean("coffee")
|
|
1510
1522
|
|
|
1523
|
+
def test_get_form_state(self):
|
|
1524
|
+
block = blocks.MultipleChoiceBlock(
|
|
1525
|
+
choices=[("tea", "Tea"), ("coffee", "Coffee")]
|
|
1526
|
+
)
|
|
1527
|
+
form_state = block.get_form_state(["tea", "coffee"])
|
|
1528
|
+
self.assertEqual(form_state, ["tea", "coffee"])
|
|
1529
|
+
|
|
1530
|
+
def test_get_form_state_with_checkbox_widget(self):
|
|
1531
|
+
block = blocks.ChoiceBlock(
|
|
1532
|
+
choices=[("tea", "Tea"), ("coffee", "Coffee")],
|
|
1533
|
+
widget=forms.CheckboxSelectMultiple,
|
|
1534
|
+
)
|
|
1535
|
+
form_state = block.get_form_state(["tea", "coffee"])
|
|
1536
|
+
self.assertEqual(form_state, ["tea", "coffee"])
|
|
1537
|
+
|
|
1511
1538
|
|
|
1512
1539
|
class TestRawHTMLBlock(unittest.TestCase):
|
|
1513
1540
|
def test_get_default_with_fallback_value(self):
|
wagtail/tests/test_utils.py
CHANGED
|
@@ -28,7 +28,7 @@ from wagtail.coreutils import (
|
|
|
28
28
|
)
|
|
29
29
|
from wagtail.models import Page, Site
|
|
30
30
|
from wagtail.utils.file import hash_filelike
|
|
31
|
-
from wagtail.utils.utils import deep_update
|
|
31
|
+
from wagtail.utils.utils import deep_update, flatten_choices
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
class TestCamelCaseToUnderscore(TestCase):
|
|
@@ -575,3 +575,30 @@ class HashFileLikeTestCase(SimpleTestCase):
|
|
|
575
575
|
hash_filelike(FakeLargeFile()),
|
|
576
576
|
"bd36f0c5a02cd6e9e34202ea3ff8db07b533e025",
|
|
577
577
|
)
|
|
578
|
+
|
|
579
|
+
|
|
580
|
+
class TestFlattenChoices(SimpleTestCase):
|
|
581
|
+
def test_tuple_choices(self):
|
|
582
|
+
choices = [(1, "1st"), (2, "2nd")]
|
|
583
|
+
self.assertEqual(flatten_choices(choices), {"1": "1st", "2": "2nd"})
|
|
584
|
+
|
|
585
|
+
def test_grouped_tuple_choices(self):
|
|
586
|
+
choices = [("Group", [(1, "1st"), (2, "2nd")])]
|
|
587
|
+
self.assertEqual(flatten_choices(choices), {"1": "1st", "2": "2nd"})
|
|
588
|
+
|
|
589
|
+
def test_dictionary_choices(self):
|
|
590
|
+
choices = {
|
|
591
|
+
"Martial Arts": {"judo": "Judo", "karate": "Karate"},
|
|
592
|
+
"Racket": {"badminton": "Badminton", "tennis": "Tennis"},
|
|
593
|
+
"unknown": "Unknown",
|
|
594
|
+
}
|
|
595
|
+
self.assertEqual(
|
|
596
|
+
flatten_choices(choices),
|
|
597
|
+
{
|
|
598
|
+
"judo": "Judo",
|
|
599
|
+
"karate": "Karate",
|
|
600
|
+
"badminton": "Badminton",
|
|
601
|
+
"tennis": "Tennis",
|
|
602
|
+
"unknown": "Unknown",
|
|
603
|
+
},
|
|
604
|
+
)
|
|
Binary file
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
# Translators:
|
|
6
6
|
# Amir Mahmoodi, 2022
|
|
7
7
|
# Amir Mahmoodi, 2022
|
|
8
|
+
# Bardia Khoshroo, 2024
|
|
8
9
|
# pyzenberg <pyzenberg@gmail.com>, 2017
|
|
9
10
|
# pyzenberg <pyzenberg@gmail.com>, 2017
|
|
10
11
|
msgid ""
|
|
@@ -13,7 +14,7 @@ msgstr ""
|
|
|
13
14
|
"Report-Msgid-Bugs-To: \n"
|
|
14
15
|
"POT-Creation-Date: 2024-05-02 10:04+0100\n"
|
|
15
16
|
"PO-Revision-Date: 2014-02-19 11:54+0000\n"
|
|
16
|
-
"Last-Translator:
|
|
17
|
+
"Last-Translator: Bardia Khoshroo, 2024\n"
|
|
17
18
|
"Language-Team: Persian (http://app.transifex.com/torchbox/wagtail/language/"
|
|
18
19
|
"fa/)\n"
|
|
19
20
|
"MIME-Version: 1.0\n"
|
|
@@ -22,6 +23,12 @@ msgstr ""
|
|
|
22
23
|
"Language: fa\n"
|
|
23
24
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
|
24
25
|
|
|
26
|
+
msgid "Wagtail users"
|
|
27
|
+
msgstr "کاربران وگتیل"
|
|
28
|
+
|
|
29
|
+
msgid "Required. Letters, digits and @/./+/-/_ only."
|
|
30
|
+
msgstr "الزامی. تنها حروف، اعداد و @/./+/-/_ مجاز هستند."
|
|
31
|
+
|
|
25
32
|
msgid "This value may contain only letters, numbers and @/./+/-/_ characters."
|
|
26
33
|
msgstr "این مقدار تنها میتواند شامل حروف، اعداد و نویسه های @/./+/-/_ باشد."
|
|
27
34
|
|
|
@@ -82,24 +89,73 @@ msgstr "هشدارهای رد شده"
|
|
|
82
89
|
msgid "Receive notification when your page edit is rejected"
|
|
83
90
|
msgstr "دریافت هشدار هنگام رد شدن ویرایش صفحه"
|
|
84
91
|
|
|
92
|
+
msgid "updated comments notifications"
|
|
93
|
+
msgstr "اطلاعیه برای نظرات بروز رسانی شده"
|
|
94
|
+
|
|
95
|
+
msgid ""
|
|
96
|
+
"Receive notification when comments have been created, resolved, or deleted "
|
|
97
|
+
"on a page that you have subscribed to receive comment notifications on"
|
|
98
|
+
msgstr ""
|
|
99
|
+
"برای صفحاتی که ساخته، حذف یا حل شده اند و شما عضو شده اید، اطلاعیه دریافت "
|
|
100
|
+
"کنید."
|
|
101
|
+
|
|
85
102
|
msgid "preferred language"
|
|
86
103
|
msgstr "زبان ترجیحی"
|
|
87
104
|
|
|
88
105
|
msgid "Select language for the admin"
|
|
89
106
|
msgstr "زبانی را برای راهبری انتخاب کنید"
|
|
90
107
|
|
|
108
|
+
msgid "current time zone"
|
|
109
|
+
msgstr "منطقه زمانی کنونی"
|
|
110
|
+
|
|
111
|
+
msgid "Select your current time zone"
|
|
112
|
+
msgstr "منطقه زمانی کنونی را انتخاب کنید"
|
|
113
|
+
|
|
91
114
|
msgid "profile picture"
|
|
92
115
|
msgstr "تصویر پروفایل"
|
|
93
116
|
|
|
117
|
+
msgid "System default"
|
|
118
|
+
msgstr "تنظیمات پیشفرض سیستم"
|
|
119
|
+
|
|
120
|
+
msgid "Light"
|
|
121
|
+
msgstr "روشن"
|
|
122
|
+
|
|
123
|
+
msgid "Dark"
|
|
124
|
+
msgstr "تیره"
|
|
125
|
+
|
|
126
|
+
msgid "admin theme"
|
|
127
|
+
msgstr "تم ادمین"
|
|
128
|
+
|
|
94
129
|
msgid "Default"
|
|
95
130
|
msgstr "پیشفرض"
|
|
96
131
|
|
|
132
|
+
#. Translators: "Density" is the term used to describe the amount of space
|
|
133
|
+
#. between elements in the user interface
|
|
134
|
+
msgid "density"
|
|
135
|
+
msgstr "غلظت"
|
|
136
|
+
|
|
97
137
|
msgid "user profile"
|
|
98
138
|
msgstr "پروفایل کاربر"
|
|
99
139
|
|
|
140
|
+
msgid "user profiles"
|
|
141
|
+
msgstr "مشخصات کاربری"
|
|
142
|
+
|
|
143
|
+
msgid "You don't have permission to edit this user"
|
|
144
|
+
msgid_plural "You don't have permission to edit these users"
|
|
145
|
+
msgstr[0] "شما مجوز تغییر این کاربر را ندارید"
|
|
146
|
+
msgstr[1] "شما مجوز تغییر این کاربر را ندارید"
|
|
147
|
+
|
|
100
148
|
msgid "Delete"
|
|
101
149
|
msgstr "حذف"
|
|
102
150
|
|
|
151
|
+
msgid "Are you sure you want to delete these users?"
|
|
152
|
+
msgstr "آیا مطمئنید که میخواهید این کاربر حذف شود؟"
|
|
153
|
+
|
|
154
|
+
msgid "You don't have permission to delete this user"
|
|
155
|
+
msgid_plural "You don't have permission to delete these users"
|
|
156
|
+
msgstr[0] "شما مجوز حذف این کاربران را ندارید"
|
|
157
|
+
msgstr[1] "شما مجوز حذف این کاربران را ندارید"
|
|
158
|
+
|
|
103
159
|
msgid "Yes, delete"
|
|
104
160
|
msgstr "بله حذف شود"
|
|
105
161
|
|
|
@@ -221,6 +277,12 @@ msgstr "به دلیل بروز خطا گروه ذخیره نشد."
|
|
|
221
277
|
msgid "Group '%(object)s' deleted."
|
|
222
278
|
msgstr "گروه '%(object)s' حذف شد."
|
|
223
279
|
|
|
280
|
+
msgid "Last login"
|
|
281
|
+
msgstr "آخرین ورود"
|
|
282
|
+
|
|
283
|
+
msgid "Group"
|
|
284
|
+
msgstr "گروه"
|
|
285
|
+
|
|
224
286
|
msgid "Add a user"
|
|
225
287
|
msgstr "افزودن یک کاربر"
|
|
226
288
|
|
|
Binary file
|
|
@@ -17,14 +17,14 @@
|
|
|
17
17
|
# nahuel, 2014
|
|
18
18
|
# incognitae <pierre@onoffdesign.com>, 2016
|
|
19
19
|
# Sebastien Andrivet <sebastien@andrivet.com>, 2016
|
|
20
|
-
# Sébastien Corbin <seb.corbin@gmail.com>, 2023
|
|
20
|
+
# Sébastien Corbin <seb.corbin@gmail.com>, 2023-2024
|
|
21
21
|
msgid ""
|
|
22
22
|
msgstr ""
|
|
23
23
|
"Project-Id-Version: Wagtail\n"
|
|
24
24
|
"Report-Msgid-Bugs-To: \n"
|
|
25
25
|
"POT-Creation-Date: 2024-05-02 10:04+0100\n"
|
|
26
26
|
"PO-Revision-Date: 2014-02-19 11:54+0000\n"
|
|
27
|
-
"Last-Translator: Sébastien Corbin <seb.corbin@gmail.com>, 2023\n"
|
|
27
|
+
"Last-Translator: Sébastien Corbin <seb.corbin@gmail.com>, 2023-2024\n"
|
|
28
28
|
"Language-Team: French (http://app.transifex.com/torchbox/wagtail/language/"
|
|
29
29
|
"fr/)\n"
|
|
30
30
|
"MIME-Version: 1.0\n"
|
|
@@ -142,6 +142,17 @@ msgstr "Sombre"
|
|
|
142
142
|
msgid "admin theme"
|
|
143
143
|
msgstr "Thème d'interface d'administration"
|
|
144
144
|
|
|
145
|
+
msgid "Default"
|
|
146
|
+
msgstr "Par défaut"
|
|
147
|
+
|
|
148
|
+
msgid "Snug"
|
|
149
|
+
msgstr "Ajusté"
|
|
150
|
+
|
|
151
|
+
#. Translators: "Density" is the term used to describe the amount of space
|
|
152
|
+
#. between elements in the user interface
|
|
153
|
+
msgid "density"
|
|
154
|
+
msgstr "densité"
|
|
155
|
+
|
|
145
156
|
msgid "user profile"
|
|
146
157
|
msgstr "compte utilisateur"
|
|
147
158
|
|
|
@@ -279,6 +290,30 @@ msgstr "Déverrouiller"
|
|
|
279
290
|
msgid "Custom permissions"
|
|
280
291
|
msgstr "Permissions personnalisées"
|
|
281
292
|
|
|
293
|
+
msgid "Toggle all"
|
|
294
|
+
msgstr "Activer/Désactiver tout"
|
|
295
|
+
|
|
296
|
+
msgid "Toggle all add permissions"
|
|
297
|
+
msgstr "Activer/Désactiver toutes les permissions d'ajout"
|
|
298
|
+
|
|
299
|
+
msgid "Toggle all change permissions"
|
|
300
|
+
msgstr "Activer/Désactiver toutes les permissions de modification"
|
|
301
|
+
|
|
302
|
+
msgid "Toggle all delete permissions"
|
|
303
|
+
msgstr "Activer/Désactiver toutes les permissions de suppression"
|
|
304
|
+
|
|
305
|
+
msgid "Toggle all publish permissions"
|
|
306
|
+
msgstr "Activer/Désactiver toutes les permissions de publication"
|
|
307
|
+
|
|
308
|
+
msgid "Toggle all lock permissions"
|
|
309
|
+
msgstr "Activer/Désactiver toutes les permissions de verrouillage"
|
|
310
|
+
|
|
311
|
+
msgid "Toggle all unlock permissions"
|
|
312
|
+
msgstr "Activer/Désactiver toutes les permissions de déverrouillage"
|
|
313
|
+
|
|
314
|
+
msgid "Toggle all custom permissions"
|
|
315
|
+
msgstr "Activer/Désactiver toutes les permissions personnalisées"
|
|
316
|
+
|
|
282
317
|
msgid "Other permissions"
|
|
283
318
|
msgstr "Autres permissions"
|
|
284
319
|
|
|
@@ -321,6 +356,9 @@ msgstr "Supprimer l'utilisateur"
|
|
|
321
356
|
msgid "Select all users in listing"
|
|
322
357
|
msgstr "Sélectionner tous les utilisateurs dans la liste"
|
|
323
358
|
|
|
359
|
+
msgid "Sorry, no users match your query"
|
|
360
|
+
msgstr "Désolé, aucun utilisateur ne correspond à votre recherche"
|
|
361
|
+
|
|
324
362
|
#, python-format
|
|
325
363
|
msgid ""
|
|
326
364
|
"There are no users configured. Why not <a "
|
|
@@ -409,8 +447,11 @@ msgstr "Voir les utilisateurs dans ce groupe"
|
|
|
409
447
|
msgid "Group '%(object)s' deleted."
|
|
410
448
|
msgstr "Groupe « %(object)s » supprimé."
|
|
411
449
|
|
|
450
|
+
msgid "Last login"
|
|
451
|
+
msgstr "Dernière connexion"
|
|
452
|
+
|
|
412
453
|
msgid "Group"
|
|
413
|
-
msgstr "
|
|
454
|
+
msgstr "Groupe"
|
|
414
455
|
|
|
415
456
|
msgid "Add a user"
|
|
416
457
|
msgstr "Ajouter un utilisateur"
|
|
Binary file
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# This file is distributed under the same license as the PACKAGE package.
|
|
4
4
|
#
|
|
5
5
|
# Translators:
|
|
6
|
-
# Arnar Tumi Þorsteinsson <arnartumi@gmail.com>, 2015-2018,2020-
|
|
6
|
+
# Arnar Tumi Þorsteinsson <arnartumi@gmail.com>, 2015-2018,2020-2024
|
|
7
7
|
# saevarom <saevar@saevar.is>, 2017-2023
|
|
8
8
|
msgid ""
|
|
9
9
|
msgstr ""
|
|
@@ -11,7 +11,8 @@ msgstr ""
|
|
|
11
11
|
"Report-Msgid-Bugs-To: \n"
|
|
12
12
|
"POT-Creation-Date: 2024-05-02 10:04+0100\n"
|
|
13
13
|
"PO-Revision-Date: 2014-02-19 11:54+0000\n"
|
|
14
|
-
"Last-Translator:
|
|
14
|
+
"Last-Translator: Arnar Tumi Þorsteinsson <arnartumi@gmail.com>, "
|
|
15
|
+
"2015-2018,2020-2024\n"
|
|
15
16
|
"Language-Team: Icelandic (Iceland) (http://app.transifex.com/torchbox/"
|
|
16
17
|
"wagtail/language/is_IS/)\n"
|
|
17
18
|
"MIME-Version: 1.0\n"
|
|
@@ -128,6 +129,14 @@ msgstr "Þema stjórnkerfis"
|
|
|
128
129
|
msgid "Default"
|
|
129
130
|
msgstr "Sjálfgefið"
|
|
130
131
|
|
|
132
|
+
msgid "Snug"
|
|
133
|
+
msgstr "Þétt"
|
|
134
|
+
|
|
135
|
+
#. Translators: "Density" is the term used to describe the amount of space
|
|
136
|
+
#. between elements in the user interface
|
|
137
|
+
msgid "density"
|
|
138
|
+
msgstr "Þéttleiki"
|
|
139
|
+
|
|
131
140
|
msgid "user profile"
|
|
132
141
|
msgstr "uppsetning notanda"
|
|
133
142
|
|
|
@@ -256,6 +265,30 @@ msgstr "Aflæsa"
|
|
|
256
265
|
msgid "Custom permissions"
|
|
257
266
|
msgstr "Sérsniðnar heimildir"
|
|
258
267
|
|
|
268
|
+
msgid "Toggle all"
|
|
269
|
+
msgstr "Sýna/fela allt"
|
|
270
|
+
|
|
271
|
+
msgid "Toggle all add permissions"
|
|
272
|
+
msgstr "Sýna/fela heimildir til viðbóta"
|
|
273
|
+
|
|
274
|
+
msgid "Toggle all change permissions"
|
|
275
|
+
msgstr "Sýna/fela heimildir til að breyta"
|
|
276
|
+
|
|
277
|
+
msgid "Toggle all delete permissions"
|
|
278
|
+
msgstr "Sýna/fela heimildir til að eyða"
|
|
279
|
+
|
|
280
|
+
msgid "Toggle all publish permissions"
|
|
281
|
+
msgstr "Sýna/fela útgáfu heimildir"
|
|
282
|
+
|
|
283
|
+
msgid "Toggle all lock permissions"
|
|
284
|
+
msgstr "Sýna/fela læsinga heimildir"
|
|
285
|
+
|
|
286
|
+
msgid "Toggle all unlock permissions"
|
|
287
|
+
msgstr "Sýna/fela aflæsinga heimildir"
|
|
288
|
+
|
|
289
|
+
msgid "Toggle all custom permissions"
|
|
290
|
+
msgstr "Sýna/fela sérsniðnar heimildir"
|
|
291
|
+
|
|
259
292
|
msgid "Other permissions"
|
|
260
293
|
msgstr "Aðrar heimildir"
|
|
261
294
|
|
|
@@ -298,6 +331,9 @@ msgstr "Eyða notanda"
|
|
|
298
331
|
msgid "Select all users in listing"
|
|
299
332
|
msgstr "Velja alla notendur"
|
|
300
333
|
|
|
334
|
+
msgid "Sorry, no users match your query"
|
|
335
|
+
msgstr "Því miður eru engir notendur sem passa við leitina þína"
|
|
336
|
+
|
|
301
337
|
#, python-format
|
|
302
338
|
msgid ""
|
|
303
339
|
"There are no users configured. Why not <a "
|
|
@@ -379,6 +415,12 @@ msgstr "Skoða notendur í þessari grúppu"
|
|
|
379
415
|
msgid "Group '%(object)s' deleted."
|
|
380
416
|
msgstr "Hópi '%(object)s' eytt."
|
|
381
417
|
|
|
418
|
+
msgid "Last login"
|
|
419
|
+
msgstr "Síðasta innskráning"
|
|
420
|
+
|
|
421
|
+
msgid "Group"
|
|
422
|
+
msgstr "Hópur"
|
|
423
|
+
|
|
382
424
|
msgid "Add a user"
|
|
383
425
|
msgstr "Bæta við notanda"
|
|
384
426
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
# Iuri L. Machado, 2021
|
|
14
14
|
# Luiz Boaretto <lboaretto@gmail.com>, 2016
|
|
15
15
|
# Luiz Boaretto <lboaretto@gmail.com>, 2016-2018,2021,2024
|
|
16
|
-
# Rodrigo de Almeida Sottomaior Macedo <sottomaiormacedotec@
|
|
16
|
+
# Rodrigo de Almeida Sottomaior Macedo <sottomaiormacedotec@sottomaiormacedo.tech>, 2022
|
|
17
17
|
# Thiago Cangussu <cangussu.thg@gmail.com>, 2014
|
|
18
18
|
# Thiago Cangussu <cng.thg@gmail.com>, 2014
|
|
19
19
|
msgid ""
|
|
Binary file
|