1 Commits

Author SHA1 Message Date
searxng-bot
b1fc49e357 [l10n] update translations from Weblate
493c1d2a7 - 2026-07-07 - lukisko <lukisko@noreply.codeberg.org>
a67b467e5 - 2026-07-06 - marc-lopez <marc-lopez@noreply.codeberg.org>
2026-07-10 08:12:43 +00:00
162 changed files with 1440 additions and 1782 deletions

View File

@@ -25,21 +25,25 @@ env:
jobs:
build:
if: |
github.event_name == 'workflow_dispatch'
|| (github.repository_owner == 'searxng' && github.event.workflow_run.conclusion == 'success')
if: github.repository_owner == 'searxng' || github.event_name == 'workflow_dispatch'
name: Build (${{ matrix.arch }})
runs-on: ${{ matrix.runner }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- runner: ubuntu-26.04
arch: amd64
- runner: ubuntu-26.04-arm
arch: arm64
- runner: ubuntu-26.04-arm
arch: armv7
- arch: amd64
march: amd64
os: ubuntu-24.04
emulation: false
- arch: arm64
march: arm64
os: ubuntu-24.04-arm
emulation: false
- arch: armv7
march: arm64
os: ubuntu-24.04-arm
emulation: true
permissions:
packages: write
@@ -49,25 +53,33 @@ jobs:
git_url: ${{ steps.build.outputs.git_url }}
steps:
- name: Login to GHCR
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
with:
registry: "ghcr.io"
username: "${{ github.repository_owner }}"
password: "${{ secrets.GITHUB_TOKEN }}"
# yamllint disable rule:line-length
- name: Setup podman
env:
PODMAN_VERSION: "v5.7.1"
run: |
sudo apt-get purge -y podman runc crun conmon
curl -fsSLO "https://github.com/mgoltzsche/podman-static/releases/download/${{ env.PODMAN_VERSION }}/podman-linux-${{ matrix.march }}.tar.gz"
curl -fsSLO "https://github.com/mgoltzsche/podman-static/releases/download/${{ env.PODMAN_VERSION }}/podman-linux-${{ matrix.march }}.tar.gz.asc"
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 0CCF102C4F95D89E583FF1D4F8B5AF50344BB503
gpg --batch --verify "podman-linux-${{ matrix.march }}.tar.gz.asc" "podman-linux-${{ matrix.march }}.tar.gz"
tar -xzf "podman-linux-${{ matrix.march }}.tar.gz"
sudo cp -rfv ./podman-linux-${{ matrix.march }}/etc/. /etc/
sudo cp -rfv ./podman-linux-${{ matrix.march }}/usr/. /usr/
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
# yamllint enable rule:line-length
- name: Setup Python
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: "${{ env.PYTHON_VERSION }}"
- name: Setup QEMU
uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: "${{ github.event.workflow_run.head_sha || github.sha }}"
persist-credentials: "false"
fetch-depth: "0"
@@ -79,52 +91,71 @@ jobs:
python-${{ env.PYTHON_VERSION }}-${{ runner.arch }}-
path: "./local/"
- name: Get date
id: date
run: echo "date=$(date +'%Y%m%d')" >>$GITHUB_OUTPUT
- name: Setup cache container
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
key: "container-${{ matrix.arch }}-${{ hashFiles('./requirements*.txt') }}"
key: "container-${{ matrix.arch }}-${{ steps.date.outputs.date }}-${{ hashFiles('./requirements*.txt') }}"
restore-keys: |
container-${{ matrix.arch }}-${{ steps.date.outputs.date }}-
container-${{ matrix.arch }}-
path: "/var/tmp/buildah-cache-*/*"
- name: Build
id: build
env:
OVERRIDE_ARCH: "${{ matrix.arch }}"
run: make container.build
- if: ${{ matrix.emulation }}
name: Setup QEMU
uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0
test:
name: Test (${{ matrix.arch }})
runs-on: ${{ matrix.runner }}
needs: build
strategy:
fail-fast: false
matrix:
include:
- runner: ubuntu-26.04
arch: amd64
- runner: ubuntu-26.04-arm
arch: arm64
- runner: ubuntu-26.04-arm
arch: armv7
steps:
- name: Login to GHCR
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
uses: docker/login-action@c99871dec2022cc055c062a10cc1a1310835ceb4 # v4.3.0
with:
registry: "ghcr.io"
username: "${{ github.repository_owner }}"
password: "${{ secrets.GITHUB_TOKEN }}"
- name: Setup QEMU
uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0
- name: Build
id: build
env:
OVERRIDE_ARCH: "${{ matrix.arch }}"
run: make podman.build
test:
name: Test (${{ matrix.arch }})
runs-on: ${{ matrix.os }}
needs: build
strategy:
fail-fast: false
matrix:
include:
- arch: amd64
os: ubuntu-24.04
emulation: false
- arch: arm64
os: ubuntu-24.04-arm
emulation: false
- arch: armv7
os: ubuntu-24.04-arm
emulation: true
steps:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: "${{ github.event.workflow_run.head_sha || github.sha }}"
persist-credentials: "false"
- if: ${{ matrix.emulation }}
name: Setup QEMU
uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0
- name: Login to GHCR
uses: docker/login-action@c99871dec2022cc055c062a10cc1a1310835ceb4 # v4.3.0
with:
registry: "ghcr.io"
username: "${{ github.repository_owner }}"
password: "${{ secrets.GITHUB_TOKEN }}"
- name: Test
env:
OVERRIDE_ARCH: "${{ matrix.arch }}"
@@ -134,7 +165,7 @@ jobs:
release:
if: github.repository_owner == 'searxng' && github.ref_name == 'master'
name: Release
runs-on: ubuntu-26.04-arm
runs-on: ubuntu-24.04-arm
needs:
- build
- test
@@ -143,25 +174,24 @@ jobs:
packages: write
steps:
- name: Login to Docker Hub
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
registry: "docker.io"
username: "${{ secrets.DOCKER_USER }}"
password: "${{ secrets.DOCKER_TOKEN }}"
persist-credentials: "false"
- name: Login to GHCR
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
uses: docker/login-action@c99871dec2022cc055c062a10cc1a1310835ceb4 # v4.3.0
with:
registry: "ghcr.io"
username: "${{ github.repository_owner }}"
password: "${{ secrets.GITHUB_TOKEN }}"
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Login to Docker Hub
uses: docker/login-action@c99871dec2022cc055c062a10cc1a1310835ceb4 # v4.3.0
with:
ref: "${{ github.event.workflow_run.head_sha || github.sha }}"
persist-credentials: "false"
registry: "docker.io"
username: "${{ secrets.DOCKER_USER }}"
password: "${{ secrets.DOCKER_TOKEN }}"
- name: Release
env:

View File

@@ -21,7 +21,7 @@ jobs:
data:
if: github.repository_owner == 'searxng'
name: ${{ matrix.fetch }}
runs-on: ubuntu-26.04-arm
runs-on: ubuntu-24.04-arm
strategy:
fail-fast: false
matrix:
@@ -64,17 +64,23 @@ jobs:
run: V=1 ./manage pyenv.cmd python "./searxng_extra/update/${{ matrix.fetch }}"
- name: Create PR
id: cpr
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
with:
author: "searxng-bot <searxng-bot@users.noreply.github.com>"
committer: "searxng-bot <searxng-bot@users.noreply.github.com>"
title: "[mod] data: update searx.data - ${{ matrix.fetch }}"
commit-message: "[mod] data: update searx.data - ${{ matrix.fetch }}"
branch: "ci-data-${{ matrix.fetch }}"
title: "[data] update searx.data - ${{ matrix.fetch }}"
commit-message: "[data] update searx.data - ${{ matrix.fetch }}"
branch: "update_data_${{ matrix.fetch }}"
delete-branch: "true"
draft: "false"
signoff: "false"
body: |
Update searx.data - ${{ matrix.fetch }}
[data] update searx.data - ${{ matrix.fetch }}
labels: |
data
- name: Display information
run: |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"

View File

@@ -25,7 +25,7 @@ jobs:
release:
if: github.repository_owner == 'searxng' || github.event_name == 'workflow_dispatch'
name: Release
runs-on: ubuntu-26.04-arm
runs-on: ubuntu-24.04-arm
permissions:
# for JamesIves/github-pages-deploy-action to push
contents: write
@@ -65,7 +65,7 @@ jobs:
with:
folder: "dist/docs"
branch: "gh-pages"
commit-message: "[mod] docs: build from commit ${{ github.sha }}"
commit-message: "[doc] build from commit ${{ github.sha }}"
# Automatically remove deleted files from the deploy branch
clean: "true"
single-commit: "true"

View File

@@ -23,7 +23,7 @@ env:
jobs:
test:
name: Python ${{ matrix.python-version }}
runs-on: ubuntu-26.04
runs-on: ubuntu-24.04
strategy:
matrix:
python-version:
@@ -59,24 +59,29 @@ jobs:
theme:
name: Theme
runs-on: ubuntu-26.04-arm
runs-on: ubuntu-24.04-arm
steps:
- name: Setup Python
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: "${{ env.PYTHON_VERSION }}"
- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: "26"
check-latest: "true"
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: "false"
- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version-file: "./.nvmrc"
- name: Setup cache Node.js
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
key: "nodejs-${{ runner.arch }}-${{ hashFiles('./.nvmrc', './package.json') }}"
path: "./client/simple/node_modules/"
- name: Setup cache Python
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
@@ -85,14 +90,6 @@ jobs:
python-${{ env.PYTHON_VERSION }}-${{ runner.arch }}-
path: "./local/"
- name: Setup cache Node.js
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
key: "nodejs-${{ runner.arch }}-${{ hashFiles('**/package-lock.json') }}"
restore-keys: |
nodejs-${{ runner.arch }}-
path: "./client/simple/node_modules/"
- name: Setup venv
run: make V=1 install

View File

@@ -26,9 +26,9 @@ env:
jobs:
update:
if: github.event.workflow_run.conclusion == 'success' && github.repository_owner == 'searxng'
if: github.repository_owner == 'searxng' && github.event.workflow_run.conclusion == 'success'
name: Update
runs-on: ubuntu-26.04-arm
runs-on: ubuntu-24.04-arm
permissions:
# For "make V=1 weblate.push.translations"
contents: write
@@ -59,7 +59,7 @@ jobs:
- name: Setup Weblate
run: |
mkdir -p ~/.config
echo "${{ secrets.WEBLATE_CONFIG }}" >~/.config/weblate
echo "${{ secrets.WEBLATE_CONFIG }}" > ~/.config/weblate
- name: Setup Git
run: |
@@ -74,7 +74,7 @@ jobs:
github.repository_owner == 'searxng'
&& (github.event_name == 'workflow_dispatch' || github.event_name == 'schedule')
name: Pull Request
runs-on: ubuntu-26.04-arm
runs-on: ubuntu-24.04-arm
permissions:
# For "make V=1 weblate.translations.commit"
contents: write
@@ -107,7 +107,7 @@ jobs:
- name: Setup Weblate
run: |
mkdir -p ~/.config
echo "${{ secrets.WEBLATE_CONFIG }}" >~/.config/weblate
echo "${{ secrets.WEBLATE_CONFIG }}" > ~/.config/weblate
- name: Setup Git
run: |
@@ -118,17 +118,23 @@ jobs:
run: make V=1 weblate.translations.commit
- name: Create PR
id: cpr
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
with:
author: "searxng-bot <searxng-bot@users.noreply.github.com>"
committer: "searxng-bot <searxng-bot@users.noreply.github.com>"
title: "[mod] i18n: update translations from Weblate"
commit-message: "[mod] i18n: update translations from Weblate"
title: "[l10n] update translations from Weblate"
commit-message: "[l10n] update translations from Weblate"
branch: "translations_update"
delete-branch: "true"
draft: "false"
signoff: "false"
body: |
Update translations from Weblate
[l10n] update translations from Weblate
labels: |
area:i18n
- name: Display information
run: |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"

46
.github/workflows/security.yml vendored Normal file
View File

@@ -0,0 +1,46 @@
---
name: Security
# yamllint disable-line rule:truthy
on:
workflow_dispatch:
schedule:
- cron: "42 05 * * *"
concurrency:
group: ${{ github.workflow }}
cancel-in-progress: false
permissions:
contents: read
jobs:
container:
if: github.repository_owner == 'searxng'
name: Container
runs-on: ubuntu-24.04-arm
permissions:
security-events: write
steps:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: "false"
- name: Sync GHCS from Docker Scout
uses: docker/scout-action@ce97ec1bb85613e8eb35d086fad0c77a6cedf983 # v1.23.0
with:
organization: "searxng"
dockerhub-user: "${{ secrets.DOCKER_USER }}"
dockerhub-password: "${{ secrets.DOCKER_TOKEN }}"
image: "registry://ghcr.io/searxng/searxng:latest"
command: "cves"
sarif-file: "./scout.sarif"
exit-code: "false"
write-comment: "false"
- name: Upload SARIFs
uses: github/codeql-action/upload-sarif@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4.36.3
with:
sarif_file: "./scout.sarif"

View File

@@ -15,9 +15,9 @@
"swiped-events": "1.2.0"
},
"devDependencies": {
"@biomejs/biome": "2.5.3",
"@types/node": "^26.1.1",
"browserslist": "^4.28.6",
"@biomejs/biome": "2.5.2",
"@types/node": "^26.1.0",
"browserslist": "^4.28.4",
"browserslist-to-esbuild": "^2.1.1",
"edge.js": "^6.5.1",
"less": "^4.6.7",
@@ -27,9 +27,9 @@
"stylelint": "^17.14.0",
"stylelint-config-standard-less": "^4.1.0",
"stylelint-prettier": "^5.0.3",
"svgo": "^4.0.2",
"typescript": "~7.0.2",
"vite": "^8.1.4",
"svgo": "^4.0.1",
"typescript": "~6.0.3",
"vite": "^8.1.3",
"vite-bundle-analyzer": "^1.3.8"
}
},
@@ -69,9 +69,9 @@
}
},
"node_modules/@biomejs/biome": {
"version": "2.5.3",
"resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.5.3.tgz",
"integrity": "sha512-MrJswFdei9EfDwwUy2tQrPDpK0AO+RmMFvBoaaJ6ayBc3sUbHdCE+XG5N8vp+5So41ZupZJQm0roHFFhMGVD7A==",
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.5.2.tgz",
"integrity": "sha512-VQ3RCqr7JmDIX+w6stWYl+g/3bYofN3q2wDBHUKKc/c7i5QWrFKFBZYCYPWTE6agsUPMIZZe6/CMmVUfUAhkKA==",
"dev": true,
"license": "MIT OR Apache-2.0",
"bin": {
@@ -85,20 +85,20 @@
"url": "https://opencollective.com/biome"
},
"optionalDependencies": {
"@biomejs/cli-darwin-arm64": "2.5.3",
"@biomejs/cli-darwin-x64": "2.5.3",
"@biomejs/cli-linux-arm64": "2.5.3",
"@biomejs/cli-linux-arm64-musl": "2.5.3",
"@biomejs/cli-linux-x64": "2.5.3",
"@biomejs/cli-linux-x64-musl": "2.5.3",
"@biomejs/cli-win32-arm64": "2.5.3",
"@biomejs/cli-win32-x64": "2.5.3"
"@biomejs/cli-darwin-arm64": "2.5.2",
"@biomejs/cli-darwin-x64": "2.5.2",
"@biomejs/cli-linux-arm64": "2.5.2",
"@biomejs/cli-linux-arm64-musl": "2.5.2",
"@biomejs/cli-linux-x64": "2.5.2",
"@biomejs/cli-linux-x64-musl": "2.5.2",
"@biomejs/cli-win32-arm64": "2.5.2",
"@biomejs/cli-win32-x64": "2.5.2"
}
},
"node_modules/@biomejs/cli-darwin-arm64": {
"version": "2.5.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.5.3.tgz",
"integrity": "sha512-QhYP9muVQ0nUO5zztFuPbEwi4+94sJWVjaZds9aMi1l/KNZBiUjdiSUrGHsTaMGDXrYl+r4AS2sUKfgH3w+V3g==",
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.5.2.tgz",
"integrity": "sha512-e7P3P7EkwFc/KiX2AHw4YDLIBOMfG9CPCAwy52k5Bp0dfhkozx9hf6wCmIr2QeXy2XeccJ3V/Sg+hDmzYEqxSg==",
"cpu": [
"arm64"
],
@@ -113,9 +113,9 @@
}
},
"node_modules/@biomejs/cli-darwin-x64": {
"version": "2.5.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.5.3.tgz",
"integrity": "sha512-NC1Ss13UaW7QZX+y8j44bF7AP0jSJdBl6iRhe0MAkvaSqZy+mWg3GaXsrb+eSoHoGDBtaXWEbMVV0iVN2cZ7cQ==",
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.5.2.tgz",
"integrity": "sha512-ymzMvjC1Jg0b9K0D26ZdARqFQXs7MocfLC5FOCGfkC0Ss+ACUJkX5364ZM5nT4NLZanHRZNVrZEy+Ibwcvux/g==",
"cpu": [
"x64"
],
@@ -130,9 +130,9 @@
}
},
"node_modules/@biomejs/cli-linux-arm64": {
"version": "2.5.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.5.3.tgz",
"integrity": "sha512-ksx1KWeyYW18ILL04msF/J4ZBtBDN33znYK8Z/aNv/vlBVxL9/g3mGP+omgHJKy4+KWbK87vcmmpmurfNjSgiA==",
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.5.2.tgz",
"integrity": "sha512-t7sseOmqND57uUWTwlawU6BYj+J06T/9EkydzBhkrgw/FK3QVhjU2wsJR0frljrKZ0/I8A/rYw7284QgqjQfIQ==",
"cpu": [
"arm64"
],
@@ -150,9 +150,9 @@
}
},
"node_modules/@biomejs/cli-linux-arm64-musl": {
"version": "2.5.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.5.3.tgz",
"integrity": "sha512-fccix0w6xp6csCXgxeC0dU/3ecgRQal0y+cv2SP9ajNlhe7Yrk2Ug7UDe2j9AT9ZDYitkXpvUKgZjjuoYeP4Vg==",
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.5.2.tgz",
"integrity": "sha512-w+ANG0ZvTu9IeEg9QnstoOnk6L0fpwJifW6aHR18+cb5Z39bkANItYjAfMrnvce5tmMK+IQ6nPX7/kQFdam5iw==",
"cpu": [
"arm64"
],
@@ -170,9 +170,9 @@
}
},
"node_modules/@biomejs/cli-linux-x64": {
"version": "2.5.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.5.3.tgz",
"integrity": "sha512-yMkJtilsgvILDcVkh187aVLTb64xYsrxYajx5kym+r1ULkO5HUOfu9AYKLGQbOVLwJtT2utNw7hhFNg+17mUYA==",
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.5.2.tgz",
"integrity": "sha512-M/lOZrewzTCRDINbjhQ1gYYru37KlD3kJBQwwKCG0ckz5E9IZwIoJ3X0wBwRXA+yBDIwWUuPBHS67HzJY4dTfA==",
"cpu": [
"x64"
],
@@ -190,9 +190,9 @@
}
},
"node_modules/@biomejs/cli-linux-x64-musl": {
"version": "2.5.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.5.3.tgz",
"integrity": "sha512-O/yU9YKRUiHhmcjF2f38PSjseVk3G4VLWYc0G2HWpzdBVREV6G8IGWIVEFf7MFPfWIzNUIvPsEjeAZQIOgnLcQ==",
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.5.2.tgz",
"integrity": "sha512-VArNLAzND063tF+XY0yPyM+DyahpzOMzOAvb7qs259nhjJWRjvjZdssuA+Rfl+l07+NOesKZ0Xu2yFrXyBMtzw==",
"cpu": [
"x64"
],
@@ -210,9 +210,9 @@
}
},
"node_modules/@biomejs/cli-win32-arm64": {
"version": "2.5.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.5.3.tgz",
"integrity": "sha512-cX5z+GYwRcqEok0AH3KSfQGgqYd0Nomfp6Fbe1uiTtELE38hdH2k842wQ9wLNaF/JJ7r4rjJQ4VR+ce+fRmQbw==",
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.5.2.tgz",
"integrity": "sha512-kbjFFKyZlzYnAuw7sRy5qDoFG6zrP40UK08oPQsWK0ct3NMnGSt+Bs1iviEEyEIP57N5MrykGXdO/wRiaR4lww==",
"cpu": [
"arm64"
],
@@ -227,9 +227,9 @@
}
},
"node_modules/@biomejs/cli-win32-x64": {
"version": "2.5.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.5.3.tgz",
"integrity": "sha512-ExSaJWi4/u6+GXCszlSKpWSjKNbDseAYqqkCznsCsZ/4uidZ/BEqsCc5/3ctlq6dfIubdIIRSVLC/PG9xPl70Q==",
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.5.2.tgz",
"integrity": "sha512-4InchVpdVmdkkkgjQqKpgvyu+VPnoF/7RPSw5YATgEVpt2j72wcCAeV5TwaE9ZGJUZWZn7v2CwSAj6CrMJEx8A==",
"cpu": [
"x64"
],
@@ -1648,9 +1648,9 @@
}
},
"node_modules/@types/node": {
"version": "26.1.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.1.tgz",
"integrity": "sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==",
"version": "26.1.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.0.tgz",
"integrity": "sha512-O0A1G3xPGy4w7AgQdAQYUlQ+BKk2Oovw8eRpofyp5KdBZULnbe+WqaOVNrm705SHphCiG4XHsACrSmPu1f+Kgw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1670,346 +1670,6 @@
"integrity": "sha512-+N+2H39P8X+Hy1I5mC6awlTX54k3FhiUmvt7HWzGJZvF+syUAAxP/stwppS8JE84YHqFgRMv6fCy31202CMFxQ==",
"license": "MIT"
},
"node_modules/@typescript/typescript-aix-ppc64": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz",
"integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==",
"cpu": [
"ppc64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"aix"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-darwin-arm64": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz",
"integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==",
"cpu": [
"arm64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-darwin-x64": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz",
"integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==",
"cpu": [
"x64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-freebsd-arm64": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz",
"integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-freebsd-x64": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz",
"integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==",
"cpu": [
"x64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-linux-arm": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz",
"integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==",
"cpu": [
"arm"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-linux-arm64": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz",
"integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-linux-loong64": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz",
"integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==",
"cpu": [
"loong64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-linux-mips64el": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz",
"integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==",
"cpu": [
"mips64el"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-linux-ppc64": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz",
"integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==",
"cpu": [
"ppc64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-linux-riscv64": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz",
"integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==",
"cpu": [
"riscv64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-linux-s390x": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz",
"integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==",
"cpu": [
"s390x"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-linux-x64": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz",
"integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==",
"cpu": [
"x64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-netbsd-arm64": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz",
"integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==",
"cpu": [
"arm64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"netbsd"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-netbsd-x64": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz",
"integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==",
"cpu": [
"x64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"netbsd"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-openbsd-arm64": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz",
"integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"openbsd"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-openbsd-x64": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz",
"integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==",
"cpu": [
"x64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"openbsd"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-sunos-x64": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz",
"integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==",
"cpu": [
"x64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"sunos"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-win32-arm64": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz",
"integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@typescript/typescript-win32-x64": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz",
"integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==",
"cpu": [
"x64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/@zarrita/storage": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/@zarrita/storage/-/storage-0.2.0.tgz",
@@ -2107,9 +1767,9 @@
}
},
"node_modules/baseline-browser-mapping": {
"version": "2.10.43",
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.43.tgz",
"integrity": "sha512-AjYpR78kDWAY3Efj+cDTFH9t9SCoL7OoTp1BOb0mQV7S+6CiLwnWM3FyxhJtdPufDFKzmCSFoUncKjWgJEZTCQ==",
"version": "2.10.41",
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.41.tgz",
"integrity": "sha512-WwS7MHhqGHHlaVsqRZnhvCEMS0owDX+SxRlve7JkuH7My1Ara3ZriTmCQupPfYjxMZ8I/tgxtJYr2t7taHaH4A==",
"dev": true,
"license": "Apache-2.0",
"bin": {
@@ -2140,9 +1800,9 @@
}
},
"node_modules/browserslist": {
"version": "4.28.6",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.6.tgz",
"integrity": "sha512-FQBYNK15VMslhLHpA7+n+n1GOlF1kId2xcCg7/j95f24AOF6VDYMNH4mFxF7KuaTdv627faazpOAjFzMrfJOUw==",
"version": "4.28.4",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.4.tgz",
"integrity": "sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw==",
"dev": true,
"funding": [
{
@@ -2160,10 +1820,10 @@
],
"license": "MIT",
"dependencies": {
"baseline-browser-mapping": "^2.10.42",
"caniuse-lite": "^1.0.30001803",
"electron-to-chromium": "^1.5.389",
"node-releases": "^2.0.51",
"baseline-browser-mapping": "^2.10.38",
"caniuse-lite": "^1.0.30001799",
"electron-to-chromium": "^1.5.376",
"node-releases": "^2.0.48",
"update-browserslist-db": "^1.2.3"
},
"bin": {
@@ -2217,9 +1877,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001805",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001805.tgz",
"integrity": "sha512-52noaS3DubycKSXaU30TwPGIp+POyQSUVa5jBEq3vkRkY0kjyb3LQgvhU6WGyCcyXqVLWO0Cw0Q6BSdD0kUfVA==",
"version": "1.0.30001800",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001800.tgz",
"integrity": "sha512-MMHtuAz9Ys840zAY5F4k6fV5GaivZ9sPk+nz0mY+GYVzRBnYkN0mpqkSR92oWRQ19yQWo4HvBV/FnC16AJX8MA==",
"dev": true,
"funding": [
{
@@ -2635,9 +2295,9 @@
}
},
"node_modules/electron-to-chromium": {
"version": "1.5.389",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.389.tgz",
"integrity": "sha512-cEto7aeOqBfU1D+c5py5pE+ooscKE75JifxLBdFUZsqAxRS6y7kebtxAZvICszSl05gPjYHDTjY+lXpyGvpJbg==",
"version": "1.5.385",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.385.tgz",
"integrity": "sha512-78sa/M08MNAYHQfjoWMvOlKQqZ0ElhSm/L5HNUc96VZ3b+KvDVnngFm8sYQy0XrhTRgAhggHr5abA7yTvRdo4Q==",
"dev": true,
"license": "ISC"
},
@@ -3770,9 +3430,9 @@
}
},
"node_modules/node-releases": {
"version": "2.0.51",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.51.tgz",
"integrity": "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==",
"version": "2.0.50",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.50.tgz",
"integrity": "sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4728,9 +4388,9 @@
"dev": true
},
"node_modules/svgo": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.2.tgz",
"integrity": "sha512-ekx94z1rRc5LDi6oSUaeRnYhd0UOJxdtQCL2rF8xpWxD3TPAsISWOrxezqGovqS38GRZOdpDfvQe3ts6F7nsng==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.1.tgz",
"integrity": "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4901,38 +4561,17 @@
}
},
"node_modules/typescript": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz",
"integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==",
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz",
"integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==",
"dev": true,
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc"
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=16.20.0"
},
"optionalDependencies": {
"@typescript/typescript-aix-ppc64": "7.0.2",
"@typescript/typescript-darwin-arm64": "7.0.2",
"@typescript/typescript-darwin-x64": "7.0.2",
"@typescript/typescript-freebsd-arm64": "7.0.2",
"@typescript/typescript-freebsd-x64": "7.0.2",
"@typescript/typescript-linux-arm": "7.0.2",
"@typescript/typescript-linux-arm64": "7.0.2",
"@typescript/typescript-linux-loong64": "7.0.2",
"@typescript/typescript-linux-mips64el": "7.0.2",
"@typescript/typescript-linux-ppc64": "7.0.2",
"@typescript/typescript-linux-riscv64": "7.0.2",
"@typescript/typescript-linux-s390x": "7.0.2",
"@typescript/typescript-linux-x64": "7.0.2",
"@typescript/typescript-netbsd-arm64": "7.0.2",
"@typescript/typescript-netbsd-x64": "7.0.2",
"@typescript/typescript-openbsd-arm64": "7.0.2",
"@typescript/typescript-openbsd-x64": "7.0.2",
"@typescript/typescript-sunos-x64": "7.0.2",
"@typescript/typescript-win32-arm64": "7.0.2",
"@typescript/typescript-win32-x64": "7.0.2"
"node": ">=14.17"
}
},
"node_modules/undici-types": {
@@ -5003,16 +4642,16 @@
"license": "MIT"
},
"node_modules/vite": {
"version": "8.1.4",
"resolved": "https://registry.npmjs.org/vite/-/vite-8.1.4.tgz",
"integrity": "sha512-bTT9PsdWO+MQMNG9ZXIP/qM9wGh37DFxTV/sPq9cFpHr3w4jkgef032PkAL9jAqhk3Nz8NQw3O8n6/xFkqO4QQ==",
"version": "8.1.3",
"resolved": "https://registry.npmjs.org/vite/-/vite-8.1.3.tgz",
"integrity": "sha512-Ds+gBRbj0lwRO2Y5hwnUBdxSwlAve9LeRyU4sNnAr0ewW0gWF0n5bgXgUzbgZ49MV9BVUAQUFYVcDUcilUExMA==",
"dev": true,
"license": "MIT",
"dependencies": {
"lightningcss": "^1.32.0",
"picomatch": "^4.0.5",
"picomatch": "^4.0.4",
"postcss": "^8.5.16",
"rolldown": "~1.1.4",
"rolldown": "~1.1.3",
"tinyglobby": "^0.2.17"
},
"bin": {
@@ -5091,9 +4730,9 @@
}
},
"node_modules/vite/node_modules/picomatch": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz",
"integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==",
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
"dev": true,
"license": "MIT",
"engines": {

View File

@@ -29,9 +29,9 @@
"swiped-events": "1.2.0"
},
"devDependencies": {
"@biomejs/biome": "2.5.3",
"@types/node": "^26.1.1",
"browserslist": "^4.28.6",
"@biomejs/biome": "2.5.2",
"@types/node": "^26.1.0",
"browserslist": "^4.28.4",
"browserslist-to-esbuild": "^2.1.1",
"edge.js": "^6.5.1",
"less": "^4.6.7",
@@ -41,9 +41,9 @@
"stylelint": "^17.14.0",
"stylelint-config-standard-less": "^4.1.0",
"stylelint-prettier": "^5.0.3",
"svgo": "^4.0.2",
"typescript": "~7.0.2",
"vite": "^8.1.4",
"svgo": "^4.0.1",
"typescript": "~6.0.3",
"vite": "^8.1.3",
"vite-bundle-analyzer": "^1.3.8"
}
}

View File

@@ -23,6 +23,6 @@ coloredlogs==15.0.1
docutils>=0.21.2;python_version <= "3.11"
docutils>=0.22.4; python_version > "3.11"
parameterized==0.9.0
granian[reload]==2.7.9
granian[reload]==2.7.8
basedpyright==1.39.9
types-lxml==2026.2.16

View File

@@ -1,2 +1,2 @@
granian==2.7.9
granian[pname]==2.7.9
granian==2.7.8
granian[pname]==2.7.8

View File

@@ -458,22 +458,12 @@ class ExpireCacheSQLite(sqlitedb.SQLiteAppl, ExpireCache):
# Before values are taken from the table, a maintenance interval may
# need to be carried out.
self.maintenance()
sql = f"SELECT value, expire FROM {table} WHERE key = ?"
sql = f"SELECT value FROM {table} WHERE key = ?"
row = self.DB.execute(sql, (key,)).fetchone()
if row is None:
return default
# Check if value is expired. It's possible that it's expired but has not
# yet been automatically deleted by the periodic maintenance
(value, expire) = row
now = time.time()
if expire < now:
# The record is deleted during the maintenance interval. Deleting
# the record at this point offers no advantage, as a SELECT
# statement must be executed for every cache.get request anyways.
return default
return self.deserialize(value)
return self.deserialize(row[0])
def pairs(self, ctx: str) -> Iterator[tuple[str, typing.Any]]:
"""Iterate over key/value pairs from table given by argument ``ctx``.

View File

@@ -83,7 +83,7 @@ def extract_video_data(video_block):
published_date = None
if create_time:
try:
published_date = datetime.fromisoformat(create_time.strip())
published_date = datetime.strptime(create_time.strip(), "%Y-%m-%d")
except (ValueError, TypeError):
pass

View File

@@ -109,7 +109,7 @@ def response(resp: "SXNG_Response") -> EngineResults:
comments_elements = eval_xpath_getindex(entry, xpath_comment, 0, default=None)
comments: str = "" if comments_elements is None else comments_elements.text
publishedDate = datetime.fromisoformat(eval_xpath_getindex(entry, xpath_published, 0).text.rstrip("Z"))
publishedDate = datetime.strptime(eval_xpath_getindex(entry, xpath_published, 0).text, "%Y-%m-%dT%H:%M:%SZ")
res.add(
res.types.Paper(

View File

@@ -186,7 +186,7 @@ def parse_images(data):
img_date = item.get("bdImgnewsDate")
publishedDate = None
if img_date:
publishedDate = datetime.fromisoformat(img_date)
publishedDate = datetime.strptime(img_date, "%Y-%m-%d %H:%M")
results.append(
{
"template": "images.html",

View File

@@ -44,7 +44,7 @@ def response(resp):
"url": 'https://www.bitchute.com/video/' + item['video_id'],
"content": html_to_text(item['description']),
"author": item['channel']['channel_name'],
"publishedDate": datetime.fromisoformat(item["date_published"].rstrip("Z")),
"publishedDate": datetime.strptime(item["date_published"], "%Y-%m-%dT%H:%M:%S.%fZ"),
"length": item['duration'],
"views": item['view_count'],
"thumbnail": item['thumbnail_url'],

View File

@@ -104,7 +104,7 @@ def response(resp: "SXNG_Response") -> EngineResults:
title=_remove_keyword_marker(result["Subject"]),
content=_remove_keyword_marker(result["Text"]),
url=result["Url"],
publishedDate=datetime.fromisoformat(result["Published"]),
publishedDate=datetime.strptime(result["Published"], "%Y-%m-%d %H:%M:%S"),
metadata=gettext.gettext("Posted by {author}").format(author=result["Author"]),
)
)

View File

@@ -43,7 +43,7 @@ def response(resp):
publishedDate = None
if recipe['submissionDate']:
publishedDate = datetime.fromisoformat(result['recipe']['submissionDate'][:19])
publishedDate = datetime.strptime(result['recipe']['submissionDate'][:19], "%Y-%m-%dT%H:%M:%S")
content = [
f"Schwierigkeitsstufe (1-3): {recipe['difficulty']}",

View File

@@ -37,7 +37,7 @@ def response(resp):
for item in search_res:
img = 'https://s3.thehackerblog.com/findthatmeme/' + item['image_path']
thumb = 'https://s3.thehackerblog.com/findthatmeme/thumb/' + item.get('thumbnail', '')
date = datetime.fromisoformat(item["updated_at"].split("T")[0])
date = datetime.strptime(item["updated_at"].split("T")[0], "%Y-%m-%d")
formatted_date = datetime.fromtimestamp(date.timestamp())
results.append(

View File

@@ -47,7 +47,7 @@ def response(resp: "SXNG_Response"):
title=result["title"],
content=result["description"],
thumbnail=result["smallImageURL"],
publishedDate=datetime.fromisoformat(result["status_since"]),
publishedDate=datetime.strptime(result["status_since"], "%Y-%m-%d %H:%M:%S"),
metadata=f"Rank: {result['rank']} || {result['episode_count']} episodes",
)
)

View File

@@ -68,9 +68,7 @@ def _get_api_token(query: str) -> str:
if cached_token:
return cached_token
resp = get(
f"{base_url}/search?q={query}", headers={"User-Agent": gen_useragent(), "Accept-Language": "en-US,en:q=0.9"}
)
resp = get(f"{base_url}/search?q={query}", headers={"User-Agent": gen_useragent()})
if not resp.ok:
raise SearxEngineAPIException("failed to obtain request token: invalid response code")
@@ -78,7 +76,7 @@ def _get_api_token(query: str) -> str:
if not token:
raise SearxEngineAPIException("failed to obtain request token: no token found")
CACHE.set("token", token, expire=3 * 60)
CACHE.set("token", token)
return token

View File

@@ -91,7 +91,7 @@ def response(resp) -> EngineResults:
published_date = None
try:
published_date = datetime.fromisoformat(entry["createdAt"].rstrip("Z"))
published_date = datetime.strptime(entry["createdAt"], "%Y-%m-%dT%H:%M:%S.%fZ")
except (ValueError, TypeError):
pass

View File

@@ -43,7 +43,7 @@ def _result(video: dict[str, typing.Any], album_info: dict[str, typing.Any]):
release_time = album_info.get("releaseTime", {}).get("value")
if release_time:
try:
published_date = datetime.fromisoformat(release_time)
published_date = datetime.strptime(release_time, "%Y-%m-%d")
except (ValueError, TypeError):
pass

View File

@@ -92,7 +92,7 @@ def _get_communities(json):
'title': result['community']['title'],
'content': markdown_to_text(result['community'].get('description', '')),
'thumbnail': result['community'].get('icon', result['community'].get('banner')),
'publishedDate': datetime.fromisoformat(counts['published'][:19]),
'publishedDate': datetime.strptime(counts['published'][:19], '%Y-%m-%dT%H:%M:%S'),
'metadata': metadata,
}
)
@@ -141,7 +141,7 @@ def _get_posts(json):
'title': result['post']['name'],
'content': content,
'thumbnail': thumbnail,
'publishedDate': datetime.fromisoformat(result['post']['published'][:19]),
'publishedDate': datetime.strptime(result['post']['published'][:19], '%Y-%m-%dT%H:%M:%S'),
'metadata': metadata,
}
)
@@ -170,7 +170,7 @@ def _get_comments(json):
'url': result['comment']['ap_id'],
'title': result['post']['name'],
'content': markdown_to_text(result['comment']['content']),
'publishedDate': datetime.fromisoformat(result['comment']['published'][:19]),
'publishedDate': datetime.strptime(result['comment']['published'][:19], '%Y-%m-%dT%H:%M:%S'),
'metadata': metadata,
}
)

View File

@@ -60,7 +60,7 @@ def response(resp):
'title': result['username'] + f" ({result['followers_count']} followers)",
'content': result['note'],
'thumbnail': result.get('avatar'),
'publishedDate': datetime.fromisoformat(result['created_at'][:10]),
'publishedDate': datetime.strptime(result['created_at'][:10], "%Y-%m-%d"),
}
)
elif mastodon_type == "hashtags":

View File

@@ -44,7 +44,7 @@ def response(resp) -> EngineResults:
cve_id = item["cve"]["id"]
description = item["cve"]["descriptions"][0]["value"]
date = datetime.fromisoformat(item["cve"]["published"])
date = datetime.strptime(item["cve"]["published"], "%Y-%m-%dT%H:%M:%S.%f")
# Extract severity (Low, Medium, High, or Critical) and CVSS score, if available
info = item["cve"].get("metrics", {}).get("cvssMetricV31", [{}])[0].get("cvssData", {})

View File

@@ -76,7 +76,7 @@ def response(resp):
release_time = item["release_time"]
duration = item["duration"]
release_date = datetime.fromisoformat(release_time.split("T")[0])
release_date = datetime.strptime(release_time.split("T")[0], "%Y-%m-%d")
formatted_date = datetime.fromtimestamp(release_date.timestamp())
url = f"https://odysee.com/{name}:{claim_id}"

View File

@@ -54,7 +54,7 @@ def response(resp: "SXNG_Response"):
title=result["title"],
content=result["description"],
thumbnail=result["image_url"],
publishedDate=datetime.fromisoformat(result["created_at"]),
publishedDate=datetime.strptime(result["created_at"], "%Y-%m-%d %H:%M:%S"),
metadata=" | ".join(metadata),
)
)

View File

@@ -140,7 +140,7 @@ def response(resp):
results.append(
{
'template': 'images.html',
'url': _clean_url(f"{pdia_base_url}/images/{result['objectID']}"),
'url': _clean_url(f"{about['website']}/images/{result['objectID']}"),
'img_src': _clean_url(base_image_url),
'thumbnail_src': _clean_url(base_image_url + THUMBNAIL_SUFFIX),
'title': f"{result['title'].strip()} by {result['artist']} {result.get('displayYear', '')}",

View File

@@ -292,7 +292,7 @@ def parse_news_uchq(data):
results = []
for item in data.get('feed', []):
try:
published_date = datetime.fromisoformat(item.get('time'))
published_date = datetime.strptime(item.get('time'), "%Y-%m-%d")
except (ValueError, TypeError):
# Sometime Quark will return non-standard format like "1天前", set published_date as None
published_date = None

View File

@@ -51,7 +51,6 @@ from urllib.parse import urlencode
import babel
from flask_babel import gettext # pyright: ignore[reportUnknownVariableType]
from searx.enginelib import EngineCache
from searx.enginelib.traits import EngineTraits
from searx.exceptions import (
SearxEngineAccessDeniedException,
@@ -106,19 +105,9 @@ qwant_news_locales = [
]
# fmt: on
base_url = "https://www.qwant.com"
api_url = "https://api.qwant.com/v3/search/"
"""URL of Qwant's API (JSON)"""
CACHE: EngineCache
"""Cache for storing the ``datadome`` cookie."""
def setup(engine_settings: dict[str, t.Any]) -> bool:
global CACHE # pylint: disable=global-statement
CACHE = EngineCache(engine_settings["name"])
return True
def request(query: str, params: "OnlineParams") -> None:
"""Qwant search request"""
@@ -140,29 +129,24 @@ def request(query: str, params: "OnlineParams") -> None:
"tgp": test_group_value,
"device": "desktop",
"safesearch": params["safesearch"],
# True would be encoded to "True", instead of "true", which makes the request
# easier to detect and block
"displayed": "true",
"llm": "true",
"display": True,
"llm": True,
}
# shuffle query parameters to be harder to fingerprint
args = list(args.items())
random.shuffle(args)
args = dict(args)
params["raise_for_httperror"] = False
params["url"] = f"{api_url}{qwant_categ}?{urlencode(args)}"
params["cookies"]["datadome"] = CACHE.get("datadome")
params["headers"].update({"Accept": "application/json", "Referer": f"{base_url}/", "Origin": base_url})
def response(resp: "SXNG_Response") -> EngineResults:
"""Parse results from Qwant's API"""
# pylint: disable=too-many-locals, too-many-branches, too-many-statements
# cache datadome cookie - changes on each request
datadome = resp.cookies.get("datadome")
if datadome:
CACHE.set("datadome", datadome)
res = EngineResults()
# Try to load JSON result
@@ -179,8 +163,8 @@ def response(resp: "SXNG_Response") -> EngineResults:
error_code = data.get("error_code")
if error_code == 24:
raise SearxEngineTooManyRequestsException()
if search_results.get("url") is not None:
raise SearxEngineCaptchaException(suspended_time=0)
if search_results.get("data", {}).get("error_data", {}).get("captchaUrl") is not None:
raise SearxEngineCaptchaException()
if resp.status_code == 403:
raise SearxEngineAccessDeniedException()
msg = ",".join(data.get("message", ["unknown"]))

View File

@@ -58,7 +58,7 @@ def response(resp):
title = extract_text(result_dom.xpath(title_xpath))
p_date = extract_text(result_dom.xpath(published_date))
# fix offset date for line 644 webapp.py check
fixed_date = datetime.fromisoformat(p_date)
fixed_date = datetime.strptime(p_date, '%Y-%m-%dT%H:%M:%S%z')
earned = extract_text(result_dom.xpath(earned_xpath))
views = extract_text(result_dom.xpath(views_xpath))
rumbles = extract_text(result_dom.xpath(rumbles_xpath))

View File

@@ -120,7 +120,7 @@ def response(resp: "SXNG_Response") -> EngineResults:
publishedDate: datetime | None
if "pubDate" in result:
publishedDate = datetime.fromisoformat(result["pubDate"])
publishedDate = datetime.strptime(result["pubDate"], "%Y-%m-%d")
else:
publishedDate = None

View File

@@ -95,8 +95,7 @@ def _parse_date(text):
date_match = re.search(r"(\d{4}-\d{1,2}-\d{1,2})", text)
if date_match:
try:
y, m, d = date_match.group(1).split("-")
return datetime(year=int(y), month=int(m), day=int(d))
return datetime.strptime(date_match.group(1), "%Y-%m-%d")
except (ValueError, TypeError):
pass
return None

View File

@@ -54,7 +54,7 @@ def response(resp):
published_date = None
if entry.get("date") and entry.get("duration"):
try:
published_date = datetime.fromisoformat(entry['date'])
published_date = datetime.strptime(entry['date'], "%Y-%m-%d")
except (ValueError, TypeError):
published_date = None

View File

@@ -134,7 +134,7 @@ def response(resp: "SXNG_Response") -> EngineResults:
return str(record.get(k, ""))
for record in json_data["records"]:
published = datetime.fromisoformat(record["publicationDate"])
published = datetime.strptime(record["publicationDate"], "%Y-%m-%d")
authors: list[str] = [" ".join(author["creator"].split(", ")[::-1]) for author in record["creators"]]
pdf_url = ""

View File

@@ -81,7 +81,7 @@ def _story(item):
return {
'title': item['title'],
'thumbnail': item.get('teaserImage', {}).get('imageVariants', {}).get('16x9-256'),
'publishedDate': datetime.fromisoformat(item['date'][:19]),
'publishedDate': datetime.strptime(item['date'][:19], '%Y-%m-%dT%H:%M:%S'),
'content': item.get('firstSentence'),
'url': item['shareURL'] if use_source_url else item['detailsweb'],
}
@@ -103,7 +103,7 @@ def _video(item):
'template': 'videos.html',
'title': title,
'thumbnail': item.get('teaserImage', {}).get('imageVariants', {}).get('16x9-256'),
'publishedDate': datetime.fromisoformat(item['date'][:19]),
'publishedDate': datetime.strptime(item['date'][:19], '%Y-%m-%dT%H:%M:%S'),
'content': item.get('firstSentence', ''),
'iframe_src': video_url,
'url': url,

View File

@@ -117,7 +117,7 @@ def _obtain_session_code() -> str:
if not code:
raise SearxEngineAPIException("failed to obtain session code")
CACHE.set("session", code, expire=60 * 24 * 60 * 60) # cookie is valid for two months
CACHE.set("session", code, expire=60 * 24 * 60) # cookie is valid for two months
return code

View File

@@ -121,7 +121,7 @@ def parse_tineye_match(match_json):
crawl_date = backlink_json.get("crawl_date")
if crawl_date:
crawl_date = datetime.fromisoformat(crawl_date)
crawl_date = datetime.strptime(crawl_date, '%Y-%m-%d')
else:
crawl_date = datetime.min

View File

@@ -51,7 +51,7 @@ def response(resp):
'title': title,
'content': html_to_text(result['content']),
'thumbnail': thumbnail,
'publishedDate': datetime.fromisoformat(result['created_at']),
'publishedDate': datetime.strptime(result['created_at'], '%Y-%m-%d %H:%M:%S'),
}
)

View File

@@ -13,7 +13,7 @@ from dateutil import parser
from searx.exceptions import SearxEngineAPIException
from searx.network import get
from searx.utils import gen_useragent, html_to_text
from searx.utils import html_to_text
from searx.result_types import EngineResults
if t.TYPE_CHECKING:
@@ -52,7 +52,7 @@ def _obtain_x_sid() -> tuple[str, str]:
The header key is usually called `x-sid-{UUIDv4}`, and the value is
usually a plain UUIDv4 (but a different one than in the header key).
"""
resp = get(f"{api_url}/revcontent/embed.js", headers={"User-Agent": gen_useragent()})
resp = get(f"{api_url}/revcontent/embed.js")
if not resp.ok:
raise SearxEngineAPIException("failed to obtain request x-sid token")
@@ -89,14 +89,12 @@ def request(query: str, params: "OnlineParams") -> None:
params["url"] = f"{api_url}/Search/Web?{urlencode(args)}"
x_sid_header, x_sid_value = _obtain_x_sid()
params["headers"].update(
{
x_sid_header: x_sid_value,
# required - we send a random longitude and latitude instead of the actual user location
"x-lon": str(round(random.random() * 90, 4)),
"x-lat": str(round(random.random() * 90, 4)),
}
)
params["headers"] = {
x_sid_header: x_sid_value,
# required - we send a random longitude and latitude instead of the actual user location
'x-lon': str(random.random() * 90),
'x-lat': str(random.random() * 90),
}
def response(resp: "SXNG_Response"):

View File

@@ -79,7 +79,7 @@ def response(resp):
'img_src': result['path'],
'thumbnail_src': result['thumbs']['small'],
'resolution': result['resolution'].replace('x', ' x '),
'publishedDate': datetime.fromisoformat(result['created_at']),
'publishedDate': datetime.strptime(result['created_at'], '%Y-%m-%d %H:%M:%S'),
'img_format': result['file_type'],
'filesize': humanize_bytes(result['file_size']),
}

View File

@@ -52,12 +52,6 @@ def _normalize_url_fields(result: "Result | LegacyResult"):
result.parsed_url = urllib.parse.urlparse(result.url)
if result.parsed_url:
# properly format special characters (e.g. "ä", "ö") in IDN domains
# e.g. "xn--strung-xxa.de" becomes "störung.de"
if result.parsed_url.netloc.startswith("xn--"):
netloc = result.parsed_url.netloc.encode().decode("idna")
result.parsed_url = result.parsed_url._replace(netloc=netloc)
result.parsed_url = result.parsed_url._replace(
# if the result has no scheme, use http as default
scheme=result.parsed_url.scheme or "http",

View File

@@ -477,24 +477,6 @@ engines:
engine: arxiv
shortcut: arx
- name: avalw
engine: json_engine
shortcut: av
categories: general
paging: true
search_url: https://avalw.org/api/search?q={query}&page={pageno}&limit=10&tbm=all
results_query: results
url_query: url
title_query: title
content_query: snippet
thumbnail: image_url
disabled: true
inactive: true
about:
website: https://avalw.com
description: "Search engine from the Romanian news company AVALW S.R.L."
results: JSON
- name: ayo
engine: xpath
categories: general

View File

@@ -1,3 +1,3 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./chunk/BnnvKC7b.min.js","./sxng-mapview.min.css","./chunk/DpvWr1cn.min.js","./chunk/DK4yUVpy.min.js","./chunk/DcK-mo-Y.min.js","./chunk/C8c7HJzp.min.js","./chunk/C93hSkpT.min.js","./chunk/5Ako-qGW.min.js","./chunk/DvCYLbJr.min.js","./chunk/od7pNHfk.min.js","./chunk/e2-9fzwE.min.js"])))=>i.map(i=>d[i]);
var e=class{id;constructor(e){this.id=e,queueMicrotask(()=>this.invoke())}async invoke(){try{console.debug(`[PLUGIN] ${this.id}: Running...`);let e=await this.run();if(!e)return;console.debug(`[PLUGIN] ${this.id}: Running post-exec...`),await this.post(e)}catch(e){console.error(`[PLUGIN] ${this.id}:`,e)}finally{console.debug(`[PLUGIN] ${this.id}: Done.`)}}},t={index:`index`,results:`results`,preferences:`preferences`,unknown:`unknown`},n={closeDetail:void 0,scrollPageToSelected:void 0,selectImage:void 0,selectNext:void 0,selectPrevious:void 0},r=()=>{let e=document.querySelector(`meta[name="endpoint"]`)?.getAttribute(`content`);return e&&e in t?e:t.unknown},i=()=>{let e=document.querySelector(`script[client_settings]`)?.getAttribute(`client_settings`);if(!e)return{};try{return JSON.parse(atob(e))}catch(e){return console.error(`Failed to load client_settings:`,e),{}}},a=async(e,t,n)=>{let r=new AbortController,i=setTimeout(()=>r.abort(),n?.timeout??3e4),a=await fetch(t,{body:n?.body,method:e,signal:r.signal}).finally(()=>clearTimeout(i));if(!a.ok)throw Error(a.statusText);return a},o=(e,t,n,r)=>{if(typeof t!=`string`){t.addEventListener(e,n,r);return}document.addEventListener(e,e=>{for(let r of e.composedPath())if(r instanceof HTMLElement&&r.matches(t)){try{n.call(r,e)}catch(e){console.error(e)}break}},r)},s=(e,t)=>{for(let e of t?.on??[])if(!e)return;document.readyState===`loading`?o(`DOMContentLoaded`,document,e,{once:!0}):e()},c=r(),l=i(),u=(e,t)=>{d(t)&&e()},d=e=>{switch(e.on){case`global`:return!0;case`endpoint`:return!!e.where.includes(c)}},f=`modulepreload`,p=function(e,t){return new URL(e,t).href},m={},h=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=p(t,n),t=s(t),t in m)return;m[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:f,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};s(()=>{document.documentElement.classList.remove(`no-js`),document.documentElement.classList.add(`js`),o(`click`,`.close`,function(){this.parentNode?.classList.add(`invisible`)}),o(`click`,`.searxng_init_map`,async function(e){e.preventDefault(),this.classList.remove(`searxng_init_map`),u(()=>h(async()=>{let{default:e}=await import(`./chunk/BnnvKC7b.min.js`);return{default:e}},__vite__mapDeps([0,1]),import.meta.url).then(({default:e})=>new e(this)),{on:`endpoint`,where:[t.results]})}),l.plugins?.includes(`infiniteScroll`)&&u(()=>h(async()=>{let{default:e}=await import(`./chunk/DpvWr1cn.min.js`);return{default:e}},__vite__mapDeps([2,3,4]),import.meta.url).then(({default:e})=>new e),{on:`endpoint`,where:[t.results]}),l.plugins?.includes(`calculator`)&&u(()=>h(async()=>{let{default:e}=await import(`./chunk/C8c7HJzp.min.js`);return{default:e}},__vite__mapDeps([5,4,3]),import.meta.url).then(({default:e})=>new e),{on:`endpoint`,where:[t.results]})}),s(()=>{h(()=>import(`./chunk/C93hSkpT.min.js`),__vite__mapDeps([6,3]),import.meta.url),h(()=>import(`./chunk/5Ako-qGW.min.js`),__vite__mapDeps([7,4,3]),import.meta.url),l.autocomplete&&h(()=>import(`./chunk/DvCYLbJr.min.js`),__vite__mapDeps([8,3]),import.meta.url)},{on:[c===t.index]}),s(()=>{h(()=>import(`./chunk/C93hSkpT.min.js`),__vite__mapDeps([6,3]),import.meta.url),h(()=>import(`./chunk/od7pNHfk.min.js`),__vite__mapDeps([9,3]),import.meta.url),h(()=>import(`./chunk/5Ako-qGW.min.js`),__vite__mapDeps([7,4,3]),import.meta.url),l.autocomplete&&h(()=>import(`./chunk/DvCYLbJr.min.js`),__vite__mapDeps([8,3]),import.meta.url)},{on:[c===t.results]}),s(()=>{h(()=>import(`./chunk/e2-9fzwE.min.js`),__vite__mapDeps([10,3]),import.meta.url)},{on:[c===t.preferences]});export{e as a,l as i,o as n,n as r,a as t};
var e=class{id;constructor(e){this.id=e,queueMicrotask(()=>this.invoke())}async invoke(){try{console.debug(`[PLUGIN] ${this.id}: Running...`);let e=await this.run();if(!e)return;console.debug(`[PLUGIN] ${this.id}: Running post-exec...`),await this.post(e)}catch(e){console.error(`[PLUGIN] ${this.id}:`,e)}finally{console.debug(`[PLUGIN] ${this.id}: Done.`)}}},t={index:`index`,results:`results`,preferences:`preferences`,unknown:`unknown`},n={closeDetail:void 0,scrollPageToSelected:void 0,selectImage:void 0,selectNext:void 0,selectPrevious:void 0},r=()=>{let e=document.querySelector(`meta[name="endpoint"]`)?.getAttribute(`content`);return e&&e in t?e:t.unknown},i=()=>{let e=document.querySelector(`script[client_settings]`)?.getAttribute(`client_settings`);if(!e)return{};try{return JSON.parse(atob(e))}catch(e){return console.error(`Failed to load client_settings:`,e),{}}},a=async(e,t,n)=>{let r=new AbortController,i=setTimeout(()=>r.abort(),n?.timeout??3e4),a=await fetch(t,{body:n?.body,method:e,signal:r.signal}).finally(()=>clearTimeout(i));if(!a.ok)throw Error(a.statusText);return a},o=(e,t,n,r)=>{if(typeof t!=`string`){t.addEventListener(e,n,r);return}document.addEventListener(e,e=>{for(let r of e.composedPath())if(r instanceof HTMLElement&&r.matches(t)){try{n.call(r,e)}catch(e){console.error(e)}break}},r)},s=(e,t)=>{for(let e of t?.on??[])if(!e)return;document.readyState===`loading`?o(`DOMContentLoaded`,document,e,{once:!0}):e()},c=r(),l=i(),u=(e,t)=>{d(t)&&e()},d=e=>{switch(e.on){case`global`:return!0;case`endpoint`:return!!e.where.includes(c)}},f=`modulepreload`,p=function(e,t){return new URL(e,t).href},m={},h=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,new URL(`../../../src/node/plugins/importAnalysisBuild.ts`,import.meta.url)).href}r=o(t.map(t=>{if(t=p(t,n),t=s(t),t in m)return;m[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:f,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};s(()=>{document.documentElement.classList.remove(`no-js`),document.documentElement.classList.add(`js`),o(`click`,`.close`,function(){this.parentNode?.classList.add(`invisible`)}),o(`click`,`.searxng_init_map`,async function(e){e.preventDefault(),this.classList.remove(`searxng_init_map`),u(()=>h(async()=>{let{default:e}=await import(`./chunk/BnnvKC7b.min.js`);return{default:e}},__vite__mapDeps([0,1]),import.meta.url).then(({default:e})=>new e(this)),{on:`endpoint`,where:[t.results]})}),l.plugins?.includes(`infiniteScroll`)&&u(()=>h(async()=>{let{default:e}=await import(`./chunk/DpvWr1cn.min.js`);return{default:e}},__vite__mapDeps([2,3,4]),import.meta.url).then(({default:e})=>new e),{on:`endpoint`,where:[t.results]}),l.plugins?.includes(`calculator`)&&u(()=>h(async()=>{let{default:e}=await import(`./chunk/C8c7HJzp.min.js`);return{default:e}},__vite__mapDeps([5,4,3]),import.meta.url).then(({default:e})=>new e),{on:`endpoint`,where:[t.results]})}),s(()=>{h(()=>import(`./chunk/C93hSkpT.min.js`),__vite__mapDeps([6,3]),import.meta.url),h(()=>import(`./chunk/5Ako-qGW.min.js`),__vite__mapDeps([7,4,3]),import.meta.url),l.autocomplete&&h(()=>import(`./chunk/DvCYLbJr.min.js`),__vite__mapDeps([8,3]),import.meta.url)},{on:[c===t.index]}),s(()=>{h(()=>import(`./chunk/C93hSkpT.min.js`),__vite__mapDeps([6,3]),import.meta.url),h(()=>import(`./chunk/od7pNHfk.min.js`),__vite__mapDeps([9,3]),import.meta.url),h(()=>import(`./chunk/5Ako-qGW.min.js`),__vite__mapDeps([7,4,3]),import.meta.url),l.autocomplete&&h(()=>import(`./chunk/DvCYLbJr.min.js`),__vite__mapDeps([8,3]),import.meta.url)},{on:[c===t.results]}),s(()=>{h(()=>import(`./chunk/e2-9fzwE.min.js`),__vite__mapDeps([10,3]),import.meta.url)},{on:[c===t.preferences]});export{e as a,l as i,o as n,n as r,a as t};
//# sourceMappingURL=sxng-core.min.js.map

File diff suppressed because one or more lines are too long

View File

@@ -60,7 +60,7 @@
</p>
<p class="result-filesize">{{ _label(_("Filesize"), result.filesize) }}</p>
<p class="result-source">{{ _label(_("Source"), result.source) }}</p>
<p class="result-engines">{{ _label(_("Engines"), ", ".join(result.engines)) }}</p>
<p class="result-engine">{{ _label(_("Engine"), result.engine) }}</p>
<p class="result-url"><span>{{ _("View source") }}:</span>{{- "" -}}
<a {{ _target(results_on_new_tab) }} href="{{ result.url }}">{{ result.url }}</a>
</p>

View File

@@ -23,16 +23,17 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-06-19 05:08+0000\n"
"Last-Translator: Raithlin <raithlin@noreply.codeberg.org>\n"
"Language-Team: Afrikaans <https://translate.codeberg.org/projects/searxng/"
"searxng/af/>\n"
"Language: af\n"
"Language-Team: Afrikaans "
"<https://translate.codeberg.org/projects/searxng/searxng/af/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\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"
"X-Generator: Weblate 2026.6.1\n"
"Generated-By: Babel 2.18.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -76,7 +77,7 @@ msgid "videos"
msgstr "videos"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "radio"
@@ -550,7 +551,7 @@ msgstr "geantwoord"
msgid "No item found"
msgstr "Geen item gevind"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "Bron"
@@ -646,7 +647,7 @@ msgstr "Genereer verskillende ewekansige waardes"
msgid "Compute {func} of the arguments"
msgstr "Bereken {func} van die opsies"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr "Geplaas deur {author}"
@@ -664,19 +665,19 @@ msgstr "{title} (UITGEDIEN)"
msgid "This entry has been superseded by"
msgstr "Hierdie inskrywing was vervang deur"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Kanaal"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "bitsnelheid"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "stemme"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "klikke"
@@ -712,15 +713,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "Die prent kon nie afgelaai word nie."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Taal"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "boekgradering"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "Lêer kwaliteit"
@@ -1013,7 +1014,6 @@ msgid "Privacy"
msgstr "Privaatheid"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Enjins"
@@ -1656,6 +1656,10 @@ msgstr "Beeldformate"
msgid "original format"
msgstr "oorspronklike formaat"
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Enjin"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Bekyk bron"
@@ -2162,7 +2166,3 @@ msgstr "versteek video"
#~ msgid "Format"
#~ msgstr "Formaat"
#~ msgid "Engine"
#~ msgstr "Enjin"

View File

@@ -31,19 +31,20 @@
# nebras <nebras@noreply.codeberg.org>, 2026.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-06-28 18:07+0000\n"
"Last-Translator: nebras <nebras@noreply.codeberg.org>\n"
"Language-Team: Arabic <https://translate.codeberg.org/projects/searxng/"
"searxng/ar/>\n"
"Language: ar\n"
"Language-Team: Arabic "
"<https://translate.codeberg.org/projects/searxng/searxng/ar/>\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : "
"n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Weblate 2026.6.1\n"
"Generated-By: Babel 2.18.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -87,7 +88,7 @@ msgid "videos"
msgstr "ڤيديوهات"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "إذاعة"
@@ -561,7 +562,7 @@ msgstr "تمت الإجابة"
msgid "No item found"
msgstr "لم يتم العثور على عنصر"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "مصدر"
@@ -657,7 +658,7 @@ msgstr "توليد قِيم عشوائية مختلفة"
msgid "Compute {func} of the arguments"
msgstr "حساب {func} من الحجج"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr "منشور بواسطة {author}"
@@ -675,19 +676,19 @@ msgstr "{title} (قديم)"
msgid "This entry has been superseded by"
msgstr "تم استبدال هذا الإدخال بـ"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "القناة"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "معدل البت"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "تصويتات"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "نقرات"
@@ -721,15 +722,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "لا يمكن تنزيل الصورة."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "اللغة"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "تقييم الكتاب"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "جودة الملف"
@@ -1021,7 +1022,6 @@ msgid "Privacy"
msgstr "الخصوصية"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "المحركات"
@@ -1661,6 +1661,10 @@ msgstr "صيغ الصور"
msgid "original format"
msgstr "الصيغة الاصلية"
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "محرك"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "عرض المصدر"
@@ -2400,7 +2404,3 @@ msgstr "إخفاء الفيديو"
#~ msgid "Format"
#~ msgstr "صيغة"
#~ msgid "Engine"
#~ msgstr "محرك"

View File

@@ -21,19 +21,18 @@
# muha7a <muha7a@noreply.codeberg.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"PO-Revision-Date: 2026-07-17 12:20+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-05-19 12:07+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"Language-Team: Bulgarian <https://translate.codeberg.org/projects/searxng/"
"searxng/bg/>\n"
"Language: bg\n"
"Language-Team: Bulgarian "
"<https://translate.codeberg.org/projects/searxng/searxng/bg/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\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"
"X-Generator: Weblate 2026.6.1\n"
"Generated-By: Babel 2.18.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -77,7 +76,7 @@ msgid "videos"
msgstr "видео"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "радио"
@@ -551,7 +550,7 @@ msgstr "Отговорено"
msgid "No item found"
msgstr "Не е намерен артикул"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "Източник"
@@ -647,7 +646,7 @@ msgstr "Генерирайте различни произволни стойн
msgid "Compute {func} of the arguments"
msgstr "Изчислете {func} на аргументите"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr ""
@@ -665,19 +664,19 @@ msgstr "{title} (ОСТАРЯЛО)"
msgid "This entry has been superseded by"
msgstr "Този запис е заменен от"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Канал"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "Скорост"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "Гласове"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "клика"
@@ -713,15 +712,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "Снимката не може да бъде свалена."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Език"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "Рейтинг на книги"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "Качество на файл"
@@ -1007,7 +1006,6 @@ msgid "Privacy"
msgstr "Поверителност"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Търсачки"
@@ -1017,7 +1015,7 @@ msgstr "Използвани търсачки в момента"
#: searx/templates/simple/preferences.html:246
msgid "Special Queries"
msgstr "Специални Запитвания"
msgstr "Специялни Запитвания"
#: searx/templates/simple/preferences.html:254
msgid "Cookies"
@@ -1659,6 +1657,10 @@ msgstr ""
msgid "original format"
msgstr ""
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Търсачка"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Покажи източник"
@@ -2402,5 +2404,3 @@ msgstr "скрий видеото"
#~ msgid "Format"
#~ msgstr "Формат"
#~ msgid "Engine"
#~ msgstr "Търсачка"

View File

@@ -29,7 +29,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-05-19 12:07+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"Language: bn\n"
@@ -82,7 +82,7 @@ msgid "videos"
msgstr "ভিডিও"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "বেতার"
@@ -556,7 +556,7 @@ msgstr "উত্তরকৃত"
msgid "No item found"
msgstr "কোন আইটেম পাওয়া যায়নি"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "উৎস"
@@ -652,7 +652,7 @@ msgstr "বিভিন্ন এলোমেলো মান তৈরি ক
msgid "Compute {func} of the arguments"
msgstr "{func} এই আদেশ কম্পিউট করো"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr ""
@@ -670,19 +670,19 @@ msgstr "{title} (অচল)"
msgid "This entry has been superseded by"
msgstr "এই এনট্রিটি দ্বারা বাতিল করা হয়েছে৷"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "চ্যানেল"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "বিটরেট"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "ভোট"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "ক্লিক সংখ্যা"
@@ -717,15 +717,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "ছবিটি ডাউনলোড করা যায়নি ।"
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "ভাষা"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "বই পর্যালোচনা"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "নথি মান"
@@ -1013,7 +1013,6 @@ msgid "Privacy"
msgstr "গোপনীয়তা"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "ইঞ্জিন"
@@ -1650,6 +1649,10 @@ msgstr ""
msgid "original format"
msgstr ""
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "ইঞ্জিন"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "উৎস দেখুন"
@@ -2159,6 +2162,3 @@ msgstr "ভিডিও লুকিয়ে ফেলুন"
#~ msgid "Format"
#~ msgstr "সজ্জা"
#~ msgid "Engine"
#~ msgstr "ইঞ্জিন"

View File

@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-05-19 12:07+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"Language: bo\n"
@@ -66,7 +66,7 @@ msgid "videos"
msgstr "བརྙན་ཟློས།"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr ""
@@ -540,7 +540,7 @@ msgstr ""
msgid "No item found"
msgstr "རྣམ་གྲངས་གང་ཡང་རྙེད་རྒྱུ་མ་བྱུང་།"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr ""
@@ -636,7 +636,7 @@ msgstr "ངེས་མེད་གྲངས་ཀ་ཁ་ཤས་ཐོབ་
msgid "Compute {func} of the arguments"
msgstr ""
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr ""
@@ -654,19 +654,19 @@ msgstr ""
msgid "This entry has been superseded by"
msgstr "འཚོལ་བྱང་འདི་གཞན་གྱིས་ཚབ་བྱེད་འདུག"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr ""
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr ""
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr ""
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr ""
@@ -694,15 +694,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr ""
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr ""
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr ""
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr ""
@@ -980,7 +980,6 @@ msgid "Privacy"
msgstr "མི་སྒེར་གསང་དོན།"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "སྒུལ་བྱེད།"
@@ -1607,6 +1606,10 @@ msgstr ""
msgid "original format"
msgstr ""
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr ""
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "ཡོངས་ཁུངས་ལ་ལྟ།"
@@ -2292,6 +2295,3 @@ msgstr "རྙན་ཟློས་སྦས།"
#~ msgid "Format"
#~ msgstr ""
#~ msgid "Engine"
#~ msgstr ""

View File

@@ -29,18 +29,19 @@
# MaCl0wSt <macl0wst@noreply.codeberg.org>, 2026.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-06-17 20:19+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"Language-Team: Catalan <https://translate.codeberg.org/projects/searxng/"
"searxng/ca/>\n"
"Language: ca\n"
"Language-Team: Catalan "
"<https://translate.codeberg.org/projects/searxng/searxng/ca/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\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"
"X-Generator: Weblate 2026.6.1\n"
"Generated-By: Babel 2.18.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -84,7 +85,7 @@ msgid "videos"
msgstr "vídeos"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "radio"
@@ -558,7 +559,7 @@ msgstr "contestat"
msgid "No item found"
msgstr "No s'ha trobat cap element"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "Origen"
@@ -654,7 +655,7 @@ msgstr "Genera diferents valors aleatoris"
msgid "Compute {func} of the arguments"
msgstr ""
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr ""
@@ -672,19 +673,19 @@ msgstr "{title} (OBSOLET)"
msgid "This entry has been superseded by"
msgstr "Aquesta entrada ha estat substituïda per"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Canal"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "tasa de bits"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "vots"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "clics"
@@ -719,15 +720,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "No s'ha pogut baixar la imatge."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Llengua"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "Valoració de llibre"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "Qualitat del fitxer"
@@ -1012,7 +1013,6 @@ msgid "Privacy"
msgstr "Privadesa"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Motors de cerca"
@@ -1658,6 +1658,10 @@ msgstr ""
msgid "original format"
msgstr "format original"
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Cercador"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Veure el codi font"
@@ -2420,7 +2424,3 @@ msgstr "oculta el vídeo"
#~ msgid "Format"
#~ msgstr "Format"
#~ msgid "Engine"
#~ msgstr "Cercador"

View File

@@ -25,19 +25,20 @@
# radekjuthner <radekjuthner@noreply.codeberg.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-06-16 07:07+0000\n"
"Last-Translator: Fjuro <fjuro@noreply.codeberg.org>\n"
"Language-Team: Czech <https://translate.codeberg.org/projects/searxng/"
"searxng/cs/>\n"
"Language: cs\n"
"Language-Team: Czech "
"<https://translate.codeberg.org/projects/searxng/searxng/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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\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"
"X-Generator: Weblate 2026.6.1\n"
"Generated-By: Babel 2.18.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -81,7 +82,7 @@ msgid "videos"
msgstr "videa"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "rádio"
@@ -555,7 +556,7 @@ msgstr "zodpovězené"
msgid "No item found"
msgstr "Nic nenalezeno"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "zdroj"
@@ -651,7 +652,7 @@ msgstr "Generování náhodných hodnot"
msgid "Compute {func} of the arguments"
msgstr "Vypočítat {func} argumentů"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr "Autor: {author}"
@@ -669,19 +670,19 @@ msgstr "{title} (ZASTARALÉ)"
msgid "This entry has been superseded by"
msgstr "Tato položka byla nahrazena položkou"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Kanál"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "datový tok"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "hlasy"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "kliknutí"
@@ -716,15 +717,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "Obrázek se nepodařilo stáhnout."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Jazyk"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "Hodnocení knih"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "Množství souborů"
@@ -1015,7 +1016,6 @@ msgid "Privacy"
msgstr "Soukromí"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Vyhledávače"
@@ -1659,6 +1659,10 @@ msgstr "Formáty obrázků"
msgid "original format"
msgstr "původní formát"
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Vyhledávač"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Zobrazit zdroj"
@@ -2406,7 +2410,3 @@ msgstr "skrýt video"
#~ msgid "Format"
#~ msgstr "Formát"
#~ msgid "Engine"
#~ msgstr "Vyhledávač"

View File

@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-05-19 12:07+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"Language: cy\n"
@@ -74,7 +74,7 @@ msgid "videos"
msgstr "fideos"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "radio"
@@ -548,7 +548,7 @@ msgstr "wedi'i ateb"
msgid "No item found"
msgstr "Ni chanfuwyd eitem"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "Ffynhonnell"
@@ -644,7 +644,7 @@ msgstr "Cynhyrchu gwahanol werthoedd ar hap"
msgid "Compute {func} of the arguments"
msgstr ""
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr ""
@@ -662,19 +662,19 @@ msgstr "{title} (OBSOLETE)"
msgid "This entry has been superseded by"
msgstr "Mae'r cofnod hwn wedi ei ddisodli gan"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Sianel"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "cyfradd didau"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "pleidleisiau"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "cliciau"
@@ -710,15 +710,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "Doedd dim modd islwytho'r ddelwedd."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Iaith"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "Gradd llyfr"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "ansawdd ffeil"
@@ -1003,7 +1003,6 @@ msgid "Privacy"
msgstr "Preifatrwydd"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Peiriannau"
@@ -1639,6 +1638,10 @@ msgstr ""
msgid "original format"
msgstr ""
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Peiriant"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Gweld y ffynhonnell"
@@ -2360,6 +2363,3 @@ msgstr "cuddio'r fideo"
#~ msgid "Format"
#~ msgstr "Fformat"
#~ msgid "Engine"
#~ msgstr "Peiriant"

View File

@@ -17,18 +17,19 @@
# return42 <return42@noreply.codeberg.org>, 2025, 2026.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-06-16 07:07+0000\n"
"Last-Translator: AndersNordh <andersnordh@noreply.codeberg.org>\n"
"Language-Team: Danish <https://translate.codeberg.org/projects/searxng/"
"searxng/da/>\n"
"Language: da\n"
"Language-Team: Danish "
"<https://translate.codeberg.org/projects/searxng/searxng/da/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\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"
"X-Generator: Weblate 2026.6.1\n"
"Generated-By: Babel 2.18.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -72,7 +73,7 @@ msgid "videos"
msgstr "videoer"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "Radio"
@@ -546,7 +547,7 @@ msgstr "svaret"
msgid "No item found"
msgstr "Intet fundet"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "Kilde"
@@ -642,7 +643,7 @@ msgstr "Generér forskellige tilfældige værdier"
msgid "Compute {func} of the arguments"
msgstr "Beregn {func} af argumenterne"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr "Indsendt af {author}"
@@ -660,19 +661,19 @@ msgstr "{title} (FORÆLDET)"
msgid "This entry has been superseded by"
msgstr "Denne værdi er blevet overskrevet af"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Kanal"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "Bitrate"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "Stemmer"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "Klik"
@@ -708,15 +709,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "Dette billede kunne ikke downloades."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Sprog"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "Bogbedømmelse"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "Filkvalitet"
@@ -1009,7 +1010,6 @@ msgid "Privacy"
msgstr "Privatliv"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Søgemaskiner"
@@ -1655,6 +1655,10 @@ msgstr "Billedformater"
msgid "original format"
msgstr "originalt format"
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Maskine"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Vis kilde"
@@ -2415,7 +2419,3 @@ msgstr "skjul video"
#~ msgid "Format"
#~ msgstr "Format"
#~ msgid "Engine"
#~ msgstr "Maskine"

View File

@@ -32,18 +32,19 @@
# Serpensin <serpensin@noreply.codeberg.org>, 2026.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-06-17 20:19+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"Language-Team: German <https://translate.codeberg.org/projects/searxng/"
"searxng/de/>\n"
"Language: de\n"
"Language-Team: German "
"<https://translate.codeberg.org/projects/searxng/searxng/de/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\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"
"X-Generator: Weblate 2026.6.1\n"
"Generated-By: Babel 2.18.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -87,7 +88,7 @@ msgid "videos"
msgstr "Videos"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "Radio"
@@ -561,7 +562,7 @@ msgstr "beantwortet"
msgid "No item found"
msgstr "Keine Einträge gefunden"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "Quelle"
@@ -657,7 +658,7 @@ msgstr "Erzeugt diverse Zufallswerte"
msgid "Compute {func} of the arguments"
msgstr "Berechne {func} zu den Argumenten"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr "Beitrag von {author}"
@@ -675,19 +676,19 @@ msgstr "{title} (OBSOLET)"
msgid "This entry has been superseded by"
msgstr "Dieser Eintrag wurde überschrieben von"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Kanal"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "Bitrate"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "Stimmen"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "Clicks"
@@ -723,15 +724,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "Das Bild konnte nicht heruntergeladen werden."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Sprache"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "Buchbewertung"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "Dateiqualität"
@@ -1030,7 +1031,6 @@ msgid "Privacy"
msgstr "Privatsphäre"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Suchmaschinen"
@@ -1674,6 +1674,10 @@ msgstr "Bildformate"
msgid "original format"
msgstr "Originalformat"
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Suchmaschine"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Seite besuchen"
@@ -2462,7 +2466,3 @@ msgstr "Video verstecken"
#~ msgid "Format"
#~ msgstr "Format"
#~ msgid "Engine"
#~ msgstr "Suchmaschine"

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2025-08-13 08:09+0000\n"
"Last-Translator: ijxp <ijxp@noreply.codeberg.org>\n"
"Language: dv\n"
@@ -63,7 +63,7 @@ msgid "videos"
msgstr "ވީޑިޔޯތައް"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "ރޭޑިއޯ އިންނެވެ"
@@ -537,7 +537,7 @@ msgstr ""
msgid "No item found"
msgstr ""
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr ""
@@ -633,7 +633,7 @@ msgstr ""
msgid "Compute {func} of the arguments"
msgstr ""
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr ""
@@ -651,19 +651,19 @@ msgstr ""
msgid "This entry has been superseded by"
msgstr ""
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr ""
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr ""
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr ""
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr ""
@@ -691,15 +691,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr ""
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr ""
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr ""
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr ""
@@ -977,7 +977,6 @@ msgid "Privacy"
msgstr ""
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr ""
@@ -1602,6 +1601,10 @@ msgstr ""
msgid "original format"
msgstr ""
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr ""
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr ""
@@ -2023,6 +2026,3 @@ msgstr ""
#~ msgid "Format"
#~ msgstr ""
#~ msgid "Engine"
#~ msgstr ""

View File

@@ -23,18 +23,19 @@
# gkalathas <gkalathas@noreply.codeberg.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-06-17 20:19+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"Language-Team: Greek <https://translate.codeberg.org/projects/searxng/"
"searxng/el/>\n"
"Language: el_GR\n"
"Language-Team: Greek "
"<https://translate.codeberg.org/projects/searxng/searxng/el/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\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"
"X-Generator: Weblate 2026.6.1\n"
"Generated-By: Babel 2.18.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -78,7 +79,7 @@ msgid "videos"
msgstr "Βίντεο"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "ράδιο"
@@ -552,7 +553,7 @@ msgstr "απάντησε"
msgid "No item found"
msgstr "Δεν βρέθηκαν αντικείμενα"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "Πηγή"
@@ -648,7 +649,7 @@ msgstr "Δημιουργία διαφορετικών τυχαίων τιμών"
msgid "Compute {func} of the arguments"
msgstr "Υπολογίστε τη {func} των ορισμάτων"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr "Δημοσιεύτηκε απο {author}"
@@ -666,19 +667,19 @@ msgstr "{title} (ΠΑΡΩΧΗΜΕΝΟΣ)"
msgid "This entry has been superseded by"
msgstr "Αυτή η καταχώριση έχει αντικατασταθεί από"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Κανάλι"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "ρυθμός μετάδοσης"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "ψήφους"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "κλικ"
@@ -714,15 +715,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "Αποτυχία μεταφόρτωσης εικόνας."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Γλώσσα"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "Βαθμολογία βιβλίου"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "Ποιότητα αρχείου"
@@ -1015,7 +1016,6 @@ msgid "Privacy"
msgstr "Ιδιωτικότητα"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Μηχανές"
@@ -1669,6 +1669,10 @@ msgstr ""
msgid "original format"
msgstr ""
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Μηχανή"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Προβολή πηγής"
@@ -2435,7 +2439,3 @@ msgstr "απόκρυψη βίντεο"
#~ msgid "Format"
#~ msgstr "Μορφή"
#~ msgid "Engine"
#~ msgstr "Μηχανή"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2014-01-30 15:22+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@@ -59,7 +59,7 @@ msgid "videos"
msgstr ""
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr ""
@@ -533,7 +533,7 @@ msgstr ""
msgid "No item found"
msgstr ""
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr ""
@@ -629,7 +629,7 @@ msgstr ""
msgid "Compute {func} of the arguments"
msgstr ""
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr ""
@@ -647,19 +647,19 @@ msgstr ""
msgid "This entry has been superseded by"
msgstr ""
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr ""
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr ""
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr ""
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr ""
@@ -687,15 +687,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr ""
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr ""
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr ""
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr ""
@@ -973,7 +973,6 @@ msgid "Privacy"
msgstr ""
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr ""
@@ -1598,6 +1597,10 @@ msgstr ""
msgid "original format"
msgstr ""
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr ""
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr ""
@@ -2284,6 +2287,3 @@ msgstr ""
#~ msgid "Format"
#~ msgstr ""
#~ msgid "Engine"
#~ msgstr ""

View File

@@ -23,7 +23,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-05-19 12:07+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"Language: eo\n"
@@ -76,7 +76,7 @@ msgid "videos"
msgstr "videoj"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "radio"
@@ -550,7 +550,7 @@ msgstr ""
msgid "No item found"
msgstr "Nenio trovita"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "Fonto"
@@ -646,7 +646,7 @@ msgstr "Generi diversajn hazardajn valorojn"
msgid "Compute {func} of the arguments"
msgstr ""
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr ""
@@ -664,19 +664,19 @@ msgstr "{title} (MALAKTUALA)"
msgid "This entry has been superseded by"
msgstr "Tiu ĉi enigo estis anstataŭigita per"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Kanalo"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "bito-rapido"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "voĉoj"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "klakoj"
@@ -711,15 +711,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "La bildo ne eblis elŝuti."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Lingvo"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "Taksado de libro"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "Dosiera kvalito"
@@ -1002,7 +1002,6 @@ msgid "Privacy"
msgstr "Privateco"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Serĉiloj"
@@ -1641,6 +1640,10 @@ msgstr ""
msgid "original format"
msgstr ""
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Serĉilo"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Vidi fonton"
@@ -2372,6 +2375,3 @@ msgstr "kaŝi videojn"
#~ msgid "Format"
#~ msgstr "Formato"
#~ msgid "Engine"
#~ msgstr "Serĉilo"

View File

@@ -50,18 +50,19 @@
# gallegonovato <gallegonovato@noreply.codeberg.org>, 2025, 2026.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-06-14 13:07+0000\n"
"Last-Translator: gallegonovato <gallegonovato@noreply.codeberg.org>\n"
"Language-Team: Spanish <https://translate.codeberg.org/projects/searxng/"
"searxng/es/>\n"
"Language: es\n"
"Language-Team: Spanish "
"<https://translate.codeberg.org/projects/searxng/searxng/es/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\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"
"X-Generator: Weblate 2026.6.1\n"
"Generated-By: Babel 2.18.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -105,7 +106,7 @@ msgid "videos"
msgstr "vídeos"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "radio"
@@ -579,7 +580,7 @@ msgstr "contestado"
msgid "No item found"
msgstr "Ningún artículo encontrado"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "Fuente"
@@ -675,7 +676,7 @@ msgstr "Generar varios valores aleatorios"
msgid "Compute {func} of the arguments"
msgstr "Calcular {func} de los argumentos"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr "Publicado por {author}"
@@ -693,19 +694,19 @@ msgstr "{title} (OBSOLETO)"
msgid "This entry has been superseded by"
msgstr "Esta entrada ha sido sustituida por"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Canal"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "bitrate"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "votos"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "clics"
@@ -740,15 +741,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "No se pudo descargar la imagen."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Idioma"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "Valoración del libro"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "Calidad del archivo"
@@ -1041,7 +1042,6 @@ msgid "Privacy"
msgstr "Privacidad"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Motores"
@@ -1688,6 +1688,10 @@ msgstr "Formatos de imagen"
msgid "original format"
msgstr "formato original"
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Motor"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Ver fuente"
@@ -2459,7 +2463,3 @@ msgstr "ocultar video"
#~ msgid "Format"
#~ msgstr "Formato"
#~ msgid "Engine"
#~ msgstr "Motor"

View File

@@ -19,18 +19,19 @@
# return42 <return42@noreply.codeberg.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-06-14 13:07+0000\n"
"Last-Translator: Priit Jõerüüt <jrtcdbrg@noreply.codeberg.org>\n"
"Language-Team: Estonian <https://translate.codeberg.org/projects/searxng/"
"searxng/et/>\n"
"Language: et\n"
"Language-Team: Estonian "
"<https://translate.codeberg.org/projects/searxng/searxng/et/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\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"
"X-Generator: Weblate 2026.6.1\n"
"Generated-By: Babel 2.18.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -74,7 +75,7 @@ msgid "videos"
msgstr "videod"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "raadio"
@@ -548,7 +549,7 @@ msgstr "vastatud"
msgid "No item found"
msgstr "Üksust ei leitud"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "Allikas"
@@ -644,7 +645,7 @@ msgstr "Genereeri erinevaid juhuslikke väärtusi"
msgid "Compute {func} of the arguments"
msgstr "Arvuta argumentidest {func}"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr "Postituse autor on {author}"
@@ -662,19 +663,19 @@ msgstr "{title} (VANANENUD)"
msgid "This entry has been superseded by"
msgstr "See üksus on asendatud"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Kanal"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "bitikiirus"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "hääled"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "klikid"
@@ -709,15 +710,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "Pilti ei saanud alla laadida."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Keel"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "Raamatu hinnang"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "Faili kvaliteet"
@@ -1010,7 +1011,6 @@ msgid "Privacy"
msgstr "Privaatsus"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Otsingumootorid"
@@ -1653,6 +1653,10 @@ msgstr "Pildivormingud"
msgid "original format"
msgstr "algne vorming"
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Otsingumootor"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Vaata lähtekoodi"
@@ -2393,7 +2397,3 @@ msgstr "peida video"
#~ msgid "Format"
#~ msgstr "Vorming"
#~ msgid "Engine"
#~ msgstr "Otsingumootor"

View File

@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-05-01 07:50+0000\n"
"Last-Translator: alexgabi <alexgabi@noreply.codeberg.org>\n"
"Language: eu\n"
@@ -73,7 +73,7 @@ msgid "videos"
msgstr "bideoak"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "irratia"
@@ -547,7 +547,7 @@ msgstr "erantzunda"
msgid "No item found"
msgstr "Ez da elementurik aurkitu"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "Iturria"
@@ -643,7 +643,7 @@ msgstr "Ausazko balio ezberdinak sortu"
msgid "Compute {func} of the arguments"
msgstr "Kalkulatu argumentuen {func}"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr "{author}-k argitaratuta"
@@ -661,19 +661,19 @@ msgstr "{title} (ZAHARKITUA)"
msgid "This entry has been superseded by"
msgstr "Sarrera hau hurrengoarekin ordezkatu da"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Kanala"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "bit emaria"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "botoak"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "klikak"
@@ -708,15 +708,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "Ezin izan da deskargatu irudia."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Hizkuntza"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "Liburuaren balorazioa"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "Fitxategiaren kalitatea"
@@ -1007,7 +1007,6 @@ msgid "Privacy"
msgstr "Pribatutasuna"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Bilatzaileak"
@@ -1652,6 +1651,10 @@ msgstr ""
msgid "original format"
msgstr ""
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Bilatzailea"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Ikusi iturria"
@@ -2392,6 +2395,3 @@ msgstr "ezkutatu bideoa"
#~ msgid "Format"
#~ msgstr "Formatua"
#~ msgid "Engine"
#~ msgstr "Bilatzailea"

View File

@@ -29,7 +29,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-05-19 12:07+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"Language: fa_IR\n"
@@ -82,7 +82,7 @@ msgid "videos"
msgstr "ویدیوها"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "رادیو"
@@ -556,7 +556,7 @@ msgstr "جواب داده شده"
msgid "No item found"
msgstr "چیزی پیدا نشد"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "منبع"
@@ -652,7 +652,7 @@ msgstr "ایجاد مقادیر تصادفی متفاوت"
msgid "Compute {func} of the arguments"
msgstr "Compute {func} of the arguments"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr ""
@@ -670,19 +670,19 @@ msgstr "{title} (منسوخ شده)"
msgid "This entry has been superseded by"
msgstr "این ورودی معلق شده است، توسط"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "کانال"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "بیت ریت"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "رای ها"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "کلیک ها"
@@ -717,15 +717,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "تصویر نمیتواند دانلود شود."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "زبان"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "رتبه بندی کتاب"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "کیفیت فایل"
@@ -1010,7 +1010,6 @@ msgid "Privacy"
msgstr "حریم شخصی"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "موتورها"
@@ -1651,6 +1650,10 @@ msgstr ""
msgid "original format"
msgstr ""
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "موتور"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "نمایش منبع"
@@ -2404,6 +2407,3 @@ msgstr "پنهان‌سازی ویدئو"
#~ msgid "Format"
#~ msgstr "قالب"
#~ msgid "Engine"
#~ msgstr "موتور"

View File

@@ -23,7 +23,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-05-19 12:07+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"Language: fi\n"
@@ -76,7 +76,7 @@ msgid "videos"
msgstr "videot"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "radio"
@@ -550,7 +550,7 @@ msgstr "vastattu"
msgid "No item found"
msgstr "Tietuetta ei löytynyt"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "Lähde"
@@ -646,7 +646,7 @@ msgstr "Generoi satunnaislukuja"
msgid "Compute {func} of the arguments"
msgstr "Laske argumenteista {func}"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr "Lähettäjä {author}"
@@ -664,19 +664,19 @@ msgstr "{title} (VANHENTUNUT)"
msgid "This entry has been superseded by"
msgstr "Tämän kohdan on korvannut"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Kanava"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "bittinopeus"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "ääntä"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "klikkaukset"
@@ -711,15 +711,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "Tätä kuvaa ei voida ladata."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Kieli"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "Kirjan arvostelu"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "Tiedoston laatu"
@@ -1012,7 +1012,6 @@ msgid "Privacy"
msgstr "Yksityisyys"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Hakukoneet"
@@ -1656,6 +1655,10 @@ msgstr ""
msgid "original format"
msgstr ""
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Hakukone"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Näytä lähde"
@@ -2411,6 +2414,3 @@ msgstr "piilota video"
#~ msgid "Format"
#~ msgstr "Muoto"
#~ msgid "Engine"
#~ msgstr "Hakukone"

View File

@@ -20,19 +20,20 @@
# return42 <return42@noreply.codeberg.org>, 2025, 2026.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-07-08 00:07+0000\n"
"Last-Translator: marc-lopez <marc-lopez@noreply.codeberg.org>\n"
"Language-Team: Filipino <https://translate.codeberg.org/projects/searxng/"
"searxng/fil/>\n"
"Language: fil\n"
"Language-Team: Filipino "
"<https://translate.codeberg.org/projects/searxng/searxng/fil/>\n"
"Plural-Forms: nplurals=2; plural=(n == 1 || n==2 || n==3) || (n % 10 != 4"
" || n % 10 != 6 || n % 10 != 9);\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==2 || n==3) || (n % 10 != 4 || "
"n % 10 != 6 || n % 10 != 9);\n"
"X-Generator: Weblate 2026.6.1\n"
"Generated-By: Babel 2.18.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -76,7 +77,7 @@ msgid "videos"
msgstr "mga bidyo"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "radyo"
@@ -550,7 +551,7 @@ msgstr "sinagot"
msgid "No item found"
msgstr "Walang nakita na aytem"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "Pinagmulan"
@@ -646,7 +647,7 @@ msgstr "Maglabas ng iba't ibang halaga"
msgid "Compute {func} of the arguments"
msgstr "Ikwenta ang {func} ng mga argumento"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr ""
@@ -664,19 +665,19 @@ msgstr "{title} (Luma)"
msgid "This entry has been superseded by"
msgstr "Ang tala na ito ay ipinagpaliban ng"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Tyanel"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "bitrate"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "mga boto"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "mga click"
@@ -710,15 +711,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "Hindi ma-download ang imahe na ito."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Wika"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "rating ng libro"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "Kalidad ng file"
@@ -1005,7 +1006,6 @@ msgid "Privacy"
msgstr "Pagiging Pribado"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Engines"
@@ -1652,6 +1652,10 @@ msgstr "Mga format ng larawan"
msgid "original format"
msgstr "orihinal na format"
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Engine"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Tignan ang source"
@@ -2420,7 +2424,3 @@ msgstr "itago ang video"
#~ msgid "Format"
#~ msgstr "Anyo"
#~ msgid "Engine"
#~ msgstr "Engine"

View File

@@ -47,18 +47,19 @@
# Minami-o <minami-o@noreply.codeberg.org>, 2026.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-06-17 20:19+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"Language-Team: French <https://translate.codeberg.org/projects/searxng/"
"searxng/fr/>\n"
"Language: fr\n"
"Language-Team: French "
"<https://translate.codeberg.org/projects/searxng/searxng/fr/>\n"
"Plural-Forms: nplurals=2; plural=n > 1;\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"
"X-Generator: Weblate 2026.6.1\n"
"Generated-By: Babel 2.18.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -102,7 +103,7 @@ msgid "videos"
msgstr "vidéos"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "radio"
@@ -576,7 +577,7 @@ msgstr "répondu"
msgid "No item found"
msgstr "Pas d'élément trouvé"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "Source"
@@ -672,7 +673,7 @@ msgstr "Crée des valeurs aléatoires différentes"
msgid "Compute {func} of the arguments"
msgstr "Calcule les {func} des arguments"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr "Publié par {author}"
@@ -690,19 +691,19 @@ msgstr "{title} (OBSOLÈTE)"
msgid "This entry has been superseded by"
msgstr "Cet item a été remplacé par"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Chaîne"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "débit"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "voix"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "clics"
@@ -738,15 +739,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "L'image n'a pas pu être téléchargée."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Langue"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "Évaluation du livre"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "Qualité du fichier"
@@ -1041,7 +1042,6 @@ msgid "Privacy"
msgstr "Vie privée"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Moteurs"
@@ -1687,6 +1687,10 @@ msgstr "Formats d'images"
msgid "original format"
msgstr "Format original"
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Moteur"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Voir la source"
@@ -2466,7 +2470,3 @@ msgstr "cacher la vidéo"
#~ msgid "Format"
#~ msgstr "Format"
#~ msgid "Engine"
#~ msgstr "Moteur"

View File

@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-05-05 12:37+0000\n"
"Last-Translator: Aindriú Mac Giolla Eoin <aindriu80@noreply.codeberg.org>"
"\n"
@@ -65,7 +65,7 @@ msgid "videos"
msgstr "físeáin"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "raidió"
@@ -539,7 +539,7 @@ msgstr "freagraí"
msgid "No item found"
msgstr "Níor aimsíodh aon rud"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "Foinse"
@@ -635,7 +635,7 @@ msgstr "Cruthaigh luachanna randamacha éag"
msgid "Compute {func} of the arguments"
msgstr "Ríomh {func} na n-argóintí"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr "Arna chur suas ag {author}"
@@ -653,19 +653,19 @@ msgstr "{title} (ÚSÁIDEACH)"
msgid "This entry has been superseded by"
msgstr "Cuireadh an iontráil seo in ionad ag"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Cainéal"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "ráta giotán"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "vótaí"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "cliceáil"
@@ -700,15 +700,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "Ní fhéadfaí an íomhá a íoslódáil."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Teanga"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "Rátáil leabhar"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "Cáilíocht comhad"
@@ -1003,7 +1003,6 @@ msgid "Privacy"
msgstr "Príobháideacht"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Innill"
@@ -1652,6 +1651,10 @@ msgstr ""
msgid "original format"
msgstr ""
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Inneall"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Féach foinse"
@@ -1967,6 +1970,3 @@ msgstr "físeán a cheilt"
#~ msgid "Format"
#~ msgstr "Formáid"
#~ msgid "Engine"
#~ msgstr "Inneall"

View File

@@ -14,18 +14,19 @@
# return42 <return42@noreply.codeberg.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-06-16 07:07+0000\n"
"Last-Translator: ghose <ghose@noreply.codeberg.org>\n"
"Language-Team: Galician <https://translate.codeberg.org/projects/searxng/"
"searxng/gl/>\n"
"Language: gl\n"
"Language-Team: Galician "
"<https://translate.codeberg.org/projects/searxng/searxng/gl/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\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"
"X-Generator: Weblate 2026.6.1\n"
"Generated-By: Babel 2.18.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -69,7 +70,7 @@ msgid "videos"
msgstr "vídeos"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "radio"
@@ -543,7 +544,7 @@ msgstr "respondido"
msgid "No item found"
msgstr "Non se atoparon elementos"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "Fonte"
@@ -639,7 +640,7 @@ msgstr "Xerar diferentes valores aleatorios"
msgid "Compute {func} of the arguments"
msgstr "Cálculo {func} dos argumentos"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr "Publicado por {author}"
@@ -657,19 +658,19 @@ msgstr "{title} (OBSOLETO)"
msgid "This entry has been superseded by"
msgstr "Esta entrada foi proporcionada por"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Canle"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "taxa de bits"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "votos"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "clicks"
@@ -704,15 +705,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "Non se puido descargar a imaxe."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Idioma"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "Valoración do libro"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "Calidade do ficheiro"
@@ -1005,7 +1006,6 @@ msgid "Privacy"
msgstr "Privacidade"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Motores"
@@ -1652,6 +1652,10 @@ msgstr "Formatos de imaxe"
msgid "original format"
msgstr "formato orixinal"
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Motor"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Ver fonte"
@@ -2415,7 +2419,3 @@ msgstr "agochar vídeo"
#~ msgid "Format"
#~ msgstr "Formato"
#~ msgid "Engine"
#~ msgstr "Motor"

View File

@@ -28,7 +28,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-05-19 12:07+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"Language: he\n"
@@ -82,7 +82,7 @@ msgid "videos"
msgstr "וידאו"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "רדיו"
@@ -556,7 +556,7 @@ msgstr "נענו"
msgid "No item found"
msgstr "לא נמצא פריט"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "מקור"
@@ -652,7 +652,7 @@ msgstr "מייצרת ערכים אקראיים שונים"
msgid "Compute {func} of the arguments"
msgstr "חשב {func} של הארגומנטים"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr ""
@@ -670,19 +670,19 @@ msgstr "{title} (OBSOLETE)"
msgid "This entry has been superseded by"
msgstr "רשומה זו הוחלפה על ידי"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "ערוץ"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "קצב נתונים"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "הצבעות"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "לחיצות"
@@ -717,15 +717,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "אי אפשר להוריד את תמונה זו."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "שפה"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "דירוג ספרים"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "איכות קובץ"
@@ -1009,7 +1009,6 @@ msgid "Privacy"
msgstr "פרטיות"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "מנועי חיפוש"
@@ -1648,6 +1647,10 @@ msgstr ""
msgid "original format"
msgstr ""
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "מנוע"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "צפה במקור"
@@ -2371,6 +2374,3 @@ msgstr "הסתר וידאו"
#~ msgid "Format"
#~ msgstr "פורמט"
#~ msgid "Engine"
#~ msgstr "מנוע"

View File

@@ -22,20 +22,19 @@
# SecularSteve <secularsteve@noreply.codeberg.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"PO-Revision-Date: 2026-07-17 12:20+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-05-19 12:07+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"Language-Team: Croatian <https://translate.codeberg.org/projects/searxng/"
"searxng/hr/>\n"
"Language: hr\n"
"Language-Team: Croatian "
"<https://translate.codeberg.org/projects/searxng/searxng/hr/>\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 2026.6.1\n"
"Generated-By: Babel 2.18.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -79,7 +78,7 @@ msgid "videos"
msgstr "video zapisi"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "radio"
@@ -553,7 +552,7 @@ msgstr "odgovoren"
msgid "No item found"
msgstr "Nije pronađena nijedna stavka"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "Izvor"
@@ -649,10 +648,10 @@ msgstr "Generirajte različite nasumične vrijednosti"
msgid "Compute {func} of the arguments"
msgstr "Izračunajte {func} argumenata"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr "Objavio/la {author}"
msgstr ""
#: searx/engines/openstreetmap.py:155
msgid "Show route in map .."
@@ -667,19 +666,19 @@ msgstr "{title} (ZASTARJELO)"
msgid "This entry has been superseded by"
msgstr "Ovaj je unos zamijenio"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Kanal"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "bitrata"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "glasovi"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "klikovi"
@@ -714,15 +713,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "Sliku nije moguće preuzeti."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Jezik"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "Ocjena knjige"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "Kvaliteta datoteke"
@@ -738,11 +737,11 @@ msgstr ""
#: searx/plugins/calculator.py:25
msgid "Calculator"
msgstr "Kalkulator"
msgstr ""
#: searx/plugins/calculator.py:26
msgid "Parses and solves mathematical expressions."
msgstr "Analizira i rješava matematičke izraze."
msgstr ""
#: searx/plugins/hash_plugin.py:33
msgid "Hash plugin"
@@ -814,11 +813,11 @@ msgstr "Vaš user-agent je: "
#: searx/plugins/time_zone.py:33
msgid "Timezones plugin"
msgstr "Dodatak za vremenske zone"
msgstr ""
#: searx/plugins/time_zone.py:34
msgid "Display the current time on different time zones."
msgstr "Prikaz trenutnog vremena u različitim vremenskim zonama."
msgstr ""
#: searx/plugins/tor_check.py:41
msgid "Tor check plugin"
@@ -987,16 +986,14 @@ msgid ""
"This is a preview of the settings used by the 'Search URL' you used to "
"get here."
msgstr ""
"Ovo je pregled postavki koje koristi \"URL pretraživanja\" koji ste "
"koristili da biste došli ovdje."
#: searx/templates/simple/preferences.html:158
msgid "Press save to copy these preferences to your browser."
msgstr "Pritisnite spremi da biste kopirali ove postavke u svoj preglednik."
msgstr ""
#: searx/templates/simple/preferences.html:159
msgid "Click here to view your browser preferences instead:"
msgstr "Kliknite ovdje za pregled postavki preglednika:"
msgstr ""
#: searx/templates/simple/preferences.html:169
msgid "General"
@@ -1015,7 +1012,6 @@ msgid "Privacy"
msgstr "Privatnost"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Tražilice"
@@ -1654,11 +1650,15 @@ msgstr "Razlučivost"
#: searx/templates/simple/result_templates/images.html:55
msgid "Image formats"
msgstr "Formati slika"
msgstr ""
#: searx/templates/simple/result_templates/images.html:56
msgid "original format"
msgstr "izvorni format"
msgstr ""
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Motor"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
@@ -2407,5 +2407,3 @@ msgstr "sakrij video"
#~ msgid "Format"
#~ msgstr "Format"
#~ msgid "Engine"
#~ msgstr "Motor"

View File

@@ -23,18 +23,19 @@
# return42 <return42@noreply.codeberg.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-06-16 07:07+0000\n"
"Last-Translator: kratos <makesocialfoss32@keemail.me>\n"
"Language-Team: Hungarian <https://translate.codeberg.org/projects/searxng/"
"searxng/hu/>\n"
"Language: hu\n"
"Language-Team: Hungarian "
"<https://translate.codeberg.org/projects/searxng/searxng/hu/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\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"
"X-Generator: Weblate 2026.6.1\n"
"Generated-By: Babel 2.18.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -78,7 +79,7 @@ msgid "videos"
msgstr "videók"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr "rádió"
@@ -552,7 +553,7 @@ msgstr "megválaszolt"
msgid "No item found"
msgstr "Nincs találat"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr "Forrás"
@@ -648,7 +649,7 @@ msgstr "Különböző véletlen értékek előállítása"
msgid "Compute {func} of the arguments"
msgstr "A(z) {func} értékének kiszámítása az argumentumokból"
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr "Közzétette: {author}"
@@ -666,19 +667,19 @@ msgstr "{title} (elavult)"
msgid "This entry has been superseded by"
msgstr "Ezt a bejegyzést leváltotta:"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr "Csatorna"
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr "bitráta:"
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr "szavazatok:"
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr "kattintások"
@@ -713,15 +714,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr "A kép nem tölthető le."
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr "Nyelv"
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr "Könyv értékelése"
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr "Fájlminőség"
@@ -1018,7 +1019,6 @@ msgid "Privacy"
msgstr "Adatvédelem"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Keresőmotorok"
@@ -1665,6 +1665,10 @@ msgstr "Képformátumok"
msgid "original format"
msgstr "eredeti formátum"
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr "Motor"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Forrás megtekintése"
@@ -2417,7 +2421,3 @@ msgstr "videó elrejtése"
#~ msgid "Format"
#~ msgstr "Formátum"
#~ msgid "Engine"
#~ msgstr "Motor"

View File

@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
"PO-Revision-Date: 2026-05-19 12:07+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"Language: ia\n"
@@ -65,7 +65,7 @@ msgid "videos"
msgstr "videos"
#. CATEGORY_NAMES['RADIO']
#: searx/engines/radio_browser.py:160 searx/searxng.msg
#: searx/engines/radio_browser.py:159 searx/searxng.msg
msgid "radio"
msgstr ""
@@ -539,7 +539,7 @@ msgstr ""
msgid "No item found"
msgstr "Nulle item trovate"
#: searx/engines/qwant.py:286
#: searx/engines/qwant.py:258
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
msgid "Source"
msgstr ""
@@ -635,7 +635,7 @@ msgstr "Generar differente valores aleatori"
msgid "Compute {func} of the arguments"
msgstr ""
#: searx/engines/boardreader.py:108
#: searx/engines/boardreader.py:107
#, python-brace-format
msgid "Posted by {author}"
msgstr ""
@@ -653,19 +653,19 @@ msgstr ""
msgid "This entry has been superseded by"
msgstr "Iste entrata esseva substituite per"
#: searx/engines/qwant.py:288
#: searx/engines/qwant.py:260
msgid "Channel"
msgstr ""
#: searx/engines/radio_browser.py:162
#: searx/engines/radio_browser.py:161
msgid "bitrate"
msgstr ""
#: searx/engines/radio_browser.py:163
#: searx/engines/radio_browser.py:162
msgid "votes"
msgstr ""
#: searx/engines/radio_browser.py:164
#: searx/engines/radio_browser.py:163
msgid "clicks"
msgstr ""
@@ -693,15 +693,15 @@ msgstr ""
msgid "The image could not be downloaded."
msgstr ""
#: searx/engines/zlibrary.py:80
#: searx/engines/zlibrary.py:79
msgid "Language"
msgstr ""
#: searx/engines/zlibrary.py:81
#: searx/engines/zlibrary.py:80
msgid "Book rating"
msgstr ""
#: searx/engines/zlibrary.py:82
#: searx/engines/zlibrary.py:81
msgid "File quality"
msgstr ""
@@ -983,7 +983,6 @@ msgid "Privacy"
msgstr "Confidentialitate"
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/result_templates/images.html:63
msgid "Engines"
msgstr "Motores"
@@ -1617,6 +1616,10 @@ msgstr ""
msgid "original format"
msgstr ""
#: searx/templates/simple/result_templates/images.html:63
msgid "Engine"
msgstr ""
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
msgstr "Vider fonte"
@@ -2337,6 +2340,3 @@ msgstr "occultar video"
#~ msgid "Format"
#~ msgstr ""
#~ msgid "Engine"
#~ msgstr ""

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