summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2022-05-17 12:17:47 +0200
committerCarlton Gibson <carlton@noumenal.es>2022-05-17 14:13:35 +0200
commitd1f1a0168ab8a2556980ec1410512b5f02502da4 (patch)
treeccd2608c06effe1bb0c8cf909dcdca801ff329e6
parent2a5cfe8a2c38b5d4316af736562e1f52ca033dc4 (diff)
[4.1.x] Updated source translation catalogs.
-rw-r--r--django/conf/locale/en/LC_MESSAGES/django.po532
-rw-r--r--django/contrib/admin/locale/en/LC_MESSAGES/django.po260
-rw-r--r--django/contrib/admin/locale/en/LC_MESSAGES/djangojs.po16
-rw-r--r--django/db/models/fields/__init__.py4
4 files changed, 422 insertions, 390 deletions
diff --git a/django/conf/locale/en/LC_MESSAGES/django.po b/django/conf/locale/en/LC_MESSAGES/django.po
index 4aef1af29a..6e76729680 100644
--- a/django/conf/locale/en/LC_MESSAGES/django.po
+++ b/django/conf/locale/en/LC_MESSAGES/django.po
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-21 10:22+0200\n"
+"POT-Creation-Date: 2022-05-17 05:23-0500\n"
"PO-Revision-Date: 2010-05-13 15:35+0200\n"
"Last-Translator: Django team\n"
"Language-Team: English <en@li.org>\n"
@@ -270,139 +270,139 @@ msgstr ""
msgid "Malay"
msgstr ""
-#: conf/global_settings.py:120
+#: conf/global_settings.py:121
msgid "Burmese"
msgstr ""
-#: conf/global_settings.py:121
+#: conf/global_settings.py:122
msgid "Norwegian Bokmål"
msgstr ""
-#: conf/global_settings.py:122
+#: conf/global_settings.py:123
msgid "Nepali"
msgstr ""
-#: conf/global_settings.py:123
+#: conf/global_settings.py:124
msgid "Dutch"
msgstr ""
-#: conf/global_settings.py:124
+#: conf/global_settings.py:125
msgid "Norwegian Nynorsk"
msgstr ""
-#: conf/global_settings.py:125
+#: conf/global_settings.py:126
msgid "Ossetic"
msgstr ""
-#: conf/global_settings.py:126
+#: conf/global_settings.py:127
msgid "Punjabi"
msgstr ""
-#: conf/global_settings.py:127
+#: conf/global_settings.py:128
msgid "Polish"
msgstr ""
-#: conf/global_settings.py:128
+#: conf/global_settings.py:129
msgid "Portuguese"
msgstr ""
-#: conf/global_settings.py:129
+#: conf/global_settings.py:130
msgid "Brazilian Portuguese"
msgstr ""
-#: conf/global_settings.py:130
+#: conf/global_settings.py:131
msgid "Romanian"
msgstr ""
-#: conf/global_settings.py:131
+#: conf/global_settings.py:132
msgid "Russian"
msgstr ""
-#: conf/global_settings.py:132
+#: conf/global_settings.py:133
msgid "Slovak"
msgstr ""
-#: conf/global_settings.py:133
+#: conf/global_settings.py:134
msgid "Slovenian"
msgstr ""
-#: conf/global_settings.py:134
+#: conf/global_settings.py:135
msgid "Albanian"
msgstr ""
-#: conf/global_settings.py:135
+#: conf/global_settings.py:136
msgid "Serbian"
msgstr ""
-#: conf/global_settings.py:136
+#: conf/global_settings.py:137
msgid "Serbian Latin"
msgstr ""
-#: conf/global_settings.py:137
+#: conf/global_settings.py:138
msgid "Swedish"
msgstr ""
-#: conf/global_settings.py:138
+#: conf/global_settings.py:139
msgid "Swahili"
msgstr ""
-#: conf/global_settings.py:139
+#: conf/global_settings.py:140
msgid "Tamil"
msgstr ""
-#: conf/global_settings.py:140
+#: conf/global_settings.py:141
msgid "Telugu"
msgstr ""
-#: conf/global_settings.py:141
+#: conf/global_settings.py:142
msgid "Tajik"
msgstr ""
-#: conf/global_settings.py:142
+#: conf/global_settings.py:143
msgid "Thai"
msgstr ""
-#: conf/global_settings.py:143
+#: conf/global_settings.py:144
msgid "Turkmen"
msgstr ""
-#: conf/global_settings.py:144
+#: conf/global_settings.py:145
msgid "Turkish"
msgstr ""
-#: conf/global_settings.py:145
+#: conf/global_settings.py:146
msgid "Tatar"
msgstr ""
-#: conf/global_settings.py:146
+#: conf/global_settings.py:147
msgid "Udmurt"
msgstr ""
-#: conf/global_settings.py:147
+#: conf/global_settings.py:148
msgid "Ukrainian"
msgstr ""
-#: conf/global_settings.py:148
+#: conf/global_settings.py:149
msgid "Urdu"
msgstr ""
-#: conf/global_settings.py:149
+#: conf/global_settings.py:150
msgid "Uzbek"
msgstr ""
-#: conf/global_settings.py:150
+#: conf/global_settings.py:151
msgid "Vietnamese"
msgstr ""
-#: conf/global_settings.py:151
+#: conf/global_settings.py:152
msgid "Simplified Chinese"
msgstr ""
-#: conf/global_settings.py:152
+#: conf/global_settings.py:153
msgid "Traditional Chinese"
msgstr ""
-#: contrib/messages/apps.py:7
+#: contrib/messages/apps.py:15
msgid "Messages"
msgstr ""
@@ -424,15 +424,15 @@ msgstr ""
msgid "…"
msgstr ""
-#: core/paginator.py:51
+#: core/paginator.py:50
msgid "That page number is not an integer"
msgstr ""
-#: core/paginator.py:53
+#: core/paginator.py:52
msgid "That page number is less than 1"
msgstr ""
-#: core/paginator.py:58
+#: core/paginator.py:57
msgid "That page contains no results"
msgstr ""
@@ -440,62 +440,67 @@ msgstr ""
msgid "Enter a valid value."
msgstr ""
-#: core/validators.py:93 forms/fields.py:674
+#: core/validators.py:104 forms/fields.py:751
msgid "Enter a valid URL."
msgstr ""
-#: core/validators.py:150
+#: core/validators.py:164
msgid "Enter a valid integer."
msgstr ""
-#: core/validators.py:161
+#: core/validators.py:175
msgid "Enter a valid email address."
msgstr ""
#. Translators: "letters" means latin letters: a-z and A-Z.
-#: core/validators.py:262
+#: core/validators.py:256
msgid ""
"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
msgstr ""
-#: core/validators.py:269
+#: core/validators.py:264
msgid ""
"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
"hyphens."
msgstr ""
-#: core/validators.py:278 core/validators.py:288 core/validators.py:311
+#: core/validators.py:276 core/validators.py:284 core/validators.py:313
msgid "Enter a valid IPv4 address."
msgstr ""
-#: core/validators.py:296 core/validators.py:312
+#: core/validators.py:293 core/validators.py:314
msgid "Enter a valid IPv6 address."
msgstr ""
-#: core/validators.py:306 core/validators.py:310
+#: core/validators.py:305 core/validators.py:312
msgid "Enter a valid IPv4 or IPv6 address."
msgstr ""
-#: core/validators.py:340
+#: core/validators.py:348
msgid "Enter only digits separated by commas."
msgstr ""
-#: core/validators.py:346
+#: core/validators.py:354
#, python-format
msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
msgstr ""
-#: core/validators.py:379
+#: core/validators.py:389
#, python-format
msgid "Ensure this value is less than or equal to %(limit_value)s."
msgstr ""
-#: core/validators.py:388
+#: core/validators.py:398
#, python-format
msgid "Ensure this value is greater than or equal to %(limit_value)s."
msgstr ""
-#: core/validators.py:398
+#: core/validators.py:407
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr ""
+
+#: core/validators.py:417
#, python-format
msgid ""
"Ensure this value has at least %(limit_value)d character (it has "
@@ -506,7 +511,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: core/validators.py:413
+#: core/validators.py:435
#, python-format
msgid ""
"Ensure this value has at most %(limit_value)d character (it has "
@@ -517,25 +522,25 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: core/validators.py:432 forms/fields.py:292 forms/fields.py:327
+#: core/validators.py:458 forms/fields.py:347 forms/fields.py:386
msgid "Enter a number."
msgstr ""
-#: core/validators.py:434
+#: core/validators.py:460
#, python-format
msgid "Ensure that there are no more than %(max)s digit in total."
msgid_plural "Ensure that there are no more than %(max)s digits in total."
msgstr[0] ""
msgstr[1] ""
-#: core/validators.py:439
+#: core/validators.py:465
#, python-format
msgid "Ensure that there are no more than %(max)s decimal place."
msgid_plural "Ensure that there are no more than %(max)s decimal places."
msgstr[0] ""
msgstr[1] ""
-#: core/validators.py:444
+#: core/validators.py:470
#, python-format
msgid ""
"Ensure that there are no more than %(max)s digit before the decimal point."
@@ -544,248 +549,253 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: core/validators.py:506
+#: core/validators.py:539
#, python-format
msgid ""
"File extension “%(extension)s” is not allowed. Allowed extensions are: "
"%(allowed_extensions)s."
msgstr ""
-#: core/validators.py:559
+#: core/validators.py:600
msgid "Null characters are not allowed."
msgstr ""
-#: db/models/base.py:1201 forms/models.py:772
+#: db/models/base.py:1420 forms/models.py:898
msgid "and"
msgstr ""
-#: db/models/base.py:1203
+#: db/models/base.py:1422
#, python-format
msgid "%(model_name)s with this %(field_labels)s already exists."
msgstr ""
-#: db/models/fields/__init__.py:100
+#: db/models/constraints.py:17
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr ""
+
+#: db/models/fields/__init__.py:129
#, python-format
msgid "Value %(value)r is not a valid choice."
msgstr ""
-#: db/models/fields/__init__.py:101
+#: db/models/fields/__init__.py:130
msgid "This field cannot be null."
msgstr ""
-#: db/models/fields/__init__.py:102
+#: db/models/fields/__init__.py:131
msgid "This field cannot be blank."
msgstr ""
-#: db/models/fields/__init__.py:103
+#: db/models/fields/__init__.py:132
#, python-format
msgid "%(model_name)s with this %(field_label)s already exists."
msgstr ""
-#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'.
-#. Eg: "Title must be unique for pub_date year"
-#: db/models/fields/__init__.py:107
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#: db/models/fields/__init__.py:136
#, python-format
msgid ""
"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
msgstr ""
-#: db/models/fields/__init__.py:126
+#: db/models/fields/__init__.py:174
#, python-format
msgid "Field of type: %(field_type)s"
msgstr ""
-#: db/models/fields/__init__.py:954
+#: db/models/fields/__init__.py:1065
#, python-format
msgid "“%(value)s” value must be either True or False."
msgstr ""
-#: db/models/fields/__init__.py:955
+#: db/models/fields/__init__.py:1066
#, python-format
msgid "“%(value)s” value must be either True, False, or None."
msgstr ""
-#: db/models/fields/__init__.py:957
+#: db/models/fields/__init__.py:1068
msgid "Boolean (Either True or False)"
msgstr ""
-#: db/models/fields/__init__.py:998
+#: db/models/fields/__init__.py:1118
#, python-format
msgid "String (up to %(max_length)s)"
msgstr ""
-#: db/models/fields/__init__.py:1092
+#: db/models/fields/__init__.py:1222
msgid "Comma-separated integers"
msgstr ""
-#: db/models/fields/__init__.py:1187
+#: db/models/fields/__init__.py:1323
#, python-format
msgid ""
"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
"format."
msgstr ""
-#: db/models/fields/__init__.py:1189 db/models/fields/__init__.py:1311
+#: db/models/fields/__init__.py:1327 db/models/fields/__init__.py:1462
#, python-format
msgid ""
"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
"date."
msgstr ""
-#: db/models/fields/__init__.py:1192
+#: db/models/fields/__init__.py:1331
msgid "Date (without time)"
msgstr ""
-#: db/models/fields/__init__.py:1309
+#: db/models/fields/__init__.py:1458
#, python-format
msgid ""
"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
"uuuuuu]][TZ] format."
msgstr ""
-#: db/models/fields/__init__.py:1313
+#: db/models/fields/__init__.py:1466
#, python-format
msgid ""
"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
"[TZ]) but it is an invalid date/time."
msgstr ""
-#: db/models/fields/__init__.py:1317
+#: db/models/fields/__init__.py:1471
msgid "Date (with time)"
msgstr ""
-#: db/models/fields/__init__.py:1436
+#: db/models/fields/__init__.py:1595
#, python-format
msgid "“%(value)s” value must be a decimal number."
msgstr ""
-#: db/models/fields/__init__.py:1438
+#: db/models/fields/__init__.py:1597
msgid "Decimal number"
msgstr ""
-#: db/models/fields/__init__.py:1577
+#: db/models/fields/__init__.py:1754
#, python-format
msgid ""
"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
"uuuuuu] format."
msgstr ""
-#: db/models/fields/__init__.py:1580
+#: db/models/fields/__init__.py:1758
msgid "Duration"
msgstr ""
-#: db/models/fields/__init__.py:1630
+#: db/models/fields/__init__.py:1810
msgid "Email address"
msgstr ""
-#: db/models/fields/__init__.py:1653
+#: db/models/fields/__init__.py:1835
msgid "File path"
msgstr ""
-#: db/models/fields/__init__.py:1719
+#: db/models/fields/__init__.py:1913
#, python-format
msgid "“%(value)s” value must be a float."
msgstr ""
-#: db/models/fields/__init__.py:1721
+#: db/models/fields/__init__.py:1915
msgid "Floating point number"
msgstr ""
-#: db/models/fields/__init__.py:1759
+#: db/models/fields/__init__.py:1955
#, python-format
msgid "“%(value)s” value must be an integer."
msgstr ""
-#: db/models/fields/__init__.py:1761
+#: db/models/fields/__init__.py:1957
msgid "Integer"
msgstr ""
-#: db/models/fields/__init__.py:1844
+#: db/models/fields/__init__.py:2049
msgid "Big (8 byte) integer"
msgstr ""
-#: db/models/fields/__init__.py:1859
+#: db/models/fields/__init__.py:2066
msgid "Small integer"
msgstr ""
-#: db/models/fields/__init__.py:1867
+#: db/models/fields/__init__.py:2074
msgid "IPv4 address"
msgstr ""
-#: db/models/fields/__init__.py:1898
+#: db/models/fields/__init__.py:2105
msgid "IP address"
msgstr ""
-#: db/models/fields/__init__.py:1978 db/models/fields/__init__.py:1979
+#: db/models/fields/__init__.py:2198 db/models/fields/__init__.py:2199
#, python-format
msgid "“%(value)s” value must be either None, True or False."
msgstr ""
-#: db/models/fields/__init__.py:1981
+#: db/models/fields/__init__.py:2201
msgid "Boolean (Either True, False or None)"
msgstr ""
-#: db/models/fields/__init__.py:2035
+#: db/models/fields/__init__.py:2252
msgid "Positive big integer"
msgstr ""
-#: db/models/fields/__init__.py:2048
+#: db/models/fields/__init__.py:2267
msgid "Positive integer"
msgstr ""
-#: db/models/fields/__init__.py:2061
+#: db/models/fields/__init__.py:2282
msgid "Positive small integer"
msgstr ""
-#: db/models/fields/__init__.py:2075
+#: db/models/fields/__init__.py:2298
#, python-format
msgid "Slug (up to %(max_length)s)"
msgstr ""
-#: db/models/fields/__init__.py:2107
+#: db/models/fields/__init__.py:2334
msgid "Text"
msgstr ""
-#: db/models/fields/__init__.py:2173
+#: db/models/fields/__init__.py:2409
#, python-format
msgid ""
"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
"format."
msgstr ""
-#: db/models/fields/__init__.py:2175
+#: db/models/fields/__init__.py:2413
#, python-format
msgid ""
"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
"invalid time."
msgstr ""
-#: db/models/fields/__init__.py:2178
+#: db/models/fields/__init__.py:2417
msgid "Time"
msgstr ""
-#: db/models/fields/__init__.py:2283
+#: db/models/fields/__init__.py:2525
msgid "URL"
msgstr ""
-#: db/models/fields/__init__.py:2305
+#: db/models/fields/__init__.py:2549
msgid "Raw binary data"
msgstr ""
-#: db/models/fields/__init__.py:2370
+#: db/models/fields/__init__.py:2614
#, python-format
msgid "“%(value)s” is not a valid UUID."
msgstr ""
-#: db/models/fields/__init__.py:2372
+#: db/models/fields/__init__.py:2616
msgid "Universally unique identifier"
msgstr ""
-#: db/models/fields/files.py:226
+#: db/models/fields/files.py:232
msgid "File"
msgstr ""
-#: db/models/fields/files.py:375
+#: db/models/fields/files.py:392
msgid "Image"
msgstr ""
@@ -797,81 +807,81 @@ msgstr ""
msgid "Value must be valid JSON."
msgstr ""
-#: db/models/fields/related.py:808
+#: db/models/fields/related.py:920
#, python-format
msgid "%(model)s instance with %(field)s %(value)r does not exist."
msgstr ""
-#: db/models/fields/related.py:810
+#: db/models/fields/related.py:922
msgid "Foreign Key (type determined by related field)"
msgstr ""
-#: db/models/fields/related.py:1066
+#: db/models/fields/related.py:1229
msgid "One-to-one relationship"
msgstr ""
-#: db/models/fields/related.py:1120
+#: db/models/fields/related.py:1286
#, python-format
msgid "%(from)s-%(to)s relationship"
msgstr ""
-#: db/models/fields/related.py:1121
+#: db/models/fields/related.py:1288
#, python-format
msgid "%(from)s-%(to)s relationships"
msgstr ""
-#: db/models/fields/related.py:1163
+#: db/models/fields/related.py:1336
msgid "Many-to-many relationship"
msgstr ""
#. Translators: If found as last label character, these punctuation
#. characters will prevent the default label_suffix to be appended to the label
-#: forms/boundfield.py:165
+#: forms/boundfield.py:176
msgid ":?.!"
msgstr ""
-#: forms/fields.py:54
+#: forms/fields.py:91
msgid "This field is required."
msgstr ""
-#: forms/fields.py:247
+#: forms/fields.py:298
msgid "Enter a whole number."
msgstr ""
-#: forms/fields.py:401 forms/fields.py:1144
+#: forms/fields.py:467 forms/fields.py:1240
msgid "Enter a valid date."
msgstr ""
-#: forms/fields.py:425 forms/fields.py:1145
+#: forms/fields.py:490 forms/fields.py:1241
msgid "Enter a valid time."
msgstr ""
-#: forms/fields.py:453
+#: forms/fields.py:517
msgid "Enter a valid date/time."
msgstr ""
-#: forms/fields.py:487
+#: forms/fields.py:551
msgid "Enter a valid duration."
msgstr ""
-#: forms/fields.py:488
+#: forms/fields.py:552
#, python-brace-format
msgid "The number of days must be between {min_days} and {max_days}."
msgstr ""
-#: forms/fields.py:548
+#: forms/fields.py:618
msgid "No file was submitted. Check the encoding type on the form."
msgstr ""
-#: forms/fields.py:549
+#: forms/fields.py:619
msgid "No file was submitted."
msgstr ""
-#: forms/fields.py:550
+#: forms/fields.py:620
msgid "The submitted file is empty."
msgstr ""
-#: forms/fields.py:552
+#: forms/fields.py:622
#, python-format
msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
msgid_plural ""
@@ -879,470 +889,470 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: forms/fields.py:555
+#: forms/fields.py:627
msgid "Please either submit a file or check the clear checkbox, not both."
msgstr ""
-#: forms/fields.py:616
+#: forms/fields.py:693
msgid ""
"Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image."
msgstr ""
-#: forms/fields.py:778 forms/fields.py:868 forms/models.py:1331
+#: forms/fields.py:856 forms/fields.py:948 forms/models.py:1571
#, python-format
msgid "Select a valid choice. %(value)s is not one of the available choices."
msgstr ""
-#: forms/fields.py:869 forms/fields.py:984 forms/models.py:1330
+#: forms/fields.py:950 forms/fields.py:1069 forms/models.py:1569
msgid "Enter a list of values."
msgstr ""
-#: forms/fields.py:985
+#: forms/fields.py:1070
msgid "Enter a complete value."
msgstr ""
-#: forms/fields.py:1203
+#: forms/fields.py:1309
msgid "Enter a valid UUID."
msgstr ""
-#: forms/fields.py:1233
+#: forms/fields.py:1339
msgid "Enter a valid JSON."
msgstr ""
#. Translators: This is the default suffix added to form field labels
-#: forms/forms.py:84
+#: forms/forms.py:98
msgid ":"
msgstr ""
-#: forms/forms.py:230 forms/forms.py:304
+#: forms/forms.py:248 forms/forms.py:332
#, python-format
msgid "(Hidden field %(name)s) %(error)s"
msgstr ""
-#: forms/formsets.py:60
+#: forms/formsets.py:61
#, python-format
msgid ""
"ManagementForm data is missing or has been tampered with. Missing fields: "
"%(field_names)s. You may need to file a bug report if the issue persists."
msgstr ""
-#: forms/formsets.py:381
+#: forms/formsets.py:65
#, python-format
-msgid "Please submit at most %d form."
-msgid_plural "Please submit at most %d forms."
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
msgstr[0] ""
msgstr[1] ""
-#: forms/formsets.py:388
+#: forms/formsets.py:70
#, python-format
-msgid "Please submit at least %d form."
-msgid_plural "Please submit at least %d forms."
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
msgstr[0] ""
msgstr[1] ""
-#: forms/formsets.py:420 forms/formsets.py:427
+#: forms/formsets.py:481 forms/formsets.py:488
msgid "Order"
msgstr ""
-#: forms/formsets.py:433
+#: forms/formsets.py:494
msgid "Delete"
msgstr ""
-#: forms/models.py:767
+#: forms/models.py:891
#, python-format
msgid "Please correct the duplicate data for %(field)s."
msgstr ""
-#: forms/models.py:771
+#: forms/models.py:896
#, python-format
msgid "Please correct the duplicate data for %(field)s, which must be unique."
msgstr ""
-#: forms/models.py:777
+#: forms/models.py:903
#, python-format
msgid ""
"Please correct the duplicate data for %(field_name)s which must be unique "
"for the %(lookup)s in %(date_field)s."
msgstr ""
-#: forms/models.py:786
+#: forms/models.py:912
msgid "Please correct the duplicate values below."
msgstr ""
-#: forms/models.py:1127
+#: forms/models.py:1343
msgid "The inline value did not match the parent instance."
msgstr ""
-#: forms/models.py:1211
+#: forms/models.py:1434
msgid "Select a valid choice. That choice is not one of the available choices."
msgstr ""
-#: forms/models.py:1333
+#: forms/models.py:1573
#, python-format
msgid "“%(pk)s” is not a valid value."
msgstr ""
-#: forms/utils.py:198
+#: forms/utils.py:226
#, python-format
msgid ""
"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
"may be ambiguous or it may not exist."
msgstr ""
-#: forms/widgets.py:403
+#: forms/widgets.py:439
msgid "Clear"
msgstr ""
-#: forms/widgets.py:404
+#: forms/widgets.py:440
msgid "Currently"
msgstr ""
-#: forms/widgets.py:405
+#: forms/widgets.py:441
msgid "Change"
msgstr ""
-#: forms/widgets.py:712
+#: forms/widgets.py:770
msgid "Unknown"
msgstr ""
-#: forms/widgets.py:713
+#: forms/widgets.py:771
msgid "Yes"
msgstr ""
-#: forms/widgets.py:714
+#: forms/widgets.py:772
msgid "No"
msgstr ""
#. Translators: Please do not add spaces around commas.
-#: template/defaultfilters.py:827
+#: template/defaultfilters.py:853
msgid "yes,no,maybe"
msgstr ""
-#: template/defaultfilters.py:856 template/defaultfilters.py:873
+#: template/defaultfilters.py:883 template/defaultfilters.py:900
#, python-format
msgid "%(size)d byte"
msgid_plural "%(size)d bytes"
msgstr[0] ""
msgstr[1] ""
-#: template/defaultfilters.py:875
+#: template/defaultfilters.py:902
#, python-format
msgid "%s KB"
msgstr ""
-#: template/defaultfilters.py:877
+#: template/defaultfilters.py:904
#, python-format
msgid "%s MB"
msgstr ""
-#: template/defaultfilters.py:879
+#: template/defaultfilters.py:906
#, python-format
msgid "%s GB"
msgstr ""
-#: template/defaultfilters.py:881
+#: template/defaultfilters.py:908
#, python-format
msgid "%s TB"
msgstr ""
-#: template/defaultfilters.py:883
+#: template/defaultfilters.py:910
#, python-format
msgid "%s PB"
msgstr ""
-#: utils/dateformat.py:72
+#: utils/dateformat.py:77
msgid "p.m."
msgstr ""
-#: utils/dateformat.py:73
+#: utils/dateformat.py:78
msgid "a.m."
msgstr ""
-#: utils/dateformat.py:78
+#: utils/dateformat.py:83
msgid "PM"
msgstr ""
-#: utils/dateformat.py:79
+#: utils/dateformat.py:84
msgid "AM"
msgstr ""
-#: utils/dateformat.py:150
+#: utils/dateformat.py:155
msgid "midnight"
msgstr ""
-#: utils/dateformat.py:152
+#: utils/dateformat.py:157
msgid "noon"
msgstr ""
-#: utils/dates.py:6
+#: utils/dates.py:7
msgid "Monday"
msgstr ""
-#: utils/dates.py:6
+#: utils/dates.py:8
msgid "Tuesday"
msgstr ""
-#: utils/dates.py:6
+#: utils/dates.py:9
msgid "Wednesday"
msgstr ""
-#: utils/dates.py:6
+#: utils/dates.py:10
msgid "Thursday"
msgstr ""
-#: utils/dates.py:6
+#: utils/dates.py:11
msgid "Friday"
msgstr ""
-#: utils/dates.py:7
+#: utils/dates.py:12
msgid "Saturday"
msgstr ""
-#: utils/dates.py:7
+#: utils/dates.py:13
msgid "Sunday"
msgstr ""
-#: utils/dates.py:10
+#: utils/dates.py:16
msgid "Mon"
msgstr ""
-#: utils/dates.py:10
+#: utils/dates.py:17
msgid "Tue"
msgstr ""
-#: utils/dates.py:10
+#: utils/dates.py:18
msgid "Wed"
msgstr ""
-#: utils/dates.py:10
+#: utils/dates.py:19
msgid "Thu"
msgstr ""
-#: utils/dates.py:10
+#: utils/dates.py:20
msgid "Fri"
msgstr ""
-#: utils/dates.py:11
+#: utils/dates.py:21
msgid "Sat"
msgstr ""
-#: utils/dates.py:11
+#: utils/dates.py:22
msgid "Sun"
msgstr ""
-#: utils/dates.py:14
+#: utils/dates.py:25
msgid "January"
msgstr ""
-#: utils/dates.py:14
+#: utils/dates.py:26
msgid "February"
msgstr ""
-#: utils/dates.py:14
+#: utils/dates.py:27
msgid "March"
msgstr ""
-#: utils/dates.py:14
+#: utils/dates.py:28
msgid "April"
msgstr ""
-#: utils/dates.py:14
+#: utils/dates.py:29
msgid "May"
msgstr ""
-#: utils/dates.py:14
+#: utils/dates.py:30
msgid "June"
msgstr ""
-#: utils/dates.py:15
+#: utils/dates.py:31
msgid "July"
msgstr ""
-#: utils/dates.py:15
+#: utils/dates.py:32
msgid "August"
msgstr ""
-#: utils/dates.py:15
+#: utils/dates.py:33
msgid "September"
msgstr ""
-#: utils/dates.py:15
+#: utils/dates.py:34
msgid "October"
msgstr ""
-#: utils/dates.py:15
+#: utils/dates.py:35
msgid "November"
msgstr ""
-#: utils/dates.py:16
+#: utils/dates.py:36
msgid "December"
msgstr ""
-#: utils/dates.py:19
+#: utils/dates.py:39
msgid "jan"
msgstr ""
-#: utils/dates.py:19
+#: utils/dates.py:40
msgid "feb"
msgstr ""
-#: utils/dates.py:19
+#: utils/dates.py:41
msgid "mar"
msgstr ""
-#: utils/dates.py:19
+#: utils/dates.py:42
msgid "apr"
msgstr ""
-#: utils/dates.py:19
+#: utils/dates.py:43
msgid "may"
msgstr ""
-#: utils/dates.py:19
+#: utils/dates.py:44
msgid "jun"
msgstr ""
-#: utils/dates.py:20
+#: utils/dates.py:45
msgid "jul"
msgstr ""
-#: utils/dates.py:20
+#: utils/dates.py:46
msgid "aug"
msgstr ""
-#: utils/dates.py:20
+#: utils/dates.py:47
msgid "sep"
msgstr ""
-#: utils/dates.py:20
+#: utils/dates.py:48
msgid "oct"
msgstr ""
-#: utils/dates.py:20
+#: utils/dates.py:49
msgid "nov"
msgstr ""
-#: utils/dates.py:20
+#: utils/dates.py:50
msgid "dec"
msgstr ""
-#: utils/dates.py:23
+#: utils/dates.py:53
msgctxt "abbrev. month"
msgid "Jan."
msgstr ""
-#: utils/dates.py:24
+#: utils/dates.py:54
msgctxt "abbrev. month"
msgid "Feb."
msgstr ""
-#: utils/dates.py:25
+#: utils/dates.py:55
msgctxt "abbrev. month"
msgid "March"
msgstr ""
-#: utils/dates.py:26
+#: utils/dates.py:56
msgctxt "abbrev. month"
msgid "April"
msgstr ""
-#: utils/dates.py:27
+#: utils/dates.py:57
msgctxt "abbrev. month"
msgid "May"
msgstr ""
-#: utils/dates.py:28
+#: utils/dates.py:58
msgctxt "abbrev. month"
msgid "June"
msgstr ""
-#: utils/dates.py:29
+#: utils/dates.py:59
msgctxt "abbrev. month"
msgid "July"
msgstr ""
-#: utils/dates.py:30
+#: utils/dates.py:60
msgctxt "abbrev. month"
msgid "Aug."
msgstr ""
-#: utils/dates.py:31
+#: utils/dates.py:61
msgctxt "abbrev. month"
msgid "Sept."
msgstr ""
-#: utils/dates.py:32
+#: utils/dates.py:62
msgctxt "abbrev. month"
msgid "Oct."
msgstr ""
-#: utils/dates.py:33
+#: utils/dates.py:63
msgctxt "abbrev. month"
msgid "Nov."
msgstr ""
-#: utils/dates.py:34
+#: utils/dates.py:64
msgctxt "abbrev. month"
msgid "Dec."
msgstr ""
-#: utils/dates.py:37
+#: utils/dates.py:67
msgctxt "alt. month"
msgid "January"
msgstr ""
-#: utils/dates.py:38
+#: utils/dates.py:68
msgctxt "alt. month"
msgid "February"
msgstr ""
-#: utils/dates.py:39
+#: utils/dates.py:69
msgctxt "alt. month"
msgid "March"
msgstr ""
-#: utils/dates.py:40
+#: utils/dates.py:70
msgctxt "alt. month"
msgid "April"
msgstr ""
-#: utils/dates.py:41
+#: utils/dates.py:71
msgctxt "alt. month"
msgid "May"
msgstr ""
-#: utils/dates.py:42
+#: utils/dates.py:72
msgctxt "alt. month"
msgid "June"
msgstr ""
-#: utils/dates.py:43
+#: utils/dates.py:73
msgctxt "alt. month"
msgid "July"
msgstr ""
-#: utils/dates.py:44
+#: utils/dates.py:74
msgctxt "alt. month"
msgid "August"
msgstr ""
-#: utils/dates.py:45
+#: utils/dates.py:75
msgctxt "alt. month"
msgid "September"
msgstr ""
-#: utils/dates.py:46
+#: utils/dates.py:76
msgctxt "alt. month"
msgid "October"
msgstr ""
-#: utils/dates.py:47
+#: utils/dates.py:77
msgctxt "alt. month"
msgid "November"
msgstr ""
-#: utils/dates.py:48
+#: utils/dates.py:78
msgctxt "alt. month"
msgid "December"
msgstr ""
@@ -1351,18 +1361,18 @@ msgstr ""
msgid "This is not a valid IPv6 address."
msgstr ""
-#: utils/text.py:73
+#: utils/text.py:76
#, python-format
msgctxt "String to return when truncating text"
msgid "%(truncated_text)s…"
msgstr ""
-#: utils/text.py:242
+#: utils/text.py:252
msgid "or"
msgstr ""
#. Translators: This string is used as a separator between list elements
-#: utils/text.py:261 utils/timesince.py:94
+#: utils/text.py:271 utils/timesince.py:94
msgid ", "
msgstr ""
@@ -1408,15 +1418,15 @@ msgid_plural "%(num)d minutes"
msgstr[0] ""
msgstr[1] ""
-#: views/csrf.py:110
+#: views/csrf.py:111
msgid "Forbidden"
msgstr ""
-#: views/csrf.py:111
+#: views/csrf.py:112
msgid "CSRF verification failed. Request aborted."
msgstr ""
-#: views/csrf.py:115
+#: views/csrf.py:116
msgid ""
"You are seeing this message because this HTTPS site requires a “Referer "
"header” to be sent by your web browser, but none was sent. This header is "
@@ -1424,14 +1434,14 @@ msgid ""
"hijacked by third parties."
msgstr ""
-#: views/csrf.py:120
+#: views/csrf.py:122
msgid ""
"If you have configured your browser to disable “Referer” headers, please re-"
"enable them, at least for this site, or for HTTPS connections, or for “same-"
"origin” requests."
msgstr ""
-#: views/csrf.py:124
+#: views/csrf.py:127
msgid ""
"If you are using the <meta name=\"referrer\" content=\"no-referrer\"> tag or "
"including the “Referrer-Policy: no-referrer” header, please remove them. The "
@@ -1440,90 +1450,90 @@ msgid ""
"\" …> for links to third-party sites."
msgstr ""
-#: views/csrf.py:132
+#: views/csrf.py:136
msgid ""
"You are seeing this message because this site requires a CSRF cookie when "
"submitting forms. This cookie is required for security reasons, to ensure "
"that your browser is not being hijacked by third parties."
msgstr ""
-#: views/csrf.py:137
+#: views/csrf.py:142
msgid ""
"If you have configured your browser to disable cookies, please re-enable "
"them, at least for this site, or for “same-origin” requests."
msgstr ""
-#: views/csrf.py:142
+#: views/csrf.py:148
msgid "More information is available with DEBUG=True."
msgstr ""
-#: views/generic/dates.py:41
+#: views/generic/dates.py:44
msgid "No year specified"
msgstr ""
-#: views/generic/dates.py:61 views/generic/dates.py:111
-#: views/generic/dates.py:208
+#: views/generic/dates.py:64 views/generic/dates.py:115
+#: views/generic/dates.py:214
msgid "Date out of range"
msgstr ""
-#: views/generic/dates.py:90
+#: views/generic/dates.py:94
msgid "No month specified"
msgstr ""
-#: views/generic/dates.py:142
+#: views/generic/dates.py:147
msgid "No day specified"
msgstr ""
-#: views/generic/dates.py:188
+#: views/generic/dates.py:194
msgid "No week specified"
msgstr ""
-#: views/generic/dates.py:338 views/generic/dates.py:367
+#: views/generic/dates.py:349 views/generic/dates.py:380
#, python-format
msgid "No %(verbose_name_plural)s available"
msgstr ""
-#: views/generic/dates.py:594
+#: views/generic/dates.py:652
#, python-format
msgid ""
"Future %(verbose_name_plural)s not available because %(class_name)s."
"allow_future is False."
msgstr ""
-#: views/generic/dates.py:628
+#: views/generic/dates.py:692
#, python-format
msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
msgstr ""
-#: views/generic/detail.py:54
+#: views/generic/detail.py:56
#, python-format
msgid "No %(verbose_name)s found matching the query"
msgstr ""
-#: views/generic/list.py:67
+#: views/generic/list.py:70
msgid "Page is not “last”, nor can it be converted to an int."
msgstr ""
-#: views/generic/list.py:72
+#: views/generic/list.py:77
#, python-format
msgid "Invalid page (%(page_number)s): %(message)s"
msgstr ""
-#: views/generic/list.py:154
+#: views/generic/list.py:169
#, python-format
msgid "Empty list and “%(class_name)s.allow_empty” is False."
msgstr ""
-#: views/static.py:40
+#: views/static.py:38
msgid "Directory indexes are not allowed here."
msgstr ""
-#: views/static.py:42
+#: views/static.py:40
#, python-format
msgid "“%(path)s” does not exist"
msgstr ""
-#: views/static.py:80
+#: views/static.py:79
#, python-format
msgid "Index of %(directory)s"
msgstr ""
diff --git a/django/contrib/admin/locale/en/LC_MESSAGES/django.po b/django/contrib/admin/locale/en/LC_MESSAGES/django.po
index ee8c3cf4d1..6efd3478bd 100644
--- a/django/contrib/admin/locale/en/LC_MESSAGES/django.po
+++ b/django/contrib/admin/locale/en/LC_MESSAGES/django.po
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-21 10:22+0200\n"
+"POT-Creation-Date: 2022-05-17 05:10-0500\n"
"PO-Revision-Date: 2010-05-13 15:35+0200\n"
"Last-Translator: Django team\n"
"Language-Team: English <en@li.org>\n"
@@ -14,22 +14,22 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: contrib/admin/actions.py:16
+#: contrib/admin/actions.py:17
#, python-format
msgid "Delete selected %(verbose_name_plural)s"
msgstr ""
-#: contrib/admin/actions.py:46
+#: contrib/admin/actions.py:54
#, python-format
msgid "Successfully deleted %(count)d %(items)s."
msgstr ""
-#: contrib/admin/actions.py:55 contrib/admin/options.py:1897
+#: contrib/admin/actions.py:64 contrib/admin/options.py:2153
#, python-format
msgid "Cannot delete %(name)s"
msgstr ""
-#: contrib/admin/actions.py:57 contrib/admin/options.py:1899
+#: contrib/admin/actions.py:66 contrib/admin/options.py:2155
msgid "Are you sure?"
msgstr ""
@@ -37,325 +37,327 @@ msgstr ""
msgid "Administration"
msgstr ""
-#: contrib/admin/filters.py:108 contrib/admin/filters.py:213
-#: contrib/admin/filters.py:249 contrib/admin/filters.py:284
-#: contrib/admin/filters.py:403 contrib/admin/filters.py:469
+#: contrib/admin/filters.py:118 contrib/admin/filters.py:233
+#: contrib/admin/filters.py:278 contrib/admin/filters.py:321
+#: contrib/admin/filters.py:463 contrib/admin/filters.py:540
msgid "All"
msgstr ""
-#: contrib/admin/filters.py:250
+#: contrib/admin/filters.py:279
msgid "Yes"
msgstr ""
-#: contrib/admin/filters.py:251
+#: contrib/admin/filters.py:280
msgid "No"
msgstr ""
-#: contrib/admin/filters.py:262
+#: contrib/admin/filters.py:295
msgid "Unknown"
msgstr ""
-#: contrib/admin/filters.py:332
+#: contrib/admin/filters.py:375
msgid "Any date"
msgstr ""
-#: contrib/admin/filters.py:333
+#: contrib/admin/filters.py:377
msgid "Today"
msgstr ""
-#: contrib/admin/filters.py:337
+#: contrib/admin/filters.py:384
msgid "Past 7 days"
msgstr ""
-#: contrib/admin/filters.py:341
+#: contrib/admin/filters.py:391
msgid "This month"
msgstr ""
-#: contrib/admin/filters.py:345
+#: contrib/admin/filters.py:398
msgid "This year"
msgstr ""
-#: contrib/admin/filters.py:353
+#: contrib/admin/filters.py:408
msgid "No date"
msgstr ""
-#: contrib/admin/filters.py:354
+#: contrib/admin/filters.py:409
msgid "Has date"
msgstr ""
-#: contrib/admin/filters.py:470
+#: contrib/admin/filters.py:541
msgid "Empty"
msgstr ""
-#: contrib/admin/filters.py:471
+#: contrib/admin/filters.py:542
msgid "Not empty"
msgstr ""
-#: contrib/admin/forms.py:13
+#: contrib/admin/forms.py:14
#, python-format
msgid ""
"Please enter the correct %(username)s and password for a staff account. Note "
"that both fields may be case-sensitive."
msgstr ""
-#: contrib/admin/helpers.py:23
+#: contrib/admin/helpers.py:30
msgid "Action:"
msgstr ""
-#: contrib/admin/helpers.py:350
+#: contrib/admin/helpers.py:431
#, python-format
msgid "Add another %(verbose_name)s"
msgstr ""
-#: contrib/admin/helpers.py:353
+#: contrib/admin/helpers.py:435
msgid "Remove"
msgstr ""
-#: contrib/admin/models.py:17
+#: contrib/admin/models.py:18
msgid "Addition"
msgstr ""
-#: contrib/admin/models.py:18 contrib/admin/templates/admin/app_list.html:28
+#: contrib/admin/models.py:19 contrib/admin/templates/admin/app_list.html:28
#: contrib/admin/templates/admin/edit_inline/stacked.html:16
#: contrib/admin/templates/admin/edit_inline/tabular.html:36
-#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:11
+#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:12
msgid "Change"
msgstr ""
-#: contrib/admin/models.py:19
+#: contrib/admin/models.py:20
msgid "Deletion"
msgstr ""
-#: contrib/admin/models.py:41
+#: contrib/admin/models.py:50
msgid "action time"
msgstr ""
-#: contrib/admin/models.py:48
+#: contrib/admin/models.py:57
msgid "user"
msgstr ""
-#: contrib/admin/models.py:53
+#: contrib/admin/models.py:62
msgid "content type"
msgstr ""
-#: contrib/admin/models.py:56
+#: contrib/admin/models.py:66
msgid "object id"
msgstr ""
-#. Translators: 'repr' means representation (https://docs.python.org/library/functions.html#repr)
-#: contrib/admin/models.py:58
+#. Translators: 'repr' means representation
+#. (https://docs.python.org/library/functions.html#repr)
+#: contrib/admin/models.py:69
msgid "object repr"
msgstr ""
-#: contrib/admin/models.py:59
+#: contrib/admin/models.py:71
msgid "action flag"
msgstr ""
-#: contrib/admin/models.py:61
+#: contrib/admin/models.py:74
msgid "change message"
msgstr ""
-#: contrib/admin/models.py:66
+#: contrib/admin/models.py:79
msgid "log entry"
msgstr ""
-#: contrib/admin/models.py:67
+#: contrib/admin/models.py:80
msgid "log entries"
msgstr ""
-#: contrib/admin/models.py:76
+#: contrib/admin/models.py:89
#, python-format
msgid "Added “%(object)s”."
msgstr ""
-#: contrib/admin/models.py:78
+#: contrib/admin/models.py:91
#, python-format
msgid "Changed “%(object)s” — %(changes)s"
msgstr ""
-#: contrib/admin/models.py:83
+#: contrib/admin/models.py:96
#, python-format
msgid "Deleted “%(object)s.”"
msgstr ""
-#: contrib/admin/models.py:85
+#: contrib/admin/models.py:98
msgid "LogEntry Object"
msgstr ""
-#: contrib/admin/models.py:111
+#: contrib/admin/models.py:127
#, python-brace-format
msgid "Added {name} “{object}”."
msgstr ""
-#: contrib/admin/models.py:113
+#: contrib/admin/models.py:132
msgid "Added."
msgstr ""
-#: contrib/admin/models.py:117 contrib/admin/options.py:2132
+#: contrib/admin/models.py:140 contrib/admin/options.py:2410
msgid "and"
msgstr ""
-#: contrib/admin/models.py:121
+#: contrib/admin/models.py:147
#, python-brace-format
msgid "Changed {fields} for {name} “{object}”."
msgstr ""
-#: contrib/admin/models.py:125
+#: contrib/admin/models.py:153
#, python-brace-format
msgid "Changed {fields}."
msgstr ""
-#: contrib/admin/models.py:129
+#: contrib/admin/models.py:163
#, python-brace-format
msgid "Deleted {name} “{object}”."
msgstr ""
-#: contrib/admin/models.py:132
+#: contrib/admin/models.py:169
msgid "No fields changed."
msgstr ""
-#: contrib/admin/options.py:202 contrib/admin/options.py:234
+#: contrib/admin/options.py:232 contrib/admin/options.py:273
msgid "None"
msgstr ""
-#: contrib/admin/options.py:280
+#: contrib/admin/options.py:321
msgid "Hold down “Control”, or “Command” on a Mac, to select more than one."
msgstr ""
-#: contrib/admin/options.py:1232 contrib/admin/options.py:1256
+#: contrib/admin/options.py:1376 contrib/admin/options.py:1405
#, python-brace-format
msgid "The {name} “{obj}” was added successfully."
msgstr ""
-#: contrib/admin/options.py:1234
+#: contrib/admin/options.py:1378
msgid "You may edit it again below."
msgstr ""
-#: contrib/admin/options.py:1246
+#: contrib/admin/options.py:1391
#, python-brace-format
msgid ""
"The {name} “{obj}” was added successfully. You may add another {name} below."
msgstr ""
-#: contrib/admin/options.py:1296
+#: contrib/admin/options.py:1453
#, python-brace-format
msgid ""
"The {name} “{obj}” was changed successfully. You may edit it again below."
msgstr ""
-#: contrib/admin/options.py:1306
+#: contrib/admin/options.py:1468
#, python-brace-format
msgid "The {name} “{obj}” was added successfully. You may edit it again below."
msgstr ""
-#: contrib/admin/options.py:1319
+#: contrib/admin/options.py:1487
#, python-brace-format
msgid ""
"The {name} “{obj}” was changed successfully. You may add another {name} "
"below."
msgstr ""
-#: contrib/admin/options.py:1331
+#: contrib/admin/options.py:1504
#, python-brace-format
msgid "The {name} “{obj}” was changed successfully."
msgstr ""
-#: contrib/admin/options.py:1408 contrib/admin/options.py:1738
+#: contrib/admin/options.py:1583 contrib/admin/options.py:1973
msgid ""
"Items must be selected in order to perform actions on them. No items have "
"been changed."
msgstr ""
-#: contrib/admin/options.py:1427
+#: contrib/admin/options.py:1603
msgid "No action selected."
msgstr ""
-#: contrib/admin/options.py:1452
+#: contrib/admin/options.py:1636
#, python-format
msgid "The %(name)s “%(obj)s” was deleted successfully."
msgstr ""
-#: contrib/admin/options.py:1538
+#: contrib/admin/options.py:1739
#, python-format
msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?"
msgstr ""
-#: contrib/admin/options.py:1633
+#: contrib/admin/options.py:1851
#, python-format
msgid "Add %s"
msgstr ""
-#: contrib/admin/options.py:1635
+#: contrib/admin/options.py:1853
#, python-format
msgid "Change %s"
msgstr ""
-#: contrib/admin/options.py:1637
+#: contrib/admin/options.py:1855
#, python-format
msgid "View %s"
msgstr ""
-#: contrib/admin/options.py:1716
+#: contrib/admin/options.py:1943
msgid "Database error"
msgstr ""
-#: contrib/admin/options.py:1785
+#: contrib/admin/options.py:2031
#, python-format
msgid "%(count)s %(name)s was changed successfully."
msgid_plural "%(count)s %(name)s were changed successfully."
msgstr[0] ""
msgstr[1] ""
-#: contrib/admin/options.py:1816
+#: contrib/admin/options.py:2062
#, python-format
msgid "%(total_count)s selected"
msgid_plural "All %(total_count)s selected"
msgstr[0] ""
msgstr[1] ""
-#: contrib/admin/options.py:1824
+#: contrib/admin/options.py:2068
#, python-format
msgid "0 of %(cnt)s selected"
msgstr ""
-#: contrib/admin/options.py:1944
+#: contrib/admin/options.py:2212
#, python-format
msgid "Change history: %s"
msgstr ""
-#. Translators: Model verbose name and instance representation,
-#. suitable to be an item in a list.
-#: contrib/admin/options.py:2125
+#. Translators: Model verbose name and instance
+#. representation, suitable to be an item in a
+#. list.
+#: contrib/admin/options.py:2404
#, python-format
msgid "%(class_name)s %(instance)s"
msgstr ""
-#: contrib/admin/options.py:2134
+#: contrib/admin/options.py:2413
#, python-format
msgid ""
"Deleting %(class_name)s %(instance)s would require deleting the following "
"protected related objects: %(related_objects)s"
msgstr ""
-#: contrib/admin/sites.py:48 contrib/admin/templates/admin/base_site.html:3
+#: contrib/admin/sites.py:47 contrib/admin/templates/admin/base_site.html:3
msgid "Django site admin"
msgstr ""
-#: contrib/admin/sites.py:51 contrib/admin/templates/admin/base_site.html:6
+#: contrib/admin/sites.py:50 contrib/admin/templates/admin/base_site.html:6
msgid "Django administration"
msgstr ""
-#: contrib/admin/sites.py:54
+#: contrib/admin/sites.py:53
msgid "Site administration"
msgstr ""
-#: contrib/admin/sites.py:402 contrib/admin/templates/admin/login.html:63
+#: contrib/admin/sites.py:423 contrib/admin/templates/admin/login.html:63
#: contrib/admin/templates/registration/password_reset_complete.html:15
-#: contrib/admin/tests.py:135
+#: contrib/admin/tests.py:144
msgid "Log in"
msgstr ""
-#: contrib/admin/sites.py:547
+#: contrib/admin/sites.py:576
#, python-format
msgid "%(app)s administration"
msgstr ""
@@ -372,16 +374,16 @@ msgstr ""
#: contrib/admin/templates/admin/500.html:6
#: contrib/admin/templates/admin/app_index.html:9
#: contrib/admin/templates/admin/auth/user/change_password.html:10
-#: contrib/admin/templates/admin/base.html:66
+#: contrib/admin/templates/admin/base.html:72
#: contrib/admin/templates/admin/change_form.html:18
-#: contrib/admin/templates/admin/change_list.html:31
+#: contrib/admin/templates/admin/change_list.html:32
#: contrib/admin/templates/admin/delete_confirmation.html:14
#: contrib/admin/templates/admin/delete_selected_confirmation.html:14
#: contrib/admin/templates/admin/invalid_setup.html:6
#: contrib/admin/templates/admin/object_history.html:6
#: contrib/admin/templates/registration/logged_out.html:4
-#: contrib/admin/templates/registration/password_change_done.html:6
-#: contrib/admin/templates/registration/password_change_form.html:7
+#: contrib/admin/templates/registration/password_change_done.html:12
+#: contrib/admin/templates/registration/password_change_form.html:13
#: contrib/admin/templates/registration/password_reset_complete.html:6
#: contrib/admin/templates/registration/password_reset_confirm.html:7
#: contrib/admin/templates/registration/password_reset_done.html:6
@@ -434,13 +436,14 @@ msgid "Models in the %(name)s application"
msgstr ""
#: contrib/admin/templates/admin/app_list.html:19
-#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:18
+#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:20
msgid "Add"
msgstr ""
#: contrib/admin/templates/admin/app_list.html:26
#: contrib/admin/templates/admin/edit_inline/stacked.html:16
#: contrib/admin/templates/admin/edit_inline/tabular.html:36
+#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:35
msgid "View"
msgstr ""
@@ -460,25 +463,25 @@ msgstr ""
#: contrib/admin/templates/admin/auth/user/change_password.html:14
#: contrib/admin/templates/admin/auth/user/change_password.html:52
-#: contrib/admin/templates/admin/base.html:53
-#: contrib/admin/templates/registration/password_change_done.html:3
-#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin/base.html:56
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:5
msgid "Change password"
msgstr ""
#: contrib/admin/templates/admin/auth/user/change_password.html:25
#: contrib/admin/templates/admin/change_form.html:43
-#: contrib/admin/templates/admin/change_list.html:51
+#: contrib/admin/templates/admin/change_list.html:52
#: contrib/admin/templates/admin/login.html:23
-#: contrib/admin/templates/registration/password_change_form.html:18
+#: contrib/admin/templates/registration/password_change_form.html:24
msgid "Please correct the error below."
msgstr ""
#: contrib/admin/templates/admin/auth/user/change_password.html:25
#: contrib/admin/templates/admin/change_form.html:43
-#: contrib/admin/templates/admin/change_list.html:51
+#: contrib/admin/templates/admin/change_list.html:52
#: contrib/admin/templates/admin/login.html:23
-#: contrib/admin/templates/registration/password_change_form.html:18
+#: contrib/admin/templates/registration/password_change_form.html:24
msgid "Please correct the errors below."
msgstr ""
@@ -487,23 +490,23 @@ msgstr ""
msgid "Enter a new password for the user <strong>%(username)s</strong>."
msgstr ""
-#: contrib/admin/templates/admin/base.html:39
+#: contrib/admin/templates/admin/base.html:42
msgid "Welcome,"
msgstr ""
-#: contrib/admin/templates/admin/base.html:44
+#: contrib/admin/templates/admin/base.html:47
msgid "View site"
msgstr ""
-#: contrib/admin/templates/admin/base.html:49
-#: contrib/admin/templates/registration/password_change_done.html:3
-#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin/base.html:52
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:5
msgid "Documentation"
msgstr ""
-#: contrib/admin/templates/admin/base.html:55
-#: contrib/admin/templates/registration/password_change_done.html:3
-#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin/base.html:60
+#: contrib/admin/templates/registration/password_change_done.html:7
+#: contrib/admin/templates/registration/password_change_form.html:8
msgid "Log out"
msgstr ""
@@ -524,11 +527,11 @@ msgstr ""
msgid "View on site"
msgstr ""
-#: contrib/admin/templates/admin/change_list.html:76
+#: contrib/admin/templates/admin/change_list.html:77
msgid "Filter"
msgstr ""
-#: contrib/admin/templates/admin/change_list.html:78
+#: contrib/admin/templates/admin/change_list.html:79
msgid "Clear all filters"
msgstr ""
@@ -547,7 +550,7 @@ msgstr ""
#: contrib/admin/templates/admin/delete_confirmation.html:18
#: contrib/admin/templates/admin/submit_line.html:7
-#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:25
+#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:28
msgid "Delete"
msgstr ""
@@ -618,7 +621,7 @@ msgstr ""
msgid "Delete?"
msgstr ""
-#: contrib/admin/templates/admin/filter.html:2
+#: contrib/admin/templates/admin/filter.html:4
#, python-format
msgid " By %(filter_title)s "
msgstr ""
@@ -685,7 +688,15 @@ msgstr ""
msgid "Action"
msgstr ""
-#: contrib/admin/templates/admin/object_history.html:38
+#: contrib/admin/templates/admin/object_history.html:49
+msgid "entry"
+msgstr ""
+
+#: contrib/admin/templates/admin/object_history.html:49
+msgid "entries"
+msgstr ""
+
+#: contrib/admin/templates/admin/object_history.html:52
msgid ""
"This object doesn’t have a change history. It probably wasn’t added via this "
"admin site."
@@ -741,21 +752,26 @@ msgstr ""
msgid "Close"
msgstr ""
-#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:10
+#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:11
#, python-format
msgid "Change selected %(model)s"
msgstr ""
-#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:17
+#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:19
#, python-format
msgid "Add another %(model)s"
msgstr ""
-#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:24
+#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:27
#, python-format
msgid "Delete selected %(model)s"
msgstr ""
+#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:34
+#, python-format
+msgid "View selected %(model)s"
+msgstr ""
+
#: contrib/admin/templates/registration/logged_out.html:10
msgid "Thanks for spending some quality time with the web site today."
msgstr ""
@@ -764,22 +780,22 @@ msgstr ""
msgid "Log in again"
msgstr ""
-#: contrib/admin/templates/registration/password_change_done.html:7
-#: contrib/admin/templates/registration/password_change_form.html:8
+#: contrib/admin/templates/registration/password_change_done.html:13
+#: contrib/admin/templates/registration/password_change_form.html:14
msgid "Password change"
msgstr ""
-#: contrib/admin/templates/registration/password_change_done.html:12
+#: contrib/admin/templates/registration/password_change_done.html:18
msgid "Your password was changed."
msgstr ""
-#: contrib/admin/templates/registration/password_change_form.html:23
+#: contrib/admin/templates/registration/password_change_form.html:29
msgid ""
"Please enter your old password, for security’s sake, and then enter your new "
"password twice so we can verify you typed it in correctly."
msgstr ""
-#: contrib/admin/templates/registration/password_change_form.html:51
+#: contrib/admin/templates/registration/password_change_form.html:57
#: contrib/admin/templates/registration/password_reset_confirm.html:31
msgid "Change my password"
msgstr ""
@@ -868,41 +884,41 @@ msgstr ""
msgid "Reset my password"
msgstr ""
-#: contrib/admin/templatetags/admin_list.py:391
+#: contrib/admin/templatetags/admin_list.py:433
msgid "All dates"
msgstr ""
-#: contrib/admin/views/main.py:103
+#: contrib/admin/views/main.py:125
#, python-format
msgid "Select %s"
msgstr ""
-#: contrib/admin/views/main.py:105
+#: contrib/admin/views/main.py:127
#, python-format
msgid "Select %s to change"
msgstr ""
-#: contrib/admin/views/main.py:107
+#: contrib/admin/views/main.py:129
#, python-format
msgid "Select %s to view"
msgstr ""
-#: contrib/admin/widgets.py:87
+#: contrib/admin/widgets.py:90
msgid "Date:"
msgstr ""
-#: contrib/admin/widgets.py:88
+#: contrib/admin/widgets.py:91
msgid "Time:"
msgstr ""
-#: contrib/admin/widgets.py:150
+#: contrib/admin/widgets.py:155
msgid "Lookup"
msgstr ""
-#: contrib/admin/widgets.py:340
+#: contrib/admin/widgets.py:375
msgid "Currently:"
msgstr ""
-#: contrib/admin/widgets.py:341
+#: contrib/admin/widgets.py:376
msgid "Change:"
msgstr ""
diff --git a/django/contrib/admin/locale/en/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/en/LC_MESSAGES/djangojs.po
index bca964aa43..c31e74c523 100644
--- a/django/contrib/admin/locale/en/LC_MESSAGES/djangojs.po
+++ b/django/contrib/admin/locale/en/LC_MESSAGES/djangojs.po
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-01-15 09:00+0100\n"
+"POT-Creation-Date: 2022-05-17 05:26-0500\n"
"PO-Revision-Date: 2010-05-13 15:35+0200\n"
"Last-Translator: Django team\n"
"Language-Team: English <en@li.org>\n"
@@ -72,26 +72,26 @@ msgstr ""
msgid "Click to remove all chosen %s at once."
msgstr ""
-#: contrib/admin/static/admin/js/actions.js:64
+#: contrib/admin/static/admin/js/actions.js:67
msgid "%(sel)s of %(cnt)s selected"
msgid_plural "%(sel)s of %(cnt)s selected"
msgstr[0] ""
msgstr[1] ""
-#: contrib/admin/static/admin/js/actions.js:130
+#: contrib/admin/static/admin/js/actions.js:161
msgid ""
"You have unsaved changes on individual editable fields. If you run an "
"action, your unsaved changes will be lost."
msgstr ""
-#: contrib/admin/static/admin/js/actions.js:143
+#: contrib/admin/static/admin/js/actions.js:174
msgid ""
"You have selected an action, but you haven’t saved your changes to "
"individual fields yet. Please click OK to save. You’ll need to re-run the "
"action."
msgstr ""
-#: contrib/admin/static/admin/js/actions.js:144
+#: contrib/admin/static/admin/js/actions.js:175
msgid ""
"You have selected an action, and you haven’t made any changes on individual "
"fields. You’re probably looking for the Go button rather than the Save "
@@ -306,6 +306,12 @@ msgctxt "one letter Saturday"
msgid "S"
msgstr ""
+#: contrib/admin/static/admin/js/change_form.js:14
+msgid ""
+"You have already submitted this form. Are you sure you want to submit it "
+"again?"
+msgstr ""
+
#: contrib/admin/static/admin/js/collapse.js:16
#: contrib/admin/static/admin/js/collapse.js:34
msgid "Show"
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index a073fce165..5381a3b17f 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -130,9 +130,9 @@ class Field(RegisterLookupMixin):
"null": _("This field cannot be null."),
"blank": _("This field cannot be blank."),
"unique": _("%(model_name)s with this %(field_label)s already exists."),
- # Translators: The 'lookup_type' is one of 'date', 'year' or 'month'.
- # Eg: "Title must be unique for pub_date year"
"unique_for_date": _(
+ # Translators: The 'lookup_type' is one of 'date', 'year' or
+ # 'month'. Eg: "Title must be unique for pub_date year"
"%(field_label)s must be unique for "
"%(date_field_label)s %(lookup_type)s."
),