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:
commit
8d0379c84d
4
.github/workflows/docs.yml
vendored
4
.github/workflows/docs.yml
vendored
@ -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: |
|
||||
|
4
.github/workflows/linters.yml
vendored
4
.github/workflows/linters.yml
vendored
@ -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
52
.github/workflows/python_matrix.yml
vendored
Normal 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
|
14
.github/workflows/schedule_tests.yml
vendored
14
.github/workflows/schedule_tests.yml
vendored
@ -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
|
||||
|
4
.github/workflows/selenium.yml
vendored
4
.github/workflows/selenium.yml
vendored
@ -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
|
||||
|
2
.github/workflows/tests.yml
vendored
2
.github/workflows/tests.yml
vendored
@ -23,7 +23,7 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
python-version:
|
||||
- '3.12'
|
||||
- '3.13'
|
||||
name: Windows, SQLite, Python ${{ matrix.python-version }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
|
@ -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
|
||||
|
Binary file not shown.
@ -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 you’re concerned about privacy, use alternatives like <a rel=\"noreferrer"
|
||||
"\" …> for links to third-party sites."
|
||||
"If you’re 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"
|
||||
|
Binary file not shown.
@ -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."
|
||||
|
Binary file not shown.
@ -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."
|
||||
|
Binary file not shown.
@ -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"
|
||||
|
Binary file not shown.
@ -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 couldn’t 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ó d’iarratais “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 you’re concerned about privacy, use alternatives like <a rel=\"noreferrer"
|
||||
"\" …> for links to third-party sites."
|
||||
"If you’re 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, & how-to’s"
|
||||
msgstr ""
|
||||
msgstr "Ábhair, tagairtí, & 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"
|
||||
|
Binary file not shown.
@ -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,"
|
||||
|
Binary file not shown.
@ -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."
|
||||
|
Binary file not shown.
@ -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 "پەش ئارقىلىق ئايرىلغان رەقەملەرنىلا كىرگۈزۈڭ."
|
||||
|
Binary file not shown.
@ -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."
|
||||
|
Binary file not shown.
@ -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 "只能输入用逗号分隔的数字。"
|
||||
|
@ -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',
|
||||
|
Binary file not shown.
@ -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 doesn’t have a change history. It probably wasn’t 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"
|
||||
|
||||
|
Binary file not shown.
@ -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"
|
||||
|
Binary file not shown.
@ -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"
|
||||
|
||||
|
Binary file not shown.
@ -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"
|
||||
|
Binary file not shown.
@ -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"
|
||||
|
||||
|
Binary file not shown.
@ -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” doesn’t 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 "We’re 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 "
|
||||
"There’s been an error. It’s been reported to the site administrators via "
|
||||
"email and should be fixed shortly. Thanks for your patience."
|
||||
msgstr ""
|
||||
"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 don’t 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, you’ll 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, I’m 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 "
|
||||
"Something’s wrong with your database installation. Make sure the appropriate "
|
||||
"database tables have been created, and make sure the database is readable by "
|
||||
"the appropriate user."
|
||||
msgstr ""
|
||||
"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 doesn’t have a change history. It probably wasn’t 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 security’s 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 "
|
||||
"We’ve 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 don’t receive an email, please make sure you’ve 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 d’fhillteá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 you’ve forgotten:"
|
||||
msgstr "D’ainm ú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 we’ll 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:"
|
||||
|
Binary file not shown.
@ -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 haven’t saved your changes to "
|
||||
"individual fields yet. Please click OK to save. You’ll 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 haven’t made any changes on individual "
|
||||
"fields. You’re 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"
|
||||
|
Binary file not shown.
@ -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"
|
||||
|
||||
|
Binary file not shown.
@ -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"
|
||||
|
Binary file not shown.
@ -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 "모든 필터 삭제"
|
||||
|
Binary file not shown.
@ -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"
|
||||
|
||||
|
Binary file not shown.
@ -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 "ئاساسلىق مەزمۇنغا ئاتلا"
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
@ -3,9 +3,7 @@
|
||||
|
||||
{% block form_top %}
|
||||
{% if not is_popup %}
|
||||
<p>{% translate 'First, enter a username and password. Then, you’ll 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, you’ll be able to edit more user options." %}</p>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% block extrahead %}
|
||||
|
@ -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 %}
|
||||
|
@ -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">
|
||||
|
@ -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>
|
||||
|
@ -5,7 +5,7 @@
|
||||
{% block reset_link %}
|
||||
{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}
|
||||
{% endblock %}
|
||||
{% translate 'Your username, in case you’ve forgotten:' %} {{ user.get_username }}
|
||||
{% translate 'In case you’ve forgotten, you are:' %} {{ user.get_username }}
|
||||
|
||||
{% translate "Thanks for using our site!" %}
|
||||
|
||||
|
Binary file not shown.
@ -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 Python’s <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"
|
||||
|
@ -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):
|
||||
|
@ -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):
|
||||
|
@ -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)
|
||||
|
@ -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:
|
||||
|
Binary file not shown.
@ -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 didn’t 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 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 user’s 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 "
|
||||
|
Binary file not shown.
@ -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 didn’t 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 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 user’s 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"
|
||||
|
||||
|
Binary file not shown.
@ -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"
|
||||
|
Binary file not shown.
@ -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 didn’t 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 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 user’s 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"
|
||||
|
||||
|
Binary file not shown.
@ -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 didn’t 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 user’s 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 can’t 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 can’t 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 can’t 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"
|
||||
|
Binary file not shown.
@ -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 didn’t 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 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 user’s 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"
|
||||
|
||||
|
Binary file not shown.
@ -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 didn’t 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 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 user’s 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"
|
||||
|
||||
|
Binary file not shown.
@ -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 didn’t 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 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 user’s 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 "ئالگورىزىم"
|
||||
|
||||
|
Binary file not shown.
@ -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 didn’t 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 user’s "
|
||||
"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 user’s 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 "算法"
|
||||
|
||||
|
@ -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):
|
||||
"""
|
||||
|
@ -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
|
||||
|
@ -106,16 +106,15 @@ 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.",
|
||||
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,
|
||||
),
|
||||
code="password_too_short",
|
||||
params={"min_length": self.min_length},
|
||||
)
|
||||
|
||||
def get_help_text(self):
|
||||
@ -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 can’t 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 can’t 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 can’t be entirely numeric.")
|
||||
|
Binary file not shown.
@ -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 doesn’t 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 don’t have a get_absolute_url() method"
|
||||
msgstr "Níl modh get_absolute_url() ag réada %(ct_name)s"
|
||||
|
Binary file not shown.
@ -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 isn’t 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"
|
||||
|
Binary file not shown.
@ -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 isn’t registered."
|
||||
msgstr "Níl seilide %r cláraithe."
|
||||
|
Binary file not shown.
@ -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"
|
||||
|
@ -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)
|
||||
|
Binary file not shown.
@ -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."
|
||||
|
BIN
django/contrib/postgres/locale/ga/LC_MESSAGES/django.mo
Normal file
BIN
django/contrib/postgres/locale/ga/LC_MESSAGES/django.mo
Normal file
Binary file not shown.
125
django/contrib/postgres/locale/ga/LC_MESSAGES/django.po
Normal file
125
django/contrib/postgres/locale/ga/LC_MESSAGES/django.po
Normal 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
Loading…
Reference in New Issue
Block a user