diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 73484f3e9f645..5210a0091403d 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -2,3 +2,5 @@ ca88caa1031c0de545d82de8d90dcae0e03651fb c5cd8783825b5f6384417dac5f3889b4210b7d08 9c19aff7c7561e3a82978a272ecdaad40dda5c00 7119f40c9881666b6f9b5cf7df09ee1d21cc8344 +d3f5782a335823401aa51cae02dd5e789029143a +a637d0bd22665edfe7af40b4da3297462ec3c9cf diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index 0cabb4593488e..444528e06ca7d 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -27,7 +27,8 @@ jobs: python-version: '3.10' - run: python -m pip install flake8 - name: flake8 - uses: liskin/gh-problem-matcher-wrap@v1 + # Pinned to v2.0.0. + uses: liskin/gh-problem-matcher-wrap@d8afa2cfb66dd3f982b1950429e652bc14d0d7d2 with: linters: flake8 run: flake8 @@ -43,7 +44,8 @@ jobs: python-version: '3.10' - run: python -m pip install isort - name: isort - uses: liskin/gh-problem-matcher-wrap@v1 + # Pinned to v2.0.0. + uses: liskin/gh-problem-matcher-wrap@d8afa2cfb66dd3f982b1950429e652bc14d0d7d2 with: linters: isort run: isort --check --diff django tests scripts diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 391c3e080f55b..82d16d3eefc69 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -46,7 +46,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v3 with: - node-version: '12' + node-version: '14' cache: 'npm' cache-dependency-path: '**/package.json' - run: npm install diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d5561b8392c3f..c26f34bad2c2f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/psf/black - rev: 22.3.0 + rev: 23.1.0 hooks: - id: black exclude: \.py-tpl$ @@ -9,10 +9,10 @@ repos: hooks: - id: isort - repo: https://github.com/PyCQA/flake8 - rev: 4.0.1 + rev: 5.0.0 hooks: - id: flake8 - repo: https://github.com/pre-commit/mirrors-eslint - rev: v8.3.0 + rev: v8.15.0 hooks: - id: eslint diff --git a/AUTHORS b/AUTHORS index 1f39fdb6c4b15..fb9550f079fdc 100644 --- a/AUTHORS +++ b/AUTHORS @@ -22,6 +22,7 @@ answer newbie questions, and generally made Django that much better: Ade Lee Adiyat Mubarak Adnan Umer + Arslan Noor Adrian Holovaty Adrian Torres Adrien Lemaire @@ -319,11 +320,13 @@ answer newbie questions, and generally made Django that much better: Filip Noetzel Filip Wasilewski Finn Gruwier Larsen + Fiza Ashraf Flávio Juvenal da Silva Junior flavio.curella@gmail.com Florian Apolloner Florian Demmer Florian Moussous + fnaimi66 Fran Hrženjak Francisco Albarran Cristobal Francisco Couzo @@ -422,6 +425,7 @@ answer newbie questions, and generally made Django that much better: james_027@yahoo.com James Aylett James Bennett + James Gillard James Murty James Tauber James Timmins @@ -489,7 +493,9 @@ answer newbie questions, and generally made Django that much better: John Shaffer Jökull Sólberg Auðunsson Jon Dufresne + Jon Janzen Jonas Haag + Jonas Lundberg Jonathan Davis Jonatas C. D. Jonathan Buchanan diff --git a/django/__init__.py b/django/__init__.py index 7c6a889907572..5bdbc097c98d8 100644 --- a/django/__init__.py +++ b/django/__init__.py @@ -1,6 +1,6 @@ from django.utils.version import get_version -VERSION = (4, 1, 0, "alpha", 0) +VERSION = (4, 1, 8, "alpha", 0) __version__ = get_version(VERSION) diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 40b34bb71c90a..7ac700228f371 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -313,6 +313,10 @@ def gettext_noop(s): # SuspiciousOperation (TooManyFieldsSent) is raised. DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000 +# Maximum number of files encoded in a multipart upload that will be read +# before a SuspiciousOperation (TooManyFilesSent) is raised. +DATA_UPLOAD_MAX_NUMBER_FILES = 100 + # Directory in which upload streamed files will be temporarily saved. A value of # `None` will make Django use the operating system's default temporary directory # (i.e. "/tmp" on *nix systems). diff --git a/django/conf/locale/af/LC_MESSAGES/django.mo b/django/conf/locale/af/LC_MESSAGES/django.mo index 5da1748388354..60608b469e574 100644 Binary files a/django/conf/locale/af/LC_MESSAGES/django.mo and b/django/conf/locale/af/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/af/LC_MESSAGES/django.po b/django/conf/locale/af/LC_MESSAGES/django.po index f7084ad4dc009..4863693854f7f 100644 --- a/django/conf/locale/af/LC_MESSAGES/django.po +++ b/django/conf/locale/af/LC_MESSAGES/django.po @@ -1,15 +1,15 @@ # This file is distributed under the same license as the Django package. # # Translators: -# F Wolff , 2019-2020 +# F Wolff , 2019-2020,2022 # Stephen Cox , 2011-2012 # unklphil , 2014,2019 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-19 20:23+0200\n" -"PO-Revision-Date: 2020-07-20 19:37+0000\n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" "Last-Translator: F Wolff \n" "Language-Team: Afrikaans (http://www.transifex.com/django/django/language/" "af/)\n" @@ -56,7 +56,7 @@ msgid "Czech" msgstr "Tsjeggies" msgid "Welsh" -msgstr "Welsh" +msgstr "Wallies" msgid "Danish" msgstr "Deens" @@ -208,6 +208,9 @@ msgstr "Mongools" msgid "Marathi" msgstr "Marathi" +msgid "Malay" +msgstr "Maleisies" + msgid "Burmese" msgstr "Birmaans" @@ -319,8 +322,13 @@ msgstr "Statiese lêers" msgid "Syndication" msgstr "Sindikasie" +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + msgid "That page number is not an integer" -msgstr "Daai bladsynommer is nie 'n heelgetal nie" +msgstr "Daai bladsynommer is nie ’n heelgetal nie" msgid "That page number is less than 1" msgstr "Daai bladsynommer is minder as 1" @@ -329,7 +337,7 @@ msgid "That page contains no results" msgstr "Daai bladsy bevat geen resultate nie" msgid "Enter a valid value." -msgstr "Gee 'n geldige waarde." +msgstr "Gee ’n geldige waarde." msgid "Enter a valid URL." msgstr "Gee ’n geldige URL." @@ -360,7 +368,7 @@ msgid "Enter a valid IPv4 or IPv6 address." msgstr "Gee ’n geldige IPv4- of IPv6-adres." msgid "Enter only digits separated by commas." -msgstr "Gee slegs syfers in wat deur kommas geskei is." +msgstr "Gee slegs syfers wat deur kommas geskei is." #, python-format msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." @@ -375,6 +383,11 @@ msgstr "Maak seker dat hierdie waarde kleiner of gelyk is aan %(limit_value)s." msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Maak seker dat hierdie waarde groter of gelyk is aan %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Maak seker dat hierdie waarde ’n veelvoud is van stapgrootte %(limit_value)s." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -433,6 +446,8 @@ msgid "" "File extension “%(extension)s” is not allowed. Allowed extensions are: " "%(allowed_extensions)s." msgstr "" +"Lêeruitbreiding “%(extension)s” word nie toegelaat nie. Toegelate " +"uitbreidings is: %(allowed_extensions)s." msgid "Null characters are not allowed." msgstr "Nul-karakters word nie toegelaat nie." @@ -444,6 +459,10 @@ msgstr "en" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s met hierdie %(field_labels)s bestaan alreeds." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Beperking “%(name)s” word verbreek." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Waarde %(value)r is nie ’n geldige keuse nie." @@ -458,8 +477,8 @@ msgstr "Hierdie veld kan nie leeg wees nie." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s met hierdie %(field_label)s bestaan ​​alreeds." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -472,11 +491,11 @@ msgstr "Veld van tipe: %(field_type)s " #, python-format msgid "“%(value)s” value must be either True or False." -msgstr "" +msgstr "“%(value)s” waarde moet óf True óf False wees." #, python-format msgid "“%(value)s” value must be either True, False, or None." -msgstr "" +msgstr "Die waarde “%(value)s” moet True, False of None wees." msgid "Boolean (Either True or False)" msgstr "Boole (True of False)" @@ -493,12 +512,16 @@ msgid "" "“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " "format." msgstr "" +"Die waarde “%(value)s” het ’n ongeldige datumformaat. Dit moet in die " +"formaat JJJJ-MM-DD wees." #, python-format msgid "" "“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " "date." msgstr "" +"Die waarde “%(value)s” het die korrekte formaat (JJJJ-MM-DD), maar dit is ’n " +"ongeldige datum." msgid "Date (without time)" msgstr "Datum (sonder die tyd)" @@ -508,12 +531,16 @@ msgid "" "“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." "uuuuuu]][TZ] format." msgstr "" +"Die waarde “%(value)s” se formaat is ongeldig. Dit moet in die formaat JJJJ-" +"MM-DD HH:MM[:ss[.uuuuuu]][TZ] wees." #, 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 "" +"Die waarde “%(value)s” het die korrekte formaat (JJJJ-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ]) maar dit is ’n ongeldige datum/tyd." msgid "Date (with time)" msgstr "Datum (met die tyd)" @@ -530,6 +557,8 @@ msgid "" "“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." "uuuuuu] format." msgstr "" +"Die waarde “%(value)s” het ’n ongeldige formaat. Dit moet in die formaat " +"[DD] [HH:[MM:]]ss[.uuuuuu] wees." msgid "Duration" msgstr "Duur" @@ -542,14 +571,14 @@ msgstr "Lêerpad" #, python-format msgid "“%(value)s” value must be a float." -msgstr "" +msgstr "Die waarde “%(value)s” moet ’n dryfpuntgetal wees." msgid "Floating point number" msgstr "Dryfpuntgetal" #, python-format msgid "“%(value)s” value must be an integer." -msgstr "“%(value)s”-waarde moet ’n heelgetal wees." +msgstr "Die waarde “%(value)s” moet ’n heelgetal wees." msgid "Integer" msgstr "Heelgetal" @@ -557,6 +586,9 @@ msgstr "Heelgetal" msgid "Big (8 byte) integer" msgstr "Groot (8 greep) heelgetal" +msgid "Small integer" +msgstr "Klein heelgetal" + msgid "IPv4 address" msgstr "IPv4-adres" @@ -583,9 +615,6 @@ msgstr "Klein positiewe heelgetal" msgid "Slug (up to %(max_length)s)" msgstr "Slug (tot en met %(max_length)s karakters)" -msgid "Small integer" -msgstr "Klein heelgetal" - msgid "Text" msgstr "Teks" @@ -602,6 +631,8 @@ msgid "" "“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " "invalid time." msgstr "" +"Die waarde “%(value)s” het die regte formaat (HH:MM[:ss[.uuuuuu]]) maar is " +"nie ’n geldige tyd nie." msgid "Time" msgstr "Tyd" @@ -688,7 +719,7 @@ msgid "No file was submitted." msgstr "Geen lêer is ingedien nie." msgid "The submitted file is empty." -msgstr "Die ingedien lêer is leeg." +msgstr "Die ingediende lêer is leeg." #, python-format msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." @@ -702,7 +733,7 @@ msgstr[1] "" "%(length)d)." msgid "Please either submit a file or check the clear checkbox, not both." -msgstr "Dien die lêer in óf merk die Maak skoon-boksie, nie altwee nie." +msgstr "Dien die lêer in óf merk die Maak skoon-boksie, nie altwee nie." msgid "" "Upload a valid image. The file you uploaded was either not an image or a " @@ -714,7 +745,7 @@ msgstr "" #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "" -"Kies 'n geldige keuse. %(value)s is nie een van die beskikbare keuses nie." +"Kies ’n geldige keuse. %(value)s is nie een van die beskikbare keuses nie." msgid "Enter a list of values." msgstr "Tik ’n lys waardes in." @@ -736,20 +767,23 @@ msgstr ":" msgid "(Hidden field %(name)s) %(error)s" msgstr "(Versteekte veld %(name)s) %(error)s" -msgid "ManagementForm data is missing or has been tampered with" -msgstr "Die ManagementForm-data ontbreek of is mee gepeuter" +#, 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 "" #, python-format -msgid "Please submit %d or fewer forms." -msgid_plural "Please submit %d or fewer forms." -msgstr[0] "Dien asseblief %d of minder vorms in." -msgstr[1] "Dien asseblief %d of minder vorms in." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Dien asseblief hoogstens %(num)d vorm in." +msgstr[1] "Dien asseblief hoogstens %(num)d vorms in." #, python-format -msgid "Please submit %d or more forms." -msgid_plural "Please submit %d or more forms." -msgstr[0] "Dien asseblief %d of meer vorms in." -msgstr[1] "Dien asseblief %d of meer vorms in." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Dien asseblief ten minste %(num)d vorm in." +msgstr[1] "Dien asseblief ten minste %(num)d vorms in." msgid "Order" msgstr "Orde" @@ -1086,40 +1120,40 @@ msgid ", " msgstr ", " #, python-format -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d jaar" -msgstr[1] "%d jare" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d jaar" +msgstr[1] "%(num)d jaar" #, python-format -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d maand" -msgstr[1] "%d maande" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d maand" +msgstr[1] "%(num)d maande" #, python-format -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d week" -msgstr[1] "%d weke" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d week" +msgstr[1] "%(num)d weke" #, python-format -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d dag" -msgstr[1] "%d dae" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dag" +msgstr[1] "%(num)d dae" #, python-format -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d uur" -msgstr[1] "%d ure" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d uur" +msgstr[1] "%(num)d uur" #, python-format -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d minuut" -msgstr[1] "%d minute" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuut" +msgstr[1] "%(num)d minute" msgid "Forbidden" msgstr "Verbode" @@ -1129,7 +1163,7 @@ msgstr "CSRF-verifikasie het misluk. Versoek is laat val." 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 " +"header” to be sent by your web browser, but none was sent. This header is " "required for security reasons, to ensure that your browser is not being " "hijacked by third parties." msgstr "" @@ -1222,8 +1256,8 @@ msgstr "“%(path)s” bestaan nie." msgid "Index of %(directory)s" msgstr "Indeks van %(directory)s" -msgid "Django: the Web framework for perfectionists with deadlines." -msgstr "Django: die webraamwerk vir perfeksioniste met sperdatums." +msgid "The install worked successfully! Congratulations!" +msgstr "Die installasie was suksesvol! Geluk!" #, python-format msgid "" @@ -1234,9 +1268,6 @@ msgstr "" "target=\"_blank\" rel=\"noopener\">vrystellingsnotas vir Django " "%(version)s" -msgid "The install worked successfully! Congratulations!" -msgstr "Die installasie was suksesvol! Geluk!" - #, python-format msgid "" "You are seeing this page because , 2019-2020 # Riterix , 2019 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-19 20:23+0200\n" -"PO-Revision-Date: 2020-07-14 21:42+0000\n" -"Last-Translator: Transifex Bot <>\n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: Jihad Bahmaid Al-Halki\n" "Language-Team: Arabic (Algeria) (http://www.transifex.com/django/django/" "language/ar_DZ/)\n" "MIME-Version: 1.0\n" @@ -152,7 +153,7 @@ msgid "Indonesian" msgstr "الإندونيسية" msgid "Igbo" -msgstr "" +msgstr "إيبو" msgid "Ido" msgstr "ايدو" @@ -208,6 +209,9 @@ msgstr "المنغولية" msgid "Marathi" msgstr "المهاراتية" +msgid "Malay" +msgstr "ملاي" + msgid "Burmese" msgstr "البورمية" @@ -319,6 +323,11 @@ msgstr "الملفات الثابتة" msgid "Syndication" msgstr "توظيف النشر" +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "" + msgid "That page number is not an integer" msgstr "رقم الصفحة ليس عددًا صحيحًا" @@ -377,6 +386,10 @@ msgstr "تحقق من أن تكون هذه القيمة أقل من %(limit_valu msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "تحقق من أن تكون هذه القيمة أكثر من %(limit_value)s أو مساوية لها." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -482,6 +495,10 @@ msgstr "و" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s بهذا %(field_labels)s موجود سلفاً." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "القيمة %(value)r ليست خيارا صحيحاً." @@ -496,8 +513,8 @@ msgstr "لا يمكن ترك هذا الحقل فارغاً." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "النموذج %(model_name)s والحقل %(field_label)s موجود مسبقاً." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -605,6 +622,9 @@ msgstr "عدد صحيح" msgid "Big (8 byte) integer" msgstr "عدد صحيح كبير (8 بايت)" +msgid "Small integer" +msgstr "عدد صحيح صغير" + msgid "IPv4 address" msgstr "عنوان IPv4" @@ -631,9 +651,6 @@ msgstr "عدد صحيح صغير موجب" msgid "Slug (up to %(max_length)s)" msgstr "Slug (حتى %(max_length)s)" -msgid "Small integer" -msgstr "عدد صحيح صغير" - msgid "Text" msgstr "نص" @@ -797,28 +814,33 @@ msgstr ":" msgid "(Hidden field %(name)s) %(error)s" msgstr "(الحقل الخفي %(name)s) %(error)s" -msgid "ManagementForm data is missing or has been tampered with" -msgstr "بيانات ManagementForm مفقودة أو تم العبث بها" +#, 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 "" +"نموذج بيانات الإدارة مفقود أو تم العبث به. %(field_names)sمن الحقول مفقود. " +"قد تحتاج إلى رفع تقرير بالمشكلة إن استمرت الحالة." #, python-format -msgid "Please submit %d or fewer forms." -msgid_plural "Please submit %d or fewer forms." -msgstr[0] "الرجاء إرسال %d إستمارة أو أقل" -msgstr[1] "الرجاء إرسال %d إستمارة أو أقل" -msgstr[2] "الرجاء إرسال %d إستمارة أو أقل" -msgstr[3] "الرجاء إرسال %d إستمارة أو أقل" -msgstr[4] "الرجاء إرسال %d إستمارة أو أقل" -msgstr[5] "الرجاء إرسال %d إستمارة أو أقل" +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" #, python-format -msgid "Please submit %d or more forms." -msgid_plural "Please submit %d or more forms." -msgstr[0] "الرجاء إرسال %d إستمارة أو أكثر." -msgstr[1] "الرجاء إرسال %d إستمارة أو أكثر." -msgstr[2] "الرجاء إرسال %d إستمارة أو أكثر." -msgstr[3] "الرجاء إرسال %d إستمارة أو أكثر." -msgstr[4] "الرجاء إرسال %d إستمارة أو أكثر." -msgstr[5] "الرجاء إرسال %d إستمارة أو أكثر." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" msgid "Order" msgstr "الترتيب" @@ -1159,64 +1181,64 @@ msgid ", " msgstr "، " #, python-format -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d سنة" -msgstr[1] "%d سنة" -msgstr[2] "%d سنتان" -msgstr[3] "%d سنوات" -msgstr[4] "%d سنة" -msgstr[5] "%d سنة" - -#, python-format -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d شهر" -msgstr[1] "%d شهر" -msgstr[2] "%d شهرين\"" -msgstr[3] "%d أشهر" -msgstr[4] "%d شهر" -msgstr[5] "%d شهر" - -#, python-format -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d أسبوع" -msgstr[1] "%d اسبوع" -msgstr[2] "%d أسبوعين" -msgstr[3] "%d أسابيع" -msgstr[4] "%d أسبوع" -msgstr[5] "%d أسبوع" - -#, python-format -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d يوم" -msgstr[1] "%d يوم" -msgstr[2] "%d يومان" -msgstr[3] "%d أيام" -msgstr[4] "%d يوم" -msgstr[5] "%d يوم" - -#, python-format -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d ساعة" -msgstr[1] "%d ساعة" -msgstr[2] "%d ساعتين" -msgstr[3] "%d ساعات" -msgstr[4] "%d ساعة" -msgstr[5] "%d ساعة" - -#, python-format -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d دقيقة" -msgstr[1] "%d دقيقة" -msgstr[2] "%d دقيقتين" -msgstr[3] "%d دقائق" -msgstr[4] "%d دقيقة" -msgstr[5] "%d دقيقة" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#, python-format +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#, python-format +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#, python-format +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#, python-format +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#, python-format +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" msgid "Forbidden" msgstr "ممنوع" @@ -1226,13 +1248,13 @@ msgstr "تم الفشل للتحقق من CSRF. تم إنهاء الطلب." 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 " +"header” to be sent by your web browser, but none was sent. This header is " "required for security reasons, to ensure that your browser is not being " "hijacked by third parties." msgstr "" -"أنت ترى هذه الرسالة لأن موقع HTTPS هذا يتطلب إرسال “Referer header” بواسطة " -"متصفح الويب الخاص بك ، ولكن لم يتم إرسال أي منها. هذا العنوان مطلوب لأسباب " -"أمنية ، لضمان عدم اختطاف متصفحك من قبل أطراف ثالثة." +"أنت ترى هذه الرسالة لأن موقع HTTPS هذا يتطلب \"عنوان مرجعي\" ليتم إرساله " +"بواسطة متصفح الويب الخاص بك ، ولكن لم يتم إرسال أي شيء. هذا العنوان مطلوب " +"لأسباب أمنية ، لضمان عدم اختراق متصفحك من قبل أطراف أخرى." msgid "" "If you have configured your browser to disable “Referer” headers, please re-" @@ -1332,9 +1354,8 @@ msgstr "“%(path)s” غير موجود" msgid "Index of %(directory)s" msgstr "فهرس لـ %(directory)s" -msgid "Django: the Web framework for perfectionists with deadlines." -msgstr "" -"جانغو: المنصة البرمجية لتطبيقات الويب للمتَّسمين بالكمال مع المواعيد المحدّدة." +msgid "The install worked successfully! Congratulations!" +msgstr "تمَّت عملية التثبيت بنجاح! تهانينا!" #, python-format msgid "" @@ -1345,9 +1366,6 @@ msgstr "" "target=\\\"_blank\\\" rel=\\\"noopener\\\"> ملاحظات الإصدار ل جانغو " "%(version)s" -msgid "The install worked successfully! Congratulations!" -msgstr "تمَّت عملية التثبيت بنجاح! تهانينا!" - #, python-format msgid "" "You are seeing this page because , 2018,2020 # Emin Mastizada , 2015-2016 # Metin Amiroff , 2011 +# Nicat Məmmədov , 2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-27 22:40+0200\n" -"PO-Revision-Date: 2020-01-12 07:21+0000\n" -"Last-Translator: Emin Mastizada \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: Nicat Məmmədov , 2022\n" "Language-Team: Azerbaijani (http://www.transifex.com/django/django/language/" "az/)\n" "MIME-Version: 1.0\n" @@ -25,6 +26,9 @@ msgstr "Afrikaans" msgid "Arabic" msgstr "Ərəbcə" +msgid "Algerian Arabic" +msgstr "Əlcəzair Ərəbcəsi" + msgid "Asturian" msgstr "Asturiyaca" @@ -148,6 +152,9 @@ msgstr "İnterlinqua" msgid "Indonesian" msgstr "İndonezcə" +msgid "Igbo" +msgstr "İqbo dili" + msgid "Ido" msgstr "İdoca" @@ -178,6 +185,9 @@ msgstr "Kannada dili" msgid "Korean" msgstr "Koreyca" +msgid "Kyrgyz" +msgstr "Qırğız" + msgid "Luxembourgish" msgstr "Lüksemburqca" @@ -199,6 +209,9 @@ msgstr "Monqolca" msgid "Marathi" msgstr "Marathicə" +msgid "Malay" +msgstr "Malay" + msgid "Burmese" msgstr "Burmescə" @@ -262,9 +275,15 @@ msgstr "Tamilcə" msgid "Telugu" msgstr "Teluqu dili" +msgid "Tajik" +msgstr "Tacik" + msgid "Thai" msgstr "Tayca" +msgid "Turkmen" +msgstr "Türkmən" + msgid "Turkish" msgstr "Türkcə" @@ -304,6 +323,11 @@ msgstr "Statik Fayllar" msgid "Syndication" msgstr "Sindikasiya" +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + msgid "That page number is not an integer" msgstr "Səhifə nömrəsi rəqəm deyil" @@ -365,6 +389,10 @@ msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "" "Bu qiymətin %(limit_value)s-ya bərabər və ya ondan böyük olduğunu yoxlayın." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -434,6 +462,10 @@ msgstr "və" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(field_labels)s ilə %(model_name)s artıq mövcuddur." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "%(value)r dəyəri doğru seçim deyil." @@ -448,8 +480,8 @@ msgstr "Bu sahə ağ qala bilməz." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s bu %(field_label)s sahə ilə artıq mövcuddur." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -556,6 +588,9 @@ msgstr "Tam ədəd" msgid "Big (8 byte) integer" msgstr "Böyük (8 bayt) tam ədəd" +msgid "Small integer" +msgstr "Kiçik tam ədəd" + msgid "IPv4 address" msgstr "IPv4 ünvanı" @@ -569,6 +604,9 @@ msgstr "“%(value)s” dəyəri None, True və ya False olmalıdır." msgid "Boolean (Either True, False or None)" msgstr "Bul (Ya Doğru, ya Yalan, ya da Heç nə)" +msgid "Positive big integer" +msgstr "Müsbət böyük rəqəm" + msgid "Positive integer" msgstr "Müsbət tam ədəd" @@ -579,9 +617,6 @@ msgstr "Müsbət tam kiçik ədəd" msgid "Slug (up to %(max_length)s)" msgstr "Əzmə (%(max_length)s simvola kimi)" -msgid "Small integer" -msgstr "Kiçik tam ədəd" - msgid "Text" msgstr "Mətn" @@ -622,6 +657,12 @@ msgstr "Fayl" msgid "Image" msgstr "Şəkil" +msgid "A JSON object" +msgstr "JSON obyekti" + +msgid "Value must be valid JSON." +msgstr "Dəyər etibarlı JSON olmalıdır." + #, python-format msgid "%(model)s instance with %(field)s %(value)r does not exist." msgstr "%(field)s dəyəri %(value)r olan %(model)s mövcud deyil." @@ -713,6 +754,9 @@ msgstr "Tam dəyər daxil edin." msgid "Enter a valid UUID." msgstr "Keçərli UUID daxil et." +msgid "Enter a valid JSON." +msgstr "Etibarlı bir JSON daxil edin." + #. Translators: This is the default suffix added to form field labels msgid ":" msgstr ":" @@ -721,20 +765,23 @@ msgstr ":" msgid "(Hidden field %(name)s) %(error)s" msgstr "(Gizli %(name)s sahəsi) %(error)s" -msgid "ManagementForm data is missing or has been tampered with" -msgstr "ManagementForm məlumatları əksikdir və ya korlanıb" +#, 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 "" #, python-format -msgid "Please submit %d or fewer forms." -msgid_plural "Please submit %d or fewer forms." -msgstr[0] "Lütfən %d və ya daha az forma göndərin." -msgstr[1] "Lütfən %d və ya daha az forma göndərin." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Zəhmət olmasa ən çox %(num)d forma təsdiqləyin." +msgstr[1] "Zəhmət olmasa ən çox %(num)d forma təsdiqləyin." #, python-format -msgid "Please submit %d or more forms." -msgid_plural "Please submit %d or more forms." -msgstr[0] "Lütfən %d və ya daha çox forma göndərin." -msgstr[1] "Lütfən %d və ya daha çox forma göndərin." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Zəhmət olmasa ən az %(num)d forma təsdiqləyin." +msgstr[1] "Zəhmət olmasa ən az %(num)d forma təsdiqləyin." msgid "Order" msgstr "Sırala" @@ -799,15 +846,7 @@ msgstr "Hə" msgid "No" msgstr "Yox" -msgid "Year" -msgstr "İl" - -msgid "Month" -msgstr "Ay" - -msgid "Day" -msgstr "Gün" - +#. Translators: Please do not add spaces around commas. msgid "yes,no,maybe" msgstr "hə,yox,bəlkə" @@ -1081,43 +1120,40 @@ msgid ", " msgstr ", " #, python-format -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d il" -msgstr[1] "%d il" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d il" +msgstr[1] "%(num)d il" #, python-format -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d ay" -msgstr[1] "%d ay" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d ay" +msgstr[1] "%(num)d ay" #, python-format -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d həftə" -msgstr[1] "%d həftə" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d həftə" +msgstr[1] "%(num)d həftə" #, python-format -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d gün" -msgstr[1] "%d gün" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d gün" +msgstr[1] "%(num)d gün" #, python-format -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d saat" -msgstr[1] "%d saat" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d saat" +msgstr[1] "%(num)d saat" #, python-format -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d dəqiqə" -msgstr[1] "%d dəqiqə" - -msgid "0 minutes" -msgstr "0 dəqiqə" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d dəqiqə" +msgstr[1] "%(num)d dəqiqə" msgid "Forbidden" msgstr "Qadağan" @@ -1127,13 +1163,10 @@ msgstr "CSRF təsdiqləmə alınmadı. Sorğu ləğv edildi." 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 " +"header” to be sent by your web browser, but none was sent. This header is " "required for security reasons, to ensure that your browser is not being " "hijacked by third parties." msgstr "" -"Bu HTTPS sayt səyyahınız tərəfindən “Referer header” göndərilməsini tələb " -"edir, amma göndərilmir. Bu başlıq səyyahınızın üçüncü biri tərəfindən hack-" -"lənmədiyinə əmin olmaq üçün istifadə edilir." msgid "" "If you have configured your browser to disable “Referer” headers, please re-" @@ -1233,8 +1266,8 @@ msgstr "“%(path)s” mövcud deyil" msgid "Index of %(directory)s" msgstr "%(directory)s-nin indeksi" -msgid "Django: the Web framework for perfectionists with deadlines." -msgstr "Django: tələsən mükəmməlləkçilər üçün Web framework." +msgid "The install worked successfully! Congratulations!" +msgstr "Quruluş uğurla tamamlandı! Təbriklər!" #, python-format msgid "" @@ -1245,9 +1278,6 @@ msgstr "" "%(version)s/releases/\" target=\"_blank\" rel=\"noopener\">buraxılış " "qeydlərinə baxın" -msgid "The install worked successfully! Congratulations!" -msgstr "Quruluş uğurla tamamlandı! Təbriklər!" - #, python-format msgid "" "You are seeing this page because \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-05-25 06:49+0000\n" +"Last-Translator: arneatec , 2022\n" "Language-Team: Bulgarian (http://www.transifex.com/django/django/language/" "bg/)\n" "MIME-Version: 1.0\n" @@ -392,6 +392,10 @@ msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "" "Уверете се, че тази стойност е по-голяма или равна на %(limit_value)s ." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Уверете се, че стойността е кратна на стъпката %(limit_value)s." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -465,6 +469,10 @@ msgstr "и" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s с този %(field_labels)s вече съществува." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Ограничението “%(name)s” е нарушено." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Стойността %(value)r не е валиден избор." @@ -479,8 +487,8 @@ msgstr "Това поле не може да е празно." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s с този %(field_label)s вече съществува." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -776,16 +784,16 @@ msgstr "" "проблем продължава." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Моля изпратете не повече от %d формуляр." -msgstr[1] "Моля изпратете не повече от %d формуляри." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Моля изпратете не повече от %(num)d формуляр." +msgstr[1] "Моля изпратете не повече от %(num)d формуляра." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Моля изпратете поне %d формуляр." -msgstr[1] "Моля изпратете поне %d формуляра." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Моля изпратете поне %(num)d формуляр." +msgstr[1] "Моля изпратете поне %(num)d формуляра." msgid "Order" msgstr "Ред" @@ -1189,8 +1197,8 @@ msgid "" "If you are using the tag or " "including the “Referrer-Policy: no-referrer” header, please remove them. The " "CSRF protection requires the “Referer” header to do strict referer checking. " -"If you’re concerned about privacy, use alternatives like for links to third-party sites." +"If you’re concerned about privacy, use alternatives like for links to third-party sites." msgstr "" "Ако използвате таг или " "включвате “Referrer-Policy: no-referrer” header, моля премахнете ги. CSRF " @@ -1292,14 +1300,14 @@ msgstr "" #, python-format msgid "" "You are seeing this page because DEBUG=True is in your settings file and you have not configured any " -"URLs." +"%(version)s/ref/settings/#debug\" target=\"_blank\" " +"rel=\"noopener\">DEBUG=True is in your settings file and you have not " +"configured any URLs." msgstr "" "Вие виждате тази страница, защото DEBUG=True е във вашия файл с настройки и не сте конфигурирали " -"никакви URL-и." +"en/%(version)s/ref/settings/#debug\" target=\"_blank\" " +"rel=\"noopener\">DEBUG=True е във вашия файл с настройки и не сте " +"конфигурирали никакви URL-и." msgid "Django Documentation" msgstr "Django документация" diff --git a/django/conf/locale/ca/LC_MESSAGES/django.mo b/django/conf/locale/ca/LC_MESSAGES/django.mo index 93ad20548216f..208f4a4e00552 100644 Binary files a/django/conf/locale/ca/LC_MESSAGES/django.mo and b/django/conf/locale/ca/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/ca/LC_MESSAGES/django.po b/django/conf/locale/ca/LC_MESSAGES/django.po index 4798a876005ee..01e4dda27ace8 100644 --- a/django/conf/locale/ca/LC_MESSAGES/django.po +++ b/django/conf/locale/ca/LC_MESSAGES/django.po @@ -1,9 +1,10 @@ # This file is distributed under the same license as the Django package. # # Translators: -# Antoni Aloy , 2012,2015-2017,2021 +# Antoni Aloy , 2012,2015-2017,2021-2022 # Carles Barrobés , 2011-2012,2014,2020 # duub qnnp, 2015 +# Emilio Carrion, 2022 # Gil Obradors Via , 2019 # Gil Obradors Via , 2019 # Jannis Leidel , 2011 @@ -16,9 +17,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-24 16:29+0000\n" -"Last-Translator: Mariusz Felisiak \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: Emilio Carrion\n" "Language-Team: Catalan (http://www.transifex.com/django/django/language/" "ca/)\n" "MIME-Version: 1.0\n" @@ -73,7 +74,7 @@ msgid "German" msgstr "alemany" msgid "Lower Sorbian" -msgstr "Lower Sorbian" +msgstr "baix serbi" msgid "Greek" msgstr "grec" @@ -145,7 +146,7 @@ msgid "Croatian" msgstr "croat" msgid "Upper Sorbian" -msgstr "Upper Sorbian" +msgstr "alt serbi" msgid "Hungarian" msgstr "hongarès" @@ -217,7 +218,7 @@ msgid "Marathi" msgstr "Maratí" msgid "Malay" -msgstr "" +msgstr "Malai" msgid "Burmese" msgstr "Burmès" @@ -226,7 +227,7 @@ msgid "Norwegian Bokmål" msgstr "Bokmål noruec" msgid "Nepali" -msgstr "Nepalès" +msgstr "nepalès" msgid "Dutch" msgstr "holandès" @@ -235,7 +236,7 @@ msgid "Norwegian Nynorsk" msgstr "noruec nynorsk" msgid "Ossetic" -msgstr "Ossètic" +msgstr "ossètic" msgid "Punjabi" msgstr "panjabi" @@ -397,6 +398,12 @@ msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "" "Assegureu-vos que aquest valor sigui més gran o igual que %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +" \n" +"Asseguri's que aquest valor sigui un múltiple de %(limit_value)s." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -468,6 +475,10 @@ msgstr "i" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "Ja existeix %(model_name)s amb aquest %(field_labels)s." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "La restricció %(name)s no es compleix." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "El valor %(value)r no és una opció vàlida." @@ -482,8 +493,8 @@ msgstr "Aquest camp no pot estar en blanc." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "Ja existeix %(model_name)s amb aquest %(field_label)s." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -500,7 +511,7 @@ msgstr "El valor '%(value)s' ha de ser \"True\" o \"False\"." #, python-format msgid "“%(value)s” value must be either True, False, or None." -msgstr "El valor '%(value)s' ha de ser cert, fals o cap." +msgstr "El valor '%(value)s' ha de ser cert, fals o buid." msgid "Boolean (Either True or False)" msgstr "Booleà (Cert o Fals)" @@ -576,7 +587,7 @@ msgstr "Ruta del fitxer" #, python-format msgid "“%(value)s” value must be a float." -msgstr "El valor '%(value)s' ha de ser un número de coma flotant." +msgstr "El valor '%(value)s' ha de ser un número decimal." msgid "Floating point number" msgstr "Número de coma flotant" @@ -783,16 +794,16 @@ msgstr "" "persisteix." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Si uns plau, envia com a màxim %d formulari" -msgstr[1] "Si us plau, envia com a màxim %d formularis" +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Enviau com a màxim %(num)d formulari, si us plau." +msgstr[1] "Enviau com a màxim %(num)d formularis, si us plau." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Sisplau envieu com a mínim %d formulari." -msgstr[1] "Si us plau envieu com a mínim %d formularis." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Enviau com a mínim %(num)d formulari, si us plau." +msgstr[1] "Enviau com a mínim %(num)d formularis, si us plau." msgid "Order" msgstr "Ordre" @@ -1071,51 +1082,51 @@ msgstr "Des." msgctxt "alt. month" msgid "January" -msgstr "de gener" +msgstr "gener" msgctxt "alt. month" msgid "February" -msgstr "de febrer" +msgstr "febrer" msgctxt "alt. month" msgid "March" -msgstr "de març" +msgstr "març" msgctxt "alt. month" msgid "April" -msgstr "d'abril" +msgstr "abril" msgctxt "alt. month" msgid "May" -msgstr "de maig" +msgstr "maig" msgctxt "alt. month" msgid "June" -msgstr "de juny" +msgstr "juny" msgctxt "alt. month" msgid "July" -msgstr "de juliol" +msgstr "juliol" msgctxt "alt. month" msgid "August" -msgstr "d'agost" +msgstr "agost" msgctxt "alt. month" msgid "September" -msgstr "de setembre" +msgstr "setembre" msgctxt "alt. month" msgid "October" -msgstr "d'octubre" +msgstr "octubre" msgctxt "alt. month" msgid "November" -msgstr "de novembre" +msgstr "novembre" msgctxt "alt. month" msgid "December" -msgstr "de desembre" +msgstr "desembre" msgid "This is not a valid IPv6 address." msgstr "Aquesta no és una adreça IPv6 vàlida." diff --git a/django/conf/locale/cs/LC_MESSAGES/django.mo b/django/conf/locale/cs/LC_MESSAGES/django.mo index addcb5054dc5f..66e08fed436e1 100644 Binary files a/django/conf/locale/cs/LC_MESSAGES/django.mo and b/django/conf/locale/cs/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/cs/LC_MESSAGES/django.po b/django/conf/locale/cs/LC_MESSAGES/django.po index bf2afb981fc01..bf85e0c41d57e 100644 --- a/django/conf/locale/cs/LC_MESSAGES/django.po +++ b/django/conf/locale/cs/LC_MESSAGES/django.po @@ -4,18 +4,19 @@ # Claude Paroz , 2020 # Jannis Leidel , 2011 # Jan Papež , 2012 +# trendspotter , 2022 # Jirka Vejrazka , 2011 -# trendspotter, 2020 +# trendspotter , 2020 # Tomáš Ehrlich , 2015 # Vláďa Macek , 2012-2014 -# Vláďa Macek , 2015-2021 +# Vláďa Macek , 2015-2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-04-10 16:05+0200\n" -"PO-Revision-Date: 2021-03-18 23:20+0000\n" -"Last-Translator: Vláďa Macek \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: trendspotter \n" "Language-Team: Czech (http://www.transifex.com/django/django/language/cs/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -213,6 +214,9 @@ msgstr "mongolsky" msgid "Marathi" msgstr "marathi" +msgid "Malay" +msgstr "malajštinou" + msgid "Burmese" msgstr "barmštinou" @@ -388,6 +392,11 @@ msgstr "Hodnota musí být menší nebo rovna %(limit_value)s." msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Hodnota musí být větší nebo rovna %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Ujistěte se, že tato hodnota je násobkem velikosti kroku %(limit_value)s." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -477,6 +486,10 @@ msgstr "" "Položka %(model_name)s s touto kombinací hodnot v polích %(field_labels)s " "již existuje." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Omezení \"%(name)s\" je porušeno." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Hodnota %(value)r není platná možnost." @@ -492,8 +505,8 @@ msgid "%(model_name)s with this %(field_label)s already exists." msgstr "" "Položka %(model_name)s s touto hodnotou v poli %(field_label)s již existuje." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -791,20 +804,20 @@ msgstr "" "problém ohlásit." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Odešlete nejvýše %d formulář." -msgstr[1] "Odešlete nejvýše %d formuláře." -msgstr[2] "Odešlete nejvýše %d formuláře." -msgstr[3] "Odešlete nejvýše %d formulářů." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Odešlete nejméně %d formulář." -msgstr[1] "Odešlete nejméně %d formuláře." -msgstr[2] "Odešlete nejméně %d formuláře." -msgstr[3] "Odešlete nejméně %d formulářů." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" msgid "Order" msgstr "Pořadí" @@ -1198,14 +1211,14 @@ msgstr "Selhalo ověření typu CSRF. Požadavek byl zadržen." 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 " +"header” to be sent by your web browser, but none was sent. This header is " "required for security reasons, to ensure that your browser is not being " "hijacked by third parties." msgstr "" -"Tato zpráva se zobrazuje, protože tento web na protokolu HTTPS požaduje " -"záhlaví \"Referer\" od vašeho webového prohlížeče. Záhlaví je požadováno z " -"bezpečnostních důvodů, aby se zajistilo, že vašeho prohlížeče se nezmocnil " -"někdo další." +"Tuto zprávu vidíte, protože tento web na protokolu HTTPS vyžaduje, aby váš " +"prohlížeč zaslal v požadavku záhlaví \"Referer\", k čemuž nedošlo. Záhlaví " +"je požadováno z bezpečnostních důvodů pro kontrolu toho, že prohlížeče se " +"nezmocnila třetí strana." msgid "" "If you have configured your browser to disable “Referer” headers, please re-" diff --git a/django/conf/locale/da/LC_MESSAGES/django.mo b/django/conf/locale/da/LC_MESSAGES/django.mo index 1829715feca6f..270ebae268dd3 100644 Binary files a/django/conf/locale/da/LC_MESSAGES/django.mo and b/django/conf/locale/da/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/da/LC_MESSAGES/django.po b/django/conf/locale/da/LC_MESSAGES/django.po index 85095374ebde2..d030eec0a08e5 100644 --- a/django/conf/locale/da/LC_MESSAGES/django.po +++ b/django/conf/locale/da/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ # Translators: # Christian Joergensen , 2012 # Danni Randeris , 2014 -# Erik Ramsgaard Wognsen , 2020-2021 +# Erik Ramsgaard Wognsen , 2020-2022 # Erik Ramsgaard Wognsen , 2013-2019 # Finn Gruwier Larsen, 2011 # Jannis Leidel , 2011 @@ -14,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-19 19:17+0000\n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" "Last-Translator: Erik Ramsgaard Wognsen \n" "Language-Team: Danish (http://www.transifex.com/django/django/language/da/)\n" "MIME-Version: 1.0\n" @@ -391,6 +391,10 @@ msgstr "Denne værdi skal være mindre end eller lig %(limit_value)s." msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Denne værdi skal være større end eller lig %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Denne værdi skal være et multiplum af trinstørrelse %(limit_value)s." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -456,6 +460,10 @@ msgstr "og" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s med dette %(field_labels)s eksisterer allerede." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Begrænsning “%(name)s” er overtrådt." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Værdien %(value)r er ikke et gyldigt valg." @@ -470,8 +478,8 @@ msgstr "Dette felt kan ikke være tomt." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s med dette %(field_label)s eksisterer allerede." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -768,16 +776,16 @@ msgstr "" "problemet varer ved." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Send venligst højst %d formular." -msgstr[1] "Send venligst højst %d formularer." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Indsend venligst højst %(num)d formular." +msgstr[1] "Indsend venligst højst %(num)d formularer." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Send venligst mindst %d formular." -msgstr[1] "Send venligst mindst %d formularer." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Indsend venligst mindst %(num)d formular." +msgstr[1] "Indsend venligst mindst %(num)d formularer." msgid "Order" msgstr "Rækkefølge" diff --git a/django/conf/locale/de/LC_MESSAGES/django.mo b/django/conf/locale/de/LC_MESSAGES/django.mo index 59a12cf214368..4179eb2d2aabe 100644 Binary files a/django/conf/locale/de/LC_MESSAGES/django.mo and b/django/conf/locale/de/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/de/LC_MESSAGES/django.po b/django/conf/locale/de/LC_MESSAGES/django.po index c5438384d4b68..4ef2a679f17b4 100644 --- a/django/conf/locale/de/LC_MESSAGES/django.po +++ b/django/conf/locale/de/LC_MESSAGES/django.po @@ -4,18 +4,18 @@ # André Hagenbruch, 2011-2012 # Florian Apolloner , 2011 # Daniel Roschka , 2016 -# Florian Apolloner , 2018,2020-2021 -# Jannis Vajen, 2011,2013 +# Florian Apolloner , 2018,2020-2022 +# jnns, 2011,2013 # Jannis Leidel , 2013-2018,2020 -# Jannis Vajen, 2016 +# jnns, 2016 # Markus Holtermann , 2013,2015 # Raphael Michel , 2021 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-28 18:34+0000\n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" "Last-Translator: Florian Apolloner \n" "Language-Team: German (http://www.transifex.com/django/django/language/de/)\n" "MIME-Version: 1.0\n" @@ -393,6 +393,10 @@ msgstr "Dieser Wert muss kleiner oder gleich %(limit_value)s sein." msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Dieser Wert muss größer oder gleich %(limit_value)s sein." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Dieser Wert muss ein Vielfaches von %(limit_value)s sein." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -470,6 +474,10 @@ msgstr "und" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s mit diesem %(field_labels)s existiert bereits." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Bedingung „%(name)s“ ist nicht erfüllt." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Wert %(value)r ist keine gültige Option." @@ -484,8 +492,8 @@ msgstr "Dieses Feld darf nicht leer sein." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s mit diesem %(field_label)s existiert bereits." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -786,16 +794,16 @@ msgstr "" "Fehler dauerhaft besteht." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Bitte höchstens %d Formular abschicken." -msgstr[1] "Bitte höchstens %d Formulare abschicken." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Bitte höchstens %(num)d Forumlar abschicken." +msgstr[1] "Bitte höchstens %(num)d Formulare abschicken." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Bitte mindestens %d Formular abschicken." -msgstr[1] "Bitte mindestens %d Formulare abschicken." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Bitte mindestends %(num)d Formular abschicken." +msgstr[1] "Bitte mindestens %(num)d Formulare abschicken." msgid "Order" msgstr "Reihenfolge" diff --git a/django/conf/locale/dsb/LC_MESSAGES/django.mo b/django/conf/locale/dsb/LC_MESSAGES/django.mo index c7ca18752f4c4..f481414261b3a 100644 Binary files a/django/conf/locale/dsb/LC_MESSAGES/django.mo and b/django/conf/locale/dsb/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/dsb/LC_MESSAGES/django.po b/django/conf/locale/dsb/LC_MESSAGES/django.po index 00996249a51b6..9cd9321c19e70 100644 --- a/django/conf/locale/dsb/LC_MESSAGES/django.po +++ b/django/conf/locale/dsb/LC_MESSAGES/django.po @@ -1,13 +1,13 @@ # This file is distributed under the same license as the Django package. # # Translators: -# Michael Wolf , 2016-2021 +# Michael Wolf , 2016-2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-23 23:47+0000\n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-06-25 06:49+0000\n" "Last-Translator: Michael Wolf \n" "Language-Team: Lower Sorbian (http://www.transifex.com/django/django/" "language/dsb/)\n" @@ -387,6 +387,11 @@ msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "" "Zawěsććo, až toś ta gódnota jo wětša ako abo to samske ako %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Zawěsććo, až toś gódnota jo wjelesere kšacoweje wjelikosći %(limit_value)s." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -474,6 +479,10 @@ msgstr "a" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s z toś tym %(field_labels)s južo eksistěrujo." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Wobranicowanje \"%(name)s\" jo pśestupjone." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Gódnota %(value)r njejo płaśiwa wóleńska móžnosć." @@ -488,8 +497,8 @@ msgstr "Toś to pólo njamóžo prozne byś." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s z toś tym %(field_label)s južo eksistěrujo." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -796,20 +805,20 @@ msgstr "" "eksistěrujo." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Pšosym wótposćelśo maksimalnje %d formular." -msgstr[1] "Pšosym wótposćelśo maksimalnje %d formulara." -msgstr[2] "Pšosym wótposćelśo maksimalnje %d formulary." -msgstr[3] "Pšosym wótposćelśo maksimalnje %d formularow." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Pšosym wótposćelśo maksimalnje %(num)d formular." +msgstr[1] "Pšosym wótposćelśo maksimalnje %(num)d formulara." +msgstr[2] "Pšosym wótposćelśo maksimalnje %(num)d formulary." +msgstr[3] "Pšosym wótposćelśo maksimalnje %(num)d formularow." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Pšosym wótposćelśo minimalnje %d formular." -msgstr[1] "Pšosym wótposćelśo minimalnje %d formulara." -msgstr[2] "Pšosym wótposćelśo minimalnje %d formulary." -msgstr[3] "Pšosym wótposćelśo minimalnje %d formularow." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Pšosym wótposćelśo minimalnje %(num)d formular." +msgstr[1] "Pšosym wótposćelśo minimalnje %(num)d formulara." +msgstr[2] "Pšosym wótposćelśo minimalnje %(num)d formulary." +msgstr[3] "Pšosym wótposćelśo minimalnje %(num)d formularow." msgid "Order" msgstr "Rěd" diff --git a/django/conf/locale/en/LC_MESSAGES/django.po b/django/conf/locale/en/LC_MESSAGES/django.po index 4aef1af29a319..6e76729680116 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 \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 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/conf/locale/eo/LC_MESSAGES/django.mo b/django/conf/locale/eo/LC_MESSAGES/django.mo index e606154811c5f..05260e5b049f4 100644 Binary files a/django/conf/locale/eo/LC_MESSAGES/django.mo and b/django/conf/locale/eo/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/eo/LC_MESSAGES/django.po b/django/conf/locale/eo/LC_MESSAGES/django.po index 72d36b02912f2..66a2f381505f9 100644 --- a/django/conf/locale/eo/LC_MESSAGES/django.po +++ b/django/conf/locale/eo/LC_MESSAGES/django.po @@ -7,16 +7,17 @@ # Dinu Gherman , 2011 # kristjan , 2011 # Matthieu Desplantes , 2021 -# Nikolay Korotkiy , 2017-2018 -# Robin van der Vliet , 2019 +# Meiyer , 2022 +# Nikolay Korotkiy , 2017-2018 +# Robin van der Vliet , 2019 # Adamo Mesha , 2012 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-04-13 08:22+0000\n" -"Last-Translator: Matthieu Desplantes \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-05-25 06:49+0000\n" +"Last-Translator: Meiyer , 2022\n" "Language-Team: Esperanto (http://www.transifex.com/django/django/language/" "eo/)\n" "MIME-Version: 1.0\n" @@ -194,7 +195,7 @@ msgid "Kyrgyz" msgstr "Kirgiza" msgid "Luxembourgish" -msgstr "Lukszemburga" +msgstr "Luksemburga" msgid "Lithuanian" msgstr "Litova" @@ -214,11 +215,14 @@ msgstr "Mongola" msgid "Marathi" msgstr "Marata" +msgid "Malay" +msgstr "Malaja" + msgid "Burmese" msgstr "Birma" msgid "Norwegian Bokmål" -msgstr "Norvega Bbokmål" +msgstr "Norvega (bokmål)" msgid "Nepali" msgstr "Nepala" @@ -331,44 +335,48 @@ msgid "…" msgstr "…" msgid "That page number is not an integer" -msgstr "Tuo paĝnumero ne estas entjero" +msgstr "Tia paĝnumero ne estas entjero" msgid "That page number is less than 1" -msgstr "Tuo paĝnumero estas malpli ol 1" +msgstr "La paĝnumero estas malpli ol 1" msgid "That page contains no results" msgstr "Tiu paĝo ne enhavas rezultojn" msgid "Enter a valid value." -msgstr "Enigu validan valoron." +msgstr "Enigu ĝustan valoron." msgid "Enter a valid URL." -msgstr "Enigu validan adreson." +msgstr "Enigu ĝustan retadreson." msgid "Enter a valid integer." -msgstr "Enigu validan entjero." +msgstr "Enigu ĝustaforman entjeron." msgid "Enter a valid email address." -msgstr "Enigu validan retpoŝtan adreson." +msgstr "Enigu ĝustaforman retpoŝtan adreson." #. Translators: "letters" means latin letters: a-z and A-Z. msgid "" "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." msgstr "" +"Enigu ĝustan “ĵetonvorton” konsistantan el latinaj literoj, ciferoj, " +"substrekoj, aŭ dividstrekoj." msgid "" "Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " "hyphens." msgstr "" +"Enigu ĝustan “ĵetonvorton” konsistantan el Unikodaj literoj, ciferoj, " +"substrekoj, aŭ dividstrekoj." msgid "Enter a valid IPv4 address." -msgstr "Enigu validan IPv4-adreson." +msgstr "Enigu ĝustaforman IPv4-adreson." msgid "Enter a valid IPv6 address." -msgstr "Enigu validan IPv6-adreson." +msgstr "Enigu ĝustaforman IPv6-adreson." msgid "Enter a valid IPv4 or IPv6 address." -msgstr "Enigu validan IPv4 aŭ IPv6-adreson." +msgstr "Enigu ĝustaforman IPv4- aŭ IPv6-adreson." msgid "Enter only digits separated by commas." msgstr "Enigu nur ciferojn apartigitajn per komoj." @@ -386,6 +394,10 @@ msgstr "Certigu ke ĉi tiu valoro estas malpli ol aŭ egala al %(limit_value)s." msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Certigu ke ĉi tiu valoro estas pli ol aŭ egala al %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Certigu ke ĉi tiu valoro estas oblo de paŝo-grando %(limit_value)s." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -397,7 +409,7 @@ msgstr[0] "" "Certigu, ke tiu valoro havas %(limit_value)d signon (ĝi havas " "%(show_value)d)." msgstr[1] "" -"Certigu, ke tiu valoro havas %(limit_value)d signojn (ĝi havas " +"Certigu ke ĉi tiu valoro enhavas almenaŭ %(limit_value)d signojn (ĝi havas " "%(show_value)d)." #, python-format @@ -411,7 +423,7 @@ msgstr[0] "" "Certigu, ke tio valuto maksimume havas %(limit_value)d karakterojn (ĝi havas " "%(show_value)d)." msgstr[1] "" -"Certigu, ke tiu valoro maksimume havas %(limit_value)d signojn (ĝi havas " +"Certigu ke ĉi tiu valoro maksimume enhavas %(limit_value)d signojn (ĝi havas " "%(show_value)d)." msgid "Enter a number." @@ -442,6 +454,8 @@ msgid "" "File extension “%(extension)s” is not allowed. Allowed extensions are: " "%(allowed_extensions)s." msgstr "" +"Sufikso “%(extension)s” de dosiernomo ne estas permesita. Eblaj sufiksoj " +"estas: %(allowed_extensions)s." msgid "Null characters are not allowed." msgstr "Nulsignoj ne estas permesitaj." @@ -453,9 +467,13 @@ msgstr "kaj" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s kun tiuj %(field_labels)s jam ekzistas." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Limigo “%(name)s” estas malobservita." + #, python-format msgid "Value %(value)r is not a valid choice." -msgstr "Valoro %(value)r ne estas valida elekto." +msgstr "Valoro %(value)r ne estas ebla elekto." msgid "This field cannot be null." msgstr "Tiu ĉi kampo ne povas esti senvalora (null)." @@ -467,8 +485,8 @@ msgstr "Tiu ĉi kampo ne povas esti malplena." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s kun tiu %(field_label)s jam ekzistas." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -481,11 +499,13 @@ msgstr "Kampo de tipo: %(field_type)s" #, python-format msgid "“%(value)s” value must be either True or False." -msgstr "" +msgstr "La valoro “%(value)s” devas esti aŭ Vera (True) aŭ Malvera (False)." #, python-format msgid "“%(value)s” value must be either True, False, or None." msgstr "" +"La valoro “%(value)s” devas esti Vera (True), Malvera (False), aŭ Nenia " +"(None)." msgid "Boolean (Either True or False)" msgstr "Bulea (Vera aŭ Malvera)" @@ -495,7 +515,7 @@ msgid "String (up to %(max_length)s)" msgstr "Ĉeno (ĝis %(max_length)s)" msgid "Comma-separated integers" -msgstr "Kom-apartigitaj entjeroj" +msgstr "Perkome disigitaj entjeroj" #, python-format msgid "" @@ -510,6 +530,8 @@ msgid "" "“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " "date." msgstr "" +"La valoro “%(value)s” havas la ĝustan formaton (JJJJ-MM-TT), sed ĝi estas " +"neekzistanta dato." msgid "Date (without time)" msgstr "Dato (sen horo)" @@ -519,19 +541,23 @@ msgid "" "“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." "uuuuuu]][TZ] format." msgstr "" +"La valoro “%(value)s” havas malĝustan formaton. Ĝi devas esti en la formato " +"JJJJ-MM-TT HH:MM[:ss[.µµµµµµ]][TZ]." #, 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 "" +"La valoro “%(value)s” havas la ĝustan formaton (JJJJ-MM-TT HH:MM[:ss[." +"µµµµµµ]][TZ]), sed ĝi estas neekzistanta dato/tempo." msgid "Date (with time)" msgstr "Dato (kun horo)" #, python-format msgid "“%(value)s” value must be a decimal number." -msgstr "" +msgstr "La valoro “%(value)s” devas esti dekuma frakcio." msgid "Decimal number" msgstr "Dekuma nombro" @@ -541,6 +567,8 @@ msgid "" "“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." "uuuuuu] format." msgstr "" +"La valoro “%(value)s” havas malĝustan formaton. Ĝi devas esti en la formato " +"[TT] [[HH:]MM:]ss[.µµµµµµ]." msgid "Duration" msgstr "Daŭro" @@ -549,14 +577,14 @@ msgid "Email address" msgstr "Retpoŝtadreso" msgid "File path" -msgstr "Dosiervojo" +msgstr "Dosierindiko" #, python-format msgid "“%(value)s” value must be a float." -msgstr "" +msgstr "La valoro “%(value)s” devas esti glitpunkta nombro." msgid "Floating point number" -msgstr "Glitkoma nombro" +msgstr "Glitpunkta nombro" #, python-format msgid "“%(value)s” value must be an integer." @@ -566,7 +594,7 @@ msgid "Integer" msgstr "Entjero" msgid "Big (8 byte) integer" -msgstr "Granda (8 bitoka) entjero" +msgstr "Granda (8–bitoka) entjero" msgid "Small integer" msgstr "Malgranda entjero" @@ -580,12 +608,14 @@ msgstr "IP-adreso" #, python-format msgid "“%(value)s” value must be either None, True or False." msgstr "" +"La valoro “%(value)s” devas esti Nenia (None), Vera (True), aŭ Malvera " +"(False)." msgid "Boolean (Either True, False or None)" -msgstr "Buleo (Vera, Malvera aŭ Neniu)" +msgstr "Buleo (Vera, Malvera, aŭ Nenia)" msgid "Positive big integer" -msgstr "" +msgstr "Pozitiva granda entjero" msgid "Positive integer" msgstr "Pozitiva entjero" @@ -605,12 +635,16 @@ msgid "" "“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " "format." msgstr "" +"La valoro “%(value)s” havas malĝustan formaton. Ĝi devas esti en la formato " +"HH:MM[:ss[.µµµµµµ]]." #, python-format msgid "" "“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " "invalid time." msgstr "" +"La valoro “%(value)s” havas la (HH:MM[:ss[.µµµµµµ]]), sed tio estas " +"neekzistanta tempo." msgid "Time" msgstr "Horo" @@ -619,14 +653,14 @@ msgid "URL" msgstr "URL" msgid "Raw binary data" -msgstr "Kruda binara datumo" +msgstr "Kruda duuma datumo" #, python-format msgid "“%(value)s” is not a valid UUID." -msgstr "" +msgstr "“%(value)s” ne estas ĝustaforma UUID." msgid "Universally unique identifier" -msgstr "Universe unika identigilo" +msgstr "Universale unika identigilo" msgid "File" msgstr "Dosiero" @@ -638,11 +672,11 @@ msgid "A JSON object" msgstr "JSON-objekto" msgid "Value must be valid JSON." -msgstr "" +msgstr "La valoro devas esti ĝustaforma JSON." #, python-format msgid "%(model)s instance with %(field)s %(value)r does not exist." -msgstr "%(model)s kazo kun %(field)s %(value)r ne ekzistas." +msgstr "Ekzemplero de %(model)s kun %(field)s egala al %(value)r ne ekzistas." msgid "Foreign Key (type determined by related field)" msgstr "Fremda ŝlosilo (tipo determinita per rilata kampo)" @@ -674,20 +708,20 @@ msgid "Enter a whole number." msgstr "Enigu plenan nombron." msgid "Enter a valid date." -msgstr "Enigu validan daton." +msgstr "Enigu ĝustan daton." msgid "Enter a valid time." -msgstr "Enigu validan horon." +msgstr "Enigu ĝustan horon." msgid "Enter a valid date/time." -msgstr "Enigu validan daton/tempon." +msgstr "Enigu ĝustan daton/tempon." msgid "Enter a valid duration." -msgstr "Enigu validan daŭron." +msgstr "Enigu ĝustan daŭron." #, python-brace-format msgid "The number of days must be between {min_days} and {max_days}." -msgstr "La nombro da tagoj devas esti inter {min_days} kaj {max_days}." +msgstr "La nombro de tagoj devas esti inter {min_days} kaj {max_days}." msgid "No file was submitted. Check the encoding type on the form." msgstr "" @@ -708,23 +742,23 @@ msgstr[0] "" "Certigu, ke tio dosiernomo maksimume havas %(max)d karakteron (ĝi havas " "%(length)d)." msgstr[1] "" -"Certigu, ke tiu dosiernomo maksimume havas %(max)d signojn (ĝi havas " +"Certigu ke la dosiernomo maksimume havas %(max)d signojn (ĝi havas " "%(length)d)." msgid "Please either submit a file or check the clear checkbox, not both." msgstr "" -"Bonvolu aŭ alŝuti dosieron, aŭ elekti la malplenan markobutonon, ne ambaŭ." +"Bonvolu aŭ alŝuti dosieron, aŭ elekti la vakigan markobutonon, sed ne ambaŭ." msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." msgstr "" -"Alŝutu validan bildon. La alŝutita dosiero ne estas bildo, aŭ estas " +"Alŝutu ĝustaforman bildon. La alŝutita dosiero ne estas bildo aŭ estas " "difektita bildo." #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." -msgstr "Elektu validan elekton. %(value)s ne estas el la eblaj elektoj." +msgstr "Elektu ekzistantan opcion. %(value)s ne estas el la eblaj elektoj." msgid "Enter a list of values." msgstr "Enigu liston de valoroj." @@ -733,10 +767,10 @@ msgid "Enter a complete value." msgstr "Enigu kompletan valoron." msgid "Enter a valid UUID." -msgstr "Enigu validan UUID-n." +msgstr "Enigu ĝustaforman UUID." msgid "Enter a valid JSON." -msgstr "" +msgstr "Enigu ĝustaforman JSON." #. Translators: This is the default suffix added to form field labels msgid ":" @@ -751,18 +785,21 @@ 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 "" +"La datumoj de la mastruma ManagementForm mankas aŭ estis malice modifitaj. " +"Mankas la kampoj: %(field_names)s. Se la problemo plu okazas, vi poveble " +"devintus raporti cimon." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "" -msgstr[1] "" +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Bonvolu forsendi maksimume %(num)d formularon." +msgstr[1] "Bonvolu forsendi maksimume %(num)d formularojn." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "" -msgstr[1] "" +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Bonvolu forsendi almenaŭ %(num)d formularon." +msgstr[1] "Bonvolu forsendi almenaŭ %(num)d formularojn." msgid "Order" msgstr "Ordo" @@ -791,20 +828,22 @@ msgid "Please correct the duplicate values below." msgstr "Bonvolu ĝustigi la duoblan valoron sube." msgid "The inline value did not match the parent instance." -msgstr "La enteksta valoro ne egalas la patran aperon." +msgstr "La enteksta valoro ne egalas la patran ekzempleron." msgid "Select a valid choice. That choice is not one of the available choices." -msgstr "Elektu validan elekton. Ĉi tiu elekto ne estas el la eblaj elektoj." +msgstr "Elektu ekzistantan opcion. Ĉi tiu opcio ne estas el la eblaj elektoj." #, python-format msgid "“%(pk)s” is not a valid value." -msgstr "" +msgstr "“%(pk)s” estas neakceptebla valoro." #, 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 "" +"Ne eblis interpreti %(datetime)s en la tempo-zono %(current_timezone)s. Ĝi " +"eble estas ambigua aŭ ne ekzistas en tiu tempo-zono." msgid "Clear" msgstr "Vakigi" @@ -996,7 +1035,7 @@ msgstr "feb." msgctxt "abbrev. month" msgid "March" -msgstr "marto" +msgstr "mar." msgctxt "abbrev. month" msgid "April" @@ -1083,7 +1122,7 @@ msgid "December" msgstr "Decembro" msgid "This is not a valid IPv6 address." -msgstr "Tiu ne estas valida IPv6-adreso." +msgstr "Tio ne estas ĝustaforma IPv6-adreso." #, python-format msgctxt "String to return when truncating text" @@ -1098,133 +1137,150 @@ msgid ", " msgstr ", " #, python-format -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d jaro" -msgstr[1] "%d jaroj" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d jaro" +msgstr[1] "%(num)d jaroj" #, python-format -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d monato" -msgstr[1] "%d monatoj" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d monato" +msgstr[1] "%(num)d monatoj" #, python-format -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d semajno" -msgstr[1] "%d semajnoj" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d semajno" +msgstr[1] "%(num)d semajnoj" #, python-format -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d tago" -msgstr[1] "%d tagoj" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d tago" +msgstr[1] "%(num)d tagoj" #, python-format -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d horo" -msgstr[1] "%d horoj" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d horo" +msgstr[1] "%(num)d horoj" #, python-format -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d minuto" -msgstr[1] "%d minutoj" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuto" +msgstr[1] "%(num)d minutoj" msgid "Forbidden" -msgstr "Malpermesa" +msgstr "Malpermesita" msgid "CSRF verification failed. Request aborted." -msgstr "CSRF konfirmo malsukcesis. Peto ĉesigita." +msgstr "Kontrolo de CSRF malsukcesis. Peto ĉesigita." 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 " +"header” to be sent by your web browser, but none was sent. This header is " "required for security reasons, to ensure that your browser is not being " "hijacked by third parties." msgstr "" +"Vi vidas tiun ĉi mesaĝon ĉar ĉi-tiu HTTPS-retejo postulas ricevi la " +"kapinstrukcion “Referer” de via retumilo, sed neniu estis sendita. Tia " +"kapinstrukcio estas bezonata pro sekurecaj kialoj, por certigi ke via " +"retumilo ne agas laŭ nedezirataj instrukcioj de maliculoj." 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 "" +"Se la agordoj de via retumilo malebligas la kapinstrukciojn “Referer”, " +"bonvolu ebligi ilin por tiu ĉi retejo, aŭ por HTTPS-konektoj, aŭ por petoj " +"el sama fonto (“same-origin”)." msgid "" "If you are using the tag or " "including the “Referrer-Policy: no-referrer” header, please remove them. The " "CSRF protection requires the “Referer” header to do strict referer checking. " -"If you’re concerned about privacy, use alternatives like for links to third-party sites." +"If you’re concerned about privacy, use alternatives like for links to third-party sites." msgstr "" +"Se vi uzas la etikedon aŭ " +"sendas la kapinstrukcion “Referrer-Policy: no-referrer”, bonvolu forigi " +"ilin. La protekto kontraŭ CSRF postulas la ĉeeston de la kapinstrukcio " +"“Referer”, kaj strikte kontrolas la referencantan fonton. Se vi zorgas pri " +"privateco, uzu alternativojn kiajn por ligiloj al " +"eksteraj retejoj." 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 "" -"Vi vidas tiun mesaĝon ĉar tiu-ĉi retejo postulas CSRF kuketon sendante " -"formojn. Tiu-ĉi kuketo estas bezonata pro motivoj de sekureco, por certigi " -"ke via retumilo ne esti forrabita de triaj partioj." +"Vi vidas tiun ĉi mesaĝon ĉar ĉi-tiu retejo postulas ke CSRF-kuketo estu " +"sendita kune kun la formularoj. Tia kuketo estas bezonata pro sekurecaj " +"kialoj, por certigi ke via retumilo ne agas laŭ nedezirataj instrukcioj de " +"maliculoj." 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 "" +"Se la agordoj de via retumilo malebligas kuketojn, bonvolu ebligi ilin por " +"tiu ĉi retejo aŭ por petoj el sama fonto (“same-origin”)." msgid "More information is available with DEBUG=True." msgstr "Pliaj informoj estas videblaj kun DEBUG=True." msgid "No year specified" -msgstr "Neniu jaro specifita" +msgstr "Neniu jaro indikita" msgid "Date out of range" msgstr "Dato ne en la intervalo" msgid "No month specified" -msgstr "Neniu monato specifita" +msgstr "Neniu monato indikita" msgid "No day specified" -msgstr "Neniu tago specifita" +msgstr "Neniu tago indikita" msgid "No week specified" -msgstr "Neniu semajno specifita" +msgstr "Neniu semajno indikita" #, python-format msgid "No %(verbose_name_plural)s available" -msgstr "Neniu %(verbose_name_plural)s disponeblaj" +msgstr "Neniuj %(verbose_name_plural)s estas disponeblaj" #, python-format msgid "" "Future %(verbose_name_plural)s not available because %(class_name)s." "allow_future is False." msgstr "" -"Estonta %(verbose_name_plural)s ne disponeblas ĉar %(class_name)s." +"Estontaj %(verbose_name_plural)s ne disponeblas ĉar %(class_name)s." "allow_future estas Malvera." #, python-format msgid "Invalid date string “%(datestr)s” given format “%(format)s”" -msgstr "" +msgstr "Erarforma dato-ĉeno “%(datestr)s” se uzi la formaton “%(format)s”" #, python-format msgid "No %(verbose_name)s found matching the query" -msgstr "Neniu %(verbose_name)s trovita kongruas kun la informpeto" +msgstr "Neniu %(verbose_name)s trovita kongrua kun la informpeto" msgid "Page is not “last”, nor can it be converted to an int." -msgstr "" +msgstr "Paĝo ne estas “lasta”, nek eblas konverti ĝin en entjeron." #, python-format msgid "Invalid page (%(page_number)s): %(message)s" -msgstr "Nevalida paĝo (%(page_number)s): %(message)s" +msgstr "Malĝusta paĝo (%(page_number)s): %(message)s" #, python-format msgid "Empty list and “%(class_name)s.allow_empty” is False." msgstr "" +"La listo estas malplena dum “%(class_name)s.allow_empty” estas Malvera." msgid "Directory indexes are not allowed here." -msgstr "Dosierujaj indeksoj ne estas permesitaj tie." +msgstr "Dosierujaj indeksoj ne estas permesitaj ĉi tie." #, python-format msgid "“%(path)s” does not exist" @@ -1248,19 +1304,19 @@ msgstr "" #, python-format msgid "" "You are seeing this page because DEBUG=True is in your settings file and you have not configured any " -"URLs." +"%(version)s/ref/settings/#debug\" target=\"_blank\" " +"rel=\"noopener\">DEBUG=True is in your settings file and you have not " +"configured any URLs." msgstr "" "Vi vidas ĉi tiun paĝon ĉar DEBUG = " "True estas en via agorda dosiero kaj vi ne agordis ajnan URL." msgid "Django Documentation" -msgstr "Djanga dokumentaro" +msgstr "Dĵanga dokumentaro" msgid "Topics, references, & how-to’s" -msgstr "" +msgstr "Temoj, referencoj, kaj instruiloj" msgid "Tutorial: A Polling App" msgstr "Instruilo: apo pri enketoj" @@ -1269,7 +1325,7 @@ msgid "Get started with Django" msgstr "Komencu kun Dĵango" msgid "Django Community" -msgstr "Djanga komunumo" +msgstr "Dĵanga komunumo" msgid "Connect, get help, or contribute" msgstr "Konektiĝu, ricevu helpon aŭ kontribuu" diff --git a/django/conf/locale/es/LC_MESSAGES/django.mo b/django/conf/locale/es/LC_MESSAGES/django.mo index f48ccad6aec45..6656556d1cd93 100644 Binary files a/django/conf/locale/es/LC_MESSAGES/django.mo and b/django/conf/locale/es/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/es/LC_MESSAGES/django.po b/django/conf/locale/es/LC_MESSAGES/django.po index 56e3c7b25b910..5fb94799a1ca7 100644 --- a/django/conf/locale/es/LC_MESSAGES/django.po +++ b/django/conf/locale/es/LC_MESSAGES/django.po @@ -1,41 +1,53 @@ # This file is distributed under the same license as the Django package. # # Translators: +# 8cb2d5a716c3c9a99b6d20472609a4d5_6d03802 , 2011 +# Abe Estrada, 2013 # Abe Estrada, 2013 # albertoalcolea , 2014 +# albertoalcolea , 2014 +# Amanda Copete, 2017 # Amanda Copete, 2017 # Antoni Aloy , 2011-2014,2017,2019 # Claude Paroz , 2020 # Diego Andres Sanabria Martin , 2012 # Diego Schulz , 2012 +# e4db27214f7e7544f2022c647b585925_bb0e321, 2014,2020 # e4db27214f7e7544f2022c647b585925_bb0e321, 2015-2016 # e4db27214f7e7544f2022c647b585925_bb0e321, 2014 # e4db27214f7e7544f2022c647b585925_bb0e321, 2020 -# Ernesto Rico Schmidt , 2017 +# Ernesto Rico Schmidt , 2017 +# Ernesto Rico Schmidt , 2017 # 8cb2d5a716c3c9a99b6d20472609a4d5_6d03802 , 2011 # Ignacio José Lizarán Rus , 2019 # Igor Támara , 2015 # Jannis Leidel , 2011 # José Luis , 2016 +# José Luis , 2016 # Josue Naaman Nistal Guerra , 2014 # Leonardo J. Caballero G. , 2011,2013 # Luigy, 2019 +# Luigy, 2019 # Marc Garcia , 2011 # Mariusz Felisiak , 2021 +# mpachas , 2022 # monobotsoft , 2012 # ntrrgc , 2013 # ntrrgc , 2013 # Pablo, 2015 +# Pablo, 2015 +# Sebastián Magrí, 2013 # Sebastián Magrí, 2013 # Uriel Medina , 2020-2021 # Veronicabh , 2015 +# Veronicabh , 2015 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-24 16:30+0000\n" -"Last-Translator: Mariusz Felisiak \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-05-25 06:49+0000\n" +"Last-Translator: mpachas , 2022\n" "Language-Team: Spanish (http://www.transifex.com/django/django/language/" "es/)\n" "MIME-Version: 1.0\n" @@ -234,7 +246,7 @@ msgid "Marathi" msgstr "Maratí" msgid "Malay" -msgstr "" +msgstr "Malayo" msgid "Burmese" msgstr "Birmano" @@ -413,6 +425,10 @@ msgstr "Asegúrese de que este valor es menor o igual a %(limit_value)s." msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Asegúrese de que este valor es mayor o igual a %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Asegúrese de que este valor es múltiplo de %(limit_value)s." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -426,6 +442,9 @@ msgstr[0] "" msgstr[1] "" "Asegúrese de que este valor tenga al menos %(limit_value)d carácter(es) " "(tiene%(show_value)d)." +msgstr[2] "" +"Asegúrese de que este valor tenga al menos %(limit_value)d carácter(es) " +"(tiene%(show_value)d)." #, python-format msgid "" @@ -440,6 +459,9 @@ msgstr[0] "" msgstr[1] "" "Asegúrese de que este valor tenga menos de %(limit_value)d caracteres (tiene " "%(show_value)d)." +msgstr[2] "" +"Asegúrese de que este valor tenga menos de %(limit_value)d caracteres (tiene " +"%(show_value)d)." msgid "Enter a number." msgstr "Introduzca un número." @@ -449,12 +471,14 @@ 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] "Asegúrese de que no hay más de %(max)s dígito en total." msgstr[1] "Asegúrese de que no haya más de %(max)s dígitos en total." +msgstr[2] "Asegúrese de que no haya más de %(max)s dígitos en total." #, 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] "Asegúrese de que no haya más de %(max)s dígito decimal." msgstr[1] "Asegúrese de que no haya más de %(max)s dígitos decimales." +msgstr[2] "Asegúrese de que no haya más de %(max)s dígitos decimales." #, python-format msgid "" @@ -465,6 +489,8 @@ msgstr[0] "" "Asegúrese de que no haya más de %(max)s dígito antes del punto decimal" msgstr[1] "" "Asegúrese de que no haya más de %(max)s dígitos antes del punto decimal." +msgstr[2] "" +"Asegúrese de que no haya más de %(max)s dígitos antes del punto decimal." #, python-format msgid "" @@ -484,6 +510,10 @@ msgstr "y" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s con este %(field_labels)s ya existe." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "No se cumple la restricción \"%(name)s\"." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Valor %(value)r no es una opción válida." @@ -498,8 +528,8 @@ msgstr "Este campo no puede estar vacío." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "Ya existe %(model_name)s con este %(field_label)s." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -753,6 +783,9 @@ msgstr[0] "" msgstr[1] "" "Asegúrese de que este nombre de archivo tenga como máximo %(max)d " "carácter(es) (tiene %(length)d)." +msgstr[2] "" +"Asegúrese de que este nombre de archivo tenga como máximo %(max)d " +"carácter(es) (tiene %(length)d)." msgid "Please either submit a file or check the clear checkbox, not both." msgstr "" @@ -800,16 +833,18 @@ msgstr "" "problema persiste." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Por favor, envíe %d formulario como máximo." -msgstr[1] "Por favor, envíe %d formularios como máximo." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Por favor, envíe %(num)d formulario como máximo." +msgstr[1] "Por favor, envíe %(num)d formularios como máximo." +msgstr[2] "Por favor, envíe %(num)d formularios como máximo." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Por favor, envíe %d formulario como máximo." -msgstr[1] "Por favor, envíe %d formularios como máximo." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Por favor, envíe %(num)d formulario como mínimo." +msgstr[1] "Por favor, envíe %(num)d formularios como mínimo." +msgstr[2] "Por favor, envíe %(num)d formularios como mínimo." msgid "Order" msgstr "Orden" @@ -882,6 +917,7 @@ msgid "%(size)d byte" msgid_plural "%(size)d bytes" msgstr[0] "%(size)d byte" msgstr[1] "%(size)d bytes" +msgstr[2] "%(size)d bytes" #, python-format msgid "%s KB" @@ -922,82 +958,82 @@ msgid "noon" msgstr "mediodía" msgid "Monday" -msgstr "Lunes" +msgstr "lunes" msgid "Tuesday" -msgstr "Martes" +msgstr "martes" msgid "Wednesday" -msgstr "Miércoles" +msgstr "miércoles" msgid "Thursday" -msgstr "Jueves" +msgstr "jueves" msgid "Friday" -msgstr "Viernes" +msgstr "viernes" msgid "Saturday" -msgstr "Sábado" +msgstr "sábado" msgid "Sunday" -msgstr "Domingo" +msgstr "domingo" msgid "Mon" -msgstr "Lun" +msgstr "lun" msgid "Tue" -msgstr "Mar" +msgstr "mar" msgid "Wed" -msgstr "Mié" +msgstr "mié" msgid "Thu" -msgstr "Jue" +msgstr "jue" msgid "Fri" -msgstr "Vie" +msgstr "vie" msgid "Sat" -msgstr "Sáb" +msgstr "sáb" msgid "Sun" -msgstr "Dom" +msgstr "dom" msgid "January" -msgstr "Enero" +msgstr "enero" msgid "February" -msgstr "Febrero" +msgstr "febrero" msgid "March" -msgstr "Marzo" +msgstr "marzo" msgid "April" -msgstr "Abril" +msgstr "abril" msgid "May" -msgstr "Mayo" +msgstr "mayo" msgid "June" -msgstr "Junio" +msgstr "junio" msgid "July" -msgstr "Julio" +msgstr "julio" msgid "August" -msgstr "Agosto" +msgstr "agosto" msgid "September" -msgstr "Septiembre" +msgstr "septiembre" msgid "October" -msgstr "Octubre" +msgstr "octubre" msgid "November" -msgstr "Noviembre" +msgstr "noviembre" msgid "December" -msgstr "Diciembre" +msgstr "diciembre" msgid "jan" msgstr "ene" @@ -1045,91 +1081,91 @@ msgstr "Feb." msgctxt "abbrev. month" msgid "March" -msgstr "Mar." +msgstr "marzo" msgctxt "abbrev. month" msgid "April" -msgstr "Abr." +msgstr "abril" msgctxt "abbrev. month" msgid "May" -msgstr "Mayo" +msgstr "mayo" msgctxt "abbrev. month" msgid "June" -msgstr "Jun." +msgstr "junio" msgctxt "abbrev. month" msgid "July" -msgstr "Jul." +msgstr "julio" msgctxt "abbrev. month" msgid "Aug." -msgstr "Ago." +msgstr "ago." msgctxt "abbrev. month" msgid "Sept." -msgstr "Sept." +msgstr "sept." msgctxt "abbrev. month" msgid "Oct." -msgstr "Oct." +msgstr "oct." msgctxt "abbrev. month" msgid "Nov." -msgstr "Nov." +msgstr "nov." msgctxt "abbrev. month" msgid "Dec." -msgstr "Dic." +msgstr "dic." msgctxt "alt. month" msgid "January" -msgstr "Enero" +msgstr "enero" msgctxt "alt. month" msgid "February" -msgstr "Febrero" +msgstr "febrero" msgctxt "alt. month" msgid "March" -msgstr "Marzo" +msgstr "marzo" msgctxt "alt. month" msgid "April" -msgstr "Abril" +msgstr "abril" msgctxt "alt. month" msgid "May" -msgstr "Mayo" +msgstr "mayo" msgctxt "alt. month" msgid "June" -msgstr "Junio" +msgstr "junio" msgctxt "alt. month" msgid "July" -msgstr "Julio" +msgstr "julio" msgctxt "alt. month" msgid "August" -msgstr "Agosto" +msgstr "agosto" msgctxt "alt. month" msgid "September" -msgstr "Septiembre" +msgstr "septiembre" msgctxt "alt. month" msgid "October" -msgstr "Octubre" +msgstr "octubre" msgctxt "alt. month" msgid "November" -msgstr "Noviembre" +msgstr "noviembre" msgctxt "alt. month" msgid "December" -msgstr "Diciembre" +msgstr "diciembre" msgid "This is not a valid IPv6 address." msgstr "No es una dirección IPv6 válida." @@ -1151,36 +1187,42 @@ msgid "%(num)d year" msgid_plural "%(num)d years" msgstr[0] "%(num)d años" msgstr[1] "%(num)d años" +msgstr[2] "%(num)d años" #, python-format msgid "%(num)d month" msgid_plural "%(num)d months" msgstr[0] "%(num)d mes" msgstr[1] "%(num)d meses" +msgstr[2] "%(num)d meses" #, python-format msgid "%(num)d week" msgid_plural "%(num)d weeks" msgstr[0] "%(num)d semana" msgstr[1] "%(num)d semanas" +msgstr[2] "%(num)d semanas" #, python-format msgid "%(num)d day" msgid_plural "%(num)d days" msgstr[0] "%(num)d día" msgstr[1] "%(num)d días" +msgstr[2] "%(num)d días" #, python-format msgid "%(num)d hour" msgid_plural "%(num)d hours" msgstr[0] "%(num)d hora" msgstr[1] "%(num)d horas" +msgstr[2] "%(num)d horas" #, python-format msgid "%(num)d minute" msgid_plural "%(num)d minutes" msgstr[0] "%(num)d minutos" msgstr[1] "%(num)d minutes" +msgstr[2] "%(num)d minutes" msgid "Forbidden" msgstr "Prohibido" @@ -1204,23 +1246,23 @@ msgid "" "enable them, at least for this site, or for HTTPS connections, or for “same-" "origin” requests." msgstr "" -"Si ha configurado su navegador para deshabilitar los encabezados \"Referer" -"\", vuelva a habilitarlos, al menos para este sitio, o para conexiones " -"HTTPS, o para solicitudes del \"mismo origen\"." +"Si ha configurado su navegador para deshabilitar los encabezados " +"\"Referer\", vuelva a habilitarlos, al menos para este sitio, o para " +"conexiones HTTPS, o para solicitudes del \"mismo origen\"." msgid "" "If you are using the tag or " "including the “Referrer-Policy: no-referrer” header, please remove them. The " "CSRF protection requires the “Referer” header to do strict referer checking. " -"If you’re concerned about privacy, use alternatives like for links to third-party sites." +"If you’re concerned about privacy, use alternatives like for links to third-party sites." msgstr "" -"Si esta utilizando la etiqueta o incluyendo el encabezado \"Referrer-Policy: no-referrer\", elimínelos. " -"La protección CSRF requiere que el encabezado \"Referer\" realice una " -"comprobación estricta del referente. Si le preocupa la privacidad, utilice " -"alternativas como para los enlaces a sitios de " -"terceros." +"Si esta utilizando la etiqueta o incluyendo el encabezado \"Referrer-Policy: no-referrer\", " +"elimínelos. La protección CSRF requiere que el encabezado \"Referer\" " +"realice una comprobación estricta del referente. Si le preocupa la " +"privacidad, utilice alternativas como para los " +"enlaces a sitios de terceros." msgid "" "You are seeing this message because this site requires a CSRF cookie when " @@ -1236,8 +1278,8 @@ msgid "" "them, at least for this site, or for “same-origin” requests." msgstr "" "Si ha configurado su navegador para deshabilitar las cookies, vuelva a " -"habilitarlas, al menos para este sitio o para solicitudes del \"mismo origen" -"\"." +"habilitarlas, al menos para este sitio o para solicitudes del \"mismo " +"origen\"." msgid "More information is available with DEBUG=True." msgstr "Más información disponible si se establece DEBUG=True." @@ -1314,14 +1356,14 @@ msgstr "" #, python-format msgid "" "You are seeing this page because DEBUG=True is in your settings file and you have not configured any " -"URLs." +"%(version)s/ref/settings/#debug\" target=\"_blank\" " +"rel=\"noopener\">DEBUG=True is in your settings file and you have not " +"configured any URLs." msgstr "" "Estás viendo esta página porque DEBUG=True está en su archivo de configuración y no ha configurado " -"ninguna URL." +"%(version)s/ref/settings/#debug\" target=\"_blank\" " +"rel=\"noopener\">DEBUG=True está en su archivo de configuración y no ha " +"configurado ninguna URL." msgid "Django Documentation" msgstr "Documentación de Django" diff --git a/django/conf/locale/es_AR/LC_MESSAGES/django.mo b/django/conf/locale/es_AR/LC_MESSAGES/django.mo index 47f8863ba52e5..e944e23a31a80 100644 Binary files a/django/conf/locale/es_AR/LC_MESSAGES/django.mo and b/django/conf/locale/es_AR/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/es_AR/LC_MESSAGES/django.po b/django/conf/locale/es_AR/LC_MESSAGES/django.po index 8123a0975dfd5..928f7b858521c 100644 --- a/django/conf/locale/es_AR/LC_MESSAGES/django.po +++ b/django/conf/locale/es_AR/LC_MESSAGES/django.po @@ -4,13 +4,13 @@ # Jannis Leidel , 2011 # lardissone , 2014 # poli , 2014 -# Ramiro Morales, 2013-2021 +# Ramiro Morales, 2013-2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-19 14:56+0000\n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" "Last-Translator: Ramiro Morales\n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/django/django/" "language/es_AR/)\n" @@ -387,6 +387,10 @@ msgstr "Asegúrese de que este valor sea menor o igual a %(limit_value)s." msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Asegúrese de que este valor sea mayor o igual a %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Asegúrese de que este valor sea múltiplo de %(limit_value)s." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -458,6 +462,10 @@ msgstr "y" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "Ya existe un/a %(model_name)s con este/a %(field_labels)s." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "No se cumple la restricción “%(name)s”." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "El valor %(value)r no es una opción válida." @@ -472,8 +480,8 @@ msgstr "Este campo no puede estar en blanco." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "Ya existe un/a %(model_name)s con este/a %(field_label)s." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -774,16 +782,16 @@ msgstr "" "un error." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Por favor envíe un máximo de %d formulario." -msgstr[1] "Por favor envíe un máximo de %d formularios." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Por favor envíe un máximo de %(num)d formulario." +msgstr[1] "Por favor envíe un máximo de %(num)d formularios." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Por favor envíe %d o mas formularios." -msgstr[1] "Por favor envíe %d o mas formularios." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Por favor envíe %(num)d o mas formularios." +msgstr[1] "Por favor envíe %(num)d o mas formularios." msgid "Order" msgstr "Ordenar" @@ -898,22 +906,22 @@ msgid "noon" msgstr "mediodía" msgid "Monday" -msgstr "Lunes" +msgstr "lunes" msgid "Tuesday" -msgstr "Martes" +msgstr "martes" msgid "Wednesday" -msgstr "Miércoles" +msgstr "miércoles" msgid "Thursday" -msgstr "Jueves" +msgstr "jueves" msgid "Friday" -msgstr "Viernes" +msgstr "viernes" msgid "Saturday" -msgstr "Sábado" +msgstr "sábado" msgid "Sunday" msgstr "Domingo" @@ -940,40 +948,40 @@ msgid "Sun" msgstr "Dom" msgid "January" -msgstr "Enero" +msgstr "enero" msgid "February" -msgstr "Febrero" +msgstr "febrero" msgid "March" -msgstr "Marzo" +msgstr "marzo" msgid "April" -msgstr "Abril" +msgstr "abril" msgid "May" -msgstr "Mayo" +msgstr "mayo" msgid "June" -msgstr "Junio" +msgstr "junio" msgid "July" -msgstr "Julio" +msgstr "julio" msgid "August" -msgstr "Agosto" +msgstr "agosto" msgid "September" -msgstr "Setiembre" +msgstr "setiembre" msgid "October" -msgstr "Octubre" +msgstr "octubre" msgid "November" -msgstr "Noviembre" +msgstr "noviembre" msgid "December" -msgstr "Diciembre" +msgstr "diciembre" msgid "jan" msgstr "ene" diff --git a/django/conf/locale/es_MX/LC_MESSAGES/django.mo b/django/conf/locale/es_MX/LC_MESSAGES/django.mo index 2dc6ed6803a05..42f269181b678 100644 Binary files a/django/conf/locale/es_MX/LC_MESSAGES/django.mo and b/django/conf/locale/es_MX/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/es_MX/LC_MESSAGES/django.po b/django/conf/locale/es_MX/LC_MESSAGES/django.po index 3b4705dd01128..93b81a439de18 100644 --- a/django/conf/locale/es_MX/LC_MESSAGES/django.po +++ b/django/conf/locale/es_MX/LC_MESSAGES/django.po @@ -3,6 +3,7 @@ # Translators: # Abe Estrada, 2011-2013 # Claude Paroz , 2020 +# Gustavo López Hernández, 2022 # Jesús Bautista , 2019-2020 # Sergio Benitez , 2021 # zodman , 2011 @@ -10,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-02-17 03:02+0000\n" -"Last-Translator: Sergio Benitez \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: Gustavo López Hernández\n" "Language-Team: Spanish (Mexico) (http://www.transifex.com/django/django/" "language/es_MX/)\n" "MIME-Version: 1.0\n" @@ -210,6 +211,9 @@ msgstr "Mongol" msgid "Marathi" msgstr "" +msgid "Malay" +msgstr "" + msgid "Burmese" msgstr "burmés" @@ -385,6 +389,10 @@ msgstr "Asegúrese de que este valor sea menor o igual a %(limit_value)s." msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Asegúrese de que este valor sea mayor o igual a %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -452,6 +460,10 @@ msgstr "y" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "" +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "El valor %(value)r no es una opción válida." @@ -466,8 +478,8 @@ msgstr "Este campo no puede estar en blanco." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "Ya existe un/a %(model_name)s con este/a %(field_label)s." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -500,12 +512,16 @@ msgid "" "“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " "format." msgstr "" +"“%(value)s” : el valor tiene un formato de fecha inválido. Debería estar en " +"el formato YYYY-MM-DD." #, python-format msgid "" "“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " "date." msgstr "" +"“%(value)s” : el valor tiene el formato correcto (YYYY-MM-DD) pero es una " +"fecha inválida." msgid "Date (without time)" msgstr "Fecha (sin hora)" @@ -515,6 +531,8 @@ msgid "" "“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." "uuuuuu]][TZ] format." msgstr "" +"'%(value)s' tiene un formato de fecha no válido. Este valor debe estar en el " +"formato AAAA-MM-DD HH:MM[:ss[.uuuuuu]][TZ]." #, python-format msgid "" @@ -638,7 +656,7 @@ msgstr "El valor debe ser JSON válido" #, python-format msgid "%(model)s instance with %(field)s %(value)r does not exist." -msgstr "" +msgstr "La instancia de %(model)s con %(field)s %(value)r no existe." msgid "Foreign Key (type determined by related field)" msgstr "Clave foránea (el tipo está determinado por el campo relacionado)" @@ -648,11 +666,11 @@ msgstr "Relación uno-a-uno" #, python-format msgid "%(from)s-%(to)s relationship" -msgstr "" +msgstr "Relación %(from)s - %(to)s " #, python-format msgid "%(from)s-%(to)s relationships" -msgstr "" +msgstr "Relaciones %(from)s - %(to)s" msgid "Many-to-many relationship" msgstr "Relación muchos-a-muchos" @@ -683,7 +701,7 @@ msgstr "Introduzca una duración válida." #, python-brace-format msgid "The number of days must be between {min_days} and {max_days}." -msgstr "" +msgstr "La cantidad de días debe tener valores entre {min_days} y {max_days}." msgid "No file was submitted. Check the encoding type on the form." msgstr "" @@ -725,10 +743,10 @@ msgid "Enter a complete value." msgstr "Ingrese un valor completo." msgid "Enter a valid UUID." -msgstr "" +msgstr "Ingrese un UUID válido." msgid "Enter a valid JSON." -msgstr "" +msgstr "Ingresa un JSON válido." #. Translators: This is the default suffix added to form field labels msgid ":" @@ -736,7 +754,7 @@ msgstr ":" #, python-format msgid "(Hidden field %(name)s) %(error)s" -msgstr "" +msgstr "(Campo oculto %(name)s) %(error)s" #, python-format msgid "" @@ -745,14 +763,14 @@ msgid "" msgstr "" #, 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] "" #, 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] "" @@ -1092,40 +1110,40 @@ msgid ", " msgstr "," #, python-format -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d año" -msgstr[1] "%d años" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "" +msgstr[1] "" #, python-format -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d mes" -msgstr[1] "%d meses" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "" +msgstr[1] "" #, python-format -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d semana" -msgstr[1] "%d semanas" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "" +msgstr[1] "" #, python-format -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d día" -msgstr[1] "%d días" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "" +msgstr[1] "" #, python-format -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d hora" -msgstr[1] "%d horas" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d hora" +msgstr[1] "%(num)d horas" #, python-format -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d minuto" -msgstr[1] "%d minutos" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "" +msgstr[1] "" msgid "Forbidden" msgstr "Prohibido" @@ -1135,7 +1153,7 @@ msgstr "" 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 " +"header” to be sent by your web browser, but none was sent. This header is " "required for security reasons, to ensure that your browser is not being " "hijacked by third parties." msgstr "" diff --git a/django/conf/locale/eu/LC_MESSAGES/django.mo b/django/conf/locale/eu/LC_MESSAGES/django.mo index cf1b961be4092..572ea614672ef 100644 Binary files a/django/conf/locale/eu/LC_MESSAGES/django.mo and b/django/conf/locale/eu/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/eu/LC_MESSAGES/django.po b/django/conf/locale/eu/LC_MESSAGES/django.po index 028cc459d545c..563aa694ddec2 100644 --- a/django/conf/locale/eu/LC_MESSAGES/django.po +++ b/django/conf/locale/eu/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ # Translators: # Aitzol Naberan , 2013,2016 # Ander Martinez , 2013-2014 -# Eneko Illarramendi , 2017-2019,2021 +# Eneko Illarramendi , 2017-2019,2021-2022 # Jannis Leidel , 2011 # jazpillaga , 2011 # julen, 2011-2012 @@ -16,9 +16,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-05-09 16:11+0000\n" -"Last-Translator: Mikel Maldonado \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: Eneko Illarramendi \n" "Language-Team: Basque (http://www.transifex.com/django/django/language/eu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -215,6 +215,9 @@ msgstr "Mongoliera" msgid "Marathi" msgstr "Marathera" +msgid "Malay" +msgstr "" + msgid "Burmese" msgstr "Birmaniera" @@ -387,6 +390,10 @@ msgstr "Ziurtatu balio hau %(limit_value)s baino txikiagoa edo berdina dela." msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Ziurtatu balio hau %(limit_value)s baino handiagoa edo berdina dela." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -454,6 +461,10 @@ msgstr "eta" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(field_labels)s hauek dauzkan %(model_name)s dagoeneko existitzen da." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "%(value)r balioa ez da baleko aukera bat." @@ -468,8 +479,8 @@ msgstr "Eremu honek ezin du hutsik egon." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(field_label)s hori daukan %(model_name)s dagoeneko existitzen da." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -756,14 +767,14 @@ msgid "" msgstr "" #, 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] "" #, 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] "" @@ -1100,40 +1111,40 @@ msgid ", " msgstr ", " #, python-format -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "urte %d" -msgstr[1] "%d urte" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "urte %(num)d" +msgstr[1] "%(num)d urte" #, python-format -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "hilabete %d" -msgstr[1] "%d hilabete" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "hilabete %(num)d" +msgstr[1] "%(num)d hilabete" #, python-format -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "aste %d" -msgstr[1] "%d aste" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "aste %(num)d" +msgstr[1] "%(num)d aste" #, python-format -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "egun %d" -msgstr[1] "%d egun" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "egun %(num)d" +msgstr[1] "%(num)d egun" #, python-format -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "ordu %d" -msgstr[1] "%d ordu" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "ordu %(num)d" +msgstr[1] "%(num)d ordu" #, python-format -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "minutu %d" -msgstr[1] "%d minutu" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "minutu %(num)d" +msgstr[1] "%(num)d minutu" msgid "Forbidden" msgstr "Debekatuta" @@ -1143,7 +1154,7 @@ msgstr "CSRF egiaztapenak huts egin du. Eskaera abortatu da." 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 " +"header” to be sent by your web browser, but none was sent. This header is " "required for security reasons, to ensure that your browser is not being " "hijacked by third parties." msgstr "" diff --git a/django/conf/locale/fa/LC_MESSAGES/django.mo b/django/conf/locale/fa/LC_MESSAGES/django.mo index 906097c39c632..974298bbac74b 100644 Binary files a/django/conf/locale/fa/LC_MESSAGES/django.mo and b/django/conf/locale/fa/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/fa/LC_MESSAGES/django.po b/django/conf/locale/fa/LC_MESSAGES/django.po index 795602ff6caf8..732b9954d1538 100644 --- a/django/conf/locale/fa/LC_MESSAGES/django.po +++ b/django/conf/locale/fa/LC_MESSAGES/django.po @@ -6,6 +6,7 @@ # Ali Vakilzade , 2015 # Arash Fazeli , 2012 # Eric Hamiter , 2019 +# Eshagh , 2022 # Farshad Asadpour, 2021 # Jannis Leidel , 2011 # Mariusz Felisiak , 2021 @@ -23,9 +24,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-24 16:28+0000\n" -"Last-Translator: Mariusz Felisiak \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: Eshagh \n" "Language-Team: Persian (http://www.transifex.com/django/django/language/" "fa/)\n" "MIME-Version: 1.0\n" @@ -400,6 +401,10 @@ msgstr "مطمئن شوید این مقدار کوچکتر و یا مساوی %( msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "مطمئن شوید این مقدار بزرگتر و یا مساوی %(limit_value)s است." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -469,6 +474,10 @@ msgstr "و" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "‏%(model_name)s با این %(field_labels)s وجود دارد." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "مقدار %(value)r انتخاب معتبری نیست. " @@ -483,8 +492,8 @@ msgstr "این فیلد نمی تواند خالی باشد." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s با این %(field_label)s از قبل موجود است." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -778,16 +787,16 @@ msgstr "" "%(field_names)s. اگر این مشکل ادامه داشت، آن را گزارش کنید." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "لطفاً تعدا فرم‌ها حداکثر %d باشد." -msgstr[1] "لطفاً تعداد فرم‌ها حداکثر %d باشد." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "" +msgstr[1] "" #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "لطفاً تعداد فرم‌ها حداقل %d باشد." -msgstr[1] "لطفاً تعدا فرم‌ ها حداقل %d باشد." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "" +msgstr[1] "" msgid "Order" msgstr "ترتیب:" @@ -1127,37 +1136,37 @@ msgstr "،" msgid "%(num)d year" msgid_plural "%(num)d years" msgstr[0] "%(num)d سال" -msgstr[1] "%(num)d سال ها" +msgstr[1] "%(num)d سال" #, python-format msgid "%(num)d month" msgid_plural "%(num)d months" msgstr[0] "%(num)d ماه" -msgstr[1] "%(num)d ماه ها" +msgstr[1] "%(num)d ماه" #, python-format msgid "%(num)d week" msgid_plural "%(num)d weeks" msgstr[0] "%(num)d هفته" -msgstr[1] "%(num)d هفته ها" +msgstr[1] "%(num)d هفته" #, python-format msgid "%(num)d day" msgid_plural "%(num)d days" msgstr[0] "%(num)d روز" -msgstr[1] "%(num)d روزها" +msgstr[1] "%(num)d روز" #, python-format msgid "%(num)d hour" msgid_plural "%(num)d hours" msgstr[0] "%(num)d ساعت" -msgstr[1] "%(num)d ساعت ها" +msgstr[1] "%(num)d ساعت" #, python-format msgid "%(num)d minute" msgid_plural "%(num)d minutes" msgstr[0] "%(num)d دقیقه" -msgstr[1] "%(num)d دقیقه ها" +msgstr[1] "%(num)d دقیقه" msgid "Forbidden" msgstr "ممنوع" diff --git a/django/conf/locale/fi/LC_MESSAGES/django.mo b/django/conf/locale/fi/LC_MESSAGES/django.mo index e805013eb1cf0..84df501223b95 100644 Binary files a/django/conf/locale/fi/LC_MESSAGES/django.mo and b/django/conf/locale/fi/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/fi/LC_MESSAGES/django.po b/django/conf/locale/fi/LC_MESSAGES/django.po index d599ae31a3b73..35ad0b89159b0 100644 --- a/django/conf/locale/fi/LC_MESSAGES/django.po +++ b/django/conf/locale/fi/LC_MESSAGES/django.po @@ -1,19 +1,19 @@ # This file is distributed under the same license as the Django package. # # Translators: -# Aarni Koskela, 2015,2017-2018,2020-2021 +# Aarni Koskela, 2015,2017-2018,2020-2022 # Antti Kaihola , 2011 # Jannis Leidel , 2011 # Jiri Grönroos , 2021 # Lasse Liehu , 2015 # Mika Mäkelä , 2018 -# Klaus Dahlén , 2011 +# Klaus Dahlén, 2011 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-25 07:24+0000\n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" "Last-Translator: Aarni Koskela\n" "Language-Team: Finnish (http://www.transifex.com/django/django/language/" "fi/)\n" @@ -390,6 +390,10 @@ msgstr "Tämän arvon on oltava enintään %(limit_value)s." msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Tämän luvun on oltava vähintään %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Varmista, että arvo on askelkoon %(limit_value)smonikerta. " + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -461,6 +465,10 @@ msgstr "ja" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s jolla on nämä %(field_labels)s on jo olemassa." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Rajoitetta \"%(name)s\" loukataan." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Arvo %(value)r ei kelpaa." @@ -475,8 +483,8 @@ msgstr "Tämä kenttä ei voi olla tyhjä." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s jolla on tämä %(field_label)s, on jo olemassa." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -769,16 +777,16 @@ msgstr "" "tämän bugina." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Lähetä enintään %d lomake." -msgstr[1] "Lähetä enintään %d lomaketta." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Lähetä enintään%(num)d lomake." +msgstr[1] "Lähetä enintään %(num)d lomaketta." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Lähetä vähintään %d lomake." -msgstr[1] "Lähetä vähintään %d lomaketta." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Lähetä vähintään %(num)d lomake." +msgstr[1] "Lähetä vähintään %(num)d lomaketta. " msgid "Order" msgstr "Järjestys" diff --git a/django/conf/locale/fr/LC_MESSAGES/django.mo b/django/conf/locale/fr/LC_MESSAGES/django.mo index af26f618629d2..681adfd161b73 100644 Binary files a/django/conf/locale/fr/LC_MESSAGES/django.mo and b/django/conf/locale/fr/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/fr/LC_MESSAGES/django.po b/django/conf/locale/fr/LC_MESSAGES/django.po index 72bee50a544c9..b1bf8586acdc7 100644 --- a/django/conf/locale/fr/LC_MESSAGES/django.po +++ b/django/conf/locale/fr/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ # Translators: # Bruno Brouard , 2021 # Simon Charette , 2012 -# Claude Paroz , 2013-2021 +# Claude Paroz , 2013-2022 # Claude Paroz , 2011 # Jannis Leidel , 2011 # Jean-Baptiste Mora, 2014 @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-23 17:19+0000\n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" "Last-Translator: Claude Paroz \n" "Language-Team: French (http://www.transifex.com/django/django/language/fr/)\n" "MIME-Version: 1.0\n" @@ -394,6 +394,12 @@ msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "" "Assurez-vous que cette valeur est supérieure ou égale à %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Assurez-vous que cette valeur est un multiple de la taille de pas " +"%(limit_value)s." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -467,6 +473,10 @@ msgstr "et" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "Un objet %(model_name)s avec ces champs %(field_labels)s existe déjà." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "La contrainte « %(name)s » n’est pas respectée." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "La valeur « %(value)r » n’est pas un choix valide." @@ -481,8 +491,8 @@ msgstr "Ce champ ne peut pas être vide." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "Un objet %(model_name)s avec ce champ %(field_label)s existe déjà." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -783,16 +793,16 @@ msgstr "" "rapport de bogue si le problème persiste." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Veuillez soumettre au plus %d formulaire." -msgstr[1] "Veuillez soumettre au plus %d formulaires." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Veuillez soumettre au plus %(num)d formulaire." +msgstr[1] "Veuillez soumettre au plus %(num)d formulaires." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Veuillez soumettre au moins %d formulaire." -msgstr[1] "Veuillez soumettre au moins %d formulaires." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Veuillez soumettre au moins %(num)d formulaire." +msgstr[1] "Veuillez soumettre au moins %(num)d formulaires." msgid "Order" msgstr "Ordre" diff --git a/django/conf/locale/hi/LC_MESSAGES/django.mo b/django/conf/locale/hi/LC_MESSAGES/django.mo index b1aa3f68e2f5d..2d535fb054e61 100644 Binary files a/django/conf/locale/hi/LC_MESSAGES/django.mo and b/django/conf/locale/hi/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/hi/LC_MESSAGES/django.po b/django/conf/locale/hi/LC_MESSAGES/django.po index 427d0151fc091..20da37666ac38 100644 --- a/django/conf/locale/hi/LC_MESSAGES/django.po +++ b/django/conf/locale/hi/LC_MESSAGES/django.po @@ -2,6 +2,7 @@ # # Translators: # alkuma , 2013 +# Bharat Toge, 2022 # Chandan kumar , 2012 # Claude Paroz , 2020 # Jannis Leidel , 2011 @@ -10,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-19 20:23+0200\n" -"PO-Revision-Date: 2020-07-14 21:42+0000\n" -"Last-Translator: Transifex Bot <>\n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: Bharat Toge\n" "Language-Team: Hindi (http://www.transifex.com/django/django/language/hi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -27,7 +28,7 @@ msgid "Arabic" msgstr "अरबी" msgid "Algerian Arabic" -msgstr "" +msgstr "अल्जीरियाई अरब" msgid "Asturian" msgstr "" @@ -75,7 +76,7 @@ msgid "English" msgstr "अंग्रेज़ी " msgid "Australian English" -msgstr "" +msgstr "ऑस्ट्रेलियाई अंग्रेज़ी " msgid "British English" msgstr "ब्रिटिश अंग्रेजी" @@ -90,7 +91,7 @@ msgid "Argentinian Spanish" msgstr "अर्जेंटीना स्पैनिश " msgid "Colombian Spanish" -msgstr "" +msgstr "कोलंबियाई स्पेनी" msgid "Mexican Spanish" msgstr "मेक्सिकन स्पैनिश" @@ -207,7 +208,10 @@ msgid "Mongolian" msgstr "मंगोलियन" msgid "Marathi" -msgstr "" +msgstr "मराठी" + +msgid "Malay" +msgstr "मलय भाषा" msgid "Burmese" msgstr "बर्मीज़" @@ -297,7 +301,7 @@ msgid "Urdu" msgstr "उर्दू" msgid "Uzbek" -msgstr "" +msgstr "उज़्बेक" msgid "Vietnamese" msgstr "वियतनामी" @@ -309,25 +313,30 @@ msgid "Traditional Chinese" msgstr "पारम्परिक चीनी" msgid "Messages" -msgstr "" +msgstr "संदेश" msgid "Site Maps" -msgstr "" +msgstr "साइट मैप" msgid "Static Files" -msgstr "" +msgstr "स्थिर फ़ाइलें" msgid "Syndication" +msgstr "सिंडिकेशन" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" msgstr "" msgid "That page number is not an integer" -msgstr "" +msgstr "यह पृष्ठ संख्या पूर्णांक नहीं है" msgid "That page number is less than 1" -msgstr "" +msgstr "यह पृष्ठ संख्या 1 से कम है " msgid "That page contains no results" -msgstr "" +msgstr "उस पृष्ठ पर कोई परिणाम नहीं हैं" msgid "Enter a valid value." msgstr "एक मान्य मूल्य दर्ज करें" @@ -336,7 +345,7 @@ msgid "Enter a valid URL." msgstr "वैध यू.आर.एल भरें ।" msgid "Enter a valid integer." -msgstr "" +msgstr "एक मान्य पूर्ण संख्या दर्ज करें" msgid "Enter a valid email address." msgstr "वैध डाक पता प्रविष्ट करें।" @@ -377,6 +386,10 @@ msgstr "सुनिश्चित करें कि यह मान %(limi msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "सुनिश्चित करें यह मान %(limit_value)s से बड़ा या बराबर है ।" +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -436,6 +449,10 @@ msgstr "और" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "" +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "" @@ -450,8 +467,8 @@ msgstr "इस फ़ील्ड रिक्त नहीं हो सकत msgid "%(model_name)s with this %(field_label)s already exists." msgstr "इस %(field_label)s के साथ एक %(model_name)s पहले से ही उपस्थित है ।" -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -523,7 +540,7 @@ msgid "" msgstr "" msgid "Duration" -msgstr "" +msgstr "अवधि" msgid "Email address" msgstr "ईमेल पता" @@ -548,6 +565,9 @@ msgstr "पूर्णांक" msgid "Big (8 byte) integer" msgstr "बड़ा (8 बाइट) पूर्णांक " +msgid "Small integer" +msgstr "छोटा पूर्णांक" + msgid "IPv4 address" msgstr "IPv4 पता" @@ -574,9 +594,6 @@ msgstr "धनात्मक छोटा पूर्णांक" msgid "Slug (up to %(max_length)s)" msgstr "स्लग (%(max_length)s तक)" -msgid "Small integer" -msgstr "छोटा पूर्णांक" - msgid "Text" msgstr "पाठ" @@ -615,10 +632,10 @@ msgid "Image" msgstr "छवि" msgid "A JSON object" -msgstr "" +msgstr "एक JSON डेटा object" msgid "Value must be valid JSON." -msgstr "" +msgstr "दर्ज किया गया डेटा वैध JSON होना अनिवार्य है" #, python-format msgid "%(model)s instance with %(field)s %(value)r does not exist." @@ -663,11 +680,11 @@ msgid "Enter a valid date/time." msgstr "वैध तिथि/समय भरें ।" msgid "Enter a valid duration." -msgstr "" +msgstr "एक वैध अवधी दर्ज करें" #, python-brace-format msgid "The number of days must be between {min_days} and {max_days}." -msgstr "" +msgstr "दिनों की संख्या {min_days} और {max_days} के बीच होना अनिवार्य है " msgid "No file was submitted. Check the encoding type on the form." msgstr "कोई संचिका निवेदित नहीं हुई । कृपया कूटलेखन की जाँच करें ।" @@ -704,10 +721,10 @@ msgid "Enter a complete value." msgstr "" msgid "Enter a valid UUID." -msgstr "" +msgstr "एक वैध UUID भरें " msgid "Enter a valid JSON." -msgstr "" +msgstr "एक वैध JSON भरें " #. Translators: This is the default suffix added to form field labels msgid ":" @@ -717,18 +734,21 @@ msgstr "" msgid "(Hidden field %(name)s) %(error)s" msgstr "" -msgid "ManagementForm data is missing or has been tampered with" +#, 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 "" #, python-format -msgid "Please submit %d or fewer forms." -msgid_plural "Please submit %d or fewer forms." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." msgstr[0] "" msgstr[1] "" #, python-format -msgid "Please submit %d or more forms." -msgid_plural "Please submit %d or more forms." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." msgstr[0] "" msgstr[1] "" @@ -1065,38 +1085,38 @@ msgid ", " msgstr ", " #, python-format -msgid "%d year" -msgid_plural "%d years" +msgid "%(num)d year" +msgid_plural "%(num)d years" msgstr[0] "" msgstr[1] "" #, python-format -msgid "%d month" -msgid_plural "%d months" +msgid "%(num)d month" +msgid_plural "%(num)d months" msgstr[0] "" msgstr[1] "" #, python-format -msgid "%d week" -msgid_plural "%d weeks" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" msgstr[0] "" msgstr[1] "" #, python-format -msgid "%d day" -msgid_plural "%d days" +msgid "%(num)d day" +msgid_plural "%(num)d days" msgstr[0] "" msgstr[1] "" #, python-format -msgid "%d hour" -msgid_plural "%d hours" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" msgstr[0] "" msgstr[1] "" #, python-format -msgid "%d minute" -msgid_plural "%d minutes" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" msgstr[0] "" msgstr[1] "" @@ -1104,11 +1124,11 @@ msgid "Forbidden" msgstr "" msgid "CSRF verification failed. Request aborted." -msgstr "" +msgstr "CSRF सत्यापन असफल रहा. Request निरस्त की गई " 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 " +"header” to be sent by your web browser, but none was sent. This header is " "required for security reasons, to ensure that your browser is not being " "hijacked by third parties." msgstr "" @@ -1198,7 +1218,7 @@ msgstr "" msgid "Index of %(directory)s" msgstr "%(directory)s का अनुक्रमणिका" -msgid "Django: the Web framework for perfectionists with deadlines." +msgid "The install worked successfully! Congratulations!" msgstr "" #, python-format @@ -1207,9 +1227,6 @@ msgid "" "target=\"_blank\" rel=\"noopener\">release notes for Django %(version)s" msgstr "" -msgid "The install worked successfully! Congratulations!" -msgstr "" - #, python-format msgid "" "You are seeing this page because , 2019 # Jannis Leidel , 2011 # János R, 2011-2012,2014 +# János R, 2022 # Máté Őry , 2013 # Szilveszter Farkas , 2011 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-04-01 15:20+0000\n" -"Last-Translator: András Veres-Szentkirályi\n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-05-25 06:49+0000\n" +"Last-Translator: János R, 2022\n" "Language-Team: Hungarian (http://www.transifex.com/django/django/language/" "hu/)\n" "MIME-Version: 1.0\n" @@ -214,6 +215,9 @@ msgstr "Mongol" msgid "Marathi" msgstr "Maráthi" +msgid "Malay" +msgstr "" + msgid "Burmese" msgstr "Burmai" @@ -391,6 +395,10 @@ msgstr "Bizonyosodjon meg arról, hogy az érték %(limit_value)s, vagy kisebb." msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Bizonyosodjon meg arról, hogy az érték %(limit_value)s, vagy nagyobb." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -466,6 +474,10 @@ msgstr "és" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "Már létezik %(model_name)s ilyennel: %(field_labels)s." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "%(value)r érték érvénytelen." @@ -480,8 +492,8 @@ msgstr "Ez a mező nem lehet üres." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "Már létezik %(model_name)s ilyennel: %(field_label)s." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -781,16 +793,16 @@ msgstr "" "%(field_names)s. Ha ez többször is előfordul, érdemes bejelenteni hibaként." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Legfeljebb %d űrlapot küldjön be." -msgstr[1] "Legfeljebb %d űrlapot küldjön be." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "" +msgstr[1] "" #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Legalább %d űrlapot küldjön be." -msgstr[1] "Legalább %d űrlapot küldjön be." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "" +msgstr[1] "" msgid "Order" msgstr "Sorrend" @@ -1131,57 +1143,53 @@ msgid ", " msgstr ", " #, python-format -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d év" -msgstr[1] "%d év" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "" +msgstr[1] "" #, python-format -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d hónap" -msgstr[1] "%d hónap" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "" +msgstr[1] "" #, python-format -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d hét" -msgstr[1] "%d hét" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "" +msgstr[1] "" #, python-format -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d nap" -msgstr[1] "%d nap" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "" +msgstr[1] "" #, python-format -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d óra" -msgstr[1] "%d óra" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "" +msgstr[1] "" #, python-format -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d perc" -msgstr[1] "%d perc" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "" +msgstr[1] "" msgid "Forbidden" msgstr "Hozzáférés megtagadva" msgid "CSRF verification failed. Request aborted." -msgstr "CSRF ellenőrzés sikertelen. Kérést kiszolgálása megszakítva." +msgstr "CSRF ellenőrzés sikertelen. Kérés kiszolgálása megszakítva." 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 " +"header” to be sent by your web browser, but none was sent. This header is " "required for security reasons, to ensure that your browser is not being " "hijacked by third parties." msgstr "" -"Ezt az üzenetet azért látja, mert ezen a HTTPS oldalon kötelező a \"Referer " -"header\", amelyet a böngészőnek kellene küldenie, de nem tette. Ez az adat " -"biztonsági okokból kötelező, ez biztosítja, hogy a böngészőt nem irányítja " -"át egy harmadik fél." msgid "" "If you have configured your browser to disable “Referer” headers, please re-" @@ -1196,8 +1204,8 @@ msgid "" "If you are using the tag or " "including the “Referrer-Policy: no-referrer” header, please remove them. The " "CSRF protection requires the “Referer” header to do strict referer checking. " -"If you’re concerned about privacy, use alternatives like for links to third-party sites." +"If you’re concerned about privacy, use alternatives like for links to third-party sites." msgstr "" "Ha a címkét használja, vagy " "a “Referrer-Policy: no-referrer” fejlécet, kérjük távolítsa el ezeket. A " @@ -1299,14 +1307,14 @@ msgstr "" #, python-format msgid "" "You are seeing this page because DEBUG=True is in your settings file and you have not configured any " -"URLs." +"%(version)s/ref/settings/#debug\" target=\"_blank\" " +"rel=\"noopener\">DEBUG=True is in your settings file and you have not " +"configured any URLs." msgstr "" "Azért látod ezt az oldalt, mert a DEBUG=True szerepel a settings fájlban, és még nem került beállításra " -"egy URL sem." +"en/%(version)s/ref/settings/#debug\" target=\"_blank\" " +"rel=\"noopener\">DEBUG=True szerepel a settings fájlban, és még nem " +"került beállításra egy URL sem." msgid "Django Documentation" msgstr "Django Dokumentáció" diff --git a/django/conf/locale/id/LC_MESSAGES/django.mo b/django/conf/locale/id/LC_MESSAGES/django.mo index c52d43f2fc428..22a85f1734550 100644 Binary files a/django/conf/locale/id/LC_MESSAGES/django.mo and b/django/conf/locale/id/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/id/LC_MESSAGES/django.po b/django/conf/locale/id/LC_MESSAGES/django.po index 1dd31def4b83c..b22f585365de4 100644 --- a/django/conf/locale/id/LC_MESSAGES/django.po +++ b/django/conf/locale/id/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ # Translators: # Adiyat Mubarak , 2017 # Claude Paroz , 2018 -# Fery Setiawan , 2015-2019,2021 +# Fery Setiawan , 2015-2019,2021-2022 # Jannis Leidel , 2011 # M Asep Indrayana , 2015 # oon arfiandwi , 2016,2020 @@ -15,9 +15,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-18 21:19+0000\n" -"Last-Translator: Transifex Bot <>\n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: Fery Setiawan \n" "Language-Team: Indonesian (http://www.transifex.com/django/django/language/" "id/)\n" "MIME-Version: 1.0\n" @@ -216,7 +216,7 @@ msgid "Marathi" msgstr "Marathi" msgid "Malay" -msgstr "" +msgstr "Malaysia" msgid "Burmese" msgstr "Burma" @@ -393,6 +393,11 @@ msgstr "Pastikan nilai ini lebih kecil dari atau sama dengan %(limit_value)s." msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Pastikan nilai ini lebih besar dari atau sama dengan %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Pastikan nilai ini adalah kelipatan dari ukuran langkah %(limit_value)s." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -455,6 +460,10 @@ msgstr "dan" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s dengan %(field_labels)s ini tidak ada." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Batasan “%(name)s” dilanggar." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Nilai %(value)r bukan pilihan yang valid." @@ -469,8 +478,8 @@ msgstr "Field ini tidak boleh kosong." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s dengan %(field_label)s telah ada." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -768,14 +777,14 @@ msgstr "" "masalah masih ada." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Harap ajukan paling banyak %d formulir." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Harap ajukan paling banyak %(num)d formulir." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Harap ajukan setidaknya %d formulir." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Harap ajukan setidaknya %(num)d formulir." msgid "Order" msgstr "Urutan" diff --git a/django/conf/locale/it/LC_MESSAGES/django.mo b/django/conf/locale/it/LC_MESSAGES/django.mo index b8c3f56254ee5..771d5c545240a 100644 Binary files a/django/conf/locale/it/LC_MESSAGES/django.mo and b/django/conf/locale/it/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/it/LC_MESSAGES/django.po b/django/conf/locale/it/LC_MESSAGES/django.po index 05f0143d8ac74..be0274d6afde3 100644 --- a/django/conf/locale/it/LC_MESSAGES/django.po +++ b/django/conf/locale/it/LC_MESSAGES/django.po @@ -7,6 +7,7 @@ # Carlo Miron , 2018-2019 # Davide Targa , 2021 # Denis Darii , 2011 +# Emanuele Di Giacomo, 2021 # Flavio Curella , 2013,2016 # Jannis Leidel , 2011 # Themis Savvidis , 2013 @@ -15,6 +16,7 @@ # Mirco Grillo , 2018,2020 # Nicola Larosa , 2013 # palmux , 2014-2015,2017,2021 +# Paolo Melchiorre , 2022 # Mattia Procopio , 2015 # Riccardo Magliocchetti , 2017 # Stefano Brentegani , 2014-2017 @@ -22,9 +24,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-18 21:19+0000\n" -"Last-Translator: Transifex Bot <>\n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: Paolo Melchiorre \n" "Language-Team: Italian (http://www.transifex.com/django/django/language/" "it/)\n" "MIME-Version: 1.0\n" @@ -223,7 +225,7 @@ msgid "Marathi" msgstr "Marathi" msgid "Malay" -msgstr "" +msgstr "Malese" msgid "Burmese" msgstr "Birmano" @@ -401,6 +403,12 @@ msgstr "Assicurati che questo valore sia minore o uguale a %(limit_value)s." msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Assicurati che questo valore sia maggiore o uguale a %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Assicurarsi che questo valore sia un multiplo della dimensione di passo " +"%(limit_value)s." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -471,6 +479,10 @@ msgstr "e" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s con questa %(field_labels)s esiste già." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Il vincolo “%(name)s” è stato violato." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Il valore %(value)r non è una scelta valida." @@ -485,8 +497,8 @@ msgstr "Questo campo non può essere vuoto." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s con questo %(field_label)s esiste già." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -785,16 +797,16 @@ msgstr "" "errore se il problema persiste." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Si prega di inviare al massimo %d form." -msgstr[1] "Si prega di inviare al massimo %d form." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Si prega di inviare al massimo %(num)d form." +msgstr[1] "Si prega di inviare al massimo %(num)d form." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Si prega di inviare almeno %d form." -msgstr[1] "Si prega di inviare almeno %d form." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Si prega di inviare almeno %(num)d form." +msgstr[1] "Si prega di inviare almeno %(num)d form." msgid "Order" msgstr "Ordine" diff --git a/django/conf/locale/ja/LC_MESSAGES/django.mo b/django/conf/locale/ja/LC_MESSAGES/django.mo index 2fd64a8f3945d..7dc15f67f32d7 100644 Binary files a/django/conf/locale/ja/LC_MESSAGES/django.mo and b/django/conf/locale/ja/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/ja/LC_MESSAGES/django.po b/django/conf/locale/ja/LC_MESSAGES/django.po index 3663dae5d94f4..b3e0682656d71 100644 --- a/django/conf/locale/ja/LC_MESSAGES/django.po +++ b/django/conf/locale/ja/LC_MESSAGES/django.po @@ -5,7 +5,9 @@ # tadasu , 2020 # Goto Hayato , 2021 # Goto Hayato , 2019 +# Hiroki Sawano, 2022 # Jannis Leidel , 2011 +# Kamiyama Satoshi, 2021 # Kentaro Matsuzaki , 2015 # Masashi SHIBATA , 2017 # Nikita K , 2019 @@ -18,9 +20,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-18 21:19+0000\n" -"Last-Translator: Transifex Bot <>\n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-05-25 06:49+0000\n" +"Last-Translator: Hiroki Sawano, 2022\n" "Language-Team: Japanese (http://www.transifex.com/django/django/language/" "ja/)\n" "MIME-Version: 1.0\n" @@ -219,7 +221,7 @@ msgid "Marathi" msgstr "マラーティー語" msgid "Malay" -msgstr "" +msgstr "マレー語" msgid "Burmese" msgstr "ビルマ語" @@ -397,6 +399,10 @@ msgstr "この値は %(limit_value)s 以下でなければなりません。" msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "この値は %(limit_value)s 以上でなければなりません。" +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -457,6 +463,10 @@ msgstr "と" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "この %(field_labels)s を持った %(model_name)s が既に存在します。" +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "制約 “%(name)s” に違反しています。" + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "%(value)r は有効な選択肢ではありません。" @@ -471,8 +481,8 @@ msgstr "このフィールドは空ではいけません。" msgid "%(model_name)s with this %(field_label)s already exists." msgstr "この %(field_label)s を持った %(model_name)s が既に存在します。" -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -765,14 +775,14 @@ msgstr "" "ません。" #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "最多 %d のフォームを送信してください。" +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "" #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "最少 %d のフォームを送信してください。" +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "" msgid "Order" msgstr "並び変え" @@ -1168,8 +1178,8 @@ msgid "" "If you are using the tag or " "including the “Referrer-Policy: no-referrer” header, please remove them. The " "CSRF protection requires the “Referer” header to do strict referer checking. " -"If you’re concerned about privacy, use alternatives like for links to third-party sites." +"If you’re concerned about privacy, use alternatives like for links to third-party sites." msgstr "" "もし タグを使用しているか " "“Referrer-Policy: no-referrer” ヘッダを含んでいる場合は削除してください。" @@ -1267,13 +1277,14 @@ msgstr "" #, python-format msgid "" "You are seeing this page because DEBUG=True is in your settings file and you have not configured any " -"URLs." +"%(version)s/ref/settings/#debug\" target=\"_blank\" " +"rel=\"noopener\">DEBUG=True is in your settings file and you have not " +"configured any URLs." msgstr "" "このページは、設定ファイルでDEBUG=Trueが指定され、何もURLが設定されていない時に表示されます。" +"%(version)s/ref/settings/#debug\" target=\"_blank\" " +"rel=\"noopener\">DEBUG=Trueが指定され、何もURLが設定されていない時に表示" +"されます。" msgid "Django Documentation" msgstr "Django ドキュメント" diff --git a/django/conf/locale/ko/LC_MESSAGES/django.mo b/django/conf/locale/ko/LC_MESSAGES/django.mo index a3b88a56c54b4..a53d26e3934ef 100644 Binary files a/django/conf/locale/ko/LC_MESSAGES/django.mo and b/django/conf/locale/ko/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/ko/LC_MESSAGES/django.po b/django/conf/locale/ko/LC_MESSAGES/django.po index 3b687c50d33a8..6cdf152914581 100644 --- a/django/conf/locale/ko/LC_MESSAGES/django.po +++ b/django/conf/locale/ko/LC_MESSAGES/django.po @@ -23,13 +23,14 @@ # Seho Noh , 2018 # Subin Choi , 2016 # Taesik Yoon , 2015 +# 정훈 이, 2021 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-24 16:30+0000\n" -"Last-Translator: Mariusz Felisiak \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2021-12-25 06:49+0000\n" +"Last-Translator: 정훈 이\n" "Language-Team: Korean (http://www.transifex.com/django/django/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -218,7 +219,7 @@ msgid "Macedonian" msgstr "마케도니아어" msgid "Malayalam" -msgstr "말레이지아어" +msgstr "말라얄람어" msgid "Mongolian" msgstr "몽고어" @@ -227,7 +228,7 @@ msgid "Marathi" msgstr "마라티어" msgid "Malay" -msgstr "" +msgstr "말레이시아어" msgid "Burmese" msgstr "룩셈부르크어" @@ -343,7 +344,7 @@ msgstr "신디케이션" #. Translators: String used to replace omitted page numbers in elided page #. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. msgid "…" -msgstr "" +msgstr "..." msgid "That page number is not an integer" msgstr "페이지 번호가 정수가 아닙니다." @@ -404,6 +405,10 @@ msgstr "%(limit_value)s 이하의 값을 입력해 주세요." msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "%(limit_value)s 이상의 값을 입력해 주세요." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -464,6 +469,10 @@ msgstr "또한" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s의 %(field_labels)s 은/는 이미 존재합니다." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "%(value)r 은/는 올바른 선택사항이 아닙니다." @@ -478,8 +487,8 @@ msgstr "이 필드는 빈 칸으로 둘 수 없습니다." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s의 %(field_label)s은/는 이미 존재합니다." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -765,15 +774,17 @@ 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 "" +"ManagementForm 데이터가 없거나 변경되었습니다. 현재 없는 필드: " +"%(field_names)s. 이런 이슈가 지속된다면 버그 리포트를 제출해주시기 바랍니다." #, 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] "" #, 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] "" msgid "Order" @@ -1112,32 +1123,32 @@ msgstr ", " #, python-format msgid "%(num)d year" msgid_plural "%(num)d years" -msgstr[0] "" +msgstr[0] "%(num)d년" #, python-format msgid "%(num)d month" msgid_plural "%(num)d months" -msgstr[0] "" +msgstr[0] "%(num)d개월" #, python-format msgid "%(num)d week" msgid_plural "%(num)d weeks" -msgstr[0] "" +msgstr[0] "%(num)d주" #, python-format msgid "%(num)d day" msgid_plural "%(num)d days" -msgstr[0] "" +msgstr[0] "%(num)d일" #, python-format msgid "%(num)d hour" msgid_plural "%(num)d hours" -msgstr[0] "" +msgstr[0] "%(num)d시간" #, python-format msgid "%(num)d minute" msgid_plural "%(num)d minutes" -msgstr[0] "" +msgstr[0] "%(num)d분" msgid "Forbidden" msgstr "Forbidden" @@ -1151,6 +1162,10 @@ msgid "" "required for security reasons, to ensure that your browser is not being " "hijacked by third parties." msgstr "" +"이 메세지가 보이는 이유는 이 HTTPS 사이트가 당신의 웹 브라우저로부터 \"참조 " +"헤더\"를 요구하지만, 아무것도 받기 못하였기 때문입니다. 이 헤더는 보안상의 이" +"유로 필요하며, 당신의 웹 브라우저가 제3자에 의해 해킹당하고 있지 않다는 것을 " +"보장하기 위함입니다." msgid "" "If you have configured your browser to disable “Referer” headers, please re-" diff --git a/django/conf/locale/lv/LC_MESSAGES/django.mo b/django/conf/locale/lv/LC_MESSAGES/django.mo index db239c6961a8e..7f37b13d8ee99 100644 Binary files a/django/conf/locale/lv/LC_MESSAGES/django.mo and b/django/conf/locale/lv/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/lv/LC_MESSAGES/django.po b/django/conf/locale/lv/LC_MESSAGES/django.po index bae50ed6d27fa..cea21079d0b2c 100644 --- a/django/conf/locale/lv/LC_MESSAGES/django.po +++ b/django/conf/locale/lv/LC_MESSAGES/django.po @@ -2,22 +2,20 @@ # # Translators: # edgars , 2011 -# NullIsNot0 , 2017 -# NullIsNot0 , 2017-2018 +# Edgars Voroboks , 2017-2018,2022 # Jannis Leidel , 2011 # krikulis , 2014 # Māris Nartišs , 2016 # Mariusz Felisiak , 2021 # Mārtiņš Šulcs , 2018 -# NullIsNot0 , 2018-2021 # peterisb , 2016-2017 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-24 16:30+0000\n" -"Last-Translator: Mariusz Felisiak \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: Edgars Voroboks \n" "Language-Team: Latvian (http://www.transifex.com/django/django/language/" "lv/)\n" "MIME-Version: 1.0\n" @@ -217,7 +215,7 @@ msgid "Marathi" msgstr "maratiešu" msgid "Malay" -msgstr "" +msgstr "malajiešu" msgid "Burmese" msgstr "birmiešu" @@ -394,6 +392,10 @@ msgstr "Šai vērtībai jabūt mazākai vai vienādai ar %(limit_value)s." msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Vērtībai jābūt lielākai vai vienādai ar %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Vērtībai jābūt reizinājumam no %(limit_value)s." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -472,6 +474,10 @@ msgstr "un" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s ar šādu lauka %(field_labels)s vērtību jau eksistē." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Konstante “%(name)s” ir pārkāpta." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Vērtība %(value)r ir nederīga izvēle." @@ -486,8 +492,8 @@ msgstr "Šis lauks nevar būt tukšs" msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s ar šādu lauka %(field_label)s vērtību jau eksistē." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -782,18 +788,18 @@ msgstr "" "%(field_names)s. Paziņojiet par kļūdu, ja problēma atkārtojas." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Lūdzu iesniedziet ne vairāk kā %d formu." -msgstr[1] "Lūdzu iesniedziet ne vairāk kā %d formu." -msgstr[2] "Lūdzu iesniedziet ne vairāk kā %d formas." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Lūdzu iesniedziet ne vairāk par %(num)d formām." +msgstr[1] "Lūdzu iesniedziet ne vairāk par %(num)d formu." +msgstr[2] "Lūdzu iesniedziet ne vairāk par %(num)d formām." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Lūdzu iesniedziet vismaz %d formu." -msgstr[1] "Lūdzu iesniedziet vismaz %d formu." -msgstr[2] "Lūdzu iesniedziet vismaz %d formas." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Lūdzu iesniedziet vismaz %(num)d formas." +msgstr[1] "Lūdzu iesniedziet vismaz %(num)d formu." +msgstr[2] "Lūdzu iesniedziet vismaz %(num)d formas." msgid "Order" msgstr "Sakārtojums" diff --git a/django/conf/locale/nl/LC_MESSAGES/django.mo b/django/conf/locale/nl/LC_MESSAGES/django.mo index ea4b8d6c9323a..4f581f2cb6c97 100644 Binary files a/django/conf/locale/nl/LC_MESSAGES/django.mo and b/django/conf/locale/nl/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/nl/LC_MESSAGES/django.po b/django/conf/locale/nl/LC_MESSAGES/django.po index e8ccbca080dc5..050e457266433 100644 --- a/django/conf/locale/nl/LC_MESSAGES/django.po +++ b/django/conf/locale/nl/LC_MESSAGES/django.po @@ -15,13 +15,13 @@ # Meteor0id, 2019-2020 # 8de006b1b0894aab6aef71979dcd8bd6_5c6b207 , 2014-2015 # Tino de Bruijn , 2013 -# Tonnes , 2017,2019-2020 +# Tonnes , 2017,2019-2020,2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-19 20:23+0200\n" -"PO-Revision-Date: 2020-07-15 08:30+0000\n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" "Last-Translator: Tonnes \n" "Language-Team: Dutch (http://www.transifex.com/django/django/language/nl/)\n" "MIME-Version: 1.0\n" @@ -219,6 +219,9 @@ msgstr "Mongools" msgid "Marathi" msgstr "Marathi" +msgid "Malay" +msgstr "Maleis" + msgid "Burmese" msgstr "Birmaans" @@ -330,6 +333,11 @@ msgstr "Statische bestanden" msgid "Syndication" msgstr "Syndicatie" +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +msgid "…" +msgstr "…" + msgid "That page number is not an integer" msgstr "Dat paginanummer is geen geheel getal" @@ -391,6 +399,11 @@ msgstr "Zorg ervoor dat deze waarde hoogstens %(limit_value)s is." msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Zorg ervoor dat deze waarde minstens %(limit_value)s is." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Zorg ervoor dat deze waarde een veelvoud is van stapgrootte %(limit_value)s." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -460,6 +473,10 @@ msgstr "en" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s met deze %(field_labels)s bestaat al." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Beperking ‘%(name)s’ is geschonden." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Waarde %(value)r is geen geldige keuze." @@ -474,8 +491,8 @@ msgstr "Dit veld kan niet leeg zijn" msgid "%(model_name)s with this %(field_label)s already exists." msgstr "Er bestaat al een %(model_name)s met eenzelfde %(field_label)s." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -583,6 +600,9 @@ msgstr "Geheel getal" msgid "Big (8 byte) integer" msgstr "Groot (8 byte) geheel getal" +msgid "Small integer" +msgstr "Klein geheel getal" + msgid "IPv4 address" msgstr "IPv4-adres" @@ -609,9 +629,6 @@ msgstr "Postitief klein geheel getal" msgid "Slug (up to %(max_length)s)" msgstr "Slug (max. lengte %(max_length)s)" -msgid "Small integer" -msgstr "Klein geheel getal" - msgid "Text" msgstr "Tekst" @@ -763,20 +780,26 @@ msgstr ":" msgid "(Hidden field %(name)s) %(error)s" msgstr "(Verborgen veld %(name)s) %(error)s" -msgid "ManagementForm data is missing or has been tampered with" -msgstr "ManagementForm-gegevens ontbreken, of er is mee geknoeid" +#, 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 "" +"ManagementForm-gegevens ontbreken of er is mee geknoeid. Ontbrekende velden: " +"%(field_names)s. Mogelijk dient u een bug te melden als het probleem " +"aanhoudt." #, python-format -msgid "Please submit %d or fewer forms." -msgid_plural "Please submit %d or fewer forms." -msgstr[0] "Verstuur niet meer dan %d formulier." -msgstr[1] "Verstuur niet meer dan %d formulieren." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Verstuur maximaal %(num)d formulier." +msgstr[1] "Verstuur maximaal %(num)d formulieren." #, python-format -msgid "Please submit %d or more forms." -msgid_plural "Please submit %d or more forms." -msgstr[0] "Verstuur %d of meer formulieren." -msgstr[1] "Verstuur %d of meer formulieren." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Verstuur minimaal %(num)d formulier." +msgstr[1] "Verstuur minimaal %(num)d formulieren." msgid "Order" msgstr "Volgorde" @@ -1113,40 +1136,40 @@ msgid ", " msgstr ", " #, python-format -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d jaar" -msgstr[1] "%d jaar" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d jaar" +msgstr[1] "%(num)d jaar" #, python-format -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d maand" -msgstr[1] "%d maanden" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d maand" +msgstr[1] "%(num)d maanden" #, python-format -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d week" -msgstr[1] "%d weken" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d week" +msgstr[1] "%(num)d weken" #, python-format -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d dag" -msgstr[1] "%d dagen" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dag" +msgstr[1] "%(num)d dagen" #, python-format -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d uur" -msgstr[1] "%d uur" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d uur" +msgstr[1] "%(num)d uur" #, python-format -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d minuut" -msgstr[1] "%d minuten" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuut" +msgstr[1] "%(num)d minuten" msgid "Forbidden" msgstr "Verboden" @@ -1156,7 +1179,7 @@ msgstr "CSRF-verificatie mislukt. Aanvraag afgebroken." 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 " +"header” to be sent by your web browser, but none was sent. This header is " "required for security reasons, to ensure that your browser is not being " "hijacked by third parties." msgstr "" @@ -1266,8 +1289,8 @@ msgstr "‘%(path)s’ bestaat niet" msgid "Index of %(directory)s" msgstr "Index van %(directory)s" -msgid "Django: the Web framework for perfectionists with deadlines." -msgstr "Django: het webframework voor perfectionisten met deadlines." +msgid "The install worked successfully! Congratulations!" +msgstr "De installatie is gelukt! Gefeliciteerd!" #, python-format msgid "" @@ -1278,9 +1301,6 @@ msgstr "" "\"_blank\" rel=\"noopener\">Uitgaveopmerkingen voor Django %(version)s " "weergeven" -msgid "The install worked successfully! Congratulations!" -msgstr "De installatie is gelukt! Gefeliciteerd!" - #, python-format msgid "" "You are seeing this page because , 2014 +# 8ffa075ab2f53c280beb2c066769d1ac_169beb5 <462ee687bbf3107fab5af73e8cc690d0_217822>, 2014 # Adam Stachowicz , 2015 # angularcircle, 2011,2013 # angularcircle, 2011,2013 # angularcircle, 2014 # Dariusz Paluch , 2015 +# Darek505, 2022 # Jannis Leidel , 2011 # Janusz Harkot , 2014-2015 # Kacper Krupa , 2013 @@ -14,8 +15,8 @@ # 0d5641585fd67fbdb97037c19ab83e4c_18c98b0 , 2011 # 0d5641585fd67fbdb97037c19ab83e4c_18c98b0 , 2011 # Łukasz Rekucki (lqc) , 2011 -# m_aciek , 2016-2021 -# m_aciek , 2015 +# Maciej Olko , 2016-2021 +# Maciej Olko , 2015 # Mariusz Felisiak , 2020-2021 # Michał Pasternak , 2013 # c10516f0462e552b4c3672569f0745a7_cc5cca2 <841826256cd8f47d0e443806a8e56601_19204>, 2012 @@ -25,15 +26,15 @@ # Radek Czajka , 2013 # Radek Czajka , 2013 # Roman Barczyński, 2012 -# sidewinder , 2014 +# 8ffa075ab2f53c280beb2c066769d1ac_169beb5 <462ee687bbf3107fab5af73e8cc690d0_217822>, 2014 # Tomasz Kajtoch , 2016-2017 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-18 23:25+0000\n" -"Last-Translator: m_aciek \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: Darek505\n" "Language-Team: Polish (http://www.transifex.com/django/django/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -409,6 +410,12 @@ msgstr "Upewnij się, że ta wartość jest mniejsza lub równa %(limit_value)s. msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Upewnij się, że ta wartość jest większa lub równa %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Upewnij się, że ta wartość jest wielokrotnością wielkości kroku" +"%(limit_value)s." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -502,6 +509,10 @@ msgstr "i" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s z tymi %(field_labels)s już istnieje." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Ograniczenie \"%(name)s\" zostało naruszone." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Wartość %(value)r nie jest poprawnym wyborem." @@ -516,8 +527,8 @@ msgstr "To pole nie może być puste." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "Istnieje już %(model_name)s z tą wartością pola %(field_label)s." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -820,20 +831,20 @@ msgstr "" "%(field_names)s. Złóż zgłoszenie błędu, jeśli problem się powtarza." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Proszę wysłać co najwyżej %d formularz." -msgstr[1] "Proszę wysłać co najwyżej %d formularze." -msgstr[2] "Proszę wysłać co najwyżej %d formularzy." -msgstr[3] "Proszę wysłać co najwyżej %d formularzy." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Proszę wysłać co najwyżej %(num)dformularz." +msgstr[1] "Proszę wysłać co najwyżej %(num)d formularze." +msgstr[2] "Proszę wysłać co najwyżej %(num)dformularzy." +msgstr[3] "Proszę wysłać co najwyżej %(num)dformularzy." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Proszę wysłać co najmniej %d formularz." -msgstr[1] "Proszę wysłać co najmniej %d formularze." -msgstr[2] "Proszę wysłać co najmniej %d formularzy." -msgstr[3] "Proszę wysłać co najmniej %d formularzy." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Proszę wysłać co najmniej %(num)d formularz." +msgstr[1] "Proszę wysłać co najmniej %(num)dformularze." +msgstr[2] "Proszę wysłać co najmniej %(num)d formularzy." +msgstr[3] "Proszę wysłać co najmniej %(num)d formularzy." msgid "Order" msgstr "Kolejność" diff --git a/django/conf/locale/pt_BR/LC_MESSAGES/django.mo b/django/conf/locale/pt_BR/LC_MESSAGES/django.mo index f462741cb1331..43a505d7e51f6 100644 Binary files a/django/conf/locale/pt_BR/LC_MESSAGES/django.mo and b/django/conf/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/pt_BR/LC_MESSAGES/django.po b/django/conf/locale/pt_BR/LC_MESSAGES/django.po index 2815d410ee27c..29fdcee63e8ea 100644 --- a/django/conf/locale/pt_BR/LC_MESSAGES/django.po +++ b/django/conf/locale/pt_BR/LC_MESSAGES/django.po @@ -10,23 +10,26 @@ # Camilo B. Moreira , 2017 # Carlos Leite , 2020 # Carlos Leite , 2016,2019 -# Filipe Cifali Stangler , 2016 +# Filipe Cifali , 2016 # Claudio Rogerio Carvalho Filho , 2020 # dudanogueira , 2012 # dudanogueira , 2019 # Elyézer Rezende , 2013 # Fábio C. Barrionuevo da Luz , 2014-2015 # Felipe Rodrigues , 2016 -# Filipe Cifali Stangler , 2019 +# Filipe Cifali , 2019 # Gladson , 2013 # semente, 2011-2014 +# Guilherme, 2022 +# Heron Fonsaca, 2022 # Igor Cavalcante , 2017 # Jannis Leidel , 2011 # Lucas Infante , 2015 # Luiz Boaretto , 2017 +# Marssal Jr. , 2022 # Marcelo Moro Brondani , 2018 # Mariusz Felisiak , 2021 -# Rafael Fontenelle , 2021 +# Rafael Fontenelle , 2021-2022 # Samuel Nogueira Bacelar , 2020 # Sandro , 2011 # Sergio Garcia , 2015 @@ -37,9 +40,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-24 16:29+0000\n" -"Last-Translator: Mariusz Felisiak \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-05-25 06:49+0000\n" +"Last-Translator: Heron Fonsaca, 2022\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/django/django/" "language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -238,7 +241,7 @@ msgid "Marathi" msgstr "Marathi" msgid "Malay" -msgstr "" +msgstr "Malaia" msgid "Burmese" msgstr "Birmanês" @@ -414,6 +417,12 @@ msgstr "Certifique-se que este valor seja menor ou igual a %(limit_value)s." msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Certifique-se que este valor seja maior ou igual a %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Certifique-se que este valor seja múltiplo do tamanho do passo " +"%(limit_value)s." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -427,6 +436,9 @@ msgstr[0] "" msgstr[1] "" "Certifique-se de que o valor tenha no mínimo %(limit_value)d caracteres (ele " "possui %(show_value)d)." +msgstr[2] "" +"Certifique-se de que o valor tenha no mínimo %(limit_value)d caracteres (ele " +"possui %(show_value)d)." #, python-format msgid "" @@ -441,6 +453,9 @@ msgstr[0] "" msgstr[1] "" "Certifique-se de que o valor tenha no máximo %(limit_value)d caracteres (ele " "possui %(show_value)d)." +msgstr[2] "" +"Certifique-se de que o valor tenha no máximo %(limit_value)d caracteres (ele " +"possui %(show_value)d)." msgid "Enter a number." msgstr "Informe um número." @@ -450,12 +465,14 @@ 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] "Certifique-se de que não tenha mais de %(max)s dígito no total." msgstr[1] "Certifique-se de que não tenha mais de %(max)s dígitos no total." +msgstr[2] "Certifique-se de que não tenha mais de %(max)s dígitos no total." #, 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] "Certifique-se de que não tenha mais de %(max)s casa decimal." msgstr[1] "Certifique-se de que não tenha mais de %(max)s casas decimais." +msgstr[2] "Certifique-se de que não tenha mais de %(max)s casas decimais." #, python-format msgid "" @@ -467,6 +484,9 @@ msgstr[0] "" msgstr[1] "" "Certifique-se de que não tenha mais de %(max)s dígitos antes do ponto " "decimal." +msgstr[2] "" +"Certifique-se de que não tenha mais de %(max)s dígitos antes do ponto " +"decimal." #, python-format msgid "" @@ -486,6 +506,10 @@ msgstr "e" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s com este %(field_labels)s já existe." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Restrição \"%(name)s\" foi violada." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Valor %(value)r não é uma opção válida." @@ -500,8 +524,8 @@ msgstr "Este campo não pode estar vazio." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s com este %(field_label)s já existe." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -682,7 +706,7 @@ msgid "A JSON object" msgstr "Um objeto JSON" msgid "Value must be valid JSON." -msgstr "o Valor deve ser um JSON válido" +msgstr "O valor deve ser um JSON válido." #, python-format msgid "%(model)s instance with %(field)s %(value)r does not exist." @@ -752,6 +776,9 @@ msgstr[0] "" msgstr[1] "" "Certifique-se de que o arquivo tenha no máximo %(max)d caracteres (ele " "possui %(length)d)." +msgstr[2] "" +"Certifique-se de que o arquivo tenha no máximo %(max)d caracteres (ele " +"possui %(length)d)." msgid "Please either submit a file or check the clear checkbox, not both." msgstr "Por favor, envie um arquivo ou marque o checkbox, mas não ambos." @@ -797,16 +824,18 @@ msgstr "" "o problema persistir." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Por favor, envie no máximo %d formulário." -msgstr[1] "Por favor, envie no máximo %d formulários." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Por favor, envie no máximo %(num)d formulário." +msgstr[1] "Por favor, envie no máximo %(num)d formulários." +msgstr[2] "Por favor, envie no máximo %(num)d formulários." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Por favor, envie no mínimo %d formulário." -msgstr[1] "Por favor, envie no mínimo %d formulários." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Por favor, envie ao menos %(num)d formulário." +msgstr[1] "Por favor, envie ao menos %(num)d formulários." +msgstr[2] "Por favor, envie ao menos %(num)d formulários." msgid "Order" msgstr "Ordem" @@ -879,6 +908,7 @@ msgid "%(size)d byte" msgid_plural "%(size)d bytes" msgstr[0] "%(size)d byte" msgstr[1] "%(size)d bytes" +msgstr[2] "%(size)d bytes" #, python-format msgid "%s KB" @@ -1146,38 +1176,44 @@ msgstr ", " #, python-format msgid "%(num)d year" msgid_plural "%(num)d years" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(num)d ano" +msgstr[1] "%(num)d anos" +msgstr[2] "%(num)d anos" #, python-format msgid "%(num)d month" msgid_plural "%(num)d months" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(num)d mês" +msgstr[1] "%(num)d meses" +msgstr[2] "%(num)d meses" #, python-format msgid "%(num)d week" msgid_plural "%(num)d weeks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(num)d semana" +msgstr[1] "%(num)d semanas" +msgstr[2] "%(num)d semanas" #, python-format msgid "%(num)d day" msgid_plural "%(num)d days" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(num)d dia" +msgstr[1] "%(num)d dias" +msgstr[2] "%(num)d dias" #, python-format msgid "%(num)d hour" msgid_plural "%(num)d hours" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(num)d hora" +msgstr[1] "%(num)d horas" +msgstr[2] "%(num)d horas" #, python-format msgid "%(num)d minute" msgid_plural "%(num)d minutes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(num)d minuto" +msgstr[1] "%(num)d minutos" +msgstr[2] "%(num)d minutos" msgid "Forbidden" msgstr "Proibido" @@ -1191,6 +1227,10 @@ msgid "" "required for security reasons, to ensure that your browser is not being " "hijacked by third parties." msgstr "" +"Você está vendo esta mensagem porque este site HTTPS requer que um " +"“cabeçalho Refer” seja enviado pelo seu navegador da web, mas nenhum foi " +"enviado. Este cabeçalho é necessário por motivos de segurança, para garantir " +"que seu navegador não seja invadido por terceiros." msgid "" "If you have configured your browser to disable “Referer” headers, please re-" @@ -1205,8 +1245,8 @@ msgid "" "If you are using the tag or " "including the “Referrer-Policy: no-referrer” header, please remove them. The " "CSRF protection requires the “Referer” header to do strict referer checking. " -"If you’re concerned about privacy, use alternatives like for links to third-party sites." +"If you’re concerned about privacy, use alternatives like for links to third-party sites." msgstr "" "Se estiver usando a tag ou " "incluindo o cabeçalho “Referrer-Policy: no-referrer”, por favor remova-os. A " @@ -1306,14 +1346,14 @@ msgstr "" #, python-format msgid "" "You are seeing this page because DEBUG=True is in your settings file and you have not configured any " -"URLs." +"%(version)s/ref/settings/#debug\" target=\"_blank\" " +"rel=\"noopener\">DEBUG=True is in your settings file and you have not " +"configured any URLs." msgstr "" "Você está vendo esta página pois possui DEBUG=True no seu arquivo de configurações e não configurou nenhuma " -"URL." +"com/en/%(version)s/ref/settings/#debug\" target=\"_blank\" " +"rel=\"noopener\">DEBUG=True no seu arquivo de configurações e não " +"configurou nenhuma URL." msgid "Django Documentation" msgstr "Documentação do Django" diff --git a/django/conf/locale/ru/LC_MESSAGES/django.mo b/django/conf/locale/ru/LC_MESSAGES/django.mo index 742b2ce9bf769..1aa69acc788bc 100644 Binary files a/django/conf/locale/ru/LC_MESSAGES/django.mo and b/django/conf/locale/ru/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/ru/LC_MESSAGES/django.po b/django/conf/locale/ru/LC_MESSAGES/django.po index 7c202fe6e296b..567b39aae75c8 100644 --- a/django/conf/locale/ru/LC_MESSAGES/django.po +++ b/django/conf/locale/ru/LC_MESSAGES/django.po @@ -19,24 +19,25 @@ # Panasoft, 2021 # Вася Аникин , 2017 # SeryiMysh , 2020 -# Алексей Борискин , 2013-2017,2019-2020 -# Дмитрий Шатера , 2016,2018 +# Алексей Борискин , 2013-2017,2019-2020,2022 +# Bobsans , 2016,2018 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-18 21:19+0000\n" -"Last-Translator: Transifex Bot <>\n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-05-25 06:49+0000\n" +"Last-Translator: Алексей Борискин , " +"2013-2017,2019-2020,2022\n" "Language-Team: Russian (http://www.transifex.com/django/django/language/" "ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" -"%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " +"(n%100>=11 && n%100<=14)? 2 : 3);\n" msgid "Afrikaans" msgstr "Бурский" @@ -228,7 +229,7 @@ msgid "Marathi" msgstr "Маратхи" msgid "Malay" -msgstr "" +msgstr "Малайский" msgid "Burmese" msgstr "Бирманский" @@ -406,6 +407,10 @@ msgstr "Убедитесь, что это значение меньше либо msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Убедитесь, что это значение больше либо равно %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "Убедитесь, что это значение кратно числу %(limit_value)s." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -494,6 +499,10 @@ msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "" "%(model_name)s с такими значениями полей %(field_labels)s уже существует." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Нарушено ограничение \"%(name)s\"." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Значения %(value)r нет среди допустимых вариантов." @@ -508,8 +517,8 @@ msgstr "Это поле не может быть пустым." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s с таким %(field_label)s уже существует." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -817,20 +826,20 @@ msgstr "" "отправить отчет об ошибке." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Пожалуйста, отправляйте не больше %d формы." -msgstr[1] "Пожалуйста, отправляйте не больше %d форм." -msgstr[2] "Пожалуйста, отправляйте не больше %d форм." -msgstr[3] "Пожалуйста, отправляйте не больше %d форм." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Пожалуйста, отправьте не больше %(num)d формы." +msgstr[1] "Пожалуйста, отправьте не больше %(num)d форм." +msgstr[2] "Пожалуйста, отправьте не больше %(num)d форм." +msgstr[3] "Пожалуйста, отправьте не больше %(num)d форм." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Пожалуйста, отправьте хотя бы %d форму." -msgstr[1] "Пожалуйста, отправьте хотя бы %d форм." -msgstr[2] "Пожалуйста, отправьте хотя бы %d форм." -msgstr[3] "Пожалуйста, отправьте хотя бы %d форм." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Пожалуйста, отправьте %(num)d форму." +msgstr[1] "Пожалуйста, отправьте %(num)d формы." +msgstr[2] "Пожалуйста, отправьте %(num)d форм." +msgstr[3] "Пожалуйста, отправьте %(num)d форм." msgid "Order" msgstr "Порядок" @@ -1174,50 +1183,50 @@ msgstr ", " #, python-format msgid "%(num)d year" msgid_plural "%(num)d years" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%(num)d год" +msgstr[1] "%(num)d года" +msgstr[2] "%(num)d лет" +msgstr[3] "%(num)d лет" #, python-format msgid "%(num)d month" msgid_plural "%(num)d months" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%(num)d месяц" +msgstr[1] "%(num)d месяца" +msgstr[2] "%(num)d месяцев" +msgstr[3] "%(num)d месяцев" #, python-format msgid "%(num)d week" msgid_plural "%(num)d weeks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%(num)d неделя" +msgstr[1] "%(num)d недели" +msgstr[2] "%(num)d недель" +msgstr[3] "%(num)d недель" #, python-format msgid "%(num)d day" msgid_plural "%(num)d days" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%(num)d день" +msgstr[1] "%(num)d дня" +msgstr[2] "%(num)d дней" +msgstr[3] "%(num)d дней" #, python-format msgid "%(num)d hour" msgid_plural "%(num)d hours" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%(num)d час" +msgstr[1] "%(num)d часа" +msgstr[2] "%(num)d часов" +msgstr[3] "%(num)d часов" #, python-format msgid "%(num)d minute" msgid_plural "%(num)d minutes" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%(num)d минута" +msgstr[1] "%(num)d минуты" +msgstr[2] "%(num)d минут" +msgstr[3] "%(num)d минут" msgid "Forbidden" msgstr "Ошибка доступа" @@ -1231,6 +1240,11 @@ msgid "" "required for security reasons, to ensure that your browser is not being " "hijacked by third parties." msgstr "" +"Вы видите это сообщение потому что этот сайт работает по защищённому " +"протоколу HTTPS и требует, чтобы при запросе вашим браузером был передан " +"заголовок \"Referer\", но он не был передан. Этот заголовок необходим из " +"соображений безопасности: мы должны убедиться что запрос оправляете именно " +"вы." msgid "" "If you have configured your browser to disable “Referer” headers, please re-" @@ -1247,15 +1261,15 @@ msgid "" "If you are using the tag or " "including the “Referrer-Policy: no-referrer” header, please remove them. The " "CSRF protection requires the “Referer” header to do strict referer checking. " -"If you’re concerned about privacy, use alternatives like for links to third-party sites." +"If you’re concerned about privacy, use alternatives like for links to third-party sites." msgstr "" -"Если Вы используете HTML-тэг или добавили HTTP-заголовок “Referrer-Policy: no-referrer”, пожалуйста " -"удалите их. CSRF защите необходим заголовок “Referer” для строгой проверки " -"адреса ссылающейся страницы. Если Вы беспокоитесь о приватности, используйте " -"альтернативы, например , для ссылок на сайты третьих " -"лиц." +"Если Вы используете HTML-тэг или добавили HTTP-заголовок “Referrer-Policy: no-referrer”, " +"пожалуйста удалите их. CSRF защите необходим заголовок “Referer” для строгой " +"проверки адреса ссылающейся страницы. Если Вы беспокоитесь о приватности, " +"используйте альтернативы, например , для ссылок на " +"сайты третьих лиц." msgid "" "You are seeing this message because this site requires a CSRF cookie when " @@ -1357,13 +1371,13 @@ msgstr "" #, python-format msgid "" "You are seeing this page because DEBUG=True is in your settings file and you have not configured any " -"URLs." +"%(version)s/ref/settings/#debug\" target=\"_blank\" " +"rel=\"noopener\">DEBUG=True is in your settings file and you have not " +"configured any URLs." msgstr "" "Вы видите данную страницу, потому что указали DEBUG=True в файле настроек и не настроили ни одного " +"djangoproject.com/en/%(version)s/ref/settings/#debug\" target=\"_blank\" " +"rel=\"noopener\">DEBUG=True в файле настроек и не настроили ни одного " "обработчика URL-адресов." msgid "Django Documentation" diff --git a/django/conf/locale/sq/LC_MESSAGES/django.mo b/django/conf/locale/sq/LC_MESSAGES/django.mo index b2cb851a82166..22b8bbf96ac8e 100644 Binary files a/django/conf/locale/sq/LC_MESSAGES/django.mo and b/django/conf/locale/sq/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/sq/LC_MESSAGES/django.po b/django/conf/locale/sq/LC_MESSAGES/django.po index bc706f4fa32f8..ccae87bffb4ca 100644 --- a/django/conf/locale/sq/LC_MESSAGES/django.po +++ b/django/conf/locale/sq/LC_MESSAGES/django.po @@ -2,15 +2,15 @@ # # Translators: # Besnik Bleta , 2011-2014 -# Besnik Bleta , 2020-2021 +# Besnik Bleta , 2020-2022 # Besnik Bleta , 2015-2019 # Jannis Leidel , 2011 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-19 09:58+0000\n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" "Last-Translator: Besnik Bleta \n" "Language-Team: Albanian (http://www.transifex.com/django/django/language/" "sq/)\n" @@ -387,6 +387,10 @@ msgstr "Siguroni që kjo vlerë të jetë më e vogël ose baras me %(limit_valu msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Siguroni që kjo vlerë është më e madhe ose baras me %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -458,6 +462,10 @@ msgstr "dhe " msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "Ka tashmë %(model_name)s me këtë %(field_labels)s." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Vlera %(value)r s’është zgjedhje e vlefshme." @@ -472,8 +480,8 @@ msgstr "Kjo fushë s’mund të jetë e paplotësuar." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "Ka tashmë një %(model_name)s me këtë %(field_label)s." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -775,16 +783,16 @@ msgstr "" "parashtroni një raport të mete." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Ju lutemi, parashtroni e shumta 1%d formular." -msgstr[1] "Ju lutemi, parashtroni e shumta %d formularë." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Ju lutemi, parashtroni e shumta %(num)d formular." +msgstr[1] "Ju lutemi, parashtroni e shumta %(num)d formularë." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Ju lutemi, parashtroni të paktën 1%d formular." -msgstr[1] "Ju lutemi, parashtroni të paktën 1%d formularë." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Ju lutemi, parashtroni të paktën %(num)d formular." +msgstr[1] "Ju lutemi, parashtroni të paktën %(num)d formularë." msgid "Order" msgstr "Renditi" diff --git a/django/conf/locale/sr_Latn/LC_MESSAGES/django.mo b/django/conf/locale/sr_Latn/LC_MESSAGES/django.mo index 2072e7a568202..3e17b5ae9bc52 100644 Binary files a/django/conf/locale/sr_Latn/LC_MESSAGES/django.mo and b/django/conf/locale/sr_Latn/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/sr_Latn/LC_MESSAGES/django.po b/django/conf/locale/sr_Latn/LC_MESSAGES/django.po index 2ca3c7c0dfcbb..de38e37bdcbad 100644 --- a/django/conf/locale/sr_Latn/LC_MESSAGES/django.po +++ b/django/conf/locale/sr_Latn/LC_MESSAGES/django.po @@ -2,6 +2,7 @@ # # Translators: # Aleksa Cukovic` , 2020 +# Danijela Popović, 2022 # Igor Jerosimić, 2019-2021 # Jannis Leidel , 2011 # Janos Guljas , 2011-2012 @@ -9,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-18 23:38+0000\n" -"Last-Translator: Igor Jerosimić\n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-06-25 06:49+0000\n" +"Last-Translator: Danijela Popović\n" "Language-Team: Serbian (Latin) (http://www.transifex.com/django/django/" "language/sr@latin/)\n" "MIME-Version: 1.0\n" @@ -388,6 +389,10 @@ msgstr "Ova vrednost mora da bude manja od %(limit_value)s. ili tačno toliko." msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Ova vrednost mora biti veća od %(limit_value)s ili tačno toliko." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -466,6 +471,10 @@ msgstr "i" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s sa poljem %(field_labels)s već postoji." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Vrednost %(value)r nije validna." @@ -480,8 +489,8 @@ msgstr "Ovo polje ne može da ostane prazno." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s sa ovom vrednošću %(field_label)s već postoji." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -524,6 +533,8 @@ msgid "" "“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " "date." msgstr "" +"Vrednost “%(value)s” ima odgovarajući format (GGGG-MM-DD), ali nije validan " +"datum." msgid "Date (without time)" msgstr "Datum (bez vremena)" @@ -533,19 +544,23 @@ msgid "" "“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." "uuuuuu]][TZ] format." msgstr "" +"Vrednost “%(value)s” je u nevažećem formatu. Mora se uneti u formatu YYYY-MM-" +"DD HH:MM[:ss[.uuuuuu]][TZ]." #, 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 "" +"Vrednost “%(value)s” je u odgovarajućem formatu (YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ]), ali nije validna vrednost za datum i vreme." msgid "Date (with time)" msgstr "Datum (sa vremenom)" #, python-format msgid "“%(value)s” value must be a decimal number." -msgstr "" +msgstr "Vrednost “%(value)s” mora biti decimalni broj." msgid "Decimal number" msgstr "Decimalni broj" @@ -555,6 +570,8 @@ msgid "" "“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." "uuuuuu] format." msgstr "" +"Vrednost “%(value)s” nije u odgovarajućem formatu. Mora biti u formatu [DD] " +"[[HH:]MM:]ss[.uuuuuu]." msgid "Duration" msgstr "Vremenski interval" @@ -567,14 +584,14 @@ msgstr "Putanja fajla" #, python-format msgid "“%(value)s” value must be a float." -msgstr "" +msgstr "Vrednost “%(value)s” value mora biti tipa float." msgid "Floating point number" msgstr "Broj sa pokrenom zapetom" #, python-format msgid "“%(value)s” value must be an integer." -msgstr "" +msgstr "Vrednost “%(value)s” mora biti ceo broj." msgid "Integer" msgstr "Ceo broj" @@ -593,7 +610,7 @@ msgstr "IP adresa" #, python-format msgid "“%(value)s” value must be either None, True or False." -msgstr "" +msgstr "Vrednost “%(value)s” mora biti None, True ili False." msgid "Boolean (Either True, False or None)" msgstr "Bulova vrednost (True, False ili None)" @@ -619,12 +636,16 @@ msgid "" "“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " "format." msgstr "" +"Vrednost “%(value)s” nije u odgovarajućem formatu. Mora biti u formatu HH:" +"MM[:ss[.uuuuuu]]." #, python-format msgid "" "“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " "invalid time." msgstr "" +"Vrednost “%(value)s” je u odgovarajućem formatu (HH:MM[:ss[.uuuuuu]]), ali " +"nije validna vrednost za vreme." msgid "Time" msgstr "Vreme" @@ -637,7 +658,7 @@ msgstr "Sirovi binarni podaci" #, python-format msgid "“%(value)s” is not a valid UUID." -msgstr "" +msgstr "Vrednost “%(value)s” nije validan UUID (jedinstveni ID)." msgid "Universally unique identifier" msgstr "Univerzalno jedinstveni identifikator" @@ -656,7 +677,7 @@ msgstr "Vrednost mora biti ispravni JSON." #, python-format msgid "%(model)s instance with %(field)s %(value)r does not exist." -msgstr "" +msgstr "Instanca modela %(model)s sa vrednošću %(field)s %(value)r ne postoji." msgid "Foreign Key (type determined by related field)" msgstr "Strani ključ (tip određuje referentno polje)" @@ -765,15 +786,15 @@ msgstr "" "nastavi." #, 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] "" msgstr[2] "" #, 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] "" msgstr[2] "" diff --git a/django/conf/locale/sv/LC_MESSAGES/django.mo b/django/conf/locale/sv/LC_MESSAGES/django.mo index 761268dfc0d91..a737b337d86aa 100644 Binary files a/django/conf/locale/sv/LC_MESSAGES/django.mo and b/django/conf/locale/sv/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/sv/LC_MESSAGES/django.po b/django/conf/locale/sv/LC_MESSAGES/django.po index c648d91994c04..262485b9a5df6 100644 --- a/django/conf/locale/sv/LC_MESSAGES/django.po +++ b/django/conf/locale/sv/LC_MESSAGES/django.po @@ -1,11 +1,15 @@ # This file is distributed under the same license as the Django package. # # Translators: +# Albin Larsson , 2022 # Alex Nordlund , 2012 +# Anders Jonsson , 2022 # Andreas Pelme , 2014,2021 +# Elias Johnstone , 2022 # Gustaf Hansen , 2015 # Jannis Leidel , 2011 # Jonathan Lindén, 2015 +# Ken Lewerentz, 2022 # Jonathan Lindén, 2014 # Mattias Hansson , 2016 # Mattias Benjaminsson , 2011 @@ -18,9 +22,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-23 10:11+0000\n" -"Last-Translator: Tomas Lööw \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: Elias Johnstone \n" "Language-Team: Swedish (http://www.transifex.com/django/django/language/" "sv/)\n" "MIME-Version: 1.0\n" @@ -102,7 +106,7 @@ msgid "Colombian Spanish" msgstr "Colombiansk spanska" msgid "Mexican Spanish" -msgstr "Mexikansk Spanska" +msgstr "Mexikansk spanska" msgid "Nicaraguan Spanish" msgstr "Nicaraguansk spanska" @@ -373,13 +377,13 @@ msgstr "" "bindestreck i Unicode." msgid "Enter a valid IPv4 address." -msgstr "Fyll i en giltig IPv4 adress." +msgstr "Fyll i en giltig IPv4-adress." msgid "Enter a valid IPv6 address." msgstr "Ange en giltig IPv6-adress." msgid "Enter a valid IPv4 or IPv6 address." -msgstr "Ange en giltig IPv4 eller IPv6-adress." +msgstr "Ange en giltig IPv4- eller IPv6-adress." msgid "Enter only digits separated by commas." msgstr "Fyll enbart i siffror separerade med kommatecken." @@ -399,6 +403,11 @@ msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "" "Kontrollera att detta värde är större än eller lika med %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Kontrollera att detta värde är multipel av stegstorlek %(limit_value)s." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -470,6 +479,10 @@ msgstr "och" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s med samma %(field_labels)s finns redan." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "Begränsningen “%(name)s” överträds." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Värdet %(value)r är inget giltigt alternativ." @@ -484,8 +497,8 @@ msgstr "Detta fält får inte vara tomt." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s med detta %(field_label)s finns redan." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -519,8 +532,8 @@ msgid "" "“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " "format." msgstr "" -"“%(value)s” värde har ett ogiltigt datumformat. Det måste vara i formatet " -"YYYY-MM-DD." +"“%(value)s” har ett ogiltigt datumformat. Det måste vara i formatet YYYY-MM-" +"DD." #, python-format msgid "" @@ -546,13 +559,15 @@ msgid "" "“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" "[TZ]) but it is an invalid date/time." msgstr "" +"“%(value)s” har det giltiga formatet (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) " +"men ett ogiltigt datum/tid." msgid "Date (with time)" msgstr "Datum (med tid)" #, python-format msgid "“%(value)s” value must be a decimal number." -msgstr "" +msgstr "Värdet “%(value)s” måste vara ett decimaltal." msgid "Decimal number" msgstr "Decimaltal" @@ -562,6 +577,8 @@ msgid "" "“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." "uuuuuu] format." msgstr "" +"“%(value)s” har ett ogiltigt format. Det måste vara i formatet [DD] " +"[[HH:]MM:]ss[.uuuuuu]." msgid "Duration" msgstr "Tidsspann" @@ -775,18 +792,20 @@ 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 "" +"ManagementForm-data saknas eller har manipulerats. Saknade fält: " +"%(field_names)s. Du kan behöva lämna in en felrapport om problemet kvarstår." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Vänligen skicka som mest %d formulär." -msgstr[1] "Vänligen skicka som mest %d formulär." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Vänligen skicka som mest %(num)d formulär." +msgstr[1] "Vänligen skicka som mest %(num)d formulär." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Vänligen skicka minst %d formulär." -msgstr[1] "Vänligen skicka minst %d formulär." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Vänligen skicka minst %(num)d formulär." +msgstr[1] "Vänligen skicka minst %(num)d formulär." msgid "Order" msgstr "Sortering" @@ -823,7 +842,7 @@ msgstr "" #, python-format msgid "“%(pk)s” is not a valid value." -msgstr "" +msgstr "“%(pk)s” är inte ett giltigt värde." #, python-format msgid "" @@ -1161,7 +1180,7 @@ msgstr[0] "%(num)d minut" msgstr[1] "%(num)d minuter" msgid "Forbidden" -msgstr "Ottillåtet" +msgstr "Otillåtet" msgid "CSRF verification failed. Request aborted." msgstr "CSRF-verifikation misslyckades. Förfrågan avbröts." @@ -1181,6 +1200,9 @@ msgid "" "enable them, at least for this site, or for HTTPS connections, or for “same-" "origin” requests." msgstr "" +"Om 'Referer' headers är inaktiverade i din webbläsare, vänligen återaktivera " +"dem, åtminstone för denna sida, eller för HTTPS-anslutningar eller för 'same-" +"origin'-förfrågningar." msgid "" "If you are using the tag or " @@ -1189,6 +1211,11 @@ msgid "" "If you’re concerned about privacy, use alternatives like for links to third-party sites." msgstr "" +"Om du använder -taggen eller " +"har med ”Referrer-Policy: no-referrer”, ta bort dem. CSRF-skyddet kräver " +"”Referer” för att kunna göra sin strikta kontroll. Om du oroar dig över din " +"integritet, använd alternativ såsom för länkar " +"till tredjepart." msgid "" "You are seeing this message because this site requires a CSRF cookie when " @@ -1245,7 +1272,7 @@ msgid "No %(verbose_name)s found matching the query" msgstr "Hittade inga %(verbose_name)s som matchar frågan" msgid "Page is not “last”, nor can it be converted to an int." -msgstr "" +msgstr "Sidan är inte 'last', och kan inte heller omvandlas till en int." #, python-format msgid "Invalid page (%(page_number)s): %(message)s" @@ -1253,7 +1280,7 @@ msgstr "Ogiltig sida (%(page_number)s): %(message)s" #, python-format msgid "Empty list and “%(class_name)s.allow_empty” is False." -msgstr "" +msgstr "Tom lista och '%(class_name)s.allow_empty' är False." msgid "Directory indexes are not allowed here." msgstr "Kataloglistningar är inte tillåtna här." diff --git a/django/conf/locale/tk/LC_MESSAGES/django.mo b/django/conf/locale/tk/LC_MESSAGES/django.mo index 4647125cc5255..ec535df66b21a 100644 Binary files a/django/conf/locale/tk/LC_MESSAGES/django.mo and b/django/conf/locale/tk/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/tk/LC_MESSAGES/django.po b/django/conf/locale/tk/LC_MESSAGES/django.po index 5f4cc18746547..ad1713daa536b 100644 --- a/django/conf/locale/tk/LC_MESSAGES/django.po +++ b/django/conf/locale/tk/LC_MESSAGES/django.po @@ -2,15 +2,16 @@ # # Translators: # Mariusz Felisiak , 2020-2021 -# Resulkary , 2020 +# Resul , 2020 +# Resul , 2022 # Welbeck Garli , 2020 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-24 16:30+0000\n" -"Last-Translator: Mariusz Felisiak \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-05-25 06:49+0000\n" +"Last-Translator: Resul , 2022\n" "Language-Team: Turkmen (http://www.transifex.com/django/django/language/" "tk/)\n" "MIME-Version: 1.0\n" @@ -209,7 +210,7 @@ msgid "Marathi" msgstr "Marasi" msgid "Malay" -msgstr "" +msgstr "Malaý" msgid "Burmese" msgstr "Birma" @@ -325,7 +326,7 @@ msgstr "Syndikasiýa" #. Translators: String used to replace omitted page numbers in elided page #. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. msgid "…" -msgstr "" +msgstr "..." msgid "That page number is not an integer" msgstr "Ol sahypanyň sany bitewi san däl" @@ -389,6 +390,10 @@ msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "" "Maglumatyň %(limit_value)s bahasyndan köp ýa-da deň bolmagyny üpjün ediň." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -458,6 +463,10 @@ msgstr "we" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(field_labels)s bilen baglanyşykly %(model_name)s eýýäm bar." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "%(value)r dogry saýlaw däl." @@ -472,8 +481,8 @@ msgstr "Bu meýdan boş bolup bilmez." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(field_label)s bilen baglanyşykly %(model_name)s eýýäm bar." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -766,16 +775,16 @@ msgid "" msgstr "" #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "" -msgstr[1] "" +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Haýyş, iň köp %(num)d form tabşyryň." +msgstr[1] "Haýyş, iň köp %(num)d form tabşyryň." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "" -msgstr[1] "" +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Haýyş, azyndan %(num)d form tabşyryň." +msgstr[1] "Haýyş, azyndan %(num)d form tabşyryň." msgid "Order" msgstr "Tertip" @@ -1114,38 +1123,38 @@ msgstr "\"" #, python-format msgid "%(num)d year" msgid_plural "%(num)d years" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(num)d ýyl" +msgstr[1] "%(num)d ýyl" #, python-format msgid "%(num)d month" msgid_plural "%(num)d months" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(num)d aý" +msgstr[1] "%(num)d aý" #, python-format msgid "%(num)d week" msgid_plural "%(num)d weeks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(num)d hepde" +msgstr[1] "%(num)d hepde" #, python-format msgid "%(num)d day" msgid_plural "%(num)d days" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(num)d gün" +msgstr[1] "%(num)d gün" #, python-format msgid "%(num)d hour" msgid_plural "%(num)d hours" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(num)d sagat" +msgstr[1] "%(num)d sagat" #, python-format msgid "%(num)d minute" msgid_plural "%(num)d minutes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(num)d minut" +msgstr[1] "%(num)d minut" msgid "Forbidden" msgstr "Gadagan " @@ -1172,8 +1181,8 @@ msgid "" "If you are using the tag or " "including the “Referrer-Policy: no-referrer” header, please remove them. The " "CSRF protection requires the “Referer” header to do strict referer checking. " -"If you’re concerned about privacy, use alternatives like for links to third-party sites." +"If you’re concerned about privacy, use alternatives like for links to third-party sites." msgstr "" "Egerde siz diýen bellik " "ýada \"Referrer-Policy: no-referrer\" header ulanýan bolsaňyz, olary " @@ -1195,8 +1204,8 @@ 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 "" -"Brauzeriňizde kukileri öçüren bolsaňyz, iň bolmanda şu sahypa ýa-da \"meňzeş" -"\" talaplar üçin olary täzeden açyň." +"Brauzeriňizde kukileri öçüren bolsaňyz, iň bolmanda şu sahypa ýa-da " +"\"meňzeş\" talaplar üçin olary täzeden açyň." msgid "More information is available with DEBUG=True." msgstr "Has giňişleýin maglumat DEBUG=True bilen elýeterlidir." @@ -1273,13 +1282,13 @@ msgstr "" #, python-format msgid "" "You are seeing this page because DEBUG=True is in your settings file and you have not configured any " -"URLs." +"%(version)s/ref/settings/#debug\" target=\"_blank\" " +"rel=\"noopener\">DEBUG=True is in your settings file and you have not " +"configured any URLs." msgstr "" "Bu sahypany görýärsiňiz, sebäbi sazlamalar faýlyňyzda DEBUG=True we hiç hili URL düzmediňiz." +"djangoproject.com/en/%(version)s/ref/settings/#debug\" target=\"_blank\" " +"rel=\"noopener\">DEBUG=True we hiç hili URL düzmediňiz." msgid "Django Documentation" msgstr "Django resminamalary" diff --git a/django/conf/locale/tr/LC_MESSAGES/django.mo b/django/conf/locale/tr/LC_MESSAGES/django.mo index 61833bbcfe4ab..8bc6f839900ca 100644 Binary files a/django/conf/locale/tr/LC_MESSAGES/django.mo and b/django/conf/locale/tr/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/tr/LC_MESSAGES/django.po b/django/conf/locale/tr/LC_MESSAGES/django.po index 64ee17cfdb520..1940503dbb444 100644 --- a/django/conf/locale/tr/LC_MESSAGES/django.po +++ b/django/conf/locale/tr/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ # # Translators: # Ahmet Emre Aladağ , 2013 -# BouRock, 2015-2021 +# BouRock, 2015-2022 # BouRock, 2014-2015 # Caner Başaran , 2013 # Cihad GÜNDOĞDU , 2012 @@ -17,8 +17,8 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-19 17:51+0000\n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" "Last-Translator: BouRock\n" "Language-Team: Turkish (http://www.transifex.com/django/django/language/" "tr/)\n" @@ -396,6 +396,11 @@ msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "" "Bu değerin %(limit_value)s değerinden büyük veya eşit olduğuna emin olun." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" +"Bu değerin %(limit_value)s adım boyutunun katları olduğundan emin olun." + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -467,6 +472,10 @@ msgstr "ve" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "Bu %(field_labels)s alanına sahip %(model_name)s zaten mevcut." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "\"%(name)s\" kısıtlaması ihlal edildi." + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "%(value)r değeri geçerli bir seçim değil." @@ -481,8 +490,8 @@ msgstr "Bu alan boş olamaz." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "Bu %(field_label)s alanına sahip %(model_name)s zaten mevcut." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -781,16 +790,16 @@ msgstr "" "%(field_names)s. Sorun devam ederse bir hata raporu dosyalamanız gerekebilir." #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "Lütfen en fazla %d form gönderin." -msgstr[1] "Lütfen en fazla %d form gönderin." +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "Lütfen en fazla %(num)d form gönderin." +msgstr[1] "Lütfen en fazla %(num)d form gönderin." #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "Lütfen en az %d form gönderin." -msgstr[1] "Lütfen en az %d form gönderin." +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "Lütfen en az %(num)d form gönderin." +msgstr[1] "Lütfen en az %(num)d form gönderin." msgid "Order" msgstr "Sıralama" diff --git a/django/conf/locale/uk/LC_MESSAGES/django.mo b/django/conf/locale/uk/LC_MESSAGES/django.mo index 9f87a71131373..90c884b857cd0 100644 Binary files a/django/conf/locale/uk/LC_MESSAGES/django.mo and b/django/conf/locale/uk/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/uk/LC_MESSAGES/django.po b/django/conf/locale/uk/LC_MESSAGES/django.po index 5a7d4a55ed5d7..8fd11a45633a0 100644 --- a/django/conf/locale/uk/LC_MESSAGES/django.po +++ b/django/conf/locale/uk/LC_MESSAGES/django.po @@ -2,10 +2,10 @@ # # Translators: # Oleksandr Chernihov , 2014 -# Boryslav Larin , 2011 +# Boryslav Larin , 2011,2022 # Denis Podlesniy , 2016 # Igor Melnyk, 2014-2015,2017 -# Illia Volochii , 2019,2021 +# Illia Volochii , 2019,2021-2022 # Jannis Leidel , 2011 # Kirill Gagarski , 2014 # Max V. Stotsky , 2014 @@ -21,9 +21,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-12-02 22:16+0000\n" -"Last-Translator: Illia Volochii \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: Boryslav Larin \n" "Language-Team: Ukrainian (http://www.transifex.com/django/django/language/" "uk/)\n" "MIME-Version: 1.0\n" @@ -373,6 +373,8 @@ msgid "" "Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " "hyphens." msgstr "" +"Введіть коректне значення 'slug' (короткого заголовку), що може містити " +"тільки літери, числа, символи підкреслювання або дефіси." msgid "Enter a valid IPv4 address." msgstr "Введіть коректну IPv4 адресу." @@ -400,6 +402,10 @@ msgstr "Переконайтеся, що це значення менше чи msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "Переконайтеся, що це значення більше чи дорівнює %(limit_value)s." +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "" + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -482,6 +488,8 @@ msgid "" "File extension “%(extension)s” is not allowed. Allowed extensions are: " "%(allowed_extensions)s." msgstr "" +"Розширення файлу '%(extension)s' не дозволено. Дозволені розширення: ' " +"%(allowed_extensions)s'." msgid "Null characters are not allowed." msgstr "Символи Null не дозволені." @@ -493,6 +501,10 @@ msgstr "та" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "%(model_name)s з таким %(field_labels)s вже існує." +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "" + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "Значення %(value)r не є дозволеним вибором." @@ -507,8 +519,8 @@ msgstr "Це поле не може бути порожнім." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s з таким %(field_label)s вже існує." -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -526,7 +538,7 @@ msgstr "" #, python-format msgid "“%(value)s” value must be either True, False, or None." -msgstr "" +msgstr "Значення \"%(value)s\" повинне бути True, False, або None." msgid "Boolean (Either True or False)" msgstr "Булеве значення (True або False)" @@ -558,6 +570,8 @@ msgid "" "“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." "uuuuuu]][TZ] format." msgstr "" +"Значення \"%(value)s\" має невірний формат. Воно повинне бути у форматі YYYY-" +"MM-DD HH:MM[:ss[.uuuuuu]][TZ]." #, python-format msgid "" @@ -644,6 +658,8 @@ msgid "" "“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " "format." msgstr "" +"Значення \"%(value)s\" має невірний формат. Воно повинне бути у форматі HH:" +"MM[:ss[.uuuuuu]]." #, python-format msgid "" @@ -662,7 +678,7 @@ msgstr "Необроблені двійкові дані" #, python-format msgid "“%(value)s” is not a valid UUID." -msgstr "" +msgstr "“%(value)s” не є валідним UUID." msgid "Universally unique identifier" msgstr "Універсальний унікальний ідентифікатор" @@ -797,16 +813,16 @@ msgid "" msgstr "" #, 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] "" msgstr[2] "" msgstr[3] "" #, 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] "" msgstr[2] "" @@ -1151,50 +1167,50 @@ msgstr ", " #, python-format msgid "%(num)d year" msgid_plural "%(num)d years" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%(num)d рік" +msgstr[1] "%(num)d роки" +msgstr[2] "%(num)d років" +msgstr[3] "%(num)d років" #, python-format msgid "%(num)d month" msgid_plural "%(num)d months" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%(num)d місяць" +msgstr[1] "%(num)d місяці" +msgstr[2] "%(num)d місяців" +msgstr[3] "%(num)d місяців" #, python-format msgid "%(num)d week" msgid_plural "%(num)d weeks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%(num)d тиждень" +msgstr[1] "%(num)d тижні" +msgstr[2] "%(num)d тижнів" +msgstr[3] "%(num)d тижнів" #, python-format msgid "%(num)d day" msgid_plural "%(num)d days" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%(num)d день" +msgstr[1] "%(num)d дні" +msgstr[2] "%(num)d днів" +msgstr[3] "%(num)d днів" #, python-format msgid "%(num)d hour" msgid_plural "%(num)d hours" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%(num)d година" +msgstr[1] "%(num)d години" +msgstr[2] "%(num)d годин" +msgstr[3] "%(num)d годин" #, python-format msgid "%(num)d minute" msgid_plural "%(num)d minutes" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%(num)d хвилина" +msgstr[1] "%(num)d хвилини" +msgstr[2] "%(num)d хвилин" +msgstr[3] "%(num)d хвилин" msgid "Forbidden" msgstr "Заборонено" @@ -1214,6 +1230,10 @@ msgid "" "enable them, at least for this site, or for HTTPS connections, or for “same-" "origin” requests." msgstr "" +"Якщо ви налаштували свій браузер таким чином, щоб заборонити йому передавати " +"заголовок «Referer», будь ласка, дозвольте йому відсилати даний заголовок " +"принаймні для даного сайту, або для всіх HTTPS-з'єднань, або для подібних " +"запитів." msgid "" "If you are using the tag or " diff --git a/django/conf/locale/zh_Hans/LC_MESSAGES/django.mo b/django/conf/locale/zh_Hans/LC_MESSAGES/django.mo index c61602f2fae23..93082e63c6f36 100644 Binary files a/django/conf/locale/zh_Hans/LC_MESSAGES/django.mo and b/django/conf/locale/zh_Hans/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/zh_Hans/LC_MESSAGES/django.po b/django/conf/locale/zh_Hans/LC_MESSAGES/django.po index 8f4468254871d..346e364d84878 100644 --- a/django/conf/locale/zh_Hans/LC_MESSAGES/django.po +++ b/django/conf/locale/zh_Hans/LC_MESSAGES/django.po @@ -4,6 +4,8 @@ # HuanCheng Bai白宦成 , 2017-2018 # lanbla , 2021 # Daniel Duan , 2013 +# Fan Xu , 2022 +# Huanqun Yang, 2022 # jamin M , 2019 # Jannis Leidel , 2011 # Kevin Sze , 2012 @@ -29,15 +31,15 @@ # ced773123cfad7b4e8b79ca80f736af9, 2011-2012 # Ziya Tang , 2018 # 付峥 , 2018 -# fangjiaqi77 <370358679@qq.com>, 2020 +# Fangjiaqi77 <370358679@qq.com>, 2020 # Kevin Sze , 2012 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-22 03:05+0000\n" -"Last-Translator: lanbla \n" +"POT-Creation-Date: 2022-05-17 05:23-0500\n" +"PO-Revision-Date: 2022-07-25 06:49+0000\n" +"Last-Translator: Huanqun Yang\n" "Language-Team: Chinese (China) (http://www.transifex.com/django/django/" "language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -409,6 +411,10 @@ msgstr "确保该值小于或等于%(limit_value)s。" msgid "Ensure this value is greater than or equal to %(limit_value)s." msgstr "确保该值大于或等于%(limit_value)s。" +#, python-format +msgid "Ensure this value is a multiple of step size %(limit_value)s." +msgstr "确保该值是步长的倍数%(limit_value)s" + #, python-format msgid "" "Ensure this value has at least %(limit_value)d character (it has " @@ -466,6 +472,10 @@ msgstr "和" msgid "%(model_name)s with this %(field_labels)s already exists." msgstr "包含 %(field_labels)s 的 %(model_name)s 已经存在。" +#, python-format +msgid "Constraint “%(name)s” is violated." +msgstr "约束 “%(name)s” 是无效的" + #, python-format msgid "Value %(value)r is not a valid choice." msgstr "值 %(value)r 不是有效选项。" @@ -480,8 +490,8 @@ msgstr "此字段不能为空。" msgid "%(model_name)s with this %(field_label)s already exists." msgstr "具有 %(field_label)s 的 %(model_name)s 已存在。" -#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. -#. Eg: "Title must be unique for pub_date year" +#. Translators: The 'lookup_type' is one of 'date', 'year' or +#. 'month'. Eg: "Title must be unique for pub_date year" #, python-format msgid "" "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." @@ -762,14 +772,14 @@ msgstr "" "在,你可能需要提交错误报告。" #, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "请最多提交 %d 个表单。" +msgid "Please submit at most %(num)d form." +msgid_plural "Please submit at most %(num)d forms." +msgstr[0] "请最多提交 %(num)d 个表单。" #, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "请至少提交 %d 个表单。" +msgid "Please submit at least %(num)d form." +msgid_plural "Please submit at least %(num)d forms." +msgstr[0] "请至少提交 %(num)d 个表单。" msgid "Order" msgstr "排序" diff --git a/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.mo b/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.mo index af3d2aa3819ae..5f75b277974eb 100644 Binary files a/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.po b/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.po index 5be946351e235..8608584f44fbc 100644 --- a/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.po @@ -1,14 +1,15 @@ # This file is distributed under the same license as the Django package. # # Translators: +# Jihad Bahmaid Al-Halki, 2022 # Riterix , 2019-2020 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-14 19:53+0200\n" -"PO-Revision-Date: 2020-07-14 22:38+0000\n" -"Last-Translator: Transifex Bot <>\n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Jihad Bahmaid Al-Halki\n" "Language-Team: Arabic (Algeria) (http://www.transifex.com/django/django/" "language/ar_DZ/)\n" "MIME-Version: 1.0\n" @@ -18,6 +19,10 @@ msgstr "" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "حذف سجلات %(verbose_name_plural)s المحددة" + #, python-format msgid "Successfully deleted %(count)d %(items)s." msgstr "تم حذف %(count)d %(items)s بنجاح." @@ -29,10 +34,6 @@ msgstr "لا يمكن حذف %(name)s" msgid "Are you sure?" msgstr "هل أنت متأكد؟" -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "حذف سجلات %(verbose_name_plural)s المحددة" - msgid "Administration" msgstr "الإدارة" @@ -269,8 +270,9 @@ msgstr "لا شيء محدد من %(cnt)s" msgid "Change history: %s" msgstr "تاريخ التغيير: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -521,7 +523,13 @@ msgid "Forgotten your password or username?" msgstr "نسيت كلمة المرور أو اسم المستخدم الخاص بك؟" msgid "Toggle navigation" -msgstr "" +msgstr "تغيير التنقل" + +msgid "Start typing to filter…" +msgstr "ابدأ بالكتابة لبدء التصفية(الفلترة)..." + +msgid "Filter navigation items" +msgstr "تصفية عناصر التنقل" msgid "Date/time" msgstr "التاريخ/الوقت" @@ -532,6 +540,12 @@ msgstr "المستخدم" msgid "Action" msgstr "إجراء" +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -592,8 +606,12 @@ msgstr "أضف %(model)s آخر" msgid "Delete selected %(model)s" msgstr "حذف %(model)s المختارة" -msgid "Thanks for spending some quality time with the Web site today." -msgstr "شكراً لك على قضائك بعض الوقت مع الموقع اليوم." +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "شكرا لأخذك بعض الوقت في الموقع اليوم." msgid "Log in again" msgstr "ادخل مجدداً" diff --git a/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.mo index 135c8e2d14276..6b419f003c462 100644 Binary files a/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.po index 3bc48c801d533..9e8a4ad1c84fa 100644 --- a/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.po @@ -1,14 +1,15 @@ # This file is distributed under the same license as the Django package. # # Translators: +# Jihad Bahmaid Al-Halki, 2022 # Riterix , 2019-2020 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-11 20:56+0200\n" -"PO-Revision-Date: 2020-06-23 12:16+0000\n" -"Last-Translator: Riterix \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" +"Last-Translator: Jihad Bahmaid Al-Halki\n" "Language-Team: Arabic (Algeria) (http://www.transifex.com/django/django/" "language/ar_DZ/)\n" "MIME-Version: 1.0\n" @@ -191,6 +192,54 @@ msgstr "نوفمبر" msgid "December" msgstr "ديسمبر" +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "يناير" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "فبراير" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "مارس" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "أبريل" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "مايو" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "يونيو" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "يوليو" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "أغسطس" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "سبتمبر" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "أكتوبر" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "نوفمبر" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "ديسمبر" + msgctxt "one letter Sunday" msgid "S" msgstr "ح" @@ -219,6 +268,11 @@ msgctxt "one letter Saturday" msgid "S" msgstr "س" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" + msgid "Show" msgstr "أظهر" diff --git a/django/contrib/admin/locale/az/LC_MESSAGES/django.mo b/django/contrib/admin/locale/az/LC_MESSAGES/django.mo index 509db8d49228a..356192130da8e 100644 Binary files a/django/contrib/admin/locale/az/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/az/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/az/LC_MESSAGES/django.po b/django/contrib/admin/locale/az/LC_MESSAGES/django.po index f9644291ec7b2..1a028a3789de9 100644 --- a/django/contrib/admin/locale/az/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/az/LC_MESSAGES/django.po @@ -4,14 +4,15 @@ # Emin Mastizada , 2018,2020 # Emin Mastizada , 2016 # Konul Allahverdiyeva , 2016 +# Nicat Məmmədov , 2022 # Zulfugar Ismayilzadeh , 2017 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-14 19:53+0200\n" -"PO-Revision-Date: 2020-07-14 22:38+0000\n" -"Last-Translator: Transifex Bot <>\n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Nicat Məmmədov \n" "Language-Team: Azerbaijani (http://www.transifex.com/django/django/language/" "az/)\n" "MIME-Version: 1.0\n" @@ -20,6 +21,10 @@ msgstr "" "Language: az\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Seçilmiş %(verbose_name_plural)s-ləri sil" + #, python-format msgid "Successfully deleted %(count)d %(items)s." msgstr "%(count)d %(items)s uğurla silindi." @@ -31,10 +36,6 @@ msgstr "%(name)s silinmir" msgid "Are you sure?" msgstr "Əminsiniz?" -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Seçilmiş %(verbose_name_plural)s-ləri sil" - msgid "Administration" msgstr "Administrasiya" @@ -271,8 +272,9 @@ msgstr "%(cnt)s-dan 0 seçilib" msgid "Change history: %s" msgstr "Dəyişmə tarixi: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -323,6 +325,9 @@ msgid "" "There’s been an error. It’s been reported to the site administrators via " "email and should be fixed shortly. Thanks for your patience." msgstr "" +"Xəta baş verdi. Problem sayt administratorlarına epoçt vasitəsi ilə " +"bildirildi və qısa bir zamanda həll olunacaq. Anlayışınız üçün təşəkkür " +"edirik." msgid "Run the selected action" msgstr "Seçdiyim əməliyyatı yerinə yetir" @@ -357,12 +362,14 @@ msgid "" "First, enter a username and password. Then, you’ll be able to edit more user " "options." msgstr "" +"Əvvəlcə istifacəçi adı və şifrəni daxil edin. Daha sonra siz daha çox " +"istifadəçi seçimlərinə düzəliş edə biləcəksiniz." msgid "Enter a username and password." -msgstr "İstifadəçi adını və parolu daxil edin." +msgstr "İstifadəçi adını və şifrəni daxil edin." msgid "Change password" -msgstr "Parolu dəyiş" +msgstr "Şifrəni dəyiş" msgid "Please correct the error below." msgstr "Lütfən aşağıdakı xətanı düzəldin." @@ -372,7 +379,7 @@ msgstr "Lütfən aşağıdakı səhvləri düzəldin." #, python-format msgid "Enter a new password for the user %(username)s." -msgstr "%(username)s üçün yeni parol daxil edin." +msgstr "%(username)s üçün yeni şifrə daxil edin." msgid "Welcome," msgstr "Xoş gördük," @@ -516,11 +523,17 @@ msgstr "" "bir hesaba daxil olmaq istərdiniz?" msgid "Forgotten your password or username?" -msgstr "Parol və ya istifadəçi adını unutmusan?" +msgstr "Şifrə və ya istifadəçi adını unutmusuz?" msgid "Toggle navigation" msgstr "" +msgid "Start typing to filter…" +msgstr "Filterləmək üçün yazın..." + +msgid "Filter navigation items" +msgstr "" + msgid "Date/time" msgstr "Tarix/vaxt" @@ -530,6 +543,12 @@ msgstr "İstifadəçi" msgid "Action" msgstr "Əməliyyat" +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -584,17 +603,21 @@ msgstr "Başqa %(model)s əlavə et" msgid "Delete selected %(model)s" msgstr "Seçilmiş %(model)s sil" -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Sayt ilə səmərəli vaxt keçirdiyiniz üçün təşəkkür." +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" msgid "Log in again" msgstr "Yenidən daxil ol" msgid "Password change" -msgstr "Parol dəyişmək" +msgstr "Şifrəni dəyişmək" msgid "Your password was changed." -msgstr "Sizin parolunuz dəyişdi." +msgstr "Sizin şifrəniz dəyişdirildi." msgid "" "Please enter your old password, for security’s sake, and then enter your new " @@ -602,39 +625,42 @@ msgid "" msgstr "" msgid "Change my password" -msgstr "Mənim parolumu dəyiş" +msgstr "Şifrəmi dəyiş" msgid "Password reset" -msgstr "Parolun sıfırlanması" +msgstr "Şifrənin sıfırlanması" msgid "Your password has been set. You may go ahead and log in now." -msgstr "Yeni parol artıq qüvvədədir. Yenidən daxil ola bilərsiniz." +msgstr "Yeni şifrə artıq qüvvədədir. Yenidən daxil ola bilərsiniz." msgid "Password reset confirmation" -msgstr "Parolun sıfırlanması üçün təsdiq" +msgstr "Şifrə sıfırlanmasının təsdiqi" msgid "" "Please enter your new password twice so we can verify you typed it in " "correctly." -msgstr "Yeni parolu iki dəfə daxil edin ki, səhv etmədiyinizə əmin olaq." +msgstr "Yeni şifrəni iki dəfə daxil edin ki, səhv etmədiyinizə əmin olaq." msgid "New password:" -msgstr "Yeni parol:" +msgstr "Yeni şifrə:" msgid "Confirm password:" -msgstr "Yeni parol (bir daha):" +msgstr "Yeni şifrə (bir daha):" msgid "" "The password reset link was invalid, possibly because it has already been " "used. Please request a new password reset." msgstr "" -"Parolun sıfırlanması üçün olan keçid, yəqin ki, artıq istifadə olunub. " -"Parolu sıfırlamaq üçün yenə müraciət edin." +"Şifrənin sıfırlanması üçün olan keçid, yəqin ki, artıq istifadə olunub. " +"Şifrəni sıfırlamaq üçün yenə müraciət edin." msgid "" "We’ve emailed you instructions for setting your password, if an account " "exists with the email you entered. You should receive them shortly." msgstr "" +"Şifrəni təyin etmək üçün lazım olan addımlar sizə göndərildi (əgər bu epoçt " +"ünvanı ilə hesab varsa təbii ki). Elektron məktub qısa bir müddət ərzində " +"sizə çatacaq." msgid "" "If you don’t receive an email, please make sure you’ve entered the address " @@ -646,11 +672,11 @@ msgid "" "You're receiving this email because you requested a password reset for your " "user account at %(site_name)s." msgstr "" -"%(site_name)s saytında parolu yeniləmək istədiyinizə görə bu məktubu " +"%(site_name)s saytında şifrəni yeniləmək istədiyinizə görə bu məktubu " "göndərdik." msgid "Please go to the following page and choose a new password:" -msgstr "Növbəti səhifəyə keçid alın və yeni parolu seçin:" +msgstr "Növbəti səhifəyə keçid alın və yeni şifrəni seçin:" msgid "Your username, in case you’ve forgotten:" msgstr "İstifadəçi adınız, əgər unutmusunuzsa:" @@ -666,12 +692,14 @@ msgid "" "Forgotten your password? Enter your email address below, and we’ll email " "instructions for setting a new one." msgstr "" +"Şifrəni unutmusuz? Epoçt ünvanınızı daxil edin və biz sizə yeni şifrə təyin " +"etmək üçün nə etmək lazım olduğunu göndərəcəyik." msgid "Email address:" msgstr "E-poçt:" msgid "Reset my password" -msgstr "Parolumu sıfırla" +msgstr "Şifrəmi sıfırla" msgid "All dates" msgstr "Bütün tarixlərdə" diff --git a/django/contrib/admin/locale/az/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/az/LC_MESSAGES/djangojs.mo index b3088a5fc3dc9..dfe8ff49a1cab 100644 Binary files a/django/contrib/admin/locale/az/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/az/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/az/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/az/LC_MESSAGES/djangojs.po index e49194db9055a..78bafce709974 100644 --- a/django/contrib/admin/locale/az/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/az/LC_MESSAGES/djangojs.po @@ -4,13 +4,14 @@ # Ali Ismayilov , 2011-2012 # Emin Mastizada , 2016,2020 # Emin Mastizada , 2016 +# Nicat Məmmədov , 2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-11 20:56+0200\n" -"PO-Revision-Date: 2020-05-14 20:39+0000\n" -"Last-Translator: Emin Mastizada \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" +"Last-Translator: Nicat Məmmədov \n" "Language-Team: Azerbaijani (http://www.transifex.com/django/django/language/" "az/)\n" "MIME-Version: 1.0\n" @@ -183,6 +184,54 @@ msgstr "Noyabr" msgid "December" msgstr "Dekabr" +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "Yan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "Fev" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "Mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "Apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "May" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "İyn" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "İyl" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "Avq" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "Sen" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "Okt" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "Noy" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "Dek" + msgctxt "one letter Sunday" msgid "S" msgstr "B" @@ -211,6 +260,11 @@ msgctxt "one letter Saturday" msgid "S" msgstr "Ş" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" + msgid "Show" msgstr "Göstər" diff --git a/django/contrib/admin/locale/bg/LC_MESSAGES/django.mo b/django/contrib/admin/locale/bg/LC_MESSAGES/django.mo index 340a88042e58c..8f5b937e8f8c7 100644 Binary files a/django/contrib/admin/locale/bg/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/bg/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/bg/LC_MESSAGES/django.po b/django/contrib/admin/locale/bg/LC_MESSAGES/django.po index 111d7094ebad9..b782fc43a2151 100644 --- a/django/contrib/admin/locale/bg/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/bg/LC_MESSAGES/django.po @@ -13,9 +13,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2022-01-14 09:41+0000\n" -"Last-Translator: arneatec \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-05-25 07:05+0000\n" +"Last-Translator: arneatec , 2022\n" "Language-Team: Bulgarian (http://www.transifex.com/django/django/language/" "bg/)\n" "MIME-Version: 1.0\n" @@ -276,8 +276,9 @@ msgstr "Избрани са 0 от %(cnt)s" msgid "Change history: %s" msgstr "История на промените: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -294,7 +295,7 @@ msgid "Django site admin" msgstr "Django административен сайт" msgid "Django administration" -msgstr "Администрация на Django" +msgstr "Django администрация" msgid "Site administration" msgstr "Администрация на сайта" @@ -547,6 +548,12 @@ msgstr "Потребител" msgid "Action" msgstr "Действие" +msgid "entry" +msgstr "запис" + +msgid "entries" +msgstr "записа" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -603,6 +610,10 @@ msgstr "Добавяне на друг %(model)s" msgid "Delete selected %(model)s" msgstr "Изтриване на избрания %(model)s" +#, python-format +msgid "View selected %(model)s" +msgstr "Виж избраните %(model)s" + msgid "Thanks for spending some quality time with the web site today." msgstr "Благодарим ви за добре прекараното време с този сайт днес." diff --git a/django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.mo index 2a8686389307e..bff3edeebbc1e 100644 Binary files a/django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.po index 84a61412343a5..a2ae423c6caf9 100644 --- a/django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2022-01-14 09:49+0000\n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" "Last-Translator: arneatec \n" "Language-Team: Bulgarian (http://www.transifex.com/django/django/language/" "bg/)\n" @@ -260,6 +260,13 @@ msgctxt "one letter Saturday" msgid "S" msgstr "С" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" +"Вече сте изпратили този формуляр. Сигурни ли сте, че искате да го изпратите " +"отново?" + msgid "Show" msgstr "Покажи" diff --git a/django/contrib/admin/locale/bn/LC_MESSAGES/django.mo b/django/contrib/admin/locale/bn/LC_MESSAGES/django.mo index ab1d7ee1b792a..b742fd89c72f5 100644 Binary files a/django/contrib/admin/locale/bn/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/bn/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/bn/LC_MESSAGES/django.po b/django/contrib/admin/locale/bn/LC_MESSAGES/django.po index e36fb616799b6..ef7e14bdac297 100644 --- a/django/contrib/admin/locale/bn/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/bn/LC_MESSAGES/django.po @@ -3,14 +3,15 @@ # Translators: # Anubhab Baksi, 2013 # Jannis Leidel , 2011 +# Md Arshad Hussain, 2022 # Tahmid Rafi , 2012-2013 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Md Arshad Hussain\n" "Language-Team: Bengali (http://www.transifex.com/django/django/language/" "bn/)\n" "MIME-Version: 1.0\n" @@ -19,6 +20,10 @@ msgstr "" "Language: bn\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "চিহ্নিত অংশটি %(verbose_name_plural)s মুছে ফেলুন" + #, python-format msgid "Successfully deleted %(count)d %(items)s." msgstr "%(count)d টি %(items)s সফলভাবে মুছে ফেলা হয়েছে" @@ -30,12 +35,8 @@ msgstr "%(name)s ডিলিট করা সম্ভব নয়" msgid "Are you sure?" msgstr "আপনি কি নিশ্চিত?" -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "চিহ্নিত অংশটি %(verbose_name_plural)s মুছে ফেলুন" - msgid "Administration" -msgstr "" +msgstr "প্রয়োগ" msgid "All" msgstr "সকল" @@ -65,10 +66,16 @@ msgid "This year" msgstr "এ বছরে" msgid "No date" -msgstr "" +msgstr "কোন তারিখ নেই" msgid "Has date" -msgstr "" +msgstr "তারিখ আছে" + +msgid "Empty" +msgstr "খালি" + +msgid "Not empty" +msgstr "খালি নেই" #, python-format msgid "" @@ -86,11 +93,20 @@ msgstr "আরো একটি %(verbose_name)s যোগ করুন" msgid "Remove" msgstr "মুছে ফেলুন" +msgid "Addition" +msgstr "" + +msgid "Change" +msgstr "পরিবর্তন" + +msgid "Deletion" +msgstr "" + msgid "action time" msgstr "কার্য সময়" msgid "user" -msgstr "" +msgstr "ব্যবহারকারী" msgid "content type" msgstr "" @@ -99,7 +115,7 @@ msgid "object id" msgstr "অবজেক্ট আইডি" #. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) +#. (https://docs.python.org/library/functions.html#repr) msgid "object repr" msgstr "অবজেক্ট উপস্থাপক" @@ -116,32 +132,32 @@ msgid "log entries" msgstr "লগ এন্ট্রিসমূহ" #, python-format -msgid "Added \"%(object)s\"." -msgstr "%(object)s অ্যাড করা হয়েছে" +msgid "Added “%(object)s”." +msgstr "“%(object)s” যোগ করা হয়েছে। " #, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "" +msgid "Changed “%(object)s” — %(changes)s" +msgstr "“%(object)s” — %(changes)s পরিবর্তন করা হয়েছে" #, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "\"%(object)s\" ডিলিট করা হয়েছে" +msgid "Deleted “%(object)s.”" +msgstr "“%(object)s.” মুছে ফেলা হয়েছে" msgid "LogEntry Object" msgstr "লগ-এন্ট্রি দ্রব্য" #, python-brace-format -msgid "Added {name} \"{object}\"." +msgid "Added {name} “{object}”." msgstr "" msgid "Added." -msgstr "" +msgstr "যুক্ত করা হয়েছে" msgid "and" msgstr "এবং" #, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." +msgid "Changed {fields} for {name} “{object}”." msgstr "" #, python-brace-format @@ -149,7 +165,7 @@ msgid "Changed {fields}." msgstr "" #, python-brace-format -msgid "Deleted {name} \"{object}\"." +msgid "Deleted {name} “{object}”." msgstr "" msgid "No fields changed." @@ -158,38 +174,39 @@ msgstr "কোন ফিল্ড পরিবর্তন হয়নি।" msgid "None" msgstr "কিছু না" -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." msgstr "" #, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgid "The {name} “{obj}” was added successfully." msgstr "" +msgid "You may edit it again below." +msgstr "নিম্নে আপনি আবার তা সম্পাদনা/পরিবর্তন করতে পারেন।" + #, python-brace-format msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." +"The {name} “{obj}” was added successfully. You may add another {name} below." msgstr "" +"{name} \"{obj}\" সফলভাবে যুক্ত হয়েছে৷ নিম্নে আপনি আরেকটি {name} যুক্ত করতে পারেন।" #, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." msgstr "" #, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgid "The {name} “{obj}” was added successfully. You may edit it again below." msgstr "" #, python-brace-format msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"The {name} “{obj}” was changed successfully. You may add another {name} " "below." msgstr "" #, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." +msgid "The {name} “{obj}” was changed successfully." msgstr "" msgid "" @@ -201,11 +218,11 @@ msgid "No action selected." msgstr "কোনো কাজ " #, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" সফলতার সাথে মুছে ফেলা হয়েছে।" +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "" #, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" msgstr "" #, python-format @@ -216,6 +233,10 @@ msgstr "%s যোগ করুন" msgid "Change %s" msgstr "%s পরিবর্তন করুন" +#, python-format +msgid "View %s" +msgstr "" + msgid "Database error" msgstr "ডাটাবেস সমস্যা" @@ -239,8 +260,9 @@ msgstr "%(cnt)s টি থেকে ০ টি সিলেক্ট করা msgid "Change history: %s" msgstr "ইতিহাস পরিবর্তনঃ %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "" @@ -270,8 +292,8 @@ msgstr "" msgid "Page not found" msgstr "পৃষ্ঠা পাওয়া যায়নি" -msgid "We're sorry, but the requested page could not be found." -msgstr "দুঃখিত, অনুরোধকৃত পাতাটি পাওয়া যায়নি।" +msgid "We’re sorry, but the requested page could not be found." +msgstr "আমরা দুঃখিত, কিন্তু অনুরোধকৃত পাতা খুঁজে পাওয়া যায়নি।" msgid "Home" msgstr "নীড়পাতা" @@ -286,7 +308,7 @@ msgid "Server Error (500)" msgstr "সার্ভার সমস্যা (৫০০)" msgid "" -"There's been an error. It's been reported to the site administrators via " +"There’s been an error. It’s been reported to the site administrators via " "email and should be fixed shortly. Thanks for your patience." msgstr "" @@ -306,12 +328,25 @@ msgstr "%(total_count)s টি %(module_name)s এর সবগুলোই স msgid "Clear selection" msgstr "চিহ্নিত অংশের চিহ্ন মুছে ফেলুন" +#, python-format +msgid "Models in the %(name)s application" +msgstr "%(name)s এপ্লিকেশন এর মডেল গুলো" + +msgid "Add" +msgstr "যোগ করুন" + +msgid "View" +msgstr "দেখুন" + +msgid "You don’t have permission to view or edit anything." +msgstr "কোন কিছু দেখার বা সম্পাদনা/পরিবর্তন করার আপনার কোন অনুমতি নেই।" + msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " +"First, enter a username and password. Then, you’ll be able to edit more user " "options." msgstr "" -"প্রথমে একটি সদস্যনাম ও পাসওয়ার্ড প্রবেশ করান। তারপরে আপনি ‍আরও সদস্য-অপশন যুক্ত করতে " -"পারবেন।" +"প্রথমে, একজন ব্যবহারকারীর নাম এবং পাসওয়ার্ড লিখুন। তাহলে, আপনি ব্যবহারকারীর " +"অন্যান্য অনেক অপশনগুলো পরিবর্তন করতে সক্ষম হবেন। " msgid "Enter a username and password." msgstr "ইউজার নেইম এবং পাসওয়ার্ড টাইপ করুন।" @@ -320,10 +355,10 @@ msgid "Change password" msgstr "পাসওয়ার্ড বদলান" msgid "Please correct the error below." -msgstr "অনুগ্রহ করে নিচের ভুলগুলো সংশোধন করুন।" +msgstr "দয়া করে নিম্নবর্ণিত ভুলটি সংশোধন করুন।" msgid "Please correct the errors below." -msgstr "" +msgstr "দয়া করে নিম্নবর্ণিত ভুলগুলো সংশোধন করুন।" #, python-format msgid "Enter a new password for the user %(username)s." @@ -354,6 +389,9 @@ msgstr "সাইটে দেখুন" msgid "Filter" msgstr "ফিল্টার" +msgid "Clear all filters" +msgstr "" + msgid "Remove from sorting" msgstr "ক্রমানুসারে সাজানো থেকে বিরত হোন" @@ -393,11 +431,11 @@ msgstr "" msgid "Objects" msgstr "" -msgid "Yes, I'm sure" -msgstr "হ্যা়ঁ, আমি নিশ্চিত" +msgid "Yes, I’m sure" +msgstr "হ্যাঁ, আমি নিশ্চিত" msgid "No, take me back" -msgstr "" +msgstr "না, আমাক পূর্বের জায়গায় ফিরিয়ে নাও" msgid "Delete multiple objects" msgstr "একাধিক জিনিস মুছে ফেলুন" @@ -421,9 +459,6 @@ msgid "" "following objects and their related items will be deleted:" msgstr "" -msgid "Change" -msgstr "পরিবর্তন" - msgid "Delete?" msgstr "মুছে ফেলুন?" @@ -432,23 +467,13 @@ msgid " By %(filter_title)s " msgstr " %(filter_title)s অনুযায়ী " msgid "Summary" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "%(name)s এপ্লিকেশন এর মডেল গুলো" - -msgid "Add" -msgstr "যোগ করুন" - -msgid "You don't have permission to edit anything." -msgstr "কোন কিছু পরিবর্তনে আপনার অধিকার নেই।" +msgstr "সারসংক্ষেপ" msgid "Recent actions" msgstr "" msgid "My actions" -msgstr "" +msgstr "আমার করনীয়" msgid "None available" msgstr "কিছুই পাওয়া যায়নি" @@ -457,12 +482,13 @@ msgid "Unknown content" msgstr "অজানা বিষয়" msgid "" -"Something's wrong with your database installation. Make sure the appropriate " +"Something’s wrong with your database installation. Make sure the appropriate " "database tables have been created, and make sure the database is readable by " "the appropriate user." msgstr "" -"আপনার ডাটাবেস ইনস্টলে সমস্যা হয়েছে। নিশ্চিত করুন যে, ডাটাবেস টেবিলগুলো সঠিকভাবে " -"তৈরী হয়েছে, এবং যথাযথ সদস্যের ডাটাবেস পড়ার অধিকার রয়েছে।" +"আপনার ড্যাটাবেস ইন্সটলেশন করার ক্ষেত্রে কিছু সমস্যা রয়েছে। নিশ্চিত করুন যে আপনি " +"যথাযথ ড্যাটাবেস টেবিলগুলো তৈরী করেছেন এবং নিশ্চিত করুন যে উক্ত ড্যাটাবেসটি অন্যান্য " +"ব্যবহারকারী দ্বারা ব্যবহারযোগ্য হবে। " #, python-format msgid "" @@ -473,6 +499,15 @@ msgstr "" msgid "Forgotten your password or username?" msgstr "ইউজার নেইম অথবা পাসওয়ার্ড ভুলে গেছেন?" +msgid "Toggle navigation" +msgstr "" + +msgid "Start typing to filter…" +msgstr "" + +msgid "Filter navigation items" +msgstr "" + msgid "Date/time" msgstr "তারিখ/সময়" @@ -482,10 +517,16 @@ msgstr "সদস্য" msgid "Action" msgstr "কার্য" +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + msgid "" -"This object doesn't have a change history. It probably wasn't added via this " +"This object doesn’t have a change history. It probably wasn’t added via this " "admin site." -msgstr "এই অবজেক্টের কোন ইতিহাস নেই। সম্ভবত এটি প্রশাসন সাইট দিয়ে তৈরী করা হয়নি।" +msgstr "" msgid "Show all" msgstr "সব দেখান" @@ -493,19 +534,7 @@ msgstr "সব দেখান" msgid "Save" msgstr "সংরক্ষণ করুন" -msgid "Popup closing..." -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" +msgid "Popup closing…" msgstr "" msgid "Search" @@ -530,8 +559,30 @@ msgstr "সংরক্ষণ করুন এবং আরেকটি যে msgid "Save and continue editing" msgstr "সংরক্ষণ করুন এবং সম্পাদনা চালিয়ে যান" -msgid "Thanks for spending some quality time with the Web site today." -msgstr "ওয়েবসাইটে কিছু সময় কাটানোর জন্য আপনাকে আন্তরিক ধন্যবাদ।" +msgid "Save and view" +msgstr "সংরক্ষণ করুন এবং দেখুন" + +msgid "Close" +msgstr "বন্ধ করুন" + +#, python-format +msgid "Change selected %(model)s" +msgstr "%(model)s নির্বাচিত অংশটি পরিবর্তন করুন" + +#, python-format +msgid "Add another %(model)s" +msgstr "আরো একটি%(model)s যুক্ত করুন" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "%(model)s নির্বাচিত অংশটি মুছুন " + +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "আজকে ওয়েব সাইট আপনার গুনগত সময় দেয়ার জন্য আপনাকে ধন্যবাদ।" msgid "Log in again" msgstr "পুনরায় প্রবেশ করুন" @@ -543,11 +594,12 @@ msgid "Your password was changed." msgstr "আপনার পাসওয়ার্ড বদলানো হয়েছে।" msgid "" -"Please enter your old password, for security's sake, and then enter your new " +"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 "" -"অনুগ্রহ করে আপনার পুরনো পাসওয়ার্ড প্রবেশ করান, নিরাপত্তার কাতিরে, এবং পরপর দু’বার " -"নতুন পাসওয়ার্ড প্রবেশ করান, যাচাই করার জন্য।" +"দয়া করে নিরাপত্তার জন্য আপনার পুরানো পাসওয়ার্ডটি লিখুন, এবং তারপর নতুন পাসওয়ার্ডটি " +"দুইবার লিখুন যাতে করে আপনি সঠিক পাসওয়ার্ডটি লিখেছেন কি না তা আমরা যাচাই করতে " +"পারি। " msgid "Change my password" msgstr "আমার পাসওয়ার্ড পরিবর্তন করুন" @@ -582,14 +634,19 @@ msgstr "" "রিসেটের জন্য অনুগ্রহ করে নতুনভাবে আবেদন করুন।" msgid "" -"We've emailed you instructions for setting your password, if an account " +"We’ve emailed you instructions for setting your password, if an account " "exists with the email you entered. You should receive them shortly." msgstr "" +"আপনার পাসওয়ার্ড সংযোজন করার জন্য আমরা আপনাকে নির্দেশাবলী সম্বলিত একটি ই-মেইল " +"পাঠাবো, যদি আপনার দেয়া ই-মেইলে আইডিটি এখানে বিদ্যমান থাকে। আপনি খুব দ্রুত তা " +"পেয়ে যাবেন। " msgid "" -"If you don't receive an email, please make sure you've entered the address " +"If you don’t receive an email, please make sure you’ve entered the address " "you registered with, and check your spam folder." msgstr "" +"আপনি যদি কোন ই-মেইল না পেয়ে থাকে, তবে দয়া করে নিশ্চিত করুন আপনি যে ই-মেইল আইডি " +"দিয়ে নিবন্ধন করেছিলেন তা এখানে লিখেছেন, এবং আপনার স্পাম ফোল্ডার চেক করুন। " #, python-format msgid "" @@ -602,8 +659,8 @@ msgstr "" msgid "Please go to the following page and choose a new password:" msgstr "অনুগ্রহ করে নিচের পাতাটিতে যান এবং নতুন পাসওয়ার্ড বাছাই করুনঃ" -msgid "Your username, in case you've forgotten:" -msgstr "আপনার সদস্যনাম, যদি ভুলে গিয়ে থাকেনঃ" +msgid "Your username, in case you’ve forgotten:" +msgstr "আপনার ব্যবহারকারীর নাম, যদি আপনি ভুলে গিয়ে থাকেন:" msgid "Thanks for using our site!" msgstr "আমাদের সাইট ব্যবহারের জন্য ধন্যবাদ!" @@ -613,11 +670,11 @@ msgid "The %(site_name)s team" msgstr "%(site_name)s দল" msgid "" -"Forgotten your password? Enter your email address below, and we'll email " +"Forgotten your password? Enter your email address below, and we’ll email " "instructions for setting a new one." msgstr "" -"পাসওয়ার্ড ভুলে গেছেন? নিচে আপনার ইমেইল এড্রেস দিন, এবং আমরা নতুন পাসওয়ার্ড সেট " -"করার নিয়ম-কানুন আপনাকে ই-মেইল করব।" +"আপনার পাসওয়ার্ড ভুলে গিয়েছেন? নিম্নে আপনার ই-মেইল আইডি লিখুন, এবং আমরা আপনাকে " +"নতুন পাসওয়ার্ড সংযোজন করার জন্য নির্দেশাবলী সম্বলিত ই-মেইল পাঠাবো।" msgid "Email address:" msgstr "ইমেইল ঠিকানা:" @@ -636,6 +693,10 @@ msgstr "%s বাছাই করুন" msgid "Select %s to change" msgstr "%s পরিবর্তনের জন্য বাছাই করুন" +#, python-format +msgid "Select %s to view" +msgstr "দেখার জন্য %s নির্বাচন করুন" + msgid "Date:" msgstr "তারিখঃ" diff --git a/django/contrib/admin/locale/ca/LC_MESSAGES/django.mo b/django/contrib/admin/locale/ca/LC_MESSAGES/django.mo index ff5ca15c40b2d..46df4b0cde533 100644 Binary files a/django/contrib/admin/locale/ca/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/ca/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/ca/LC_MESSAGES/django.po b/django/contrib/admin/locale/ca/LC_MESSAGES/django.po index 642be31870afb..c89550d341acd 100644 --- a/django/contrib/admin/locale/ca/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/ca/LC_MESSAGES/django.po @@ -4,6 +4,7 @@ # Antoni Aloy , 2014-2015,2017,2021 # Carles Barrobés , 2011-2012,2014 # duub qnnp, 2015 +# Emilio Carrion, 2022 # GerardoGa , 2018 # Gil Obradors Via , 2019 # Gil Obradors Via , 2019 @@ -15,9 +16,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-10-27 08:45+0000\n" -"Last-Translator: Antoni Aloy \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Emilio Carrion\n" "Language-Team: Catalan (http://www.transifex.com/django/django/language/" "ca/)\n" "MIME-Version: 1.0\n" @@ -277,8 +278,9 @@ msgstr "0 de %(cnt)s seleccionats" msgid "Change history: %s" msgstr "Modificar històric: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -550,6 +552,12 @@ msgstr "Usuari" msgid "Action" msgstr "Acció" +msgid "entry" +msgstr "entrada" + +msgid "entries" +msgstr "entrades" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -606,6 +614,10 @@ msgstr "Afegeix un altre %(model)s" msgid "Delete selected %(model)s" msgstr "Esborra el %(model)s seleccionat" +#, python-format +msgid "View selected %(model)s" +msgstr "Vista seleccionada %(model)s" + msgid "Thanks for spending some quality time with the web site today." msgstr "Gràcies per dedicar temps de qualitat avui a aquesta web." diff --git a/django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.mo index 4381bffb94b0b..4043382df2014 100644 Binary files a/django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.po index b06cf6c0c4e2f..a40ab69d32385 100644 --- a/django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.po @@ -3,15 +3,16 @@ # Translators: # Antoni Aloy , 2017,2021 # Carles Barrobés , 2011-2012,2014 +# Emilio Carrion, 2022 # Jannis Leidel , 2011 # Roger Pons , 2015 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-10-27 08:48+0000\n" -"Last-Translator: Antoni Aloy \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" +"Last-Translator: Emilio Carrion\n" "Language-Team: Catalan (http://www.transifex.com/django/django/language/" "ca/)\n" "MIME-Version: 1.0\n" @@ -262,6 +263,11 @@ msgctxt "one letter Saturday" msgid "S" msgstr "S" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "Ja ha enviat aquest formulari. Estàs segur que vols enviar-ho de nou?" + msgid "Show" msgstr "Mostrar" diff --git a/django/contrib/admin/locale/cs/LC_MESSAGES/django.mo b/django/contrib/admin/locale/cs/LC_MESSAGES/django.mo index 0dd0b0c3f5593..d3bfdd7ea07bc 100644 Binary files a/django/contrib/admin/locale/cs/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/cs/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/cs/LC_MESSAGES/django.po b/django/contrib/admin/locale/cs/LC_MESSAGES/django.po index ce5d6f8a85518..65159b8166de9 100644 --- a/django/contrib/admin/locale/cs/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/cs/LC_MESSAGES/django.po @@ -2,6 +2,7 @@ # # Translators: # Jannis Leidel , 2011 +# trendspotter , 2022 # Jirka Vejrazka , 2011 # Tomáš Ehrlich , 2015 # Vláďa Macek , 2013-2014 @@ -11,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2022-01-04 18:54+0000\n" -"Last-Translator: Vláďa Macek \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: trendspotter \n" "Language-Team: Czech (http://www.transifex.com/django/django/language/cs/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -279,8 +280,9 @@ msgstr "Vybraných je 0 položek z celkem %(cnt)s." msgid "Change history: %s" msgstr "Historie změn: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s: %(instance)s" @@ -551,6 +553,12 @@ msgstr "Uživatel" msgid "Action" msgstr "Operace" +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -609,6 +617,10 @@ msgstr "Přidat další %(model)s" msgid "Delete selected %(model)s" msgstr "Odstranit vybrané položky typu %(model)s" +#, python-format +msgid "View selected %(model)s" +msgstr "Zobrazení vybraných %(model)s" + msgid "Thanks for spending some quality time with the web site today." msgstr "Děkujeme za dnešní čas strávený s tímto neobyčejným webem." diff --git a/django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.mo index 39c441e7db9e2..828f705ac7ffd 100644 Binary files a/django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.po index 39d02b6136a62..f4b781881f998 100644 --- a/django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.po @@ -2,6 +2,7 @@ # # Translators: # Jannis Leidel , 2011 +# trendspotter , 2022 # Jirka Vejrazka , 2011 # Vláďa Macek , 2012,2014 # Vláďa Macek , 2015-2016,2020-2021 @@ -9,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-03-18 23:23+0000\n" -"Last-Translator: Vláďa Macek \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" +"Last-Translator: trendspotter \n" "Language-Team: Czech (http://www.transifex.com/django/django/language/cs/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -267,6 +268,11 @@ msgctxt "one letter Saturday" msgid "S" msgstr "S" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "Tento formulář jste již odeslali. Opravdu jej chcete odeslat znovu?" + msgid "Show" msgstr "Zobrazit" diff --git a/django/contrib/admin/locale/da/LC_MESSAGES/django.mo b/django/contrib/admin/locale/da/LC_MESSAGES/django.mo index 985a5e5e65f19..ce8b0a2be3418 100644 Binary files a/django/contrib/admin/locale/da/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/da/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/da/LC_MESSAGES/django.po b/django/contrib/admin/locale/da/LC_MESSAGES/django.po index 1435a361905c9..e226c8293e17c 100644 --- a/django/contrib/admin/locale/da/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/da/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ # Translators: # Christian Joergensen , 2012 # Dimitris Glezos , 2012 -# Erik Ramsgaard Wognsen , 2020 +# Erik Ramsgaard Wognsen , 2020-2022 # Erik Ramsgaard Wognsen , 2013,2015-2020 # Finn Gruwier Larsen, 2011 # Jannis Leidel , 2011 @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-14 19:53+0200\n" -"PO-Revision-Date: 2020-07-15 08:56+0000\n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" "Last-Translator: Erik Ramsgaard Wognsen \n" "Language-Team: Danish (http://www.transifex.com/django/django/language/da/)\n" "MIME-Version: 1.0\n" @@ -22,6 +22,10 @@ msgstr "" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Slet valgte %(verbose_name_plural)s" + #, python-format msgid "Successfully deleted %(count)d %(items)s." msgstr "%(count)d %(items)s blev slettet." @@ -33,10 +37,6 @@ msgstr "Kan ikke slette %(name)s " msgid "Are you sure?" msgstr "Er du sikker?" -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Slet valgte %(verbose_name_plural)s" - msgid "Administration" msgstr "Administration" @@ -268,8 +268,9 @@ msgstr "0 af %(cnt)s valgt" msgid "Change history: %s" msgstr "Ændringshistorik: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -525,6 +526,12 @@ msgstr "Har du glemt dit password eller brugernavn?" msgid "Toggle navigation" msgstr "Vis/skjul navigation" +msgid "Start typing to filter…" +msgstr "Skriv for at filtrere…" + +msgid "Filter navigation items" +msgstr "Filtrer navigationsemner" + msgid "Date/time" msgstr "Dato/tid" @@ -534,6 +541,12 @@ msgstr "Bruger" msgid "Action" msgstr "Funktion" +msgid "entry" +msgstr "post" + +msgid "entries" +msgstr "poster" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -590,7 +603,11 @@ msgstr "Tilføj endnu en %(model)s" msgid "Delete selected %(model)s" msgstr "Slet valgte %(model)s" -msgid "Thanks for spending some quality time with the Web site today." +#, python-format +msgid "View selected %(model)s" +msgstr "Vis valgte %(model)s" + +msgid "Thanks for spending some quality time with the web site today." msgstr "Tak for den kvalitetstid du brugte på websitet i dag." msgid "Log in again" diff --git a/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.mo index 88014485495e1..77958fdbb3a07 100644 Binary files a/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.po index 4929fd36ef30a..780e0413bfe54 100644 --- a/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.po @@ -2,7 +2,7 @@ # # Translators: # Christian Joergensen , 2012 -# Erik Ramsgaard Wognsen , 2021 +# Erik Ramsgaard Wognsen , 2021-2022 # Erik Ramsgaard Wognsen , 2012,2015-2016,2020 # Finn Gruwier Larsen, 2011 # Jannis Leidel , 2011 @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-01-15 18:53+0000\n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" "Last-Translator: Erik Ramsgaard Wognsen \n" "Language-Team: Danish (http://www.transifex.com/django/django/language/da/)\n" "MIME-Version: 1.0\n" @@ -263,6 +263,13 @@ msgctxt "one letter Saturday" msgid "S" msgstr "L" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" +"Du har allerede indsendt denne formular. Er du sikker på du vil indsende den " +"igen?" + msgid "Show" msgstr "Vis" diff --git a/django/contrib/admin/locale/de/LC_MESSAGES/django.mo b/django/contrib/admin/locale/de/LC_MESSAGES/django.mo index 7b6bae067f85f..86a3c3beed461 100644 Binary files a/django/contrib/admin/locale/de/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/de/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/de/LC_MESSAGES/django.po b/django/contrib/admin/locale/de/LC_MESSAGES/django.po index a1425c58b114d..0a2d16fd56717 100644 --- a/django/contrib/admin/locale/de/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/de/LC_MESSAGES/django.po @@ -5,17 +5,17 @@ # Florian Apolloner , 2011 # Dimitris Glezos , 2012 # Florian Apolloner , 2020-2022 -# Jannis Vajen, 2013 +# jnns, 2013 # Jannis Leidel , 2013-2018,2020 -# Jannis Vajen, 2016 +# jnns, 2016 # Markus Holtermann , 2020 # Markus Holtermann , 2013,2015 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2022-01-15 11:22+0000\n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" "Last-Translator: Florian Apolloner \n" "Language-Team: German (http://www.transifex.com/django/django/language/de/)\n" "MIME-Version: 1.0\n" @@ -276,8 +276,9 @@ msgstr "0 von %(cnt)s ausgewählt" msgid "Change history: %s" msgstr "Änderungsgeschichte: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -553,6 +554,12 @@ msgstr "Benutzer" msgid "Action" msgstr "Aktion" +msgid "entry" +msgstr "Eintrag" + +msgid "entries" +msgstr "Einträge" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -609,6 +616,10 @@ msgstr "%(model)s hinzufügen" msgid "Delete selected %(model)s" msgstr "Ausgewählte %(model)s löschen" +#, python-format +msgid "View selected %(model)s" +msgstr "Ausgewählte %(model)s ansehen" + msgid "Thanks for spending some quality time with the web site today." msgstr "" "Vielen Dank, dass Sie heute ein paar nette Minuten auf dieser Webseite " diff --git a/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.mo index 871b20579373f..5b14a685949f3 100644 Binary files a/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.po index 6ae2da3ab79d0..b8e49a7ca3402 100644 --- a/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.po @@ -2,17 +2,17 @@ # # Translators: # André Hagenbruch, 2011-2012 -# Florian Apolloner , 2020-2021 +# Florian Apolloner , 2020-2022 # Jannis Leidel , 2011,2013-2016 -# Jannis Vajen, 2016 +# jnns, 2016 # Markus Holtermann , 2020 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-11-28 17:14+0000\n" -"Last-Translator: Raphael Michel \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" +"Last-Translator: Florian Apolloner \n" "Language-Team: German (http://www.transifex.com/django/django/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -264,6 +264,13 @@ msgctxt "one letter Saturday" msgid "S" msgstr "Sa" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" +"Das Formular wurde bereits abgeschickt. Soll es wirklich nochmals " +"abgeschickt werden?" + msgid "Show" msgstr "Einblenden" diff --git a/django/contrib/admin/locale/dsb/LC_MESSAGES/django.mo b/django/contrib/admin/locale/dsb/LC_MESSAGES/django.mo index 03060dcdd54dd..b010e1a7f5ab1 100644 Binary files a/django/contrib/admin/locale/dsb/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/dsb/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/dsb/LC_MESSAGES/django.po b/django/contrib/admin/locale/dsb/LC_MESSAGES/django.po index 33a4adfa45d6e..d083cb7b8038e 100644 --- a/django/contrib/admin/locale/dsb/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/dsb/LC_MESSAGES/django.po @@ -1,13 +1,13 @@ # This file is distributed under the same license as the Django package. # # Translators: -# Michael Wolf , 2016-2020 +# Michael Wolf , 2016-2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-14 19:53+0200\n" -"PO-Revision-Date: 2020-07-21 12:54+0000\n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" "Last-Translator: Michael Wolf \n" "Language-Team: Lower Sorbian (http://www.transifex.com/django/django/" "language/dsb/)\n" @@ -18,6 +18,10 @@ msgstr "" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" "%100==4 ? 2 : 3);\n" +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Wubrane %(verbose_name_plural)s lašowaś" + #, python-format msgid "Successfully deleted %(count)d %(items)s." msgstr "%(count)d %(items)s su se wulašowali." @@ -29,10 +33,6 @@ msgstr "%(name)s njedajo se lašowaś" msgid "Are you sure?" msgstr "Sćo se wěsty?" -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Wubrane %(verbose_name_plural)s lašowaś" - msgid "Administration" msgstr "Administracija" @@ -269,8 +269,9 @@ msgstr "0 z %(cnt)s wubranych" msgid "Change history: %s" msgstr "Změnowa historija: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -524,6 +525,12 @@ msgstr "Sćo swójo gronidło abo wužywarske mě zabył?" msgid "Toggle navigation" msgstr "Nawigaciju pśešaltowaś" +msgid "Start typing to filter…" +msgstr "Pišćo, aby filtrował …" + +msgid "Filter navigation items" +msgstr "Nawigaciske zapiski filtrowaś" + msgid "Date/time" msgstr "Datum/cas" @@ -533,6 +540,12 @@ msgstr "Wužywaŕ" msgid "Action" msgstr "Akcija" +msgid "entry" +msgstr "zapisk" + +msgid "entries" +msgstr "zapiski" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -591,8 +604,13 @@ msgstr "Dalšny %(model)s pśidaś" msgid "Delete selected %(model)s" msgstr "Wubrane %(model)s lašowaś" -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Źěkujomy se, až sćo źinsa wěsty cas na websedle pśebywał." +#, python-format +msgid "View selected %(model)s" +msgstr "Wubrany %(model)s pokazaś" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" +"Wjeliki źěk, až sćo sebje brał źinsa cas za pśeglědowanje kwality websedła." msgid "Log in again" msgstr "Hyšći raz pśizjawiś" diff --git a/django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.mo index c1742a695bc7b..2faddb393936f 100644 Binary files a/django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.po index bfdb386d5ddd9..39e8cf0088ff3 100644 --- a/django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.po @@ -1,13 +1,13 @@ # This file is distributed under the same license as the Django package. # # Translators: -# Michael Wolf , 2016,2020-2021 +# Michael Wolf , 2016,2020-2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-02-01 22:10+0000\n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" "Last-Translator: Michael Wolf \n" "Language-Team: Lower Sorbian (http://www.transifex.com/django/django/" "language/dsb/)\n" @@ -266,6 +266,12 @@ msgctxt "one letter Saturday" msgid "S" msgstr "So" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" +"Sćo južo wótpósłał toś ten formular. Cośo jen napšawdu znowego wótpósłaś?" + msgid "Show" msgstr "Pokazaś" diff --git a/django/contrib/admin/locale/en/LC_MESSAGES/django.po b/django/contrib/admin/locale/en/LC_MESSAGES/django.po index ee8c3cf4d179c..6efd3478bd75d 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 \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 %(username)s." 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 bca964aa43483..c31e74c523931 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 \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/contrib/admin/locale/eo/LC_MESSAGES/django.mo b/django/contrib/admin/locale/eo/LC_MESSAGES/django.mo index b9a3fd95be53c..b05f1212def73 100644 Binary files a/django/contrib/admin/locale/eo/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/eo/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/eo/LC_MESSAGES/django.po b/django/contrib/admin/locale/eo/LC_MESSAGES/django.po index 5a74272df0dee..ddc5901fddd72 100644 --- a/django/contrib/admin/locale/eo/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/eo/LC_MESSAGES/django.po @@ -7,15 +7,16 @@ # Dinu Gherman , 2011 # kristjan , 2012 # Matthieu Desplantes , 2021 -# Nikolay Korotkiy , 2017 +# Meiyer , 2022 +# Nikolay Korotkiy , 2017 # Adamo Mesha , 2012 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-04-13 08:23+0000\n" -"Last-Translator: Matthieu Desplantes \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-05-25 07:05+0000\n" +"Last-Translator: Meiyer , 2022\n" "Language-Team: Esperanto (http://www.transifex.com/django/django/language/" "eo/)\n" "MIME-Version: 1.0\n" @@ -86,8 +87,8 @@ msgid "" "Please enter the correct %(username)s and password for a staff account. Note " "that both fields may be case-sensitive." msgstr "" -"Bonvolu eniri la ĝustan %(username)s-n kaj pasvorton por personara konto. " -"Notu, ke ambaŭ kampoj povas esti usklecodistinga." +"Bonvolu enigi la ĝustajn %(username)sn kaj pasvorton por personara konto. " +"Notu, ke ambaŭ kampoj povas esti uskleco-distingaj." msgid "Action:" msgstr "Ago:" @@ -97,7 +98,7 @@ msgid "Add another %(verbose_name)s" msgstr "Aldoni alian %(verbose_name)sn" msgid "Remove" -msgstr "Forigu" +msgstr "Forigi" msgid "Addition" msgstr "Aldono" @@ -139,22 +140,22 @@ msgstr "protokoleroj" #, python-format msgid "Added “%(object)s”." -msgstr "Aldonis “%(object)s”" +msgstr "Aldono de “%(object)s”" #, python-format msgid "Changed “%(object)s” — %(changes)s" -msgstr "" +msgstr "Ŝanĝo de “%(object)s” — %(changes)s" #, python-format msgid "Deleted “%(object)s.”" -msgstr "" +msgstr "Forigo de “%(object)s”" msgid "LogEntry Object" msgstr "Protokolera objekto" #, python-brace-format msgid "Added {name} “{object}”." -msgstr "" +msgstr "Aldonita(j) {name} “{object}”." msgid "Added." msgstr "Aldonita." @@ -164,15 +165,15 @@ msgstr "kaj" #, python-brace-format msgid "Changed {fields} for {name} “{object}”." -msgstr "" +msgstr "Ŝanĝita(j) {fields} por {name} “{object}”." #, python-brace-format msgid "Changed {fields}." -msgstr "Ŝanĝita {fields}." +msgstr "Ŝanĝita(j) {fields}." #, python-brace-format msgid "Deleted {name} “{object}”." -msgstr "" +msgstr "Forigita(j) {name} “{object}”." msgid "No fields changed." msgstr "Neniu kampo ŝanĝita." @@ -185,7 +186,7 @@ msgstr "" #, python-brace-format msgid "The {name} “{obj}” was added successfully." -msgstr "" +msgstr "La {name} “{obj}” estis sukcese aldonita(j)." msgid "You may edit it again below." msgstr "Eblas redakti ĝin sube." @@ -218,15 +219,14 @@ msgid "" "Items must be selected in order to perform actions on them. No items have " "been changed." msgstr "" -"Elementoj devas esti elektitaj por elfari agojn sur ilin. Neniu elemento " -"estis ŝanĝita." +"Elementoj devas esti elektitaj por agi je ili. Neniu elemento estis ŝanĝita." msgid "No action selected." msgstr "Neniu ago elektita." #, python-format msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "" +msgstr "La %(name)s “%(obj)s” estis sukcese forigita(j)." #, python-format msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" @@ -267,8 +267,9 @@ msgstr "0 el %(cnt)s elektita" msgid "Change history: %s" msgstr "Ŝanĝa historio: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -282,10 +283,10 @@ msgstr "" "protektitajn rilatajn objektojn: %(related_objects)s" msgid "Django site admin" -msgstr "Djanga reteja administrado" +msgstr "Dĵanga reteja administrado" msgid "Django administration" -msgstr "Djanga administrado" +msgstr "Dĵanga administrado" msgid "Site administration" msgstr "Reteja administrado" @@ -295,7 +296,7 @@ msgstr "Ensaluti" #, python-format msgid "%(app)s administration" -msgstr "%(app)s administrado" +msgstr "Administrado de %(app)s" msgid "Page not found" msgstr "Paĝo ne trovita" @@ -321,7 +322,7 @@ msgid "" msgstr "" msgid "Run the selected action" -msgstr "Lanĉi la elektita agon" +msgstr "Lanĉi la elektitan agon" msgid "Go" msgstr "Ek" @@ -338,7 +339,7 @@ msgstr "Viŝi elekton" #, python-format msgid "Models in the %(name)s application" -msgstr "Modeloj en la %(name)s aplikaĵo" +msgstr "Modeloj en la aplikaĵo “%(name)s”" msgid "Add" msgstr "Aldoni" @@ -511,11 +512,17 @@ msgstr "" "paĝon. Ĉu vi ŝatus ensaluti per alia konto?" msgid "Forgotten your password or username?" -msgstr "Ĉu vi forgesis vian pasvorton aŭ salutnomo?" +msgstr "Ĉu vi forgesis vian pasvorton aŭ vian salutnomon?" msgid "Toggle navigation" msgstr "Ŝalti navigadon" +msgid "Start typing to filter…" +msgstr "" + +msgid "Filter navigation items" +msgstr "" + msgid "Date/time" msgstr "Dato/horo" @@ -525,6 +532,12 @@ msgstr "Uzanto" msgid "Action" msgstr "Ago" +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -581,8 +594,12 @@ msgstr "Aldoni alian %(model)sn" msgid "Delete selected %(model)s" msgstr "Forigi elektitan %(model)sn" -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Dankon pro pasigo de kvalita tempon kun la retejo hodiaŭ." +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" msgid "Log in again" msgstr "Ensaluti denove" @@ -607,7 +624,7 @@ msgid "Password reset" msgstr "Pasvorta rekomencigo" msgid "Your password has been set. You may go ahead and log in now." -msgstr "Via pasvorto estis ŝanĝita. Vi povas iri antaŭen kaj ensaluti nun." +msgstr "Via pasvorto estis ŝanĝita. Vi povas ensaluti nun." msgid "Password reset confirmation" msgstr "Konfirmo de restarigo de pasvorto" @@ -643,7 +660,7 @@ msgid "" "If you don’t receive an email, please make sure you’ve entered the address " "you registered with, and check your spam folder." msgstr "" -"Se vi ne ricevas retmesaĝon, bonvolu certiĝi, ke vi entajpis la adreson, per " +"Se vi ne ricevas retmesaĝon, bonvole certiĝu ke vi entajpis la adreson per " "kiu vi registriĝis, kaj kontrolu en via spamujo." #, python-format diff --git a/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.mo index 9b6aa8f21ec04..6e86ac2d4e483 100644 Binary files a/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.po index f101319a4c42f..db9991387cefb 100644 --- a/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.po @@ -1,17 +1,18 @@ # This file is distributed under the same license as the Django package. # # Translators: -# Baptiste Darthenay , 2012 -# Baptiste Darthenay , 2014-2016 -# Jaffa McNeill , 2011 +# Batist D 🐍 , 2012 +# Batist D 🐍 , 2014-2016 +# 977db45bb2d7151f88325d4fbeca189e_848074d <3d1ba07956d05291bf7c987ecea0a7ef_13052>, 2011 +# Meiyer , 2022 # Adamo Mesha , 2012 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-17 11:50+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Baptiste Darthenay \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-05-25 07:05+0000\n" +"Last-Translator: Meiyer , 2022\n" "Language-Team: Esperanto (http://www.transifex.com/django/django/language/" "eo/)\n" "MIME-Version: 1.0\n" @@ -22,61 +23,59 @@ msgstr "" #, javascript-format msgid "Available %s" -msgstr "Disponebla %s" +msgstr "Disponeblaj %s" #, javascript-format msgid "" "This is the list of available %s. You may choose some by selecting them in " "the box below and then clicking the \"Choose\" arrow between the two boxes." msgstr "" -"Tio ĉi estas la listo de disponeblaj %s. Vi povas forigi kelkajn elektante " -"ilin en la suba skatolo kaj tiam klakante la \"Elekti\" sagon inter la du " -"skatoloj." +"Tio ĉi estas la listo de disponeblaj %s. Vi povas aktivigi kelkajn markante " +"ilin en la suba kesto kaj klakante la sagon “Elekti” inter la du kestoj." #, javascript-format msgid "Type into this box to filter down the list of available %s." -msgstr "Entipu en ĉi-tiu skatolo por filtri la liston de haveblaj %s." +msgstr "Tajpu en ĉi-tiu skatolo por filtri la liston de haveblaj %s." msgid "Filter" msgstr "Filtru" msgid "Choose all" -msgstr "Elekti ĉiuj" +msgstr "Elekti ĉiujn" #, javascript-format msgid "Click to choose all %s at once." -msgstr "Klaku por tuj elekti ĉiuj %s." +msgstr "Klaku por tuj elekti ĉiujn %sn." msgid "Choose" msgstr "Elekti" msgid "Remove" -msgstr "Forigu" +msgstr "Forigi" #, javascript-format msgid "Chosen %s" -msgstr "Elektita %s" +msgstr "Elektitaj %s" #, javascript-format msgid "" "This is the list of chosen %s. You may remove some by selecting them in the " "box below and then clicking the \"Remove\" arrow between the two boxes." msgstr "" -"Tio ĉi estas la listo de elektitaj %s. Vi povas forigi kelkajn elektante " -"ilin en la suba skatolo kaj tiam klakante la \"Forigi\" sagon inter la du " -"skatoloj." +"Tio ĉi estas la listo de elektitaj %s. Vi povas malaktivigi kelkajn markante " +"ilin en la suba kesto kaj klakante la sagon “Forigi” inter la du kestoj." msgid "Remove all" -msgstr "Forigu ĉiujn" +msgstr "Forigi ĉiujn" #, javascript-format msgid "Click to remove all chosen %s at once." -msgstr "Klaku por tuj forigi ĉiujn %s elektitajn." +msgstr "Klaku por tuj forigi ĉiujn %sn elektitajn." msgid "%(sel)s of %(cnt)s selected" msgid_plural "%(sel)s of %(cnt)s selected" msgstr[0] "%(sel)s de %(cnt)s elektita" -msgstr[1] "%(sel)s de %(cnt)s elektitaj" +msgstr[1] "%(sel)s el %(cnt)s elektitaj" msgid "" "You have unsaved changes on individual editable fields. If you run an " @@ -86,47 +85,43 @@ msgstr "" "agon, viaj neŝirmitaj ŝanĝoj perdiĝos." 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 " +"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 "" -"Vi elektas agon, sed vi ne ŝirmis viajn ŝanĝojn al individuaj kampoj ĝis " -"nun. Bonvolu klaku BONA por ŝirmi. Vi devos ripeton la agon" 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 " +"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 " "button." msgstr "" -"Vi elektas agon, kaj vi ne faris ajnajn ŝanĝojn ĉe unuopaj kampoj. Vi " -"verŝajne serĉas la Iru-butonon prefere ol la Ŝirmu-butono." msgid "Now" msgstr "Nun" msgid "Midnight" -msgstr "Noktomezo" +msgstr "Noktomeze" msgid "6 a.m." msgstr "6 a.t.m." msgid "Noon" -msgstr "Tagmezo" +msgstr "Tagmeze" msgid "6 p.m." -msgstr "6 ptm" +msgstr "6 p.t.m." #, javascript-format msgid "Note: You are %s hour ahead of server time." msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Noto: Vi estas %s horo antaŭ la servila horo." -msgstr[1] "Noto: Vi estas %s horoj antaŭ la servila horo." +msgstr[0] "Noto: Vi estas %s horon post la servila horo." +msgstr[1] "Noto: Vi estas %s horojn post la servila horo." #, javascript-format msgid "Note: You are %s hour behind server time." msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Noto: Vi estas %s horo post la servila horo." -msgstr[1] "Noto: Vi estas %s horoj post la servila horo." +msgstr[0] "Noto: Vi estas %s horon antaŭ la servila horo." +msgstr[1] "Noto: Vi estas %s horojn antaŭ la servila horo." msgid "Choose a Time" msgstr "Elektu horon" @@ -135,7 +130,7 @@ msgid "Choose a time" msgstr "Elektu tempon" msgid "Cancel" -msgstr "Malmendu" +msgstr "Nuligi" msgid "Today" msgstr "Hodiaŭ" @@ -185,6 +180,54 @@ msgstr "novembro" msgid "December" msgstr "decembro" +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "jan." + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "feb." + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "mar." + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "apr." + +msgctxt "abbrev. month May" +msgid "May" +msgstr "maj." + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "jun." + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "jul." + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "aŭg." + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "sep." + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "okt." + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "nov." + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "dec." + msgctxt "one letter Sunday" msgid "S" msgstr "d" @@ -213,8 +256,13 @@ msgctxt "one letter Saturday" msgid "S" msgstr "s" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "Vi jam forsendis tiun ĉi formularon. Ĉu vi certe volas resendi ĝin?" + msgid "Show" -msgstr "Montru" +msgstr "Montri" msgid "Hide" -msgstr "Kaŝu" +msgstr "Kaŝi" diff --git a/django/contrib/admin/locale/es/LC_MESSAGES/django.mo b/django/contrib/admin/locale/es/LC_MESSAGES/django.mo index 72401f35257fb..89c15867db5ba 100644 Binary files a/django/contrib/admin/locale/es/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/es/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/es/LC_MESSAGES/django.po b/django/contrib/admin/locale/es/LC_MESSAGES/django.po index 65f3e0c3e8b09..bc49ce8867afe 100644 --- a/django/contrib/admin/locale/es/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/es/LC_MESSAGES/django.po @@ -17,15 +17,15 @@ # Marc Garcia , 2011 # Miguel Angel Tribaldos , 2017 # Pablo, 2015 -# Uriel Medina , 2020-2021 +# Uriel Medina , 2020-2022 # Veronicabh , 2015 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-10 03:53+0000\n" -"Last-Translator: Uriel Medina \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-05-25 07:05+0000\n" +"Last-Translator: Uriel Medina , 2020-2022\n" "Language-Team: Spanish (http://www.transifex.com/django/django/language/" "es/)\n" "MIME-Version: 1.0\n" @@ -272,12 +272,14 @@ msgid "%(count)s %(name)s was changed successfully." msgid_plural "%(count)s %(name)s were changed successfully." msgstr[0] "%(count)s %(name)s fué modificado con éxito." msgstr[1] "%(count)s %(name)s fueron modificados con éxito." +msgstr[2] "%(count)s %(name)s fueron modificados con éxito." #, python-format msgid "%(total_count)s selected" msgid_plural "All %(total_count)s selected" msgstr[0] "%(total_count)s seleccionado" msgstr[1] "%(total_count)s seleccionados en total" +msgstr[2] "%(total_count)s seleccionados en total" #, python-format msgid "0 of %(cnt)s selected" @@ -287,8 +289,9 @@ msgstr "seleccionados 0 de %(cnt)s" msgid "Change history: %s" msgstr "Histórico de modificaciones: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -460,8 +463,8 @@ msgid "" "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " "All of the following related items will be deleted:" msgstr "" -"¿Está seguro de que quiere borrar los %(object_name)s \"%(escaped_object)s" -"\"? Se borrarán los siguientes objetos relacionados:" +"¿Está seguro de que quiere borrar los %(object_name)s " +"\"%(escaped_object)s\"? Se borrarán los siguientes objetos relacionados:" msgid "Objects" msgstr "Objetos" @@ -561,6 +564,12 @@ msgstr "Usuario" msgid "Action" msgstr "Acción" +msgid "entry" +msgstr "entrada" + +msgid "entries" +msgstr "entradas" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -585,6 +594,7 @@ msgid "%(counter)s result" msgid_plural "%(counter)s results" msgstr[0] "%(counter)s resultado" msgstr[1] "%(counter)s resultados" +msgstr[2] "%(counter)s resultados" #, python-format msgid "%(full_result_count)s total" @@ -617,6 +627,10 @@ msgstr "Añadir otro %(model)s" msgid "Delete selected %(model)s" msgstr "Eliminar %(model)s seleccionada/o" +#, python-format +msgid "View selected %(model)s" +msgstr "Ver seleccionado %(model)s" + msgid "Thanks for spending some quality time with the web site today." msgstr "Gracias por pasar un buen rato con el sitio web hoy." diff --git a/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.mo index d732ed0c9de5d..e92aa365ef8e7 100644 Binary files a/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.po index bdfacec6bc147..9b2f80529fa49 100644 --- a/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.po @@ -6,15 +6,15 @@ # Jannis Leidel , 2011 # Josue Naaman Nistal Guerra , 2014 # Leonardo J. Caballero G. , 2011 -# Uriel Medina , 2020-2021 +# Uriel Medina , 2020-2022 # Veronicabh , 2015 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-02-11 05:37+0000\n" -"Last-Translator: Uriel Medina \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-05-25 07:05+0000\n" +"Last-Translator: Uriel Medina , 2020-2022\n" "Language-Team: Spanish (http://www.transifex.com/django/django/language/" "es/)\n" "MIME-Version: 1.0\n" @@ -80,6 +80,7 @@ msgid "%(sel)s of %(cnt)s selected" msgid_plural "%(sel)s of %(cnt)s selected" msgstr[0] "%(sel)s de %(cnt)s seleccionado" msgstr[1] "%(sel)s de %(cnt)s seleccionados" +msgstr[2] "%(sel)s de %(cnt)s seleccionados" msgid "" "You have unsaved changes on individual editable fields. If you run an " @@ -126,12 +127,14 @@ msgid "Note: You are %s hour ahead of server time." msgid_plural "Note: You are %s hours ahead of server time." msgstr[0] "Nota: Usted esta a %s horas por delante de la hora del servidor." msgstr[1] "Nota: Usted va %s horas por delante de la hora del servidor." +msgstr[2] "Nota: Usted va %s horas por delante de la hora del servidor." #, javascript-format msgid "Note: You are %s hour behind server time." msgid_plural "Note: You are %s hours behind server time." msgstr[0] "Nota: Usted esta a %s hora de retraso de tiempo de servidor." msgstr[1] "Nota: Usted va %s horas por detrás de la hora del servidor." +msgstr[2] "Nota: Usted va %s horas por detrás de la hora del servidor." msgid "Choose a Time" msgstr "Elija una Hora" @@ -266,6 +269,12 @@ msgctxt "one letter Saturday" msgid "S" msgstr "S" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" +"Ya ha enviado este formulario. ¿Está seguro de querer enviarlo de nuevo?" + msgid "Show" msgstr "Mostrar" diff --git a/django/contrib/admin/locale/es_AR/LC_MESSAGES/django.mo b/django/contrib/admin/locale/es_AR/LC_MESSAGES/django.mo index 808d19248e7cb..5fe2d61d7b0b3 100644 Binary files a/django/contrib/admin/locale/es_AR/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/es_AR/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/es_AR/LC_MESSAGES/django.po b/django/contrib/admin/locale/es_AR/LC_MESSAGES/django.po index c3327e7dbb704..eb7199712c5ee 100644 --- a/django/contrib/admin/locale/es_AR/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/es_AR/LC_MESSAGES/django.po @@ -3,13 +3,13 @@ # Translators: # Jannis Leidel , 2011 # Leonardo José Guzmán , 2013 -# Ramiro Morales, 2013-2021 +# Ramiro Morales, 2013-2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-19 14:47+0000\n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" "Last-Translator: Ramiro Morales\n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/django/django/" "language/es_AR/)\n" @@ -268,8 +268,9 @@ msgstr "0 de %(cnt)s seleccionados/as" msgid "Change history: %s" msgstr "Historia de modificaciones: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -545,6 +546,12 @@ msgstr "Usuario" msgid "Action" msgstr "Acción" +msgid "entry" +msgstr "entrada" + +msgid "entries" +msgstr "entradas" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -601,6 +608,10 @@ msgstr "Agregar otro/a %(model)s" msgid "Delete selected %(model)s" msgstr "Eliminar %(model)s seleccionados/as" +#, python-format +msgid "View selected %(model)s" +msgstr "Ver %(model)s seleccionado/a" + msgid "Thanks for spending some quality time with the web site today." msgstr "Gracias por el tiempo que ha dedicado al sitio web hoy." diff --git a/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.mo index abd7d3601aba7..c3a27f397ee1f 100644 Binary files a/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.po index 782aa17f45c9e..58a650ecf764b 100644 --- a/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.po @@ -2,13 +2,13 @@ # # Translators: # Jannis Leidel , 2011 -# Ramiro Morales, 2014-2016,2020-2021 +# Ramiro Morales, 2014-2016,2020-2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-03-21 12:54+0000\n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" "Last-Translator: Ramiro Morales\n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/django/django/" "language/es_AR/)\n" @@ -158,40 +158,40 @@ msgid "Tomorrow" msgstr "Mañana" msgid "January" -msgstr "Enero" +msgstr "enero" msgid "February" -msgstr "Febrero" +msgstr "febrero" msgid "March" -msgstr "Marzo" +msgstr "marzo" msgid "April" -msgstr "Abril" +msgstr "abril" msgid "May" -msgstr "Mayo" +msgstr "mayo" msgid "June" -msgstr "Junio" +msgstr "junio" msgid "July" -msgstr "Julio" +msgstr "julio" msgid "August" -msgstr "Agosto" +msgstr "agosto" msgid "September" -msgstr "Setiembre" +msgstr "setiembre" msgid "October" -msgstr "Octubre" +msgstr "octubre" msgid "November" -msgstr "Noviembre" +msgstr "noviembre" msgid "December" -msgstr "Diciembre" +msgstr "diciembre" msgctxt "abbrev. month January" msgid "Jan" @@ -269,6 +269,12 @@ msgctxt "one letter Saturday" msgid "S" msgstr "S" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" +"Ya ha enviado este formulario. ¿Está seguro de que desea enviarlo nuevamente?" + msgid "Show" msgstr "Mostrar" diff --git a/django/contrib/admin/locale/es_MX/LC_MESSAGES/django.mo b/django/contrib/admin/locale/es_MX/LC_MESSAGES/django.mo index f141d32b08b2f..8b88505d9e185 100644 Binary files a/django/contrib/admin/locale/es_MX/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/es_MX/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/es_MX/LC_MESSAGES/django.po b/django/contrib/admin/locale/es_MX/LC_MESSAGES/django.po index fd4d403e8a1dc..416df6ae1345b 100644 --- a/django/contrib/admin/locale/es_MX/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/es_MX/LC_MESSAGES/django.po @@ -5,13 +5,14 @@ # Alex Dzul , 2015 # Gustavo Jimenez , 2020 # Jesús Bautista , 2020 +# José Rosso, 2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-14 19:53+0200\n" -"PO-Revision-Date: 2020-07-14 22:38+0000\n" -"Last-Translator: Transifex Bot <>\n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: José Rosso\n" "Language-Team: Spanish (Mexico) (http://www.transifex.com/django/django/" "language/es_MX/)\n" "MIME-Version: 1.0\n" @@ -20,6 +21,10 @@ msgstr "" "Language: es_MX\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Eliminar %(verbose_name_plural)s seleccionados/as" + #, python-format msgid "Successfully deleted %(count)d %(items)s." msgstr "Se eliminaron con éxito %(count)d %(items)s." @@ -31,10 +36,6 @@ msgstr "No se puede eliminar %(name)s " msgid "Are you sure?" msgstr "¿Está seguro?" -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Eliminar %(verbose_name_plural)s seleccionados/as" - msgid "Administration" msgstr "Administración" @@ -72,7 +73,7 @@ msgid "Has date" msgstr "Tiene fecha" msgid "Empty" -msgstr "" +msgstr "Vacío" msgid "Not empty" msgstr "" @@ -264,8 +265,9 @@ msgstr "0 de %(cnt)s seleccionados/as" msgid "Change history: %s" msgstr "Historia de modificaciones: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -514,6 +516,12 @@ msgstr "¿Ha olvidado su contraseña o nombre de usuario?" msgid "Toggle navigation" msgstr "" +msgid "Start typing to filter…" +msgstr "" + +msgid "Filter navigation items" +msgstr "" + msgid "Date/time" msgstr "Fecha/hora" @@ -523,6 +531,12 @@ msgstr "Usuario" msgid "Action" msgstr "Acción" +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -577,8 +591,12 @@ msgstr "" msgid "Delete selected %(model)s" msgstr "" -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Gracias por el tiempo que ha dedicado al sitio web hoy." +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" msgid "Log in again" msgstr "Identificarse de nuevo" diff --git a/django/contrib/admin/locale/et/LC_MESSAGES/django.mo b/django/contrib/admin/locale/et/LC_MESSAGES/django.mo index dbfc3b8c0b535..3fa5e6f5461d0 100644 Binary files a/django/contrib/admin/locale/et/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/et/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/et/LC_MESSAGES/django.po b/django/contrib/admin/locale/et/LC_MESSAGES/django.po index 18a4e187403c1..c21340eeb8eb5 100644 --- a/django/contrib/admin/locale/et/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/et/LC_MESSAGES/django.po @@ -5,17 +5,17 @@ # Erlend Eelmets , 2020 # Jannis Leidel , 2011 # Janno Liivak , 2013-2015 -# Martin Pajuste , 2015 -# Martin Pajuste , 2016,2019-2020 +# Martin , 2015,2022 +# Martin , 2016,2019-2020 # Marti Raudsepp , 2016 # Ragnar Rebase , 2019 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-14 19:53+0200\n" -"PO-Revision-Date: 2020-09-03 15:38+0000\n" -"Last-Translator: Erlend Eelmets \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Martin \n" "Language-Team: Estonian (http://www.transifex.com/django/django/language/" "et/)\n" "MIME-Version: 1.0\n" @@ -24,6 +24,10 @@ msgstr "" "Language: et\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Kustuta valitud %(verbose_name_plural)s" + #, python-format msgid "Successfully deleted %(count)d %(items)s." msgstr "%(count)d %(items)s kustutamine õnnestus." @@ -35,10 +39,6 @@ msgstr "Ei saa kustutada %(name)s" msgid "Are you sure?" msgstr "Kas olete kindel?" -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Kustuta valitud %(verbose_name_plural)s" - msgid "Administration" msgstr "Administreerimine" @@ -268,8 +268,9 @@ msgstr "valitud 0/%(cnt)s" msgid "Change history: %s" msgstr "Muudatuste ajalugu: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -524,6 +525,12 @@ msgstr "Unustasite oma parooli või kasutajanime?" msgid "Toggle navigation" msgstr "Lülita navigeerimine sisse" +msgid "Start typing to filter…" +msgstr "" + +msgid "Filter navigation items" +msgstr "" + msgid "Date/time" msgstr "Kuupäev/kellaaeg" @@ -533,6 +540,12 @@ msgstr "Kasutaja" msgid "Action" msgstr "Toiming" +msgid "entry" +msgstr "sissekanne" + +msgid "entries" +msgstr "sissekanded" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -589,7 +602,11 @@ msgstr "Lisa veel üks %(model)s" msgid "Delete selected %(model)s" msgstr "Kustuta valitud %(model)s" -msgid "Thanks for spending some quality time with the Web site today." +#, python-format +msgid "View selected %(model)s" +msgstr "Vaata valitud %(model)s" + +msgid "Thanks for spending some quality time with the web site today." msgstr "Tänan, et veetsite aega meie lehel." msgid "Log in again" diff --git a/django/contrib/admin/locale/eu/LC_MESSAGES/django.mo b/django/contrib/admin/locale/eu/LC_MESSAGES/django.mo index 7274559449924..a2c9933017d41 100644 Binary files a/django/contrib/admin/locale/eu/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/eu/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/eu/LC_MESSAGES/django.po b/django/contrib/admin/locale/eu/LC_MESSAGES/django.po index 5853594fd2994..3aba9f806c297 100644 --- a/django/contrib/admin/locale/eu/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/eu/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ # # Translators: # Aitzol Naberan , 2013,2016 -# Eneko Illarramendi , 2017-2019 +# Eneko Illarramendi , 2017-2019,2022 # Jannis Leidel , 2011 # julen, 2012-2013 # julen, 2013 @@ -12,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-03-22 12:29+0000\n" -"Last-Translator: Yoaira García \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Eneko Illarramendi \n" "Language-Team: Basque (http://www.transifex.com/django/django/language/eu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -137,7 +137,7 @@ msgstr "log sarrerak" #, python-format msgid "Added “%(object)s”." -msgstr "" +msgstr "\"%(object)s\" gehituta." #, python-format msgid "Changed “%(object)s” — %(changes)s" @@ -145,14 +145,14 @@ msgstr "" #, python-format msgid "Deleted “%(object)s.”" -msgstr "" +msgstr "\"%(object)s\" ezabatuta." msgid "LogEntry Object" msgstr "LogEntry objetua" #, python-brace-format msgid "Added {name} “{object}”." -msgstr "" +msgstr "{name} \"{object}\" gehituta." msgid "Added." msgstr "Gehituta" @@ -170,7 +170,7 @@ msgstr "{fields} aldatuta." #, python-brace-format msgid "Deleted {name} “{object}”." -msgstr "" +msgstr "{name} \"{object}\" ezabatuta." msgid "No fields changed." msgstr "Ez da eremurik aldatu." @@ -180,6 +180,8 @@ msgstr "Bat ere ez" msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." msgstr "" +"Bat baino gehiago hautatzeko, sakatu \"Kontrol\" tekla edo \"Command\" Mac " +"batean." #, python-brace-format msgid "The {name} “{obj}” was added successfully." @@ -192,15 +194,18 @@ msgstr "Aldaketa gehiago egin ditzazkezu jarraian." msgid "" "The {name} “{obj}” was added successfully. You may add another {name} below." msgstr "" +"{name} \"{obj}\" ondo gehitu da. Beste {name} bat gehitu dezakezu jarraian." #, python-brace-format msgid "" "The {name} “{obj}” was changed successfully. You may edit it again below." msgstr "" +"{name} \"{obj}\" ondo aldatu da. Aldaketa gehiago egin ditzazkezu jarraian." #, python-brace-format msgid "The {name} “{obj}” was added successfully. You may edit it again below." msgstr "" +"{name} \"{obj}\" ondo gehitu da. Aldaketa gehiago egin ditzazkezu jarraian." #, python-brace-format msgid "" @@ -224,11 +229,12 @@ msgstr "Ez dago ekintzarik aukeratuta." #, python-format msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "" +msgstr "%(name)s \"%(obj)s\" ondo ezabatu da." #, python-format msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" msgstr "" +"\"%(key)s\" ID-a duen %(name)s ez da existitzen. Agian ezabatua izan da?" #, python-format msgid "Add %s" @@ -265,8 +271,9 @@ msgstr "Guztira %(cnt)s, 0 aukeratuta" msgid "Change history: %s" msgstr "Aldaketen historia: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -518,6 +525,12 @@ msgstr "Pasahitza edo erabiltzaile-izena ahaztu duzu?" msgid "Toggle navigation" msgstr "" +msgid "Start typing to filter…" +msgstr "Hasi idazten filtratzeko..." + +msgid "Filter navigation items" +msgstr "" + msgid "Date/time" msgstr "Data/ordua" @@ -527,6 +540,12 @@ msgstr "Erabiltzailea" msgid "Action" msgstr "Ekintza" +msgid "entry" +msgstr "sarrera" + +msgid "entries" +msgstr "sarrerak" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -581,8 +600,12 @@ msgstr "Gehitu beste %(model)s" msgid "Delete selected %(model)s" msgstr "Ezabatu aukeratutako %(model)s" -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Eskerrik asko webguneari zure probetxuzko denbora eskaintzeagatik." +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" msgid "Log in again" msgstr "Hasi saioa berriro" @@ -656,7 +679,7 @@ msgid "Please go to the following page and choose a new password:" msgstr "Zoaz hurrengo orrira eta aukeratu pasahitz berria:" msgid "Your username, in case you’ve forgotten:" -msgstr "" +msgstr "Zure erabiltzaile-izena, ahaztu baduzu:" msgid "Thanks for using our site!" msgstr "Mila esker gure webgunea erabiltzeagatik!" diff --git a/django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.mo index 6b9adaa92c9b5..234bff63c360c 100644 Binary files a/django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.po index 40d86fae8350b..e7d3ae5494c14 100644 --- a/django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.po @@ -2,15 +2,15 @@ # # Translators: # Aitzol Naberan , 2011 -# Eneko Illarramendi , 2017 +# Eneko Illarramendi , 2017,2022 # Jannis Leidel , 2011 -# julen , 2012-2013 +# julen, 2012-2013 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-09-23 18:54+0000\n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" "Last-Translator: Eneko Illarramendi \n" "Language-Team: Basque (http://www.transifex.com/django/django/language/eu/)\n" "MIME-Version: 1.0\n" @@ -84,20 +84,31 @@ msgstr "" "gorde gabeko aldaketak galduko dira." 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 " +"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 "" -"Ekintza bat hautatu duzu, baina oraindik ez duzu eremuetako aldaketak gorde. " -"Mesedez, sakatu OK gordetzeko. Ekintza berriro exekutatu beharko duzu." 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 " +"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 " "button." msgstr "" -"Ekintza bat hautatu duzu, baina ez duzu inongo aldaketarik egin eremuetan. " -"Litekeena da, Gorde botoia beharrean Aurrera botoiaren bila aritzea." + +msgid "Now" +msgstr "Orain" + +msgid "Midnight" +msgstr "Gauerdia" + +msgid "6 a.m." +msgstr "6 a.m." + +msgid "Noon" +msgstr "Eguerdia" + +msgid "6 p.m." +msgstr "6 p.m." #, javascript-format msgid "Note: You are %s hour ahead of server time." @@ -111,27 +122,12 @@ msgid_plural "Note: You are %s hours behind server time." msgstr[0] "Oharra: zerbitzariaren denborarekiko ordu %s atzerago zaude. " msgstr[1] "Oharra: zerbitzariaren denborarekiko %s ordu atzerago zaude. " -msgid "Now" -msgstr "Orain" - msgid "Choose a Time" msgstr "Aukeratu ordu bat" msgid "Choose a time" msgstr "Aukeratu ordu bat" -msgid "Midnight" -msgstr "Gauerdia" - -msgid "6 a.m." -msgstr "6 a.m." - -msgid "Noon" -msgstr "Eguerdia" - -msgid "6 p.m." -msgstr "6 p.m." - msgid "Cancel" msgstr "Atzera" @@ -148,68 +144,121 @@ msgid "Tomorrow" msgstr "Bihar" msgid "January" -msgstr "Urtarrila" +msgstr "urtarrila" msgid "February" -msgstr "Otsaila" +msgstr "otsaila" msgid "March" -msgstr "Martxoa" +msgstr "martxoa" msgid "April" -msgstr "Apirila" +msgstr "apirila" msgid "May" -msgstr "Maiatza" +msgstr "maiatza" msgid "June" -msgstr "Ekaina" +msgstr "ekaina" msgid "July" -msgstr "Uztaila" +msgstr "uztaila" msgid "August" -msgstr "Abuztua" +msgstr "abuztua" msgid "September" -msgstr "Iraila" +msgstr "iraila" msgid "October" -msgstr "Urria" +msgstr "urria" msgid "November" -msgstr "Azaroa" +msgstr "azaroa" msgid "December" -msgstr "Abendua" +msgstr "abendua" + +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "urt." + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "ots." + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "mar." + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "api." + +msgctxt "abbrev. month May" +msgid "May" +msgstr "mai." + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "eka." + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "uzt." + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "abu." + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "ira." + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "urr." + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "aza." + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "abe." msgctxt "one letter Sunday" msgid "S" -msgstr "I" +msgstr "ig." msgctxt "one letter Monday" msgid "M" -msgstr "A" +msgstr "al." msgctxt "one letter Tuesday" msgid "T" -msgstr "A" +msgstr "ar." msgctxt "one letter Wednesday" msgid "W" -msgstr "A" +msgstr "az." msgctxt "one letter Thursday" msgid "T" -msgstr "O" +msgstr "og." msgctxt "one letter Friday" msgid "F" -msgstr "O" +msgstr "ol." msgctxt "one letter Saturday" msgid "S" -msgstr "L" +msgstr "lr." + +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" msgid "Show" msgstr "Erakutsi" diff --git a/django/contrib/admin/locale/fa/LC_MESSAGES/django.mo b/django/contrib/admin/locale/fa/LC_MESSAGES/django.mo index 2cc581a5bd8e3..227a0cd422c98 100644 Binary files a/django/contrib/admin/locale/fa/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/fa/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/fa/LC_MESSAGES/django.po b/django/contrib/admin/locale/fa/LC_MESSAGES/django.po index ae3144bcc0bcb..03a221c5527e8 100644 --- a/django/contrib/admin/locale/fa/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/fa/LC_MESSAGES/django.po @@ -4,6 +4,7 @@ # Ahmad Hosseini , 2020 # Ali Nikneshan , 2015,2020 # Ali Vakilzade , 2015 +# Aly Ahmady , 2022 # Amir Ajorloo , 2020 # Arash Fazeli , 2012 # Farshad Asadpour, 2021 @@ -18,9 +19,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-10-23 18:10+0000\n" -"Last-Translator: Farshad Asadpour\n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-05-25 07:05+0000\n" +"Last-Translator: Aly Ahmady , 2022\n" "Language-Team: Persian (http://www.transifex.com/django/django/language/" "fa/)\n" "MIME-Version: 1.0\n" @@ -159,7 +160,7 @@ msgstr "شئ LogEntry" #, python-brace-format msgid "Added {name} “{object}”." -msgstr "اضافه شد {name} \"{object}\"." +msgstr "{name} \"{object}\" اضافه شد." msgid "Added." msgstr "اضافه شد" @@ -187,7 +188,7 @@ msgstr "هیچ" msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." msgstr "" -"برای انتخاب بیش از یکی \"Control\"، یا \"Command\" روی Mac، را پایین نگه " +"برای انتخاب بیش از یکی، کلید \"Control\"، یا \"Command\" روی Mac، را نگه " "دارید." #, python-brace-format @@ -282,8 +283,9 @@ msgstr "0 از %(cnt)s انتخاب شده‌اند" msgid "Change history: %s" msgstr "تاریخچهٔ تغییر: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -552,6 +554,12 @@ msgstr "کاربر" msgid "Action" msgstr "عمل" +msgid "entry" +msgstr "ورودی" + +msgid "entries" +msgstr "ورودی ها" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -608,6 +616,10 @@ msgstr "افزدون %(model)s دیگر" msgid "Delete selected %(model)s" msgstr "حذف کردن %(model)s انتخاب شده" +#, python-format +msgid "View selected %(model)s" +msgstr "نمایش %(model)sهای انتخاب شده" + msgid "Thanks for spending some quality time with the web site today." msgstr "" "از شما ممنون هستیم که زمان با ارزش خود را برای این تارنما امروز صرف کرده اید" diff --git a/django/contrib/admin/locale/fi/LC_MESSAGES/django.mo b/django/contrib/admin/locale/fi/LC_MESSAGES/django.mo index 3eaee9bad199f..c7826fe923d53 100644 Binary files a/django/contrib/admin/locale/fi/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/fi/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/fi/LC_MESSAGES/django.po b/django/contrib/admin/locale/fi/LC_MESSAGES/django.po index f6e7a659b2441..31e871ae77bdf 100644 --- a/django/contrib/admin/locale/fi/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/fi/LC_MESSAGES/django.po @@ -1,19 +1,19 @@ # This file is distributed under the same license as the Django package. # # Translators: -# Aarni Koskela, 2015,2017,2020-2021 +# Aarni Koskela, 2015,2017,2020-2022 # Antti Kaihola , 2011 # Jannis Leidel , 2011 # Jiri Grönroos , 2021 -# Klaus Dahlén , 2012 +# Klaus Dahlén, 2012 # Nikolay Korotkiy , 2018 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-22 15:46+0000\n" -"Last-Translator: Jiri Grönroos \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Aarni Koskela\n" "Language-Team: Finnish (http://www.transifex.com/django/django/language/" "fi/)\n" "MIME-Version: 1.0\n" @@ -267,8 +267,9 @@ msgstr "0 valittuna %(cnt)s mahdollisesta" msgid "Change history: %s" msgstr "Muokkaushistoria: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -538,6 +539,12 @@ msgstr "Käyttäjä" msgid "Action" msgstr "Tapahtuma" +msgid "entry" +msgstr "merkintä" + +msgid "entries" +msgstr "merkinnät" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -594,6 +601,10 @@ msgstr "Lisää toinen %(model)s" msgid "Delete selected %(model)s" msgstr "Poista valitut %(model)s" +#, python-format +msgid "View selected %(model)s" +msgstr "Näytä valitut %(model)s" + msgid "Thanks for spending some quality time with the web site today." msgstr "Kiitos sivuillamme viettämästäsi ajasta." diff --git a/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.mo index 8d6a1db12971c..ff01527c4d07d 100644 Binary files a/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.po index 15fddfe2ab1d8..1a2e54e26b823 100644 --- a/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.po @@ -1,7 +1,7 @@ # This file is distributed under the same license as the Django package. # # Translators: -# Aarni Koskela, 2015,2017,2020-2021 +# Aarni Koskela, 2015,2017,2020-2022 # Antti Kaihola , 2011 # Jannis Leidel , 2011 # Jiri Grönroos , 2021 @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-11-22 15:49+0000\n" -"Last-Translator: Jiri Grönroos \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" +"Last-Translator: Aarni Koskela\n" "Language-Team: Finnish (http://www.transifex.com/django/django/language/" "fi/)\n" "MIME-Version: 1.0\n" @@ -263,6 +263,12 @@ msgctxt "one letter Saturday" msgid "S" msgstr "La" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" +"Olet jo lähettänyt tämän lomakkeen. Haluatko varmasti lähettää sen uudelleen?" + msgid "Show" msgstr "Näytä" diff --git a/django/contrib/admin/locale/fr/LC_MESSAGES/django.mo b/django/contrib/admin/locale/fr/LC_MESSAGES/django.mo index c701c72e76ab9..d64682036ae2c 100644 Binary files a/django/contrib/admin/locale/fr/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/fr/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/fr/LC_MESSAGES/django.po b/django/contrib/admin/locale/fr/LC_MESSAGES/django.po index 22347107f29f4..6da0efc8bc717 100644 --- a/django/contrib/admin/locale/fr/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/fr/LC_MESSAGES/django.po @@ -2,15 +2,15 @@ # # Translators: # Bruno Brouard , 2021 -# Claude Paroz , 2013-2021 +# Claude Paroz , 2013-2022 # Claude Paroz , 2011,2013 # Jannis Leidel , 2011 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-09 07:39+0000\n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" "Last-Translator: Claude Paroz \n" "Language-Team: French (http://www.transifex.com/django/django/language/fr/)\n" "MIME-Version: 1.0\n" @@ -275,8 +275,9 @@ msgstr "0 sur %(cnt)s sélectionné" msgid "Change history: %s" msgstr "Historique des changements : %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -552,6 +553,12 @@ msgstr "Utilisateur" msgid "Action" msgstr "Action" +msgid "entry" +msgstr "entrée" + +msgid "entries" +msgstr "entrées" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -608,6 +615,10 @@ msgstr "Ajouter un autre objet %(model)s" msgid "Delete selected %(model)s" msgstr "Supprimer l’objet %(model)s sélectionné" +#, python-format +msgid "View selected %(model)s" +msgstr "Afficher l'objet %(model)s sélectionné" + msgid "Thanks for spending some quality time with the web site today." msgstr "Merci pour le temps que vous avez accordé à ce site aujourd’hui." diff --git a/django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.mo index 2e4d5c35ffc3f..75da832b3306b 100644 Binary files a/django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.po index 87491cec8d64f..811ed530d69c5 100644 --- a/django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.po @@ -1,15 +1,15 @@ # This file is distributed under the same license as the Django package. # # Translators: -# Claude Paroz , 2014-2017,2020-2021 +# Claude Paroz , 2014-2017,2020-2022 # Claude Paroz , 2011-2012 # Jannis Leidel , 2011 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-01-15 14:34+0000\n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" "Last-Translator: Claude Paroz \n" "Language-Team: French (http://www.transifex.com/django/django/language/fr/)\n" "MIME-Version: 1.0\n" @@ -261,6 +261,13 @@ msgctxt "one letter Saturday" msgid "S" msgstr "S" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" +"Vous avez déjà envoyé ce formulaire. Voulez-vous vraiment l'envoyer une " +"nouvelle fois ?" + msgid "Show" msgstr "Afficher" diff --git a/django/contrib/admin/locale/hi/LC_MESSAGES/django.mo b/django/contrib/admin/locale/hi/LC_MESSAGES/django.mo index b8c97bb4df2e4..a2c4c7d877dc3 100644 Binary files a/django/contrib/admin/locale/hi/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/hi/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/hi/LC_MESSAGES/django.po b/django/contrib/admin/locale/hi/LC_MESSAGES/django.po index 8ed2fb96b8ab7..51935397b8b6c 100644 --- a/django/contrib/admin/locale/hi/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/hi/LC_MESSAGES/django.po @@ -6,13 +6,14 @@ # Jannis Leidel , 2011 # Pratik , 2013 # Sandeep Satavlekar , 2011 +# Vaarun Sinha, 2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-19 16:40+0000\n" -"Last-Translator: Jannis Leidel \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Vaarun Sinha\n" "Language-Team: Hindi (http://www.transifex.com/django/django/language/hi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,9 +21,13 @@ msgstr "" "Language: hi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "चुने हुए %(verbose_name_plural)s हटा दीजिये " + #, python-format msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s सफलतापूर्वक हटा दिया गया है| |" +msgstr "%(count)d %(items)s सफलतापूर्वक हटा दिया गया है |" #, python-format msgid "Cannot delete %(name)s" @@ -31,10 +36,6 @@ msgstr "%(name)s नहीं हटा सकते" msgid "Are you sure?" msgstr "क्या आप निश्चित हैं?" -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "चुने हुए %(verbose_name_plural)s हटा दीजिये " - msgid "Administration" msgstr "" @@ -71,6 +72,12 @@ msgstr "" msgid "Has date" msgstr "" +msgid "Empty" +msgstr "" + +msgid "Not empty" +msgstr "" + #, python-format msgid "" "Please enter the correct %(username)s and password for a staff account. Note " @@ -89,8 +96,17 @@ msgstr "एक और %(verbose_name)s जोड़ें " msgid "Remove" msgstr "निकालें" +msgid "Addition" +msgstr "" + +msgid "Change" +msgstr "बदलें" + +msgid "Deletion" +msgstr "" + msgid "action time" -msgstr "कार्य समय" +msgstr "कार्य के लिए समय" msgid "user" msgstr "" @@ -99,12 +115,12 @@ msgid "content type" msgstr "" msgid "object id" -msgstr "वस्तु आई डी " +msgstr "वस्तु की आईडी " #. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) +#. (https://docs.python.org/library/functions.html#repr) msgid "object repr" -msgstr "वस्तु प्रतिनिधित्व" +msgstr "वस्तु का निरूपण" msgid "action flag" msgstr "कार्य ध्वज" @@ -119,22 +135,22 @@ msgid "log entries" msgstr "लॉग प्रविष्टियाँ" #, python-format -msgid "Added \"%(object)s\"." -msgstr "\"%(object)s\" को जोड़ा गया." +msgid "Added “%(object)s”." +msgstr "" #, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "परिवर्तित \"%(object)s\" - %(changes)s " +msgid "Changed “%(object)s” — %(changes)s" +msgstr "" #, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "\"%(object)s\" को नष्ट कर दिया है." +msgid "Deleted “%(object)s.”" +msgstr "" msgid "LogEntry Object" msgstr "LogEntry ऑब्जेक्ट" #, python-brace-format -msgid "Added {name} \"{object}\"." +msgid "Added {name} “{object}”." msgstr "" msgid "Added." @@ -144,7 +160,7 @@ msgid "and" msgstr "और" #, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." +msgid "Changed {fields} for {name} “{object}”." msgstr "" #, python-brace-format @@ -152,7 +168,7 @@ msgid "Changed {fields}." msgstr "" #, python-brace-format -msgid "Deleted {name} \"{object}\"." +msgid "Deleted {name} “{object}”." msgstr "" msgid "No fields changed." @@ -161,38 +177,38 @@ msgstr "कोई क्षेत्र नहीं बदला" msgid "None" msgstr "कोई नहीं" -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." msgstr "" #, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." +msgid "The {name} “{obj}” was added successfully." +msgstr "" + +msgid "You may edit it again below." msgstr "" #, python-brace-format msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." +"The {name} “{obj}” was added successfully. You may add another {name} below." msgstr "" #, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." +msgid "" +"The {name} “{obj}” was changed successfully. You may edit it again below." msgstr "" #, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." +msgid "The {name} “{obj}” was added successfully. You may edit it again below." msgstr "" #, python-brace-format msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " +"The {name} “{obj}” was changed successfully. You may add another {name} " "below." msgstr "" #, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." +msgid "The {name} “{obj}” was changed successfully." msgstr "" msgid "" @@ -204,11 +220,11 @@ msgid "No action selected." msgstr "कोई कार्रवाई नहीं चुनी है |" #, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" को कामयाबी से निकाला गया है" +msgid "The %(name)s “%(obj)s” was deleted successfully." +msgstr "" #, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" +msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" msgstr "" #, python-format @@ -219,6 +235,10 @@ msgstr "%s बढाएं" msgid "Change %s" msgstr "%s बदलो" +#, python-format +msgid "View %s" +msgstr "" + msgid "Database error" msgstr "डेटाबेस त्रुटि" @@ -242,8 +262,9 @@ msgstr "%(cnt)s में से 0 चुने" msgid "Change history: %s" msgstr "इतिहास बदलो: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -273,8 +294,8 @@ msgstr "" msgid "Page not found" msgstr "पृष्ठ लापता" -msgid "We're sorry, but the requested page could not be found." -msgstr "क्षमा कीजिए पर निवेदित पृष्ठ लापता है ।" +msgid "We’re sorry, but the requested page could not be found." +msgstr "" msgid "Home" msgstr "गृह" @@ -289,11 +310,9 @@ msgid "Server Error (500)" msgstr "सर्वर त्रुटि (500)" msgid "" -"There's been an error. It's been reported to the site administrators via " +"There’s been an error. It’s been reported to the site administrators via " "email and should be fixed shortly. Thanks for your patience." msgstr "" -"एक त्रुटि मिली है। इसकी जानकारी स्थल के संचालकों को डाक द्वारा दे दी गई है, और यह जल्द " -"ठीक हो जानी चाहिए। धीरज रखने के लिए शुक्रिया।" msgid "Run the selected action" msgstr "चयनित कार्रवाई चलाइये" @@ -311,21 +330,32 @@ msgstr "तमाम %(total_count)s %(module_name)s चुनें" msgid "Clear selection" msgstr "चयन खालिज किया जाये " +#, python-format +msgid "Models in the %(name)s application" +msgstr "%(name)s अनुप्रयोग के प्रतिरूप" + +msgid "Add" +msgstr "बढाएं" + +msgid "View" +msgstr "" + +msgid "You don’t have permission to view or edit anything." +msgstr "" + msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " +"First, enter a username and password. Then, you’ll be able to edit more user " "options." msgstr "" -"पहले प्रदवोक्ता नाम और कूटशब्द दर्ज करें । उसके पश्चात ही आप अधिक प्रवोक्ता विकल्प बदल " -"सकते हैं ।" msgid "Enter a username and password." msgstr "उपयोगकर्ता का नाम और कूटशब्द दर्ज करें." msgid "Change password" -msgstr "कूटशब्द बदलें" +msgstr "पासवर्ड बदलें" msgid "Please correct the error below." -msgstr "कृपया नीचे पायी गयी गलतियाँ ठीक करें ।" +msgstr "" msgid "Please correct the errors below." msgstr "" @@ -359,6 +389,9 @@ msgstr "साइट पे देखें" msgid "Filter" msgstr "छन्नी" +msgid "Clear all filters" +msgstr "" + msgid "Remove from sorting" msgstr "श्रेणीकरण से हटाये " @@ -400,8 +433,8 @@ msgstr "" msgid "Objects" msgstr "" -msgid "Yes, I'm sure" -msgstr "हाँ, मैंने पक्का तय किया हैं " +msgid "Yes, I’m sure" +msgstr "" msgid "No, take me back" msgstr "" @@ -434,9 +467,6 @@ msgstr "" "क्या आप ने पक्का तय किया हैं की चयनित %(objects_name)s को नष्ट किया जाये ? " "निम्नलिखित सभी वस्तुएं और उनसे सम्बंधित वस्तुए भी नष्ट की जाएगी:" -msgid "Change" -msgstr "बदलें" - msgid "Delete?" msgstr "मिटाएँ ?" @@ -447,16 +477,6 @@ msgstr "%(filter_title)s द्वारा" msgid "Summary" msgstr "" -#, python-format -msgid "Models in the %(name)s application" -msgstr "%(name)s अनुप्रयोग के प्रतिरूप" - -msgid "Add" -msgstr "बढाएं" - -msgid "You don't have permission to edit anything." -msgstr "आपके पास कुछ भी संपादन करने के लिये अनुमति नहीं है ।" - msgid "Recent actions" msgstr "" @@ -470,12 +490,10 @@ msgid "Unknown content" msgstr "अज्ञात सामग्री" msgid "" -"Something's wrong with your database installation. Make sure the appropriate " +"Something’s wrong with your database installation. Make sure the appropriate " "database tables have been created, and make sure the database is readable by " "the appropriate user." msgstr "" -"अपने डेटाबेस स्थापना के साथ कुछ गलत तो है | सुनिश्चित करें कि उचित डेटाबेस तालिका बनायीं " -"गयी है, और सुनिश्चित करें कि डेटाबेस उपयुक्त उपयोक्ता के द्वारा पठनीय है |" #, python-format msgid "" @@ -486,6 +504,15 @@ msgstr "" msgid "Forgotten your password or username?" msgstr "अपना पासवर्ड या उपयोगकर्ता नाम भूल गये हैं?" +msgid "Toggle navigation" +msgstr "" + +msgid "Start typing to filter…" +msgstr "" + +msgid "Filter navigation items" +msgstr "" + msgid "Date/time" msgstr "तिथि / समय" @@ -495,12 +522,16 @@ msgstr "उपभोक्ता" msgid "Action" msgstr "कार्य" +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + msgid "" -"This object doesn't have a change history. It probably wasn't added via this " +"This object doesn’t have a change history. It probably wasn’t added via this " "admin site." msgstr "" -"इस वस्तु का बदलाव इतिहास नहीं है. शायद वह इस साइट व्यवस्थापक के माध्यम से नहीं जोड़ा " -"गया है." msgid "Show all" msgstr "सभी दिखाएँ" @@ -508,19 +539,7 @@ msgstr "सभी दिखाएँ" msgid "Save" msgstr "सुरक्षित कीजिये" -msgid "Popup closing..." -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" +msgid "Popup closing…" msgstr "" msgid "Search" @@ -545,8 +564,30 @@ msgstr "सहेजें और एक और जोडें" msgid "Save and continue editing" msgstr "सहेजें और संपादन करें" -msgid "Thanks for spending some quality time with the Web site today." -msgstr "आज हमारे वेब साइट पर आने के लिए धन्यवाद ।" +msgid "Save and view" +msgstr "" + +msgid "Close" +msgstr "" + +#, python-format +msgid "Change selected %(model)s" +msgstr "" + +#, python-format +msgid "Add another %(model)s" +msgstr "" + +#, python-format +msgid "Delete selected %(model)s" +msgstr "" + +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" msgid "Log in again" msgstr "फिर से लॉगिन कीजिए" @@ -558,11 +599,9 @@ msgid "Your password was changed." msgstr "आपके कूटशब्द को बदला गया है" msgid "" -"Please enter your old password, for security's sake, and then enter your new " +"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 "" -"सुरक्षा कारणों के लिए कृपया पुराना कूटशब्द दर्ज करें । उसके पश्चात नए कूटशब्द को दो बार दर्ज " -"करें ताकि हम उसे सत्यापित कर सकें ।" msgid "Change my password" msgstr "कूटशब्द बदलें" @@ -595,16 +634,14 @@ msgstr "" "पुनस्थाप की आवेदन करें ।" msgid "" -"We've emailed you instructions for setting your password, if an account " +"We’ve emailed you instructions for setting your password, if an account " "exists with the email you entered. You should receive them shortly." msgstr "" msgid "" -"If you don't receive an email, please make sure you've entered the address " +"If you don’t receive an email, please make sure you’ve entered the address " "you registered with, and check your spam folder." msgstr "" -"अगर आपको कोई ईमेल प्राप्त नई होता है,यह ध्यान रखे की आपने सही पता रजिस्ट्रीकृत किया है " -"और आपने स्पॅम फोल्डर को जाचे|" #, python-format msgid "" @@ -617,8 +654,8 @@ msgstr "" msgid "Please go to the following page and choose a new password:" msgstr "कृपया निम्नलिखित पृष्ठ पर नया कूटशब्द चुनिये :" -msgid "Your username, in case you've forgotten:" -msgstr "आपका प्रवोक्ता नाम, यदि भूल गये हों :" +msgid "Your username, in case you’ve forgotten:" +msgstr "" msgid "Thanks for using our site!" msgstr "हमारे साइट को उपयोग करने के लिए धन्यवाद ।" @@ -628,10 +665,9 @@ msgid "The %(site_name)s team" msgstr "%(site_name)s दल" msgid "" -"Forgotten your password? Enter your email address below, and we'll email " +"Forgotten your password? Enter your email address below, and we’ll email " "instructions for setting a new one." msgstr "" -"कूटशब्द भूल गए? नीचे अपना डाक पता भरें, वहाँ पर हम आपको नया कूटशब्द रखने के निर्देश भेजेंगे।" msgid "Email address:" msgstr "डाक पता -" @@ -650,6 +686,10 @@ msgstr "%s चुनें" msgid "Select %s to change" msgstr "%s के बदली के लिए चयन करें" +#, python-format +msgid "Select %s to view" +msgstr "" + msgid "Date:" msgstr "तिथि:" diff --git a/django/contrib/admin/locale/id/LC_MESSAGES/django.mo b/django/contrib/admin/locale/id/LC_MESSAGES/django.mo index 8f97aeba595bb..baef24f17c10a 100644 Binary files a/django/contrib/admin/locale/id/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/id/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/id/LC_MESSAGES/django.po b/django/contrib/admin/locale/id/LC_MESSAGES/django.po index 244df7740096d..c3a984bd51ecb 100644 --- a/django/contrib/admin/locale/id/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/id/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ # # Translators: # Claude Paroz , 2014 -# Fery Setiawan , 2015-2019,2021 +# Fery Setiawan , 2015-2019,2021-2022 # Jannis Leidel , 2011 # M Asep Indrayana , 2015 # oon arfiandwi , 2016,2020 @@ -14,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-10-06 09:12+0000\n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" "Last-Translator: Fery Setiawan \n" "Language-Team: Indonesian (http://www.transifex.com/django/django/language/" "id/)\n" @@ -271,8 +271,9 @@ msgstr "0 dari %(cnt)s dipilih" msgid "Change history: %s" msgstr "Ubah riwayat: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -542,6 +543,12 @@ msgstr "Pengguna" msgid "Action" msgstr "Aksi" +msgid "entry" +msgstr "masukan" + +msgid "entries" +msgstr "masukan" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -597,6 +604,10 @@ msgstr "Tambahkan %(model)s yang lain" msgid "Delete selected %(model)s" msgstr "Hapus %(model)s yang dipilih" +#, python-format +msgid "View selected %(model)s" +msgstr "Menampilkan %(model)s terpilih" + msgid "Thanks for spending some quality time with the web site today." msgstr "" "Terima kasih untuk meluangkan waktu berkualitas dengan jaringan situs hari " diff --git a/django/contrib/admin/locale/id/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/id/LC_MESSAGES/djangojs.mo index a6cfffc10370c..cf46777742020 100644 Binary files a/django/contrib/admin/locale/id/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/id/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/id/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/id/LC_MESSAGES/djangojs.po index d59dcd489e14f..8bd2c6b849209 100644 --- a/django/contrib/admin/locale/id/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/id/LC_MESSAGES/djangojs.po @@ -1,7 +1,7 @@ # This file is distributed under the same license as the Django package. # # Translators: -# Fery Setiawan , 2015-2016,2021 +# Fery Setiawan , 2015-2016,2021-2022 # Jannis Leidel , 2011 # oon arfiandwi , 2020 # rodin , 2011-2012 @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-09-14 00:31+0000\n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" "Last-Translator: Fery Setiawan \n" "Language-Team: Indonesian (http://www.transifex.com/django/django/language/" "id/)\n" @@ -260,6 +260,13 @@ msgctxt "one letter Saturday" msgid "S" msgstr "S" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" +"Anda telah mengajukan formulir ini. Apakah anda yakin ingin mengajukannya " +"kembali?" + msgid "Show" msgstr "Bentangkan" diff --git a/django/contrib/admin/locale/it/LC_MESSAGES/django.mo b/django/contrib/admin/locale/it/LC_MESSAGES/django.mo index 45e90398094b5..693f8423178e0 100644 Binary files a/django/contrib/admin/locale/it/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/it/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/it/LC_MESSAGES/django.po b/django/contrib/admin/locale/it/LC_MESSAGES/django.po index e3807668a634f..f08f4de2ff913 100644 --- a/django/contrib/admin/locale/it/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/it/LC_MESSAGES/django.po @@ -12,15 +12,16 @@ # Mirco Grillo , 2018,2020 # Nicola Larosa , 2013 # palmux , 2014-2015,2021 +# Paolo Melchiorre , 2022 # Mattia Procopio , 2015 # Stefano Brentegani , 2015 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-12 11:54+0000\n" -"Last-Translator: Davide Targa \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Paolo Melchiorre \n" "Language-Team: Italian (http://www.transifex.com/django/django/language/" "it/)\n" "MIME-Version: 1.0\n" @@ -282,8 +283,9 @@ msgstr "0 di %(cnt)s selezionati" msgid "Change history: %s" msgstr "Tracciato delle modifiche: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -556,6 +558,12 @@ msgstr "Utente" msgid "Action" msgstr "Azione" +msgid "entry" +msgstr "voce" + +msgid "entries" +msgstr "voci" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -612,6 +620,10 @@ msgstr "Aggiungi un altro %(model)s" msgid "Delete selected %(model)s" msgstr "Elimina la selezione %(model)s" +#, python-format +msgid "View selected %(model)s" +msgstr "Visualizza il %(model)s selezionato" + msgid "Thanks for spending some quality time with the web site today." msgstr "Grazie per avere trascorso del tempo di qualità sul sito oggi." diff --git a/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.mo index dfa33eb7b99f9..2d4ac5e5b626e 100644 Binary files a/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.po index 1ebba618bcb21..062ccabdf5a84 100644 --- a/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.po @@ -8,14 +8,15 @@ # Mirco Grillo , 2020 # Nicola Larosa , 2011-2012 # palmux , 2015,2021 +# Paolo Melchiorre , 2022 # Stefano Brentegani , 2015 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-01-15 15:58+0000\n" -"Last-Translator: palmux \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" +"Last-Translator: Paolo Melchiorre \n" "Language-Team: Italian (http://www.transifex.com/django/django/language/" "it/)\n" "MIME-Version: 1.0\n" @@ -265,6 +266,11 @@ msgctxt "one letter Saturday" msgid "S" msgstr "S" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "Hai già inviato questo modulo. Sei sicuro di volerlo inviare di nuovo?" + msgid "Show" msgstr "Mostra" diff --git a/django/contrib/admin/locale/ja/LC_MESSAGES/django.mo b/django/contrib/admin/locale/ja/LC_MESSAGES/django.mo index b769e84a73dca..56707d83a16be 100644 Binary files a/django/contrib/admin/locale/ja/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/ja/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/ja/LC_MESSAGES/django.po b/django/contrib/admin/locale/ja/LC_MESSAGES/django.po index 5fbaba94cc1e5..be55bf0aac56b 100644 --- a/django/contrib/admin/locale/ja/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/ja/LC_MESSAGES/django.po @@ -4,6 +4,7 @@ # akiyoko , 2020 # Claude Paroz , 2016 # Goto Hayato , 2019 +# Hiroki Sawano, 2022 # Jannis Leidel , 2011 # Shinichi Katsumata , 2019 # Shinya Okano , 2012-2018,2021 @@ -15,9 +16,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-10-13 11:41+0000\n" -"Last-Translator: Shinya Okano \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-05-25 07:05+0000\n" +"Last-Translator: Hiroki Sawano, 2022\n" "Language-Team: Japanese (http://www.transifex.com/django/django/language/" "ja/)\n" "MIME-Version: 1.0\n" @@ -269,8 +270,9 @@ msgstr "%(cnt)s個の内ひとつも選択されていません" msgid "Change history: %s" msgstr "変更履歴: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -540,6 +542,12 @@ msgstr "ユーザー" msgid "Action" msgstr "操作" +msgid "entry" +msgstr "エントリ" + +msgid "entries" +msgstr "エントリ" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -595,6 +603,10 @@ msgstr "%(model)s の追加" msgid "Delete selected %(model)s" msgstr "選択された %(model)s を削除" +#, python-format +msgid "View selected %(model)s" +msgstr "" + msgid "Thanks for spending some quality time with the web site today." msgstr "ご利用ありがとうございました。" diff --git a/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.mo index 988728ce948e9..fa49be6dccb87 100644 Binary files a/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.po index 90363b7a2cf94..0a651bc57f79b 100644 --- a/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.po @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: kn\n" -"Plural-Forms: nplurals=1; plural=0;\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" #, javascript-format msgid "Available %s" @@ -68,6 +68,7 @@ msgstr "" msgid "%(sel)s of %(cnt)s selected" msgid_plural "%(sel)s of %(cnt)s selected" msgstr[0] "" +msgstr[1] "" msgid "" "You have unsaved changes on individual editable fields. If you run an " @@ -77,29 +78,43 @@ msgstr "" "ನಾಶವಾಗುತ್ತವೆ" 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 " +"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 "" 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 " +"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 " "button." msgstr "" +msgid "Now" +msgstr "ಈಗ" + +msgid "Midnight" +msgstr "ಮಧ್ಯರಾತ್ರಿ" + +msgid "6 a.m." +msgstr "ಬೆಳಗಿನ ೬ ಗಂಟೆ " + +msgid "Noon" +msgstr "ಮಧ್ಯಾಹ್ನ" + +msgid "6 p.m." +msgstr "" + #, javascript-format msgid "Note: You are %s hour ahead of server time." msgid_plural "Note: You are %s hours ahead of server time." msgstr[0] "" +msgstr[1] "" #, javascript-format msgid "Note: You are %s hour behind server time." msgid_plural "Note: You are %s hours behind server time." msgstr[0] "" - -msgid "Now" -msgstr "ಈಗ" +msgstr[1] "" msgid "Choose a Time" msgstr "" @@ -107,18 +122,6 @@ msgstr "" msgid "Choose a time" msgstr "ಸಮಯವೊಂದನ್ನು ಆರಿಸಿ" -msgid "Midnight" -msgstr "ಮಧ್ಯರಾತ್ರಿ" - -msgid "6 a.m." -msgstr "ಬೆಳಗಿನ ೬ ಗಂಟೆ " - -msgid "Noon" -msgstr "ಮಧ್ಯಾಹ್ನ" - -msgid "6 p.m." -msgstr "" - msgid "Cancel" msgstr "ರದ್ದುಗೊಳಿಸಿ" @@ -170,6 +173,54 @@ msgstr "" msgid "December" msgstr "" +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "" + msgctxt "one letter Sunday" msgid "S" msgstr "" @@ -198,6 +249,11 @@ msgctxt "one letter Saturday" msgid "S" msgstr "" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" + msgid "Show" msgstr "ಪ್ರದರ್ಶನ" diff --git a/django/contrib/admin/locale/ko/LC_MESSAGES/django.mo b/django/contrib/admin/locale/ko/LC_MESSAGES/django.mo index 61fe9bb8097bc..d4c369361ce45 100644 Binary files a/django/contrib/admin/locale/ko/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/ko/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/ko/LC_MESSAGES/django.po b/django/contrib/admin/locale/ko/LC_MESSAGES/django.po index e41f87806916a..fc91cb00aff08 100644 --- a/django/contrib/admin/locale/ko/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/ko/LC_MESSAGES/django.po @@ -16,14 +16,16 @@ # Seho Noh , 2018 # Seacbyul Lee , 2017 # Taesik Yoon , 2015 +# 정훈 이, 2021 +# 박태진, 2021 # Yang Chan Woo , 2019 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-04 03:40+0000\n" -"Last-Translator: 코딩 영\n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2021-12-25 07:05+0000\n" +"Last-Translator: 정훈 이\n" "Language-Team: Korean (http://www.transifex.com/django/django/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -284,8 +286,9 @@ msgstr "%(cnt)s 중 아무것도 선택되지 않았습니다." msgid "Change history: %s" msgstr "변경 히스토리: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -541,10 +544,10 @@ msgid "Toggle navigation" msgstr "토글 메뉴" msgid "Start typing to filter…" -msgstr "" +msgstr "필터에 타이핑 시작..." msgid "Filter navigation items" -msgstr "" +msgstr "탐색 항목 필터링" msgid "Date/time" msgstr "날짜/시간" @@ -555,6 +558,12 @@ msgstr "사용자" msgid "Action" msgstr "액션" +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -610,6 +619,10 @@ msgstr "%(model)s 추가" msgid "Delete selected %(model)s" msgstr "선택된 %(model)s 제거" +#, python-format +msgid "View selected %(model)s" +msgstr "" + msgid "Thanks for spending some quality time with the web site today." msgstr "사이트를 이용해 주셔서 고맙습니다." diff --git a/django/contrib/admin/locale/lv/LC_MESSAGES/django.mo b/django/contrib/admin/locale/lv/LC_MESSAGES/django.mo index f2a081acae3be..5ff93f696617a 100644 Binary files a/django/contrib/admin/locale/lv/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/lv/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/lv/LC_MESSAGES/django.po b/django/contrib/admin/locale/lv/LC_MESSAGES/django.po index 73a1518195abb..2eb38b720b4b1 100644 --- a/django/contrib/admin/locale/lv/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/lv/LC_MESSAGES/django.po @@ -2,19 +2,19 @@ # # Translators: # edgars , 2011 -# NullIsNot0 , 2017 -# NullIsNot0 , 2018 +# Edgars Voroboks , 2017,2022 +# Edgars Voroboks , 2018 # Jannis Leidel , 2011 # Māris Nartišs , 2016 -# NullIsNot0 , 2019-2021 +# Edgars Voroboks , 2019-2021 # peterisb , 2016 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-10-06 05:10+0000\n" -"Last-Translator: NullIsNot0 \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Edgars Voroboks \n" "Language-Team: Latvian (http://www.transifex.com/django/django/language/" "lv/)\n" "MIME-Version: 1.0\n" @@ -269,8 +269,9 @@ msgstr "0 no %(cnt)s izvēlēti" msgid "Change history: %s" msgstr "Izmaiņu vēsture: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -538,6 +539,12 @@ msgstr "Lietotājs" msgid "Action" msgstr "Darbība" +msgid "entry" +msgstr "ieraksts" + +msgid "entries" +msgstr "ieraksti" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -595,6 +602,10 @@ msgstr "Pievienot citu %(model)s" msgid "Delete selected %(model)s" msgstr "Dzēst izvēlēto %(model)s" +#, python-format +msgid "View selected %(model)s" +msgstr "Apskatīt atzīmētos %(model)s" + msgid "Thanks for spending some quality time with the web site today." msgstr "Paldies, ka šodien vietnei veltījāt kvalitatīvu laiku." diff --git a/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.mo index 6fa404d64a9a5..45d28b5efb999 100644 Binary files a/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.po index eea2c772e52e1..660d4290928ea 100644 --- a/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.po @@ -1,17 +1,17 @@ # This file is distributed under the same license as the Django package. # # Translators: -# NullIsNot0 , 2017 +# Edgars Voroboks , 2017,2022 # Jannis Leidel , 2011 -# NullIsNot0 , 2020-2021 +# Edgars Voroboks , 2020-2021 # peterisb , 2016 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-01-25 22:47+0000\n" -"Last-Translator: NullIsNot0 \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" +"Last-Translator: Edgars Voroboks \n" "Language-Team: Latvian (http://www.transifex.com/django/django/language/" "lv/)\n" "MIME-Version: 1.0\n" @@ -266,6 +266,11 @@ msgctxt "one letter Saturday" msgid "S" msgstr "Se" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "Jūs jau iesniedzāt šo formu. Vai vēlaties to iesniegt vēlreiz?" + msgid "Show" msgstr "Parādīt" diff --git a/django/contrib/admin/locale/mk/LC_MESSAGES/django.mo b/django/contrib/admin/locale/mk/LC_MESSAGES/django.mo index 0acf0fec229b7..9f4d6e436a2cc 100644 Binary files a/django/contrib/admin/locale/mk/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/mk/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/mk/LC_MESSAGES/django.po b/django/contrib/admin/locale/mk/LC_MESSAGES/django.po index 861cde4fb07df..676173ca2c43b 100644 --- a/django/contrib/admin/locale/mk/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/mk/LC_MESSAGES/django.po @@ -4,6 +4,7 @@ # Dimce Grozdanoski , 2021 # dekomote , 2015 # Jannis Leidel , 2011 +# Martino Nikolovski, 2022 # Vasil Vangelovski , 2016-2017,2019,2021 # Vasil Vangelovski , 2013-2015 # Vasil Vangelovski , 2011-2013 @@ -11,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-09-22 07:21+0000\n" -"Last-Translator: Transifex Bot <>\n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-05-25 07:05+0000\n" +"Last-Translator: Martino Nikolovski, 2022\n" "Language-Team: Macedonian (http://www.transifex.com/django/django/language/" "mk/)\n" "MIME-Version: 1.0\n" @@ -265,8 +266,9 @@ msgstr "0 од %(cnt)s избрани" msgid "Change history: %s" msgstr "Историја на измени: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -299,7 +301,7 @@ msgid "Page not found" msgstr "Страницата не е најдена" msgid "We’re sorry, but the requested page could not be found." -msgstr "" +msgstr "Се извинуваме, страница која ја побаравте не е пронајдена" msgid "Home" msgstr "Дома" @@ -317,6 +319,8 @@ msgid "" "There’s been an error. It’s been reported to the site administrators via " "email and should be fixed shortly. Thanks for your patience." msgstr "" +"Наидовте на грешка. Известени се администраторите на страницата преку имејл " +"и би требало наскоро да биде поправена. Ви благодариме на трпението." msgid "Run the selected action" msgstr "Изврши ја избраната акција" @@ -345,12 +349,14 @@ msgid "View" msgstr "Погледни" msgid "You don’t have permission to view or edit anything." -msgstr "" +msgstr "Немате дозвола да прегледате или промените ништо" msgid "" "First, enter a username and password. Then, you’ll be able to edit more user " "options." msgstr "" +"Прво внесете корисничко име и лозинка па потоа ќе можете да уредувате повеќе " +"опции за корисникот" msgid "Enter a username and password." msgstr "Внесете корисничко име и лозинка." @@ -394,7 +400,7 @@ msgid "Filter" msgstr "Филтер" msgid "Clear all filters" -msgstr "" +msgstr "Ресетирај ги сите филтри" msgid "Remove from sorting" msgstr "Отстрани од сортирање" @@ -439,7 +445,7 @@ msgid "Objects" msgstr "Предмети" msgid "Yes, I’m sure" -msgstr "" +msgstr "Да, сигурен сум" msgid "No, take me back" msgstr "Не, врати ме назад" @@ -499,6 +505,9 @@ msgid "" "database tables have been created, and make sure the database is readable by " "the appropriate user." msgstr "" +"Нешто не е во ред со инсталацијата на базата на податоци. Уверете се дека " +"соодветните табели се создадени, и дека базата на податоци е пристапна до " +"соодветниот корисник." #, python-format msgid "" @@ -515,7 +524,7 @@ msgid "Toggle navigation" msgstr "" msgid "Start typing to filter…" -msgstr "" +msgstr "Започнете со пишување за да филтрирате..." msgid "Filter navigation items" msgstr "" @@ -529,6 +538,12 @@ msgstr "Корисник" msgid "Action" msgstr "Акција" +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -583,6 +598,10 @@ msgstr "Додади уште %(model)s" msgid "Delete selected %(model)s" msgstr "Избриши ги избраните %(model)s" +#, python-format +msgid "View selected %(model)s" +msgstr "" + msgid "Thanks for spending some quality time with the web site today." msgstr "" @@ -654,7 +673,7 @@ msgid "Please go to the following page and choose a new password:" msgstr "Ве молам одете на следната страница и внесете нова лозинка:" msgid "Your username, in case you’ve forgotten:" -msgstr "" +msgstr "Вашето корисничко име, во случај да сте заборавиле:" msgid "Thanks for using our site!" msgstr "Ви благодариме што го користите овој сајт!" @@ -667,6 +686,8 @@ msgid "" "Forgotten your password? Enter your email address below, and we’ll email " "instructions for setting a new one." msgstr "" +"Ја заборавивте вашата лозинка? Внесете го вашиот имејл и ќе ви пратиме " +"инструкции да подесите нова лозинка. " msgid "Email address:" msgstr "Email адреса:" diff --git a/django/contrib/admin/locale/nl/LC_MESSAGES/django.mo b/django/contrib/admin/locale/nl/LC_MESSAGES/django.mo index 0564585d5cd3a..b69aebf1d3f25 100644 Binary files a/django/contrib/admin/locale/nl/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/nl/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/nl/LC_MESSAGES/django.po b/django/contrib/admin/locale/nl/LC_MESSAGES/django.po index 34f1d16b97d47..1cbf39a3f817a 100644 --- a/django/contrib/admin/locale/nl/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/nl/LC_MESSAGES/django.po @@ -7,18 +7,18 @@ # Harro van der Klauw , 2012 # Ilja Maas , 2015 # Jannis Leidel , 2011 -# Jeffrey Gelens , 2011-2012 +# 6a27f10aef159701c7a5ff07f0fb0a78_05545ed , 2011-2012 # dokterbob , 2015 # Meteor0id, 2019-2020 # 8de006b1b0894aab6aef71979dcd8bd6_5c6b207 , 2014-2015 # Tino de Bruijn , 2011 -# Tonnes , 2017,2019-2020 +# Tonnes , 2017,2019-2020,2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-14 19:53+0200\n" -"PO-Revision-Date: 2020-07-15 08:30+0000\n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" "Last-Translator: Tonnes \n" "Language-Team: Dutch (http://www.transifex.com/django/django/language/nl/)\n" "MIME-Version: 1.0\n" @@ -27,6 +27,10 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Geselecteerde %(verbose_name_plural)s verwijderen" + #, python-format msgid "Successfully deleted %(count)d %(items)s." msgstr "%(count)d %(items)s met succes verwijderd." @@ -38,10 +42,6 @@ msgstr "%(name)s kan niet worden verwijderd " msgid "Are you sure?" msgstr "Weet u het zeker?" -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Geselecteerde %(verbose_name_plural)s verwijderen" - msgid "Administration" msgstr "Beheer" @@ -280,8 +280,9 @@ msgstr "0 van de %(cnt)s geselecteerd" msgid "Change history: %s" msgstr "Wijzigingsgeschiedenis: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -539,6 +540,12 @@ msgstr "Wachtwoord of gebruikersnaam vergeten?" msgid "Toggle navigation" msgstr "Navigatie aan/uit" +msgid "Start typing to filter…" +msgstr "Begin met typen om te filteren…" + +msgid "Filter navigation items" +msgstr "Navigatie-items filteren" + msgid "Date/time" msgstr "Datum/tijd" @@ -548,6 +555,12 @@ msgstr "Gebruiker" msgid "Action" msgstr "Actie" +msgid "entry" +msgstr "vermelding" + +msgid "entries" +msgstr "vermeldingen" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -604,8 +617,12 @@ msgstr "Nog een %(model)s toevoegen" msgid "Delete selected %(model)s" msgstr "Geselecteerde %(model)s verwijderen" -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Bedankt voor de aanwezigheid op de site vandaag." +#, python-format +msgid "View selected %(model)s" +msgstr "Geselecteerde %(model)s weergeven" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Bedankt voor het vandaag wat tijd besteden aan de website." msgid "Log in again" msgstr "Opnieuw aanmelden" diff --git a/django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.mo index 814d1e8b0aff1..c32351e22a7d5 100644 Binary files a/django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.po index 8ed513ccea5d4..81eabe4993aaf 100644 --- a/django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.po @@ -6,17 +6,17 @@ # Harro van der Klauw , 2012 # Ilja Maas , 2015 # Jannis Leidel , 2011 -# Jeffrey Gelens , 2011-2012 +# 6a27f10aef159701c7a5ff07f0fb0a78_05545ed , 2011-2012 # Meteor0id, 2019-2020 # 8de006b1b0894aab6aef71979dcd8bd6_5c6b207 , 2015 -# Tonnes , 2019-2020 +# Tonnes , 2019-2020,2022 # wunki , 2011 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-11 20:56+0200\n" -"PO-Revision-Date: 2020-05-13 11:10+0000\n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" "Last-Translator: Tonnes \n" "Language-Team: Dutch (http://www.transifex.com/django/django/language/nl/)\n" "MIME-Version: 1.0\n" @@ -192,6 +192,54 @@ msgstr "november" msgid "December" msgstr "december" +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "mrt" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "mei" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "jul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "aug" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "sep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "okt" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "dec" + msgctxt "one letter Sunday" msgid "S" msgstr "Z" @@ -220,6 +268,13 @@ msgctxt "one letter Saturday" msgid "S" msgstr "Z" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" +"U hebt dit formulier al verstuurd. Weet u zeker dat u het nogmaals wilt " +"versturen?" + msgid "Show" msgstr "Tonen" diff --git a/django/contrib/admin/locale/nn/LC_MESSAGES/django.mo b/django/contrib/admin/locale/nn/LC_MESSAGES/django.mo index 315dffc7eee05..779cf097472ad 100644 Binary files a/django/contrib/admin/locale/nn/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/nn/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/nn/LC_MESSAGES/django.po b/django/contrib/admin/locale/nn/LC_MESSAGES/django.po index 37eb0cb78a5ae..4a7c846f80a1a 100644 --- a/django/contrib/admin/locale/nn/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/nn/LC_MESSAGES/django.po @@ -5,16 +5,16 @@ # Jannis Leidel , 2011 # jensadne , 2013 # Sigurd Gartmann , 2012 -# Sivert Olstad, 2021 +# Sivert Olstad, 2021-2022 # velmont , 2012 # Vibeke Uthaug, 2021 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-18 12:44+0000\n" -"Last-Translator: Vibeke Uthaug\n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Sivert Olstad\n" "Language-Team: Norwegian Nynorsk (http://www.transifex.com/django/django/" "language/nn/)\n" "MIME-Version: 1.0\n" @@ -269,8 +269,9 @@ msgstr "Ingen av %(cnt)s valde" msgid "Change history: %s" msgstr "Endringshistorikk: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -506,7 +507,6 @@ msgid "" "database tables have been created, and make sure the database is readable by " "the appropriate user." msgstr "" -" match \n" "Noko er gale med databaseinstallasjonen din. Syt for at databasetabellane er " "oppretta og at brukaren har dei naudsynte løyve." @@ -516,7 +516,7 @@ msgid "" "page. Would you like to login to a different account?" msgstr "" "Du er stadfesta som %(username)s, men er ikkje autentisert til å få tilgang " -"til denne sida . Ynskjer du å logge inn med ein annan konto?" +"til denne sida. Ynskjer du å logge inn med ein annan konto?" msgid "Forgotten your password or username?" msgstr "Gløymd brukarnamn eller passord?" @@ -539,6 +539,12 @@ msgstr "Brukar" msgid "Action" msgstr "Handling" +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -595,6 +601,10 @@ msgstr "Opprett ny %(model)s" msgid "Delete selected %(model)s" msgstr "Slett valde %(model)s" +#, python-format +msgid "View selected %(model)s" +msgstr "" + msgid "Thanks for spending some quality time with the web site today." msgstr "Takk for at du brukte litt kvalitetstid på nettsida i dag. " diff --git a/django/contrib/admin/locale/pl/LC_MESSAGES/django.mo b/django/contrib/admin/locale/pl/LC_MESSAGES/django.mo index bd170335be309..6c8266039ad7e 100644 Binary files a/django/contrib/admin/locale/pl/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/pl/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/pl/LC_MESSAGES/django.po b/django/contrib/admin/locale/pl/LC_MESSAGES/django.po index f41d11aabc5a4..dc116e786166b 100644 --- a/django/contrib/admin/locale/pl/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/pl/LC_MESSAGES/django.po @@ -8,9 +8,9 @@ # Karol , 2012 # 0d5641585fd67fbdb97037c19ab83e4c_18c98b0 , 2011 # 0d5641585fd67fbdb97037c19ab83e4c_18c98b0 , 2011 -# m_aciek , 2016-2021 -# m_aciek , 2015 -# Mariusz Felisiak , 2020 +# Maciej Olko , 2016-2022 +# Maciej Olko , 2015 +# Mariusz Felisiak , 2020,2022 # Ola Sitarska , 2013 # Ola Sitarska , 2013 # Roman Barczyński, 2014 @@ -19,9 +19,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-09-22 11:13+0000\n" -"Last-Translator: m_aciek \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Maciej Olko \n" "Language-Team: Polish (http://www.transifex.com/django/django/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -268,8 +268,7 @@ msgstr "Błąd bazy danych" msgid "%(count)s %(name)s was changed successfully." msgid_plural "%(count)s %(name)s were changed successfully." msgstr[0] "%(count)s %(name)s został(a)(-ło) pomyślnie zmieniony(-na)(-ne)." -msgstr[1] "" -"%(count)s %(name)s zostały(-ło)(-li) pomyślnie zmienione(-nych)(-nieni)." +msgstr[1] "%(count)s %(name)s zostały(-ło) pomyślnie zmienione(-nych)." msgstr[2] "%(count)s %(name)s zostało pomyślnie zmienionych." msgstr[3] "%(count)s %(name)s zostało pomyślnie zmienione." @@ -289,8 +288,9 @@ msgstr "Wybrano 0 z %(cnt)s" msgid "Change history: %s" msgstr "Historia zmian: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -561,6 +561,12 @@ msgstr "Użytkownik" msgid "Action" msgstr "Akcja" +msgid "entry" +msgstr "wpis" + +msgid "entries" +msgstr "wpisy" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -619,6 +625,10 @@ msgstr "Dodaj kolejne(go)(-ną)(-ny) %(model)s" msgid "Delete selected %(model)s" msgstr "Usuń wybraną(-ne)(-nego)(-ny) %(model)s" +#, python-format +msgid "View selected %(model)s" +msgstr "Obejrzyj wybraną(-ne)(-nego)(-ny) %(model)s" + msgid "Thanks for spending some quality time with the web site today." msgstr "Dzięki za spędzenie cennego czasu ze stroną." diff --git a/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.mo index 8cb35016feb65..b720ee23481a6 100644 Binary files a/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.po index e2763f2b76f53..d82c70c0f1824 100644 --- a/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.po @@ -2,10 +2,11 @@ # # Translators: # angularcircle, 2011 +# Darek505, 2022 # Jannis Leidel , 2011 # Janusz Harkot , 2014-2015 # 0d5641585fd67fbdb97037c19ab83e4c_18c98b0 , 2011 -# m_aciek , 2016,2018,2020 +# Maciej Olko , 2016,2018,2020 # Mariusz Felisiak , 2021 # Roman Barczyński, 2012 # Tomasz Kajtoch , 2016-2017 @@ -13,9 +14,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-03-19 11:03+0000\n" -"Last-Translator: Mariusz Felisiak \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" +"Last-Translator: Darek505\n" "Language-Team: Polish (http://www.transifex.com/django/django/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -286,6 +287,12 @@ msgctxt "one letter Saturday" msgid "S" msgstr "S" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" +"Ten formularz został już wysłany. Czy na pewno chcesz przesłać go ponownie?" + msgid "Show" msgstr "Pokaż" diff --git a/django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.mo b/django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.mo index dfc9541851e9c..fb044a1b32e1c 100644 Binary files a/django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.po b/django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.po index 0adf2315b4c6d..c86bdbc2cdcac 100644 --- a/django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.po @@ -4,14 +4,14 @@ # Allisson Azevedo , 2014 # Bruce de Sá , 2019 # bruno.devpod , 2014 -# Carlos C. Leite , 2019 -# Carlos C. Leite , 2019 -# Filipe Cifali Stangler , 2016 +# Carlos Leite , 2019 +# Carlos Leite , 2019 +# Filipe Cifali , 2016 # dudanogueira , 2012 # Elyézer Rezende , 2013 # Fábio C. Barrionuevo da Luz , 2015 # Fabio Cerqueira , 2019 -# Xico Petry , 2016 +# Francisco Petry Rauber , 2016 # Gladson , 2013 # Guilherme Ferreira , 2017 # semente, 2012-2013 @@ -19,6 +19,7 @@ # João Paulo Andrade , 2018 # Lucas Infante , 2015 # Luiz Boaretto , 2017 +# Marssal Jr. , 2022 # Marcelo Moro Brondani , 2018 # Marco Rougeth , 2015 # Otávio Reis , 2018 @@ -26,15 +27,16 @@ # R.J Lelis , 2019 # Samuel Nogueira Bacelar , 2020 # Sergio Garcia , 2015 +# Tomaz Marcelino Cunha Neto , 2022 # Vinícius Damaceno , 2019 # Vinícius Muniz de Melo , 2019 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-14 19:53+0200\n" -"PO-Revision-Date: 2020-09-22 14:07+0000\n" -"Last-Translator: Samuel Nogueira Bacelar \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-05-25 07:05+0000\n" +"Last-Translator: Marssal Jr. , 2022\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/django/django/" "language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -43,6 +45,10 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Remover %(verbose_name_plural)s selecionados" + #, python-format msgid "Successfully deleted %(count)d %(items)s." msgstr "Removido %(count)d %(items)s com sucesso." @@ -54,10 +60,6 @@ msgstr "Não é possível excluir %(name)s " msgid "Are you sure?" msgstr "Tem certeza?" -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Remover %(verbose_name_plural)s selecionados" - msgid "Administration" msgstr "Administração" @@ -279,12 +281,14 @@ msgid "%(count)s %(name)s was changed successfully." msgid_plural "%(count)s %(name)s were changed successfully." msgstr[0] "%(count)s %(name)s modificado com sucesso." msgstr[1] "%(count)s %(name)s modificados com sucesso." +msgstr[2] "%(count)s %(name)s modificados com sucesso." #, python-format msgid "%(total_count)s selected" msgid_plural "All %(total_count)s selected" msgstr[0] "%(total_count)s selecionado" msgstr[1] "Todos %(total_count)s selecionados" +msgstr[2] "Todos %(total_count)s selecionados" #, python-format msgid "0 of %(cnt)s selected" @@ -294,8 +298,9 @@ msgstr "0 de %(cnt)s selecionados" msgid "Change history: %s" msgstr "Histórico de modificações: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -551,6 +556,12 @@ msgstr "Esqueceu sua senha ou nome de usuário?" msgid "Toggle navigation" msgstr "Alternar navegação" +msgid "Start typing to filter…" +msgstr "Comece a digitar para filtrar…" + +msgid "Filter navigation items" +msgstr "Filtrar itens de navegação" + msgid "Date/time" msgstr "Data/hora" @@ -560,6 +571,12 @@ msgstr "Usuário" msgid "Action" msgstr "Ação" +msgid "entry" +msgstr "registro" + +msgid "entries" +msgstr "registros" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -584,6 +601,7 @@ msgid "%(counter)s result" msgid_plural "%(counter)s results" msgstr[0] "%(counter)s resultado" msgstr[1] "%(counter)s resultados" +msgstr[2] "%(counter)s resultados" #, python-format msgid "%(full_result_count)s total" @@ -616,8 +634,12 @@ msgstr "Adicionar outro %(model)s" msgid "Delete selected %(model)s" msgstr "Excluir %(model)s selecionado" -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Obrigado por visitar nosso Web site hoje." +#, python-format +msgid "View selected %(model)s" +msgstr "Visualizar %(model)s selecionados" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Obrigado por passar algum tempo de qualidade com o site hoje." msgid "Log in again" msgstr "Acessar novamente" diff --git a/django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.mo index 813a169a6dc0b..6b59b6de67b4c 100644 Binary files a/django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.po index 565b6ac709197..7bcf5abde80da 100644 --- a/django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.po @@ -7,6 +7,7 @@ # semente, 2012 # Jannis Leidel , 2011 # Lucas Infante , 2015 +# Marssal Jr. , 2022 # Rafael Fontenelle , 2021 # Renata Barbosa Almeida , 2016 # Samuel Nogueira Bacelar , 2020 @@ -14,9 +15,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-01-17 05:53+0000\n" -"Last-Translator: Rafael Fontenelle \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-05-25 07:05+0000\n" +"Last-Translator: Marssal Jr. , 2022\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/django/django/" "language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -80,6 +81,7 @@ msgid "%(sel)s of %(cnt)s selected" msgid_plural "%(sel)s of %(cnt)s selected" msgstr[0] "%(sel)s de %(cnt)s selecionado" msgstr[1] "%(sel)s de %(cnt)s selecionados" +msgstr[2] "%(sel)s de %(cnt)s selecionados" msgid "" "You have unsaved changes on individual editable fields. If you run an " @@ -125,12 +127,14 @@ msgid "Note: You are %s hour ahead of server time." msgid_plural "Note: You are %s hours ahead of server time." msgstr[0] "Nota: Você está %s hora à frente do horário do servidor." msgstr[1] "Nota: Você está %s horas à frente do horário do servidor." +msgstr[2] "Nota: Você está %s horas à frente do horário do servidor." #, javascript-format msgid "Note: You are %s hour behind server time." msgid_plural "Note: You are %s hours behind server time." msgstr[0] "Nota: Você está %s hora atrás do tempo do servidor." msgstr[1] "Nota: Você está %s horas atrás do horário do servidor." +msgstr[2] "Nota: Você está %s horas atrás do horário do servidor." msgid "Choose a Time" msgstr "Escolha um horário" @@ -265,6 +269,12 @@ msgctxt "one letter Saturday" msgid "S" msgstr "S" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" +"Você já enviou este formulário. Tem certeza de que deseja reenviar de novo?" + msgid "Show" msgstr "Mostrar" diff --git a/django/contrib/admin/locale/ru/LC_MESSAGES/django.mo b/django/contrib/admin/locale/ru/LC_MESSAGES/django.mo index 72c8ce616afc6..3042369d37f66 100644 Binary files a/django/contrib/admin/locale/ru/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/ru/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/ru/LC_MESSAGES/django.po b/django/contrib/admin/locale/ru/LC_MESSAGES/django.po index f9e671dcf847b..6c7072246efe7 100644 --- a/django/contrib/admin/locale/ru/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/ru/LC_MESSAGES/django.po @@ -1,6 +1,7 @@ # This file is distributed under the same license as the Django package. # # Translators: +# Alex Ibragimov, 2021 # Ivan Ivaschenko , 2013 # Denis Darii , 2011 # Dimmus , 2011 @@ -9,25 +10,29 @@ # Sergey , 2016 # Jannis Leidel , 2011 # SeryiMysh , 2020 -# Алексей Борискин , 2012-2015 +# Алексей Борискин , 2012-2015,2022 # Дмитрий , 2019 -# Дмитрий Шатера , 2018 +# Bobsans , 2018 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-14 19:53+0200\n" -"PO-Revision-Date: 2020-07-21 09:32+0000\n" -"Last-Translator: crazyzubr \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-05-25 07:05+0000\n" +"Last-Translator: Алексей Борискин , 2012-2015,2022\n" "Language-Team: Russian (http://www.transifex.com/django/django/language/" "ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" -"%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " +"(n%100>=11 && n%100<=14)? 2 : 3);\n" + +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Удалить выбранные %(verbose_name_plural)s" #, python-format msgid "Successfully deleted %(count)d %(items)s." @@ -40,10 +45,6 @@ msgstr "Не удается удалить %(name)s" msgid "Are you sure?" msgstr "Вы уверены?" -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Удалить выбранные %(verbose_name_plural)s" - msgid "Administration" msgstr "Администрирование" @@ -282,8 +283,9 @@ msgstr "Выбрано 0 объектов из %(cnt)s " msgid "Change history: %s" msgstr "История изменений: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -539,6 +541,12 @@ msgstr "Забыли свой пароль или имя пользовател msgid "Toggle navigation" msgstr "Переключить навигацию" +msgid "Start typing to filter…" +msgstr "Начните печатать для фильтрации..." + +msgid "Filter navigation items" +msgstr "Фильтр элементов навигации" + msgid "Date/time" msgstr "Дата и время" @@ -548,6 +556,12 @@ msgstr "Пользователь" msgid "Action" msgstr "Действие" +msgid "entry" +msgstr "запись" + +msgid "entries" +msgstr "записи" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -606,7 +620,11 @@ msgstr "Добавить ещё один объект типа \"%(model)s\"" msgid "Delete selected %(model)s" msgstr "Удалить выбранный объект типа \"%(model)s\"" -msgid "Thanks for spending some quality time with the Web site today." +#, python-format +msgid "View selected %(model)s" +msgstr "Просмотреть выбранный объект типа \"%(model)s\"" + +msgid "Thanks for spending some quality time with the web site today." msgstr "Благодарим вас за время, проведенное на этом сайте." msgid "Log in again" diff --git a/django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.mo index fe63491eb9231..9c88ad0384931 100644 Binary files a/django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.po index 478d770bb54bf..78b814dd0a968 100644 --- a/django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.po @@ -9,24 +9,24 @@ # crazyzubr , 2020 # Jannis Leidel , 2011 # Panasoft, 2021 -# Алексей Борискин , 2012,2014-2015 +# Алексей Борискин , 2012,2014-2015,2022 # Андрей Щуров , 2016 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-03-16 22:55+0000\n" -"Last-Translator: Panasoft\n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-05-25 07:05+0000\n" +"Last-Translator: Алексей Борискин , 2012,2014-2015,2022\n" "Language-Team: Russian (http://www.transifex.com/django/django/language/" "ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" -"%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " +"(n%100>=11 && n%100<=14)? 2 : 3);\n" #, javascript-format msgid "Available %s" @@ -280,6 +280,12 @@ msgctxt "one letter Saturday" msgid "S" msgstr "С" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" +"Вы уже отправили эту форму. Вы уверены, что хотите отправить её ещё раз?" + msgid "Show" msgstr "Показать" diff --git a/django/contrib/admin/locale/sq/LC_MESSAGES/django.mo b/django/contrib/admin/locale/sq/LC_MESSAGES/django.mo index e9ea005a66239..8ea7d8d96a8cc 100644 Binary files a/django/contrib/admin/locale/sq/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/sq/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/sq/LC_MESSAGES/django.po b/django/contrib/admin/locale/sq/LC_MESSAGES/django.po index aac5afe527950..610f76a67f187 100644 --- a/django/contrib/admin/locale/sq/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/sq/LC_MESSAGES/django.po @@ -2,15 +2,15 @@ # # Translators: # Besnik Bleta , 2011,2015 -# Besnik Bleta , 2020 +# Besnik Bleta , 2020,2022 # Besnik Bleta , 2015,2018-2019 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-14 19:53+0200\n" -"PO-Revision-Date: 2020-07-14 22:38+0000\n" -"Last-Translator: Transifex Bot <>\n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Besnik Bleta \n" "Language-Team: Albanian (http://www.transifex.com/django/django/language/" "sq/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: sq\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Fshiji %(verbose_name_plural)s e përzgjedhur" + #, python-format msgid "Successfully deleted %(count)d %(items)s." msgstr "U fshinë me sukses %(count)d %(items)s." @@ -30,10 +34,6 @@ msgstr "S’mund të fshijë %(name)s" msgid "Are you sure?" msgstr "Jeni i sigurt?" -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Fshiji %(verbose_name_plural)s e përzgjedhur" - msgid "Administration" msgstr "Administrim" @@ -268,8 +268,9 @@ msgstr "0 nga %(cnt)s të përzgjedhur" msgid "Change history: %s" msgstr "Ndryshoni historikun: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -526,6 +527,12 @@ msgstr "Harruat fjalëkalimin ose emrin tuaj të përdoruesit?" msgid "Toggle navigation" msgstr "" +msgid "Start typing to filter…" +msgstr "Që të bëhet filtrim, filloni të shtypni…" + +msgid "Filter navigation items" +msgstr "" + msgid "Date/time" msgstr "Datë/kohë" @@ -535,6 +542,12 @@ msgstr "Përdorues" msgid "Action" msgstr "Veprim" +msgid "entry" +msgstr "zë" + +msgid "entries" +msgstr "zëra" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -591,8 +604,12 @@ msgstr "Shtoni një %(model)s tjetër" msgid "Delete selected %(model)s" msgstr "Fshije %(model)s e përzgjedhur" -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Faleminderit që shpenzoni sot pak kohë të çmuar me sajtin Web." +#, python-format +msgid "View selected %(model)s" +msgstr "Shihni %(model)s e përzgjedhur" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Faleminderit që harxhoni pak kohë me sajtin sot." msgid "Log in again" msgstr "Hyni sërish" diff --git a/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.mo index 3feecc2edeae6..ab1d18ae7b400 100644 Binary files a/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.po index fe02462188bab..a5df50ab1257c 100644 --- a/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.po @@ -2,14 +2,14 @@ # # Translators: # Besnik Bleta , 2011-2012,2015 -# Besnik Bleta , 2020-2021 +# Besnik Bleta , 2020-2022 # Besnik Bleta , 2015,2017 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-01-15 13:33+0000\n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" "Last-Translator: Besnik Bleta \n" "Language-Team: Albanian (http://www.transifex.com/django/django/language/" "sq/)\n" @@ -262,6 +262,13 @@ msgctxt "one letter Saturday" msgid "S" msgstr "S" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" +"E keni parashtruar tashmë këtë formular. Jeni i sigurt se doni ta " +"riparashtroni?" + msgid "Show" msgstr "Shfaqe" diff --git a/django/contrib/admin/locale/sr/LC_MESSAGES/django.mo b/django/contrib/admin/locale/sr/LC_MESSAGES/django.mo index ae2b979943de1..2f2cfe6667b14 100644 Binary files a/django/contrib/admin/locale/sr/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/sr/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/sr/LC_MESSAGES/django.po b/django/contrib/admin/locale/sr/LC_MESSAGES/django.po index 246d8b1c085de..7325233641647 100644 --- a/django/contrib/admin/locale/sr/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/sr/LC_MESSAGES/django.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-01-15 18:04+0000\n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2021-12-25 07:05+0000\n" "Last-Translator: Igor Jerosimić\n" "Language-Team: Serbian (http://www.transifex.com/django/django/language/" "sr/)\n" @@ -136,22 +136,22 @@ msgstr "записи у логовима" #, python-format msgid "Added “%(object)s”." -msgstr "" +msgstr "Додат објекат класе „%(object)s“." #, python-format msgid "Changed “%(object)s” — %(changes)s" -msgstr "" +msgstr "Промењен објекат класе „%(object)s“ - %(changes)s" #, python-format msgid "Deleted “%(object)s.”" -msgstr "" +msgstr "Уклоњен објекат класе „%(object)s“." msgid "LogEntry Object" msgstr "Објекат уноса лога" #, python-brace-format msgid "Added {name} “{object}”." -msgstr "" +msgstr "Додат објекат {name} \"{object}\"." msgid "Added." msgstr "Додато." @@ -266,8 +266,9 @@ msgstr "0 од %(cnt)s изабрано" msgid "Change history: %s" msgstr "Историјат измена: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -516,6 +517,12 @@ msgstr "Заборавили сте лозинку или корисничко msgid "Toggle navigation" msgstr "Укључи/искључи мени" +msgid "Start typing to filter…" +msgstr "" + +msgid "Filter navigation items" +msgstr "" + msgid "Date/time" msgstr "Датум/време" @@ -525,6 +532,12 @@ msgstr "Корисник" msgid "Action" msgstr "Радња" +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -580,8 +593,12 @@ msgstr "Додај још један модел %(model)s" msgid "Delete selected %(model)s" msgstr "Обриши одабрани модел %(model)s" -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Хвала што сте данас провели време на овом сајту." +#, python-format +msgid "View selected %(model)s" +msgstr "" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "" msgid "Log in again" msgstr "Поновна пријава" @@ -651,7 +668,7 @@ msgid "Please go to the following page and choose a new password:" msgstr "Идите на следећу страницу и поставите нову лозинку." msgid "Your username, in case you’ve forgotten:" -msgstr "" +msgstr "Ваше корисничко име, уколико сте заборавили:" msgid "Thanks for using our site!" msgstr "Хвала што користите наш сајт!" diff --git a/django/contrib/admin/locale/sv/LC_MESSAGES/django.mo b/django/contrib/admin/locale/sv/LC_MESSAGES/django.mo index 3acb958de6c40..a39181638b997 100644 Binary files a/django/contrib/admin/locale/sv/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/sv/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/sv/LC_MESSAGES/django.po b/django/contrib/admin/locale/sv/LC_MESSAGES/django.po index 6d656d36e97cb..5a1c5141f6089 100644 --- a/django/contrib/admin/locale/sv/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/sv/LC_MESSAGES/django.po @@ -1,10 +1,12 @@ # This file is distributed under the same license as the Django package. # # Translators: +# Albin Larsson , 2022 # Alex Nordlund , 2012 # Andreas Pelme , 2014 # d7bcbd5f5cbecdc2b959899620582440, 2011 # Cybjit , 2012 +# Elias Johnstone , 2022 # Henrik Palmlund Wahlgren , 2019 # Jannis Leidel , 2011 # Johan Rohdin, 2021 @@ -18,9 +20,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-04-01 12:33+0000\n" -"Last-Translator: Johan Rohdin\n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Elias Johnstone \n" "Language-Team: Swedish (http://www.transifex.com/django/django/language/" "sv/)\n" "MIME-Version: 1.0\n" @@ -81,10 +83,10 @@ msgid "Has date" msgstr "Har datum" msgid "Empty" -msgstr "" +msgstr "Tom" msgid "Not empty" -msgstr "" +msgstr "Inte tom" #, python-format msgid "" @@ -272,8 +274,9 @@ msgstr "0 av %(cnt)s valda" msgid "Change history: %s" msgstr "Ändringshistorik: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -405,7 +408,7 @@ msgid "Filter" msgstr "Filtrera" msgid "Clear all filters" -msgstr "" +msgstr "Rensa alla filter" msgid "Remove from sorting" msgstr "Ta bort från sortering" @@ -527,7 +530,13 @@ msgid "Forgotten your password or username?" msgstr "Har du glömt lösenordet eller användarnamnet?" msgid "Toggle navigation" -msgstr "" +msgstr "Växla navigering" + +msgid "Start typing to filter…" +msgstr "Börja skriv för att filtrera..." + +msgid "Filter navigation items" +msgstr "Filtrera navigeringsobjekt" msgid "Date/time" msgstr "Datum tid" @@ -538,6 +547,12 @@ msgstr "Användare" msgid "Action" msgstr "Händelse" +msgid "entry" +msgstr "post" + +msgid "entries" +msgstr "poster" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -594,8 +609,12 @@ msgstr "Lägg till %(model)s" msgid "Delete selected %(model)s" msgstr "Ta bort markerade %(model)s" -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Tack för att du spenderade lite kvalitetstid med webbplatsen idag." +#, python-format +msgid "View selected %(model)s" +msgstr "Visa valda %(model)s" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Tack för att du spenderade kvalitetstid med webbplatsen idag." msgid "Log in again" msgstr "Logga in igen" diff --git a/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.mo index 5d202074ed27d..c5e39c940b6b5 100644 Binary files a/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.po index 6d833d745ab49..2523a56b78c9e 100644 --- a/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.po @@ -2,6 +2,7 @@ # # Translators: # Andreas Pelme , 2012 +# Elias Johnstone , 2022 # Jannis Leidel , 2011 # Jonathan Lindén, 2014 # Mattias Hansson , 2016 @@ -12,9 +13,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-17 11:50+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Mattias Hansson \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" +"Last-Translator: Elias Johnstone \n" "Language-Team: Swedish (http://www.transifex.com/django/django/language/" "sv/)\n" "MIME-Version: 1.0\n" @@ -88,8 +89,8 @@ msgstr "" "operation kommer de ändringar som inte sparats att gå förlorade." 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 " +"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 "" "Du har markerat en operation, men du har inte sparat sparat dina ändringar " @@ -97,8 +98,8 @@ msgstr "" "behöva köra operationen på nytt." 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 " +"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 " "button." msgstr "" "Du har markerat en operation och du har inte gjort några ändringar i " @@ -188,6 +189,54 @@ msgstr "november" msgid "December" msgstr "december" +msgctxt "abbrev. month January" +msgid "Jan" +msgstr "jan" + +msgctxt "abbrev. month February" +msgid "Feb" +msgstr "feb" + +msgctxt "abbrev. month March" +msgid "Mar" +msgstr "mar" + +msgctxt "abbrev. month April" +msgid "Apr" +msgstr "apr" + +msgctxt "abbrev. month May" +msgid "May" +msgstr "maj" + +msgctxt "abbrev. month June" +msgid "Jun" +msgstr "jun" + +msgctxt "abbrev. month July" +msgid "Jul" +msgstr "jul" + +msgctxt "abbrev. month August" +msgid "Aug" +msgstr "aug" + +msgctxt "abbrev. month September" +msgid "Sep" +msgstr "sep" + +msgctxt "abbrev. month October" +msgid "Oct" +msgstr "okt" + +msgctxt "abbrev. month November" +msgid "Nov" +msgstr "nov" + +msgctxt "abbrev. month December" +msgid "Dec" +msgstr "dec" + msgctxt "one letter Sunday" msgid "S" msgstr "S" @@ -216,6 +265,13 @@ msgctxt "one letter Saturday" msgid "S" msgstr "L" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" +"Du har redan skickat in detta formulär. Är du säker på att du vill skicka in " +"det igen?" + msgid "Show" msgstr "Visa" diff --git a/django/contrib/admin/locale/tr/LC_MESSAGES/django.mo b/django/contrib/admin/locale/tr/LC_MESSAGES/django.mo index f1a96bdbcfc76..4cbe60f681374 100644 Binary files a/django/contrib/admin/locale/tr/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/tr/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/tr/LC_MESSAGES/django.po b/django/contrib/admin/locale/tr/LC_MESSAGES/django.po index f7b9195ce6629..e56585e76a023 100644 --- a/django/contrib/admin/locale/tr/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/tr/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ # This file is distributed under the same license as the Django package. # # Translators: -# BouRock, 2015-2020 +# BouRock, 2015-2022 # BouRock, 2014-2015 -# Caner Başaran , 2013 +# Caner Başaran , 2013 # Cihad GÜNDOĞDU , 2012 # Cihad GÜNDOĞDU , 2014 # Cihan Okyay , 2014 @@ -15,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-14 19:53+0200\n" -"PO-Revision-Date: 2020-07-15 08:30+0000\n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" "Last-Translator: BouRock\n" "Language-Team: Turkish (http://www.transifex.com/django/django/language/" "tr/)\n" @@ -26,6 +26,10 @@ msgstr "" "Language: tr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Seçili %(verbose_name_plural)s nesnelerini sil" + #, python-format msgid "Successfully deleted %(count)d %(items)s." msgstr "%(count)d adet %(items)s başarılı olarak silindi." @@ -37,10 +41,6 @@ msgstr "%(name)s silinemiyor" msgid "Are you sure?" msgstr "Emin misiniz?" -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Seçili %(verbose_name_plural)s nesnelerini sil" - msgid "Administration" msgstr "Yönetim" @@ -277,8 +277,9 @@ msgstr "0 / %(cnt)s nesne seçildi" msgid "Change history: %s" msgstr "Değişiklik geçmişi: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -534,6 +535,12 @@ msgstr "Kullanıcı adınızı veya parolanızı mı unuttunuz?" msgid "Toggle navigation" msgstr "Gezinmeyi aç/kapat" +msgid "Start typing to filter…" +msgstr "Süzmek için yazmaya başlayın..." + +msgid "Filter navigation items" +msgstr "Gezinti öğelerini süz" + msgid "Date/time" msgstr "Tarih/saat" @@ -543,6 +550,12 @@ msgstr "Kullanıcı" msgid "Action" msgstr "Eylem" +msgid "entry" +msgstr "giriş" + +msgid "entries" +msgstr "girişler" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -599,8 +612,12 @@ msgstr "Başka bir %(model)s ekle" msgid "Delete selected %(model)s" msgstr "Seçilen %(model)s sil" -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Bugün Web sitesine ayırdığınız kaliteli zaman için teşekkür ederiz." +#, python-format +msgid "View selected %(model)s" +msgstr "Seçilen %(model)s görüntüle" + +msgid "Thanks for spending some quality time with the web site today." +msgstr "Bugün web sitesine ayırdığınız kaliteli zaman için teşekkür ederiz." msgid "Log in again" msgstr "Tekrar oturum aç" diff --git a/django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.mo index aff5543d9cefb..c43f01c1843ff 100644 Binary files a/django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.po index 354c99b1f1e56..9051011cb61a1 100644 --- a/django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.po @@ -1,7 +1,7 @@ # This file is distributed under the same license as the Django package. # # Translators: -# BouRock, 2015-2016,2019-2021 +# BouRock, 2015-2016,2019-2022 # BouRock, 2014 # Jannis Leidel , 2011 # Metin Amiroff , 2011 @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-01-16 19:30+0000\n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" "Last-Translator: BouRock\n" "Language-Team: Turkish (http://www.transifex.com/django/django/language/" "tr/)\n" @@ -262,6 +262,12 @@ msgctxt "one letter Saturday" msgid "S" msgstr "Ct" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "" +"Bu formu zaten gönderdiniz. Tekrar göndermek istediğinize emin misiniz?" + msgid "Show" msgstr "Göster" diff --git a/django/contrib/admin/locale/uk/LC_MESSAGES/django.mo b/django/contrib/admin/locale/uk/LC_MESSAGES/django.mo index 86babad6c57d6..5ef8bf0cd15d0 100644 Binary files a/django/contrib/admin/locale/uk/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/uk/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/uk/LC_MESSAGES/django.po b/django/contrib/admin/locale/uk/LC_MESSAGES/django.po index a654e409939a1..c3d602c3ae53f 100644 --- a/django/contrib/admin/locale/uk/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/uk/LC_MESSAGES/django.po @@ -13,6 +13,7 @@ # Kirill Gagarski , 2015 # Max V. Stotsky , 2014 # Mikhail Kolesnik , 2015 +# Mykola Holovetskyi, 2022 # Mykola Zamkovoi , 2014 # Sergiy Kuzmenko , 2011 # tarasyyyk , 2018 @@ -21,9 +22,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-12-02 22:21+0000\n" -"Last-Translator: Illia Volochii \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Mykola Holovetskyi\n" "Language-Team: Ukrainian (http://www.transifex.com/django/django/language/" "uk/)\n" "MIME-Version: 1.0\n" @@ -158,14 +159,14 @@ msgstr "Змінено \"%(object)s\" - %(changes)s" #, python-format msgid "Deleted “%(object)s.”" -msgstr "" +msgstr "Видалено \"%(object)s.\"" msgid "LogEntry Object" msgstr "Об'єкт журнального запису" #, python-brace-format msgid "Added {name} “{object}”." -msgstr "" +msgstr "Додано {name} \"{object}\"." msgid "Added." msgstr "Додано." @@ -175,7 +176,7 @@ msgstr "та" #, python-brace-format msgid "Changed {fields} for {name} “{object}”." -msgstr "" +msgstr "Змінені {fields} для {name} \"{object}\"." #, python-brace-format msgid "Changed {fields}." @@ -183,7 +184,7 @@ msgstr "Змінені {fields}." #, python-brace-format msgid "Deleted {name} “{object}”." -msgstr "" +msgstr "Видалено {name} \"{object}\"." msgid "No fields changed." msgstr "Поля не змінені." @@ -193,10 +194,12 @@ msgstr "Ніщо" msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." msgstr "" +"Натисність \"Control\" або \"Command\" на Mac-пристрої, щоб вибрати більше " +"аніж один." #, python-brace-format msgid "The {name} “{obj}” was added successfully." -msgstr "" +msgstr "{name} \"{obj}\" було додано успішно." msgid "You may edit it again below." msgstr "Ви можете відредагувати це знову." @@ -204,26 +207,27 @@ msgstr "Ви можете відредагувати це знову." #, python-brace-format msgid "" "The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" +msgstr "{name} \"{obj}\" було змінено успішно. Ви можете додати інше {name}." #, python-brace-format msgid "" "The {name} “{obj}” was changed successfully. You may edit it again below." msgstr "" +"{name} \"{obj}\" було змінено успішно. Нижче Ви можете редагувати його знову." #, python-brace-format msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" +msgstr "{name} \"{obj}\" було додано успішно. Ви можете редагувати його знову." #, python-brace-format msgid "" "The {name} “{obj}” was changed successfully. You may add another {name} " "below." -msgstr "" +msgstr "{name} \"{obj}\" було змінено успішно. Ви можете додати інше {name}." #, python-brace-format msgid "The {name} “{obj}” was changed successfully." -msgstr "" +msgstr "{name} \"{obj}\" було змінено успішно." msgid "" "Items must be selected in order to perform actions on them. No items have " @@ -236,11 +240,11 @@ msgstr "Дія не обрана." #, python-format msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "" +msgstr "%(name)s \"%(obj)s\" був видалений успішно." #, python-format msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" +msgstr "%(name)s з ID \"%(key)s\" не існує. Можливо, воно було видалене?" #, python-format msgid "Add %s" @@ -281,8 +285,9 @@ msgstr "0 з %(cnt)s обрано" msgid "Change history: %s" msgstr "Історія змін: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -333,6 +338,8 @@ msgid "" "There’s been an error. It’s been reported to the site administrators via " "email and should be fixed shortly. Thanks for your patience." msgstr "" +"Сталася помилка. Вона була відправлена адміністраторам сайту через email і " +"має бути вирішена швидко. Дякуємо за ваше терпіння." msgid "Run the selected action" msgstr "Виконати обрану дію" @@ -361,12 +368,14 @@ msgid "View" msgstr "Переглянути" msgid "You don’t have permission to view or edit anything." -msgstr "" +msgstr "Ви не маєте дозволу переглядати чи редагувати будь-чого." msgid "" "First, enter a username and password. Then, you’ll be able to edit more user " "options." msgstr "" +"Спершу, введіть користувацьке ім'я і пароль. Тоді, ви зможете редагувати " +"більше користувацьких опцій." msgid "Enter a username and password." msgstr "Введіть ім'я користувача і пароль." @@ -515,6 +524,8 @@ msgid "" "database tables have been created, and make sure the database is readable by " "the appropriate user." msgstr "" +"Щось не так з інсталяцією бази даних. Запевніться, що певні таблиці бази " +"даних були створені і що вона може бути прочитана певним користувачем." #, python-format msgid "" @@ -529,13 +540,13 @@ msgid "Forgotten your password or username?" msgstr "Забули пароль або ім'я користувача?" msgid "Toggle navigation" -msgstr "" +msgstr "Увімкнути навігацію" msgid "Start typing to filter…" -msgstr "" +msgstr "Почніть писати для фільтру..." msgid "Filter navigation items" -msgstr "" +msgstr "Фільтрувати навігаційні об'єкти" msgid "Date/time" msgstr "Дата/час" @@ -546,10 +557,18 @@ msgstr "Користувач" msgid "Action" msgstr "Дія" +msgid "entry" +msgstr "" + +msgid "entries" +msgstr "" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." msgstr "" +"Цей об'єкт не має історії змін. Напевно, він був доданий не через цей сайт " +"адміністрування." msgid "Show all" msgstr "Показати всі" @@ -602,9 +621,13 @@ msgstr "Додати ще одну %(model)s" msgid "Delete selected %(model)s" msgstr "Видалити обрану %(model)s" -msgid "Thanks for spending some quality time with the web site today." +#, python-format +msgid "View selected %(model)s" msgstr "" +msgid "Thanks for spending some quality time with the web site today." +msgstr "Дякуємо за час, який був проведений сьогодні на сайті." + msgid "Log in again" msgstr "Увійти знову" @@ -618,6 +641,8 @@ 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 "" +"Будь ласка введіть ваш старий пароль, заради безпеки, після цього введіть " +"ваш новий пароль двічі для верифікації коректності написаного." msgid "Change my password" msgstr "Змінити мій пароль" @@ -655,11 +680,15 @@ msgid "" "We’ve emailed you instructions for setting your password, if an account " "exists with the email you entered. You should receive them shortly." msgstr "" +"Ми відправили вам інструкції для встановлення пароля, якщо обліковий запис з " +"введеною адресою існує. Ви маєте отримати їх найближчим часом." msgid "" "If you don’t receive an email, please make sure you’ve entered the address " "you registered with, and check your spam folder." msgstr "" +"Якщо Ви не отримали електронного листа, переконайтеся, будь ласка, в " +"зареєстрованій адресі і перевірте папку \"Спам\"." #, python-format msgid "" @@ -673,7 +702,7 @@ msgid "Please go to the following page and choose a new password:" msgstr "Будь ласка, перейдіть на цю сторінку, та оберіть новий пароль:" msgid "Your username, in case you’ve forgotten:" -msgstr "" +msgstr "Ваше користувацьке ім'я, у випадку, якщо ви забули:" msgid "Thanks for using our site!" msgstr "Дякуємо за користування нашим сайтом!" @@ -686,6 +715,8 @@ msgid "" "Forgotten your password? Enter your email address below, and we’ll email " "instructions for setting a new one." msgstr "" +"Забули пароль? Введіть свою email-адресу нижче і ми відправимо вам " +"інструкції по встановленню нового." msgid "Email address:" msgstr "Email адреса:" diff --git a/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.mo b/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.mo index 98b5a7fc1022a..c195eaf94a5bd 100644 Binary files a/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.mo and b/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.po b/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.po index ad7fd6c8eff15..a33b82a8a6d8b 100644 --- a/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.po +++ b/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.po @@ -4,6 +4,7 @@ # lanbla , 2021 # Brian Wang , 2018 # Fulong Sun , 2016 +# Huanqun Yang, 2022 # Jannis Leidel , 2011 # Kevin Sze , 2012 # Lele Long , 2011,2015 @@ -21,7 +22,7 @@ # yf zhan , 2018 # dykai , 2019 # ced773123cfad7b4e8b79ca80f736af9, 2012 -# fangjiaqi77 <370358679@qq.com>, 2020 +# Fangjiaqi77 <370358679@qq.com>, 2020 # Kevin Sze , 2012 # 考证 李 , 2020 # 雨翌 , 2016 @@ -30,9 +31,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-22 03:10+0000\n" -"Last-Translator: lanbla \n" +"POT-Creation-Date: 2022-05-17 05:10-0500\n" +"PO-Revision-Date: 2022-07-25 07:05+0000\n" +"Last-Translator: Huanqun Yang\n" "Language-Team: Chinese (China) (http://www.transifex.com/django/django/" "language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -278,8 +279,9 @@ msgstr "%(cnt)s 个中 0 个被选" msgid "Change history: %s" msgstr "变更历史: %s" -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. +#. Translators: Model verbose name and instance +#. representation, suitable to be an item in a +#. list. #, python-format msgid "%(class_name)s %(instance)s" msgstr "%(class_name)s %(instance)s" @@ -542,6 +544,12 @@ msgstr "用户" msgid "Action" msgstr "动作" +msgid "entry" +msgstr "条目" + +msgid "entries" +msgstr "条目" + msgid "" "This object doesn’t have a change history. It probably wasn’t added via this " "admin site." @@ -595,6 +603,10 @@ msgstr "增加另一个 %(model)s" msgid "Delete selected %(model)s" msgstr "取消选中 %(model)s" +#, python-format +msgid "View selected %(model)s" +msgstr "查看已选择的%(model)s" + msgid "Thanks for spending some quality time with the web site today." msgstr "感谢您今天与本网站共度一段高品质时光。" diff --git a/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.mo b/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.mo index 505b8e1a36887..fd554798a9060 100644 Binary files a/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.mo and b/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.mo differ diff --git a/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.po b/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.po index 32dfa619c4c2a..e77db734c94db 100644 --- a/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.po +++ b/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.po @@ -2,6 +2,7 @@ # # Translators: # HuanCheng Bai白宦成 , 2018 +# Fan Xu , 2022 # Jannis Leidel , 2011 # Kewei Ma , 2016 # Lele Long , 2011,2015 @@ -17,9 +18,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-02-07 04:25+0000\n" -"Last-Translator: Veoco \n" +"POT-Creation-Date: 2022-05-17 05:26-0500\n" +"PO-Revision-Date: 2022-07-25 07:59+0000\n" +"Last-Translator: Fan Xu \n" "Language-Team: Chinese (China) (http://www.transifex.com/django/django/" "language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -263,6 +264,11 @@ msgctxt "one letter Saturday" msgid "S" msgstr "S" +msgid "" +"You have already submitted this form. Are you sure you want to submit it " +"again?" +msgstr "您已经提交了此表单。确实要再次提交吗?" + msgid "Show" msgstr "显示" diff --git a/django/contrib/admin/migrations/0001_initial.py b/django/contrib/admin/migrations/0001_initial.py index d02e128497c03..6270e1032d9f7 100644 --- a/django/contrib/admin/migrations/0001_initial.py +++ b/django/contrib/admin/migrations/0001_initial.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ("contenttypes", "__first__"), diff --git a/django/contrib/admin/migrations/0002_logentry_remove_auto_add.py b/django/contrib/admin/migrations/0002_logentry_remove_auto_add.py index 4e83978e21065..7fcf9c0c39458 100644 --- a/django/contrib/admin/migrations/0002_logentry_remove_auto_add.py +++ b/django/contrib/admin/migrations/0002_logentry_remove_auto_add.py @@ -3,7 +3,6 @@ class Migration(migrations.Migration): - dependencies = [ ("admin", "0001_initial"), ] diff --git a/django/contrib/admin/migrations/0003_logentry_add_action_flag_choices.py b/django/contrib/admin/migrations/0003_logentry_add_action_flag_choices.py index 59b22314d4f8a..a73e55fc254ef 100644 --- a/django/contrib/admin/migrations/0003_logentry_add_action_flag_choices.py +++ b/django/contrib/admin/migrations/0003_logentry_add_action_flag_choices.py @@ -2,7 +2,6 @@ class Migration(migrations.Migration): - dependencies = [ ("admin", "0002_logentry_remove_auto_add"), ] diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 4f24cc4ce12e8..84af9f5dac76d 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -980,7 +980,7 @@ def _get_base_actions(self): base_action_names = {name for _, name, _ in base_actions} # Gather actions from the admin site first - for (name, func) in self.admin_site.actions: + for name, func in self.admin_site.actions: if name in base_action_names: continue description = self._get_action_description(func, name) @@ -1104,6 +1104,7 @@ def get_search_results(self, request, queryset, search_term): Return a tuple containing a queryset to implement the search and a boolean indicating if the results may contain duplicates. """ + # Apply keyword searches. def construct_search(field_name): if field_name.startswith("^"): diff --git a/django/contrib/admin/static/admin/css/base.css b/django/contrib/admin/static/admin/css/base.css index 22010b7fa9fc2..1ff93e245ffd9 100644 --- a/django/contrib/admin/static/admin/css/base.css +++ b/django/contrib/admin/static/admin/css/base.css @@ -946,8 +946,11 @@ a.deletelink:focus, a.deletelink:hover { #user-tools a:focus, #user-tools a:hover, #logout-form button:active, #logout-form button:hover { text-decoration: none; - border-bottom-color: var(--primary); - color: var(--primary); + border-bottom: 0; +} + +#logout-form button:active, #logout-form button:hover { + margin-bottom: 1px; } /* SIDEBAR */ diff --git a/django/contrib/admin/static/admin/css/responsive.css b/django/contrib/admin/static/admin/css/responsive.css index 223dba0dd5508..9a4615d09e35a 100644 --- a/django/contrib/admin/static/admin/css/responsive.css +++ b/django/contrib/admin/static/admin/css/responsive.css @@ -45,7 +45,6 @@ input[type="submit"], button { #branding h1 { margin: 0 0 8px; - font-size: 1.25rem; line-height: 1.2; } diff --git a/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js b/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js index 9bad0f54cba39..176b0e3edce68 100644 --- a/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js +++ b/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js @@ -388,13 +388,7 @@ DateTimeShortcuts.calendars[num].drawNextMonth(); }, handleCalendarCallback: function(num) { - let format = get_format('DATE_INPUT_FORMATS')[0]; - // the format needs to be escaped a little - format = format.replace('\\', '\\\\') - .replace('\r', '\\r') - .replace('\n', '\\n') - .replace('\t', '\\t') - .replace("'", "\\'"); + const format = get_format('DATE_INPUT_FORMATS')[0]; return function(y, m, d) { DateTimeShortcuts.calendarInputs[num].value = new Date(y, m - 1, d).strftime(format); DateTimeShortcuts.calendarInputs[num].focus(); diff --git a/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js b/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js index 5c9c0d833d5a9..752dcad7bf29e 100644 --- a/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js +++ b/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js @@ -96,7 +96,8 @@ // Extract the model from the popup url '...//add/' or // '...///change/' depending the action (add or change). const modelName = path.split('/')[path.split('/').length - (objId ? 4 : 3)]; - const selectsRelated = document.querySelectorAll(`[data-model-ref="${modelName}"] select`); + // Exclude autocomplete selects. + const selectsRelated = document.querySelectorAll(`[data-model-ref="${modelName}"] select:not(.admin-autocomplete)`); selectsRelated.forEach(function(select) { if (currentSelect === select) { diff --git a/django/contrib/admin/static/admin/js/change_form.js b/django/contrib/admin/static/admin/js/change_form.js index 0ba16efef9818..96a4c62ef4c35 100644 --- a/django/contrib/admin/static/admin/js/change_form.js +++ b/django/contrib/admin/static/admin/js/change_form.js @@ -1,23 +1,9 @@ -/*global gettext*/ 'use strict'; { const inputTags = ['BUTTON', 'INPUT', 'SELECT', 'TEXTAREA']; const modelName = document.getElementById('django-admin-form-add-constants').dataset.modelName; - let submitted = false; - if (modelName) { const form = document.getElementById(modelName + '_form'); - - form.addEventListener('submit', (event) => { - event.preventDefault(); - if (submitted) { - const answer = window.confirm(gettext('You have already submitted this form. Are you sure you want to submit it again?')); - if (!answer) {return;} - }; - event.target.submit(); - submitted = true; - }); - for (const element of form.elements) { // HTMLElement.offsetParent returns null when the element is not // rendered. diff --git a/django/contrib/admin/static/admin/js/nav_sidebar.js b/django/contrib/admin/static/admin/js/nav_sidebar.js index 86cb1cf837d32..261a9d4992af4 100644 --- a/django/contrib/admin/static/admin/js/nav_sidebar.js +++ b/django/contrib/admin/static/admin/js/nav_sidebar.js @@ -13,6 +13,12 @@ navLink.tabIndex = 0; } } + function disableNavFilterTabbing() { + document.getElementById('nav-filter').tabIndex = -1; + } + function enableNavFilterTabbing() { + document.getElementById('nav-filter').tabIndex = 0; + } const main = document.getElementById('main'); let navSidebarIsOpen = localStorage.getItem('django.admin.navSidebarIsOpen'); @@ -21,6 +27,7 @@ } if (navSidebarIsOpen === 'false') { disableNavLinkTabbing(); + disableNavFilterTabbing(); } main.classList.toggle('shifted', navSidebarIsOpen === 'true'); @@ -28,9 +35,11 @@ if (navSidebarIsOpen === 'true') { navSidebarIsOpen = 'false'; disableNavLinkTabbing(); + disableNavFilterTabbing(); } else { navSidebarIsOpen = 'true'; enableNavLinkTabbing(); + enableNavFilterTabbing(); } localStorage.setItem('django.admin.navSidebarIsOpen', navSidebarIsOpen); main.classList.toggle('shifted'); diff --git a/django/contrib/admin/tests.py b/django/contrib/admin/tests.py index 70c3949fef4a2..dc857055b1176 100644 --- a/django/contrib/admin/tests.py +++ b/django/contrib/admin/tests.py @@ -17,7 +17,6 @@ def process_response(self, request, response): @modify_settings(MIDDLEWARE={"append": "django.contrib.admin.tests.CSPMiddleware"}) class AdminSeleniumTestCase(SeleniumTestCase, StaticLiveServerTestCase): - available_apps = [ "django.contrib.admin", "django.contrib.auth", diff --git a/django/contrib/admin/widgets.py b/django/contrib/admin/widgets.py index d48500e35603a..c7d5db209e856 100644 --- a/django/contrib/admin/widgets.py +++ b/django/contrib/admin/widgets.py @@ -456,7 +456,7 @@ def __init__(self, attrs=None): def get_select2_language(): lang_code = get_language() supported_code = SELECT2_TRANSLATIONS.get(lang_code) - if supported_code is None: + if supported_code is None and lang_code is not None: # If 'zh-hant-tw' is not supported, try subsequent language codes i.e. # 'zh-hant' and 'zh'. i = None diff --git a/django/contrib/admindocs/apps.py b/django/contrib/admindocs/apps.py index 2fda5fb4fb0e9..e79dc892cb442 100644 --- a/django/contrib/admindocs/apps.py +++ b/django/contrib/admindocs/apps.py @@ -1,15 +1,7 @@ from django.apps import AppConfig -from django.urls import get_resolver, get_urlconf from django.utils.translation import gettext_lazy as _ -from .utils import _active, register_callback - class AdminDocsConfig(AppConfig): name = "django.contrib.admindocs" verbose_name = _("Administrative Documentation") - - def ready(self): - urlconf = get_urlconf() - urlresolver = get_resolver(urlconf) - register_callback(urlresolver, _active.local_value) diff --git a/django/contrib/admindocs/locale/ar_DZ/LC_MESSAGES/django.mo b/django/contrib/admindocs/locale/ar_DZ/LC_MESSAGES/django.mo index c7a051998f440..541933d0e8c3e 100644 Binary files a/django/contrib/admindocs/locale/ar_DZ/LC_MESSAGES/django.mo and b/django/contrib/admindocs/locale/ar_DZ/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admindocs/locale/ar_DZ/LC_MESSAGES/django.po b/django/contrib/admindocs/locale/ar_DZ/LC_MESSAGES/django.po index 534386d0b9d9e..9a32599e1c5ee 100644 --- a/django/contrib/admindocs/locale/ar_DZ/LC_MESSAGES/django.po +++ b/django/contrib/admindocs/locale/ar_DZ/LC_MESSAGES/django.po @@ -1,14 +1,15 @@ # This file is distributed under the same license as the Django package. # # Translators: +# Jihad Bahmaid Al-Halki, 2022 # Riterix , 2019 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-08 17:27+0200\n" -"PO-Revision-Date: 2019-12-14 20:11+0000\n" -"Last-Translator: Riterix \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2022-07-24 20:19+0000\n" +"Last-Translator: Jihad Bahmaid Al-Halki\n" "Language-Team: Arabic (Algeria) (http://www.transifex.com/django/django/" "language/ar_DZ/)\n" "MIME-Version: 1.0\n" @@ -95,10 +96,10 @@ msgstr "الرجاء تثبيت docutils" #, python-format msgid "" -"The admin documentation system requires Python's docutils library." msgstr "" -"نظام توثيقات المشرف مكتبة بايثون docutils." +"نظام إدارة التوثيق يحتاج إلى وثيقةمن مكتبة بايثون " #, python-format msgid "" diff --git a/django/contrib/admindocs/locale/az/LC_MESSAGES/django.mo b/django/contrib/admindocs/locale/az/LC_MESSAGES/django.mo index c6947222090a5..3e0d63b1ae30f 100644 Binary files a/django/contrib/admindocs/locale/az/LC_MESSAGES/django.mo and b/django/contrib/admindocs/locale/az/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admindocs/locale/az/LC_MESSAGES/django.po b/django/contrib/admindocs/locale/az/LC_MESSAGES/django.po index 3a81e406a497a..76156dccde37f 100644 --- a/django/contrib/admindocs/locale/az/LC_MESSAGES/django.po +++ b/django/contrib/admindocs/locale/az/LC_MESSAGES/django.po @@ -2,13 +2,14 @@ # # Translators: # Ali Ismayilov , 2011 +# Nicat Məmmədov , 2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-19 16:40+0000\n" -"Last-Translator: Jannis Leidel \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2022-07-24 20:19+0000\n" +"Last-Translator: Nicat Məmmədov \n" "Language-Team: Azerbaijani (http://www.transifex.com/django/django/language/" "az/)\n" "MIME-Version: 1.0\n" @@ -18,7 +19,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "Administrative Documentation" -msgstr "" +msgstr "Administrativ Dokumentasiya" msgid "Home" msgstr "Ev" @@ -53,7 +54,7 @@ msgid "List of all the template tags and their functions." msgstr "" msgid "Filters" -msgstr "" +msgstr "Filterlər" msgid "" "Filters are actions which can be applied to variables in a template to alter " @@ -86,7 +87,7 @@ msgstr "" #, python-format msgid "" -"The admin documentation system requires Python's docutils library." msgstr "" @@ -137,16 +138,16 @@ msgid "Template: %(name)s" msgstr "" #, python-format -msgid "Template: \"%(name)s\"" +msgid "Template: %(name)s" msgstr "" #. Translators: Search is not a verb here, it qualifies path (a search path) #, python-format -msgid "Search path for template \"%(name)s\":" +msgid "Search path for template %(name)s:" msgstr "" msgid "(does not exist)" -msgstr "" +msgstr "(mövcud deyil)" msgid "Back to Documentation" msgstr "" diff --git a/django/contrib/admindocs/locale/bg/LC_MESSAGES/django.mo b/django/contrib/admindocs/locale/bg/LC_MESSAGES/django.mo index 035677857484d..8f522e138992c 100644 Binary files a/django/contrib/admindocs/locale/bg/LC_MESSAGES/django.mo and b/django/contrib/admindocs/locale/bg/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admindocs/locale/bg/LC_MESSAGES/django.po b/django/contrib/admindocs/locale/bg/LC_MESSAGES/django.po index 124d843720f47..cb702a1bb82da 100644 --- a/django/contrib/admindocs/locale/bg/LC_MESSAGES/django.po +++ b/django/contrib/admindocs/locale/bg/LC_MESSAGES/django.po @@ -12,8 +12,8 @@ msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2022-01-14 10:04+0000\n" -"Last-Translator: arneatec \n" +"PO-Revision-Date: 2022-05-25 07:05+0000\n" +"Last-Translator: arneatec , 2022\n" "Language-Team: Bulgarian (http://www.transifex.com/django/django/language/" "bg/)\n" "MIME-Version: 1.0\n" @@ -107,8 +107,8 @@ msgstr "Моля инсталирайте docutils" #, python-format msgid "" -"The admin documentation system requires Python’s docutils library." +"The admin documentation system requires Python’s docutils library." msgstr "" "Системата за администраторска документация изисква библиотеката за Python docutils." @@ -117,8 +117,8 @@ msgstr "" msgid "" "Please ask your administrators to install docutils." msgstr "" -"Моля, помолете вашите администратори да инсталират docutils ." +"Моля, помолете вашите администратори да инсталират docutils ." #, python-format msgid "Model: %(name)s" diff --git a/django/contrib/admindocs/locale/sv/LC_MESSAGES/django.mo b/django/contrib/admindocs/locale/sv/LC_MESSAGES/django.mo index f983cc79f7e6c..d20b69b46f042 100644 Binary files a/django/contrib/admindocs/locale/sv/LC_MESSAGES/django.mo and b/django/contrib/admindocs/locale/sv/LC_MESSAGES/django.mo differ diff --git a/django/contrib/admindocs/locale/sv/LC_MESSAGES/django.po b/django/contrib/admindocs/locale/sv/LC_MESSAGES/django.po index 58e38b30995a8..fe3635059986f 100644 --- a/django/contrib/admindocs/locale/sv/LC_MESSAGES/django.po +++ b/django/contrib/admindocs/locale/sv/LC_MESSAGES/django.po @@ -1,6 +1,7 @@ # This file is distributed under the same license as the Django package. # # Translators: +# Albin Larsson , 2022 # Andreas Pelme , 2012,2014 # Jannis Leidel , 2011 # Jonathan Lindén, 2014 @@ -12,8 +13,8 @@ msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-10-27 05:33+0000\n" -"Last-Translator: Tomas Lööw \n" +"PO-Revision-Date: 2022-07-24 20:19+0000\n" +"Last-Translator: Albin Larsson \n" "Language-Team: Swedish (http://www.transifex.com/django/django/language/" "sv/)\n" "MIME-Version: 1.0\n" @@ -161,12 +162,12 @@ msgstr "Mall: %(name)s" #, python-format msgid "Template: %(name)s" -msgstr "" +msgstr "Mall:%(name)s" #. Translators: Search is not a verb here, it qualifies path (a search path) #, python-format msgid "Search path for template %(name)s:" -msgstr "" +msgstr "Sökvägen för mall %(name)s:" msgid "(does not exist)" msgstr "(finns inte)" diff --git a/django/contrib/admindocs/utils.py b/django/contrib/admindocs/utils.py index a18dbe12cd258..6edff502ecd23 100644 --- a/django/contrib/admindocs/utils.py +++ b/django/contrib/admindocs/utils.py @@ -1,15 +1,11 @@ "Misc. utility functions/classes for admin documentation generator." -import functools import re from email.errors import HeaderParseError from email.parser import HeaderParser from inspect import cleandoc -from asgiref.local import Local - from django.urls import reverse -from django.urls.resolvers import URLPattern from django.utils.regex_helper import _lazy_re_compile from django.utils.safestring import mark_safe @@ -243,43 +239,3 @@ def remove_non_capturing_groups(pattern): final_pattern += pattern[prev_end:start] prev_end = end return final_pattern + pattern[prev_end:] - - -# Callback strings are cached in a dictionary for every urlconf. -# The active calback_strs are stored by thread id to make them thread local. -_callback_strs = set() -_active = Local() -_active.local_value = _callback_strs - - -def _is_callback(name, urlresolver=None): - if urlresolver and not urlresolver._populated: - register_callback(urlresolver, _active.local_value) - return name in _active.local_value - - -@functools.lru_cache(maxsize=None) -def lookup_str(urlpattern): - """ - A string that identifies the view (e.g. 'path.to.view_function' or - 'path.to.ClassBasedView'). - """ - callback = urlpattern.callback - if isinstance(callback, functools.partial): - callback = callback.func - if hasattr(callback, "view_class"): - callback = callback.view_class - elif not hasattr(callback, "__name__"): - return callback.__module__ + "." + callback.__class__.__name__ - return callback.__module__ + "." + callback.__qualname__ - - -def register_callback(urlresolver, thread): - for url_pattern in reversed(urlresolver.url_patterns): - if isinstance(url_pattern, URLPattern): - thread.add(lookup_str(url_pattern)) - else: # url_pattern is a URLResolver. - _active.url_pattern_value = _callback_strs - register_callback(url_pattern, _active.url_pattern_value) - thread.update(_active.url_pattern_value) - urlresolver._populated = True diff --git a/django/contrib/admindocs/views.py b/django/contrib/admindocs/views.py index f771e8f3912aa..a5e710835e627 100644 --- a/django/contrib/admindocs/views.py +++ b/django/contrib/admindocs/views.py @@ -30,7 +30,7 @@ from django.utils.translation import gettext as _ from django.views.generic import TemplateView -from .utils import _is_callback, get_view_name +from .utils import get_view_name # Exclude methods starting with these strings from documentation MODEL_METHODS_EXCLUDE = ("_", "add_", "delete", "save", "set_") @@ -148,7 +148,7 @@ def get_context_data(self, **kwargs): view_functions = extract_views_from_urlpatterns(url_resolver.url_patterns) except ImproperlyConfigured: view_functions = [] - for (func, regex, namespace, name) in view_functions: + for func, regex, namespace, name in view_functions: views.append( { "full_name": get_view_name(func), @@ -166,7 +166,8 @@ class ViewDetailView(BaseAdminDocsView): @staticmethod def _get_view_func(view): - if _is_callback(view): + urlconf = get_urlconf() + if get_resolver(urlconf)._is_callback(view): mod, func = get_mod_func(view) try: # Separate the module and function, e.g. diff --git a/django/contrib/auth/__init__.py b/django/contrib/auth/__init__.py index 155330c5963ba..2c81d62a0caae 100644 --- a/django/contrib/auth/__init__.py +++ b/django/contrib/auth/__init__.py @@ -199,12 +199,26 @@ def get_user(request): # Verify the session if hasattr(user, "get_session_auth_hash"): session_hash = request.session.get(HASH_SESSION_KEY) - session_hash_verified = session_hash and constant_time_compare( - session_hash, user.get_session_auth_hash() - ) + if not session_hash: + session_hash_verified = False + else: + session_auth_hash = user.get_session_auth_hash() + session_hash_verified = constant_time_compare( + session_hash, session_auth_hash + ) if not session_hash_verified: - request.session.flush() - user = None + # If the current secret does not verify the session, try + # with the fallback secrets and stop when a matching one is + # found. + if session_hash and any( + constant_time_compare(session_hash, fallback_auth_hash) + for fallback_auth_hash in user.get_session_auth_fallback_hash() + ): + request.session.cycle_key() + request.session[HASH_SESSION_KEY] = session_auth_hash + else: + request.session.flush() + user = None return user or AnonymousUser() diff --git a/django/contrib/auth/base_user.py b/django/contrib/auth/base_user.py index f6de3b931782e..54e11a494079b 100644 --- a/django/contrib/auth/base_user.py +++ b/django/contrib/auth/base_user.py @@ -4,6 +4,7 @@ """ import unicodedata +from django.conf import settings from django.contrib.auth import password_validation from django.contrib.auth.hashers import ( check_password, @@ -128,10 +129,18 @@ def get_session_auth_hash(self): """ Return an HMAC of the password field. """ + return self._get_session_auth_hash() + + def get_session_auth_fallback_hash(self): + for fallback_secret in settings.SECRET_KEY_FALLBACKS: + yield self._get_session_auth_hash(secret=fallback_secret) + + def _get_session_auth_hash(self, secret=None): key_salt = "django.contrib.auth.models.AbstractBaseUser.get_session_auth_hash" return salted_hmac( key_salt, self.password, + secret=secret, algorithm="sha256", ).hexdigest() diff --git a/django/contrib/auth/locale/ar_DZ/LC_MESSAGES/django.mo b/django/contrib/auth/locale/ar_DZ/LC_MESSAGES/django.mo index fd61c62c71601..203bf07c50f2d 100644 Binary files a/django/contrib/auth/locale/ar_DZ/LC_MESSAGES/django.mo and b/django/contrib/auth/locale/ar_DZ/LC_MESSAGES/django.mo differ diff --git a/django/contrib/auth/locale/ar_DZ/LC_MESSAGES/django.po b/django/contrib/auth/locale/ar_DZ/LC_MESSAGES/django.po index bed01f3f02a23..c2b9f34107c99 100644 --- a/django/contrib/auth/locale/ar_DZ/LC_MESSAGES/django.po +++ b/django/contrib/auth/locale/ar_DZ/LC_MESSAGES/django.po @@ -1,14 +1,15 @@ # This file is distributed under the same license as the Django package. # # Translators: +# Jihad Bahmaid Al-Halki, 2022 # Riterix , 2019 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-08 17:27+0200\n" -"PO-Revision-Date: 2019-12-14 22:38+0000\n" -"Last-Translator: Riterix \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2022-07-25 08:09+0000\n" +"Last-Translator: Jihad Bahmaid Al-Halki\n" "Language-Team: Arabic (Algeria) (http://www.transifex.com/django/django/" "language/ar_DZ/)\n" "MIME-Version: 1.0\n" @@ -135,6 +136,9 @@ msgstr "عامل العمل" msgid "checksum" msgstr "تدقيق المجموع" +msgid "block size" +msgstr "حجم البلوك (Block)" + msgid "name" msgstr "الاسم" diff --git a/django/contrib/auth/locale/az/LC_MESSAGES/django.mo b/django/contrib/auth/locale/az/LC_MESSAGES/django.mo index 4518a35a1539a..c14fb27f31a81 100644 Binary files a/django/contrib/auth/locale/az/LC_MESSAGES/django.mo and b/django/contrib/auth/locale/az/LC_MESSAGES/django.mo differ diff --git a/django/contrib/auth/locale/az/LC_MESSAGES/django.po b/django/contrib/auth/locale/az/LC_MESSAGES/django.po index 0db9a6ea3e718..7dd8670ded5a3 100644 --- a/django/contrib/auth/locale/az/LC_MESSAGES/django.po +++ b/django/contrib/auth/locale/az/LC_MESSAGES/django.po @@ -4,13 +4,14 @@ # Ali Ismayilov , 2011 # Emin Mastizada , 2018,2020 # Emin Mastizada , 2016 +# Nicat Məmmədov , 2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-08 17:27+0200\n" -"PO-Revision-Date: 2020-01-12 07:30+0000\n" -"Last-Translator: Emin Mastizada \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2022-07-25 08:09+0000\n" +"Last-Translator: Nicat Məmmədov \n" "Language-Team: Azerbaijani (http://www.transifex.com/django/django/language/" "az/)\n" "MIME-Version: 1.0\n" @@ -33,53 +34,53 @@ msgid "%(name)s object with primary key %(key)r does not exist." msgstr "Əsas %(key)r açarı ilə %(name)s obyekti mövcud deyil." msgid "Password changed successfully." -msgstr "Parol uğurla dəyişdirildi" +msgstr "Şifrə uğurla dəyişdirildi." #, python-format msgid "Change password: %s" -msgstr "Parolu dəyiş: %s" +msgstr "Şifrəni dəyiş: %s" msgid "Authentication and Authorization" msgstr "Təsdiqləmə və Səlahiyyət" msgid "password" -msgstr "parol" +msgstr "şifrə" msgid "last login" msgstr "son dəfə daxil olub" msgid "No password set." -msgstr "Parol qurulmayıb." +msgstr "Şifrə təyin olunmayıb." msgid "Invalid password format or unknown hashing algorithm." -msgstr "Xətalı parol formatı və ya bilinməyən heş alqoritması." +msgstr "Xətalı şifrə formatı və ya bilinməyən heş alqoritması." msgid "The two password fields didn’t match." -msgstr "İki parol sahələrinin dəyərləri üst-üstə düşmədi." +msgstr "Şifrə xanalarının dəyərləri eyni deyil." msgid "Password" -msgstr "Parol" +msgstr "Şifrə" msgid "Password confirmation" -msgstr "Parolun təsdiqi" +msgstr "Şifrənin təsdiqi" msgid "Enter the same password as before, for verification." -msgstr "Təsdiqləmək üçün əvvəlki ilə eyni parolu daxil edin." +msgstr "Təsdiqləmək üçün əvvəlki ilə eyni şifrəni daxil edin." msgid "" "Raw passwords are not stored, so there is no way to see this user’s " "password, but you can change the password using this form." msgstr "" -"Düz parollar saxlanmadığı üçün bu istifadəçinin parolunu görmək mümkün " -"deyil, amma bu formadan istifadə edərək parolunu dəyişə " -"bilərsiz." +"Şifrələr açıq formada saxlanılmadığı üçün bu istifadəçinin şifrəsini görmək " +"mümkün deyil, amma bu formadan istifadə edərək şifrəni " +"dəyişə bilərsiz." #, python-format msgid "" "Please enter a correct %(username)s and password. Note that both fields may " "be case-sensitive." msgstr "" -"Lütfən düzgün %(username)s və parol daxil edin. Nəzərə alın ki, hər ikisi " +"Lütfən düzgün %(username)s və şifrə daxil edin. Nəzərə alın ki, hər ikisi də " "böyük-kiçik hərflərə həssasdırlar." msgid "This account is inactive." @@ -89,20 +90,19 @@ msgid "Email" msgstr "E-poçt" msgid "New password" -msgstr "Yeni parol" +msgstr "Yeni şifrə" msgid "New password confirmation" -msgstr "Yeni parolun təsdiqi" +msgstr "Yeni şifrənin təsdiqi" msgid "Your old password was entered incorrectly. Please enter it again." -msgstr "" -"Köhnə parolu səhv daxil etdiniz. Bir daha cəhd etməyinizi xahiş edirik." +msgstr "Köhnə şifrəni yanlış daxil etdiniz. Zəhmət olmasa bir daha yoxlayın." msgid "Old password" -msgstr "Köhnə parol" +msgstr "Köhnə şifrə" msgid "Password (again)" -msgstr "Parol (bir daha)" +msgstr "Şifrə (bir daha)" msgid "algorithm" msgstr "alqoritm" @@ -137,6 +137,9 @@ msgstr "iş faktoru" msgid "checksum" msgstr "yoxlama dəyəri" +msgid "block size" +msgstr "" + msgid "name" msgstr "ad" @@ -230,36 +233,37 @@ msgid_plural "" "This password is too short. It must contain at least %(min_length)d " "characters." msgstr[0] "Bu parol çox qısadır. Ən az %(min_length)d işarə olmalıdır." -msgstr[1] "Bu parol çox qısadır. Ən az %(min_length)d işarə olmalıdır." +msgstr[1] "" +"Bu şifrə çox qısadır. Ən az %(min_length)d simvoldan ibarət olmalıdır." #, python-format msgid "Your password must contain at least %(min_length)d character." msgid_plural "Your password must contain at least %(min_length)d characters." msgstr[0] "Parolunuz ən az %(min_length)d işarə olmalıdır." -msgstr[1] "Parolunuz ən az %(min_length)d işarə olmalıdır." +msgstr[1] "Şifrəniz ən az %(min_length)d simvoldan ibarət olmalıdır." #, python-format msgid "The password is too similar to the %(verbose_name)s." -msgstr "Parolunuz %(verbose_name)s ilə çox bənzərdir." +msgstr "Şifrəniz %(verbose_name)s ilə çox bənzərdir." msgid "Your password can’t be too similar to your other personal information." -msgstr "Parolunuz digər şəxsi məlumatlarınıza çox bənzərdir." +msgstr "Şifrəniz digər şəxsi məlumatlarınıza çox bənzərdir." msgid "This password is too common." -msgstr "Bu parol çox ümumidir." +msgstr "Bu şifrə çox asandır." msgid "Your password can’t be a commonly used password." -msgstr "Parolunuz çox istifadə edilən ümumişlək olmamalıdır." +msgstr "Şifrəniz çox istifadə edilən, ümumişlək olmamalıdır." msgid "This password is entirely numeric." -msgstr "Bu parol ancaq rəqəmlərlədir." +msgstr "Bu şifrə ancaq rəqəmlərdən ibarətdir." msgid "Your password can’t be entirely numeric." -msgstr "Parolunuz ancaq rəqəmlərlə ola bilməz." +msgstr "Şifrəniz ancaq rəqəmlərdən ibarət ola bilməz." #, python-format msgid "Password reset on %(site_name)s" -msgstr "%(site_name)s, parolun sıfırlanması" +msgstr "%(site_name)s, şifrənin sıfırlanması" msgid "" "Enter a valid username. This value may contain only English letters, " @@ -279,22 +283,22 @@ msgid "Logged out" msgstr "Çıxdınız" msgid "Password reset" -msgstr "Parol sıfırlama" +msgstr "Şifrənin sıfırlanması" msgid "Password reset sent" -msgstr "Parol sıfırlama göndərildi" +msgstr "Şifrə sıfırlanması göndərildi" msgid "Enter new password" -msgstr "Yeni parolu daxil edin" +msgstr "Yeni şifrəni daxil edin" msgid "Password reset unsuccessful" -msgstr "Parol müvəffəqiyyətlə sıfırlandı" +msgstr "Şifrə sıfırlanması uğursuz oldu" msgid "Password reset complete" -msgstr "Parol sıfırlama tamamlandı" +msgstr "Şifrə sıfırlanması tamamlandı" msgid "Password change" -msgstr "Parol dəyişdirmə" +msgstr "Şifrənin dəyişdirilməsi" msgid "Password change successful" -msgstr "Parol müvəffəqiyyətlə dəyişdirildi" +msgstr "Şifrə uğurla dəyişdirildi" diff --git a/django/contrib/auth/locale/bg/LC_MESSAGES/django.mo b/django/contrib/auth/locale/bg/LC_MESSAGES/django.mo index 1d682adb8ac0e..37f90f573129c 100644 Binary files a/django/contrib/auth/locale/bg/LC_MESSAGES/django.mo and b/django/contrib/auth/locale/bg/LC_MESSAGES/django.mo differ diff --git a/django/contrib/auth/locale/bg/LC_MESSAGES/django.po b/django/contrib/auth/locale/bg/LC_MESSAGES/django.po index 63b556eed6a16..878d5157d2d0b 100644 --- a/django/contrib/auth/locale/bg/LC_MESSAGES/django.po +++ b/django/contrib/auth/locale/bg/LC_MESSAGES/django.po @@ -14,8 +14,8 @@ msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2022-01-14 10:14+0000\n" -"Last-Translator: arneatec \n" +"PO-Revision-Date: 2022-04-24 20:19+0000\n" +"Last-Translator: arneatec , 2022\n" "Language-Team: Bulgarian (http://www.transifex.com/django/django/language/" "bg/)\n" "MIME-Version: 1.0\n" @@ -76,8 +76,8 @@ msgid "" "password, but you can change the password using this form." msgstr "" "Паролите не се съхраняват в чист вид, така че е невъзможно да видите " -"паролата на този потребител, но можете да промените паролата чрез този формуляр." +"паролата на този потребител, но можете да промените паролата чрез този формуляр." #, python-format msgid "" @@ -239,9 +239,9 @@ msgid_plural "" "This password is too short. It must contain at least %(min_length)d " "characters." msgstr[0] "" -"Паролата е прекелно къса. Трябва да съдържа поне %(min_length)d символ." +"Паролата е прекалено къса. Трябва да съдържа поне %(min_length)d символ." msgstr[1] "" -"Паролата е прекелно къса. Трябва да съдържа поне %(min_length)d символа." +"Паролата е прекалено къса. Трябва да съдържа поне %(min_length)d символа." #, python-format msgid "Your password must contain at least %(min_length)d character." diff --git a/django/contrib/auth/locale/ca/LC_MESSAGES/django.mo b/django/contrib/auth/locale/ca/LC_MESSAGES/django.mo index 4f72ce387f199..c53f782e070de 100644 Binary files a/django/contrib/auth/locale/ca/LC_MESSAGES/django.mo and b/django/contrib/auth/locale/ca/LC_MESSAGES/django.mo differ diff --git a/django/contrib/auth/locale/ca/LC_MESSAGES/django.po b/django/contrib/auth/locale/ca/LC_MESSAGES/django.po index 65e03ec167354..ae4a6d5423cf2 100644 --- a/django/contrib/auth/locale/ca/LC_MESSAGES/django.po +++ b/django/contrib/auth/locale/ca/LC_MESSAGES/django.po @@ -3,6 +3,7 @@ # Translators: # Antoni Aloy , 2015,2017,2021 # Carles Barrobés , 2011-2012,2014-2015 +# Carles Pina Estany, 2022 # Gil Obradors Via , 2019 # Gil Obradors Via , 2019-2020 # Jannis Leidel , 2011 @@ -14,8 +15,8 @@ msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-10-27 08:48+0000\n" -"Last-Translator: Antoni Aloy \n" +"PO-Revision-Date: 2022-07-25 08:09+0000\n" +"Last-Translator: Carles Pina Estany\n" "Language-Team: Catalan (http://www.transifex.com/django/django/language/" "ca/)\n" "MIME-Version: 1.0\n" @@ -143,7 +144,7 @@ msgid "checksum" msgstr "suma de comprovació" msgid "block size" -msgstr "tamany de bloc" +msgstr "mida de bloc" msgid "name" msgstr "nom" diff --git a/django/contrib/auth/locale/eo/LC_MESSAGES/django.mo b/django/contrib/auth/locale/eo/LC_MESSAGES/django.mo index 5405971b5d8de..5fe6729ab6e2f 100644 Binary files a/django/contrib/auth/locale/eo/LC_MESSAGES/django.mo and b/django/contrib/auth/locale/eo/LC_MESSAGES/django.mo differ diff --git a/django/contrib/auth/locale/eo/LC_MESSAGES/django.po b/django/contrib/auth/locale/eo/LC_MESSAGES/django.po index a1d711d50a509..82a84ad81a323 100644 --- a/django/contrib/auth/locale/eo/LC_MESSAGES/django.po +++ b/django/contrib/auth/locale/eo/LC_MESSAGES/django.po @@ -4,14 +4,15 @@ # Batist D 🐍 , 2012-2013 # Batist D 🐍 , 2013-2019 # Matthieu Desplantes , 2021 -# Robin van der Vliet , 2019 +# Meiyer , 2022 +# Robin van der Vliet , 2019 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-08 17:27+0200\n" -"PO-Revision-Date: 2021-04-13 08:08+0000\n" -"Last-Translator: Matthieu Desplantes \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2022-04-25 08:09+0000\n" +"Last-Translator: Meiyer , 2022\n" "Language-Team: Esperanto (http://www.transifex.com/django/django/language/" "eo/)\n" "MIME-Version: 1.0\n" @@ -31,7 +32,7 @@ msgstr "Gravaj datoj" #, python-format msgid "%(name)s object with primary key %(key)r does not exist." -msgstr "%(name)s objekto kun ĉefŝlosilo %(key)r ne ekzistas." +msgstr "Objekto %(name)skun ĉefŝlosilo %(key)r ne ekzistas." msgid "Password changed successfully." msgstr "Pasvorto suksese ŝanĝita." @@ -72,8 +73,8 @@ msgid "" "password, but you can change the password using this form." msgstr "" "La pasvortoj ne estas konservitaj en klara formo, do ne eblas vidi la " -"pasvorton de ĉi tiu uzanto, sed vi povas ŝanĝi la pasvorton per ĉi tiu formularo." +"pasvorton de ĉi tiu uzanto, sed vi povas ŝanĝi la pasvorton per ĉi tiu formularo." #, python-format msgid "" @@ -124,10 +125,10 @@ msgid "version" msgstr "versio" msgid "memory cost" -msgstr "memoria kosto" +msgstr "memor-kosto" msgid "time cost" -msgstr "tempa kosto" +msgstr "tempo-kosto" msgid "parallelism" msgstr "paralelismo" @@ -138,6 +139,9 @@ msgstr "laborfaktoro" msgid "checksum" msgstr "kontrolsumo" +msgid "block size" +msgstr "blok-grandeco" + msgid "name" msgstr "nomo" @@ -166,14 +170,14 @@ msgid "" "Designates that this user has all permissions without explicitly assigning " "them." msgstr "" -"Indikas ke tiu uzanto havas ĉiujn permesojn, sen eksplicite asigni ilin." +"Indikas ke tiu ĉi uzanto havas ĉiujn permesojn, sen eksplicite atribui ilin." msgid "" "The groups this user belongs to. A user will get all permissions granted to " "each of their groups." msgstr "" -"La grupoj en kiu tiu uzanto apartenas. Uzanto akiros ĉiuj permesoj donita al " -"ĉiuj de iliaj grupoj." +"La grupoj al kiuj tiu ĉi uzanto apartenas. Uzanto akiros ĉiujn permesojn " +"atribuitajn al ĉiu el tiuj grupoj." msgid "user permissions" msgstr "uzantaj permesoj" @@ -212,11 +216,11 @@ msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." msgstr "" -"Indikas ĉu tiu uzanto devus esti traktita kiel aktiva. Malselekti tion ĉi " +"Indikas ĉu la uzanto devus esti traktita kiel aktiva. Malmarku tion ĉi " "anstataŭ forigi kontojn." msgid "date joined" -msgstr "dato aliĝita" +msgstr "dato de aliĝo" msgid "user" msgstr "uzanto" @@ -258,7 +262,7 @@ msgid "Your password can’t be a commonly used password." msgstr "Via pasvorto ne povas esti ofte uzata pasvorto." msgid "This password is entirely numeric." -msgstr "Tiu pasvorto estas tute cefera." +msgstr "Tiu ĉi pasvorto konsistas nur el ciferoj." msgid "Your password can’t be entirely numeric." msgstr "Via pasvorto ne povas konsisti nur el ciferoj." @@ -271,15 +275,15 @@ msgid "" "Enter a valid username. This value may contain only English letters, " "numbers, and @/./+/-/_ characters." msgstr "" -"Enigu validan uzantnomon. Ĉi tiu valoro povas enhavi nur sensupersignajn " -"literojn, ciferojn kaj la signojn @/./+/-/_." +"Enigu salutnomon en ĝusta formo. Ĉi tiu valoro povas enhavi nur " +"sensupersignajn literojn, ciferojn kaj la signojn @/./+/-/_." msgid "" "Enter a valid username. This value may contain only letters, numbers, and " "@/./+/-/_ characters." msgstr "" -"Enigu validan uzantnomon. Ĉi tiu valoro povas enhavi nur literojn, ciferojn " -"kaj la signojn @/./+/-/_." +"Enigu salutnomon en ĝusta formo. Ĉi tiu valoro povas enhavi nur literojn, " +"ciferojn kaj la signojn @/./+/-/_." msgid "Logged out" msgstr "Adiaŭita" diff --git a/django/contrib/auth/locale/es/LC_MESSAGES/django.mo b/django/contrib/auth/locale/es/LC_MESSAGES/django.mo index 4dc2c96386363..c2195be76eb30 100644 Binary files a/django/contrib/auth/locale/es/LC_MESSAGES/django.mo and b/django/contrib/auth/locale/es/LC_MESSAGES/django.mo differ diff --git a/django/contrib/auth/locale/es/LC_MESSAGES/django.po b/django/contrib/auth/locale/es/LC_MESSAGES/django.po index fbbc61ed603d4..a1f480cfd9ad3 100644 --- a/django/contrib/auth/locale/es/LC_MESSAGES/django.po +++ b/django/contrib/auth/locale/es/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ # Antoni Aloy , 2012-2013,2015-2017 # e4db27214f7e7544f2022c647b585925_bb0e321, 2015-2016 # e4db27214f7e7544f2022c647b585925_bb0e321, 2020 -# Ernesto Rico Schmidt , 2017 +# Ernesto Rico Schmidt , 2017 # guillem , 2012 # Igor Támara , 2015 # Jannis Leidel , 2011 @@ -18,8 +18,8 @@ msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-10 03:52+0000\n" -"Last-Translator: Uriel Medina \n" +"PO-Revision-Date: 2022-04-25 08:09+0000\n" +"Last-Translator: Uriel Medina , 2020-2021\n" "Language-Team: Spanish (http://www.transifex.com/django/django/language/" "es/)\n" "MIME-Version: 1.0\n" @@ -80,8 +80,8 @@ msgid "" "password, but you can change the password using this form." msgstr "" "Las contraseñas no se almacenan en bruto, así que no hay manera de ver la " -"contraseña del usuario, pero se puede cambiar la contraseña mediante este formulario." +"contraseña del usuario, pero se puede cambiar la contraseña mediante este formulario." #, python-format msgid "" @@ -251,12 +251,16 @@ msgstr[0] "" msgstr[1] "" "Esta contraseña es demasiado corta. Debe contener al menos %(min_length)d " "caracteres." +msgstr[2] "" +"Esta contraseña es demasiado corta. Debe contener al menos %(min_length)d " +"caracteres." #, python-format msgid "Your password must contain at least %(min_length)d character." msgid_plural "Your password must contain at least %(min_length)d characters." msgstr[0] "Su contraseña debe contener al menos %(min_length)d caracter." msgstr[1] "Su contraseña debe contener al menos %(min_length)d caracteres." +msgstr[2] "Su contraseña debe contener al menos %(min_length)d caracteres." #, python-format msgid "The password is too similar to the %(verbose_name)s." diff --git a/django/contrib/auth/locale/id/LC_MESSAGES/django.mo b/django/contrib/auth/locale/id/LC_MESSAGES/django.mo index 958b2f72c7c7f..232b3f5c4a4e1 100644 Binary files a/django/contrib/auth/locale/id/LC_MESSAGES/django.mo and b/django/contrib/auth/locale/id/LC_MESSAGES/django.mo differ diff --git a/django/contrib/auth/locale/id/LC_MESSAGES/django.po b/django/contrib/auth/locale/id/LC_MESSAGES/django.po index 6af7984b7f0c8..d1c7f280b726e 100644 --- a/django/contrib/auth/locale/id/LC_MESSAGES/django.po +++ b/django/contrib/auth/locale/id/LC_MESSAGES/django.po @@ -1,18 +1,18 @@ # This file is distributed under the same license as the Django package. # # Translators: -# Fery Setiawan , 2015-2016,2018,2020 +# Fery Setiawan , 2015-2016,2018,2020-2021 # Jannis Leidel , 2011 # oon arfiandwi , 2016 # rodin , 2011,2013 # rodin , 2013-2016 -# sage , 2019 +# sag᠎e , 2019 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-08 17:27+0200\n" -"PO-Revision-Date: 2020-02-06 01:43+0000\n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2021-12-25 08:09+0000\n" "Last-Translator: Fery Setiawan \n" "Language-Team: Indonesian (http://www.transifex.com/django/django/language/" "id/)\n" @@ -138,6 +138,9 @@ msgstr "faktor kerja" msgid "checksum" msgstr "ceksum" +msgid "block size" +msgstr "ukuran blok" + msgid "name" msgstr "nama" diff --git a/django/contrib/auth/locale/lv/LC_MESSAGES/django.mo b/django/contrib/auth/locale/lv/LC_MESSAGES/django.mo index eb9c0477d6f38..e7c05ab5544f1 100644 Binary files a/django/contrib/auth/locale/lv/LC_MESSAGES/django.mo and b/django/contrib/auth/locale/lv/LC_MESSAGES/django.mo differ diff --git a/django/contrib/auth/locale/lv/LC_MESSAGES/django.po b/django/contrib/auth/locale/lv/LC_MESSAGES/django.po index 93ac269d6e28a..410e84feb5ba0 100644 --- a/django/contrib/auth/locale/lv/LC_MESSAGES/django.po +++ b/django/contrib/auth/locale/lv/LC_MESSAGES/django.po @@ -1,18 +1,18 @@ # This file is distributed under the same license as the Django package. # # Translators: -# NullIsNot0 , 2017 -# NullIsNot0 , 2017 +# Edgars Voroboks , 2017,2022 +# Edgars Voroboks , 2017 # Jannis Leidel , 2011 -# NullIsNot0 , 2019,2021 +# Edgars Voroboks , 2019,2021 # peterisb , 2016 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-10-06 05:08+0000\n" -"Last-Translator: NullIsNot0 \n" +"PO-Revision-Date: 2022-07-25 08:09+0000\n" +"Last-Translator: Edgars Voroboks \n" "Language-Team: Latvian (http://www.transifex.com/django/django/language/" "lv/)\n" "MIME-Version: 1.0\n" @@ -81,8 +81,8 @@ msgid "" "Please enter a correct %(username)s and password. Note that both fields may " "be case-sensitive." msgstr "" -"Lūdzu ievadi korektu %(username)s un paroli personāla kontam. Ņem vērā, ka " -"abi ievades lauki ir reģistr jūtīgi." +"Lūdzu ievadiet korektu informāciju laukos %(username)s un parole. Ņemiet " +"vērā, ka abi ievades lauki ir reģistrjutīgi." msgid "This account is inactive." msgstr "Šis konts nav aktīvs." @@ -185,7 +185,7 @@ msgid "Specific permissions for this user." msgstr "Lietotāja specifiskās tiesības." msgid "username" -msgstr "lietotāja vārds" +msgstr "lietotājvārds" msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only." msgstr "Obligāts. 150 vai mazāk zīmes. Tikai burti, cipari un @/./+/-/_ ." diff --git a/django/contrib/auth/locale/nl/LC_MESSAGES/django.mo b/django/contrib/auth/locale/nl/LC_MESSAGES/django.mo index 7b87e16b56622..ff5a2cd881bfa 100644 Binary files a/django/contrib/auth/locale/nl/LC_MESSAGES/django.mo and b/django/contrib/auth/locale/nl/LC_MESSAGES/django.mo differ diff --git a/django/contrib/auth/locale/nl/LC_MESSAGES/django.po b/django/contrib/auth/locale/nl/LC_MESSAGES/django.po index 900c14f7eebe0..21bef5d0ff986 100644 --- a/django/contrib/auth/locale/nl/LC_MESSAGES/django.po +++ b/django/contrib/auth/locale/nl/LC_MESSAGES/django.po @@ -9,16 +9,16 @@ # Ilja Maas , 2015 # jaap3 , 2016 # Jannis Leidel , 2011 -# Jeffrey Gelens , 2011-2012 -# Sander Steffann , 2015 +# 6a27f10aef159701c7a5ff07f0fb0a78_05545ed , 2011-2012 +# 8de006b1b0894aab6aef71979dcd8bd6_5c6b207 , 2015 # Tino de Bruijn , 2011 -# Tonnes , 2019 +# Tonnes , 2019,2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-08 17:27+0200\n" -"PO-Revision-Date: 2019-09-17 08:42+0000\n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2022-07-25 08:09+0000\n" "Last-Translator: Tonnes \n" "Language-Team: Dutch (http://www.transifex.com/django/django/language/nl/)\n" "MIME-Version: 1.0\n" @@ -144,6 +144,9 @@ msgstr "arbeidsfactor" msgid "checksum" msgstr "checksum" +msgid "block size" +msgstr "blokgrootte" + msgid "name" msgstr "naam" diff --git a/django/contrib/auth/locale/pt_BR/LC_MESSAGES/django.mo b/django/contrib/auth/locale/pt_BR/LC_MESSAGES/django.mo index 0e6f393db5b8b..dd8d149d73f83 100644 Binary files a/django/contrib/auth/locale/pt_BR/LC_MESSAGES/django.mo and b/django/contrib/auth/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/django/contrib/auth/locale/pt_BR/LC_MESSAGES/django.po b/django/contrib/auth/locale/pt_BR/LC_MESSAGES/django.po index 4e4f056144fb9..7d8846e6a5463 100644 --- a/django/contrib/auth/locale/pt_BR/LC_MESSAGES/django.po +++ b/django/contrib/auth/locale/pt_BR/LC_MESSAGES/django.po @@ -5,8 +5,8 @@ # Amanda Savluchinske , 2019 # amcorreia , 2018 # Camilo B. Moreira , 2017 -# Carlos C. Leite , 2016 -# Filipe Cifali Stangler , 2016 +# Carlos Leite , 2016 +# Filipe Cifali , 2016 # Claudemiro Alves Feitosa Neto , 2015 # dudanogueira , 2012 # dudanogueira , 2014 @@ -15,16 +15,18 @@ # Fábio C. Barrionuevo da Luz , 2015 # gilberto dos santos alves , 2013 # semente, 2012 +# Guilherme, 2022 # Jannis Leidel , 2011 # Lucas Infante , 2015 +# Rafael Fontenelle , 2022 # Sandro , 2011 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-08 17:27+0200\n" -"PO-Revision-Date: 2019-12-11 00:21+0000\n" -"Last-Translator: Amanda Savluchinske \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2022-04-25 08:09+0000\n" +"Last-Translator: Guilherme, 2022\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/django/django/" "language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -85,8 +87,8 @@ msgid "" "password, but you can change the password using this form." msgstr "" "Senhas brutas não são armazenadas, então não há como visualizar a senha " -"desse usuário, porém você pode mudar a senha usandoesse form." +"desse usuário, porém você pode mudar a senha usando esse " +"form." #, python-format msgid "" @@ -151,6 +153,9 @@ msgstr "fator de trabalho" msgid "checksum" msgstr "checksum" +msgid "block size" +msgstr "tamanho de bloco" + msgid "name" msgstr "nome" @@ -252,12 +257,16 @@ msgstr[0] "" msgstr[1] "" "Esta senha é muito curta. Ela precisa conter pelo menos %(min_length)d " "caracteres." +msgstr[2] "" +"Esta senha é muito curta. Ela precisa conter pelo menos %(min_length)d " +"caracteres." #, python-format msgid "Your password must contain at least %(min_length)d character." msgid_plural "Your password must contain at least %(min_length)d characters." msgstr[0] "Sua senha precisa conter pelo menos %(min_length)d caracteres." msgstr[1] "Sua senha precisa conter pelo menos %(min_length)d caracteres." +msgstr[2] "Sua senha precisa conter pelo menos %(min_length)d caracteres." #, python-format msgid "The password is too similar to the %(verbose_name)s." diff --git a/django/contrib/auth/locale/ru/LC_MESSAGES/django.mo b/django/contrib/auth/locale/ru/LC_MESSAGES/django.mo index 6fdaf745066db..17a60406cb695 100644 Binary files a/django/contrib/auth/locale/ru/LC_MESSAGES/django.mo and b/django/contrib/auth/locale/ru/LC_MESSAGES/django.mo differ diff --git a/django/contrib/auth/locale/ru/LC_MESSAGES/django.po b/django/contrib/auth/locale/ru/LC_MESSAGES/django.po index 84eec34dba919..1de18477e9ede 100644 --- a/django/contrib/auth/locale/ru/LC_MESSAGES/django.po +++ b/django/contrib/auth/locale/ru/LC_MESSAGES/django.po @@ -4,26 +4,26 @@ # crazyzubr , 2020 # Ivan Khomutov , 2017 # Jannis Leidel , 2011 -# Алексей Борискин , 2012-2015 +# Алексей Борискин , 2012-2015,2022 # Андрей Щуров , 2016 # Влад Мещеряков , 2021 -# Дмитрий Шатера , 2016 +# Bobsans , 2016 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-08 17:27+0200\n" -"PO-Revision-Date: 2021-05-02 03:02+0000\n" -"Last-Translator: Влад Мещеряков \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2022-04-25 08:09+0000\n" +"Last-Translator: Алексей Борискин , 2012-2015,2022\n" "Language-Team: Russian (http://www.transifex.com/django/django/language/" "ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" -"%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " +"(n%100>=11 && n%100<=14)? 2 : 3);\n" msgid "Personal info" msgstr "Персональная информация" @@ -77,8 +77,8 @@ msgid "" "password, but you can change the password using this form." msgstr "" "Пароли хранятся в зашифрованном виде, поэтому нет возможности посмотреть " -"пароль этого пользователя, но вы можете изменить его используя эту форму." +"пароль этого пользователя, но вы можете изменить его используя эту форму." #, python-format msgid "" @@ -142,6 +142,9 @@ msgstr "рабочий фактор" msgid "checksum" msgstr "контрольная сумма" +msgid "block size" +msgstr "размер блока" + msgid "name" msgstr "имя" diff --git a/django/contrib/auth/locale/sv/LC_MESSAGES/django.mo b/django/contrib/auth/locale/sv/LC_MESSAGES/django.mo index 040a1e582951a..4461738c1726a 100644 Binary files a/django/contrib/auth/locale/sv/LC_MESSAGES/django.mo and b/django/contrib/auth/locale/sv/LC_MESSAGES/django.mo differ diff --git a/django/contrib/auth/locale/sv/LC_MESSAGES/django.po b/django/contrib/auth/locale/sv/LC_MESSAGES/django.po index d04385e6036d4..8f2ed9d7bcb79 100644 --- a/django/contrib/auth/locale/sv/LC_MESSAGES/django.po +++ b/django/contrib/auth/locale/sv/LC_MESSAGES/django.po @@ -1,6 +1,7 @@ # This file is distributed under the same license as the Django package. # # Translators: +# Albin Larsson , 2022 # Alex Nordlund , 2012 # Cybjit , 2012 # Jannis Leidel , 2011 @@ -16,9 +17,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-08 17:27+0200\n" -"PO-Revision-Date: 2021-05-06 05:59+0000\n" -"Last-Translator: Tomas Lööw \n" +"POT-Creation-Date: 2021-09-21 10:22+0200\n" +"PO-Revision-Date: 2022-07-25 08:09+0000\n" +"Last-Translator: Albin Larsson \n" "Language-Team: Swedish (http://www.transifex.com/django/django/language/" "sv/)\n" "MIME-Version: 1.0\n" @@ -41,7 +42,7 @@ msgid "%(name)s object with primary key %(key)r does not exist." msgstr "%(name)s-objekt med primärnyckel %(key)r finns inte." msgid "Password changed successfully." -msgstr "Lösenordet ändrades." +msgstr "Lösenordet ändrades framgångsrikt." #, python-format msgid "Change password: %s" @@ -143,6 +144,9 @@ msgstr "arbetsfaktor" msgid "checksum" msgstr "kontrollsumma" +msgid "block size" +msgstr "blockstorlek" + msgid "name" msgstr "namn" diff --git a/django/contrib/auth/migrations/0001_initial.py b/django/contrib/auth/migrations/0001_initial.py index 3d1635f461ca1..cfeaa3aeae0a0 100644 --- a/django/contrib/auth/migrations/0001_initial.py +++ b/django/contrib/auth/migrations/0001_initial.py @@ -5,7 +5,6 @@ class Migration(migrations.Migration): - dependencies = [ ("contenttypes", "__first__"), ] diff --git a/django/contrib/auth/migrations/0002_alter_permission_name_max_length.py b/django/contrib/auth/migrations/0002_alter_permission_name_max_length.py index a9ca6f51a90cc..67a9560aa8573 100644 --- a/django/contrib/auth/migrations/0002_alter_permission_name_max_length.py +++ b/django/contrib/auth/migrations/0002_alter_permission_name_max_length.py @@ -2,7 +2,6 @@ class Migration(migrations.Migration): - dependencies = [ ("auth", "0001_initial"), ] diff --git a/django/contrib/auth/migrations/0003_alter_user_email_max_length.py b/django/contrib/auth/migrations/0003_alter_user_email_max_length.py index 8a575484604fd..13d437e72e1be 100644 --- a/django/contrib/auth/migrations/0003_alter_user_email_max_length.py +++ b/django/contrib/auth/migrations/0003_alter_user_email_max_length.py @@ -2,7 +2,6 @@ class Migration(migrations.Migration): - dependencies = [ ("auth", "0002_alter_permission_name_max_length"), ] diff --git a/django/contrib/auth/migrations/0004_alter_user_username_opts.py b/django/contrib/auth/migrations/0004_alter_user_username_opts.py index 6930e9bccbc96..f3fe36adcb43f 100644 --- a/django/contrib/auth/migrations/0004_alter_user_username_opts.py +++ b/django/contrib/auth/migrations/0004_alter_user_username_opts.py @@ -3,7 +3,6 @@ class Migration(migrations.Migration): - dependencies = [ ("auth", "0003_alter_user_email_max_length"), ] diff --git a/django/contrib/auth/migrations/0005_alter_user_last_login_null.py b/django/contrib/auth/migrations/0005_alter_user_last_login_null.py index 8407e2d82253e..42b584e9f5f9e 100644 --- a/django/contrib/auth/migrations/0005_alter_user_last_login_null.py +++ b/django/contrib/auth/migrations/0005_alter_user_last_login_null.py @@ -2,7 +2,6 @@ class Migration(migrations.Migration): - dependencies = [ ("auth", "0004_alter_user_username_opts"), ] diff --git a/django/contrib/auth/migrations/0006_require_contenttypes_0002.py b/django/contrib/auth/migrations/0006_require_contenttypes_0002.py index b4e816a56f1a9..2032c112a0183 100644 --- a/django/contrib/auth/migrations/0006_require_contenttypes_0002.py +++ b/django/contrib/auth/migrations/0006_require_contenttypes_0002.py @@ -2,7 +2,6 @@ class Migration(migrations.Migration): - dependencies = [ ("auth", "0005_alter_user_last_login_null"), ("contenttypes", "0002_remove_content_type_name"), diff --git a/django/contrib/auth/migrations/0007_alter_validators_add_error_messages.py b/django/contrib/auth/migrations/0007_alter_validators_add_error_messages.py index 3c94141e61baa..ca010807c8c69 100644 --- a/django/contrib/auth/migrations/0007_alter_validators_add_error_messages.py +++ b/django/contrib/auth/migrations/0007_alter_validators_add_error_messages.py @@ -3,7 +3,6 @@ class Migration(migrations.Migration): - dependencies = [ ("auth", "0006_require_contenttypes_0002"), ] diff --git a/django/contrib/auth/migrations/0008_alter_user_username_max_length.py b/django/contrib/auth/migrations/0008_alter_user_username_max_length.py index bfb844bb2a5a1..caac0f1d69349 100644 --- a/django/contrib/auth/migrations/0008_alter_user_username_max_length.py +++ b/django/contrib/auth/migrations/0008_alter_user_username_max_length.py @@ -3,7 +3,6 @@ class Migration(migrations.Migration): - dependencies = [ ("auth", "0007_alter_validators_add_error_messages"), ] diff --git a/django/contrib/auth/migrations/0009_alter_user_last_name_max_length.py b/django/contrib/auth/migrations/0009_alter_user_last_name_max_length.py index e0665366d0627..d3478290640f6 100644 --- a/django/contrib/auth/migrations/0009_alter_user_last_name_max_length.py +++ b/django/contrib/auth/migrations/0009_alter_user_last_name_max_length.py @@ -2,7 +2,6 @@ class Migration(migrations.Migration): - dependencies = [ ("auth", "0008_alter_user_username_max_length"), ] diff --git a/django/contrib/auth/migrations/0010_alter_group_name_max_length.py b/django/contrib/auth/migrations/0010_alter_group_name_max_length.py index a58e11480fa07..8ba274477fb16 100644 --- a/django/contrib/auth/migrations/0010_alter_group_name_max_length.py +++ b/django/contrib/auth/migrations/0010_alter_group_name_max_length.py @@ -2,7 +2,6 @@ class Migration(migrations.Migration): - dependencies = [ ("auth", "0009_alter_user_last_name_max_length"), ] diff --git a/django/contrib/auth/migrations/0012_alter_user_first_name_max_length.py b/django/contrib/auth/migrations/0012_alter_user_first_name_max_length.py index 839c95041701b..1014f20498f46 100644 --- a/django/contrib/auth/migrations/0012_alter_user_first_name_max_length.py +++ b/django/contrib/auth/migrations/0012_alter_user_first_name_max_length.py @@ -2,7 +2,6 @@ class Migration(migrations.Migration): - dependencies = [ ("auth", "0011_update_proxy_permissions"), ] diff --git a/django/contrib/contenttypes/fields.py b/django/contrib/contenttypes/fields.py index 193c2f26870a6..c4b80b3677f19 100644 --- a/django/contrib/contenttypes/fields.py +++ b/django/contrib/contenttypes/fields.py @@ -2,6 +2,8 @@ import itertools from collections import defaultdict +from asgiref.sync import sync_to_async + from django.contrib.contenttypes.models import ContentType from django.core import checks from django.core.exceptions import FieldDoesNotExist, ObjectDoesNotExist @@ -552,14 +554,6 @@ def related_manager_cls(self): self.rel, ) - @cached_property - def related_manager_cache_key(self): - # By default, GenericRel instances will be marked as hidden unless - # related_query_name is given (their accessor name being "+" when - # hidden), which would cause multiple GenericRelations declared on a - # single model to collide, so always use the remote field's name. - return self.field.get_cache_name() - def create_generic_related_manager(superclass, rel): """ @@ -752,6 +746,11 @@ def create(self, **kwargs): create.alters_data = True + async def acreate(self, **kwargs): + return await sync_to_async(self.create)(**kwargs) + + acreate.alters_data = True + def get_or_create(self, **kwargs): kwargs[self.content_type_field_name] = self.content_type kwargs[self.object_id_field_name] = self.pk_val @@ -760,6 +759,11 @@ def get_or_create(self, **kwargs): get_or_create.alters_data = True + async def aget_or_create(self, **kwargs): + return await sync_to_async(self.get_or_create)(**kwargs) + + aget_or_create.alters_data = True + def update_or_create(self, **kwargs): kwargs[self.content_type_field_name] = self.content_type kwargs[self.object_id_field_name] = self.pk_val @@ -768,4 +772,9 @@ def update_or_create(self, **kwargs): update_or_create.alters_data = True + async def aupdate_or_create(self, **kwargs): + return await sync_to_async(self.update_or_create)(**kwargs) + + aupdate_or_create.alters_data = True + return GenericRelatedObjectManager diff --git a/django/contrib/contenttypes/locale/eo/LC_MESSAGES/django.mo b/django/contrib/contenttypes/locale/eo/LC_MESSAGES/django.mo index a209db2496fa5..152620e64e3e5 100644 Binary files a/django/contrib/contenttypes/locale/eo/LC_MESSAGES/django.mo and b/django/contrib/contenttypes/locale/eo/LC_MESSAGES/django.mo differ diff --git a/django/contrib/contenttypes/locale/eo/LC_MESSAGES/django.po b/django/contrib/contenttypes/locale/eo/LC_MESSAGES/django.po index 17c9e158d1269..f64e0face60e1 100644 --- a/django/contrib/contenttypes/locale/eo/LC_MESSAGES/django.po +++ b/django/contrib/contenttypes/locale/eo/LC_MESSAGES/django.po @@ -1,14 +1,15 @@ # This file is distributed under the same license as the Django package. # # Translators: -# Baptiste Darthenay , 2014 +# Batist D 🐍 , 2014 +# Meiyer , 2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-01-17 11:07+0100\n" -"PO-Revision-Date: 2017-09-19 16:40+0000\n" -"Last-Translator: Jannis Leidel \n" +"POT-Creation-Date: 2019-09-08 17:27+0200\n" +"PO-Revision-Date: 2022-04-24 19:22+0000\n" +"Last-Translator: Meiyer , 2022\n" "Language-Team: Esperanto (http://www.transifex.com/django/django/language/" "eo/)\n" "MIME-Version: 1.0\n" @@ -31,12 +32,12 @@ msgstr "enhavaj tipoj" #, python-format msgid "Content type %(ct_id)s object has no associated model" -msgstr "Objekto kun enhava tipo %(ct_id)s ne havas asociitaj modeloj" +msgstr "Objekto kun enhava tipo %(ct_id)s ne havas modelojn asociitajn kun ĝi" #, python-format -msgid "Content type %(ct_id)s object %(obj_id)s doesn't exist" +msgid "Content type %(ct_id)s object %(obj_id)s doesn’t exist" msgstr "Objekto %(obj_id)s kun enhava tipo %(ct_id)s ne ekzistas" #, python-format -msgid "%(ct_name)s objects don't have a get_absolute_url() method" -msgstr " %(ct_name)s objektoj ne havas metodon get_absolute_url()" +msgid "%(ct_name)s objects don’t have a get_absolute_url() method" +msgstr "Objektoj %(ct_name)s ne havas metodon get_absolute_url()" diff --git a/django/contrib/contenttypes/locale/ia/LC_MESSAGES/django.mo b/django/contrib/contenttypes/locale/ia/LC_MESSAGES/django.mo index 0fad7f2a789ae..2eec9aad333ad 100644 Binary files a/django/contrib/contenttypes/locale/ia/LC_MESSAGES/django.mo and b/django/contrib/contenttypes/locale/ia/LC_MESSAGES/django.mo differ diff --git a/django/contrib/contenttypes/locale/ia/LC_MESSAGES/django.po b/django/contrib/contenttypes/locale/ia/LC_MESSAGES/django.po index 8598e5f12d62b..cf2a5e4619423 100644 --- a/django/contrib/contenttypes/locale/ia/LC_MESSAGES/django.po +++ b/django/contrib/contenttypes/locale/ia/LC_MESSAGES/django.po @@ -1,14 +1,14 @@ # This file is distributed under the same license as the Django package. # # Translators: -# Martijn Dekker , 2012 +# Martijn Dekker , 2012,2021 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-01-17 11:07+0100\n" -"PO-Revision-Date: 2017-09-19 16:40+0000\n" -"Last-Translator: Jannis Leidel \n" +"POT-Creation-Date: 2019-09-08 17:27+0200\n" +"PO-Revision-Date: 2021-12-24 19:22+0000\n" +"Last-Translator: Martijn Dekker \n" "Language-Team: Interlingua (http://www.transifex.com/django/django/language/" "ia/)\n" "MIME-Version: 1.0\n" @@ -18,7 +18,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "Content Types" -msgstr "" +msgstr "Typos de contento" msgid "python model class name" msgstr "nomine del classe del modello Python" @@ -34,9 +34,9 @@ msgid "Content type %(ct_id)s object has no associated model" msgstr "Le objecto del typo de contento %(ct_id)s non ha un modello associate" #, python-format -msgid "Content type %(ct_id)s object %(obj_id)s doesn't exist" +msgid "Content type %(ct_id)s object %(obj_id)s doesn’t exist" msgstr "Le objecto %(obj_id)s del typo de contento %(ct_id)s non existe" #, python-format -msgid "%(ct_name)s objects don't have a get_absolute_url() method" +msgid "%(ct_name)s objects don’t have a get_absolute_url() method" msgstr "Objectos %(ct_name)s non ha un methodo get_absolute_url()" diff --git a/django/contrib/contenttypes/locale/sv/LC_MESSAGES/django.mo b/django/contrib/contenttypes/locale/sv/LC_MESSAGES/django.mo index a9b9575163b17..b4fe3a80ddb06 100644 Binary files a/django/contrib/contenttypes/locale/sv/LC_MESSAGES/django.mo and b/django/contrib/contenttypes/locale/sv/LC_MESSAGES/django.mo differ diff --git a/django/contrib/contenttypes/locale/sv/LC_MESSAGES/django.po b/django/contrib/contenttypes/locale/sv/LC_MESSAGES/django.po index 15d1a1be35dd4..8cdfa8d5b77c4 100644 --- a/django/contrib/contenttypes/locale/sv/LC_MESSAGES/django.po +++ b/django/contrib/contenttypes/locale/sv/LC_MESSAGES/django.po @@ -1,6 +1,7 @@ # This file is distributed under the same license as the Django package. # # Translators: +# Albin Larsson , 2022 # Andreas Pelme , 2012 # Jannis Leidel , 2011 # Jonathan Lindén, 2014 @@ -9,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-01-17 11:07+0100\n" -"PO-Revision-Date: 2019-02-26 11:20+0000\n" -"Last-Translator: Thomas Lundqvist\n" +"POT-Creation-Date: 2019-09-08 17:27+0200\n" +"PO-Revision-Date: 2022-07-24 19:22+0000\n" +"Last-Translator: Albin Larsson \n" "Language-Team: Swedish (http://www.transifex.com/django/django/language/" "sv/)\n" "MIME-Version: 1.0\n" @@ -37,9 +38,9 @@ msgid "Content type %(ct_id)s object has no associated model" msgstr "Innehållstypens %(ct_id)s har ingen associerad modell." #, python-format -msgid "Content type %(ct_id)s object %(obj_id)s doesn't exist" +msgid "Content type %(ct_id)s object %(obj_id)s doesn’t exist" msgstr "Innehållstypens %(ct_id)s objekt %(obj_id)s finns inte" #, python-format -msgid "%(ct_name)s objects don't have a get_absolute_url() method" +msgid "%(ct_name)s objects don’t have a get_absolute_url() method" msgstr "%(ct_name)s objekt har inte en get_absolute_url()-metod" diff --git a/django/contrib/contenttypes/management/commands/remove_stale_contenttypes.py b/django/contrib/contenttypes/management/commands/remove_stale_contenttypes.py index 3002ceaf531bf..eccd3aa2c980b 100644 --- a/django/contrib/contenttypes/management/commands/remove_stale_contenttypes.py +++ b/django/contrib/contenttypes/management/commands/remove_stale_contenttypes.py @@ -72,18 +72,18 @@ def handle(self, **options): ) content_type_display = "\n".join(ct_info) self.stdout.write( - """Some content types in your database are stale and can be deleted. -Any objects that depend on these content types will also be deleted. -The content types and dependent objects that would be deleted are: - -%s - -This list doesn't include any cascade deletions to data outside of Django's -models (uncommon). - -Are you sure you want to delete these content types? -If you're unsure, answer 'no'.""" - % content_type_display + "Some content types in your database are stale and can be " + "deleted.\n" + "Any objects that depend on these content types will also be " + "deleted.\n" + "The content types and dependent objects that would be deleted " + "are:\n\n" + f"{content_type_display}\n\n" + "This list doesn't include any cascade deletions to data " + "outside of Django's\n" + "models (uncommon).\n\n" + "Are you sure you want to delete these content types?\n" + "If you're unsure, answer 'no'." ) ok_to_delete = input("Type 'yes' to continue, or 'no' to cancel: ") else: diff --git a/django/contrib/contenttypes/migrations/0001_initial.py b/django/contrib/contenttypes/migrations/0001_initial.py index 5468fb6a0de3f..7ea39d4f3f6ab 100644 --- a/django/contrib/contenttypes/migrations/0001_initial.py +++ b/django/contrib/contenttypes/migrations/0001_initial.py @@ -3,7 +3,6 @@ class Migration(migrations.Migration): - dependencies = [] operations = [ diff --git a/django/contrib/contenttypes/migrations/0002_remove_content_type_name.py b/django/contrib/contenttypes/migrations/0002_remove_content_type_name.py index cb026e7503146..29f047434bf0c 100644 --- a/django/contrib/contenttypes/migrations/0002_remove_content_type_name.py +++ b/django/contrib/contenttypes/migrations/0002_remove_content_type_name.py @@ -13,7 +13,6 @@ def add_legacy_name(apps, schema_editor): class Migration(migrations.Migration): - dependencies = [ ("contenttypes", "0001_initial"), ] diff --git a/django/contrib/flatpages/locale/eo/LC_MESSAGES/django.mo b/django/contrib/flatpages/locale/eo/LC_MESSAGES/django.mo index 19f2a2d62d42c..16e74c30a1ef5 100644 Binary files a/django/contrib/flatpages/locale/eo/LC_MESSAGES/django.mo and b/django/contrib/flatpages/locale/eo/LC_MESSAGES/django.mo differ diff --git a/django/contrib/flatpages/locale/eo/LC_MESSAGES/django.po b/django/contrib/flatpages/locale/eo/LC_MESSAGES/django.po index 151f971ba44d0..7a661721a6d1f 100644 --- a/django/contrib/flatpages/locale/eo/LC_MESSAGES/django.po +++ b/django/contrib/flatpages/locale/eo/LC_MESSAGES/django.po @@ -4,14 +4,15 @@ # Batist D 🐍 , 2011-2012 # Batist D 🐍 , 2014-2015,2017,2019 # Matthieu Desplantes , 2021 -# Robin van der Vliet , 2019 +# Meiyer , 2022 +# Robin van der Vliet , 2019 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-08 17:27+0200\n" -"PO-Revision-Date: 2021-04-13 08:09+0000\n" -"Last-Translator: Matthieu Desplantes \n" +"PO-Revision-Date: 2022-04-24 19:03+0000\n" +"Last-Translator: Meiyer , 2022\n" "Language-Team: Esperanto (http://www.transifex.com/django/django/language/" "eo/)\n" "MIME-Version: 1.0\n" @@ -39,17 +40,17 @@ msgid "" "This value must contain only letters, numbers, dots, underscores, dashes, " "slashes or tildes." msgstr "" -"Ĉi tiu valoro devus enhavi sole leterojn, nombrojn, punktojn, substrekoj, " -"haltostrekoj, oblikvoj aŭ tildoj." +"Ĉi tiu valoro devus enhavi sole literojn, ciferojn, punktojn, substrekojn, " +"haltostrekojn, oblikvajn strekojn, aŭ tildojn." msgid "Example: “/about/contact”. Make sure to have a leading slash." msgstr "Ekzemple: “/about/contact”. Certigu, ke estas suprenstreko komence." msgid "URL is missing a leading slash." -msgstr "La streka signo \"/\" ne ĉeestas en komenco de ĉeno." +msgstr "La strek-signo ‘/’ ne ĉeestas en la komenco de URL." msgid "URL is missing a trailing slash." -msgstr "La streka signo \"/\" ne ĉeestas en fino de ĉeno." +msgstr "La strek-signo ‘/’ ne ĉeestas en la fino de URL." #, python-format msgid "Flatpage with url %(url)s already exists for site %(site)s" @@ -62,22 +63,25 @@ msgid "content" msgstr "enhavo" msgid "enable comments" -msgstr "ebligu rimarkoj" +msgstr "ebligi rimarkojn" msgid "template name" -msgstr "ŝablono nomo" +msgstr "nomo de ŝablono" msgid "" "Example: “flatpages/contact_page.html”. If this isn’t provided, the system " "will use “flatpages/default.html”." msgstr "" +"Ekzemple: “flatpages/contact_page.html”. Se la ŝablono ne estas indikita, " +"estos uzata “flatpages/default.html”." msgid "registration required" -msgstr "registrado postulita" +msgstr "registriĝo postulita" msgid "If this is checked, only logged-in users will be able to view the page." msgstr "" -"Se ĉi tio estus elektita, nur ensalutitaj uzantoj povus rigardi la paĝon." +"Kiam la marko-butono estas elektita, nur ensalutintaj uzantoj povas rigardi " +"la paĝon." msgid "sites" msgstr "retejoj" diff --git a/django/contrib/flatpages/locale/sv/LC_MESSAGES/django.mo b/django/contrib/flatpages/locale/sv/LC_MESSAGES/django.mo index d4102b428326e..483a7583310de 100644 Binary files a/django/contrib/flatpages/locale/sv/LC_MESSAGES/django.mo and b/django/contrib/flatpages/locale/sv/LC_MESSAGES/django.mo differ diff --git a/django/contrib/flatpages/locale/sv/LC_MESSAGES/django.po b/django/contrib/flatpages/locale/sv/LC_MESSAGES/django.po index 80336251204e2..2e772d01f08c1 100644 --- a/django/contrib/flatpages/locale/sv/LC_MESSAGES/django.po +++ b/django/contrib/flatpages/locale/sv/LC_MESSAGES/django.po @@ -1,6 +1,7 @@ # This file is distributed under the same license as the Django package. # # Translators: +# Albin Larsson , 2022 # Andreas Pelme , 2011-2012 # Jannis Leidel , 2011 # Jonathan Lindén, 2014 @@ -10,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2019-01-28 13:46+0000\n" -"Last-Translator: Petter Strandmark \n" +"POT-Creation-Date: 2019-09-08 17:27+0200\n" +"PO-Revision-Date: 2022-07-24 19:03+0000\n" +"Last-Translator: Albin Larsson \n" "Language-Team: Swedish (http://www.transifex.com/django/django/language/" "sv/)\n" "MIME-Version: 1.0\n" @@ -31,9 +32,10 @@ msgid "URL" msgstr "URL" msgid "" -"Example: '/about/contact/'. Make sure to have leading and trailing slashes." +"Example: “/about/contact/”. Make sure to have leading and trailing slashes." msgstr "" -"Exempel: '/om/kontakt/'. Se till att ha inledande och avslutande snedstreck." +"Exempel: \"/om/kontakt/\". Se till att ha inledande och avslutande " +"snedstreck." msgid "" "This value must contain only letters, numbers, dots, underscores, dashes, " @@ -42,8 +44,8 @@ msgstr "" "Detta värde får endast innehålla bokstäver, siffror, punkter, understreck, " "bindestreck, snedstreck och tilde." -msgid "Example: '/about/contact'. Make sure to have a leading slash." -msgstr "Exempel: '/about/contact'. Se till att den börjar med ett snedstreck." +msgid "Example: “/about/contact”. Make sure to have a leading slash." +msgstr "Exempel: \"/om/kontakt/\". Se till att ett inledande snedstreck." msgid "URL is missing a leading slash." msgstr "URL:en saknar ett inledande snedstreck." @@ -68,8 +70,8 @@ msgid "template name" msgstr "mallnamn" msgid "" -"Example: 'flatpages/contact_page.html'. If this isn't provided, the system " -"will use 'flatpages/default.html'." +"Example: “flatpages/contact_page.html”. If this isn’t provided, the system " +"will use “flatpages/default.html”." msgstr "" "Exempel: 'sidor/kontaktsida.html'. Om detta inte fylls i kommer systemet att " "använda 'flatpages/default.html'." diff --git a/django/contrib/flatpages/migrations/0001_initial.py b/django/contrib/flatpages/migrations/0001_initial.py index 631ebbcb1e44d..db95098841c6a 100644 --- a/django/contrib/flatpages/migrations/0001_initial.py +++ b/django/contrib/flatpages/migrations/0001_initial.py @@ -2,7 +2,6 @@ class Migration(migrations.Migration): - dependencies = [ ("sites", "0001_initial"), ] diff --git a/django/contrib/gis/admin/widgets.py b/django/contrib/gis/admin/widgets.py index 9ba262aaf8175..2a5c135d5c55c 100644 --- a/django/contrib/gis/admin/widgets.py +++ b/django/contrib/gis/admin/widgets.py @@ -97,6 +97,7 @@ def get_context(self, name, value, attrs): def map_options(self): """Build the map options hash for the OpenLayers template.""" + # JavaScript construction utilities for the Bounds and Projection. def ol_bounds(extent): return "new OpenLayers.Bounds(%s)" % extent diff --git a/django/contrib/gis/db/backends/oracle/operations.py b/django/contrib/gis/db/backends/oracle/operations.py index ba7e3ca4d8fb9..9a8816aeac360 100644 --- a/django/contrib/gis/db/backends/oracle/operations.py +++ b/django/contrib/gis/db/backends/oracle/operations.py @@ -54,7 +54,6 @@ def as_sql(self, connection, lookup, template_params, sql_params): class OracleOperations(BaseSpatialOperations, DatabaseOperations): - name = "oracle" oracle = True disallowed_aggregates = (models.Collect, models.Extent3D, models.MakeLine) diff --git a/django/contrib/gis/db/backends/postgis/adapter.py b/django/contrib/gis/db/backends/postgis/adapter.py index 0e024278111d2..20b0327d5ce53 100644 --- a/django/contrib/gis/db/backends/postgis/adapter.py +++ b/django/contrib/gis/db/backends/postgis/adapter.py @@ -42,7 +42,7 @@ def __hash__(self): return hash(self.ewkb) def __str__(self): - return self.getquoted() + return self.getquoted().decode() @classmethod def _fix_polygon(cls, poly): diff --git a/django/contrib/gis/geoip2/base.py b/django/contrib/gis/geoip2/base.py index e74984fe45bf1..14478942c00d3 100644 --- a/django/contrib/gis/geoip2/base.py +++ b/django/contrib/gis/geoip2/base.py @@ -3,7 +3,6 @@ import geoip2.database from django.conf import settings -from django.contrib.gis.geos import Point from django.core.exceptions import ValidationError from django.core.validators import validate_ipv46_address from django.utils._os import to_path @@ -219,6 +218,9 @@ def geos(self, query): "Return a GEOS Point object for the given query." ll = self.lon_lat(query) if ll: + # Allows importing and using GeoIP2() when GEOS is not installed. + from django.contrib.gis.geos import Point + return Point(ll, srid=4326) else: return None diff --git a/django/contrib/gis/geos/geometry.py b/django/contrib/gis/geos/geometry.py index bafb99a058a4c..c004b11e5096a 100644 --- a/django/contrib/gis/geos/geometry.py +++ b/django/contrib/gis/geos/geometry.py @@ -20,7 +20,6 @@ class GEOSGeometryBase(GEOSBase): - _GEOS_CLASSES = None ptr_type = GEOM_PTR diff --git a/django/contrib/gis/locale/sv/LC_MESSAGES/django.mo b/django/contrib/gis/locale/sv/LC_MESSAGES/django.mo index 200712188e03f..5fbc7240b0971 100644 Binary files a/django/contrib/gis/locale/sv/LC_MESSAGES/django.mo and b/django/contrib/gis/locale/sv/LC_MESSAGES/django.mo differ diff --git a/django/contrib/gis/locale/sv/LC_MESSAGES/django.po b/django/contrib/gis/locale/sv/LC_MESSAGES/django.po index 7168164601324..7477ac08eff87 100644 --- a/django/contrib/gis/locale/sv/LC_MESSAGES/django.po +++ b/django/contrib/gis/locale/sv/LC_MESSAGES/django.po @@ -1,6 +1,7 @@ # This file is distributed under the same license as the Django package. # # Translators: +# Albin Larsson , 2022 # Andreas Pelme , 2011-2012 # Jannis Leidel , 2011 # Jonathan Lindén, 2015 @@ -11,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2019-01-28 14:06+0000\n" -"Last-Translator: Petter Strandmark \n" +"POT-Creation-Date: 2019-09-08 17:27+0200\n" +"PO-Revision-Date: 2022-07-24 18:45+0000\n" +"Last-Translator: Albin Larsson \n" "Language-Team: Swedish (http://www.transifex.com/django/django/language/" "sv/)\n" "MIME-Version: 1.0\n" @@ -29,7 +30,7 @@ msgid "The base GIS field." msgstr "Basklassen för GIS-fält." msgid "" -"The base Geometry field -- maps to the OpenGIS Specification Geometry type." +"The base Geometry field — maps to the OpenGIS Specification Geometry type." msgstr "" "Basklassen för geometri-fält -- motsvarar ”Geometry”-typen i OpenGIS-" "specifikationen." @@ -88,5 +89,5 @@ msgid "No feeds are registered." msgstr "Inga flöden är registrerade." #, python-format -msgid "Slug %r isn't registered." +msgid "Slug %r isn’t registered." msgstr "Slugen %r är inte registrerad." diff --git a/django/contrib/humanize/locale/az/LC_MESSAGES/django.mo b/django/contrib/humanize/locale/az/LC_MESSAGES/django.mo index bbaa517e133e4..251d93fe6bb1a 100644 Binary files a/django/contrib/humanize/locale/az/LC_MESSAGES/django.mo and b/django/contrib/humanize/locale/az/LC_MESSAGES/django.mo differ diff --git a/django/contrib/humanize/locale/az/LC_MESSAGES/django.po b/django/contrib/humanize/locale/az/LC_MESSAGES/django.po index 85fc45a6c9d8d..2729a9bc75eb2 100644 --- a/django/contrib/humanize/locale/az/LC_MESSAGES/django.po +++ b/django/contrib/humanize/locale/az/LC_MESSAGES/django.po @@ -5,13 +5,14 @@ # Claude Paroz , 2013 # Emin Mastizada , 2018,2020 # Emin Mastizada , 2016 +# Nicat Məmmədov , 2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2020-01-12 06:40+0000\n" -"Last-Translator: Emin Mastizada \n" +"POT-Creation-Date: 2021-04-07 14:40+0200\n" +"PO-Revision-Date: 2022-07-24 18:40+0000\n" +"Last-Translator: Nicat Məmmədov \n" "Language-Team: Azerbaijani (http://www.transifex.com/django/django/language/" "az/)\n" "MIME-Version: 1.0\n" @@ -78,132 +79,66 @@ msgctxt "ordinal 9" msgid "{}th" msgstr "{}cu" -#, python-format -msgid "%(value).1f million" -msgid_plural "%(value).1f million" -msgstr[0] "%(value).1f milyon" -msgstr[1] "%(value).1f milyon" - #, python-format msgid "%(value)s million" msgid_plural "%(value)s million" msgstr[0] "%(value)s milyon" msgstr[1] "%(value)s milyon" -#, python-format -msgid "%(value).1f billion" -msgid_plural "%(value).1f billion" -msgstr[0] "%(value).1f milyard" -msgstr[1] "%(value).1f milyard" - #, python-format msgid "%(value)s billion" msgid_plural "%(value)s billion" msgstr[0] "%(value)s milyard" msgstr[1] "%(value)s milyard" -#, python-format -msgid "%(value).1f trillion" -msgid_plural "%(value).1f trillion" -msgstr[0] "%(value).1f trilyon" -msgstr[1] "%(value).1f trilyon" - #, python-format msgid "%(value)s trillion" msgid_plural "%(value)s trillion" msgstr[0] "%(value)s trilyon" msgstr[1] "%(value)s trilyon" -#, python-format -msgid "%(value).1f quadrillion" -msgid_plural "%(value).1f quadrillion" -msgstr[0] "%(value).1f kvadrilyon" -msgstr[1] "%(value).1f kvadrilyon" - #, python-format msgid "%(value)s quadrillion" msgid_plural "%(value)s quadrillion" msgstr[0] "%(value)s kvadrilyon" msgstr[1] "%(value)s kvadrilyon" -#, python-format -msgid "%(value).1f quintillion" -msgid_plural "%(value).1f quintillion" -msgstr[0] "%(value).1f kvintilyon" -msgstr[1] "%(value).1f kvintilyon" - #, python-format msgid "%(value)s quintillion" msgid_plural "%(value)s quintillion" msgstr[0] "%(value)s kvintilyon" msgstr[1] "%(value)s kvintilyon" -#, python-format -msgid "%(value).1f sextillion" -msgid_plural "%(value).1f sextillion" -msgstr[0] "%(value).1f sekstilyon" -msgstr[1] "%(value).1f sekstilyon" - #, python-format msgid "%(value)s sextillion" msgid_plural "%(value)s sextillion" msgstr[0] "%(value)s sekstilyon" msgstr[1] "%(value)s sekstilyon" -#, python-format -msgid "%(value).1f septillion" -msgid_plural "%(value).1f septillion" -msgstr[0] "%(value).1f septilyon" -msgstr[1] "%(value).1f septilyon" - #, python-format msgid "%(value)s septillion" msgid_plural "%(value)s septillion" msgstr[0] "%(value)s septilyon" msgstr[1] "%(value)s septilyon" -#, python-format -msgid "%(value).1f octillion" -msgid_plural "%(value).1f octillion" -msgstr[0] "%(value).1f oktilyon" -msgstr[1] "%(value).1f oktilyon" - #, python-format msgid "%(value)s octillion" msgid_plural "%(value)s octillion" msgstr[0] "%(value)s oktilyon" msgstr[1] "%(value)s oktilyon" -#, python-format -msgid "%(value).1f nonillion" -msgid_plural "%(value).1f nonillion" -msgstr[0] "%(value).1f nonilyon" -msgstr[1] "%(value).1f nonilyon" - #, python-format msgid "%(value)s nonillion" msgid_plural "%(value)s nonillion" msgstr[0] "%(value)s nonilyon" msgstr[1] "%(value)s nonilyon" -#, python-format -msgid "%(value).1f decillion" -msgid_plural "%(value).1f decillion" -msgstr[0] "%(value).1f deçilyon" -msgstr[1] "%(value).1f deçilyon" - #, python-format msgid "%(value)s decillion" msgid_plural "%(value)s decillion" msgstr[0] "%(value)s deçilyon" msgstr[1] "%(value)s deçilyon" -#, python-format -msgid "%(value).1f googol" -msgid_plural "%(value).1f googol" -msgstr[0] "%(value).1f quqol" -msgstr[1] "%(value).1f quqol" - #, python-format msgid "%(value)s googol" msgid_plural "%(value)s googol" @@ -312,86 +247,86 @@ msgstr "%(delta)s bundan sonra" #. Translators: 'naturaltime-past' strings will be included in '%(delta)s ago' #, python-format msgctxt "naturaltime-past" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d il" -msgstr[1] "%d il" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d il" +msgstr[1] "%(num)d il" #, python-format msgctxt "naturaltime-past" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d ay" -msgstr[1] "%d ay" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d ay" +msgstr[1] "%(num)d ay" #, python-format msgctxt "naturaltime-past" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d həftə" -msgstr[1] "%d həftə" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d həftə" +msgstr[1] "%(num)d həftə" #, python-format msgctxt "naturaltime-past" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d gün" -msgstr[1] "%d gün" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d gün" +msgstr[1] "%(num)d gün" #, python-format msgctxt "naturaltime-past" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d saat" -msgstr[1] "%d saat" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d saat" +msgstr[1] "%(num)d saat" #, python-format msgctxt "naturaltime-past" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d dəqiqə" -msgstr[1] "%d dəqiqə" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d dəqiqə" +msgstr[1] "%(num)d dəqiqə" #. Translators: 'naturaltime-future' strings will be included in '%(delta)s #. from now' #, python-format msgctxt "naturaltime-future" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d il" -msgstr[1] "%d il" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d il" +msgstr[1] "%(num)d il" #, python-format msgctxt "naturaltime-future" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d ay" -msgstr[1] "%d ay" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d ay" +msgstr[1] "%(num)d ay" #, python-format msgctxt "naturaltime-future" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d həftə" -msgstr[1] "%d həftə" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d həftə" +msgstr[1] "%(num)d həftə" #, python-format msgctxt "naturaltime-future" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d gün" -msgstr[1] "%d gün" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d gün" +msgstr[1] "%(num)d gün" #, python-format msgctxt "naturaltime-future" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d saat" -msgstr[1] "%d saat" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d saat" +msgstr[1] "%(num)d saat" #, python-format msgctxt "naturaltime-future" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d dəqiqə" -msgstr[1] "%d dəqiqə" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d dəqiqə" +msgstr[1] "%(num)d dəqiqə" diff --git a/django/contrib/humanize/locale/es/LC_MESSAGES/django.mo b/django/contrib/humanize/locale/es/LC_MESSAGES/django.mo index 36238b3a4e471..8946e3a017e59 100644 Binary files a/django/contrib/humanize/locale/es/LC_MESSAGES/django.mo and b/django/contrib/humanize/locale/es/LC_MESSAGES/django.mo differ diff --git a/django/contrib/humanize/locale/es/LC_MESSAGES/django.po b/django/contrib/humanize/locale/es/LC_MESSAGES/django.po index 8010bf220eb69..b4faf1842efd3 100644 --- a/django/contrib/humanize/locale/es/LC_MESSAGES/django.po +++ b/django/contrib/humanize/locale/es/LC_MESSAGES/django.po @@ -15,8 +15,8 @@ msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-04-07 14:40+0200\n" -"PO-Revision-Date: 2021-11-10 04:02+0000\n" -"Last-Translator: Uriel Medina \n" +"PO-Revision-Date: 2022-04-24 18:40+0000\n" +"Last-Translator: Uriel Medina , 2020-2021\n" "Language-Team: Spanish (http://www.transifex.com/django/django/language/" "es/)\n" "MIME-Version: 1.0\n" @@ -88,66 +88,77 @@ msgid "%(value)s million" msgid_plural "%(value)s million" msgstr[0] "%(value)s millon" msgstr[1] "%(value)s millones" +msgstr[2] "%(value)s millones" #, python-format msgid "%(value)s billion" msgid_plural "%(value)s billion" msgstr[0] "%(value)s millardo" msgstr[1] "%(value)s millardos" +msgstr[2] "%(value)s millardos" #, python-format msgid "%(value)s trillion" msgid_plural "%(value)s trillion" msgstr[0] "%(value)s billón" msgstr[1] "%(value)s billones" +msgstr[2] "%(value)s billones" #, python-format msgid "%(value)s quadrillion" msgid_plural "%(value)s quadrillion" msgstr[0] "%(value)s billardos" msgstr[1] "%(value)s billardos" +msgstr[2] "%(value)s billardos" #, python-format msgid "%(value)s quintillion" msgid_plural "%(value)s quintillion" msgstr[0] "%(value)s trillón" msgstr[1] "%(value)s trillones" +msgstr[2] "%(value)s trillones" #, python-format msgid "%(value)s sextillion" msgid_plural "%(value)s sextillion" msgstr[0] "%(value)s trillardo" msgstr[1] "%(value)s trillardos" +msgstr[2] "%(value)s trillardos" #, python-format msgid "%(value)s septillion" msgid_plural "%(value)s septillion" msgstr[0] "%(value)s cuatrillón" msgstr[1] "%(value)s cuatrillones" +msgstr[2] "%(value)s cuatrillones" #, python-format msgid "%(value)s octillion" msgid_plural "%(value)s octillion" msgstr[0] "%(value)s cuatrillardo" msgstr[1] "%(value)s cuatrillardos" +msgstr[2] "%(value)s cuatrillardos" #, python-format msgid "%(value)s nonillion" msgid_plural "%(value)s nonillion" msgstr[0] "%(value)s quintillón" msgstr[1] "%(value)s quintillones" +msgstr[2] "%(value)s quintillones" #, python-format msgid "%(value)s decillion" msgid_plural "%(value)s decillion" msgstr[0] "%(value)s quintillardo" msgstr[1] "%(value)s quintillardos" +msgstr[2] "%(value)s quintillardos" #, python-format msgid "%(value)s googol" msgid_plural "%(value)s googol" msgstr[0] " %(value)s googol" msgstr[1] " %(value)s gúgoles" +msgstr[2] " %(value)s gúgoles" msgid "one" msgstr "uno" @@ -198,6 +209,7 @@ msgid "an hour ago" msgid_plural "%(count)s hours ago" msgstr[0] "hace una hora" msgstr[1] "hace %(count)s horas" +msgstr[2] "hace %(count)s horas" #. Translators: please keep a non-breaking space (U+00A0) between count #. and time unit. @@ -206,6 +218,7 @@ msgid "a minute ago" msgid_plural "%(count)s minutes ago" msgstr[0] "hace un minuto" msgstr[1] "hace %(count)s minutos" +msgstr[2] "hace %(count)s minutos" #. Translators: please keep a non-breaking space (U+00A0) between count #. and time unit. @@ -214,6 +227,7 @@ msgid "a second ago" msgid_plural "%(count)s seconds ago" msgstr[0] "hace un segundo" msgstr[1] "hace %(count)s segundos" +msgstr[2] "hace %(count)s segundos" msgid "now" msgstr "ahora" @@ -225,6 +239,7 @@ msgid "a second from now" msgid_plural "%(count)s seconds from now" msgstr[0] "un segundo a partir de ahora" msgstr[1] "%(count)s segundos a partir de ahora" +msgstr[2] "%(count)s segundos a partir de ahora" #. Translators: please keep a non-breaking space (U+00A0) between count #. and time unit. @@ -233,6 +248,7 @@ msgid "a minute from now" msgid_plural "%(count)s minutes from now" msgstr[0] "un minuto a partir de ahora" msgstr[1] "%(count)s minutos a partir de ahora" +msgstr[2] "%(count)s minutos a partir de ahora" #. Translators: please keep a non-breaking space (U+00A0) between count #. and time unit. @@ -241,6 +257,7 @@ msgid "an hour from now" msgid_plural "%(count)s hours from now" msgstr[0] "una hora a partir de ahora" msgstr[1] "%(count)s horas a partir de ahora" +msgstr[2] "%(count)s horas a partir de ahora" #. Translators: delta will contain a string like '2 months' or '1 month, 2 #. weeks' @@ -255,6 +272,7 @@ msgid "%(num)d year" msgid_plural "%(num)d years" msgstr[0] "%(num)d año" msgstr[1] "%(num)d años" +msgstr[2] "%(num)d años" #, python-format msgctxt "naturaltime-past" @@ -262,6 +280,7 @@ msgid "%(num)d month" msgid_plural "%(num)d months" msgstr[0] "%(num)d mes" msgstr[1] "%(num)d meses" +msgstr[2] "%(num)d meses" #, python-format msgctxt "naturaltime-past" @@ -269,6 +288,7 @@ msgid "%(num)d week" msgid_plural "%(num)d weeks" msgstr[0] "%(num)d semana" msgstr[1] "%(num)d semanas" +msgstr[2] "%(num)d semanas" #, python-format msgctxt "naturaltime-past" @@ -276,6 +296,7 @@ msgid "%(num)d day" msgid_plural "%(num)d days" msgstr[0] "%(num)d día" msgstr[1] "%(num)d días" +msgstr[2] "%(num)d días" #, python-format msgctxt "naturaltime-past" @@ -283,6 +304,7 @@ msgid "%(num)d hour" msgid_plural "%(num)d hours" msgstr[0] "%(num)d hora" msgstr[1] "%(num)d horas" +msgstr[2] "%(num)d horas" #, python-format msgctxt "naturaltime-past" @@ -290,6 +312,7 @@ msgid "%(num)d minute" msgid_plural "%(num)d minutes" msgstr[0] "%(num)d minuto" msgstr[1] "%(num)d minutos" +msgstr[2] "%(num)d minutos" #. Translators: 'naturaltime-future' strings will be included in '%(delta)s #. from now' @@ -299,6 +322,7 @@ msgid "%(num)d year" msgid_plural "%(num)d years" msgstr[0] "%(num)d año" msgstr[1] "%(num)d años" +msgstr[2] "%(num)d años" #, python-format msgctxt "naturaltime-future" @@ -306,6 +330,7 @@ msgid "%(num)d month" msgid_plural "%(num)d months" msgstr[0] "%(num)d mes" msgstr[1] "%(num)d meses" +msgstr[2] "%(num)d meses" #, python-format msgctxt "naturaltime-future" @@ -313,6 +338,7 @@ msgid "%(num)d week" msgid_plural "%(num)d weeks" msgstr[0] "%(num)d semana" msgstr[1] "%(num)d semanas" +msgstr[2] "%(num)d semanas" #, python-format msgctxt "naturaltime-future" @@ -320,6 +346,7 @@ msgid "%(num)d day" msgid_plural "%(num)d days" msgstr[0] "%(num)d día" msgstr[1] "%(num)d días" +msgstr[2] "%(num)d días" #, python-format msgctxt "naturaltime-future" @@ -327,6 +354,7 @@ msgid "%(num)d hour" msgid_plural "%(num)d hours" msgstr[0] "%(num)d hora" msgstr[1] "%(num)d horas" +msgstr[2] "%(num)d horas" #, python-format msgctxt "naturaltime-future" @@ -334,3 +362,4 @@ msgid "%(num)d minute" msgid_plural "%(num)d minutes" msgstr[0] "%(num)d minuto" msgstr[1] "%(num)d minutos" +msgstr[2] "%(num)d minutos" diff --git a/django/contrib/humanize/locale/eu/LC_MESSAGES/django.mo b/django/contrib/humanize/locale/eu/LC_MESSAGES/django.mo index 76e9f18f2c55e..d167d67e4457e 100644 Binary files a/django/contrib/humanize/locale/eu/LC_MESSAGES/django.mo and b/django/contrib/humanize/locale/eu/LC_MESSAGES/django.mo differ diff --git a/django/contrib/humanize/locale/eu/LC_MESSAGES/django.po b/django/contrib/humanize/locale/eu/LC_MESSAGES/django.po index 99a545be5f723..b8ed0c5f7474a 100644 --- a/django/contrib/humanize/locale/eu/LC_MESSAGES/django.po +++ b/django/contrib/humanize/locale/eu/LC_MESSAGES/django.po @@ -2,16 +2,16 @@ # # Translators: # Aitzol Naberan , 2011-2012,2016 -# Ander Martínez , 2014 -# Eneko Illarramendi , 2017-2018 +# Ander Martinez , 2014 +# Eneko Illarramendi , 2017-2018,2022 # Jannis Leidel , 2011 # julen, 2014 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2018-08-23 14:56+0000\n" +"POT-Creation-Date: 2021-04-07 14:40+0200\n" +"PO-Revision-Date: 2022-07-24 18:40+0000\n" "Last-Translator: Eneko Illarramendi \n" "Language-Team: Basque (http://www.transifex.com/django/django/language/eu/)\n" "MIME-Version: 1.0\n" @@ -78,132 +78,66 @@ msgctxt "ordinal 9" msgid "{}th" msgstr "{}." -#, python-format -msgid "%(value).1f million" -msgid_plural "%(value).1f million" -msgstr[0] "milioi %(value).1f " -msgstr[1] "%(value).1f milioi" - #, python-format msgid "%(value)s million" msgid_plural "%(value)s million" msgstr[0] "milioi %(value)s" msgstr[1] "%(value)s milioi" -#, python-format -msgid "%(value).1f billion" -msgid_plural "%(value).1f billion" -msgstr[0] "bilioi %(value).1f " -msgstr[1] "%(value).1f bilioi" - #, python-format msgid "%(value)s billion" msgid_plural "%(value)s billion" msgstr[0] "bilioi %(value)s" msgstr[1] "%(value)s bilioi" -#, python-format -msgid "%(value).1f trillion" -msgid_plural "%(value).1f trillion" -msgstr[0] "trilioi %(value).1f " -msgstr[1] "%(value).1f trilioi" - #, python-format msgid "%(value)s trillion" msgid_plural "%(value)s trillion" msgstr[0] "trilioi %(value)s" msgstr[1] "%(value)s trilioi" -#, python-format -msgid "%(value).1f quadrillion" -msgid_plural "%(value).1f quadrillion" -msgstr[0] "kuatrilioi %(value).1f " -msgstr[1] "%(value).1f kuatrilioi" - #, python-format msgid "%(value)s quadrillion" msgid_plural "%(value)s quadrillion" msgstr[0] "kuatrilioi %(value)s" msgstr[1] "%(value)s kuatrilioi" -#, python-format -msgid "%(value).1f quintillion" -msgid_plural "%(value).1f quintillion" -msgstr[0] "kintilioi %(value).1f" -msgstr[1] "%(value).1f kintilioi" - #, python-format msgid "%(value)s quintillion" msgid_plural "%(value)s quintillion" msgstr[0] "kintilioi %(value)s" msgstr[1] "%(value)s kintilioi" -#, python-format -msgid "%(value).1f sextillion" -msgid_plural "%(value).1f sextillion" -msgstr[0] "sextilioi %(value).1f" -msgstr[1] "%(value).1f sextilioi" - #, python-format msgid "%(value)s sextillion" msgid_plural "%(value)s sextillion" msgstr[0] "sextilioi %(value)s" msgstr[1] "%(value)s sextilioi" -#, python-format -msgid "%(value).1f septillion" -msgid_plural "%(value).1f septillion" -msgstr[0] "septilioi %(value).1f" -msgstr[1] "%(value).1f septilioi" - #, python-format msgid "%(value)s septillion" msgid_plural "%(value)s septillion" msgstr[0] "septilioi %(value)s" msgstr[1] "%(value)s septilioi" -#, python-format -msgid "%(value).1f octillion" -msgid_plural "%(value).1f octillion" -msgstr[0] "octilioi %(value).1f" -msgstr[1] "%(value).1f octilioi" - #, python-format msgid "%(value)s octillion" msgid_plural "%(value)s octillion" msgstr[0] "octillioi %(value)s" msgstr[1] " %(value)s octilioi" -#, python-format -msgid "%(value).1f nonillion" -msgid_plural "%(value).1f nonillion" -msgstr[0] "nonilioi %(value).1f " -msgstr[1] "%(value).1f nonilioi" - #, python-format msgid "%(value)s nonillion" msgid_plural "%(value)s nonillion" msgstr[0] "nonilioi %(value)s" msgstr[1] "%(value)s nonilioi" -#, python-format -msgid "%(value).1f decillion" -msgid_plural "%(value).1f decillion" -msgstr[0] "dezilioi %(value).1f" -msgstr[1] "%(value).1f dezilioi" - #, python-format msgid "%(value)s decillion" msgid_plural "%(value)s decillion" msgstr[0] "dezilioi %(value)s " msgstr[1] "%(value)s dezilioi" -#, python-format -msgid "%(value).1f googol" -msgid_plural "%(value).1f googol" -msgstr[0] "googol %(value).1f" -msgstr[1] "%(value).1f googol" - #, python-format msgid "%(value)s googol" msgid_plural "%(value)s googol" @@ -312,86 +246,86 @@ msgstr "%(delta)s barru" #. Translators: 'naturaltime-past' strings will be included in '%(delta)s ago' #, python-format msgctxt "naturaltime-past" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "urte %d" -msgstr[1] "%d urte" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] " urte %(num)d" +msgstr[1] "%(num)d urte" #, python-format msgctxt "naturaltime-past" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "hilabete %d" -msgstr[1] "%d hilabete" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "hilabete %(num)d" +msgstr[1] "%(num)d hilabete" #, python-format msgctxt "naturaltime-past" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "aste %d" -msgstr[1] "%d aste" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "aste %(num)d" +msgstr[1] "%(num)d aste" #, python-format msgctxt "naturaltime-past" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "egun %d" -msgstr[1] "%d egun" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "egun %(num)d" +msgstr[1] "%(num)d egun" #, python-format msgctxt "naturaltime-past" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "ordu %d" -msgstr[1] "%d ordu" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "ordu %(num)d" +msgstr[1] "%(num)d ordu" #, python-format msgctxt "naturaltime-past" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "minutu %d" -msgstr[1] "%d minutu" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "minutu %(num)d" +msgstr[1] "%(num)d minutu" #. Translators: 'naturaltime-future' strings will be included in '%(delta)s #. from now' #, python-format msgctxt "naturaltime-future" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "urte %d" -msgstr[1] "%d urte" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "urte %(num)d" +msgstr[1] "%(num)d urte" #, python-format msgctxt "naturaltime-future" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "hilabete %d" -msgstr[1] "%d hilabete" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "hilabete %(num)d" +msgstr[1] "%(num)d hilabete" #, python-format msgctxt "naturaltime-future" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "aste %d" -msgstr[1] "%d aste" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "aste %(num)d" +msgstr[1] "%(num)d aste" #, python-format msgctxt "naturaltime-future" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "egun %d" -msgstr[1] "%d egun" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "egun %(num)d" +msgstr[1] "%(num)d egun" #, python-format msgctxt "naturaltime-future" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "ordu %d" -msgstr[1] "%d ordu" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "ordu %(num)d" +msgstr[1] "%(num)d ordu" #, python-format msgctxt "naturaltime-future" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "minutu %d" -msgstr[1] "%d minutu" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "minutu %(num)d" +msgstr[1] "%(num)d minutu" diff --git a/django/contrib/humanize/locale/fa/LC_MESSAGES/django.mo b/django/contrib/humanize/locale/fa/LC_MESSAGES/django.mo index b7dabe79fff01..b8fe938814efe 100644 Binary files a/django/contrib/humanize/locale/fa/LC_MESSAGES/django.mo and b/django/contrib/humanize/locale/fa/LC_MESSAGES/django.mo differ diff --git a/django/contrib/humanize/locale/fa/LC_MESSAGES/django.po b/django/contrib/humanize/locale/fa/LC_MESSAGES/django.po index 04520cd04026d..25daae931dfcd 100644 --- a/django/contrib/humanize/locale/fa/LC_MESSAGES/django.po +++ b/django/contrib/humanize/locale/fa/LC_MESSAGES/django.po @@ -4,6 +4,7 @@ # Ali Nikneshan , 2012 # Alireza Savand , 2012 # Claude Paroz , 2013 +# Eshagh , 2022 # Jannis Leidel , 2011 # MJafar Mashhadi , 2018 # Mohammad Hossein Mojtahedi , 2016 @@ -12,9 +13,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2018-06-23 23:07+0000\n" -"Last-Translator: MJafar Mashhadi \n" +"POT-Creation-Date: 2021-04-07 14:40+0200\n" +"PO-Revision-Date: 2022-07-24 18:40+0000\n" +"Last-Translator: Eshagh \n" "Language-Team: Persian (http://www.transifex.com/django/django/language/" "fa/)\n" "MIME-Version: 1.0\n" @@ -81,132 +82,66 @@ msgctxt "ordinal 9" msgid "{}th" msgstr "{}م" -#, python-format -msgid "%(value).1f million" -msgid_plural "%(value).1f million" -msgstr[0] "%(value).1f میلیون" -msgstr[1] "%(value).1f میلیون" - #, python-format msgid "%(value)s million" msgid_plural "%(value)s million" msgstr[0] "%(value)s میلیون" msgstr[1] "%(value)s میلیون" -#, python-format -msgid "%(value).1f billion" -msgid_plural "%(value).1f billion" -msgstr[0] "%(value).1f بیلیون" -msgstr[1] "%(value).1f بیلیون" - #, python-format msgid "%(value)s billion" msgid_plural "%(value)s billion" msgstr[0] "%(value)s میلیارد" msgstr[1] "%(value)s میلیارد" -#, python-format -msgid "%(value).1f trillion" -msgid_plural "%(value).1f trillion" -msgstr[0] "%(value).1f تریلون" -msgstr[1] "%(value).1f تریلون" - #, python-format msgid "%(value)s trillion" msgid_plural "%(value)s trillion" msgstr[0] "%(value)s تریلیون" msgstr[1] "%(value)s تریلیون" -#, python-format -msgid "%(value).1f quadrillion" -msgid_plural "%(value).1f quadrillion" -msgstr[0] "%(value).1f کوادریلیون" -msgstr[1] "%(value).1f کوادریلیون" - #, python-format msgid "%(value)s quadrillion" msgid_plural "%(value)s quadrillion" msgstr[0] "%(value)s کوادریلیون" msgstr[1] "%(value)s کوادریلیون" -#, python-format -msgid "%(value).1f quintillion" -msgid_plural "%(value).1f quintillion" -msgstr[0] "%(value).1f کوانتینیوم" -msgstr[1] "%(value).1f کوانتینیوم" - #, python-format msgid "%(value)s quintillion" msgid_plural "%(value)s quintillion" msgstr[0] "%(value)s کوانتینیوم" msgstr[1] "%(value)s کوانتینیوم" -#, python-format -msgid "%(value).1f sextillion" -msgid_plural "%(value).1f sextillion" -msgstr[0] "%(value).1f با ۲۱ صفر" -msgstr[1] "%(value).1f با ۲۱ صفر" - #, python-format msgid "%(value)s sextillion" msgid_plural "%(value)s sextillion" msgstr[0] "%(value)s با ۲۱ صفر" msgstr[1] "%(value)s با ۲۱ صفر" -#, python-format -msgid "%(value).1f septillion" -msgid_plural "%(value).1f septillion" -msgstr[0] "%(value).1f سپتیلیون" -msgstr[1] "%(value).1f سپتیلیون" - #, python-format msgid "%(value)s septillion" msgid_plural "%(value)s septillion" msgstr[0] "%(value)s سپتیلیون" msgstr[1] "%(value)s سپتیلیون" -#, python-format -msgid "%(value).1f octillion" -msgid_plural "%(value).1f octillion" -msgstr[0] "%(value).1f octillion" -msgstr[1] "%(value).1f octillion" - #, python-format msgid "%(value)s octillion" msgid_plural "%(value)s octillion" msgstr[0] "%(value)s octillion" msgstr[1] "%(value)s octillion" -#, python-format -msgid "%(value).1f nonillion" -msgid_plural "%(value).1f nonillion" -msgstr[0] " %(value).1f با ۵۴ صفر" -msgstr[1] " %(value).1f با ۵۴ صفر" - #, python-format msgid "%(value)s nonillion" msgid_plural "%(value)s nonillion" msgstr[0] "%(value)s با ۵۴ صفر" msgstr[1] "%(value)s با ۵۴ صفر" -#, python-format -msgid "%(value).1f decillion" -msgid_plural "%(value).1f decillion" -msgstr[0] "%(value).1f با شصت صفر" -msgstr[1] "%(value).1f با شصت صفر" - #, python-format msgid "%(value)s decillion" msgid_plural "%(value)s decillion" msgstr[0] "%(value)s با شصت صفر" msgstr[1] "%(value)s با شصت صفر" -#, python-format -msgid "%(value).1f googol" -msgid_plural "%(value).1f googol" -msgstr[0] "%(value).1f گوگُل" -msgstr[1] "%(value).1f گوگُل" - #, python-format msgid "%(value)s googol" msgid_plural "%(value)s googol" @@ -315,86 +250,86 @@ msgstr "%(delta)s دیگر" #. Translators: 'naturaltime-past' strings will be included in '%(delta)s ago' #, python-format msgctxt "naturaltime-past" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d سال" -msgstr[1] "%d سال" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d سال" +msgstr[1] "%(num)d سال" #, python-format msgctxt "naturaltime-past" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d ماه" -msgstr[1] "%d ماه" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d ماه" +msgstr[1] "%(num)d ماه" #, python-format msgctxt "naturaltime-past" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d هفته" -msgstr[1] "%d هفته" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d هفته" +msgstr[1] "%(num)d هفته" #, python-format msgctxt "naturaltime-past" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d روز" -msgstr[1] "%d روز" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d روز" +msgstr[1] "%(num)d روز" #, python-format msgctxt "naturaltime-past" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d ساعت" -msgstr[1] "%d ساعت" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d ساعت" +msgstr[1] "%(num)d ساعت" #, python-format msgctxt "naturaltime-past" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d دقیقه" -msgstr[1] "%d دقیقه" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d دقیقه" +msgstr[1] "%(num)d دقیقه" #. Translators: 'naturaltime-future' strings will be included in '%(delta)s #. from now' #, python-format msgctxt "naturaltime-future" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d سال" -msgstr[1] "%d سال" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d سال" +msgstr[1] "%(num)d سال" #, python-format msgctxt "naturaltime-future" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d ماه" -msgstr[1] "%d ماه" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d ماه" +msgstr[1] "%(num)d ماه" #, python-format msgctxt "naturaltime-future" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d هفته" -msgstr[1] "%d هفته" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d هفته" +msgstr[1] "%(num)d هفته" #, python-format msgctxt "naturaltime-future" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d روز" -msgstr[1] "%d روز" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d روز" +msgstr[1] "%(num)d روز" #, python-format msgctxt "naturaltime-future" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d ساعت" -msgstr[1] "%d ساعت" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d ساعت" +msgstr[1] "%(num)d ساعت" #, python-format msgctxt "naturaltime-future" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d دقیقه" -msgstr[1] "%d دقیقه" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d دقیقه" +msgstr[1] "%(num)d دقیقه" diff --git a/django/contrib/humanize/locale/gd/LC_MESSAGES/django.mo b/django/contrib/humanize/locale/gd/LC_MESSAGES/django.mo index 028d6e7d232ae..8c2fac16925cc 100644 Binary files a/django/contrib/humanize/locale/gd/LC_MESSAGES/django.mo and b/django/contrib/humanize/locale/gd/LC_MESSAGES/django.mo differ diff --git a/django/contrib/humanize/locale/gd/LC_MESSAGES/django.po b/django/contrib/humanize/locale/gd/LC_MESSAGES/django.po index 22aa4a323bafa..7101512c337b0 100644 --- a/django/contrib/humanize/locale/gd/LC_MESSAGES/django.po +++ b/django/contrib/humanize/locale/gd/LC_MESSAGES/django.po @@ -1,14 +1,15 @@ # This file is distributed under the same license as the Django package. # # Translators: +# GunChleoc, 2021 # GunChleoc, 2015 # GunChleoc, 2015 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2018-05-29 09:32+0000\n" +"POT-Creation-Date: 2021-04-07 14:40+0200\n" +"PO-Revision-Date: 2021-12-24 18:40+0000\n" "Last-Translator: GunChleoc\n" "Language-Team: Gaelic, Scottish (http://www.transifex.com/django/django/" "language/gd/)\n" @@ -77,14 +78,6 @@ msgctxt "ordinal 9" msgid "{}th" msgstr "{}mh" -#, python-format -msgid "%(value).1f million" -msgid_plural "%(value).1f million" -msgstr[0] "%(value).1f mhillean" -msgstr[1] "%(value).1f mhillean" -msgstr[2] "%(value).1f milleanan" -msgstr[3] "%(value).1f millean" - #, python-format msgid "%(value)s million" msgid_plural "%(value)s million" @@ -93,14 +86,6 @@ msgstr[1] "%(value)s mhillean" msgstr[2] "%(value)s milleanan" msgstr[3] "%(value)s millean" -#, python-format -msgid "%(value).1f billion" -msgid_plural "%(value).1f billion" -msgstr[0] "%(value).1f bhillean" -msgstr[1] "%(value).1f bhillean" -msgstr[2] "%(value).1f billeanan" -msgstr[3] "%(value).1f billean" - #, python-format msgid "%(value)s billion" msgid_plural "%(value)s billion" @@ -109,14 +94,6 @@ msgstr[1] "%(value)s bhillean" msgstr[2] "%(value)s billeanan" msgstr[3] "%(value)s billean" -#, python-format -msgid "%(value).1f trillion" -msgid_plural "%(value).1f trillion" -msgstr[0] "%(value).1f trillean" -msgstr[1] "%(value).1f thrillean" -msgstr[2] "%(value).1f trilleanan" -msgstr[3] "%(value).1f trillean" - #, python-format msgid "%(value)s trillion" msgid_plural "%(value)s trillion" @@ -125,14 +102,6 @@ msgstr[1] "%(value)s thrillean" msgstr[2] "%(value)s trilleanan" msgstr[3] "%(value)s trillean" -#, python-format -msgid "%(value).1f quadrillion" -msgid_plural "%(value).1f quadrillion" -msgstr[0] "%(value).1f quadrillean" -msgstr[1] "%(value).1f quadrillean" -msgstr[2] "%(value).1f quadrilleanan" -msgstr[3] "%(value).1f quadrillean" - #, python-format msgid "%(value)s quadrillion" msgid_plural "%(value)s quadrillion" @@ -141,14 +110,6 @@ msgstr[1] "%(value)s quadrillean" msgstr[2] "%(value)s quadrilleanan" msgstr[3] "%(value)s quadrillean" -#, python-format -msgid "%(value).1f quintillion" -msgid_plural "%(value).1f quintillion" -msgstr[0] "%(value).1f quintillean" -msgstr[1] "%(value).1f quintillean" -msgstr[2] "%(value).1f quintilleanan" -msgstr[3] "%(value).1f quintillean" - #, python-format msgid "%(value)s quintillion" msgid_plural "%(value)s quintillion" @@ -157,14 +118,6 @@ msgstr[1] "%(value)s quintillean" msgstr[2] "%(value)s quintilleanan" msgstr[3] "%(value)s quintillean" -#, python-format -msgid "%(value).1f sextillion" -msgid_plural "%(value).1f sextillion" -msgstr[0] "%(value).1f sextillean" -msgstr[1] "%(value).1f shextillean" -msgstr[2] "%(value).1f sextilleanan" -msgstr[3] "%(value).1f sextillean" - #, python-format msgid "%(value)s sextillion" msgid_plural "%(value)s sextillion" @@ -173,14 +126,6 @@ msgstr[1] "%(value)s shextillean" msgstr[2] "%(value)s sextilleanan" msgstr[3] "%(value)s sextillean" -#, python-format -msgid "%(value).1f septillion" -msgid_plural "%(value).1f septillion" -msgstr[0] "%(value).1f septillean" -msgstr[1] "%(value).1f sheptillean" -msgstr[2] "%(value).1f septilleanan" -msgstr[3] "%(value).1f septillean" - #, python-format msgid "%(value)s septillion" msgid_plural "%(value)s septillion" @@ -189,14 +134,6 @@ msgstr[1] "%(value)s sheptillean" msgstr[2] "%(value)s septilleanan" msgstr[3] "%(value)s septillean" -#, python-format -msgid "%(value).1f octillion" -msgid_plural "%(value).1f octillion" -msgstr[0] "%(value).1f octillean" -msgstr[1] "%(value).1f octillean" -msgstr[2] "%(value).1f octilleanan" -msgstr[3] "%(value).1f octillean" - #, python-format msgid "%(value)s octillion" msgid_plural "%(value)s octillion" @@ -205,14 +142,6 @@ msgstr[1] "%(value)s octillean" msgstr[2] "%(value)s octilleanan" msgstr[3] "%(value)s octillean" -#, python-format -msgid "%(value).1f nonillion" -msgid_plural "%(value).1f nonillion" -msgstr[0] "%(value).1f nonillean" -msgstr[1] "%(value).1f nonillean" -msgstr[2] "%(value).1f nonilleanan" -msgstr[3] "%(value).1f nonillean" - #, python-format msgid "%(value)s nonillion" msgid_plural "%(value)s nonillion" @@ -221,14 +150,6 @@ msgstr[1] "%(value)s nonillean" msgstr[2] "%(value)s nonilleanan" msgstr[3] "%(value)s nonillean" -#, python-format -msgid "%(value).1f decillion" -msgid_plural "%(value).1f decillion" -msgstr[0] "%(value).1f decillean" -msgstr[1] "%(value).1f dhecillean" -msgstr[2] "%(value).1f decilleanan" -msgstr[3] "%(value).1f decillean" - #, python-format msgid "%(value)s decillion" msgid_plural "%(value)s decillion" @@ -237,14 +158,6 @@ msgstr[1] "%(value)s dhecillean" msgstr[2] "%(value)s decilleanan" msgstr[3] "%(value)s decillean" -#, python-format -msgid "%(value).1f googol" -msgid_plural "%(value).1f googol" -msgstr[0] "%(value).1f ghoogol" -msgstr[1] "%(value).1f ghoogol" -msgstr[2] "%(value).1f googolan" -msgstr[3] "%(value).1f googol" - #, python-format msgid "%(value)s googol" msgid_plural "%(value)s googol" @@ -367,110 +280,110 @@ msgstr "an ceann %(delta)s" #. Translators: 'naturaltime-past' strings will be included in '%(delta)s ago' #, python-format msgctxt "naturaltime-past" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d bhliadhna" -msgstr[1] "%d bhliadhna" -msgstr[2] "%d bliadhnaichean" -msgstr[3] "%d bliadhna" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d bhliadhna" +msgstr[1] "%(num)d bhliadhna" +msgstr[2] "%(num)d bliadhnaichean" +msgstr[3] "%(num)d bliadhna" #, python-format msgctxt "naturaltime-past" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d mhìos" -msgstr[1] "%d mhìos" -msgstr[2] "%d mìosan" -msgstr[3] "%d mìos" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d mhìos" +msgstr[1] "%(num)d mhìos" +msgstr[2] "%(num)d mìosan" +msgstr[3] "%(num)d mìos" #, python-format msgctxt "naturaltime-past" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d seachdain" -msgstr[1] "%d sheachdain" -msgstr[2] "%d seachdainean" -msgstr[3] "%d seachdain" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d seachdain" +msgstr[1] "%(num)d sheachdain" +msgstr[2] "%(num)d seachdainean" +msgstr[3] "%(num)d seachdain" #, python-format msgctxt "naturaltime-past" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d latha" -msgstr[1] "%d latha" -msgstr[2] "%d làithean" -msgstr[3] "%d latha" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d latha" +msgstr[1] "%(num)d latha" +msgstr[2] "%(num)d làithean" +msgstr[3] "%(num)d latha" #, python-format msgctxt "naturaltime-past" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d uair a thìde" -msgstr[1] "%d uair a thìde" -msgstr[2] "%d uairean a thìde" -msgstr[3] "%d uair a thìde" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d uair a thìde" +msgstr[1] "%(num)d uair a thìde" +msgstr[2] "%(num)d uairean a thìde" +msgstr[3] "%(num)d uair a thìde" #, python-format msgctxt "naturaltime-past" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d mhionaid" -msgstr[1] "%d mhionaid" -msgstr[2] "%d mionaidean" -msgstr[3] "%d mionaid" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d mhionaid" +msgstr[1] "%(num)d mhionaid" +msgstr[2] "%(num)d mionaidean" +msgstr[3] "%(num)d mionaid" #. Translators: 'naturaltime-future' strings will be included in '%(delta)s #. from now' #, python-format msgctxt "naturaltime-future" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d bhliadhna" -msgstr[1] "%d bliadhna" -msgstr[2] "%d bliadhnaichean" -msgstr[3] "%d bliadhna" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d bhliadhna" +msgstr[1] "%(num)d bhliadhna" +msgstr[2] "%(num)d bliadhnaichean" +msgstr[3] "%(num)d bliadhna" #, python-format msgctxt "naturaltime-future" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d mhìos" -msgstr[1] "%d mhìos" -msgstr[2] "%d mìosan" -msgstr[3] "%d mìos" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d mhìos" +msgstr[1] "%(num)d mhìos" +msgstr[2] "%(num)d mìosan" +msgstr[3] "%(num)d mìos" #, python-format msgctxt "naturaltime-future" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d seachdain" -msgstr[1] "%d sheachdain" -msgstr[2] "%d seachdainean" -msgstr[3] "%d seachdain" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d seachdain" +msgstr[1] "%(num)d sheachdain" +msgstr[2] "%(num)d seachdainean" +msgstr[3] "%(num)d seachdain" #, python-format msgctxt "naturaltime-future" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d latha" -msgstr[1] "%d latha" -msgstr[2] "%d làithean" -msgstr[3] "%d latha" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d latha" +msgstr[1] "%(num)d latha" +msgstr[2] "%(num)d làithean" +msgstr[3] "%(num)d latha" #, python-format msgctxt "naturaltime-future" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d uair a thìde" -msgstr[1] "%d uair a thìde" -msgstr[2] "%d uairean a thìde" -msgstr[3] "%d uair a thìde" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d uair a thìde" +msgstr[1] "%(num)d uair a thìde" +msgstr[2] "%(num)d uairean a thìde" +msgstr[3] "%(num)d uair a thìde" #, python-format msgctxt "naturaltime-future" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d mhionaid" -msgstr[1] "%d mhionaid" -msgstr[2] "%d mionaidean" -msgstr[3] "%d mionaid" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d mhionaid" +msgstr[1] "%(num)d mhionaid" +msgstr[2] "%(num)d mionaidean" +msgstr[3] "%(num)d mionaid" diff --git a/django/contrib/humanize/locale/ko/LC_MESSAGES/django.mo b/django/contrib/humanize/locale/ko/LC_MESSAGES/django.mo index bf159486e63eb..1c311bbe10471 100644 Binary files a/django/contrib/humanize/locale/ko/LC_MESSAGES/django.mo and b/django/contrib/humanize/locale/ko/LC_MESSAGES/django.mo differ diff --git a/django/contrib/humanize/locale/ko/LC_MESSAGES/django.po b/django/contrib/humanize/locale/ko/LC_MESSAGES/django.po index 4a0928d1bd346..82cda2dbd2591 100644 --- a/django/contrib/humanize/locale/ko/LC_MESSAGES/django.po +++ b/django/contrib/humanize/locale/ko/LC_MESSAGES/django.po @@ -5,15 +5,16 @@ # Jannis Leidel , 2011 # Le Tartuffe , 2014 # JunGu Kang , 2015 -# Noh Seho , 2018 -# Yongjin Jo , 2018 +# Seho Noh , 2018 +# 정훈 이, 2021 +# Jrog , 2018 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2018-12-14 06:03+0000\n" -"Last-Translator: Yongjin Jo \n" +"POT-Creation-Date: 2021-04-07 14:40+0200\n" +"PO-Revision-Date: 2021-12-24 18:40+0000\n" +"Last-Translator: 정훈 이\n" "Language-Team: Korean (http://www.transifex.com/django/django/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -79,111 +80,56 @@ msgctxt "ordinal 9" msgid "{}th" msgstr "{}번째" -#, python-format -msgid "%(value).1f million" -msgid_plural "%(value).1f million" -msgstr[0] "%(value).1f백만" - #, python-format msgid "%(value)s million" msgid_plural "%(value)s million" msgstr[0] "%(value)s 백만" -#, python-format -msgid "%(value).1f billion" -msgid_plural "%(value).1f billion" -msgstr[0] "%(value).1f십억" - #, python-format msgid "%(value)s billion" msgid_plural "%(value)s billion" msgstr[0] "%(value)s 십억" -#, python-format -msgid "%(value).1f trillion" -msgid_plural "%(value).1f trillion" -msgstr[0] "%(value).1f조" - #, python-format msgid "%(value)s trillion" msgid_plural "%(value)s trillion" msgstr[0] "%(value)s 조" -#, python-format -msgid "%(value).1f quadrillion" -msgid_plural "%(value).1f quadrillion" -msgstr[0] "%(value).1f 천조" - #, python-format msgid "%(value)s quadrillion" msgid_plural "%(value)s quadrillion" msgstr[0] "%(value)s 천조" -#, python-format -msgid "%(value).1f quintillion" -msgid_plural "%(value).1f quintillion" -msgstr[0] "%(value).1f 백경" - #, python-format msgid "%(value)s quintillion" msgid_plural "%(value)s quintillion" msgstr[0] "%(value)s 백경" -#, python-format -msgid "%(value).1f sextillion" -msgid_plural "%(value).1f sextillion" -msgstr[0] "%(value).1f 섹틸리언-10의21제곱" - #, python-format msgid "%(value)s sextillion" msgid_plural "%(value)s sextillion" msgstr[0] "%(value)s 섹틸리언-10의21제곱" -#, python-format -msgid "%(value).1f septillion" -msgid_plural "%(value).1f septillion" -msgstr[0] "%(value).1f 셉틸리언-10의 24제곱" - #, python-format msgid "%(value)s septillion" msgid_plural "%(value)s septillion" msgstr[0] "%(value)s 셉틸리언-10의 24제곱" -#, python-format -msgid "%(value).1f octillion" -msgid_plural "%(value).1f octillion" -msgstr[0] "%(value).1f 옥틸리언-10의 27제곱" - #, python-format msgid "%(value)s octillion" msgid_plural "%(value)s octillion" msgstr[0] "%(value)s 옥틸리언-10의 27제곱" -#, python-format -msgid "%(value).1f nonillion" -msgid_plural "%(value).1f nonillion" -msgstr[0] "%(value).1f 노닐리언-10의30제곱" - #, python-format msgid "%(value)s nonillion" msgid_plural "%(value)s nonillion" msgstr[0] "%(value)s 노닐리언-10의30제곱" -#, python-format -msgid "%(value).1f decillion" -msgid_plural "%(value).1f decillion" -msgstr[0] "%(value).1f 디실리언-10의 33제곱" - #, python-format msgid "%(value)s decillion" msgid_plural "%(value)s decillion" msgstr[0] "%(value)s 디실리언-10의 33제곱" -#, python-format -msgid "%(value).1f googol" -msgid_plural "%(value).1f googol" -msgstr[0] "%(value).1f 구골-10의 100제곱" - #, python-format msgid "%(value)s googol" msgid_plural "%(value)s googol" @@ -285,74 +231,74 @@ msgstr "지금부터 %(delta)s" #. Translators: 'naturaltime-past' strings will be included in '%(delta)s ago' #, python-format msgctxt "naturaltime-past" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d년" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d년" #, python-format msgctxt "naturaltime-past" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d개월" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d개월" #, python-format msgctxt "naturaltime-past" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d주" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d주" #, python-format msgctxt "naturaltime-past" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d일" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d일" #, python-format msgctxt "naturaltime-past" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d시간" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d시간" #, python-format msgctxt "naturaltime-past" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d분" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d분" #. Translators: 'naturaltime-future' strings will be included in '%(delta)s #. from now' #, python-format msgctxt "naturaltime-future" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d년" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d년" #, python-format msgctxt "naturaltime-future" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d개월" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d개월" #, python-format msgctxt "naturaltime-future" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d주" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d주" #, python-format msgctxt "naturaltime-future" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d일" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d일" #, python-format msgctxt "naturaltime-future" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d시간" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d시간" #, python-format msgctxt "naturaltime-future" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d분" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d분" diff --git a/django/contrib/humanize/locale/ms/LC_MESSAGES/django.mo b/django/contrib/humanize/locale/ms/LC_MESSAGES/django.mo index e2a007d316a12..1384c6bd7974c 100644 Binary files a/django/contrib/humanize/locale/ms/LC_MESSAGES/django.mo and b/django/contrib/humanize/locale/ms/LC_MESSAGES/django.mo differ diff --git a/django/contrib/humanize/locale/ms/LC_MESSAGES/django.po b/django/contrib/humanize/locale/ms/LC_MESSAGES/django.po index 3c18e10ccbeda..e1101d45f0d3a 100644 --- a/django/contrib/humanize/locale/ms/LC_MESSAGES/django.po +++ b/django/contrib/humanize/locale/ms/LC_MESSAGES/django.po @@ -2,13 +2,14 @@ # # Translators: # alternativespeak , 2012 +# Jafry Hisham, 2021 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2018-05-18 01:38+0000\n" -"Last-Translator: Jannis Leidel \n" +"POT-Creation-Date: 2021-04-07 14:40+0200\n" +"PO-Revision-Date: 2021-12-24 18:40+0000\n" +"Last-Translator: Jafry Hisham\n" "Language-Team: Malay (http://www.transifex.com/django/django/language/ms/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,172 +18,117 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" msgid "Humanize" -msgstr "" +msgstr "Memanusiakan" #. Translators: Ordinal format for 11 (11th), 12 (12th), and 13 (13th). msgctxt "ordinal 11, 12, 13" msgid "{}th" -msgstr "" +msgstr "ke{}" #. Translators: Ordinal format when value ends with 0, e.g. 80th. msgctxt "ordinal 0" msgid "{}th" -msgstr "" +msgstr "ke{}" #. Translators: Ordinal format when value ends with 1, e.g. 81st, except 11. msgctxt "ordinal 1" msgid "{}st" -msgstr "" +msgstr "ke{}" #. Translators: Ordinal format when value ends with 2, e.g. 82nd, except 12. msgctxt "ordinal 2" msgid "{}nd" -msgstr "" +msgstr "ke{}" #. Translators: Ordinal format when value ends with 3, e.g. 83th, except 13. msgctxt "ordinal 3" msgid "{}rd" -msgstr "" +msgstr "ke{}" #. Translators: Ordinal format when value ends with 4, e.g. 84th. msgctxt "ordinal 4" msgid "{}th" -msgstr "" +msgstr "ke{}" #. Translators: Ordinal format when value ends with 5, e.g. 85th. msgctxt "ordinal 5" msgid "{}th" -msgstr "" +msgstr "ke{}" #. Translators: Ordinal format when value ends with 6, e.g. 86th. msgctxt "ordinal 6" msgid "{}th" -msgstr "" +msgstr "ke{}" #. Translators: Ordinal format when value ends with 7, e.g. 87th. msgctxt "ordinal 7" msgid "{}th" -msgstr "" +msgstr "ke{}" #. Translators: Ordinal format when value ends with 8, e.g. 88th. msgctxt "ordinal 8" msgid "{}th" -msgstr "" +msgstr "ke{}" #. Translators: Ordinal format when value ends with 9, e.g. 89th. msgctxt "ordinal 9" msgid "{}th" -msgstr "" - -#, python-format -msgid "%(value).1f million" -msgid_plural "%(value).1f million" -msgstr[0] "" +msgstr "ke{}" #, python-format msgid "%(value)s million" msgid_plural "%(value)s million" -msgstr[0] "" - -#, python-format -msgid "%(value).1f billion" -msgid_plural "%(value).1f billion" -msgstr[0] "" +msgstr[0] "%(value)s juta" #, python-format msgid "%(value)s billion" msgid_plural "%(value)s billion" -msgstr[0] "" - -#, python-format -msgid "%(value).1f trillion" -msgid_plural "%(value).1f trillion" -msgstr[0] "" +msgstr[0] "%(value)s bilion" #, python-format msgid "%(value)s trillion" msgid_plural "%(value)s trillion" -msgstr[0] "" - -#, python-format -msgid "%(value).1f quadrillion" -msgid_plural "%(value).1f quadrillion" -msgstr[0] "" +msgstr[0] "%(value)s trilion" #, python-format msgid "%(value)s quadrillion" msgid_plural "%(value)s quadrillion" -msgstr[0] "" - -#, python-format -msgid "%(value).1f quintillion" -msgid_plural "%(value).1f quintillion" -msgstr[0] "" +msgstr[0] "%(value)s kuadrilion" #, python-format msgid "%(value)s quintillion" msgid_plural "%(value)s quintillion" -msgstr[0] "" - -#, python-format -msgid "%(value).1f sextillion" -msgid_plural "%(value).1f sextillion" -msgstr[0] "" +msgstr[0] "%(value)s kuintilion" #, python-format msgid "%(value)s sextillion" msgid_plural "%(value)s sextillion" -msgstr[0] "" - -#, python-format -msgid "%(value).1f septillion" -msgid_plural "%(value).1f septillion" -msgstr[0] "" +msgstr[0] "%(value)ssextilion" #, python-format msgid "%(value)s septillion" msgid_plural "%(value)s septillion" -msgstr[0] "" - -#, python-format -msgid "%(value).1f octillion" -msgid_plural "%(value).1f octillion" -msgstr[0] "" +msgstr[0] "%(value)s septilion" #, python-format msgid "%(value)s octillion" msgid_plural "%(value)s octillion" -msgstr[0] "" - -#, python-format -msgid "%(value).1f nonillion" -msgid_plural "%(value).1f nonillion" -msgstr[0] "" +msgstr[0] "%(value)s oktilion" #, python-format msgid "%(value)s nonillion" msgid_plural "%(value)s nonillion" -msgstr[0] "" - -#, python-format -msgid "%(value).1f decillion" -msgid_plural "%(value).1f decillion" -msgstr[0] "" +msgstr[0] "%(value)s nontilion" #, python-format msgid "%(value)s decillion" msgid_plural "%(value)s decillion" -msgstr[0] "" - -#, python-format -msgid "%(value).1f googol" -msgid_plural "%(value).1f googol" -msgstr[0] "" +msgstr[0] "%(value)sdesilion" #, python-format msgid "%(value)s googol" msgid_plural "%(value)s googol" -msgstr[0] "" +msgstr[0] "%(value)s googol" msgid "one" msgstr "satu" @@ -224,28 +170,28 @@ msgstr "semalam" #. weeks' #, python-format msgid "%(delta)s ago" -msgstr "" +msgstr "%(delta)s yang lalu" #. Translators: please keep a non-breaking space (U+00A0) between count #. and time unit. #, python-format msgid "an hour ago" msgid_plural "%(count)s hours ago" -msgstr[0] "" +msgstr[0] "%(count)s yang lalu" #. Translators: please keep a non-breaking space (U+00A0) between count #. and time unit. #, python-format msgid "a minute ago" msgid_plural "%(count)s minutes ago" -msgstr[0] "" +msgstr[0] "%(count)s minit yang lalu" #. Translators: please keep a non-breaking space (U+00A0) between count #. and time unit. #, python-format msgid "a second ago" msgid_plural "%(count)s seconds ago" -msgstr[0] "" +msgstr[0] "%(count)s saat yang lalu" msgid "now" msgstr "sekarang" @@ -255,99 +201,99 @@ msgstr "sekarang" #, python-format msgid "a second from now" msgid_plural "%(count)s seconds from now" -msgstr[0] "" +msgstr[0] "%(count)s saat dari sekarang" #. Translators: please keep a non-breaking space (U+00A0) between count #. and time unit. #, python-format msgid "a minute from now" msgid_plural "%(count)s minutes from now" -msgstr[0] "" +msgstr[0] "%(count)s minit dari sekarang" #. Translators: please keep a non-breaking space (U+00A0) between count #. and time unit. #, python-format msgid "an hour from now" msgid_plural "%(count)s hours from now" -msgstr[0] "" +msgstr[0] "%(count)s jam dari sekarang" #. Translators: delta will contain a string like '2 months' or '1 month, 2 #. weeks' #, python-format msgid "%(delta)s from now" -msgstr "" +msgstr "%(delta)s dari sekarang" #. Translators: 'naturaltime-past' strings will be included in '%(delta)s ago' #, python-format msgctxt "naturaltime-past" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d tahun" #, python-format msgctxt "naturaltime-past" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d bulan" #, python-format msgctxt "naturaltime-past" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d minggu" #, python-format msgctxt "naturaltime-past" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d hari" #, python-format msgctxt "naturaltime-past" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d jam" #, python-format msgctxt "naturaltime-past" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minit" #. Translators: 'naturaltime-future' strings will be included in '%(delta)s #. from now' #, python-format msgctxt "naturaltime-future" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d tahun" #, python-format msgctxt "naturaltime-future" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d bulan" #, python-format msgctxt "naturaltime-future" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d minggu" #, python-format msgctxt "naturaltime-future" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d hari" #, python-format msgctxt "naturaltime-future" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d jam" #, python-format msgctxt "naturaltime-future" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minit" diff --git a/django/contrib/humanize/locale/nl/LC_MESSAGES/django.mo b/django/contrib/humanize/locale/nl/LC_MESSAGES/django.mo index 5a94442e2b066..a702bfa8a0605 100644 Binary files a/django/contrib/humanize/locale/nl/LC_MESSAGES/django.mo and b/django/contrib/humanize/locale/nl/LC_MESSAGES/django.mo differ diff --git a/django/contrib/humanize/locale/nl/LC_MESSAGES/django.po b/django/contrib/humanize/locale/nl/LC_MESSAGES/django.po index bb4643bb6a240..c88cf1d67caab 100644 --- a/django/contrib/humanize/locale/nl/LC_MESSAGES/django.po +++ b/django/contrib/humanize/locale/nl/LC_MESSAGES/django.po @@ -3,16 +3,16 @@ # Translators: # Blue , 2011-2012 # Jannis Leidel , 2011 -# Jeffrey Gelens , 2014 -# Sander Steffann , 2015 +# 6a27f10aef159701c7a5ff07f0fb0a78_05545ed , 2014 +# 8de006b1b0894aab6aef71979dcd8bd6_5c6b207 , 2015 # Tino de Bruijn , 2012 -# Tonnes , 2019 +# Tonnes , 2019,2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2019-02-24 15:09+0000\n" +"POT-Creation-Date: 2021-04-07 14:40+0200\n" +"PO-Revision-Date: 2022-07-24 18:40+0000\n" "Last-Translator: Tonnes \n" "Language-Team: Dutch (http://www.transifex.com/django/django/language/nl/)\n" "MIME-Version: 1.0\n" @@ -79,132 +79,66 @@ msgctxt "ordinal 9" msgid "{}th" msgstr "{}e" -#, python-format -msgid "%(value).1f million" -msgid_plural "%(value).1f million" -msgstr[0] "%(value).1f miljoen" -msgstr[1] "%(value).1f miljoen" - #, python-format msgid "%(value)s million" msgid_plural "%(value)s million" msgstr[0] "%(value)s miljoen" msgstr[1] "%(value)s miljoen" -#, python-format -msgid "%(value).1f billion" -msgid_plural "%(value).1f billion" -msgstr[0] "%(value).1f miljard" -msgstr[1] "%(value).1f miljard" - #, python-format msgid "%(value)s billion" msgid_plural "%(value)s billion" msgstr[0] "%(value)s miljard" msgstr[1] "%(value)s miljard" -#, python-format -msgid "%(value).1f trillion" -msgid_plural "%(value).1f trillion" -msgstr[0] "%(value).1f biljoen" -msgstr[1] "%(value).1f biljoen" - #, python-format msgid "%(value)s trillion" msgid_plural "%(value)s trillion" msgstr[0] "%(value)s biljoen" msgstr[1] "%(value)s biljoen" -#, python-format -msgid "%(value).1f quadrillion" -msgid_plural "%(value).1f quadrillion" -msgstr[0] "%(value).1f biljard" -msgstr[1] "%(value).1f biljard" - #, python-format msgid "%(value)s quadrillion" msgid_plural "%(value)s quadrillion" msgstr[0] "%(value)s biljard" msgstr[1] "%(value)s biljard" -#, python-format -msgid "%(value).1f quintillion" -msgid_plural "%(value).1f quintillion" -msgstr[0] "%(value).1f triljoen" -msgstr[1] "%(value).1f triljoen" - #, python-format msgid "%(value)s quintillion" msgid_plural "%(value)s quintillion" msgstr[0] "%(value)s triljoen" msgstr[1] "%(value)s triljoen" -#, python-format -msgid "%(value).1f sextillion" -msgid_plural "%(value).1f sextillion" -msgstr[0] "%(value).1f triljard" -msgstr[1] "%(value).1f triljard" - #, python-format msgid "%(value)s sextillion" msgid_plural "%(value)s sextillion" msgstr[0] "%(value)s triljard" msgstr[1] "%(value)s triljard" -#, python-format -msgid "%(value).1f septillion" -msgid_plural "%(value).1f septillion" -msgstr[0] "%(value).1f quadriljoen" -msgstr[1] "%(value).1f quadriljoen" - #, python-format msgid "%(value)s septillion" msgid_plural "%(value)s septillion" msgstr[0] "%(value)s quadriljoen" msgstr[1] "%(value)s quadriljoen" -#, python-format -msgid "%(value).1f octillion" -msgid_plural "%(value).1f octillion" -msgstr[0] "%(value).1f quadriljard" -msgstr[1] "%(value).1f quadriljard" - #, python-format msgid "%(value)s octillion" msgid_plural "%(value)s octillion" msgstr[0] "%(value)s quadriljard" msgstr[1] "%(value)s quadriljard" -#, python-format -msgid "%(value).1f nonillion" -msgid_plural "%(value).1f nonillion" -msgstr[0] "%(value).1f quintiljoen" -msgstr[1] "%(value).1f quintiljoen" - #, python-format msgid "%(value)s nonillion" msgid_plural "%(value)s nonillion" msgstr[0] "%(value)s quintiljoen" msgstr[1] "%(value)s quintiljoen" -#, python-format -msgid "%(value).1f decillion" -msgid_plural "%(value).1f decillion" -msgstr[0] "%(value).1f quintiljard" -msgstr[1] "%(value).1f quintiljard" - #, python-format msgid "%(value)s decillion" msgid_plural "%(value)s decillion" msgstr[0] "%(value)s quintiljard" msgstr[1] "%(value)s quintiljard" -#, python-format -msgid "%(value).1f googol" -msgid_plural "%(value).1f googol" -msgstr[0] "%(value).1f googol" -msgstr[1] "%(value).1f googol" - #, python-format msgid "%(value)s googol" msgid_plural "%(value)s googol" @@ -313,86 +247,86 @@ msgstr "over %(delta)s" #. Translators: 'naturaltime-past' strings will be included in '%(delta)s ago' #, python-format msgctxt "naturaltime-past" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d jaar" -msgstr[1] "%d jaar" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d jaar" +msgstr[1] "%(num)d jaar" #, python-format msgctxt "naturaltime-past" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d maand" -msgstr[1] "%d maanden" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d maand" +msgstr[1] "%(num)d maanden" #, python-format msgctxt "naturaltime-past" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d week" -msgstr[1] "%d weken" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d week" +msgstr[1] "%(num)d weken" #, python-format msgctxt "naturaltime-past" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d dag" -msgstr[1] "%d dagen" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dag" +msgstr[1] "%(num)d dagen" #, python-format msgctxt "naturaltime-past" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d uur" -msgstr[1] "%d uur" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d uur" +msgstr[1] "%(num)d uur" #, python-format msgctxt "naturaltime-past" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d minuut" -msgstr[1] "%d minuten" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuut" +msgstr[1] "%(num)d minuten" #. Translators: 'naturaltime-future' strings will be included in '%(delta)s #. from now' #, python-format msgctxt "naturaltime-future" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d jaar" -msgstr[1] "%d jaar" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d jaar" +msgstr[1] "%(num)d jaar" #, python-format msgctxt "naturaltime-future" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d maand" -msgstr[1] "%d maanden" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d maand" +msgstr[1] "%(num)d maanden" #, python-format msgctxt "naturaltime-future" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d week" -msgstr[1] "%d weken" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d week" +msgstr[1] "%(num)d weken" #, python-format msgctxt "naturaltime-future" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d dag" -msgstr[1] "%d dagen" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dag" +msgstr[1] "%(num)d dagen" #, python-format msgctxt "naturaltime-future" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d uur" -msgstr[1] "%d uur" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d uur" +msgstr[1] "%(num)d uur" #, python-format msgctxt "naturaltime-future" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d minuut" -msgstr[1] "%d minuten" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuut" +msgstr[1] "%(num)d minuten" diff --git a/django/contrib/humanize/locale/nn/LC_MESSAGES/django.mo b/django/contrib/humanize/locale/nn/LC_MESSAGES/django.mo index 4053b2cfa7326..2b358c431982a 100644 Binary files a/django/contrib/humanize/locale/nn/LC_MESSAGES/django.mo and b/django/contrib/humanize/locale/nn/LC_MESSAGES/django.mo differ diff --git a/django/contrib/humanize/locale/nn/LC_MESSAGES/django.po b/django/contrib/humanize/locale/nn/LC_MESSAGES/django.po index dcbc237b4a72c..30d7558f26368 100644 --- a/django/contrib/humanize/locale/nn/LC_MESSAGES/django.po +++ b/django/contrib/humanize/locale/nn/LC_MESSAGES/django.po @@ -2,14 +2,14 @@ # # Translators: # Jannis Leidel , 2011 -# Sivert Olstad, 2021 +# Sivert Olstad, 2021-2022 # velmont , 2012 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-04-07 14:40+0200\n" -"PO-Revision-Date: 2021-10-26 12:33+0000\n" +"PO-Revision-Date: 2022-07-24 18:40+0000\n" "Last-Translator: Sivert Olstad\n" "Language-Team: Norwegian Nynorsk (http://www.transifex.com/django/django/" "language/nn/)\n" @@ -199,7 +199,7 @@ msgstr[1] "%(count)s timar sidan" msgid "a minute ago" msgid_plural "%(count)s minutes ago" msgstr[0] "eitt minutt sidan" -msgstr[1] "%(count)s minutt frå no" +msgstr[1] "%(count)s minutt sidan" #. Translators: please keep a non-breaking space (U+00A0) between count #. and time unit. diff --git a/django/contrib/humanize/locale/pt_BR/LC_MESSAGES/django.mo b/django/contrib/humanize/locale/pt_BR/LC_MESSAGES/django.mo index b62236e0a5f26..032187d81cde1 100644 Binary files a/django/contrib/humanize/locale/pt_BR/LC_MESSAGES/django.mo and b/django/contrib/humanize/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/django/contrib/humanize/locale/pt_BR/LC_MESSAGES/django.po b/django/contrib/humanize/locale/pt_BR/LC_MESSAGES/django.po index 71bb739ab5d46..5c178dd379ec2 100644 --- a/django/contrib/humanize/locale/pt_BR/LC_MESSAGES/django.po +++ b/django/contrib/humanize/locale/pt_BR/LC_MESSAGES/django.po @@ -6,15 +6,16 @@ # Eduardo Cereto Carvalho, 2012 # semente, 2012-2013 # Jannis Leidel , 2011 +# Rafael Fontenelle , 2022 # Sandro , 2011 -# Xico Petry , 2018 +# Francisco Petry Rauber , 2018 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2018-11-22 10:58+0000\n" -"Last-Translator: amcorreia \n" +"POT-Creation-Date: 2021-04-07 14:40+0200\n" +"PO-Revision-Date: 2022-04-24 18:40+0000\n" +"Last-Translator: Rafael Fontenelle , 2022\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/django/django/" "language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -81,137 +82,82 @@ msgctxt "ordinal 9" msgid "{}th" msgstr "{}º" -#, python-format -msgid "%(value).1f million" -msgid_plural "%(value).1f million" -msgstr[0] "%(value).1f milhão" -msgstr[1] "%(value).1f milhões" - #, python-format msgid "%(value)s million" msgid_plural "%(value)s million" msgstr[0] "%(value)s milhão" msgstr[1] "%(value)s milhões" - -#, python-format -msgid "%(value).1f billion" -msgid_plural "%(value).1f billion" -msgstr[0] "%(value).1f bilhão" -msgstr[1] "%(value).1f bilhões" +msgstr[2] "%(value)s milhões" #, python-format msgid "%(value)s billion" msgid_plural "%(value)s billion" msgstr[0] "%(value)s bilhão" msgstr[1] "%(value)s bilhões" - -#, python-format -msgid "%(value).1f trillion" -msgid_plural "%(value).1f trillion" -msgstr[0] "%(value).1f trilhão" -msgstr[1] "%(value).1f trilhões" +msgstr[2] "%(value)s bilhões" #, python-format msgid "%(value)s trillion" msgid_plural "%(value)s trillion" msgstr[0] "%(value)s trilhão" msgstr[1] "%(value)s trilhões" - -#, python-format -msgid "%(value).1f quadrillion" -msgid_plural "%(value).1f quadrillion" -msgstr[0] "%(value).1f quadrilhão" -msgstr[1] "%(value).1f quadrilhões" +msgstr[2] "%(value)s trilhões" #, python-format msgid "%(value)s quadrillion" msgid_plural "%(value)s quadrillion" msgstr[0] "%(value)s quadrilhão" msgstr[1] "%(value)s quadrilhões" - -#, python-format -msgid "%(value).1f quintillion" -msgid_plural "%(value).1f quintillion" -msgstr[0] "%(value).1f quintilhão" -msgstr[1] "%(value).1f quintilhões" +msgstr[2] "%(value)s quadrilhões" #, python-format msgid "%(value)s quintillion" msgid_plural "%(value)s quintillion" msgstr[0] "%(value)s quintilhão" msgstr[1] "%(value)s quintilhões" - -#, python-format -msgid "%(value).1f sextillion" -msgid_plural "%(value).1f sextillion" -msgstr[0] "%(value).1f sextilhão" -msgstr[1] "%(value).1f sextilhões" +msgstr[2] "%(value)s quintilhões" #, python-format msgid "%(value)s sextillion" msgid_plural "%(value)s sextillion" msgstr[0] "%(value)s sextilhão" msgstr[1] "%(value)s sextilhões" - -#, python-format -msgid "%(value).1f septillion" -msgid_plural "%(value).1f septillion" -msgstr[0] "%(value).1f septilhão" -msgstr[1] "%(value).1f septilhões" +msgstr[2] "%(value)s sextilhões" #, python-format msgid "%(value)s septillion" msgid_plural "%(value)s septillion" msgstr[0] "%(value)s septilhão" msgstr[1] "%(value)s septilhões" - -#, python-format -msgid "%(value).1f octillion" -msgid_plural "%(value).1f octillion" -msgstr[0] "%(value).1f octilhão" -msgstr[1] "%(value).1f octilhões" +msgstr[2] "%(value)s septilhões" #, python-format msgid "%(value)s octillion" msgid_plural "%(value)s octillion" msgstr[0] "%(value)s octilhão" msgstr[1] "%(value)s octilhões" - -#, python-format -msgid "%(value).1f nonillion" -msgid_plural "%(value).1f nonillion" -msgstr[0] "%(value).1f nonilhão" -msgstr[1] "%(value).1f nonilhões" +msgstr[2] "%(value)s octilhões" #, python-format msgid "%(value)s nonillion" msgid_plural "%(value)s nonillion" msgstr[0] "%(value)s nonilhão" msgstr[1] "%(value)s nonilhões" - -#, python-format -msgid "%(value).1f decillion" -msgid_plural "%(value).1f decillion" -msgstr[0] "%(value).1f decilhão" -msgstr[1] "%(value).1f decilhões" +msgstr[2] "%(value)s nonilhões" #, python-format msgid "%(value)s decillion" msgid_plural "%(value)s decillion" msgstr[0] "%(value)s decilhão" msgstr[1] "%(value)s decilhões" - -#, python-format -msgid "%(value).1f googol" -msgid_plural "%(value).1f googol" -msgstr[0] "%(value).1f googol" -msgstr[1] "%(value).1f googol" +msgstr[2] "%(value)s decilhões" #, python-format msgid "%(value)s googol" msgid_plural "%(value)s googol" msgstr[0] "%(value)s googol" msgstr[1] "%(value)s googol" +msgstr[2] "%(value)s googol" msgid "one" msgstr "um" @@ -262,6 +208,7 @@ msgid "an hour ago" msgid_plural "%(count)s hours ago" msgstr[0] "uma hora atrás" msgstr[1] "%(count)s horas atrás" +msgstr[2] "%(count)s horas atrás" #. Translators: please keep a non-breaking space (U+00A0) between count #. and time unit. @@ -270,6 +217,7 @@ msgid "a minute ago" msgid_plural "%(count)s minutes ago" msgstr[0] "um minuto atrás" msgstr[1] "%(count)s minutos atrás" +msgstr[2] "%(count)s minutos atrás" #. Translators: please keep a non-breaking space (U+00A0) between count #. and time unit. @@ -278,6 +226,7 @@ msgid "a second ago" msgid_plural "%(count)s seconds ago" msgstr[0] "um segundo atrás" msgstr[1] "%(count)s segundos atrás" +msgstr[2] "%(count)s segundos atrás" msgid "now" msgstr "agora" @@ -289,6 +238,7 @@ msgid "a second from now" msgid_plural "%(count)s seconds from now" msgstr[0] "um segundo a partir de agora" msgstr[1] "%(count)s segundos a partir de agora" +msgstr[2] "%(count)s segundos a partir de agora" #. Translators: please keep a non-breaking space (U+00A0) between count #. and time unit. @@ -297,6 +247,7 @@ msgid "a minute from now" msgid_plural "%(count)s minutes from now" msgstr[0] "um minuto a partir de agora" msgstr[1] "%(count)s minutos a partir de agora" +msgstr[2] "%(count)s minutos a partir de agora" #. Translators: please keep a non-breaking space (U+00A0) between count #. and time unit. @@ -305,6 +256,7 @@ msgid "an hour from now" msgid_plural "%(count)s hours from now" msgstr[0] "uma hora a partir de agora" msgstr[1] "%(count)s horas a partir de agora" +msgstr[2] "%(count)s horas a partir de agora" #. Translators: delta will contain a string like '2 months' or '1 month, 2 #. weeks' @@ -315,86 +267,98 @@ msgstr "%(delta)s a partir de agora" #. Translators: 'naturaltime-past' strings will be included in '%(delta)s ago' #, python-format msgctxt "naturaltime-past" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%dano" -msgstr[1] "%danos" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d ano" +msgstr[1] "%(num)d anos" +msgstr[2] "%(num)d anos" #, python-format msgctxt "naturaltime-past" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%dmês" -msgstr[1] "%dmeses" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d mês" +msgstr[1] "%(num)d meses" +msgstr[2] "%(num)d meses" #, python-format msgctxt "naturaltime-past" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%dsemanas" -msgstr[1] "%dsemanas" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d semana" +msgstr[1] "%(num)d semanas" +msgstr[2] "%(num)d semanas" #, python-format msgctxt "naturaltime-past" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%ddia" -msgstr[1] "%ddias" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dia" +msgstr[1] "%(num)d dias" +msgstr[2] "%(num)d dias" #, python-format msgctxt "naturaltime-past" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%dhora" -msgstr[1] "%dhoras" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d hora" +msgstr[1] "%(num)d horas" +msgstr[2] "%(num)d horas" #, python-format msgctxt "naturaltime-past" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%dminuto" -msgstr[1] "%dminutos" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuto" +msgstr[1] "%(num)d minutos" +msgstr[2] "%(num)d minutos" #. Translators: 'naturaltime-future' strings will be included in '%(delta)s #. from now' #, python-format msgctxt "naturaltime-future" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%dano" -msgstr[1] "%d anos" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d ano" +msgstr[1] "%(num)d anos" +msgstr[2] "%(num)d anos" #, python-format msgctxt "naturaltime-future" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%dmês" -msgstr[1] "%dmeses" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d mês" +msgstr[1] "%(num)d mses" +msgstr[2] "%(num)d mses" #, python-format msgctxt "naturaltime-future" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%dsemana" -msgstr[1] "%dsemanas" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d semana" +msgstr[1] "%(num)d semanas" +msgstr[2] "%(num)d semanas" #, python-format msgctxt "naturaltime-future" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%ddia" -msgstr[1] "%ddias" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dia" +msgstr[1] "%(num)d dias" +msgstr[2] "%(num)d dias" #, python-format msgctxt "naturaltime-future" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%dhora" -msgstr[1] "%dhoras" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d hora" +msgstr[1] "%(num)d horas" +msgstr[2] "%(num)d horas" #, python-format msgctxt "naturaltime-future" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%dminuto" -msgstr[1] "%dminutos" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minuto" +msgstr[1] "%(num)d minutos" +msgstr[2] "%(num)d minutos" diff --git a/django/contrib/humanize/locale/ru/LC_MESSAGES/django.mo b/django/contrib/humanize/locale/ru/LC_MESSAGES/django.mo index 7b0821932f185..edd750541833d 100644 Binary files a/django/contrib/humanize/locale/ru/LC_MESSAGES/django.mo and b/django/contrib/humanize/locale/ru/LC_MESSAGES/django.mo differ diff --git a/django/contrib/humanize/locale/ru/LC_MESSAGES/django.po b/django/contrib/humanize/locale/ru/LC_MESSAGES/django.po index a5f53197f9da9..51839a336f46c 100644 --- a/django/contrib/humanize/locale/ru/LC_MESSAGES/django.po +++ b/django/contrib/humanize/locale/ru/LC_MESSAGES/django.po @@ -8,24 +8,24 @@ # Jannis Leidel , 2011 # Mingun , 2014 # SeryiMysh , 2018 -# Алексей Борискин , 2012,2014 -# Дмитрий Шатера , 2018 +# Алексей Борискин , 2012,2014,2022 +# Bobsans , 2018 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2018-11-05 07:07+0000\n" -"Last-Translator: SeryiMysh \n" +"POT-Creation-Date: 2021-04-07 14:40+0200\n" +"PO-Revision-Date: 2022-04-24 18:40+0000\n" +"Last-Translator: Алексей Борискин , 2012,2014,2022\n" "Language-Team: Russian (http://www.transifex.com/django/django/language/" "ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" -"%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " +"(n%100>=11 && n%100<=14)? 2 : 3);\n" msgid "Humanize" msgstr "Приведение значений к виду, понятному человеку" @@ -85,14 +85,6 @@ msgctxt "ordinal 9" msgid "{}th" msgstr "{}-й" -#, python-format -msgid "%(value).1f million" -msgid_plural "%(value).1f million" -msgstr[0] "%(value).1f миллион" -msgstr[1] "%(value).1f миллиона" -msgstr[2] "%(value).1f миллионов" -msgstr[3] "%(value).1f миллионов" - #, python-format msgid "%(value)s million" msgid_plural "%(value)s million" @@ -101,14 +93,6 @@ msgstr[1] "%(value)s миллиона" msgstr[2] "%(value)s миллионов" msgstr[3] "%(value)s миллионов" -#, python-format -msgid "%(value).1f billion" -msgid_plural "%(value).1f billion" -msgstr[0] "%(value).1f миллиард" -msgstr[1] "%(value).1f миллиарда" -msgstr[2] "%(value).1f миллиардов" -msgstr[3] "%(value).1f миллиардов" - #, python-format msgid "%(value)s billion" msgid_plural "%(value)s billion" @@ -117,14 +101,6 @@ msgstr[1] "%(value)s миллиарда" msgstr[2] "%(value)s миллиардов" msgstr[3] "%(value)s миллиардов" -#, python-format -msgid "%(value).1f trillion" -msgid_plural "%(value).1f trillion" -msgstr[0] "%(value).1f триллион" -msgstr[1] "%(value).1f триллиона" -msgstr[2] "%(value).1f триллионов" -msgstr[3] "%(value).1f триллионов" - #, python-format msgid "%(value)s trillion" msgid_plural "%(value)s trillion" @@ -133,14 +109,6 @@ msgstr[1] "%(value)s триллиона" msgstr[2] "%(value)s триллионов" msgstr[3] "%(value)s триллионов" -#, python-format -msgid "%(value).1f quadrillion" -msgid_plural "%(value).1f quadrillion" -msgstr[0] "%(value).1f квадриллион" -msgstr[1] "%(value).1f квадриллиона" -msgstr[2] "%(value).1f квадриллионов" -msgstr[3] "%(value).1f квадриллионов" - #, python-format msgid "%(value)s quadrillion" msgid_plural "%(value)s quadrillion" @@ -149,14 +117,6 @@ msgstr[1] "%(value)s квадриллиона" msgstr[2] "%(value)s квадриллионов" msgstr[3] "%(value)s квадриллионов" -#, python-format -msgid "%(value).1f quintillion" -msgid_plural "%(value).1f quintillion" -msgstr[0] "%(value).1f квинтиллион" -msgstr[1] "%(value).1f квинтиллиона" -msgstr[2] "%(value).1f квинтиллионов" -msgstr[3] "%(value).1f квинтиллионов" - #, python-format msgid "%(value)s quintillion" msgid_plural "%(value)s quintillion" @@ -165,14 +125,6 @@ msgstr[1] "%(value)s квинтиллиона" msgstr[2] "%(value)s квинтиллионов" msgstr[3] "%(value)s квинтиллионов" -#, python-format -msgid "%(value).1f sextillion" -msgid_plural "%(value).1f sextillion" -msgstr[0] "%(value).1f секстиллион" -msgstr[1] "%(value).1f секстиллиона" -msgstr[2] "%(value).1f секстиллионов" -msgstr[3] "%(value).1f секстиллионов" - #, python-format msgid "%(value)s sextillion" msgid_plural "%(value)s sextillion" @@ -181,14 +133,6 @@ msgstr[1] "%(value)s секстиллиона" msgstr[2] "%(value)s секстиллионов" msgstr[3] "%(value)s секстиллионов" -#, python-format -msgid "%(value).1f septillion" -msgid_plural "%(value).1f septillion" -msgstr[0] "%(value).1f септиллион" -msgstr[1] "%(value).1f септиллиона" -msgstr[2] "%(value).1f септиллионов" -msgstr[3] "%(value).1f септиллионов" - #, python-format msgid "%(value)s septillion" msgid_plural "%(value)s septillion" @@ -197,14 +141,6 @@ msgstr[1] "%(value)s септиллиона" msgstr[2] "%(value)s септиллионов" msgstr[3] "%(value)s септиллионов" -#, python-format -msgid "%(value).1f octillion" -msgid_plural "%(value).1f octillion" -msgstr[0] "%(value).1f октиллион" -msgstr[1] "%(value).1f октиллиона" -msgstr[2] "%(value).1f октиллионов" -msgstr[3] "%(value).1f октиллионов" - #, python-format msgid "%(value)s octillion" msgid_plural "%(value)s octillion" @@ -213,14 +149,6 @@ msgstr[1] "%(value)s октиллиона" msgstr[2] "%(value)s октиллионов" msgstr[3] "%(value)s октиллионов" -#, python-format -msgid "%(value).1f nonillion" -msgid_plural "%(value).1f nonillion" -msgstr[0] "%(value).1f нониллион" -msgstr[1] "%(value).1f нониллиона" -msgstr[2] "%(value).1f нониллионов" -msgstr[3] "%(value).1f нониллионов" - #, python-format msgid "%(value)s nonillion" msgid_plural "%(value)s nonillion" @@ -229,14 +157,6 @@ msgstr[1] "%(value)s нониллиона" msgstr[2] "%(value)s нониллионов" msgstr[3] "%(value)s нониллионов" -#, python-format -msgid "%(value).1f decillion" -msgid_plural "%(value).1f decillion" -msgstr[0] "%(value).1f дециллион" -msgstr[1] "%(value).1f дециллиона" -msgstr[2] "%(value).1f дециллионов" -msgstr[3] "%(value).1f дециллионов" - #, python-format msgid "%(value)s decillion" msgid_plural "%(value)s decillion" @@ -245,14 +165,6 @@ msgstr[1] "%(value)s дециллиона" msgstr[2] "%(value)s дециллионов" msgstr[3] "%(value)s дециллионов" -#, python-format -msgid "%(value).1f googol" -msgid_plural "%(value).1f googol" -msgstr[0] "%(value).1f гугол" -msgstr[1] "%(value).1f гугола" -msgstr[2] "%(value).1f гуголов" -msgstr[3] "%(value).1f гуголов" - #, python-format msgid "%(value)s googol" msgid_plural "%(value)s googol" @@ -375,110 +287,110 @@ msgstr "через %(delta)s" #. Translators: 'naturaltime-past' strings will be included in '%(delta)s ago' #, python-format msgctxt "naturaltime-past" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d год" -msgstr[1] "%d года" -msgstr[2] "%d лет" -msgstr[3] "%d лет" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d год" +msgstr[1] "%(num)d года" +msgstr[2] "%(num)d лет" +msgstr[3] "%(num)d лет" #, python-format msgctxt "naturaltime-past" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d месяц" -msgstr[1] "%d месяца" -msgstr[2] "%d месяцев" -msgstr[3] "%d месяцев" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d месяц" +msgstr[1] "%(num)d месяца" +msgstr[2] "%(num)d месяцев" +msgstr[3] "%(num)d месяцев" #, python-format msgctxt "naturaltime-past" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d неделя" -msgstr[1] "%d недели" -msgstr[2] "%d недель" -msgstr[3] "%d недель" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d неделю" +msgstr[1] "%(num)d недели" +msgstr[2] "%(num)d недель" +msgstr[3] "%(num)d недель" #, python-format msgctxt "naturaltime-past" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d день" -msgstr[1] "%d дня" -msgstr[2] "%d дней" -msgstr[3] "%d дней" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d день" +msgstr[1] "%(num)d дня" +msgstr[2] "%(num)d дней" +msgstr[3] "%(num)d дней" #, python-format msgctxt "naturaltime-past" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d час" -msgstr[1] "%d часа" -msgstr[2] "%d часов" -msgstr[3] "%d часов" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d час" +msgstr[1] "%(num)d часа" +msgstr[2] "%(num)d часов" +msgstr[3] "%(num)d часов" #, python-format msgctxt "naturaltime-past" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d минуту" -msgstr[1] "%d минуты" -msgstr[2] "%d минут" -msgstr[3] "%d минут" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d минуту" +msgstr[1] "%(num)d минуты" +msgstr[2] "%(num)d минут" +msgstr[3] "%(num)d минут" #. Translators: 'naturaltime-future' strings will be included in '%(delta)s #. from now' #, python-format msgctxt "naturaltime-future" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d год" -msgstr[1] "%d года" -msgstr[2] "%d лет" -msgstr[3] "%d лет" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d год" +msgstr[1] "%(num)d года" +msgstr[2] "%(num)d лет" +msgstr[3] "%(num)d лет" #, python-format msgctxt "naturaltime-future" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d месяц" -msgstr[1] "%d месяца" -msgstr[2] "%d месяцев" -msgstr[3] "%d месяцев" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d месяц" +msgstr[1] "%(num)d месяца" +msgstr[2] "%(num)d месяцев" +msgstr[3] "%(num)d месяцев" #, python-format msgctxt "naturaltime-future" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d неделю" -msgstr[1] "%d недели" -msgstr[2] "%d недель" -msgstr[3] "%d недель" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d неделю" +msgstr[1] "%(num)d недели" +msgstr[2] "%(num)d недель" +msgstr[3] "%(num)d недель" #, python-format msgctxt "naturaltime-future" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d день" -msgstr[1] "%d дня" -msgstr[2] "%d дней" -msgstr[3] "%d дней" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d день" +msgstr[1] "%(num)d дня" +msgstr[2] "%(num)d дней" +msgstr[3] "%(num)d дней" #, python-format msgctxt "naturaltime-future" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d час" -msgstr[1] "%d часа" -msgstr[2] "%d часов" -msgstr[3] "%d часов" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d час" +msgstr[1] "%(num)d часа" +msgstr[2] "%(num)d часов" +msgstr[3] "%(num)d часов" #, python-format msgctxt "naturaltime-future" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d минута" -msgstr[1] "%d минуты" -msgstr[2] "%d минут" -msgstr[3] "%d минут" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d минуту" +msgstr[1] "%(num)d минуты" +msgstr[2] "%(num)d минут" +msgstr[3] "%(num)d минут" diff --git a/django/contrib/humanize/locale/sv/LC_MESSAGES/django.mo b/django/contrib/humanize/locale/sv/LC_MESSAGES/django.mo index 31ca3f783e54d..a670a6224148e 100644 Binary files a/django/contrib/humanize/locale/sv/LC_MESSAGES/django.mo and b/django/contrib/humanize/locale/sv/LC_MESSAGES/django.mo differ diff --git a/django/contrib/humanize/locale/sv/LC_MESSAGES/django.po b/django/contrib/humanize/locale/sv/LC_MESSAGES/django.po index c7c149f2b4f09..eda21640cb302 100644 --- a/django/contrib/humanize/locale/sv/LC_MESSAGES/django.po +++ b/django/contrib/humanize/locale/sv/LC_MESSAGES/django.po @@ -1,7 +1,9 @@ # This file is distributed under the same license as the Django package. # # Translators: +# Albin Larsson , 2022 # Andreas Pelme , 2011-2012,2014 +# Elias Johnstone , 2022 # Jannis Leidel , 2011 # Johan Rohdin, 2021 # Jonathan Lindén, 2014 @@ -11,9 +13,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-04-01 12:37+0000\n" -"Last-Translator: Johan Rohdin\n" +"POT-Creation-Date: 2021-04-07 14:40+0200\n" +"PO-Revision-Date: 2022-07-24 18:40+0000\n" +"Last-Translator: Elias Johnstone \n" "Language-Team: Swedish (http://www.transifex.com/django/django/language/" "sv/)\n" "MIME-Version: 1.0\n" @@ -248,86 +250,86 @@ msgstr "om %(delta)s" #. Translators: 'naturaltime-past' strings will be included in '%(delta)s ago' #, python-format msgctxt "naturaltime-past" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d år" -msgstr[1] "%d år" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d år" +msgstr[1] "%(num)d år" #, python-format msgctxt "naturaltime-past" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d månad" -msgstr[1] "%d månader" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d månad" +msgstr[1] "%(num)d månader" #, python-format msgctxt "naturaltime-past" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d vecka" -msgstr[1] "%d veckor" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d vecka" +msgstr[1] "%(num)d veckor" #, python-format msgctxt "naturaltime-past" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d dag" -msgstr[1] "%d dagar" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dag" +msgstr[1] "%(num)d dagar" #, python-format msgctxt "naturaltime-past" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d timme" -msgstr[1] "%d timmar" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d timme" +msgstr[1] "%(num)d timmar" #, python-format msgctxt "naturaltime-past" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d minut" -msgstr[1] "%d minuter" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minut" +msgstr[1] "%(num)d minuter" #. Translators: 'naturaltime-future' strings will be included in '%(delta)s #. from now' #, python-format msgctxt "naturaltime-future" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d år" -msgstr[1] "%d år" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d år" +msgstr[1] "%(num)d år" #, python-format msgctxt "naturaltime-future" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d månad" -msgstr[1] "%d månader" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d månad" +msgstr[1] "%(num)d månader" #, python-format msgctxt "naturaltime-future" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d vecka" -msgstr[1] "%d veckor" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d vecka" +msgstr[1] "%(num)d veckor" #, python-format msgctxt "naturaltime-future" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d dag" -msgstr[1] "%d dagar" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d dag" +msgstr[1] "%(num)d dagar" #, python-format msgctxt "naturaltime-future" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d timme" -msgstr[1] "%d timmar" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d timme" +msgstr[1] "%(num)d timmar" #, python-format msgctxt "naturaltime-future" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d minuter" -msgstr[1] "%d minuter" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d minut" +msgstr[1] "%(num)d minuter" diff --git a/django/contrib/humanize/locale/uk/LC_MESSAGES/django.mo b/django/contrib/humanize/locale/uk/LC_MESSAGES/django.mo index 81ced8ab828e8..1662778ae945e 100644 Binary files a/django/contrib/humanize/locale/uk/LC_MESSAGES/django.mo and b/django/contrib/humanize/locale/uk/LC_MESSAGES/django.mo differ diff --git a/django/contrib/humanize/locale/uk/LC_MESSAGES/django.po b/django/contrib/humanize/locale/uk/LC_MESSAGES/django.po index 42ed9136578f7..d4c86fd14aed2 100644 --- a/django/contrib/humanize/locale/uk/LC_MESSAGES/django.po +++ b/django/contrib/humanize/locale/uk/LC_MESSAGES/django.po @@ -2,6 +2,7 @@ # # Translators: # Oleksandr Chernihov , 2014 +# Illia Volochii , 2022 # Kirill Gagarski , 2014 # Max V. Stotsky , 2014 # Mykola Zamkovoi , 2014 @@ -11,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2018-08-24 20:06+0000\n" -"Last-Translator: tarasyyyk \n" +"POT-Creation-Date: 2021-04-07 14:40+0200\n" +"PO-Revision-Date: 2022-07-24 18:40+0000\n" +"Last-Translator: Illia Volochii \n" "Language-Team: Ukrainian (http://www.transifex.com/django/django/language/" "uk/)\n" "MIME-Version: 1.0\n" @@ -83,14 +84,6 @@ msgctxt "ordinal 9" msgid "{}th" msgstr "{}ий" -#, python-format -msgid "%(value).1f million" -msgid_plural "%(value).1f million" -msgstr[0] "%(value).1f мільйон" -msgstr[1] "%(value).1f мільйонів" -msgstr[2] "%(value).1f мільйонів" -msgstr[3] "%(value).1f мільйонів" - #, python-format msgid "%(value)s million" msgid_plural "%(value)s million" @@ -99,14 +92,6 @@ msgstr[1] "%(value)s мільйони" msgstr[2] "%(value)s мільйонів" msgstr[3] "%(value)s мільйонів" -#, python-format -msgid "%(value).1f billion" -msgid_plural "%(value).1f billion" -msgstr[0] "%(value).1f мільярд" -msgstr[1] "%(value).1f мільярди" -msgstr[2] "%(value).1f мільярдів" -msgstr[3] "%(value).1f мільярдів" - #, python-format msgid "%(value)s billion" msgid_plural "%(value)s billion" @@ -115,14 +100,6 @@ msgstr[1] "%(value)s мільярди" msgstr[2] "%(value)s мільярдів" msgstr[3] "%(value)s мільярдів" -#, python-format -msgid "%(value).1f trillion" -msgid_plural "%(value).1f trillion" -msgstr[0] "%(value).1f трильйон" -msgstr[1] "%(value).1f трильйони" -msgstr[2] "%(value).1f трильйонів" -msgstr[3] "%(value).1f трильйонів" - #, python-format msgid "%(value)s trillion" msgid_plural "%(value)s trillion" @@ -131,14 +108,6 @@ msgstr[1] "%(value)s трильйони" msgstr[2] "%(value)s трильйонів" msgstr[3] "%(value)s трильйонів" -#, python-format -msgid "%(value).1f quadrillion" -msgid_plural "%(value).1f quadrillion" -msgstr[0] "%(value).1f квадрильйон" -msgstr[1] "%(value).1f квадрильйони" -msgstr[2] "%(value).1f квадрильйонів" -msgstr[3] "%(value).1f квадрильйонів" - #, python-format msgid "%(value)s quadrillion" msgid_plural "%(value)s quadrillion" @@ -147,14 +116,6 @@ msgstr[1] "%(value)s квадрильйони" msgstr[2] "%(value)s квадрильйонів" msgstr[3] "%(value)s квадрильйонів" -#, python-format -msgid "%(value).1f quintillion" -msgid_plural "%(value).1f quintillion" -msgstr[0] "%(value).1f квінтильйон" -msgstr[1] "%(value).1f квінтильйони" -msgstr[2] "%(value).1f квінтильйонів" -msgstr[3] "%(value).1f квінтильйонів" - #, python-format msgid "%(value)s quintillion" msgid_plural "%(value)s quintillion" @@ -163,14 +124,6 @@ msgstr[1] "%(value)s квінтильйони" msgstr[2] "%(value)s квінтильйонів" msgstr[3] "%(value)s квінтильйонів" -#, python-format -msgid "%(value).1f sextillion" -msgid_plural "%(value).1f sextillion" -msgstr[0] "%(value).1f секстильйон" -msgstr[1] "%(value).1f секстильйони" -msgstr[2] "%(value).1f секстильйонів" -msgstr[3] "%(value).1f секстильйонів" - #, python-format msgid "%(value)s sextillion" msgid_plural "%(value)s sextillion" @@ -179,14 +132,6 @@ msgstr[1] "%(value)s секстильйони" msgstr[2] "%(value)s секстильйонів" msgstr[3] "%(value)s секстильйонів" -#, python-format -msgid "%(value).1f septillion" -msgid_plural "%(value).1f septillion" -msgstr[0] "%(value).1f септильйон" -msgstr[1] "%(value).1f септильйони" -msgstr[2] "%(value).1f септильйонів" -msgstr[3] "%(value).1f септильйонів" - #, python-format msgid "%(value)s septillion" msgid_plural "%(value)s septillion" @@ -195,14 +140,6 @@ msgstr[1] "%(value)s септильйони" msgstr[2] "%(value)s септильйонів" msgstr[3] "%(value)s септильйонів" -#, python-format -msgid "%(value).1f octillion" -msgid_plural "%(value).1f octillion" -msgstr[0] "%(value).1f октильйон" -msgstr[1] "%(value).1f октильйони" -msgstr[2] "%(value).1f октильйонів" -msgstr[3] "%(value).1f октильйонів" - #, python-format msgid "%(value)s octillion" msgid_plural "%(value)s octillion" @@ -211,14 +148,6 @@ msgstr[1] "%(value)s октильйони" msgstr[2] "%(value)s октильйонів" msgstr[3] "%(value)s октильйонів" -#, python-format -msgid "%(value).1f nonillion" -msgid_plural "%(value).1f nonillion" -msgstr[0] "%(value).1f нонільйон" -msgstr[1] "%(value).1f нонільйони" -msgstr[2] "%(value).1f нонільйонів" -msgstr[3] "%(value).1f нонільйонів" - #, python-format msgid "%(value)s nonillion" msgid_plural "%(value)s nonillion" @@ -227,14 +156,6 @@ msgstr[1] "%(value)s нонільйони" msgstr[2] "%(value)s нонільйонів" msgstr[3] "%(value)s нонільйонів" -#, python-format -msgid "%(value).1f decillion" -msgid_plural "%(value).1f decillion" -msgstr[0] "%(value).1f децильйон" -msgstr[1] "%(value).1f децильйони" -msgstr[2] "%(value).1f децильйонів" -msgstr[3] "%(value).1f децильйонів" - #, python-format msgid "%(value)s decillion" msgid_plural "%(value)s decillion" @@ -243,14 +164,6 @@ msgstr[1] "%(value)s децильйони" msgstr[2] "%(value)s децильйонів" msgstr[3] "%(value)s децильйонів" -#, python-format -msgid "%(value).1f googol" -msgid_plural "%(value).1f googol" -msgstr[0] "%(value).1f гугол" -msgstr[1] "%(value).1f гуголи" -msgstr[2] "%(value).1f гуголів" -msgstr[3] "%(value).1f гуголів" - #, python-format msgid "%(value)s googol" msgid_plural "%(value)s googol" @@ -373,110 +286,110 @@ msgstr "через %(delta)s" #. Translators: 'naturaltime-past' strings will be included in '%(delta)s ago' #, python-format msgctxt "naturaltime-past" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d рік" -msgstr[1] "%d роки" -msgstr[2] "%d років" -msgstr[3] "%d років" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d рік" +msgstr[1] "%(num)d роки" +msgstr[2] "%(num)d років" +msgstr[3] "%(num)d років" #, python-format msgctxt "naturaltime-past" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d місяць" -msgstr[1] "%d місяці" -msgstr[2] "%d місяців" -msgstr[3] "%d місяців" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d місяць" +msgstr[1] "%(num)d місяці" +msgstr[2] "%(num)d місяців" +msgstr[3] "%(num)d місяців" #, python-format msgctxt "naturaltime-past" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d тиждень" -msgstr[1] "%d тижні" -msgstr[2] "%d тижнів" -msgstr[3] "%d тижнів" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d тиждень" +msgstr[1] "%(num)d тижні" +msgstr[2] "%(num)d тижнів" +msgstr[3] "%(num)d тижнів" #, python-format msgctxt "naturaltime-past" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d день" -msgstr[1] "%d дня" -msgstr[2] "%d днів" -msgstr[3] "%d днів" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d день" +msgstr[1] "%(num)d дні" +msgstr[2] "%(num)d днів" +msgstr[3] "%(num)d днів" #, python-format msgctxt "naturaltime-past" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d година" -msgstr[1] "%d години" -msgstr[2] "%d годин" -msgstr[3] "%d годин" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d година" +msgstr[1] "%(num)d години" +msgstr[2] "%(num)d годин" +msgstr[3] "%(num)d годин" #, python-format msgctxt "naturaltime-past" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d хвилина" -msgstr[1] "%d хвилини" -msgstr[2] "%d хвилин" -msgstr[3] "%d хвилин" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d хвилина" +msgstr[1] "%(num)d хвилини" +msgstr[2] "%(num)d хвилин" +msgstr[3] "%(num)d хвилин" #. Translators: 'naturaltime-future' strings will be included in '%(delta)s #. from now' #, python-format msgctxt "naturaltime-future" -msgid "%d year" -msgid_plural "%d years" -msgstr[0] "%d рік" -msgstr[1] "%d роки" -msgstr[2] "%d років" -msgstr[3] "%d років" +msgid "%(num)d year" +msgid_plural "%(num)d years" +msgstr[0] "%(num)d рік" +msgstr[1] "%(num)d роки" +msgstr[2] "%(num)d років" +msgstr[3] "%(num)d років" #, python-format msgctxt "naturaltime-future" -msgid "%d month" -msgid_plural "%d months" -msgstr[0] "%d місяць" -msgstr[1] "%d місяці" -msgstr[2] "%d місяців" -msgstr[3] "%d місяців" +msgid "%(num)d month" +msgid_plural "%(num)d months" +msgstr[0] "%(num)d місяць" +msgstr[1] "%(num)d місяці" +msgstr[2] "%(num)d місяців" +msgstr[3] "%(num)d місяців" #, python-format msgctxt "naturaltime-future" -msgid "%d week" -msgid_plural "%d weeks" -msgstr[0] "%d тиждень" -msgstr[1] "%d тижні" -msgstr[2] "%d тижнів" -msgstr[3] "%d тижнів" +msgid "%(num)d week" +msgid_plural "%(num)d weeks" +msgstr[0] "%(num)d тиждень" +msgstr[1] "%(num)d тижні" +msgstr[2] "%(num)d тижнів" +msgstr[3] "%(num)d тижнів" #, python-format msgctxt "naturaltime-future" -msgid "%d day" -msgid_plural "%d days" -msgstr[0] "%d день" -msgstr[1] "%d дні" -msgstr[2] "%d днів" -msgstr[3] "%d днів" +msgid "%(num)d day" +msgid_plural "%(num)d days" +msgstr[0] "%(num)d день" +msgstr[1] "%(num)d дні" +msgstr[2] "%(num)d днів" +msgstr[3] "%(num)d днів" #, python-format msgctxt "naturaltime-future" -msgid "%d hour" -msgid_plural "%d hours" -msgstr[0] "%d годину" -msgstr[1] "%d години" -msgstr[2] "%d годин" -msgstr[3] "%d годин" +msgid "%(num)d hour" +msgid_plural "%(num)d hours" +msgstr[0] "%(num)d година" +msgstr[1] "%(num)d години" +msgstr[2] "%(num)d годин" +msgstr[3] "%(num)d годин" #, python-format msgctxt "naturaltime-future" -msgid "%d minute" -msgid_plural "%d minutes" -msgstr[0] "%d хвилину" -msgstr[1] "%d хвилини" -msgstr[2] "%d хвилин" -msgstr[3] "%d хвилин" +msgid "%(num)d minute" +msgid_plural "%(num)d minutes" +msgstr[0] "%(num)d хвилина" +msgstr[1] "%(num)d хвилини" +msgstr[2] "%(num)d хвилин" +msgstr[3] "%(num)d хвилин" diff --git a/django/contrib/postgres/aggregates/mixins.py b/django/contrib/postgres/aggregates/mixins.py index b2f4097b8fa6b..340a9178793b8 100644 --- a/django/contrib/postgres/aggregates/mixins.py +++ b/django/contrib/postgres/aggregates/mixins.py @@ -14,10 +14,13 @@ def resolve_expression(self, *args, **kwargs): return super().resolve_expression(*args, **kwargs) def get_source_expressions(self): - return super().get_source_expressions() + [self.order_by] + if self.order_by.source_expressions: + return super().get_source_expressions() + [self.order_by] + return super().get_source_expressions() def set_source_expressions(self, exprs): - *exprs, self.order_by = exprs + if isinstance(exprs[-1], OrderByList): + *exprs, self.order_by = exprs return super().set_source_expressions(exprs) def as_sql(self, compiler, connection): diff --git a/django/contrib/postgres/constraints.py b/django/contrib/postgres/constraints.py index 8b59704063863..4c0d0580e07af 100644 --- a/django/contrib/postgres/constraints.py +++ b/django/contrib/postgres/constraints.py @@ -186,6 +186,7 @@ def __eq__(self, other): and self.deferrable == other.deferrable and self.include == other.include and self.opclasses == other.opclasses + and self.violation_error_message == other.violation_error_message ) return super().__eq__(other) diff --git a/django/contrib/postgres/fields/array.py b/django/contrib/postgres/fields/array.py index 7269198674fed..97c6515d953c4 100644 --- a/django/contrib/postgres/fields/array.py +++ b/django/contrib/postgres/fields/array.py @@ -265,7 +265,7 @@ def as_sql(self, compiler, connection): return ( "CASE WHEN %(lhs)s IS NULL THEN NULL ELSE " "coalesce(array_length(%(lhs)s, 1), 0) END" - ) % {"lhs": lhs}, params + ) % {"lhs": lhs}, params * 2 @ArrayField.register_lookup diff --git a/django/contrib/postgres/fields/ranges.py b/django/contrib/postgres/fields/ranges.py index f0a2a5893684c..6230b2f887408 100644 --- a/django/contrib/postgres/fields/ranges.py +++ b/django/contrib/postgres/fields/ranges.py @@ -78,6 +78,9 @@ def model(self, model): def _choices_is_value(cls, value): return isinstance(value, (list, tuple)) or super()._choices_is_value(value) + def get_placeholder(self, value, compiler, connection): + return "%s::{}".format(self.db_type(connection)) + def get_prep_value(self, value): if value is None: return None diff --git a/django/contrib/postgres/locale/es/LC_MESSAGES/django.mo b/django/contrib/postgres/locale/es/LC_MESSAGES/django.mo index 36e110503c9c9..7fef179176d62 100644 Binary files a/django/contrib/postgres/locale/es/LC_MESSAGES/django.mo and b/django/contrib/postgres/locale/es/LC_MESSAGES/django.mo differ diff --git a/django/contrib/postgres/locale/es/LC_MESSAGES/django.po b/django/contrib/postgres/locale/es/LC_MESSAGES/django.po index 4f76f7dbe4366..af33acdd75cb8 100644 --- a/django/contrib/postgres/locale/es/LC_MESSAGES/django.po +++ b/django/contrib/postgres/locale/es/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ # # Translators: # Antoni Aloy , 2015,2017 -# Ernesto Avilés, 2015 +# e4db27214f7e7544f2022c647b585925_bb0e321, 2015 # Ignacio José Lizarán Rus , 2019 # Igor Támara , 2015 # Pablo, 2015 @@ -13,8 +13,8 @@ msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-11 20:56+0200\n" -"PO-Revision-Date: 2020-09-25 17:40+0000\n" -"Last-Translator: Uriel Medina \n" +"PO-Revision-Date: 2022-01-19 09:22+0000\n" +"Last-Translator: Uriel Medina , 2020\n" "Language-Team: Spanish (http://www.transifex.com/django/django/language/" "es/)\n" "MIME-Version: 1.0\n" @@ -77,6 +77,9 @@ msgstr[0] "" msgstr[1] "" "La lista contiene %(show_value)d elementos, no debería contener más de " "%(limit_value)d." +msgstr[2] "" +"La lista contiene %(show_value)d elementos, no debería contener más de " +"%(limit_value)d." #, python-format msgid "" @@ -91,6 +94,9 @@ msgstr[0] "" msgstr[1] "" "La lista contiene %(show_value)d elementos, no debería contener menos de " "%(limit_value)d." +msgstr[2] "" +"La lista contiene %(show_value)d elementos, no debería contener menos de " +"%(limit_value)d." #, python-format msgid "Some keys were missing: %(keys)s" diff --git a/django/contrib/postgres/locale/pt_BR/LC_MESSAGES/django.mo b/django/contrib/postgres/locale/pt_BR/LC_MESSAGES/django.mo index defc2893cc7ed..fd325068bac8e 100644 Binary files a/django/contrib/postgres/locale/pt_BR/LC_MESSAGES/django.mo and b/django/contrib/postgres/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/django/contrib/postgres/locale/pt_BR/LC_MESSAGES/django.po b/django/contrib/postgres/locale/pt_BR/LC_MESSAGES/django.po index 6079e1dd59386..1a6504cf24baf 100644 --- a/django/contrib/postgres/locale/pt_BR/LC_MESSAGES/django.po +++ b/django/contrib/postgres/locale/pt_BR/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ # # Translators: # Andre Machado , 2016 -# Carlos C. Leite , 2016,2019 +# Carlos Leite , 2016,2019 # Claudemiro Alves Feitosa Neto , 2015 # Fábio C. Barrionuevo da Luz , 2015 # Lucas Infante , 2015 @@ -14,8 +14,8 @@ msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-11 20:56+0200\n" -"PO-Revision-Date: 2020-05-12 20:01+0000\n" -"Last-Translator: Transifex Bot <>\n" +"PO-Revision-Date: 2022-01-19 09:22+0000\n" +"Last-Translator: Carlos Leite , 2016,2019\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/django/django/" "language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -78,6 +78,9 @@ msgstr[0] "" msgstr[1] "" "A lista contém itens %(show_value)d, não deveria conter mais que " "%(limit_value)d." +msgstr[2] "" +"A lista contém itens %(show_value)d, não deveria conter mais que " +"%(limit_value)d." #, python-format msgid "" @@ -92,6 +95,9 @@ msgstr[0] "" msgstr[1] "" "A lista contém %(show_value)d itens, deveria conter não menos que " "%(limit_value)d." +msgstr[2] "" +"A lista contém %(show_value)d itens, deveria conter não menos que " +"%(limit_value)d." #, python-format msgid "Some keys were missing: %(keys)s" diff --git a/django/contrib/postgres/locale/sv/LC_MESSAGES/django.mo b/django/contrib/postgres/locale/sv/LC_MESSAGES/django.mo index 0e5e37a4186a1..812cad197fb12 100644 Binary files a/django/contrib/postgres/locale/sv/LC_MESSAGES/django.mo and b/django/contrib/postgres/locale/sv/LC_MESSAGES/django.mo differ diff --git a/django/contrib/postgres/locale/sv/LC_MESSAGES/django.po b/django/contrib/postgres/locale/sv/LC_MESSAGES/django.po index cddfd8e5e7a68..645d11116179d 100644 --- a/django/contrib/postgres/locale/sv/LC_MESSAGES/django.po +++ b/django/contrib/postgres/locale/sv/LC_MESSAGES/django.po @@ -1,6 +1,7 @@ # This file is distributed under the same license as the Django package. # # Translators: +# Elias Johnstone , 2022 # Gustaf Hansen , 2015 # Jonathan Lindén, 2015 # Petter Strandmark , 2019 @@ -10,8 +11,8 @@ msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-11 20:56+0200\n" -"PO-Revision-Date: 2020-05-12 20:01+0000\n" -"Last-Translator: Transifex Bot <>\n" +"PO-Revision-Date: 2022-07-19 09:22+0000\n" +"Last-Translator: Elias Johnstone \n" "Language-Team: Swedish (http://www.transifex.com/django/django/language/" "sv/)\n" "MIME-Version: 1.0\n" @@ -35,7 +36,7 @@ msgstr "Funktion från sträng till sträng/null" #, python-format msgid "The value of “%(key)s” is not a string or null." -msgstr "" +msgstr "Värdet av “%(key)s” är inte en sträng eller null." msgid "Could not load JSON data." msgstr "Kunde inte ladda JSON-data." diff --git a/django/contrib/redirects/locale/ar_DZ/LC_MESSAGES/django.mo b/django/contrib/redirects/locale/ar_DZ/LC_MESSAGES/django.mo index 09c54b08a46b9..62162ddffa2f9 100644 Binary files a/django/contrib/redirects/locale/ar_DZ/LC_MESSAGES/django.mo and b/django/contrib/redirects/locale/ar_DZ/LC_MESSAGES/django.mo differ diff --git a/django/contrib/redirects/locale/ar_DZ/LC_MESSAGES/django.po b/django/contrib/redirects/locale/ar_DZ/LC_MESSAGES/django.po index e1f1d5d644167..6da32dd079629 100644 --- a/django/contrib/redirects/locale/ar_DZ/LC_MESSAGES/django.po +++ b/django/contrib/redirects/locale/ar_DZ/LC_MESSAGES/django.po @@ -1,14 +1,15 @@ # This file is distributed under the same license as the Django package. # # Translators: +# Jihad Bahmaid Al-Halki, 2022 # Riterix , 2019 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-08 17:27+0200\n" -"PO-Revision-Date: 2019-12-14 22:48+0000\n" -"Last-Translator: Riterix \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2022-07-24 18:32+0000\n" +"Last-Translator: Jihad Bahmaid Al-Halki\n" "Language-Team: Arabic (Algeria) (http://www.transifex.com/django/django/" "language/ar_DZ/)\n" "MIME-Version: 1.0\n" @@ -36,11 +37,11 @@ msgid "redirect to" msgstr "إعادة التوجيه إلى" msgid "" -"This can be either an absolute path (as above) or a full URL starting with " -"“http://”." +"This can be either an absolute path (as above) or a full URL starting with a " +"scheme such as “https://”." msgstr "" -"يجب أن يكون هذا مسارا مطلقا (كما هو أعلاه) أو عنوانا كاملا يبدأ بالمقطع " -"'http://'." +"قد يكون هذا المسار منتهي الصلاحية (كما هو موضح أعلاه) أو أن العنوان له بادئة " +"بصيغة مثل\"https://\"." msgid "redirect" msgstr "إعادة التوجيه" diff --git a/django/contrib/redirects/locale/eo/LC_MESSAGES/django.mo b/django/contrib/redirects/locale/eo/LC_MESSAGES/django.mo index 82950c4e347cd..dfe941280a45d 100644 Binary files a/django/contrib/redirects/locale/eo/LC_MESSAGES/django.mo and b/django/contrib/redirects/locale/eo/LC_MESSAGES/django.mo differ diff --git a/django/contrib/redirects/locale/eo/LC_MESSAGES/django.po b/django/contrib/redirects/locale/eo/LC_MESSAGES/django.po index 8d613f0a0af5d..72c4b91ea96e2 100644 --- a/django/contrib/redirects/locale/eo/LC_MESSAGES/django.po +++ b/django/contrib/redirects/locale/eo/LC_MESSAGES/django.po @@ -1,16 +1,17 @@ # This file is distributed under the same license as the Django package. # # Translators: -# Baptiste Darthenay , 2011 -# Baptiste Darthenay , 2014-2015 +# Batist D 🐍 , 2011 +# Batist D 🐍 , 2014-2015 # kristjan , 2011 +# Meiyer , 2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-10-09 17:42+0200\n" -"PO-Revision-Date: 2017-09-19 16:40+0000\n" -"Last-Translator: Baptiste Darthenay \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2022-04-24 18:32+0000\n" +"Last-Translator: Meiyer , 2022\n" "Language-Team: Esperanto (http://www.transifex.com/django/django/language/" "eo/)\n" "MIME-Version: 1.0\n" @@ -20,33 +21,29 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "Redirects" -msgstr "Alidirektoj" +msgstr "Alidirektigiloj" msgid "site" msgstr "retejo" msgid "redirect from" -msgstr "alidirekto de" +msgstr "alidirektigo de" msgid "" -"This should be an absolute path, excluding the domain name. Example: '/" -"events/search/'." +"This should be an absolute path, excluding the domain name. Example: “/" +"events/search/”." msgstr "" -"Tio ĉi devus esti absoluta vojo, escepte de la retregionan nomon. Ekzemplo: " -"'/eventoj/serĉo/'." msgid "redirect to" -msgstr "alidirekto al" +msgstr "alidirektigo al" msgid "" -"This can be either an absolute path (as above) or a full URL starting with " -"'http://'." +"This can be either an absolute path (as above) or a full URL starting with a " +"scheme such as “https://”." msgstr "" -"Tio ĉi povas esti aŭ absoluta vojo (kiel supre), aŭ URL komencante kun " -"'http://'." msgid "redirect" -msgstr "alidirekto" +msgstr "alidirektigilo" msgid "redirects" -msgstr "alidirektoj" +msgstr "alidirektigiloj" diff --git a/django/contrib/redirects/locale/ko/LC_MESSAGES/django.mo b/django/contrib/redirects/locale/ko/LC_MESSAGES/django.mo index 0551a02e4e53b..d0a6f6da360d0 100644 Binary files a/django/contrib/redirects/locale/ko/LC_MESSAGES/django.mo and b/django/contrib/redirects/locale/ko/LC_MESSAGES/django.mo differ diff --git a/django/contrib/redirects/locale/ko/LC_MESSAGES/django.po b/django/contrib/redirects/locale/ko/LC_MESSAGES/django.po index 1bef019ca9a5c..2f2e380551e28 100644 --- a/django/contrib/redirects/locale/ko/LC_MESSAGES/django.po +++ b/django/contrib/redirects/locale/ko/LC_MESSAGES/django.po @@ -7,13 +7,14 @@ # JunGu Kang , 2015 # Kwangho Kim , 2019 # minsung kang, 2015 +# 정훈 이, 2021 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-08 17:27+0200\n" -"PO-Revision-Date: 2020-07-04 14:21+0000\n" -"Last-Translator: Jay Oh \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2021-12-24 18:32+0000\n" +"Last-Translator: 정훈 이\n" "Language-Team: Korean (http://www.transifex.com/django/django/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -41,9 +42,11 @@ msgid "redirect to" msgstr "(으)로 리다이렉트" msgid "" -"This can be either an absolute path (as above) or a full URL starting with " -"“http://”." -msgstr "절대경로와 URL('http://' 포함) 모두 가능합니다." +"This can be either an absolute path (as above) or a full URL starting with a " +"scheme such as “https://”." +msgstr "" +"(위와 같은) 절대경로 혹은 \"https://\" 같은 식으로 시작하는 완전한 URL 모두 " +"가능합니다." msgid "redirect" msgstr "리다이렉트" diff --git a/django/contrib/redirects/locale/nl/LC_MESSAGES/django.mo b/django/contrib/redirects/locale/nl/LC_MESSAGES/django.mo index fa92101422660..e573bcdfe2f19 100644 Binary files a/django/contrib/redirects/locale/nl/LC_MESSAGES/django.mo and b/django/contrib/redirects/locale/nl/LC_MESSAGES/django.mo differ diff --git a/django/contrib/redirects/locale/nl/LC_MESSAGES/django.po b/django/contrib/redirects/locale/nl/LC_MESSAGES/django.po index 059331d979a85..da242f780c146 100644 --- a/django/contrib/redirects/locale/nl/LC_MESSAGES/django.po +++ b/django/contrib/redirects/locale/nl/LC_MESSAGES/django.po @@ -3,14 +3,14 @@ # Translators: # Ilja Maas , 2015 # Jannis Leidel , 2011 -# Sander Steffann , 2015 -# Tonnes , 2019 +# 8de006b1b0894aab6aef71979dcd8bd6_5c6b207 , 2015 +# Tonnes , 2019,2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-08 17:27+0200\n" -"PO-Revision-Date: 2019-09-17 08:57+0000\n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2022-07-24 18:32+0000\n" "Last-Translator: Tonnes \n" "Language-Team: Dutch (http://www.transifex.com/django/django/language/nl/)\n" "MIME-Version: 1.0\n" @@ -39,11 +39,11 @@ msgid "redirect to" msgstr "omleiden naar" msgid "" -"This can be either an absolute path (as above) or a full URL starting with " -"“http://”." +"This can be either an absolute path (as above) or a full URL starting with a " +"scheme such as “https://”." msgstr "" -"Dit kan een absoluut pad zijn (zoals hierboven) of een volledige URL " -"beginnend met ‘http://’." +"Dit kan een absoluut pad zijn (zoals hierboven), of een volledige URL " +"beginnend met een schema, zoals ‘https://’." msgid "redirect" msgstr "omleiding" diff --git a/django/contrib/redirects/locale/sv/LC_MESSAGES/django.mo b/django/contrib/redirects/locale/sv/LC_MESSAGES/django.mo index c72a5e70d5d92..001786019faf7 100644 Binary files a/django/contrib/redirects/locale/sv/LC_MESSAGES/django.mo and b/django/contrib/redirects/locale/sv/LC_MESSAGES/django.mo differ diff --git a/django/contrib/redirects/locale/sv/LC_MESSAGES/django.po b/django/contrib/redirects/locale/sv/LC_MESSAGES/django.po index b87c23956db83..9c4a8f998c021 100644 --- a/django/contrib/redirects/locale/sv/LC_MESSAGES/django.po +++ b/django/contrib/redirects/locale/sv/LC_MESSAGES/django.po @@ -1,16 +1,17 @@ # This file is distributed under the same license as the Django package. # # Translators: +# Elias Johnstone , 2022 # Jannis Leidel , 2011 # Jonathan Lindén, 2014 -# Thomas Lundqvist , 2017 +# Thomas Lundqvist, 2017 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-10-09 17:42+0200\n" -"PO-Revision-Date: 2017-09-15 13:32+0000\n" -"Last-Translator: Thomas Lundqvist \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2022-07-24 18:32+0000\n" +"Last-Translator: Elias Johnstone \n" "Language-Team: Swedish (http://www.transifex.com/django/django/language/" "sv/)\n" "MIME-Version: 1.0\n" @@ -29,8 +30,8 @@ msgid "redirect from" msgstr "omdirigera från" msgid "" -"This should be an absolute path, excluding the domain name. Example: '/" -"events/search/'." +"This should be an absolute path, excluding the domain name. Example: “/" +"events/search/”." msgstr "" "Detta bör vara en absolut sökväg utan domännamnet. Exempel: '/handelser/" "sok/'." @@ -39,11 +40,11 @@ msgid "redirect to" msgstr "omdirigera till" msgid "" -"This can be either an absolute path (as above) or a full URL starting with " -"'http://'." +"This can be either an absolute path (as above) or a full URL starting with a " +"scheme such as “https://”." msgstr "" "Detta kan vara antingen en absolut sökväg (som ovan) eller en fullständig " -"URL som börjar med 'http://'." +"URL som börjar med 'https://'." msgid "redirect" msgstr "omdirigera" diff --git a/django/contrib/redirects/locale/tk/LC_MESSAGES/django.mo b/django/contrib/redirects/locale/tk/LC_MESSAGES/django.mo index 361fc0cb4bfc2..93c7662740df7 100644 Binary files a/django/contrib/redirects/locale/tk/LC_MESSAGES/django.mo and b/django/contrib/redirects/locale/tk/LC_MESSAGES/django.mo differ diff --git a/django/contrib/redirects/locale/tk/LC_MESSAGES/django.po b/django/contrib/redirects/locale/tk/LC_MESSAGES/django.po index 3a3ddf72c98c2..202ce22edf3fb 100644 --- a/django/contrib/redirects/locale/tk/LC_MESSAGES/django.po +++ b/django/contrib/redirects/locale/tk/LC_MESSAGES/django.po @@ -1,14 +1,15 @@ # This file is distributed under the same license as the Django package. # # Translators: -# Resulkary , 2020 +# Resul , 2020 +# Welbeck Garli , 2022 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-08 17:27+0200\n" -"PO-Revision-Date: 2020-07-06 11:55+0000\n" -"Last-Translator: Resulkary \n" +"POT-Creation-Date: 2021-01-15 09:00+0100\n" +"PO-Revision-Date: 2022-07-24 18:32+0000\n" +"Last-Translator: Welbeck Garli \n" "Language-Team: Turkmen (http://www.transifex.com/django/django/language/" "tk/)\n" "MIME-Version: 1.0\n" @@ -36,11 +37,11 @@ msgid "redirect to" msgstr "gönükdirilen salgy" msgid "" -"This can be either an absolute path (as above) or a full URL starting with " -"“http://”." +"This can be either an absolute path (as above) or a full URL starting with a " +"scheme such as “https://”." msgstr "" -"Bu ýa doly ýol (ýokardaky ýaly) ýa-da “http://” bilen başlaýan doly URL " -"bolup biler." +"(ýokarydaky ýaly) absolýut yzarlama ýa-da \"https://\" bilen başlanýan " +"sahypa gönükdirmesi bolup biler." msgid "redirect" msgstr "gönükdirme" diff --git a/django/contrib/redirects/migrations/0001_initial.py b/django/contrib/redirects/migrations/0001_initial.py index 3b3b87962a9b4..7881d5798c5d7 100644 --- a/django/contrib/redirects/migrations/0001_initial.py +++ b/django/contrib/redirects/migrations/0001_initial.py @@ -2,7 +2,6 @@ class Migration(migrations.Migration): - dependencies = [ ("sites", "0001_initial"), ] diff --git a/django/contrib/redirects/migrations/0002_alter_redirect_new_path_help_text.py b/django/contrib/redirects/migrations/0002_alter_redirect_new_path_help_text.py index 84f67e10d95a8..9976366005637 100644 --- a/django/contrib/redirects/migrations/0002_alter_redirect_new_path_help_text.py +++ b/django/contrib/redirects/migrations/0002_alter_redirect_new_path_help_text.py @@ -2,7 +2,6 @@ class Migration(migrations.Migration): - dependencies = [ ("redirects", "0001_initial"), ] diff --git a/django/contrib/sessions/migrations/0001_initial.py b/django/contrib/sessions/migrations/0001_initial.py index 83b0bbc2ae9f5..42e382aa3267f 100644 --- a/django/contrib/sessions/migrations/0001_initial.py +++ b/django/contrib/sessions/migrations/0001_initial.py @@ -3,7 +3,6 @@ class Migration(migrations.Migration): - dependencies = [] operations = [ diff --git a/django/contrib/sitemaps/__init__.py b/django/contrib/sitemaps/__init__.py index 27756d9d96941..3d276b60d4909 100644 --- a/django/contrib/sitemaps/__init__.py +++ b/django/contrib/sitemaps/__init__.py @@ -167,7 +167,7 @@ def get_latest_lastmod(self): return None if callable(self.lastmod): try: - return max([self.lastmod(item) for item in self.items()]) + return max([self.lastmod(item) for item in self.items()], default=None) except TypeError: return None else: diff --git a/django/contrib/sitemaps/views.py b/django/contrib/sitemaps/views.py index 679f7ed611a5d..1f5b5ef314305 100644 --- a/django/contrib/sitemaps/views.py +++ b/django/contrib/sitemaps/views.py @@ -58,7 +58,6 @@ def index( content_type="application/xml", sitemap_url_name="django.contrib.sitemaps.views.sitemap", ): - req_protocol = request.scheme req_site = get_current_site(request) @@ -108,7 +107,6 @@ def sitemap( template_name="sitemap.xml", content_type="application/xml", ): - req_protocol = request.scheme req_site = get_current_site(request) diff --git a/django/contrib/sites/migrations/0001_initial.py b/django/contrib/sites/migrations/0001_initial.py index 181cf47ad7402..a23f0f129b1dc 100644 --- a/django/contrib/sites/migrations/0001_initial.py +++ b/django/contrib/sites/migrations/0001_initial.py @@ -4,7 +4,6 @@ class Migration(migrations.Migration): - dependencies = [] operations = [ diff --git a/django/contrib/sites/migrations/0002_alter_domain_unique.py b/django/contrib/sites/migrations/0002_alter_domain_unique.py index ccc7bfc3849a9..e379a91f67efc 100644 --- a/django/contrib/sites/migrations/0002_alter_domain_unique.py +++ b/django/contrib/sites/migrations/0002_alter_domain_unique.py @@ -3,7 +3,6 @@ class Migration(migrations.Migration): - dependencies = [ ("sites", "0001_initial"), ] diff --git a/django/contrib/sites/models.py b/django/contrib/sites/models.py index e1544f1fa22df..7f8bce920e7ab 100644 --- a/django/contrib/sites/models.py +++ b/django/contrib/sites/models.py @@ -77,7 +77,6 @@ def get_by_natural_key(self, domain): class Site(models.Model): - domain = models.CharField( _("domain name"), max_length=100, diff --git a/django/contrib/syndication/views.py b/django/contrib/syndication/views.py index a9d1bff5cf52d..2378a14874d23 100644 --- a/django/contrib/syndication/views.py +++ b/django/contrib/syndication/views.py @@ -1,3 +1,5 @@ +from inspect import getattr_static, unwrap + from django.contrib.sites.shortcuts import get_current_site from django.core.exceptions import ImproperlyConfigured, ObjectDoesNotExist from django.http import Http404, HttpResponse @@ -82,10 +84,21 @@ def _get_dynamic_attr(self, attname, obj, default=None): # Check co_argcount rather than try/excepting the function and # catching the TypeError, because something inside the function # may raise the TypeError. This technique is more accurate. + func = unwrap(attr) try: - code = attr.__code__ + code = func.__code__ except AttributeError: - code = attr.__call__.__code__ + func = unwrap(attr.__call__) + code = func.__code__ + # If function doesn't have arguments and it is not a static method, + # it was decorated without using @functools.wraps. + if not code.co_argcount and not isinstance( + getattr_static(self, func.__name__, None), staticmethod + ): + raise ImproperlyConfigured( + f"Feed method {attname!r} decorated by {func.__name__!r} needs to " + f"use @functools.wraps." + ) if code.co_argcount == 2: # one argument is 'self' return attr(obj) else: diff --git a/django/core/cache/backends/db.py b/django/core/cache/backends/db.py index e022b96abee26..f41105177f18c 100644 --- a/django/core/cache/backends/db.py +++ b/django/core/cache/backends/db.py @@ -40,7 +40,6 @@ class CacheEntry: class DatabaseCache(BaseDatabaseCache): - # This class uses cursors provided by the database connection. This means # it reads expiration values as aware or naive datetimes, depending on the # value of USE_TZ and whether the database supports time zones. The ORM's diff --git a/django/core/checks/templates.py b/django/core/checks/templates.py index 521427698781e..681aa1f31722f 100644 --- a/django/core/checks/templates.py +++ b/django/core/checks/templates.py @@ -4,7 +4,7 @@ from django.conf import settings from django.template.backends.django import get_template_tag_modules -from . import Error, Tags, register +from . import Error, Tags, Warning, register E001 = Error( "You have 'APP_DIRS': True in your TEMPLATES but also specify 'loaders' " @@ -15,7 +15,7 @@ "'string_if_invalid' in TEMPLATES OPTIONS must be a string but got: {} ({}).", id="templates.E002", ) -E003 = Error( +W003 = Warning( "{} is used for multiple template tag modules: {}", id="templates.E003", ) @@ -50,25 +50,25 @@ def check_string_if_invalid_is_string(app_configs, **kwargs): @register(Tags.templates) def check_for_template_tags_with_the_same_name(app_configs, **kwargs): errors = [] - libraries = defaultdict(list) + libraries = defaultdict(set) for conf in settings.TEMPLATES: custom_libraries = conf.get("OPTIONS", {}).get("libraries", {}) for module_name, module_path in custom_libraries.items(): - libraries[module_name].append(module_path) + libraries[module_name].add(module_path) for module_name, module_path in get_template_tag_modules(): - libraries[module_name].append(module_path) + libraries[module_name].add(module_path) for library_name, items in libraries.items(): if len(items) > 1: errors.append( - Error( - E003.msg.format( + Warning( + W003.msg.format( repr(library_name), - ", ".join(repr(item) for item in items), + ", ".join(repr(item) for item in sorted(items)), ), - id=E003.id, + id=W003.id, ) ) diff --git a/django/core/exceptions.py b/django/core/exceptions.py index 7be4e16bc55ad..e06b33e7bc2d8 100644 --- a/django/core/exceptions.py +++ b/django/core/exceptions.py @@ -67,6 +67,15 @@ class TooManyFieldsSent(SuspiciousOperation): pass +class TooManyFilesSent(SuspiciousOperation): + """ + The number of fields in a GET or POST request exceeded + settings.DATA_UPLOAD_MAX_NUMBER_FILES. + """ + + pass + + class RequestDataTooBig(SuspiciousOperation): """ The size of the request (excluding any file uploads) exceeded diff --git a/django/core/handlers/asgi.py b/django/core/handlers/asgi.py index 11c8bc209be19..cfe5101ea49d6 100644 --- a/django/core/handlers/asgi.py +++ b/django/core/handlers/asgi.py @@ -171,14 +171,14 @@ async def handle(self, scope, receive, send): ) # Get the request and check for basic issues. request, error_response = self.create_request(scope, body_file) + if request is None: + await self.send_response(error_response, send) + return + # Get the response, using the async mode of BaseHandler. + response = await self.get_response_async(request) + response._handler_class = self.__class__ finally: body_file.close() - if request is None: - await self.send_response(error_response, send) - return - # Get the response, using the async mode of BaseHandler. - response = await self.get_response_async(request) - response._handler_class = self.__class__ # Increase chunk size on file responses (ASGI servers handles low-level # chunking). if isinstance(response, FileResponse): diff --git a/django/core/handlers/exception.py b/django/core/handlers/exception.py index 79577c2d0a6d8..fd64584bbafbd 100644 --- a/django/core/handlers/exception.py +++ b/django/core/handlers/exception.py @@ -13,6 +13,7 @@ RequestDataTooBig, SuspiciousOperation, TooManyFieldsSent, + TooManyFilesSent, ) from django.http import Http404 from django.http.multipartparser import MultiPartParserError @@ -111,7 +112,7 @@ def response_for_exception(request, exc): exception=exc, ) elif isinstance(exc, SuspiciousOperation): - if isinstance(exc, (RequestDataTooBig, TooManyFieldsSent)): + if isinstance(exc, (RequestDataTooBig, TooManyFieldsSent, TooManyFilesSent)): # POST data can't be accessed again, otherwise the original # exception would be raised. request._mark_post_parse_error() diff --git a/django/core/management/base.py b/django/core/management/base.py index f0e711ac76216..52407807d8d30 100644 --- a/django/core/management/base.py +++ b/django/core/management/base.py @@ -286,10 +286,10 @@ def create_parser(self, prog_name, subcommand, **kwargs): Create and return the ``ArgumentParser`` which will be used to parse the arguments to this command. """ + kwargs.setdefault("formatter_class", DjangoHelpFormatter) parser = CommandParser( prog="%s %s" % (os.path.basename(prog_name), subcommand), description=self.help or None, - formatter_class=DjangoHelpFormatter, missing_args_message=getattr(self, "missing_args_message", None), called_from_command_line=getattr(self, "_called_from_command_line", None), **kwargs, diff --git a/django/core/management/commands/dumpdata.py b/django/core/management/commands/dumpdata.py index 038b82698d58e..cc183517e3022 100644 --- a/django/core/management/commands/dumpdata.py +++ b/django/core/management/commands/dumpdata.py @@ -193,7 +193,7 @@ def get_objects(count_only=False): # There is no need to sort dependencies when natural foreign # keys are not used. models = [] - for (app_config, model_list) in app_list.items(): + for app_config, model_list in app_list.items(): if model_list is None: models.extend(app_config.get_models()) else: diff --git a/django/core/management/commands/squashmigrations.py b/django/core/management/commands/squashmigrations.py index a46edb3b7b443..6571cbc2e2153 100644 --- a/django/core/management/commands/squashmigrations.py +++ b/django/core/management/commands/squashmigrations.py @@ -60,7 +60,6 @@ def add_arguments(self, parser): ) def handle(self, **options): - self.verbosity = options["verbosity"] self.interactive = options["interactive"] app_label = options["app_label"] diff --git a/django/core/management/templates.py b/django/core/management/templates.py index e06e6a6307faf..214e2becbb0f9 100644 --- a/django/core/management/templates.py +++ b/django/core/management/templates.py @@ -80,7 +80,6 @@ def add_arguments(self, parser): ) def handle(self, app_or_project, name, target=None, **options): - self.written_files = [] self.app_or_project = app_or_project self.a_or_an = "an" if app_or_project == "app" else "a" self.paths_to_remove = [] @@ -151,7 +150,6 @@ def handle(self, app_or_project, name, target=None, **options): prefix_length = len(template_dir) + 1 for root, dirs, files in os.walk(template_dir): - path_rest = root[prefix_length:] relative_dir = path_rest.replace(base_name, name) if relative_dir: @@ -201,7 +199,6 @@ def handle(self, app_or_project, name, target=None, **options): else: shutil.copyfile(old_path, new_path) - self.written_files.append(new_path) if self.verbosity >= 2: self.stdout.write("Creating %s" % new_path) try: @@ -224,7 +221,7 @@ def handle(self, app_or_project, name, target=None, **options): else: shutil.rmtree(path_to_remove) - run_formatters(self.written_files) + run_formatters([top_dir]) def handle_template(self, template, subdir): """ diff --git a/django/core/serializers/python.py b/django/core/serializers/python.py index a3918bf9d2c5e..c15d4128469af 100644 --- a/django/core/serializers/python.py +++ b/django/core/serializers/python.py @@ -122,8 +122,7 @@ def Deserializer( field_names = field_names_cache[Model] # Handle each field - for (field_name, field_value) in d["fields"].items(): - + for field_name, field_value in d["fields"].items(): if ignorenonexistent and field_name not in field_names: # skip fields no longer on model continue diff --git a/django/db/backends/base/creation.py b/django/db/backends/base/creation.py index 8a54f4061a7ae..cbac8a7f76720 100644 --- a/django/db/backends/base/creation.py +++ b/django/db/backends/base/creation.py @@ -116,6 +116,7 @@ def serialize_db_to_string(self): Designed only for test runner usage; will not handle large amounts of data. """ + # Iteratively return every object for all models to serialize. def get_objects(): from django.db.migrations.loader import MigrationLoader diff --git a/django/db/backends/base/features.py b/django/db/backends/base/features.py index 68cad9fef20df..498d043d5de6f 100644 --- a/django/db/backends/base/features.py +++ b/django/db/backends/base/features.py @@ -298,6 +298,9 @@ class BaseDatabaseFeatures: # Does the backend support boolean expressions in SELECT and GROUP BY # clauses? supports_boolean_expr_in_select_clause = True + # Does the backend support comparing boolean expressions in WHERE clauses? + # Eg: WHERE (price > 0) IS NOT NULL + supports_comparing_boolean_expr = True # Does the backend support JSONField? supports_json_field = True diff --git a/django/db/backends/base/operations.py b/django/db/backends/base/operations.py index 12f37e3404164..835ead65ad176 100644 --- a/django/db/backends/base/operations.py +++ b/django/db/backends/base/operations.py @@ -100,7 +100,7 @@ def unification_cast_sql(self, output_field): """ return "%s" - def date_extract_sql(self, lookup_type, field_name): + def date_extract_sql(self, lookup_type, sql, params): """ Given a lookup_type of 'year', 'month', or 'day', return the SQL that extracts a value from the given date field field_name. @@ -110,7 +110,7 @@ def date_extract_sql(self, lookup_type, field_name): "method" ) - def date_trunc_sql(self, lookup_type, field_name, tzname=None): + def date_trunc_sql(self, lookup_type, sql, params, tzname=None): """ Given a lookup_type of 'year', 'month', or 'day', return the SQL that truncates the given date or datetime field field_name to a date object @@ -124,7 +124,7 @@ def date_trunc_sql(self, lookup_type, field_name, tzname=None): "method." ) - def datetime_cast_date_sql(self, field_name, tzname): + def datetime_cast_date_sql(self, sql, params, tzname): """ Return the SQL to cast a datetime value to date value. """ @@ -133,7 +133,7 @@ def datetime_cast_date_sql(self, field_name, tzname): "datetime_cast_date_sql() method." ) - def datetime_cast_time_sql(self, field_name, tzname): + def datetime_cast_time_sql(self, sql, params, tzname): """ Return the SQL to cast a datetime value to time value. """ @@ -142,7 +142,7 @@ def datetime_cast_time_sql(self, field_name, tzname): "datetime_cast_time_sql() method" ) - def datetime_extract_sql(self, lookup_type, field_name, tzname): + def datetime_extract_sql(self, lookup_type, sql, params, tzname): """ Given a lookup_type of 'year', 'month', 'day', 'hour', 'minute', or 'second', return the SQL that extracts a value from the given @@ -153,7 +153,7 @@ def datetime_extract_sql(self, lookup_type, field_name, tzname): "method" ) - def datetime_trunc_sql(self, lookup_type, field_name, tzname): + def datetime_trunc_sql(self, lookup_type, sql, params, tzname): """ Given a lookup_type of 'year', 'month', 'day', 'hour', 'minute', or 'second', return the SQL that truncates the given datetime field @@ -164,7 +164,7 @@ def datetime_trunc_sql(self, lookup_type, field_name, tzname): "method" ) - def time_trunc_sql(self, lookup_type, field_name, tzname=None): + def time_trunc_sql(self, lookup_type, sql, params, tzname=None): """ Given a lookup_type of 'hour', 'minute' or 'second', return the SQL that truncates the given time or datetime field field_name to a time @@ -177,12 +177,12 @@ def time_trunc_sql(self, lookup_type, field_name, tzname=None): "subclasses of BaseDatabaseOperations may require a time_trunc_sql() method" ) - def time_extract_sql(self, lookup_type, field_name): + def time_extract_sql(self, lookup_type, sql, params): """ Given a lookup_type of 'hour', 'minute', or 'second', return the SQL that extracts a value from the given time field field_name. """ - return self.date_extract_sql(lookup_type, field_name) + return self.date_extract_sql(lookup_type, sql, params) def deferrable_sql(self): """ @@ -268,6 +268,7 @@ def last_executed_query(self, cursor, sql, params): exists for database backends to provide a better implementation according to their own quoting schemes. """ + # Convert params to contain string values. def to_string(s): return force_str(s, strings_only=True, errors="replace") diff --git a/django/db/backends/base/schema.py b/django/db/backends/base/schema.py index f2ca8c8df945c..86883857fdcb4 100644 --- a/django/db/backends/base/schema.py +++ b/django/db/backends/base/schema.py @@ -2,6 +2,7 @@ import operator from datetime import datetime +from django.conf import settings from django.db.backends.ddl_references import ( Columns, Expressions, @@ -268,7 +269,9 @@ def table_sql(self, model): sql = self.sql_create_table % { "table": self.quote_name(model._meta.db_table), "definition": ", ".join( - constraint for constraint in (*column_sqls, *constraints) if constraint + str(constraint) + for constraint in (*column_sqls, *constraints) + if constraint ), } if model._meta.db_tablespace: @@ -528,7 +531,10 @@ def alter_unique_together(self, model, old_unique_together, new_unique_together) # Deleted uniques for fields in olds.difference(news): self._delete_composed_index( - model, fields, {"unique": True}, self.sql_delete_unique + model, + fields, + {"unique": True, "primary_key": False}, + self.sql_delete_unique, ) # Created uniques for field_names in news.difference(olds): @@ -568,6 +574,17 @@ def _delete_composed_index(self, model, fields, constraint_kwargs, sql): exclude=meta_constraint_names | meta_index_names, **constraint_kwargs, ) + if ( + constraint_kwargs.get("unique") is True + and constraint_names + and self.connection.features.allows_multiple_constraints_on_same_fields + ): + # Constraint matching the unique_together name. + default_name = str( + self._unique_constraint_name(model._meta.db_table, columns, quote=False) + ) + if default_name in constraint_names: + constraint_names = [default_name] if len(constraint_names) != 1: raise ValueError( "Found wrong number (%s) of constraints for %s(%s)" @@ -622,6 +639,8 @@ def add_field(self, model, field): # It might not actually have a column behind it if definition is None: return + if col_type_suffix := field.db_type_suffix(connection=self.connection): + definition += f" {col_type_suffix}" # Check constraints can go on the column SQL here db_params = field.db_parameters(connection=self.connection) if db_params["check"]: @@ -1292,6 +1311,8 @@ def _get_index_tablespace_sql(self, model, fields, db_tablespace=None): if db_tablespace is None: if len(fields) == 1 and fields[0].db_tablespace: db_tablespace = fields[0].db_tablespace + elif settings.DEFAULT_INDEX_TABLESPACE: + db_tablespace = settings.DEFAULT_INDEX_TABLESPACE elif model._meta.db_tablespace: db_tablespace = model._meta.db_tablespace if db_tablespace is not None: @@ -1560,16 +1581,13 @@ def _create_unique_sql( ): return None - def create_unique_name(*args, **kwargs): - return self.quote_name(self._create_index_name(*args, **kwargs)) - compiler = Query(model, alias_cols=False).get_compiler( connection=self.connection ) table = model._meta.db_table columns = [field.column for field in fields] if name is None: - name = IndexName(table, columns, "_uniq", create_unique_name) + name = self._unique_constraint_name(table, columns, quote=True) else: name = self.quote_name(name) if condition or include or opclasses or expressions: @@ -1592,6 +1610,17 @@ def create_unique_name(*args, **kwargs): include=self._index_include_sql(model, include), ) + def _unique_constraint_name(self, table, columns, quote=True): + if quote: + + def create_unique_name(*args, **kwargs): + return self.quote_name(self._create_index_name(*args, **kwargs)) + + else: + create_unique_name = self._create_index_name + + return IndexName(table, columns, "_uniq", create_unique_name) + def _delete_unique_sql( self, model, diff --git a/django/db/backends/mysql/features.py b/django/db/backends/mysql/features.py index 1261d9e9a6caa..10e40f956a629 100644 --- a/django/db/backends/mysql/features.py +++ b/django/db/backends/mysql/features.py @@ -52,7 +52,7 @@ class DatabaseFeatures(BaseDatabaseFeatures): @cached_property def minimum_database_version(self): if self.connection.mysql_is_mariadb: - return (10, 2) + return (10, 3) else: return (5, 7) @@ -70,11 +70,14 @@ def bare_select_suffix(self): @cached_property def test_collations(self): charset = "utf8" - if self.connection.mysql_is_mariadb and self.connection.mysql_version >= ( - 10, - 6, + if ( + self.connection.mysql_is_mariadb + and self.connection.mysql_version >= (10, 6) + ) or ( + not self.connection.mysql_is_mariadb + and self.connection.mysql_version >= (8, 0, 30) ): - # utf8 is an alias for utf8mb3 in MariaDB 10.6+. + # utf8 is an alias for utf8mb3 in MariaDB 10.6+ and MySQL 8.0.30+. charset = "utf8mb3" return { "ci": f"{charset}_general_ci", @@ -105,6 +108,12 @@ def django_test_skips(self): "scalar value but it's not implemented (#25287).": { "expressions.tests.FTimeDeltaTests.test_durationfield_multiply_divide", }, + "UPDATE ... ORDER BY syntax on MySQL/MariaDB does not support ordering by" + "related fields.": { + "update.tests.AdvancedTests." + "test_update_ordered_by_inline_m2m_annotation", + "update.tests.AdvancedTests.test_update_ordered_by_m2m_annotation", + }, } if "ONLY_FULL_GROUP_BY" in self.connection.sql_mode: skips.update( @@ -165,6 +174,25 @@ def django_test_skips(self): }, } ) + if ( + self.connection.mysql_is_mariadb and self.connection.mysql_version < (10, 4) + ) or ( + not self.connection.mysql_is_mariadb + and self.connection.mysql_version < (8,) + ): + skips.update( + { + "Parenthesized combined queries are not supported on MySQL < 8 and " + "MariaDB < 10.4": { + "queries.test_qs_combinators.QuerySetSetOperationTests." + "test_union_in_subquery", + "queries.test_qs_combinators.QuerySetSetOperationTests." + "test_union_in_subquery_related_outerref", + "queries.test_qs_combinators.QuerySetSetOperationTests." + "test_union_in_with_ordering", + } + } + ) if not self.supports_explain_analyze: skips.update( { diff --git a/django/db/backends/mysql/operations.py b/django/db/backends/mysql/operations.py index 823090b9d16f0..8a875a11d8ddb 100644 --- a/django/db/backends/mysql/operations.py +++ b/django/db/backends/mysql/operations.py @@ -7,6 +7,7 @@ from django.db.models.constants import OnConflict from django.utils import timezone from django.utils.encoding import force_str +from django.utils.regex_helper import _lazy_re_compile class DatabaseOperations(BaseDatabaseOperations): @@ -37,117 +38,115 @@ class DatabaseOperations(BaseDatabaseOperations): cast_char_field_without_max_length = "char" explain_prefix = "EXPLAIN" - def date_extract_sql(self, lookup_type, field_name): + # EXTRACT format cannot be passed in parameters. + _extract_format_re = _lazy_re_compile(r"[A-Z_]+") + + def date_extract_sql(self, lookup_type, sql, params): # https://dev.mysql.com/doc/mysql/en/date-and-time-functions.html if lookup_type == "week_day": # DAYOFWEEK() returns an integer, 1-7, Sunday=1. - return "DAYOFWEEK(%s)" % field_name + return f"DAYOFWEEK({sql})", params elif lookup_type == "iso_week_day": # WEEKDAY() returns an integer, 0-6, Monday=0. - return "WEEKDAY(%s) + 1" % field_name + return f"WEEKDAY({sql}) + 1", params elif lookup_type == "week": # Override the value of default_week_format for consistency with # other database backends. # Mode 3: Monday, 1-53, with 4 or more days this year. - return "WEEK(%s, 3)" % field_name + return f"WEEK({sql}, 3)", params elif lookup_type == "iso_year": # Get the year part from the YEARWEEK function, which returns a # number as year * 100 + week. - return "TRUNCATE(YEARWEEK(%s, 3), -2) / 100" % field_name + return f"TRUNCATE(YEARWEEK({sql}, 3), -2) / 100", params else: # EXTRACT returns 1-53 based on ISO-8601 for the week number. - return "EXTRACT(%s FROM %s)" % (lookup_type.upper(), field_name) + lookup_type = lookup_type.upper() + if not self._extract_format_re.fullmatch(lookup_type): + raise ValueError(f"Invalid loookup type: {lookup_type!r}") + return f"EXTRACT({lookup_type} FROM {sql})", params - def date_trunc_sql(self, lookup_type, field_name, tzname=None): - field_name = self._convert_field_to_tz(field_name, tzname) + def date_trunc_sql(self, lookup_type, sql, params, tzname=None): + sql, params = self._convert_sql_to_tz(sql, params, tzname) fields = { - "year": "%%Y-01-01", - "month": "%%Y-%%m-01", - } # Use double percents to escape. + "year": "%Y-01-01", + "month": "%Y-%m-01", + } if lookup_type in fields: format_str = fields[lookup_type] - return "CAST(DATE_FORMAT(%s, '%s') AS DATE)" % (field_name, format_str) + return f"CAST(DATE_FORMAT({sql}, %s) AS DATE)", (*params, format_str) elif lookup_type == "quarter": return ( - "MAKEDATE(YEAR(%s), 1) + " - "INTERVAL QUARTER(%s) QUARTER - INTERVAL 1 QUARTER" - % (field_name, field_name) + f"MAKEDATE(YEAR({sql}), 1) + " + f"INTERVAL QUARTER({sql}) QUARTER - INTERVAL 1 QUARTER", + (*params, *params), ) elif lookup_type == "week": - return "DATE_SUB(%s, INTERVAL WEEKDAY(%s) DAY)" % (field_name, field_name) + return f"DATE_SUB({sql}, INTERVAL WEEKDAY({sql}) DAY)", (*params, *params) else: - return "DATE(%s)" % (field_name) + return f"DATE({sql})", params def _prepare_tzname_delta(self, tzname): tzname, sign, offset = split_tzname_delta(tzname) return f"{sign}{offset}" if offset else tzname - def _convert_field_to_tz(self, field_name, tzname): + def _convert_sql_to_tz(self, sql, params, tzname): if tzname and settings.USE_TZ and self.connection.timezone_name != tzname: - field_name = "CONVERT_TZ(%s, '%s', '%s')" % ( - field_name, + return f"CONVERT_TZ({sql}, %s, %s)", ( + *params, self.connection.timezone_name, self._prepare_tzname_delta(tzname), ) - return field_name + return sql, params - def datetime_cast_date_sql(self, field_name, tzname): - field_name = self._convert_field_to_tz(field_name, tzname) - return "DATE(%s)" % field_name + def datetime_cast_date_sql(self, sql, params, tzname): + sql, params = self._convert_sql_to_tz(sql, params, tzname) + return f"DATE({sql})", params - def datetime_cast_time_sql(self, field_name, tzname): - field_name = self._convert_field_to_tz(field_name, tzname) - return "TIME(%s)" % field_name + def datetime_cast_time_sql(self, sql, params, tzname): + sql, params = self._convert_sql_to_tz(sql, params, tzname) + return f"TIME({sql})", params - def datetime_extract_sql(self, lookup_type, field_name, tzname): - field_name = self._convert_field_to_tz(field_name, tzname) - return self.date_extract_sql(lookup_type, field_name) + def datetime_extract_sql(self, lookup_type, sql, params, tzname): + sql, params = self._convert_sql_to_tz(sql, params, tzname) + return self.date_extract_sql(lookup_type, sql, params) - def datetime_trunc_sql(self, lookup_type, field_name, tzname): - field_name = self._convert_field_to_tz(field_name, tzname) + def datetime_trunc_sql(self, lookup_type, sql, params, tzname): + sql, params = self._convert_sql_to_tz(sql, params, tzname) fields = ["year", "month", "day", "hour", "minute", "second"] - format = ( - "%%Y-", - "%%m", - "-%%d", - " %%H:", - "%%i", - ":%%s", - ) # Use double percents to escape. + format = ("%Y-", "%m", "-%d", " %H:", "%i", ":%s") format_def = ("0000-", "01", "-01", " 00:", "00", ":00") if lookup_type == "quarter": return ( - "CAST(DATE_FORMAT(MAKEDATE(YEAR({field_name}), 1) + " - "INTERVAL QUARTER({field_name}) QUARTER - " - + "INTERVAL 1 QUARTER, '%%Y-%%m-01 00:00:00') AS DATETIME)" - ).format(field_name=field_name) + f"CAST(DATE_FORMAT(MAKEDATE(YEAR({sql}), 1) + " + f"INTERVAL QUARTER({sql}) QUARTER - " + f"INTERVAL 1 QUARTER, %s) AS DATETIME)" + ), (*params, *params, "%Y-%m-01 00:00:00") if lookup_type == "week": return ( - "CAST(DATE_FORMAT(DATE_SUB({field_name}, " - "INTERVAL WEEKDAY({field_name}) DAY), " - "'%%Y-%%m-%%d 00:00:00') AS DATETIME)" - ).format(field_name=field_name) + f"CAST(DATE_FORMAT(" + f"DATE_SUB({sql}, INTERVAL WEEKDAY({sql}) DAY), %s) AS DATETIME)" + ), (*params, *params, "%Y-%m-%d 00:00:00") try: i = fields.index(lookup_type) + 1 except ValueError: - sql = field_name + pass else: format_str = "".join(format[:i] + format_def[i:]) - sql = "CAST(DATE_FORMAT(%s, '%s') AS DATETIME)" % (field_name, format_str) - return sql + return f"CAST(DATE_FORMAT({sql}, %s) AS DATETIME)", (*params, format_str) + return sql, params - def time_trunc_sql(self, lookup_type, field_name, tzname=None): - field_name = self._convert_field_to_tz(field_name, tzname) + def time_trunc_sql(self, lookup_type, sql, params, tzname=None): + sql, params = self._convert_sql_to_tz(sql, params, tzname) fields = { - "hour": "%%H:00:00", - "minute": "%%H:%%i:00", - "second": "%%H:%%i:%%s", - } # Use double percents to escape. + "hour": "%H:00:00", + "minute": "%H:%i:00", + "second": "%H:%i:%s", + } if lookup_type in fields: format_str = fields[lookup_type] - return "CAST(DATE_FORMAT(%s, '%s') AS TIME)" % (field_name, format_str) + return f"CAST(DATE_FORMAT({sql}, %s) AS TIME)", (*params, format_str) else: - return "TIME(%s)" % (field_name) + return f"TIME({sql})", params def fetch_returned_insert_rows(self, cursor): """ diff --git a/django/db/backends/mysql/schema.py b/django/db/backends/mysql/schema.py index d6d303f0f0edc..1bbbcc111c44a 100644 --- a/django/db/backends/mysql/schema.py +++ b/django/db/backends/mysql/schema.py @@ -3,7 +3,6 @@ class DatabaseSchemaEditor(BaseDatabaseSchemaEditor): - sql_rename_table = "RENAME TABLE %(old_table)s TO %(new_table)s" sql_alter_column_null = "MODIFY %(column)s %(type)s NULL" diff --git a/django/db/backends/oracle/features.py b/django/db/backends/oracle/features.py index defd0a0ff8c62..4ce63624168af 100644 --- a/django/db/backends/oracle/features.py +++ b/django/db/backends/oracle/features.py @@ -64,6 +64,7 @@ class DatabaseFeatures(BaseDatabaseFeatures): supports_slicing_ordering_in_compound = True allows_multiple_constraints_on_same_fields = False supports_boolean_expr_in_select_clause = False + supports_comparing_boolean_expr = False supports_primitives_in_json_field = False supports_json_field_contains = False supports_collation_on_textfield = False @@ -109,6 +110,11 @@ class DatabaseFeatures(BaseDatabaseFeatures): "migrations.test_operations.OperationTests." "test_alter_field_pk_fk_db_collation", }, + "Oracle raises an error when a subquery contains unnecessary ORDER BY " + "clause (#32786).": { + "queries.test_qs_combinators.QuerySetSetOperationTests." + "test_union_in_with_ordering", + }, } django_test_expected_failures = { # A bug in Django/cx_Oracle with respect to string handling (#23843). diff --git a/django/db/backends/oracle/operations.py b/django/db/backends/oracle/operations.py index 672a02d664d5d..351de4df834a0 100644 --- a/django/db/backends/oracle/operations.py +++ b/django/db/backends/oracle/operations.py @@ -77,34 +77,46 @@ def cache_key_culling_sql(self): f"ORDER BY {cache_key} OFFSET %%s ROWS FETCH FIRST 1 ROWS ONLY" ) - def date_extract_sql(self, lookup_type, field_name): + # EXTRACT format cannot be passed in parameters. + _extract_format_re = _lazy_re_compile(r"[A-Z_]+") + + def date_extract_sql(self, lookup_type, sql, params): + extract_sql = f"TO_CHAR({sql}, %s)" + extract_param = None if lookup_type == "week_day": # TO_CHAR(field, 'D') returns an integer from 1-7, where 1=Sunday. - return "TO_CHAR(%s, 'D')" % field_name + extract_param = "D" elif lookup_type == "iso_week_day": - return "TO_CHAR(%s - 1, 'D')" % field_name + extract_sql = f"TO_CHAR({sql} - 1, %s)" + extract_param = "D" elif lookup_type == "week": # IW = ISO week number - return "TO_CHAR(%s, 'IW')" % field_name + extract_param = "IW" elif lookup_type == "quarter": - return "TO_CHAR(%s, 'Q')" % field_name + extract_param = "Q" elif lookup_type == "iso_year": - return "TO_CHAR(%s, 'IYYY')" % field_name + extract_param = "IYYY" else: + lookup_type = lookup_type.upper() + if not self._extract_format_re.fullmatch(lookup_type): + raise ValueError(f"Invalid loookup type: {lookup_type!r}") # https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/EXTRACT-datetime.html - return "EXTRACT(%s FROM %s)" % (lookup_type.upper(), field_name) + return f"EXTRACT({lookup_type} FROM {sql})", params + return extract_sql, (*params, extract_param) - def date_trunc_sql(self, lookup_type, field_name, tzname=None): - field_name = self._convert_field_to_tz(field_name, tzname) + def date_trunc_sql(self, lookup_type, sql, params, tzname=None): + sql, params = self._convert_sql_to_tz(sql, params, tzname) # https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ROUND-and-TRUNC-Date-Functions.html + trunc_param = None if lookup_type in ("year", "month"): - return "TRUNC(%s, '%s')" % (field_name, lookup_type.upper()) + trunc_param = lookup_type.upper() elif lookup_type == "quarter": - return "TRUNC(%s, 'Q')" % field_name + trunc_param = "Q" elif lookup_type == "week": - return "TRUNC(%s, 'IW')" % field_name + trunc_param = "IW" else: - return "TRUNC(%s)" % field_name + return f"TRUNC({sql})", params + return f"TRUNC({sql}, %s)", (*params, trunc_param) # Oracle crashes with "ORA-03113: end-of-file on communication channel" # if the time zone name is passed in parameter. Use interpolation instead. @@ -116,77 +128,80 @@ def _prepare_tzname_delta(self, tzname): tzname, sign, offset = split_tzname_delta(tzname) return f"{sign}{offset}" if offset else tzname - def _convert_field_to_tz(self, field_name, tzname): + def _convert_sql_to_tz(self, sql, params, tzname): if not (settings.USE_TZ and tzname): - return field_name + return sql, params if not self._tzname_re.match(tzname): raise ValueError("Invalid time zone name: %s" % tzname) # Convert from connection timezone to the local time, returning # TIMESTAMP WITH TIME ZONE and cast it back to TIMESTAMP to strip the # TIME ZONE details. if self.connection.timezone_name != tzname: - return "CAST((FROM_TZ(%s, '%s') AT TIME ZONE '%s') AS TIMESTAMP)" % ( - field_name, - self.connection.timezone_name, - self._prepare_tzname_delta(tzname), + from_timezone_name = self.connection.timezone_name + to_timezone_name = self._prepare_tzname_delta(tzname) + return ( + f"CAST((FROM_TZ({sql}, '{from_timezone_name}') AT TIME ZONE " + f"'{to_timezone_name}') AS TIMESTAMP)", + params, ) - return field_name + return sql, params - def datetime_cast_date_sql(self, field_name, tzname): - field_name = self._convert_field_to_tz(field_name, tzname) - return "TRUNC(%s)" % field_name + def datetime_cast_date_sql(self, sql, params, tzname): + sql, params = self._convert_sql_to_tz(sql, params, tzname) + return f"TRUNC({sql})", params - def datetime_cast_time_sql(self, field_name, tzname): + def datetime_cast_time_sql(self, sql, params, tzname): # Since `TimeField` values are stored as TIMESTAMP change to the # default date and convert the field to the specified timezone. + sql, params = self._convert_sql_to_tz(sql, params, tzname) convert_datetime_sql = ( - "TO_TIMESTAMP(CONCAT('1900-01-01 ', TO_CHAR(%s, 'HH24:MI:SS.FF')), " - "'YYYY-MM-DD HH24:MI:SS.FF')" - ) % self._convert_field_to_tz(field_name, tzname) - return "CASE WHEN %s IS NOT NULL THEN %s ELSE NULL END" % ( - field_name, - convert_datetime_sql, + f"TO_TIMESTAMP(CONCAT('1900-01-01 ', TO_CHAR({sql}, 'HH24:MI:SS.FF')), " + f"'YYYY-MM-DD HH24:MI:SS.FF')" + ) + return ( + f"CASE WHEN {sql} IS NOT NULL THEN {convert_datetime_sql} ELSE NULL END", + (*params, *params), ) - def datetime_extract_sql(self, lookup_type, field_name, tzname): - field_name = self._convert_field_to_tz(field_name, tzname) - return self.date_extract_sql(lookup_type, field_name) + def datetime_extract_sql(self, lookup_type, sql, params, tzname): + sql, params = self._convert_sql_to_tz(sql, params, tzname) + return self.date_extract_sql(lookup_type, sql, params) - def datetime_trunc_sql(self, lookup_type, field_name, tzname): - field_name = self._convert_field_to_tz(field_name, tzname) + def datetime_trunc_sql(self, lookup_type, sql, params, tzname): + sql, params = self._convert_sql_to_tz(sql, params, tzname) # https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ROUND-and-TRUNC-Date-Functions.html + trunc_param = None if lookup_type in ("year", "month"): - sql = "TRUNC(%s, '%s')" % (field_name, lookup_type.upper()) + trunc_param = lookup_type.upper() elif lookup_type == "quarter": - sql = "TRUNC(%s, 'Q')" % field_name + trunc_param = "Q" elif lookup_type == "week": - sql = "TRUNC(%s, 'IW')" % field_name - elif lookup_type == "day": - sql = "TRUNC(%s)" % field_name + trunc_param = "IW" elif lookup_type == "hour": - sql = "TRUNC(%s, 'HH24')" % field_name + trunc_param = "HH24" elif lookup_type == "minute": - sql = "TRUNC(%s, 'MI')" % field_name + trunc_param = "MI" + elif lookup_type == "day": + return f"TRUNC({sql})", params else: - sql = ( - "CAST(%s AS DATE)" % field_name - ) # Cast to DATE removes sub-second precision. - return sql + # Cast to DATE removes sub-second precision. + return f"CAST({sql} AS DATE)", params + return f"TRUNC({sql}, %s)", (*params, trunc_param) - def time_trunc_sql(self, lookup_type, field_name, tzname=None): + def time_trunc_sql(self, lookup_type, sql, params, tzname=None): # The implementation is similar to `datetime_trunc_sql` as both # `DateTimeField` and `TimeField` are stored as TIMESTAMP where # the date part of the later is ignored. - field_name = self._convert_field_to_tz(field_name, tzname) + sql, params = self._convert_sql_to_tz(sql, params, tzname) + trunc_param = None if lookup_type == "hour": - sql = "TRUNC(%s, 'HH24')" % field_name + trunc_param = "HH24" elif lookup_type == "minute": - sql = "TRUNC(%s, 'MI')" % field_name + trunc_param = "MI" elif lookup_type == "second": - sql = ( - "CAST(%s AS DATE)" % field_name - ) # Cast to DATE removes sub-second precision. - return sql + # Cast to DATE removes sub-second precision. + return f"CAST({sql} AS DATE)", params + return f"TRUNC({sql}, %s)", (*params, trunc_param) def get_db_converters(self, expression): converters = super().get_db_converters(expression) diff --git a/django/db/backends/oracle/schema.py b/django/db/backends/oracle/schema.py index f2a509911068d..86fd9ee4979b1 100644 --- a/django/db/backends/oracle/schema.py +++ b/django/db/backends/oracle/schema.py @@ -11,7 +11,6 @@ class DatabaseSchemaEditor(BaseDatabaseSchemaEditor): - sql_create_column = "ALTER TABLE %(table)s ADD %(column)s %(definition)s" sql_alter_column_type = "MODIFY %(column)s %(type)s" sql_alter_column_null = "MODIFY %(column)s NULL" diff --git a/django/db/backends/postgresql/operations.py b/django/db/backends/postgresql/operations.py index ec162d53f4c5f..e8eb06c9e253e 100644 --- a/django/db/backends/postgresql/operations.py +++ b/django/db/backends/postgresql/operations.py @@ -47,22 +47,24 @@ def unification_cast_sql(self, output_field): ) return "%s" - def date_extract_sql(self, lookup_type, field_name): + def date_extract_sql(self, lookup_type, sql, params): # https://www.postgresql.org/docs/current/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT + extract_sql = f"EXTRACT(%s FROM {sql})" + extract_param = lookup_type if lookup_type == "week_day": # For consistency across backends, we return Sunday=1, Saturday=7. - return "EXTRACT('dow' FROM %s) + 1" % field_name + extract_sql = f"EXTRACT(%s FROM {sql}) + 1" + extract_param = "dow" elif lookup_type == "iso_week_day": - return "EXTRACT('isodow' FROM %s)" % field_name + extract_param = "isodow" elif lookup_type == "iso_year": - return "EXTRACT('isoyear' FROM %s)" % field_name - else: - return "EXTRACT('%s' FROM %s)" % (lookup_type, field_name) + extract_param = "isoyear" + return extract_sql, (extract_param, *params) - def date_trunc_sql(self, lookup_type, field_name, tzname=None): - field_name = self._convert_field_to_tz(field_name, tzname) + def date_trunc_sql(self, lookup_type, sql, params, tzname=None): + sql, params = self._convert_sql_to_tz(sql, params, tzname) # https://www.postgresql.org/docs/current/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC - return "DATE_TRUNC('%s', %s)" % (lookup_type, field_name) + return f"DATE_TRUNC(%s, {sql})", (lookup_type, *params) def _prepare_tzname_delta(self, tzname): tzname, sign, offset = split_tzname_delta(tzname) @@ -71,43 +73,47 @@ def _prepare_tzname_delta(self, tzname): return f"{tzname}{sign}{offset}" return tzname - def _convert_field_to_tz(self, field_name, tzname): + def _convert_sql_to_tz(self, sql, params, tzname): if tzname and settings.USE_TZ: - field_name = "%s AT TIME ZONE '%s'" % ( - field_name, - self._prepare_tzname_delta(tzname), - ) - return field_name + tzname_param = self._prepare_tzname_delta(tzname) + return f"{sql} AT TIME ZONE %s", (*params, tzname_param) + return sql, params - def datetime_cast_date_sql(self, field_name, tzname): - field_name = self._convert_field_to_tz(field_name, tzname) - return "(%s)::date" % field_name + def datetime_cast_date_sql(self, sql, params, tzname): + sql, params = self._convert_sql_to_tz(sql, params, tzname) + return f"({sql})::date", params - def datetime_cast_time_sql(self, field_name, tzname): - field_name = self._convert_field_to_tz(field_name, tzname) - return "(%s)::time" % field_name + def datetime_cast_time_sql(self, sql, params, tzname): + sql, params = self._convert_sql_to_tz(sql, params, tzname) + return f"({sql})::time", params - def datetime_extract_sql(self, lookup_type, field_name, tzname): - field_name = self._convert_field_to_tz(field_name, tzname) + def datetime_extract_sql(self, lookup_type, sql, params, tzname): + sql, params = self._convert_sql_to_tz(sql, params, tzname) if lookup_type == "second": # Truncate fractional seconds. - return f"EXTRACT('second' FROM DATE_TRUNC('second', {field_name}))" - return self.date_extract_sql(lookup_type, field_name) + return ( + f"EXTRACT(%s FROM DATE_TRUNC(%s, {sql}))", + ("second", "second", *params), + ) + return self.date_extract_sql(lookup_type, sql, params) - def datetime_trunc_sql(self, lookup_type, field_name, tzname): - field_name = self._convert_field_to_tz(field_name, tzname) + def datetime_trunc_sql(self, lookup_type, sql, params, tzname): + sql, params = self._convert_sql_to_tz(sql, params, tzname) # https://www.postgresql.org/docs/current/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC - return "DATE_TRUNC('%s', %s)" % (lookup_type, field_name) + return f"DATE_TRUNC(%s, {sql})", (lookup_type, *params) - def time_extract_sql(self, lookup_type, field_name): + def time_extract_sql(self, lookup_type, sql, params): if lookup_type == "second": # Truncate fractional seconds. - return f"EXTRACT('second' FROM DATE_TRUNC('second', {field_name}))" - return self.date_extract_sql(lookup_type, field_name) + return ( + f"EXTRACT(%s FROM DATE_TRUNC(%s, {sql}))", + ("second", "second", *params), + ) + return self.date_extract_sql(lookup_type, sql, params) - def time_trunc_sql(self, lookup_type, field_name, tzname=None): - field_name = self._convert_field_to_tz(field_name, tzname) - return "DATE_TRUNC('%s', %s)::time" % (lookup_type, field_name) + def time_trunc_sql(self, lookup_type, sql, params, tzname=None): + sql, params = self._convert_sql_to_tz(sql, params, tzname) + return f"DATE_TRUNC(%s, {sql})::time", (lookup_type, *params) def deferrable_sql(self): return " DEFERRABLE INITIALLY DEFERRED" diff --git a/django/db/backends/postgresql/schema.py b/django/db/backends/postgresql/schema.py index a22ae0094fb67..9d7fdc3a65753 100644 --- a/django/db/backends/postgresql/schema.py +++ b/django/db/backends/postgresql/schema.py @@ -6,14 +6,13 @@ class DatabaseSchemaEditor(BaseDatabaseSchemaEditor): - # Setting all constraints to IMMEDIATE to allow changing data in the same # transaction. sql_update_with_default = ( "UPDATE %(table)s SET %(column)s = %(default)s WHERE %(column)s IS NULL" "; SET CONSTRAINTS ALL IMMEDIATE" ) - + sql_alter_sequence_type = "ALTER SEQUENCE IF EXISTS %(sequence)s AS %(type)s" sql_delete_sequence = "DROP SEQUENCE IF EXISTS %(sequence)s CASCADE" sql_create_index = ( @@ -112,6 +111,13 @@ def _create_like_index_sql(self, model, field): ) return None + def _get_sequence_name(self, table, column): + with self.connection.cursor() as cursor: + for sequence in self.connection.introspection.get_sequences(cursor, table): + if sequence["column"] == column: + return sequence["name"] + return None + def _alter_column_type_sql(self, model, old_field, new_field, new_type): self.sql_alter_column_type = "ALTER COLUMN %(column)s TYPE %(type)s" # Cast when data type changed. @@ -164,25 +170,52 @@ def _alter_column_type_sql(self, model, old_field, new_field, new_type): self.sql_drop_indentity % { "table": self.quote_name(table), - "column": self.quote_name(strip_quotes(old_field.column)), + "column": self.quote_name(strip_quotes(new_field.column)), } ) column = strip_quotes(new_field.column) - sequence_name = "%s_%s_seq" % (table, column) fragment, _ = super()._alter_column_type_sql( model, old_field, new_field, new_type ) - return fragment, [ - ( - # Drop the sequence if exists (Django 4.1+ identity columns - # don't have it). - self.sql_delete_sequence - % { - "sequence": self.quote_name(sequence_name), - }, - [], - ), - ] + # Drop the sequence if exists (Django 4.1+ identity columns don't + # have it). + other_actions = [] + if sequence_name := self._get_sequence_name(table, column): + other_actions = [ + ( + self.sql_delete_sequence + % { + "sequence": self.quote_name(sequence_name), + }, + [], + ) + ] + return fragment, other_actions + elif new_is_auto and old_is_auto and old_internal_type != new_internal_type: + fragment, _ = super()._alter_column_type_sql( + model, old_field, new_field, new_type + ) + column = strip_quotes(new_field.column) + db_types = { + "AutoField": "integer", + "BigAutoField": "bigint", + "SmallAutoField": "smallint", + } + # Alter the sequence type if exists (Django 4.1+ identity columns + # don't have it). + other_actions = [] + if sequence_name := self._get_sequence_name(table, column): + other_actions = [ + ( + self.sql_alter_sequence_type + % { + "sequence": self.quote_name(sequence_name), + "type": db_types[new_internal_type], + }, + [], + ), + ] + return fragment, other_actions else: return super()._alter_column_type_sql(model, old_field, new_field, new_type) diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py index 8ca076a1d9937..e0c668402f30a 100644 --- a/django/db/backends/sqlite3/base.py +++ b/django/db/backends/sqlite3/base.py @@ -289,7 +289,7 @@ def check_constraints(self, table_names=None): for column_name, ( referenced_column_name, referenced_table_name, - ) in relations: + ) in relations.items(): cursor.execute( """ SELECT REFERRING.`%s`, REFERRING.`%s` FROM `%s` as REFERRING diff --git a/django/db/backends/sqlite3/creation.py b/django/db/backends/sqlite3/creation.py index d15dea4b036ce..c334a86ac6dcc 100644 --- a/django/db/backends/sqlite3/creation.py +++ b/django/db/backends/sqlite3/creation.py @@ -104,6 +104,7 @@ def _clone_test_db(self, suffix, verbosity, keepdb=False): elif multiprocessing.get_start_method() == "spawn": ondisk_db = sqlite3.connect(target_database_name, uri=True) self.connection.connection.backup(ondisk_db) + ondisk_db.close() def _destroy_test_db(self, test_database_name, verbosity): if test_database_name and not self.is_in_memory_db(test_database_name): diff --git a/django/db/backends/sqlite3/operations.py b/django/db/backends/sqlite3/operations.py index 7c7cfce1ba045..0d3a4060ac0b9 100644 --- a/django/db/backends/sqlite3/operations.py +++ b/django/db/backends/sqlite3/operations.py @@ -69,13 +69,13 @@ def check_expression_support(self, expression): "accepting multiple arguments." ) - def date_extract_sql(self, lookup_type, field_name): + def date_extract_sql(self, lookup_type, sql, params): """ Support EXTRACT with a user-defined function django_date_extract() that's registered in connect(). Use single quotes because this is a string and could otherwise cause a collision with a field name. """ - return "django_date_extract('%s', %s)" % (lookup_type.lower(), field_name) + return f"django_date_extract(%s, {sql})", (lookup_type.lower(), *params) def fetch_returned_insert_rows(self, cursor): """ @@ -88,53 +88,53 @@ def format_for_duration_arithmetic(self, sql): """Do nothing since formatting is handled in the custom function.""" return sql - def date_trunc_sql(self, lookup_type, field_name, tzname=None): - return "django_date_trunc('%s', %s, %s, %s)" % ( + def date_trunc_sql(self, lookup_type, sql, params, tzname=None): + return f"django_date_trunc(%s, {sql}, %s, %s)", ( lookup_type.lower(), - field_name, + *params, *self._convert_tznames_to_sql(tzname), ) - def time_trunc_sql(self, lookup_type, field_name, tzname=None): - return "django_time_trunc('%s', %s, %s, %s)" % ( + def time_trunc_sql(self, lookup_type, sql, params, tzname=None): + return f"django_time_trunc(%s, {sql}, %s, %s)", ( lookup_type.lower(), - field_name, + *params, *self._convert_tznames_to_sql(tzname), ) def _convert_tznames_to_sql(self, tzname): if tzname and settings.USE_TZ: - return "'%s'" % tzname, "'%s'" % self.connection.timezone_name - return "NULL", "NULL" + return tzname, self.connection.timezone_name + return None, None - def datetime_cast_date_sql(self, field_name, tzname): - return "django_datetime_cast_date(%s, %s, %s)" % ( - field_name, + def datetime_cast_date_sql(self, sql, params, tzname): + return f"django_datetime_cast_date({sql}, %s, %s)", ( + *params, *self._convert_tznames_to_sql(tzname), ) - def datetime_cast_time_sql(self, field_name, tzname): - return "django_datetime_cast_time(%s, %s, %s)" % ( - field_name, + def datetime_cast_time_sql(self, sql, params, tzname): + return f"django_datetime_cast_time({sql}, %s, %s)", ( + *params, *self._convert_tznames_to_sql(tzname), ) - def datetime_extract_sql(self, lookup_type, field_name, tzname): - return "django_datetime_extract('%s', %s, %s, %s)" % ( + def datetime_extract_sql(self, lookup_type, sql, params, tzname): + return f"django_datetime_extract(%s, {sql}, %s, %s)", ( lookup_type.lower(), - field_name, + *params, *self._convert_tznames_to_sql(tzname), ) - def datetime_trunc_sql(self, lookup_type, field_name, tzname): - return "django_datetime_trunc('%s', %s, %s, %s)" % ( + def datetime_trunc_sql(self, lookup_type, sql, params, tzname): + return f"django_datetime_trunc(%s, {sql}, %s, %s)", ( lookup_type.lower(), - field_name, + *params, *self._convert_tznames_to_sql(tzname), ) - def time_extract_sql(self, lookup_type, field_name): - return "django_time_extract('%s', %s)" % (lookup_type.lower(), field_name) + def time_extract_sql(self, lookup_type, sql, params): + return f"django_time_extract(%s, {sql})", (lookup_type.lower(), *params) def pk_default_value(self): return "NULL" diff --git a/django/db/backends/sqlite3/schema.py b/django/db/backends/sqlite3/schema.py index 55fdf5fbfef46..dc4e29e9420b0 100644 --- a/django/db/backends/sqlite3/schema.py +++ b/django/db/backends/sqlite3/schema.py @@ -11,7 +11,6 @@ class DatabaseSchemaEditor(BaseDatabaseSchemaEditor): - sql_delete_table = "DROP TABLE %(table)s" sql_create_fk = None sql_create_inline_fk = ( @@ -191,6 +190,7 @@ def _remake_table( 4. Rename the "new__app_model" table to "app_model" 5. Restore any index of the previous "app_model" table. """ + # Self-referential fields must be recreated rather than copied from # the old model to ensure their remote_field.field_name doesn't refer # to an altered field. @@ -379,7 +379,10 @@ def delete_model(self, model, handle_autom2m=True): def add_field(self, model, field): """Create a field on a model.""" - if ( + # Special-case implicit M2M tables. + if field.many_to_many and field.remote_field.through._meta.auto_created: + self.create_model(field.remote_field.through) + elif ( # Primary keys and unique fields are not supported in ALTER TABLE # ADD COLUMN. field.primary_key @@ -408,10 +411,11 @@ def remove_field(self, model, field): # For explicit "through" M2M fields, do nothing elif ( self.connection.features.can_alter_table_drop_column - # Primary keys, unique fields, and foreign keys are not - # supported in ALTER TABLE DROP COLUMN. + # Primary keys, unique fields, indexed fields, and foreign keys are + # not supported in ALTER TABLE DROP COLUMN. and not field.primary_key and not field.unique + and not field.db_index and not (field.remote_field and field.db_constraint) ): super().remove_field(model, field) diff --git a/django/db/backends/utils.py b/django/db/backends/utils.py index d505cd79047f6..b572c830e7c6b 100644 --- a/django/db/backends/utils.py +++ b/django/db/backends/utils.py @@ -95,7 +95,6 @@ def _executemany(self, sql, param_list, *ignored_wrapper_args): class CursorDebugWrapper(CursorWrapper): - # XXX callproc isn't instrumented at this time. def execute(self, sql, params=None): diff --git a/django/db/migrations/autodetector.py b/django/db/migrations/autodetector.py index 5f41053283dc4..a904ce0986f50 100644 --- a/django/db/migrations/autodetector.py +++ b/django/db/migrations/autodetector.py @@ -1022,8 +1022,9 @@ def generate_added_fields(self): def _generate_added_field(self, app_label, model_name, field_name): field = self.to_state.models[app_label, model_name].get_field(field_name) - # Fields that are foreignkeys/m2ms depend on stuff - dependencies = [] + # Adding a field always depends at least on its removal. + dependencies = [(app_label, model_name, field_name, False)] + # Fields that are foreignkeys/m2ms depend on stuff. if field.remote_field and field.remote_field.model: dependencies.extend( self._get_dependencies_for_foreign_key( @@ -1417,7 +1418,7 @@ def _get_dependencies_for_foreign_key(app_label, model_name, field, project_stat dependencies = [(dep_app_label, dep_object_name, None, True)] if getattr(field.remote_field, "through", None): through_app_label, through_object_name = resolve_relation( - remote_field_model, + field.remote_field.through, app_label, model_name, ) diff --git a/django/db/migrations/operations/models.py b/django/db/migrations/operations/models.py index 75a3b8b0304b9..537d2c9682e8c 100644 --- a/django/db/migrations/operations/models.py +++ b/django/db/migrations/operations/models.py @@ -371,13 +371,12 @@ def database_forwards(self, app_label, schema_editor, from_state, to_state): new_model = to_state.apps.get_model(app_label, self.new_name) if self.allow_migrate_model(schema_editor.connection.alias, new_model): old_model = from_state.apps.get_model(app_label, self.old_name) - old_db_table = old_model._meta.db_table - new_db_table = new_model._meta.db_table - # Don't alter when a table name is not changed. - if old_db_table == new_db_table: - return # Move the main table - schema_editor.alter_db_table(new_model, old_db_table, new_db_table) + schema_editor.alter_db_table( + new_model, + old_model._meta.db_table, + new_model._meta.db_table, + ) # Alter the fields pointing to us for related_object in old_model._meta.related_objects: if related_object.related_model == old_model: @@ -401,7 +400,7 @@ def database_forwards(self, app_label, schema_editor, from_state, to_state): fields = zip( old_model._meta.local_many_to_many, new_model._meta.local_many_to_many ) - for (old_field, new_field) in fields: + for old_field, new_field in fields: # Skip self-referential fields as these are renamed above. if ( new_field.model == new_field.related_model @@ -506,7 +505,7 @@ def database_forwards(self, app_label, schema_editor, from_state, to_state): new_model._meta.db_table, ) # Rename M2M fields whose name is based on this model's db_table - for (old_field, new_field) in zip( + for old_field, new_field in zip( old_model._meta.local_many_to_many, new_model._meta.local_many_to_many ): if new_field.remote_field.through._meta.auto_created: diff --git a/django/db/models/base.py b/django/db/models/base.py index a2f594041ec37..5ecb326af9062 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -434,18 +434,11 @@ def _default_manager(cls): return cls._meta.default_manager -class ModelStateCacheDescriptor: - """ - Upon first access, replace itself with an empty dictionary on the instance. - """ - - def __set_name__(self, owner, name): - self.attribute_name = name - +class ModelStateFieldsCacheDescriptor: def __get__(self, instance, cls=None): if instance is None: return self - res = instance.__dict__[self.attribute_name] = {} + res = instance.fields_cache = {} return res @@ -458,20 +451,7 @@ class ModelState: # explicit (non-auto) PKs. This impacts validation only; it has no effect # on the actual save. adding = True - fields_cache = ModelStateCacheDescriptor() - related_managers_cache = ModelStateCacheDescriptor() - - def __getstate__(self): - state = self.__dict__.copy() - if "fields_cache" in state: - state["fields_cache"] = self.fields_cache.copy() - # Manager instances stored in related_managers_cache won't necessarily - # be deserializable if they were dynamically created via an inner - # scope, e.g. create_forward_many_to_many_manager() and - # create_generic_related_manager(). - if "related_managers_cache" in state: - state["related_managers_cache"] = {} - return state + fields_cache = ModelStateFieldsCacheDescriptor() class Model(metaclass=ModelBase): @@ -633,6 +613,7 @@ def __getstate__(self): """Hook to allow choosing the attributes to pickle.""" state = self.__dict__.copy() state["_state"] = copy.copy(state["_state"]) + state["_state"].fields_cache = state["_state"].fields_cache.copy() # memoryview cannot be pickled, so cast it to bytes and store # separately. _memoryview_attrs = [] @@ -1441,7 +1422,10 @@ def validate_constraints(self, exclude=None): try: constraint.validate(model_class, self, exclude=exclude, using=using) except ValidationError as e: - if e.code == "unique" and len(constraint.fields) == 1: + if ( + getattr(e, "code", None) == "unique" + and len(constraint.fields) == 1 + ): errors.setdefault(constraint.fields[0], []).append(e) else: errors = e.update_error_dict(errors) diff --git a/django/db/models/constraints.py b/django/db/models/constraints.py index 9949b50b1e4e6..d810c04c62348 100644 --- a/django/db/models/constraints.py +++ b/django/db/models/constraints.py @@ -2,7 +2,7 @@ from django.core.exceptions import FieldError, ValidationError from django.db import connections -from django.db.models.expressions import Exists, ExpressionList, F +from django.db.models.expressions import Exists, ExpressionList, F, OrderBy from django.db.models.indexes import IndexExpression from django.db.models.lookups import Exact from django.db.models.query_utils import Q @@ -14,12 +14,15 @@ class BaseConstraint: - violation_error_message = _("Constraint “%(name)s” is violated.") + default_violation_error_message = _("Constraint “%(name)s” is violated.") + violation_error_message = None def __init__(self, name, violation_error_message=None): self.name = name if violation_error_message is not None: self.violation_error_message = violation_error_message + else: + self.violation_error_message = self.default_violation_error_message @property def contains_expressions(self): @@ -43,7 +46,13 @@ def get_violation_error_message(self): def deconstruct(self): path = "%s.%s" % (self.__class__.__module__, self.__class__.__name__) path = path.replace("django.db.models.constraints", "django.db.models") - return (path, (), {"name": self.name}) + kwargs = {"name": self.name} + if ( + self.violation_error_message is not None + and self.violation_error_message != self.default_violation_error_message + ): + kwargs["violation_error_message"] = self.violation_error_message + return (path, (), kwargs) def clone(self): _, args, kwargs = self.deconstruct() @@ -94,7 +103,11 @@ def __repr__(self): def __eq__(self, other): if isinstance(other, CheckConstraint): - return self.name == other.name and self.check == other.check + return ( + self.name == other.name + and self.check == other.check + and self.violation_error_message == other.violation_error_message + ) return super().__eq__(other) def deconstruct(self): @@ -273,6 +286,7 @@ def __eq__(self, other): and self.include == other.include and self.opclasses == other.opclasses and self.expressions == other.expressions + and self.violation_error_message == other.violation_error_message ) return super().__eq__(other) @@ -312,16 +326,23 @@ def validate(self, model, instance, exclude=None, using=DEFAULT_DB_ALIAS): # Ignore constraints with excluded fields. if exclude: for expression in self.expressions: - for expr in expression.flatten(): - if isinstance(expr, F) and expr.name in exclude: - return + if hasattr(expression, "flatten"): + for expr in expression.flatten(): + if isinstance(expr, F) and expr.name in exclude: + return + elif isinstance(expression, F) and expression.name in exclude: + return replacement_map = instance._get_field_value_map( meta=model._meta, exclude=exclude ) - expressions = [ - Exact(expr, expr.replace_references(replacement_map)) - for expr in self.expressions - ] + expressions = [] + for expr in self.expressions: + # Ignore ordering. + if isinstance(expr, OrderBy): + expr = expr.expression + expressions.append( + Exact(expr, expr.replace_references(replacement_map)) + ) queryset = queryset.filter(*expressions) model_class_pk = instance._get_pk_val(model._meta) if not instance._state.adding and model_class_pk is not None: diff --git a/django/db/models/expressions.py b/django/db/models/expressions.py index 0eb70b057df21..1869d86931ca2 100644 --- a/django/db/models/expressions.py +++ b/django/db/models/expressions.py @@ -393,9 +393,7 @@ def replace_references(self, references_map): clone = self.copy() clone.set_source_expressions( [ - references_map.get(expr.name, expr) - if isinstance(expr, F) - else expr.replace_references(references_map) + expr.replace_references(references_map) for expr in self.get_source_expressions() ] ) @@ -810,6 +808,9 @@ def resolve_expression( ): return query.resolve_ref(self.name, allow_joins, reuse, summarize) + def replace_references(self, references_map): + return references_map.get(self.name, self) + def asc(self, **kwargs): return OrderBy(self, **kwargs) @@ -1088,7 +1089,6 @@ def as_sql(self, compiler, connection): class Col(Expression): - contains_column_references = True possibly_multivalued = False @@ -1480,6 +1480,14 @@ def __invert__(self): clone.negated = not self.negated return clone + def get_group_by_cols(self, alias=None): + # self.query only gets limited to a single row in the .exists() call + # from self.as_sql() so deferring to Query.get_group_by_cols() is + # inappropriate. + if alias is None: + return [self] + return super().get_group_by_cols(alias) + def as_sql(self, compiler, connection, template=None, **extra_context): query = self.query.exists(using=connection.alias) try: @@ -1669,7 +1677,7 @@ def as_sql(self, compiler, connection, template=None): if not connection.features.supports_over_clause: raise NotSupportedError("This backend does not support window expressions.") expr_sql, params = compiler.compile(self.source_expression) - window_sql, window_params = [], [] + window_sql, window_params = [], () if self.partition_by is not None: sql_expr, sql_params = self.partition_by.as_sql( @@ -1678,24 +1686,23 @@ def as_sql(self, compiler, connection, template=None): template="PARTITION BY %(expressions)s", ) window_sql.append(sql_expr) - window_params.extend(sql_params) + window_params += tuple(sql_params) if self.order_by is not None: order_sql, order_params = compiler.compile(self.order_by) window_sql.append(order_sql) - window_params.extend(order_params) + window_params += tuple(order_params) if self.frame: frame_sql, frame_params = compiler.compile(self.frame) window_sql.append(frame_sql) - window_params.extend(frame_params) + window_params += tuple(frame_params) - params.extend(window_params) template = template or self.template return ( template % {"expression": expr_sql, "window": " ".join(window_sql).strip()}, - params, + (*params, *window_params), ) def as_sqlite(self, compiler, connection): diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index a073fce165f14..5381a3b17fd98 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." ), diff --git a/django/db/models/fields/files.py b/django/db/models/fields/files.py index 1a3a0ce5fc4c1..91248cd1a5a16 100644 --- a/django/db/models/fields/files.py +++ b/django/db/models/fields/files.py @@ -221,7 +221,6 @@ def __set__(self, instance, value): class FileField(Field): - # The class to wrap instance attributes in. Accessing the file object off # the instance will always return an instance of attr_class. attr_class = FieldFile diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index bb4e065e37a81..4f15f9813f2e5 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -344,7 +344,6 @@ def db_type(self, connection): return None def contribute_to_class(self, cls, name, private_only=False, **kwargs): - super().contribute_to_class(cls, name, private_only=private_only, **kwargs) self.opts = cls._meta @@ -540,7 +539,6 @@ def __init__( swappable=True, **kwargs, ): - if rel is None: rel = self.rel_class( self, @@ -1623,7 +1621,6 @@ def _check_relationship_model(self, from_model=None, **kwargs): (source_field_name, source), (target_field_name, target), ): - possible_field_names = [] for f in through._meta.fields: if ( diff --git a/django/db/models/fields/related_descriptors.py b/django/db/models/fields/related_descriptors.py index f62a9170c0a33..3baa9313fb3a7 100644 --- a/django/db/models/fields/related_descriptors.py +++ b/django/db/models/fields/related_descriptors.py @@ -63,6 +63,8 @@ class Child(Model): ``ReverseManyToManyDescriptor``, use ``ManyToManyDescriptor`` instead. """ +from asgiref.sync import sync_to_async + from django.core.exceptions import FieldError from django.db import connections, router, transaction from django.db.models import Q, signals @@ -561,14 +563,6 @@ def __init__(self, rel): self.rel = rel self.field = rel.field - @cached_property - def related_manager_cache_key(self): - # Being able to access the manager instance precludes it from being - # hidden. The rel's accessor name is used to allow multiple managers - # to the same model to coexist. e.g. post.attached_comment_set and - # post.attached_link_set are separately cached. - return self.rel.get_cache_name() - @cached_property def related_manager_cls(self): related_model = self.rel.related_model @@ -590,11 +584,8 @@ def __get__(self, instance, cls=None): """ if instance is None: return self - key = self.related_manager_cache_key - instance_cache = instance._state.related_managers_cache - if key not in instance_cache: - instance_cache[key] = self.related_manager_cls(instance) - return instance_cache[key] + + return self.related_manager_cls(instance) def _get_set_deprecation_msg_params(self): return ( @@ -627,15 +618,6 @@ def __init__(self, instance): self.core_filters = {self.field.name: instance} - # Even if this relation is not to pk, we require still pk value. - # The wish is that the instance has been already saved to DB, - # although having a pk value isn't a guarantee of that. - if self.instance.pk is None: - raise ValueError( - f"{instance.__class__.__name__!r} instance needs to have a primary " - f"key value before this relationship can be used." - ) - def __call__(self, *, manager): manager = getattr(self.model, manager) manager_class = create_reverse_many_to_one_manager(manager.__class__, rel) @@ -700,6 +682,14 @@ def _remove_prefetched_objects(self): pass # nothing to clear from cache def get_queryset(self): + # Even if this relation is not to pk, we require still pk value. + # The wish is that the instance has been already saved to DB, + # although having a pk value isn't a guarantee of that. + if self.instance.pk is None: + raise ValueError( + f"{self.instance.__class__.__name__!r} instance needs to have a " + f"primary key value before this relationship can be used." + ) try: return self.instance._prefetched_objects_cache[ self.field.remote_field.get_cache_name() @@ -777,6 +767,11 @@ def create(self, **kwargs): create.alters_data = True + async def acreate(self, **kwargs): + return await sync_to_async(self.create)(**kwargs) + + acreate.alters_data = True + def get_or_create(self, **kwargs): self._check_fk_val() kwargs[self.field.name] = self.instance @@ -785,6 +780,11 @@ def get_or_create(self, **kwargs): get_or_create.alters_data = True + async def aget_or_create(self, **kwargs): + return await sync_to_async(self.get_or_create)(**kwargs) + + aget_or_create.alters_data = True + def update_or_create(self, **kwargs): self._check_fk_val() kwargs[self.field.name] = self.instance @@ -793,6 +793,11 @@ def update_or_create(self, **kwargs): update_or_create.alters_data = True + async def aupdate_or_create(self, **kwargs): + return await sync_to_async(self.update_or_create)(**kwargs) + + aupdate_or_create.alters_data = True + # remove() and clear() are only provided if the ForeignKey can have a # value of null. if rel.field.null: @@ -914,17 +919,6 @@ def related_manager_cls(self): reverse=self.reverse, ) - @cached_property - def related_manager_cache_key(self): - if self.reverse: - # Symmetrical M2Ms won't have an accessor name, but should never - # end up in the reverse branch anyway, as the related_name ends up - # being hidden, and no public manager is created. - return self.rel.get_cache_name() - else: - # For forward managers, defer to the field name. - return self.field.get_cache_name() - def _get_set_deprecation_msg_params(self): return ( "%s side of a many-to-many set" @@ -1184,6 +1178,13 @@ def create(self, *, through_defaults=None, **kwargs): create.alters_data = True + async def acreate(self, *, through_defaults=None, **kwargs): + return await sync_to_async(self.create)( + through_defaults=through_defaults, **kwargs + ) + + acreate.alters_data = True + def get_or_create(self, *, through_defaults=None, **kwargs): db = router.db_for_write(self.instance.__class__, instance=self.instance) obj, created = super(ManyRelatedManager, self.db_manager(db)).get_or_create( @@ -1197,6 +1198,13 @@ def get_or_create(self, *, through_defaults=None, **kwargs): get_or_create.alters_data = True + async def aget_or_create(self, *, through_defaults=None, **kwargs): + return await sync_to_async(self.get_or_create)( + through_defaults=through_defaults, **kwargs + ) + + aget_or_create.alters_data = True + def update_or_create(self, *, through_defaults=None, **kwargs): db = router.db_for_write(self.instance.__class__, instance=self.instance) obj, created = super( @@ -1210,6 +1218,13 @@ def update_or_create(self, *, through_defaults=None, **kwargs): update_or_create.alters_data = True + async def aupdate_or_create(self, *, through_defaults=None, **kwargs): + return await sync_to_async(self.update_or_create)( + through_defaults=through_defaults, **kwargs + ) + + aupdate_or_create.alters_data = True + def _get_target_ids(self, target_field_name, objs): """ Return the set of ids of `objs` that the target field references. diff --git a/django/db/models/functions/datetime.py b/django/db/models/functions/datetime.py index 2d6ec7089ee97..8b0bd70dbf4e1 100644 --- a/django/db/models/functions/datetime.py +++ b/django/db/models/functions/datetime.py @@ -55,19 +55,27 @@ def as_sql(self, compiler, connection): lhs_output_field = self.lhs.output_field if isinstance(lhs_output_field, DateTimeField): tzname = self.get_tzname() - sql = connection.ops.datetime_extract_sql(self.lookup_name, sql, tzname) + sql, params = connection.ops.datetime_extract_sql( + self.lookup_name, sql, tuple(params), tzname + ) elif self.tzinfo is not None: raise ValueError("tzinfo can only be used with DateTimeField.") elif isinstance(lhs_output_field, DateField): - sql = connection.ops.date_extract_sql(self.lookup_name, sql) + sql, params = connection.ops.date_extract_sql( + self.lookup_name, sql, tuple(params) + ) elif isinstance(lhs_output_field, TimeField): - sql = connection.ops.time_extract_sql(self.lookup_name, sql) + sql, params = connection.ops.time_extract_sql( + self.lookup_name, sql, tuple(params) + ) elif isinstance(lhs_output_field, DurationField): if not connection.features.has_native_duration_field: raise ValueError( "Extract requires native DurationField database support." ) - sql = connection.ops.time_extract_sql(self.lookup_name, sql) + sql, params = connection.ops.time_extract_sql( + self.lookup_name, sql, tuple(params) + ) else: # resolve_expression has already validated the output_field so this # assert should never be hit. @@ -235,23 +243,29 @@ def __init__( super().__init__(expression, output_field=output_field, **extra) def as_sql(self, compiler, connection): - inner_sql, inner_params = compiler.compile(self.lhs) + sql, params = compiler.compile(self.lhs) tzname = None if isinstance(self.lhs.output_field, DateTimeField): tzname = self.get_tzname() elif self.tzinfo is not None: raise ValueError("tzinfo can only be used with DateTimeField.") if isinstance(self.output_field, DateTimeField): - sql = connection.ops.datetime_trunc_sql(self.kind, inner_sql, tzname) + sql, params = connection.ops.datetime_trunc_sql( + self.kind, sql, tuple(params), tzname + ) elif isinstance(self.output_field, DateField): - sql = connection.ops.date_trunc_sql(self.kind, inner_sql, tzname) + sql, params = connection.ops.date_trunc_sql( + self.kind, sql, tuple(params), tzname + ) elif isinstance(self.output_field, TimeField): - sql = connection.ops.time_trunc_sql(self.kind, inner_sql, tzname) + sql, params = connection.ops.time_trunc_sql( + self.kind, sql, tuple(params), tzname + ) else: raise ValueError( "Trunc only valid on DateField, TimeField, or DateTimeField." ) - return sql, inner_params + return sql, params def resolve_expression( self, query=None, allow_joins=True, reuse=None, summarize=False, for_save=False @@ -333,7 +347,6 @@ def convert_value(self, value, expression, connection): class Trunc(TruncBase): - # RemovedInDjango50Warning: when the deprecation ends, remove is_dst # argument. def __init__( @@ -380,10 +393,9 @@ class TruncDate(TruncBase): def as_sql(self, compiler, connection): # Cast to date rather than truncate to date. - lhs, lhs_params = compiler.compile(self.lhs) + sql, params = compiler.compile(self.lhs) tzname = self.get_tzname() - sql = connection.ops.datetime_cast_date_sql(lhs, tzname) - return sql, lhs_params + return connection.ops.datetime_cast_date_sql(sql, tuple(params), tzname) class TruncTime(TruncBase): @@ -393,10 +405,9 @@ class TruncTime(TruncBase): def as_sql(self, compiler, connection): # Cast to time rather than truncate to time. - lhs, lhs_params = compiler.compile(self.lhs) + sql, params = compiler.compile(self.lhs) tzname = self.get_tzname() - sql = connection.ops.datetime_cast_time_sql(lhs, tzname) - return sql, lhs_params + return connection.ops.datetime_cast_time_sql(sql, tuple(params), tzname) class TruncHour(TruncBase): diff --git a/django/db/models/lookups.py b/django/db/models/lookups.py index 5db549e6bf3b3..866e38df83518 100644 --- a/django/db/models/lookups.py +++ b/django/db/models/lookups.py @@ -171,9 +171,10 @@ def resolve_expression( c.lhs = self.lhs.resolve_expression( query, allow_joins, reuse, summarize, for_save ) - c.rhs = self.rhs.resolve_expression( - query, allow_joins, reuse, summarize, for_save - ) + if hasattr(self.rhs, "resolve_expression"): + c.rhs = self.rhs.resolve_expression( + query, allow_joins, reuse, summarize, for_save + ) return c def select_format(self, compiler, sql, params): diff --git a/django/db/models/options.py b/django/db/models/options.py index 3caad38072401..1e0b8d297e0b7 100644 --- a/django/db/models/options.py +++ b/django/db/models/options.py @@ -516,6 +516,7 @@ def fields(self): combined with filtering of field properties is the public API for obtaining this field list. """ + # For legacy reasons, the fields property should only contain forward # fields that are not private or with a m2m cardinality. Therefore we # pass these three filters as filters to the generator. diff --git a/django/db/models/query.py b/django/db/models/query.py index 67fcb411eb5cc..22a04f5cc23e4 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -586,7 +586,7 @@ def aggregate(self, *args, **kwargs): kwargs[arg.default_alias] = arg query = self.query.chain() - for (alias, aggregate_expr) in kwargs.items(): + for alias, aggregate_expr in kwargs.items(): query.add_annotation(aggregate_expr, alias, is_summary=True) annotation = query.annotations[alias] if not annotation.contains_aggregate: @@ -716,7 +716,6 @@ def _check_bulk_create_options( "Unique fields that can trigger the upsert must be provided." ) # Updating primary keys and non-concrete fields is forbidden. - update_fields = [self.model._meta.get_field(name) for name in update_fields] if any(not f.concrete or f.many_to_many for f in update_fields): raise ValueError( "bulk_create() can only be used with concrete fields in " @@ -728,12 +727,6 @@ def _check_bulk_create_options( "update_fields." ) if unique_fields: - # Primary key is allowed in unique_fields. - unique_fields = [ - self.model._meta.get_field(name) - for name in unique_fields - if name != "pk" - ] if any(not f.concrete or f.many_to_many for f in unique_fields): raise ValueError( "bulk_create() can only be used with concrete fields " @@ -781,6 +774,15 @@ def bulk_create( raise ValueError("Can't bulk create a multi-table inherited model") if not objs: return objs + opts = self.model._meta + if unique_fields: + # Primary key is allowed in unique_fields. + unique_fields = [ + self.model._meta.get_field(opts.pk.name if name == "pk" else name) + for name in unique_fields + ] + if update_fields: + update_fields = [self.model._meta.get_field(name) for name in update_fields] on_conflict = self._check_bulk_create_options( ignore_conflicts, update_conflicts, @@ -788,7 +790,6 @@ def bulk_create( unique_fields, ) self._for_write = True - opts = self.model._meta fields = opts.concrete_fields objs = list(objs) self._prepare_for_bulk_create(objs) @@ -834,11 +835,22 @@ def bulk_create( return objs - async def abulk_create(self, objs, batch_size=None, ignore_conflicts=False): + async def abulk_create( + self, + objs, + batch_size=None, + ignore_conflicts=False, + update_conflicts=False, + update_fields=None, + unique_fields=None, + ): return await sync_to_async(self.bulk_create)( objs=objs, batch_size=batch_size, ignore_conflicts=ignore_conflicts, + update_conflicts=update_conflicts, + update_fields=update_fields, + unique_fields=unique_fields, ) def bulk_update(self, objs, fields, batch_size=None): @@ -1159,6 +1171,20 @@ def update(self, **kwargs): self._for_write = True query = self.query.chain(sql.UpdateQuery) query.add_update_values(kwargs) + + # Inline annotations in order_by(), if possible. + new_order_by = [] + for col in query.order_by: + if annotation := query.annotations.get(col): + if getattr(annotation, "contains_aggregate", False): + raise exceptions.FieldError( + f"Cannot update when ordering by an aggregate: {annotation}" + ) + new_order_by.append(annotation) + else: + new_order_by.append(col) + query.order_by = tuple(new_order_by) + # Clear any annotations so that they won't be present in subqueries. query.annotations = {} with transaction.mark_for_rollback_on_error(using=self.db): @@ -2074,7 +2100,7 @@ def columns(self): """ columns = self.query.get_columns() # Adjust any column names which don't match field names - for (query_name, model_name) in self.translations.items(): + for query_name, model_name in self.translations.items(): # Ignore translations for nonexistent column names try: index = columns.index(query_name) diff --git a/django/db/models/query_utils.py b/django/db/models/query_utils.py index 9b5824f89fed5..86781b9405a7c 100644 --- a/django/db/models/query_utils.py +++ b/django/db/models/query_utils.py @@ -12,7 +12,7 @@ from collections import namedtuple from django.core.exceptions import FieldError -from django.db import DEFAULT_DB_ALIAS, DatabaseError +from django.db import DEFAULT_DB_ALIAS, DatabaseError, connections from django.db.models.constants import LOOKUP_SEP from django.utils import tree @@ -120,7 +120,8 @@ def check(self, against, using=DEFAULT_DB_ALIAS): matches against the expressions. """ # Avoid circular imports. - from django.db.models import Value + from django.db.models import BooleanField, Value + from django.db.models.functions import Coalesce from django.db.models.sql import Query from django.db.models.sql.constants import SINGLE @@ -131,7 +132,10 @@ def check(self, against, using=DEFAULT_DB_ALIAS): query.add_annotation(value, name, select=False) query.add_annotation(Value(1), "_check") # This will raise a FieldError if a field is missing in "against". - query.add_q(self) + if connections[using].features.supports_comparing_boolean_expr: + query.add_q(Q(Coalesce(self, True, output_field=BooleanField()))) + else: + query.add_q(self) compiler = query.get_compiler(using=using) try: return compiler.execute_sql(SINGLE) is not None diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py index 9c7bd8ea1a4b5..ed03c7b186f57 100644 --- a/django/db/models/sql/compiler.py +++ b/django/db/models/sql/compiler.py @@ -154,7 +154,10 @@ def get_group_by(self, select, order_by): expressions = self.collapse_group_by(expressions, having_group_by) for expr in expressions: - sql, params = self.compile(expr) + try: + sql, params = self.compile(expr) + except EmptyResultSet: + continue sql, params = expr.select_format(self, sql, params) params_hash = make_hashable(params) if (sql, params_hash) not in seen: @@ -548,6 +551,11 @@ def get_combinator_sql(self, combinator, all): or not features.supports_slicing_ordering_in_compound ): part_sql = "({})".format(part_sql) + elif ( + self.query.subquery + and features.supports_slicing_ordering_in_compound + ): + part_sql = "({})".format(part_sql) parts += ((part_sql, part_args),) except EmptyResultSet: # Omit the empty queryset with UNION and with DIFFERENCE if the @@ -1599,8 +1607,8 @@ def as_sql(self): on_conflict_suffix_sql = self.connection.ops.on_conflict_suffix_sql( fields, self.query.on_conflict, - self.query.update_fields, - self.query.unique_fields, + (f.column for f in self.query.update_fields), + (f.column for f in self.query.unique_fields), ) if ( self.returning_fields diff --git a/django/forms/formsets.py b/django/forms/formsets.py index 3adbc6979a03c..57676428ff362 100644 --- a/django/forms/formsets.py +++ b/django/forms/formsets.py @@ -32,6 +32,8 @@ class ManagementForm(Form): as well. """ + template_name = "django/forms/div.html" # RemovedInDjango50Warning. + TOTAL_FORMS = IntegerField(widget=HiddenInput) INITIAL_FORMS = IntegerField(widget=HiddenInput) # MIN_NUM_FORM_COUNT and MAX_NUM_FORM_COUNT are output with the rest of the diff --git a/django/forms/models.py b/django/forms/models.py index 8a4390fc67271..192d9fad94058 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -657,6 +657,7 @@ class BaseModelFormSet(BaseFormSet): """ model = None + edit_only = False # Set of fields that must be unique among forms of this set. unique_fields = set() diff --git a/django/forms/widgets.py b/django/forms/widgets.py index fffa7430fc769..972267b17498b 100644 --- a/django/forms/widgets.py +++ b/django/forms/widgets.py @@ -301,8 +301,8 @@ def value_omitted_from_data(self, data, files, name): def id_for_label(self, id_): """ - Return the HTML ID attribute of this Widget for use by a