Repository: django-commons/django-debug-toolbar
Branch: main
Commit: c89c8cf41751
Files: 252
Total size: 1.1 MB
Directory structure:
gitextract_yarv0zo1/
├── .editorconfig
├── .git-blame-ignore-revs
├── .github/
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── dependabot.yml
│ ├── release.yml
│ └── workflows/
│ ├── coverage.yml
│ ├── release.yml
│ ├── test.yml
│ └── zizmor.yml
├── .gitignore
├── .pre-commit-config.yaml
├── .readthedocs.yaml
├── .tx/
│ └── config
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── Makefile
├── README.rst
├── SECURITY.md
├── biome.json
├── debug_toolbar/
│ ├── __init__.py
│ ├── _compat.py
│ ├── _stubs.py
│ ├── apps.py
│ ├── decorators.py
│ ├── forms.py
│ ├── locale/
│ │ ├── bg/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── ca/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── cs/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── de/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── en/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── es/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── fa/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── fi/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── fr/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── he/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── id/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── it/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── ja/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── ko/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── lt/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── nl/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── pl/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── pt/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── pt_BR/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── ru/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── sk/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── sv_SE/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── tr/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── uk/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ ├── uz/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── django.mo
│ │ │ └── django.po
│ │ └── zh_CN/
│ │ └── LC_MESSAGES/
│ │ ├── django.mo
│ │ └── django.po
│ ├── management/
│ │ ├── __init__.py
│ │ └── commands/
│ │ ├── __init__.py
│ │ └── debugsqlshell.py
│ ├── middleware.py
│ ├── migrations/
│ │ ├── 0001_initial.py
│ │ └── __init__.py
│ ├── models.py
│ ├── panels/
│ │ ├── __init__.py
│ │ ├── alerts.py
│ │ ├── cache.py
│ │ ├── community.py
│ │ ├── headers.py
│ │ ├── history/
│ │ │ ├── __init__.py
│ │ │ ├── forms.py
│ │ │ ├── panel.py
│ │ │ └── views.py
│ │ ├── profiling.py
│ │ ├── redirects.py
│ │ ├── request.py
│ │ ├── settings.py
│ │ ├── signals.py
│ │ ├── sql/
│ │ │ ├── __init__.py
│ │ │ ├── forms.py
│ │ │ ├── panel.py
│ │ │ ├── tracking.py
│ │ │ ├── utils.py
│ │ │ └── views.py
│ │ ├── staticfiles.py
│ │ ├── templates/
│ │ │ ├── __init__.py
│ │ │ ├── jinja2.py
│ │ │ ├── panel.py
│ │ │ └── views.py
│ │ ├── timer.py
│ │ └── versions.py
│ ├── py.typed
│ ├── sanitize.py
│ ├── settings.py
│ ├── static/
│ │ └── debug_toolbar/
│ │ ├── css/
│ │ │ ├── print.css
│ │ │ └── toolbar.css
│ │ └── js/
│ │ ├── history.js
│ │ ├── redirect.js
│ │ ├── timer.js
│ │ ├── toolbar.js
│ │ └── utils.js
│ ├── store.py
│ ├── templates/
│ │ └── debug_toolbar/
│ │ ├── base.html
│ │ ├── includes/
│ │ │ ├── panel_button.html
│ │ │ ├── panel_content.html
│ │ │ └── theme_selector.html
│ │ ├── panels/
│ │ │ ├── alerts.html
│ │ │ ├── cache.html
│ │ │ ├── community.html
│ │ │ ├── headers.html
│ │ │ ├── history.html
│ │ │ ├── history_tr.html
│ │ │ ├── profiling.html
│ │ │ ├── request.html
│ │ │ ├── request_variables.html
│ │ │ ├── settings.html
│ │ │ ├── signals.html
│ │ │ ├── sql.html
│ │ │ ├── sql_explain.html
│ │ │ ├── sql_profile.html
│ │ │ ├── sql_select.html
│ │ │ ├── staticfiles.html
│ │ │ ├── template_source.html
│ │ │ ├── templates.html
│ │ │ ├── timer.html
│ │ │ └── versions.html
│ │ └── redirect.html
│ ├── templatetags/
│ │ └── __init__.py
│ ├── toolbar.py
│ ├── urls.py
│ ├── utils.py
│ └── views.py
├── docs/
│ ├── Makefile
│ ├── architecture.rst
│ ├── changes.rst
│ ├── checks.rst
│ ├── commands.rst
│ ├── conf.py
│ ├── configuration.rst
│ ├── contributing.rst
│ ├── index.rst
│ ├── installation.rst
│ ├── make.bat
│ ├── panels.rst
│ ├── resources.rst
│ ├── spelling_wordlist.txt
│ └── tips.rst
├── example/
│ ├── README.rst
│ ├── __init__.py
│ ├── asgi.py
│ ├── async_/
│ │ ├── __init__.py
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── views.py
│ ├── manage.py
│ ├── screenshot.py
│ ├── settings.py
│ ├── static/
│ │ └── test.css
│ ├── templates/
│ │ ├── async_db.html
│ │ ├── bad_form.html
│ │ ├── cache.html
│ │ ├── htmx/
│ │ │ └── boost.html
│ │ ├── index.html
│ │ ├── jinja2/
│ │ │ └── index.jinja
│ │ ├── jquery/
│ │ │ └── index.html
│ │ ├── mootools/
│ │ │ └── index.html
│ │ ├── prototype/
│ │ │ └── index.html
│ │ └── turbo/
│ │ └── index.html
│ ├── test_views.py
│ ├── urls.py
│ ├── views.py
│ └── wsgi.py
├── pyproject.toml
├── setup.py
├── tests/
│ ├── __init__.py
│ ├── additional_static/
│ │ └── base.css
│ ├── base.py
│ ├── commands/
│ │ ├── __init__.py
│ │ └── test_debugsqlshell.py
│ ├── context_processors.py
│ ├── forms.py
│ ├── loaders.py
│ ├── middleware.py
│ ├── models.py
│ ├── panels/
│ │ ├── __init__.py
│ │ ├── test_alerts.py
│ │ ├── test_async_panel_compatibility.py
│ │ ├── test_cache.py
│ │ ├── test_custom.py
│ │ ├── test_history.py
│ │ ├── test_profiling.py
│ │ ├── test_redirects.py
│ │ ├── test_request.py
│ │ ├── test_settings.py
│ │ ├── test_sql.py
│ │ ├── test_staticfiles.py
│ │ ├── test_template.py
│ │ └── test_versions.py
│ ├── settings.py
│ ├── sync.py
│ ├── templates/
│ │ ├── ajax/
│ │ │ └── ajax.html
│ │ ├── base.html
│ │ ├── basic.html
│ │ ├── jinja2/
│ │ │ ├── base.html
│ │ │ └── basic.jinja
│ │ ├── registration/
│ │ │ └── login.html
│ │ ├── sql/
│ │ │ ├── flat.html
│ │ │ ├── included.html
│ │ │ └── nested.html
│ │ └── staticfiles/
│ │ ├── async_static.html
│ │ └── path.html
│ ├── test_apps.py
│ ├── test_checks.py
│ ├── test_csp_rendering.py
│ ├── test_decorators.py
│ ├── test_forms.py
│ ├── test_integration.py
│ ├── test_integration_async.py
│ ├── test_login_not_required.py
│ ├── test_middleware.py
│ ├── test_models.py
│ ├── test_sanitize.py
│ ├── test_settings.py
│ ├── test_store.py
│ ├── test_toolbar.py
│ ├── test_utils.py
│ ├── urls.py
│ ├── urls_invalid.py
│ ├── urls_use_package_urls.py
│ └── views.py
└── tox.ini
================================================
FILE CONTENTS
================================================
================================================
FILE: .editorconfig
================================================
# https://editorconfig.org/
root = true
[*]
indent_style = space
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true
end_of_line = lf
charset = utf-8
[*.html]
indent_size = 2
[Makefile]
indent_style = tab
[*.bat]
indent_style = tab
[*.yml]
indent_size = 2
================================================
FILE: .git-blame-ignore-revs
================================================
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
#### Description
Please include a summary of the change and which issue is fixed. Please also
include relevant motivation and context. Your commit message should include
this information as well.
Fixes # (issue)
#### Checklist:
- [ ] I have added the relevant tests for this change.
- [ ] I have added an item to the Pending section of ``docs/changes.rst``.
#### AI/LLM Usage
- [ ] This PR includes code generated with the help of an AI/LLM
================================================
FILE: .github/dependabot.yml
================================================
# Keep GitHub Actions up to date with GitHub's Dependabot...
# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot
# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem
version: 2
updates:
- package-ecosystem: github-actions
directory: /
groups:
github-actions:
patterns:
- "*" # Group all Actions updates into a single larger pull request
schedule:
interval: weekly
cooldown:
default-days: 7
================================================
FILE: .github/release.yml
================================================
---
changelog:
exclude:
authors:
- dependabot[bot]
- pre-commit-ci[bot]
================================================
FILE: .github/workflows/coverage.yml
================================================
# .github/workflows/coverage.yml
name: Post coverage comment
on:
workflow_run: # zizmor: ignore[dangerous-triggers] - This follows GitHub's recommended pattern for posting PR comments from untrusted forks
workflows: ["Test"]
types:
- completed
jobs:
test:
name: Run tests & display coverage
runs-on: ubuntu-latest
if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success'
permissions:
# Gives the action the necessary permissions for publishing new
# comments in pull requests.
pull-requests: write
# Gives the action the necessary permissions for editing existing
# comments (to avoid publishing multiple comments in the same PR)
contents: write
# Gives the action the necessary permissions for looking up the
# workflow that launched this workflow, and download the related
# artifact that contains the comment to be published
actions: read
steps:
# DO NOT run actions/checkout here, for security reasons
# For details, refer to https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
- name: Post comment
uses: py-cov-action/python-coverage-comment-action@7188638f871f721a365d644f505d1ff3df20d683 # v3.40
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_RUN_ID: ${{ github.event.workflow_run.id }}
================================================
FILE: .github/workflows/release.yml
================================================
name: Publish Python 🐍 distribution 📦 to PyPI and TestPyPI
on: push
permissions: {}
env:
PYPI_URL: https://pypi.org/p/django-debug-toolbar
PYPI_TEST_URL: https://test.pypi.org/p/django-debug-toolbar
jobs:
build:
name: Build distribution 📦
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "3.x"
- name: Install pypa/build
run:
python3 -m pip install build --user
- name: Build a binary wheel and a source tarball
run: python3 -m build
- name: Store the distribution packages
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: python-package-distributions
path: dist/
publish-to-pypi:
name: >-
Publish Python 🐍 distribution 📦 to PyPI
if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes
needs:
- build
runs-on: ubuntu-latest
environment:
name: pypi
url: ${{ env.PYPI_URL }}
permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing
steps:
- name: Download all the dists
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
with:
name: python-package-distributions
path: dist/
- name: Publish distribution 📦 to PyPI
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1.13
github-release:
name: >-
Sign the Python 🐍 distribution 📦 with Sigstore
and upload them to GitHub Release
needs:
- publish-to-pypi
runs-on: ubuntu-latest
permissions:
contents: write # IMPORTANT: mandatory for making GitHub Releases
id-token: write # IMPORTANT: mandatory for sigstore
steps:
- name: Download all the dists
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
with:
name: python-package-distributions
path: dist/
- name: Sign the dists with Sigstore
uses: sigstore/gh-action-sigstore-python@a5caf349bc536fbef3668a10ed7f5cd309a4b53d # v3.2.0
with:
inputs: >-
./dist/*.tar.gz
./dist/*.whl
- name: Create GitHub Release
env:
GITHUB_TOKEN: ${{ github.token }}
run: >-
gh release create
"${GITHUB_REF_NAME}"
--repo '${{ github.repository }}'
--notes ""
- name: Upload artifact signatures to GitHub Release
env:
GITHUB_TOKEN: ${{ github.token }}
# Upload to GitHub Release using the `gh` CLI.
# `dist/` contains the built packages, and the
# sigstore-produced signatures and certificates.
run: >-
gh release upload
"${GITHUB_REF_NAME}" dist/**
--repo '${{ github.repository }}'
publish-to-testpypi:
name: Publish Python 🐍 distribution 📦 to TestPyPI
if: startsWith(github.ref, 'refs/tags/') # only publish to Test PyPI on tag pushes
needs:
- build
runs-on: ubuntu-latest
environment:
name: testpypi
url: ${{ env.PYPI_TEST_URL }}
permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing
steps:
- name: Download all the dists
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
with:
name: python-package-distributions
path: dist/
- name: Publish distribution 📦 to TestPyPI
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1.13
with:
repository-url: https://test.pypi.org/legacy/
skip-existing: true
================================================
FILE: .github/workflows/test.yml
================================================
name: Test
on:
push:
branches:
- main
tags:
- '**'
pull_request:
schedule:
# Run weekly on Saturday
- cron: '37 3 * * SAT'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
mysql:
runs-on: ubuntu-latest
strategy:
fail-fast: false
max-parallel: 5
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
services:
mariadb:
image: mariadb:11.8
env:
MARIADB_ROOT_PASSWORD: debug_toolbar
options: >-
--health-cmd "mariadb-admin ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 3306:3306
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: Get pip cache dir
id: pip-cache
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: Cache
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
with:
path: ${{ steps.pip-cache.outputs.dir }}
key:
${{ matrix.python-version }}-v1-${{ hashFiles('**/pyproject.toml') }}-${{ hashFiles('**/tox.ini') }}
restore-keys: |
${{ matrix.python-version }}-v1-
lookup-only: true
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade tox tox-gh-actions
- name: Test with tox
run: tox
env:
DB_BACKEND: mysql
DB_USER: root
DB_PASSWORD: debug_toolbar
DB_HOST: 127.0.0.1
DB_PORT: 3306
COVERAGE_FILE: ".coverage.mysql.${{ matrix.python-version }}"
- name: Store coverage file
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: coverage-mysql-${{ matrix.python-version }}
path: .coverage.mysql.${{ matrix.python-version }}*
include-hidden-files: true
postgres:
runs-on: ubuntu-latest
strategy:
fail-fast: false
max-parallel: 5
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
database: [postgresql, postgis, psycopg3]
exclude:
- python-version: '3.13'
database: postgis
- python-version: '3.13'
database: postgresql
- python-version: '3.14'
database: postgis
- python-version: '3.14'
database: postgresql
# Add postgis3 to our matrix for modern Python versions
include:
- python-version: '3.13'
database: postgis3
- python-version: '3.13'
database: psycopg3
env:
DJANGO_SELENIUM_TESTS=true
- python-version: '3.14'
database: postgis3
- python-version: '3.14'
database: psycopg3
env:
DJANGO_SELENIUM_TESTS=true
services:
postgres:
image: postgis/postgis:17-3.5
env:
POSTGRES_DB: debug_toolbar
POSTGRES_USER: debug_toolbar
POSTGRES_PASSWORD: debug_toolbar
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: Get pip cache dir
id: pip-cache
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: Cache
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
with:
path: ${{ steps.pip-cache.outputs.dir }}
key:
${{ matrix.python-version }}-v1-${{ hashFiles('**/pyproject.toml') }}-${{ hashFiles('**/tox.ini') }}
restore-keys: |
${{ matrix.python-version }}-v1-
lookup-only: true
- name: Install gdal-bin (for postgis)
run: |
sudo apt-get -qq update
sudo apt-get -y install gdal-bin
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade tox tox-gh-actions
- name: Test with tox
run: tox
env:
DB_BACKEND: ${{ matrix.database }}
DB_HOST: localhost
DB_PORT: 5432
DJANGO_SELENIUM_TESTS: ${{ matrix.env.DJANGO_SELENIUM_TESTS }}
COVERAGE_FILE: ".coverage.${{ matrix.database }}.${{ matrix.python-version }}"
- name: Store coverage file
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: coverage-${{ matrix.database }}-${{ matrix.python-version }}
path: .coverage.${{ matrix.database }}.${{ matrix.python-version }}*
include-hidden-files: true
sqlite:
runs-on: ubuntu-latest
strategy:
fail-fast: false
max-parallel: 5
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: Get pip cache dir
id: pip-cache
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: Cache
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
with:
path: ${{ steps.pip-cache.outputs.dir }}
key:
${{ matrix.python-version }}-v1-${{ hashFiles('**/pyproject.toml') }}-${{ hashFiles('**/tox.ini') }}
restore-keys: |
${{ matrix.python-version }}-v1-
lookup-only: true
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade tox tox-gh-actions
- name: Test with tox
run: tox
env:
DB_BACKEND: sqlite3
DB_NAME: ":memory:"
COVERAGE_FILE: ".coverage.sqlite.${{ matrix.python-version }}"
- name: Store coverage file
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: coverage-sqlite-${{ matrix.python-version }}
path: .coverage.sqlite.${{ matrix.python-version }}*
include-hidden-files: true
lint:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: '3.10'
- name: Get pip cache dir
id: pip-cache
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: Cache
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
with:
path: ${{ steps.pip-cache.outputs.dir }}
key:
${{ matrix.python-version }}-v1-${{ hashFiles('**/pyproject.toml') }}-${{ hashFiles('**/tox.ini') }}
restore-keys: |
${{ matrix.python-version }}-v1-
lookup-only: true
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade tox
- name: Test with tox
run: tox -e docs,packaging
coverage:
name: Coverage
runs-on: ubuntu-latest
needs:
- mysql
- postgres
- sqlite
permissions:
pull-requests: write
contents: write
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
# Persist the credentials because coverage_comment needs them too.
persist-credentials: true
- uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
id: download
with:
pattern: coverage-*
merge-multiple: true
- name: Coverage comment
id: coverage_comment
uses: py-cov-action/python-coverage-comment-action@7188638f871f721a365d644f505d1ff3df20d683 # v3.40
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MERGE_COVERAGE_FILES: true
- name: Store Pull Request comment to be posted
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
if: steps.coverage_comment.outputs.COMMENT_FILE_WRITTEN == 'true'
with:
name: python-coverage-comment-action
path: python-coverage-comment-action.txt
================================================
FILE: .github/workflows/zizmor.yml
================================================
name: GitHub Actions Security Analysis with zizmor 🌈
on:
push:
branches: ["main"]
pull_request:
branches: ["**"]
permissions: {}
jobs:
zizmor:
name: Run zizmor 🌈
runs-on: ubuntu-latest
permissions:
security-events: write
contents: read # only needed for private repos
actions: read # only needed for private repos
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Run zizmor 🌈
uses: zizmorcore/zizmor-action@71321a20a9ded102f6e9ce5718a2fcec2c4f70d8 # v0.5.2
================================================
FILE: .gitignore
================================================
*.pyc
*.DS_Store
*~
.idea
build
.coverage*
dist
django_debug_toolbar.egg-info
docs/_build
example/db.sqlite3
htmlcov
.tox
geckodriver.log
coverage.xml
venv
.direnv/
.envrc
.venv
.vscode
================================================
FILE: .pre-commit-config.yaml
================================================
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: check-toml
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace
- id: mixed-line-ending
- id: file-contents-sorter
files: docs/spelling_wordlist.txt
- repo: https://github.com/pycqa/doc8
rev: v2.0.0
hooks:
- id: doc8
- repo: https://github.com/adamchainz/django-upgrade
rev: 1.30.0
hooks:
- id: django-upgrade
args: [--target-version, "4.2"]
- repo: https://github.com/adamchainz/djade-pre-commit
rev: "1.9.0"
hooks:
- id: djade
args: [--target-version, "4.2"]
- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.10.0
hooks:
- id: rst-backticks
- id: rst-directive-colons
- repo: https://github.com/biomejs/pre-commit
rev: v2.4.7
hooks:
- id: biome-check
verbose: true
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: 'v0.15.6'
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]
- id: ruff-format
- repo: https://github.com/tox-dev/pyproject-fmt
rev: v2.19.0
hooks:
- id: pyproject-fmt
- repo: https://github.com/abravalheri/validate-pyproject
rev: v0.25
hooks:
- id: validate-pyproject
================================================
FILE: .readthedocs.yaml
================================================
# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
version: 2
build:
os: ubuntu-24.04
tools:
python: "3.13"
jobs:
install:
- pip install -U pip
- pip install --group docs
sphinx:
configuration: docs/conf.py
================================================
FILE: .tx/config
================================================
[main]
host = https://www.transifex.com
lang_map = sr@latin: sr_Latn
[o:django-debug-toolbar:p:django-debug-toolbar:r:main]
file_filter = debug_toolbar/locale//LC_MESSAGES/django.po
source_file = debug_toolbar/locale/en/LC_MESSAGES/django.po
source_lang = en
replace_edited_strings = false
keep_translations = false
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Django Debug Toolbar Code of Conduct
The django-debug-toolbar project utilizes the [Django Commons Code of Conduct](https://github.com/django-commons/membership/blob/main/CODE_OF_CONDUCT.md).
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to Django Debug Toolbar
This is a [Django Commons](https://github.com/django-commons/) project. By contributing you agree to abide by the [Contributor Code of Conduct](https://github.com/django-commons/membership/blob/main/CODE_OF_CONDUCT.md).
## Documentation
For detailed contributing guidelines, please see our [Documentation](https://django-debug-toolbar.readthedocs.io/en/latest/contributing.html).
## Additional Resources
Please see the [README](https://github.com/django-commons/membership/blob/main/README.md) for more help.
================================================
FILE: LICENSE
================================================
Copyright (c) Rob Hudson and individual contributors.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of Django nor the names of its contributors may be used
to endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
================================================
FILE: Makefile
================================================
.PHONY: example test coverage translatable_strings update_translations help
.DEFAULT_GOAL := help
example: ## Run the example application
python example/manage.py migrate --noinput
-DJANGO_SUPERUSER_PASSWORD=p python example/manage.py createsuperuser \
--noinput --username="$(USER)" --email="$(USER)@mailinator.com"
python example/manage.py runserver
example_async:
python example/manage.py migrate --noinput
-DJANGO_SUPERUSER_PASSWORD=p python example/manage.py createsuperuser \
--noinput --username="$(USER)" --email="$(USER)@mailinator.com"
daphne example.asgi:application
example_test: ## Run the test suite for the example application
python example/manage.py test example
test: ## Run the test suite
DJANGO_SETTINGS_MODULE=tests.settings \
python -m django test $${TEST_ARGS:-tests}
test_selenium: ## Run frontend tests written with Selenium
DJANGO_SELENIUM_TESTS=true DJANGO_SETTINGS_MODULE=tests.settings \
python -m django test $${TEST_ARGS:-tests}
coverage: ## Run the test suite with coverage enabled
python --version
DJANGO_SETTINGS_MODULE=tests.settings \
python -b -W always -m coverage run -m django test -v2 $${TEST_ARGS:-tests}
coverage report
coverage html
coverage xml
translatable_strings: ## Update the English '.po' file
cd debug_toolbar && python -m django makemessages -l en --no-obsolete
@echo "Please commit changes and run 'tx push -s' (or wait for Transifex to pick them)"
update_translations: ## Download updated '.po' files from Transifex
tx pull -a --minimum-perc=10
cd debug_toolbar && python -m django compilemessages
.PHONY: example/django-debug-toolbar.png
example/django-debug-toolbar.png: example/screenshot.py ## Update the screenshot in 'README.rst'
python $< --browser firefox --headless -o $@
optipng $@
help: ## Help message for targets
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) \
| awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
================================================
FILE: README.rst
================================================
=====================================
Django Debug Toolbar |latest-version|
=====================================
|build-status| |coverage| |docs| |python-support| |django-support|
.. |latest-version| image:: https://img.shields.io/pypi/v/django-debug-toolbar.svg
:target: https://pypi.org/project/django-debug-toolbar/
:alt: Latest version on PyPI
.. |build-status| image:: https://github.com/django-commons/django-debug-toolbar/workflows/Test/badge.svg
:target: https://github.com/django-commons/django-debug-toolbar/actions/workflows/test.yml
:alt: Build Status
.. |coverage| image:: https://img.shields.io/badge/Coverage-94%25-green
:target: https://github.com/django-commons/django-debug-toolbar/actions/workflows/test.yml?query=branch%3Amain
:alt: Test coverage status
.. |docs| image:: https://img.shields.io/readthedocs/django-debug-toolbar/latest.svg
:target: https://readthedocs.org/projects/django-debug-toolbar/
:alt: Documentation status
.. |python-support| image:: https://img.shields.io/pypi/pyversions/django-debug-toolbar
:target: https://pypi.org/project/django-debug-toolbar/
:alt: Supported Python versions
.. |django-support| image:: https://img.shields.io/pypi/djversions/django-debug-toolbar
:target: https://pypi.org/project/django-debug-toolbar/
:alt: Supported Django versions
The Django Debug Toolbar is a configurable set of panels that display various
debug information about the current request/response and when clicked, display
more details about the panel's content.
Here's a screenshot of the toolbar in action:
.. image:: https://raw.github.com/django-commons/django-debug-toolbar/main/example/django-debug-toolbar.png
:alt: Django Debug Toolbar screenshot
In addition to the built-in panels, a number of third-party panels are
contributed by the community.
The current stable version of the Debug Toolbar is 6.2.0. It works on
Django ≥ 4.2.0.
The Debug Toolbar has experimental support for `Django's asynchronous views
`_. Please note that
the Debug Toolbar still lacks the capability for handling concurrent requests.
If you find any issues, please report them on the `issue tracker`_.
Documentation, including installation and configuration instructions, is
available at https://django-debug-toolbar.readthedocs.io/.
The Django Debug Toolbar is released under the BSD license, like Django
itself. If you like it, please consider contributing!
The Django Debug Toolbar was originally created by Rob Hudson
in August 2008 and was further developed by many contributors_.
.. _contributors: https://github.com/django-commons/django-debug-toolbar/graphs/contributors
.. _issue tracker: https://github.com/django-commons/django-debug-toolbar/issues
================================================
FILE: SECURITY.md
================================================
# Security Policy
## Supported Versions
Only the latest version of django-debug-toolbar [](https://pypi.python.org/pypi/django-debug-toolbar) is supported.
## Reporting a Vulnerability
If you think you have found a vulnerability, and even if you are not sure, please [report it to us in private](https://github.com/django-commons/django-debug-toolbar/security/advisories/new). We will review it and get back to you. Please refrain from public discussions of the issue.
================================================
FILE: biome.json
================================================
{
"$schema": "https://biomejs.dev/schemas/2.3.7/schema.json",
"formatter": {
"enabled": true,
"useEditorconfig": true
},
"assist": {
"actions": {
"source": {
"organizeImports": "on"
}
}
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"complexity": {
"noImportantStyles": "off"
},
"correctness": {
"noUndeclaredVariables": "error"
},
"suspicious": {
"noDocumentCookie": "off"
}
}
},
"javascript": {
"formatter": {
"trailingCommas": "es5"
}
}
}
================================================
FILE: debug_toolbar/__init__.py
================================================
__all__ = ["APP_NAME", "VERSION"]
APP_NAME = "djdt"
# Do not use pkg_resources to find the version but set it here directly!
# see issue #1446
VERSION = "6.2.0"
# Code that discovers files or modules in INSTALLED_APPS imports this module.
urls = "debug_toolbar.urls", APP_NAME
================================================
FILE: debug_toolbar/_compat.py
================================================
import django
try:
from django.contrib.auth.decorators import login_not_required
except ImportError:
# For Django < 5.1, copy the current Django implementation
def login_not_required(view_func):
"""
Decorator for views that allows access to unauthenticated requests.
"""
view_func.login_required = False
return view_func
if django.VERSION >= (6, 0):
from django.middleware.csp import get_nonce
else:
# For Django < 6.0, there is no native CSP support, hence no CSP nonces.
def get_nonce(request):
return None
================================================
FILE: debug_toolbar/_stubs.py
================================================
from __future__ import annotations
from typing import Any, NamedTuple, Protocol
from django import template as dj_template
from django.http import HttpRequest, HttpResponse
class InspectStack(NamedTuple):
frame: Any
filename: str
lineno: int
function: str
code_context: str
index: int
TidyStackTrace = list[tuple[str, int, str, str, Any | None]]
class RenderContext(dj_template.context.RenderContext):
template: dj_template.Template
class RequestContext(dj_template.RequestContext):
template: dj_template.Template
render_context: RenderContext
class GetResponse(Protocol):
def __call__(self, request: HttpRequest) -> HttpResponse: ...
================================================
FILE: debug_toolbar/apps.py
================================================
import inspect
import mimetypes
from django.apps import AppConfig
from django.conf import settings
from django.core.checks import Error, Warning, register
from django.middleware.gzip import GZipMiddleware
from django.urls import NoReverseMatch, reverse
from django.utils.module_loading import import_string
from django.utils.translation import gettext_lazy as _
from debug_toolbar import APP_NAME, settings as dt_settings
from debug_toolbar.settings import CONFIG_DEFAULTS
class DebugToolbarConfig(AppConfig):
name = "debug_toolbar"
verbose_name = _("Debug Toolbar")
def ready(self):
from debug_toolbar.toolbar import DebugToolbar
# Import the panels when the app is ready and call their ready() methods. This
# allows panels like CachePanel to enable their instrumentation immediately.
for cls in DebugToolbar.get_panel_classes():
cls.ready()
_manage_migrations_visibility(self.name)
def import_models(self):
"""
Override import models to avoid allowing users to dynamically fetch a model
that doesn't have a table behind it unless they are using the DatabaseStore.
This also prevents the command `migrate --run-syncdb` from creating tables
for the models.
"""
dt_config = dt_settings.get_config()
if dt_config["TOOLBAR_STORE_CLASS"] == "debug_toolbar.store.DatabaseStore":
return super().import_models()
# Not using the database store, don't import the models
self.models = {}
def _manage_migrations_visibility(app_name):
"""
Adjust the toolbar's migration visibility by manipulating the
project's settings.
This is a hack since it's manipulating settings.
"""
if (
dt_settings.get_config()["TOOLBAR_STORE_CLASS"]
!= "debug_toolbar.store.DatabaseStore"
):
# This effectively hides the migrations by telling Django they don't exist.
settings.MIGRATION_MODULES.setdefault(app_name, None)
def check_template_config(config):
"""
Checks if a template configuration is valid.
The toolbar requires either the toolbars to be unspecified or
``django.template.loaders.app_directories.Loader`` to be
included in the loaders.
If custom loaders are specified, then APP_DIRS must be True.
"""
def flat_loaders(loaders):
"""
Recursively flatten the settings list of template loaders.
Check for (loader, [child_loaders]) tuples.
Django's default cached loader uses this pattern.
"""
for loader in loaders:
if isinstance(loader, tuple):
yield loader[0]
yield from flat_loaders(loader[1])
else:
yield loader
app_dirs = config.get("APP_DIRS", False)
loaders = config.get("OPTIONS", {}).get("loaders", None)
if loaders:
loaders = list(flat_loaders(loaders))
# By default the app loader is included.
has_app_loaders = (
loaders is None or "django.template.loaders.app_directories.Loader" in loaders
)
return has_app_loaders or app_dirs
@register
def check_middleware(app_configs, **kwargs):
from debug_toolbar.middleware import DebugToolbarMiddleware
errors = []
gzip_index = None
debug_toolbar_indexes = []
if all(not check_template_config(config) for config in settings.TEMPLATES):
errors.append(
Warning(
"At least one DjangoTemplates TEMPLATES configuration needs "
"to use django.template.loaders.app_directories.Loader or "
"have APP_DIRS set to True.",
hint=(
"Include django.template.loaders.app_directories.Loader "
'in ["OPTIONS"]["loaders"]. Alternatively use '
"APP_DIRS=True for at least one "
"django.template.backends.django.DjangoTemplates "
"backend configuration."
),
id="debug_toolbar.W006",
)
)
# If old style MIDDLEWARE_CLASSES is being used, report an error.
if settings.is_overridden("MIDDLEWARE_CLASSES"):
errors.append(
Warning(
"debug_toolbar is incompatible with MIDDLEWARE_CLASSES setting.",
hint="Use MIDDLEWARE instead of MIDDLEWARE_CLASSES",
id="debug_toolbar.W004",
)
)
return errors
# Determine the indexes which gzip and/or the toolbar are installed at
for i, middleware in enumerate(settings.MIDDLEWARE):
if is_middleware_class(GZipMiddleware, middleware):
gzip_index = i
elif is_middleware_class(DebugToolbarMiddleware, middleware):
debug_toolbar_indexes.append(i)
if not debug_toolbar_indexes:
# If the toolbar does not appear, report an error.
errors.append(
Warning(
"debug_toolbar.middleware.DebugToolbarMiddleware is missing "
"from MIDDLEWARE.",
hint="Add debug_toolbar.middleware.DebugToolbarMiddleware to "
"MIDDLEWARE.",
id="debug_toolbar.W001",
)
)
elif len(debug_toolbar_indexes) != 1:
# If the toolbar appears multiple times, report an error.
errors.append(
Warning(
"debug_toolbar.middleware.DebugToolbarMiddleware occurs "
"multiple times in MIDDLEWARE.",
hint="Load debug_toolbar.middleware.DebugToolbarMiddleware only "
"once in MIDDLEWARE.",
id="debug_toolbar.W002",
)
)
elif gzip_index is not None and debug_toolbar_indexes[0] < gzip_index:
# If the toolbar appears before the gzip index, report an error.
errors.append(
Warning(
"debug_toolbar.middleware.DebugToolbarMiddleware occurs before "
"django.middleware.gzip.GZipMiddleware in MIDDLEWARE.",
hint="Move debug_toolbar.middleware.DebugToolbarMiddleware to "
"after django.middleware.gzip.GZipMiddleware in MIDDLEWARE.",
id="debug_toolbar.W003",
)
)
return errors
@register
def check_panel_configs(app_configs, **kwargs):
"""Allow each panel to check the toolbar's integration for their its own purposes."""
from debug_toolbar.toolbar import DebugToolbar
errors = []
for panel_class in DebugToolbar.get_panel_classes():
for check_message in panel_class.run_checks():
errors.append(check_message)
return errors
def is_middleware_class(middleware_class, middleware_path):
try:
middleware_cls = import_string(middleware_path)
except ImportError:
return
return inspect.isclass(middleware_cls) and issubclass(
middleware_cls, middleware_class
)
@register
def check_panels(app_configs, **kwargs):
errors = []
panels = dt_settings.get_panels()
if not panels:
errors.append(
Warning(
"Setting DEBUG_TOOLBAR_PANELS is empty.",
hint="Set DEBUG_TOOLBAR_PANELS to a non-empty list in your "
"settings.py.",
id="debug_toolbar.W005",
)
)
return errors
@register
def js_mimetype_check(app_configs, **kwargs):
"""
Check that JavaScript files are resolving to the correct content type.
"""
# Ideally application/javascript is returned, but text/javascript is
# acceptable.
javascript_types = {"application/javascript", "text/javascript"}
check_failed = not set(mimetypes.guess_type("toolbar.js")).intersection(
javascript_types
)
if check_failed:
return [
Warning(
"JavaScript files are resolving to the wrong content type.",
hint="The Django Debug Toolbar may not load properly while mimetypes are misconfigured. "
"See the Django documentation for an explanation of why this occurs.\n"
"https://docs.djangoproject.com/en/stable/ref/contrib/staticfiles/#static-file-development-view\n"
"\n"
"This typically occurs on Windows machines. The suggested solution is to modify "
"HKEY_CLASSES_ROOT in the registry to specify the content type for JavaScript "
"files.\n"
"\n"
"[HKEY_CLASSES_ROOT\\.js]\n"
'"Content Type"="application/javascript"',
id="debug_toolbar.W007",
)
]
return []
@register
def debug_toolbar_installed_when_running_tests_check(app_configs, **kwargs):
"""
Check that the toolbar is not being used when tests are running
"""
# Check if show toolbar callback has changed
show_toolbar_changed = (
dt_settings.get_config()["SHOW_TOOLBAR_CALLBACK"]
!= CONFIG_DEFAULTS["SHOW_TOOLBAR_CALLBACK"]
)
try:
# Check if the toolbar's urls are installed
reverse(f"{APP_NAME}:render_panel")
toolbar_urls_installed = True
except NoReverseMatch:
toolbar_urls_installed = False
# If the user is using the default SHOW_TOOLBAR_CALLBACK,
# then the middleware will respect the change to settings.DEBUG.
# However, if the user has changed the callback to:
# DEBUG_TOOLBAR_CONFIG = {"SHOW_TOOLBAR_CALLBACK": lambda request: DEBUG}
# where DEBUG is not settings.DEBUG, then it won't pick up that Django'
# test runner has changed the value for settings.DEBUG, and the middleware
# will inject the toolbar, while the URLs aren't configured leading to a
# NoReverseMatch error.
likely_error_setup = show_toolbar_changed and not toolbar_urls_installed
if (
not settings.DEBUG
and dt_settings.get_config()["IS_RUNNING_TESTS"]
and likely_error_setup
):
return [
Error(
"The Django Debug Toolbar can't be used with tests",
hint="Django changes the DEBUG setting to False when running "
"tests. By default the Django Debug Toolbar is installed because "
"DEBUG is set to True. For most cases, you need to avoid installing "
"the toolbar when running tests. If you feel this check is in error, "
"you can set `DEBUG_TOOLBAR_CONFIG['IS_RUNNING_TESTS'] = False` to "
"bypass this check.",
id="debug_toolbar.E001",
)
]
else:
return []
@register
def check_settings(app_configs, **kwargs):
errors = []
USER_CONFIG = getattr(settings, "DEBUG_TOOLBAR_CONFIG", {})
if "OBSERVE_REQUEST_CALLBACK" in USER_CONFIG:
errors.append(
Warning(
"The deprecated OBSERVE_REQUEST_CALLBACK setting is present in DEBUG_TOOLBAR_CONFIG.",
hint="Use the UPDATE_ON_FETCH and/or SHOW_TOOLBAR_CALLBACK settings instead.",
id="debug_toolbar.W008",
)
)
return errors
================================================
FILE: debug_toolbar/decorators.py
================================================
import functools
from asgiref.sync import iscoroutinefunction
from django.http import Http404
from django.utils.translation import get_language, override as language_override
from debug_toolbar import settings as dt_settings
def require_show_toolbar(view):
"""
Async compatible decorator to restrict access to a view
based on the Debug Toolbar's visibility settings.
"""
from debug_toolbar.middleware import get_show_toolbar
if iscoroutinefunction(view):
@functools.wraps(view)
async def inner(request, *args, **kwargs):
show_toolbar = get_show_toolbar(async_mode=True)
if not await show_toolbar(request):
raise Http404
return await view(request, *args, **kwargs)
else:
@functools.wraps(view)
def inner(request, *args, **kwargs):
show_toolbar = get_show_toolbar(async_mode=False)
if not show_toolbar(request):
raise Http404
return view(request, *args, **kwargs)
return inner
def render_with_toolbar_language(view):
"""Force any rendering within the view to use the toolbar's language."""
@functools.wraps(view)
def inner(request, *args, **kwargs):
lang = dt_settings.get_config()["TOOLBAR_LANGUAGE"] or get_language()
with language_override(lang):
return view(request, *args, **kwargs)
return inner
================================================
FILE: debug_toolbar/forms.py
================================================
import json
from django import forms
from django.core import signing
from django.core.exceptions import ValidationError
from debug_toolbar.sanitize import force_str
class SignedDataForm(forms.Form):
"""Helper form that wraps a form to validate its contents on post.
class PanelForm(forms.Form):
# fields
On render:
form = SignedDataForm(initial=PanelForm(initial=data).initial)
On POST:
signed_form = SignedDataForm(request.POST)
if signed_form.is_valid():
panel_form = PanelForm(signed_form.verified_data)
if panel_form.is_valid():
# Success
"""
salt = "django_debug_toolbar"
signed = forms.CharField(required=True, widget=forms.HiddenInput)
def __init__(self, *args, **kwargs):
initial = kwargs.pop("initial", None)
if initial:
initial = {"signed": self.sign(initial)}
super().__init__(*args, initial=initial, **kwargs)
def clean_signed(self):
try:
verified = json.loads(
signing.Signer(salt=self.salt).unsign(self.cleaned_data["signed"])
)
return verified
except signing.BadSignature as exc:
raise ValidationError("Bad signature") from exc
def verified_data(self):
return self.is_valid() and self.cleaned_data["signed"]
@classmethod
def sign(cls, data):
return signing.Signer(salt=cls.salt).sign(
json.dumps({key: force_str(value) for key, value in data.items()})
)
================================================
FILE: debug_toolbar/locale/bg/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# arneatec , 2022
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: arneatec , 2022\n"
"Language-Team: Bulgarian (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/bg/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr "Debug Toolbar"
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr "Кеш"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d извикване за %(time).2fms"
msgstr[1] "%(cache_calls)d извиквания за %(time).2fms"
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "Извиквания на кеша от %(count)d бекенд"
msgstr[1] "Извиквания на кеша от %(count)d бекенда"
#: panels/headers.py:31
msgid "Headers"
msgstr "Хедъри"
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr "История"
#: panels/profiling.py:140
msgid "Profiling"
msgstr "Профилиране"
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "Прехвани пренасочвания"
#: panels/request.py:16
msgid "Request"
msgstr "Заявка"
#: panels/request.py:38
msgid ""
msgstr ""
#: panels/request.py:55
msgid ""
msgstr ""
#: panels/settings.py:17
msgid "Settings"
msgstr "Настройки"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr "Настройки от %s"
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d получател на 1 сигнал"
msgstr[1] "%(num_receivers)d получатели на 1 сигнал"
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d приемник на %(num_signals)d сигнала"
msgstr[1] "%(num_receivers)d приемника на %(num_signals)d сигнала"
#: panels/signals.py:67
msgid "Signals"
msgstr "Сигнали"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr "Read uncommitted"
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr "Read committed"
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr "Repeatable read"
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Serializable"
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "Autocommit"
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "Незает"
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Активен"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "В транзакция"
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "В грешка"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "Непознато"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] "%(query_count)d заявка за %(sql_time).2fms"
msgstr[1] "%(query_count)d заявки за %(sql_time).2fms"
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] "SQL заявки от %(count)d връзка"
msgstr[1] "SQL заявки от %(count)d връзки"
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "Статични файлове (%(num_found)s открити, %(num_used)s използвани)"
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Статични файлове"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s файл използван"
msgstr[1] "%(num_used)s файла са използвани"
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Шаблони"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Шаблони (%(num_templates)s рендерирани)"
#: panels/templates/panel.py:195
msgid "No origin"
msgstr "Няма произход"
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "Процесор: %(cum)0.2fms (%(total)0.2fms)"
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Общо: %0.2fms"
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Време"
#: panels/timer.py:46
msgid "User CPU time"
msgstr "Потребителско процесорно време "
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f ms"
#: panels/timer.py:47
msgid "System CPU time"
msgstr "Системно процесорно време"
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f ms"
#: panels/timer.py:48
msgid "Total CPU time"
msgstr "Общо процесорно време"
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f ms"
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Изминало време"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f ms"
#: panels/timer.py:51
msgid "Context switches"
msgstr "Контекстни превключвания"
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)d волеви, %(ivcsw)d неволеви"
#: panels/versions.py:19
msgid "Versions"
msgstr "Версии"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Скрий лента с инструменти "
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Скрий"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "Покажи лента с инструменти"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "Деактивирай за следващо и всички последващи заявки"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "Активирай за следващо и всички последващи заявки"
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Обобщение"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "Общо извиквания"
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "Общо време"
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "Кеш успехи"
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "Кеш неуспехи"
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Команди"
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Извиквания"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Вид"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "Аргументи"
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "Аргументи с ключови думи"
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Бекенд"
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "Хедъри на заявката"
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Ключ"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Стойност"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "Хедъри на отговора"
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "WSGI environ"
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "Понеже WSGI environ наследява средата на сървъра, е показана само важната част от него по-долу."
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr "Метод"
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Път"
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr "Променливи на зявката"
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr "Състояние"
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Действие"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Променлива"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Извикване"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "КумулативноВреме"
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "За"
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "ОбщоВреме"
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Брой"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Информация за изгледа"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "Функция на изгледа"
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "Име на URL"
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "Бисквитки"
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "Няма бисквитки"
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "Данни на сесията"
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "Няма данни от сесията"
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "GET данни"
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Няма GET данни"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "POST данни"
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Няма POST данни"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Настройка"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Сигнал"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Получатели"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s заявка"
msgstr[1] "%(num)s заявки"
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr "Включва %(count)s подобни"
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr "и %(dupes)s повторени"
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Заявка"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Във времето"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr "%(count)s подобни заявки."
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr "Повторени %(dupes)s пъти."
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Връзка:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Изолационно ниво:"
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Статус на транзакцията:"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(неясен)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "Не са записани никакви SQL заявки по време на тази заявка."
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr "SQL разяснен"
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "Изпълнен SQL"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "База данни"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr "SQL профилиран"
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Грешка"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr "Избран SQL"
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Празно множество"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "Път към статичен файл"
msgstr[1] "Пътища към статични файлове"
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(префикс %(prefix)s)"
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "None"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "Приложение статичен файл"
msgstr[1] "Приложения статично файлове"
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] "Статичен файл"
msgstr[1] "Статични файлове"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] "%(payload_count)s файл"
msgstr[1] "%(payload_count)s файла"
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Местоположение"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr "Произход на шаблона:"
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Път към шаблон"
msgstr[1] "Пътища към шаблони"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Шаблон"
msgstr[1] "Шаблони"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "Превключи контекста"
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "Контекстен процесор"
msgstr[1] "Контекстни процесори"
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "Използване на ресурси"
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Ресурс"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "Време в браузъра"
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "Атрибут на измерването"
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr "Време от началото на навигацията (+продължителност)"
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr "Пакет"
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Име"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Версия"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Местоположение:"
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "Django Debug Toolbar прехвана пренасочване към горния URL с цел преглед за отстраняване на грешки /дебъг/. Можете да кликнете върху връзката по-горе, за да продължите с пренасочването по нормалния начин."
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "Данните за този панел вече не са налични. Моля, презаредете страницата и опитайте отново. "
================================================
FILE: debug_toolbar/locale/ca/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# el_libre como el chaval , 2013
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: el_libre como el chaval , 2013\n"
"Language-Team: Catalan (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr ""
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr "Caxè"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] ""
msgstr[1] ""
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] ""
msgstr[1] ""
#: panels/headers.py:31
msgid "Headers"
msgstr "Encapçalaments"
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr ""
#: panels/profiling.py:140
msgid "Profiling"
msgstr ""
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr ""
#: panels/request.py:16
msgid "Request"
msgstr "Demanar"
#: panels/request.py:38
msgid ""
msgstr ""
#: panels/request.py:55
msgid ""
msgstr ""
#: panels/settings.py:17
msgid "Settings"
msgstr "Configuració"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr ""
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] ""
msgstr[1] ""
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] ""
msgstr[1] ""
#: panels/signals.py:67
msgid "Signals"
msgstr "Senyals"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr ""
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr ""
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr ""
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Seriable"
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr ""
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr ""
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Actiu"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "En transacció"
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr ""
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "Desconegut"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
msgstr[1] ""
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
msgstr[1] ""
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr ""
#: panels/staticfiles.py:103
msgid "Static files"
msgstr ""
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] ""
msgstr[1] ""
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Plantilles"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr ""
#: panels/templates/panel.py:195
msgid "No origin"
msgstr ""
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr ""
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Total: %0.2fms"
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Hora"
#: panels/timer.py:46
msgid "User CPU time"
msgstr ""
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr ""
#: panels/timer.py:47
msgid "System CPU time"
msgstr ""
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr ""
#: panels/timer.py:48
msgid "Total CPU time"
msgstr ""
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr ""
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Temps emprat"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr ""
#: panels/timer.py:51
msgid "Context switches"
msgstr ""
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr ""
#: panels/versions.py:19
msgid "Versions"
msgstr "Versions"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Amagar barra d'eina"
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Amagar"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "Mostrar barra d'eines"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Resum"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "Total crides"
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "Total temps"
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Comandes"
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Crides"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Tipus"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Administració"
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Clau"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Valor"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr ""
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr ""
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr ""
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Acció"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Variable"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Cridar"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "Per"
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "TempsTotal"
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Recomptar"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Veure informació"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr ""
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr ""
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Sense dades GET"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Sense dades POST"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Configuració"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Senyal"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Destinataris"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Petició"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Línia temporal"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Connexió:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(desconegut)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "SQL Executat"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Base de dades"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr ""
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Error"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr ""
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "Cap"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Ubicació"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] ""
msgstr[1] "Plantilles"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Font"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Nom"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Versió"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Ubicació:"
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr ""
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr ""
================================================
FILE: debug_toolbar/locale/cs/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Josef Kolář , 2020
# kuboja, 2024
# Vláďa Macek , 2013-2014
# Vláďa Macek , 2015,2021
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: kuboja, 2024\n"
"Language-Team: Czech (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/cs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: cs\n"
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr "Debug Toolbar"
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr "Mezipaměť"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d volání během %(time).2fms"
msgstr[1] "%(cache_calls)d volání během %(time).2fms"
msgstr[2] "%(cache_calls)d volání během %(time).2fms"
msgstr[3] "%(cache_calls)d volání během %(time).2fms"
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "Volání mezipaměti z %(count)d backendu"
msgstr[1] "Volání mezipaměti z %(count)d backendů"
msgstr[2] "Volání mezipaměti z %(count)d backendů"
msgstr[3] "Volání mezipaměti z %(count)d backendů"
#: panels/headers.py:31
msgid "Headers"
msgstr "Hlavičky"
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr "Historie"
#: panels/profiling.py:140
msgid "Profiling"
msgstr "Profilování"
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "Zachycení přesměrování"
#: panels/request.py:16
msgid "Request"
msgstr "Požadavek"
#: panels/request.py:38
msgid ""
msgstr "<žádný pohled>"
#: panels/request.py:55
msgid ""
msgstr ""
#: panels/settings.py:17
msgid "Settings"
msgstr "Nastavení"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr ""
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d příjemce 1 signálu"
msgstr[1] "%(num_receivers)d příjemci 1 signálu"
msgstr[2] "%(num_receivers)d příjemců 1 signálu"
msgstr[3] "%(num_receivers)d příjemců 1 signálu"
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d příjemce %(num_signals)d signálů"
msgstr[1] "%(num_receivers)d příjemci %(num_signals)d signálů"
msgstr[2] "%(num_receivers)d příjemců %(num_signals)d signálů"
msgstr[3] "%(num_receivers)d příjemců %(num_signals)d signálů"
#: panels/signals.py:67
msgid "Signals"
msgstr "Signály"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr "Read uncommitted"
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr "Read committed"
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr "Repeatable read"
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Serializable"
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "Autocommit"
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "V klidu (idle)"
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Aktivní"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "Uvnitř transakce"
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "V chybovém stavu"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "Neznámé"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] "%(query_count)ddotaz během %(sql_time).2f ms"
msgstr[1] "%(query_count)d dotazy během %(sql_time).2f ms"
msgstr[2] "%(query_count)d dotazů během %(sql_time).2f ms"
msgstr[3] "%(query_count)d dotazů během %(sql_time).2f ms"
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] "SQL dotazy z %(count)d spojení"
msgstr[1] "SQL dotazy ze %(count)d spojení"
msgstr[2] "SQL dotazy z %(count)d spojení"
msgstr[3] "SQL dotazy z %(count)d spojení"
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "Statické soubory (nalezeno: %(num_found)s, použito: %(num_used)s)"
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Statické soubory"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s soubor použit"
msgstr[1] "%(num_used)s soubory použity"
msgstr[2] "%(num_used)s souborů použito"
msgstr[3] "%(num_used)s souborů použito"
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Šablony"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Šablony (renderovaných: %(num_templates)s)"
#: panels/templates/panel.py:195
msgid "No origin"
msgstr "Zdroj chybí"
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)"
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Celkem: %0.2fms"
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Čas"
#: panels/timer.py:46
msgid "User CPU time"
msgstr "Uživatelský čas CPU"
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f ms"
#: panels/timer.py:47
msgid "System CPU time"
msgstr "Systémový čas CPU"
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f ms"
#: panels/timer.py:48
msgid "Total CPU time"
msgstr "Celkový čas CPU"
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f ms"
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Uplynulý čas"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f ms"
#: panels/timer.py:51
msgid "Context switches"
msgstr "Přepnutí kontextu"
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)d dobrovolně, %(ivcsw)d nedobrovolně"
#: panels/versions.py:19
msgid "Versions"
msgstr "Verze"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Skrýt lištu"
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Skrýt"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "Zobrazit lištu"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "Vypnout pro následné požadavky"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "Zapnout pro následné požadavky"
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Souhrn"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "Celkem volání"
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "Celkový čas"
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "Nalezení v mezipaměti"
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "Nebylo v mezipaměti"
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Příkazy"
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Volání"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Typ"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "Argumenty"
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "Klíčované argumenty"
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Backend"
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "Záhlaví požadavku"
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Klíč"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Hodnota"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "Záhlaví odezvy"
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "Prostředí WSGI"
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "Níže je zobrazena pouze podstatná část proměnných prostředí, protože WSGI je dědí od serveru."
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr "Metoda"
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Cesta"
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr "Proměnné požadavku"
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr "Stav"
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Akce"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Proměnná"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Volání"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "KumulČas"
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "Celk. za volání"
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "CelkČas"
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Počet"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Informace o pohledových funkcích"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "Pohledová funkce"
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "Název URL"
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "Soubory cookie"
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "Žádné soubory cookie"
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "Data sezení"
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "Žádná data sezení"
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "Data typu GET"
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Žádná data typu GET"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "Data typu POST"
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Žádná data typu POST"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Nastavení"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Signál"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Příjemci"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s dotaz"
msgstr[1] "%(num)s dotazy"
msgstr[2] "%(num)s dotazů"
msgstr[3] "%(num)s dotazů"
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr "včetně %(count)s podobných"
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr "a %(dupes)s duplicitních"
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Dotaz"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Časová osa"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr "%(count)s podobných dotazů."
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Spojení:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Úroveň izolace:"
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Stav transakce:"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(neznámé)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "Pro tento požadavek nebyl zaznamenán žádný dotaz SQL."
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr "Vysvětlené SQL"
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "Spuštěné SQL"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Databáze"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr "Profilované SQL"
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Chyba"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr "Vybrané SQL"
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Prázdná sada"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "Cesta ke statickým souborům"
msgstr[1] "Cesty ke statickým souborům"
msgstr[2] "Cesty ke statickým souborům"
msgstr[3] "Cesty ke statickým souborům"
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(prefix %(prefix)s)"
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "Žádné"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "Aplikace se statickými soubory"
msgstr[1] "Aplikace se statickými soubory"
msgstr[2] "Aplikace se statickými soubory"
msgstr[3] "Aplikace se statickými soubory"
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] "Statický soubor"
msgstr[1] "Statické soubory"
msgstr[2] "Statické soubory"
msgstr[3] "Statické soubory"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] "%(payload_count)s soubor"
msgstr[1] "%(payload_count)s soubory"
msgstr[2] "%(payload_count)s souborů"
msgstr[3] "%(payload_count)s souborů"
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Adresa"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr "Zdroj šablony:"
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Cesta k šabloně"
msgstr[1] "Cesty k šablonám"
msgstr[2] "Cesty k šablonám"
msgstr[3] "Cesty k šablonám"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Šablona"
msgstr[1] "Šablony"
msgstr[2] "Šablony"
msgstr[3] "Šablony"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "Zap./vyp. kontext"
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "Procesor kontextu"
msgstr[1] "Procesory kontextu"
msgstr[2] "Procesory kontextu"
msgstr[3] "Procesory kontextu"
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "Využití zdrojů"
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Prostředek"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "Časování prohlížeče"
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "Atribut"
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr "Čas od začátku navigace (+trvání)"
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr "Balíček"
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Název"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Verze"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Adresa:"
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "Aplikace Django Debug Toolbar zachytila přesměrování na výše uvedenou adresu URL za účelem ladicího zobrazení. Chcete-li přesměrování dokončit, klepněte na odkaz výše."
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "Data pro tento panel již nejsou k dispozici. Obnovte stránku a zkuste to znova."
================================================
FILE: debug_toolbar/locale/de/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Jannis Leidel , 2012-2014,2021
# Matthias Kestenholz , 2021
# Tim Schilling, 2021
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Tim Schilling, 2021\n"
"Language-Team: German (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr "Debug Toolbar"
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr "Cache"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d Abfrage in %(time).2fms"
msgstr[1] "%(cache_calls)d Abfragen in %(time).2fms"
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "Cache-Aufrufe von %(count)d Backend"
msgstr[1] "Cache-Aufrufe von %(count)d Backends"
#: panels/headers.py:31
msgid "Headers"
msgstr "Header"
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr "Geschichte"
#: panels/profiling.py:140
msgid "Profiling"
msgstr "Profiling"
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "Umleitungen abfangen"
#: panels/request.py:16
msgid "Request"
msgstr "Anfrage"
#: panels/request.py:38
msgid ""
msgstr ""
#: panels/request.py:55
msgid ""
msgstr ""
#: panels/settings.py:17
msgid "Settings"
msgstr "Einstellungen"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr "Einstellungen von %s"
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d Empfänger von einem Signal"
msgstr[1] "%(num_receivers)d Empfänger von einem Signal"
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d Empfänger von %(num_signals)d Signalen"
msgstr[1] "%(num_receivers)d Empfänger von %(num_signals)d Signalen"
#: panels/signals.py:67
msgid "Signals"
msgstr "Signale"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr "Read uncommitted"
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr "Read committed"
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr "Repeatable read"
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Serializable"
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "Autocommit"
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "Wartet"
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Aktiv"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "In einer Transaktion"
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "Fehler"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "Unbekannt"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] "%(query_count)d Abfrage in %(sql_time).2f ms"
msgstr[1] "%(query_count)d Abfragen in %(sql_time).2f ms"
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] "SQL-Abfragen von %(count)d Verbindung"
msgstr[1] "SQL-Abfragen von %(count)d Verbindungen"
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "Statische Dateien (%(num_found)s gefunden, %(num_used)s benutzt)"
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Statische Dateien"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s Datei benutzt"
msgstr[1] "%(num_used)s Dateien benutzt"
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Templates"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Templates (%(num_templates)s gerendert)"
#: panels/templates/panel.py:195
msgid "No origin"
msgstr "Kein Ursprung"
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)"
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Gesamt: %0.2fms"
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Zeit"
#: panels/timer.py:46
msgid "User CPU time"
msgstr "CPU-Zeit Benutzer"
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f ms"
#: panels/timer.py:47
msgid "System CPU time"
msgstr "CPU-Zeit System"
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f ms"
#: panels/timer.py:48
msgid "Total CPU time"
msgstr "CPU-Zeit gesamt"
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f ms"
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Verstrichene Zeit"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f ms"
#: panels/timer.py:51
msgid "Context switches"
msgstr "Kontextwechsel"
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)d freiwillig, %(ivcsw)d unfreiwillig"
#: panels/versions.py:19
msgid "Versions"
msgstr "Versionen"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Toolbar ausblenden"
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Ausblenden"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "Toolbar einblenden"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "Für nächste und die darauffolgenden Anfragen deaktivieren"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "Für nächste und die darauffolgenden Anfragen aktivieren"
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Zusammenfassung"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "Aufrufe gesamt"
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "Zeit gesamt"
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "Cache erfolgreich"
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "Cache verfehlt"
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Befehle"
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Aufrufe"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Typ"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "Argumente"
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "Schlüsselwort-Argumente"
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Backend"
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "Anfrage-Header"
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Schlüssel"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Wert"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "Antwort-Header"
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "WSGI-Umgebung"
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "Da sich die WSGI-Umgebung von der Umgebung des Servers ableitet, wird nur eine notwendige Teilmenge dargestellt."
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr "Methode"
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Pfad"
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr "Anfrage-Variablen"
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr "Status"
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Aktion"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Variable"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Aufruf"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "Gesamt"
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "Per"
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "Total"
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Anzahl"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "View-Informationen"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "View-Funktion"
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "URL-Name"
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "Cookies"
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "Keine Cookies"
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "Sitzungsdaten"
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "Keine Sitzungsdaten"
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "GET-Daten"
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Keine GET-Daten"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "POST-Daten"
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Keine POST-Daten"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Einstellung"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Signal"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Empfänger"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s Abfrage"
msgstr[1] "%(num)s Abfragen"
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr "inklusive %(count)s ähnlich"
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr "und %(dupes)s dupliziert"
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Abfrage"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Verlauf"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr "%(count)s ähnliche Abfragen."
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr "%(dupes)s-mal dupliziert."
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Verbindung:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Isolationsebene:"
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Transaktionsstatus:"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(unbekannt)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "Es wurde keine SQL-Abfrage während dieses Vorgangs aufgezeichnet."
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr "SQL erklärt"
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "Ausgeführtes SQL"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Datenbank"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr "SQL durchleuchtet"
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Fehler"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr "SQL ausgewählt"
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Leeres Set"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "Pfad mit statischen Dateien"
msgstr[1] "Pfade mit statischen Dateien"
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(Präfix %(prefix)s)"
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "-"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "App mit statischen Dateien"
msgstr[1] "Apps mit statischen Dateien"
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] "Statische Datei"
msgstr[1] "Statische Dateien"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] "%(payload_count)s Datei"
msgstr[1] "%(payload_count)s Dateien"
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Ort"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr "Template-Quelle:"
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Template-Pfad"
msgstr[1] "Template-Pfade"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Template"
msgstr[1] "Templates"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "Context zeigen"
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "Context-Prozessor"
msgstr[1] "Context-Prozessoren"
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "Ressourcenverwendung"
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Ressource"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "Browserzeit"
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "Timing-Attribut"
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr "Zeit seit Seitenaufruf (plus Dauer)"
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr "Paket"
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Name"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Version"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Ziel:"
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "Die Django Debug Toolbar hat eine Weiterleitung an die obenstehende URL zur weiteren Überprüfung abgefangen. Klicken Sie den Link, um wie gewohnt weitergeleitet zu werden."
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "Die Daten für dieses Panel sind nicht mehr verfügbar. Bitte laden Sie die Seite neu."
================================================
FILE: debug_toolbar/locale/en/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-09 19:07-0600\n"
"PO-Revision-Date: 2012-03-31 20:10+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr ""
#: models.py:11
msgid "history entry"
msgstr ""
#: models.py:12
msgid "history entries"
msgstr ""
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:169
msgid "Cache"
msgstr ""
#: panels/cache.py:176
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] ""
msgstr[1] ""
#: panels/cache.py:185
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] ""
msgstr[1] ""
#: panels/community.py:13
msgid "Community"
msgstr ""
#: panels/headers.py:31
msgid "Headers"
msgstr ""
#: panels/history/panel.py:21 panels/history/panel.py:22
msgid "History"
msgstr ""
#: panels/profiling.py:156
msgid "Profiling"
msgstr ""
#: panels/redirects.py:19
msgid "Intercept redirects"
msgstr ""
#: panels/request.py:16
msgid "Request"
msgstr ""
#: panels/request.py:36
msgid ""
msgstr ""
#: panels/request.py:53
msgid ""
msgstr ""
#: panels/settings.py:27
msgid "Settings"
msgstr ""
#: panels/settings.py:30
#, python-format
msgid "Settings from %s"
msgstr ""
#: panels/signals.py:59
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] ""
msgstr[1] ""
#: panels/signals.py:64
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] ""
msgstr[1] ""
#: panels/signals.py:69
msgid "Signals"
msgstr ""
#: panels/sql/forms.py:56
msgid "Data for this panel isn't available anymore."
msgstr ""
#: panels/sql/forms.py:68
msgid "Invalid query id."
msgstr ""
#: panels/sql/panel.py:32 panels/sql/panel.py:43
msgid "Read uncommitted"
msgstr ""
#: panels/sql/panel.py:33 panels/sql/panel.py:45
msgid "Read committed"
msgstr ""
#: panels/sql/panel.py:34 panels/sql/panel.py:47
msgid "Repeatable read"
msgstr ""
#: panels/sql/panel.py:35 panels/sql/panel.py:49
msgid "Serializable"
msgstr ""
#: panels/sql/panel.py:41
msgid "Autocommit"
msgstr ""
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "Idle"
msgstr ""
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "Active"
msgstr ""
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "In transaction"
msgstr ""
#: panels/sql/panel.py:66 panels/sql/panel.py:76
msgid "In error"
msgstr ""
#: panels/sql/panel.py:67 panels/sql/panel.py:77
msgid "Unknown"
msgstr ""
#: panels/sql/panel.py:165
msgid "SQL"
msgstr ""
#: panels/sql/panel.py:172
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
msgstr[1] ""
#: panels/sql/panel.py:184
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
msgstr[1] ""
#: panels/staticfiles.py:47
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr ""
#: panels/staticfiles.py:81
msgid "Static files"
msgstr ""
#: panels/staticfiles.py:87
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] ""
msgstr[1] ""
#: panels/templates/panel.py:104
msgid "Templates"
msgstr ""
#: panels/templates/panel.py:109
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr ""
#: panels/templates/panel.py:199
msgid "No origin"
msgstr ""
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr ""
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr ""
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr ""
#: panels/timer.py:46
msgid "User CPU time"
msgstr ""
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr ""
#: panels/timer.py:47
msgid "System CPU time"
msgstr ""
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr ""
#: panels/timer.py:48
msgid "Total CPU time"
msgstr ""
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr ""
#: panels/timer.py:49
msgid "Elapsed time"
msgstr ""
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr ""
#: panels/timer.py:51
msgid "Context switches"
msgstr ""
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr ""
#: panels/versions.py:21
msgid "Versions"
msgstr ""
#: templates/debug_toolbar/base.html:22
msgid "Hide toolbar"
msgstr ""
#: templates/debug_toolbar/base.html:22
msgid "Hide"
msgstr ""
#: templates/debug_toolbar/base.html:24 templates/debug_toolbar/base.html:25
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:34
msgid "Show toolbar"
msgstr ""
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr ""
#: templates/debug_toolbar/panels/community.html:5
msgid "Community & Contribution"
msgstr ""
#: templates/debug_toolbar/panels/community.html:8
msgid ""
"Want to contribute to Django Debug Toolbar? Get involved in our community!"
msgstr ""
#: templates/debug_toolbar/panels/community.html:14
msgid "Join Discussions"
msgstr ""
#: templates/debug_toolbar/panels/community.html:19
msgid "View Issues"
msgstr ""
#: templates/debug_toolbar/panels/community.html:24
msgid "Contribution Guide"
msgstr ""
#: templates/debug_toolbar/panels/community.html:31
msgid "Django Debug Toolbar Documentation"
msgstr ""
#: templates/debug_toolbar/panels/community.html:34
msgid ""
"Explore the official documentation to learn more about Django Debug Toolbar."
msgstr ""
#: templates/debug_toolbar/panels/community.html:39
msgid "Read Documentation"
msgstr ""
#: templates/debug_toolbar/panels/community.html:44
msgid "How to Use Django Debug Toolbar"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr ""
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr ""
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr ""
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr ""
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr ""
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr ""
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr ""
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr ""
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr ""
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr ""
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr ""
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:3
msgid "SQL explained"
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr ""
#: templates/debug_toolbar/panels/sql_profile.html:3
msgid "SQL profiled"
msgstr ""
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr ""
#: templates/debug_toolbar/panels/sql_select.html:3
msgid "SQL selected"
msgstr ""
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr ""
#: templates/debug_toolbar/panels/template_source.html:3
msgid "Template source:"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr ""
#: templates/debug_toolbar/redirect.html:61
msgid "WARNING:"
msgstr ""
#: templates/debug_toolbar/redirect.html:62
#, python-format
msgid ""
"\n"
" The RedirectsPanel is deprecated and will be removed in a future "
"version. The HistoryPanel\n"
" now provides the ability to view toolbar data for redirected requests. "
"If you still have a\n"
" use case for this panel, please comment on this issue.\n"
" "
msgstr ""
#: templates/debug_toolbar/redirect.html:70
msgid "Location:"
msgstr ""
#: templates/debug_toolbar/redirect.html:72
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr ""
#: views.py:21
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr ""
================================================
FILE: debug_toolbar/locale/es/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# jcatalan , 2014
# Daniel Iglesias , 2021
# Leonardo J. Caballero G. , 2013-2014,2020
# marcelor , 2013
# Sergio Infante , 2015
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Daniel Iglesias , 2021\n"
"Language-Team: Spanish (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr "Barra de herramientas de Depuración"
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr "Cache"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d llamada en %(time).2fms"
msgstr[1] "%(cache_calls)d llamadas en %(time).2fms"
msgstr[2] "%(cache_calls)d llamadas en %(time).2fms"
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "%(count)d llamadas al Cache desde el backend"
msgstr[1] "%(count)d llamadas al Caché desde backends"
msgstr[2] "%(count)d llamadas al Caché desde backends"
#: panels/headers.py:31
msgid "Headers"
msgstr "Encabezados"
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr "Historial"
#: panels/profiling.py:140
msgid "Profiling"
msgstr "Análisis de rendimiento"
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "Interceptar re-direcionamiento"
#: panels/request.py:16
msgid "Request"
msgstr "Petición"
#: panels/request.py:38
msgid ""
msgstr ""
#: panels/request.py:55
msgid ""
msgstr ""
#: panels/settings.py:17
msgid "Settings"
msgstr "Configuraciones"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr "Valores procedentes de %s"
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d receptor de 1 señal"
msgstr[1] "%(num_receivers)d receptores de 1 señal"
msgstr[2] "%(num_receivers)d receptores de 1 señal"
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d receptor de %(num_signals)d señales"
msgstr[1] "%(num_receivers)d receptores de %(num_signals)d señales"
msgstr[2] "%(num_receivers)d receptores de %(num_signals)d señales"
#: panels/signals.py:67
msgid "Signals"
msgstr "Señales"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr "Leer cambios tentativos"
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr "Leer cambios permanentes"
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr "Lectura repetible"
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Serializable"
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "Autocommit"
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "Inactivo"
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Activo"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "En transacción"
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "En error"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "Desconocido"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "Archivos estáticos (%(num_found)s encontrados, %(num_used)s en uso)"
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Archivos estáticos"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s archivo usado"
msgstr[1] "%(num_used)s archivos usados"
msgstr[2] "%(num_used)s archivos usados"
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Plantillas"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Plantillas (%(num_templates)s renderizadas)"
#: panels/templates/panel.py:195
msgid "No origin"
msgstr "Sin origen"
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)"
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Total: %0.2fms"
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Tiempo"
#: panels/timer.py:46
msgid "User CPU time"
msgstr "Tiempo en CPU de usuario"
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f ms"
#: panels/timer.py:47
msgid "System CPU time"
msgstr "Tiempo en CPU del sistema"
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f ms"
#: panels/timer.py:48
msgid "Total CPU time"
msgstr "Tiempo total de CPU"
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f ms"
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Tiempo transcurrido"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f ms"
#: panels/timer.py:51
msgid "Context switches"
msgstr "Cambios de contexto"
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)d voluntario, %(ivcsw)d involuntario"
#: panels/versions.py:19
msgid "Versions"
msgstr "Versiones"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Ocutar barra de herramientas"
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Ocultar"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "Mostrar barra de herramientas"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "Deshabilitar para el próximo y sucesivos peticiones"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "Habilitar para el próximo y sucesivos peticiones"
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Resúmen"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "Llamadas totales"
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "Tiempo total"
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "Aciertos de caché"
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "Errores de caché"
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Comandos"
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Llamadas"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Tipo"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "Argumentos"
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "Argumentos por palabra clave"
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Backend"
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "Encabezados de peticiones"
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Clave"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Valor"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "Encabezados de respuesta"
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "Entorno WSGI"
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "Ya que el entorno WSGI hereda el entorno del servidor, solo un subconjunto significativo es mostrado más abajo."
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr "Método"
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Ruta"
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr "Variables de la petición"
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr "Estado"
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Acción"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Variable"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Llamar"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "TiempoAcum"
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "Por"
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "TiempoTot"
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Contar"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Información de Vista"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "Función vista"
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "Nombre de dirección URL"
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "Cookies"
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "Sin cookies"
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "Datos de sesión"
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "Sin datos de sesión"
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "Datos del GET"
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Sin datos GET"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "Datos del POST"
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Sin datos POST"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Configuración"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Señal"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Receptores"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s consulta"
msgstr[1] "%(num)s consultas"
msgstr[2] "%(num)s consultas"
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr "y %(dupes)s repetidos"
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Query"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Línea de tiempo"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr "%(count)s consultas similares. "
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr "Repetidas %(dupes)s veces."
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Conexión:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Nivel de aislamiento:"
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Estado de la transacción:"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(desconocido)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "No se registraron consultas SQL durante ésta petición."
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr "SQL explicado"
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "SQL Ejecutado"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Base de datos"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr "SQL analizado"
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Error"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr "SQL seleccionado"
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Establecer Vacío"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "Ruta a archivos estático"
msgstr[1] "Rutas a archivos estáticos"
msgstr[2] "Rutas a archivos estáticos"
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(prefijo %(prefix)s)"
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "Ninguno"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "Aplicación a archivos estáticos"
msgstr[1] "Aplicaciones de archivos estáticos"
msgstr[2] "Aplicaciones de archivos estáticos"
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] "Archivo estático"
msgstr[1] "Archivos estáticos"
msgstr[2] "Archivos estáticos"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] "%(payload_count)s archivo"
msgstr[1] "%(payload_count)s archivos"
msgstr[2] "%(payload_count)s archivos"
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Ubicación"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr "Fuente de plantilla:"
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Ruta de plantilla"
msgstr[1] "Rutas de plantillas"
msgstr[2] "Rutas de plantillas"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Plantilla"
msgstr[1] "Plantillas"
msgstr[2] "Plantillas"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "Mostrar/Ocultar contexto"
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "Procesador de contexto"
msgstr[1] "Procesadores de contexto"
msgstr[2] "Procesadores de contexto"
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "Uso de recursos"
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Recurso"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "Distribución de tiempos de navegador"
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "Atributo de tiempo"
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr "Tiempo desde inicio de la navegación (+duración)"
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr "Paquete"
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Nombre"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Versión"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Ubicación:"
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "El Django Debug Toolbar ha interceptado un re-direccionamiento a la dirección de Internet mostrada arriba, con el propósito de inspeccionarla. Usted puede hacer clic en el vínculo de arriba para continuar con el re-direccionamiento normalmente."
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "La información de este panel ya no se encuentra disponible. Por favor recargue la página y pruebe nuevamente."
================================================
FILE: debug_toolbar/locale/fa/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Ali Soltani , 2021
# Elyas Ebrahimpour , 2024
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Elyas Ebrahimpour , 2024\n"
"Language-Team: Persian (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/fa/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fa\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr "نوار ابزار دیباگ"
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr "Cache"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d فراخوان در %(time).2f میلیثانیه"
msgstr[1] "%(cache_calls)d فراخوان در %(time).2f میلیثانیه"
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "فراخوانهای کش از %(count)d بکاند"
msgstr[1] "فراخوانهای کش از %(count)d بکاندها"
#: panels/headers.py:31
msgid "Headers"
msgstr "هدر ها"
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr "تاریخچه"
#: panels/profiling.py:140
msgid "Profiling"
msgstr "نمایه سازی"
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "رهگیری تغییر مسیرها"
#: panels/request.py:16
msgid "Request"
msgstr "ریکوئست"
#: panels/request.py:38
msgid ""
msgstr "<بدون نمایش>"
#: panels/request.py:55
msgid ""
msgstr "<در دسترس نیست>"
#: panels/settings.py:17
msgid "Settings"
msgstr "تنظیمات"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr "تنظیمات از %s"
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d گیرنده از 1 سیگنال"
msgstr[1] "%(num_receivers)d گیرنده از 1 سیگنال"
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d گیرنده از %(num_signals)d سیگنال"
msgstr[1] "%(num_receivers)d گیرنده از %(num_signals)d سیگنال"
#: panels/signals.py:67
msgid "Signals"
msgstr "سیگنالها"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr "خواندن بدون تاثیر"
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr "خواندن با تاثیر"
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr "خواندن تکرارپذیر"
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "قابل سریالایز شدن"
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "کامیت خودکار"
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "IDLE"
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "فعال"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "در تراکنش"
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "در خطا"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "ناشناخته"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "اس کیو ال"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] "%(query_count)d کوئری در %(sql_time).2f میلیثانیه"
msgstr[1] "%(query_count)d کوئری در %(sql_time).2f میلیثانیه"
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] "کوئریهای SQL از %(count)d اتصال"
msgstr[1] "کوئریهای SQL از %(count)d اتصال"
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "فایلهای استاتیک (%(num_found)s یافته شده، %(num_used)s استفاده شده)"
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "فایل های استاتیک"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s فایل استفاده شده"
msgstr[1] "%(num_used)s فایل استفاده شده"
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "تمپلیت ها"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "تمپلیت ها (%(num_templates)s rendered)"
#: panels/templates/panel.py:195
msgid "No origin"
msgstr "بدون origin"
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "پردازنده: %(cum)0.2f میلیثانیه (%(total)0.2f میلیثانیه)"
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "مجموع: %0.2f میلیثانیه"
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "زمان"
#: panels/timer.py:46
msgid "User CPU time"
msgstr "زمان سی پی یو کاربر"
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f میلیثانیه"
#: panels/timer.py:47
msgid "System CPU time"
msgstr "زمان CPU سیستم"
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f میلیثانیه"
#: panels/timer.py:48
msgid "Total CPU time"
msgstr "زمان کل سی پی یو"
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f میلی ثانیه"
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "زمان سپری شده"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f میلیثانیه"
#: panels/timer.py:51
msgid "Context switches"
msgstr "تغییرات زمینه"
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)d اختیاری، %(ivcsw)d غیراختیاری"
#: panels/versions.py:19
msgid "Versions"
msgstr "ورژن ها"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "پنهان کردن toolbar"
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "پنهان کردن"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "نمایش toolbar"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "غیر فعال کردن برای ریکوئست های پی در پی"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "فعال کردن برای ریکوئست های بعدی و پی در پی"
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "خلاصه"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "تعداد نهایی کال کردن ها"
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "زمان نهایی"
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "Cache hits"
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "عدم دسترسی به کش"
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "دستورات"
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "فراخوانی ها"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "نوع"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "آرگومان ها"
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "آرگومان های کیورد"
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "بک اند"
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "هدر های ریکوئست"
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "کلید"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "مقدار"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "هدر های ریسپانس"
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "محیط WSGI"
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "از آنجا که محیط WSGI محیط سرور را به ارث می برد ، فقط یک زیر مجموعه مهم در زیر نشان داده شده است."
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr "متد"
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Path"
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr "متغیر های ریکوئست"
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr "وضعیت"
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "اکشن"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "متغیر"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Call"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "بر"
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "زمان نهایی"
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "تعداد"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "اطلاعات View"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "تابع Viw"
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "نام URL"
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "کوکی ها"
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "کوکی ای وجود ندارد"
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "دیتای سشن"
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "دیتای سشن وجود ندارد"
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "دیتای GET"
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "دیتای GET وجود ندارد"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "دیتای POST"
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "دیتای POST وجود ندارد"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "تنظیمات"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Signal"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Receiver ها"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "کوئری"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "تایملاین"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr "%(count)s کوئری مشابه"
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr "%(dupes)s بار تکرار شده"
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "کانکشن:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "سطح isolation:"
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "وضعیت تراکنش"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(ناشناخته)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "کوئری SQL ای در این ریکوئست ثبت نشده است"
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr "توضیح SQL"
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "کوئری اجرا شده"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "دیتابیس"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr "SQL profiled"
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "خطا"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr "انتخاب شده SQL"
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "set خالی"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(prefix %(prefix)s)"
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "خالی"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "مکان"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr "منبع تمپلیت:"
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "تغییر متن"
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "پردازشگر محیط"
msgstr[1] "پردازشگرهای محیط"
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "استفاده منابع"
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "منابع"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "زمان بندی مرورگر"
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "ویژگی زمان بندی"
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr "زمان از آغاز ناوبری (+مدت)"
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr "پکیج"
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "نام"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "ورژن"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "مکان:"
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "نوار ابزار اشکالزدای Django یک هدایت به URL بالا را به منظور مشاهده اشکال توسط ابزار اشکالزدای افزونه کرده است. میتوانید بر روی پیوند بالا کلیک کنید تا با هدایت به صورت عادی ادامه دهید."
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "دیتا برای نمایش در دسترس نیست. لطفا صفحه را ریفرش کنید."
================================================
FILE: debug_toolbar/locale/fi/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Klaus Dahlén, 2012
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Klaus Dahlén, 2012\n"
"Language-Team: Finnish (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr ""
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr "Välimuisti"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d kutsu %(time).2fms"
msgstr[1] "%(cache_calls)d kutsua %(time).2fms"
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] ""
msgstr[1] ""
#: panels/headers.py:31
msgid "Headers"
msgstr ""
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr ""
#: panels/profiling.py:140
msgid "Profiling"
msgstr "Profilointi"
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr ""
#: panels/request.py:16
msgid "Request"
msgstr ""
#: panels/request.py:38
msgid ""
msgstr ""
#: panels/request.py:55
msgid ""
msgstr ""
#: panels/settings.py:17
msgid "Settings"
msgstr "Asetukset"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr ""
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d vastaanotin 1 signaalille"
msgstr[1] "%(num_receivers)d vastaanotinta 1 signaalille"
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d vastaanotin %(num_signals)d signaalille"
msgstr[1] "%(num_receivers)d vastaanotinta %(num_signals)d signaalille"
#: panels/signals.py:67
msgid "Signals"
msgstr "Signaalit"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr ""
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr ""
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr ""
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Muuttuja"
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "Autocommit"
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr ""
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Tapahtuma"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "Tapahtuman tila:"
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "Virhe"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "(tuntematon)"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
msgstr[1] ""
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
msgstr[1] ""
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr ""
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Staattiset tiedostot"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] ""
msgstr[1] ""
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Asettelupohjat"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Asetttelupohjat (%(num_templates)s renderöity)"
#: panels/templates/panel.py:195
msgid "No origin"
msgstr ""
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)"
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr ""
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Aika"
#: panels/timer.py:46
msgid "User CPU time"
msgstr "Käyttäjän CPU-aika"
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f ms"
#: panels/timer.py:47
msgid "System CPU time"
msgstr "Järjestelmän CPU-aika"
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f ms"
#: panels/timer.py:48
msgid "Total CPU time"
msgstr "CPU-aika yhteensä"
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f ms"
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Kulunut aika"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f ms"
#: panels/timer.py:51
msgid "Context switches"
msgstr "Kontekstin vivut"
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr ""
#: panels/versions.py:19
msgid "Versions"
msgstr "Versiot"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr ""
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Piilota"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr ""
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Tyyppi"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Avain"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Arvo"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr ""
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr ""
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Polku"
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Tapahtuma"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Muuttuja"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Kutsu"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "CumTime"
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "/"
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "TotTime"
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Määrä"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Näkymän tiedot"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr ""
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr ""
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Ei GET-dataa"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Ei POST-dataa"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Asetus"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Signaali"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Vastaanottimet"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s kysely"
msgstr[1] "%(num)s kyselyä"
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Kysely"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Aikajana"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Yhteys:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Eristystaso:"
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Tapahtuman status:"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(tuntematon)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "Tämän pyynnön aikana ei tehty yhtään SQL-kyselyä."
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "Suoritettu SQL"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Tietokanta"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr ""
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Virhe"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr ""
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Tyhjä joukko"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "None"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] ""
msgstr[1] "Staattiset tiedostot"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Sijainti"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Sivupohjan polku"
msgstr[1] "Sivupohjan polku"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Sivupohja"
msgstr[1] "Sivupohja"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "Kontekstiprosessori"
msgstr[1] "Kontekstiprosessori"
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Resurssi"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Nimi"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Versio"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr ""
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr ""
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr ""
================================================
FILE: debug_toolbar/locale/fr/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Anthony Jorion , 2013
# c1b16e6c929c50740e884a23aafc8829_00449d9 , 2014
# Claude Paroz , 2013
# Colin O'Brien , 2021
# David Paccoud, 2009
# Dominick Rivard , 2013
# Maxime Abry , 2016
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Colin O'Brien , 2021\n"
"Language-Team: French (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr "Barre d'outils de débogage"
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr "Cache"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d appel en %(time).2fms"
msgstr[1] "%(cache_calls)d appels en %(time).2fms"
msgstr[2] "%(cache_calls)d appels en %(time).2fms"
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "Appels au cache depuis %(count)d moteur"
msgstr[1] "Appels au cache depuis %(count)d moteurs"
msgstr[2] "Appels au cache depuis %(count)d moteurs"
#: panels/headers.py:31
msgid "Headers"
msgstr "En-têtes"
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr "Historique"
#: panels/profiling.py:140
msgid "Profiling"
msgstr "Profilage"
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "Interception des redirections"
#: panels/request.py:16
msgid "Request"
msgstr "Requête"
#: panels/request.py:38
msgid ""
msgstr ""
#: panels/request.py:55
msgid ""
msgstr ""
#: panels/settings.py:17
msgid "Settings"
msgstr "Paramètres"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr "Paramètres de %s"
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d receveur d'un signal"
msgstr[1] "%(num_receivers)d receveurs d'un signal"
msgstr[2] "%(num_receivers)d receveurs d'un signal"
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d receveur de %(num_signals)d signaux"
msgstr[1] "%(num_receivers)d receveurs de %(num_signals)d signaux"
msgstr[2] "%(num_receivers)d receveurs de %(num_signals)d signaux"
#: panels/signals.py:67
msgid "Signals"
msgstr "Signaux"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr "Lecture non validée"
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr "Lecture validée"
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr "Lecture répétable"
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Sérialisable"
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "Auto validation"
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "Inactif"
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Actif"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "Transaction en cours"
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "Erreur"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "Indéterminé"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] "%(query_count)d requête en %(sql_time).2f ms"
msgstr[1] "%(query_count)d requêtes en %(sql_time).2f ms"
msgstr[2] "%(query_count)d requêtes en %(sql_time).2f ms"
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] "requêtes SQL venant de %(count)d connexion"
msgstr[1] "Requêtes SQL venant de %(count)d connexions"
msgstr[2] "Requêtes SQL venant de %(count)d connexions"
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "Fichiers statiques (%(num_found)s trouvé(s), %(num_used)s utilisé(s))"
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Fichiers statiques"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s fichier utilisé"
msgstr[1] "%(num_used)s fichiers utilisés"
msgstr[2] "%(num_used)s fichiers utilisés"
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Gabarits"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Gabarits (%(num_templates)s affichés)"
#: panels/templates/panel.py:195
msgid "No origin"
msgstr "Sans Origine"
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)"
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Total : %0.2fms"
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Temps"
#: panels/timer.py:46
msgid "User CPU time"
msgstr "Temps CPU de l'utilisateur"
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f ms"
#: panels/timer.py:47
msgid "System CPU time"
msgstr "Temps CPU du système"
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f ms"
#: panels/timer.py:48
msgid "Total CPU time"
msgstr "Temps total du CPU"
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f ms"
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Temps écoulé"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f ms"
#: panels/timer.py:51
msgid "Context switches"
msgstr "Basculements de contexte"
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)d volontaire, %(ivcsw)d involontaire"
#: panels/versions.py:19
msgid "Versions"
msgstr "Versions"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Masquer la barre d'outils"
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Masquer"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "Afficher la barre d'outils"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "Désactiver pour les requêtes suivantes"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "Activer pour les requêtes suivantes"
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Résumé"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "Nombre total d'appels"
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "Temps total"
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "Succès de cache"
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "Défauts de cache"
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Commandes"
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Appels"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Type"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "Paramètres"
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "Paramètres nommés"
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Moteur"
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "En-têtes de requête"
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Clé"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Valeur"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "En-têtes de réponse"
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "Environnement WSGI"
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "Comme l'environnement WSGI hérite de celui du serveur, seul un sous-ensemble pertinent est affiché ci-dessous."
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr "Méthode"
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Chemin"
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr "Variables de Requête"
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr "État"
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Action"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Variable"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Appel"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "Temps cumulé"
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "Par"
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "Temps total"
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Compte"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Afficher l'information"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "Fonction de vue"
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "Nom d'URL"
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "Cookies"
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "Pas de cookies"
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "Données de session"
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "Pas de données de session"
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "Données GET"
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Aucune donnée GET"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "Données POST"
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Aucune donnée POST"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Paramètre"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Signal"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Receveurs"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s requête"
msgstr[1] "%(num)s requêtes"
msgstr[2] "%(num)s requêtes"
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr "comprenant %(count)s similaires"
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr "et %(dupes)s en double"
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Requête"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Chronologie"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr "%(count)s requêtes similaires."
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr "Dupliqué %(dupes)s fois."
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Connexion :"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Niveau d'isolation :"
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "État de la transaction :"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(indéterminé)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "Aucune requête SQL n'a été enregistrée durant cette requête."
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr "SQL expliqué"
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "SQL Exécuté"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Base de données"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr "SQL profilé"
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Erreur"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr "SQL sélectionné"
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Ensemble vide"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "Chemin de fichier statique"
msgstr[1] "Chemins de fichiers statiques"
msgstr[2] "Chemins de fichiers statiques"
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(préfixe %(prefix)s)"
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "Aucun"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "Application de fichiers statiques"
msgstr[1] "Applications de fichiers statiques"
msgstr[2] "Applications de fichiers statiques"
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] ""
msgstr[1] "Fichiers statiques"
msgstr[2] "Fichiers statiques"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] "%(payload_count)s fichier"
msgstr[1] "%(payload_count)s fichiers"
msgstr[2] "%(payload_count)s fichiers"
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Emplacement"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr "Source du gabarit :"
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] ""
msgstr[1] "Chemin du gabarit"
msgstr[2] "Chemin du gabarit"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] ""
msgstr[1] "Gabarit"
msgstr[2] "Gabarit"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "Afficher/masquer le contexte"
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "Processeur de contexte"
msgstr[1] "Processeurs de contexte"
msgstr[2] "Processeurs de contexte"
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "Utilisation des ressources"
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Ressource"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "Chronologie du navigateur"
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "Attribut mesuré"
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr "Temps depuis le début de la navigation (+durée)"
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr "Paquet"
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Nom"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Version"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Emplacement :"
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "La barre de débogage Django a intercepté une redirection vers l'URL ci-dessus afin de permettre la consultation des messages de débogage. Vous pouvez cliquer sur le lien ci-dessus pour continuer normalement avec la redirection."
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "Les données de ce panneau ne sont plus disponibles. Rechargez la page et essayez à nouveau."
================================================
FILE: debug_toolbar/locale/he/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# shaib , 2012
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: shaib , 2012\n"
"Language-Team: Hebrew (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/he/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: he\n"
"Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr ""
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr ""
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/headers.py:31
msgid "Headers"
msgstr ""
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr ""
#: panels/profiling.py:140
msgid "Profiling"
msgstr ""
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr ""
#: panels/request.py:16
msgid "Request"
msgstr ""
#: panels/request.py:38
msgid ""
msgstr ""
#: panels/request.py:55
msgid ""
msgstr ""
#: panels/settings.py:17
msgid "Settings"
msgstr ""
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr ""
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/signals.py:67
msgid "Signals"
msgstr "סיגנלים"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr ""
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr ""
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr ""
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "משתנה"
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr ""
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr ""
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "פעילות"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr ""
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "שגיאה"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr ""
#: panels/sql/panel.py:162
msgid "SQL"
msgstr ""
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr ""
#: panels/staticfiles.py:103
msgid "Static files"
msgstr ""
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "תבניות"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr ""
#: panels/templates/panel.py:195
msgid "No origin"
msgstr ""
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr ""
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr ""
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "זמן"
#: panels/timer.py:46
msgid "User CPU time"
msgstr ""
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr ""
#: panels/timer.py:47
msgid "System CPU time"
msgstr ""
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr ""
#: panels/timer.py:48
msgid "Total CPU time"
msgstr ""
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr ""
#: panels/timer.py:49
msgid "Elapsed time"
msgstr ""
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr ""
#: panels/timer.py:51
msgid "Context switches"
msgstr ""
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr ""
#: panels/versions.py:19
msgid "Versions"
msgstr "גירסאות"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr ""
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "הסתר"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr ""
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "סוג"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "מפתח"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "ערך"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr ""
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr ""
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr ""
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "פעילות"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "משתנה"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr ""
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr ""
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr ""
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr ""
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "אין נתוני GET"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "אין נתוני POST"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr ""
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "סיגנל"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "SQL שבוצע"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr ""
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr ""
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "שגיאה"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr ""
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "קבוצה ריקה"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "מקום"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] ""
msgstr[1] "תבנית"
msgstr[2] "תבנית"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr ""
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr ""
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr ""
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr ""
================================================
FILE: debug_toolbar/locale/id/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Muhammad Panji , 2012
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Muhammad Panji , 2012\n"
"Language-Team: Indonesian (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/id/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: id\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr ""
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr ""
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] ""
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] ""
#: panels/headers.py:31
msgid "Headers"
msgstr ""
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr ""
#: panels/profiling.py:140
msgid "Profiling"
msgstr ""
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr ""
#: panels/request.py:16
msgid "Request"
msgstr ""
#: panels/request.py:38
msgid ""
msgstr ""
#: panels/request.py:55
msgid ""
msgstr ""
#: panels/settings.py:17
msgid "Settings"
msgstr "Pengaturan"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr ""
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] ""
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] ""
#: panels/signals.py:67
msgid "Signals"
msgstr "Sinyal"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr ""
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr ""
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr ""
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Variabel"
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr ""
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr ""
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Aksi"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "Status transaksi:"
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr ""
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "(tidak diketahui)"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr ""
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Berkas statik"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] ""
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Template"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr ""
#: panels/templates/panel.py:195
msgid "No origin"
msgstr ""
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)"
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr ""
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Waktu"
#: panels/timer.py:46
msgid "User CPU time"
msgstr "CPU time pengguna"
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr ""
#: panels/timer.py:47
msgid "System CPU time"
msgstr "CPU time sistem"
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr ""
#: panels/timer.py:48
msgid "Total CPU time"
msgstr "CPU time total"
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr ""
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Waktu terlampaui"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr ""
#: panels/timer.py:51
msgid "Context switches"
msgstr ""
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr ""
#: panels/versions.py:19
msgid "Versions"
msgstr "Versi"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr ""
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Menyembunyikan"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr ""
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Jenis"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Kunci"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Nilai"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr ""
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr ""
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr ""
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Aksi"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Variabel"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Panggil"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "CumTime"
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "Per"
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "TotTime"
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Hitung"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Lihat informasi"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr ""
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr ""
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Tidak ada data GET"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Tidak ada data POST"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Pengaturan"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Sinyal"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Penerima"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] ""
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Koneksi:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Tingkat isolasi:"
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Status transaksi:"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(tidak diketahui)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "SQL Tereksekusi"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Basis data"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr ""
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr ""
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr ""
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Himpunan kosong"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] ""
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "Tidak ada"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] ""
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] "Berkas statik"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] ""
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Lokasi"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Template path"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] ""
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] ""
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Sumber daya"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Versi"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr ""
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr ""
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr ""
================================================
FILE: debug_toolbar/locale/it/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Dario Agliottone , 2012
# Flavio Curella , 2013
# yakky , 2013-2014
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: yakky , 2013-2014\n"
"Language-Team: Italian (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: it\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr ""
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr "Cache"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d chiamata in %(time).2fms"
msgstr[1] "%(cache_calls)d chiamate in %(time).2fms"
msgstr[2] "%(cache_calls)d chiamate in %(time).2fms"
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "Chiamate alla cache da %(count)d backend"
msgstr[1] "Chiamate alla cache da %(count)d backend"
msgstr[2] "Chiamate alla cache da %(count)d backend"
#: panels/headers.py:31
msgid "Headers"
msgstr "Intestazioni"
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr ""
#: panels/profiling.py:140
msgid "Profiling"
msgstr "Profilazione"
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "Intercetta ridirezioni"
#: panels/request.py:16
msgid "Request"
msgstr "Request"
#: panels/request.py:38
msgid ""
msgstr ""
#: panels/request.py:55
msgid ""
msgstr ""
#: panels/settings.py:17
msgid "Settings"
msgstr "Impostazioni"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr ""
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d ricevitore di 1 segnale"
msgstr[1] "%(num_receivers)d ricevitori di 1 segnale"
msgstr[2] "%(num_receivers)d ricevitori di 1 segnale"
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d ricevitore di %(num_signals)d segnali"
msgstr[1] "%(num_receivers)d ricevitori di %(num_signals)d segnali"
msgstr[2] "%(num_receivers)d ricevitori di %(num_signals)d segnali"
#: panels/signals.py:67
msgid "Signals"
msgstr "Segnali"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr "Read uncommitted"
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr "Read committed"
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr "Repeatable read"
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Serializable"
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "Autocommit"
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "Idle"
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Azione"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "Stato transazione:"
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "Errore"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "(sconosciuto)"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "File statici (%(num_found)s trovati, %(num_used)s usati)"
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Files statici"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s file usato"
msgstr[1] "%(num_used)s file usati"
msgstr[2] "%(num_used)s file usati"
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Template"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Templates (%(num_templates)s rendered)"
#: panels/templates/panel.py:195
msgid "No origin"
msgstr ""
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)"
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Totale: %0.2fms"
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Tempo"
#: panels/timer.py:46
msgid "User CPU time"
msgstr "Tempo CPU utente"
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f ms"
#: panels/timer.py:47
msgid "System CPU time"
msgstr "Tempo CPU sistema"
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f ms"
#: panels/timer.py:48
msgid "Total CPU time"
msgstr "Tempo Totale CPU"
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f ms"
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Tempo Trascorso"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f ms"
#: panels/timer.py:51
msgid "Context switches"
msgstr "Cambi di contesto"
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)d volontario, %(ivcsw)d involontario"
#: panels/versions.py:19
msgid "Versions"
msgstr "Versioni"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Nascondi Toolbar"
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Nascondi"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "Mostra Toolbar"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "Disattiva per la prossima requests e le successive"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "Abilita per la prossima requests e le successive"
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Sommario"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "Chiamate totali"
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "Tempo Totale"
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "Trovati in cache"
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "Non trovati in cache"
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Comandi"
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Chiamate"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Tipo"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "Argomenti"
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "Parole chiave"
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Backend"
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "Header della request"
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Nome"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Valore"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "Header della response"
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "Ambiente WSGI"
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "Visto che l'ambiente WSGI è ereditato dal server, sotto è mostrata solo la parte significativa."
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr ""
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Percorso"
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Azione"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Variabile"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Chiamata"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "CumTime"
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "Per"
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "TotTime"
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Numero"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Vedi Informazioni"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "Funzione View"
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "Nome URL"
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "Cookies"
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "Nessun cookie"
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "Dati di sessione"
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "Nessun dato in sessione"
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "Dati GET"
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Nessun dato in GET"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "Dati POST"
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Nessuno dato in POST"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Impostazione"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Segnale"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Ricevitori"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s query"
msgstr[1] "%(num)s query"
msgstr[2] "%(num)s query"
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Query"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Timeline"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Connessione:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Isolation level:"
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Stato transazione:"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(sconosciuto)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "Nessuna Query SQL è stata registrata durante questa richiesta"
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr "SQL spigato"
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "SQL eseguita"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Database"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr "SQL profilato"
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Errore"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr "SQL selezionato"
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Insieme vuoto"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "Percorso file statici"
msgstr[1] "Percorsi file statici"
msgstr[2] "Percorsi file statici"
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(prefisso %(prefix)s)"
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "Nessuno"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "App file statici"
msgstr[1] "App file statici"
msgstr[2] "App file statici"
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] ""
msgstr[1] "Files statici"
msgstr[2] "Files statici"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] "%(payload_count)s file"
msgstr[1] "%(payload_count)s file"
msgstr[2] "%(payload_count)s file"
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Location"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr "Sorgente del template"
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Percorso dei template"
msgstr[1] "Percorsi dei template"
msgstr[2] "Percorsi dei template"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] ""
msgstr[1] "Template"
msgstr[2] "Template"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "Cambia contesto"
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "Context processor"
msgstr[1] "Context processors"
msgstr[2] "Context processors"
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "Uso risorsa"
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Risorsa"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "Tempo browser"
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "Attributo"
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr "Tempo dall'inizio della navigazione (+durata)"
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Nome"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Versione"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Location:"
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "Django Debug Toolbar ha intercettato un redirect verso la URL indicata per visualizzare il debug, Puoi cliccare sul link sopra per continuare normalmente con la redirezione."
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "Non sono più disponibili dati per questo pannello. Ricarica la pagina e riprova."
================================================
FILE: debug_toolbar/locale/ja/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Shinya Okano , 2012,2014,2020
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Shinya Okano , 2012,2014,2020\n"
"Language-Team: Japanese (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr "デバッグツールバー"
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr "キャッシュ"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] ""
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] ""
#: panels/headers.py:31
msgid "Headers"
msgstr "ヘッダー"
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr ""
#: panels/profiling.py:140
msgid "Profiling"
msgstr "プロファイル"
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "リダイレクトに割込み"
#: panels/request.py:16
msgid "Request"
msgstr "リクエスト"
#: panels/request.py:38
msgid ""
msgstr ""
#: panels/request.py:55
msgid ""
msgstr "<利用不可>"
#: panels/settings.py:17
msgid "Settings"
msgstr "設定"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr ""
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] ""
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] ""
#: panels/signals.py:67
msgid "Signals"
msgstr "シグナル"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr ""
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr ""
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr ""
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr ""
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr ""
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr ""
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr ""
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr ""
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr ""
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr ""
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr ""
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "静的ファイル"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] ""
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "テンプレート"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr ""
#: panels/templates/panel.py:195
msgid "No origin"
msgstr ""
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr ""
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr ""
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "時間"
#: panels/timer.py:46
msgid "User CPU time"
msgstr ""
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr ""
#: panels/timer.py:47
msgid "System CPU time"
msgstr ""
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr ""
#: panels/timer.py:48
msgid "Total CPU time"
msgstr ""
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr ""
#: panels/timer.py:49
msgid "Elapsed time"
msgstr ""
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr ""
#: panels/timer.py:51
msgid "Context switches"
msgstr ""
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr ""
#: panels/versions.py:19
msgid "Versions"
msgstr "バージョン"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "ツールバーを隠す"
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "隠す"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "ツールバーを表示"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "引数"
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "キーワード引数"
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "バックエンド"
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "リクエストヘッダー"
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "キー"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "値"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "レスポンスヘッダー"
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr ""
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr ""
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "パス"
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr ""
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "変数"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr ""
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "ビューの情報"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "ビュー関数"
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "URL名"
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "クッキー"
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "クッキーはありません"
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "セッションデータ"
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "セッションデータはありません"
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr ""
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "設定項目"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "シグナル"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "レシーバー"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] ""
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "タイムライン"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "実行されたSQL"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "データベース"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr ""
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "エラー"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr ""
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "静的ファイルのパス"
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "ありません"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "静的ファイルを含むアプリケーション"
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] "静的ファイル"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] ""
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr ""
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] ""
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "テンプレート"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "コンテキストプロセッサー"
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "リソース"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "名前"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "バージョン"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr ""
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr ""
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr ""
================================================
FILE: debug_toolbar/locale/ko/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# yeongkwang, 2022
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: yeongkwang, 2022\n"
"Language-Team: Korean (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/ko/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ko\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr "Debug Toolbar"
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr "캐시"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(time).2f 밀리초 동안 %(cache_calls)d번 호출"
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "백엔드에서 %(count)d개의 캐시 호출"
#: panels/headers.py:31
msgid "Headers"
msgstr "헤더"
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr "히스토리"
#: panels/profiling.py:140
msgid "Profiling"
msgstr "프로파일링"
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "리다이렉션 가로채기"
#: panels/request.py:16
msgid "Request"
msgstr "요청"
#: panels/request.py:38
msgid ""
msgstr ""
#: panels/request.py:55
msgid ""
msgstr "<사용할 수 없음>"
#: panels/settings.py:17
msgid "Settings"
msgstr "설정"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr "설정 %s"
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "1개의 시그널 %(num_receivers)d개의 리시버"
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_signals)d개의 시그널 %(num_receivers)d개의 리시버"
#: panels/signals.py:67
msgid "Signals"
msgstr "시그널"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr ""
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr ""
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr ""
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr ""
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr ""
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "유휴"
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "활성"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "트랜잭션"
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "에러"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "알 수 없음"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] "%(sql_time).2f 밀리초 동안 %(query_count)d개의 쿼리"
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] "SQL 쿼리 %(count)d개의 커넥션"
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "정적 파일 (%(num_found)s개 찾음, %(num_used)s개 사용됨)"
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "정적 파일"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s개의 파일 사용됨"
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "템플릿"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "템플릿 (%(num_templates)s개 렌더링)"
#: panels/templates/panel.py:195
msgid "No origin"
msgstr ""
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr ""
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr ""
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "시각"
#: panels/timer.py:46
msgid "User CPU time"
msgstr ""
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr ""
#: panels/timer.py:47
msgid "System CPU time"
msgstr ""
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr ""
#: panels/timer.py:48
msgid "Total CPU time"
msgstr ""
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr ""
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "경과 시간"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr ""
#: panels/timer.py:51
msgid "Context switches"
msgstr "컨텍스트 스위치"
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr ""
#: panels/versions.py:19
msgid "Versions"
msgstr "버전"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "툴바 숨기기"
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "숨기기"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "툴바 열기"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "다음 요청부터 비활성화 됩니다."
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "다음 요청부터 활성화 됩니다."
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "개요"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "총 요청 개수"
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "총 소요 시간"
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "캐시 적중"
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "캐시 비적중"
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "명령"
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "호출"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "타입"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "매개변수"
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "키워드 매개변수"
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "백엔드"
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "요청 헤더"
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "키"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "값"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "응답 헤더"
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "WSGI 환경"
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "WSGI 환경이 서버 환경을 상속하므로 아래에는 중요한 하위 집합만 표시됩니다."
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr "메서드"
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "경로"
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr "요청 변수"
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr "상태 코드"
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "액션"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "변수"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "호출"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "개수"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "View 정보"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "View 함수"
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "URL 명칭"
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "쿠키"
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "쿠키 없음"
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "세션 데이터"
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "세션 데이터 없음"
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "GET 요청 데이터"
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "GET 요청 데이터 없음"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "POST 요청 데이터"
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "POST 요청 데이터 없음"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "설정"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "시그널"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "리시버"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s개의 쿼리"
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr "%(count)s 개의 유사한 쿼리 포함"
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr "그리고 %(dupes)s개의 중복"
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "쿼리"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "타임라인"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr "%(count)s개의 유사한 쿼리"
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr "%(dupes)s번 중복됩니다."
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "커넥션:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "격리 수준:"
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "트랜잭션 상태:"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(알 수 없음)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "이 요청을 처리하는 동안 기록된 SQL 쿼리가 없습니다."
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr "SQL 설명"
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "실행된 SQL 구문"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "데이터베이스"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr "SQL 성능 분석"
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "에러"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr "선택된 SQL 구문"
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "빈 셋"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "정적 파일 경로"
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "정적 파일 앱"
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] "정적 파일"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] "%(payload_count)s개 파일"
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "위치"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr "템플릿 소스:"
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "템플릿 경로"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "템플릿"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "컨텍스트 토글"
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "컨텍스트 프로세서"
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "리소스 사용량"
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "리소스"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "브라우저 타이밍"
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "타이밍 속성"
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr "탐색 시작 이후 시간 (+기간)"
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr "패키지"
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "이름"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "버전"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "위치:"
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "Django Debug Toolbar는 디버그 보기를 제공하기 위해 위 URL으로 리다이렉션을 가로챘습니다. 위 링크를 클릭하여 정상적으로 리다이렉션을 계속 할수 있습니다."
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "이 패널의 데이터는 더이상 사용할 수 없습니다. 페이지를 새로고침한 뒤 다시 시도하십시오."
================================================
FILE: debug_toolbar/locale/lt/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Karolis Ryselis , 2025-2026
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-16 19:11-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Karolis Ryselis , 2025-2026\n"
"Language-Team: Lithuanian (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/lt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: lt\n"
"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr "Derinimo įrankių juosta"
#: models.py:11
msgid "history entry"
msgstr "istorijos įrašas"
#: models.py:12
msgid "history entries"
msgstr "istorijos įrašai"
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr "Formoje su id \"{form_id}\" yra failų laukas, bet jai nenurodytas atributas enctype=\"multipart/form-data\"."
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr "Formoje yra failų laukas, bet forma neturi atributo enctype=\"multipart/form-data\"."
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr "Įvesties elementas nurodo formą su ID „{form_id}“, tačiau ši forma neturi atributo enctype=\"multipart/form-data\"."
#: panels/alerts.py:77
msgid "Alerts"
msgstr "Įspėjimai"
#: panels/cache.py:170
msgid "Cache"
msgstr "Podėlis"
#: panels/cache.py:177
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d kvietimas per %(time).2f ms"
msgstr[1] "%(cache_calls)d kvietimai per %(time).2f ms"
msgstr[2] "%(cache_calls)d kvietimų per %(time).2f ms"
msgstr[3] "%(cache_calls)d kvietimų per %(time).2f ms"
#: panels/cache.py:186
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "Podėlio kreipiniai iš %(count)d posistemio"
msgstr[1] "Podėlio kreipiniai iš %(count)d posistemių"
msgstr[2] "Podėlio kreipiniai iš %(count)d posistemių"
msgstr[3] "Podėlio kreipiniai iš %(count)d posistemių"
#: panels/community.py:13
msgid "Community"
msgstr "Bendruomenė"
#: panels/headers.py:31
msgid "Headers"
msgstr "Antraštės"
#: panels/history/panel.py:20 panels/history/panel.py:21
msgid "History"
msgstr "Istorija"
#: panels/profiling.py:156
msgid "Profiling"
msgstr "Profiliavimas"
#: panels/redirects.py:18
msgid "Intercept redirects"
msgstr "Perimti nukreipimus"
#: panels/request.py:16
msgid "Request"
msgstr "Užklausa"
#: panels/request.py:36
msgid ""
msgstr ""
#: panels/request.py:53
msgid ""
msgstr ""
#: panels/settings.py:19
msgid "Settings"
msgstr "Nustatymai"
#: panels/settings.py:22
#, python-format
msgid "Settings from %s"
msgstr "Nustatymai iš %s"
#: panels/signals.py:59
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d 1 signalo gavėjas"
msgstr[1] "%(num_receivers)d 1 signalo gavėjai"
msgstr[2] "%(num_receivers)d 1 signalo gavėjų"
msgstr[3] "%(num_receivers)d 1 signalo gavėjų"
#: panels/signals.py:64
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d %(num_signals)d signalų gavėjas"
msgstr[1] "%(num_receivers)d %(num_signals)d signalų gavėjai"
msgstr[2] "%(num_receivers)d %(num_signals)d signalų gavėjų"
msgstr[3] "%(num_receivers)d %(num_signals)d signalų gavėjų"
#: panels/signals.py:69
msgid "Signals"
msgstr "Signalai"
#: panels/sql/forms.py:56
msgid "Data for this panel isn't available anymore."
msgstr "Šio skydelio duomenys nebepasiekiami."
#: panels/sql/forms.py:68
msgid "Invalid query id."
msgstr "Neteisingas užklausos id."
#: panels/sql/panel.py:32 panels/sql/panel.py:43
msgid "Read uncommitted"
msgstr "Skaityti neužbaigtas"
#: panels/sql/panel.py:33 panels/sql/panel.py:45
msgid "Read committed"
msgstr "Skaityti užbaigtas"
#: panels/sql/panel.py:34 panels/sql/panel.py:47
msgid "Repeatable read"
msgstr "Atkartojamas skaitymas"
#: panels/sql/panel.py:35 panels/sql/panel.py:49
msgid "Serializable"
msgstr ""
#: panels/sql/panel.py:41
msgid "Autocommit"
msgstr ""
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "Idle"
msgstr ""
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "Active"
msgstr ""
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "In transaction"
msgstr ""
#: panels/sql/panel.py:66 panels/sql/panel.py:76
msgid "In error"
msgstr ""
#: panels/sql/panel.py:67 panels/sql/panel.py:77
msgid "Unknown"
msgstr ""
#: panels/sql/panel.py:165
msgid "SQL"
msgstr ""
#: panels/sql/panel.py:172
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: panels/sql/panel.py:184
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: panels/staticfiles.py:47
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr ""
#: panels/staticfiles.py:81
msgid "Static files"
msgstr ""
#: panels/staticfiles.py:87
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: panels/templates/panel.py:104
msgid "Templates"
msgstr ""
#: panels/templates/panel.py:109
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr ""
#: panels/templates/panel.py:199
msgid "No origin"
msgstr ""
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr ""
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr ""
#: panels/timer.py:38 templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr ""
#: panels/timer.py:46
msgid "User CPU time"
msgstr ""
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f msec"
msgstr ""
#: panels/timer.py:47
msgid "System CPU time"
msgstr ""
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f msec"
msgstr ""
#: panels/timer.py:48
msgid "Total CPU time"
msgstr ""
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f msec"
msgstr ""
#: panels/timer.py:49
msgid "Elapsed time"
msgstr ""
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f msec"
msgstr ""
#: panels/timer.py:51
msgid "Context switches"
msgstr ""
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr ""
#: panels/versions.py:21
msgid "Versions"
msgstr ""
#: templates/debug_toolbar/base.html:22
msgid "Hide toolbar"
msgstr ""
#: templates/debug_toolbar/base.html:22
msgid "Hide"
msgstr ""
#: templates/debug_toolbar/base.html:24 templates/debug_toolbar/base.html:25
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:34
msgid "Show toolbar"
msgstr ""
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/sql.html:36
msgid "Time (ms)"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr ""
#: templates/debug_toolbar/panels/community.html:5
msgid "Community & Contribution"
msgstr ""
#: templates/debug_toolbar/panels/community.html:8
msgid ""
"Want to contribute to Django Debug Toolbar? Get involved in our community!"
msgstr ""
#: templates/debug_toolbar/panels/community.html:14
msgid "Join Discussions"
msgstr ""
#: templates/debug_toolbar/panels/community.html:19
msgid "View Issues"
msgstr ""
#: templates/debug_toolbar/panels/community.html:24
msgid "Contribution Guide"
msgstr ""
#: templates/debug_toolbar/panels/community.html:31
msgid "Django Debug Toolbar Documentation"
msgstr ""
#: templates/debug_toolbar/panels/community.html:34
msgid ""
"Explore the official documentation to learn more about Django Debug Toolbar."
msgstr ""
#: templates/debug_toolbar/panels/community.html:39
msgid "Read Documentation"
msgstr ""
#: templates/debug_toolbar/panels/community.html:44
msgid "How to Use Django Debug Toolbar"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr ""
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr ""
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr ""
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr ""
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr ""
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr ""
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr ""
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr ""
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr ""
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr ""
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr ""
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:3
msgid "SQL explained"
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr ""
#: templates/debug_toolbar/panels/sql_profile.html:3
msgid "SQL profiled"
msgstr ""
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr ""
#: templates/debug_toolbar/panels/sql_select.html:3
msgid "SQL selected"
msgstr ""
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr ""
#: templates/debug_toolbar/panels/template_source.html:3
msgid "Template source:"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:37
msgid "Milliseconds since navigation start (+length)"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr ""
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr ""
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr ""
#: views.py:18
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr ""
================================================
FILE: debug_toolbar/locale/nl/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Ingo Berben , 2012-2013
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Ingo Berben , 2012-2013\n"
"Language-Team: Dutch (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr ""
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr "Cache"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] ""
msgstr[1] ""
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] ""
msgstr[1] ""
#: panels/headers.py:31
msgid "Headers"
msgstr ""
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr ""
#: panels/profiling.py:140
msgid "Profiling"
msgstr "Profilering"
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr ""
#: panels/request.py:16
msgid "Request"
msgstr ""
#: panels/request.py:38
msgid ""
msgstr ""
#: panels/request.py:55
msgid ""
msgstr ""
#: panels/settings.py:17
msgid "Settings"
msgstr "Instellingen"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr ""
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d ontvanger van 1 signaal"
msgstr[1] "%(num_receivers)d ontvangers van 1 signaal"
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d ontvanger van %(num_signals)d signalen"
msgstr[1] "%(num_receivers)d ontvangers van %(num_signals)d signalen"
#: panels/signals.py:67
msgid "Signals"
msgstr "Signalen"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr ""
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr ""
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr ""
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Serializeerbaar"
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr ""
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr ""
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Actief"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr ""
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "Foutief"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "Niet gekend"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
msgstr[1] ""
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
msgstr[1] ""
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr ""
#: panels/staticfiles.py:103
msgid "Static files"
msgstr ""
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] ""
msgstr[1] ""
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Templates"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Templates (%(num_templates)s gerenderd)"
#: panels/templates/panel.py:195
msgid "No origin"
msgstr ""
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)"
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Totaal: %0.2fms"
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Tijd"
#: panels/timer.py:46
msgid "User CPU time"
msgstr "Gebruikers CPU tijd"
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f ms"
#: panels/timer.py:47
msgid "System CPU time"
msgstr "Systeem CPU tijd"
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f ms"
#: panels/timer.py:48
msgid "Total CPU time"
msgstr "Totaal CPU tijd"
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f ms"
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Verlopen tijd"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f ms"
#: panels/timer.py:51
msgid "Context switches"
msgstr ""
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)d vrijwillig, %(ivcsw)d niet vrijwillig"
#: panels/versions.py:19
msgid "Versions"
msgstr "Versies"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Verberg toolbar"
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Verbergen"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "Bekijk toolbar"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Samenvatting"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Type"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Sleutel"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Waarde"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr ""
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr "Methode"
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr ""
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Actie"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Parameter"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Oproepen"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "TotTijd"
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Aantal"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Bekijk informatie"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr ""
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr ""
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "GET data"
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Geen GET data"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "POST data"
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Geen POST data"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Instelling"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Signaal"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Ontvangers"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Query"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Tijdslijn"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Verbinding:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Transactiestatus:"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(niet gekend)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr "SQL uitgelegd"
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "Uitgevoerde SQL"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Database"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr ""
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Fout"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr ""
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Lege set"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "None"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Locatie"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Templatepad"
msgstr[1] "Templatepaden"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Template"
msgstr[1] "Templates"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Bron"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr "Pakket"
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Naam"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Versie"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr ""
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr ""
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr ""
================================================
FILE: debug_toolbar/locale/pl/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Konrad Mosoń , 2013,2015
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Konrad Mosoń , 2013,2015\n"
"Language-Team: Polish (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/pl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pl\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr "Debug Toolbar"
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr "Cache"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d wywołanie w %(time).2fms"
msgstr[1] "%(cache_calls)d wywołania w %(time).2fms"
msgstr[2] "%(cache_calls)d wywołań w %(time).2fms"
msgstr[3] "%(cache_calls)d wywołań w %(time).2fms"
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "Wywołań z cache z %(count)d backendu"
msgstr[1] "Wywołań z cache z %(count)d backendów"
msgstr[2] "Wywołań z cache z %(count)d backendów"
msgstr[3] "Wywołań z cache z %(count)d backendów"
#: panels/headers.py:31
msgid "Headers"
msgstr "Nagłówki"
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr ""
#: panels/profiling.py:140
msgid "Profiling"
msgstr "Profilowanie"
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "Przechwycone przekierowania"
#: panels/request.py:16
msgid "Request"
msgstr "Zapytania"
#: panels/request.py:38
msgid ""
msgstr ""
#: panels/request.py:55
msgid ""
msgstr ""
#: panels/settings.py:17
msgid "Settings"
msgstr "Ustawienia"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr ""
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d orbiorca 1 sygnału"
msgstr[1] "%(num_receivers)d odbiorców 1 sygnału"
msgstr[2] "%(num_receivers)d odbiorców 1 sygnału"
msgstr[3] "%(num_receivers)d odbiorców 1 sygnału"
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d odbiora %(num_signals)d sygnału"
msgstr[1] "%(num_receivers)d odbiorców %(num_signals)d sygnałów"
msgstr[2] "%(num_receivers)d odbiorców %(num_signals)d sygnałów"
msgstr[3] "%(num_receivers)d odbiorców %(num_signals)d sygnałów"
#: panels/signals.py:67
msgid "Signals"
msgstr "Sygnały"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr "Przeczaj niepopełnione"
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr "Przeczytaj popełnione"
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr ""
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr ""
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "Autocommit"
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "Bezczynny"
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Aktywne"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "W transakcji"
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "W błędzie"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "Nieznane"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "Pliki statyczne (znaleziono %(num_found)s, użyto %(num_used)s)"
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Pliki statyczne"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s użyty plików"
msgstr[1] "%(num_used)s użyte plików"
msgstr[2] "%(num_used)s użytych plików"
msgstr[3] "%(num_used)s użytych plików"
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Templatki"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Templatki (%(num_templates)s wyrenderowano)"
#: panels/templates/panel.py:195
msgid "No origin"
msgstr ""
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)"
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Całkowity czas: %0.2fms"
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Czas"
#: panels/timer.py:46
msgid "User CPU time"
msgstr ""
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f ms"
#: panels/timer.py:47
msgid "System CPU time"
msgstr ""
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f ms"
#: panels/timer.py:48
msgid "Total CPU time"
msgstr ""
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f ms"
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Całkowity czas"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f ms"
#: panels/timer.py:51
msgid "Context switches"
msgstr "Przełączenia kontekstu"
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr ""
#: panels/versions.py:19
msgid "Versions"
msgstr "Wersje"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Ukryj toolbar"
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Ukryj"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr ""
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Podsumowanie"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Polecenia"
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Wywołania"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Typ"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Backend"
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Klucz"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Wartość"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr ""
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr ""
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr ""
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Akcja"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Zmienna"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Wywołanie"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Ilość"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Pokaż informacje"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr ""
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr ""
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Brak danych GET"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Brak danych POST"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Ustawienie"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Sygnał"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Odbiorcy"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s zapytanie"
msgstr[1] "%(num)s zapytania"
msgstr[2] "%(num)s zapytań"
msgstr[3] "%(num)s zapytań"
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Zapytanie"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Oś czasu"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Połączenie:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Poziom izolacji:"
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Status transakcji:"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(nieznany)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "Żadne zapytania SQL nie zostały odnotowane podczas tego zapytania."
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "Wykonane zapytanie SQL"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Baza danych"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr ""
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Błąd"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr ""
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Pusty zbiór"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "Brak"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Lokalizacja"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Ścieżka templatki"
msgstr[1] "Ścieżki templatek"
msgstr[2] "Ścieżki templatek"
msgstr[3] "Ścieżki templatek"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Templatki"
msgstr[1] "Templatki"
msgstr[2] "Templatki"
msgstr[3] "Templatki"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Zasób"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Nazwa"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Wersja"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr ""
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr ""
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr ""
================================================
FILE: debug_toolbar/locale/pt/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# José Durães , 2014
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: José Durães , 2014\n"
"Language-Team: Portuguese (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/pt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr ""
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr ""
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/headers.py:31
msgid "Headers"
msgstr ""
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr ""
#: panels/profiling.py:140
msgid "Profiling"
msgstr ""
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "Intercetar redirecionamentos"
#: panels/request.py:16
msgid "Request"
msgstr "Pedido"
#: panels/request.py:38
msgid ""
msgstr ""
#: panels/request.py:55
msgid ""
msgstr ""
#: panels/settings.py:17
msgid "Settings"
msgstr "Configurações"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr ""
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/signals.py:67
msgid "Signals"
msgstr "Sinais"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr ""
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr ""
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr ""
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Variável"
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr ""
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr ""
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Acção"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr ""
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "Erro"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "Desconhecido"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr ""
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr ""
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Ficheiros estáticos"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Templates"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Templates (%(num_templates)s renderizados)"
#: panels/templates/panel.py:195
msgid "No origin"
msgstr ""
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr ""
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Total: %0.2fms"
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Tempo"
#: panels/timer.py:46
msgid "User CPU time"
msgstr ""
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr ""
#: panels/timer.py:47
msgid "System CPU time"
msgstr ""
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr ""
#: panels/timer.py:48
msgid "Total CPU time"
msgstr ""
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr ""
#: panels/timer.py:49
msgid "Elapsed time"
msgstr ""
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr ""
#: panels/timer.py:51
msgid "Context switches"
msgstr ""
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr ""
#: panels/versions.py:19
msgid "Versions"
msgstr "Versões"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Ocultar barra"
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Ocultar"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "Mostrar barra"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "Desactivar para o seguinte e sucessivos pedidos"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "Activar para o próximo e sucessivos pedidos"
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Resumo"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Comandos"
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Tipo"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Chave"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Valor"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr ""
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr "Método"
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr ""
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Acção"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Variável"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr ""
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr ""
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr ""
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr ""
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Sem dados GET"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "dados POST"
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Sem variáveis POST"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Configurações"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Sinal"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Receptores"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Estado da transacção:"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(desconhecido)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "Nenhuma query SQL foi registada durante este pedido."
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "SQL Executado"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr ""
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr ""
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Erro"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr ""
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Set vazio"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(prefixo %(prefix)s)"
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "Nenhum"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] "Ficheiro estático"
msgstr[1] "Ficheiros estáticos"
msgstr[2] "Ficheiros estáticos"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Localização"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] ""
msgstr[1] "Caminho da Template"
msgstr[2] "Caminho da Template"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] ""
msgstr[1] "Processador de Contexto"
msgstr[2] "Processador de Contexto"
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Recurso"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr "Pacote"
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Nome"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Versão"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Localização"
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr ""
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr ""
================================================
FILE: debug_toolbar/locale/pt_BR/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Fábio C. Barrionuevo da Luz , 2013-2014
# Gladson , 2017
# Percy Pérez-Pinedo, 2009
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Gladson , 2017\n"
"Language-Team: Portuguese (Brazil) (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr "Debug Toolbar"
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr "Cache"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d chamada em %(time).2fms"
msgstr[1] "%(cache_calls)d chamadas em %(time).2fms"
msgstr[2] "%(cache_calls)d chamadas em %(time).2fms"
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "Chamadas ao cache de %(count)d backend"
msgstr[1] "Chamadas ao cache de %(count)d backends"
msgstr[2] "Chamadas ao cache de %(count)d backends"
#: panels/headers.py:31
msgid "Headers"
msgstr "Cabeçalhos"
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr ""
#: panels/profiling.py:140
msgid "Profiling"
msgstr "Profiling"
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "Interceptar redirecionamentos"
#: panels/request.py:16
msgid "Request"
msgstr "Requisição"
#: panels/request.py:38
msgid ""
msgstr ""
#: panels/request.py:55
msgid ""
msgstr ""
#: panels/settings.py:17
msgid "Settings"
msgstr "Configurações"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr ""
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d receptor de 1 sinal"
msgstr[1] "%(num_receivers)d receptores de 1 sinal"
msgstr[2] "%(num_receivers)d receptores de 1 sinal"
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d receptor de %(num_signals)d sinais"
msgstr[1] "%(num_receivers)d receptores de %(num_signals)d sinais"
msgstr[2] "%(num_receivers)d receptores de %(num_signals)d sinais"
#: panels/signals.py:67
msgid "Signals"
msgstr "Sinais"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr "Read uncommitted"
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr "Read committed"
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr "Leitura repetida"
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Variável"
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "Autocommit"
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "Ocioso"
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Ação"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "Na transação"
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "Erro"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "Desconhecido"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "Arquivos estáticos (%(num_found)s encontrados, %(num_used)s sendo utilizados)"
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Arquivos estáticos"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s arquivo utilizado"
msgstr[1] "%(num_used)s arquivos utilizados"
msgstr[2] "%(num_used)s arquivos utilizados"
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Templates"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Templates (%(num_templates)s renderizados)"
#: panels/templates/panel.py:195
msgid "No origin"
msgstr "Sem origem"
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)"
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Total: %0.2fms"
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Tempo"
#: panels/timer.py:46
msgid "User CPU time"
msgstr "Tempo de CPU do usuário"
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f ms"
#: panels/timer.py:47
msgid "System CPU time"
msgstr "Tempo de CPU do sistema"
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f ms"
#: panels/timer.py:48
msgid "Total CPU time"
msgstr "Tempo total de CPU"
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f ms"
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Tempo decorrido"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f ms"
#: panels/timer.py:51
msgid "Context switches"
msgstr "Mudanças de contexto"
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)d voluntário, %(ivcsw)d involuntário"
#: panels/versions.py:19
msgid "Versions"
msgstr "Versões"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Ocultar barra de ferramentas"
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Esconder"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "Mostrar barra de ferramentas"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "Desativar para próximas requisições"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "Habilitar para próximas requisições"
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Resumo"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "Total de chamadas"
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "Tempo total"
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "Acessos ao cache"
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "Falhas de cache"
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Comandos"
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Chamadas"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Tipo"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "Argumentos"
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "Argumentos"
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Backend"
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "Cabeçalhos de Requisição"
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Chave"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Valor"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "Cabeçalhos de Resposta"
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "Ambiente WSGI"
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "Uma vez que o ambiente WSGI herda o ambiente do servidor, apenas um subconjunto significativo é mostrado abaixo."
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr ""
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Caminho"
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Ação"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Variável"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Chamar"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "CumTime"
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "Per"
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "TotTime"
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Contagem"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Ver informação"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "Função View"
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "Nome da URL"
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "Cookies"
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "Sem Cookies"
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "Dados de Sessão"
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "Sem dados de Sessão"
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "Dados de GET"
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Não há dados de GET"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "Dados de POST"
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Não há dados de POST"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Configuração"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Sinais"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Recebedores"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s consulta"
msgstr[1] "%(num)s consultas"
msgstr[2] "%(num)s consultas"
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Query"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Linha do tempo"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Conexão:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Nível de isolamento:"
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Status da transação:"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(unknown)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "Nenhuma consulta SQL foi registrada durante esta requisição."
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr "SQL explicada"
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "SQL Executada"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Banco de dados"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr "SQL perfilado"
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Erro"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr "SQL selecionada"
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Conjunto vazio"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "Caminho do arquivo estático"
msgstr[1] "Caminho dos arquivos estáticos"
msgstr[2] "Caminho dos arquivos estáticos"
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(prefixo %(prefix)s)"
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "Nenhum"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "Arquivo estático de app"
msgstr[1] "Arquivos estáticos de apps"
msgstr[2] "Arquivos estáticos de apps"
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] "Arquivo estático"
msgstr[1] "Arquivos estáticos"
msgstr[2] "Arquivos estáticos"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] "%(payload_count)s arquivo"
msgstr[1] "%(payload_count)s arquivos"
msgstr[2] "%(payload_count)s arquivos"
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Localização"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr "Origem do Template:"
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Caminho do Template"
msgstr[1] "Caminho do Templates"
msgstr[2] "Caminho do Templates"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Template"
msgstr[1] "Templates"
msgstr[2] "Templates"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "Alternar contexto"
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] ""
msgstr[1] "Processador do Contexto"
msgstr[2] "Processador do Contexto"
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "Uso de recursos"
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Recurso"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "Cronometragem do Navegador"
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "Atributo de Cronometragem"
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr "Tempo desde início de navegação (+duração)"
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr "Pacote"
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Nome"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Versão"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Localização:"
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "O Django Debug Toolbar interceptou um redirecionamento para a URL acima para fins de visualização de depuração. Você pode clicar no link acima para continuar com o redirecionamento normalmente."
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "Os dados para este painel não está mais disponível. Por favor, recarregue a página e tente novamente."
================================================
FILE: debug_toolbar/locale/ru/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Andrei Satsevich, 2025
# Dmitri Bogomolov <4glitch@gmail.com>, 2014
# Ilya Baryshev , 2013
# Mikhail Korobov, 2009
# Алексей Борискин , 2013,2015,2024
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Andrei Satsevich, 2025\n"
"Language-Team: Russian (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ru\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr "Панель отладки"
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr "Форма с идентификатором \"{form_id}\" содержит файл, но не имеет атрибута enctype=\"multipart/form-data\"."
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr "Форма содержит файл, но не имеет атрибута enctype=\"multipart/form-data\"."
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr "Элемент ввода ссылается на форму с id \"{form_id}\", но форма не имеет атрибута enctype=\"multipart/form-data\"."
#: panels/alerts.py:77
msgid "Alerts"
msgstr "Оповещения"
#: panels/cache.py:168
msgid "Cache"
msgstr "Кэш"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d обращение за %(time).2fms"
msgstr[1] "%(cache_calls)d обращения за %(time).2fms"
msgstr[2] "%(cache_calls)d обращений за %(time).2fms"
msgstr[3] "%(cache_calls)d обращений за %(time).2fms"
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "Обращения к кэшу от %(count)d бэкенда"
msgstr[1] "Обращения к кэшу от %(count)d бэкендов"
msgstr[2] "Обращения к кэшу от %(count)d бэкендов"
msgstr[3] "Обращения к кэшу от %(count)d бэкендов"
#: panels/headers.py:31
msgid "Headers"
msgstr "Заголовки"
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr "История"
#: panels/profiling.py:140
msgid "Profiling"
msgstr "Профилирование"
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "Перехват редиректов"
#: panels/request.py:16
msgid "Request"
msgstr "Запрос"
#: panels/request.py:38
msgid ""
msgstr "<нет view>"
#: panels/request.py:55
msgid ""
msgstr "<недоступно>"
#: panels/settings.py:17
msgid "Settings"
msgstr "Настройки"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr "Настройки из %s"
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d получатель 1 сигнала"
msgstr[1] "%(num_receivers)d получателя 1 сигнала"
msgstr[2] "%(num_receivers)d получателей 1 сигнала"
msgstr[3] "%(num_receivers)d получателей 1 сигнала"
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d получатель %(num_signals)d сигнала(ов)"
msgstr[1] "%(num_receivers)d получателя %(num_signals)d сигнала(ов)"
msgstr[2] "%(num_receivers)d получателей %(num_signals)d сигнала(ов)"
msgstr[3] "%(num_receivers)d получателей %(num_signals)d сигнала(ов)"
#: panels/signals.py:67
msgid "Signals"
msgstr "Сигналы"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr "Read uncommitted"
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr "Read committed"
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr "Repeatable read"
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Serializable"
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "Autocommit"
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "Ожидание"
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Действие"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "В транзакции"
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "Ошибка"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "Неизвестно"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] "%(query_count)d запрос за %(sql_time).2f мс "
msgstr[1] "%(query_count)d запросов за %(sql_time).2f мс"
msgstr[2] "%(query_count)d запросов за %(sql_time).2f мс"
msgstr[3] "%(query_count)d запросов за %(sql_time).2f мс"
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] "SQL-запросы из %(count)d соединения"
msgstr[1] "SQL-запросы из %(count)d соединений"
msgstr[2] "SQL-запросы из %(count)d соединений"
msgstr[3] "SQL-запросы из %(count)d соединений"
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "Статические файлы (найдено %(num_found)s, используется %(num_used)s)"
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Статические файлы"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s файл используется"
msgstr[1] " %(num_used)s файла используется"
msgstr[2] "%(num_used)s файлов используется"
msgstr[3] "%(num_used)s файлов используется"
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Шаблоны"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Шаблоны (обработано %(num_templates)s)"
#: panels/templates/panel.py:195
msgid "No origin"
msgstr "Без происхождения"
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)"
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Итого: %0.2fms"
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Время"
#: panels/timer.py:46
msgid "User CPU time"
msgstr "User CPU time"
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f мс"
#: panels/timer.py:47
msgid "System CPU time"
msgstr "System CPU time"
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f мс"
#: panels/timer.py:48
msgid "Total CPU time"
msgstr "Total CPU time"
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f мс"
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Затраченное время"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f мс"
#: panels/timer.py:51
msgid "Context switches"
msgstr "Переключений контекста"
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)d намеренных, %(ivcsw)d вынужденных"
#: panels/versions.py:19
msgid "Versions"
msgstr "Версии"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Скрыть панель"
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Скрыть"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr "Переключатель темы"
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "Показать панель"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "Отключить для последующих запросов"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "Включить для последующих запросов"
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr "Найдены оповещения"
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr "Оповещения не найдены"
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Сводка"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "Всего вызовов"
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "Общее время"
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "Cache хитов"
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "Промахи кэша"
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Команды"
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Вызовы"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Тип"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "Аргументы"
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "Именованные аргументы"
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Бэкенд"
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "Заголовки запроса"
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Заголовок"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Значение"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "Заголовки ответа"
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "WSGI-окружение"
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "Так как WSGI-окружение наследует окружение сервера, ниже отображены лишь те из переменных, которые важны для нужд отладки."
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr "Метод"
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Путь"
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr "Запрос переменных"
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr "Статус"
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Действие"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Переменная"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Вызов"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "КумулВрем"
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "ЗаВызов"
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "ИтогВремя"
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Кол-во"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "View"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "View функция"
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "URL Name"
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "Cookies"
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "Нет cookies"
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "Сессия"
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "Нет данных в сессии"
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "GET"
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Нет GET данных"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "POST"
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Нет POST данных"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Параметр"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Сигнал"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Получатели сигнала"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s запрос"
msgstr[1] "%(num)s запроса"
msgstr[2] "%(num)s запросов"
msgstr[3] "%(num)s запросов"
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr "включая %(count)s похожий"
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr "и %(dupes)s дубликаты"
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Запрос"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Временная диаграмма"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr "%(count)s похожих запросов."
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr "Дублируется %(dupes)s раз."
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Соединение:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Уровень изоляции:"
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Статус транзакции:"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(неизвестно)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "Во время обработки этого HTTP-запроса не было записано ни одного SQL-запроса."
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr "SQL Explain"
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "Запрос"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "База данных"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr "Профилирование SQL"
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Ошибка"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr "Выбранные SQL-запросы"
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Ничего, ноль строк"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "Путь к статическим файлам"
msgstr[1] "Пути к статическим файлам"
msgstr[2] "Пути к статическим файлам"
msgstr[3] "Пути к статическим файлам"
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(префикс %(prefix)s)"
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "Нет"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "Приложение, использующее статические файлы"
msgstr[1] "Приложения, использующие статические файлы"
msgstr[2] "Приложения, использующие статические файлы"
msgstr[3] "Приложения, использующие статические файлы"
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] "Статический файл"
msgstr[1] "Статические файлы"
msgstr[2] "Статические файлы"
msgstr[3] "Статические файлы"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] "%(payload_count)s файл"
msgstr[1] "%(payload_count)s файла"
msgstr[2] "%(payload_count)s файлов"
msgstr[3] "%(payload_count)s файлов"
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Место"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr "Источник шаблона:"
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Путь к шаблонам"
msgstr[1] "Пути к шаблонам"
msgstr[2] "Пути к шаблонам"
msgstr[3] "Пути к шаблонам"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Шаблон"
msgstr[1] "Шаблоны"
msgstr[2] "Шаблоны"
msgstr[3] "Шаблоны"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "Контекст"
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "Контекст процессор"
msgstr[1] "Контекст процессоры"
msgstr[2] "Контекст процессоры"
msgstr[3] "Контекст процессоры"
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "Потребление ресурсов"
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Ресурс"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "Браузерное время"
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "Событие"
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr "Время с начала навигации (+продолжительность)"
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr "Пакет"
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Название"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Версия"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Адрес:"
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "Django Debug Toolbar в перехватил редирект на адрес, указанный выше. Вы можете нажать на ссылку, чтобы выполнить переход самостоятельно."
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "Данные этой панели больше недоступны. Пожалуйста, перезагрузите страницу и попробуйте ещё раз."
================================================
FILE: debug_toolbar/locale/sk/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# 18f25ad6fa9930fc67cb11aca9d16a27, 2012
# 18f25ad6fa9930fc67cb11aca9d16a27, 2013
# Rastislav Kober , 2012
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: 18f25ad6fa9930fc67cb11aca9d16a27, 2013\n"
"Language-Team: Slovak (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/sk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: sk\n"
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr ""
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr "Cache"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d volanie za %(time).2fms"
msgstr[1] "%(cache_calls)d volaní za %(time).2fms"
msgstr[2] "%(cache_calls)d volaní za %(time).2fms"
msgstr[3] "%(cache_calls)d volaní za %(time).2fms"
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "Cache volania z %(count)d backendu"
msgstr[1] "Cache volania z %(count)d backendov"
msgstr[2] "Cache volania z %(count)d backendov"
msgstr[3] "Cache volania z %(count)d backendov"
#: panels/headers.py:31
msgid "Headers"
msgstr "Hlavičky"
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr ""
#: panels/profiling.py:140
msgid "Profiling"
msgstr "Analýza"
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "Zachytiť presmerovania"
#: panels/request.py:16
msgid "Request"
msgstr "Požiadavka"
#: panels/request.py:38
msgid ""
msgstr ""
#: panels/request.py:55
msgid ""
msgstr ""
#: panels/settings.py:17
msgid "Settings"
msgstr "Nastavenia"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr ""
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d príjemca 1 signálu"
msgstr[1] "%(num_receivers)d príjemcov 1 signálu"
msgstr[2] "%(num_receivers)d príjemcov 1 signálu"
msgstr[3] "%(num_receivers)d príjemcov 1 signálu"
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d príjemca %(num_signals)d signálov"
msgstr[1] "%(num_receivers)d príjemcov %(num_signals)d signálov"
msgstr[2] "%(num_receivers)d príjemcov %(num_signals)d signálov"
msgstr[3] "%(num_receivers)d príjemcov %(num_signals)d signálov"
#: panels/signals.py:67
msgid "Signals"
msgstr "Signály"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr "Read uncommitted"
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr "Read committed"
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr "Opakovateľné čítanie"
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Premenná"
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "Autocommit"
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "Nečinný"
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Akcia"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "Stav transakcie:"
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "Chyba"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "(neznámy)"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "Statické súbory (%(num_found)s nájdených, %(num_used)s použitých)"
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Statické súbory"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s použitý súbor"
msgstr[1] "%(num_used)s použitých súborov"
msgstr[2] "%(num_used)s použitých súborov"
msgstr[3] "%(num_used)s použitých súborov"
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Šablóny"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Šablóny (%(num_templates)s spracovaných)"
#: panels/templates/panel.py:195
msgid "No origin"
msgstr ""
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)"
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Celkovo: %0.2fms"
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Čas"
#: panels/timer.py:46
msgid "User CPU time"
msgstr "Užívateľský čas CPU"
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f ms"
#: panels/timer.py:47
msgid "System CPU time"
msgstr "Systémový čas CPU"
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f ms"
#: panels/timer.py:48
msgid "Total CPU time"
msgstr "Celkový čas CPU"
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f ms"
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Uplynutý čas"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f ms"
#: panels/timer.py:51
msgid "Context switches"
msgstr "Prepnutí kontextu"
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)d dobrovoľných, %(ivcsw)d nedobrovoľných"
#: panels/versions.py:19
msgid "Versions"
msgstr "Verzie"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Skryť panel nástrojov"
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Skryť"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "Zobraziť panel nástrojov"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "Zakázať pre ďalšie a nasledujúce požiadavky"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "Povoliť pre ďalšie a nasledujúce požiadavky"
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Zhrnutie"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "Celkovo volaní"
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "Celkový čas"
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "Volaní cache"
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "Vynechania cache"
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Príkazy"
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Volania"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Typ"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "Argumenty"
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "Kľúčové argumenty"
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Backend"
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "Hlavičky požiadavky"
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Kľúč"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Hodnota"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "Hlavičky odpovede"
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "WSGI prostredie"
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "Keďže WSGI prostredie dedí z prostredia servera, je nižšie zobrazená iba významná podmnožina."
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr ""
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Cesta"
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Akcia"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Premenná"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Volanie"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "CumTime"
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "Za"
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "TotTime"
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Počet"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Zobraziť informácie"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "View funkcia"
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "URL meno"
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "Cookies"
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "Žiadne cookies"
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "Dáta relácie"
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "Žiadne dáta relácie"
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "GET dáta"
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Žiadne GET dáta"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "POST dáta"
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Žiadne POST dáta"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Nastavenie"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Signál"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Príjemcovia"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s dopyt"
msgstr[1] "%(num)s dopytov"
msgstr[2] "%(num)s dopytov"
msgstr[3] "%(num)s dopytov"
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Dopyt"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Časová os"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Pripojenie:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Úroveň izolácie:"
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Stav transakcie:"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(neznámy)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "V priebehu tejto požiadavky neboli zaznamenané žiadne SQL dopyty."
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr "SQL vysvetlené"
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "Vykonané SQL"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Databáza"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr "SQL profilované"
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Chyba"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr "SQL označené"
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Prázdny rad"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "Cesta k statickému súboru"
msgstr[1] "Cesty k statickým súborom"
msgstr[2] "Cesty k statickým súborom"
msgstr[3] "Cesty k statickým súborom"
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(prefix %(prefix)s)"
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "Žiadny"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "Aplikácia pre statické súbory"
msgstr[1] "Aplikácie pre statické súbory"
msgstr[2] "Aplikácie pre statické súbory"
msgstr[3] "Aplikácie pre statické súbory"
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] ""
msgstr[1] ""
msgstr[2] "Statické súbory"
msgstr[3] "Statické súbory"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] "%(payload_count)s súbor"
msgstr[1] "%(payload_count)s súborov"
msgstr[2] "%(payload_count)s súborov"
msgstr[3] "%(payload_count)s súborov"
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Poloha"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr "Zdrojový kód šablóny:"
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Cesta k šablóne"
msgstr[1] "Cesta k šablóne"
msgstr[2] "Cesta k šablóne"
msgstr[3] "Cesta k šablóne"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Šablóna"
msgstr[1] "Šablóna"
msgstr[2] "Šablóna"
msgstr[3] "Šablóna"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "Prepnúť kontext"
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "Spracovateľ kontextu"
msgstr[1] "Spracovateľ kontextu"
msgstr[2] "Spracovateľ kontextu"
msgstr[3] "Spracovateľ kontextu"
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "Využitie prostriedkov"
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Prostriedok"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "Čas prehliadača"
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "Časový atribút"
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr "Čas od spustenia navigácie (+trvanie)"
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Meno"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Verzia"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Poloha:"
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "Django Debug Toolbar zachytil presmerovanie na vyššie uvedenú URL pre účely ladenia. Pre normálne presmerovanie môžete kliknúť na vyššie uvedený odkaz."
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "Dáta pre tento panel už nie sú k dispozícii. Načítajte si prosím stránku a skúste to znova."
================================================
FILE: debug_toolbar/locale/sv_SE/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Alex Nordlund , 2012-2013
# Alex Nordlund , 2012
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Alex Nordlund , 2012-2013\n"
"Language-Team: Swedish (Sweden) (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/sv_SE/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: sv_SE\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr ""
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr "Cache"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] ""
msgstr[1] ""
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] ""
msgstr[1] ""
#: panels/headers.py:31
msgid "Headers"
msgstr ""
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr ""
#: panels/profiling.py:140
msgid "Profiling"
msgstr "Profilering"
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr ""
#: panels/request.py:16
msgid "Request"
msgstr ""
#: panels/request.py:38
msgid ""
msgstr ""
#: panels/request.py:55
msgid ""
msgstr ""
#: panels/settings.py:17
msgid "Settings"
msgstr "Inställningar"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr ""
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] ""
msgstr[1] ""
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] ""
msgstr[1] ""
#: panels/signals.py:67
msgid "Signals"
msgstr "Signaler"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr ""
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr ""
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr ""
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Variabel"
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr ""
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr ""
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Åtgärd"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr ""
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "Felmeddelande"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "(okänd)"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
msgstr[1] ""
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
msgstr[1] ""
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr ""
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Statiska filer"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] ""
msgstr[1] ""
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Mallar"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr ""
#: panels/templates/panel.py:195
msgid "No origin"
msgstr ""
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr ""
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr ""
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Tid"
#: panels/timer.py:46
msgid "User CPU time"
msgstr ""
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr ""
#: panels/timer.py:47
msgid "System CPU time"
msgstr ""
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr ""
#: panels/timer.py:48
msgid "Total CPU time"
msgstr ""
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr ""
#: panels/timer.py:49
msgid "Elapsed time"
msgstr ""
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr ""
#: panels/timer.py:51
msgid "Context switches"
msgstr ""
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr ""
#: panels/versions.py:19
msgid "Versions"
msgstr "Versioner"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr ""
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Dölj"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr ""
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Sammanfattning"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Nyckel"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Värde"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr ""
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr ""
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr ""
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Sökväg"
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Åtgärd"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Variabel"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr ""
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Räkna"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Visa informationen"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr ""
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr ""
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr ""
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Ingen GET data"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr ""
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Ingen POST data"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Inställning"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Signal"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Mottagare"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Fråga"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Anslutning:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(okänd)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "Utförd SQL"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Databas"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr ""
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Felmeddelande"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr ""
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Tomt set"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr ""
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "Inget"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] ""
msgstr[1] "Statiska filer"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Plats"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Mall"
msgstr[1] "Mallar"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr ""
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] ""
msgstr[1] ""
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Resurs"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr ""
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Namn"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Version"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr ""
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr ""
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr ""
================================================
FILE: debug_toolbar/locale/tr/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Ertuğrul Keremoğlu, 2025
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-16 19:11-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Ertuğrul Keremoğlu, 2025\n"
"Language-Team: Turkish (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: tr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr "Hata Ayıklama Araç Çubuğu"
#: models.py:11
msgid "history entry"
msgstr "geçmiş kayıt"
#: models.py:12
msgid "history entries"
msgstr "geçmiş kayıtlar"
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr "\"id\" değeri \"{form_id}\" olan form bir file-input içeriyor, ancak enctype=\"multipart/form-data\" attribute'sine sahip değil."
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr "Form bir file-input içeriyor, ancak enctype=\"multipart/form-data\" attribute'sine sahip değil."
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr "Bir input elementi, \"id\" değeri \"{form_id}\" olan forma referans veriyor, ancak form enctype=\"multipart/form-data\" attribute'sine sahip değil."
#: panels/alerts.py:77
msgid "Alerts"
msgstr "Uyarılar"
#: panels/cache.py:170
msgid "Cache"
msgstr "Önbellek"
#: panels/cache.py:177
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(time).2f ms'de %(cache_calls)d çağrı"
msgstr[1] "%(time).2fms'de %(cache_calls)d çağrı"
#: panels/cache.py:186
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "%(count)d arka uçtan yapılan önbellek çağrıları"
msgstr[1] "%(count)d arka uçtan yapılan önbellek çağrıları"
#: panels/community.py:13
msgid "Community"
msgstr "Komünite"
#: panels/headers.py:31
msgid "Headers"
msgstr "Header'ler"
#: panels/history/panel.py:20 panels/history/panel.py:21
msgid "History"
msgstr "Geçmiş"
#: panels/profiling.py:156
msgid "Profiling"
msgstr "Profilleme"
#: panels/redirects.py:18
msgid "Intercept redirects"
msgstr "Yönlendirmeleri yakala"
#: panels/request.py:16
msgid "Request"
msgstr "İstek"
#: panels/request.py:36
msgid ""
msgstr ""
#: panels/request.py:53
msgid ""
msgstr ""
#: panels/settings.py:19
msgid "Settings"
msgstr "Ayarlar"
#: panels/settings.py:22
#, python-format
msgid "Settings from %s"
msgstr "Ayarlar (%s modülü)"
#: panels/signals.py:59
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "1 sinyalin %(num_receivers)d alıcısı"
msgstr[1] "1 sinyalin %(num_receivers)d alıcısı"
#: panels/signals.py:64
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_signals)d sinyalin %(num_receivers)d alıcısı"
msgstr[1] "%(num_signals)d sinyalin %(num_receivers)d alıcısı"
#: panels/signals.py:69
msgid "Signals"
msgstr "Sinyaller"
#: panels/sql/forms.py:56
msgid "Data for this panel isn't available anymore."
msgstr "Bu panele ait veriler artık mevcut değil."
#: panels/sql/forms.py:68
msgid "Invalid query id."
msgstr "Geçersiz sorgu ID'si"
#: panels/sql/panel.py:32 panels/sql/panel.py:43
msgid "Read uncommitted"
msgstr "Read uncommitted"
#: panels/sql/panel.py:33 panels/sql/panel.py:45
msgid "Read committed"
msgstr "Read committed"
#: panels/sql/panel.py:34 panels/sql/panel.py:47
msgid "Repeatable read"
msgstr "Repeatable read"
#: panels/sql/panel.py:35 panels/sql/panel.py:49
msgid "Serializable"
msgstr "Serializable"
#: panels/sql/panel.py:41
msgid "Autocommit"
msgstr "Autocommit"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "Idle"
msgstr "Idle"
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "Active"
msgstr "Active"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "In transaction"
msgstr "In transaction"
#: panels/sql/panel.py:66 panels/sql/panel.py:76
msgid "In error"
msgstr "In error"
#: panels/sql/panel.py:67 panels/sql/panel.py:77
msgid "Unknown"
msgstr "Bilinmeyen"
#: panels/sql/panel.py:165
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:172
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] "%(sql_time).2fms'de %(query_count)d sorgu"
msgstr[1] "%(sql_time).2fms'de %(query_count)d sorgu"
#: panels/sql/panel.py:184
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] "%(count)d bağlantıdan SQL sorguları"
msgstr[1] "%(count)d bağlantıdan SQL sorguları"
#: panels/staticfiles.py:47
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "Statik dosyalar (bulunan %(num_found)s, kullanılan %(num_used)s)"
#: panels/staticfiles.py:81
msgid "Static files"
msgstr "Statik dosyalar"
#: panels/staticfiles.py:87
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s dosya kullanıldı"
msgstr[1] "%(num_used)s dosya kullanıldı"
#: panels/templates/panel.py:104
msgid "Templates"
msgstr "Şablonlar"
#: panels/templates/panel.py:109
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Şablonlar (%(num_templates)s işlenen)"
#: panels/templates/panel.py:199
msgid "No origin"
msgstr "Kaynak yok"
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)"
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Toplam: %0.2fms"
#: panels/timer.py:38 templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Zaman"
#: panels/timer.py:46
msgid "User CPU time"
msgstr "Kullanıcı CPU süresi"
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f msec"
msgstr "%(utime)0.3f ms"
#: panels/timer.py:47
msgid "System CPU time"
msgstr "Sistem CPU süresi"
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f msec"
msgstr "%(stime)0.3f ms"
#: panels/timer.py:48
msgid "Total CPU time"
msgstr "Toplam CPU süresi"
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f msec"
msgstr "%(total)0.3f ms"
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Geçen süre"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f msec"
msgstr "%(total_time)0.3f ms"
#: panels/timer.py:51
msgid "Context switches"
msgstr "Context switches"
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)d voluntary, %(ivcsw)d involuntary"
#: panels/versions.py:21
msgid "Versions"
msgstr "Versiyonlar"
#: templates/debug_toolbar/base.html:22
msgid "Hide toolbar"
msgstr "Araç çubuğunu gizle"
#: templates/debug_toolbar/base.html:22
msgid "Hide"
msgstr "Gizle"
#: templates/debug_toolbar/base.html:24 templates/debug_toolbar/base.html:25
msgid "Toggle Theme"
msgstr "Temayı Değiştir"
#: templates/debug_toolbar/base.html:34
msgid "Show toolbar"
msgstr "Araç çubuğunu göster"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "Sonraki istekler için devre dışı bırak"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "Sonraki istekler için etkinleştir"
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr "Uyarılar bulundu"
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr "Uyarı bulunmadı"
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Özet"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "Toplam çağrılar"
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "Toplam süre"
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "Önbellek isabetleri"
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "Önbellek ıskaları"
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Komutlar"
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Çağrılar"
#: templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/sql.html:36
msgid "Time (ms)"
msgstr "Süre (ms)"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Tip"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "Argümanlar"
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "Anahtar kelime argümanları"
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Arka uç"
#: templates/debug_toolbar/panels/community.html:5
msgid "Community & Contribution"
msgstr "Komünite & Katkıda Bulunma"
#: templates/debug_toolbar/panels/community.html:8
msgid ""
"Want to contribute to Django Debug Toolbar? Get involved in our community!"
msgstr "Django Debug Toolbar'a katkıda bulunmak ister misiniz? Komünitemizin içinde yerinizi alın!"
#: templates/debug_toolbar/panels/community.html:14
msgid "Join Discussions"
msgstr "Tartışmalara Katıl"
#: templates/debug_toolbar/panels/community.html:19
msgid "View Issues"
msgstr "Sorunları Gör"
#: templates/debug_toolbar/panels/community.html:24
msgid "Contribution Guide"
msgstr "Katkıda Bulunma Rehberi"
#: templates/debug_toolbar/panels/community.html:31
msgid "Django Debug Toolbar Documentation"
msgstr "Django Debug Toolbar Dökümantasyonu"
#: templates/debug_toolbar/panels/community.html:34
msgid ""
"Explore the official documentation to learn more about Django Debug Toolbar."
msgstr "Django Debug Toolbar hakkında daha fazla bilgi edinmek için resmi dokümantasyonu inceleyin."
#: templates/debug_toolbar/panels/community.html:39
msgid "Read Documentation"
msgstr "Dökümantasyonu Oku"
#: templates/debug_toolbar/panels/community.html:44
msgid "How to Use Django Debug Toolbar"
msgstr "Django Debug Toolbar Nasıl Kullanılır"
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "İstek header'leri"
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Anahtar"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Değer"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "Cevap header'leri"
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "WSGI ortamı"
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "WSGI ortamı, sunucunun ortamını devraldığından, aşağıda yalnızca önemli bir alt kümesi gösterilmiştir."
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr "Metot"
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Yol"
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr "İstek Değişkenleri"
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr "Durum"
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Eylem"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Değişken"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Çağrı"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "Kümülatif Zaman"
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "Çağrı başına"
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "Toplam Zaman"
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Adet"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "View bilgileri"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "View fonksiyonu"
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "URL adı"
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "Çerezler"
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "Çerez yok"
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "Oturum verileri"
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "Oturum verisi yok"
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "GET verileri"
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "GET verisi yok"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "POST verileri"
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "POST verisi yok"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Ayar"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Sinyal"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Alıcılar"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s sorgu"
msgstr[1] "%(num)s sorgu"
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr "benzer %(count)s tane dahil"
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr "ve %(dupes)s tekrarlanan"
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Sorgu"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Zaman çizelgesi"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr "%(count)s benzer sorgu."
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr "%(dupes)s defa tekrarlandı."
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Bağlantı:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "İzolasyon seviyesi:"
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Transaction durumu:"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(bilinmiyor)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "Bu istek sırasında hiçbir SQL sorgusu kaydedilmedi."
#: templates/debug_toolbar/panels/sql_explain.html:3
msgid "SQL explained"
msgstr "SQL sorgu planı"
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "Çalıştırılan SQL"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Veritabanı"
#: templates/debug_toolbar/panels/sql_profile.html:3
msgid "SQL profiled"
msgstr "Profillenen SQL"
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Hata"
#: templates/debug_toolbar/panels/sql_select.html:3
msgid "SQL selected"
msgstr "Seçilen SQL"
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Boş küme"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "Statik dosya yolu"
msgstr[1] "Statik dosya yolları"
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(ön ek %(prefix)s)"
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "None"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "Statik dosya uygulaması"
msgstr[1] "Statik dosya uygulamaları"
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] "Statik dosya"
msgstr[1] "Statik dosyalar"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] "%(payload_count)s dosya"
msgstr[1] "%(payload_count)s dosya"
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Konum"
#: templates/debug_toolbar/panels/template_source.html:3
msgid "Template source:"
msgstr "Şablon kaynak kodu:"
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Şablon yolu"
msgstr[1] "Şablon yolları"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Şablon"
msgstr[1] "Şablonlar"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "Context'i aç/kapat"
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "Context işlemcisi"
msgstr[1] "Context işlemcileri"
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "Kaynak kullanımı"
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Kaynak"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "Tarayıcı zamanlaması"
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "Zamanlama değerleri"
#: templates/debug_toolbar/panels/timer.html:37
msgid "Milliseconds since navigation start (+length)"
msgstr "Gezinme başlangıcından bu yana geçen milisaniyeler (+uzunluk)"
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr "Paket"
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "İsim"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Versiyon"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Konum:"
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "Django Hata Ayıklama Araç Çubuğu, hata ayıklama amacıyla yukarıdaki URL'ye yapılan yönlendirmeyi durdurdu. Yönlendirmeye devam etmek için yukarıdaki bağlantıya tıklayabilirsiniz."
#: views.py:18
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "Bu panele ait veriler artık mevcut değil. Lütfen sayfayı yeniden yükleyin ve tekrar deneyin."
================================================
FILE: debug_toolbar/locale/uk/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Illia Volochii , 2017
# Sergey Lysach , 2013
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Illia Volochii , 2017\n"
"Language-Team: Ukrainian (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/uk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: uk\n"
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr "Панель Інструментів Налагодження"
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr "Кеш"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d виклик за %(time).2f мс"
msgstr[1] "%(cache_calls)d виклики за %(time).2f мс"
msgstr[2] "%(cache_calls)d викликів за %(time).2f мс"
msgstr[3] "%(cache_calls)d викликів за %(time).2f мс"
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "Виклики кешу з %(count)d бекенду"
msgstr[1] "Виклики кешу із %(count)d бекендів"
msgstr[2] "Виклики кешу із %(count)d бекендів"
msgstr[3] "Виклики кешу із %(count)d бекендів"
#: panels/headers.py:31
msgid "Headers"
msgstr "Заголовки"
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr ""
#: panels/profiling.py:140
msgid "Profiling"
msgstr "Профілювання"
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "Переривати запити"
#: panels/request.py:16
msgid "Request"
msgstr "Запит"
#: panels/request.py:38
msgid ""
msgstr "<немає відображення>"
#: panels/request.py:55
msgid ""
msgstr "<відсутнє>"
#: panels/settings.py:17
msgid "Settings"
msgstr "Налаштування"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr ""
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d отримувач 1 сигналу"
msgstr[1] "%(num_receivers)d отримувача 1 сигналу"
msgstr[2] "%(num_receivers)d отримувачів 1 сигналу"
msgstr[3] "%(num_receivers)d отримувачів 1 сигналу"
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d отримувач %(num_signals)d сигналів"
msgstr[1] "%(num_receivers)d отримувача %(num_signals)d сигналів"
msgstr[2] "%(num_receivers)d отримувачів %(num_signals)d сигналів"
msgstr[3] "%(num_receivers)d отримувачів %(num_signals)d сигналів"
#: panels/signals.py:67
msgid "Signals"
msgstr "Сигнали"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr ""
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr ""
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr ""
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr ""
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "Автофіксація"
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr ""
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr ""
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr ""
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr ""
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr ""
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "Статичні файли (знайдено %(num_found)s, використано %(num_used)s)"
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Статичні файли"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "Використано %(num_used)s файл"
msgstr[1] "Використано %(num_used)s файли"
msgstr[2] "Використано %(num_used)s файлів"
msgstr[3] "Використано %(num_used)s файлів"
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Шаблони"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Шаблони (оброблено %(num_templates)s)"
#: panels/templates/panel.py:195
msgid "No origin"
msgstr "Немає походження"
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2f мс (%(total)0.2f мс)"
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Загалом: %0.2f мс"
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Час"
#: panels/timer.py:46
msgid "User CPU time"
msgstr "Користувацький час CPU"
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f мс"
#: panels/timer.py:47
msgid "System CPU time"
msgstr "Системний час CPU"
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f мс"
#: panels/timer.py:48
msgid "Total CPU time"
msgstr "Загальний час CPU"
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f мс"
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Витрачений час"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f мс"
#: panels/timer.py:51
msgid "Context switches"
msgstr "Перемикачів контексту"
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "навмисних - %(vcsw)d, мимовільних - %(ivcsw)d"
#: panels/versions.py:19
msgid "Versions"
msgstr "Версії"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Сховати панель інструментів"
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Сховати"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "Показати панель інструментів"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "Відключити для наступного і подальших запитів"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "Включити для наступного і подальших запитів"
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Резюме"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "Загальна кількість викликів"
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "Загальний час"
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "Кеш-попадання"
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "Кеш-промахи"
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Команди"
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Виклики"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Тип"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "Аргументи"
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "Іменовані аргументи"
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Бекенд"
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "Заголовки запиту"
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Ключ"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Значення"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "Заголовки відповіді"
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "Середовище WSGI"
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "Оскільки середовище WSGI успадковує середовище сервера, тут показано лише найважливішу частину."
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr ""
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Шлях"
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Подія"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Змінна"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Виклик"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "Кумул. час"
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "За виклик"
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "Заг. час"
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Кількість"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Інформація про відображення"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "Функція відображення"
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "Імʼя URL"
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "Куки"
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "Немає куків"
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "Дані сесії"
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "Немає даних сесії"
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "GET дані"
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Немає GET даних"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "POST дані"
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Немає POST даних"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Налаштування"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Сигнал"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Отримувачі сигнала"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s запит"
msgstr[1] "%(num)s запити"
msgstr[2] "%(num)s запитів"
msgstr[3] "%(num)s запитів"
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Запит"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Лінія часу"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Підключення:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Рівень ізоляції:"
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Статус транзакції:"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "Жодного SQL запиту не було записано протягом цього запиту"
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr ""
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "Виконаний SQL запит"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "База даних"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr ""
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Помилка"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr ""
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Порожня множина"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "Шлях до статичних файлів"
msgstr[1] "Шляхи до статичних файлів"
msgstr[2] "Шляхи до статичних файлів"
msgstr[3] "Шляхи до статичних файлів"
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(префікс %(prefix)s)"
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "Немає"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "Застосунок, який використовує статичні файли"
msgstr[1] "Застосунки, які використовують статичні файли"
msgstr[2] "Застосунки, які використовують статичні файли"
msgstr[3] "Застосунки, які використовують статичні файли"
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] "Статичний файл"
msgstr[1] "Статичні файли"
msgstr[2] "Статичні файли"
msgstr[3] "Статичні файли"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] "%(payload_count)s файл"
msgstr[1] "%(payload_count)s файли"
msgstr[2] "%(payload_count)s файлів"
msgstr[3] "%(payload_count)s файлів"
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Місце"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr "Джерело шаблону:"
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Шлях до шаблонів"
msgstr[1] "Шляхи до шаблонів"
msgstr[2] "Шляхи до шаблонів"
msgstr[3] "Шляхи до шаблонів"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Шаблон"
msgstr[1] "Шаблони"
msgstr[2] "Шаблонів"
msgstr[3] "Шаблонів"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "Контекст"
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "Процесор контексту"
msgstr[1] "Процесори контексту"
msgstr[2] "Процесори контексту"
msgstr[3] "Процесори контексту"
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "Використання ресурсів"
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Ресурс"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "Хронометраж браузера"
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "Атрибут хронометражу"
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr "Час від початку навігації (+тривалість)"
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Імʼя"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Версія"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Місцезнаходження:"
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "Панель Інструментів Налагодження Django перервала перенаправлення до вищевказаного URL задля налагодження перегляду. Ви можете натиснути на посилання вище, щоб продовжити перенаправлення у звичайному режимі."
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "Дані для цієї панелі більше недоступні. Будь ласка, перезавантажте сторінку і спробуйте знову."
================================================
FILE: debug_toolbar/locale/uz/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Hojiakbar Barotov , 2026
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-16 19:11-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Hojiakbar Barotov , 2026\n"
"Language-Team: Uzbek (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/uz/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: uz\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr "Tekshiruv Paneli"
#: models.py:11
msgid "history entry"
msgstr "tarix yozuvi"
#: models.py:12
msgid "history entries"
msgstr "tarix yozuvlari"
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr "\"{form_id}\" identifikatorli forma fayl maydonini o'z ichiga oladi, lekin enctype=\"multipart/form-data\" atributiga ega emas."
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr "Forma fayl maydonini o'z ichiga oladi, lekin enctype=\"multipart/form-data\" atributiga ega emas."
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr "Kiritish elementi \"{form_id}\" formaga bog'langan, lekin unda enctype=\"multipart/form-data\" atributi yo'q."
#: panels/alerts.py:77
msgid "Alerts"
msgstr "Ogohlantirishlar"
#: panels/cache.py:170
msgid "Cache"
msgstr "Kesh"
#: panels/cache.py:177
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(time).2fmillisekundda %(cache_calls)dta chaqiruvlar"
#: panels/cache.py:186
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "%(count)dta backend'dan kesh chaqiruvlari"
#: panels/community.py:13
msgid "Community"
msgstr "Hamjamiyat"
#: panels/headers.py:31
msgid "Headers"
msgstr "Sarlavhalar"
#: panels/history/panel.py:20 panels/history/panel.py:21
msgid "History"
msgstr "Tarix"
#: panels/profiling.py:156
msgid "Profiling"
msgstr "Ishlash tahlili"
#: panels/redirects.py:18
msgid "Intercept redirects"
msgstr "Yo‘naltirishni to'xtatish"
#: panels/request.py:16
msgid "Request"
msgstr "So'rov"
#: panels/request.py:36
msgid ""
msgstr ""
#: panels/request.py:53
msgid ""
msgstr ""
#: panels/settings.py:19
msgid "Settings"
msgstr "Sozlamalar"
#: panels/settings.py:22
#, python-format
msgid "Settings from %s"
msgstr "%sdan sozlamalar"
#: panels/signals.py:59
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "1 signaldan %(num_receivers)dta qabul qiluvchilar"
#: panels/signals.py:64
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_signals)dta signaldan %(num_receivers)dta qabul qiluvchilar"
#: panels/signals.py:69
msgid "Signals"
msgstr "Signallar"
#: panels/sql/forms.py:56
msgid "Data for this panel isn't available anymore."
msgstr "Bu panel uchun ma’lumotlar endi mavjud emas."
#: panels/sql/forms.py:68
msgid "Invalid query id."
msgstr "So‘rov identifikatori yaroqsiz."
#: panels/sql/panel.py:32 panels/sql/panel.py:43
msgid "Read uncommitted"
msgstr "Tasdiqlanmaganini o'qish"
#: panels/sql/panel.py:33 panels/sql/panel.py:45
msgid "Read committed"
msgstr "Tasdiqlanganini o'qish"
#: panels/sql/panel.py:34 panels/sql/panel.py:47
msgid "Repeatable read"
msgstr "Takrorlanadigan o'qish"
#: panels/sql/panel.py:35 panels/sql/panel.py:49
msgid "Serializable"
msgstr "Serializatsiyalangan"
#: panels/sql/panel.py:41
msgid "Autocommit"
msgstr "Avtomatik saqlash"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "Idle"
msgstr "Bo'sh"
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "Active"
msgstr "Aktiv"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "In transaction"
msgstr "Tranzaksiya ichida"
#: panels/sql/panel.py:66 panels/sql/panel.py:76
msgid "In error"
msgstr "Xatolik holatida"
#: panels/sql/panel.py:67 panels/sql/panel.py:77
msgid "Unknown"
msgstr "Noma'lum"
#: panels/sql/panel.py:165
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:172
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] "%(sql_time).2fmillisekundda %(query_count)dta so'rovlar"
#: panels/sql/panel.py:184
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] "%(count)dta ulanishdan SQL so'rovlari"
#: panels/staticfiles.py:47
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "Statik fayllar (%(num_found)sta topildi, %(num_used)sta ishlatilgan)"
#: panels/staticfiles.py:81
msgid "Static files"
msgstr "Statik fayllar"
#: panels/staticfiles.py:87
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)sta fayl ishlatilgan"
#: panels/templates/panel.py:104
msgid "Templates"
msgstr "Shablonlar"
#: panels/templates/panel.py:109
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Shablonlar (%(num_templates)sta ishlatilgan)"
#: panels/templates/panel.py:199
msgid "No origin"
msgstr "Manbasi yo'q"
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU:%(cum)0.2fmillisekund (%(total)0.2fmillisekund)"
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Jami: %0.2fmillisekund"
#: panels/timer.py:38 templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Vaqt"
#: panels/timer.py:46
msgid "User CPU time"
msgstr "Foydalanuvchi CPU vaqti"
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f msec"
msgstr "%(utime)0.3fmillisekund"
#: panels/timer.py:47
msgid "System CPU time"
msgstr "Sistema CPU vaqti"
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f msec"
msgstr "%(stime)0.3fmillisekund"
#: panels/timer.py:48
msgid "Total CPU time"
msgstr "Umumiy CPU vaqti"
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f msec"
msgstr "%(total)0.3fmillisekund"
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "O‘tgan vaqt"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f msec"
msgstr "%(total_time)0.3fmillisekund"
#: panels/timer.py:51
msgid "Context switches"
msgstr "Kontekst almashishlari"
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)dta ixtiyoriy, %(ivcsw)dta majburiy"
#: panels/versions.py:21
msgid "Versions"
msgstr "Versiyalar"
#: templates/debug_toolbar/base.html:22
msgid "Hide toolbar"
msgstr "Uskunalar panelini berkitish"
#: templates/debug_toolbar/base.html:22
msgid "Hide"
msgstr "Berkitish"
#: templates/debug_toolbar/base.html:24 templates/debug_toolbar/base.html:25
msgid "Toggle Theme"
msgstr "Mavzuni almashtirish"
#: templates/debug_toolbar/base.html:34
msgid "Show toolbar"
msgstr "Uskunalar panelini ko'rsatish"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "Keyingi so‘rovlar uchun faolsizlantirish"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "Keyingi va keyingi so‘rovlar uchun faollashtirish"
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr "Ogohlantirishlar topildi"
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr "Ogohlantirishlar topilmadi"
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Qisqacha ma'lumot"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "Jami chaqiruvlar"
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "Umumiy vaqt"
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "Keshga tushgan so'rovlar"
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "Keshda topilmaganlar"
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Buyruqlar"
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Chaqiruvlar"
#: templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/sql.html:36
msgid "Time (ms)"
msgstr "Vaqt (ms)"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Tur"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "Argumentlar"
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "Kalit so'zli argumentlar"
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Backend"
#: templates/debug_toolbar/panels/community.html:5
msgid "Community & Contribution"
msgstr "Hamjamiyat & Hissa qo'shish"
#: templates/debug_toolbar/panels/community.html:8
msgid ""
"Want to contribute to Django Debug Toolbar? Get involved in our community!"
msgstr "Django Tekshiruv Paneliga hissa qo'shmoqchimisiz? Hamjamiyatimizga qo'shiling!"
#: templates/debug_toolbar/panels/community.html:14
msgid "Join Discussions"
msgstr "Muhokamalarga Qo'shilish"
#: templates/debug_toolbar/panels/community.html:19
msgid "View Issues"
msgstr "Muammolarni Ko'rish"
#: templates/debug_toolbar/panels/community.html:24
msgid "Contribution Guide"
msgstr "Hissa Qo'shish Qo'llanmasi"
#: templates/debug_toolbar/panels/community.html:31
msgid "Django Debug Toolbar Documentation"
msgstr "Django Tekshiruv Paneli Dokumentatsiyasi"
#: templates/debug_toolbar/panels/community.html:34
msgid ""
"Explore the official documentation to learn more about Django Debug Toolbar."
msgstr "Django Tekshiruv Paneli haqida batafsil ma’lumot olish uchun rasmiy dokumentatsiya bilan tanishib chiqing."
#: templates/debug_toolbar/panels/community.html:39
msgid "Read Documentation"
msgstr "Dokumentatsiyani o'qish"
#: templates/debug_toolbar/panels/community.html:44
msgid "How to Use Django Debug Toolbar"
msgstr "Django Tekshiruv Panelidan Foydalanish"
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "So'rov sarlavhalari"
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Kalit"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Qiymat"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "Javob sarlavhalari"
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "WSGI muhiti"
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "WSGI server muhitini meros qilib olganligi sababli, quyida faqat muhim qism to‘plamlari ko‘rsatilgan."
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr "Metod"
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Manzil"
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr "So'rov O'zgaruvchilari"
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr "Status"
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Amal"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "O'zgaruvchi"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Chaqiruv"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "KumVaqt"
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "Har biriga"
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "JamiVaqt"
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Miqdor"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Ma'lumotlarni ko'rish"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "Funksiyani ko'rish"
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "URL nomi"
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "Cookie'lar"
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "Cookie'lar mavjud emas"
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "Sessiya ma'lumotlari"
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "Sessiya ma'lumotlari mavjud emas"
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "GET ma'lumotlari"
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "GET ma'lumotlari mavjud emas"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "POST ma'lumotlari"
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "POST ma'lumotlari mavjud emas"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Sozlama"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Signal"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Qabul qiluvchilar"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)sta so'rov"
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr "shu jumladan %(count)sta o'xshash"
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr "va %(dupes)sta duplikat"
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "So'rov"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Xronologiya"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr "%(count)sta o'xshash so'rovlar."
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr "%(dupes)smarta takrorlangan."
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Ulanish:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Izolyatsiya darajasi:"
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Tranzaksiya statusi:"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(noma'lum)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "Bu so‘rov paytida hech qanday SQL so‘rovi qayd qilinmadi."
#: templates/debug_toolbar/panels/sql_explain.html:3
msgid "SQL explained"
msgstr "Tushuntirilgan SQL so'rovi"
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "Ijro etilgan SQL so'rovi"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Ma'lumotlar bazasi"
#: templates/debug_toolbar/panels/sql_profile.html:3
msgid "SQL profiled"
msgstr "Tahlil qilingan SQL so'rovi"
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Xatolik"
#: templates/debug_toolbar/panels/sql_select.html:3
msgid "SQL selected"
msgstr "Tanlangan SQL so'rovi"
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Bo'sh to'plam"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "Statik fayl manzillari"
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(old qo'shimcha %(prefix)s)"
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "Yo'q"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "Statik fayl ilovalari"
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] "Statik fayllar"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] "%(payload_count)sta fayl"
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Joylashuv"
#: templates/debug_toolbar/panels/template_source.html:3
msgid "Template source:"
msgstr "Shablon manbasi"
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Shablon manzillari"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Shablonlar"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "Kontekstni yoqib o'chirish"
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "Kontekst protsessorlari"
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "Resurs sarfi"
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Resurs"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "Brauzer vaqti"
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "Vaqt ko'rsatkichi"
#: templates/debug_toolbar/panels/timer.html:37
msgid "Milliseconds since navigation start (+length)"
msgstr "Navigatsiya boshlanganidan beri o'tgan millisoniyalar (+muddat)"
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr "Paket"
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Nom"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Versiya"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Joylashuv:"
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "Django Tekshiruv Paneli paneli nosozliklarni tuzatish maqsadlarida yuqoridagi URL manzilga yo‘naltirishni to'xtatdi. Qayta yo‘naltirishni odatdagidek davom ettirish uchun yuqoridagi havolani bosishingiz mumkin."
#: views.py:18
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "Bu panel uchun ma’lumotlar endi mavjud emas. Sahifani qayta yuklang va qayta urinib ko'ring."
================================================
FILE: debug_toolbar/locale/zh_CN/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# mozillazg , 2013-2014
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: mozillazg , 2013-2014\n"
"Language-Team: Chinese (China) (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zh_CN\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: apps.py:18
msgid "Debug Toolbar"
msgstr "Debug Toolbar"
#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""
#: panels/alerts.py:77
msgid "Alerts"
msgstr ""
#: panels/cache.py:168
msgid "Cache"
msgstr "缓存"
#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(time).2f 毫秒内 %(cache_calls)d 次调用"
#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "来自 %(count)d 个后端的缓存调用"
#: panels/headers.py:31
msgid "Headers"
msgstr "HTTP 头"
#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr ""
#: panels/profiling.py:140
msgid "Profiling"
msgstr "性能分析"
#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "拦截重定向"
#: panels/request.py:16
msgid "Request"
msgstr "请求"
#: panels/request.py:38
msgid ""
msgstr "<没有 view>"
#: panels/request.py:55
msgid ""
msgstr "<不可用>"
#: panels/settings.py:17
msgid "Settings"
msgstr "设置"
#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr ""
#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "1个信号 %(num_receivers)d 个接收者"
#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_signals)d 个信号 %(num_receivers)d 个接收者"
#: panels/signals.py:67
msgid "Signals"
msgstr "信号"
#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr "读取未提交的"
#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr "读取已提交的"
#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr "可重复读取"
#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "可序列化"
#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "自动提交"
#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "空闲"
#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "活跃"
#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "事务"
#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "错误"
#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "未知"
#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"
#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "静态文件 (%(num_found)s 个找到,%(num_used)s 个被使用)"
#: panels/staticfiles.py:103
msgid "Static files"
msgstr "静态文件"
#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s 个文件被使用"
#: panels/templates/panel.py:101
msgid "Templates"
msgstr "模板"
#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "模板 (%(num_templates)s 个被渲染)"
#: panels/templates/panel.py:195
msgid "No origin"
msgstr ""
#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2f 毫秒 (总耗时: %(total)0.2f 毫秒)"
#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "总共:%0.2f 毫秒"
#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "时间"
#: panels/timer.py:46
msgid "User CPU time"
msgstr "用户 CPU 时间"
#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f 毫秒"
#: panels/timer.py:47
msgid "System CPU time"
msgstr "系统 CPU 时间"
#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f 毫秒"
#: panels/timer.py:48
msgid "Total CPU time"
msgstr "总的 CPU 时间"
#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f 毫秒"
#: panels/timer.py:49
msgid "Elapsed time"
msgstr "耗时"
#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f 毫秒"
#: panels/timer.py:51
msgid "Context switches"
msgstr "上下文切换"
#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)d 主动, %(ivcsw)d 被动"
#: panels/versions.py:19
msgid "Versions"
msgstr "版本"
#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "隐藏工具栏"
#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "隐藏"
#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""
#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "显示工具栏"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "针对下一个连续的请求禁用该功能"
#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "针对下一个连续的请求启用该功能"
#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""
#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "摘要"
#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "总调用次数"
#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "总耗时"
#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "缓存命中"
#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "缓存未命中"
#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "命令"
#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "调用"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "类型"
#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "参数"
#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "关键字参数"
#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "后端"
#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "请求头"
#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "键"
#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "值"
#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "响应头"
#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "WSGI 环境变量"
#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "由于 WSGI 的环境变量继承自 server,所以下面只显示了一些重要的子集。"
#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr ""
#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "路径"
#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""
#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""
#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "功能"
#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "变量"
#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "调用"
#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "调用该函数及其内部调用其他函数花费的总时间"
#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "平均每次调用花费的时间"
#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "调用该函数花费的总时间"
#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "总的调用次数"
#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "View 信息"
#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "View 函数"
#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "URL 名称"
#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "Cookies"
#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "没有 cookies"
#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "Session 数据"
#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "没有 session 数据"
#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "GET 请求数据"
#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "没有 GET 请求数据"
#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "POST 请求数据"
#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "没有 POST 请求数据"
#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "设置项"
#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "信号"
#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "接收者"
#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s 个查询"
#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including %(count)s similar"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and %(dupes)s duplicates"
msgstr ""
#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "查询"
#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "时间线"
#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""
#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "连接:"
#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "隔离级别"
#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "事务状态:"
#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(未知)"
#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "在处理这个请求期间没有记录到 SQL 查询。"
#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr "SQL explain 分析"
#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "执行的 SQL 语句"
#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "数据库"
#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr "SQL 性能分析"
#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "错误"
#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr "选中的 SQL 语句"
#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "空集合"
#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "静态文件路径"
#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(前缀 %(prefix)s)"
#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "空"
#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "包含静态文件的应用"
#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] "静态文件"
#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] "%(payload_count)s 个文件"
#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "位置"
#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr "模板源:"
#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "模板路径"
#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "模板"
#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "切换上下文"
#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "Context processors"
#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "资源使用"
#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "资源"
#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "浏览器计时"
#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "计时属性"
#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr "导航开始后的时间 (+持续时间)"
#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr ""
#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "名称"
#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "版本"
#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "位置:"
#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "Django Debug Toolbar 为了调试目的拦截了一个重定向到上面 URL 的请求。 您可以点击上面的链接继续执行重定向操作。"
#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "当前面板的数据暂不可用。请刷新页面并重试。"
================================================
FILE: debug_toolbar/management/__init__.py
================================================
================================================
FILE: debug_toolbar/management/commands/__init__.py
================================================
================================================
FILE: debug_toolbar/management/commands/debugsqlshell.py
================================================
from time import perf_counter
import sqlparse
from django.core.management.commands.shell import Command
from django.db import connection
if connection.vendor == "postgresql":
from django.db.backends.postgresql import base as base_module
else:
from django.db.backends import utils as base_module
# 'debugsqlshell' is the same as the 'shell'.
# Command is required to exist to be loaded via
# django.core.managementload_command_class
__all__ = ["Command", "PrintQueryWrapper"]
class PrintQueryWrapper(base_module.CursorDebugWrapper):
def execute(self, sql, params=()):
start_time = perf_counter()
try:
return self.cursor.execute(sql, params)
finally:
raw_sql = self.db.ops.last_executed_query(self.cursor, sql, params)
end_time = perf_counter()
duration = (end_time - start_time) * 1000
formatted_sql = sqlparse.format(raw_sql, reindent=True)
print(f"{formatted_sql} [{duration:.2f}ms]")
base_module.CursorDebugWrapper = PrintQueryWrapper
================================================
FILE: debug_toolbar/middleware.py
================================================
"""
Debug Toolbar middleware
"""
import re
import socket
from collections.abc import Callable
from functools import cache
from asgiref.sync import (
async_to_sync,
iscoroutinefunction,
markcoroutinefunction,
sync_to_async,
)
from django.conf import settings
from django.http import HttpRequest, HttpResponse
from django.utils.module_loading import import_string
from debug_toolbar import settings as dt_settings
from debug_toolbar._stubs import GetResponse
from debug_toolbar.panels import Panel
from debug_toolbar.toolbar import DebugToolbar
from debug_toolbar.utils import clear_stack_trace_caches, is_processable_html_response
_HTML_TYPES = ("text/html", "application/xhtml+xml")
def show_toolbar(request: HttpRequest) -> bool:
"""
Default function to determine whether to show the toolbar on a given page.
"""
if not settings.DEBUG:
return False
# Test: settings
if request.META.get("REMOTE_ADDR") in settings.INTERNAL_IPS:
return True
# No test passed
return False
def show_toolbar_with_docker(request: HttpRequest) -> bool:
"""
Default function to determine whether to show the toolbar on a given page.
"""
if not settings.DEBUG:
return False
# Test: settings
if request.META.get("REMOTE_ADDR") in settings.INTERNAL_IPS:
return True
# Test: Docker
try:
# This is a hack for docker installations. It attempts to look
# up the IP address of the docker host.
# This is not guaranteed to work.
docker_ip = (
# Convert the last segment of the IP address to be .1
".".join(socket.gethostbyname("host.docker.internal").rsplit(".")[:-1])
+ ".1"
)
if request.META.get("REMOTE_ADDR") == docker_ip:
return True
except socket.gaierror:
# It's fine if the lookup errored since they may not be using docker
pass
# No test passed
return False
@cache
def show_toolbar_func_or_path() -> Callable:
"""
Fetch the show toolbar callback from settings
Cached to avoid importing multiple times.
"""
# If SHOW_TOOLBAR_CALLBACK is a string, which is the recommended
# setup, resolve it to the corresponding callable.
func_or_path = dt_settings.get_config()["SHOW_TOOLBAR_CALLBACK"]
if isinstance(func_or_path, str):
return import_string(func_or_path)
else:
return func_or_path
def get_show_toolbar(async_mode) -> Callable:
"""
Get the callback function to show the toolbar.
Will wrap the function with sync_to_async or
async_to_sync depending on the status of async_mode
and whether the underlying function is a coroutine.
"""
show_toolbar = show_toolbar_func_or_path()
is_coroutine = iscoroutinefunction(show_toolbar)
if is_coroutine and not async_mode:
show_toolbar = async_to_sync(show_toolbar)
elif not is_coroutine and async_mode:
show_toolbar = sync_to_async(show_toolbar)
return show_toolbar
class DebugToolbarMiddleware:
"""
Middleware to set up Debug Toolbar on incoming request and render toolbar
on outgoing response.
"""
sync_capable = True
async_capable = True
def __init__(self, get_response: GetResponse):
self.get_response = get_response
# If get_response is a coroutine function, turns us into async mode so
# a thread is not consumed during a whole request.
self.async_mode = iscoroutinefunction(self.get_response)
if self.async_mode:
# Mark the class as async-capable, but do the actual switch inside
# __call__ to avoid swapping out dunder methods.
markcoroutinefunction(self)
def __call__(self, request: HttpRequest) -> HttpResponse:
if self.async_mode:
return self.__acall__(request)
# Decide whether the toolbar is active for this request.
show_toolbar = get_show_toolbar(async_mode=self.async_mode)
if not show_toolbar(request) or DebugToolbar.is_toolbar_request(request):
return self.get_response(request)
toolbar = DebugToolbar(request, self.get_response)
# Activate instrumentation ie. monkey-patch.
for panel in toolbar.enabled_panels:
panel.enable_instrumentation()
try:
# Run panels like Django middleware.
response = toolbar.process_request(request)
finally:
clear_stack_trace_caches()
# Deactivate instrumentation ie. monkey-unpatch. This must run
# regardless of the response. Keep 'return' clauses below.
for panel in reversed(toolbar.enabled_panels):
panel.disable_instrumentation()
return self._postprocess(request, response, toolbar)
async def __acall__(self, request: HttpRequest) -> HttpResponse:
# Decide whether the toolbar is active for this request.
show_toolbar = get_show_toolbar(async_mode=self.async_mode)
if not await show_toolbar(request) or DebugToolbar.is_toolbar_request(request):
response = await self.get_response(request)
return response
toolbar = DebugToolbar(request, self.get_response)
# Activate instrumentation ie. monkey-patch.
for panel in toolbar.enabled_panels:
if hasattr(panel, "aenable_instrumentation"):
await panel.aenable_instrumentation()
else:
panel.enable_instrumentation()
try:
# Run panels like Django middleware.
response = await toolbar.process_request(request)
finally:
clear_stack_trace_caches()
# Deactivate instrumentation ie. monkey-unpatch. This must run
# regardless of the response. Keep 'return' clauses below.
for panel in reversed(toolbar.enabled_panels):
panel.disable_instrumentation()
return self._postprocess(request, response, toolbar)
def _postprocess(
self, request: HttpRequest, response: HttpResponse, toolbar: DebugToolbar
) -> HttpResponse:
"""
Post-process the response.
"""
# Generate the stats for all requests when the toolbar is being shown,
# but not necessarily inserted.
for panel in reversed(toolbar.enabled_panels):
panel.generate_stats(request, response)
panel.generate_server_timing(request, response)
# Always render the toolbar for the history panel, even if it is not
# included in the response.
rendered = toolbar.render_toolbar()
for header, value in self.get_headers(request, toolbar.enabled_panels).items():
response.headers[header] = value
# Check for responses where the toolbar can't be inserted.
if not is_processable_html_response(response):
return response
# Insert the toolbar in the response.
content = response.content.decode(response.charset)
insert_before = dt_settings.get_config()["INSERT_BEFORE"]
pattern = re.escape(insert_before)
bits = re.split(pattern, content, flags=re.IGNORECASE)
if len(bits) > 1:
bits[-2] += rendered
response.content = insert_before.join(bits)
if "Content-Length" in response:
response["Content-Length"] = len(response.content)
return response
@staticmethod
def get_headers(request: HttpRequest, panels: list[Panel]) -> dict[str, str]:
headers = {}
for panel in panels:
for header, value in panel.get_headers(request).items():
if header in headers:
headers[header] += f", {value}"
else:
headers[header] = value
return headers
================================================
FILE: debug_toolbar/migrations/0001_initial.py
================================================
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
operations = [
migrations.CreateModel(
name="HistoryEntry",
fields=[
(
"request_id",
models.UUIDField(primary_key=True, serialize=False),
),
("data", models.JSONField(default=dict)),
("created_at", models.DateTimeField(auto_now_add=True)),
],
options={
"verbose_name": "history entry",
"verbose_name_plural": "history entries",
"ordering": ["-created_at"],
},
),
]
================================================
FILE: debug_toolbar/migrations/__init__.py
================================================
================================================
FILE: debug_toolbar/models.py
================================================
from django.db import models
from django.utils.translation import gettext_lazy as _
class HistoryEntry(models.Model):
request_id = models.UUIDField(primary_key=True)
data = models.JSONField(default=dict)
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
verbose_name = _("history entry")
verbose_name_plural = _("history entries")
ordering = ["-created_at"]
def __str__(self):
return str(self.request_id)
================================================
FILE: debug_toolbar/panels/__init__.py
================================================
from django.core.handlers.asgi import ASGIRequest
from django.template.loader import render_to_string
from django.utils.functional import classproperty
from debug_toolbar import settings as dt_settings
from debug_toolbar._stubs import GetResponse
from debug_toolbar.utils import get_name_from_obj
class Panel:
"""
Base class for panels.
"""
is_async = False
def __init__(self, toolbar, get_response: GetResponse):
self.toolbar = toolbar
self.get_response = get_response
self.from_store = False
# Private panel properties
@classproperty
def panel_id(cls) -> str:
return cls.__name__
@property
def enabled(self) -> bool:
# Check if the panel is async compatible
if not self.is_async and isinstance(self.toolbar.request, ASGIRequest):
return False
if self.from_store:
# If the toolbar was loaded from the store the existence of
# recorded data indicates whether it was enabled or not.
# We can't use the remainder of the logic since we don't have
# a request to work off of.
return bool(self.get_stats())
# The user's cookies should override the default value
cookie_value = self.toolbar.request.COOKIES.get("djdt" + self.panel_id)
if cookie_value is not None:
return cookie_value == "on"
# Check to see if settings has a default value for it
disabled_panels = dt_settings.get_config()["DISABLE_PANELS"]
panel_path = get_name_from_obj(self)
# Some panels such as the SQLPanel and TemplatesPanel exist in a
# panel module, but can be disabled without panel in the path.
# For that reason, replace .panel. in the path and check for that
# value in the disabled panels as well.
return (
panel_path not in disabled_panels
and panel_path.replace(".panel.", ".") not in disabled_panels
)
# Titles and content
@property
def nav_title(self):
"""
Title shown in the side bar. Defaults to :attr:`title`.
"""
return self.title
@property
def nav_subtitle(self):
"""
Subtitle shown in the side bar. Defaults to the empty string.
"""
return ""
@property
def has_content(self):
"""
``True`` if the panel can be displayed in full screen, ``False`` if
it's only shown in the side bar. Defaults to ``True``.
"""
return True
@property
def is_historical(self):
"""
Panel supports rendering historical values.
Defaults to :attr:`has_content`.
"""
return self.has_content
@property
def title(self):
"""
Title shown in the panel when it's displayed in full screen.
Mandatory, unless the panel sets :attr:`has_content` to ``False``.
"""
raise NotImplementedError
@property
def template(self):
"""
Template used to render :attr:`content`.
Mandatory, unless the panel sets :attr:`has_content` to ``False`` or
overrides :attr:`content`.
"""
raise NotImplementedError
@property
def content(self):
"""
Content of the panel when it's displayed in full screen.
By default this renders the template defined by :attr:`template`.
Statistics stored with :meth:`record_stats` are available in the
template's context.
"""
if self.has_content:
return render_to_string(self.template, self.get_stats())
@property
def scripts(self):
"""
Scripts used by the HTML content of the panel when it's displayed.
When a panel is rendered on the frontend, the ``djdt.panel.render``
JavaScript event will be dispatched. The scripts can listen for
this event to support dynamic functionality.
"""
return []
# Panel early initialization
@classmethod
def ready(cls):
"""
Perform early initialization for the panel.
This should only include initialization or instrumentation that needs to
be done unconditionally for the panel regardless of whether it is
enabled for a particular request. It should be idempotent.
"""
# URLs for panel-specific views
@classmethod
def get_urls(cls):
"""
Return URLpatterns, if the panel has its own views.
"""
return []
# Enable and disable (expensive) instrumentation, must be idempotent
def enable_instrumentation(self):
"""
Enable instrumentation to gather data for this panel.
This usually means monkey-patching (!) or registering signal
receivers. Any instrumentation with a non-negligible effect on
performance should be installed by this method rather than at import
time.
Unless the toolbar or this panel is disabled, this method will be
called early in ``DebugToolbarMiddleware``. It should be idempotent.
Add the ``aenable_instrumentation`` method to a panel subclass
to support async logic for instrumentation.
"""
def disable_instrumentation(self):
"""
Disable instrumentation to gather data for this panel.
This is the opposite of :meth:`enable_instrumentation`.
Unless the toolbar or this panel is disabled, this method will be
called late in the middleware. It should be idempotent.
"""
# Store and retrieve stats (shared between panels for no good reason)
def record_stats(self, stats):
"""
Store data gathered by the panel. ``stats`` is a :class:`dict`.
Each call to ``record_stats`` updates the store's data for
the panel.
To support backwards compatibility, it will also update the
panel's statistics dictionary.
"""
self.toolbar.stats.setdefault(self.panel_id, {}).update(stats)
self.toolbar.store.save_panel(
self.toolbar.request_id, self.panel_id, self.toolbar.stats[self.panel_id]
)
def get_stats(self):
"""
Access data stored by the panel. Returns a :class:`dict`.
"""
return self.toolbar.stats.get(self.panel_id, {})
def record_server_timing(self, key, title, value):
"""
Store data gathered by the panel. ``stats`` is a :class:`dict`.
Each call to ``record_stats`` updates the statistics dictionary.
"""
data = {key: {"title": title, "value": value}}
self.toolbar.server_timing_stats.setdefault(self.panel_id, {}).update(data)
def get_server_timing_stats(self):
"""
Access data stored by the panel. Returns a :class:`dict`.
"""
return self.toolbar.server_timing_stats.get(self.panel_id, {})
# Standard middleware methods
def process_request(self, request):
"""
Like __call__ in Django's middleware.
Write panel logic related to the request there. Save data with
:meth:`record_stats`.
Return the existing response or overwrite it.
"""
return self.get_response(request)
def get_headers(self, request):
"""
Get headers the panel needs to set.
Called after :meth:`process_request
` and
:meth:`process_request`
Header values will be appended if multiple panels need to set it.
By default it sets the Server-Timing header.
Return dict of headers to be appended.
"""
headers = {}
stats = self.get_server_timing_stats()
if stats:
headers["Server-Timing"] = ", ".join(
# example: `SQLPanel_sql_time;dur=0;desc="SQL 0 queries"`
'{}_{};dur={};desc="{}"'.format(
self.panel_id, key, record.get("value"), record.get("title")
)
for key, record in stats.items()
)
return headers
def generate_stats(self, request, response):
"""
Write panel logic related to the response there. Post-process data
gathered while the view executed. Save data with :meth:`record_stats`.
Called after :meth:`process_request
`.
Does not return a value.
"""
def generate_server_timing(self, request, response):
"""
Similar to :meth:`generate_stats
`,
Generate stats for Server Timing https://w3c.github.io/server-timing/
Does not return a value.
"""
def load_stats_from_store(self, data):
"""
Instantiate the panel from serialized data.
Return the panel instance.
"""
self.toolbar.stats.setdefault(self.panel_id, {}).update(data)
self.from_store = True
@classmethod
def run_checks(cls):
"""
Check that the integration is configured correctly for the panel.
This will be called as a part of the Django checks system when the
application is being setup.
Return a list of :class:`django.core.checks.CheckMessage` instances.
"""
return []
================================================
FILE: debug_toolbar/panels/alerts.py
================================================
from html.parser import HTMLParser
from django.utils.translation import gettext_lazy as _
from debug_toolbar.panels import Panel
from debug_toolbar.utils import is_processable_html_response
class FormParser(HTMLParser):
"""
HTML form parser, used to check for invalid configurations of forms that
take file inputs.
"""
def __init__(self):
super().__init__()
self.in_form = False
self.current_form = {}
self.forms = []
self.form_ids = []
self.referenced_file_inputs = []
def handle_starttag(self, tag, attrs):
attrs = dict(attrs)
if tag == "form":
self.in_form = True
form_id = attrs.get("id")
if form_id:
self.form_ids.append(form_id)
self.current_form = {
"file_form": False,
"form_attrs": attrs,
"submit_element_attrs": [],
}
elif (
self.in_form
and tag == "input"
and attrs.get("type") == "file"
and (not attrs.get("form") or attrs.get("form") == "")
):
self.current_form["file_form"] = True
elif (
self.in_form
and (
(tag == "input" and attrs.get("type") in {"submit", "image"})
or tag == "button"
)
and (not attrs.get("form") or attrs.get("form") == "")
):
self.current_form["submit_element_attrs"].append(attrs)
elif tag == "input" and attrs.get("form"):
self.referenced_file_inputs.append(attrs)
def handle_endtag(self, tag):
if tag == "form" and self.in_form:
self.forms.append(self.current_form)
self.in_form = False
class AlertsPanel(Panel):
"""
A panel to alert users to issues.
"""
messages = {
"form_id_missing_enctype": _(
'Form with id "{form_id}" contains file input, but does not have the attribute enctype="multipart/form-data".'
),
"form_missing_enctype": _(
'Form contains file input, but does not have the attribute enctype="multipart/form-data".'
),
"input_refs_form_missing_enctype": _(
'Input element references form with id "{form_id}", but the form does not have the attribute enctype="multipart/form-data".'
),
}
title = _("Alerts")
is_async = True
template = "debug_toolbar/panels/alerts.html"
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.alerts = []
@property
def nav_subtitle(self):
if alerts := self.get_stats().get("alerts"):
alert_text = "alert" if len(alerts) == 1 else "alerts"
return f"{len(alerts)} {alert_text}"
else:
return ""
def add_alert(self, alert):
self.alerts.append(alert)
def check_invalid_file_form_configuration(self, html_content):
"""
Inspects HTML content for a form that includes a file input but does
not have the encoding type set to multipart/form-data, and warns the
user if so.
"""
parser = FormParser()
parser.feed(html_content)
# Check for file inputs directly inside a form that do not reference
# any form through the form attribute
for form in parser.forms:
if (
form["file_form"]
and form["form_attrs"].get("enctype") != "multipart/form-data"
and not any(
elem.get("formenctype") == "multipart/form-data"
for elem in form["submit_element_attrs"]
)
):
if form_id := form["form_attrs"].get("id"):
alert = self.messages["form_id_missing_enctype"].format(
form_id=form_id
)
else:
alert = self.messages["form_missing_enctype"]
self.add_alert({"alert": alert})
# Check for file inputs that reference a form
form_attrs_by_id = {
form["form_attrs"].get("id"): form["form_attrs"] for form in parser.forms
}
for attrs in parser.referenced_file_inputs:
form_id = attrs.get("form")
if form_id and attrs.get("type") == "file":
form_attrs = form_attrs_by_id.get(form_id)
if form_attrs and form_attrs.get("enctype") != "multipart/form-data":
alert = self.messages["input_refs_form_missing_enctype"].format(
form_id=form_id
)
self.add_alert({"alert": alert})
return self.alerts
def generate_stats(self, request, response):
if is_processable_html_response(response):
html_content = response.content.decode(response.charset)
self.check_invalid_file_form_configuration(html_content)
# Further alert checks can go here
# Write all alerts to record_stats
self.record_stats({"alerts": self.alerts})
================================================
FILE: debug_toolbar/panels/cache.py
================================================
import functools
from time import perf_counter
from asgiref.local import Local
from django.conf import settings
from django.core.cache import CacheHandler, caches
from django.utils.translation import gettext_lazy as _, ngettext
from debug_toolbar.panels import Panel
from debug_toolbar.utils import get_stack_trace, get_template_info, render_stacktrace
# The order of the methods in this list determines the order in which they are listed in
# the Commands table in the panel content.
WRAPPED_CACHE_METHODS = [
"add",
"get",
"set",
"get_or_set",
"touch",
"delete",
"clear",
"get_many",
"set_many",
"delete_many",
"has_key",
"incr",
"decr",
"incr_version",
"decr_version",
]
def _monkey_patch_method(cache, name, alias):
original_method = getattr(cache, name)
@functools.wraps(original_method)
def wrapper(*args, **kwargs):
panel = cache._djdt_panel
if panel is None:
return original_method(*args, **kwargs)
else:
return panel._record_call(cache, alias, name, original_method, args, kwargs)
setattr(cache, name, wrapper)
def _monkey_patch_cache(cache, alias, panel):
if not getattr(cache, "_djdt_panel", None):
for name in WRAPPED_CACHE_METHODS:
_monkey_patch_method(cache, name, alias)
cache._djdt_panel = panel
class CachePanel(Panel):
"""
Panel that displays the cache statistics.
"""
template = "debug_toolbar/panels/cache.html"
is_async = True
_context_locals = Local()
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.total_time = 0
self.hits = 0
self.misses = 0
self.calls = []
self.counts = dict.fromkeys(WRAPPED_CACHE_METHODS, 0)
@classmethod
def current_instance(cls):
"""
Return the currently enabled CachePanel instance or None.
If a request is in process with a CachePanel enabled, this will return that
panel (based on the current thread or async task). Otherwise it will return
None.
"""
return getattr(cls._context_locals, "current_instance", None)
@classmethod
def ready(cls):
if not hasattr(CacheHandler, "_djdt_patched"):
# Wrap the CacheHander.create_connection() method to monkey patch any new
# cache connections that are opened while instrumentation is enabled. In
# the interests of thread safety, this is done once at startup time and
# never removed.
original_method = CacheHandler.create_connection
@functools.wraps(original_method)
def wrapper(self, alias):
cache = original_method(self, alias)
panel = cls.current_instance()
if panel is not None:
_monkey_patch_cache(cache, alias, panel)
return cache
CacheHandler.create_connection = wrapper
CacheHandler._djdt_patched = True
def _store_call_info(
self,
name,
time_taken,
return_value,
args,
kwargs,
trace,
template_info,
backend,
):
if name == "get" or name == "get_or_set":
if return_value is None:
self.misses += 1
else:
self.hits += 1
elif name == "get_many":
keys = kwargs["keys"] if "keys" in kwargs else args[0]
self.hits += len(return_value)
self.misses += len(keys) - len(return_value)
time_taken *= 1000
self.total_time += time_taken
self.counts[name] += 1
self.calls.append(
{
"time": time_taken,
"name": name,
"args": args,
"kwargs": kwargs,
"trace": render_stacktrace(trace),
"template_info": template_info,
"backend": backend,
}
)
def _record_call(self, cache, alias, name, original_method, args, kwargs):
# Some cache backends implement certain cache methods in terms of other cache
# methods (e.g. get_or_set() in terms of get() and add()). In order to only
# record the calls made directly by the user code, set the cache's _djdt_panel
# attribute to None before invoking the original method, which will cause the
# monkey-patched cache methods to skip recording additional calls made during
# the course of this call, and then reset it back afterward.
cache._djdt_panel = None
try:
start_time = perf_counter()
value = original_method(*args, **kwargs)
t = perf_counter() - start_time
finally:
cache._djdt_panel = self
self._store_call_info(
name=name,
time_taken=t,
return_value=value,
args=args,
kwargs=kwargs,
trace=get_stack_trace(skip=2),
template_info=get_template_info(),
backend=f"{alias} ({type(cache).__name__})",
)
return value
# Implement the Panel API
nav_title = _("Cache")
@property
def nav_subtitle(self):
stats = self.get_stats()
cache_calls = len(stats.get("calls"))
return ngettext(
"%(cache_calls)d call in %(time).2fms",
"%(cache_calls)d calls in %(time).2fms",
cache_calls,
) % {"cache_calls": cache_calls, "time": stats.get("total_time")}
@property
def title(self):
count = self.get_stats().get("total_caches")
return ngettext(
"Cache calls from %(count)d backend",
"Cache calls from %(count)d backends",
count,
) % {"count": count}
def enable_instrumentation(self):
# Monkey patch all open cache connections. Django maintains cache connections
# on a per-thread/async task basis, so this will not affect any concurrent
# requests. The monkey patch of CacheHander.create_connection() installed in
# the .ready() method will ensure that any new cache connections that get opened
# during this request will also be monkey patched.
for cache, alias in self.initialized_caches():
_monkey_patch_cache(cache, alias, self)
# Mark this panel instance as the current one for the active thread/async task
# context. This will be used by the CacheHander.create_connection() monkey
# patch.
self._context_locals.current_instance = self
def disable_instrumentation(self):
if hasattr(self._context_locals, "current_instance"):
del self._context_locals.current_instance
for cache in caches.all(initialized_only=True):
cache._djdt_panel = None
def initialized_caches(self):
"""
Return the initialized caches and aliases.
This does the same as`caches.all(initialized_only=True)`, but keeps
the alias with each cache instance.
"""
for alias in caches:
if hasattr(caches._connections, alias):
yield caches[alias], alias
def generate_stats(self, request, response):
self.record_stats(
{
"total_calls": len(self.calls),
"calls": self.calls,
"total_time": self.total_time,
"hits": self.hits,
"misses": self.misses,
"counts": self.counts,
"total_caches": len(getattr(settings, "CACHES", ["default"])),
}
)
def generate_server_timing(self, request, response):
stats = self.get_stats()
value = stats.get("total_time", 0)
title = "Cache {} Calls".format(stats.get("total_calls", 0))
self.record_server_timing("total_time", title, value)
================================================
FILE: debug_toolbar/panels/community.py
================================================
from django.utils.translation import gettext_lazy as _
from debug_toolbar.panels import Panel
class CommunityPanel(Panel):
"""
A panel that provides links to the Django Debug Toolbar community.
"""
is_async = True
template = "debug_toolbar/panels/community.html"
title = _("Community")
================================================
FILE: debug_toolbar/panels/headers.py
================================================
from django.utils.translation import gettext_lazy as _
from debug_toolbar.panels import Panel
class HeadersPanel(Panel):
"""
A panel to display HTTP headers.
"""
# List of environment variables we want to display
ENVIRON_FILTER = {
"CONTENT_LENGTH",
"CONTENT_TYPE",
"DJANGO_SETTINGS_MODULE",
"GATEWAY_INTERFACE",
"QUERY_STRING",
"PATH_INFO",
"PYTHONPATH",
"REMOTE_ADDR",
"REMOTE_HOST",
"REQUEST_METHOD",
"SCRIPT_NAME",
"SERVER_NAME",
"SERVER_PORT",
"SERVER_PROTOCOL",
"SERVER_SOFTWARE",
"TZ",
}
title = _("Headers")
is_async = True
template = "debug_toolbar/panels/headers.html"
def process_request(self, request):
wsgi_env = sorted(request.META.items())
self.request_headers = {
unmangle(k): v for (k, v) in wsgi_env if is_http_header(k)
}
if "Cookie" in self.request_headers:
self.request_headers["Cookie"] = "=> see Request panel"
self.environ = {k: v for (k, v) in wsgi_env if k in self.ENVIRON_FILTER}
self.record_stats(
{"request_headers": self.request_headers, "environ": self.environ}
)
return super().process_request(request)
def generate_stats(self, request, response):
self.response_headers = dict(sorted(response.items()))
self.record_stats({"response_headers": self.response_headers})
def is_http_header(wsgi_key):
# The WSGI spec says that keys should be str objects in the environ dict,
# but this isn't true in practice. See issues #449 and #482.
return isinstance(wsgi_key, str) and wsgi_key.startswith("HTTP_")
def unmangle(wsgi_key):
return wsgi_key[5:].replace("_", "-").title()
================================================
FILE: debug_toolbar/panels/history/__init__.py
================================================
from debug_toolbar.panels.history.panel import HistoryPanel
__all__: list[str] = [HistoryPanel.panel_id]
================================================
FILE: debug_toolbar/panels/history/forms.py
================================================
from django import forms
class HistoryStoreForm(forms.Form):
"""
Validate params
request_id: The key for the store instance to be fetched.
"""
request_id = forms.CharField(widget=forms.HiddenInput())
exclude_history = forms.BooleanField(widget=forms.HiddenInput(), required=False)
================================================
FILE: debug_toolbar/panels/history/panel.py
================================================
import contextlib
import json
from django.http import HttpResponse, QueryDict
from django.http.request import HttpRequest, RawPostDataException
from django.template.loader import render_to_string
from django.templatetags.static import static
from django.urls import URLPattern, path
from django.utils import timezone
from django.utils.translation import gettext_lazy as _
from debug_toolbar.panels import Panel
from debug_toolbar.panels.history import views
from debug_toolbar.panels.history.forms import HistoryStoreForm
class HistoryPanel(Panel):
"""A panel to display History"""
is_async = True
title = _("History")
nav_title = _("History")
template = "debug_toolbar/panels/history.html"
def get_headers(self, request: HttpRequest) -> dict:
headers: dict = super().get_headers(request)
observe_request = self.toolbar.get_observe_request()
request_id = self.toolbar.request_id
if request_id and observe_request(request):
headers["djdt-request-id"] = request_id
return headers
@property
def enabled(self) -> bool:
# Do not show the history panel if the panels are rendered on request
# rather than loaded via ajax.
return super().enabled and not self.toolbar.should_render_panels()
@property
def is_historical(self) -> bool:
"""The HistoryPanel should not be included in the historical panels."""
return False
@classmethod
def get_urls(cls) -> list[URLPattern]:
return [
path("history_sidebar/", views.history_sidebar, name="history_sidebar"),
path("history_refresh/", views.history_refresh, name="history_refresh"),
]
@property
def nav_subtitle(self) -> str:
return self.get_stats().get("request_url", "")
def generate_stats(self, request: HttpRequest, response: HttpResponse) -> None:
data: QueryDict | None = None
try:
if request.method == "GET":
data = request.GET.copy()
else:
data = request.POST.copy()
# GraphQL tends to not be populated in POST. If the request seems
# empty, check if it's a JSON request.
if (
not data
and request.body
and request.headers.get("content-type") == "application/json"
):
with contextlib.suppress(ValueError):
data = json.loads(request.body)
except RawPostDataException:
# It is not guaranteed that we may read the request data (again).
pass
self.record_stats(
{
"request_url": request.get_full_path(),
"request_method": request.method,
"status_code": response.status_code,
"data": data,
"time": timezone.now(),
}
)
@property
def content(self) -> str:
"""Content of the panel when it's displayed in full screen.
Fetch every store for the toolbar and include it in the template.
"""
toolbar_history: dict[str, dict] = {}
for request_id in reversed(self.toolbar.store.request_ids()):
toolbar_history[request_id] = {
"history_stats": self.toolbar.store.panel(
request_id, HistoryPanel.panel_id
),
"form": HistoryStoreForm(
initial={"request_id": request_id, "exclude_history": True}
),
}
return render_to_string(
self.template,
{
"current_request_id": self.toolbar.request_id,
"toolbar_history": toolbar_history,
"refresh_form": HistoryStoreForm(
initial={
"request_id": self.toolbar.request_id,
"exclude_history": True,
}
),
},
)
@property
def scripts(self) -> list[str]:
scripts: list[str] = super().scripts
scripts.append(static("debug_toolbar/js/history.js"))
return scripts
================================================
FILE: debug_toolbar/panels/history/views.py
================================================
from django.http import HttpRequest, HttpResponseBadRequest, JsonResponse
from django.template.loader import render_to_string
from debug_toolbar._compat import login_not_required
from debug_toolbar.decorators import render_with_toolbar_language, require_show_toolbar
from debug_toolbar.panels.history.forms import HistoryStoreForm
from debug_toolbar.store import get_store
from debug_toolbar.toolbar import DebugToolbar
@login_not_required
@require_show_toolbar
@render_with_toolbar_language
def history_sidebar(
request: HttpRequest,
) -> HttpResponseBadRequest | JsonResponse:
"""Returns the selected debug toolbar history snapshot."""
form = HistoryStoreForm(request.GET)
if form.is_valid():
request_id: str = form.cleaned_data["request_id"]
toolbar: DebugToolbar | None = DebugToolbar.fetch(request_id)
exclude_history = form.cleaned_data["exclude_history"]
context: dict[str, dict[str, str]] = {}
if toolbar is None:
# When the request_id has been popped already due to
# RESULTS_CACHE_SIZE
return JsonResponse(context)
for panel in toolbar.panels:
if exclude_history and not panel.is_historical:
continue
panel_context = {"panel": panel}
context[panel.panel_id] = {
"button": render_to_string(
"debug_toolbar/includes/panel_button.html", panel_context
),
"content": render_to_string(
"debug_toolbar/includes/panel_content.html", panel_context
),
}
return JsonResponse(context)
return HttpResponseBadRequest(f"Form errors: {form.errors}")
@login_not_required
@require_show_toolbar
@render_with_toolbar_language
def history_refresh(
request: HttpRequest,
) -> HttpResponseBadRequest | JsonResponse:
"""Returns the refreshed list of table rows for the History Panel."""
form = HistoryStoreForm(request.GET)
if form.is_valid():
requests: list[dict[str, str]] = []
# Convert to list to handle mutations happening in parallel
for request_id in get_store().request_ids():
toolbar = DebugToolbar.fetch(request_id)
requests.append(
{
"id": request_id,
"content": render_to_string(
"debug_toolbar/panels/history_tr.html",
{
"request_id": request_id,
"history_context": {
"history_stats": toolbar.store.panel(
request_id, "HistoryPanel"
),
"form": HistoryStoreForm(
initial={
"request_id": request_id,
"exclude_history": True,
}
),
},
},
),
}
)
return JsonResponse({"requests": requests})
return HttpResponseBadRequest("Form errors")
================================================
FILE: debug_toolbar/panels/profiling.py
================================================
import cProfile
import os
from colorsys import hsv_to_rgb
from pstats import Stats
from django.conf import settings
from django.utils.html import format_html
from django.utils.translation import gettext_lazy as _
from debug_toolbar import settings as dt_settings
from debug_toolbar.panels import Panel
class FunctionCall:
def __init__(
self, statobj, func, depth=0, stats=None, id=0, parent_ids=None, hsv=(0, 0.5, 1)
):
self.statobj = statobj
self.func = func
if stats:
self.stats = stats
else:
self.stats = statobj.stats[func][:4]
self.depth = depth
self.id = id
self.parent_ids = parent_ids or []
self.hsv = hsv
self.has_subfuncs = False
def parent_classes(self):
return self.parent_classes
def background(self):
r, g, b = hsv_to_rgb(*self.hsv)
return f"rgb({r * 100:f}%,{g * 100:f}%,{b * 100:f}%)"
def is_project_func(self):
"""
Check if the function is from the project code.
Project code is identified by the BASE_DIR setting
which is used in Django projects by default.
"""
if hasattr(settings, "BASE_DIR"):
file_name, _, _ = self.func
base_dir = str(settings.BASE_DIR)
file_name = os.path.normpath(file_name)
base_dir = os.path.normpath(base_dir)
return file_name.startswith(base_dir) and not any(
directory in file_name.split(os.path.sep)
for directory in ["site-packages", "dist-packages"]
)
return None
def func_std_string(self): # match what old profile produced
func_name = self.func
if func_name[:2] == ("~", 0):
# special case for built-in functions
name = func_name[2]
if name.startswith("<") and name.endswith(">"):
return f"{{{name[1:-1]}}}"
else:
return name
else:
file_name, line_num, method = self.func
idx = file_name.find("/site-packages/")
if idx > -1:
file_name = file_name[(idx + 14) :]
split_path = file_name.rsplit(os.sep, 1)
if len(split_path) > 1:
file_path, file_name = file_name.rsplit(os.sep, 1)
else:
file_path = ""
return format_html(
'{0}/'
'{1}'
' in {3}'
'({2})',
file_path,
file_name,
line_num,
method,
)
def subfuncs(self):
h, s, v = self.hsv
count = len(self.statobj.all_callees[self.func])
for i, (func, stats) in enumerate(self.statobj.all_callees[self.func].items()):
h1 = h + ((i + 1) / count) / (self.depth + 1)
s1 = 0 if self.stats[3] == 0 else s * (stats[3] / self.stats[3])
yield FunctionCall(
self.statobj,
func,
self.depth + 1,
stats=stats,
id=str(self.id) + "_" + str(i),
parent_ids=self.parent_ids + [self.id],
hsv=(h1, s1, 1),
)
def count(self):
return self.stats[1]
def tottime(self):
return self.stats[2]
def cumtime(self):
cc, nc, tt, ct = self.stats
return self.stats[3]
def tottime_per_call(self):
cc, nc, tt, ct = self.stats
if nc == 0:
return 0
return tt / nc
def cumtime_per_call(self):
cc, nc, tt, ct = self.stats
if cc == 0:
return 0
return ct / cc
def indent(self):
return 16 * self.depth
def serialize(self):
return {
"has_subfuncs": self.has_subfuncs,
"id": self.id,
"parent_ids": self.parent_ids,
"is_project_func": self.is_project_func(),
"indent": self.indent(),
"func_std_string": self.func_std_string(),
"cumtime": self.cumtime(),
"cumtime_per_call": self.cumtime_per_call(),
"tottime": self.tottime(),
"tottime_per_call": self.tottime_per_call(),
"count": self.count(),
}
class ProfilingPanel(Panel):
"""
Panel that displays profiling information.
"""
is_async = False
title = _("Profiling")
template = "debug_toolbar/panels/profiling.html"
capture_project_code = dt_settings.get_config()["PROFILER_CAPTURE_PROJECT_CODE"]
def process_request(self, request):
self.profiler = cProfile.Profile()
return self.profiler.runcall(super().process_request, request)
def add_node(self, func_list, func, max_depth, cum_time):
func_list.append(func)
if func.depth < max_depth:
for subfunc in func.subfuncs():
# Always include the user's code
if subfunc.stats[3] >= cum_time or (
self.capture_project_code
and subfunc.is_project_func()
and subfunc.stats[3] > 0
):
func.has_subfuncs = True
self.add_node(func_list, subfunc, max_depth, cum_time)
def generate_stats(self, request, response):
if not hasattr(self, "profiler"):
return None
# Could be delayed until the panel content is requested (perf. optim.)
self.profiler.create_stats()
self.stats = Stats(self.profiler)
self.stats.calc_callees()
root_func = cProfile.label(super().process_request.__code__)
if root_func in self.stats.stats:
root = FunctionCall(self.stats, root_func, depth=0)
func_list = []
cum_time_threshold = (
root.stats[3] / dt_settings.get_config()["PROFILER_THRESHOLD_RATIO"]
)
self.add_node(
func_list,
root,
dt_settings.get_config()["PROFILER_MAX_DEPTH"],
cum_time_threshold,
)
self.record_stats({"func_list": [func.serialize() for func in func_list]})
================================================
FILE: debug_toolbar/panels/redirects.py
================================================
import warnings
from inspect import iscoroutine
from django.template.response import SimpleTemplateResponse
from django.utils.translation import gettext_lazy as _
from debug_toolbar.panels import Panel
class RedirectsPanel(Panel):
"""
Panel that intercepts redirects and displays a page with debug info.
"""
has_content = False
is_async = True
nav_title = _("Intercept redirects")
def _process_response(self, response):
"""
Common response processing logic.
"""
if 300 <= response.status_code < 400:
if redirect_to := response.get("Location"):
response = self.get_interception_response(response, redirect_to)
response.render()
return response
async def aprocess_request(self, request, response_coroutine):
"""
Async version of process_request. used for accessing the response
by awaiting it when running in ASGI.
"""
response = await response_coroutine
return self._process_response(response)
def process_request(self, request):
response = super().process_request(request)
if iscoroutine(response):
return self.aprocess_request(request, response)
return self._process_response(response)
def get_interception_response(self, response, redirect_to):
"""
Hook method to allow subclasses to customize the interception response.
"""
status_line = f"{response.status_code} {response.reason_phrase}"
cookies = response.cookies
original_response = response
context = {
"redirect_to": redirect_to,
"status_line": status_line,
"toolbar": self.toolbar,
"original_response": original_response,
}
# Using SimpleTemplateResponse avoids running global context processors.
response = SimpleTemplateResponse("debug_toolbar/redirect.html", context)
response.cookies = cookies
response.original_response = original_response
warnings.warn(
"The RedirectsPanel is deprecated and will be removed in a future version. "
"The HistoryPanel now provides the ability to view toolbar data for redirected requests. "
"If you still have a use case for this panel, please comment on "
"https://github.com/django-commons/django-debug-toolbar/issues/2216",
DeprecationWarning,
stacklevel=2,
)
return response
================================================
FILE: debug_toolbar/panels/request.py
================================================
from django.http import Http404
from django.urls import resolve
from django.utils.translation import gettext_lazy as _
from debug_toolbar.panels import Panel
from debug_toolbar.utils import get_name_from_obj, sanitize_and_sort_request_vars
class RequestPanel(Panel):
"""
A panel to display request variables (POST/GET, session, cookies).
"""
template = "debug_toolbar/panels/request.html"
title = _("Request")
@property
def nav_subtitle(self):
"""
Show abbreviated name of view function as subtitle
"""
view_func = self.get_stats().get("view_func", "")
return view_func.rsplit(".", 1)[-1]
def generate_stats(self, request, response):
self.record_stats(
{
"get": sanitize_and_sort_request_vars(request.GET),
"post": sanitize_and_sort_request_vars(request.POST),
"cookies": sanitize_and_sort_request_vars(request.COOKIES),
}
)
view_info = {
"view_func": _(""),
"view_args": "None",
"view_kwargs": "None",
"view_urlname": "None",
}
try:
match = resolve(request.path_info)
func, args, kwargs = match
view_info["view_func"] = get_name_from_obj(func)
view_info["view_args"] = args
view_info["view_kwargs"] = kwargs
if getattr(match, "url_name", False):
url_name = match.url_name
if match.namespaces:
url_name = ":".join([*match.namespaces, url_name])
else:
url_name = _("")
view_info["view_urlname"] = url_name
except Http404:
pass
self.record_stats(view_info)
if hasattr(request, "session"):
session_data = dict(request.session)
self.record_stats({"session": sanitize_and_sort_request_vars(session_data)})
================================================
FILE: debug_toolbar/panels/settings.py
================================================
from pprint import pformat
from django.utils.translation import gettext_lazy as _
from django.views.debug import get_default_exception_reporter_filter
from debug_toolbar.panels import Panel
get_safe_settings = get_default_exception_reporter_filter().get_safe_settings
def safe_pformat(obj):
try:
return pformat(obj)
except Exception as e:
return f""
class SettingsPanel(Panel):
"""
A panel to display all variables in django.conf.settings
"""
template = "debug_toolbar/panels/settings.html"
is_async = True
nav_title = _("Settings")
def title(self):
return _("Settings from %s") % self.get_stats()["settings"].get(
"SETTINGS_MODULE"
)
def generate_stats(self, request, response):
self.record_stats(
{
"settings": {
key: safe_pformat(value)
for key, value in sorted(get_safe_settings().items())
}
}
)
================================================
FILE: debug_toolbar/panels/signals.py
================================================
import weakref
from django.core.signals import (
got_request_exception,
request_finished,
request_started,
setting_changed,
)
from django.db.backends.signals import connection_created
from django.db.models.signals import (
class_prepared,
m2m_changed,
post_delete,
post_init,
post_migrate,
post_save,
pre_delete,
pre_init,
pre_migrate,
pre_save,
)
from django.utils.module_loading import import_string
from django.utils.translation import gettext_lazy as _, ngettext
from debug_toolbar.panels import Panel
class SignalsPanel(Panel):
template = "debug_toolbar/panels/signals.html"
is_async = True
SIGNALS = {
"request_started": request_started,
"request_finished": request_finished,
"got_request_exception": got_request_exception,
"connection_created": connection_created,
"class_prepared": class_prepared,
"pre_init": pre_init,
"post_init": post_init,
"pre_save": pre_save,
"post_save": post_save,
"pre_delete": pre_delete,
"post_delete": post_delete,
"m2m_changed": m2m_changed,
"pre_migrate": pre_migrate,
"post_migrate": post_migrate,
"setting_changed": setting_changed,
}
def nav_subtitle(self):
signals = self.get_stats()["signals"]
num_receivers = sum(len(receivers) for name, receivers in signals)
num_signals = len(signals)
# here we have to handle a double count translation, hence the
# hard coding of one signal
if num_signals == 1:
return ngettext(
"%(num_receivers)d receiver of 1 signal",
"%(num_receivers)d receivers of 1 signal",
num_receivers,
) % {"num_receivers": num_receivers}
return ngettext(
"%(num_receivers)d receiver of %(num_signals)d signals",
"%(num_receivers)d receivers of %(num_signals)d signals",
num_receivers,
) % {"num_receivers": num_receivers, "num_signals": num_signals}
title = _("Signals")
@property
def signals(self):
signals = self.SIGNALS.copy()
for signal in self.toolbar.config["EXTRA_SIGNALS"]:
signal_name = signal.rsplit(".", 1)[-1]
signals[signal_name] = import_string(signal)
return signals
def generate_stats(self, request, response):
signals = []
for name, signal in sorted(self.signals.items()):
receivers = []
for receiver in signal.receivers:
receiver = receiver[1]
if isinstance(receiver, weakref.ReferenceType):
receiver = receiver()
if receiver is None:
continue
receiver = getattr(receiver, "__wraps__", receiver)
receiver_name = getattr(receiver, "__name__", str(receiver))
if getattr(receiver, "__self__", None) is not None:
receiver_class_name = getattr(
receiver.__self__, "__class__", type
).__name__
text = f"{receiver_class_name}.{receiver_name}"
else:
text = receiver_name
receivers.append(text)
signals.append((name, receivers))
self.record_stats({"signals": signals})
================================================
FILE: debug_toolbar/panels/sql/__init__.py
================================================
from debug_toolbar.panels.sql.panel import SQLPanel
__all__ = [SQLPanel.panel_id]
================================================
FILE: debug_toolbar/panels/sql/forms.py
================================================
import json
from django import forms
from django.core.exceptions import ValidationError
from django.db import connections
from django.utils.functional import cached_property
from django.utils.translation import gettext_lazy as _
from debug_toolbar.panels.sql.utils import is_select_query, reformat_sql
from debug_toolbar.toolbar import DebugToolbar
class SQLSelectForm(forms.Form):
"""
Validate params
request_id: The identifier for the request
query_id: The identifier for the query
"""
request_id = forms.CharField()
djdt_query_id = forms.CharField()
def clean_raw_sql(self):
value = self.cleaned_data["raw_sql"]
if not is_select_query(value):
raise ValidationError("Only 'select' queries are allowed.")
return value
def clean_params(self):
value = self.cleaned_data["params"]
try:
return json.loads(value)
except ValueError as exc:
raise ValidationError("Is not valid JSON") from exc
def clean_alias(self):
value = self.cleaned_data["alias"]
if value not in connections:
raise ValidationError(f"Database alias '{value}' not found")
return value
def clean(self):
from debug_toolbar.panels.sql import SQLPanel
cleaned_data = super().clean()
toolbar = DebugToolbar.fetch(
self.cleaned_data["request_id"], panel_id=SQLPanel.panel_id
)
if toolbar is None:
raise ValidationError(_("Data for this panel isn't available anymore."))
panel = toolbar.get_panel_by_id(SQLPanel.panel_id)
# Find the query for this form submission
query = None
for q in panel.get_stats()["queries"]:
if q["djdt_query_id"] != self.cleaned_data["djdt_query_id"]:
continue
else:
query = q
break
if not query:
raise ValidationError(_("Invalid query id."))
cleaned_data["query"] = query
return cleaned_data
def select(self):
query = self.cleaned_data["query"]
sql = query["raw_sql"]
params = json.loads(query["params"])
with self.cursor as cursor:
cursor.execute(sql, params)
headers = [d[0] for d in cursor.description]
result = cursor.fetchall()
return result, headers
def explain(self):
query = self.cleaned_data["query"]
sql = query["raw_sql"]
params = json.loads(query["params"])
vendor = query["vendor"]
with self.cursor as cursor:
if vendor == "sqlite":
# SQLite's EXPLAIN dumps the low-level opcodes generated for a query;
# EXPLAIN QUERY PLAN dumps a more human-readable summary
# See https://www.sqlite.org/lang_explain.html for details
cursor.execute(f"EXPLAIN QUERY PLAN {sql}", params)
elif vendor == "postgresql":
cursor.execute(f"EXPLAIN ANALYZE {sql}", params)
else:
cursor.execute(f"EXPLAIN {sql}", params)
headers = [d[0] for d in cursor.description]
result = cursor.fetchall()
return result, headers
def profile(self):
query = self.cleaned_data["query"]
sql = query["raw_sql"]
params = json.loads(query["params"])
with self.cursor as cursor:
cursor.execute("SET PROFILING=1") # Enable profiling
cursor.execute(sql, params) # Execute SELECT
cursor.execute("SET PROFILING=0") # Disable profiling
# The Query ID should always be 1 here but I'll subselect to get
# the last one just in case...
cursor.execute(
"""
SELECT *
FROM information_schema.profiling
WHERE query_id = (
SELECT query_id
FROM information_schema.profiling
ORDER BY query_id DESC
LIMIT 1
)
"""
)
headers = [d[0] for d in cursor.description]
result = cursor.fetchall()
return result, headers
def reformat_sql(self):
return reformat_sql(self.cleaned_data["query"]["sql"], with_toggle=False)
@property
def connection(self):
return connections[self.cleaned_data["query"]["alias"]]
@cached_property
def cursor(self):
return self.connection.cursor()
================================================
FILE: debug_toolbar/panels/sql/panel.py
================================================
import uuid
from collections import defaultdict
from asgiref.sync import sync_to_async
from django.db import connections
from django.template.loader import render_to_string
from django.urls import path
from django.utils.functional import cached_property
from django.utils.translation import gettext_lazy as _, ngettext
from debug_toolbar import settings as dt_settings
from debug_toolbar.forms import SignedDataForm
from debug_toolbar.panels import Panel
from debug_toolbar.panels.sql import views
from debug_toolbar.panels.sql.forms import SQLSelectForm
from debug_toolbar.panels.sql.tracking import wrap_cursor
from debug_toolbar.panels.sql.utils import (
contrasting_color_generator,
is_select_query,
reformat_sql,
)
from debug_toolbar.utils import render_stacktrace
def get_isolation_level_display(vendor, level):
if vendor == "postgresql":
try:
import psycopg
choices = {
# AUTOCOMMIT level does not exists in psycopg3
psycopg.IsolationLevel.READ_UNCOMMITTED: _("Read uncommitted"),
psycopg.IsolationLevel.READ_COMMITTED: _("Read committed"),
psycopg.IsolationLevel.REPEATABLE_READ: _("Repeatable read"),
psycopg.IsolationLevel.SERIALIZABLE: _("Serializable"),
}
except ImportError:
import psycopg2.extensions
choices = {
psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT: _("Autocommit"),
psycopg2.extensions.ISOLATION_LEVEL_READ_UNCOMMITTED: _(
"Read uncommitted"
),
psycopg2.extensions.ISOLATION_LEVEL_READ_COMMITTED: _("Read committed"),
psycopg2.extensions.ISOLATION_LEVEL_REPEATABLE_READ: _(
"Repeatable read"
),
psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE: _("Serializable"),
}
else:
raise ValueError(vendor)
return choices.get(level)
def get_transaction_status_display(vendor, level):
if vendor == "postgresql":
try:
import psycopg
choices = {
psycopg.pq.TransactionStatus.IDLE: _("Idle"),
psycopg.pq.TransactionStatus.ACTIVE: _("Active"),
psycopg.pq.TransactionStatus.INTRANS: _("In transaction"),
psycopg.pq.TransactionStatus.INERROR: _("In error"),
psycopg.pq.TransactionStatus.UNKNOWN: _("Unknown"),
}
except ImportError:
import psycopg2.extensions
choices = {
psycopg2.extensions.TRANSACTION_STATUS_IDLE: _("Idle"),
psycopg2.extensions.TRANSACTION_STATUS_ACTIVE: _("Active"),
psycopg2.extensions.TRANSACTION_STATUS_INTRANS: _("In transaction"),
psycopg2.extensions.TRANSACTION_STATUS_INERROR: _("In error"),
psycopg2.extensions.TRANSACTION_STATUS_UNKNOWN: _("Unknown"),
}
else:
raise ValueError(vendor)
return choices.get(level)
def _similar_query_key(query):
return query["raw_sql"]
def _duplicate_query_key(query):
raw_params = () if query["params"] is None else tuple(query["params"])
# repr() avoids problems because of unhashable types
# (e.g. lists) when used as dictionary keys.
# https://github.com/django-commons/django-debug-toolbar/issues/1091
return (query["raw_sql"], repr(raw_params))
def _process_query_groups(query_groups, databases, colors, name):
counts = defaultdict(int)
for (alias, _key), query_group in query_groups.items():
count = len(query_group)
# Queries are similar / duplicates only if there are at least 2 of them.
if count > 1:
color = next(colors)
for query in query_group:
query[f"{name}_count"] = count
query[f"{name}_color"] = color
counts[alias] += count
for alias, db_info in databases.items():
db_info[f"{name}_count"] = counts[alias]
class SQLPanel(Panel):
"""
Panel that displays information about the SQL queries run while processing
the request.
"""
is_async = True
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._sql_time = 0
self._queries = []
self._databases = {}
# synthetic transaction IDs, keyed by DB alias
self._transaction_ids = {}
def new_transaction_id(self, alias):
"""
Generate and return a new synthetic transaction ID for the specified DB alias.
"""
trans_id = uuid.uuid4().hex
self._transaction_ids[alias] = trans_id
return trans_id
def current_transaction_id(self, alias):
"""
Return the current synthetic transaction ID for the specified DB alias.
"""
trans_id = self._transaction_ids.get(alias)
# Sometimes it is not possible to detect the beginning of the first transaction,
# so current_transaction_id() will be called before new_transaction_id(). In
# that case there won't yet be a transaction ID. so it is necessary to generate
# one using new_transaction_id().
if trans_id is None:
trans_id = self.new_transaction_id(alias)
return trans_id
def record(self, **kwargs):
kwargs["djdt_query_id"] = uuid.uuid4().hex
self._queries.append(kwargs)
alias = kwargs["alias"]
if alias not in self._databases:
self._databases[alias] = {
"time_spent": kwargs["duration"],
"num_queries": 1,
}
else:
self._databases[alias]["time_spent"] += kwargs["duration"]
self._databases[alias]["num_queries"] += 1
self._sql_time += kwargs["duration"]
# Implement the Panel API
nav_title = _("SQL")
@property
def nav_subtitle(self):
stats = self.get_stats()
query_count = len(stats.get("queries", []))
return ngettext(
"%(query_count)d query in %(sql_time).2fms",
"%(query_count)d queries in %(sql_time).2fms",
query_count,
) % {
"query_count": query_count,
"sql_time": stats.get("sql_time"),
}
@property
def title(self):
count = len(self.get_stats().get("databases"))
return ngettext(
"SQL queries from %(count)d connection",
"SQL queries from %(count)d connections",
count,
) % {"count": count}
template = "debug_toolbar/panels/sql.html"
@classmethod
def get_urls(cls):
return [
path("sql_select/", views.sql_select, name="sql_select"),
path("sql_explain/", views.sql_explain, name="sql_explain"),
path("sql_profile/", views.sql_profile, name="sql_profile"),
]
async def aenable_instrumentation(self):
"""
Async version of enable instrumentation.
For async capable panels having async logic for instrumentation.
"""
await sync_to_async(self.enable_instrumentation)()
def enable_instrumentation(self):
# This is thread-safe because database connections are thread-local.
for connection in connections.all():
wrap_cursor(connection)
connection._djdt_logger = self
def disable_instrumentation(self):
for connection in connections.all():
connection._djdt_logger = None
def generate_stats(self, request, response):
similar_query_groups = defaultdict(list)
duplicate_query_groups = defaultdict(list)
if self._queries:
sql_warning_threshold = dt_settings.get_config()["SQL_WARNING_THRESHOLD"]
width_ratio_tally = 0
factor = int(256.0 / (len(self._databases) * 2.5))
for n, db in enumerate(self._databases.values()):
rgb = [0, 0, 0]
color = n % 3
rgb[color] = 256 - n // 3 * factor
nn = color
# XXX: pretty sure this is horrible after so many aliases
while rgb[color] < factor:
nc = min(256 - rgb[color], 256)
rgb[color] += nc
nn += 1
if nn > 2:
nn = 0
rgb[nn] = nc
db["rgb_color"] = rgb
# the last query recorded for each DB alias
last_by_alias = {}
for query in self._queries:
alias = query["alias"]
similar_query_groups[(alias, _similar_query_key(query))].append(query)
duplicate_query_groups[(alias, _duplicate_query_key(query))].append(
query
)
trans_id = query.get("trans_id")
prev_query = last_by_alias.get(alias, {})
prev_trans_id = prev_query.get("trans_id")
# If two consecutive queries for a given DB alias have different
# transaction ID values, a transaction started, finished, or both, so
# annotate the queries as appropriate.
if trans_id != prev_trans_id:
if prev_trans_id is not None:
prev_query["ends_trans"] = True
if trans_id is not None:
query["starts_trans"] = True
if trans_id is not None:
query["in_trans"] = True
if "iso_level" in query:
query["iso_level"] = get_isolation_level_display(
query["vendor"], query["iso_level"]
)
if "trans_status" in query:
query["trans_status"] = get_transaction_status_display(
query["vendor"], query["trans_status"]
)
query["is_slow"] = query["duration"] > sql_warning_threshold
query["is_select"] = is_select_query(query["raw_sql"])
query["rgb_color"] = self._databases[alias]["rgb_color"]
try:
query["width_ratio"] = (query["duration"] / self._sql_time) * 100
except ZeroDivisionError:
query["width_ratio"] = 0
query["start_offset"] = width_ratio_tally
query["end_offset"] = query["width_ratio"] + query["start_offset"]
width_ratio_tally += query["width_ratio"]
last_by_alias[alias] = query
# Close out any transactions that were in progress, since there is no
# explicit way to know when a transaction finishes.
for final_query in last_by_alias.values():
if final_query.get("trans_id") is not None:
final_query["ends_trans"] = True
group_colors = contrasting_color_generator()
_process_query_groups(
similar_query_groups, self._databases, group_colors, "similar"
)
_process_query_groups(
duplicate_query_groups, self._databases, group_colors, "duplicate"
)
self.record_stats(
{
"databases": sorted(
self._databases.items(), key=lambda x: -x[1]["time_spent"]
),
"queries": self._queries,
"sql_time": self._sql_time,
}
)
def generate_server_timing(self, request, response):
stats = self.get_stats()
title = "SQL {} queries".format(len(stats.get("queries", [])))
value = stats.get("sql_time", 0)
self.record_server_timing("sql_time", title, value)
# Cache the content property since it manipulates the queries in the stats
# This allows the caller to treat content as idempotent
@cached_property
def content(self):
if self.has_content:
stats = self.get_stats()
colors = contrasting_color_generator()
trace_colors = defaultdict(lambda: next(colors))
for query in stats.get("queries", []):
query["sql"] = reformat_sql(query["sql"], with_toggle=True)
query["form"] = SignedDataForm(
auto_id=None,
initial=SQLSelectForm(
initial={
"djdt_query_id": query["djdt_query_id"],
"request_id": self.toolbar.request_id,
}
).initial,
)
query["stacktrace"] = render_stacktrace(query["stacktrace"])
query["trace_color"] = trace_colors[query["stacktrace"]]
return render_to_string(self.template, stats)
================================================
FILE: debug_toolbar/panels/sql/tracking.py
================================================
import contextlib
import contextvars
import datetime
import json
from time import perf_counter
import django.test.testcases
from django.apps import apps
from debug_toolbar import settings as dt_settings
from debug_toolbar.sanitize import force_str
from debug_toolbar.utils import get_stack_trace, get_template_info
try:
import psycopg
PostgresJson = psycopg.types.json.Jsonb
STATUS_IN_TRANSACTION = psycopg.pq.TransactionStatus.INTRANS
except ImportError:
try:
from psycopg2._json import Json as PostgresJson
from psycopg2.extensions import STATUS_IN_TRANSACTION
except ImportError:
PostgresJson = None
STATUS_IN_TRANSACTION = None
# Prevents SQL queries from being sent to the DB. It's used
# by the TemplatePanel to prevent the toolbar from issuing
# additional queries.
allow_sql = contextvars.ContextVar("debug-toolbar-allow-sql", default=True)
DDT_MODELS = {
m._meta.db_table for m in apps.get_app_config("debug_toolbar").get_models()
}
class SQLQueryTriggered(Exception):
"""Thrown when template panel triggers a query"""
def wrap_cursor(connection):
# When running a SimpleTestCase, Django monkey patches some DatabaseWrapper
# methods, including .cursor() and .chunked_cursor(), to raise an exception
# if the test code tries to access the database, and then undoes the monkey
# patching when the test case is finished. If we monkey patch those methods
# also, Django's process of undoing those monkey patches will fail. To
# avoid this failure, and because database access is not allowed during a
# SimpleTestCase anyway, skip applying our instrumentation monkey patches if
# we detect that Django has already monkey patched DatabaseWrapper.cursor().
if isinstance(connection.cursor, django.test.testcases._DatabaseFailure):
return
if not hasattr(connection, "_djdt_cursor"):
connection._djdt_cursor = connection.cursor
connection._djdt_chunked_cursor = connection.chunked_cursor
connection._djdt_logger = None
def cursor(*args, **kwargs):
# Per the DB API cursor() does not accept any arguments. There's
# some code in the wild which does not follow that convention,
# so we pass on the arguments even though it's not clean.
# See:
# https://github.com/django-commons/django-debug-toolbar/pull/615
# https://github.com/django-commons/django-debug-toolbar/pull/896
logger = connection._djdt_logger
cursor = connection._djdt_cursor(*args, **kwargs)
if logger is None:
return cursor
mixin = NormalCursorMixin if allow_sql.get() else ExceptionCursorMixin
return patch_cursor_wrapper_with_mixin(cursor.__class__, mixin)(
cursor.cursor, connection, logger
)
def chunked_cursor(*args, **kwargs):
# prevent double wrapping
# solves https://github.com/django-commons/django-debug-toolbar/issues/1239
logger = connection._djdt_logger
cursor = connection._djdt_chunked_cursor(*args, **kwargs)
if logger is not None and not isinstance(cursor, DjDTCursorWrapperMixin):
mixin = NormalCursorMixin if allow_sql.get() else ExceptionCursorMixin
return patch_cursor_wrapper_with_mixin(cursor.__class__, mixin)(
cursor.cursor, connection, logger
)
return cursor
connection.cursor = cursor
connection.chunked_cursor = chunked_cursor
def patch_cursor_wrapper_with_mixin(base_wrapper, mixin):
class DjDTCursorWrapper(mixin, base_wrapper):
pass
return DjDTCursorWrapper
class DjDTCursorWrapperMixin:
def __init__(self, cursor, db, logger):
super().__init__(cursor, db)
# logger must implement a ``record`` method
self.logger = logger
class ExceptionCursorMixin(DjDTCursorWrapperMixin):
"""
Wraps a cursor and raises an exception on any operation.
Used in Templates panel.
"""
def __getattr__(self, attr):
raise SQLQueryTriggered()
class NormalCursorMixin(DjDTCursorWrapperMixin):
"""
Wraps a cursor and logs queries.
"""
def _decode(self, param):
if PostgresJson and isinstance(param, PostgresJson):
# psycopg3
if hasattr(param, "obj"):
return param.dumps(param.obj)
# psycopg2
if hasattr(param, "adapted"):
return param.dumps(param.adapted)
# If a sequence type, decode each element separately
if isinstance(param, (tuple, list)):
return [self._decode(element) for element in param]
# If a dictionary type, decode each value separately
if isinstance(param, dict):
return {key: self._decode(value) for key, value in param.items()}
# make sure datetime, date and time are converted to string by force_str
CONVERT_TYPES = (datetime.datetime, datetime.date, datetime.time)
return force_str(param, strings_only=not isinstance(param, CONVERT_TYPES))
def _last_executed_query(self, sql, params):
"""Get the last executed query from the connection."""
# Django's psycopg3 backend creates a new cursor in its implementation of the
# .last_executed_query() method. To avoid wrapping that cursor, temporarily set
# the DatabaseWrapper's ._djdt_logger attribute to None. This will cause the
# monkey-patched .cursor() and .chunked_cursor() methods to skip the wrapping
# process during the .last_executed_query() call.
self.db._djdt_logger = None
try:
return self.db.ops.last_executed_query(self.cursor, sql, params)
finally:
self.db._djdt_logger = self.logger
def _record(self, method, sql, params):
alias = self.db.alias
vendor = self.db.vendor
if vendor == "postgresql":
# The underlying DB connection (as opposed to Django's wrapper)
conn = self.db.connection
initial_conn_status = conn.info.transaction_status
start_time = perf_counter()
try:
return method(sql, params)
finally:
stop_time = perf_counter()
duration = (stop_time - start_time) * 1000
_params = ""
with contextlib.suppress(TypeError):
# object JSON serializable?
_params = json.dumps(self._decode(params))
template_info = get_template_info()
# Sql might be an object (such as psycopg Composed).
# For logging purposes, make sure it's str.
if vendor == "postgresql" and not isinstance(sql, str):
if isinstance(sql, bytes):
sql = sql.decode("utf-8")
else:
sql = sql.as_string(conn)
else:
sql = str(sql)
kwargs = {
"vendor": vendor,
"alias": alias,
"sql": self._last_executed_query(sql, params),
"duration": duration,
"raw_sql": sql,
"params": _params,
"stacktrace": get_stack_trace(skip=2),
"template_info": template_info,
}
if vendor == "postgresql":
# If an erroneous query was ran on the connection, it might
# be in a state where checking isolation_level raises an
# exception.
try:
iso_level = conn.isolation_level
except conn.InternalError:
iso_level = "unknown"
# PostgreSQL does not expose any sort of transaction ID, so it is
# necessary to generate synthetic transaction IDs here. If the
# connection was not in a transaction when the query started, and was
# after the query finished, a new transaction definitely started, so get
# a new transaction ID from logger.new_transaction_id(). If the query
# was in a transaction both before and after executing, make the
# assumption that it is the same transaction and get the current
# transaction ID from logger.current_transaction_id(). There is an edge
# case where Django can start a transaction before the first query
# executes, so in that case logger.current_transaction_id() will
# generate a new transaction ID since one does not already exist.
final_conn_status = conn.info.transaction_status
if final_conn_status == STATUS_IN_TRANSACTION:
if initial_conn_status == STATUS_IN_TRANSACTION:
trans_id = self.logger.current_transaction_id(alias)
else:
trans_id = self.logger.new_transaction_id(alias)
else:
trans_id = None
kwargs.update(
{
"trans_id": trans_id,
"trans_status": conn.info.transaction_status,
"iso_level": iso_level,
}
)
# Skip tracking for toolbar models by default.
# This can be overridden by setting SKIP_TOOLBAR_QUERIES = False
if not dt_settings.get_config()["SKIP_TOOLBAR_QUERIES"] or not any(
table in sql for table in DDT_MODELS
):
# We keep `sql` to maintain backwards compatibility
self.logger.record(**kwargs)
def callproc(self, procname, params=None):
return self._record(super().callproc, procname, params)
def execute(self, sql, params=None):
return self._record(super().execute, sql, params)
def executemany(self, sql, param_list):
return self._record(super().executemany, sql, param_list)
================================================
FILE: debug_toolbar/panels/sql/utils.py
================================================
from functools import cache, lru_cache
from html import escape
from itertools import cycle
import sqlparse
from django.dispatch import receiver
from django.test.signals import setting_changed
from sqlparse import tokens as T
from debug_toolbar import settings as dt_settings
class ElideSelectListsFilter:
"""sqlparse filter to elide the select list from top-level SELECT ... FROM clauses,
if present"""
def process(self, stream):
allow_elision = True
for token_type, value in stream:
yield token_type, value
if token_type in T.Keyword:
keyword = value.upper()
if allow_elision and keyword == "SELECT":
yield from self.elide_until_from(stream)
allow_elision = keyword in ["EXCEPT", "INTERSECT", "UNION"]
@staticmethod
def elide_until_from(stream):
has_dot = False
saved_tokens = []
for token_type, value in stream:
if token_type in T.Keyword and value.upper() == "FROM":
# Do not elide a select lists that do not contain dots (used to separate
# table names from column names) in order to preserve
# SELECT COUNT(*) AS `__count` FROM ...
# and
# SELECT (1) AS `a` FROM ...
# queries.
if not has_dot:
yield from saved_tokens
else:
# U+2022: Unicode character 'BULLET'
yield T.Other, " \u2022\u2022\u2022 "
yield token_type, value
break
if not has_dot:
if token_type in T.Punctuation and value == ".":
has_dot = True
else:
saved_tokens.append((token_type, value))
class BoldKeywordFilter:
"""sqlparse filter to bold SQL keywords"""
def process(self, stmt):
idx = 0
while idx < len(stmt.tokens):
token = stmt[idx]
if token.is_keyword:
stmt.insert_before(idx, sqlparse.sql.Token(T.Other, ""))
stmt.insert_after(
idx + 1,
sqlparse.sql.Token(T.Other, ""),
skip_ws=False,
)
idx += 2
elif token.is_group:
self.process(token)
idx += 1
def escaped_value(token):
# Don't escape T.Whitespace tokens because AlignedIndentFilter inserts its tokens as
# T.Whitesapce, and in our case those tokens are actually HTML.
if token.ttype in (T.Other, T.Whitespace):
return token.value
return escape(token.value, quote=False)
class EscapedStringSerializer:
"""sqlparse post-processor to convert a Statement into a string escaped for
inclusion in HTML ."""
@staticmethod
def process(stmt):
return "".join(escaped_value(token) for token in stmt.flatten())
def is_select_query(sql):
# UNION queries can start with "(".
return sql.lower().lstrip(" (").startswith("select")
def reformat_sql(sql, *, with_toggle=False):
formatted = parse_sql(sql)
if not with_toggle:
return formatted
simplified = parse_sql(sql, simplify=True)
uncollapsed = f'{simplified}'
collapsed = f'{formatted}'
return collapsed + uncollapsed
@lru_cache(maxsize=128)
def parse_sql(sql, *, simplify=False):
stack = get_filter_stack(simplify=simplify)
return "".join(stack.run(sql))
@cache
def get_filter_stack(*, simplify):
stack = sqlparse.engine.FilterStack()
if simplify:
stack.preprocess.append(ElideSelectListsFilter())
else:
if dt_settings.get_config()["PRETTIFY_SQL"]:
stack.enable_grouping()
stack.stmtprocess.append(
sqlparse.filters.AlignedIndentFilter(char=" ", n=" ")
)
stack.stmtprocess.append(BoldKeywordFilter())
stack.postprocess.append(EscapedStringSerializer()) # Statement -> str
return stack
@receiver(setting_changed)
def clear_caches(*, setting, **kwargs):
if setting == "DEBUG_TOOLBAR_CONFIG":
parse_sql.cache_clear()
get_filter_stack.cache_clear()
def contrasting_color_generator():
return cycle(
[
"#0C375A",
"#21A0A0",
"#FFC300",
"#FF5733",
"#C70039",
"#900C3F",
"#581845",
"#F1C40F",
]
)
================================================
FILE: debug_toolbar/panels/sql/views.py
================================================
from django.http import HttpResponseBadRequest, JsonResponse
from django.template.loader import render_to_string
from django.views.decorators.csrf import csrf_exempt
from debug_toolbar._compat import login_not_required
from debug_toolbar.decorators import render_with_toolbar_language, require_show_toolbar
from debug_toolbar.forms import SignedDataForm
from debug_toolbar.panels.sql.forms import SQLSelectForm
from debug_toolbar.panels.sql.utils import reformat_sql
def get_signed_data(request):
"""Unpack a signed data form, if invalid returns None"""
data = request.GET if request.method == "GET" else request.POST
signed_form = SignedDataForm(data)
if signed_form.is_valid():
return signed_form.verified_data()
return None
@csrf_exempt
@login_not_required
@require_show_toolbar
@render_with_toolbar_language
def sql_select(request):
"""Returns the output of the SQL SELECT statement"""
verified_data = get_signed_data(request)
if not verified_data:
return HttpResponseBadRequest("Invalid signature")
form = SQLSelectForm(verified_data)
if form.is_valid():
query = form.cleaned_data["query"]
result, headers = form.select()
context = {
"result": result,
"sql": reformat_sql(query["sql"], with_toggle=False),
"duration": query["duration"],
"headers": headers,
"alias": query["alias"],
}
content = render_to_string("debug_toolbar/panels/sql_select.html", context)
return JsonResponse({"content": content})
return HttpResponseBadRequest("Form errors")
@csrf_exempt
@login_not_required
@require_show_toolbar
@render_with_toolbar_language
def sql_explain(request):
"""Returns the output of the SQL EXPLAIN on the given query"""
verified_data = get_signed_data(request)
if not verified_data:
return HttpResponseBadRequest("Invalid signature")
form = SQLSelectForm(verified_data)
if form.is_valid():
query = form.cleaned_data["query"]
result, headers = form.explain()
context = {
"result": result,
"sql": reformat_sql(query["sql"], with_toggle=False),
"duration": query["duration"],
"headers": headers,
"alias": query["alias"],
}
content = render_to_string("debug_toolbar/panels/sql_explain.html", context)
return JsonResponse({"content": content})
return HttpResponseBadRequest("Form errors")
@csrf_exempt
@login_not_required
@require_show_toolbar
@render_with_toolbar_language
def sql_profile(request):
"""Returns the output of running the SQL and getting the profiling statistics"""
verified_data = get_signed_data(request)
if not verified_data:
return HttpResponseBadRequest("Invalid signature")
form = SQLSelectForm(verified_data)
if form.is_valid():
query = form.cleaned_data["query"]
result = None
headers = None
result_error = None
try:
result, headers = form.profile()
except Exception:
result_error = (
"Profiling is either not available or not supported by your database."
)
context = {
"result": result,
"result_error": result_error,
"sql": form.reformat_sql(),
"duration": query["duration"],
"headers": headers,
"alias": query["alias"],
}
content = render_to_string("debug_toolbar/panels/sql_profile.html", context)
return JsonResponse({"content": content})
return HttpResponseBadRequest("Form errors")
================================================
FILE: debug_toolbar/panels/staticfiles.py
================================================
import contextlib
import uuid
from contextvars import ContextVar
from os.path import join, normpath
from django.contrib.staticfiles import finders, storage
from django.dispatch import Signal
from django.utils.translation import gettext_lazy as _, ngettext
from debug_toolbar import panels
# This will record and map the StaticFile instances with its associated
# request across threads and async concurrent requests state.
request_id_context_var = ContextVar("djdt_request_id_store")
record_static_file_signal = Signal()
class URLMixin:
def url(self, path, *args, **kwargs):
url = super().url(path, *args, **kwargs)
with contextlib.suppress(LookupError):
# For LookupError:
# The ContextVar wasn't set yet. Since the toolbar wasn't properly
# configured to handle this request, we don't need to capture
# the static file.
request_id = request_id_context_var.get()
record_static_file_signal.send(
sender=self,
staticfile=(str(path), url, finders.find(str(path))),
request_id=request_id,
)
return url
class StaticFilesPanel(panels.Panel):
"""
A panel to display the found staticfiles.
"""
is_async = True
name = "Static files"
template = "debug_toolbar/panels/staticfiles.html"
@property
def title(self):
stats = self.get_stats()
return _("Static files (%(num_found)s found, %(num_used)s used)") % {
"num_found": stats.get("num_found"),
"num_used": stats.get("num_used"),
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.num_found = 0
self.used_paths = set()
self.request_id = str(uuid.uuid4())
@classmethod
def ready(cls):
cls = storage.staticfiles_storage.__class__
if URLMixin not in cls.mro():
cls.__bases__ = (URLMixin, *cls.__bases__)
def _store_static_files_signal_handler(self, sender, staticfile, **kwargs):
# Only record the static file if the request_id matches the one
# that was used to create the panel.
# as sender of the signal and this handler will have multiple
# concurrent connections and we want to avoid storing of same
# staticfile from other connections as well.
if request_id_context_var.get() == self.request_id:
self.used_paths.add(staticfile)
def enable_instrumentation(self):
self.ctx_token = request_id_context_var.set(self.request_id)
record_static_file_signal.connect(self._store_static_files_signal_handler)
def disable_instrumentation(self):
record_static_file_signal.disconnect(self._store_static_files_signal_handler)
request_id_context_var.reset(self.ctx_token)
nav_title = _("Static files")
@property
def nav_subtitle(self):
num_used = self.get_stats().get("num_used")
return ngettext(
"%(num_used)s file used", "%(num_used)s files used", num_used
) % {"num_used": num_used}
def generate_stats(self, request, response):
self.record_stats(
{
"num_found": self.num_found,
"num_used": len(self.used_paths),
"staticfiles": sorted(self.used_paths),
"staticfiles_apps": self.get_staticfiles_apps(),
"staticfiles_dirs": self.get_staticfiles_dirs(),
"staticfiles_finders": self.get_staticfiles_finders(),
}
)
def get_staticfiles_finders(self):
"""
Returns a sorted mapping between the finder path and the list
of relative and file system paths which that finder was able
to find.
"""
finders_mapping = {}
for finder in finders.get_finders():
try:
for path, finder_storage in finder.list([]):
if getattr(finder_storage, "prefix", None):
prefixed_path = join(finder_storage.prefix, path)
else:
prefixed_path = path
finder_cls = finder.__class__
finder_path = ".".join([finder_cls.__module__, finder_cls.__name__])
real_path = finder_storage.path(path)
payload = (prefixed_path, real_path)
finders_mapping.setdefault(finder_path, []).append(payload)
self.num_found += 1
except OSError:
# This error should be captured and presented as a part of run_checks.
pass
return finders_mapping
def get_staticfiles_dirs(self):
"""
Returns a list of paths to inspect for additional static files
"""
dirs = []
for finder in finders.get_finders():
if isinstance(finder, finders.FileSystemFinder):
dirs.extend(finder.locations)
return [(prefix, normpath(dir)) for prefix, dir in dirs]
def get_staticfiles_apps(self):
"""
Returns a list of app paths that have a static directory
"""
apps = []
for finder in finders.get_finders():
if isinstance(finder, finders.AppDirectoriesFinder):
for app in finder.apps:
if app not in apps:
apps.append(app)
return apps
================================================
FILE: debug_toolbar/panels/templates/__init__.py
================================================
from debug_toolbar.panels.templates.panel import TemplatesPanel
__all__ = [TemplatesPanel.panel_id]
================================================
FILE: debug_toolbar/panels/templates/jinja2.py
================================================
import functools
from django.template.backends.jinja2 import Template as JinjaTemplate
from django.template.context import make_context
from django.test.signals import template_rendered
def patch_jinja_render():
orig_render = JinjaTemplate.render
@functools.wraps(orig_render)
def wrapped_render(self, context=None, request=None):
# This patching of render only instruments the rendering
# of the immediate template. It won't include the parent template(s).
self.name = self.template.name
template_rendered.send(
sender=self, template=self, context=make_context(context, request)
)
return orig_render(self, context, request)
if JinjaTemplate.render != wrapped_render:
JinjaTemplate.original_render = JinjaTemplate.render
JinjaTemplate.render = wrapped_render
================================================
FILE: debug_toolbar/panels/templates/panel.py
================================================
from contextlib import contextmanager
from importlib.util import find_spec
from os.path import normpath
from pprint import pformat, saferepr
from django import http
from django.core import signing
from django.db.models.query import QuerySet, RawQuerySet
from django.template import RequestContext, Template
from django.test.signals import template_rendered
from django.test.utils import instrumented_test_render
from django.urls import path
from django.utils.translation import gettext_lazy as _
from debug_toolbar.panels import Panel
from debug_toolbar.panels.sql.tracking import SQLQueryTriggered, allow_sql
from debug_toolbar.panels.templates import views
from debug_toolbar.sanitize import force_str
if find_spec("jinja2"):
from debug_toolbar.panels.templates.jinja2 import patch_jinja_render
patch_jinja_render()
# Monkey-patch to enable the template_rendered signal. The receiver returns
# immediately when the panel is disabled to keep the overhead small.
# Code taken and adapted from Simon Willison and Django Snippets:
# https://www.djangosnippets.org/snippets/766/
if Template._render != instrumented_test_render:
Template.original_render = Template._render
Template._render = instrumented_test_render
# Monkey-patch to store items added by template context processors. The
# overhead is sufficiently small to justify enabling it unconditionally.
@contextmanager
def _request_context_bind_template(self, template):
if self.template is not None:
raise RuntimeError("Context is already bound to a template")
self.template = template
# Set context processors according to the template engine's settings.
processors = template.engine.template_context_processors + self._processors
self.context_processors = {}
updates = {}
for processor in processors:
name = f"{processor.__module__}.{processor.__name__}"
context = processor(self.request)
self.context_processors[name] = context
updates.update(context)
self.dicts[self._processors_index] = updates
try:
yield
finally:
self.template = None
# Unset context processors.
self.dicts[self._processors_index] = {}
RequestContext.bind_template = _request_context_bind_template
class TemplatesPanel(Panel):
"""
A panel that lists all templates used during processing of a response.
"""
is_async = True
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.templates = []
# An associated list of dictionaries and their prettified
# representation.
self.pformat_layers = []
def _store_template_info(self, sender, **kwargs):
template, context = kwargs["template"], kwargs["context"]
# Skip templates that we are generating through the debug toolbar.
is_debug_toolbar_template = isinstance(template.name, str) and (
template.name.startswith("debug_toolbar/")
or template.name.startswith(
tuple(self.toolbar.config["SKIP_TEMPLATE_PREFIXES"])
)
)
if is_debug_toolbar_template:
return
kwargs["context"] = [
context_layer
for context_layer in context.dicts
if hasattr(context_layer, "items") and context_layer
]
kwargs["context_processors"] = getattr(context, "context_processors", None)
self.templates.append(kwargs)
# Implement the Panel API
nav_title = _("Templates")
@property
def title(self):
num_templates = len(self.get_stats()["templates"])
return _("Templates (%(num_templates)s rendered)") % {
"num_templates": num_templates
}
@property
def nav_subtitle(self):
templates = self.get_stats()["templates"]
if templates:
return templates[0]["template"]["name"]
return ""
template = "debug_toolbar/panels/templates.html"
@classmethod
def get_urls(cls):
return [path("template_source/", views.template_source, name="template_source")]
def enable_instrumentation(self):
template_rendered.connect(self._store_template_info)
def disable_instrumentation(self):
template_rendered.disconnect(self._store_template_info)
def process_context_list(self, context_layers):
context_list = []
for context_layer in context_layers:
# Check if the layer is in the cache.
pformatted = None
for key_values, _pformatted in self.pformat_layers:
if key_values == context_layer:
pformatted = _pformatted
break
if pformatted is None:
temp_layer = {}
for key, value in context_layer.items():
# Do not force evaluating LazyObject
if hasattr(value, "_wrapped"):
# SimpleLazyObject has __repr__ which includes actual value
# if it has been already evaluated
temp_layer[key] = repr(value)
# Replace any request elements - they have a large
# Unicode representation and the request data is
# already made available from the Request panel.
elif isinstance(value, http.HttpRequest):
temp_layer[key] = "<>"
# Replace the debugging sql_queries element. The SQL
# data is already made available from the SQL panel.
elif key == "sql_queries" and isinstance(value, list):
temp_layer[key] = "<>"
# Replace LANGUAGES, which is available in i18n context
# processor
elif key == "LANGUAGES" and isinstance(value, tuple):
temp_layer[key] = "<>"
# QuerySet would trigger the database: user can run the
# query from SQL Panel
elif isinstance(value, (QuerySet, RawQuerySet)):
temp_layer[key] = (
f"<<{value.__class__.__name__.lower()} of {value.model._meta.label}>>"
)
else:
token = allow_sql.set(False)
try:
saferepr(value) # this MAY trigger a db query
except SQLQueryTriggered:
temp_layer[key] = "<>"
except UnicodeEncodeError:
temp_layer[key] = "<>"
except Exception:
temp_layer[key] = "<>"
else:
temp_layer[key] = value
finally:
allow_sql.reset(token)
pformatted = pformat(temp_layer)
self.pformat_layers.append((context_layer, pformatted))
context_list.append(pformatted)
return context_list
def generate_stats(self, request, response):
template_context = []
for template_data in self.templates:
info = {}
# Clean up some info about templates
template = template_data["template"]
if hasattr(template, "origin") and template.origin and template.origin.name:
template.origin_name = template.origin.name
template.origin_hash = signing.dumps(template.origin.name)
else:
template.origin_name = _("No origin")
template.origin_hash = ""
info["template"] = {
"name": template.name,
"origin_name": template.origin_name,
"origin_hash": template.origin_hash,
}
# Clean up context for better readability
if self.toolbar.config["SHOW_TEMPLATE_CONTEXT"]:
if "context_list" not in template_data:
template_data["context_list"] = self.process_context_list(
template_data.get("context", [])
)
info["context"] = "\n".join(template_data["context_list"])
template_context.append(info)
# Fetch context_processors/template_dirs from any template
if self.templates:
context_processors = (
{
key: force_str(value)
for key, value in self.templates[0]["context_processors"].items()
}
if self.templates[0]["context_processors"]
else None
)
template = self.templates[0]["template"]
# django templates have the 'engine' attribute, while jinja
# templates use 'backend'
engine_backend = getattr(template, "engine", None) or template.backend
template_dirs = engine_backend.dirs
else:
context_processors = None
template_dirs = []
self.record_stats(
{
"templates": template_context,
"template_dirs": [normpath(x) for x in template_dirs],
"context_processors": context_processors,
}
)
================================================
FILE: debug_toolbar/panels/templates/views.py
================================================
from django.core import signing
from django.http import HttpResponseBadRequest, JsonResponse
from django.template import Origin, TemplateDoesNotExist
from django.template.engine import Engine
from django.template.loader import render_to_string
from django.utils.html import format_html, mark_safe
from debug_toolbar._compat import login_not_required
from debug_toolbar.decorators import render_with_toolbar_language, require_show_toolbar
@login_not_required
@require_show_toolbar
@render_with_toolbar_language
def template_source(request):
"""
Return the source of a template, syntax-highlighted by Pygments if
it's available.
"""
template_origin_name = request.GET.get("template_origin")
if template_origin_name is None:
return HttpResponseBadRequest('"template_origin" key is required')
try:
template_origin_name = signing.loads(template_origin_name)
except Exception:
return HttpResponseBadRequest('"template_origin" is invalid')
template_name = request.GET.get("template", template_origin_name)
final_loaders = []
loaders = list(Engine.get_default().template_loaders)
while loaders:
loader = loaders.pop(0)
if loader is not None:
# Recursively unwrap loaders until we get to loaders which do not
# themselves wrap other loaders. This adds support for
# django.template.loaders.cached.Loader and the
# django-template-partials loader (possibly among others)
if hasattr(loader, "loaders"):
loaders.extend(loader.loaders)
else:
final_loaders.append(loader)
for loader in final_loaders:
origin = Origin(template_origin_name)
try:
source = loader.get_contents(origin)
break
except TemplateDoesNotExist:
pass
else:
source = f"Template Does Not Exist: {template_origin_name}"
try:
from pygments import highlight
from pygments.formatters import HtmlFormatter
from pygments.lexers import HtmlDjangoLexer
except ModuleNotFoundError:
source = format_html("{}", source)
else:
source = highlight(source, HtmlDjangoLexer(), HtmlFormatter(wrapcode=True))
source = mark_safe(source)
content = render_to_string(
"debug_toolbar/panels/template_source.html",
{"source": source, "template_name": template_name},
)
return JsonResponse({"content": content})
================================================
FILE: debug_toolbar/panels/timer.py
================================================
from time import perf_counter
from django.template.loader import render_to_string
from django.templatetags.static import static
from django.utils.translation import gettext_lazy as _
from debug_toolbar.panels import Panel
try:
import resource # Not available on Win32 systems
except ImportError:
resource = None
class TimerPanel(Panel):
"""
Panel that displays the time a response took in milliseconds.
"""
is_async = True
def nav_subtitle(self):
stats = self.get_stats()
if stats.get("utime"):
utime = stats.get("utime")
stime = stats.get("stime")
return _("CPU: %(cum)0.2fms (%(total)0.2fms)") % {
"cum": (utime + stime),
"total": stats["total_time"],
}
elif "total_time" in stats:
return _("Total: %0.2fms") % stats["total_time"]
else:
return ""
has_content = resource is not None
title = _("Time")
template = "debug_toolbar/panels/timer.html"
@property
def content(self):
stats = self.get_stats()
rows = (
(_("User CPU time"), _("%(utime)0.3f ms") % stats),
(_("System CPU time"), _("%(stime)0.3f ms") % stats),
(_("Total CPU time"), _("%(total)0.3f ms") % stats),
(_("Elapsed time"), _("%(total_time)0.3f ms") % stats),
(
_("Context switches"),
_("%(vcsw)d voluntary, %(ivcsw)d involuntary") % stats,
),
)
return render_to_string(self.template, {"rows": rows})
@property
def scripts(self):
scripts = super().scripts
scripts.append(static("debug_toolbar/js/timer.js"))
return scripts
def process_request(self, request):
self._start_time = perf_counter()
if self.has_content:
self._start_rusage = resource.getrusage(resource.RUSAGE_SELF)
return super().process_request(request)
def serialize_rusage(self, data):
fields_to_serialize = [
"ru_utime",
"ru_stime",
"ru_nvcsw",
"ru_nivcsw",
"ru_minflt",
"ru_majflt",
]
return {field: getattr(data, field) for field in fields_to_serialize}
def generate_stats(self, request, response):
stats = {}
if hasattr(self, "_start_time"):
stats["total_time"] = (perf_counter() - self._start_time) * 1000
if self.has_content:
self._end_rusage = resource.getrusage(resource.RUSAGE_SELF)
start = self.serialize_rusage(self._start_rusage)
end = self.serialize_rusage(self._end_rusage)
stats.update(
{
"utime": 1000 * self._elapsed_ru(start, end, "ru_utime"),
"stime": 1000 * self._elapsed_ru(start, end, "ru_stime"),
"vcsw": self._elapsed_ru(start, end, "ru_nvcsw"),
"ivcsw": self._elapsed_ru(start, end, "ru_nivcsw"),
"minflt": self._elapsed_ru(start, end, "ru_minflt"),
"majflt": self._elapsed_ru(start, end, "ru_majflt"),
}
)
stats["total"] = stats["utime"] + stats["stime"]
# these are documented as not meaningful under Linux. If you're
# running BSD feel free to enable them, and add any others that I
# hadn't gotten to before I noticed that I was getting nothing but
# zeroes and that the docs agreed. :-(
#
# stats['blkin'] = self._elapsed_ru(start, end, 'ru_inblock')
# stats['blkout'] = self._elapsed_ru(start, end, 'ru_oublock')
# stats['swap'] = self._elapsed_ru(start, end, 'ru_nswap')
# stats['rss'] = self._end_rusage.ru_maxrss
# stats['srss'] = self._end_rusage.ru_ixrss
# stats['urss'] = self._end_rusage.ru_idrss
# stats['usrss'] = self._end_rusage.ru_isrss
self.record_stats(stats)
def generate_server_timing(self, request, response):
stats = self.get_stats()
self.record_server_timing("utime", "User CPU time", stats.get("utime", 0))
self.record_server_timing("stime", "System CPU time", stats.get("stime", 0))
self.record_server_timing("total", "Total CPU time", stats.get("total", 0))
self.record_server_timing(
"total_time", "Elapsed time", stats.get("total_time", 0)
)
@staticmethod
def _elapsed_ru(start, end, name):
return end.get(name) - start.get(name)
================================================
FILE: debug_toolbar/panels/versions.py
================================================
import sys
import django
from django.apps import apps
from django.utils.translation import gettext_lazy as _
from debug_toolbar.panels import Panel
class VersionsPanel(Panel):
"""
Shows versions of Python, Django, and installed apps if possible.
"""
is_async = True
@property
def nav_subtitle(self):
return "Django %s" % self.get_stats()["django_version"]
title = _("Versions")
template = "debug_toolbar/panels/versions.html"
def generate_stats(self, request, response):
versions = [
("Python", "", "%d.%d.%d" % sys.version_info[:3]),
("Django", "", self.get_app_version(django)),
]
versions += list(self.gen_app_versions())
self.record_stats(
{
"django_version": django.get_version(),
"versions": sorted(versions, key=lambda v: v[0]),
"paths": sys.path,
}
)
def gen_app_versions(self):
for app_config in apps.get_app_configs():
name = app_config.verbose_name
app = app_config.module
version = self.get_app_version(app)
if version:
yield app.__name__, name, version
def get_app_version(self, app):
version = self.get_version_from_app(app)
if isinstance(version, (list, tuple)):
# We strip dots from the right because we do not want to show
# trailing dots if there are empty elements in the list/tuple
version = ".".join(str(o) for o in version).rstrip(".")
return version
def get_version_from_app(self, app):
if hasattr(app, "get_version"):
get_version = app.get_version
if callable(get_version):
try:
return get_version()
except TypeError:
pass
else:
return get_version
if hasattr(app, "VERSION"):
return app.VERSION
if hasattr(app, "__version__"):
return app.__version__
return
================================================
FILE: debug_toolbar/py.typed
================================================
================================================
FILE: debug_toolbar/sanitize.py
================================================
from django.utils.encoding import DjangoUnicodeDecodeError, force_str as force_string
def force_str(s, *args, **kwargs):
"""
Forces values to strings.
Will return "Django Debug Toolbar was unable to parse value." when there's a decoding error.
"""
try:
return force_string(s, *args, **kwargs)
except DjangoUnicodeDecodeError:
return "Django Debug Toolbar was unable to parse value."
================================================
FILE: debug_toolbar/settings.py
================================================
import os
import sys
import warnings
from functools import cache
from django.conf import settings
from django.dispatch import receiver
from django.test.signals import setting_changed
def _is_running_tests():
"""
Helper function to support testing default value for
IS_RUNNING_TESTS
"""
return "test" in sys.argv or "PYTEST_VERSION" in os.environ
CONFIG_DEFAULTS = {
# Toolbar options
"DISABLE_PANELS": {
"debug_toolbar.panels.profiling.ProfilingPanel",
"debug_toolbar.panels.redirects.RedirectsPanel",
},
"INSERT_BEFORE": "
{% translate "WARNING:" %}
{% blocktranslate with issue_url="https://github.com/django-commons/django-debug-toolbar/issues/2216" %}
The RedirectsPanel is deprecated and will be removed in a future version. The HistoryPanel
now provides the ability to view toolbar data for redirected requests. If you still have a
use case for this panel, please comment on this issue.
{% endblocktranslate %}
{% translate "The Django Debug Toolbar has intercepted a redirect to the above URL for debug viewing purposes. You can click the above link to continue with the redirect as normal." %}
`;
row.querySelector("rect").setAttribute(
"width",
getCSSWidth(stat, endStat)
);
} else {
// Render a point in time
row.innerHTML = `
${stat}
${elapsed}ms
`;
row.querySelector("rect").setAttribute("width", 2);
}
row.querySelector("rect").setAttribute("x", getLeft(stat));
tbody.appendChild(row);
}
const browserTiming = document.getElementById("djDebugBrowserTiming");
// Determine if the browser timing section has already been rendered.
if (browserTiming.classList.contains("djdt-hidden")) {
const tbody = document.getElementById("djDebugBrowserTimingTableBody");
// This is a reasonably complete and ordered set of timing periods (2 params) and events (1 param)
addRow(tbody, "domainLookupStart", "domainLookupEnd");
addRow(tbody, "connectStart", "connectEnd");
addRow(tbody, "requestStart", "responseEnd"); // There is no requestEnd
addRow(tbody, "responseStart", "responseEnd");
addRow(tbody, "domLoading", "domComplete"); // Spans the events below
addRow(tbody, "domInteractive");
addRow(tbody, "domContentLoadedEventStart", "domContentLoadedEventEnd");
addRow(tbody, "loadEventStart", "loadEventEnd");
browserTiming.classList.remove("djdt-hidden");
}
}
const djDebug = document.getElementById("djDebug");
// Insert the browser timing now since it's possible for this
// script to miss the initial panel load event.
insertBrowserTiming();
$$.onPanelRender(djDebug, "TimerPanel", insertBrowserTiming);
================================================
FILE: debug_toolbar/static/debug_toolbar/js/toolbar.js
================================================
import { $$, ajax, debounce, replaceToolbarState } from "./utils.js";
function onKeyDown(event) {
if (event.keyCode === 27) {
djdt.hideOneLevel();
}
}
function getDebugElement() {
// Fetch the debug element from the DOM.
// This is used to avoid writing the element's id
// everywhere the element is being selected. A fixed reference
// to the element should be avoided because the entire DOM could
// be reloaded such as via HTMX boosting.
return document.getElementById("djDebug");
}
const djdt = {
handleDragged: false,
needUpdateOnFetch: false,
init() {
const djDebug = getDebugElement();
djdt.needUpdateOnFetch = djDebug.dataset.updateOnFetch === "True";
$$.on(djDebug, "click", "#djDebugPanelList li a", function (event) {
event.preventDefault();
if (!this.className) {
return;
}
const panelId = this.className;
const current = document.getElementById(panelId);
if ($$.visible(current)) {
djdt.hidePanels();
} else {
djdt.hidePanels();
$$.show(current);
this.parentElement.classList.add("djdt-active");
const inner = current.querySelector(
".djDebugPanelContent .djdt-scroll"
);
const requestId = djDebug.dataset.requestId;
if (requestId && inner.children.length === 0) {
const url = new URL(
djDebug.dataset.renderPanelUrl,
window.location
);
url.searchParams.append("request_id", requestId);
url.searchParams.append("panel_id", panelId);
ajax(url).then((data) => {
inner.previousElementSibling.remove(); // Remove AJAX loader
inner.innerHTML = data.content;
$$.executeScripts(data.scripts);
$$.applyStyles(inner);
djDebug.dispatchEvent(
new CustomEvent("djdt.panel.render", {
detail: { panelId: panelId },
})
);
});
} else {
djDebug.dispatchEvent(
new CustomEvent("djdt.panel.render", {
detail: { panelId: panelId },
})
);
}
}
});
$$.on(djDebug, "click", ".djDebugClose", () => {
djdt.hideOneLevel();
});
$$.on(
djDebug,
"click",
".djDebugPanelButton input[type=checkbox]",
function () {
djdt.cookie.set(
this.dataset.cookie,
this.checked ? "on" : "off",
{
path: "/",
expires: 10,
}
);
}
);
// Used by the SQL and template panels
$$.on(djDebug, "click", ".remoteCall", function (event) {
event.preventDefault();
let url;
const ajaxData = {};
if (this.tagName === "BUTTON") {
const form = this.closest("form");
url = this.formAction;
ajaxData.method = form.method.toUpperCase();
ajaxData.body = new FormData(form);
} else if (this.tagName === "A") {
url = this.href;
}
ajax(url, ajaxData).then((data) => {
const win = document.getElementById("djDebugWindow");
win.innerHTML = data.content;
$$.show(win);
});
});
// Used by the cache, profiling and SQL panels
$$.on(djDebug, "click", ".djToggleSwitch", function () {
const id = this.dataset.toggleId;
const toggleOpen = "+";
const toggleClose = "-";
const openMe = this.textContent === toggleOpen;
const name = this.dataset.toggleName;
const container = document.getElementById(`${name}_${id}`);
for (const el of container.querySelectorAll(".djDebugCollapsed")) {
$$.toggle(el, openMe);
}
for (const el of container.querySelectorAll(
".djDebugUncollapsed"
)) {
$$.toggle(el, !openMe);
}
for (const el of this.closest(
".djDebugPanelContent"
).querySelectorAll(`.djToggleDetails_${id}`)) {
if (openMe) {
el.classList.add("djSelected");
el.classList.remove("djUnselected");
this.textContent = toggleClose;
} else {
el.classList.remove("djSelected");
el.classList.add("djUnselected");
this.textContent = toggleOpen;
}
const switch_ = el.querySelector(".djToggleSwitch");
if (switch_) {
switch_.textContent = this.textContent;
}
}
});
$$.on(djDebug, "click", "#djHideToolBarButton", (event) => {
event.preventDefault();
djdt.hideToolbar();
});
$$.on(djDebug, "click", "#djShowToolBarButton", () => {
if (!djdt.handleDragged) {
djdt.showToolbar();
}
});
let startPageY;
let baseY;
const handle = document.getElementById("djDebugToolbarHandle");
function onHandleMove(event) {
// Chrome can send spurious mousemove events, so don't do anything unless the
// cursor really moved. Otherwise, it will be impossible to expand the toolbar
// due to djdt.handleDragged being set to true.
if (djdt.handleDragged || event.pageY !== startPageY) {
let top = baseY + event.pageY;
if (top < 0) {
top = 0;
} else if (top + handle.offsetHeight > window.innerHeight) {
top = window.innerHeight - handle.offsetHeight;
}
handle.style.top = `${top}px`;
djdt.handleDragged = true;
}
}
$$.on(djDebug, "mousedown", "#djShowToolBarButton", (event) => {
event.preventDefault();
startPageY = event.pageY;
baseY = handle.offsetTop - startPageY;
document.addEventListener("mousemove", onHandleMove);
document.addEventListener(
"mouseup",
(event) => {
document.removeEventListener("mousemove", onHandleMove);
if (djdt.handleDragged) {
event.preventDefault();
localStorage.setItem("djdt.top", handle.offsetTop);
requestAnimationFrame(() => {
djdt.handleDragged = false;
});
djdt.ensureHandleVisibility();
}
},
{ once: true }
);
});
// Make sure the debug element is rendered at least once.
// showToolbar will continue to show it in the future if the
// entire DOM is reloaded.
$$.show(djDebug);
const show =
localStorage.getItem("djdt.show") || djDebug.dataset.defaultShow;
if (show === "true") {
djdt.showToolbar();
} else {
djdt.hideToolbar();
}
if (djDebug.dataset.sidebarUrl !== undefined) {
djdt.updateOnAjax();
}
const prefersDark = window.matchMedia(
"(prefers-color-scheme: dark)"
).matches;
const themeList = prefersDark
? ["auto", "light", "dark"]
: ["auto", "dark", "light"];
const setTheme = (theme) => {
djDebug.setAttribute(
"data-theme",
theme === "auto" ? (prefersDark ? "dark" : "light") : theme
);
djDebug.setAttribute("data-user-theme", theme);
};
// Updates the theme using user settings
let userTheme = localStorage.getItem("djdt.user-theme") || "auto";
setTheme(userTheme);
// Adds the listener to the Theme Toggle Button
$$.on(djDebug, "click", "#djToggleThemeButton", () => {
const index = themeList.indexOf(userTheme);
userTheme = themeList[(index + 1) % themeList.length];
localStorage.setItem("djdt.user-theme", userTheme);
setTheme(userTheme);
});
},
hidePanels() {
const djDebug = getDebugElement();
$$.hide(document.getElementById("djDebugWindow"));
for (const el of djDebug.querySelectorAll(".djdt-panelContent")) {
$$.hide(el);
}
for (const el of document.querySelectorAll("#djDebugToolbar li")) {
el.classList.remove("djdt-active");
}
},
ensureHandleVisibility() {
const handle = document.getElementById("djDebugToolbarHandle");
// set handle position
const handleTop = Math.min(
localStorage.getItem("djdt.top") || 265,
window.innerHeight - handle.offsetWidth
);
handle.style.top = `${handleTop}px`;
},
hideToolbar() {
djdt.hidePanels();
$$.hide(document.getElementById("djDebugToolbar"));
const handle = document.getElementById("djDebugToolbarHandle");
$$.show(handle);
djdt.ensureHandleVisibility();
window.addEventListener("resize", djdt.ensureHandleVisibility);
document.removeEventListener("keydown", onKeyDown);
localStorage.setItem("djdt.show", "false");
},
hideOneLevel() {
const win = document.getElementById("djDebugWindow");
if ($$.visible(win)) {
$$.hide(win);
} else {
const toolbar = document.getElementById("djDebugToolbar");
if (toolbar.querySelector("li.djdt-active")) {
djdt.hidePanels();
} else {
djdt.hideToolbar();
}
}
},
showToolbar() {
document.addEventListener("keydown", onKeyDown);
$$.show(document.getElementById("djDebug"));
$$.hide(document.getElementById("djDebugToolbarHandle"));
$$.show(document.getElementById("djDebugToolbar"));
localStorage.setItem("djdt.show", "true");
window.removeEventListener("resize", djdt.ensureHandleVisibility);
},
updateOnAjax() {
const sidebarUrl =
document.getElementById("djDebug").dataset.sidebarUrl;
const slowjax = debounce(ajax, 200);
function handleAjaxResponse(requestId) {
const encodedRequestId = encodeURIComponent(requestId);
const dest = `${sidebarUrl}?request_id=${encodedRequestId}`;
slowjax(dest).then((data) => {
if (djdt.needUpdateOnFetch) {
replaceToolbarState(encodedRequestId, data);
}
});
}
// Patch XHR / traditional AJAX requests
const origOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function (...args) {
this.addEventListener("load", function () {
// Chromium emits a "Refused to get unsafe header" uncatchable warning
// when the header can't be fetched. While it doesn't impede execution
// it's worrisome to developers.
if (
this.getAllResponseHeaders().indexOf("djdt-request-id") >= 0
) {
handleAjaxResponse(
this.getResponseHeader("djdt-request-id")
);
}
});
origOpen.apply(this, args);
};
const origFetch = window.fetch;
window.fetch = function (...args) {
// Heads up! Before modifying this code, please be aware of the
// possible unhandled errors that might arise from changing this.
// For details, see
// https://github.com/django-commons/django-debug-toolbar/pull/2100
const promise = origFetch.apply(this, args);
return promise.then((response) => {
if (response.headers.get("djdt-request-id") !== null) {
try {
handleAjaxResponse(
response.headers.get("djdt-request-id")
);
} catch (err) {
throw new Error(
`"${err.name}" occurred within django-debug-toolbar: ${err.message}`
);
}
}
return response;
});
};
},
cookie: {
get(key) {
if (!document.cookie.includes(key)) {
return null;
}
const cookieArray = document.cookie.split("; ");
const cookies = {};
for (const e of cookieArray) {
const parts = e.split("=");
cookies[parts[0]] = parts[1];
}
return cookies[key];
},
set(key, value, options = {}) {
if (typeof options.expires === "number") {
const days = options.expires;
const expires = new Date();
expires.setDate(expires.setDate() + days);
options.expires = expires;
}
document.cookie = [
`${encodeURIComponent(key)}=${String(value)}`,
options.expires
? `; expires=${options.expires.toUTCString()}`
: "",
options.path ? `; path=${options.path}` : "",
options.domain ? `; domain=${options.domain}` : "",
options.secure ? "; secure" : "",
"samesite" in options
? `; samesite=${options.samesite}`
: "; samesite=lax",
].join("");
return value;
},
},
};
window.djdt = {
show_toolbar: djdt.showToolbar,
hide_toolbar: djdt.hideToolbar,
init: djdt.init,
close: djdt.hideOneLevel,
cookie: djdt.cookie,
};
if (document.readyState !== "loading") {
djdt.init();
} else {
document.addEventListener("DOMContentLoaded", djdt.init);
}
================================================
FILE: debug_toolbar/static/debug_toolbar/js/utils.js
================================================
const $$ = {
on(root, eventName, selector, fn) {
root.removeEventListener(eventName, fn);
root.addEventListener(eventName, (event) => {
const target = event.target.closest(selector);
if (root.contains(target)) {
fn.call(target, event);
}
});
},
onPanelRender(root, panelId, fn) {
/*
This is a helper function to attach a handler for a `djdt.panel.render`
event of a specific panel.
root: The container element that the listener should be attached to.
panelId: The Id of the panel.
fn: A function to execute when the event is triggered.
*/
root.addEventListener("djdt.panel.render", (event) => {
if (event.detail.panelId === panelId) {
fn.call(event);
}
});
},
show(element) {
element.classList.remove("djdt-hidden");
},
hide(element) {
element.classList.add("djdt-hidden");
},
toggle(element, value) {
if (value) {
$$.show(element);
} else {
$$.hide(element);
}
},
visible(element) {
return !element.classList.contains("djdt-hidden");
},
executeScripts(scripts) {
for (const script of scripts) {
const el = document.createElement("script");
el.type = "module";
el.src = script;
el.async = true;
document.head.appendChild(el);
}
},
applyStyles(container) {
/*
* Given a container element, apply styles set via data-djdt-styles attribute.
* The format is data-djdt-styles="styleName1:value;styleName2:value2"
* The style names should use the CSSStyleDeclaration camel cased names.
*/
for (const element of container.querySelectorAll(
"[data-djdt-styles]"
)) {
const styles = element.dataset.djdtStyles || "";
for (const styleText of styles.split(";")) {
const styleKeyPair = styleText.split(":");
if (styleKeyPair.length === 2) {
const name = styleKeyPair[0].trim();
const value = styleKeyPair[1].trim();
element.style[name] = value;
}
}
}
},
};
function ajax(url, init) {
return fetch(url, Object.assign({ credentials: "same-origin" }, init))
.then((response) => {
if (response.ok) {
return response
.json()
.catch((error) =>
Promise.reject(
new Error(
`The response is a invalid Json object : ${error}`
)
)
);
}
return Promise.reject(
new Error(`${response.status}: ${response.statusText}`)
);
})
.catch((error) => {
const win = document.getElementById("djDebugWindow");
win.innerHTML = `
${error.message}
`;
$$.show(win);
throw error;
});
}
function ajaxForm(element) {
const form = element.closest("form");
const url = new URL(form.action);
const formData = new FormData(form);
for (const [name, value] of formData.entries()) {
url.searchParams.append(name, value);
}
const ajaxData = {
method: form.method.toUpperCase(),
};
return ajax(url, ajaxData);
}
function replaceToolbarState(newRequestId, data) {
const djDebug = document.getElementById("djDebug");
djDebug.setAttribute("data-request-id", newRequestId);
// Check if response is empty, it could be due to an expired requestId.
for (const panelId of Object.keys(data)) {
const panel = document.getElementById(panelId);
if (panel) {
panel.outerHTML = data[panelId].content;
document.getElementById(`djdt-${panelId}`).outerHTML =
data[panelId].button;
}
}
}
function debounce(func, delay) {
let timer = null;
let resolves = [];
return (...args) => {
clearTimeout(timer);
timer = setTimeout(() => {
const result = func(...args);
for (const r of resolves) {
r(result);
}
resolves = [];
}, delay);
return new Promise((r) => resolves.push(r));
};
}
export { $$, ajax, ajaxForm, debounce, replaceToolbarState };
================================================
FILE: debug_toolbar/store.py
================================================
import contextlib
import json
from collections import defaultdict, deque
from collections.abc import Iterable
from typing import Any
from django.core.serializers.json import DjangoJSONEncoder
from django.db import transaction
from django.utils.module_loading import import_string
from debug_toolbar import settings as dt_settings
from debug_toolbar.models import HistoryEntry
from debug_toolbar.sanitize import force_str
class DebugToolbarJSONEncoder(DjangoJSONEncoder):
def default(self, o):
try:
return super().default(o)
except (TypeError, ValueError):
return force_str(o)
def serialize(data: Any) -> str:
# If this starts throwing an exceptions, consider
# Subclassing DjangoJSONEncoder and using force_str to
# make it JSON serializable.
return json.dumps(data, cls=DebugToolbarJSONEncoder)
def deserialize(data: str) -> Any:
return json.loads(data)
class BaseStore:
@classmethod
def request_ids(cls) -> Iterable:
"""The stored request ids"""
raise NotImplementedError
@classmethod
def exists(cls, request_id: str) -> bool:
"""Does the given request_id exist in the store"""
raise NotImplementedError
@classmethod
def set(cls, request_id: str):
"""Set a request_id in the store"""
raise NotImplementedError
@classmethod
def clear(cls):
"""Remove all requests from the request store"""
raise NotImplementedError
@classmethod
def delete(cls, request_id: str):
"""Delete the store for the given request_id"""
raise NotImplementedError
@classmethod
def save_panel(cls, request_id: str, panel_id: str, data: Any = None):
"""Save the panel data for the given request_id"""
raise NotImplementedError
@classmethod
def panel(cls, request_id: str, panel_id: str) -> Any:
"""Fetch the panel data for the given request_id"""
raise NotImplementedError
class MemoryStore(BaseStore):
# ids is the collection of storage ids that have been used.
# Use a dequeue to support O(1) appends and pops
# from either direction.
_request_ids: deque = deque()
_request_store: dict[str, dict] = defaultdict(dict)
@classmethod
def request_ids(cls) -> Iterable:
"""The stored request ids"""
return cls._request_ids
@classmethod
def exists(cls, request_id: str) -> bool:
"""Does the given request_id exist in the request store"""
return request_id in cls._request_ids
@classmethod
def set(cls, request_id: str):
"""Set a request_id in the request store"""
if request_id not in cls._request_ids:
cls._request_ids.append(request_id)
for _ in range(
len(cls._request_ids) - dt_settings.get_config()["RESULTS_CACHE_SIZE"]
):
removed_id = cls._request_ids.popleft()
cls._request_store.pop(removed_id, None)
@classmethod
def clear(cls):
"""Remove all requests from the request store"""
cls._request_ids.clear()
cls._request_store.clear()
@classmethod
def delete(cls, request_id: str):
"""Delete the stored request for the given request_id"""
cls._request_store.pop(request_id, None)
# Suppress when request_id doesn't exist in the collection of ids.
with contextlib.suppress(ValueError):
cls._request_ids.remove(request_id)
@classmethod
def save_panel(cls, request_id: str, panel_id: str, data: Any = None):
"""Save the panel data for the given request_id"""
cls.set(request_id)
cls._request_store[request_id][panel_id] = serialize(data)
@classmethod
def panel(cls, request_id: str, panel_id: str) -> Any:
"""Fetch the panel data for the given request_id"""
try:
data = cls._request_store[request_id][panel_id]
except KeyError:
return {}
else:
return deserialize(data)
@classmethod
def panels(cls, request_id: str) -> Any:
"""Fetch all the panel data for the given request_id"""
try:
panel_mapping = cls._request_store[request_id]
except KeyError:
return {}
for panel, data in panel_mapping.items():
yield panel, deserialize(data)
class DatabaseStore(BaseStore):
@classmethod
def _cleanup_old_entries(cls):
"""
Enforce the cache size limit - keeping only the most recently used entries
up to RESULTS_CACHE_SIZE.
"""
# Determine which entries to keep
keep_ids = cls.request_ids()
# Delete all entries not in the keep list
if keep_ids:
HistoryEntry.objects.exclude(request_id__in=keep_ids).delete()
@classmethod
def request_ids(cls):
"""Return all stored request ids within the cache size limit"""
cache_size = dt_settings.get_config()["RESULTS_CACHE_SIZE"]
return list(
HistoryEntry.objects.all()[:cache_size].values_list("request_id", flat=True)
)
@classmethod
def exists(cls, request_id: str) -> bool:
"""Check if the given request_id exists in the store"""
return HistoryEntry.objects.filter(request_id=request_id).exists()
@classmethod
def set(cls, request_id: str):
"""Set a request_id in the store and clean up old entries"""
with transaction.atomic():
# Create the entry if it doesn't exist (ignore otherwise)
_, created = HistoryEntry.objects.get_or_create(request_id=request_id)
# Only enforce cache size limit when new entries are created
if created:
cls._cleanup_old_entries()
@classmethod
def clear(cls):
"""Remove all requests from the store"""
HistoryEntry.objects.all().delete()
@classmethod
def delete(cls, request_id: str):
"""Delete the stored request for the given request_id"""
HistoryEntry.objects.filter(request_id=request_id).delete()
@classmethod
def save_panel(cls, request_id: str, panel_id: str, data: Any = None):
"""Save the panel data for the given request_id"""
with transaction.atomic():
obj, _ = HistoryEntry.objects.get_or_create(request_id=request_id)
store_data = obj.data
store_data[panel_id] = serialize(data)
obj.data = store_data
obj.save()
@classmethod
def panel(cls, request_id: str, panel_id: str) -> Any:
"""Fetch the panel data for the given request_id"""
try:
data = HistoryEntry.objects.get(request_id=request_id).data
panel_data = data.get(panel_id)
if panel_data is None:
return {}
return deserialize(panel_data)
except HistoryEntry.DoesNotExist:
return {}
@classmethod
def panels(cls, request_id: str) -> Any:
"""Fetch all panel data for the given request_id"""
try:
data = HistoryEntry.objects.get(request_id=request_id).data
for panel_id, panel_data in data.items():
yield panel_id, deserialize(panel_data)
except HistoryEntry.DoesNotExist:
return {}
def get_store() -> BaseStore:
return import_string(dt_settings.get_config()["TOOLBAR_STORE_CLASS"])
================================================
FILE: debug_toolbar/templates/debug_toolbar/base.html
================================================
{% load i18n static %}
{% block css %}
{% endblock css %}
{% block js %}
{% endblock js %}