1
0
mirror of https://github.com/django/django.git synced 2024-12-22 17:16:24 +00:00

Merge branch 'main' into ticket_34643

This commit is contained in:
Hrushikesh Vaidya 2024-10-17 02:25:35 +05:30 committed by GitHub
commit 8d0379c84d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
188 changed files with 4363 additions and 1332 deletions

View File

@ -30,7 +30,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
python-version: '3.13'
cache: 'pip'
cache-dependency-path: 'docs/requirements.txt'
- run: python -m pip install -r docs/requirements.txt
@ -48,7 +48,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
python-version: '3.13'
- run: python -m pip install blacken-docs
- name: Build docs
run: |

View File

@ -27,7 +27,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
python-version: '3.13'
- run: python -m pip install flake8
- name: flake8
# Pinned to v3.0.0.
@ -44,7 +44,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
python-version: '3.13'
- run: python -m pip install isort
- name: isort
# Pinned to v3.0.0.

52
.github/workflows/python_matrix.yml vendored Normal file
View File

@ -0,0 +1,52 @@
name: Python Matrix from config file
on:
pull_request:
types: [labeled, synchronize, opened, reopened]
paths-ignore:
- 'docs/**'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
define-matrix:
if: contains(github.event.pull_request.labels.*.name, 'python-matrix')
runs-on: ubuntu-latest
outputs:
python_versions_output: ${{ steps.set-matrix.outputs.python_versions }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- id: set-matrix
run: |
python_versions=$(sed -n "s/^.*Programming Language :: Python :: \([[:digit:]]\+\.[[:digit:]]\+\).*$/'\1', /p" pyproject.toml | tr -d '\n' | sed 's/, $//g')
echo "Supported Python versions: $python_versions"
echo "python_versions=[$python_versions]" >> "$GITHUB_OUTPUT"
python:
runs-on: ubuntu-latest
needs: define-matrix
strategy:
matrix:
python-version: ${{ fromJson(needs.define-matrix.outputs.python_versions_output) }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: 'tests/requirements/py3.txt'
- name: Install libmemcached-dev for pylibmc
run: sudo apt-get install libmemcached-dev
- name: Install and upgrade packaging tools
run: python -m pip install --upgrade pip setuptools wheel
- run: python -m pip install -r tests/requirements/py3.txt -e .
- name: Run tests
run: python tests/runtests.py -v2

View File

@ -19,7 +19,7 @@ jobs:
- '3.10'
- '3.11'
- '3.12'
- '3.13-dev'
- '3.13'
name: Windows, SQLite, Python ${{ matrix.python-version }}
continue-on-error: true
steps:
@ -46,7 +46,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
python-version: '3.13'
cache: 'pip'
- name: Install libmemcached-dev for pylibmc
run: sudo apt-get install libmemcached-dev
@ -145,7 +145,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
python-version: '3.13'
cache: 'pip'
cache-dependency-path: 'tests/requirements/py3.txt'
- name: Install libmemcached-dev for pylibmc
@ -181,7 +181,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
python-version: '3.13'
cache: 'pip'
cache-dependency-path: 'tests/requirements/py3.txt'
- name: Install libmemcached-dev for pylibmc
@ -200,10 +200,10 @@ jobs:
strategy:
fail-fast: false
matrix:
version: [16, 17rc1]
version: [16, 17]
server_side_bindings: [0, 1]
runs-on: ubuntu-latest
name: Newer PostgreSQL Versions
name: PostgreSQL Versions
env:
SERVER_SIDE_BINDING: ${{ matrix.server_side_bindings }}
services:
@ -226,7 +226,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
python-version: '3.13'
cache: 'pip'
cache-dependency-path: 'tests/requirements/py3.txt'
- name: Install libmemcached-dev for pylibmc

View File

@ -24,7 +24,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
python-version: '3.13'
cache: 'pip'
cache-dependency-path: 'tests/requirements/py3.txt'
- name: Install libmemcached-dev for pylibmc
@ -61,7 +61,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
python-version: '3.13'
cache: 'pip'
cache-dependency-path: 'tests/requirements/py3.txt'
- name: Install libmemcached-dev for pylibmc

View File

@ -23,7 +23,7 @@ jobs:
strategy:
matrix:
python-version:
- '3.12'
- '3.13'
name: Windows, SQLite, Python ${{ matrix.python-version }}
steps:
- name: Checkout

View File

@ -1,15 +1,15 @@
repos:
- repo: https://github.com/psf/black-pre-commit-mirror
rev: 24.4.2
rev: 24.10.0
hooks:
- id: black
exclude: \.py-tpl$
- repo: https://github.com/adamchainz/blacken-docs
rev: 1.18.0
rev: 1.19.0
hooks:
- id: blacken-docs
additional_dependencies:
- black==24.4.2
- black==24.10.0
files: 'docs/.*\.txt$'
args: ["--rst-literal-block"]
- repo: https://github.com/PyCQA/isort
@ -17,10 +17,10 @@ repos:
hooks:
- id: isort
- repo: https://github.com/PyCQA/flake8
rev: 7.1.0
rev: 7.1.1
hooks:
- id: flake8
- repo: https://github.com/pre-commit/mirrors-eslint
rev: v9.7.0
rev: v9.12.0
hooks:
- id: eslint

View File

@ -3,10 +3,11 @@
# Translators:
# Claude Paroz <claude@2xlibre.net>, 2020
# Jannis Leidel <jannis@leidel.info>, 2011
# Jan Papež <honyczek@centrum.cz>, 2012
# trendspotter <jirka.p@volny.cz>, 2022
# Jan Papež <honyczek@centrum.cz>, 2012,2024
# Jiří Podhorecký <jirka.p@volny.cz>, 2024
# Jiří Podhorecký <jirka.p@volny.cz>, 2022
# Jirka Vejrazka <Jirka.Vejrazka@gmail.com>, 2011
# trendspotter <jirka.p@volny.cz>, 2020
# Jiří Podhorecký <jirka.p@volny.cz>, 2020
# Tomáš Ehrlich <tomas.ehrlich@gmail.com>, 2015
# Vláďa Macek <macek@sandbox.cz>, 2012-2014
# Vláďa Macek <macek@sandbox.cz>, 2015-2022
@ -14,10 +15,10 @@ msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-17 05:23-0500\n"
"PO-Revision-Date: 2022-07-25 06:49+0000\n"
"Last-Translator: trendspotter <jirka.p@volny.cz>\n"
"Language-Team: Czech (http://www.transifex.com/django/django/language/cs/)\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 06:49+0000\n"
"Last-Translator: Jan Papež <honyczek@centrum.cz>, 2012,2024\n"
"Language-Team: Czech (http://app.transifex.com/django/django/language/cs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -58,6 +59,9 @@ msgstr "bosensky"
msgid "Catalan"
msgstr "katalánsky"
msgid "Central Kurdish (Sorani)"
msgstr "Střední kurdština (soranština)"
msgid "Czech"
msgstr "česky"
@ -298,6 +302,9 @@ msgstr "tatarsky"
msgid "Udmurt"
msgstr "udmurtsky"
msgid "Uyghur"
msgstr "Ujgurština"
msgid "Ukrainian"
msgstr "ukrajinsky"
@ -345,6 +352,9 @@ msgstr "Stránka je bez výsledků"
msgid "Enter a valid value."
msgstr "Zadejte platnou hodnotu."
msgid "Enter a valid domain name."
msgstr "Zadejte platný název domény."
msgid "Enter a valid URL."
msgstr "Zadejte platnou adresu URL."
@ -368,14 +378,18 @@ msgstr ""
"Zadejte platný identifikátor složený pouze z písmen, čísel, podtržítek a "
"pomlček typu Unicode."
msgid "Enter a valid IPv4 address."
msgstr "Zadejte platnou adresu typu IPv4."
#, python-format
msgid "Enter a valid %(protocol)s address."
msgstr "Zadejte platnou %(protocol)s adresu."
msgid "Enter a valid IPv6 address."
msgstr "Zadejte platnou adresu typu IPv6."
msgid "IPv4"
msgstr "IPv4"
msgid "Enter a valid IPv4 or IPv6 address."
msgstr "Zadejte platnou adresu typu IPv4 nebo IPv6."
msgid "IPv6"
msgstr "IPv6"
msgid "IPv4 or IPv6"
msgstr "IPv4 nebo IPv6"
msgid "Enter only digits separated by commas."
msgstr "Zadejte pouze číslice oddělené čárkami."
@ -397,6 +411,15 @@ 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 is a multiple of step size %(limit_value)s, starting from "
"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
msgstr ""
"Zajistěte, aby tato hodnota byla %(limit_value)s násobkem velikosti kroku , "
"počínaje %(offset)s, např. %(offset)s, %(valid_value1)s, %(valid_value2)s, a "
"tak dále."
#, python-format
msgid ""
"Ensure this value has at least %(limit_value)d character (it has "
@ -533,6 +556,9 @@ msgstr "Pravdivost (buď Ano (True), nebo Ne (False))"
msgid "String (up to %(max_length)s)"
msgstr "Řetězec (max. %(max_length)s znaků)"
msgid "String (unlimited)"
msgstr "Řetězec (neomezený)"
msgid "Comma-separated integers"
msgstr "Celá čísla oddělená čárkou"
@ -806,18 +832,18 @@ msgstr ""
#, python-format
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[0] "Odešlete prosím nejvíce %(num)d formulář."
msgstr[1] "Odešlete prosím nejvíce %(num)d formuláře."
msgstr[2] "Odešlete prosím nejvíce %(num)d formulářů."
msgstr[3] "Odešlete prosím nejvíce %(num)d formulářů."
#, python-format
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[0] "Odešlete prosím alespoň %(num)d formulář."
msgstr[1] "Odešlete prosím alespoň %(num)d formuláře."
msgstr[2] "Odešlete prosím alespoň %(num)d formulářů."
msgstr[3] "Odešlete prosím alespoň %(num)d formulářů."
msgid "Order"
msgstr "Pořadí"
@ -1233,8 +1259,8 @@ msgid ""
"If you are using the <meta name=\"referrer\" content=\"no-referrer\"> tag or "
"including the “Referrer-Policy: no-referrer” header, please remove them. The "
"CSRF protection requires the “Referer” header to do strict referer checking. "
"If youre concerned about privacy, use alternatives like <a rel=\"noreferrer"
"\" …> for links to third-party sites."
"If youre concerned about privacy, use alternatives like <a "
"rel=\"noreferrer\" …> for links to third-party sites."
msgstr ""
"Pokud používáte značku <meta name=\"referrer\" content=\"no-referrer\"> nebo "
"záhlaví \"Referrer-Policy: no-referrer\", odeberte je. Ochrana typu CSRF "
@ -1334,13 +1360,13 @@ msgstr ""
#, python-format
msgid ""
"You are seeing this page because <a href=\"https://docs.djangoproject.com/en/"
"%(version)s/ref/settings/#debug\" target=\"_blank\" rel=\"noopener"
"\">DEBUG=True</a> is in your settings file and you have not configured any "
"URLs."
"%(version)s/ref/settings/#debug\" target=\"_blank\" "
"rel=\"noopener\">DEBUG=True</a> is in your settings file and you have not "
"configured any URLs."
msgstr ""
"Tuto zprávu vidíte, protože máte v nastavení Djanga zapnutý vývojový režim "
"<a href=\"https://docs.djangoproject.com/en/%(version)s/ref/settings/#debug"
"\" target=\"_blank\" rel=\"noopener\">DEBUG=True</a> a zatím nemáte "
"<a href=\"https://docs.djangoproject.com/en/%(version)s/ref/settings/"
"#debug\" target=\"_blank\" rel=\"noopener\">DEBUG=True</a> a zatím nemáte "
"nastavena žádná URL."
msgid "Django Documentation"

View File

@ -1,14 +1,14 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Michael Wolf <milupo@sorbzilla.de>, 2016-2023
# Michael Wolf <milupo@sorbzilla.de>, 2016-2024
msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-09-18 11:41-0300\n"
"PO-Revision-Date: 2023-12-04 06:49+0000\n"
"Last-Translator: Michael Wolf <milupo@sorbzilla.de>, 2016-2023\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 06:49+0000\n"
"Last-Translator: Michael Wolf <milupo@sorbzilla.de>, 2016-2024\n"
"Language-Team: Lower Sorbian (http://app.transifex.com/django/django/"
"language/dsb/)\n"
"MIME-Version: 1.0\n"
@ -344,6 +344,9 @@ msgstr "Toś ten bok njewopśimujo wuslědki"
msgid "Enter a valid value."
msgstr "Zapódajśo płaśiwu gódnotu."
msgid "Enter a valid domain name."
msgstr "Zapódajśo płaśiwe domenowe mě."
msgid "Enter a valid URL."
msgstr "Zapódajśo płaśiwy URL."
@ -367,14 +370,18 @@ msgstr ""
"Zapódajśo płaśiwe „adresowe mě“, kótarež jano wopśimujo unicodowe pismiki, "
"licby, pódmužki abo wězawki."
msgid "Enter a valid IPv4 address."
msgstr "Zapódajśo płaśiwu IPv4-adresu."
#, python-format
msgid "Enter a valid %(protocol)s address."
msgstr "Zapódajśo płaśiwu %(protocol)s-adresu."
msgid "Enter a valid IPv6 address."
msgstr "Zapódajśo płaśiwu IPv6-adresu."
msgid "IPv4"
msgstr "IPv4"
msgid "Enter a valid IPv4 or IPv6 address."
msgstr "Zapódajśo płaśiwu IPv4- abo IPv6-adresu."
msgid "IPv6"
msgstr "IPv6"
msgid "IPv4 or IPv6"
msgstr "IPv4 abo IPv6"
msgid "Enter only digits separated by commas."
msgstr "Zapódajśo jano cyfry źělone pśez komy."

View File

@ -3,16 +3,16 @@
# Translators:
# Jannis Leidel <jannis@leidel.info>, 2011
# lardissone <lardissone@gmail.com>, 2014
# Natalia (Django Fellow), 2023
# Natalia, 2023
# poli <poli@devartis.com>, 2014
# Ramiro Morales, 2013-2023
# Ramiro Morales, 2013-2024
msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-09-18 11:41-0300\n"
"PO-Revision-Date: 2023-12-04 06:49+0000\n"
"Last-Translator: Natalia (Django Fellow), 2023\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 06:49+0000\n"
"Last-Translator: Ramiro Morales, 2013-2024\n"
"Language-Team: Spanish (Argentina) (http://app.transifex.com/django/django/"
"language/es_AR/)\n"
"MIME-Version: 1.0\n"
@ -347,6 +347,9 @@ msgstr "Esa página no contiene resultados"
msgid "Enter a valid value."
msgstr "Introduzca un valor válido."
msgid "Enter a valid domain name."
msgstr "Introduzca un nombre de dominio válido."
msgid "Enter a valid URL."
msgstr "Introduzca una URL válida."
@ -368,14 +371,18 @@ msgstr ""
"Introduzca un “slug” compuesto por letras Unicode, números, guiones bajos o "
"guiones."
msgid "Enter a valid IPv4 address."
msgstr "Introduzca una dirección IPv4 válida."
#, python-format
msgid "Enter a valid %(protocol)s address."
msgstr "Introduzca una dirección de %(protocol)s válida."
msgid "Enter a valid IPv6 address."
msgstr "Introduzca una dirección IPv6 válida."
msgid "IPv4"
msgstr "IPv4"
msgid "Enter a valid IPv4 or IPv6 address."
msgstr "Introduzca una dirección IPv4 o IPv6 válida."
msgid "IPv6"
msgstr "IPv6"
msgid "IPv4 or IPv6"
msgstr "IPv4 o IPv6"
msgid "Enter only digits separated by commas."
msgstr "Introduzca sólo dígitos separados por comas."

View File

@ -14,7 +14,7 @@ msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-08-07 06:49+0000\n"
"PO-Revision-Date: 2024-10-07 06:49+0000\n"
"Last-Translator: Claude Paroz <claude@2xlibre.net>, 2013-2024\n"
"Language-Team: French (http://app.transifex.com/django/django/language/fr/)\n"
"MIME-Version: 1.0\n"
@ -228,7 +228,7 @@ msgid "Nepali"
msgstr "Népalais"
msgid "Dutch"
msgstr "Hollandais"
msgstr "Néerlandais"
msgid "Norwegian Nynorsk"
msgstr "Norvégien nynorsk"

View File

@ -1,6 +1,7 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Aindriú Mac Giolla Eoin, 2024
# Claude Paroz <claude@2xlibre.net>, 2020
# Jannis Leidel <jannis@leidel.info>, 2011
# John Moylan <john@8t8.eu>, 2013
@ -13,10 +14,10 @@ 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"
"Language-Team: Irish (http://www.transifex.com/django/django/language/ga/)\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 06:49+0000\n"
"Last-Translator: Aindriú Mac Giolla Eoin, 2024\n"
"Language-Team: Irish (http://app.transifex.com/django/django/language/ga/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -31,7 +32,7 @@ msgid "Arabic"
msgstr "Araibis"
msgid "Algerian Arabic"
msgstr ""
msgstr "Araibis na hAilgéire"
msgid "Asturian"
msgstr "Astúiris"
@ -57,6 +58,9 @@ msgstr "Boisnis"
msgid "Catalan"
msgstr "Catalóinis"
msgid "Central Kurdish (Sorani)"
msgstr "Coirdis Láir (Sorani)"
msgid "Czech"
msgstr "Seicis"
@ -70,7 +74,7 @@ msgid "German"
msgstr "Gearmáinis"
msgid "Lower Sorbian"
msgstr ""
msgstr "Sorbais Íochtarach"
msgid "Greek"
msgstr "Gréigis"
@ -94,7 +98,7 @@ msgid "Argentinian Spanish"
msgstr "Spáinnis na hAirgintíne"
msgid "Colombian Spanish"
msgstr ""
msgstr "Spáinnis na Colóime"
msgid "Mexican Spanish"
msgstr "Spáinnis Mheicsiceo "
@ -142,13 +146,13 @@ msgid "Croatian"
msgstr "Cróitis"
msgid "Upper Sorbian"
msgstr ""
msgstr "Sorbian Uachtarach"
msgid "Hungarian"
msgstr "Ungáiris"
msgid "Armenian"
msgstr ""
msgstr "Airméinis"
msgid "Interlingua"
msgstr "Interlingua"
@ -157,7 +161,7 @@ msgid "Indonesian"
msgstr "Indinéisis"
msgid "Igbo"
msgstr ""
msgstr "Igbo"
msgid "Ido"
msgstr "Ido"
@ -175,7 +179,7 @@ msgid "Georgian"
msgstr "Seoirsis"
msgid "Kabyle"
msgstr ""
msgstr "Cabaill"
msgid "Kazakh"
msgstr "Casaicis"
@ -190,7 +194,7 @@ msgid "Korean"
msgstr "Cóiréis"
msgid "Kyrgyz"
msgstr ""
msgstr "Chirgeastáin"
msgid "Luxembourgish"
msgstr "Lucsamburgach"
@ -213,11 +217,14 @@ msgstr "Mongóilis"
msgid "Marathi"
msgstr "Maraitis"
msgid "Malay"
msgstr "Malaeis"
msgid "Burmese"
msgstr "Burmais"
msgid "Norwegian Bokmål"
msgstr ""
msgstr "Ioruais Bokmål"
msgid "Nepali"
msgstr "Neipeailis"
@ -268,7 +275,7 @@ msgid "Swedish"
msgstr "Sualainnis"
msgid "Swahili"
msgstr ""
msgstr "Svahaílis"
msgid "Tamil"
msgstr "Tamailis"
@ -277,22 +284,25 @@ msgid "Telugu"
msgstr "Teileagúis"
msgid "Tajik"
msgstr ""
msgstr "Táidsíc"
msgid "Thai"
msgstr "Téalainnis"
msgid "Turkmen"
msgstr ""
msgstr "Tuircméinis"
msgid "Turkish"
msgstr "Tuircis"
msgid "Tatar"
msgstr ""
msgstr "Tatairis"
msgid "Udmurt"
msgstr ""
msgstr "Udmurt"
msgid "Uyghur"
msgstr "Uighur"
msgid "Ukrainian"
msgstr "Úcráinis"
@ -301,7 +311,7 @@ msgid "Urdu"
msgstr "Urdais"
msgid "Uzbek"
msgstr ""
msgstr "Úisbéicis"
msgid "Vietnamese"
msgstr "Vítneamais"
@ -316,7 +326,7 @@ msgid "Messages"
msgstr "Teachtaireachtaí"
msgid "Site Maps"
msgstr ""
msgstr "Léarscáileanna Suímh"
msgid "Static Files"
msgstr "Comhaid Statach"
@ -324,45 +334,61 @@ msgstr "Comhaid Statach"
msgid "Syndication"
msgstr "Sindeacáitiú"
#. 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 "Ní slánuimhir í an uimhir leathanaigh sin"
msgid "That page number is less than 1"
msgstr ""
msgstr "Tá uimhir an leathanaigh sin níos lú ná 1"
msgid "That page contains no results"
msgstr ""
msgstr "Níl aon torthaí ar an leathanach sin"
msgid "Enter a valid value."
msgstr "Iontráil luach bailí"
msgid "Enter a valid domain name."
msgstr "Cuir isteach ainm fearainn bailí."
msgid "Enter a valid URL."
msgstr "Iontráil URL bailí."
msgid "Enter a valid integer."
msgstr ""
msgstr "Cuir isteach slánuimhir bhailí."
msgid "Enter a valid email address."
msgstr ""
msgstr "Cuir isteach seoladh ríomhphoist bailí."
#. Translators: "letters" means latin letters: a-z and A-Z.
msgid ""
"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
msgstr ""
"Cuir isteach “sluga” bailí ar a bhfuil litreacha, uimhreacha, foscórthaí nó "
"fleiscíní."
msgid ""
"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
"hyphens."
msgstr ""
"Cuir isteach “sluga” bailí ar a bhfuil litreacha Unicode, uimhreacha, fo-"
"scóranna, nó fleiscíní."
msgid "Enter a valid IPv4 address."
msgstr "Iontráil seoladh IPv4 bailí."
#, python-format
msgid "Enter a valid %(protocol)s address."
msgstr "Cuir isteach seoladh bailí %(protocol)s."
msgid "Enter a valid IPv6 address."
msgstr "Cuir seoladh bailí IPv6 isteach."
msgid "IPv4"
msgstr "IPv4"
msgid "Enter a valid IPv4 or IPv6 address."
msgstr "Cuir seoladh bailí IPv4 nó IPv6 isteach."
msgid "IPv6"
msgstr "IPv6"
msgid "IPv4 or IPv6"
msgstr "IPv4 nó IPv6"
msgid "Enter only digits separated by commas."
msgstr "Ná hiontráil ach digití atá deighilte le camóga."
@ -382,6 +408,19 @@ msgid "Ensure this value is greater than or equal to %(limit_value)s."
msgstr ""
"Cinntigh go bhfuil an luach seo níos mó ná nó cothrom le %(limit_value)s."
#, python-format
msgid "Ensure this value is a multiple of step size %(limit_value)s."
msgstr "Cinntigh gur iolraí de chéimmhéid %(limit_value)s an luach seo."
#, python-format
msgid ""
"Ensure this value is a multiple of step size %(limit_value)s, starting from "
"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
msgstr ""
"Cinntigh gur iolraí de chéimmhéid %(limit_value)s an luach seo, ag tosú ó "
"%(offset)s, m.sh. %(offset)s, %(valid_value1)s, %(valid_value2)s, agus mar "
"sin de."
#, python-format
msgid ""
"Ensure this value has at least %(limit_value)d character (it has "
@ -390,10 +429,20 @@ msgid_plural ""
"Ensure this value has at least %(limit_value)d characters (it has "
"%(show_value)d)."
msgstr[0] ""
"Cinntigh go bhfuil ar a laghad %(limit_value)d carachtar ag an luach seo (tá "
"%(show_value)d aige)."
msgstr[1] ""
"Cinntigh go bhfuil ar a laghad %(limit_value)d carachtar ag an luach seo (tá "
"%(show_value)d aige)."
msgstr[2] ""
"Cinntigh go bhfuil ar a laghad %(limit_value)d carachtar ag an luach seo (tá "
"%(show_value)d aige)."
msgstr[3] ""
"Cinntigh go bhfuil ar a laghad %(limit_value)d carachtar ag an luach seo (tá "
"%(show_value)d aige)."
msgstr[4] ""
"Cinntigh go bhfuil ar a laghad %(limit_value)d carachtar ag an luach seo (tá "
"%(show_value)d aige)."
#, python-format
msgid ""
@ -403,10 +452,20 @@ msgid_plural ""
"Ensure this value has at most %(limit_value)d characters (it has "
"%(show_value)d)."
msgstr[0] ""
"Cinntigh go bhfuil %(limit_value)d carachtar ar a mhéad ag an luach seo (tá "
"%(show_value)d aige)."
msgstr[1] ""
"Cinntigh go bhfuil %(limit_value)d carachtar ar a mhéad ag an luach seo (tá "
"%(show_value)d aige)."
msgstr[2] ""
"Cinntigh go bhfuil %(limit_value)d carachtar ar a mhéad ag an luach seo (tá "
"%(show_value)d aige)."
msgstr[3] ""
"Cinntigh go bhfuil %(limit_value)d carachtar ar a mhéad ag an luach seo (tá "
"%(show_value)d aige)."
msgstr[4] ""
"Cinntigh go bhfuil %(limit_value)d carachtar ar a mhéad ag an luach seo (tá "
"%(show_value)d aige)."
msgid "Enter a number."
msgstr "Iontráil uimhir."
@ -414,20 +473,20 @@ msgstr "Iontráil uimhir."
#, 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] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[0] "Cinntigh nach bhfuil níos mó ná %(max)s digit san iomlán."
msgstr[1] "Cinntigh nach bhfuil níos mó ná %(max)s digit san iomlán."
msgstr[2] "Cinntigh nach bhfuil níos mó ná %(max)s digit san iomlán."
msgstr[3] "Cinntigh nach bhfuil níos mó ná %(max)s digit san iomlán."
msgstr[4] "Cinntigh nach bhfuil níos mó ná %(max)s digit san iomlán."
#, 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] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[0] "Cinntigh nach bhfuil níos mó ná %(max)s ionad deachúlach ann."
msgstr[1] "Cinntigh nach bhfuil níos mó ná %(max)s de dheachúlacha ann."
msgstr[2] "Cinntigh nach bhfuil níos mó ná %(max)s de dheachúlacha ann."
msgstr[3] "Cinntigh nach bhfuil níos mó ná %(max)s de dheachúlacha ann."
msgstr[4] "Cinntigh nach bhfuil níos mó ná %(max)s de dheachúlacha ann."
#, python-format
msgid ""
@ -435,30 +494,41 @@ msgid ""
msgid_plural ""
"Ensure that there are no more than %(max)s digits before the decimal point."
msgstr[0] ""
"Cinntigh nach bhfuil níos mó ná %(max)s digit ann roimh an bpointe deachúil."
msgstr[1] ""
"Cinntigh nach bhfuil níos mó ná %(max)s dhigit roimh an bpointe deachúil."
msgstr[2] ""
"Cinntigh nach bhfuil níos mó ná %(max)s dhigit roimh an bpointe deachúil."
msgstr[3] ""
"Cinntigh nach bhfuil níos mó ná %(max)s dhigit roimh an bpointe deachúil."
msgstr[4] ""
"Cinntigh nach bhfuil níos mó ná %(max)s dhigit roimh an bpointe deachúil."
#, python-format
msgid ""
"File extension “%(extension)s” is not allowed. Allowed extensions are: "
"%(allowed_extensions)s."
msgstr ""
"Ní cheadaítear iarmhír chomhaid “%(extension)s”. Is iad seo a leanas "
"eisínteachtaí ceadaithe: %(allowed_extensions)s."
msgid "Null characters are not allowed."
msgstr ""
msgstr "Ní cheadaítear carachtair null."
msgid "and"
msgstr "agus"
#, python-format
msgid "%(model_name)s with this %(field_labels)s already exists."
msgstr ""
msgstr "Tá %(model_name)s leis an %(field_labels)s seo ann cheana."
#, python-format
msgid "Constraint “%(name)s” is violated."
msgstr "Tá srian “%(name)s” sáraithe."
#, python-format
msgid "Value %(value)r is not a valid choice."
msgstr ""
msgstr "Ní rogha bhailí é luach %(value)r."
msgid "This field cannot be null."
msgstr "Ní cheadaítear luach nialasach sa réimse seo."
@ -470,12 +540,14 @@ msgstr "Ní cheadaítear luach nialasach sa réimse seo."
msgid "%(model_name)s with this %(field_label)s already exists."
msgstr "Tá %(model_name)s leis an %(field_label)s seo ann cheana."
#. 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."
msgstr ""
"Caithfidh %(field_label)s a bheith uathúil le haghaidh %(date_field_label)s "
"%(lookup_type)s."
#, python-format
msgid "Field of type: %(field_type)s"
@ -483,11 +555,11 @@ msgstr "Réimse de Cineál: %(field_type)s"
#, python-format
msgid "“%(value)s” value must be either True or False."
msgstr ""
msgstr "Caithfidh luach “%(value)s” a bheith Fíor nó Bréagach."
#, python-format
msgid "“%(value)s” value must be either True, False, or None."
msgstr ""
msgstr "Caithfidh luach “%(value)s” a bheith Fíor, Bréagach, nó Neamhní."
msgid "Boolean (Either True or False)"
msgstr "Boole"
@ -496,6 +568,9 @@ msgstr "Boole"
msgid "String (up to %(max_length)s)"
msgstr "Teaghrán (suas go %(max_length)s)"
msgid "String (unlimited)"
msgstr "Teaghrán (gan teorainn)"
msgid "Comma-separated integers"
msgstr "Slánuimhireacha camóg-scartha"
@ -504,12 +579,16 @@ msgid ""
"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
"format."
msgstr ""
"Tá formáid dáta neamhbhailí ag luach “%(value)s”. Caithfidh sé a bheith i "
"bhformáid BBBB-MM-LL."
#, python-format
msgid ""
"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
"date."
msgstr ""
"Tá an fhormáid cheart ag luach “%(value)s” (BBBB-MM-DD) ach is dáta "
"neamhbhailí é."
msgid "Date (without time)"
msgstr "Dáta (gan am)"
@ -519,19 +598,23 @@ msgid ""
"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
"uuuuuu]][TZ] format."
msgstr ""
"Tá formáid neamhbhailí ag luach “%(value)s”. Caithfidh sé a bheith san "
"fhormáid BBBB-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 ""
"Tá an fhormáid cheart ag luach “%(value)s” (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
"[TZ]) ach is dáta/am neamhbhailí é."
msgid "Date (with time)"
msgstr "Dáta (le am)"
#, python-format
msgid "“%(value)s” value must be a decimal number."
msgstr ""
msgstr "Caithfidh luach “%(value)s” a bheith ina uimhir dheachúil."
msgid "Decimal number"
msgstr "Uimhir deachúlach"
@ -541,6 +624,8 @@ msgid ""
"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
"uuuuuu] format."
msgstr ""
"Tá formáid neamhbhailí ag luach “%(value)s”. Caithfidh sé a bheith i "
"bhformáid [DD] [[HH:]MM:]ss[.uuuuuu]."
msgid "Duration"
msgstr "Fad"
@ -553,14 +638,14 @@ msgstr "Conair comhaid"
#, python-format
msgid "“%(value)s” value must be a float."
msgstr ""
msgstr "Caithfidh luach “%(value)s” a bheith ina shnámhán."
msgid "Floating point number"
msgstr "Snámhphointe"
#, python-format
msgid "“%(value)s” value must be an integer."
msgstr ""
msgstr "Caithfidh luach “%(value)s” a bheith ina shlánuimhir."
msgid "Integer"
msgstr "Slánuimhir"
@ -568,6 +653,9 @@ msgstr "Slánuimhir"
msgid "Big (8 byte) integer"
msgstr "Mór (8 byte) slánuimhi"
msgid "Small integer"
msgstr "Slánuimhir beag"
msgid "IPv4 address"
msgstr "Seoladh IPv4"
@ -576,13 +664,13 @@ msgstr "Seoladh IP"
#, python-format
msgid "“%(value)s” value must be either None, True or False."
msgstr ""
msgstr "Ní mór luach “%(value)s” a bheith Easpa, Fíor nó Bréagach."
msgid "Boolean (Either True, False or None)"
msgstr "Boole (Fíor, Bréagach nó Dada)"
msgid "Positive big integer"
msgstr ""
msgstr "Slánuimhir mhór dhearfach"
msgid "Positive integer"
msgstr "Slánuimhir dearfach"
@ -594,9 +682,6 @@ msgstr "Slánuimhir beag dearfach"
msgid "Slug (up to %(max_length)s)"
msgstr "Slug (suas go %(max_length)s)"
msgid "Small integer"
msgstr "Slánuimhir beag"
msgid "Text"
msgstr "Téacs"
@ -605,12 +690,16 @@ msgid ""
"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
"format."
msgstr ""
"Tá formáid neamhbhailí ag luach “%(value)s”. Caithfidh sé a bheith i "
"bhformáid 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 ""
"Tá an fhormáid cheart ag luach “%(value)s” (HH:MM[:ss[.uuuuuu]]) ach is am "
"neamhbhailí é."
msgid "Time"
msgstr "Am"
@ -619,14 +708,14 @@ msgid "URL"
msgstr "URL"
msgid "Raw binary data"
msgstr ""
msgstr "Sonraí dénártha amh"
#, python-format
msgid "“%(value)s” is not a valid UUID."
msgstr ""
msgstr "Ní UUID bailí é “%(value)s”."
msgid "Universally unique identifier"
msgstr ""
msgstr "Aitheantóir uathúil uilíoch"
msgid "File"
msgstr "Comhaid"
@ -635,14 +724,14 @@ msgid "Image"
msgstr "Íomhá"
msgid "A JSON object"
msgstr ""
msgstr "Réad JSON"
msgid "Value must be valid JSON."
msgstr ""
msgstr "Caithfidh an luach a bheith bailí JSON."
#, python-format
msgid "%(model)s instance with %(field)s %(value)r does not exist."
msgstr ""
msgstr "Níl sampla %(model)s le %(field)s %(value)r ann."
msgid "Foreign Key (type determined by related field)"
msgstr "Eochair Eachtracha (cineál a chinnfear de réir réimse a bhaineann)"
@ -652,11 +741,11 @@ msgstr "Duine-le-duine caidreamh"
#, python-format
msgid "%(from)s-%(to)s relationship"
msgstr ""
msgstr "%(from)s-%(to)s caidreamh"
#, python-format
msgid "%(from)s-%(to)s relationships"
msgstr ""
msgstr "%(from)s-%(to)s caidrimh"
msgid "Many-to-many relationship"
msgstr "Go leor le go leor caidreamh"
@ -683,11 +772,11 @@ msgid "Enter a valid date/time."
msgstr "Iontráil dáta/am bailí."
msgid "Enter a valid duration."
msgstr ""
msgstr "Cuir isteach ré bailí."
#, python-brace-format
msgid "The number of days must be between {min_days} and {max_days}."
msgstr ""
msgstr "Caithfidh líon na laethanta a bheith idir {min_days} agus {max_days}."
msgid "No file was submitted. Check the encoding type on the form."
msgstr "Níor seoladh comhad. Deimhnigh cineál an ionchódaithe ar an bhfoirm."
@ -703,10 +792,20 @@ msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
msgid_plural ""
"Ensure this filename has at most %(max)d characters (it has %(length)d)."
msgstr[0] ""
"Cinntigh go bhfuil %(max)d carachtar ar a mhéad ag an gcomhadainm seo (tá "
"%(length)d aige)."
msgstr[1] ""
"Cinntigh go bhfuil %(max)d carachtar ar a mhéad ag an gcomhadainm seo (tá "
"%(length)d aige)."
msgstr[2] ""
"Cinntigh go bhfuil %(max)d carachtar ar a mhéad ag an gcomhadainm seo (tá "
"%(length)d aige)."
msgstr[3] ""
"Cinntigh go bhfuil %(max)d carachtar ar a mhéad ag an gcomhadainm seo (tá "
"%(length)d aige)."
msgstr[4] ""
"Cinntigh go bhfuil %(max)d carachtar ar a mhéad ag an gcomhadainm seo (tá "
"%(length)d aige)."
msgid "Please either submit a file or check the clear checkbox, not both."
msgstr ""
@ -728,13 +827,13 @@ msgid "Enter a list of values."
msgstr "Cuir liosta de luachanna isteach."
msgid "Enter a complete value."
msgstr ""
msgstr "Cuir isteach luach iomlán."
msgid "Enter a valid UUID."
msgstr ""
msgstr "Cuir isteach UUID bailí."
msgid "Enter a valid JSON."
msgstr ""
msgstr "Cuir isteach JSON bailí."
#. Translators: This is the default suffix added to form field labels
msgid ":"
@ -742,28 +841,34 @@ msgstr ":"
#, python-format
msgid "(Hidden field %(name)s) %(error)s"
msgstr ""
msgid "ManagementForm data is missing or has been tampered with"
msgstr ""
msgstr "(Réimse folaithe %(name)s) %(error)s"
#, python-format
msgid "Please submit %d or fewer forms."
msgid_plural "Please submit %d or fewer forms."
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
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 ""
"Tá sonraí ManagementForm in easnamh nó ar cuireadh isteach orthu. Réimsí ar "
"iarraidh: %(field_names)s. Seans go mbeidh ort tuairisc fhabht a chomhdú má "
"leanann an cheist."
#, python-format
msgid "Please submit %d or more forms."
msgid_plural "Please submit %d or more forms."
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgid "Please submit at most %(num)d form."
msgid_plural "Please submit at most %(num)d forms."
msgstr[0] "Cuir isteach %(num)d foirm ar a mhéad."
msgstr[1] "Cuir isteach %(num)d foirm ar a mhéad."
msgstr[2] "Cuir isteach %(num)d foirm ar a mhéad."
msgstr[3] "Cuir isteach %(num)d foirm ar a mhéad."
msgstr[4] "Cuir isteach %(num)d foirm ar a mhéad."
#, python-format
msgid "Please submit at least %(num)d form."
msgid_plural "Please submit at least %(num)d forms."
msgstr[0] "Cuir isteach ar a laghad %(num)d foirm."
msgstr[1] "Cuir isteach %(num)d foirm ar a laghad."
msgstr[2] "Cuir isteach %(num)d foirm ar a laghad."
msgstr[3] "Cuir isteach %(num)d foirm ar a laghad."
msgstr[4] "Cuir isteach %(num)d foirm ar a laghad."
msgid "Order"
msgstr "Ord"
@ -793,20 +898,22 @@ msgid "Please correct the duplicate values below."
msgstr "Le do thoil ceartaigh na luachanna dúbail thíos."
msgid "The inline value did not match the parent instance."
msgstr ""
msgstr "Níor mheaitseáil an luach inlíne leis an gcás tuismitheora."
msgid "Select a valid choice. That choice is not one of the available choices."
msgstr "Déan rogha bhailí. Ní ceann de na roghanna é do roghasa."
#, python-format
msgid "“%(pk)s” is not a valid value."
msgstr ""
msgstr "Ní luach bailí é “%(pk)s”."
#, python-format
msgid ""
"%(datetime)s couldnt be interpreted in time zone %(current_timezone)s; it "
"may be ambiguous or it may not exist."
msgstr ""
"Níorbh fhéidir %(datetime)s a léirmhíniú i gcrios ama %(current_timezone)s; "
"d'fhéadfadh sé a bheith débhríoch nó b'fhéidir nach bhfuil sé ann."
msgid "Clear"
msgstr "Glan"
@ -1088,12 +1195,12 @@ msgid "December"
msgstr "Mí na Nollag"
msgid "This is not a valid IPv6 address."
msgstr ""
msgstr "Ní seoladh IPv6 bailí é seo."
#, python-format
msgctxt "String to return when truncating text"
msgid "%(truncated_text)s…"
msgstr ""
msgstr "%(truncated_text)s…"
msgid "or"
msgstr "nó"
@ -1103,96 +1210,117 @@ msgid ", "
msgstr ", "
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgid "%(num)d year"
msgid_plural "%(num)d years"
msgstr[0] "%(num)d bhliain"
msgstr[1] "%(num)d bliain"
msgstr[2] "%(num)d bliain"
msgstr[3] "%(num)d bliain"
msgstr[4] "%(num)d bliain"
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgid "%(num)d month"
msgid_plural "%(num)d months"
msgstr[0] "%(num)d mí"
msgstr[1] "%(num)d míonna"
msgstr[2] "%(num)d míonna"
msgstr[3] "%(num)d míonna"
msgstr[4] "%(num)d míonna"
#, python-format
msgid "%d week"
msgid_plural "%d weeks"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgid "%(num)d week"
msgid_plural "%(num)d weeks"
msgstr[0] "%(num)d seachtain"
msgstr[1] "%(num)d seachtainí"
msgstr[2] "%(num)d seachtainí"
msgstr[3] "%(num)d seachtainí"
msgstr[4] "%(num)d seachtainí"
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgid "%(num)d day"
msgid_plural "%(num)d days"
msgstr[0] "%(num)d lá"
msgstr[1] "%(num)d laethanta"
msgstr[2] "%(num)d laethanta"
msgstr[3] "%(num)d laethanta"
msgstr[4] "%(num)d laethanta"
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgid "%(num)d hour"
msgid_plural "%(num)d hours"
msgstr[0] "%(num)d uair"
msgstr[1] "%(num)d huaireanta"
msgstr[2] "%(num)d huaireanta"
msgstr[3] "%(num)d huaireanta"
msgstr[4] "%(num)d huaireanta"
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d nóiméad"
msgstr[1] "%d nóiméad"
msgstr[2] "%d nóiméad"
msgstr[3] "%d nóiméad"
msgstr[4] "%d nóiméad"
msgid "%(num)d minute"
msgid_plural "%(num)d minutes"
msgstr[0] "%(num)d nóiméad"
msgstr[1] "%(num)d nóiméad"
msgstr[2] "%(num)d nóiméad"
msgstr[3] "%(num)d nóiméad"
msgstr[4] "%(num)d nóiméad"
msgid "Forbidden"
msgstr "Toirmiscthe"
msgid "CSRF verification failed. Request aborted."
msgstr ""
msgstr "Theip ar fhíorú CSRF. Cuireadh deireadh leis an iarratas."
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 ""
"Tá an teachtaireacht seo á fheiceáil agat toisc go bhfuil “ceanntásc "
"tarchuir” ag teastáil ón suíomh HTTPS seo le bheith seolta ag do bhrabhsálaí "
"gréasáin, ach níor seoladh aon cheann. Tá an ceanntásc seo ag teastáil ar "
"chúiseanna slándála, lena chinntiú nach bhfuil do bhrabhsálaí á fuadach ag "
"tríú páirtithe."
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 ""
"Má tá do bhrabhsálaí cumraithe agat chun ceanntásca “Tagairtí” a dhíchumasú, "
"le do thoil déan iad a athchumasú, le do thoil don suíomh seo, nó do naisc "
"HTTPS, nó diarratais “ar an mbunús céanna”."
msgid ""
"If you are using the <meta name=\"referrer\" content=\"no-referrer\"> tag or "
"including the “Referrer-Policy: no-referrer” header, please remove them. The "
"CSRF protection requires the “Referer” header to do strict referer checking. "
"If youre concerned about privacy, use alternatives like <a rel=\"noreferrer"
"\" …> for links to third-party sites."
"If youre concerned about privacy, use alternatives like <a "
"rel=\"noreferrer\" …> for links to third-party sites."
msgstr ""
"Má tá an chlib 1 á úsáid agat nó má tá an ceanntásc “Polasaí Atreoraithe: "
"gan atreorú” san áireamh, bain amach iad le do thoil. Éilíonn an chosaint "
"CSRF go bhfuil an ceanntásc “Tagairtí” chun seiceáil docht atreoraithe a "
"dhéanamh. Má tá imní ort faoi phríobháideachas, bain úsáid as roghanna eile "
"amhail <a rel=\"noreferrer\" ...> le haghaidh naisc chuig láithreáin tríú "
"páirtí."
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 ""
"Tá an teachtaireacht seo á fheiceáil agat toisc go bhfuil fianán CSRF ag "
"teastáil ón suíomh seo agus foirmeacha á gcur isteach agat. Tá an fianán seo "
"ag teastáil ar chúiseanna slándála, lena chinntiú nach bhfuil do bhrabhsálaí "
"á fuadach ag tríú páirtithe."
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 ""
"Má tá do bhrabhsálaí cumraithe agat chun fianáin a dhíchumasú, le do thoil "
"athchumasaigh iad, le do thoil, le haghaidh an tsuímh seo ar a laghad, nó le "
"haghaidh iarratais “ar an mbunús céanna”."
msgid "More information is available with DEBUG=True."
msgstr "Tá tuilleadh eolais ar fáil le DEBUG=True."
@ -1201,7 +1329,7 @@ msgid "No year specified"
msgstr "Bliain gan sonrú"
msgid "Date out of range"
msgstr ""
msgstr "Dáta as raon"
msgid "No month specified"
msgstr "Mí gan sonrú"
@ -1226,7 +1354,7 @@ msgstr ""
#, python-format
msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
msgstr ""
msgstr "Teaghrán dáta neamhbhailí “%(datestr)s” tugtha formáid “%(format)s”"
#, python-format
msgid "No %(verbose_name)s found matching the query"
@ -1234,6 +1362,7 @@ msgstr "Níl bhfuarthas %(verbose_name)s le hadhaigh an iarratas"
msgid "Page is not “last”, nor can it be converted to an int."
msgstr ""
"Níl an leathanach “deireadh”, agus ní féidir é a thiontú go slánuimhir."
#, python-format
msgid "Invalid page (%(page_number)s): %(message)s"
@ -1241,53 +1370,57 @@ msgstr "Leathanach neamhbhailí (%(page_number)s): %(message)s"
#, python-format
msgid "Empty list and “%(class_name)s.allow_empty” is False."
msgstr ""
msgstr "Tá liosta folamh agus “%(class_name)s.allow_empty” bréagach."
msgid "Directory indexes are not allowed here."
msgstr "Níl innéacsanna chomhadlann cheadaítear anseo."
#, python-format
msgid "“%(path)s” does not exist"
msgstr ""
msgstr "Níl “%(path)s” ann"
#, python-format
msgid "Index of %(directory)s"
msgstr "Innéacs de %(directory)s"
msgid "Django: the Web framework for perfectionists with deadlines."
msgstr ""
msgid "The install worked successfully! Congratulations!"
msgstr "D'éirigh leis an suiteáil! Comhghairdeachas!"
#, python-format
msgid ""
"View <a href=\"https://docs.djangoproject.com/en/%(version)s/releases/\" "
"target=\"_blank\" rel=\"noopener\">release notes</a> for Django %(version)s"
msgstr ""
msgid "The install worked successfully! Congratulations!"
msgstr ""
"Féach ar <a href=\"https://docs.djangoproject.com/en/%(version)s/releases/\" "
"target=\"_blank\" rel=\"noopener\">nótaí scaoilte</a> le haghaidh Django "
"%(version)s"
#, python-format
msgid ""
"You are seeing this page because <a href=\"https://docs.djangoproject.com/en/"
"%(version)s/ref/settings/#debug\" target=\"_blank\" rel=\"noopener"
"\">DEBUG=True</a> is in your settings file and you have not configured any "
"URLs."
"%(version)s/ref/settings/#debug\" target=\"_blank\" "
"rel=\"noopener\">DEBUG=True</a> is in your settings file and you have not "
"configured any URLs."
msgstr ""
"Tá an leathanach seo á fheiceáil agat toisc go bhfuil <a href=\"https://docs."
"djangoproject.com/en/%(version)s/ref/settings/#debug\" target=\"_blank\" "
"rel=\"noopener\">DEBUG=True</a> i do chomhad socruithe agus nach bhfuil aon "
"URL cumraithe agat."
msgid "Django Documentation"
msgstr ""
msgstr "Doiciméadú Django"
msgid "Topics, references, &amp; how-tos"
msgstr ""
msgstr "Ábhair, tagairtí, &amp; conas atá"
msgid "Tutorial: A Polling App"
msgstr ""
msgstr "Teagaisc: A Vótaíocht Aip"
msgid "Get started with Django"
msgstr "Tosaigh le Django"
msgid "Django Community"
msgstr ""
msgstr "Pobal Django"
msgid "Connect, get help, or contribute"
msgstr ""
msgstr "Ceangail, faigh cúnamh, nó ranníoc"

View File

@ -1,14 +1,14 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Michael Wolf <milupo@sorbzilla.de>, 2016-2023
# Michael Wolf <milupo@sorbzilla.de>, 2016-2024
msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-09-18 11:41-0300\n"
"PO-Revision-Date: 2023-12-04 06:49+0000\n"
"Last-Translator: Michael Wolf <milupo@sorbzilla.de>, 2016-2023\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 06:49+0000\n"
"Last-Translator: Michael Wolf <milupo@sorbzilla.de>, 2016-2024\n"
"Language-Team: Upper Sorbian (http://app.transifex.com/django/django/"
"language/hsb/)\n"
"MIME-Version: 1.0\n"
@ -344,6 +344,9 @@ msgstr "Tuta strona wuslědki njewobsahuje"
msgid "Enter a valid value."
msgstr "Zapodajće płaćiwu hódnotu."
msgid "Enter a valid domain name."
msgstr "Zapodajće płaćiwe domenowe mjeno."
msgid "Enter a valid URL."
msgstr "Zapodajće płaćiwy URL."
@ -367,14 +370,18 @@ msgstr ""
"Zapodajće płaćiwe „adresowe mjeno“, kotrež jenož pismiki, ličby, podsmužki "
"abo wjazawki wobsahuje."
msgid "Enter a valid IPv4 address."
msgstr "Zapodajće płaćiwu IPv4-adresu."
#, python-format
msgid "Enter a valid %(protocol)s address."
msgstr "Zapodajće płaćiwu %(protocol)s-adresu."
msgid "Enter a valid IPv6 address."
msgstr "Zapodajće płaćiwu IPv6-adresu."
msgid "IPv4"
msgstr "IPv4"
msgid "Enter a valid IPv4 or IPv6 address."
msgstr "Zapodajće płaćiwu IPv4- abo IPv6-adresu."
msgid "IPv6"
msgstr "IPv6"
msgid "IPv4 or IPv6"
msgstr "IPv4 abo IPv6"
msgid "Enter only digits separated by commas."
msgstr "Zapodajće jenož přez komy dźělene cyfry,"

View File

@ -1,7 +1,7 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Adam Zahradník, 2023
# Adam Zahradník, 2023-2024
# Jannis Leidel <jannis@leidel.info>, 2011
# 18f25ad6fa9930fc67cb11aca9d16a27, 2012-2013
# Marian Andre <marian@andre.sk>, 2013,2015,2017-2018
@ -14,9 +14,9 @@ msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-09-18 11:41-0300\n"
"PO-Revision-Date: 2023-12-04 06:49+0000\n"
"Last-Translator: Martin Tóth <ezimir@gmail.com>, 2017,2023\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 06:49+0000\n"
"Last-Translator: Adam Zahradník, 2023-2024\n"
"Language-Team: Slovak (http://app.transifex.com/django/django/language/sk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -351,6 +351,9 @@ msgstr "Stránka neobsahuje žiadne výsledky"
msgid "Enter a valid value."
msgstr "Zadajte platnú hodnotu."
msgid "Enter a valid domain name."
msgstr "Zadajte platný názov domény."
msgid "Enter a valid URL."
msgstr "Zadajte platnú URL adresu."
@ -374,14 +377,18 @@ msgstr ""
"Zadajte platnú skratku pozostávajúcu z písmen Unicode, čísel, "
"podčiarkovníkov alebo pomlčiek."
msgid "Enter a valid IPv4 address."
msgstr "Zadajte platnú IPv4 adresu."
#, python-format
msgid "Enter a valid %(protocol)s address."
msgstr "Zadajte platnú %(protocol)s adresu."
msgid "Enter a valid IPv6 address."
msgstr "Zadajte platnú IPv6 adresu."
msgid "IPv4"
msgstr "IPv4"
msgid "Enter a valid IPv4 or IPv6 address."
msgstr "Zadajte platnú IPv4 alebo IPv6 adresu."
msgid "IPv6"
msgstr "IPv6"
msgid "IPv4 or IPv6"
msgstr "IPv4 alebo IPv6"
msgid "Enter only digits separated by commas."
msgstr "Zadajte len číslice oddelené čiarkami."

View File

@ -2,7 +2,7 @@
#
# Translators:
# abdl erkin <84247764@qq.com>, 2018
# Abduqadir Abliz <sahranbay@gmail.com>, 2023
# Abduqadir Abliz <sahranbay@gmail.com>, 2023-2024
# Abduqadir Abliz <sahranbay@gmail.com>, 2023
# Azat, 2023
# Murat Orhun <oku.orhun@gmail.com>, 2023
@ -10,9 +10,9 @@ msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-09-18 11:41-0300\n"
"PO-Revision-Date: 2023-12-04 06:49+0000\n"
"Last-Translator: Abduqadir Abliz <sahranbay@gmail.com>, 2023\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 06:49+0000\n"
"Last-Translator: Abduqadir Abliz <sahranbay@gmail.com>, 2023-2024\n"
"Language-Team: Uyghur (http://app.transifex.com/django/django/language/ug/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -348,6 +348,9 @@ msgstr "ئۇ بەتتە ھېچقانداق نەتىجە يوق"
msgid "Enter a valid value."
msgstr "بىر ئىناۋەتلىك قىممەتنى تولدۇرۇڭ"
msgid "Enter a valid domain name."
msgstr "ئىناۋەتلىك دائىرە ئىسمى كىرگۈزۈلىدۇ."
msgid "Enter a valid URL."
msgstr "ئىناۋەتلىك URL نى تولدۇرۇڭ"
@ -371,14 +374,18 @@ msgstr ""
"يۇنىكودلۇق ھەرپ، سان، ئاستى سىزىق ياكى سىزىقچىلاردىن تەركىب تاپقان ئۈنۈملۈك "
"«slug» نى كىرگۈزۈڭ."
msgid "Enter a valid IPv4 address."
msgstr "ئىناۋەتلىك IPv4 ئادرېسىنى كىرگۈزۈڭ."
#, python-format
msgid "Enter a valid %(protocol)s address."
msgstr "ئىناۋەتلىك %(protocol)sئادرېسى كىرگۈزۈلىدۇ."
msgid "Enter a valid IPv6 address."
msgstr "ئىناۋەتلىك IPv6 ئادرېسىنى كىرگۈزۈڭ."
msgid "IPv4"
msgstr "IPv4"
msgid "Enter a valid IPv4 or IPv6 address."
msgstr "ئىناۋەتلىك IPv4 ياكى IPv6 ئادرېسىنى كىرگۈزۈڭ."
msgid "IPv6"
msgstr "IPv6"
msgid "IPv4 or IPv6"
msgstr "IPv4 ياكى IPv6"
msgid "Enter only digits separated by commas."
msgstr "پەش ئارقىلىق ئايرىلغان رەقەملەرنىلا كىرگۈزۈڭ."

View File

@ -11,6 +11,7 @@
# Max V. Stotsky <transifex@ms.pereslavl.ru>, 2014
# Mikhail Kolesnik <mike@openbunker.org>, 2015
# Mykola Zamkovoi <nickzam@gmail.com>, 2014
# Natalia, 2024
# Alex Bolotov <oleksandr.bolotov@gmail.com>, 2013-2014
# Roman Kozlovskyi <krzroman@gmail.com>, 2012
# Sergiy Kuzmenko <s.kuzmenko@gmail.com>, 2011
@ -21,10 +22,10 @@ msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-17 02:13-0600\n"
"PO-Revision-Date: 2023-04-25 06:49+0000\n"
"Last-Translator: Illia Volochii <illia.volochii@gmail.com>, 2019,2021-2023\n"
"Language-Team: Ukrainian (http://www.transifex.com/django/django/language/"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 06:49+0000\n"
"Last-Translator: Natalia, 2024\n"
"Language-Team: Ukrainian (http://app.transifex.com/django/django/language/"
"uk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -311,6 +312,9 @@ msgstr "Татарська"
msgid "Udmurt"
msgstr "Удмуртська"
msgid "Uyghur"
msgstr ""
msgid "Ukrainian"
msgstr "Українська"
@ -358,6 +362,9 @@ msgstr "Сторінка не містить результатів"
msgid "Enter a valid value."
msgstr "Введіть коректне значення."
msgid "Enter a valid domain name."
msgstr ""
msgid "Enter a valid URL."
msgstr "Введіть коректний URL."
@ -379,14 +386,18 @@ msgstr ""
"Введіть коректне значення 'slug' (короткого заголовку), що може містити "
"тільки літери, числа, символи підкреслювання або дефіси."
msgid "Enter a valid IPv4 address."
msgstr "Введіть коректну IPv4 адресу."
#, python-format
msgid "Enter a valid %(protocol)s address."
msgstr ""
msgid "Enter a valid IPv6 address."
msgstr "Введіть дійсну IPv6 адресу."
msgid "IPv4"
msgstr ""
msgid "Enter a valid IPv4 or IPv6 address."
msgstr "Введіть дійсну IPv4 чи IPv6 адресу."
msgid "IPv6"
msgstr ""
msgid "IPv4 or IPv6"
msgstr ""
msgid "Enter only digits separated by commas."
msgstr "Введіть тільки цифри, що розділені комами."
@ -409,6 +420,12 @@ msgstr "Переконайтеся, що це значення більше чи
msgid "Ensure this value is a multiple of step size %(limit_value)s."
msgstr ""
#, python-format
msgid ""
"Ensure this value is a multiple of step size %(limit_value)s, starting from "
"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
msgstr ""
#, python-format
msgid ""
"Ensure this value has at least %(limit_value)d character (it has "
@ -799,7 +816,7 @@ msgid "Enter a complete value."
msgstr "Введіть значення повністю."
msgid "Enter a valid UUID."
msgstr "Введіть коректне значення UUID,"
msgstr "Введіть коректне значення UUID."
msgid "Enter a valid JSON."
msgstr "Введіть коректний JSON."

View File

@ -15,6 +15,7 @@
# Le Yang <youngleocn@qq.com>, 2018
# li beite <lbt012345@gmail.com>, 2020
# Liping Wang <lynn.config@gmail.com>, 2016-2017
# L., 2024
# matthew Yip <yymmatthew@gmail.com>, 2020
# mozillazg <opensource.mozillazg@gmail.com>, 2016
# Ronald White <tkliuxing@me.com>, 2014
@ -33,6 +34,7 @@
# ced773123cfad7b4e8b79ca80f736af9, 2011-2012
# Ziya Tang <tcztzy@gmail.com>, 2018
# 付峥 <fuzheng1998@outlook.com>, 2018
# L., 2024
# LatteFang <370358679@qq.com>, 2020
# Kevin Sze <leiarix@gmail.com>, 2012
# 高乐喆 <gaolezhe@outlook.com>, 2023
@ -40,9 +42,9 @@ msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-09-18 11:41-0300\n"
"PO-Revision-Date: 2023-12-25 06:49+0000\n"
"Last-Translator: jack yang, 2023\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 06:49+0000\n"
"Last-Translator: L., 2024\n"
"Language-Team: Chinese (China) (http://app.transifex.com/django/django/"
"language/zh_CN/)\n"
"MIME-Version: 1.0\n"
@ -377,6 +379,9 @@ msgstr "本页结果为空"
msgid "Enter a valid value."
msgstr "输入一个有效的值。"
msgid "Enter a valid domain name."
msgstr "输入一个有效的域名。"
msgid "Enter a valid URL."
msgstr "输入一个有效的 URL。"
@ -396,14 +401,18 @@ msgid ""
"hyphens."
msgstr "输入由Unicode字母数字下划线或连字符号组成的有效“字段”。"
msgid "Enter a valid IPv4 address."
msgstr "输入一个有效的 IPv4 地址。"
#, python-format
msgid "Enter a valid %(protocol)s address."
msgstr "输入一个有效的 %(protocol)s 地址。"
msgid "Enter a valid IPv6 address."
msgstr "输入一个有效的 IPv6 地址。"
msgid "IPv4"
msgstr "IPv4"
msgid "Enter a valid IPv4 or IPv6 address."
msgstr "输入一个有效的 IPv4 或 IPv6 地址."
msgid "IPv6"
msgstr "IPv6"
msgid "IPv4 or IPv6"
msgstr "IPv4 或 IPv6"
msgid "Enter only digits separated by commas."
msgstr "只能输入用逗号分隔的数字。"

View File

@ -58,7 +58,6 @@ TEMPLATES = [
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',

View File

@ -2,7 +2,9 @@
#
# Translators:
# Jannis Leidel <jannis@leidel.info>, 2011
# trendspotter <jirka.p@volny.cz>, 2022
# Jan Papež <honyczek@centrum.cz>, 2024
# Jiří Podhorecký <jirka.p@volny.cz>, 2024
# Jiří Podhorecký <jirka.p@volny.cz>, 2022
# Jirka Vejrazka <Jirka.Vejrazka@gmail.com>, 2011
# Tomáš Ehrlich <tomas.ehrlich@gmail.com>, 2015
# Vláďa Macek <macek@sandbox.cz>, 2013-2014
@ -12,10 +14,10 @@ msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-17 05:10-0500\n"
"PO-Revision-Date: 2022-07-25 07:05+0000\n"
"Last-Translator: trendspotter <jirka.p@volny.cz>\n"
"Language-Team: Czech (http://www.transifex.com/django/django/language/cs/)\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 07:05+0000\n"
"Last-Translator: Jan Papež <honyczek@centrum.cz>, 2024\n"
"Language-Team: Czech (http://app.transifex.com/django/django/language/cs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -184,6 +186,9 @@ msgstr ""
"Výběr více než jedné položky je možný přidržením klávesy \"Control\", na "
"Macu \"Command\"."
msgid "Select this object for an action - {}"
msgstr "Vyberte tento objekt pro akci - {}"
#, python-brace-format
msgid "The {name} “{obj}” was added successfully."
msgstr "Položka typu {name} \"{obj}\" byla úspěšně přidána."
@ -205,12 +210,6 @@ msgstr ""
"Položka typu {name} \"{obj}\" byla úspěšně změněna. Níže ji můžete dále "
"upravovat."
#, python-brace-format
msgid "The {name} “{obj}” was added successfully. You may edit it again below."
msgstr ""
"Položka \"{obj}\" typu {name} byla úspěšně přidána. Níže ji můžete dále "
"upravovat."
#, python-brace-format
msgid ""
"The {name} “{obj}” was changed successfully. You may add another {name} "
@ -352,6 +351,9 @@ msgstr "Vybrat všechny položky typu %(module_name)s, celkem %(total_count)s."
msgid "Clear selection"
msgstr "Zrušit výběr"
msgid "Breadcrumbs"
msgstr "Drobečky"
#, python-format
msgid "Models in the %(name)s application"
msgstr "Modely v aplikaci %(name)s"
@ -378,16 +380,36 @@ msgstr "Zadejte uživatelské jméno a heslo."
msgid "Change password"
msgstr "Změnit heslo"
msgid "Please correct the error below."
msgstr "Opravte níže uvedenou chybu."
msgid "Set password"
msgstr "Nastavit heslo"
msgid "Please correct the errors below."
msgstr "Opravte níže uvedené chyby."
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
msgstr[0] "Opravte prosím níže uvedenou chybu."
msgstr[1] "Opravte prosím níže uvedené chyby."
msgstr[2] "Opravte prosím níže uvedené chyby."
msgstr[3] "Opravte prosím níže uvedené chyby."
#, python-format
msgid "Enter a new password for the user <strong>%(username)s</strong>."
msgstr "Zadejte nové heslo pro uživatele <strong>%(username)s</strong>."
msgid ""
"This action will <strong>enable</strong> password-based authentication for "
"this user."
msgstr ""
"Tato akce <strong>povolí</strong> pro tohoto uživatele ověřování na základě "
"hesla."
msgid "Disable password-based authentication"
msgstr "Zakázat ověřování pomocí hesla"
msgid "Enable password-based authentication"
msgstr "Povolit ověřování pomocí hesla"
msgid "Skip to main content"
msgstr "Přeskočit na hlavní obsah"
msgid "Welcome,"
msgstr "Vítejte, uživateli"
@ -413,6 +435,12 @@ msgstr "Zobrazení na webu"
msgid "Filter"
msgstr "Filtr"
msgid "Hide counts"
msgstr "Skrýt počty"
msgid "Show counts"
msgstr "Zobrazit počty"
msgid "Clear all filters"
msgstr "Zrušit všechny filtry"
@ -426,6 +454,15 @@ msgstr "Priorita řazení: %(priority_number)s"
msgid "Toggle sorting"
msgstr "Přehodit řazení"
msgid "Toggle theme (current theme: auto)"
msgstr "Přepnout motiv (aktuální motiv: auto)"
msgid "Toggle theme (current theme: light)"
msgstr "Přepnout motiv (aktuální motiv: světlý)"
msgid "Toggle theme (current theme: dark)"
msgstr "Přepnout motiv (aktuální motiv: tmavý)"
msgid "Delete"
msgstr "Odstranit"
@ -512,6 +549,15 @@ msgstr "Moje akce"
msgid "None available"
msgstr "Nic"
msgid "Added:"
msgstr "Přidáno:"
msgid "Changed:"
msgstr "Změněno:"
msgid "Deleted:"
msgstr "Smazáno:"
msgid "Unknown content"
msgstr "Neznámý obsah"
@ -538,6 +584,9 @@ msgstr "Zapomněli jste heslo nebo uživatelské jméno?"
msgid "Toggle navigation"
msgstr "Přehodit navigaci"
msgid "Sidebar"
msgstr "Boční panel"
msgid "Start typing to filter…"
msgstr "Filtrovat začnete vepsáním textu..."
@ -554,10 +603,11 @@ msgid "Action"
msgstr "Operace"
msgid "entry"
msgstr ""
msgid "entries"
msgstr ""
msgid_plural "entries"
msgstr[0] "položka"
msgstr[1] "položky"
msgstr[2] "položek"
msgstr[3] "položek"
msgid ""
"This object doesnt have a change history. It probably wasnt added via this "
@ -719,6 +769,9 @@ msgstr "E-mailová adresa:"
msgid "Reset my password"
msgstr "Obnovit heslo"
msgid "Select all objects on this page for an action"
msgstr "Vyberte všechny objekty na této stránce pro akci"
msgid "All dates"
msgstr "Všechna data"

View File

@ -2,7 +2,9 @@
#
# Translators:
# Jannis Leidel <jannis@leidel.info>, 2011
# trendspotter <jirka.p@volny.cz>, 2022
# Jan Papež <honyczek@centrum.cz>, 2024
# Jiří Podhorecký <jirka.p@volny.cz>, 2024
# Jiří Podhorecký <jirka.p@volny.cz>, 2022
# Jirka Vejrazka <Jirka.Vejrazka@gmail.com>, 2011
# Vláďa Macek <macek@sandbox.cz>, 2012,2014
# Vláďa Macek <macek@sandbox.cz>, 2015-2016,2020-2021
@ -10,10 +12,10 @@ msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-17 05:26-0500\n"
"PO-Revision-Date: 2022-07-25 07:59+0000\n"
"Last-Translator: trendspotter <jirka.p@volny.cz>\n"
"Language-Team: Czech (http://www.transifex.com/django/django/language/cs/)\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 07:59+0000\n"
"Last-Translator: Jan Papež <honyczek@centrum.cz>, 2024\n"
"Language-Team: Czech (http://app.transifex.com/django/django/language/cs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -67,6 +69,10 @@ msgstr ""
"Seznam vybraných položek %s. Jednotlivě je lze odebrat tak, že na ně v "
"rámečku klepnete a pak klepnete na šipku \"Odebrat mezi rámečky."
#, javascript-format
msgid "Type into this box to filter down the list of selected %s."
msgstr "Zadáním do tohoto pole vyfiltrujete seznam vybraných %s."
msgid "Remove all"
msgstr "Odebrat vše"
@ -74,6 +80,14 @@ msgstr "Odebrat vše"
msgid "Click to remove all chosen %s at once."
msgstr "Chcete-li najednou odebrat všechny vybrané položky %s, klepněte sem."
#, javascript-format
msgid "%s selected option not visible"
msgid_plural "%s selected options not visible"
msgstr[0] "%s vybraná volba není viditelná"
msgstr[1] "%s vybrané volby nejsou viditelné"
msgstr[2] "%s vybrané volby nejsou viditelné"
msgstr[3] "%s vybrané volby nejsou viditelné"
msgid "%(sel)s of %(cnt)s selected"
msgid_plural "%(sel)s of %(cnt)s selected"
msgstr[0] "Vybrána je %(sel)s položka z celkem %(cnt)s."
@ -240,6 +254,55 @@ msgctxt "abbrev. month December"
msgid "Dec"
msgstr "Pro"
msgid "Sunday"
msgstr "Neděle"
msgid "Monday"
msgstr "Pondělí"
msgid "Tuesday"
msgstr "Úterý"
msgid "Wednesday"
msgstr "Středa"
msgid "Thursday"
msgstr "Čtvrtek"
msgid "Friday"
msgstr "Pátek"
msgid "Saturday"
msgstr "Sobota"
msgctxt "abbrev. day Sunday"
msgid "Sun"
msgstr "Ned"
msgctxt "abbrev. day Monday"
msgid "Mon"
msgstr "Pon"
msgctxt "abbrev. day Tuesday"
msgid "Tue"
msgstr "Úte"
msgctxt "abbrev. day Wednesday"
msgid "Wed"
msgstr "Stř"
msgctxt "abbrev. day Thursday"
msgid "Thur"
msgstr "Čtv"
msgctxt "abbrev. day Friday"
msgid "Fri"
msgstr "Pát"
msgctxt "abbrev. day Saturday"
msgid "Sat"
msgstr "Sob"
msgctxt "one letter Sunday"
msgid "S"
msgstr "N"
@ -267,14 +330,3 @@ msgstr "P"
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"
msgid "Hide"
msgstr "Skrýt"

View File

@ -1,14 +1,14 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Michael Wolf <milupo@sorbzilla.de>, 2016-2023
# Michael Wolf <milupo@sorbzilla.de>, 2016-2024
msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-09-18 11:41-0300\n"
"PO-Revision-Date: 2023-12-04 07:05+0000\n"
"Last-Translator: Michael Wolf <milupo@sorbzilla.de>, 2016-2023\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 07:05+0000\n"
"Last-Translator: Michael Wolf <milupo@sorbzilla.de>, 2016-2024\n"
"Language-Team: Lower Sorbian (http://app.transifex.com/django/django/"
"language/dsb/)\n"
"MIME-Version: 1.0\n"
@ -199,11 +199,6 @@ msgid ""
msgstr ""
"{name} „{obj}“ jo se wuspěšnje změnił. Móžośo jen dołojce znowego wobźěłowaś."
#, python-brace-format
msgid "The {name} “{obj}” was added successfully. You may edit it again below."
msgstr ""
"{name} „{obj}“ jo se wuspěšnje pśidał. Móžośo jen dołojce znowego wobźěłowaś."
#, python-brace-format
msgid ""
"The {name} “{obj}” was changed successfully. You may add another {name} "
@ -373,6 +368,9 @@ msgstr "Zapódajśo wužywarske mě a gronidło."
msgid "Change password"
msgstr "Gronidło změniś"
msgid "Set password"
msgstr "Gronidło póstajiś"
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
msgstr[0] "Pšosym korigěrujśo slědujucu zmólku."
@ -384,6 +382,19 @@ msgstr[3] "Pšosym korigěrujśo slědujuce zmólki."
msgid "Enter a new password for the user <strong>%(username)s</strong>."
msgstr "Zapódajśo nowe gronidło za wužywarja <strong>%(username)s</strong>."
msgid ""
"This action will <strong>enable</strong> password-based authentication for "
"this user."
msgstr ""
"Toś ta akcija awtentifikaciju na zakłaźe gronidła za toś togo wužywarja "
"<strong> zmóžnijo </strong>."
msgid "Disable password-based authentication"
msgstr "Awtentifikaciju na zakłaźe gronidła znjemóžniś"
msgid "Enable password-based authentication"
msgstr "Awtentifikaciju na zakłaźe gronidła zmóžniś"
msgid "Skip to main content"
msgstr "Dalej ku głownemu wopśimjeśeju"

View File

@ -21,15 +21,15 @@
# Natalia, 2024
# Pablo, 2015
# Salomon Herrera, 2023
# Uriel Medina <urimeba511@gmail.com>, 2020-2023
# Uriel Medina <urimeba511@gmail.com>, 2020-2024
# Veronicabh <vero.blazher@gmail.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-08-07 07:05+0000\n"
"Last-Translator: Natalia, 2024\n"
"PO-Revision-Date: 2024-10-07 07:05+0000\n"
"Last-Translator: Uriel Medina <urimeba511@gmail.com>, 2020-2024\n"
"Language-Team: Spanish (http://app.transifex.com/django/django/language/"
"es/)\n"
"MIME-Version: 1.0\n"
@ -411,13 +411,13 @@ msgid ""
"this user."
msgstr ""
"Esta acción <strong>habilitará</strong> la autenticación basada en "
"contraseñas para este usuario."
"contraseña para este usuario."
msgid "Disable password-based authentication"
msgstr "Deshabilitar la autenticación basada en contraseñas"
msgstr "Deshabilitar la autenticación basada en contraseña"
msgid "Enable password-based authentication"
msgstr "Habilitar la autenticación basada en contraseñas"
msgstr "Habilitar la autenticación basada en contraseña"
msgid "Skip to main content"
msgstr "Saltar al contenido principal"

View File

@ -3,16 +3,16 @@
# Translators:
# Jannis Leidel <jannis@leidel.info>, 2011
# Leonardo José Guzmán <ljguzman@gmail.com>, 2013
# Natalia (Django Fellow), 2023
# Natalia (Django Fellow), 2023
# Ramiro Morales, 2013-2023
# Natalia, 2023
# Natalia, 2023
# Ramiro Morales, 2013-2024
msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-09-18 11:41-0300\n"
"PO-Revision-Date: 2023-12-04 07:05+0000\n"
"Last-Translator: Natalia (Django Fellow), 2023\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 07:05+0000\n"
"Last-Translator: Ramiro Morales, 2013-2024\n"
"Language-Team: Spanish (Argentina) (http://app.transifex.com/django/django/"
"language/es_AR/)\n"
"MIME-Version: 1.0\n"
@ -205,10 +205,6 @@ msgid ""
msgstr ""
"Se modificó con éxito {name} \"{obj}”. Puede modificarlo/a nuevamente abajo."
#, python-brace-format
msgid "The {name} “{obj}” was added successfully. You may edit it again below."
msgstr "Se agregó con éxito {name} \"{obj}”. Puede modificarlo/a abajo."
#, python-brace-format
msgid ""
"The {name} “{obj}” was changed successfully. You may add another {name} "
@ -377,6 +373,9 @@ msgstr "Introduzca un nombre de usuario y una contraseña."
msgid "Change password"
msgstr "Cambiar contraseña"
msgid "Set password"
msgstr "Establecer contraseña"
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
msgstr[0] "Por favor, corrija el siguiente error."
@ -389,6 +388,19 @@ msgstr ""
"Introduzca una nueva contraseña para el usuario <strong>%(username)s</"
"strong>."
msgid ""
"This action will <strong>enable</strong> password-based authentication for "
"this user."
msgstr ""
"Esta acción <strong>activará</strong> la autenticación basada en contraseñas "
"para este usuario."
msgid "Disable password-based authentication"
msgstr "Desactivar la autenticación basada en contraseñas"
msgid "Enable password-based authentication"
msgstr "Activar la autenticación basada en contraseñas"
msgid "Skip to main content"
msgstr "Ir al contenido principal"

View File

@ -1,6 +1,7 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Aindriú Mac Giolla Eoin, 2024
# Jannis Leidel <jannis@leidel.info>, 2011
# Luke Blaney <transifex@lukeblaney.co.uk>, 2019
# Michael Thornhill <michael@maithu.com>, 2011-2012,2015
@ -8,10 +9,10 @@ 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-06-22 21:17+0000\n"
"Last-Translator: Luke Blaney <transifex@lukeblaney.co.uk>\n"
"Language-Team: Irish (http://www.transifex.com/django/django/language/ga/)\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 07:05+0000\n"
"Last-Translator: Aindriú Mac Giolla Eoin, 2024\n"
"Language-Team: Irish (http://app.transifex.com/django/django/language/ga/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -19,6 +20,10 @@ msgstr ""
"Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : "
"4);\n"
#, python-format
msgid "Delete selected %(verbose_name_plural)s"
msgstr "Scrios %(verbose_name_plural) roghnaithe"
#, python-format
msgid "Successfully deleted %(count)d %(items)s."
msgstr "D'éirigh le scriosadh %(count)d %(items)s."
@ -30,10 +35,6 @@ msgstr "Ní féidir scriosadh %(name)s "
msgid "Are you sure?"
msgstr "An bhfuil tú cinnte?"
#, python-format
msgid "Delete selected %(verbose_name_plural)s"
msgstr "Scrios %(verbose_name_plural) roghnaithe"
msgid "Administration"
msgstr "Riarachán"
@ -70,6 +71,12 @@ msgstr "Gan dáta"
msgid "Has date"
msgstr "Le dáta"
msgid "Empty"
msgstr "Folamh"
msgid "Not empty"
msgstr "Gan folamh"
#, python-format
msgid ""
"Please enter the correct %(username)s and password for a staff account. Note "
@ -89,7 +96,7 @@ msgid "Remove"
msgstr "Tóg amach"
msgid "Addition"
msgstr ""
msgstr "Suimiú"
msgid "Change"
msgstr "Athraigh"
@ -104,7 +111,7 @@ msgid "user"
msgstr "úsáideoir"
msgid "content type"
msgstr ""
msgstr "cineál ábhair"
msgid "object id"
msgstr "id oibiacht"
@ -127,23 +134,23 @@ msgid "log entries"
msgstr "loga iontrálacha"
#, python-format
msgid "Added \"%(object)s\"."
msgstr "\"%(object)s\" curtha isteach."
msgid "Added “%(object)s”."
msgstr "Curtha leis “%(object)s”."
#, python-format
msgid "Changed \"%(object)s\" - %(changes)s"
msgstr "\"%(object)s\" - %(changes)s aithrithe"
msgid "Changed “%(object)s” — %(changes)s"
msgstr "Athraithe “%(object)s” — %(changes)s"
#, python-format
msgid "Deleted \"%(object)s.\""
msgstr "\"%(object)s.\" scrioste"
msgid "Deleted “%(object)s.”"
msgstr "Scriosta “%(object)s.”"
msgid "LogEntry Object"
msgstr "Oibiacht LogEntry"
#, python-brace-format
msgid "Added {name} \"{object}\"."
msgstr "{name} curtha leis \"{object}\"."
msgid "Added {name} “{object}”."
msgstr "Cuireadh {name} “{object}”."
msgid "Added."
msgstr "Curtha leis."
@ -152,16 +159,16 @@ msgid "and"
msgstr "agus"
#, python-brace-format
msgid "Changed {fields} for {name} \"{object}\"."
msgstr "{fields} athrithe don {name} \"{object}\"."
msgid "Changed {fields} for {name} “{object}”."
msgstr "Athraíodh {fields} le haghaidh {name} “{object}”."
#, python-brace-format
msgid "Changed {fields}."
msgstr "{fields} athrithe."
#, python-brace-format
msgid "Deleted {name} \"{object}\"."
msgstr "{name} scrioste: \"{object}\"."
msgid "Deleted {name} “{object}”."
msgstr "Scriosadh {name} “{object}”."
msgid "No fields changed."
msgstr "Dada réimse aithraithe"
@ -169,48 +176,46 @@ msgstr "Dada réimse aithraithe"
msgid "None"
msgstr "Dada"
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 ""
"Coinnigh síos \"Control\", nó \"Command\" ar Mac chun níos mó ná ceann "
"amháin a roghnú."
"Coinnigh síos “Rialú”, nó “Ordú” ar Mac, chun níos mó ná ceann amháin a "
"roghnú."
msgid "Select this object for an action - {}"
msgstr "Roghnaigh an réad seo le haghaidh gnímh - {}"
#, python-brace-format
msgid "The {name} \"{obj}\" was added successfully."
msgstr "Bhí {name} \"{obj}\" curtha leis go rathúil"
msgid "The {name} “{obj}” was added successfully."
msgstr "Cuireadh an {name} “{obj}” leis go rathúil."
msgid "You may edit it again below."
msgstr "Thig leat é a athrú arís faoi seo."
#, python-brace-format
msgid ""
"The {name} \"{obj}\" was added successfully. You may add another {name} "
"The {name} “{obj}” was added successfully. You may add another {name} below."
msgstr ""
"Cuireadh an {name} “{obj}” leis go rathúil. Is féidir leat {name} eile a "
"chur leis thíos."
#, python-brace-format
msgid ""
"The {name} “{obj}” was changed successfully. You may edit it again below."
msgstr ""
"Athraíodh an {name} “{obj}” go rathúil. Is féidir leat é a chur in eagar "
"arís thíos."
#, python-brace-format
msgid ""
"The {name} “{obj}” was changed successfully. You may add another {name} "
"below."
msgstr ""
"Athraíodh an {name} “{obj}” go rathúil. Is féidir leat {name} eile a chur "
"leis thíos."
#, python-brace-format
msgid ""
"The {name} \"{obj}\" was changed successfully. You may edit it again below."
msgstr ""
"D'athraigh {name} \"{obj}\" go rathúil.\n"
"Thig leat é a athrú arís faoi seo."
#, python-brace-format
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} "
"below."
msgstr ""
"D'athraigh {name} \"{obj}\" go rathúil.\n"
"Thig leat {name} eile a chuir leis."
#, python-brace-format
msgid "The {name} \"{obj}\" was changed successfully."
msgstr "D'athraigh {name} \"{obj}\" go rathúil."
msgid "The {name} “{obj}” was changed successfully."
msgstr "Athraíodh an {name} “{obj}” go rathúil."
msgid ""
"Items must be selected in order to perform actions on them. No items have "
@ -223,12 +228,12 @@ msgid "No action selected."
msgstr "Uimh gníomh roghnaithe."
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr "Bhí %(name)s \"%(obj)s\" scrioste go rathúil."
msgid "The %(name)s “%(obj)s” was deleted successfully."
msgstr "D'éirigh le scriosadh %(name)s \"%(obj)s\"."
#, python-format
msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?"
msgstr "Níl%(name)s ann le aitheantais \"%(key)s\". B'fhéidir gur scriosadh é?"
msgid "%(name)s with ID “%(key)s” doesnt exist. Perhaps it was deleted?"
msgstr "Níl %(name)s le haitheantas “%(key)s” ann. B'fhéidir gur scriosadh é?"
#, python-format
msgid "Add %s"
@ -271,8 +276,9 @@ msgstr "0 as %(cnt)s roghnaithe."
msgid "Change history: %s"
msgstr "Athraigh stáir %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"
@ -304,8 +310,8 @@ msgstr "%(app)s riaracháin"
msgid "Page not found"
msgstr "Ní bhfuarthas an leathanach"
msgid "We're sorry, but the requested page could not be found."
msgstr "Tá brón orainn, ach ní bhfuarthas an leathanach iarraite."
msgid "Were sorry, but the requested page could not be found."
msgstr "Ár leithscéal, ach níorbh fhéidir an leathanach iarrtha a aimsiú."
msgid "Home"
msgstr "Baile"
@ -320,11 +326,11 @@ msgid "Server Error <em>(500)</em>"
msgstr "Botún Freastalaí <em>(500)</em>"
msgid ""
"There's been an error. It's been reported to the site administrators via "
"Theres been an error. Its been reported to the site administrators via "
"email and should be fixed shortly. Thanks for your patience."
msgstr ""
"Tharla earráid. Tuairiscíodh don riarthóirí suíomh tríd an ríomhphost agus "
"ba chóir a shocrú go luath. Go raibh maith agat as do foighne."
"Tharla earráid. Tuairiscíodh do riarthóirí an tsuímh trí ríomhphost agus ba "
"cheart é a shocrú go luath. Go raibh maith agat as do foighne."
msgid "Run the selected action"
msgstr "Rith an gníomh roghnaithe"
@ -343,12 +349,26 @@ msgstr "Roghnaigh gach %(total_count)s %(module_name)s"
msgid "Clear selection"
msgstr "Scroiseadh modhnóir"
msgid "Breadcrumbs"
msgstr "Brioscáin aráin"
#, python-format
msgid "Models in the %(name)s application"
msgstr "Samhlacha ins an %(name)s iarratais"
msgid "Add"
msgstr "Cuir le"
msgid "View"
msgstr "Amharc ar"
msgid "You dont have permission to view or edit anything."
msgstr "Níl cead agat aon rud a fheiceáil ná a chur in eagar."
msgid ""
"First, enter a username and password. Then, you'll be able to edit more user "
"First, enter a username and password. Then, youll be able to edit more user "
"options."
msgstr ""
"Ar dtús, iontráil ainm úsaideoir agus focal faire. Ansin, beidh tú in ann "
"cuir in eagar níos mó roghaí úsaideoira."
msgstr "Níl cead agat aon rud a fheiceáil ná a chur in eagar."
msgid "Enter a username and password."
msgstr "Cuir isteach ainm úsáideora agus focal faire."
@ -356,11 +376,16 @@ msgstr "Cuir isteach ainm úsáideora agus focal faire."
msgid "Change password"
msgstr "Athraigh focal faire"
msgid "Please correct the error below."
msgstr "Ceartaigh an botún thíos le do thoil."
msgid "Set password"
msgstr "Socraigh pasfhocal"
msgid "Please correct the errors below."
msgstr "Le do thoil cheartú earráidí thíos."
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
msgstr[0] "Ceartaigh an earráid thíos le do thoil."
msgstr[1] "Ceartaigh na hearráidí thíos le do thoil."
msgstr[2] "Ceartaigh na hearráidí thíos le do thoil."
msgstr[3] "Ceartaigh na hearráidí thíos le do thoil."
msgstr[4] "Ceartaigh na hearráidí thíos le do thoil."
#, python-format
msgid "Enter a new password for the user <strong>%(username)s</strong>."
@ -368,6 +393,22 @@ msgstr ""
"Iontráil focal faire nua le hadhaigh an úsaideor <strong>%(username)s</"
"strong>."
msgid ""
"This action will <strong>enable</strong> password-based authentication for "
"this user."
msgstr ""
"Cumasóidh an gníomh seo <strong>fhíordheimhniú </strong>pasfhocal-bhunaithe "
"don úsáideoir seo."
msgid "Disable password-based authentication"
msgstr "Díchumasaigh fíordheimhniú pasfhocal-bhunaithe"
msgid "Enable password-based authentication"
msgstr "Cumasaigh fíordheimhniú pasfhocal-bhunaithe"
msgid "Skip to main content"
msgstr "Téigh ar aghaidh chuig an bpríomhábhar"
msgid "Welcome,"
msgstr "Fáilte"
@ -393,6 +434,15 @@ msgstr "Breath ar suíomh"
msgid "Filter"
msgstr "Scagaire"
msgid "Hide counts"
msgstr "Folaigh comhaireamh"
msgid "Show counts"
msgstr "Taispeáin comhaireamh"
msgid "Clear all filters"
msgstr "Glan na scagairí go léir"
msgid "Remove from sorting"
msgstr "Bain as sórtáil"
@ -403,6 +453,15 @@ msgstr "Sórtáil tosaíocht: %(priority_number)s"
msgid "Toggle sorting"
msgstr "Toggle sórtáil"
msgid "Toggle theme (current theme: auto)"
msgstr "Scoránaigh an téama (téama reatha: uathoibríoch)"
msgid "Toggle theme (current theme: light)"
msgstr "Scoránaigh an téama (téama reatha: solas)"
msgid "Toggle theme (current theme: dark)"
msgstr "Scoránaigh an téama (téama reatha: dorcha)"
msgid "Delete"
msgstr "Cealaigh"
@ -434,8 +493,8 @@ msgstr ""
msgid "Objects"
msgstr "Oibiachtaí"
msgid "Yes, I'm sure"
msgstr "Táim cinnte"
msgid "Yes, Im sure"
msgstr "Sea, táim cinnte"
msgid "No, take me back"
msgstr "Ní hea, tóg ar ais mé"
@ -469,9 +528,6 @@ msgstr ""
"An bhfuil tú cinnte gur mian leat a scriosadh %(objects_name)s roghnaithe? "
"Beidh gach ceann de na nithe seo a leanas agus a n-ítimí gaolta scroiste:"
msgid "View"
msgstr "Amharc ar"
msgid "Delete?"
msgstr "Cealaigh?"
@ -482,46 +538,59 @@ msgstr " Trí %(filter_title)s "
msgid "Summary"
msgstr "Achoimre"
#, python-format
msgid "Models in the %(name)s application"
msgstr "Samhlacha ins an %(name)s iarratais"
msgid "Add"
msgstr "Cuir le"
msgid "You don't have permission to view or edit anything."
msgstr ""
msgid "Recent actions"
msgstr ""
msgstr "Gníomhartha le déanaí"
msgid "My actions"
msgstr ""
msgstr "Mo ghníomhartha"
msgid "None available"
msgstr "Dada ar fáil"
msgid "Added:"
msgstr "Curtha leis:"
msgid "Changed:"
msgstr "Athraithe:"
msgid "Deleted:"
msgstr "Scriosta:"
msgid "Unknown content"
msgstr "Inneachair anaithnid"
msgid ""
"Something's wrong with your database installation. Make sure the appropriate "
"Somethings 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 ""
"Tá rud éigin mícheart le suitéail do bunachar sonraí. Déan cinnte go bhfuil "
"boird an bunachar sonraI cruthaithe cheana, agus déan cinnte go bhfuil do "
"úsaideoir in ann an bunacchar sonraí a léamh."
"Tá rud éigin cearr le suiteáil do bhunachar sonraí. Cinntigh go bhfuil na "
"táblaí bunachar sonraí cuí cruthaithe, agus cinntigh go bhfuil an bunachar "
"sonraí inléite ag an úsáideoir cuí."
#, python-format
msgid ""
"You are authenticated as %(username)s, but are not authorized to access this "
"page. Would you like to login to a different account?"
msgstr ""
"Tá tú fíordheimhnithe mar %(username)s, ach níl cead agat an leathanach seo "
"a rochtain. Ar mhaith leat logáil isteach i gcuntas eile?"
msgid "Forgotten your password or username?"
msgstr "Dearmad déanta ar do focal faire nó ainm úsaideora"
msgid "Toggle navigation"
msgstr "Scoránaigh an nascleanúint"
msgid "Sidebar"
msgstr "Barra Taoibh"
msgid "Start typing to filter…"
msgstr "Tosaigh ag clóscríobh chun an scagaire…"
msgid "Filter navigation items"
msgstr "Scag míreanna nascleanúna"
msgid "Date/time"
msgstr "Dáta/am"
@ -531,12 +600,20 @@ msgstr "Úsaideoir"
msgid "Action"
msgstr "Aicsean"
msgid "entry"
msgid_plural "entries"
msgstr[0] "iontráil"
msgstr[1] "iontrálacha"
msgstr[2] "iontrálacha"
msgstr[3] "iontrálacha"
msgstr[4] "iontrálacha"
msgid ""
"This object doesn't have a change history. It probably wasn't added via this "
"This object doesnt have a change history. It probably wasnt added via this "
"admin site."
msgstr ""
"Níl stáir aitraithe ag an oibiacht seo agús is dócha ná cuir le tríd an an "
"suíomh riarachán."
"Níl stair athruithe ag an réad seo. Is dócha nár cuireadh leis tríd an "
"suíomh riaracháin seo."
msgid "Show all"
msgstr "Taispéan gach rud"
@ -545,7 +622,7 @@ msgid "Save"
msgstr "Sábháil"
msgid "Popup closing…"
msgstr ""
msgstr "Preabfhuinneog ag dúnadh…"
msgid "Search"
msgstr "Cuardach"
@ -590,8 +667,14 @@ msgstr "Cuir le %(model)s"
msgid "Delete selected %(model)s"
msgstr "Scrios roghnaithe %(model)s"
msgid "Thanks for spending some quality time with the Web site today."
msgstr "Go raibh maith agat le hadhaigh do cuairt ar an suíomh idirlínn inniú."
#, python-format
msgid "View selected %(model)s"
msgstr "Féach ar %(model)s roghnaithe"
msgid "Thanks for spending some quality time with the web site today."
msgstr ""
"Go raibh maith agat as roinnt ama ardchaighdeáin a chaitheamh leis an suíomh "
"Gréasáin inniu."
msgid "Log in again"
msgstr "Logáil isteacj arís"
@ -603,12 +686,12 @@ msgid "Your password was changed."
msgstr "Bhí do focal faire aithraithe."
msgid ""
"Please enter your old password, for security's sake, and then enter your new "
"Please enter your old password, for securitys sake, and then enter your new "
"password twice so we can verify you typed it in correctly."
msgstr ""
"Le do thoil, iontráil do sean-focal faire, ar son slándáil, agus ansin "
"iontráil do focal faire dhá uaire cé go mbeimid in ann a seiceal go bhfuil "
"sé scríobhte isteach i gceart."
"Cuir isteach do sheanphasfhocal, ar mhaithe le slándáil, agus ansin cuir "
"isteach do phasfhocal nua faoi dhó ionas gur féidir linn a fhíorú gur "
"chlóscríobh tú i gceart é."
msgid "Change my password"
msgstr "Athraigh mo focal faire"
@ -643,28 +726,35 @@ msgstr ""
"úsaidte cheana. Le do thoil, iarr ar athsocraigh focal faire nua."
msgid ""
"We've emailed you instructions for setting your password, if an account "
"Weve emailed you instructions for setting your password, if an account "
"exists with the email you entered. You should receive them shortly."
msgstr ""
"Chuireamar ríomhphost chugat treoracha maidir le do phasfhocal a shocrú, má "
"tá cuntas ann leis an ríomhphost a chuir tú isteach. Ba cheart duit iad a "
"fháil go luath."
msgid ""
"If you don't receive an email, please make sure you've entered the address "
"If you dont receive an email, please make sure youve entered the address "
"you registered with, and check your spam folder."
msgstr ""
"Mura bhfaigheann tú ríomhphost, cinntigh le do thoil gur chuir tú isteach an "
"seoladh ar chláraigh tú leis, agus seiceáil dfhillteán turscair."
#, python-format
msgid ""
"You're receiving this email because you requested a password reset for your "
"user account at %(site_name)s."
msgstr ""
"Tá an ríomhphost seo á fháil agat toisc gur iarr tú athshocrú pasfhocail do "
"do chuntas úsáideora ag %(site_name)s."
msgid "Please go to the following page and choose a new password:"
msgstr ""
"Le do thoil té go dtí an leathanach a leanúint agus roghmaigh focal faire "
"nua:"
msgid "Your username, in case you've forgotten:"
msgstr "Do ainm úsaideoir, má tá dearmad déanta agat."
msgid "Your username, in case youve forgotten:"
msgstr "Dainm úsáideora, ar eagla go bhfuil dearmad déanta agat ar:"
msgid "Thanks for using our site!"
msgstr "Go raibh maith agat le hadhaigh do cuairt!"
@ -674,9 +764,11 @@ msgid "The %(site_name)s team"
msgstr "Foireann an %(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 well email "
"instructions for setting a new one."
msgstr ""
"Dearmad déanta agat ar do phasfhocal? Cuir isteach do sheoladh ríomhphoist "
"thíos, agus seolfaimid treoracha ríomhphoist chun ceann nua a shocrú."
msgid "Email address:"
msgstr "Seoladh ríomhphoist:"
@ -684,6 +776,9 @@ msgstr "Seoladh ríomhphoist:"
msgid "Reset my password"
msgstr "Athsocraigh mo focal faire"
msgid "Select all objects on this page for an action"
msgstr "Roghnaigh gach oibiacht ar an leathanach seo le haghaidh gnímh"
msgid "All dates"
msgstr "Gach dáta"
@ -697,7 +792,7 @@ msgstr "Roghnaigh %s a athrú"
#, python-format
msgid "Select %s to view"
msgstr ""
msgstr "Roghnaigh %s le féachaint"
msgid "Date:"
msgstr "Dáta:"

View File

@ -1,6 +1,7 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Aindriú Mac Giolla Eoin, 2024
# Jannis Leidel <jannis@leidel.info>, 2011
# Luke Blaney <transifex@lukeblaney.co.uk>, 2019
# Michael Thornhill <michael@maithu.com>, 2011-2012,2015
@ -8,10 +9,10 @@ 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: 2019-06-22 21:36+0000\n"
"Last-Translator: Luke Blaney <transifex@lukeblaney.co.uk>\n"
"Language-Team: Irish (http://www.transifex.com/django/django/language/ga/)\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 07:59+0000\n"
"Last-Translator: Aindriú Mac Giolla Eoin, 2024\n"
"Language-Team: Irish (http://app.transifex.com/django/django/language/ga/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -66,6 +67,11 @@ msgstr ""
"roghnaionn tú cuid acu sa bhosca thíos agus ansin cliceáil ar an saighead "
"\"Bain\" idir an dá boscaí."
#, javascript-format
msgid "Type into this box to filter down the list of selected %s."
msgstr ""
"Clóscríobh isteach sa bhosca seo chun liosta na %s roghnaithe a scagadh."
msgid "Remove all"
msgstr "Scrois gach ceann"
@ -73,6 +79,15 @@ msgstr "Scrois gach ceann"
msgid "Click to remove all chosen %s at once."
msgstr "Cliceáil anseo chun %s go léir roghnaithe a scroiseadh."
#, javascript-format
msgid "%s selected option not visible"
msgid_plural "%s selected options not visible"
msgstr[0] "Níl an rogha roghnaithe %s le feiceáil"
msgstr[1] "Níl %s roghanna roghnaithe le feiceáil"
msgstr[2] "Níl %s roghanna roghnaithe le feiceáil"
msgstr[3] "Níl %s roghanna roghnaithe le feiceáil"
msgstr[4] "Níl %s roghanna roghnaithe le feiceáil"
msgid "%(sel)s of %(cnt)s selected"
msgid_plural "%(sel)s of %(cnt)s selected"
msgstr[0] "%(sel)s de %(cnt)s roghnaithe"
@ -89,20 +104,21 @@ msgstr ""
"gníomh, caillfidh tú do chuid aithrithe."
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 havent saved your changes to "
"individual fields yet. Please click OK to save. Youll need to re-run the "
"action."
msgstr ""
"Tá gníomh roghnaithe agat, ach níl do aithrithe sabhailte ar cuid de na "
"réímse. Clic OK chun iad a sábháil. Caithfidh tú an gníomh a rith arís."
"Tá gníomh roghnaithe agat, ach níor shábháil tú d'athruithe ar réimsí aonair "
"fós. Cliceáil OK le do thoil a shábháil. Beidh ort an t-aicsean a rith arís."
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 havent made any changes on individual "
"fields. Youre probably looking for the Go button rather than the Save "
"button."
msgstr ""
"Tá gníomh roghnaithe agat, ach níl do aithrithe sabhailte ar cuid de na "
"réímse. Is dócha go bhfuil tú ag iarraidh an cnaipe Té ná an cnaipe Sábháil."
"Tá gníomh roghnaithe agat, agus níl aon athruithe déanta agat ar réimsí "
"aonair. Is dócha go bhfuil an cnaipe Téigh á lorg agat seachas an cnaipe "
"Sábháil."
msgid "Now"
msgstr "Anois"
@ -199,6 +215,103 @@ msgstr "Samhain"
msgid "December"
msgstr "Nollaig"
msgctxt "abbrev. month January"
msgid "Jan"
msgstr "Ean"
msgctxt "abbrev. month February"
msgid "Feb"
msgstr "Feabh"
msgctxt "abbrev. month March"
msgid "Mar"
msgstr "Már"
msgctxt "abbrev. month April"
msgid "Apr"
msgstr "Aib"
msgctxt "abbrev. month May"
msgid "May"
msgstr "Beal"
msgctxt "abbrev. month June"
msgid "Jun"
msgstr "Meith"
msgctxt "abbrev. month July"
msgid "Jul"
msgstr "Lúil"
msgctxt "abbrev. month August"
msgid "Aug"
msgstr "Lún"
msgctxt "abbrev. month September"
msgid "Sep"
msgstr "Meán Fóm"
msgctxt "abbrev. month October"
msgid "Oct"
msgstr "Deireadh Fóm"
msgctxt "abbrev. month November"
msgid "Nov"
msgstr "Sam"
msgctxt "abbrev. month December"
msgid "Dec"
msgstr "Noll"
msgid "Sunday"
msgstr "Domhnach"
msgid "Monday"
msgstr "Dé Luain"
msgid "Tuesday"
msgstr "Dé Máirt"
msgid "Wednesday"
msgstr "Dé Céadaoin"
msgid "Thursday"
msgstr "Déardaoin"
msgid "Friday"
msgstr "Dé hAoine"
msgid "Saturday"
msgstr "Dé Sathairn"
msgctxt "abbrev. day Sunday"
msgid "Sun"
msgstr "Dom"
msgctxt "abbrev. day Monday"
msgid "Mon"
msgstr "Lua"
msgctxt "abbrev. day Tuesday"
msgid "Tue"
msgstr "Mái"
msgctxt "abbrev. day Wednesday"
msgid "Wed"
msgstr "Céa"
msgctxt "abbrev. day Thursday"
msgid "Thur"
msgstr "Déa"
msgctxt "abbrev. day Friday"
msgid "Fri"
msgstr "Aoi"
msgctxt "abbrev. day Saturday"
msgid "Sat"
msgstr "Sat"
msgctxt "one letter Sunday"
msgid "S"
msgstr "D"
@ -226,9 +339,3 @@ msgstr "A"
msgctxt "one letter Saturday"
msgid "S"
msgstr "S"
msgid "Show"
msgstr "Taispeán"
msgid "Hide"
msgstr "Folaigh"

View File

@ -1,14 +1,14 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Michael Wolf <milupo@sorbzilla.de>, 2016-2023
# Michael Wolf <milupo@sorbzilla.de>, 2016-2024
msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-09-18 11:41-0300\n"
"PO-Revision-Date: 2023-12-04 07:05+0000\n"
"Last-Translator: Michael Wolf <milupo@sorbzilla.de>, 2016-2023\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 07:05+0000\n"
"Last-Translator: Michael Wolf <milupo@sorbzilla.de>, 2016-2024\n"
"Language-Team: Upper Sorbian (http://app.transifex.com/django/django/"
"language/hsb/)\n"
"MIME-Version: 1.0\n"
@ -199,10 +199,6 @@ msgid ""
"The {name} “{obj}” was changed successfully. You may edit it again below."
msgstr "{name} „{obj}“ je so wuspěšnje změnił. Móžeće jón deleka wobdźěłować."
#, python-brace-format
msgid "The {name} “{obj}” was added successfully. You may edit it again below."
msgstr "{name} „{obj}“ je so wuspěšnje přidał. Móžeće jón deleka wobdźěłować."
#, python-brace-format
msgid ""
"The {name} “{obj}” was changed successfully. You may add another {name} "
@ -372,6 +368,9 @@ msgstr "Zapodajće wužiwarske mjeno a hesło."
msgid "Change password"
msgstr "Hesło změnić"
msgid "Set password"
msgstr "Hesło postajić"
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
msgstr[0] "Prošu porjedźće slědowacy zmylk."
@ -383,6 +382,19 @@ msgstr[3] "Prošu porjedźće slědowace zmylki."
msgid "Enter a new password for the user <strong>%(username)s</strong>."
msgstr "Zapodajće nowe hesło za <strong>%(username)s</strong>."
msgid ""
"This action will <strong>enable</strong> password-based authentication for "
"this user."
msgstr ""
"Tuta akcija awtentifikacija na zakładźe hesła za tutoho wužiwarja <strong> "
"zmóžni </strong>."
msgid "Disable password-based authentication"
msgstr "Awtentifikaciju na zakładźe hesła znjemóžnić"
msgid "Enable password-based authentication"
msgstr "Awtentifikaciju na zakładźe hesła zmóžnić"
msgid "Skip to main content"
msgstr "Dale k hłownemu wobsahej"

View File

@ -3,7 +3,7 @@
# Translators:
# Bayu Satiyo <itsyuukunz@gmail.com>, 2024
# Claude Paroz <claude@2xlibre.net>, 2014
# Fery Setiawan <gembelweb@gmail.com>, 2015-2019,2021-2023
# Fery Setiawan <gembelweb@gmail.com>, 2015-2019,2021-2024
# Jannis Leidel <jannis@leidel.info>, 2011
# M Asep Indrayana <me@drayanaindra.com>, 2015
# oon arfiandwi (OonID) <oon.arfiandwi@gmail.com>, 2016,2020
@ -16,8 +16,8 @@ msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2013-04-25 07:05+0000\n"
"Last-Translator: Bayu Satiyo <itsyuukunz@gmail.com>, 2024\n"
"PO-Revision-Date: 2024-10-07 07:05+0000\n"
"Last-Translator: Fery Setiawan <gembelweb@gmail.com>, 2015-2019,2021-2024\n"
"Language-Team: Indonesian (http://app.transifex.com/django/django/language/"
"id/)\n"
"MIME-Version: 1.0\n"
@ -372,7 +372,7 @@ msgid "Change password"
msgstr "Ganti sandi"
msgid "Set password"
msgstr ""
msgstr "Setel sandi"
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
@ -386,12 +386,14 @@ msgid ""
"This action will <strong>enable</strong> password-based authentication for "
"this user."
msgstr ""
"Tindakan ini akan <strong>enable</strong> autentifikasi brerdasarkan-sandi "
"untuk pengguna ini."
msgid "Disable password-based authentication"
msgstr ""
msgstr "Tiadakan autentifikasu berdasarkan-sandi"
msgid "Enable password-based authentication"
msgstr ""
msgstr "Adakan autentifikasu berdasarkan-sandi"
msgid "Skip to main content"
msgstr "Lewati ke isi utama"

View File

@ -22,13 +22,14 @@
# 정훈 이, 2021
# 박태진, 2021
# Yang Chan Woo <oizys18@gmail.com>, 2019
# Youngkwang Yang, 2024
msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-08-07 07:05+0000\n"
"Last-Translator: Juyoung Lim, 2024\n"
"PO-Revision-Date: 2024-10-07 07:05+0000\n"
"Last-Translator: Youngkwang Yang, 2024\n"
"Language-Team: Korean (http://app.transifex.com/django/django/language/ko/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -392,7 +393,7 @@ msgstr "비밀번호 설정"
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
msgstr[0] "아래 오류 수정하기 바랍니다. "
msgstr[0] "아래 오류들을 수정하기 바랍니다. "
#, python-format
msgid "Enter a new password for the user <strong>%(username)s</strong>."
@ -438,10 +439,10 @@ msgid "Filter"
msgstr "필터"
msgid "Hide counts"
msgstr ""
msgstr "개수 숨기기"
msgid "Show counts"
msgstr ""
msgstr "개수 표시"
msgid "Clear all filters"
msgstr "모든 필터 삭제"

View File

@ -1,7 +1,7 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Adam Zahradník, 2023
# Adam Zahradník, 2023-2024
# Jannis Leidel <jannis@leidel.info>, 2011
# 18f25ad6fa9930fc67cb11aca9d16a27, 2012-2013
# Marian Andre <marian@andre.sk>, 2013-2015,2017
@ -15,9 +15,9 @@ msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-09-18 11:41-0300\n"
"PO-Revision-Date: 2023-12-04 07:05+0000\n"
"Last-Translator: Martin Tóth <ezimir@gmail.com>, 2017,2023\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 07:05+0000\n"
"Last-Translator: Adam Zahradník, 2023-2024\n"
"Language-Team: Slovak (http://app.transifex.com/django/django/language/sk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -209,11 +209,6 @@ msgid ""
msgstr ""
"Objekt {name} „{obj}“ bol úspešne zmenený. Ďalšie zmeny môžete urobiť nižšie."
#, python-brace-format
msgid "The {name} “{obj}” was added successfully. You may edit it again below."
msgstr ""
"Objekt {name} „{obj}“ bol úspešne pridaný. Ďalšie zmeny môžete urobiť nižšie."
#, python-brace-format
msgid ""
"The {name} “{obj}” was changed successfully. You may add another {name} "
@ -383,6 +378,9 @@ msgstr "Zadajte používateľské meno a heslo."
msgid "Change password"
msgstr "Zmeniť heslo"
msgid "Set password"
msgstr "Nastaviť heslo"
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
msgstr[0] "Prosím, opravte chybu uvedenú nižšie."
@ -394,6 +392,19 @@ msgstr[3] "Prosím, opravte chyby uvedené nižšie."
msgid "Enter a new password for the user <strong>%(username)s</strong>."
msgstr "Zadajte nové heslo pre používateľa <strong>%(username)s</strong>."
msgid ""
"This action will <strong>enable</strong> password-based authentication for "
"this user."
msgstr ""
"Týmto <strong>povolíte</strong> tomuto používateľovi prihlasovanie pomocou "
"hesla."
msgid "Disable password-based authentication"
msgstr "Vypnúť prihlasovanie pomocou hesla"
msgid "Enable password-based authentication"
msgstr "Povoliť prihlasovanie pomocou hesla"
msgid "Skip to main content"
msgstr "Preskočiť na hlavný obsah"

View File

@ -3,18 +3,18 @@
# Translators:
# abdl erkin <84247764@qq.com>, 2018
# ABDULLA <ijtihat@gmail.com>, 2014
# Abduqadir Abliz <sahranbay@gmail.com>, 2023
# Abduqadir Abliz <sahranbay@gmail.com>, 2023-2024
# Azat, 2023
# Murat Orhun <oku.orhun@gmail.com>, 2023
# Natalia (Django Fellow), 2023
# Natalia, 2023
# Serpidin Uyghur, 2023
msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-09-18 11:41-0300\n"
"PO-Revision-Date: 2023-12-04 07:05+0000\n"
"Last-Translator: Natalia (Django Fellow), 2023\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 07:05+0000\n"
"Last-Translator: Abduqadir Abliz <sahranbay@gmail.com>, 2023-2024\n"
"Language-Team: Uyghur (http://app.transifex.com/django/django/language/ug/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -204,12 +204,6 @@ msgstr ""
"{name} “{obj}” مۇۋەپپەقىيەتلىك ئۆزگەرتىلدى. تۆۋەندە ئۇنى قايتا تەھرىرلىسىڭىز "
"بولىدۇ."
#, python-brace-format
msgid "The {name} “{obj}” was added successfully. You may edit it again below."
msgstr ""
"{name} “{obj}” مۇۋەپپەقىيەتلىك قوشۇلدى. تۆۋەندە ئۇنى قايتا تەھرىرلىسىڭىز "
"بولىدۇ."
#, python-brace-format
msgid ""
"The {name} “{obj}” was changed successfully. You may add another {name} "
@ -376,6 +370,9 @@ msgstr "ئىشلەتكۈچى ئاتى ۋە پارول كىرگۈزۈڭ."
msgid "Change password"
msgstr "پارولنى ئۆزگەرتىش"
msgid "Set password"
msgstr "پارول تەڭشەك"
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
msgstr[0] "تۆۋەندىكى خاتالىقلارنى توغرىلاڭ."
@ -385,6 +382,19 @@ msgstr[1] "تۆۋەندىكى خاتالىقلارنى توغرىلاڭ."
msgid "Enter a new password for the user <strong>%(username)s</strong>."
msgstr "ئىشلەتكۈچى <strong>%(username)s</strong> ئۈچۈن يېڭى پارول كىرگۈزۈڭ."
msgid ""
"This action will <strong>enable</strong> password-based authentication for "
"this user."
msgstr ""
"بۇ مەشغۇلات مەزكۇر ئىشلەتكۈچىنىڭ ئىم ئاساسىدىكى دەلىللىشىنى "
"<strong>قوزغىتىدۇ</strong>"
msgid "Disable password-based authentication"
msgstr "ئىم ئاساسىدىكى دەلىللەشنى چەكلەيدۇ"
msgid "Enable password-based authentication"
msgstr "ئىم ئاساسىدىكى دەلىللەشنى قوزغىتىدۇ"
msgid "Skip to main content"
msgstr "ئاساسلىق مەزمۇنغا ئاتلا"

View File

@ -164,6 +164,10 @@ form .aligned div.help:last-child {
padding-bottom: 0;
}
form .aligned select option:checked {
background-color: var(--selected-row);
}
form .aligned ul li {
list-style: none;
}
@ -438,17 +442,6 @@ body.popup .submit-row {
_width: 700px;
}
.inline-group ul.tools {
padding: 0;
margin: 0;
list-style: none;
}
.inline-group ul.tools li {
display: inline;
padding: 0 5px;
}
.inline-group div.add-row,
.inline-group .tabular tr.add-row td {
color: var(--body-quiet-color);
@ -462,11 +455,8 @@ body.popup .submit-row {
border-bottom: 1px solid var(--hairline-color);
}
.inline-group ul.tools a.add,
.inline-group div.add-row a,
.inline-group .tabular tr.add-row td a {
background: url(../img/icon-addlink.svg) 0 1px no-repeat;
padding-left: 16px;
font-size: 0.75rem;
}

View File

@ -28,7 +28,6 @@
margin-left: 0;
}
[dir="rtl"] .inline-group ul.tools a.add,
[dir="rtl"] .inline-group div.add-row a,
[dir="rtl"] .inline-group .tabular tr.add-row td a {
padding: 8px 26px 8px 10px;

View File

@ -50,11 +50,11 @@
// If forms are laid out as table rows, insert the
// "add" button in a new table row:
const numCols = $this.eq(-1).children().length;
$parent.append('<tr class="' + options.addCssClass + '"><td colspan="' + numCols + '"><a href="#">' + options.addText + "</a></tr>");
$parent.append('<tr class="' + options.addCssClass + '"><td colspan="' + numCols + '"><a class="addlink" href="#">' + options.addText + "</a></tr>");
addButton = $parent.find("tr:last a");
} else {
// Otherwise, insert it immediately after the last form:
$this.filter(":last").after('<div class="' + options.addCssClass + '"><a href="#">' + options.addText + "</a></div>");
$this.filter(":last").after('<div class="' + options.addCssClass + '"><a class="addlink" href="#">' + options.addText + "</a></div>");
addButton = $this.filter(":last").next().find("a");
}
}

View File

@ -3,9 +3,7 @@
{% block form_top %}
{% if not is_popup %}
<p>{% translate 'First, enter a username and password. Then, youll be able to edit more user options.' %}</p>
{% else %}
<p>{% translate "Enter a username and password." %}</p>
<p>{% translate "After you've created a user, youll be able to edit more user options." %}</p>
{% endif %}
{% endblock %}
{% block extrahead %}

View File

@ -10,7 +10,6 @@
{% endblock %}
{% if not is_popup and is_nav_sidebar_enabled %}
<link rel="stylesheet" href="{% static "admin/css/nav_sidebar.css" %}">
<script src="{% static 'admin/js/nav_sidebar.js' %}" defer></script>
{% endif %}
{% block extrastyle %}{% endblock %}
{% if LANGUAGE_BIDI %}<link rel="stylesheet" href="{% block stylesheet_rtl %}{% static "admin/css/rtl.css" %}{% endblock %}">{% endif %}

View File

@ -57,7 +57,7 @@
{% url 'admin_password_reset' as password_reset_url %}
{% if password_reset_url %}
<div class="password-reset-link">
<a href="{{ password_reset_url }}">{% translate 'Forgotten your password or username?' %}</a>
<a href="{{ password_reset_url }}">{% translate 'Forgotten your login credentials?' %}</a>
</div>
{% endif %}
<div class="submit-row">

View File

@ -1,4 +1,4 @@
{% load i18n %}
{% load i18n static %}
<button class="sticky toggle-nav-sidebar" id="toggle-nav-sidebar" aria-label="{% translate 'Toggle navigation' %}"></button>
<nav class="sticky" id="nav-sidebar" aria-label="{% translate 'Sidebar' %}">
<input type="search" id="nav-filter"
@ -6,3 +6,4 @@
aria-label="{% translate 'Filter navigation items' %}">
{% include 'admin/app_list.html' with app_list=available_apps show_changelinks=False %}
</nav>
<script src="{% static 'admin/js/nav_sidebar.js' %}"></script>

View File

@ -5,7 +5,7 @@
{% block reset_link %}
{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}
{% endblock %}
{% translate 'Your username, in case youve forgotten:' %} {{ user.get_username }}
{% translate 'In case youve forgotten, you are:' %} {{ user.get_username }}
{% translate "Thanks for using our site!" %}

View File

@ -1,6 +1,7 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Aindriú Mac Giolla Eoin, 2024
# Jannis Leidel <jannis@leidel.info>, 2011
# Luke Blaney <transifex@lukeblaney.co.uk>, 2019
# Michael Thornhill <michael@maithu.com>, 2012
@ -8,10 +9,10 @@ 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-06-22 21:37+0000\n"
"Last-Translator: Luke Blaney <transifex@lukeblaney.co.uk>\n"
"Language-Team: Irish (http://www.transifex.com/django/django/language/ga/)\n"
"POT-Creation-Date: 2021-01-15 09:00+0100\n"
"PO-Revision-Date: 2024-10-07 20:19+0000\n"
"Last-Translator: Aindriú Mac Giolla Eoin, 2024\n"
"Language-Team: Irish (http://app.transifex.com/django/django/language/ga/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -20,7 +21,7 @@ msgstr ""
"4);\n"
msgid "Administrative Documentation"
msgstr ""
msgstr "Doiciméadúchán Riaracháin"
msgid "Home"
msgstr "Baile"
@ -39,6 +40,10 @@ msgid ""
"click the link and add it to your bookmarks. Now you can select the "
"bookmarklet from any page in the site."
msgstr ""
"Chun leabharmharcanna a shuiteáil, tarraing an nasc chuig do bharra uirlisí "
"leabharmharcanna, nó deaschliceáil ar an nasc agus cuir le do "
"leabharmharcanna é. Anois is féidir leat an leabharmharc a roghnú ó aon "
"leathanach ar an suíomh."
msgid "Documentation for this page"
msgstr "Doiciméadúchán le hadhaigh an leathanach seo"
@ -54,7 +59,7 @@ msgid "Tags"
msgstr "Clibeanna"
msgid "List of all the template tags and their functions."
msgstr ""
msgstr "Liosta de na clibeanna teimpléid go léir agus a bhfeidhmeanna."
msgid "Filters"
msgstr "Scagairí"
@ -63,6 +68,8 @@ msgid ""
"Filters are actions which can be applied to variables in a template to alter "
"the output."
msgstr ""
"Is gníomhartha iad na scagairí is féidir a chur i bhfeidhm ar athróga i "
"dteimpléad chun an t-aschur a athrú."
msgid "Models"
msgstr "Samhla"
@ -72,6 +79,9 @@ msgid ""
"associated fields. Each model has a list of fields which can be accessed as "
"template variables"
msgstr ""
"Is éard atá i múnlaí ná cur síos ar na réada go léir sa chóras agus ar na "
"réimsí a bhaineann leo. Tá liosta réimsí ag gach samhail ar féidir rochtain "
"a fháil orthu mar athróga teimpléid"
msgid "Views"
msgstr "Radharcanna"
@ -81,138 +91,149 @@ msgid ""
"template is used to generate the page and which objects are available to "
"that template."
msgstr ""
"Gintear gach leathanach ar an suíomh poiblí trí radharc. Sainmhíníonn an t-"
"amharc cén teimpléad a úsáidtear chun an leathanach a ghiniúint agus na "
"rudaí atá ar fáil don teimpléad sin."
msgid "Tools for your browser to quickly access admin functionality."
msgstr ""
"Uirlisí do do bhrabhsálaí chun rochtain tapa a fháil ar fheidhmiúlacht "
"riaracháin."
msgid "Please install docutils"
msgstr ""
msgstr "Suiteáil docutils le do thoil"
#, python-format
msgid ""
"The admin documentation system requires Python's <a href=\"%(link)s"
"\">docutils</a> library."
"The admin documentation system requires Pythons <a "
"href=\"%(link)s\">docutils</a> library."
msgstr ""
"Teastaíonn leabharlann Python <a href=\"%(link)s\">docutils</a> ón gcóras "
"doiciméadúcháin riaracháin."
#, python-format
msgid ""
"Please ask your administrators to install <a href=\"%(link)s\">docutils</a>."
msgstr ""
msgstr "Iarr ar do riarthóirí <a href=\"%(link)s\">docutils</a> a shuiteáil."
#, python-format
msgid "Model: %(name)s"
msgstr ""
msgstr "Múnla: %(name)s"
msgid "Fields"
msgstr ""
msgstr "Réimsí"
msgid "Field"
msgstr ""
msgstr "Réimse"
msgid "Type"
msgstr "Cineál"
msgid "Description"
msgstr ""
msgstr "Cur síos"
msgid "Methods with arguments"
msgstr ""
msgstr "Modhanna le hargóintí"
msgid "Method"
msgstr ""
msgstr "Modh"
msgid "Arguments"
msgstr ""
msgstr "Argóintí"
msgid "Back to Model documentation"
msgstr ""
msgstr "Ar ais chuig an doiciméadú Múnla"
msgid "Model documentation"
msgstr ""
msgstr "Doiciméadú múnla"
msgid "Model groups"
msgstr ""
msgstr "Grúpaí samhlacha"
msgid "Templates"
msgstr "Teimpléid"
#, python-format
msgid "Template: %(name)s"
msgstr ""
msgstr "Teimpléad: %(name)s"
#, python-format
msgid "Template: \"%(name)s\""
msgstr ""
msgid "Template: <q>%(name)s</q>"
msgstr "Teimpléad: <q>%(name)s</q>"
#. Translators: Search is not a verb here, it qualifies path (a search path)
#, python-format
msgid "Search path for template \"%(name)s\":"
msgstr ""
msgid "Search path for template <q>%(name)s</q>:"
msgstr "Teimpléad cuardaigh cosán <q>%(name)s</q>:"
msgid "(does not exist)"
msgstr ""
msgstr "(níl ann)"
msgid "Back to Documentation"
msgstr ""
msgstr "Ar ais go Doiciméadúchán"
msgid "Template filters"
msgstr ""
msgstr "Ar ais go Doiciméadúchán"
msgid "Template filter documentation"
msgstr ""
msgstr "Doiciméadú scagaire teimpléid"
msgid "Built-in filters"
msgstr ""
msgstr "scagairí ionsuite"
#, python-format
msgid ""
"To use these filters, put <code>%(code)s</code> in your template before "
"using the filter."
msgstr ""
"Chun na scagairí seo a úsáid, cuir<code>%(code)s</code> i do theimpléad sula "
"n-úsáideann tú an scagaire."
msgid "Template tags"
msgstr ""
msgstr "Clibeanna teimpléid"
msgid "Template tag documentation"
msgstr ""
msgstr "Doiciméadú clib teimpléad"
msgid "Built-in tags"
msgstr ""
msgstr "Insuite i clibeanna"
#, python-format
msgid ""
"To use these tags, put <code>%(code)s</code> in your template before using "
"the tag."
msgstr ""
"Chun na clibeanna seo a úsáid, cuir <code>%(code)s</code> i do theimpléad "
"sula n-úsáideann tú an chlib."
#, python-format
msgid "View: %(name)s"
msgstr ""
msgstr "Amharc: %(name)s"
msgid "Context:"
msgstr ""
msgstr "Comhthéacs:"
msgid "Templates:"
msgstr ""
msgstr "Teimpléid:"
msgid "Back to View documentation"
msgstr ""
msgstr "Ar ais go dtí Féach ar na doiciméid"
msgid "View documentation"
msgstr ""
msgstr "Féach ar cháipéisíocht"
msgid "Jump to namespace"
msgstr ""
msgstr "Léim go spás ainm"
msgid "Empty namespace"
msgstr ""
msgstr "Ainmspás folamh"
#, python-format
msgid "Views by namespace %(name)s"
msgstr ""
msgstr "Radhairc de réir ainmspáis %(name)s"
msgid "Views by empty namespace"
msgstr ""
msgstr "Radhairc de réir ainmspás folamh"
#, python-format
msgid ""
@ -220,6 +241,9 @@ msgid ""
" View function: <code>%(full_name)s</code>. Name: <code>%(url_name)s</"
"code>.\n"
msgstr ""
"\n"
" Féach ar fheidhm: <code>%(full_name)s</code>. Ainm: <code>%(url_name)s</"
"code>.\n"
msgid "tag:"
msgstr "clib:"
@ -232,7 +256,7 @@ msgstr "radharc:"
#, python-format
msgid "App %(app_label)r not found"
msgstr ""
msgstr "Aip %(app_label)r gan aimsiú"
#, python-format
msgid "Model %(model_name)r not found in app %(app_label)r"

View File

@ -1,8 +1,6 @@
import inspect
import re
from asgiref.sync import sync_to_async
from django.apps import apps as django_apps
from django.conf import settings
from django.core.exceptions import ImproperlyConfigured, PermissionDenied
@ -40,6 +38,39 @@ def get_backends():
return _get_backends(return_tuples=False)
def _get_compatible_backends(request, **credentials):
for backend, backend_path in _get_backends(return_tuples=True):
backend_signature = inspect.signature(backend.authenticate)
try:
backend_signature.bind(request, **credentials)
except TypeError:
# This backend doesn't accept these credentials as arguments. Try
# the next one.
continue
yield backend, backend_path
def _get_backend_from_user(user, backend=None):
try:
backend = backend or user.backend
except AttributeError:
backends = _get_backends(return_tuples=True)
if len(backends) == 1:
_, backend = backends[0]
else:
raise ValueError(
"You have multiple authentication backends configured and "
"therefore must provide the `backend` argument or set the "
"`backend` attribute on the user."
)
else:
if not isinstance(backend, str):
raise TypeError(
"backend must be a dotted import path string (got %r)." % backend
)
return backend
@sensitive_variables("credentials")
def _clean_credentials(credentials):
"""
@ -62,19 +93,21 @@ def _get_user_session_key(request):
return get_user_model()._meta.pk.to_python(request.session[SESSION_KEY])
async def _aget_user_session_key(request):
# This value in the session is always serialized to a string, so we need
# to convert it back to Python whenever we access it.
session_key = await request.session.aget(SESSION_KEY)
if session_key is None:
raise KeyError()
return get_user_model()._meta.pk.to_python(session_key)
@sensitive_variables("credentials")
def authenticate(request=None, **credentials):
"""
If the given credentials are valid, return a User object.
"""
for backend, backend_path in _get_backends(return_tuples=True):
backend_signature = inspect.signature(backend.authenticate)
try:
backend_signature.bind(request, **credentials)
except TypeError:
# This backend doesn't accept these credentials as arguments. Try
# the next one.
continue
for backend, backend_path in _get_compatible_backends(request, **credentials):
try:
user = backend.authenticate(request, **credentials)
except PermissionDenied:
@ -96,7 +129,23 @@ def authenticate(request=None, **credentials):
@sensitive_variables("credentials")
async def aauthenticate(request=None, **credentials):
"""See authenticate()."""
return await sync_to_async(authenticate)(request, **credentials)
for backend, backend_path in _get_compatible_backends(request, **credentials):
try:
user = await backend.aauthenticate(request, **credentials)
except PermissionDenied:
# This backend says to stop in our tracks - this user should not be
# allowed in at all.
break
if user is None:
continue
# Annotate the user object with the path of the backend.
user.backend = backend_path
return user
# The credentials supplied are invalid to all backends, fire signal.
await user_login_failed.asend(
sender=__name__, credentials=_clean_credentials(credentials), request=request
)
def login(request, user, backend=None):
@ -125,23 +174,7 @@ def login(request, user, backend=None):
else:
request.session.cycle_key()
try:
backend = backend or user.backend
except AttributeError:
backends = _get_backends(return_tuples=True)
if len(backends) == 1:
_, backend = backends[0]
else:
raise ValueError(
"You have multiple authentication backends configured and "
"therefore must provide the `backend` argument or set the "
"`backend` attribute on the user."
)
else:
if not isinstance(backend, str):
raise TypeError(
"backend must be a dotted import path string (got %r)." % backend
)
backend = _get_backend_from_user(user=user, backend=backend)
request.session[SESSION_KEY] = user._meta.pk.value_to_string(user)
request.session[BACKEND_SESSION_KEY] = backend
@ -154,7 +187,36 @@ def login(request, user, backend=None):
async def alogin(request, user, backend=None):
"""See login()."""
return await sync_to_async(login)(request, user, backend)
session_auth_hash = ""
if user is None:
user = await request.auser()
if hasattr(user, "get_session_auth_hash"):
session_auth_hash = user.get_session_auth_hash()
if await request.session.ahas_key(SESSION_KEY):
if await _aget_user_session_key(request) != user.pk or (
session_auth_hash
and not constant_time_compare(
await request.session.aget(HASH_SESSION_KEY, ""),
session_auth_hash,
)
):
# To avoid reusing another user's session, create a new, empty
# session if the existing session corresponds to a different
# authenticated user.
await request.session.aflush()
else:
await request.session.acycle_key()
backend = _get_backend_from_user(user=user, backend=backend)
await request.session.aset(SESSION_KEY, user._meta.pk.value_to_string(user))
await request.session.aset(BACKEND_SESSION_KEY, backend)
await request.session.aset(HASH_SESSION_KEY, session_auth_hash)
if hasattr(request, "user"):
request.user = user
rotate_token(request)
await user_logged_in.asend(sender=user.__class__, request=request, user=user)
def logout(request):
@ -177,7 +239,19 @@ def logout(request):
async def alogout(request):
"""See logout()."""
return await sync_to_async(logout)(request)
# Dispatch the signal before the user is logged out so the receivers have a
# chance to find out *who* logged out.
user = getattr(request, "auser", None)
if user is not None:
user = await user()
if not getattr(user, "is_authenticated", True):
user = None
await user_logged_out.asend(sender=user.__class__, request=request, user=user)
await request.session.aflush()
if hasattr(request, "user"):
from django.contrib.auth.models import AnonymousUser
request.user = AnonymousUser()
def get_user_model():
@ -243,7 +317,43 @@ def get_user(request):
async def aget_user(request):
"""See get_user()."""
return await sync_to_async(get_user)(request)
from .models import AnonymousUser
user = None
try:
user_id = await _aget_user_session_key(request)
backend_path = await request.session.aget(BACKEND_SESSION_KEY)
except KeyError:
pass
else:
if backend_path in settings.AUTHENTICATION_BACKENDS:
backend = load_backend(backend_path)
user = await backend.aget_user(user_id)
# Verify the session
if hasattr(user, "get_session_auth_hash"):
session_hash = await request.session.aget(HASH_SESSION_KEY)
if not session_hash:
session_hash_verified = False
else:
session_auth_hash = user.get_session_auth_hash()
session_hash_verified = session_hash and constant_time_compare(
session_hash, user.get_session_auth_hash()
)
if not session_hash_verified:
# 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()
):
await request.session.acycle_key()
await request.session.aset(HASH_SESSION_KEY, session_auth_hash)
else:
await request.session.aflush()
user = None
return user or AnonymousUser()
def get_permission_codename(action, opts):

View File

@ -1,3 +1,5 @@
from asgiref.sync import sync_to_async
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Permission
from django.db.models import Exists, OuterRef, Q
@ -9,24 +11,45 @@ class BaseBackend:
def authenticate(self, request, **kwargs):
return None
async def aauthenticate(self, request, **kwargs):
return await sync_to_async(self.authenticate)(request, **kwargs)
def get_user(self, user_id):
return None
async def aget_user(self, user_id):
return await sync_to_async(self.get_user)(user_id)
def get_user_permissions(self, user_obj, obj=None):
return set()
async def aget_user_permissions(self, user_obj, obj=None):
return await sync_to_async(self.get_user_permissions)(user_obj, obj)
def get_group_permissions(self, user_obj, obj=None):
return set()
async def aget_group_permissions(self, user_obj, obj=None):
return await sync_to_async(self.get_group_permissions)(user_obj, obj)
def get_all_permissions(self, user_obj, obj=None):
return {
*self.get_user_permissions(user_obj, obj=obj),
*self.get_group_permissions(user_obj, obj=obj),
}
async def aget_all_permissions(self, user_obj, obj=None):
return {
*await self.aget_user_permissions(user_obj, obj=obj),
*await self.aget_group_permissions(user_obj, obj=obj),
}
def has_perm(self, user_obj, perm, obj=None):
return perm in self.get_all_permissions(user_obj, obj=obj)
async def ahas_perm(self, user_obj, perm, obj=None):
return perm in await self.aget_all_permissions(user_obj, obj)
class ModelBackend(BaseBackend):
"""
@ -48,6 +71,23 @@ class ModelBackend(BaseBackend):
if user.check_password(password) and self.user_can_authenticate(user):
return user
async def aauthenticate(self, request, username=None, password=None, **kwargs):
if username is None:
username = kwargs.get(UserModel.USERNAME_FIELD)
if username is None or password is None:
return
try:
user = await UserModel._default_manager.aget_by_natural_key(username)
except UserModel.DoesNotExist:
# Run the default password hasher once to reduce the timing
# difference between an existing and a nonexistent user (#20760).
UserModel().set_password(password)
else:
if await user.acheck_password(password) and self.user_can_authenticate(
user
):
return user
def user_can_authenticate(self, user):
"""
Reject users with is_active=False. Custom user models that don't have
@ -59,9 +99,7 @@ class ModelBackend(BaseBackend):
return user_obj.user_permissions.all()
def _get_group_permissions(self, user_obj):
user_groups_field = get_user_model()._meta.get_field("groups")
user_groups_query = "group__%s" % user_groups_field.related_query_name()
return Permission.objects.filter(**{user_groups_query: user_obj})
return Permission.objects.filter(group__in=user_obj.groups.all())
def _get_permissions(self, user_obj, obj, from_name):
"""
@ -84,6 +122,25 @@ class ModelBackend(BaseBackend):
)
return getattr(user_obj, perm_cache_name)
async def _aget_permissions(self, user_obj, obj, from_name):
"""See _get_permissions()."""
if not user_obj.is_active or user_obj.is_anonymous or obj is not None:
return set()
perm_cache_name = "_%s_perm_cache" % from_name
if not hasattr(user_obj, perm_cache_name):
if user_obj.is_superuser:
perms = Permission.objects.all()
else:
perms = getattr(self, "_get_%s_permissions" % from_name)(user_obj)
perms = perms.values_list("content_type__app_label", "codename").order_by()
setattr(
user_obj,
perm_cache_name,
{"%s.%s" % (ct, name) async for ct, name in perms},
)
return getattr(user_obj, perm_cache_name)
def get_user_permissions(self, user_obj, obj=None):
"""
Return a set of permission strings the user `user_obj` has from their
@ -91,6 +148,10 @@ class ModelBackend(BaseBackend):
"""
return self._get_permissions(user_obj, obj, "user")
async def aget_user_permissions(self, user_obj, obj=None):
"""See get_user_permissions()."""
return await self._aget_permissions(user_obj, obj, "user")
def get_group_permissions(self, user_obj, obj=None):
"""
Return a set of permission strings the user `user_obj` has from the
@ -98,6 +159,10 @@ class ModelBackend(BaseBackend):
"""
return self._get_permissions(user_obj, obj, "group")
async def aget_group_permissions(self, user_obj, obj=None):
"""See get_group_permissions()."""
return await self._aget_permissions(user_obj, obj, "group")
def get_all_permissions(self, user_obj, obj=None):
if not user_obj.is_active or user_obj.is_anonymous or obj is not None:
return set()
@ -108,6 +173,9 @@ class ModelBackend(BaseBackend):
def has_perm(self, user_obj, perm, obj=None):
return user_obj.is_active and super().has_perm(user_obj, perm, obj=obj)
async def ahas_perm(self, user_obj, perm, obj=None):
return user_obj.is_active and await super().ahas_perm(user_obj, perm, obj=obj)
def has_module_perms(self, user_obj, app_label):
"""
Return True if user_obj has any permissions in the given app_label.
@ -117,6 +185,13 @@ class ModelBackend(BaseBackend):
for perm in self.get_all_permissions(user_obj)
)
async def ahas_module_perms(self, user_obj, app_label):
"""See has_module_perms()"""
return user_obj.is_active and any(
perm[: perm.index(".")] == app_label
for perm in await self.aget_all_permissions(user_obj)
)
def with_perm(self, perm, is_active=True, include_superusers=True, obj=None):
"""
Return users that have permission "perm". By default, filter out
@ -159,6 +234,13 @@ class ModelBackend(BaseBackend):
return None
return user if self.user_can_authenticate(user) else None
async def aget_user(self, user_id):
try:
user = await UserModel._default_manager.aget(pk=user_id)
except UserModel.DoesNotExist:
return None
return user if self.user_can_authenticate(user) else None
class AllowAllUsersModelBackend(ModelBackend):
def user_can_authenticate(self, user):
@ -210,6 +292,29 @@ class RemoteUserBackend(ModelBackend):
user = self.configure_user(request, user, created=created)
return user if self.user_can_authenticate(user) else None
async def aauthenticate(self, request, remote_user):
"""See authenticate()."""
if not remote_user:
return
created = False
user = None
username = self.clean_username(remote_user)
# Note that this could be accomplished in one try-except clause, but
# instead we use get_or_create when creating unknown users since it has
# built-in safeguards for multiple threads.
if self.create_unknown_user:
user, created = await UserModel._default_manager.aget_or_create(
**{UserModel.USERNAME_FIELD: username}
)
else:
try:
user = await UserModel._default_manager.aget_by_natural_key(username)
except UserModel.DoesNotExist:
pass
user = await self.aconfigure_user(request, user, created=created)
return user if self.user_can_authenticate(user) else None
def clean_username(self, username):
"""
Perform any cleaning on the "username" prior to using it to get or
@ -227,6 +332,10 @@ class RemoteUserBackend(ModelBackend):
"""
return user
async def aconfigure_user(self, request, user, created=True):
"""See configure_user()"""
return await sync_to_async(self.configure_user)(request, user, created)
class AllowAllUsersRemoteUserBackend(RemoteUserBackend):
def user_can_authenticate(self, user):

View File

@ -36,6 +36,9 @@ class BaseUserManager(models.Manager):
def get_by_natural_key(self, username):
return self.get(**{self.model.USERNAME_FIELD: username})
async def aget_by_natural_key(self, username):
return await self.aget(**{self.model.USERNAME_FIELD: username})
class AbstractBaseUser(models.Model):
password = models.CharField(_("password"), max_length=128)

View File

@ -111,7 +111,7 @@ def permission_required(perm, login_url=None, raise_exception=False):
async def check_perms(user):
# First check if the user has the permission (even anon users).
if await sync_to_async(user.has_perms)(perms):
if await user.ahas_perms(perms):
return True
# In case the 403 handler should be called raise the exception.
if raise_exception:

View File

@ -3,6 +3,7 @@
# Translators:
# Jan Munclinger <jan.munclinger@gmail.com>, 2013
# Jannis Leidel <jannis@leidel.info>, 2011
# Jiří Podhorecký <jirka.p@volny.cz>, 2024
# Tomáš Ehrlich <tomas.ehrlich@gmail.com>, 2015
# Vláďa Macek <macek@sandbox.cz>, 2013-2014
# Vláďa Macek <macek@sandbox.cz>, 2015-2017,2019,2021-2022
@ -10,10 +11,10 @@ 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:49+0000\n"
"Last-Translator: Vláďa Macek <macek@sandbox.cz>\n"
"Language-Team: Czech (http://www.transifex.com/django/django/language/cs/)\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 08:09+0000\n"
"Last-Translator: Jiří Podhorecký <jirka.p@volny.cz>, 2024\n"
"Language-Team: Czech (http://app.transifex.com/django/django/language/cs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -34,13 +35,23 @@ msgstr "Důležitá data"
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "Položka \"%(name)s\" s primárním klíčem \"%(key)r\" neexistuje."
msgid "Conflicting form data submitted. Please try again."
msgstr "Odeslání protichůdných údajů z formuláře. Zkuste to prosím znovu."
msgid "Password changed successfully."
msgstr "Změna hesla byla úspěšná."
msgid "Password-based authentication was disabled."
msgstr "Ověřování pomocí hesla bylo zakázáno."
#, python-format
msgid "Change password: %s"
msgstr "Heslo pro uživatele %s: změnit"
#, python-format
msgid "Set password: %s"
msgstr "Nastavit heslo: %s"
msgid "Authentication and Authorization"
msgstr "Autentizace a autorizace"
@ -56,9 +67,24 @@ msgstr "Heslo nenastaveno."
msgid "Invalid password format or unknown hashing algorithm."
msgstr "Neplatný formát hesla nebo neplatný hashovací algoritmus."
msgid "Reset password"
msgstr "Resetovat heslo"
msgid "Set password"
msgstr "Nastavit heslo"
msgid "The two password fields didnt match."
msgstr "Hesla se neshodují."
msgid ""
"Whether the user will be able to authenticate using a password or not. If "
"disabled, they may still be able to authenticate using other backends, such "
"as Single Sign-On or LDAP."
msgstr ""
"Zda se uživatel bude moci ověřit pomocí hesla, nebo ne. Pokud je zakázáno, "
"může být stále schopen ověřit se pomocí jiných backendů, například Single "
"Sign-On nebo LDAP."
msgid "Password"
msgstr "Heslo"
@ -68,12 +94,24 @@ msgstr "Potvrzení hesla"
msgid "Enter the same password as before, for verification."
msgstr "Zadejte pro ověření stejné heslo jako předtím."
msgid "Password-based authentication"
msgstr "Ověřování pomocí hesla"
msgid "Enabled"
msgstr "Zapnuto"
msgid "Disabled"
msgstr "Vypnuto"
msgid ""
"Raw passwords are not stored, so there is no way to see this users "
"password, but you can change the password using <a href=\"{}\">this form</a>."
"Raw passwords are not stored, so there is no way to see the users password."
msgstr ""
"Hesla se neukládají přímo a tak je nelze zobrazit. Je ale možné je změnit "
"pomocí <a href=\"{}\">tohoto formuláře</a>."
"Neupravená hesla se neukládají, takže není možné zjistit heslo uživatele."
msgid ""
"Enable password-based authentication for this user by setting a password."
msgstr ""
"Povolit ověřování na základě hesla pro tohoto uživatele nastavením hesla."
#, python-format
msgid ""
@ -101,9 +139,6 @@ msgstr "Vaše současné heslo nebylo zadáno správně. Zkuste to znovu."
msgid "Old password"
msgstr "Současné heslo"
msgid "Password (again)"
msgstr "Heslo (znovu)"
msgid "algorithm"
msgstr "algoritmus"
@ -271,11 +306,11 @@ msgid "Password reset on %(site_name)s"
msgstr "Obnovení hesla na webu %(site_name)s"
msgid ""
"Enter a valid username. This value may contain only English letters, "
"numbers, and @/./+/-/_ characters."
"Enter a valid username. This value may contain only unaccented lowercase a-z "
"and uppercase A-Z letters, numbers, and @/./+/-/_ characters."
msgstr ""
"Zadejte platné uživatelské jméno. Hodnota může obsahovat pouze písmena bez "
"diakritiky, tj. háčků a čárek, číslice a znaky @/./+/-/_."
"Zadejte platné uživatelské jméno. Tato hodnota může obsahovat pouze malá "
"písmena bez diakritiky a-z a velká písmena A-Z, číslice a znaky @/./+/-/_."
msgid ""
"Enter a valid username. This value may contain only letters, numbers, and "

View File

@ -1,16 +1,16 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Michael Wolf <milupo@sorbzilla.de>, 2016-2017,2020-2021,2023
# Michael Wolf <milupo@sorbzilla.de>, 2016-2017,2020-2021,2023-2024
msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-03-17 03:19-0500\n"
"PO-Revision-Date: 2023-04-25 08:09+0000\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 08:09+0000\n"
"Last-Translator: Michael Wolf <milupo@sorbzilla.de>, "
"2016-2017,2020-2021,2023\n"
"Language-Team: Lower Sorbian (http://www.transifex.com/django/django/"
"2016-2017,2020-2021,2023-2024\n"
"Language-Team: Lower Sorbian (http://app.transifex.com/django/django/"
"language/dsb/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -32,13 +32,23 @@ msgstr "Wažne daty"
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "Objekt %(name)s z primarnym klucom %(key)r njeeksistěrujo."
msgid "Conflicting form data submitted. Please try again."
msgstr "Pśeśiwne formularowe daty zapódane. Pšosym wopytajśo hyšći raz."
msgid "Password changed successfully."
msgstr "Gronidło jo se změniło."
msgid "Password-based authentication was disabled."
msgstr "Awtentifikacija na zakłaźe gronidła jo se znjemóžniła."
#, python-format
msgid "Change password: %s"
msgstr "Gronidło změniś: %s"
#, python-format
msgid "Set password: %s"
msgstr "Nastajone gronidło: %s"
msgid "Authentication and Authorization"
msgstr "Awtentifikacija a awtorizacija"
@ -54,9 +64,24 @@ msgstr "Žedno gronidło nastajone."
msgid "Invalid password format or unknown hashing algorithm."
msgstr "Njepłaśiwy gronidłowy format abo njeznaty kontrolny algoritmus."
msgid "Reset password"
msgstr "Gronidło slědk stajiś"
msgid "Set password"
msgstr "Gronidło póstajis"
msgid "The two password fields didnt match."
msgstr "Dwě gronidlowej póli njejstej jadnakej."
msgid ""
"Whether the user will be able to authenticate using a password or not. If "
"disabled, they may still be able to authenticate using other backends, such "
"as Single Sign-On or LDAP."
msgstr ""
"Lěc wužywaŕ móžo z gronidłom awtentificěrowaś abo nic. Jolic to jo "
"znjemóžnjone, jo hyšći móžno, z pomocu drugich backendami awtentificěrowaś, "
"na pśikład Single Sign-On abo LDAP."
msgid "Password"
msgstr "Gronidło"
@ -66,13 +91,26 @@ msgstr "Gronidłowe wobkšuśenje"
msgid "Enter the same password as before, for verification."
msgstr "Zapódajśo to samske gronidło, za pśespytanje."
msgid "Password-based authentication"
msgstr "Awtentifikacija na zakłaźe gronidła"
msgid "Enabled"
msgstr "Źmóžnjony"
msgid "Disabled"
msgstr "Znjemóžnjony"
msgid ""
"Raw passwords are not stored, so there is no way to see this users "
"password, but you can change the password using <a href=\"{}\">this form</a>."
"Raw passwords are not stored, so there is no way to see the users password."
msgstr ""
"Grube gronidła se njeskładuju, togodla njejo móžno, gronidło wužywarja "
"wiźeś, ale móžośo gronidło z pomocu <a href=\"{}\">toś togo formulara</a> "
"změniś."
"Gropne gronidła se njeskładuju, njedajo pótakem žednu móžnosć, gronidło "
"wužywarja wiźeś."
msgid ""
"Enable password-based authentication for this user by setting a password."
msgstr ""
"Póstajśo gronidło, aby awtentifkaciju na zakłaźe gronidła za toś togo "
"wužywarja zmóžnił."
#, python-format
msgid ""
@ -101,9 +139,6 @@ msgstr ""
msgid "Old password"
msgstr "Stare gronidło"
msgid "Password (again)"
msgstr "Gronidło (znowego)"
msgid "algorithm"
msgstr "algoritmus"

View File

@ -13,15 +13,15 @@
# Josue Naaman Nistal Guerra <josuenistal@hotmail.com>, 2014
# Leonardo J. Caballero G. <leonardocaballero@gmail.com>, 2011
# Natalia, 2024
# Uriel Medina <urimeba511@gmail.com>, 2020-2021,2023
# Uriel Medina <urimeba511@gmail.com>, 2020-2021,2023-2024
# Veronicabh <vero.blazher@gmail.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-08-07 08:09+0000\n"
"Last-Translator: Natalia, 2024\n"
"PO-Revision-Date: 2024-10-07 08:09+0000\n"
"Last-Translator: Uriel Medina <urimeba511@gmail.com>, 2020-2021,2023-2024\n"
"Language-Team: Spanish (http://app.transifex.com/django/django/language/"
"es/)\n"
"MIME-Version: 1.0\n"
@ -44,13 +44,15 @@ msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "el objeto %(name)s con clave primaria %(key)r no existe."
msgid "Conflicting form data submitted. Please try again."
msgstr "Los datos enviados se contradicen. Por favor intente de nuevo."
msgstr ""
"Se enviaron datos contradictorios en el formulario. Por favor inténtalo de "
"nuevo."
msgid "Password changed successfully."
msgstr "La contraseña se ha cambiado con éxito."
msgid "Password-based authentication was disabled."
msgstr "La autenticación basada en contraseñas fue deshabilitada."
msgstr "La autenticación basada en contraseña fue deshabilitada."
#, python-format
msgid "Change password: %s"
@ -103,7 +105,7 @@ msgid "Enter the same password as before, for verification."
msgstr "Para verificar, introduzca la misma contraseña anterior."
msgid "Password-based authentication"
msgstr "Autenticación basada en contraseñas"
msgstr "Autenticación basada en contraseña"
msgid "Enabled"
msgstr "Habilitado"

View File

@ -2,14 +2,14 @@
#
# Translators:
# Jannis Leidel <jannis@leidel.info>, 2011
# Ramiro Morales, 2013-2017,2019,2021,2023
# Ramiro Morales, 2013-2017,2019,2021,2023-2024
msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-03-17 03:19-0500\n"
"PO-Revision-Date: 2023-12-04 08:09+0000\n"
"Last-Translator: Ramiro Morales, 2013-2017,2019,2021,2023\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 08:09+0000\n"
"Last-Translator: Ramiro Morales, 2013-2017,2019,2021,2023-2024\n"
"Language-Team: Spanish (Argentina) (http://app.transifex.com/django/django/"
"language/es_AR/)\n"
"MIME-Version: 1.0\n"
@ -31,13 +31,23 @@ msgstr "Fechas importantes"
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "No existe un objeto %(name)s con una clave primaria %(key)r."
msgid "Conflicting form data submitted. Please try again."
msgstr "Los datos enviados se contradicen. Por favor intente de nuevo."
msgid "Password changed successfully."
msgstr "Cambio de contraseña exitoso"
msgid "Password-based authentication was disabled."
msgstr "La autenticación basada en contraseñas fue desactivada."
#, python-format
msgid "Change password: %s"
msgstr "Cambiar contraseña: %s"
#, python-format
msgid "Set password: %s"
msgstr "Establecer contraseña: %s"
msgid "Authentication and Authorization"
msgstr "Autenticación y Autorización"
@ -53,9 +63,24 @@ msgstr "No se ha establecido una contraseña."
msgid "Invalid password format or unknown hashing algorithm."
msgstr "Formato de contraseña inválido o algoritmo de hashing desconocido."
msgid "Reset password"
msgstr "Restablecer contraseña"
msgid "Set password"
msgstr "Establecer contraseña"
msgid "The two password fields didnt match."
msgstr "Los dos campos de contraseñas no coinciden entre si."
msgid ""
"Whether the user will be able to authenticate using a password or not. If "
"disabled, they may still be able to authenticate using other backends, such "
"as Single Sign-On or LDAP."
msgstr ""
"Determina si el usuario podrá autenticarse usando una contraseña. Si está "
"desactivado, el usuario aún podría autenticarse mediante otros métodos, como "
"Single Sign-On o LDAP."
msgid "Password"
msgstr "Contraseña"
@ -66,13 +91,26 @@ msgid "Enter the same password as before, for verification."
msgstr ""
"Introduzca la misma contraseña nuevamente, para poder verificar la misma."
msgid "Password-based authentication"
msgstr "Autenticación basada en contraseñas"
msgid "Enabled"
msgstr "Activo"
msgid "Disabled"
msgstr "Inactivo"
msgid ""
"Raw passwords are not stored, so there is no way to see this users "
"password, but you can change the password using <a href=\"{}\">this form</a>."
"Raw passwords are not stored, so there is no way to see the users password."
msgstr ""
"El sistema no almacena las contraseñas originales por lo cual no es posible "
"visualizar la contraseña de este usuario, pero puede modificarla usando <a "
"href=\"{}\">este formulario</a>."
"Las contraseñas en texto plano no se almacenan, por lo que no se puede ver "
"la contraseña del usuario."
msgid ""
"Enable password-based authentication for this user by setting a password."
msgstr ""
"Active la autenticación por contraseña para este usuario estableciendo una "
"contraseña."
#, python-format
msgid ""
@ -102,9 +140,6 @@ msgstr ""
msgid "Old password"
msgstr "Contraseña antigua"
msgid "Password (again)"
msgstr "Contraseña (de nuevo)"
msgid "algorithm"
msgstr "algoritmo"

View File

@ -1,16 +1,17 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Aindriú Mac Giolla Eoin, 2024
# Jannis Leidel <jannis@leidel.info>, 2011
# Michael Thornhill <michael@maithu.com>, 2012,2015
msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-24 13:46+0200\n"
"PO-Revision-Date: 2017-09-24 14:24+0000\n"
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
"Language-Team: Irish (http://www.transifex.com/django/django/language/ga/)\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 08:09+0000\n"
"Last-Translator: Aindriú Mac Giolla Eoin, 2024\n"
"Language-Team: Irish (http://app.transifex.com/django/django/language/ga/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -29,17 +30,28 @@ msgstr "Dáta tábhactach"
#, python-format
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "Níl %(name)s réad le príomheochair %(key)r ann."
msgid "Conflicting form data submitted. Please try again."
msgstr ""
"Sonraí foirmeacha contrártha curtha isteach. Déan iarracht eile le do thoil."
msgid "Password changed successfully."
msgstr "Focal faire aithraithe rathúil"
msgid "Password-based authentication was disabled."
msgstr "Díchumasaíodh fíordheimhniú pasfhocal-bhunaithe."
#, python-format
msgid "Change password: %s"
msgstr "Athraigh focal faire: %s"
#, python-format
msgid "Set password: %s"
msgstr "Socraigh pasfhocal: %s"
msgid "Authentication and Authorization"
msgstr ""
msgstr "Fíordheimhniú agus Údarú"
msgid "password"
msgstr "focal faire"
@ -48,13 +60,29 @@ msgid "last login"
msgstr "logáil deirneach"
msgid "No password set."
msgstr ""
msgstr "Uimh pasfhocal socraithe."
msgid "Invalid password format or unknown hashing algorithm."
msgstr ""
msgstr "Formáid pasfhocail neamhbhailí nó algartam hashing anaithnid."
msgid "The two password fields didn't match."
msgstr "Níl an dá focla faire comhoiriúnigh"
msgid "Reset password"
msgstr "Athshocraigh pasfhocal"
msgid "Set password"
msgstr "Socraigh pasfhocal"
msgid "The two password fields didnt match."
msgstr "Níorbh ionann an dá réimse pasfhocal."
msgid ""
"Whether the user will be able to authenticate using a password or not. If "
"disabled, they may still be able to authenticate using other backends, such "
"as Single Sign-On or LDAP."
msgstr ""
"Cé acu an mbeidh an t-úsáideoir in ann a fhíordheimhniú ag baint úsáide as "
"pasfhocal nó nach bhfuil. Má tá sé díchumasaithe, seans go mbeidh siad fós "
"in ann fíordheimhniú a dhéanamh trí úsáid a bhaint as hinnill eile, mar "
"shampla Sign-On Aonair nó LDAP."
msgid "Password"
msgstr "Focal faire"
@ -64,17 +92,37 @@ msgstr "Focal faire deimhniú"
msgid "Enter the same password as before, for verification."
msgstr ""
"Cuir isteach an pasfhocal céanna agus a rinneadh roimhe seo, le haghaidh "
"fíorú."
msgid "Password-based authentication"
msgstr "Fíordheimhniú pasfhocal-bhunaithe"
msgid "Enabled"
msgstr "Cumasaithe"
msgid "Disabled"
msgstr "Faoi mhíchumas"
msgid ""
"Raw passwords are not stored, so there is no way to see this user's "
"password, but you can change the password using <a href=\"{}\">this form</a>."
"Raw passwords are not stored, so there is no way to see the users password."
msgstr ""
"Ní stóráiltear pasfhocail amh, mar sin níl aon bhealach ann pasfhocal an "
"úsáideora a fheiceáil."
msgid ""
"Enable password-based authentication for this user by setting a password."
msgstr ""
"Cumasaigh fíordheimhniú pasfhocal-bhunaithe don úsáideoir seo trí phasfhocal "
"a shocrú."
#, python-format
msgid ""
"Please enter a correct %(username)s and password. Note that both fields may "
"be case-sensitive."
msgstr ""
"Cuir isteach %(username)sagus pasfhocal ceart. Tabhair faoi deara go "
"bhféadfadh an dá réimse a bheith cás-íogair."
msgid "This account is inactive."
msgstr "Tá an cuntas seo neamhghníomhach."
@ -95,9 +143,6 @@ msgstr ""
msgid "Old password"
msgstr "Sean-focal faire "
msgid "Password (again)"
msgstr "Focal faire (arís)"
msgid "algorithm"
msgstr "algartam"
@ -111,19 +156,19 @@ msgid "hash"
msgstr "haiseáil"
msgid "variety"
msgstr ""
msgstr "éagsúlacht"
msgid "version"
msgstr ""
msgstr "leagan"
msgid "memory cost"
msgstr ""
msgstr "costas cuimhne"
msgid "time cost"
msgstr ""
msgstr "costas ama"
msgid "parallelism"
msgstr ""
msgstr "comhthreomhaireacht"
msgid "work factor"
msgstr "fachtóir oibre"
@ -131,11 +176,14 @@ msgstr "fachtóir oibre"
msgid "checksum"
msgstr "suim sheiceála"
msgid "block size"
msgstr "méid bloc"
msgid "name"
msgstr "ainm"
msgid "content type"
msgstr ""
msgstr "cineál ábhair"
msgid "codename"
msgstr "Ainm cód"
@ -166,18 +214,22 @@ msgid ""
"The groups this user belongs to. A user will get all permissions granted to "
"each of their groups."
msgstr ""
"Na grúpaí ar leis an úsáideoir seo iad. Gheobhaidh úsáideoir gach cead a "
"thugtar do gach ceann dá ngrúpa."
msgid "user permissions"
msgstr "ceada úsáideoira"
msgid "Specific permissions for this user."
msgstr ""
msgstr "Ceadanna sonracha don úsáideoir seo."
msgid "username"
msgstr "Ainm úsáideoir"
msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
msgstr ""
"Ag teastáil. 150 carachtar nó níos lú. Litreacha, digití agus @/./+/-/_ "
"amháin."
msgid "A user with that username already exists."
msgstr "In ann do úsáideoir leis an ainm úsáideora."
@ -226,52 +278,73 @@ msgid_plural ""
"This password is too short. It must contain at least %(min_length)d "
"characters."
msgstr[0] ""
"Tá an pasfhocal seo ró-ghearr. Caithfidh %(min_length)d carachtar ar a "
"laghad a bheith ann."
msgstr[1] ""
"Tá an pasfhocal seo ró-ghearr. Caithfidh %(min_length)d carachtair ar a "
"laghad a bheith ann."
msgstr[2] ""
"Tá an pasfhocal seo ró-ghearr. Caithfidh %(min_length)d carachtair ar a "
"laghad a bheith ann."
msgstr[3] ""
"Tá an pasfhocal seo ró-ghearr. Caithfidh %(min_length)d carachtair ar a "
"laghad a bheith ann."
msgstr[4] ""
"Tá an pasfhocal seo ró-ghearr. Caithfidh %(min_length)d carachtair ar a "
"laghad a bheith ann."
#, 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] ""
"Caithfidh %(min_length)d carachtar ar a laghad a bheith i do phasfhocal."
msgstr[1] ""
"Caithfidh %(min_length)d carachtair ar a laghad a bheith i do phasfhocal."
msgstr[2] ""
"Caithfidh %(min_length)d carachtair ar a laghad a bheith i do phasfhocal."
msgstr[3] ""
"Caithfidh %(min_length)d carachtair ar a laghad a bheith i do phasfhocal."
msgstr[4] ""
"Caithfidh %(min_length)d carachtair ar a laghad a bheith i do phasfhocal."
#, python-format
msgid "The password is too similar to the %(verbose_name)s."
msgstr ""
msgstr "Tá an focal faire róchosúil le %(verbose_name)s."
msgid "Your password can't be too similar to your other personal information."
msgid "Your password cant be too similar to your other personal information."
msgstr ""
"Ní féidir le do phasfhocal a bheith róchosúil le d'fhaisnéis phearsanta eile."
msgid "This password is too common."
msgstr ""
msgstr "Tá an pasfhocal seo ró-choitianta."
msgid "Your password can't be a commonly used password."
msgid "Your password cant be a commonly used password."
msgstr ""
"Ní féidir le do phasfhocal a bheith ina phasfhocal a úsáidtear go coitianta."
msgid "This password is entirely numeric."
msgstr ""
msgstr "Tá an pasfhocal seo go hiomlán uimhriúil."
msgid "Your password can't be entirely numeric."
msgstr ""
msgid "Your password cant be entirely numeric."
msgstr "Ní féidir le do phasfhocal a bheith uimhriúil go hiomlán."
#, python-format
msgid "Password reset on %(site_name)s"
msgstr "Athshocraigh focal faire ar %(site_name)s"
msgid ""
"Enter a valid username. This value may contain only English letters, "
"numbers, and @/./+/-/_ characters."
"Enter a valid username. This value may contain only unaccented lowercase a-z "
"and uppercase A-Z letters, numbers, and @/./+/-/_ characters."
msgstr ""
"Cuir isteach ainm úsáideora bailí. Ní fhéadfaidh an luach seo ach litreacha, "
"uimhreacha, agus @/./+//_ A bheith i gceist leis an luach seo."
msgid ""
"Enter a valid username. This value may contain only letters, numbers, and "
"@/./+/-/_ characters."
msgstr ""
"Cuir isteach ainm úsáideora bailí. Seans nach bhfuil sa luach seo ach "
"litreacha, uimhreacha, agus carachtair @/./+/-/_."
msgid "Logged out"
msgstr "Logáilte amach"
@ -283,16 +356,16 @@ msgid "Password reset sent"
msgstr "Pasfhocal athshocrú sheoladh"
msgid "Enter new password"
msgstr ""
msgstr "Cuir isteach pasfhocal nua"
msgid "Password reset unsuccessful"
msgstr ""
msgstr "Níor éirigh le hathshocrú pasfhocail"
msgid "Password reset complete"
msgstr ""
msgstr "Athshocrú pasfhocail críochnaithe"
msgid "Password change"
msgstr ""
msgstr "Athrú pasfhocal"
msgid "Password change successful"
msgstr ""
msgstr "D'éirigh le hathrú pasfhocal"

View File

@ -1,16 +1,16 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Michael Wolf <milupo@sorbzilla.de>, 2016-2017,2019,2021,2023
# Michael Wolf <milupo@sorbzilla.de>, 2016-2017,2019,2021,2023-2024
msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-03-17 03:19-0500\n"
"PO-Revision-Date: 2023-04-25 08:09+0000\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 08:09+0000\n"
"Last-Translator: Michael Wolf <milupo@sorbzilla.de>, "
"2016-2017,2019,2021,2023\n"
"Language-Team: Upper Sorbian (http://www.transifex.com/django/django/"
"2016-2017,2019,2021,2023-2024\n"
"Language-Team: Upper Sorbian (http://app.transifex.com/django/django/"
"language/hsb/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -32,13 +32,23 @@ msgstr "Wažne daty"
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "Objekt %(name)s z primarnym klučom %(key)r njeeksistuje."
msgid "Conflicting form data submitted. Please try again."
msgstr "Přećiwne formularowe daty zapodate. Prošu spytajće hišće raz."
msgid "Password changed successfully."
msgstr "Hesło je so wuspěšnje změniło."
msgid "Password-based authentication was disabled."
msgstr "Awtentifikacija na zakładźe hesła je so znjemóžniła."
#, python-format
msgid "Change password: %s"
msgstr "Hesło změnić: %s"
#, python-format
msgid "Set password: %s"
msgstr "Nastajene hesło: %s"
msgid "Authentication and Authorization"
msgstr "Awtentifikacija a awtorizacija"
@ -54,9 +64,24 @@ msgstr "Žane hesło nastajene."
msgid "Invalid password format or unknown hashing algorithm."
msgstr "Njepłaćiwy hesłowy format abo njeznaty kontrolny algoritmus."
msgid "Reset password"
msgstr "Hesło wróćo stajić"
msgid "Set password"
msgstr "Hesło postajić"
msgid "The two password fields didnt match."
msgstr "Dwě heslowej poli sej njewotpowědujetej."
msgid ""
"Whether the user will be able to authenticate using a password or not. If "
"disabled, they may still be able to authenticate using other backends, such "
"as Single Sign-On or LDAP."
msgstr ""
"Hač wužiwar móže z hesłom awtentifikować abo nic. Jeli to je znjemóžnjene, "
"je hišće móžno, z druhimi backendami awtentifikować, na přikład Single Sign-"
"On abo LDAP."
msgid "Password"
msgstr "Hesło"
@ -66,12 +91,25 @@ msgstr "Hesłowe wobkrućenje"
msgid "Enter the same password as before, for verification."
msgstr "Zapodajće samsne hesło kaž do toho, za přepruwowanje."
msgid "Password-based authentication"
msgstr "Awtentifikacija na zakładźe hesła"
msgid "Enabled"
msgstr "Zmóžnjeny"
msgid "Disabled"
msgstr "Znjemóžnjeny"
msgid ""
"Raw passwords are not stored, so there is no way to see this users "
"password, but you can change the password using <a href=\"{}\">this form</a>."
"Raw passwords are not stored, so there is no way to see the users password."
msgstr ""
"Hrube hesła so njeskładuja, tohodla njeda so hesło tutoho wužwarja widźeć, "
"ale móžeće hesło z pomocu <a href=\"{}\">tutoho formulara</a> změnić. "
"Hrube hesła so njeskładuja, tohodla móžnosć njeje, hesło wužiwarja widźeć."
msgid ""
"Enable password-based authentication for this user by setting a password."
msgstr ""
"Postajće hesło, zo byšće awtentifikaciju na zakładźe hesło za tutoho "
"wužiwarja zmóžnił."
#, python-format
msgid ""
@ -99,9 +137,6 @@ msgstr "Waše stare hesło je so wopak zapodało. Prošu zapodajće jo hišće r
msgid "Old password"
msgstr "Stare hesło"
msgid "Password (again)"
msgstr "Hesło (znowa)"
msgid "algorithm"
msgstr "algoritmus"

View File

@ -1,7 +1,7 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Adam Zahradník, 2023
# Adam Zahradník, 2023-2024
# Jannis Leidel <jannis@leidel.info>, 2011
# 18f25ad6fa9930fc67cb11aca9d16a27, 2012-2014
# Marian Andre <marian@andre.sk>, 2015,2017
@ -12,9 +12,9 @@ msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-03-17 03:19-0500\n"
"PO-Revision-Date: 2023-12-04 08:09+0000\n"
"Last-Translator: Martin Tóth <ezimir@gmail.com>, 2017-2018,2023\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 08:09+0000\n"
"Last-Translator: Adam Zahradník, 2023-2024\n"
"Language-Team: Slovak (http://app.transifex.com/django/django/language/sk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -36,13 +36,23 @@ msgstr "Dôležité dátumy"
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "Objekt %(name)s s primárnym kľúčom %(key)r neexistuje."
msgid "Conflicting form data submitted. Please try again."
msgstr "Neplatná požiadavka. Skúste to prosím znova."
msgid "Password changed successfully."
msgstr "Heslo úspešne zmenené."
msgid "Password-based authentication was disabled."
msgstr "Prihlasovanie pomocou hesla bolo vypnuté."
#, python-format
msgid "Change password: %s"
msgstr "Zmeniť heslo: %s"
#, python-format
msgid "Set password: %s"
msgstr "Nastaviť heslo: %s"
msgid "Authentication and Authorization"
msgstr "Autentifikácia a autorizácia"
@ -58,9 +68,24 @@ msgstr "Žiadne heslo."
msgid "Invalid password format or unknown hashing algorithm."
msgstr "Neplatný formát hesla alebo neznámy hašovací algoritmus."
msgid "Reset password"
msgstr "Obnoviť heslo"
msgid "Set password"
msgstr "Nastaviť heslo"
msgid "The two password fields didnt match."
msgstr "Heslo a jeho potvrdenie sa nezhodujú."
msgid ""
"Whether the user will be able to authenticate using a password or not. If "
"disabled, they may still be able to authenticate using other backends, such "
"as Single Sign-On or LDAP."
msgstr ""
"Určuje, či sa bude používateľ môcť prihlásiť pomocou hesla. Ak je "
"prihlasovanie pomocou hesla vypnuté, stále sa bude môcť vedieť prihlásiť "
"pomocou iných metód, ako napríklad Single Sign-On alebo LDAP."
msgid "Password"
msgstr "Heslo"
@ -70,13 +95,25 @@ msgstr "Potvrdenie hesla"
msgid "Enter the same password as before, for verification."
msgstr "Kvôli overeniu, znovu zadajte rovnaké heslo."
msgid "Password-based authentication"
msgstr "Prihlasovanie pomocou hesla"
msgid "Enabled"
msgstr "Povolené"
msgid "Disabled"
msgstr "Vypnuté"
msgid ""
"Raw passwords are not stored, so there is no way to see this users "
"password, but you can change the password using <a href=\"{}\">this form</a>."
"Raw passwords are not stored, so there is no way to see the users password."
msgstr ""
"Heslá v pôvodnom tvare nie sú ukladané, takže neexistuje spôsob zobraziť "
"heslo užívateľa. Môžete ho však zmeniť pomocou <a href=\"{}\">tohoto "
"formulára</a>."
"Nie je možné zobraziť si používateľovo heslo, nakoľko sa samotné heslá "
"neukladajú."
msgid ""
"Enable password-based authentication for this user by setting a password."
msgstr ""
"Nastavením hesla povolíte používateľovi prihlasovanie sa pomocou hesla."
#, python-format
msgid ""
@ -104,9 +141,6 @@ msgstr "Nezadali ste správne svoje staré heslo. Napíšte ho znovu, prosím."
msgid "Old password"
msgstr "Staré heslo"
msgid "Password (again)"
msgstr "Heslo (znova)"
msgid "algorithm"
msgstr "algoritmus"

View File

@ -1,16 +1,16 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Abduqadir Abliz <sahranbay@gmail.com>, 2023
# Abduqadir Abliz <sahranbay@gmail.com>, 2023-2024
# Azat, 2023
# Murat Orhun <oku.orhun@gmail.com>, 2023
msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-03-17 03:19-0500\n"
"PO-Revision-Date: 2023-12-04 08:09+0000\n"
"Last-Translator: Azat, 2023\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 08:09+0000\n"
"Last-Translator: Abduqadir Abliz <sahranbay@gmail.com>, 2023-2024\n"
"Language-Team: Uyghur (http://app.transifex.com/django/django/language/ug/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -31,13 +31,23 @@ msgstr "مۇھىم چېسلا"
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "%(key)r ئاساسىي ئاچقۇچى بار %(name)s ئوبيېكت مەۋجۇت ئەمەس."
msgid "Conflicting form data submitted. Please try again."
msgstr "تاپشۇرغان جەدۋەل سانلىق مەلۇماتىدا توقۇنۇش بار. قايتا سىناڭ."
msgid "Password changed successfully."
msgstr "پارول مۇۋەپپەقىيەتلىك ئۆزگەرتىلدى."
msgid "Password-based authentication was disabled."
msgstr "ئىم ئاساسىدىكى دەلىللەش چەكلەنگەن."
#, python-format
msgid "Change password: %s"
msgstr "پارول ئۆزگەرتىش: %s"
#, python-format
msgid "Set password: %s"
msgstr "ئىم تەڭشەك %s"
msgid "Authentication and Authorization"
msgstr "دەلىللەش ۋە ھوقۇق بېرىش"
@ -54,9 +64,24 @@ msgid "Invalid password format or unknown hashing algorithm."
msgstr ""
"ئىناۋەتسىز پارول پىچىمى ياكى يوچۇن مۇكەممەللىكىنى تەكشۈرۈش ھېسابلاش ئۇسۇلى."
msgid "Reset password"
msgstr "ئىم ئەسلىگە قايتۇر"
msgid "Set password"
msgstr "ئىم تەڭشەك"
msgid "The two password fields didnt match."
msgstr "ئىككى پارول بۆلىكى ماس كەلمىدى."
msgid ""
"Whether the user will be able to authenticate using a password or not. If "
"disabled, they may still be able to authenticate using other backends, such "
"as Single Sign-On or LDAP."
msgstr ""
"ئىشلەتكۈچى ئىم ئارقىلىق دەلىللەشنى ئىشلىتەلەمدۇ يوق. ئەگەر چەكلەنسە، ئۇلار "
"يەنىلا باشقا ئارقا ئۇچ پىروگراممىسى يەنى يەككە تىزىمغا كىرىش ياكى LDAP "
"ئارقىلىق دەلىللىيەلەيدۇ."
msgid "Password"
msgstr "پارول"
@ -66,13 +91,23 @@ msgstr "پارول جەزملەش"
msgid "Enter the same password as before, for verification."
msgstr "دەلىللەش ئۈچۈن، ئىلگىرىكى ئوخشاش ئىمنى قايتا كىرگۈزۈڭ."
msgid "Password-based authentication"
msgstr "ئىم ئاساسىدىكى دەلىللەش"
msgid "Enabled"
msgstr "قوزغىتىلدى"
msgid "Disabled"
msgstr "چەكلەندى"
msgid ""
"Raw passwords are not stored, so there is no way to see this users "
"password, but you can change the password using <a href=\"{}\">this form</a>."
"Raw passwords are not stored, so there is no way to see the users password."
msgstr "ئەسلى ئىم ساقلانمىدى، شۇڭلاشقا ئىشلەتكۈچى ئىمنى كۆرسىتەلمەيدۇ."
msgid ""
"Enable password-based authentication for this user by setting a password."
msgstr ""
"ئەسلى پارول سىستېمىغا ساقلانمايدۇ، شۇڭلاشقا بۇ ئىشلەتكۈچى ئىشلەتكەن پارولىنى "
"كۆرگىلى بولمايدۇ، ئەمما <a href=\"{}\">بۇ جەدۋەل</a> نى ئىشلىتىپ پارولنى "
"ئۆزگەرتەلەيسىز."
"بۇ ئىشلەتكۈچىگە ئىم تەڭشەش ئارقىلىق ئىم ئاساسىدىكى دەلىللەشنى قوزغىتىدۇ."
#, python-format
msgid ""
@ -100,9 +135,6 @@ msgstr "كونا پارولنى توغرا كىرگۈزمىدىڭىز. قايت
msgid "Old password"
msgstr "كونا پارول"
msgid "Password (again)"
msgstr "پارول (قايتا)"
msgid "algorithm"
msgstr "ئالگورىزىم"

View File

@ -11,6 +11,7 @@
# Kevin Sze <leiarix@gmail.com>, 2012
# Lele Long <schemacs@gmail.com>, 2011,2015
# Liping Wang <lynn.config@gmail.com>, 2016-2017
# L., 2024
# mozillazg <opensource.mozillazg@gmail.com>, 2016
# Lemon Li <leeway1985@gmail.com>, 2012-2013
# Wentao Han <wentao.han@gmail.com>, 2020
@ -22,9 +23,9 @@ msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-03-17 03:19-0500\n"
"PO-Revision-Date: 2023-12-04 08:09+0000\n"
"Last-Translator: Kaiqi Zhu, 2023\n"
"POT-Creation-Date: 2024-05-22 11:46-0300\n"
"PO-Revision-Date: 2024-10-07 08:09+0000\n"
"Last-Translator: L., 2024\n"
"Language-Team: Chinese (China) (http://app.transifex.com/django/django/"
"language/zh_CN/)\n"
"MIME-Version: 1.0\n"
@ -46,13 +47,23 @@ msgstr "重要日期"
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "具有主键 %(key)r 的对象 %(name)s 不存在。"
msgid "Conflicting form data submitted. Please try again."
msgstr "提交的表单数据存在冲突。请再试一次。"
msgid "Password changed successfully."
msgstr "密码修改成功。"
msgid "Password-based authentication was disabled."
msgstr "基于密码的验证已禁用。"
#, python-format
msgid "Change password: %s"
msgstr "修改密码:%s"
#, python-format
msgid "Set password: %s"
msgstr "设置密码: %s"
msgid "Authentication and Authorization"
msgstr "认证和授权"
@ -68,9 +79,23 @@ msgstr "密码未设置。"
msgid "Invalid password format or unknown hashing algorithm."
msgstr "不可用的密码格式或未知的哈希算法。"
msgid "Reset password"
msgstr "重置密码"
msgid "Set password"
msgstr "设置密码"
msgid "The two password fields didnt match."
msgstr "输入的两个密码不一致。"
msgid ""
"Whether the user will be able to authenticate using a password or not. If "
"disabled, they may still be able to authenticate using other backends, such "
"as Single Sign-On or LDAP."
msgstr ""
"用户是否能够使用密码进行认证。如果禁用,他们仍可能能够使用其他后端进行认证,"
"例如单一登入或LDAP。"
msgid "Password"
msgstr "密码"
@ -80,12 +105,22 @@ msgstr "密码确认"
msgid "Enter the same password as before, for verification."
msgstr "为了校验,请输入与上面相同的密码。"
msgid "Password-based authentication"
msgstr "基于密码的验证"
msgid "Enabled"
msgstr "启用"
msgid "Disabled"
msgstr "禁用"
msgid ""
"Raw passwords are not stored, so there is no way to see this users "
"password, but you can change the password using <a href=\"{}\">this form</a>."
msgstr ""
"密码原文未存储在系统中,因此无法看到该用户的密码。然而你可以通过<a "
"href=\"{}\">这个表单</a>来修改密码。"
"Raw passwords are not stored, so there is no way to see the users password."
msgstr "原始密码不会被储存,因此无法查看用户的密码。"
msgid ""
"Enable password-based authentication for this user by setting a password."
msgstr "通过设定密码为此用户启用基于密码的认证。"
#, python-format
msgid ""
@ -111,9 +146,6 @@ msgstr "你的旧密码不正确。请重新输入。"
msgid "Old password"
msgstr "旧密码"
msgid "Password (again)"
msgstr "密码(重复)"
msgid "algorithm"
msgstr "算法"

View File

@ -1,6 +1,8 @@
from functools import partial
from urllib.parse import urlsplit
from asgiref.sync import iscoroutinefunction, markcoroutinefunction
from django.conf import settings
from django.contrib import auth
from django.contrib.auth import REDIRECT_FIELD_NAME, load_backend
@ -88,7 +90,7 @@ class LoginRequiredMiddleware(MiddlewareMixin):
)
class RemoteUserMiddleware(MiddlewareMixin):
class RemoteUserMiddleware:
"""
Middleware for utilizing web-server-provided authentication.
@ -102,13 +104,27 @@ class RemoteUserMiddleware(MiddlewareMixin):
different header.
"""
sync_capable = True
async_capable = True
def __init__(self, get_response):
if get_response is None:
raise ValueError("get_response must be provided.")
self.get_response = get_response
self.is_async = iscoroutinefunction(get_response)
if self.is_async:
markcoroutinefunction(self)
super().__init__()
# Name of request header to grab username from. This will be the key as
# used in the request.META dictionary, i.e. the normalization of headers to
# all uppercase and the addition of "HTTP_" prefix apply.
header = "REMOTE_USER"
force_logout_if_no_header = True
def process_request(self, request):
def __call__(self, request):
if self.is_async:
return self.__acall__(request)
# AuthenticationMiddleware is required so that request.user exists.
if not hasattr(request, "user"):
raise ImproperlyConfigured(
@ -126,13 +142,13 @@ class RemoteUserMiddleware(MiddlewareMixin):
# AnonymousUser by the AuthenticationMiddleware).
if self.force_logout_if_no_header and request.user.is_authenticated:
self._remove_invalid_user(request)
return
return self.get_response(request)
# If the user is already authenticated and that user is the user we are
# getting passed in the headers, then the correct user is already
# persisted in the session and we don't need to continue.
if request.user.is_authenticated:
if request.user.get_username() == self.clean_username(username, request):
return
return self.get_response(request)
else:
# An authenticated user is associated with the request, but
# it does not match the authorized user in the header.
@ -146,6 +162,51 @@ class RemoteUserMiddleware(MiddlewareMixin):
# by logging the user in.
request.user = user
auth.login(request, user)
return self.get_response(request)
async def __acall__(self, request):
# AuthenticationMiddleware is required so that request.user exists.
if not hasattr(request, "user"):
raise ImproperlyConfigured(
"The Django remote user auth middleware requires the"
" authentication middleware to be installed. Edit your"
" MIDDLEWARE setting to insert"
" 'django.contrib.auth.middleware.AuthenticationMiddleware'"
" before the RemoteUserMiddleware class."
)
try:
username = request.META["HTTP_" + self.header]
except KeyError:
# If specified header doesn't exist then remove any existing
# authenticated remote-user, or return (leaving request.user set to
# AnonymousUser by the AuthenticationMiddleware).
if self.force_logout_if_no_header:
user = await request.auser()
if user.is_authenticated:
await self._aremove_invalid_user(request)
return await self.get_response(request)
user = await request.auser()
# If the user is already authenticated and that user is the user we are
# getting passed in the headers, then the correct user is already
# persisted in the session and we don't need to continue.
if user.is_authenticated:
if user.get_username() == self.clean_username(username, request):
return await self.get_response(request)
else:
# An authenticated user is associated with the request, but
# it does not match the authorized user in the header.
await self._aremove_invalid_user(request)
# We are seeing this user for the first time in this session, attempt
# to authenticate the user.
user = await auth.aauthenticate(request, remote_user=username)
if user:
# User is valid. Set request.user and persist user in the session
# by logging the user in.
request.user = user
await auth.alogin(request, user)
return await self.get_response(request)
def clean_username(self, username, request):
"""
@ -176,6 +237,22 @@ class RemoteUserMiddleware(MiddlewareMixin):
if isinstance(stored_backend, RemoteUserBackend):
auth.logout(request)
async def _aremove_invalid_user(self, request):
"""
Remove the current authenticated user in the request which is invalid
but only if the user is authenticated via the RemoteUserBackend.
"""
try:
stored_backend = load_backend(
await request.session.aget(auth.BACKEND_SESSION_KEY, "")
)
except ImportError:
# Backend failed to load.
await auth.alogout(request)
else:
if isinstance(stored_backend, RemoteUserBackend):
await auth.alogout(request)
class PersistentRemoteUserMiddleware(RemoteUserMiddleware):
"""

View File

@ -95,6 +95,9 @@ class GroupManager(models.Manager):
def get_by_natural_key(self, name):
return self.get(name=name)
async def aget_by_natural_key(self, name):
return await self.aget(name=name)
class Group(models.Model):
"""
@ -137,10 +140,7 @@ class Group(models.Model):
class UserManager(BaseUserManager):
use_in_migrations = True
def _create_user(self, username, email, password, **extra_fields):
"""
Create and save a user with the given username, email, and password.
"""
def _create_user_object(self, username, email, password, **extra_fields):
if not username:
raise ValueError("The given username must be set")
email = self.normalize_email(email)
@ -153,14 +153,32 @@ class UserManager(BaseUserManager):
username = GlobalUserModel.normalize_username(username)
user = self.model(username=username, email=email, **extra_fields)
user.password = make_password(password)
return user
def _create_user(self, username, email, password, **extra_fields):
"""
Create and save a user with the given username, email, and password.
"""
user = self._create_user_object(username, email, password, **extra_fields)
user.save(using=self._db)
return user
async def _acreate_user(self, username, email, password, **extra_fields):
"""See _create_user()"""
user = self._create_user_object(username, email, password, **extra_fields)
await user.asave(using=self._db)
return user
def create_user(self, username, email=None, password=None, **extra_fields):
extra_fields.setdefault("is_staff", False)
extra_fields.setdefault("is_superuser", False)
return self._create_user(username, email, password, **extra_fields)
async def acreate_user(self, username, email=None, password=None, **extra_fields):
extra_fields.setdefault("is_staff", False)
extra_fields.setdefault("is_superuser", False)
return await self._acreate_user(username, email, password, **extra_fields)
def create_superuser(self, username, email=None, password=None, **extra_fields):
extra_fields.setdefault("is_staff", True)
extra_fields.setdefault("is_superuser", True)
@ -172,6 +190,19 @@ class UserManager(BaseUserManager):
return self._create_user(username, email, password, **extra_fields)
async def acreate_superuser(
self, username, email=None, password=None, **extra_fields
):
extra_fields.setdefault("is_staff", True)
extra_fields.setdefault("is_superuser", True)
if extra_fields.get("is_staff") is not True:
raise ValueError("Superuser must have is_staff=True.")
if extra_fields.get("is_superuser") is not True:
raise ValueError("Superuser must have is_superuser=True.")
return await self._acreate_user(username, email, password, **extra_fields)
def with_perm(
self, perm, is_active=True, include_superusers=True, backend=None, obj=None
):
@ -210,6 +241,15 @@ def _user_get_permissions(user, obj, from_name):
return permissions
async def _auser_get_permissions(user, obj, from_name):
permissions = set()
name = "aget_%s_permissions" % from_name
for backend in auth.get_backends():
if hasattr(backend, name):
permissions.update(await getattr(backend, name)(user, obj))
return permissions
def _user_has_perm(user, perm, obj):
"""
A backend can raise `PermissionDenied` to short-circuit permission checking.
@ -225,6 +265,19 @@ def _user_has_perm(user, perm, obj):
return False
async def _auser_has_perm(user, perm, obj):
"""See _user_has_perm()"""
for backend in auth.get_backends():
if not hasattr(backend, "ahas_perm"):
continue
try:
if await backend.ahas_perm(user, perm, obj):
return True
except PermissionDenied:
return False
return False
def _user_has_module_perms(user, app_label):
"""
A backend can raise `PermissionDenied` to short-circuit permission checking.
@ -240,6 +293,19 @@ def _user_has_module_perms(user, app_label):
return False
async def _auser_has_module_perms(user, app_label):
"""See _user_has_module_perms()"""
for backend in auth.get_backends():
if not hasattr(backend, "ahas_module_perms"):
continue
try:
if await backend.ahas_module_perms(user, app_label):
return True
except PermissionDenied:
return False
return False
class PermissionsMixin(models.Model):
"""
Add the fields and methods necessary to support the Group and Permission
@ -285,6 +351,10 @@ class PermissionsMixin(models.Model):
"""
return _user_get_permissions(self, obj, "user")
async def aget_user_permissions(self, obj=None):
"""See get_user_permissions()"""
return await _auser_get_permissions(self, obj, "user")
def get_group_permissions(self, obj=None):
"""
Return a list of permission strings that this user has through their
@ -293,9 +363,16 @@ class PermissionsMixin(models.Model):
"""
return _user_get_permissions(self, obj, "group")
async def aget_group_permissions(self, obj=None):
"""See get_group_permissions()"""
return await _auser_get_permissions(self, obj, "group")
def get_all_permissions(self, obj=None):
return _user_get_permissions(self, obj, "all")
async def aget_all_permissions(self, obj=None):
return await _auser_get_permissions(self, obj, "all")
def has_perm(self, perm, obj=None):
"""
Return True if the user has the specified permission. Query all
@ -311,6 +388,15 @@ class PermissionsMixin(models.Model):
# Otherwise we need to check the backends.
return _user_has_perm(self, perm, obj)
async def ahas_perm(self, perm, obj=None):
"""See has_perm()"""
# Active superusers have all permissions.
if self.is_active and self.is_superuser:
return True
# Otherwise we need to check the backends.
return await _auser_has_perm(self, perm, obj)
def has_perms(self, perm_list, obj=None):
"""
Return True if the user has each of the specified permissions. If
@ -320,6 +406,15 @@ class PermissionsMixin(models.Model):
raise ValueError("perm_list must be an iterable of permissions.")
return all(self.has_perm(perm, obj) for perm in perm_list)
async def ahas_perms(self, perm_list, obj=None):
"""See has_perms()"""
if not isinstance(perm_list, Iterable) or isinstance(perm_list, str):
raise ValueError("perm_list must be an iterable of permissions.")
for perm in perm_list:
if not await self.ahas_perm(perm, obj):
return False
return True
def has_module_perms(self, app_label):
"""
Return True if the user has any permissions in the given app label.
@ -331,6 +426,14 @@ class PermissionsMixin(models.Model):
return _user_has_module_perms(self, app_label)
async def ahas_module_perms(self, app_label):
"""See has_module_perms()"""
# Active superusers have all permissions.
if self.is_active and self.is_superuser:
return True
return await _auser_has_module_perms(self, app_label)
class AbstractUser(AbstractBaseUser, PermissionsMixin):
"""
@ -471,23 +574,46 @@ class AnonymousUser:
def get_user_permissions(self, obj=None):
return _user_get_permissions(self, obj, "user")
async def aget_user_permissions(self, obj=None):
return await _auser_get_permissions(self, obj, "user")
def get_group_permissions(self, obj=None):
return set()
async def aget_group_permissions(self, obj=None):
return self.get_group_permissions(obj)
def get_all_permissions(self, obj=None):
return _user_get_permissions(self, obj, "all")
async def aget_all_permissions(self, obj=None):
return await _auser_get_permissions(self, obj, "all")
def has_perm(self, perm, obj=None):
return _user_has_perm(self, perm, obj=obj)
async def ahas_perm(self, perm, obj=None):
return await _auser_has_perm(self, perm, obj=obj)
def has_perms(self, perm_list, obj=None):
if not isinstance(perm_list, Iterable) or isinstance(perm_list, str):
raise ValueError("perm_list must be an iterable of permissions.")
return all(self.has_perm(perm, obj) for perm in perm_list)
async def ahas_perms(self, perm_list, obj=None):
if not isinstance(perm_list, Iterable) or isinstance(perm_list, str):
raise ValueError("perm_list must be an iterable of permissions.")
for perm in perm_list:
if not await self.ahas_perm(perm, obj):
return False
return True
def has_module_perms(self, module):
return _user_has_module_perms(self, module)
async def ahas_module_perms(self, module):
return await _auser_has_module_perms(self, module)
@property
def is_anonymous(self):
return True

View File

@ -106,17 +106,16 @@ class MinimumLengthValidator:
def validate(self, password, user=None):
if len(password) < self.min_length:
raise ValidationError(
ngettext(
"This password is too short. It must contain at least "
"%(min_length)d character.",
"This password is too short. It must contain at least "
"%(min_length)d characters.",
self.min_length,
),
code="password_too_short",
params={"min_length": self.min_length},
)
raise ValidationError(self.get_error_message(), code="password_too_short")
def get_error_message(self):
return ngettext(
"This password is too short. It must contain at least %d character."
% self.min_length,
"This password is too short. It must contain at least %d characters."
% self.min_length,
self.min_length,
)
def get_help_text(self):
return ngettext(
@ -203,11 +202,14 @@ class UserAttributeSimilarityValidator:
except FieldDoesNotExist:
verbose_name = attribute_name
raise ValidationError(
_("The password is too similar to the %(verbose_name)s."),
self.get_error_message(),
code="password_too_similar",
params={"verbose_name": verbose_name},
)
def get_error_message(self):
return _("The password is too similar to the %(verbose_name)s.")
def get_help_text(self):
return _(
"Your password cant be too similar to your other personal information."
@ -242,10 +244,13 @@ class CommonPasswordValidator:
def validate(self, password, user=None):
if password.lower().strip() in self.passwords:
raise ValidationError(
_("This password is too common."),
self.get_error_message(),
code="password_too_common",
)
def get_error_message(self):
return _("This password is too common.")
def get_help_text(self):
return _("Your password cant be a commonly used password.")
@ -258,9 +263,12 @@ class NumericPasswordValidator:
def validate(self, password, user=None):
if password.isdigit():
raise ValidationError(
_("This password is entirely numeric."),
self.get_error_message(),
code="password_entirely_numeric",
)
def get_error_message(self):
return _("This password is entirely numeric.")
def get_help_text(self):
return _("Your password cant be entirely numeric.")

View File

@ -1,6 +1,7 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Aindriú Mac Giolla Eoin, 2024
# Jannis Leidel <jannis@leidel.info>, 2011
# Luke Blaney <transifex@lukeblaney.co.uk>, 2019
# Michael Thornhill <michael@maithu.com>, 2012
@ -8,10 +9,10 @@ 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-06-22 21:48+0000\n"
"Last-Translator: Luke Blaney <transifex@lukeblaney.co.uk>\n"
"Language-Team: Irish (http://www.transifex.com/django/django/language/ga/)\n"
"POT-Creation-Date: 2019-09-08 17:27+0200\n"
"PO-Revision-Date: 2024-10-07 19:22+0000\n"
"Last-Translator: Aindriú Mac Giolla Eoin, 2024\n"
"Language-Team: Irish (http://app.transifex.com/django/django/language/ga/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -36,9 +37,9 @@ msgid "Content type %(ct_id)s object has no associated model"
msgstr "Ní bhaineann samhail leis an cineál inneachar %(ct_id)s"
#, python-format
msgid "Content type %(ct_id)s object %(obj_id)s doesn't exist"
msgstr "Níl cineál inneachar %(ct_id)s oibiacht %(obj_id)s ann"
msgid "Content type %(ct_id)s object %(obj_id)s doesnt exist"
msgstr "Níl cineál ábhair %(ct_id)s réad %(obj_id)s ann"
#, python-format
msgid "%(ct_name)s objects don't have a get_absolute_url() method"
msgstr "Níl modh get_absolute_url() ag %(ct_name)s oibiachtaí"
msgid "%(ct_name)s objects dont have a get_absolute_url() method"
msgstr "Níl modh get_absolute_url() ag réada %(ct_name)s"

View File

@ -1,16 +1,17 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Aindriú Mac Giolla Eoin, 2024
# Jannis Leidel <jannis@leidel.info>, 2011
# Michael Thornhill <michael@maithu.com>, 2011-2012,2015
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-23 18:54+0000\n"
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
"Language-Team: Irish (http://www.transifex.com/django/django/language/ga/)\n"
"POT-Creation-Date: 2019-09-08 17:27+0200\n"
"PO-Revision-Date: 2024-10-07 19:03+0000\n"
"Last-Translator: Aindriú Mac Giolla Eoin, 2024\n"
"Language-Team: Irish (http://app.transifex.com/django/django/language/ga/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -28,9 +29,9 @@ 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 ""
"Sampla '/about/contact/' Déan cinnte go bhfuil príomhslaid agus cúlslais "
"Sampla: “/ faoi/teagmháil/”. Bí cinnte go bhfuil slais tosaigh agus slaise "
"agat."
msgid ""
@ -40,6 +41,9 @@ msgstr ""
"Ní mór an luach a bhfuil ach litreacha, uimhreacha, poncanna, béim, dashes, "
"slaiseanna nó thilde."
msgid "Example: “/about/contact”. Make sure to have a leading slash."
msgstr "Sampla: “/ faoi/teagmháil”. Bí cinnte go bhfuil slais tosaigh."
msgid "URL is missing a leading slash."
msgstr "Tá slais tosaigh in easnamh ag an URL."
@ -63,11 +67,11 @@ msgid "template name"
msgstr "ainm an teimpléid"
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 isnt provided, the system "
"will use “flatpages/default.html”."
msgstr ""
"Sampla: 'flatpages/contact_page.html'. Muna bhfuil sé ar soláthair, bainfidh "
"an córás úsáid as 'flatpages/default.html'."
"Sampla: “flatpages/contact_page.html”. Mura gcuirtear é seo ar fáil, "
"úsáidfidh an córas “flatpages/default.html”."
msgid "registration required"
msgstr "clárúchán riachtanach"
@ -78,7 +82,7 @@ msgstr ""
"leathanach seo a fheiceail"
msgid "sites"
msgstr ""
msgstr "láithreáin"
msgid "flat page"
msgstr "leacleathanach"

View File

@ -1,16 +1,17 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Aindriú Mac Giolla Eoin, 2024
# Jannis Leidel <jannis@leidel.info>, 2011
# Michael Thornhill <michael@maithu.com>, 2012
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-23 18:54+0000\n"
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
"Language-Team: Irish (http://www.transifex.com/django/django/language/ga/)\n"
"POT-Creation-Date: 2023-09-18 11:41-0300\n"
"PO-Revision-Date: 2024-10-07 18:45+0000\n"
"Last-Translator: Aindriú Mac Giolla Eoin, 2024\n"
"Language-Team: Irish (http://app.transifex.com/django/django/language/ga/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -19,14 +20,16 @@ msgstr ""
"4);\n"
msgid "GIS"
msgstr ""
msgstr "GIS"
msgid "The base GIS field."
msgstr ""
msgstr "Réimse bonn GIS."
msgid ""
"The base Geometry field -- maps to the OpenGIS Specification Geometry type."
"The base Geometry field maps to the OpenGIS Specification Geometry type."
msgstr ""
"An bonnréimse Céimseata — léarscáileanna chuig an gcineál Céimseata "
"Sonraíochta OpenGIS."
msgid "Point"
msgstr "Pointe"
@ -50,10 +53,10 @@ msgid "Geometry collection"
msgstr "Céimseata bhailiú"
msgid "Extent Aggregate Field"
msgstr ""
msgstr "Méid Réimse Comhiomlán"
msgid "Raster Field"
msgstr ""
msgstr "Réimse Raster"
msgid "No geometry value provided."
msgstr "Ní soláthair méid geoiméadracht"
@ -72,17 +75,14 @@ msgstr ""
"geoiméadracht."
msgid "Delete all Features"
msgstr ""
msgid "WKT debugging window:"
msgstr ""
msgstr "Scrios na Gnéithe go léir"
msgid "Debugging window (serialized value)"
msgstr ""
msgstr "Fuinneog dífhabhtaithe (luach sraitheach)"
msgid "No feeds are registered."
msgstr "Níl fothaí cláraithe."
#, python-format
msgid "Slug %r isn't registered."
msgstr "Níl slug %r cláraithe."
msgid "Slug %r isnt registered."
msgstr "Níl seilide %r cláraithe."

View File

@ -1,6 +1,7 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Aindriú Mac Giolla Eoin, 2024
# Jannis Leidel <jannis@leidel.info>, 2011
# Luke Blaney <transifex@lukeblaney.co.uk>, 2019
# Michael Thornhill <michael@maithu.com>, 2011-2012
@ -8,10 +9,10 @@ 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-06-22 21:44+0000\n"
"Last-Translator: Luke Blaney <transifex@lukeblaney.co.uk>\n"
"Language-Team: Irish (http://www.transifex.com/django/django/language/ga/)\n"
"POT-Creation-Date: 2023-09-18 11:41-0300\n"
"PO-Revision-Date: 2024-10-07 18:40+0000\n"
"Last-Translator: Aindriú Mac Giolla Eoin, 2024\n"
"Language-Team: Irish (http://app.transifex.com/django/django/language/ga/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -20,7 +21,7 @@ msgstr ""
"4);\n"
msgid "Humanize"
msgstr ""
msgstr "Déan daonnachadh"
#. Translators: Ordinal format for 11 (11th), 12 (12th), and 13 (13th).
msgctxt "ordinal 11, 12, 13"
@ -42,7 +43,7 @@ msgctxt "ordinal 2"
msgid "{}nd"
msgstr "{}ú"
#. Translators: Ordinal format when value ends with 3, e.g. 83th, except 13.
#. Translators: Ordinal format when value ends with 3, e.g. 83rd, except 13.
msgctxt "ordinal 3"
msgid "{}rd"
msgstr "{}ú"
@ -77,15 +78,6 @@ msgctxt "ordinal 9"
msgid "{}th"
msgstr "{}ú"
#, python-format
msgid "%(value).1f million"
msgid_plural "%(value).1f million"
msgstr[0] "%(value).1f milliún"
msgstr[1] "%(value).1f milliún"
msgstr[2] "%(value).1f milliún"
msgstr[3] "%(value).1f milliún"
msgstr[4] "%(value).1f milliún"
#, python-format
msgid "%(value)s million"
msgid_plural "%(value)s million"
@ -95,15 +87,6 @@ msgstr[2] " %(value)s milliún"
msgstr[3] " %(value)s milliún"
msgstr[4] " %(value)s milliún"
#, python-format
msgid "%(value).1f billion"
msgid_plural "%(value).1f billion"
msgstr[0] "%(value).1f billiún"
msgstr[1] "%(value).1f billiún"
msgstr[2] "%(value).1f billiún"
msgstr[3] "%(value).1f billiún"
msgstr[4] "%(value).1f billiún"
#, python-format
msgid "%(value)s billion"
msgid_plural "%(value)s billion"
@ -113,15 +96,6 @@ msgstr[2] " %(value)s billiún"
msgstr[3] " %(value)s billiún"
msgstr[4] " %(value)s billiún"
#, python-format
msgid "%(value).1f trillion"
msgid_plural "%(value).1f trillion"
msgstr[0] "%(value).1f trilliún"
msgstr[1] "%(value).1f trilliún"
msgstr[2] "%(value).1f trilliún"
msgstr[3] "%(value).1f trilliún"
msgstr[4] "%(value).1f trilliún"
#, python-format
msgid "%(value)s trillion"
msgid_plural "%(value)s trillion"
@ -131,15 +105,6 @@ msgstr[2] " %(value)s trilliún"
msgstr[3] " %(value)s trilliún"
msgstr[4] " %(value)s trilliún"
#, python-format
msgid "%(value).1f quadrillion"
msgid_plural "%(value).1f quadrillion"
msgstr[0] "%(value).1f quadrilliún"
msgstr[1] "%(value).1f quadrilliún"
msgstr[2] "%(value).1f quadrilliún"
msgstr[3] "%(value).1f quadrilliún"
msgstr[4] "%(value).1f quadrilliún"
#, python-format
msgid "%(value)s quadrillion"
msgid_plural "%(value)s quadrillion"
@ -149,15 +114,6 @@ msgstr[2] "%(value)s quadrilliún"
msgstr[3] "%(value)s quadrilliún"
msgstr[4] "%(value)s quadrilliún"
#, python-format
msgid "%(value).1f quintillion"
msgid_plural "%(value).1f quintillion"
msgstr[0] "%(value).1f quintillion"
msgstr[1] "%(value).1f quintillion"
msgstr[2] "%(value).1f quintillion"
msgstr[3] "%(value).1f quintillion"
msgstr[4] "%(value).1f quintillion"
#, python-format
msgid "%(value)s quintillion"
msgid_plural "%(value)s quintillion"
@ -167,15 +123,6 @@ msgstr[2] "%(value)s quintillion"
msgstr[3] "%(value)s quintillion"
msgstr[4] "%(value)s quintillion"
#, python-format
msgid "%(value).1f sextillion"
msgid_plural "%(value).1f sextillion"
msgstr[0] "%(value).1f sextillion"
msgstr[1] "%(value).1f sextillion"
msgstr[2] "%(value).1f sextillion"
msgstr[3] "%(value).1f sextillion"
msgstr[4] "%(value).1f sextillion"
#, python-format
msgid "%(value)s sextillion"
msgid_plural "%(value)s sextillion"
@ -185,15 +132,6 @@ msgstr[2] "%(value)s sextillion"
msgstr[3] "%(value)s sextillion"
msgstr[4] "%(value)s sextillion"
#, python-format
msgid "%(value).1f septillion"
msgid_plural "%(value).1f septillion"
msgstr[0] "%(value).1f septillion"
msgstr[1] "%(value).1f septillion"
msgstr[2] "%(value).1f septillion"
msgstr[3] "%(value).1f septillion"
msgstr[4] "%(value).1f septillion"
#, python-format
msgid "%(value)s septillion"
msgid_plural "%(value)s septillion"
@ -203,15 +141,6 @@ msgstr[2] "%(value)s septillion"
msgstr[3] "%(value)s septillion"
msgstr[4] "%(value)s septillion"
#, python-format
msgid "%(value).1f octillion"
msgid_plural "%(value).1f octillion"
msgstr[0] "%(value).1f octillion"
msgstr[1] "%(value).1f octillion"
msgstr[2] "%(value).1f octillion"
msgstr[3] "%(value).1f octillion"
msgstr[4] "%(value).1f octillion"
#, python-format
msgid "%(value)s octillion"
msgid_plural "%(value)s octillion"
@ -221,15 +150,6 @@ msgstr[2] "%(value)s octillion"
msgstr[3] "%(value)s octillion"
msgstr[4] "%(value)s octillion"
#, python-format
msgid "%(value).1f nonillion"
msgid_plural "%(value).1f nonillion"
msgstr[0] "%(value).1f nonillion"
msgstr[1] "%(value).1f nonillion"
msgstr[2] "%(value).1f nonillion"
msgstr[3] "%(value).1f nonillion"
msgstr[4] "%(value).1f nonillion"
#, python-format
msgid "%(value)s nonillion"
msgid_plural "%(value)s nonillion"
@ -239,15 +159,6 @@ msgstr[2] "%(value)s nonillion"
msgstr[3] "%(value)s nonillion"
msgstr[4] "%(value)s nonillion"
#, python-format
msgid "%(value).1f decillion"
msgid_plural "%(value).1f decillion"
msgstr[0] "%(value).1f decillion"
msgstr[1] "%(value).1f decillion"
msgstr[2] "%(value).1f decillion"
msgstr[3] "%(value).1f decillion"
msgstr[4] "%(value).1f decillion"
#, python-format
msgid "%(value)s decillion"
msgid_plural "%(value)s decillion"
@ -257,15 +168,6 @@ msgstr[2] "%(value)s decillion"
msgstr[3] "%(value)s decillion"
msgstr[4] "%(value)s decillion"
#, python-format
msgid "%(value).1f googol"
msgid_plural "%(value).1f googol"
msgstr[0] "%(value).1f googol"
msgstr[1] "%(value).1f googol"
msgstr[2] "%(value).1f googol"
msgstr[3] "%(value).1f googol"
msgstr[4] "%(value).1f googol"
#, python-format
msgid "%(value)s googol"
msgid_plural "%(value)s googol"
@ -315,40 +217,40 @@ msgstr "inné"
#. weeks'
#, python-format
msgid "%(delta)s ago"
msgstr ""
msgstr "%(delta)s ó shin"
#. 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[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[0] "uair an chloig ó shin"
msgstr[1] "%(count)s uair an chloig ó shin"
msgstr[2] "%(count)s uair an chloig ó shin"
msgstr[3] "%(count)s uair an chloig ó shin"
msgstr[4] "%(count)s uair an chloig ó shin"
#. 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[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[0] "nóiméad ó shin"
msgstr[1] "%(count)s nóiméad ó shin"
msgstr[2] "%(count)s nóiméad ó shin"
msgstr[3] "%(count)s nóiméad ó shin"
msgstr[4] "%(count)s nóiméad ó shin"
#. 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[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[0] "soicind ó shin"
msgstr[1] "%(count)s soicindí ó shin"
msgstr[2] "%(count)s soicindí ó shin"
msgstr[3] "%(count)s soicindí ó shin"
msgstr[4] "%(count)s soicindí ó shin"
msgid "now"
msgstr "anois"
@ -358,159 +260,159 @@ msgstr "anois"
#, python-format
msgid "a second from now"
msgid_plural "%(count)s seconds from now"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[0] "soicind as seo amach"
msgstr[1] "%(count)s soicind as seo amach"
msgstr[2] "%(count)s soicind as seo amach"
msgstr[3] "%(count)s soicind as seo amach"
msgstr[4] "%(count)s soicind as seo amach"
#. 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[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[0] "nóiméad ó anois"
msgstr[1] "%(count)s nóiméad as seo"
msgstr[2] "%(count)s nóiméad as seo"
msgstr[3] "%(count)s nóiméad as seo"
msgstr[4] "%(count)s nóiméad as seo"
#. 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[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[0] "uair an chloig ó anois"
msgstr[1] "%(count)s uair an chloig as seo amach"
msgstr[2] "%(count)s uair an chloig as seo amach"
msgstr[3] "%(count)s uair an chloig as seo amach"
msgstr[4] "%(count)s uair an chloig as seo amach"
#. 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 as seo amach"
#. 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] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgid "%(num)d year"
msgid_plural "%(num)d years"
msgstr[0] "%(num)d bhliain"
msgstr[1] "%(num)d bliain"
msgstr[2] "%(num)d bliain"
msgstr[3] "%(num)d bliain"
msgstr[4] "%(num)d bliain"
#, python-format
msgctxt "naturaltime-past"
msgid "%d month"
msgid_plural "%d months"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgid "%(num)d month"
msgid_plural "%(num)d months"
msgstr[0] "%(num)d mí"
msgstr[1] "%(num)d mí"
msgstr[2] "%(num)d mí"
msgstr[3] "%(num)d mí"
msgstr[4] "%(num)d mí"
#, python-format
msgctxt "naturaltime-past"
msgid "%d week"
msgid_plural "%d weeks"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgid "%(num)d week"
msgid_plural "%(num)d weeks"
msgstr[0] "%(num)d seachtain"
msgstr[1] "%(num)d seachtain"
msgstr[2] "%(num)d seachtain"
msgstr[3] "%(num)d seachtain"
msgstr[4] "%(num)d seachtain"
#, python-format
msgctxt "naturaltime-past"
msgid "%d day"
msgid_plural "%d days"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgid "%(num)d day"
msgid_plural "%(num)d days"
msgstr[0] "%(num)d lá"
msgstr[1] "%(num)d lá"
msgstr[2] "%(num)d lá"
msgstr[3] "%(num)d lá"
msgstr[4] "%(num)d lá"
#, python-format
msgctxt "naturaltime-past"
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgid "%(num)d hour"
msgid_plural "%(num)d hours"
msgstr[0] "%(num)d uair"
msgstr[1] "%(num)d uair an chloig"
msgstr[2] "%(num)d uair an chloig"
msgstr[3] "%(num)d uair an chloig"
msgstr[4] "%(num)d uair an chloig"
#, python-format
msgctxt "naturaltime-past"
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgid "%(num)d minute"
msgid_plural "%(num)d minutes"
msgstr[0] "%(num)d nóiméad"
msgstr[1] "%(num)d nóiméad"
msgstr[2] "%(num)d nóiméad"
msgstr[3] "%(num)d nóiméad"
msgstr[4] "%(num)d nóiméad"
#. 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] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgid "%(num)d year"
msgid_plural "%(num)d years"
msgstr[0] "%(num)d bhliain"
msgstr[1] "%(num)d bliain"
msgstr[2] "%(num)d bliain"
msgstr[3] "%(num)d bliain"
msgstr[4] "%(num)d bliain"
#, python-format
msgctxt "naturaltime-future"
msgid "%d month"
msgid_plural "%d months"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgid "%(num)d month"
msgid_plural "%(num)d months"
msgstr[0] "%(num)d mí"
msgstr[1] "%(num)d mí"
msgstr[2] "%(num)d mí"
msgstr[3] "%(num)d mí"
msgstr[4] "%(num)d mí"
#, python-format
msgctxt "naturaltime-future"
msgid "%d week"
msgid_plural "%d weeks"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgid "%(num)d week"
msgid_plural "%(num)d weeks"
msgstr[0] "%(num)d seachtain"
msgstr[1] "%(num)d seachtain"
msgstr[2] "%(num)d seachtain"
msgstr[3] "%(num)d seachtain"
msgstr[4] "%(num)d seachtain"
#, python-format
msgctxt "naturaltime-future"
msgid "%d day"
msgid_plural "%d days"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgid "%(num)d day"
msgid_plural "%(num)d days"
msgstr[0] "%(num)d lá"
msgstr[1] "%(num)d lá"
msgstr[2] "%(num)d lá"
msgstr[3] "%(num)d lá"
msgstr[4] "%(num)d lá"
#, python-format
msgctxt "naturaltime-future"
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgid "%(num)d hour"
msgid_plural "%(num)d hours"
msgstr[0] "%(num)d uair"
msgstr[1] "%(num)d uair an chloig"
msgstr[2] "%(num)d uair an chloig"
msgstr[3] "%(num)d uair an chloig"
msgstr[4] "%(num)d uair an chloig"
#, python-format
msgctxt "naturaltime-future"
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgid "%(num)d minute"
msgid_plural "%(num)d minutes"
msgstr[0] "%(num)d nóiméad"
msgstr[1] "%(num)d nóiméad"
msgstr[2] "%(num)d nóiméad"
msgstr[3] "%(num)d nóiméad"
msgstr[4] "%(num)d nóiméad"

View File

@ -228,7 +228,7 @@ class SplitArrayField(forms.Field):
params={"nth": index + 1},
)
)
cleaned_data.append(None)
cleaned_data.append(item)
else:
errors.append(None)
cleaned_data, null_index = self._remove_trailing_nulls(cleaned_data)

View File

@ -1,16 +1,17 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Jiří Podhorecký <jirka.p@volny.cz>, 2024
# Tomáš Ehrlich <tomas.ehrlich@gmail.com>, 2015
# Vláďa Macek <macek@sandbox.cz>, 2015-2019
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-12 20:01+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Czech (http://www.transifex.com/django/django/language/cs/)\n"
"POT-Creation-Date: 2023-01-17 02:13-0600\n"
"PO-Revision-Date: 2024-10-07 09:22+0000\n"
"Last-Translator: Jiří Podhorecký <jirka.p@volny.cz>, 2024\n"
"Language-Team: Czech (http://app.transifex.com/django/django/language/cs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -109,11 +110,10 @@ msgstr "Byly zadány neznámé klíče: %(keys)s"
#, python-format
msgid ""
"Ensure that this range is completely less than or equal to %(limit_value)s."
msgstr "Nejvyšší hodnota rozsahu musí být menší nebo rovna %(limit_value)s."
"Ensure that the upper bound of the range is not greater than %(limit_value)s."
msgstr "Ujistěte se, že horní hranice rozsahu není větší než %(limit_value)s."
#, python-format
msgid ""
"Ensure that this range is completely greater than or equal to "
"%(limit_value)s."
msgstr "Nejnižší hodnota rozsahu musí být větší nebo rovna %(limit_value)s."
"Ensure that the lower bound of the range is not less than %(limit_value)s."
msgstr "Ujistěte se, že spodní hranice rozsahu není menší než %(limit_value)s."

View File

@ -0,0 +1,125 @@
# This file is distributed under the same license as the Django package.
#
# Translators:
# Aindriú Mac Giolla Eoin, 2024
msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-17 02:13-0600\n"
"PO-Revision-Date: 2024-10-07 09:22+0000\n"
"Last-Translator: Aindriú Mac Giolla Eoin, 2024\n"
"Language-Team: Irish (http://app.transifex.com/django/django/language/ga/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ga\n"
"Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : "
"4);\n"
msgid "PostgreSQL extensions"
msgstr "Eisínteachtaí PostgreSQL"
#, python-format
msgid "Item %(nth)s in the array did not validate:"
msgstr "Níor bhailíochtaigh mír %(nth)s san eagar:"
msgid "Nested arrays must have the same length."
msgstr "Caithfidh an fad céanna a bheith ag eagair neadaithe."
msgid "Map of strings to strings/nulls"
msgstr "Léarscáil de theaghráin go teaghráin/nulls"
#, python-format
msgid "The value of “%(key)s” is not a string or null."
msgstr "Ní teaghrán nó null é luach “%(key)s”."
msgid "Could not load JSON data."
msgstr "Níorbh fhéidir sonraí JSON a lódáil."
msgid "Input must be a JSON dictionary."
msgstr "Ní mór gur foclóir JSON é an t-ionchur."
msgid "Enter two valid values."
msgstr "Cuir isteach dhá luach bhailí."
msgid "The start of the range must not exceed the end of the range."
msgstr "Ní fhéadfaidh tús an raoin a bheith níos mó ná deireadh an raoin."
msgid "Enter two whole numbers."
msgstr "Cuir isteach dhá slánuimhir."
msgid "Enter two numbers."
msgstr "Cuir isteach dhá uimhir."
msgid "Enter two valid date/times."
msgstr "Cuir isteach dhá dháta bhailí."
msgid "Enter two valid dates."
msgstr "Cuir isteach dhá dháta bhailí."
#, python-format
msgid ""
"List contains %(show_value)d item, it should contain no more than "
"%(limit_value)d."
msgid_plural ""
"List contains %(show_value)d items, it should contain no more than "
"%(limit_value)d."
msgstr[0] ""
"Tá %(show_value)d mír ar an liosta, níor cheart go mbeadh níos mó ná "
"%(limit_value)d ann."
msgstr[1] ""
"Tá %(show_value)d míreanna ar an liosta, níor cheart go mbeadh níos mó ná "
"%(limit_value)d ann."
msgstr[2] ""
"Tá %(show_value)d míreanna ar an liosta, níor cheart go mbeadh níos mó ná "
"%(limit_value)d ann."
msgstr[3] ""
"Tá %(show_value)d míreanna ar an liosta, níor cheart go mbeadh níos mó ná "
"%(limit_value)d ann."
msgstr[4] ""
"Tá %(show_value)d míreanna ar an liosta, níor cheart go mbeadh níos mó ná "
"%(limit_value)d ann."
#, python-format
msgid ""
"List contains %(show_value)d item, it should contain no fewer than "
"%(limit_value)d."
msgid_plural ""
"List contains %(show_value)d items, it should contain no fewer than "
"%(limit_value)d."
msgstr[0] ""
"Tá %(show_value)d mír ar an liosta, níor cheart go mbeadh níos lú ná "
"%(limit_value)d ann."
msgstr[1] ""
"Tá %(show_value)d míreanna ar an liosta, níor cheart go mbeadh níos lú ná "
"%(limit_value)d ann."
msgstr[2] ""
"Tá %(show_value)d míreanna ar an liosta, níor cheart go mbeadh níos lú ná "
"%(limit_value)d ann."
msgstr[3] ""
"Tá %(show_value)d míreanna ar an liosta, níor cheart go mbeadh níos lú ná "
"%(limit_value)d ann."
msgstr[4] ""
"Tá %(show_value)d míreanna ar an liosta, níor cheart go mbeadh níos lú ná "
"%(limit_value)d ann."
#, python-format
msgid "Some keys were missing: %(keys)s"
msgstr "Bhí roinnt eochracha ar iarraidh: %(keys)s"
#, python-format
msgid "Some unknown keys were provided: %(keys)s"
msgstr "Soláthraíodh roinnt eochracha anaithnid: %(keys)s"
#, python-format
msgid ""
"Ensure that the upper bound of the range is not greater than %(limit_value)s."
msgstr ""
"Cinntigh nach bhfuil teorainn uachtarach an raoin níos mó ná %(limit_value)s."
#, python-format
msgid ""
"Ensure that the lower bound of the range is not less than %(limit_value)s."
msgstr ""
"Cinntigh nach bhfuil teorainn íochtair an raoin níos lú ná %(limit_value)s."

Some files were not shown because too many files have changed in this diff Show More