mirror of
https://github.com/searxng/searxng.git
synced 2026-07-31 12:21:24 +00:00
Compare commits
39 Commits
58e02a01ae
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
43b1cf48b7 | ||
|
|
057a77168d | ||
|
|
0be6f87801 | ||
|
|
ef3a6ea9fd | ||
|
|
f25b75e613 | ||
|
|
98e10f9ab4 | ||
|
|
a449518ed4 | ||
|
|
702f702f9b | ||
|
|
afdfd81613 | ||
|
|
c81ed99c69 | ||
|
|
ecf8497b65 | ||
|
|
e28131f8d4 | ||
|
|
81b0ed7b38 | ||
|
|
c01178d031 | ||
|
|
c73861ab46 | ||
|
|
891bc69550 | ||
|
|
d661b6114d | ||
|
|
8372f5d855 | ||
|
|
8f8b5d2b8d | ||
|
|
b060c780d0 | ||
|
|
6d8b550280 | ||
|
|
0909dbc9ef | ||
|
|
b4e94417b7 | ||
|
|
4f64d95013 | ||
|
|
ef8f6470e0 | ||
|
|
6da6eee265 | ||
|
|
277d8469cd | ||
|
|
81c9c23862 | ||
|
|
6913fba208 | ||
|
|
2daa4d4815 | ||
|
|
de8f73f434 | ||
|
|
9f9c00819e | ||
|
|
b72a87676f | ||
|
|
f2432e33d6 | ||
|
|
7b2199ecdf | ||
|
|
4a9c19d7bf | ||
|
|
5cb4cb2bc5 | ||
|
|
5a448596ab | ||
|
|
9c49b7e0d7 |
39
.github/scripts/ai_policy.cjs
vendored
Normal file
39
.github/scripts/ai_policy.cjs
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
// Closes issues and prs whose authors/agents don't accept the ai policy
|
||||
// https://github.com/searxng/searxng/blob/master/AI_POLICY.rst
|
||||
|
||||
module.exports = async ({ github, context }) => {
|
||||
const item = context.payload.pull_request || context.payload.issue;
|
||||
const body = item.body || '';
|
||||
const kind = context.payload.pull_request ? 'pull request' : 'issue';
|
||||
|
||||
// https://github.com/searxng/searxng/pull/6476#discussion_r3683782481
|
||||
const hasBox = /\[[Xx]\].*AI Policy/.test(body);
|
||||
const hasRef = /\[AI Policy\]:\s*https:\/\/github\.com\/searxng\/searxng\/.*AI_POLICY/.test(body);
|
||||
if (hasBox && hasRef) {
|
||||
return;
|
||||
}
|
||||
|
||||
const { owner, repo } = context.repo;
|
||||
await github.rest.issues.createComment({
|
||||
owner,
|
||||
repo,
|
||||
issue_number: item.number,
|
||||
body:
|
||||
'Hello! Thank you for your contribution.\n\n' +
|
||||
`Unfortunately your ${kind} was closed as the AI Policy has not been accepted.\n\n` +
|
||||
`Please open a new ${kind} after confirming your contribution aligns with our AI Policy.`,
|
||||
});
|
||||
await github.rest.issues.addLabels({
|
||||
owner,
|
||||
repo,
|
||||
issue_number: item.number,
|
||||
labels: ['invalid:slop'],
|
||||
});
|
||||
await github.rest.issues.update({
|
||||
owner,
|
||||
repo,
|
||||
issue_number: item.number,
|
||||
state: 'closed',
|
||||
state_reason: 'not_planned',
|
||||
});
|
||||
};
|
||||
38
.github/workflows/ai-policy.yml
vendored
Normal file
38
.github/workflows/ai-policy.yml
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
# yamllint disable rule:line-length
|
||||
name: AI Policy
|
||||
|
||||
# Closes any new issues and PRs from people (or agents) who don't accept the AI Policy
|
||||
|
||||
# yamllint disable-line rule:truthy
|
||||
on:
|
||||
issues:
|
||||
types: [opened]
|
||||
pull_request_target:
|
||||
types: [opened]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
check:
|
||||
name: Check AI Policy
|
||||
# for issues with an author who has not contributed before
|
||||
if: >-
|
||||
github.event.sender.type != 'Bot' &&
|
||||
contains(fromJSON('["NONE","FIRST_TIMER","FIRST_TIME_CONTRIBUTOR"]'),
|
||||
github.event.issue.author_association ||
|
||||
github.event.pull_request.author_association)
|
||||
runs-on: ubuntu-26.04-arm
|
||||
steps:
|
||||
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
with:
|
||||
persist-credentials: "false"
|
||||
|
||||
- uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
||||
with:
|
||||
script: |
|
||||
const script = require('./.github/scripts/ai_policy.cjs');
|
||||
await script({ github, context });
|
||||
16
.github/workflows/container.yml
vendored
16
.github/workflows/container.yml
vendored
@@ -50,14 +50,14 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Login to GHCR
|
||||
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
|
||||
uses: docker/login-action@371161bbe7024a29a25c5e19bfcbc0804fe9ad2c # v4.5.2
|
||||
with:
|
||||
registry: "ghcr.io"
|
||||
username: "${{ github.repository_owner }}"
|
||||
password: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
||||
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
||||
with:
|
||||
python-version: "${{ env.PYTHON_VERSION }}"
|
||||
|
||||
@@ -65,7 +65,7 @@ jobs:
|
||||
uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
with:
|
||||
ref: "${{ github.event.workflow_run.head_sha || github.sha }}"
|
||||
persist-credentials: "false"
|
||||
@@ -110,7 +110,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Login to GHCR
|
||||
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
|
||||
uses: docker/login-action@371161bbe7024a29a25c5e19bfcbc0804fe9ad2c # v4.5.2
|
||||
with:
|
||||
registry: "ghcr.io"
|
||||
username: "${{ github.repository_owner }}"
|
||||
@@ -120,7 +120,7 @@ jobs:
|
||||
uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
with:
|
||||
ref: "${{ github.event.workflow_run.head_sha || github.sha }}"
|
||||
persist-credentials: "false"
|
||||
@@ -144,21 +144,21 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
|
||||
uses: docker/login-action@371161bbe7024a29a25c5e19bfcbc0804fe9ad2c # v4.5.2
|
||||
with:
|
||||
registry: "docker.io"
|
||||
username: "${{ secrets.DOCKER_USER }}"
|
||||
password: "${{ secrets.DOCKER_TOKEN }}"
|
||||
|
||||
- name: Login to GHCR
|
||||
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
|
||||
uses: docker/login-action@371161bbe7024a29a25c5e19bfcbc0804fe9ad2c # v4.5.2
|
||||
with:
|
||||
registry: "ghcr.io"
|
||||
username: "${{ github.repository_owner }}"
|
||||
password: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
with:
|
||||
ref: "${{ github.event.workflow_run.head_sha || github.sha }}"
|
||||
persist-credentials: "false"
|
||||
|
||||
4
.github/workflows/data-update.yml
vendored
4
.github/workflows/data-update.yml
vendored
@@ -40,12 +40,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
||||
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
||||
with:
|
||||
python-version: "${{ env.PYTHON_VERSION }}"
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
with:
|
||||
persist-credentials: "false"
|
||||
|
||||
|
||||
4
.github/workflows/documentation.yml
vendored
4
.github/workflows/documentation.yml
vendored
@@ -32,12 +32,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
||||
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
||||
with:
|
||||
python-version: "${{ env.PYTHON_VERSION }}"
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
with:
|
||||
persist-credentials: "false"
|
||||
fetch-depth: "0"
|
||||
|
||||
10
.github/workflows/integration.yml
vendored
10
.github/workflows/integration.yml
vendored
@@ -34,12 +34,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
||||
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
||||
with:
|
||||
python-version: "${{ matrix.python-version }}"
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
with:
|
||||
persist-credentials: "false"
|
||||
|
||||
@@ -62,18 +62,18 @@ jobs:
|
||||
runs-on: ubuntu-26.04-arm
|
||||
steps:
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
||||
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
||||
with:
|
||||
python-version: "${{ env.PYTHON_VERSION }}"
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
|
||||
with:
|
||||
node-version: "26"
|
||||
check-latest: "true"
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
with:
|
||||
persist-credentials: "false"
|
||||
|
||||
|
||||
8
.github/workflows/l10n.yml
vendored
8
.github/workflows/l10n.yml
vendored
@@ -35,12 +35,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
||||
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
||||
with:
|
||||
python-version: "${{ env.PYTHON_VERSION }}"
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
with:
|
||||
token: "${{ secrets.WEBLATE_GITHUB_TOKEN }}"
|
||||
fetch-depth: "0"
|
||||
@@ -83,12 +83,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
||||
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
||||
with:
|
||||
python-version: "${{ env.PYTHON_VERSION }}"
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
with:
|
||||
token: "${{ secrets.WEBLATE_GITHUB_TOKEN }}"
|
||||
fetch-depth: "0"
|
||||
|
||||
489
client/simple/package-lock.json
generated
489
client/simple/package-lock.json
generated
@@ -15,22 +15,22 @@
|
||||
"swiped-events": "1.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "2.5.3",
|
||||
"@biomejs/biome": "2.5.5",
|
||||
"@types/node": "^26.1.1",
|
||||
"browserslist": "^4.28.6",
|
||||
"browserslist": "^4.28.7",
|
||||
"browserslist-to-esbuild": "^2.1.1",
|
||||
"edge.js": "^6.5.1",
|
||||
"less": "^4.6.7",
|
||||
"less": "^4.8.0",
|
||||
"mathjs": "^15.2.0",
|
||||
"sharp": "~0.35.3",
|
||||
"sort-package-json": "^4.0.0",
|
||||
"stylelint": "^17.14.0",
|
||||
"stylelint": "^17.14.1",
|
||||
"stylelint-config-standard-less": "^4.1.0",
|
||||
"stylelint-prettier": "^5.0.3",
|
||||
"svgo": "^4.0.2",
|
||||
"typescript": "~7.0.2",
|
||||
"vite": "^8.1.4",
|
||||
"vite-bundle-analyzer": "^1.3.8"
|
||||
"vite": "^8.1.5",
|
||||
"vite-bundle-analyzer": "^1.3.9"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/code-frame": {
|
||||
@@ -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.5",
|
||||
"resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.5.5.tgz",
|
||||
"integrity": "sha512-r1S8nFsAG1MY+vJFZALzIvwXAJv6ejDQ0mxP21Tgr9YK3ZFtjrvbBwDdNhx1rUqvccEIeNg20cYCNzl6Cr69pQ==",
|
||||
"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.5",
|
||||
"@biomejs/cli-darwin-x64": "2.5.5",
|
||||
"@biomejs/cli-linux-arm64": "2.5.5",
|
||||
"@biomejs/cli-linux-arm64-musl": "2.5.5",
|
||||
"@biomejs/cli-linux-x64": "2.5.5",
|
||||
"@biomejs/cli-linux-x64-musl": "2.5.5",
|
||||
"@biomejs/cli-win32-arm64": "2.5.5",
|
||||
"@biomejs/cli-win32-x64": "2.5.5"
|
||||
}
|
||||
},
|
||||
"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.5",
|
||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.5.5.tgz",
|
||||
"integrity": "sha512-kUrAhXVWUrwmAUnV2iXSK7umxKFysTwvqK+Ty6ptUcLY/7T3SnCAjUowE4uvwaEej6nXZ7hu/dTtbokKdsPeag==",
|
||||
"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.5",
|
||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.5.5.tgz",
|
||||
"integrity": "sha512-DamiYc5bUYZ2uxlfc+RLEPtz1Abb6PO5eTbOkufLpSGwd/7AMQAdxhFYiXmwwkJL8IsT8S7GvdgwDHqaMFAvKw==",
|
||||
"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.5",
|
||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.5.5.tgz",
|
||||
"integrity": "sha512-lRKF/pH/1RiYiBKExi3TCZVAtvzEm77aifrvcNiDFrR9WxeAnDUjDnseb6y2XV85mjitLs6SILGm2XG77cHtSQ==",
|
||||
"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.5",
|
||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.5.5.tgz",
|
||||
"integrity": "sha512-U4WMl/sy/E/Q73vf15VspakLRRs2LDFcCeBxJnQfXzssb88zpV6PJPaQ3ezhQ7H6Ht2/8bvuZeHgJWzmoxllZg==",
|
||||
"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.5",
|
||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.5.5.tgz",
|
||||
"integrity": "sha512-H/O39nJEw/2Zm/fm7hrmxxoF8kK/aU1uCoPp70ruXVbomaAdLpJJnCmL11Q2JotT8QVHH06So04Oq53lCSwSwQ==",
|
||||
"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.5",
|
||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.5.5.tgz",
|
||||
"integrity": "sha512-m7wC7tjX5Lrmo69dc4md8FeKpPU1NTCY1v7xUoQQ2vadWwNnBS0KZOG8471otFPHrTHihQJAjQPgMObpLvDe6A==",
|
||||
"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.5",
|
||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.5.5.tgz",
|
||||
"integrity": "sha512-7BryINPuYypLUAH3o/o5ZdgomJ4zn3EDR0ChZJst7n32S6ZhKbgHXuYydLu+YAnx59ehGFR0z/MG6qnzQi3Yyw==",
|
||||
"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.5",
|
||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.5.5.tgz",
|
||||
"integrity": "sha512-bIBFo+n6MIxdNcVFy5CrurbKiZQiUciK3bt8+O9I4wjFZNTfXLpi+giq47522eXqW5NBc9ulx7dR1SlZKi2J5g==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -244,22 +244,22 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@cacheable/memory": {
|
||||
"version": "2.0.9",
|
||||
"resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.0.9.tgz",
|
||||
"integrity": "sha512-HdMx6DoGywB30vacDbBsITbIX4pgFqj1zsrV58jZBUw3klzkNoXhj7qOqAgledhxG7YZI5rBSJg7Zp8/VG0DuA==",
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.2.0.tgz",
|
||||
"integrity": "sha512-CTLKqLItRCEixEAewD3/j9DB3/o96gpTPD4eJ1v+DGOlxZRZncRQkGYqqnAGCscYd6RNeXfGeiuCphsPtqyIfQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@cacheable/utils": "^2.4.1",
|
||||
"@cacheable/utils": "^2.5.0",
|
||||
"@keyv/bigmap": "^1.3.1",
|
||||
"hookified": "^1.15.1",
|
||||
"keyv": "^5.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@cacheable/utils": {
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.4.1.tgz",
|
||||
"integrity": "sha512-eiFgzCbIneyMlLOmNG4g9xzF7Hv3Mga4LjxjcSC/ues6VYq2+gUbQI8JqNuw/ZM8tJIeIaBGpswAsqV2V7ApgA==",
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.5.0.tgz",
|
||||
"integrity": "sha512-buipgOVDkkPXNR5+xBpDw7Zk2n1EvU7qBJCNUcL7rhQ//kfpOXPAvQ511Os0vpLYJ1pZnvudNytkQt2hst3wqA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -315,9 +315,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@csstools/css-syntax-patches-for-csstree": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.5.tgz",
|
||||
"integrity": "sha512-oNjBvzLq2GPZtJphCjLqXow/cHySHSgtxvKZb7OqSZ/xHgw6NWNhfad+6AB9cLeVm6eA9d/qMll3JdEHjy6M+A==",
|
||||
"version": "1.1.7",
|
||||
"resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.7.tgz",
|
||||
"integrity": "sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -1131,9 +1131,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@oxc-project/types": {
|
||||
"version": "0.138.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.138.0.tgz",
|
||||
"integrity": "sha512-1a7ZKmrRTCoN1XMZ4L0PyyqrMnrNlLyPuOkdSX2MZg7IiIGRUyurNhAm73ptDOraoBcIordsIGKNPKUzy3ZmfA==",
|
||||
"version": "0.139.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz",
|
||||
"integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
@@ -1215,9 +1215,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-android-arm64": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.4.tgz",
|
||||
"integrity": "sha512-EZLpf/8y7GXkkra90ML47kzik/GMP3EMcE9bPyHmRfxLC6z9+aW5A8poCsoxjrT5GfEcNAAvWwUHjvP1pUQkfw==",
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz",
|
||||
"integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -1232,9 +1232,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-darwin-arm64": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.4.tgz",
|
||||
"integrity": "sha512-aUi+HBvmYb7j8krl1+qJgkG8C17fO79gk3c+jPw4S8glRFc1DTija9S3EyaTSQUm5GJXYKDAsugBEhFHH2vYiQ==",
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz",
|
||||
"integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -1249,9 +1249,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-darwin-x64": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.4.tgz",
|
||||
"integrity": "sha512-F7hHC3gwY11+vByKPRWqwGbeXWVgKmL+pTGCinaEhdihzBV2aQ0fvZOch9cXYUOKuKKq429HeYXOqQLc7wFCEg==",
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz",
|
||||
"integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -1266,9 +1266,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-freebsd-x64": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.4.tgz",
|
||||
"integrity": "sha512-sI5yw+7s92SK6odiEhD5lKCBlWcpjHS5qyqpVQbZAJ0fIzEUXrmbl3DH2ybR3PZogulNJF+COLtmA8hUfvkCCQ==",
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz",
|
||||
"integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -1283,9 +1283,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-linux-arm-gnueabihf": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.4.tgz",
|
||||
"integrity": "sha512-mCi0OKgEieFircrtVYmQAFGszRtMnZ6fpZAXrxanXAu7lqZcsK1E1RAaZNG0uKAnxox3B1f4EyQNnoyMfN1vAA==",
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz",
|
||||
"integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -1300,9 +1300,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-linux-arm64-gnu": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.4.tgz",
|
||||
"integrity": "sha512-B9Ial3Kv5sh0SHnB1g/QWcUQCEvCF6QKGAl4zXypYj65mVI+B4AhFBwPtSN7pDrJeIx8Z7zdy4ntx+wQABom7w==",
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz",
|
||||
"integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -1320,9 +1320,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-linux-arm64-musl": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.4.tgz",
|
||||
"integrity": "sha512-lZVym0PuHE1KZ22gmFTC15lAkrg9iTszR617oYRB/iPY1A56ywoJzVKOJBKaot5RiikCObmur6pogpse3gRcng==",
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz",
|
||||
"integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -1340,9 +1340,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-linux-ppc64-gnu": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.4.tgz",
|
||||
"integrity": "sha512-t2DNiLJWNTbnEHyUzTumldML6ET4/g16467LZoDDJ3tSxGvguL5/NyC2lCsNKuyRycg9XeDQF5SSv+TNOhQEXg==",
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz",
|
||||
"integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
@@ -1360,9 +1360,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-linux-s390x-gnu": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.4.tgz",
|
||||
"integrity": "sha512-0WIRnL1Uw4BvTZRLQt+PVgo6ZKTJadlC2btP+/EOXv2f/DWbY0rEgl+y834mIVwP1FkTlWVTrGGJXf12lru7EQ==",
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz",
|
||||
"integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
@@ -1380,9 +1380,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-linux-x64-gnu": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.4.tgz",
|
||||
"integrity": "sha512-JWtGshGfX+oENAKonoNkqEJX+7hC8yfhi9GUyPX1VX4mdh1y5r+ZiJLR5XzAB0aoP6s/PcILsGjKq8O0mm24bw==",
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz",
|
||||
"integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -1400,9 +1400,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-linux-x64-musl": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.4.tgz",
|
||||
"integrity": "sha512-rT6yQcxUuXs4CnbofqwHRRV0iem349rLMYpTjkgQGLjrY4ado/eDzwPZPTCgTOlF6Nkp8NEv70yLMTn6qkWxsQ==",
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz",
|
||||
"integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -1420,9 +1420,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-openharmony-arm64": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.4.tgz",
|
||||
"integrity": "sha512-KXMGoboq5cyaCQjDA4GLuRiOwBQ0EyFnJoVViLeZ45/3rFItRODEr+NdsBcVpll40hhNArlm/speWGRvj08LzA==",
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz",
|
||||
"integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -1437,9 +1437,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-wasm32-wasi": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.4.tgz",
|
||||
"integrity": "sha512-5K83rb36oJiY7BCyE9zLZtGcPV4g5wvq+xwdO0XPIwDVZI8cyB/AUjkNXGb92/rnmezEkjMOpgY61rtwjQtFwg==",
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz",
|
||||
"integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==",
|
||||
"cpu": [
|
||||
"wasm32"
|
||||
],
|
||||
@@ -1456,9 +1456,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-win32-arm64-msvc": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.4.tgz",
|
||||
"integrity": "sha512-PnWBtw3TV5KOg69HQQDR0mnQuyCmSGR2pAB4DC1rPF808fgKeTUMj2EOEyKATpgiuxuR5APQmiDO7PDgEjTFSA==",
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz",
|
||||
"integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -1473,9 +1473,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-win32-x64-msvc": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.4.tgz",
|
||||
"integrity": "sha512-M1lpniBePobTfsa7Ks9a199e1akxsXn+GYBUKsEzv3YFzOm1HJAMNwKI3qr0Zq+mxwx9gOZoTdP1yXRYsZUocQ==",
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz",
|
||||
"integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2107,9 +2107,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.11.1",
|
||||
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.1.tgz",
|
||||
"integrity": "sha512-HYXq73DDpCtNzOmrFsm9eSwCvWCql0RzqjpDzXN9EadiLJ4DNat0nsZ/Bzmy+Ud12mb4/zKDY0cQ805ZzN+i0A==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"bin": {
|
||||
@@ -2140,9 +2140,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.7",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.7.tgz",
|
||||
"integrity": "sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -2160,9 +2160,9 @@
|
||||
],
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"baseline-browser-mapping": "^2.10.42",
|
||||
"caniuse-lite": "^1.0.30001803",
|
||||
"electron-to-chromium": "^1.5.389",
|
||||
"baseline-browser-mapping": "^2.10.44",
|
||||
"caniuse-lite": "^1.0.30001806",
|
||||
"electron-to-chromium": "^1.5.393",
|
||||
"node-releases": "^2.0.51",
|
||||
"update-browserslist-db": "^1.2.3"
|
||||
},
|
||||
@@ -2193,14 +2193,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/cacheable": {
|
||||
"version": "2.3.5",
|
||||
"resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.3.5.tgz",
|
||||
"integrity": "sha512-EQfaKe09tl615iNvq/TBRWTFf1AKJNXYQSsMx0Z3EI0nA+pVsVPS8wJhnRlkbdacKPh1d0qVIhwTc2zsQNFEEg==",
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.5.0.tgz",
|
||||
"integrity": "sha512-60cyAOytib/OzBw1JNSoSV/boK1AtHryDIjvVBk7XbN4ugfkM3+Sry7fEjNgPMGgOjuaZPAp8ruZ0Cxafwyq9g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@cacheable/memory": "^2.0.8",
|
||||
"@cacheable/utils": "^2.4.1",
|
||||
"@cacheable/memory": "^2.2.0",
|
||||
"@cacheable/utils": "^2.5.0",
|
||||
"hookified": "^1.15.0",
|
||||
"keyv": "^5.6.0",
|
||||
"qified": "^0.10.1"
|
||||
@@ -2217,9 +2217,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.30001806",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001806.tgz",
|
||||
"integrity": "sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -2635,9 +2635,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.396",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.396.tgz",
|
||||
"integrity": "sha512-yHiw2Y3C3H9U6TMbOfoWK/BPreiOPXRfTWPBwQBoZG6/8TB6eOPnsy5oaRYuatR7Fw2SJ4kKforgufeo7fq0EQ==",
|
||||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
@@ -2800,13 +2800,13 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/file-entry-cache": {
|
||||
"version": "11.1.3",
|
||||
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.3.tgz",
|
||||
"integrity": "sha512-oMbq0PD6VIiIwMF6LIa7MEwd/l9huKwmqRKXqmrkqIZv8CvRbfowL+L0ryAl8h//HfAS0zS+4SbYoRyAoA6BJA==",
|
||||
"version": "11.1.5",
|
||||
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.5.tgz",
|
||||
"integrity": "sha512-+PFTHITI08JIGhnNpGNI8T8inUpgZfk3GNEqfT9R2zZV2iFXg3CvqzSl/uEhs7TSGujYRELEANyDvS8Fj7+S7Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"flat-cache": "^6.1.22"
|
||||
"flat-cache": "^6.1.23"
|
||||
}
|
||||
},
|
||||
"node_modules/fill-range": {
|
||||
@@ -2823,21 +2823,21 @@
|
||||
}
|
||||
},
|
||||
"node_modules/flat-cache": {
|
||||
"version": "6.1.22",
|
||||
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.22.tgz",
|
||||
"integrity": "sha512-N2dnzVJIphnNsjHcrxGW7DePckJ6haPrSFqpsBUhHYgwtKGVq4JrBGielEGD2fCVnsGm1zlBVZ8wGhkyuetgug==",
|
||||
"version": "6.1.23",
|
||||
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.23.tgz",
|
||||
"integrity": "sha512-f++BY9pTk+983xK1FLzlLpmM0i0z+jHmx3QESGkURMXujQZz1k5wzwX6hjnQ8goaD0B+sYnDK1yZ6MTyZfUaqA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"cacheable": "^2.3.4",
|
||||
"cacheable": "^2.5.0",
|
||||
"flatted": "^3.4.2",
|
||||
"hookified": "^1.15.0"
|
||||
}
|
||||
},
|
||||
"node_modules/flatted": {
|
||||
"version": "3.4.2",
|
||||
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz",
|
||||
"integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==",
|
||||
"version": "3.4.3",
|
||||
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.3.tgz",
|
||||
"integrity": "sha512-/zipXxyO6rGvuNGDiULY9MvEGSkb2gaG4GGH4ygMi0ZZzyMHdUZBmntJmx5x1G2VuPytCwGN4xsJP6cw+sK+vQ==",
|
||||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
@@ -2964,9 +2964,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/globby": {
|
||||
"version": "16.2.0",
|
||||
"resolved": "https://registry.npmjs.org/globby/-/globby-16.2.0.tgz",
|
||||
"integrity": "sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==",
|
||||
"version": "16.2.2",
|
||||
"resolved": "https://registry.npmjs.org/globby/-/globby-16.2.2.tgz",
|
||||
"integrity": "sha512-NLvV9ubZ6NDsJaOpKPy3cQeJpKi9DcWiyCiFUpJPA0YihRqiE6RWaLUmgNNPr8MgPpLZjnBjSmou7uZBRJv9wA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -3070,29 +3070,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/ignore": {
|
||||
"version": "7.0.5",
|
||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
|
||||
"integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
|
||||
"version": "7.0.6",
|
||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz",
|
||||
"integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 4"
|
||||
}
|
||||
},
|
||||
"node_modules/image-size": {
|
||||
"version": "0.5.5",
|
||||
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
|
||||
"integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"bin": {
|
||||
"image-size": "bin/image-size.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/import-fresh": {
|
||||
"version": "3.3.1",
|
||||
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
|
||||
@@ -3318,9 +3304,9 @@
|
||||
"license": "Apache-2.0"
|
||||
},
|
||||
"node_modules/less": {
|
||||
"version": "4.6.7",
|
||||
"resolved": "https://registry.npmjs.org/less/-/less-4.6.7.tgz",
|
||||
"integrity": "sha512-o3UxHBPPVY1HtCXx15/z1NlknQiWyafRNbtLEv+6xFaDRI2g2xPKIH43do9dSwt8bGLTsjNSaifa48N3d6odsQ==",
|
||||
"version": "4.8.0",
|
||||
"resolved": "https://registry.npmjs.org/less/-/less-4.8.0.tgz",
|
||||
"integrity": "sha512-7Y7DJBMbsW29UGjOG6NGvxQEx71AaDcrryBwYCMaFwn0kj8FkSueKN9r9WexVOetKEhXh38kL++WJncfkEpS+g==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
@@ -3336,10 +3322,10 @@
|
||||
"optionalDependencies": {
|
||||
"errno": "^0.1.1",
|
||||
"graceful-fs": "^4.1.2",
|
||||
"image-size": "~0.5.0",
|
||||
"make-dir": "^5.1.0",
|
||||
"mime": "^1.4.1",
|
||||
"needle": "^3.1.0",
|
||||
"probe-image-size": "^7.2.3",
|
||||
"source-map": "~0.6.0"
|
||||
}
|
||||
},
|
||||
@@ -3611,6 +3597,14 @@
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/lodash.merge": {
|
||||
"version": "4.6.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
||||
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/lodash.truncate": {
|
||||
"version": "4.4.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
|
||||
@@ -3733,9 +3727,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/nanoid": {
|
||||
"version": "3.3.12",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz",
|
||||
"integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==",
|
||||
"version": "3.3.16",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz",
|
||||
"integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -3932,9 +3926,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"version": "8.5.16",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz",
|
||||
"integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==",
|
||||
"version": "8.5.22",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.22.tgz",
|
||||
"integrity": "sha512-KBDEIpLrvpv16pp3K0Fw+UCoZfopFjjgeB+0tA/aaThfEE74kKDLrgg603YvOWJyg3+WYtyq3xYsQWsIyZlPqQ==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -3952,7 +3946,7 @@
|
||||
],
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.12",
|
||||
"nanoid": "^3.3.16",
|
||||
"picocolors": "^1.1.1",
|
||||
"source-map-js": "^1.2.1"
|
||||
},
|
||||
@@ -4058,6 +4052,73 @@
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/probe-image-size": {
|
||||
"version": "7.3.0",
|
||||
"resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.3.0.tgz",
|
||||
"integrity": "sha512-7CaDeBwiAbh6ohXsvLbAZhO7wzsZAmaevfxe39qvCwRh8LyaZfDlBGGLU1CCTgrTLtCOdwBBhjOrIHaIIimHfQ==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/puzrin"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/nodeca"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"lodash.merge": "^4.6.2",
|
||||
"needle": "^2.5.2",
|
||||
"stream-parser": "~0.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/probe-image-size/node_modules/debug": {
|
||||
"version": "3.2.7",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
|
||||
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"ms": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"node_modules/probe-image-size/node_modules/iconv-lite": {
|
||||
"version": "0.4.24",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
||||
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"safer-buffer": ">= 2.1.2 < 3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/probe-image-size/node_modules/needle": {
|
||||
"version": "2.9.1",
|
||||
"resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz",
|
||||
"integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"debug": "^3.2.6",
|
||||
"iconv-lite": "^0.4.4",
|
||||
"sax": "^1.2.4"
|
||||
},
|
||||
"bin": {
|
||||
"needle": "bin/needle"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 4.4.x"
|
||||
}
|
||||
},
|
||||
"node_modules/property-information": {
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz",
|
||||
@@ -4198,13 +4259,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/rolldown": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.4.tgz",
|
||||
"integrity": "sha512-IjZYiLxZwpnhwhdBH2ugdTGVSdhCQUmLxLoqyjiL0JxYjyRst+5a0P3xfrTxJ5F638j4Mvvw5FAX5XE6eHpXbA==",
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz",
|
||||
"integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@oxc-project/types": "=0.138.0",
|
||||
"@oxc-project/types": "=0.139.0",
|
||||
"@rolldown/pluginutils": "^1.0.0"
|
||||
},
|
||||
"bin": {
|
||||
@@ -4214,21 +4275,21 @@
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@rolldown/binding-android-arm64": "1.1.4",
|
||||
"@rolldown/binding-darwin-arm64": "1.1.4",
|
||||
"@rolldown/binding-darwin-x64": "1.1.4",
|
||||
"@rolldown/binding-freebsd-x64": "1.1.4",
|
||||
"@rolldown/binding-linux-arm-gnueabihf": "1.1.4",
|
||||
"@rolldown/binding-linux-arm64-gnu": "1.1.4",
|
||||
"@rolldown/binding-linux-arm64-musl": "1.1.4",
|
||||
"@rolldown/binding-linux-ppc64-gnu": "1.1.4",
|
||||
"@rolldown/binding-linux-s390x-gnu": "1.1.4",
|
||||
"@rolldown/binding-linux-x64-gnu": "1.1.4",
|
||||
"@rolldown/binding-linux-x64-musl": "1.1.4",
|
||||
"@rolldown/binding-openharmony-arm64": "1.1.4",
|
||||
"@rolldown/binding-wasm32-wasi": "1.1.4",
|
||||
"@rolldown/binding-win32-arm64-msvc": "1.1.4",
|
||||
"@rolldown/binding-win32-x64-msvc": "1.1.4"
|
||||
"@rolldown/binding-android-arm64": "1.1.5",
|
||||
"@rolldown/binding-darwin-arm64": "1.1.5",
|
||||
"@rolldown/binding-darwin-x64": "1.1.5",
|
||||
"@rolldown/binding-freebsd-x64": "1.1.5",
|
||||
"@rolldown/binding-linux-arm-gnueabihf": "1.1.5",
|
||||
"@rolldown/binding-linux-arm64-gnu": "1.1.5",
|
||||
"@rolldown/binding-linux-arm64-musl": "1.1.5",
|
||||
"@rolldown/binding-linux-ppc64-gnu": "1.1.5",
|
||||
"@rolldown/binding-linux-s390x-gnu": "1.1.5",
|
||||
"@rolldown/binding-linux-x64-gnu": "1.1.5",
|
||||
"@rolldown/binding-linux-x64-musl": "1.1.5",
|
||||
"@rolldown/binding-openharmony-arm64": "1.1.5",
|
||||
"@rolldown/binding-wasm32-wasi": "1.1.5",
|
||||
"@rolldown/binding-win32-arm64-msvc": "1.1.5",
|
||||
"@rolldown/binding-win32-x64-msvc": "1.1.5"
|
||||
}
|
||||
},
|
||||
"node_modules/run-parallel": {
|
||||
@@ -4447,6 +4508,36 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/stream-parser": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz",
|
||||
"integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"debug": "2"
|
||||
}
|
||||
},
|
||||
"node_modules/stream-parser/node_modules/debug": {
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/stream-parser/node_modules/ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/string-width": {
|
||||
"version": "8.2.1",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.1.tgz",
|
||||
@@ -4497,9 +4588,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/stylelint": {
|
||||
"version": "17.14.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.14.0.tgz",
|
||||
"integrity": "sha512-8xkHPpdqYryeIsOgfsYTmr6cIeC4nLYWk5S8BPxpodq8mIuepggkMljsHewWfuAjj/+qpRKou2QerhjMH3iasg==",
|
||||
"version": "17.14.1",
|
||||
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.14.1.tgz",
|
||||
"integrity": "sha512-xVQwyiuxALUBNB2fBe0tmNemg9KqLtdj3T64mioFDar79B2cU8LIyz+3KL6LdiHs9NkeNfwxpKSaIVOY8f112g==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -4515,7 +4606,7 @@
|
||||
"dependencies": {
|
||||
"@csstools/css-calc": "^3.2.1",
|
||||
"@csstools/css-parser-algorithms": "^4.0.0",
|
||||
"@csstools/css-syntax-patches-for-csstree": "^1.1.5",
|
||||
"@csstools/css-syntax-patches-for-csstree": "^1.1.6",
|
||||
"@csstools/css-tokenizer": "^4.0.0",
|
||||
"@csstools/media-query-list-parser": "^5.0.0",
|
||||
"@csstools/selector-resolve-nested": "^4.0.0",
|
||||
@@ -4527,9 +4618,9 @@
|
||||
"debug": "^4.4.3",
|
||||
"fast-glob": "^3.3.3",
|
||||
"fastest-levenshtein": "^1.0.16",
|
||||
"file-entry-cache": "^11.1.3",
|
||||
"file-entry-cache": "^11.1.5",
|
||||
"global-modules": "^2.0.0",
|
||||
"globby": "^16.2.0",
|
||||
"globby": "^16.2.1",
|
||||
"globjoin": "^0.1.4",
|
||||
"html-tags": "^5.1.0",
|
||||
"ignore": "^7.0.5",
|
||||
@@ -4539,12 +4630,12 @@
|
||||
"micromatch": "^4.0.8",
|
||||
"normalize-path": "^3.0.0",
|
||||
"picocolors": "^1.1.1",
|
||||
"postcss": "^8.5.15",
|
||||
"postcss": "^8.5.16",
|
||||
"postcss-safe-parser": "^7.0.1",
|
||||
"postcss-selector-parser": "^7.1.4",
|
||||
"postcss-value-parser": "^4.2.0",
|
||||
"string-width": "^8.2.1",
|
||||
"supports-hyperlinks": "^4.4.0",
|
||||
"supports-hyperlinks": "^4.5.0",
|
||||
"svg-tags": "^1.0.0",
|
||||
"table": "^6.9.0",
|
||||
"write-file-atomic": "^7.0.1"
|
||||
@@ -4705,9 +4796,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/supports-hyperlinks": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-4.4.0.tgz",
|
||||
"integrity": "sha512-UKbpT93hN5Nr9go5UY7bopIB9YQlMz9nm/ct4IXt/irb5YRkn9WaqrOBJGZ5Pwvsd5FQzSVeYlGdXoCAPQZrPg==",
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-4.5.0.tgz",
|
||||
"integrity": "sha512-ZW2OvfeCXrNTbLakPUzjQG922EeGCOteFSVoek5DKStTh898wf7zgtuFlzQN8HfZCxC3Eh02yJVrRW51hADf+w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -5003,16 +5094,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.5",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-8.1.5.tgz",
|
||||
"integrity": "sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"lightningcss": "^1.32.0",
|
||||
"picomatch": "^4.0.5",
|
||||
"postcss": "^8.5.16",
|
||||
"rolldown": "~1.1.4",
|
||||
"postcss": "^8.5.17",
|
||||
"rolldown": "~1.1.5",
|
||||
"tinyglobby": "^0.2.17"
|
||||
},
|
||||
"bin": {
|
||||
@@ -5081,9 +5172,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/vite-bundle-analyzer": {
|
||||
"version": "1.3.8",
|
||||
"resolved": "https://registry.npmjs.org/vite-bundle-analyzer/-/vite-bundle-analyzer-1.3.8.tgz",
|
||||
"integrity": "sha512-IIk7WPhoYs7pyo75jwI+dFt7yykgjK7NY+dqnJtiZnyqP2k6NgPb3TY80FLFjtgnfk/o+OjI18+anKyeviCbRA==",
|
||||
"version": "1.3.9",
|
||||
"resolved": "https://registry.npmjs.org/vite-bundle-analyzer/-/vite-bundle-analyzer-1.3.9.tgz",
|
||||
"integrity": "sha512-hhy975B+ToseJaSJp3mURHriZUrMgaM2qx0BkP62kN6Yp46rw7EE3dl8ExFWYdn00OIwe7GbsA5PknvstNWG4Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
|
||||
@@ -29,21 +29,21 @@
|
||||
"swiped-events": "1.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "2.5.3",
|
||||
"@biomejs/biome": "2.5.5",
|
||||
"@types/node": "^26.1.1",
|
||||
"browserslist": "^4.28.6",
|
||||
"browserslist": "^4.28.7",
|
||||
"browserslist-to-esbuild": "^2.1.1",
|
||||
"edge.js": "^6.5.1",
|
||||
"less": "^4.6.7",
|
||||
"less": "^4.8.0",
|
||||
"mathjs": "^15.2.0",
|
||||
"sharp": "~0.35.3",
|
||||
"sort-package-json": "^4.0.0",
|
||||
"stylelint": "^17.14.0",
|
||||
"stylelint": "^17.14.1",
|
||||
"stylelint-config-standard-less": "^4.1.0",
|
||||
"stylelint-prettier": "^5.0.3",
|
||||
"svgo": "^4.0.2",
|
||||
"typescript": "~7.0.2",
|
||||
"vite": "^8.1.4",
|
||||
"vite-bundle-analyzer": "^1.3.8"
|
||||
"vite": "^8.1.5",
|
||||
"vite-bundle-analyzer": "^1.3.9"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,6 +112,15 @@ if [ "$(id -u)" -eq 0 ]; then
|
||||
fi
|
||||
|
||||
# ENVs aliases
|
||||
export GRANIAN_PORT="${SEARXNG_PORT:-$GRANIAN_PORT}"
|
||||
# https://github.com/searxng/searxng/issues/5934
|
||||
case "${SEARXNG_PORT:-}" in
|
||||
'') ;;
|
||||
*[!0-9]*)
|
||||
unset SEARXNG_PORT
|
||||
;;
|
||||
*)
|
||||
export GRANIAN_PORT="$SEARXNG_PORT"
|
||||
;;
|
||||
esac
|
||||
|
||||
exec /usr/local/searxng/.venv/bin/granian searx.webapp:app
|
||||
|
||||
@@ -32,7 +32,7 @@ By default and without any extensions, SearXNG serves these resolvers:
|
||||
- ``yandex``
|
||||
|
||||
With the above setting favicons are displayed, the user has the option to
|
||||
deactivate this feature in his settings. If the user is to have the option of
|
||||
deactivate this feature in their settings. If the user is to have the option of
|
||||
selecting from several *resolvers*, a further setting is required / but this
|
||||
setting will be discussed :ref:`later <register resolvers>` in this article,
|
||||
first we have to setup the favicons cache.
|
||||
|
||||
8
docs/dev/engines/online/exaapi.rst
Normal file
8
docs/dev/engines/online/exaapi.rst
Normal file
@@ -0,0 +1,8 @@
|
||||
.. _exaapi engine:
|
||||
|
||||
==============
|
||||
Exa API Engine
|
||||
==============
|
||||
|
||||
.. automodule:: searx.engines.exaapi
|
||||
:members:
|
||||
@@ -1,8 +0,0 @@
|
||||
.. _engine presearch:
|
||||
|
||||
================
|
||||
Presearch Engine
|
||||
================
|
||||
|
||||
.. automodule:: searx.engines.presearch
|
||||
:members:
|
||||
@@ -20,15 +20,11 @@ If you don't trust anyone, you can set up your own, see :ref:`installation`.
|
||||
|
||||
- :ref:`self hosted <installation>`
|
||||
- :ref:`no user tracking / no profiling <SearXNG protect privacy>`
|
||||
- script & cookies are optional
|
||||
- secure, encrypted connections
|
||||
- javascript & cookies are optional
|
||||
- :ref:`{{engines | length}} search engines <configured engines>`
|
||||
- `58 translations <https://translate.codeberg.org/projects/searxng/searxng/>`_
|
||||
- about 70 `well maintained <https://uptime.searxng.org/>`__ instances on searx.space_
|
||||
- :ref:`easy integration of search engines <demo online engine>`
|
||||
- professional development: `CI <https://github.com/searxng/searxng/actions>`_,
|
||||
`quality assurance <https://dev.searxng.org/>`_ &
|
||||
`automated tested UI <https://dev.searxng.org/screenshots.html>`_
|
||||
|
||||
.. sidebar:: be a part
|
||||
|
||||
|
||||
2
manage
2
manage
@@ -48,7 +48,7 @@ PATH="${PY_ENV}/bin:${REPO_ROOT}/node_modules/.bin:${GOROOT}/bin:${GOPATH}/bin:$
|
||||
|
||||
PYOBJECTS="searx"
|
||||
PY_SETUP_EXTRAS='[test]'
|
||||
GECKODRIVER_VERSION="v0.36.0"
|
||||
GECKODRIVER_VERSION="v0.37.0"
|
||||
# SPHINXOPTS=
|
||||
BLACK_OPTIONS=("--target-version" "py311" "--line-length" "120" "--skip-string-normalization")
|
||||
BLACK_TARGETS=("--exclude" "(searx/static|searx/languages.py)" "--include" 'searxng.msg|\.pyi?$' "searx" "searxng_extra" "tests")
|
||||
|
||||
@@ -4,7 +4,7 @@ cov-core==1.15.0
|
||||
black==25.9.0
|
||||
pylint==4.0.6
|
||||
splinter==0.21.0
|
||||
selenium==4.45.0
|
||||
selenium==4.46.0
|
||||
Sphinx==8.2.3;python_version <= "3.11"
|
||||
Sphinx==9.1.0; python_version > "3.11"
|
||||
sphinx-issues==6.0.0
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
certifi==2026.6.17
|
||||
certifi==2026.7.22
|
||||
babel==2.18.0
|
||||
flask-babel==4.0.0
|
||||
flask==3.1.3
|
||||
@@ -13,7 +13,7 @@ sniffio==1.3.1
|
||||
valkey==6.1.1
|
||||
markdown-it-py==4.2.0
|
||||
msgspec==0.21.1
|
||||
typer==0.26.8
|
||||
typer==0.27.0
|
||||
isodate==0.7.2
|
||||
whitenoise==6.12.0
|
||||
typing-extensions==4.16.0
|
||||
|
||||
@@ -16,7 +16,7 @@ from . import Answerer, AnswererInfo
|
||||
|
||||
def random_characters():
|
||||
random_string_letters = string.ascii_lowercase + string.digits + string.ascii_uppercase
|
||||
return [random.choice(random_string_letters) for _ in range(random.randint(8, 32))]
|
||||
return random.choices(random_string_letters, k=random.randint(8, 32))
|
||||
|
||||
|
||||
def random_string():
|
||||
|
||||
@@ -62,7 +62,7 @@ def bing(query: str, _sxng_locale: str) -> list[str]:
|
||||
# bing search autocompleter
|
||||
base_url = "https://www.bing.com/AS/Suggestions?"
|
||||
# cvid has to be a 32 character long string consisting of numbers and uppsercase characters
|
||||
cvid = ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(32))
|
||||
cvid = ''.join(random.choices(string.ascii_uppercase + string.digits, k=32))
|
||||
response = get(base_url + urlencode({'qry': query, 'csr': 1, 'cvid': cvid}))
|
||||
results: list[str] = []
|
||||
|
||||
|
||||
@@ -151,6 +151,6 @@ def get_token() -> str:
|
||||
if token:
|
||||
token = token.decode('UTF-8') # type: ignore
|
||||
else:
|
||||
token = ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(16))
|
||||
token = ''.join(random.choices(string.ascii_lowercase + string.digits, k=16))
|
||||
valkey_client.set(TOKEN_KEY, token, ex=TOKEN_LIVE_TIME)
|
||||
return token
|
||||
|
||||
@@ -48,7 +48,7 @@ class ExpireCacheCfg(msgspec.Struct): # pylint: disable=too-few-public-methods
|
||||
MAXHOLD_TIME: int = 60 * 60 * 24 * 7 # 7 days
|
||||
"""Hold time (default in sec.), after which a value is removed from the cache."""
|
||||
|
||||
MAINTENANCE_PERIOD: int = 60 * 60 # 2h
|
||||
MAINTENANCE_PERIOD: int = 60 * 60 # 1h
|
||||
"""Maintenance period in seconds / when :py:obj:`MAINTENANCE_MODE` is set to
|
||||
``auto``."""
|
||||
|
||||
@@ -458,12 +458,22 @@ 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 FROM {table} WHERE key = ?"
|
||||
sql = f"SELECT value, expire FROM {table} WHERE key = ?"
|
||||
row = self.DB.execute(sql, (key,)).fetchone()
|
||||
if row is None:
|
||||
return default
|
||||
|
||||
return self.deserialize(row[0])
|
||||
# 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)
|
||||
|
||||
def pairs(self, ctx: str) -> Iterator[tuple[str, typing.Any]]:
|
||||
"""Iterate over key/value pairs from table given by argument ``ctx``.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -288,7 +288,7 @@
|
||||
"oc": "Kwanza",
|
||||
"pa": "ਅੰਗੋਲਨ ਕਵਾਂਜ਼ਾ",
|
||||
"pl": "Kwanza",
|
||||
"pt": "Kwanza",
|
||||
"pt": "kwanza",
|
||||
"ru": "ангольская кванза",
|
||||
"si": "ක්වන්සා",
|
||||
"sr": "анголска кванза",
|
||||
@@ -334,6 +334,7 @@
|
||||
"ro": "Peso argentinian",
|
||||
"ru": "аргентинское песо",
|
||||
"sk": "Argentinské peso",
|
||||
"sl": "argentinski peso",
|
||||
"sr": "аргентински пезос",
|
||||
"sv": "Argentinsk peso",
|
||||
"ta": "ஆர்ஜென்டின பீசோ",
|
||||
@@ -2002,7 +2003,7 @@
|
||||
"eo": "ganaa cedio",
|
||||
"es": "cedi",
|
||||
"fi": "Cedi",
|
||||
"fr": "Cedi",
|
||||
"fr": "cedi",
|
||||
"ga": "cedi",
|
||||
"gl": "Cedi",
|
||||
"he": "סדי גאני",
|
||||
@@ -2952,7 +2953,7 @@
|
||||
"pap": "won nortkoreano",
|
||||
"pl": "won północnokoreański",
|
||||
"pt": "won norte-coreano",
|
||||
"ro": "Won nord-coreean",
|
||||
"ro": "won nord-coreean",
|
||||
"ru": "вона КНДР",
|
||||
"sk": "severokorejsky won",
|
||||
"sl": "severnokorejski von",
|
||||
@@ -3094,6 +3095,7 @@
|
||||
"ca": "tenge",
|
||||
"cs": "Tenge",
|
||||
"cy": "tenge Casachstan",
|
||||
"da": "Tenge",
|
||||
"de": "Tenge",
|
||||
"en": "Kazakhstani tenge",
|
||||
"eo": "kazaĥa tengo",
|
||||
@@ -4834,6 +4836,7 @@
|
||||
"nl": "Seychelse roepie",
|
||||
"pl": "Rupia seszelska",
|
||||
"pt": "rupia das Seicheles",
|
||||
"ro": "rupie seychelloză",
|
||||
"ru": "сейшельская рупия",
|
||||
"sk": "Seychelská rupia",
|
||||
"sl": "sejšelska rupija",
|
||||
@@ -5064,6 +5067,7 @@
|
||||
"nl": "Somalische shilling",
|
||||
"pl": "Szyling somalijski",
|
||||
"pt": "xelim somaliano",
|
||||
"ro": "șiling somalez",
|
||||
"ru": "сомалийский шиллинг",
|
||||
"sk": "Somálsky šiling",
|
||||
"sl": "somalski šiling",
|
||||
@@ -5883,6 +5887,7 @@
|
||||
"ja": "ドン",
|
||||
"ko": "베트남 동",
|
||||
"lt": "Vietnamo dongas",
|
||||
"ms": "Dồng Vietnam",
|
||||
"nl": "Vietnamese dong",
|
||||
"oc": "Dong",
|
||||
"pa": "ਵੀਅਤਨਾਮੀ ਦੋਙ",
|
||||
@@ -6122,7 +6127,8 @@
|
||||
"ro": "Gulden caraibian",
|
||||
"ru": "Карибский гульден",
|
||||
"sk": "Karibský gulden",
|
||||
"sl": "karibski goldinar"
|
||||
"sl": "karibski goldinar",
|
||||
"sv": "Karibisk gulden"
|
||||
},
|
||||
"XDR": {
|
||||
"ar": "حقوق السحب الخاصة",
|
||||
@@ -6724,6 +6730,8 @@
|
||||
"antilliaanse gulden": "ANG",
|
||||
"antilski gulden": "ANG",
|
||||
"aoa": "AOA",
|
||||
"apvienotās karalistes ekonomika": "GBP",
|
||||
"apvienotās karalistes saimniecība": "GBP",
|
||||
"apvienotās karalistes sterliņu mārciņa": "GBP",
|
||||
"ar": "MGA",
|
||||
"arab accounting dinar": "XAD",
|
||||
@@ -6836,6 +6844,7 @@
|
||||
"avustralya doları": "AUD",
|
||||
"awg": "AWG",
|
||||
"az arany mint befektetés": "XAU",
|
||||
"az egyesült királyság gazdasága": "GBP",
|
||||
"azerbaidžanin manat": "AZN",
|
||||
"azerbaidžano manatas": "AZN",
|
||||
"azerbaidžānas manats": "AZN",
|
||||
@@ -7019,6 +7028,7 @@
|
||||
"bir etíope": "ETB",
|
||||
"biras": "ETB",
|
||||
"birleşik arap emirlikleri dirhemi": "AED",
|
||||
"birleşik krallık ekonomisi": "GBP",
|
||||
"birma kjato": "MMK",
|
||||
"birr": "ETB",
|
||||
"birr da etiópia": "ETB",
|
||||
@@ -7106,15 +7116,19 @@
|
||||
"brit font": "GBP",
|
||||
"brita pundo": "GBP",
|
||||
"britaj pundoj": "GBP",
|
||||
"britannian talous": "GBP",
|
||||
"britanska funta": "GBP",
|
||||
"britanski funt": "GBP",
|
||||
"britische wirtschaft": "GBP",
|
||||
"britisches pfund": "GBP",
|
||||
"british economy": "GBP",
|
||||
"british pound": "GBP",
|
||||
"britisk pund": "GBP",
|
||||
"britiske pund": "GBP",
|
||||
"brits pond": "GBP",
|
||||
"britse pond": "GBP",
|
||||
"britská libra": "GBP",
|
||||
"brittisk ekonomi": "GBP",
|
||||
"brittiska pund": "GBP",
|
||||
"brittiskt pund": "GBP",
|
||||
"brunei doları": "BND",
|
||||
@@ -7198,6 +7212,7 @@
|
||||
"cedi du ghana": "GHS",
|
||||
"cedi ghana": "GHS",
|
||||
"cedi ghanese": "GHS",
|
||||
"cedi ghanéen": "GHS",
|
||||
"centr afrika franko": "XAF",
|
||||
"central african cfa franc": "XAF",
|
||||
"centralafrikansk cfa franc": "XAF",
|
||||
@@ -7300,7 +7315,6 @@
|
||||
"colón costa ricense": "CRC",
|
||||
"colón costa riquenho": "CRC",
|
||||
"colón costa riquense": "CRC",
|
||||
"colón costa riqueny": "CRC",
|
||||
"colón costaricain": "CRC",
|
||||
"colón costaricano": "CRC",
|
||||
"colón costaricien": "CRC",
|
||||
@@ -8413,6 +8427,7 @@
|
||||
"dólares canadenses": "CAD",
|
||||
"dólares estadounidenses": "USD",
|
||||
"dólares neozelandeses": "NZD",
|
||||
"dồng vietnam": "VND",
|
||||
"dram": "AMD",
|
||||
"dram armean": "AMD",
|
||||
"dram armenia": "AMD",
|
||||
@@ -8436,6 +8451,7 @@
|
||||
"droits de tirage speciaux": "XDR",
|
||||
"droits de tirage spéciaux": "XDR",
|
||||
"dschibuti franc": "DJF",
|
||||
"dvn": "VND",
|
||||
"dzd": "DZD",
|
||||
"dzsibuti frank": "DJF",
|
||||
"džibučio frankas": "DJF",
|
||||
@@ -8449,6 +8465,21 @@
|
||||
"eastern caribbean currency union": "XCD",
|
||||
"eastern caribbean dollar": "XCD",
|
||||
"ec$": "XCD",
|
||||
"economi'r deyrnas unedig": "GBP",
|
||||
"economia": "GBP",
|
||||
"economia del regne unit": "GBP",
|
||||
"economia del regno unito": "GBP",
|
||||
"economia del reialme unit": "GBP",
|
||||
"economia del reino unido": "GBP",
|
||||
"economia do reino unido": "GBP",
|
||||
"economia regatului unit": "GBP",
|
||||
"economie du royaume uni": "GBP",
|
||||
"economie van het verenigd koninkrijk": "GBP",
|
||||
"economía del reino unido": "GBP",
|
||||
"economía do reino unido": "GBP",
|
||||
"economy": "GBP",
|
||||
"economy of the uk": "GBP",
|
||||
"economy of the united kingdom": "GBP",
|
||||
"egipatska funta": "EGP",
|
||||
"egipta pundo": "EGP",
|
||||
"egipto svaras": "EGP",
|
||||
@@ -8468,6 +8499,12 @@
|
||||
"einr": "INR",
|
||||
"eiro": "EUR",
|
||||
"ekialdeko karibeko dolar": "XCD",
|
||||
"ekonomi britania raya": "GBP",
|
||||
"ekonomi united kingdom": "GBP",
|
||||
"ekonomie van die verenigde koninkryk": "GBP",
|
||||
"ekonomika spojeného království": "GBP",
|
||||
"ekonomika v spojenom kráľovstve": "GBP",
|
||||
"ekonomio de britujo": "GBP",
|
||||
"el peso": "GTQ",
|
||||
"emalangeni": "SZL",
|
||||
"emas sebagai pelaburan": "XAU",
|
||||
@@ -8499,6 +8536,7 @@
|
||||
"ermenistan dramı": "AMD",
|
||||
"ern": "ERN",
|
||||
"erreal brasildar": "BRL",
|
||||
"erresuma batuko ekonomia": "GBP",
|
||||
"errublo": "RUB",
|
||||
"errublo errusiar": "RUB",
|
||||
"errupia indiar": "INR",
|
||||
@@ -8569,6 +8607,8 @@
|
||||
"eyrir": "ISK",
|
||||
"e£": "EGP",
|
||||
"èuro": "EUR",
|
||||
"économie britannique": "GBP",
|
||||
"économie du royaume uni": "GBP",
|
||||
"észak ír font": "GBP",
|
||||
"észak koreai von": "KPW",
|
||||
"e₹": "INR",
|
||||
@@ -8702,6 +8742,9 @@
|
||||
"forintti": "HUF",
|
||||
"forinți": "HUF",
|
||||
"fòrint": "HUF",
|
||||
"förenade konungariket storbritannien och irlands ekonomi": "GBP",
|
||||
"förenade konungariket storbritannien och nordirlands ekonomi": "GBP",
|
||||
"förenade kungarikets ekonomi": "GBP",
|
||||
"franak cfp": "XPF",
|
||||
"franc": [
|
||||
"XPF",
|
||||
@@ -8954,6 +8997,9 @@
|
||||
"gold als kapitalanlage": "XAU",
|
||||
"gold as an investment": "XAU",
|
||||
"gold as currency": "XAU",
|
||||
"gospodarka wielkiej brytanii": "GBP",
|
||||
"gospodarstvo ujedinjenog kraljevstva": "GBP",
|
||||
"gospodarstvo združenega kraljestva": "GBP",
|
||||
"gourde": "HTG",
|
||||
"gourde haiti": "HTG",
|
||||
"gourde haitiano": "HTG",
|
||||
@@ -9373,6 +9419,7 @@
|
||||
"juaņs": "CNY",
|
||||
"juhokoréjsky won": "KRW",
|
||||
"juhosudánska libra": "SSP",
|
||||
"jungtinės karalystės ekonomika": "GBP",
|
||||
"jungtinių arabų emyratų dirhamas": "AED",
|
||||
"jungtinių valstijų doleris": "USD",
|
||||
"južnoafrički rand": "ZAR",
|
||||
@@ -9437,6 +9484,7 @@
|
||||
"karibi forint": "XCG",
|
||||
"karibia guldeno": "XCG",
|
||||
"karibischer gulden": "XCG",
|
||||
"karibisk gulden": "XCG",
|
||||
"karibski goldinar": "XCG",
|
||||
"karibský gulden": "XCG",
|
||||
"karipski gulden": "XCG",
|
||||
@@ -9497,6 +9545,9 @@
|
||||
"kina papua nugini": "PGK",
|
||||
"kina papuana": "PGK",
|
||||
"kina papuásia": "PGK",
|
||||
"kinh tế anh": "GBP",
|
||||
"kinh tế vương quốc anh": "GBP",
|
||||
"kinh tế vương quốc liên hiệp anh và bắc ireland": "GBP",
|
||||
"kip": "LAK",
|
||||
"kip laos": "LAK",
|
||||
"kip laosiano": "LAK",
|
||||
@@ -11141,6 +11192,7 @@
|
||||
"põhja korea won": "KPW",
|
||||
"põhja makedoonia denaar": "MKD",
|
||||
"prata como investimento": "XAG",
|
||||
"produits agricole de l'angleterre": "GBP",
|
||||
"pula": "BWP",
|
||||
"pula botswana": "BWP",
|
||||
"pula botswanais": "BWP",
|
||||
@@ -11191,6 +11243,7 @@
|
||||
"qatarisk rial": "QAR",
|
||||
"qäpik": "AZN",
|
||||
"qindarka": "ALL",
|
||||
"quanza": "AOA",
|
||||
"quetzal": "GTQ",
|
||||
"quetzal guatemala": "GTQ",
|
||||
"quetzal guatemalteco": "GTQ",
|
||||
@@ -11516,6 +11569,7 @@
|
||||
"rupia del pakistan": "PKR",
|
||||
"rupia dell'india": "INR",
|
||||
"rupia delle seychelles": "SCR",
|
||||
"rupia din seychelles": "SCR",
|
||||
"rupia do nepal": "NPR",
|
||||
"rupia do paquistão": "PKR",
|
||||
"rupia do seri lanca": "LKR",
|
||||
@@ -11571,6 +11625,7 @@
|
||||
],
|
||||
"rupie indiană": "INR",
|
||||
"rupie indiane": "INR",
|
||||
"rupie seychelloză": "SCR",
|
||||
"rupies índies": "INR",
|
||||
"rupija": [
|
||||
"NPR",
|
||||
@@ -12000,6 +12055,10 @@
|
||||
"sterliņu mārciņa": "GBP",
|
||||
"stērliņu mārciņa": "GBP",
|
||||
"stn": "STN",
|
||||
"storbritannien och irlands ekonomi": "GBP",
|
||||
"storbritannien och nordirlands ekonomi": "GBP",
|
||||
"storbritanniens ekonomi": "GBP",
|
||||
"storbritanniens økonomi": "GBP",
|
||||
"stredoafrický frank": "XAF",
|
||||
"středoafrický frank": "XAF",
|
||||
"sucre": "XSU",
|
||||
@@ -12049,6 +12108,7 @@
|
||||
"suriye lirası": "SYP",
|
||||
"suudi arabistan riyali": "SAR",
|
||||
"suudi riyali": "SAR",
|
||||
"suurbritannia majandus": "GBP",
|
||||
"suurbritannia nael": "GBP",
|
||||
"suurbritannia naelsterling": "GBP",
|
||||
"suvereni bolivar": "VES",
|
||||
@@ -12155,6 +12215,7 @@
|
||||
"švicarski frank": "CHF",
|
||||
"švýcarský frank": "CHF",
|
||||
"șekel nou": "ILS",
|
||||
"șiling somalez": "SOS",
|
||||
"şekel": "ILS",
|
||||
"şili pesosu": "CLP",
|
||||
"s₣": "CHF",
|
||||
@@ -12497,6 +12558,8 @@
|
||||
"uguiya": "MRU",
|
||||
"ugx": "UGX",
|
||||
"ui": "UYI",
|
||||
"uk economy": "GBP",
|
||||
"uk's economy": "GBP",
|
||||
"ukl": "GBP",
|
||||
"ukraina grivna": "UAH",
|
||||
"ukraina hrivno": "UAH",
|
||||
@@ -12537,6 +12600,8 @@
|
||||
"unidades de inversion": "MXV",
|
||||
"unidades de inversión": "MXV",
|
||||
"united arab emirates dirham": "AED",
|
||||
"united kingdom economy": "GBP",
|
||||
"united kingdom's economy": "GBP",
|
||||
"united states dollar": [
|
||||
"USN",
|
||||
"USD"
|
||||
@@ -12638,6 +12703,7 @@
|
||||
"venemaa rubla": "RUB",
|
||||
"venezuelai bolívar": "VES",
|
||||
"venezuelan digital bolívar": "VED",
|
||||
"verenigd koninkrijk economie": "GBP",
|
||||
"verenigde arabiese emirate dirham": "AED",
|
||||
"verenigde arabische emiraten dirham": "AED",
|
||||
"ves": "VES",
|
||||
@@ -12669,6 +12735,12 @@
|
||||
"wir euro": "CHE",
|
||||
"wir franc": "CHW",
|
||||
"wir franken": "CHW",
|
||||
"wirtschaft": "GBP",
|
||||
"wirtschaft des vereinigten königreichs": "GBP",
|
||||
"wirtschaft im vereinigten königreich": "GBP",
|
||||
"wirtschaft in dem vereinigten königreich": "GBP",
|
||||
"wirtschaft vom vereinigten königreich": "GBP",
|
||||
"wirtschaft von dem vereinigten königreich": "GBP",
|
||||
"wit russische roebel": "BYN",
|
||||
"won": "KRW",
|
||||
"won bắc triều tiên": "KPW",
|
||||
@@ -12762,6 +12834,7 @@
|
||||
"yeşil burun adaları eskudosu": "CVE",
|
||||
"yên nhật": "JPY",
|
||||
"yhdistyneen kuningaskunnan punta": "GBP",
|
||||
"yhdistyneen kuningaskunnan talous": "GBP",
|
||||
"yhdistyneiden arabiemiraattien dirhami": "AED",
|
||||
"yhdysvaltain dollari": "USD",
|
||||
"ytl": "TRY",
|
||||
@@ -13511,6 +13584,8 @@
|
||||
"египетский фунт": "EGP",
|
||||
"единая система региональных взаиморасчётов": "XSU",
|
||||
"единая система региональных взаиморасчетов": "XSU",
|
||||
"економіка великобританії": "GBP",
|
||||
"економіка великої британії": "GBP",
|
||||
"енглеска фунта": "GBP",
|
||||
"еритрейська накфа": "ERN",
|
||||
"еритрејска накфа": "ERN",
|
||||
@@ -13567,6 +13642,8 @@
|
||||
"израелски шекел": "ILS",
|
||||
"израильский новый шекель": "ILS",
|
||||
"източнокарибски долар": "XCD",
|
||||
"икономика на великобритания": "GBP",
|
||||
"икономика на обединеното кралство": "GBP",
|
||||
"индийска рупия": "INR",
|
||||
"индийская рупия": "INR",
|
||||
"индијска рупија": "INR",
|
||||
@@ -13980,6 +14057,7 @@
|
||||
"PLZ",
|
||||
"PLN"
|
||||
],
|
||||
"привреда уједињеног краљевства": "GBP",
|
||||
"пула": "BWP",
|
||||
"південно африканський ранд": "ZAR",
|
||||
"південнокорейська вона": "KRW",
|
||||
@@ -14067,6 +14145,7 @@
|
||||
"севернокорејски вон": "KPW",
|
||||
"северо корейская вона": "KPW",
|
||||
"северокорейская вона": "KPW",
|
||||
"седі": "GHS",
|
||||
"сейшел рупиясе": "SCR",
|
||||
"сейшелска рупия": "SCR",
|
||||
"сейшельская рупия": "SCR",
|
||||
@@ -14119,6 +14198,8 @@
|
||||
"старый румынский лей": "RON",
|
||||
"стерлинг фунты": "GBP",
|
||||
"стерлиң фунты": "GBP",
|
||||
"стопанство на великобритания": "GBP",
|
||||
"стопанство на обединеното кралство": "GBP",
|
||||
"суверен боливар": "VES",
|
||||
"суверенний болівар": "VES",
|
||||
"суверенный боливар": "VES",
|
||||
@@ -14369,6 +14450,7 @@
|
||||
"шриланкийска рупия": "LKR",
|
||||
"шриланчанска рупија": "LKR",
|
||||
"щатски долар": "USD",
|
||||
"экономика великобритании": "GBP",
|
||||
"эритрейская накфа": "ERN",
|
||||
"эритрея накфасы": "ERN",
|
||||
"эсватини лилангение": "SZL",
|
||||
@@ -14518,6 +14600,8 @@
|
||||
"יואן סיני": "CNY",
|
||||
"ין יפני": "JPY",
|
||||
"כארתולי לארי": "GEL",
|
||||
"כלכלת בריטניה": "GBP",
|
||||
"כלכלת הממלכה המאוחדת": "GBP",
|
||||
"כתר דני": "DKK",
|
||||
"כתר נורבגי": "NOK",
|
||||
"כתר נורווגי": "NOK",
|
||||
@@ -14665,6 +14749,7 @@
|
||||
"استثمار البلاتين": "XPT",
|
||||
"استثمار الذهب": "XAU",
|
||||
"استثمار الفضة": "XAG",
|
||||
"اقتصاد المملكة المتحدة": "GBP",
|
||||
"الاستثمار في الذهب": "XAU",
|
||||
"الأوقية الموريتانية": "MRU",
|
||||
"البات": "THB",
|
||||
@@ -14718,6 +14803,7 @@
|
||||
"أوقية": "MRU",
|
||||
"أوقية موريتانية": "MRU",
|
||||
"أوقيه موريتانيه": "MRU",
|
||||
"إقتصاد بريطانى": "GBP",
|
||||
"إيسكودو جزر الرأس الأخضر": "CVE",
|
||||
"بات": "THB",
|
||||
"بات تايلاندي": "THB",
|
||||
@@ -15100,6 +15186,7 @@
|
||||
"মালদ্বীপীয় রুফিয়াহ": "MVR",
|
||||
"মিয়ানমার ক্যত": "MMK",
|
||||
"মিশরীয় পাউন্ড": "EGP",
|
||||
"যুক্তরাজ্যের অর্থনীতি": "GBP",
|
||||
"রুশ রুবল": "RUB",
|
||||
"রেনমিনবি": "CNY",
|
||||
"রেন্মিন্বি": "CNY",
|
||||
@@ -15731,6 +15818,7 @@
|
||||
"엔": "JPY",
|
||||
"엔화": "JPY",
|
||||
"영국 파운드": "GBP",
|
||||
"영국의 경제": "GBP",
|
||||
"예멘 리알": "YER",
|
||||
"예멘 리얄": "YER",
|
||||
"예멘리얄": "YER",
|
||||
@@ -15938,9 +16026,11 @@
|
||||
"イエメン・リアル": "YER",
|
||||
"イエメン・リヤル": "YER",
|
||||
"イエメン・リヤール": "YER",
|
||||
"イギリスの経済": "GBP",
|
||||
"イギリスの通貨": "GBP",
|
||||
"イギリスポンド": "GBP",
|
||||
"イギリス・ポンド": "GBP",
|
||||
"イギリス経済": "GBP",
|
||||
"イラクの通貨": "IQD",
|
||||
"イラク・ディナール": "IQD",
|
||||
"イランの通貨": "IRR",
|
||||
@@ -16242,6 +16332,7 @@
|
||||
"英ポンド": "GBP",
|
||||
"西アフリカcfaフラン": "XOF",
|
||||
"豪ドル": "AUD",
|
||||
"財政・経済政策": "GBP",
|
||||
"越南銅": "VND",
|
||||
"金投資": "XAU",
|
||||
"韓国ウォン": "KRW",
|
||||
|
||||
@@ -81,6 +81,7 @@
|
||||
"ca": "ca",
|
||||
"ckb": "ckb",
|
||||
"cs": "cs",
|
||||
"cv": "cv",
|
||||
"cy": "cy",
|
||||
"da": "da",
|
||||
"de": "de",
|
||||
@@ -130,7 +131,6 @@
|
||||
"ne": "ne",
|
||||
"nl": "nl",
|
||||
"no": "no",
|
||||
"ny": "ny",
|
||||
"om": "om",
|
||||
"pa": "pa",
|
||||
"pl": "pl",
|
||||
@@ -8446,6 +8446,7 @@
|
||||
"IR",
|
||||
"IS",
|
||||
"IT",
|
||||
"JE",
|
||||
"JM",
|
||||
"JO",
|
||||
"JP",
|
||||
@@ -8475,6 +8476,7 @@
|
||||
"MC",
|
||||
"MD",
|
||||
"ME",
|
||||
"MF",
|
||||
"MG",
|
||||
"MH",
|
||||
"MK",
|
||||
@@ -8541,6 +8543,7 @@
|
||||
"SS",
|
||||
"ST",
|
||||
"SV",
|
||||
"SX",
|
||||
"SY",
|
||||
"SZ",
|
||||
"TC",
|
||||
@@ -8688,6 +8691,7 @@
|
||||
"th": "thai",
|
||||
"ti": "tigrinya",
|
||||
"tk": "turkmen",
|
||||
"to": "tonga",
|
||||
"tr": "turkish",
|
||||
"tt": "tatar",
|
||||
"uk": "ukrainian",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
],
|
||||
"ua": "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}",
|
||||
"versions": [
|
||||
"152.0",
|
||||
"151.0"
|
||||
"153.0",
|
||||
"152.0"
|
||||
]
|
||||
}
|
||||
@@ -47,7 +47,7 @@ ENGINES_CACHE: ExpireCacheSQLite = ExpireCacheSQLite.build_cache(
|
||||
ExpireCacheCfg(
|
||||
name="ENGINES_CACHE",
|
||||
MAXHOLD_TIME=60 * 60 * 24 * 7, # 7 days
|
||||
MAINTENANCE_PERIOD=60 * 60, # 2h
|
||||
MAINTENANCE_PERIOD=60 * 60, # 1h
|
||||
MAX_VALUE_LEN=1024 * 1024 * 1024, # 1MB
|
||||
)
|
||||
)
|
||||
|
||||
@@ -82,7 +82,7 @@ fragment SXNG_query on Query {
|
||||
|
||||
def setup(_) -> bool:
|
||||
global SXNG_query # pylint: disable=global-statement
|
||||
rand_str: str = "".join(random.choice(string.ascii_letters) for _ in range(5))
|
||||
rand_str: str = "".join(random.choices(string.ascii_letters, k=5))
|
||||
SXNG_query = SXNG_query.replace("SXNG_query", "PhotoSearchPaginationContainer_query_1" + rand_str)
|
||||
return True
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ base_url = "https://api.bilibili.com/x/web-interface/search/type"
|
||||
|
||||
cookie = {
|
||||
"innersign": "0",
|
||||
"buvid3": "".join(random.choice(string.hexdigits) for _ in range(16)) + "infoc",
|
||||
"buvid3": "".join(random.choices(string.hexdigits, k=16)) + "infoc",
|
||||
"i-wanna-go-back": "-1",
|
||||
"b_ut": "7",
|
||||
"FEED_LIVE_VERSION": "V8",
|
||||
|
||||
168
searx/engines/exaapi.py
Normal file
168
searx/engines/exaapi.py
Normal file
@@ -0,0 +1,168 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Engine to search using the official `Exa Search API`_. Exa is a search engine for AI agents.
|
||||
|
||||
.. _Exa Search API: https://exa.ai/docs/reference/search
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
The engine has the following mandatory setting:
|
||||
|
||||
- :py:obj:`api_key`
|
||||
|
||||
You can obtain an API key from the `API Key section <https://dashboard.exa.ai/api-keys>`_ in the Exa dashboard.
|
||||
|
||||
Optional settings are:
|
||||
|
||||
- :py:obj:`results_per_page`
|
||||
- :py:obj:`search_type`
|
||||
- :py:obj:`content_mode`
|
||||
- :py:obj:`content_max_characters`
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
- name: exaapi
|
||||
engine: exaapi
|
||||
shortcut: exa
|
||||
api_key: "..."
|
||||
results_per_page: 10
|
||||
search_type: auto
|
||||
content_mode: highlights
|
||||
inactive: false
|
||||
|
||||
The API supports SafeSearch and region-aware results.
|
||||
"""
|
||||
|
||||
import typing as t
|
||||
|
||||
from dateutil import parser
|
||||
|
||||
from searx.exceptions import SearxEngineAPIException
|
||||
from searx.result_types import EngineResults
|
||||
from searx.utils import html_to_text
|
||||
|
||||
if t.TYPE_CHECKING:
|
||||
from searx.extended_types import SXNG_Response
|
||||
from searx.search.processors import OnlineParams
|
||||
|
||||
|
||||
SearchType = t.Literal["fast", "auto", "instant", "deep", "deep-lite", "deep-reasoning"]
|
||||
ContentMode = t.Literal["highlights", "text"]
|
||||
|
||||
about = {
|
||||
"website": "https://exa.ai",
|
||||
"wikidata_id": None,
|
||||
"official_api_documentation": "https://exa.ai/docs/reference/search",
|
||||
"use_official_api": True,
|
||||
"require_api_key": True,
|
||||
"results": "JSON",
|
||||
}
|
||||
|
||||
api_key: str = ""
|
||||
"""API key for Exa Search API (required)."""
|
||||
|
||||
categories = ["general", "web"]
|
||||
safesearch = True
|
||||
|
||||
base_url = "https://api.exa.ai/search"
|
||||
results_per_page: int = 10
|
||||
"""Maximum number of results per request. Value must be between 1 and 100, default is 10."""
|
||||
|
||||
search_type: SearchType = "auto"
|
||||
"""Search type. Default is auto, see documentation for more information."""
|
||||
|
||||
content_mode: ContentMode = "highlights"
|
||||
"""Content to request from the API: ``highlights`` (excerpts) or ``text`` (page text)."""
|
||||
|
||||
content_max_characters: int = 500
|
||||
"""Maximum characters for the requested content."""
|
||||
|
||||
|
||||
def init(_):
|
||||
if not api_key:
|
||||
raise SearxEngineAPIException("No API key provided")
|
||||
if not 1 <= results_per_page <= 100:
|
||||
raise ValueError("results_per_page must be between 1 and 100")
|
||||
if search_type not in t.get_args(SearchType):
|
||||
raise ValueError(f"Unsupported search type: {search_type}")
|
||||
if content_mode not in t.get_args(ContentMode):
|
||||
raise ValueError(f"Unsupported content mode: {content_mode}")
|
||||
if content_max_characters < 1:
|
||||
raise ValueError("content_max_characters must be at least 1")
|
||||
|
||||
|
||||
def _contents_payload() -> dict[str, t.Any]:
|
||||
if content_mode == "text":
|
||||
return {"text": {"maxCharacters": content_max_characters, "stripLinks": True}}
|
||||
return {"highlights": {"maxCharacters": content_max_characters}}
|
||||
|
||||
|
||||
def _extract_content(result: dict[str, t.Any]) -> str:
|
||||
if content_mode == "text":
|
||||
return html_to_text(result.get("text") or "")
|
||||
return html_to_text(" ".join(result.get("highlights") or []))
|
||||
|
||||
|
||||
def request(query: str, params: "OnlineParams") -> None:
|
||||
"""Create the API request."""
|
||||
body: dict[str, t.Any] = {
|
||||
"query": query,
|
||||
"type": search_type,
|
||||
"numResults": results_per_page,
|
||||
"contents": _contents_payload(),
|
||||
}
|
||||
|
||||
# Apply SafeSearch if enabled
|
||||
if params["safesearch"]:
|
||||
body["moderation"] = True
|
||||
|
||||
# Apply region-aware results if specified
|
||||
locale_parts = params["searxng_locale"].split("-")
|
||||
region = locale_parts[-1]
|
||||
if len(locale_parts) > 1:
|
||||
body["userLocation"] = region.upper()
|
||||
|
||||
params["url"] = base_url
|
||||
params["method"] = "POST"
|
||||
params["headers"]["x-api-key"] = api_key
|
||||
params["json"] = body
|
||||
|
||||
|
||||
def _extract_published_date(value: str | None):
|
||||
"""Extract and parse the published date from the API response.
|
||||
|
||||
Args:
|
||||
value: Raw date string from the API
|
||||
|
||||
Returns:
|
||||
Parsed datetime object or None if parsing fails
|
||||
"""
|
||||
if not value:
|
||||
return None
|
||||
try:
|
||||
return parser.parse(value)
|
||||
except (parser.ParserError, TypeError, OverflowError):
|
||||
return None
|
||||
|
||||
|
||||
def response(resp: "SXNG_Response") -> EngineResults:
|
||||
"""Process the API response and return results."""
|
||||
res = EngineResults()
|
||||
|
||||
for result in resp.json().get("results", []):
|
||||
url = result.get("url")
|
||||
if not url:
|
||||
continue
|
||||
|
||||
res.add(
|
||||
res.types.MainResult(
|
||||
url=url,
|
||||
title=html_to_text(result.get("title") or url),
|
||||
content=_extract_content(result),
|
||||
thumbnail=result.get("image") or "",
|
||||
publishedDate=_extract_published_date(result.get("publishedDate")),
|
||||
author=result.get("author") or "",
|
||||
)
|
||||
)
|
||||
|
||||
return res
|
||||
66
searx/engines/keenable.py
Normal file
66
searx/engines/keenable.py
Normal file
@@ -0,0 +1,66 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Keenable is a fast web search with keyless mode support"""
|
||||
|
||||
import typing as t
|
||||
|
||||
from datetime import datetime
|
||||
from searx.extended_types import SXNG_Response
|
||||
from searx.result_types import EngineResults
|
||||
from searx.utils import searxng_useragent
|
||||
|
||||
if t.TYPE_CHECKING:
|
||||
from searx.search.processors import OnlineParams
|
||||
|
||||
about = {
|
||||
"website": "https://keenable.ai",
|
||||
"official_api_documentation": "https://docs.keenable.ai",
|
||||
"use_official_api": True,
|
||||
"require_api_key": False,
|
||||
"results": "JSON",
|
||||
}
|
||||
api_key = ""
|
||||
""" Optional API Key. You can create a key at `the official website
|
||||
<https://keenable.ai/signup>'_ if you need higher rate limits."""
|
||||
|
||||
categories = ["general"]
|
||||
|
||||
base_url = "https://api.keenable.ai"
|
||||
keenable_mode = "pro"
|
||||
|
||||
|
||||
def request(query: str, params: "OnlineParams"):
|
||||
if api_key:
|
||||
params["url"] = f"{base_url}/v1/search"
|
||||
params["headers"]["X-API-KEY"] = api_key
|
||||
else:
|
||||
params["url"] = f"{base_url}/v1/search/public"
|
||||
|
||||
params["method"] = "POST"
|
||||
params["headers"]["X-Keenable-Title"] = searxng_useragent()
|
||||
params["json"] = {"query": query, "mode": keenable_mode}
|
||||
|
||||
|
||||
def response(resp: "SXNG_Response") -> EngineResults:
|
||||
res = EngineResults()
|
||||
|
||||
results: list[dict[str, str]] = resp.json()["results"] # type: ignore[reportAny]
|
||||
|
||||
for result in results:
|
||||
published = None
|
||||
pub = result.get("published_at")
|
||||
if pub:
|
||||
try:
|
||||
published = datetime.fromisoformat(pub.rstrip("Z"))
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
res.add(
|
||||
res.types.MainResult(
|
||||
url=result["url"],
|
||||
title=result["title"],
|
||||
content=result["description"] or result["snippet"],
|
||||
publishedDate=published,
|
||||
)
|
||||
)
|
||||
|
||||
return res
|
||||
@@ -1,305 +0,0 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Presearch supports the search types listed in :py:obj:`search_type` (general,
|
||||
images, videos, news).
|
||||
|
||||
Configured ``presarch`` engines:
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
- name: presearch
|
||||
engine: presearch
|
||||
search_type: search
|
||||
categories: [general, web]
|
||||
|
||||
- name: presearch images
|
||||
...
|
||||
search_type: images
|
||||
categories: [images, web]
|
||||
|
||||
- name: presearch videos
|
||||
...
|
||||
search_type: videos
|
||||
categories: [general, web]
|
||||
|
||||
- name: presearch news
|
||||
...
|
||||
search_type: news
|
||||
categories: [news, web]
|
||||
|
||||
.. hint::
|
||||
|
||||
By default Presearch's video category is intentionally placed into::
|
||||
|
||||
categories: [general, web]
|
||||
|
||||
|
||||
Search type ``video``
|
||||
=====================
|
||||
|
||||
The results in the video category are most often links to pages that contain a
|
||||
video, for instance many links from Preasearch's video category link content
|
||||
from facebook (aka Meta) or Twitter (aka X). Since these are not real links to
|
||||
video streams SearXNG can't use the video template for this and if SearXNG can't
|
||||
use this template, then the user doesn't want to see these hits in the videos
|
||||
category.
|
||||
|
||||
|
||||
Languages & Regions
|
||||
===================
|
||||
|
||||
In Presearch there are languages for the UI and regions for narrowing down the
|
||||
search. If we set "auto" for the region in the WEB-UI of Presearch and cookie
|
||||
``use_local_search_results=false``, then the defaults are set for both (the
|
||||
language and the region) from the ``Accept-Language`` header.
|
||||
|
||||
Since the region is already "auto" by default, we only need to set the
|
||||
``use_local_search_results`` cookie and send the ``Accept-Language`` header. We
|
||||
have to set these values in both requests we send to Presearch; in the first
|
||||
request to get the request-ID from Presearch and in the final request to get the
|
||||
result list.
|
||||
|
||||
The time format returned by Presearch varies depending on the language set.
|
||||
Multiple different formats can be supported by using ``dateutil`` parser, but
|
||||
it doesn't support formats such as "N time ago", "vor N time" (German),
|
||||
"Hace N time" (Spanish). Because of this, the dates are simply joined together
|
||||
with the rest of other metadata.
|
||||
|
||||
|
||||
Implementations
|
||||
===============
|
||||
|
||||
"""
|
||||
|
||||
from urllib.parse import urlencode, urlparse
|
||||
from searx import locales
|
||||
from searx.network import get
|
||||
from searx.utils import gen_useragent, html_to_text, parse_duration_string
|
||||
|
||||
about = {
|
||||
"website": "https://presearch.io",
|
||||
"wikidata_id": "Q7240905",
|
||||
"official_api_documentation": "https://docs.presearch.io/nodes/api",
|
||||
"use_official_api": False,
|
||||
"require_api_key": False,
|
||||
"results": "JSON",
|
||||
}
|
||||
paging = True
|
||||
safesearch = True
|
||||
time_range_support = True
|
||||
categories = ["general", "web"] # general, images, videos, news
|
||||
|
||||
# HTTP2 requests immediately get blocked by a CAPTCHA
|
||||
enable_http2 = False
|
||||
|
||||
search_type = "search"
|
||||
"""must be any of ``search``, ``images``, ``videos``, ``news``"""
|
||||
|
||||
base_url = "https://presearch.com"
|
||||
safesearch_map = {0: 'false', 1: 'true', 2: 'true'}
|
||||
|
||||
|
||||
def init(_):
|
||||
if search_type not in ['search', 'images', 'videos', 'news']:
|
||||
raise ValueError(f'presearch search_type: {search_type}')
|
||||
|
||||
|
||||
def _get_request_id(query, params):
|
||||
|
||||
args = {
|
||||
"q": query,
|
||||
"page": params["pageno"],
|
||||
}
|
||||
|
||||
if params["time_range"]:
|
||||
args["time"] = params["time_range"]
|
||||
|
||||
url = f"{base_url}/{search_type}?{urlencode(args)}"
|
||||
|
||||
headers = {
|
||||
'User-Agent': gen_useragent(),
|
||||
'Cookie': (
|
||||
f"b=1;"
|
||||
f" presearch_session=;"
|
||||
f" use_local_search_results=false;"
|
||||
f" use_safe_search={safesearch_map[params['safesearch']]}"
|
||||
),
|
||||
}
|
||||
if params['searxng_locale'] != 'all':
|
||||
l = locales.get_locale(params['searxng_locale'])
|
||||
|
||||
# Presearch narrows down the search by region. In SearXNG when the user
|
||||
# does not set a region (e.g. 'en-CA' / canada) we cannot hand over a region.
|
||||
|
||||
# We could possibly use searx.locales.get_official_locales to determine
|
||||
# in which regions this language is an official one, but then we still
|
||||
# wouldn't know which region should be given more weight / Presearch
|
||||
# performs an IP-based geolocation of the user, we don't want that in
|
||||
# SearXNG ;-)
|
||||
|
||||
if l and l.territory:
|
||||
headers['Accept-Language'] = f"{l.language}-{l.territory},{l.language};" "q=0.9,*;" "q=0.5"
|
||||
|
||||
resp = get(url, headers=headers, timeout=5)
|
||||
|
||||
for line in resp.text.split("\n"):
|
||||
if "window.searchId = " in line:
|
||||
return line.split("= ")[1][:-1].replace('"', ""), resp.cookies
|
||||
|
||||
raise RuntimeError("Couldn't find any request id for presearch")
|
||||
|
||||
|
||||
def request(query, params):
|
||||
request_id, cookies = _get_request_id(query, params)
|
||||
params["headers"]["Accept"] = "application/json"
|
||||
params["url"] = f"{base_url}/results?id={request_id}"
|
||||
params["cookies"] = cookies
|
||||
|
||||
return params
|
||||
|
||||
|
||||
def _strip_leading_strings(text):
|
||||
for x in ['wikipedia', 'google']:
|
||||
if text.lower().endswith(x):
|
||||
text = text[: -len(x)]
|
||||
return text.strip()
|
||||
|
||||
|
||||
def _fix_title(title, url):
|
||||
"""
|
||||
Titles from Presearch shows domain + title without spacing, and HTML
|
||||
This function removes these 2 issues.
|
||||
Transforming "translate.google.co.in<em>Google</em> Translate" into "Google Translate"
|
||||
"""
|
||||
parsed_url = urlparse(url)
|
||||
domain = parsed_url.netloc
|
||||
title = html_to_text(title)
|
||||
# Fixes issue where domain would show up in the title
|
||||
# translate.google.co.inGoogle Translate -> Google Translate
|
||||
if (
|
||||
title.startswith(domain)
|
||||
and len(title) > len(domain)
|
||||
and not title.startswith(domain + "/")
|
||||
and not title.startswith(domain + " ")
|
||||
):
|
||||
title = title.removeprefix(domain)
|
||||
return title
|
||||
|
||||
|
||||
def parse_search_query(json_results):
|
||||
results = []
|
||||
if not json_results:
|
||||
return results
|
||||
|
||||
for item in json_results.get('specialSections', {}).get('topStoriesCompact', {}).get('data', []):
|
||||
result = {
|
||||
'url': item['link'],
|
||||
'title': _fix_title(item['title'], item['link']),
|
||||
'thumbnail': item['image'],
|
||||
'content': '',
|
||||
'metadata': item.get('source'),
|
||||
}
|
||||
results.append(result)
|
||||
|
||||
for item in json_results.get('standardResults', []):
|
||||
result = {
|
||||
'url': item['link'],
|
||||
'title': _fix_title(item['title'], item['link']),
|
||||
'content': html_to_text(item['description']),
|
||||
}
|
||||
results.append(result)
|
||||
|
||||
info = json_results.get('infoSection', {}).get('data')
|
||||
if info:
|
||||
attributes = []
|
||||
for item in info.get('about', []):
|
||||
|
||||
text = html_to_text(item)
|
||||
if ':' in text:
|
||||
# split text into key / value
|
||||
label, value = text.split(':', 1)
|
||||
else:
|
||||
# In other languages (tested with zh-TW) a colon is represented
|
||||
# by a different symbol --> then we split at the first space.
|
||||
label, value = text.split(' ', 1)
|
||||
label = label[:-1]
|
||||
|
||||
value = _strip_leading_strings(value)
|
||||
attributes.append({'label': label, 'value': value})
|
||||
content = []
|
||||
for item in [info.get('subtitle'), info.get('description')]:
|
||||
if not item:
|
||||
continue
|
||||
item = _strip_leading_strings(html_to_text(item))
|
||||
if item:
|
||||
content.append(item)
|
||||
|
||||
results.append(
|
||||
{
|
||||
'infobox': info['title'],
|
||||
'id': info['title'],
|
||||
'img_src': info.get('image'),
|
||||
'content': ' | '.join(content),
|
||||
'attributes': attributes,
|
||||
}
|
||||
)
|
||||
return results
|
||||
|
||||
|
||||
def response(resp):
|
||||
results = []
|
||||
json_resp = resp.json()
|
||||
|
||||
if search_type == 'search':
|
||||
results = parse_search_query(json_resp.get('results', {}))
|
||||
|
||||
elif search_type == 'images':
|
||||
for item in json_resp.get('images', []):
|
||||
results.append(
|
||||
{
|
||||
'template': 'images.html',
|
||||
'title': html_to_text(item['title']),
|
||||
'url': item.get('link'),
|
||||
'img_src': item.get('image'),
|
||||
'thumbnail_src': item.get('thumbnail'),
|
||||
}
|
||||
)
|
||||
|
||||
elif search_type == 'videos':
|
||||
# The results in the video category are most often links to pages that contain
|
||||
# a video and not to a video stream --> SearXNG can't use the video template.
|
||||
|
||||
for item in json_resp.get('videos', []):
|
||||
duration = item.get('duration')
|
||||
if duration:
|
||||
duration = parse_duration_string(duration)
|
||||
|
||||
results.append(
|
||||
{
|
||||
'title': html_to_text(item['title']),
|
||||
'url': item.get('link'),
|
||||
'content': item.get('description', ''),
|
||||
'thumbnail': item.get('image'),
|
||||
'length': duration,
|
||||
}
|
||||
)
|
||||
|
||||
elif search_type == 'news':
|
||||
for item in json_resp.get('news', []):
|
||||
source = item.get('source')
|
||||
# Bug on their end, time sometimes returns "</a>"
|
||||
time = html_to_text(item.get('time')).strip()
|
||||
metadata = [source]
|
||||
if time != "":
|
||||
metadata.append(time)
|
||||
|
||||
results.append(
|
||||
{
|
||||
'title': html_to_text(item['title']),
|
||||
'url': item.get('link'),
|
||||
'content': html_to_text(item.get('description', '')),
|
||||
'metadata': ' / '.join(metadata),
|
||||
'thumbnail': item.get('image'),
|
||||
}
|
||||
)
|
||||
|
||||
return results
|
||||
@@ -140,7 +140,7 @@ def response(resp):
|
||||
results.append(
|
||||
{
|
||||
'template': 'images.html',
|
||||
'url': _clean_url(f"{about['website']}/images/{result['objectID']}"),
|
||||
'url': _clean_url(f"{pdia_base_url}/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', '')}",
|
||||
|
||||
@@ -51,6 +51,7 @@ 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,
|
||||
@@ -105,9 +106,19 @@ 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"""
|
||||
@@ -129,24 +140,29 @@ def request(query: str, params: "OnlineParams") -> None:
|
||||
"tgp": test_group_value,
|
||||
"device": "desktop",
|
||||
"safesearch": params["safesearch"],
|
||||
"display": True,
|
||||
"llm": True,
|
||||
# True would be encoded to "True", instead of "true", which makes the request
|
||||
# easier to detect and block
|
||||
"displayed": "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
|
||||
@@ -163,8 +179,8 @@ def response(resp: "SXNG_Response") -> EngineResults:
|
||||
error_code = data.get("error_code")
|
||||
if error_code == 24:
|
||||
raise SearxEngineTooManyRequestsException()
|
||||
if search_results.get("data", {}).get("error_data", {}).get("captchaUrl") is not None:
|
||||
raise SearxEngineCaptchaException()
|
||||
if search_results.get("url") is not None:
|
||||
raise SearxEngineCaptchaException(suspended_time=0)
|
||||
if resp.status_code == 403:
|
||||
raise SearxEngineAccessDeniedException()
|
||||
msg = ",".join(data.get("message", ["unknown"]))
|
||||
@@ -302,7 +318,7 @@ def fetch_traits(engine_traits: EngineTraits):
|
||||
from searx.utils import extr
|
||||
|
||||
resp = get(
|
||||
about["website"], # pyright: ignore[reportArgumentType]
|
||||
base_url, # pyright: ignore[reportArgumentType]
|
||||
timeout=5,
|
||||
)
|
||||
if not resp.ok:
|
||||
|
||||
@@ -1,74 +0,0 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Reddit"""
|
||||
|
||||
import json
|
||||
from datetime import datetime
|
||||
from urllib.parse import urlencode, urljoin, urlparse
|
||||
|
||||
# about
|
||||
about = {
|
||||
"website": 'https://www.reddit.com/',
|
||||
"wikidata_id": 'Q1136',
|
||||
"official_api_documentation": 'https://www.reddit.com/dev/api',
|
||||
"use_official_api": True,
|
||||
"require_api_key": False,
|
||||
"results": 'JSON',
|
||||
}
|
||||
|
||||
# engine dependent config
|
||||
categories = ['social media']
|
||||
page_size = 25
|
||||
|
||||
# search-url
|
||||
base_url = 'https://www.reddit.com/'
|
||||
search_url = base_url + 'search.json?{query}'
|
||||
|
||||
|
||||
def request(query, params):
|
||||
|
||||
query = urlencode({'q': query, 'limit': page_size})
|
||||
params['url'] = search_url.format(query=query)
|
||||
|
||||
return params
|
||||
|
||||
|
||||
def response(resp):
|
||||
|
||||
img_results = []
|
||||
text_results = []
|
||||
|
||||
search_results = json.loads(resp.text)
|
||||
|
||||
# return empty array if there are no results
|
||||
if 'data' not in search_results:
|
||||
return []
|
||||
|
||||
posts = search_results.get('data', {}).get('children', [])
|
||||
|
||||
# process results
|
||||
for post in posts:
|
||||
data = post['data']
|
||||
|
||||
# extract post information
|
||||
params = {'url': urljoin(base_url, data['permalink']), 'title': data['title']}
|
||||
|
||||
# if thumbnail field contains a valid URL, we need to change template
|
||||
thumbnail = data['thumbnail']
|
||||
url_info = urlparse(thumbnail)
|
||||
# netloc & path
|
||||
if url_info[1] != '' and url_info[2] != '':
|
||||
params['img_src'] = data['url']
|
||||
params['thumbnail_src'] = thumbnail
|
||||
params['template'] = 'images.html'
|
||||
img_results.append(params)
|
||||
else:
|
||||
created = datetime.fromtimestamp(data['created_utc'])
|
||||
content = data['selftext']
|
||||
if len(content) > 500:
|
||||
content = content[:500] + '...'
|
||||
params['content'] = content
|
||||
params['publishedDate'] = created
|
||||
text_results.append(params)
|
||||
|
||||
# show images first and text results second
|
||||
return img_results + text_results
|
||||
@@ -9,6 +9,7 @@ import codecs
|
||||
import hashlib
|
||||
import json
|
||||
import random
|
||||
import string
|
||||
|
||||
from datetime import datetime
|
||||
from urllib.parse import urlencode
|
||||
@@ -43,8 +44,8 @@ paging = True
|
||||
|
||||
base_url = "https://api.swisscows.com"
|
||||
|
||||
CAESAR_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
NONCE_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~"
|
||||
CAESAR_ALPHABET = string.ascii_uppercase
|
||||
NONCE_ALPHABET = string.ascii_letters + string.digits + "-._~"
|
||||
|
||||
time_range_map = {"day": "Day", "week": "Week", "month": "Month", "year": "Year"}
|
||||
|
||||
@@ -92,7 +93,7 @@ def generate_nonce(length: int = 32) -> str:
|
||||
"""
|
||||
Generate a random char sequence with the given length.
|
||||
"""
|
||||
return "".join([random.choice(NONCE_ALPHABET) for _ in range(length)])
|
||||
return "".join(random.choices(NONCE_ALPHABET, k=length))
|
||||
|
||||
|
||||
def caesar_shift_with_switch_case(s: str, offset: int = 13) -> str:
|
||||
|
||||
@@ -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) # cookie is valid for two months
|
||||
CACHE.set("session", code, expire=60 * 24 * 60 * 60) # cookie is valid for two months
|
||||
return code
|
||||
|
||||
|
||||
|
||||
@@ -52,6 +52,12 @@ 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",
|
||||
|
||||
@@ -477,6 +477,24 @@ 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
|
||||
@@ -1443,6 +1461,12 @@ engines:
|
||||
description: "Demo index of Kavunka, a statistical search engine"
|
||||
results: HTML
|
||||
|
||||
- name: keenable
|
||||
engine: keenable
|
||||
shortcut: keen
|
||||
disabled: true
|
||||
inactive: true
|
||||
|
||||
- name: kozmonavt
|
||||
engine: xpath
|
||||
search_url: https://kozmonavt.su/s?q={query}
|
||||
@@ -1998,41 +2022,6 @@ engines:
|
||||
shortcut: poc
|
||||
disabled: true
|
||||
|
||||
- name: presearch
|
||||
engine: presearch
|
||||
search_type: search
|
||||
categories: [general, web]
|
||||
shortcut: ps
|
||||
timeout: 4.0
|
||||
disabled: true
|
||||
|
||||
- name: presearch images
|
||||
engine: presearch
|
||||
network: presearch
|
||||
search_type: images
|
||||
categories: [images, web]
|
||||
timeout: 4.0
|
||||
shortcut: psimg
|
||||
disabled: true
|
||||
|
||||
- name: presearch videos
|
||||
engine: presearch
|
||||
network: presearch
|
||||
search_type: videos
|
||||
categories: [general, web]
|
||||
timeout: 4.0
|
||||
shortcut: psvid
|
||||
disabled: true
|
||||
|
||||
- name: presearch news
|
||||
engine: presearch
|
||||
network: presearch
|
||||
search_type: news
|
||||
categories: [news, web]
|
||||
timeout: 4.0
|
||||
shortcut: psnews
|
||||
disabled: true
|
||||
|
||||
- name: pub.dev
|
||||
engine: xpath
|
||||
shortcut: pd
|
||||
@@ -2158,12 +2147,6 @@ engines:
|
||||
require_api_key: false
|
||||
results: JSON
|
||||
|
||||
- name: reddit
|
||||
engine: reddit
|
||||
shortcut: re
|
||||
page_size: 25
|
||||
disabled: true
|
||||
|
||||
- name: reuters
|
||||
engine: reuters
|
||||
shortcut: reu
|
||||
@@ -3278,6 +3261,14 @@ engines:
|
||||
# brave_category: goggles
|
||||
# Goggles: # required! This should be a URL ending in .goggle
|
||||
|
||||
- name: exaapi
|
||||
engine: exaapi
|
||||
shortcut: exa
|
||||
api_key: ""
|
||||
search_type: auto
|
||||
content_mode: highlights
|
||||
inactive: true
|
||||
|
||||
- name: lib.rs
|
||||
shortcut: lrs
|
||||
engine: lib_rs
|
||||
|
||||
8
searx/static/themes/simple/chunk/Bc8fcwWx.min.js
vendored
Normal file
8
searx/static/themes/simple/chunk/Bc8fcwWx.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
15
searx/static/themes/simple/chunk/BfLIj3Of.min.js
vendored
Normal file
15
searx/static/themes/simple/chunk/BfLIj3Of.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
searx/static/themes/simple/chunk/BuurKv-k.min.js
vendored
Normal file
2
searx/static/themes/simple/chunk/BuurKv-k.min.js
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
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.`)}}};export{e as t};
|
||||
//# sourceMappingURL=BuurKv-k.min.js.map
|
||||
1
searx/static/themes/simple/chunk/BuurKv-k.min.js.map
Normal file
1
searx/static/themes/simple/chunk/BuurKv-k.min.js.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"BuurKv-k.min.js","names":[],"sources":["../../../../../client/simple/src/js/Plugin.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\n\n/**\n * Base class for client-side plugins.\n *\n * @remarks\n * Handle conditional loading of the plugin in:\n *\n * - client/simple/src/js/router.ts\n *\n * @abstract\n */\nexport abstract class Plugin {\n /**\n * Plugin name.\n */\n protected readonly id: string;\n\n /**\n * @remarks\n * Don't hold references of this instance outside the class.\n */\n protected constructor(id: string) {\n this.id = id;\n\n queueMicrotask(() => this.invoke());\n }\n\n private async invoke(): Promise<void> {\n try {\n console.debug(`[PLUGIN] ${this.id}: Running...`);\n const result = await this.run();\n if (!result) return;\n\n console.debug(`[PLUGIN] ${this.id}: Running post-exec...`);\n // @ts-expect-error\n void (await this.post(result as NonNullable<Awaited<ReturnType<this[\"run\"]>>>));\n } catch (error) {\n console.error(`[PLUGIN] ${this.id}:`, error);\n } finally {\n console.debug(`[PLUGIN] ${this.id}: Done.`);\n }\n }\n\n /**\n * Plugin goes here.\n *\n * @remarks\n * The plugin is already loaded at this point. If you wish to execute\n * conditions to exit early, consider moving the logic to:\n *\n * - client/simple/src/js/router.ts\n *\n * ...to avoid unnecessarily loading this plugin on the client.\n */\n protected abstract run(): Promise<unknown>;\n\n /**\n * Post-execution hook.\n *\n * @remarks\n * The hook is only executed if `#run()` returns a truthy value.\n */\n // @ts-expect-error\n protected abstract post(result: NonNullable<Awaited<ReturnType<this[\"run\"]>>>): Promise<void>;\n}\n"],"mappings":"AAYA,IAAsB,EAAtB,KAA6B,CAI3B,GAMA,YAAsB,EAAY,CAChC,KAAK,GAAK,EAEV,mBAAqB,KAAK,OAAO,CAAC,CACpC,CAEA,MAAc,QAAwB,CACpC,GAAI,CACF,QAAQ,MAAM,YAAY,KAAK,GAAG,aAAa,EAC/C,IAAM,EAAS,MAAM,KAAK,IAAI,EAC9B,GAAI,CAAC,EAAQ,OAEb,QAAQ,MAAM,YAAY,KAAK,GAAG,uBAAuB,EAEzD,MAAY,KAAK,KAAK,CAAuD,CAC/E,OAAS,EAAO,CACd,QAAQ,MAAM,YAAY,KAAK,GAAG,GAAI,CAAK,CAC7C,QAAU,CACR,QAAQ,MAAM,YAAY,KAAK,GAAG,QAAQ,CAC5C,CACF,CAuBF"}
|
||||
15
searx/static/themes/simple/chunk/C8c7HJzp.min.js
vendored
15
searx/static/themes/simple/chunk/C8c7HJzp.min.js
vendored
File diff suppressed because one or more lines are too long
2
searx/static/themes/simple/chunk/D3mcqWOe.min.js
vendored
Normal file
2
searx/static/themes/simple/chunk/D3mcqWOe.min.js
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import{t as e}from"./BuurKv-k.min.js";import{i as t,t as n}from"../sxng-core.min.js";import{t as r}from"./DK4yUVpy.min.js";import{t as i}from"./DcK-mo-Y.min.js";var a=class extends e{constructor(){super(`infiniteScroll`)}async run(){let e=i(`results`).classList.contains(`only_template_images`),a=`article.result:last-child`,o=document.createElement(`div`);o.className=`loader`;let s=async i=>{let a=document.querySelector(`#search`);r(a);let s=document.querySelector(`#pagination form.next_page`);r(s);let c=a.getAttribute(`action`);if(!c)throw Error(`Form action not defined`);let l=document.querySelector(`#pagination`);r(l),l.replaceChildren(o);try{let t=await(await n(`POST`,c,{body:new FormData(s)})).text();if(!t)return;let r=new DOMParser().parseFromString(t,`text/html`),a=r.querySelectorAll(`#urls article`),o=r.querySelector(`#pagination`);document.querySelector(`#pagination`)?.remove();let l=document.querySelector(`#urls`);if(!l)throw Error(`URLs element not found`);a.length>0&&!e&&l.appendChild(document.createElement(`hr`)),l.append(...a),o&&(document.querySelector(`#results`)?.appendChild(o),i())}catch(e){console.error(`Error loading next page:`,e);let n=Object.assign(document.createElement(`div`),{textContent:t.translations?.error_loading_next_page??`Error loading next page`,className:`dialog-error`});n.setAttribute(`role`,`alert`),document.querySelector(`#pagination`)?.replaceChildren(n)}},c=new IntersectionObserver(async e=>{let[t]=e;t?.isIntersecting&&(c.unobserve(t.target),await s(()=>{let e=document.querySelector(a);e&&c.observe(e)}))},{rootMargin:`320px`}),l=document.querySelector(a);l&&c.observe(l)}async post(){}};export{a as default};
|
||||
//# sourceMappingURL=D3mcqWOe.min.js.map
|
||||
File diff suppressed because one or more lines are too long
@@ -1,2 +0,0 @@
|
||||
import{a as e,i as t,t as n}from"../sxng-core.min.js";import{t as r}from"./DK4yUVpy.min.js";import{t as i}from"./DcK-mo-Y.min.js";var a=class extends e{constructor(){super(`infiniteScroll`)}async run(){let e=i(`results`).classList.contains(`only_template_images`),a=`article.result:last-child`,o=document.createElement(`div`);o.className=`loader`;let s=async i=>{let a=document.querySelector(`#search`);r(a);let s=document.querySelector(`#pagination form.next_page`);r(s);let c=a.getAttribute(`action`);if(!c)throw Error(`Form action not defined`);let l=document.querySelector(`#pagination`);r(l),l.replaceChildren(o);try{let t=await(await n(`POST`,c,{body:new FormData(s)})).text();if(!t)return;let r=new DOMParser().parseFromString(t,`text/html`),a=r.querySelectorAll(`#urls article`),o=r.querySelector(`#pagination`);document.querySelector(`#pagination`)?.remove();let l=document.querySelector(`#urls`);if(!l)throw Error(`URLs element not found`);a.length>0&&!e&&l.appendChild(document.createElement(`hr`)),l.append(...a),o&&(document.querySelector(`#results`)?.appendChild(o),i())}catch(e){console.error(`Error loading next page:`,e);let n=Object.assign(document.createElement(`div`),{textContent:t.translations?.error_loading_next_page??`Error loading next page`,className:`dialog-error`});n.setAttribute(`role`,`alert`),document.querySelector(`#pagination`)?.replaceChildren(n)}},c=new IntersectionObserver(async e=>{let[t]=e;t?.isIntersecting&&(c.unobserve(t.target),await s(()=>{let e=document.querySelector(a);e&&c.observe(e)}))},{rootMargin:`320px`}),l=document.querySelector(a);l&&c.observe(l)}async post(){}};export{a as default};
|
||||
//# sourceMappingURL=DpvWr1cn.min.js.map
|
||||
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"_BuurKv-k.min.js": {
|
||||
"file": "chunk/BuurKv-k.min.js",
|
||||
"name": "plugin"
|
||||
},
|
||||
"_DK4yUVpy.min.js": {
|
||||
"file": "chunk/DK4yUVpy.min.js",
|
||||
"name": "assertelement"
|
||||
@@ -77,33 +81,34 @@
|
||||
]
|
||||
},
|
||||
"src/js/plugin/Calculator.ts": {
|
||||
"file": "chunk/C8c7HJzp.min.js",
|
||||
"file": "chunk/BfLIj3Of.min.js",
|
||||
"name": "calculator",
|
||||
"src": "src/js/plugin/Calculator.ts",
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"src/js/index.ts",
|
||||
"_BuurKv-k.min.js",
|
||||
"_DcK-mo-Y.min.js"
|
||||
]
|
||||
},
|
||||
"src/js/plugin/InfiniteScroll.ts": {
|
||||
"file": "chunk/DpvWr1cn.min.js",
|
||||
"file": "chunk/D3mcqWOe.min.js",
|
||||
"name": "infinitescroll",
|
||||
"src": "src/js/plugin/InfiniteScroll.ts",
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BuurKv-k.min.js",
|
||||
"src/js/index.ts",
|
||||
"_DK4yUVpy.min.js",
|
||||
"_DcK-mo-Y.min.js"
|
||||
]
|
||||
},
|
||||
"src/js/plugin/MapView.ts": {
|
||||
"file": "chunk/BnnvKC7b.min.js",
|
||||
"file": "chunk/Bc8fcwWx.min.js",
|
||||
"name": "mapview",
|
||||
"src": "src/js/plugin/MapView.ts",
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"src/js/index.ts"
|
||||
"_BuurKv-k.min.js"
|
||||
],
|
||||
"css": [
|
||||
"sxng-mapview.min.css"
|
||||
|
||||
4
searx/static/themes/simple/sxng-core.min.js
vendored
4
searx/static/themes/simple/sxng-core.min.js
vendored
@@ -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};
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./chunk/Bc8fcwWx.min.js","./chunk/BuurKv-k.min.js","./sxng-mapview.min.css","./chunk/D3mcqWOe.min.js","./chunk/DK4yUVpy.min.js","./chunk/DcK-mo-Y.min.js","./chunk/BfLIj3Of.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={index:`index`,results:`results`,preferences:`preferences`,unknown:`unknown`},t={closeDetail:void 0,scrollPageToSelected:void 0,selectImage:void 0,selectNext:void 0,selectPrevious:void 0},n=()=>{let t=document.querySelector(`meta[name="endpoint"]`)?.getAttribute(`content`);return t&&t in e?t:e.unknown},r=()=>{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),{}}},i=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},a=(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)},o=(e,t)=>{for(let e of t?.on??[])if(!e)return;document.readyState===`loading`?a(`DOMContentLoaded`,document,e,{once:!0}):e()},s=n(),c=r(),l=(e,t)=>{u(t)&&e()},u=e=>{switch(e.on){case`global`:return!0;case`endpoint`:return!!e.where.includes(s)}},d=`modulepreload`,f=function(e,t){return new URL(e,t).href},p={},m=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=f(t,n),t=s(t),t in p)return;p[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`:d,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)})};o(()=>{document.documentElement.classList.remove(`no-js`),document.documentElement.classList.add(`js`),a(`click`,`.close`,function(){this.parentNode?.classList.add(`invisible`)}),a(`click`,`.searxng_init_map`,async function(t){t.preventDefault(),this.classList.remove(`searxng_init_map`),l(()=>m(async()=>{let{default:e}=await import(`./chunk/Bc8fcwWx.min.js`);return{default:e}},__vite__mapDeps([0,1,2]),import.meta.url).then(({default:e})=>new e(this)),{on:`endpoint`,where:[e.results]})}),c.plugins?.includes(`infiniteScroll`)&&l(()=>m(async()=>{let{default:e}=await import(`./chunk/D3mcqWOe.min.js`);return{default:e}},__vite__mapDeps([3,1,4,5]),import.meta.url).then(({default:e})=>new e),{on:`endpoint`,where:[e.results]}),c.plugins?.includes(`calculator`)&&l(()=>m(async()=>{let{default:e}=await import(`./chunk/BfLIj3Of.min.js`);return{default:e}},__vite__mapDeps([6,1,5,4]),import.meta.url).then(({default:e})=>new e),{on:`endpoint`,where:[e.results]})}),o(()=>{m(()=>import(`./chunk/C93hSkpT.min.js`),__vite__mapDeps([7,4]),import.meta.url),m(()=>import(`./chunk/5Ako-qGW.min.js`),__vite__mapDeps([8,5,4]),import.meta.url),c.autocomplete&&m(()=>import(`./chunk/DvCYLbJr.min.js`),__vite__mapDeps([9,4]),import.meta.url)},{on:[s===e.index]}),o(()=>{m(()=>import(`./chunk/C93hSkpT.min.js`),__vite__mapDeps([7,4]),import.meta.url),m(()=>import(`./chunk/od7pNHfk.min.js`),__vite__mapDeps([10,4]),import.meta.url),m(()=>import(`./chunk/5Ako-qGW.min.js`),__vite__mapDeps([8,5,4]),import.meta.url),c.autocomplete&&m(()=>import(`./chunk/DvCYLbJr.min.js`),__vite__mapDeps([9,4]),import.meta.url)},{on:[s===e.results]}),o(()=>{m(()=>import(`./chunk/e2-9fzwE.min.js`),__vite__mapDeps([11,4]),import.meta.url)},{on:[s===e.preferences]});export{c as i,a as n,t as r,i as t};
|
||||
//# sourceMappingURL=sxng-core.min.js.map
|
||||
File diff suppressed because one or more lines are too long
@@ -15,8 +15,10 @@ sxng_locales = (
|
||||
('bg', 'Български', '', 'Bulgarian', '\U0001f310'),
|
||||
('bg-BG', 'Български', 'България', 'Bulgarian', '\U0001f1e7\U0001f1ec'),
|
||||
('ca', 'Català', '', 'Catalan', '\U0001f310'),
|
||||
('ca-ES', 'Català', 'Espanya', 'Catalan', '\U0001f1ea\U0001f1f8'),
|
||||
('cs', 'Čeština', '', 'Czech', '\U0001f310'),
|
||||
('cs-CZ', 'Čeština', 'Česko', 'Czech', '\U0001f1e8\U0001f1ff'),
|
||||
('cy', 'Cymraeg', '', 'Welsh', '\U0001f310'),
|
||||
('da', 'Dansk', '', 'Danish', '\U0001f310'),
|
||||
('da-DK', 'Dansk', 'Danmark', 'Danish', '\U0001f1e9\U0001f1f0'),
|
||||
('de', 'Deutsch', '', 'German', '\U0001f310'),
|
||||
@@ -49,6 +51,7 @@ sxng_locales = (
|
||||
('es-VE', 'Español', 'Venezuela', 'Spanish', '\U0001f1fb\U0001f1ea'),
|
||||
('et', 'Eesti', '', 'Estonian', '\U0001f310'),
|
||||
('et-EE', 'Eesti', 'Eesti', 'Estonian', '\U0001f1ea\U0001f1ea'),
|
||||
('fa', 'فارسی', '', 'Persian', '\U0001f310'),
|
||||
('fi', 'Suomi', '', 'Finnish', '\U0001f310'),
|
||||
('fi-FI', 'Suomi', 'Suomi', 'Finnish', '\U0001f1eb\U0001f1ee'),
|
||||
('fil', 'Filipino', '', 'Filipino', '\U0001f310'),
|
||||
@@ -74,6 +77,10 @@ sxng_locales = (
|
||||
('ja-JP', '日本語', '日本', 'Japanese', '\U0001f1ef\U0001f1f5'),
|
||||
('ko', '한국어', '', 'Korean', '\U0001f310'),
|
||||
('ko-KR', '한국어', '대한민국', 'Korean', '\U0001f1f0\U0001f1f7'),
|
||||
('lt', 'Lietuvių', '', 'Lithuanian', '\U0001f310'),
|
||||
('lt-LT', 'Lietuvių', 'Lietuva', 'Lithuanian', '\U0001f1f1\U0001f1f9'),
|
||||
('lv', 'Latviešu', '', 'Latvian', '\U0001f310'),
|
||||
('lv-LV', 'Latviešu', 'Latvija', 'Latvian', '\U0001f1f1\U0001f1fb'),
|
||||
('mi', 'Māori', '', 'Māori', '\U0001f310'),
|
||||
('mi-NZ', 'Māori', 'Aotearoa', 'Māori', '\U0001f1f3\U0001f1ff'),
|
||||
('nb', 'Norsk Bokmål', '', 'Norwegian Bokmål', '\U0001f310'),
|
||||
@@ -93,6 +100,9 @@ sxng_locales = (
|
||||
('ru', 'Русский', '', 'Russian', '\U0001f310'),
|
||||
('ru-RU', 'Русский', 'Россия', 'Russian', '\U0001f1f7\U0001f1fa'),
|
||||
('sk', 'Slovenčina', '', 'Slovak', '\U0001f310'),
|
||||
('sk-SK', 'Slovenčina', 'Slovensko', 'Slovak', '\U0001f1f8\U0001f1f0'),
|
||||
('sl', 'Slovenščina', '', 'Slovenian', '\U0001f310'),
|
||||
('sl-SI', 'Slovenščina', 'Slovenija', 'Slovenian', '\U0001f1f8\U0001f1ee'),
|
||||
('sq', 'Shqip', '', 'Albanian', '\U0001f310'),
|
||||
('sv', 'Svenska', '', 'Swedish', '\U0001f310'),
|
||||
('sv-FI', 'Svenska', 'Finland', 'Swedish', '\U0001f1eb\U0001f1ee'),
|
||||
@@ -102,6 +112,7 @@ sxng_locales = (
|
||||
('tr', 'Türkçe', '', 'Turkish', '\U0001f310'),
|
||||
('tr-TR', 'Türkçe', 'Türkiye', 'Turkish', '\U0001f1f9\U0001f1f7'),
|
||||
('uk', 'Українська', '', 'Ukrainian', '\U0001f310'),
|
||||
('uk-UA', 'Українська', 'Україна', 'Ukrainian', '\U0001f1fa\U0001f1e6'),
|
||||
('vi', 'Tiếng Việt', '', 'Vietnamese', '\U0001f310'),
|
||||
('vi-VN', 'Tiếng Việt', 'Việt Nam', 'Vietnamese', '\U0001f1fb\U0001f1f3'),
|
||||
('zh', '中文', '', 'Chinese', '\U0001f310'),
|
||||
|
||||
@@ -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-engine">{{ _label(_("Engine"), result.engine) }}</p>
|
||||
<p class="result-engines">{{ _label(_("Engines"), ", ".join(result.engines)) }}</p>
|
||||
<p class="result-url"><span>{{ _("View source") }}:</span>{{- "" -}}
|
||||
<a {{ _target(results_on_new_tab) }} href="{{ result.url }}">{{ result.url }}</a>
|
||||
</p>
|
||||
|
||||
Binary file not shown.
@@ -23,17 +23,16 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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']
|
||||
@@ -77,7 +76,7 @@ msgid "videos"
|
||||
msgstr "videos"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
@@ -551,7 +550,7 @@ msgstr "geantwoord"
|
||||
msgid "No item found"
|
||||
msgstr "Geen item gevind"
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
|
||||
msgid "Source"
|
||||
msgstr "Bron"
|
||||
@@ -647,7 +646,7 @@ msgstr "Genereer verskillende ewekansige waardes"
|
||||
msgid "Compute {func} of the arguments"
|
||||
msgstr "Bereken {func} van die opsies"
|
||||
|
||||
#: searx/engines/boardreader.py:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, python-brace-format
|
||||
msgid "Posted by {author}"
|
||||
msgstr "Geplaas deur {author}"
|
||||
@@ -665,19 +664,19 @@ msgstr "{title} (UITGEDIEN)"
|
||||
msgid "This entry has been superseded by"
|
||||
msgstr "Hierdie inskrywing was vervang deur"
|
||||
|
||||
#: searx/engines/qwant.py:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "Kanaal"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "bitsnelheid"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "stemme"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr "klikke"
|
||||
|
||||
@@ -713,15 +712,15 @@ msgstr ""
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Die prent kon nie afgelaai word nie."
|
||||
|
||||
#: searx/engines/zlibrary.py:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "Taal"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "boekgradering"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "Lêer kwaliteit"
|
||||
|
||||
@@ -1014,6 +1013,7 @@ msgid "Privacy"
|
||||
msgstr "Privaatheid"
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr "Enjins"
|
||||
|
||||
@@ -1656,10 +1656,6 @@ 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"
|
||||
@@ -2166,3 +2162,7 @@ msgstr "versteek video"
|
||||
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "Formaat"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "Enjin"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -31,20 +31,19 @@
|
||||
# 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-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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']
|
||||
@@ -88,7 +87,7 @@ msgid "videos"
|
||||
msgstr "ڤيديوهات"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "إذاعة"
|
||||
|
||||
@@ -562,7 +561,7 @@ msgstr "تمت الإجابة"
|
||||
msgid "No item found"
|
||||
msgstr "لم يتم العثور على عنصر"
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
|
||||
msgid "Source"
|
||||
msgstr "مصدر"
|
||||
@@ -658,7 +657,7 @@ msgstr "توليد قِيم عشوائية مختلفة"
|
||||
msgid "Compute {func} of the arguments"
|
||||
msgstr "حساب {func} من الحجج"
|
||||
|
||||
#: searx/engines/boardreader.py:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, python-brace-format
|
||||
msgid "Posted by {author}"
|
||||
msgstr "منشور بواسطة {author}"
|
||||
@@ -676,19 +675,19 @@ msgstr "{title} (قديم)"
|
||||
msgid "This entry has been superseded by"
|
||||
msgstr "تم استبدال هذا الإدخال بـ"
|
||||
|
||||
#: searx/engines/qwant.py:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "القناة"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "معدل البت"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "تصويتات"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr "نقرات"
|
||||
|
||||
@@ -722,15 +721,15 @@ msgstr ""
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "لا يمكن تنزيل الصورة."
|
||||
|
||||
#: searx/engines/zlibrary.py:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "اللغة"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "تقييم الكتاب"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "جودة الملف"
|
||||
|
||||
@@ -1022,6 +1021,7 @@ msgid "Privacy"
|
||||
msgstr "الخصوصية"
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr "المحركات"
|
||||
|
||||
@@ -1661,10 +1661,6 @@ 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,3 +2400,7 @@ msgstr "إخفاء الفيديو"
|
||||
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "صيغة"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "محرك"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -21,18 +21,19 @@
|
||||
# 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-06-13 11:31+0000\n"
|
||||
"PO-Revision-Date: 2026-05-19 12:07+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
|
||||
"PO-Revision-Date: 2026-07-17 12:20+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']
|
||||
@@ -76,7 +77,7 @@ msgid "videos"
|
||||
msgstr "видео"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "радио"
|
||||
|
||||
@@ -550,7 +551,7 @@ msgstr "Отговорено"
|
||||
msgid "No item found"
|
||||
msgstr "Не е намерен артикул"
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
|
||||
msgid "Source"
|
||||
msgstr "Източник"
|
||||
@@ -646,7 +647,7 @@ msgstr "Генерирайте различни произволни стойн
|
||||
msgid "Compute {func} of the arguments"
|
||||
msgstr "Изчислете {func} на аргументите"
|
||||
|
||||
#: searx/engines/boardreader.py:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, python-brace-format
|
||||
msgid "Posted by {author}"
|
||||
msgstr ""
|
||||
@@ -664,19 +665,19 @@ msgstr "{title} (ОСТАРЯЛО)"
|
||||
msgid "This entry has been superseded by"
|
||||
msgstr "Този запис е заменен от"
|
||||
|
||||
#: searx/engines/qwant.py:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "Канал"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "Скорост"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "Гласове"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr "клика"
|
||||
|
||||
@@ -712,15 +713,15 @@ msgstr ""
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Снимката не може да бъде свалена."
|
||||
|
||||
#: searx/engines/zlibrary.py:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "Език"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "Рейтинг на книги"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "Качество на файл"
|
||||
|
||||
@@ -1006,6 +1007,7 @@ msgid "Privacy"
|
||||
msgstr "Поверителност"
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr "Търсачки"
|
||||
|
||||
@@ -1015,7 +1017,7 @@ msgstr "Използвани търсачки в момента"
|
||||
|
||||
#: searx/templates/simple/preferences.html:246
|
||||
msgid "Special Queries"
|
||||
msgstr "Специялни Запитвания"
|
||||
msgstr "Специални Запитвания"
|
||||
|
||||
#: searx/templates/simple/preferences.html:254
|
||||
msgid "Cookies"
|
||||
@@ -1657,10 +1659,6 @@ 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,3 +2402,5 @@ msgstr "скрий видеото"
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "Формат"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "Търсачка"
|
||||
|
||||
Binary file not shown.
@@ -29,7 +29,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "বেতার"
|
||||
|
||||
@@ -556,7 +556,7 @@ msgstr "উত্তরকৃত"
|
||||
msgid "No item found"
|
||||
msgstr "কোন আইটেম পাওয়া যায়নি"
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: 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:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, 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:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "চ্যানেল"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "বিটরেট"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "ভোট"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr "ক্লিক সংখ্যা"
|
||||
|
||||
@@ -717,15 +717,15 @@ msgstr ""
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "ছবিটি ডাউনলোড করা যায়নি ।"
|
||||
|
||||
#: searx/engines/zlibrary.py:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "ভাষা"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "বই পর্যালোচনা"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "নথি মান"
|
||||
|
||||
@@ -1013,6 +1013,7 @@ msgid "Privacy"
|
||||
msgstr "গোপনীয়তা"
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr "ইঞ্জিন"
|
||||
|
||||
@@ -1649,10 +1650,6 @@ 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 "উৎস দেখুন"
|
||||
@@ -2162,3 +2159,6 @@ msgstr "ভিডিও লুকিয়ে ফেলুন"
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "সজ্জা"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "ইঞ্জিন"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -13,7 +13,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr ""
|
||||
|
||||
@@ -540,7 +540,7 @@ msgstr ""
|
||||
msgid "No item found"
|
||||
msgstr "རྣམ་གྲངས་གང་ཡང་རྙེད་རྒྱུ་མ་བྱུང་།"
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: 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:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, 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:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr ""
|
||||
|
||||
@@ -694,15 +694,15 @@ msgstr ""
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr ""
|
||||
|
||||
@@ -980,6 +980,7 @@ msgid "Privacy"
|
||||
msgstr "མི་སྒེར་གསང་དོན།"
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr "སྒུལ་བྱེད།"
|
||||
|
||||
@@ -1606,10 +1607,6 @@ 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 "ཡོངས་ཁུངས་ལ་ལྟ།"
|
||||
@@ -2295,3 +2292,6 @@ msgstr "རྙན་ཟློས་སྦས།"
|
||||
#~ msgid "Format"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr ""
|
||||
|
||||
|
||||
Binary file not shown.
@@ -29,19 +29,18 @@
|
||||
# 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-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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']
|
||||
@@ -85,7 +84,7 @@ msgid "videos"
|
||||
msgstr "vídeos"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
@@ -559,7 +558,7 @@ msgstr "contestat"
|
||||
msgid "No item found"
|
||||
msgstr "No s'ha trobat cap element"
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
|
||||
msgid "Source"
|
||||
msgstr "Origen"
|
||||
@@ -655,7 +654,7 @@ msgstr "Genera diferents valors aleatoris"
|
||||
msgid "Compute {func} of the arguments"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/boardreader.py:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, python-brace-format
|
||||
msgid "Posted by {author}"
|
||||
msgstr ""
|
||||
@@ -673,19 +672,19 @@ msgstr "{title} (OBSOLET)"
|
||||
msgid "This entry has been superseded by"
|
||||
msgstr "Aquesta entrada ha estat substituïda per"
|
||||
|
||||
#: searx/engines/qwant.py:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "Canal"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "tasa de bits"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "vots"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr "clics"
|
||||
|
||||
@@ -720,15 +719,15 @@ msgstr ""
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "No s'ha pogut baixar la imatge."
|
||||
|
||||
#: searx/engines/zlibrary.py:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "Llengua"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "Valoració de llibre"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "Qualitat del fitxer"
|
||||
|
||||
@@ -1013,6 +1012,7 @@ 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,10 +1658,6 @@ 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"
|
||||
@@ -2424,3 +2420,7 @@ msgstr "oculta el vídeo"
|
||||
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "Format"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "Cercador"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -25,20 +25,19 @@
|
||||
# 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-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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']
|
||||
@@ -82,7 +81,7 @@ msgid "videos"
|
||||
msgstr "videa"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "rádio"
|
||||
|
||||
@@ -556,7 +555,7 @@ msgstr "zodpovězené"
|
||||
msgid "No item found"
|
||||
msgstr "Nic nenalezeno"
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
|
||||
msgid "Source"
|
||||
msgstr "zdroj"
|
||||
@@ -652,7 +651,7 @@ msgstr "Generování náhodných hodnot"
|
||||
msgid "Compute {func} of the arguments"
|
||||
msgstr "Vypočítat {func} argumentů"
|
||||
|
||||
#: searx/engines/boardreader.py:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, python-brace-format
|
||||
msgid "Posted by {author}"
|
||||
msgstr "Autor: {author}"
|
||||
@@ -670,19 +669,19 @@ msgstr "{title} (ZASTARALÉ)"
|
||||
msgid "This entry has been superseded by"
|
||||
msgstr "Tato položka byla nahrazena položkou"
|
||||
|
||||
#: searx/engines/qwant.py:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "Kanál"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "datový tok"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "hlasy"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr "kliknutí"
|
||||
|
||||
@@ -717,15 +716,15 @@ msgstr ""
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Obrázek se nepodařilo stáhnout."
|
||||
|
||||
#: searx/engines/zlibrary.py:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "Jazyk"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "Hodnocení knih"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "Množství souborů"
|
||||
|
||||
@@ -1016,6 +1015,7 @@ 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,10 +1659,6 @@ 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"
|
||||
@@ -2410,3 +2406,7 @@ msgstr "skrýt video"
|
||||
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "Formát"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "Vyhledávač"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -20,7 +20,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 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:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: 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:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, 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:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "Sianel"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "cyfradd didau"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "pleidleisiau"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
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:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "Iaith"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "Gradd llyfr"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "ansawdd ffeil"
|
||||
|
||||
@@ -1003,6 +1003,7 @@ msgid "Privacy"
|
||||
msgstr "Preifatrwydd"
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr "Peiriannau"
|
||||
|
||||
@@ -1638,10 +1639,6 @@ 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"
|
||||
@@ -2363,3 +2360,6 @@ msgstr "cuddio'r fideo"
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "Fformat"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "Peiriant"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -17,19 +17,18 @@
|
||||
# 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-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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']
|
||||
@@ -73,7 +72,7 @@ msgid "videos"
|
||||
msgstr "videoer"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "Radio"
|
||||
|
||||
@@ -547,7 +546,7 @@ msgstr "svaret"
|
||||
msgid "No item found"
|
||||
msgstr "Intet fundet"
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
|
||||
msgid "Source"
|
||||
msgstr "Kilde"
|
||||
@@ -643,7 +642,7 @@ msgstr "Generér forskellige tilfældige værdier"
|
||||
msgid "Compute {func} of the arguments"
|
||||
msgstr "Beregn {func} af argumenterne"
|
||||
|
||||
#: searx/engines/boardreader.py:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, python-brace-format
|
||||
msgid "Posted by {author}"
|
||||
msgstr "Indsendt af {author}"
|
||||
@@ -661,19 +660,19 @@ msgstr "{title} (FORÆLDET)"
|
||||
msgid "This entry has been superseded by"
|
||||
msgstr "Denne værdi er blevet overskrevet af"
|
||||
|
||||
#: searx/engines/qwant.py:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "Kanal"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "Bitrate"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "Stemmer"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr "Klik"
|
||||
|
||||
@@ -709,15 +708,15 @@ msgstr ""
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Dette billede kunne ikke downloades."
|
||||
|
||||
#: searx/engines/zlibrary.py:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "Sprog"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "Bogbedømmelse"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "Filkvalitet"
|
||||
|
||||
@@ -1010,6 +1009,7 @@ msgid "Privacy"
|
||||
msgstr "Privatliv"
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr "Søgemaskiner"
|
||||
|
||||
@@ -1655,10 +1655,6 @@ 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"
|
||||
@@ -2419,3 +2415,7 @@ msgstr "skjul video"
|
||||
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "Format"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "Maskine"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -32,19 +32,18 @@
|
||||
# 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-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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']
|
||||
@@ -88,7 +87,7 @@ msgid "videos"
|
||||
msgstr "Videos"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "Radio"
|
||||
|
||||
@@ -562,7 +561,7 @@ msgstr "beantwortet"
|
||||
msgid "No item found"
|
||||
msgstr "Keine Einträge gefunden"
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
|
||||
msgid "Source"
|
||||
msgstr "Quelle"
|
||||
@@ -658,7 +657,7 @@ msgstr "Erzeugt diverse Zufallswerte"
|
||||
msgid "Compute {func} of the arguments"
|
||||
msgstr "Berechne {func} zu den Argumenten"
|
||||
|
||||
#: searx/engines/boardreader.py:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, python-brace-format
|
||||
msgid "Posted by {author}"
|
||||
msgstr "Beitrag von {author}"
|
||||
@@ -676,19 +675,19 @@ msgstr "{title} (OBSOLET)"
|
||||
msgid "This entry has been superseded by"
|
||||
msgstr "Dieser Eintrag wurde überschrieben von"
|
||||
|
||||
#: searx/engines/qwant.py:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "Kanal"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "Bitrate"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "Stimmen"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr "Clicks"
|
||||
|
||||
@@ -724,15 +723,15 @@ msgstr ""
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Das Bild konnte nicht heruntergeladen werden."
|
||||
|
||||
#: searx/engines/zlibrary.py:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "Sprache"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "Buchbewertung"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "Dateiqualität"
|
||||
|
||||
@@ -1031,6 +1030,7 @@ msgid "Privacy"
|
||||
msgstr "Privatsphäre"
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr "Suchmaschinen"
|
||||
|
||||
@@ -1674,10 +1674,6 @@ 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"
|
||||
@@ -2466,3 +2462,7 @@ msgstr "Video verstecken"
|
||||
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "Format"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "Suchmaschine"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "ރޭޑިއޯ އިންނެވެ"
|
||||
|
||||
@@ -537,7 +537,7 @@ msgstr ""
|
||||
msgid "No item found"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: 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:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, 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:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr ""
|
||||
|
||||
@@ -691,15 +691,15 @@ msgstr ""
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr ""
|
||||
|
||||
@@ -977,6 +977,7 @@ msgid "Privacy"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr ""
|
||||
|
||||
@@ -1601,10 +1602,6 @@ 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 ""
|
||||
@@ -2026,3 +2023,6 @@ msgstr ""
|
||||
#~ msgid "Format"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr ""
|
||||
|
||||
|
||||
Binary file not shown.
@@ -23,19 +23,18 @@
|
||||
# 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-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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']
|
||||
@@ -79,7 +78,7 @@ msgid "videos"
|
||||
msgstr "Βίντεο"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "ράδιο"
|
||||
|
||||
@@ -553,7 +552,7 @@ msgstr "απάντησε"
|
||||
msgid "No item found"
|
||||
msgstr "Δεν βρέθηκαν αντικείμενα"
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
|
||||
msgid "Source"
|
||||
msgstr "Πηγή"
|
||||
@@ -649,7 +648,7 @@ msgstr "Δημιουργία διαφορετικών τυχαίων τιμών"
|
||||
msgid "Compute {func} of the arguments"
|
||||
msgstr "Υπολογίστε τη {func} των ορισμάτων"
|
||||
|
||||
#: searx/engines/boardreader.py:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, python-brace-format
|
||||
msgid "Posted by {author}"
|
||||
msgstr "Δημοσιεύτηκε απο {author}"
|
||||
@@ -667,19 +666,19 @@ msgstr "{title} (ΠΑΡΩΧΗΜΕΝΟΣ)"
|
||||
msgid "This entry has been superseded by"
|
||||
msgstr "Αυτή η καταχώριση έχει αντικατασταθεί από"
|
||||
|
||||
#: searx/engines/qwant.py:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "Κανάλι"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "ρυθμός μετάδοσης"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "ψήφους"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr "κλικ"
|
||||
|
||||
@@ -715,15 +714,15 @@ msgstr ""
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Αποτυχία μεταφόρτωσης εικόνας."
|
||||
|
||||
#: searx/engines/zlibrary.py:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "Γλώσσα"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "Βαθμολογία βιβλίου"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "Ποιότητα αρχείου"
|
||||
|
||||
@@ -1016,6 +1015,7 @@ msgid "Privacy"
|
||||
msgstr "Ιδιωτικότητα"
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr "Μηχανές"
|
||||
|
||||
@@ -1669,10 +1669,6 @@ 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 "Προβολή πηγής"
|
||||
@@ -2439,3 +2435,7 @@ msgstr "απόκρυψη βίντεο"
|
||||
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "Μορφή"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "Μηχανή"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr ""
|
||||
|
||||
@@ -533,7 +533,7 @@ msgstr ""
|
||||
msgid "No item found"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: 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:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, 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:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr ""
|
||||
|
||||
@@ -687,15 +687,15 @@ msgstr ""
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr ""
|
||||
|
||||
@@ -973,6 +973,7 @@ msgid "Privacy"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr ""
|
||||
|
||||
@@ -1597,10 +1598,6 @@ 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 ""
|
||||
@@ -2287,3 +2284,6 @@ msgstr ""
|
||||
#~ msgid "Format"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr ""
|
||||
|
||||
|
||||
Binary file not shown.
@@ -23,7 +23,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
@@ -550,7 +550,7 @@ msgstr ""
|
||||
msgid "No item found"
|
||||
msgstr "Nenio trovita"
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: 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:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, 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:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "Kanalo"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "bito-rapido"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "voĉoj"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
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:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "Lingvo"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "Taksado de libro"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "Dosiera kvalito"
|
||||
|
||||
@@ -1002,6 +1002,7 @@ msgid "Privacy"
|
||||
msgstr "Privateco"
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr "Serĉiloj"
|
||||
|
||||
@@ -1640,10 +1641,6 @@ 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"
|
||||
@@ -2375,3 +2372,6 @@ msgstr "kaŝi videojn"
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "Formato"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "Serĉilo"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -52,8 +52,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
|
||||
"PO-Revision-Date: 2026-06-14 13:07+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
|
||||
"PO-Revision-Date: 2026-07-23 22:07+0000\n"
|
||||
"Last-Translator: gallegonovato <gallegonovato@noreply.codeberg.org>\n"
|
||||
"Language-Team: Spanish <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/es/>\n"
|
||||
@@ -78,7 +78,7 @@ msgstr "otro"
|
||||
#. CATEGORY_NAMES['FILES']
|
||||
#: searx/searxng.msg
|
||||
msgid "files"
|
||||
msgstr "files"
|
||||
msgstr "archivos"
|
||||
|
||||
#. CATEGORY_NAMES['GENERAL']
|
||||
#: searx/searxng.msg
|
||||
@@ -106,7 +106,7 @@ msgid "videos"
|
||||
msgstr "vídeos"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
@@ -580,7 +580,7 @@ msgstr "contestado"
|
||||
msgid "No item found"
|
||||
msgstr "Ningún artículo encontrado"
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
|
||||
msgid "Source"
|
||||
msgstr "Fuente"
|
||||
@@ -676,7 +676,7 @@ msgstr "Generar varios valores aleatorios"
|
||||
msgid "Compute {func} of the arguments"
|
||||
msgstr "Calcular {func} de los argumentos"
|
||||
|
||||
#: searx/engines/boardreader.py:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, python-brace-format
|
||||
msgid "Posted by {author}"
|
||||
msgstr "Publicado por {author}"
|
||||
@@ -694,19 +694,19 @@ msgstr "{title} (OBSOLETO)"
|
||||
msgid "This entry has been superseded by"
|
||||
msgstr "Esta entrada ha sido sustituida por"
|
||||
|
||||
#: searx/engines/qwant.py:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "Canal"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "bitrate"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "votos"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr "clics"
|
||||
|
||||
@@ -741,15 +741,15 @@ msgstr ""
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "No se pudo descargar la imagen."
|
||||
|
||||
#: searx/engines/zlibrary.py:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "Idioma"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "Valoración del libro"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "Calidad del archivo"
|
||||
|
||||
@@ -1042,6 +1042,7 @@ msgid "Privacy"
|
||||
msgstr "Privacidad"
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr "Motores"
|
||||
|
||||
@@ -1688,10 +1689,6 @@ 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"
|
||||
@@ -2463,3 +2460,6 @@ msgstr "ocultar video"
|
||||
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "Formato"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "Motor"
|
||||
|
||||
Binary file not shown.
@@ -19,19 +19,18 @@
|
||||
# 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-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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']
|
||||
@@ -75,7 +74,7 @@ msgid "videos"
|
||||
msgstr "videod"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "raadio"
|
||||
|
||||
@@ -549,7 +548,7 @@ msgstr "vastatud"
|
||||
msgid "No item found"
|
||||
msgstr "Üksust ei leitud"
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
|
||||
msgid "Source"
|
||||
msgstr "Allikas"
|
||||
@@ -645,7 +644,7 @@ msgstr "Genereeri erinevaid juhuslikke väärtusi"
|
||||
msgid "Compute {func} of the arguments"
|
||||
msgstr "Arvuta argumentidest {func}"
|
||||
|
||||
#: searx/engines/boardreader.py:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, python-brace-format
|
||||
msgid "Posted by {author}"
|
||||
msgstr "Postituse autor on {author}"
|
||||
@@ -663,19 +662,19 @@ msgstr "{title} (VANANENUD)"
|
||||
msgid "This entry has been superseded by"
|
||||
msgstr "See üksus on asendatud"
|
||||
|
||||
#: searx/engines/qwant.py:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "Kanal"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "bitikiirus"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "hääled"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr "klikid"
|
||||
|
||||
@@ -710,15 +709,15 @@ msgstr ""
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Pilti ei saanud alla laadida."
|
||||
|
||||
#: searx/engines/zlibrary.py:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "Keel"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "Raamatu hinnang"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "Faili kvaliteet"
|
||||
|
||||
@@ -1011,6 +1010,7 @@ msgid "Privacy"
|
||||
msgstr "Privaatsus"
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr "Otsingumootorid"
|
||||
|
||||
@@ -1653,10 +1653,6 @@ 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"
|
||||
@@ -2397,3 +2393,7 @@ msgstr "peida video"
|
||||
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "Vorming"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "Otsingumootor"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -18,18 +18,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-06-13 11:31+0000\n"
|
||||
"PO-Revision-Date: 2026-05-01 07:50+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+0000\n"
|
||||
"PO-Revision-Date: 2026-07-23 22:07+0000\n"
|
||||
"Last-Translator: alexgabi <alexgabi@noreply.codeberg.org>\n"
|
||||
"Language-Team: Basque <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/eu/>\n"
|
||||
"Language: eu\n"
|
||||
"Language-Team: Basque "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/eu/>\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']
|
||||
@@ -73,7 +74,7 @@ msgid "videos"
|
||||
msgstr "bideoak"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "irratia"
|
||||
|
||||
@@ -547,7 +548,7 @@ msgstr "erantzunda"
|
||||
msgid "No item found"
|
||||
msgstr "Ez da elementurik aurkitu"
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
|
||||
msgid "Source"
|
||||
msgstr "Iturria"
|
||||
@@ -643,7 +644,7 @@ msgstr "Ausazko balio ezberdinak sortu"
|
||||
msgid "Compute {func} of the arguments"
|
||||
msgstr "Kalkulatu argumentuen {func}"
|
||||
|
||||
#: searx/engines/boardreader.py:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, python-brace-format
|
||||
msgid "Posted by {author}"
|
||||
msgstr "{author}-k argitaratuta"
|
||||
@@ -661,19 +662,19 @@ msgstr "{title} (ZAHARKITUA)"
|
||||
msgid "This entry has been superseded by"
|
||||
msgstr "Sarrera hau hurrengoarekin ordezkatu da"
|
||||
|
||||
#: searx/engines/qwant.py:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "Kanala"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "bit emaria"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "botoak"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr "klikak"
|
||||
|
||||
@@ -708,15 +709,15 @@ msgstr ""
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Ezin izan da deskargatu irudia."
|
||||
|
||||
#: searx/engines/zlibrary.py:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "Hizkuntza"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "Liburuaren balorazioa"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "Fitxategiaren kalitatea"
|
||||
|
||||
@@ -1007,6 +1008,7 @@ msgid "Privacy"
|
||||
msgstr "Pribatutasuna"
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr "Bilatzaileak"
|
||||
|
||||
@@ -1438,7 +1440,7 @@ msgstr "Gehienezko denbora"
|
||||
|
||||
#: searx/templates/simple/preferences/favicon.html:2
|
||||
msgid "Favicon Resolver"
|
||||
msgstr "Favicon Resolver"
|
||||
msgstr "Favicon erabakitzailea"
|
||||
|
||||
#: searx/templates/simple/preferences/favicon.html:15
|
||||
msgid "Display favicons near search results"
|
||||
@@ -1645,15 +1647,11 @@ msgstr "Ebazpena"
|
||||
|
||||
#: searx/templates/simple/result_templates/images.html:55
|
||||
msgid "Image formats"
|
||||
msgstr ""
|
||||
msgstr "Irudi formatuak"
|
||||
|
||||
#: searx/templates/simple/result_templates/images.html:56
|
||||
msgid "original format"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engine"
|
||||
msgstr "Bilatzailea"
|
||||
msgstr "jatorrizko formatua"
|
||||
|
||||
#: searx/templates/simple/result_templates/images.html:64
|
||||
msgid "View source"
|
||||
@@ -2395,3 +2393,5 @@ msgstr "ezkutatu bideoa"
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "Formatua"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "Bilatzailea"
|
||||
|
||||
Binary file not shown.
@@ -29,7 +29,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "رادیو"
|
||||
|
||||
@@ -556,7 +556,7 @@ msgstr "جواب داده شده"
|
||||
msgid "No item found"
|
||||
msgstr "چیزی پیدا نشد"
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: 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:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, 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:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "کانال"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "بیت ریت"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "رای ها"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr "کلیک ها"
|
||||
|
||||
@@ -717,15 +717,15 @@ msgstr ""
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "تصویر نمیتواند دانلود شود."
|
||||
|
||||
#: searx/engines/zlibrary.py:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "زبان"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "رتبه بندی کتاب"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "کیفیت فایل"
|
||||
|
||||
@@ -1010,6 +1010,7 @@ msgid "Privacy"
|
||||
msgstr "حریم شخصی"
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr "موتورها"
|
||||
|
||||
@@ -1650,10 +1651,6 @@ 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 "نمایش منبع"
|
||||
@@ -2407,3 +2404,6 @@ msgstr "پنهانسازی ویدئو"
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "قالب"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "موتور"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -23,7 +23,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 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:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: 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:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, 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:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "Kanava"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "bittinopeus"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "ääntä"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
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:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "Kieli"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "Kirjan arvostelu"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "Tiedoston laatu"
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgid "Privacy"
|
||||
msgstr "Yksityisyys"
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr "Hakukoneet"
|
||||
|
||||
@@ -1655,10 +1656,6 @@ 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"
|
||||
@@ -2414,3 +2411,6 @@ msgstr "piilota video"
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "Muoto"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "Hakukone"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -20,20 +20,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-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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']
|
||||
@@ -77,7 +76,7 @@ msgid "videos"
|
||||
msgstr "mga bidyo"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radyo"
|
||||
|
||||
@@ -551,7 +550,7 @@ msgstr "sinagot"
|
||||
msgid "No item found"
|
||||
msgstr "Walang nakita na aytem"
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
|
||||
msgid "Source"
|
||||
msgstr "Pinagmulan"
|
||||
@@ -647,7 +646,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:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, python-brace-format
|
||||
msgid "Posted by {author}"
|
||||
msgstr ""
|
||||
@@ -665,19 +664,19 @@ msgstr "{title} (Luma)"
|
||||
msgid "This entry has been superseded by"
|
||||
msgstr "Ang tala na ito ay ipinagpaliban ng"
|
||||
|
||||
#: searx/engines/qwant.py:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "Tyanel"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "bitrate"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "mga boto"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr "mga click"
|
||||
|
||||
@@ -711,15 +710,15 @@ msgstr ""
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Hindi ma-download ang imahe na ito."
|
||||
|
||||
#: searx/engines/zlibrary.py:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "Wika"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "rating ng libro"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "Kalidad ng file"
|
||||
|
||||
@@ -1006,6 +1005,7 @@ msgid "Privacy"
|
||||
msgstr "Pagiging Pribado"
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr "Engines"
|
||||
|
||||
@@ -1652,10 +1652,6 @@ 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"
|
||||
@@ -2424,3 +2420,7 @@ msgstr "itago ang video"
|
||||
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "Anyo"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "Engine"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -47,19 +47,18 @@
|
||||
# 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-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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']
|
||||
@@ -103,7 +102,7 @@ msgid "videos"
|
||||
msgstr "vidéos"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
@@ -577,7 +576,7 @@ msgstr "répondu"
|
||||
msgid "No item found"
|
||||
msgstr "Pas d'élément trouvé"
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
|
||||
msgid "Source"
|
||||
msgstr "Source"
|
||||
@@ -673,7 +672,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:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, python-brace-format
|
||||
msgid "Posted by {author}"
|
||||
msgstr "Publié par {author}"
|
||||
@@ -691,19 +690,19 @@ msgstr "{title} (OBSOLÈTE)"
|
||||
msgid "This entry has been superseded by"
|
||||
msgstr "Cet item a été remplacé par"
|
||||
|
||||
#: searx/engines/qwant.py:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "Chaîne"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "débit"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "voix"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr "clics"
|
||||
|
||||
@@ -739,15 +738,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:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "Langue"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "Évaluation du livre"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "Qualité du fichier"
|
||||
|
||||
@@ -1042,6 +1041,7 @@ 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,10 +1687,6 @@ 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"
|
||||
@@ -2470,3 +2466,7 @@ msgstr "cacher la vidéo"
|
||||
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "Format"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "Moteur"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -10,7 +10,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2026-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 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:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: 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:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, 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:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "Cainéal"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "ráta giotán"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "vótaí"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
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:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "Teanga"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "Rátáil leabhar"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "Cáilíocht comhad"
|
||||
|
||||
@@ -1003,6 +1003,7 @@ msgid "Privacy"
|
||||
msgstr "Príobháideacht"
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr "Innill"
|
||||
|
||||
@@ -1651,10 +1652,6 @@ 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"
|
||||
@@ -1970,3 +1967,6 @@ msgstr "físeán a cheilt"
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "Formáid"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "Inneall"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -14,19 +14,18 @@
|
||||
# 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-06-13 11:31+0000\n"
|
||||
"POT-Creation-Date: 2026-07-15 15:45+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']
|
||||
@@ -70,7 +69,7 @@ msgid "videos"
|
||||
msgstr "vídeos"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:159 searx/searxng.msg
|
||||
#: searx/engines/radio_browser.py:160 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
@@ -544,7 +543,7 @@ msgstr "respondido"
|
||||
msgid "No item found"
|
||||
msgstr "Non se atoparon elementos"
|
||||
|
||||
#: searx/engines/qwant.py:258
|
||||
#: searx/engines/qwant.py:286
|
||||
#: searx/templates/simple/result_templates/images.html:62 searx/webapp.py:328
|
||||
msgid "Source"
|
||||
msgstr "Fonte"
|
||||
@@ -640,7 +639,7 @@ msgstr "Xerar diferentes valores aleatorios"
|
||||
msgid "Compute {func} of the arguments"
|
||||
msgstr "Cálculo {func} dos argumentos"
|
||||
|
||||
#: searx/engines/boardreader.py:107
|
||||
#: searx/engines/boardreader.py:108
|
||||
#, python-brace-format
|
||||
msgid "Posted by {author}"
|
||||
msgstr "Publicado por {author}"
|
||||
@@ -658,19 +657,19 @@ msgstr "{title} (OBSOLETO)"
|
||||
msgid "This entry has been superseded by"
|
||||
msgstr "Esta entrada foi proporcionada por"
|
||||
|
||||
#: searx/engines/qwant.py:260
|
||||
#: searx/engines/qwant.py:288
|
||||
msgid "Channel"
|
||||
msgstr "Canle"
|
||||
|
||||
#: searx/engines/radio_browser.py:161
|
||||
#: searx/engines/radio_browser.py:162
|
||||
msgid "bitrate"
|
||||
msgstr "taxa de bits"
|
||||
|
||||
#: searx/engines/radio_browser.py:162
|
||||
#: searx/engines/radio_browser.py:163
|
||||
msgid "votes"
|
||||
msgstr "votos"
|
||||
|
||||
#: searx/engines/radio_browser.py:163
|
||||
#: searx/engines/radio_browser.py:164
|
||||
msgid "clicks"
|
||||
msgstr "clicks"
|
||||
|
||||
@@ -705,15 +704,15 @@ msgstr ""
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Non se puido descargar a imaxe."
|
||||
|
||||
#: searx/engines/zlibrary.py:79
|
||||
#: searx/engines/zlibrary.py:80
|
||||
msgid "Language"
|
||||
msgstr "Idioma"
|
||||
|
||||
#: searx/engines/zlibrary.py:80
|
||||
#: searx/engines/zlibrary.py:81
|
||||
msgid "Book rating"
|
||||
msgstr "Valoración do libro"
|
||||
|
||||
#: searx/engines/zlibrary.py:81
|
||||
#: searx/engines/zlibrary.py:82
|
||||
msgid "File quality"
|
||||
msgstr "Calidade do ficheiro"
|
||||
|
||||
@@ -1006,6 +1005,7 @@ msgid "Privacy"
|
||||
msgstr "Privacidade"
|
||||
|
||||
#: searx/templates/simple/preferences.html:235
|
||||
#: searx/templates/simple/result_templates/images.html:63
|
||||
msgid "Engines"
|
||||
msgstr "Motores"
|
||||
|
||||
@@ -1652,10 +1652,6 @@ 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"
|
||||
@@ -2419,3 +2415,7 @@ msgstr "agochar vídeo"
|
||||
|
||||
#~ msgid "Format"
|
||||
#~ msgstr "Formato"
|
||||
|
||||
#~ msgid "Engine"
|
||||
#~ msgstr "Motor"
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user