8 Commits

Author SHA1 Message Date
Bnyro
58df3e8e97 [build] /static 2025-06-22 09:41:16 +02:00
Bnyro
096fb74f4e [fix] weather template: text overflow on small screen devices
- this PR fixes that the columns of the weather table are overflowing on small screen devices
- therefore we now display "..." at the end of too long words and cut them off
- additionally I added some small gap between columns, otherwise it looks weird on small screens

- closes https://github.com/searxng/searxng/issues/4887
2025-06-22 09:41:16 +02:00
Robert M. Clabough
ec892d3836 [feat] engines: add Tube Archivist engine (#4889)
Tube Archivist [1] is a self-hosted project which archives youtube videos on
your own local server.  This engine connects with Tube Archivist's search API to
allow searching from SearXNG into your own hosted videos.

[1] https://www.tubearchivist.com/

Signed-off-by:  Robert M. Clabough <robert@claobugh.tech>
Co-authored-by: Bnyro <bnyro@tutanota.com>
Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
2025-06-22 09:40:42 +02:00
useralias
cc61d0833c [refactor] yahoo engine: fix missing results and improve request code structure (#4923)
Changes:
- Add required iscqry, pz and bct search parameters
- Remove unused/optional search parameters (ei, fr2, age)
- Fix offset calculation
- Use new sB cookie for filters (time, safesearch, language)
- Group related parameter assignments together
- Restructure request parameter building to better match a real request
- Use f-strings for string formatting
- Add logging of domain and cookies used

Related:
- https://github.com/searxng/searxng/issues/4910
2025-06-22 08:56:25 +02:00
Nanashi
64f00bf5fd [fix] remove dissem.in due to its closure (#4930)
remove dissem.in due to its closure [1]

[1] https://association.dissem.in/dissemin-closure.html
2025-06-22 08:52:46 +02:00
dependabot[bot]
3c3f06aafe [upd] pypi: Bump certifi from 2025.4.26 to 2025.6.15 in the minor group (#4927)
Bumps the minor group with 1 update: [certifi](https://github.com/certifi/python-certifi).


Updates `certifi` from 2025.4.26 to 2025.6.15
- [Commits](https://github.com/certifi/python-certifi/compare/2025.04.26...2025.06.15)

---
updated-dependencies:
- dependency-name: certifi
  dependency-version: 2025.6.15
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-22 07:36:49 +02:00
dependabot[bot]
105dfad66d [upd] web-client (simple): Bump the minor group (#4926)
Bumps the minor group in /client/simple with 4 updates: [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js), [eslint](https://github.com/eslint/eslint), [stylelint](https://github.com/stylelint/stylelint) and [vite-plugin-static-copy](https://github.com/sapphi-red/vite-plugin-static-copy).


Updates `@eslint/js` from 9.28.0 to 9.29.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/commits/v9.29.0/packages/js)

Updates `eslint` from 9.28.0 to 9.29.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.28.0...v9.29.0)

Updates `stylelint` from 16.20.0 to 16.21.0
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/16.20.0...16.21.0)

Updates `vite-plugin-static-copy` from 3.0.0 to 3.0.2
- [Release notes](https://github.com/sapphi-red/vite-plugin-static-copy/releases)
- [Changelog](https://github.com/sapphi-red/vite-plugin-static-copy/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sapphi-red/vite-plugin-static-copy/compare/vite-plugin-static-copy@3.0.0...vite-plugin-static-copy@3.0.2)

---
updated-dependencies:
- dependency-name: "@eslint/js"
  dependency-version: 9.29.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: eslint
  dependency-version: 9.29.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: stylelint
  dependency-version: 16.21.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: vite-plugin-static-copy
  dependency-version: 3.0.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-22 07:35:52 +02:00
github-actions[bot]
174faa342a [l10n] update translations from Weblate (#4925)
9c4f336a6 - 2025-06-19 - itsmrxyz <itsmrxyz@noreply.codeberg.org>
f639499e2 - 2025-06-18 - Adiker <adiker@noreply.codeberg.org>
67ddeb0b8 - 2025-06-19 - Fjuro <git@alius.cz>
2f37218d3 - 2025-06-17 - Linerly <linerly@noreply.codeberg.org>
b6b11a88e - 2025-06-16 - aindriu80 <aindriu80@noreply.codeberg.org>
23d4b17ed - 2025-06-16 - Shihfu Juan <xlion@xlion.tw>
b6e19a4a7 - 2025-06-16 - Juno Takano <jutty@noreply.codeberg.org>
9fe7bb4b4 - 2025-06-16 - artens <artens@noreply.codeberg.org>
a52c6a9ed - 2025-06-17 - radekjuthner <radekjuthner@noreply.codeberg.org>
91aafaa77 - 2025-06-16 - French <french@noreply.codeberg.org>
f00ea030c - 2025-06-15 - Priit Jõerüüt <jrtcdbrg@noreply.codeberg.org>
0ff16bbad - 2025-06-14 - French <french@noreply.codeberg.org>
1785f8d3b - 2025-06-13 - SomeTr <sometr@noreply.codeberg.org>
2c394a6f4 - 2025-06-13 - AndersNordh <andersnordh@noreply.codeberg.org>
136e3016d - 2025-06-13 - ghose <ghose@noreply.codeberg.org>
c29cfab40 - 2025-06-13 - AndersNordh <andersnordh@noreply.codeberg.org>
cf982efb8 - 2025-06-13 - L33P <l33p@noreply.codeberg.org>

Co-authored-by: searxng-bot <searxng-bot@users.noreply.github.com>
2025-06-22 07:32:29 +02:00
40 changed files with 677 additions and 380 deletions

View File

@@ -177,3 +177,4 @@ features or generally made searx better:
- Daniel Mowitz `<https://daniel.mowitz.rocks>`
- `Bearz314 <https://github.com/bearz314>`_
- Tommaso Colella `<https://github.com/gioleppe>`
- @AgentScrubbles

View File

@@ -8,11 +8,11 @@
"name": "simple",
"version": "1.0.0",
"devDependencies": {
"@eslint/js": "^9.28.0",
"@eslint/js": "^9.29.0",
"copy-webpack-plugin": "^13.0.0",
"css-loader": "^7.1.2",
"edge.js": "^6.2.1",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"filemanager-webpack-plugin": "^8.0.0",
"globals": "^16.2.0",
"ionicons": "^8.0.9",
@@ -22,14 +22,14 @@
"normalize.css": "^8.0.1",
"sharp": "^0.34.2",
"style-loader": "^4.0.0",
"stylelint": "^16.20.0",
"stylelint": "^16.21.0",
"stylelint-config-standard": "^38.0.0",
"stylelint-config-standard-less": "^3.0.1",
"stylelint-prettier": "^5.0.3",
"svgo": "^3.3.2",
"swiped-events": "^1.2.0",
"vite": "^6.3.5",
"vite-plugin-static-copy": "^3.0.0",
"vite-plugin-static-copy": "^3.0.2",
"vite-plugin-stylelint": "^6.0.0",
"webpack": "^5.99.9",
"webpack-cli": "^6.0.1"
@@ -61,9 +61,9 @@
}
},
"node_modules/@csstools/css-parser-algorithms": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz",
"integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==",
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
"integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
"dev": true,
"funding": [
{
@@ -80,13 +80,13 @@
"node": ">=18"
},
"peerDependencies": {
"@csstools/css-tokenizer": "^3.0.3"
"@csstools/css-tokenizer": "^3.0.4"
}
},
"node_modules/@csstools/css-tokenizer": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz",
"integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==",
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
"integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
"dev": true,
"funding": [
{
@@ -104,9 +104,9 @@
}
},
"node_modules/@csstools/media-query-list-parser": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz",
"integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==",
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz",
"integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==",
"dev": true,
"funding": [
{
@@ -123,8 +123,8 @@
"node": ">=18"
},
"peerDependencies": {
"@csstools/css-parser-algorithms": "^3.0.4",
"@csstools/css-tokenizer": "^3.0.3"
"@csstools/css-parser-algorithms": "^3.0.5",
"@csstools/css-tokenizer": "^3.0.4"
}
},
"node_modules/@csstools/selector-specificity": {
@@ -650,9 +650,9 @@
}
},
"node_modules/@eslint/config-array": {
"version": "0.20.0",
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz",
"integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==",
"version": "0.20.1",
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.1.tgz",
"integrity": "sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -725,9 +725,9 @@
}
},
"node_modules/@eslint/js": {
"version": "9.28.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.28.0.tgz",
"integrity": "sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==",
"version": "9.29.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.29.0.tgz",
"integrity": "sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2234,9 +2234,9 @@
"license": "Apache-2.0"
},
"node_modules/acorn": {
"version": "8.14.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
"integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
"version": "8.15.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
"bin": {
@@ -2657,9 +2657,9 @@
}
},
"node_modules/cacheable": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.9.0.tgz",
"integrity": "sha512-8D5htMCxPDUULux9gFzv30f04Xo3wCnik0oOxKoRTPIBoqA7HtOcJ87uBhQTs3jCfZZTrUBGsYIZOgE0ZRgMAg==",
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.10.0.tgz",
"integrity": "sha512-SSgQTAnhd7WlJXnGlIi4jJJOiHzgnM5wRMEPaXAU4kECTAMpBoYKoZ9i5zHmclIEZbxcu3j7yY/CF8DTmwIsHg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2668,9 +2668,9 @@
}
},
"node_modules/cacheable/node_modules/keyv": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-5.3.3.tgz",
"integrity": "sha512-Rwu4+nXI9fqcxiEHtbkvoes2X+QfkTRo1TMkPfwzipGsJlJO/z69vqB4FNl9xJ3xCpAcbkvmEabZfPzrwN3+gQ==",
"version": "5.3.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-5.3.4.tgz",
"integrity": "sha512-ypEvQvInNpUe+u+w8BIcPkQvEqXquyyibWE/1NB5T2BTzIpS5cGEV1LZskDzPSTvNAaT4+5FutvzlvnkxOSKlw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3590,19 +3590,19 @@
}
},
"node_modules/eslint": {
"version": "9.28.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.28.0.tgz",
"integrity": "sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==",
"version": "9.29.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.29.0.tgz",
"integrity": "sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.12.1",
"@eslint/config-array": "^0.20.0",
"@eslint/config-array": "^0.20.1",
"@eslint/config-helpers": "^0.2.1",
"@eslint/core": "^0.14.0",
"@eslint/eslintrc": "^3.3.1",
"@eslint/js": "9.28.0",
"@eslint/js": "9.29.0",
"@eslint/plugin-kit": "^0.3.1",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
@@ -3614,9 +3614,9 @@
"cross-spawn": "^7.0.6",
"debug": "^4.3.2",
"escape-string-regexp": "^4.0.0",
"eslint-scope": "^8.3.0",
"eslint-visitor-keys": "^4.2.0",
"espree": "^10.3.0",
"eslint-scope": "^8.4.0",
"eslint-visitor-keys": "^4.2.1",
"espree": "^10.4.0",
"esquery": "^1.5.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -3651,9 +3651,9 @@
}
},
"node_modules/eslint-scope": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz",
"integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==",
"version": "8.4.0",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
"integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -3668,9 +3668,9 @@
}
},
"node_modules/eslint-visitor-keys": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
"integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -3681,15 +3681,15 @@
}
},
"node_modules/espree": {
"version": "10.3.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz",
"integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==",
"version": "10.4.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
"integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
"acorn": "^8.14.0",
"acorn": "^8.15.0",
"acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^4.2.0"
"eslint-visitor-keys": "^4.2.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4168,9 +4168,9 @@
}
},
"node_modules/hookified": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/hookified/-/hookified-1.9.0.tgz",
"integrity": "sha512-2yEEGqphImtKIe1NXWEhu6yD3hlFR4Mxk4Mtp3XEyScpSt4pQ4ymmXA1zzxZpj99QkFK+nN0nzjeb2+RUi/6CQ==",
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/hookified/-/hookified-1.9.1.tgz",
"integrity": "sha512-u3pxtGhKjcSXnGm1CX6aXS9xew535j3lkOCegbA6jdyh0BaAjTbXI4aslKstCr6zUNtoCxFGFKwjbSHdGrMB8g==",
"dev": true,
"license": "MIT"
},
@@ -4622,9 +4622,9 @@
}
},
"node_modules/known-css-properties": {
"version": "0.36.0",
"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.36.0.tgz",
"integrity": "sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA==",
"version": "0.37.0",
"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz",
"integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==",
"dev": true,
"license": "MIT"
},
@@ -4977,9 +4977,9 @@
"license": "MIT"
},
"node_modules/nanoid": {
"version": "3.3.8",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
"integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
"version": "3.3.11",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"dev": true,
"funding": [
{
@@ -5340,9 +5340,9 @@
}
},
"node_modules/postcss": {
"version": "8.5.3",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
"integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
"version": "8.5.6",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"dev": true,
"funding": [
{
@@ -5360,7 +5360,7 @@
],
"license": "MIT",
"dependencies": {
"nanoid": "^3.3.8",
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
@@ -6235,9 +6235,9 @@
}
},
"node_modules/stylelint": {
"version": "16.20.0",
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.20.0.tgz",
"integrity": "sha512-B5Myu9WRxrgKuLs3YyUXLP2H0mrbejwNxPmyADlACWwFsrL8Bmor/nTSh4OMae5sHjOz6gkSeccQH34gM4/nAw==",
"version": "16.21.0",
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.21.0.tgz",
"integrity": "sha512-ki3PpJGG7xhm3WtINoWGnlvqAmbqSexoRMbEMJzlwewSIOqPRKPlq452c22xAdEJISVi80r+I7KL9GPUiwFgbg==",
"dev": true,
"funding": [
{
@@ -6251,9 +6251,9 @@
],
"license": "MIT",
"dependencies": {
"@csstools/css-parser-algorithms": "^3.0.4",
"@csstools/css-tokenizer": "^3.0.3",
"@csstools/media-query-list-parser": "^4.0.2",
"@csstools/css-parser-algorithms": "^3.0.5",
"@csstools/css-tokenizer": "^3.0.4",
"@csstools/media-query-list-parser": "^4.0.3",
"@csstools/selector-specificity": "^5.0.0",
"@dual-bundle/import-meta-resolve": "^4.1.0",
"balanced-match": "^2.0.0",
@@ -6264,21 +6264,21 @@
"debug": "^4.4.1",
"fast-glob": "^3.3.3",
"fastest-levenshtein": "^1.0.16",
"file-entry-cache": "^10.1.0",
"file-entry-cache": "^10.1.1",
"global-modules": "^2.0.0",
"globby": "^11.1.0",
"globjoin": "^0.1.4",
"html-tags": "^3.3.1",
"ignore": "^7.0.4",
"ignore": "^7.0.5",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
"known-css-properties": "^0.36.0",
"known-css-properties": "^0.37.0",
"mathml-tag-names": "^2.1.3",
"meow": "^13.2.0",
"micromatch": "^4.0.8",
"normalize-path": "^3.0.0",
"picocolors": "^1.1.1",
"postcss": "^8.5.3",
"postcss": "^8.5.5",
"postcss-resolve-nested-selector": "^0.1.6",
"postcss-safe-parser": "^7.0.1",
"postcss-selector-parser": "^7.1.0",
@@ -6489,25 +6489,25 @@
"license": "MIT"
},
"node_modules/stylelint/node_modules/file-entry-cache": {
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.1.0.tgz",
"integrity": "sha512-Et/ex6smi3wOOB+n5mek+Grf7P2AxZR5ueqRUvAAn4qkyatXi3cUC1cuQXVkX0VlzBVsN4BkWJFmY/fYiRTdww==",
"version": "10.1.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.1.1.tgz",
"integrity": "sha512-zcmsHjg2B2zjuBgjdnB+9q0+cWcgWfykIcsDkWDB4GTPtl1eXUA+gTI6sO0u01AqK3cliHryTU55/b2Ow1hfZg==",
"dev": true,
"license": "MIT",
"dependencies": {
"flat-cache": "^6.1.9"
"flat-cache": "^6.1.10"
}
},
"node_modules/stylelint/node_modules/flat-cache": {
"version": "6.1.9",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.9.tgz",
"integrity": "sha512-DUqiKkTlAfhtl7g78IuwqYM+YqvT+as0mY+EVk6mfimy19U79pJCzDZQsnqk3Ou/T6hFXWLGbwbADzD/c8Tydg==",
"version": "6.1.10",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.10.tgz",
"integrity": "sha512-B6/v1f0NwjxzmeOhzfXPGWpKBVA207LS7lehaVKQnFrVktcFRfkzjZZ2gwj2i1TkEUMQht7ZMJbABUT5N+V1Nw==",
"dev": true,
"license": "MIT",
"dependencies": {
"cacheable": "^1.9.0",
"cacheable": "^1.10.0",
"flatted": "^3.3.3",
"hookified": "^1.8.2"
"hookified": "^1.9.1"
}
},
"node_modules/stylelint/node_modules/globby": {
@@ -6542,9 +6542,9 @@
}
},
"node_modules/stylelint/node_modules/ignore": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.4.tgz",
"integrity": "sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==",
"version": "7.0.5",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
"integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6794,9 +6794,9 @@
"license": "MIT"
},
"node_modules/tinyglobby": {
"version": "0.2.13",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz",
"integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==",
"version": "0.2.14",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
"integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7019,9 +7019,9 @@
}
},
"node_modules/vite-plugin-static-copy": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-3.0.0.tgz",
"integrity": "sha512-Uki9pPUQ4ZnoMEdIFabvoh9h6Bh9Q1m3iF7BrZvoiF30reREpJh2gZb4jOnW1/uYFzyRiLCmFSkM+8hwiq1vWQ==",
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-3.0.2.tgz",
"integrity": "sha512-/seLvhUg44s1oU9RhjTZZy/0NPbfNctozdysKcvPovxxXZdI5l19mGq6Ri3IaTf1Dy/qChS4BSR7ayxeu8o9aQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7029,7 +7029,7 @@
"fs-extra": "^11.3.0",
"p-map": "^7.0.3",
"picocolors": "^1.1.1",
"tinyglobby": "^0.2.13"
"tinyglobby": "^0.2.14"
},
"engines": {
"node": "^18.0.0 || >=20.0.0"

View File

@@ -9,11 +9,11 @@
"icons.html": "node theme_icons.js"
},
"devDependencies": {
"@eslint/js": "^9.28.0",
"@eslint/js": "^9.29.0",
"copy-webpack-plugin": "^13.0.0",
"css-loader": "^7.1.2",
"edge.js": "^6.2.1",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"filemanager-webpack-plugin": "^8.0.0",
"globals": "^16.2.0",
"ionicons": "^8.0.9",
@@ -23,14 +23,14 @@
"normalize.css": "^8.0.1",
"sharp": "^0.34.2",
"style-loader": "^4.0.0",
"stylelint": "^16.20.0",
"stylelint": "^16.21.0",
"stylelint-config-standard": "^38.0.0",
"stylelint-config-standard-less": "^3.0.1",
"stylelint-prettier": "^5.0.3",
"svgo": "^3.3.2",
"swiped-events": "^1.2.0",
"vite": "^6.3.5",
"vite-plugin-static-copy": "^3.0.0",
"vite-plugin-static-copy": "^3.0.2",
"vite-plugin-stylelint": "^6.0.0",
"webpack": "^5.99.9",
"webpack-cli": "^6.0.1"

View File

@@ -16,10 +16,14 @@
table-layout: fixed;
margin-top: 0.5rem;
margin-bottom: 0.5rem;
border-collapse: separate;
border-spacing: 0.1em 0;
}
td {
padding: 0;
overflow: hidden;
text-overflow: ellipsis;
}
img.symbol {

View File

@@ -0,0 +1,8 @@
.. _tubearchivist engine:
==============
Tube Archivist
==============
.. automodule:: searx.engines.tubearchivist
:members:

View File

@@ -1,4 +1,4 @@
certifi==2025.4.26
certifi==2025.6.15
babel==2.17.0
flask-babel==4.0.0
flask==3.1.1

View File

@@ -0,0 +1,187 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
"""`Tube Archivist`_ - *Your self hosted YouTube media server.*
.. _Tube Archivist: https://www.tubearchivist.com
This engine connects with a self-hosted instance of `Tube Archivist`_ to allow
searching for your hosted videos.
`Tube Archivist`_ (TA) requires authentication for all image loads via cookie
authentication. What this means is that by default, SearXNG will have no way to
pull images from TA (as there is no way to pass cookies in a URL string only).
In the meantime while work is done on the TA side, this can be worked around by
bypassing auth for images in TA by altering the default TA nginx file.
This is located in the main tubearchivist docker container at::
/etc/nginx/sites-available/default
It is **strongly** recommended first setting up the intial connection and
verying searching works first with broken images, and then attempting this
change. This will limit any debugging to only images, rather than
tokens/networking.
Steps to enable **unauthenticated** metadata access for channels and videos:
#. Perform any backups of TA before editing core configurations.
#. Copy the contents of the file ``/etc/nginx/sites-available/default`` in the
TA docker container
#. Edit ``location /cache/videos`` and ``location /cache/channels``. Comment
out the line ``auth_request /api/ping/;`` to ``# auth_request /api/ping/;``.
#. Save the file to wherever you normally store your docker configuration.
#. Mount this new configuration over the default configuration. With ``docker
run``, this would be::
-v ./your-new-config.yml:/etc/nginx/sites-available/default
With ``docker compose``, this would be::
- "./your-new-config.yml:/etc/nginx/sites-available/default:ro"
#. Start the TA container.
After these steps, double check that TA works as normal (nothing should be
different on the TA side). Searching again should now show images.
Configuration
=============
The engine has the following required settings:
- :py:obj:`base_url`
- :py:obj:`ta_token`
Optional settings:
- :py:obj:`ta_link_to_mp4`
.. code:: yaml
- name: tubearchivist
engine: tubearchivist
shortcut: tuba
base_url:
ta_token:
ta_link_to_mp4: true
Implementations
===============
"""
from __future__ import annotations
from urllib.parse import urlencode
from dateutil.parser import parse
from searx.utils import html_to_text, humanize_number
from searx.result_types import EngineResults
about = {
# pylint: disable=line-too-long
"website": 'https://www.tubearchivist.com',
"official_api_documentation": 'https://docs.tubearchivist.com/api/introduction/',
"use_official_api": True,
"require_api_key": False,
"results": 'JSON',
}
# engine dependent config
categories = ["videos"]
paging = True
base_url = ""
"""Base URL of the Tube Archivist instance. Fill this in with your own
Tube Archivist URL (``http://your-instance:port``)."""
ta_token: str = ""
"""The API key to use for Authorization_ header. Can be found under:
:menuselection:`Settings --> User --> Admin Interface`.
.. _Authorization: https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Authorization
"""
ta_link_to_mp4: bool = False
"""Optional, if true SearXNG will link directly to the mp4 of the video to play
in the browser. The default behavior is to link into TubeArchivist's interface
directly."""
def absolute_url(relative_url):
return f'{base_url.rstrip("/")}{relative_url}'
def init(_):
if not base_url:
raise ValueError('tubearchivist engine: base_url is unset')
if not ta_token:
raise ValueError('tubearchivist engine: ta_token is unset')
def request(query, params):
if not query:
return False
args = {'query': query}
params['url'] = f"{base_url.rstrip('/')}/api/search?{urlencode(args)}"
params['headers']['Authorization'] = f'Token {ta_token}'
return params
def response(resp) -> EngineResults:
results = EngineResults()
video_response(resp, results)
return results
def video_response(resp, results: EngineResults) -> None:
"""Parse video response from Tubearchivist instances."""
json_data = resp.json()
if 'results' not in json_data:
return
for channel_result in json_data['results']['channel_results']:
channel_url = absolute_url(f'/channel/{channel_result["channel_id"]}')
res = results.types.MainResult(
url=channel_url,
title=channel_result['channel_name'],
content=html_to_text(channel_result['channel_description']),
author=channel_result['channel_name'],
views=humanize_number(channel_result['channel_subs']),
thumbnail=f'{absolute_url(channel_result["channel_thumb_url"])}?auth={ta_token}',
)
results.add(result=res)
for video_result in json_data['results']['video_results']:
metadata = list(filter(None, [video_result['channel']['channel_name'], *video_result.get('tags', [])]))[:5]
if ta_link_to_mp4:
url = f'{base_url.rstrip("/")}{video_result["media_url"]}'
else:
url = f'{base_url.rstrip("/")}/?videoId={video_result["youtube_id"]}'
# a type for the video.html template is not yet implemented
# --> using LegacyResult
kwargs = {
'template': 'videos.html',
'url': url,
'title': video_result['title'],
'content': html_to_text(video_result['description']),
'author': video_result['channel']['channel_name'],
'length': video_result['player']['duration_str'],
'views': humanize_number(video_result['stats']['view_count']),
'publishedDate': parse(video_result['published']),
'thumbnail': f'{absolute_url(video_result["vid_thumb_url"])}?auth={ta_token}',
'metadata': ' | '.join(metadata),
}
results.add(results.types.LegacyResult(**kwargs))

View File

@@ -6,6 +6,7 @@ found in :py:obj:`lang2domain` URL ``<lang>.search.yahoo.com`` is used.
"""
from typing import TYPE_CHECKING
from urllib.parse import (
unquote,
urlencode,
@@ -22,6 +23,11 @@ from searx.enginelib.traits import EngineTraits
traits: EngineTraits
if TYPE_CHECKING:
import logging
logger: logging.Logger
# about
about = {
"website": 'https://search.yahoo.com/',
@@ -38,11 +44,8 @@ paging = True
time_range_support = True
# send_accept_language_header = True
time_range_dict = {
'day': ('1d', 'd'),
'week': ('1w', 'w'),
'month': ('1m', 'm'),
}
time_range_dict = {'day': 'd', 'week': 'w', 'month': 'm'}
safesearch_dict = {0: 'p', 1: 'i', 2: 'r'}
region2domain = {
"CO": "co.search.yahoo.com", # Colombia
@@ -118,42 +121,85 @@ yahoo_languages = {
"sv": "sv", # Swedish
"th": "th", # Thai
"tr": "tr", # Turkish
"zh": "zh_chs", # Chinese (Simplified)
"zh": "zh_chs", # Chinese (Simplified)
"zh_Hans": "zh_chs",
'zh-CN': "zh_chs",
"zh_Hant": "zh_cht", # Chinese (Traditional)
"zh_Hant": "zh_cht", # Chinese (Traditional)
"zh-HK": "zh_cht",
'zh-TW': "zh_cht",
}
def build_sb_cookie(cookie_params):
"""Build sB cookie parameter from provided parameters.
:param cookie_params: Dictionary of cookie parameters
:type cookie_params: dict
:returns: Formatted cookie string
:rtype: str
Example:
>>> cookie_params = {'v': '1', 'vm': 'p', 'fl': '1', 'vl': 'lang_fr'}
>>> build_sb_cookie(cookie_params)
'v=1&vm=p&fl=1&vl=lang_fr'
"""
cookie_parts = []
for key, value in cookie_params.items():
cookie_parts.append(f"{key}={value}")
return "&".join(cookie_parts)
def request(query, params):
"""build request"""
"""Build Yahoo search request."""
lang, region = (params["language"].split("-") + [None])[:2]
lang = yahoo_languages.get(lang, "any")
offset = (params['pageno'] - 1) * 7 + 1
age, btf = time_range_dict.get(params['time_range'], ('', ''))
# Build URL parameters
# - p (str): Search query string
# - btf (str): Time filter, maps to values like 'd' (day), 'w' (week), 'm' (month)
# - iscqry (str): Empty string, necessary for results to appear properly on first page
# - b (int): Search offset for pagination
# - pz (str): Amount of results expected for the page
url_params = {'p': query}
args = urlencode(
{
'p': query,
'ei': 'UTF-8',
'fl': 1,
'vl': 'lang_' + lang,
'btf': btf,
'fr2': 'time',
'age': age,
'b': offset,
'xargs': 0,
}
)
btf = time_range_dict.get(params['time_range'])
if btf:
url_params['btf'] = btf
if params['pageno'] == 1:
url_params['iscqry'] = ''
elif params['pageno'] >= 2:
url_params['b'] = params['pageno'] * 7 + 1 # 8, 15, 21, etc.
url_params['pz'] = 7
url_params['bct'] = 0
url_params['xargs'] = 0
# Build sB cookie (for filters)
# - vm (str): SafeSearch filter, maps to values like 'p' (None), 'i' (Moderate), 'r' (Strict)
# - fl (bool): Indicates if a search language is used or not
# - vl (str): The search language to use (e.g. lang_fr)
sbcookie_params = {
'v': 1,
'vm': safesearch_dict[params['safesearch']],
'fl': 1,
'vl': f'lang_{lang}',
'pn': 10,
'rw': 'new',
'userset': 1,
}
params['cookies']['sB'] = build_sb_cookie(sbcookie_params)
# Search region/language
domain = region2domain.get(region)
if not domain:
domain = lang2domain.get(lang, '%s.search.yahoo.com' % lang)
params['url'] = 'https://%s/search?%s' % (domain, args)
domain = lang2domain.get(lang, f'{lang}.search.yahoo.com')
logger.debug(f'domain selected: {domain}')
logger.debug(f'cookies: {params["cookies"]}')
params['url'] = f'https://{domain}/search?{urlencode(url_params)}'
params['domain'] = domain

View File

@@ -2036,6 +2036,16 @@ engines:
enable_http: true
shortcut: tch
# TubeArchivist is a self-hosted Youtube archivist software.
# https://docs.searxng.org/dev/engines/online/tubearchivist.html
#
# - name: tubearchivist
# engine: tubearchivist
# shortcut: tuba
# base_url:
# ta_token:
# ta_link_to_mp4: false
# torznab engine lets you query any torznab compatible indexer. Using this
# engine in combination with Jackett opens the possibility to query a lot of
# public and private indexers directly from SearXNG. More details at:
@@ -2771,7 +2781,6 @@ engines:
doi_resolvers:
oadoi.org: 'https://oadoi.org/'
doi.org: 'https://doi.org/'
doai.io: 'https://dissem.in/'
sci-hub.se: 'https://sci-hub.se/'
sci-hub.st: 'https://sci-hub.st/'
sci-hub.ru: 'https://sci-hub.ru/'

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -15,21 +15,22 @@
# Anonymous <anonymous@users.noreply.translate.codeberg.org>, 2025.
# jestie <jestie@users.noreply.translate.codeberg.org>, 2025.
# APoniatowski <aponiatowski@users.noreply.translate.codeberg.org>, 2025.
# French <french@noreply.codeberg.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-06-13 02:39+0000\n"
"PO-Revision-Date: 2025-01-28 06:11+0000\n"
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>"
"\n"
"PO-Revision-Date: 2025-06-17 06:58+0000\n"
"Last-Translator: French <french@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 5.11.4\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -292,207 +293,207 @@ msgstr "Wind"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Clear sky"
msgstr ""
msgstr "Helder lug"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Cloudy"
msgstr ""
msgstr "Bewolk"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Fair"
msgstr ""
msgstr "Mooi"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Fog"
msgstr ""
msgstr "Mis"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy rain and thunder"
msgstr ""
msgstr "Swaar reën en donderweer"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy rain showers and thunder"
msgstr ""
msgstr "Swaar reënbui en donderweer"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy rain showers"
msgstr ""
msgstr "Swaar reënbui"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy rain"
msgstr ""
msgstr "Swaar reën"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy sleet and thunder"
msgstr ""
msgstr "Swaar sneeu en donderweer"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy sleet showers and thunder"
msgstr ""
msgstr "Swaar sneeubui en donderweer"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy sleet showers"
msgstr ""
msgstr "Swaar sneeubui"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy sleet"
msgstr ""
msgstr "Swaar sneeu"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy snow and thunder"
msgstr ""
msgstr "Swaar sneeu en donderweer"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy snow showers and thunder"
msgstr ""
msgstr "Swaar sneeubui en donderweer"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy snow showers"
msgstr ""
msgstr "Swaar sneeubui"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy snow"
msgstr ""
msgstr "Swaar sneeu"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain and thunder"
msgstr ""
msgstr "Ligte reën en donderweer"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain showers and thunder"
msgstr ""
msgstr "Ligte reënbui en donderweer"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain showers"
msgstr ""
msgstr "Ligte reënbui"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain"
msgstr ""
msgstr "Ligte reën"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light sleet and thunder"
msgstr ""
msgstr "Ligte sneeu en donderweer"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light sleet showers and thunder"
msgstr ""
msgstr "Ligte sneeubui en donderweer"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light sleet showers"
msgstr ""
msgstr "Ligte sneeubui"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light sleet"
msgstr ""
msgstr "Ligte sneeu"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light snow and thunder"
msgstr ""
msgstr "Ligte sneeu en donderweer"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light snow showers and thunder"
msgstr ""
msgstr "Ligte sneeubui en donderweer"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light snow showers"
msgstr ""
msgstr "Ligte sneeubui"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light snow"
msgstr ""
msgstr "Ligte sneeu"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Partly cloudy"
msgstr ""
msgstr "Gedeeltelik bewolk"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain and thunder"
msgstr ""
msgstr "Reen en donderweer"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain showers and thunder"
msgstr ""
msgstr "Reënbui en donderweer"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain showers"
msgstr ""
msgstr "Reënbui"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain"
msgstr ""
msgstr "Reën"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Sleet and thunder"
msgstr ""
msgstr "Sneeu en donderweer"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Sleet showers and thunder"
msgstr ""
msgstr "Sneeubui en donderweer"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Sleet showers"
msgstr ""
msgstr "Sneeubui"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Sleet"
msgstr ""
msgstr "Sneeu"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Snow and thunder"
msgstr ""
msgstr "Sneeu en donderweer"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Snow showers and thunder"
msgstr ""
msgstr "Sneeubui en donderweer"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Snow showers"
msgstr ""
msgstr "Sneeubui"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Snow"
msgstr ""
msgstr "Sneeu"
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
#: searx/engines/lemmy.py:85 searx/searxng.msg
@@ -639,12 +640,12 @@ msgstr "Opgehef"
#: searx/webutils.py:313
#, python-brace-format
msgid "{minutes} minute(s) ago"
msgstr "{minutes} minute terug"
msgstr "{minutes} minute gelede"
#: searx/webutils.py:314
#, python-brace-format
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} ure, {minutes} minute terug"
msgstr "{hours} ure, {minutes} minute gelede"
#: searx/answerers/random.py:69
msgid "Generate different random values"
@@ -653,16 +654,16 @@ msgstr "Genereer verskillende ewekansige waardes"
#: searx/answerers/statistics.py:36
#, python-brace-format
msgid "Compute {func} of the arguments"
msgstr ""
msgstr "Bereken {func} van die opsies"
#: searx/engines/openstreetmap.py:158
msgid "Show route in map .."
msgstr ""
msgstr "Wys roete op die kaart .."
#: searx/engines/pdbe.py:96
#, python-brace-format
msgid "{title} (OBSOLETE)"
msgstr "{title} (VEROUDERD)"
msgstr "{title} (UITGEDIEN)"
#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
@@ -731,15 +732,15 @@ msgstr "Lêer kwaliteit"
#: searx/plugins/ahmia_filter.py:32
msgid "Ahmia blacklist"
msgstr ""
msgstr "Ahmia swartlys"
#: searx/plugins/ahmia_filter.py:33
msgid "Filter out onion results that appear in Ahmia's blacklist."
msgstr ""
msgstr "Filter uit onion resultate wat op Ahmia se swartlys is."
#: searx/plugins/calculator.py:38
msgid "Basic Calculator"
msgstr ""
msgstr "Basiese sakrekenaar"
#: searx/plugins/calculator.py:39
msgid "Calculate mathematical expressions via the search bar"
@@ -747,17 +748,19 @@ msgstr "Bereken wiskundige uitdrukkings via die soekbalk"
#: searx/plugins/hash_plugin.py:34
msgid "Hash plugin"
msgstr ""
msgstr "Hash inset"
#: searx/plugins/hash_plugin.py:36
msgid ""
"Converts strings to different hash digests. Available functions: md5, "
"sha1, sha224, sha256, sha384, sha512."
msgstr ""
"Verander teks na verskillende hash kodes. Beskikbare funksies: md5, sha1, "
"sha224, sha256, sha384, sha512."
#: searx/plugins/hash_plugin.py:64
msgid "hash digest"
msgstr "hash digest"
msgstr "hash kode"
#: searx/plugins/hostnames.py:123
msgid "Hostnames plugin"
@@ -790,6 +793,8 @@ msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"is \"user-agent\"."
msgstr ""
"Wys you IP as die soekterm \"ip\" is en jou gebruiksagent as die soekterm "
"\"user-agent\" is."
#: searx/plugins/self_info.py:52
msgid "Your IP is: "
@@ -814,15 +819,15 @@ msgstr ""
#: searx/plugins/tor_check.py:65
msgid "Could not download the list of Tor exit-nodes from"
msgstr ""
msgstr "Kon nie die lys van Tor uitgangnodes aflaai van"
#: searx/plugins/tor_check.py:72
msgid "You are using Tor and it looks like you have the external IP address"
msgstr ""
msgstr "Jy gebruik Tor en dit lyk of hierdie jou eksterne IP addres is"
#: searx/plugins/tor_check.py:76
msgid "You are not using Tor and you have the external IP address"
msgstr ""
msgstr "Jy gebruik nie Tor nie, en jou eksterne IP adres is"
#: searx/plugins/tracker_url_remover.py:37
msgid "Tracker URL remover"
@@ -1449,11 +1454,11 @@ msgstr "Maks tyd"
#: searx/templates/simple/preferences/favicon.html:2
msgid "Favicon Resolver"
msgstr "Favicon Resolver"
msgstr "Favicon finder"
#: searx/templates/simple/preferences/favicon.html:15
msgid "Display favicons near search results"
msgstr "Wys favicons naar aan soek aantworde"
msgstr "Wys favicons naby soek aantwoorde"
#: searx/templates/simple/preferences/footer.html:2
msgid ""
@@ -2060,4 +2065,3 @@ msgstr "versteek video"
#~ msgid "Converts strings to different hash digests."
#~ msgstr "Skakel snare om na verskillende hash digests."

View File

@@ -22,21 +22,23 @@
# Fjuro <fjuro@noreply.codeberg.org>, 2025.
# Fjuro <git@alius.cz>, 2025.
# L33P <l33p@noreply.codeberg.org>, 2025.
# 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: 2025-06-13 02:39+0000\n"
"PO-Revision-Date: 2025-06-07 15:15+0000\n"
"Last-Translator: L33P <l33p@noreply.codeberg.org>\n"
"PO-Revision-Date: 2025-06-19 12:36+0000\n"
"Last-Translator: Fjuro <git@alius.cz>\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 5.11.4\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -182,7 +184,7 @@ msgstr "černý"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr "Spolehlivost"
msgstr "Doba provozu"
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
@@ -319,17 +321,17 @@ msgstr "Mlha"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy rain and thunder"
msgstr ""
msgstr "Silný déšť s bouří"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy rain showers and thunder"
msgstr ""
msgstr "Silné dešťové přeháňky a bouřky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy rain showers"
msgstr ""
msgstr "Silné dešťové přeháňky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -339,57 +341,57 @@ msgstr "Silný déšť"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy sleet and thunder"
msgstr ""
msgstr "Silný déšť se sněhem a bouřky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy sleet showers and thunder"
msgstr ""
msgstr "Silné přeháňky deště se sněhem a bouřky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy sleet showers"
msgstr ""
msgstr "Silné přeháňky deště se sněhem"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy sleet"
msgstr ""
msgstr "Silný déšť se sněhem"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy snow and thunder"
msgstr ""
msgstr "Silné sněžení a bouřky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy snow showers and thunder"
msgstr ""
msgstr "Silné sněhové přeháňky a bouřky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy snow showers"
msgstr ""
msgstr "Silné sněhové přeháňky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy snow"
msgstr ""
msgstr "Silné sněžení"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain and thunder"
msgstr ""
msgstr "Slabý déšť a bouřky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain showers and thunder"
msgstr ""
msgstr "Slabé dešťové přeháňky a bouřky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain showers"
msgstr ""
msgstr "Slabé dešťové přeháňky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -399,62 +401,62 @@ msgstr "Slabý déšť"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light sleet and thunder"
msgstr ""
msgstr "Slabý déšť se sněhem a bouřky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light sleet showers and thunder"
msgstr ""
msgstr "Slabé přeháňky deště se sněhem a bouřky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light sleet showers"
msgstr ""
msgstr "Slabé přeháňky deště se sněhem"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light sleet"
msgstr ""
msgstr "Lehké sněžení"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light snow and thunder"
msgstr ""
msgstr "Slabé sněžení a bouřky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light snow showers and thunder"
msgstr ""
msgstr "Slabé sněhové přeháňky a bouřky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light snow showers"
msgstr ""
msgstr "Slabé sněhové přeháňky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light snow"
msgstr ""
msgstr "Slabé sněžení"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Partly cloudy"
msgstr ""
msgstr "Částečně zataženo"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain and thunder"
msgstr ""
msgstr "Déšť a bouřky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain showers and thunder"
msgstr ""
msgstr "Dešťové přeháňky a bouřky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain showers"
msgstr "Přeháňky"
msgstr "Dešťové přeháňky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -464,17 +466,17 @@ msgstr "Déšť"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Sleet and thunder"
msgstr ""
msgstr "Déšť se sněhem a bouřky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Sleet showers and thunder"
msgstr ""
msgstr "Přeháňky deště se sněhem a bouřky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Sleet showers"
msgstr ""
msgstr "Přeháňky deště se sněhem"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -484,12 +486,12 @@ msgstr "Plískanice"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Snow and thunder"
msgstr ""
msgstr "Sníh a bouřky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Snow showers and thunder"
msgstr ""
msgstr "Sněhové přeháňky a bouřky"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -760,6 +762,8 @@ msgid ""
"Converts strings to different hash digests. Available functions: md5, "
"sha1, sha224, sha256, sha384, sha512."
msgstr ""
"Převést řetězce na různé hash digesty. Dostupné funkce: md5, sha1, sha224, "
"sha256, sha384, sha512."
#: searx/plugins/hash_plugin.py:64
msgid "hash digest"
@@ -851,7 +855,7 @@ msgstr "Převod mezi jednotkami"
#: searx/result_types/answer.py:224
#, python-brace-format
msgid "{location}: {temperature}, {condition}"
msgstr ""
msgstr "{location}: {temperature}, {condition}"
#: searx/templates/simple/404.html:4
msgid "Page not found"
@@ -1169,7 +1173,7 @@ msgstr "Synonyma"
#: searx/templates/simple/answer/weather.html:19
msgid "Feels Like"
msgstr ""
msgstr "Pocity jako"
#: searx/templates/simple/elements/answers.html:2
msgid "Answers"
@@ -1349,7 +1353,7 @@ msgstr "Našeptávač"
#: searx/templates/simple/preferences/autocomplete.html:15
msgid "Show possible queries as you type"
msgstr ""
msgstr "Zobrazení možných dotazů při psaní"
#: searx/templates/simple/preferences/center_alignment.html:2
msgid "Center Alignment"
@@ -1432,6 +1436,8 @@ msgid ""
"This tab does not exist in the user interface, but you can search with "
"these engines via !bangs."
msgstr ""
"Tato karta v uživatelském rozhraní neexistuje, ale můžete v nich vyhledávat "
"pomocí !bangs."
#: searx/templates/simple/preferences/engines.html:15
msgid "Enable all"
@@ -1556,11 +1562,11 @@ msgstr ""
#: searx/templates/simple/preferences/results_on_new_tab.html:2
msgid "Results in new tabs"
msgstr ""
msgstr "Výsledky na nových kartách"
#: searx/templates/simple/preferences/results_on_new_tab.html:14
msgid "Open result links in new browser tabs"
msgstr ""
msgstr "Otevření odkazů na výsledky v nových kartách prohlížeče"
#: searx/templates/simple/preferences/safesearch.html:20
msgid "Filter content"
@@ -2324,4 +2330,3 @@ msgstr "skrýt video"
#~ msgid "Converts strings to different hash digests."
#~ msgstr "Převádí řetězce na různé hash hodnoty."

View File

@@ -16,18 +16,19 @@
# AndersNordh <andersnordh@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: 2025-06-13 02:39+0000\n"
"PO-Revision-Date: 2025-06-12 16:32+0000\n"
"PO-Revision-Date: 2025-06-14 08:58+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 5.11.4\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -752,6 +753,8 @@ msgid ""
"Converts strings to different hash digests. Available functions: md5, "
"sha1, sha224, sha256, sha384, sha512."
msgstr ""
"Konverterer strenge til forskellige hash-fordøjelser. Tilgængelige "
"funktioner: md5, sha1, sha224, sha256, sha384, sha512."
#: searx/plugins/hash_plugin.py:64
msgid "hash digest"
@@ -2324,4 +2327,3 @@ msgstr "skjul video"
#~ msgid "Converts strings to different hash digests."
#~ msgstr "Konverterer strenge til forskellige hash-digests."

View File

@@ -18,18 +18,19 @@
# Priit Jõerüüt <jrtcdbrg@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: 2025-06-13 02:39+0000\n"
"PO-Revision-Date: 2025-06-12 16:32+0000\n"
"PO-Revision-Date: 2025-06-15 21:58+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 5.11.4\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -755,6 +756,8 @@ msgid ""
"Converts strings to different hash digests. Available functions: md5, "
"sha1, sha224, sha256, sha384, sha512."
msgstr ""
"Teisendab etteantud teksti räsideks. Kasutatavad räsifunktsioonid: md5, "
"sha1, sha224, sha256, sha384, sha512."
#: searx/plugins/hash_plugin.py:64
msgid "hash digest"
@@ -2311,4 +2314,3 @@ msgstr "peida video"
#~ msgid "Converts strings to different hash digests."
#~ msgstr "Teisendab sõned erinevateks räsitud sõnumilühenditeks."

View File

@@ -9,16 +9,17 @@ msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-06-13 02:39+0000\n"
"PO-Revision-Date: 2025-06-13 02:39+0000\n"
"PO-Revision-Date: 2025-06-17 06:58+0000\n"
"Last-Translator: aindriu80 <aindriu80@noreply.codeberg.org>\n"
"Language-Team: Irish <https://translate.codeberg.org/projects/searxng/"
"searxng/ga/>\n"
"Language: ga\n"
"Language-Team: Irish "
"<https://translate.codeberg.org/projects/searxng/searxng/ga/>\n"
"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 "
":(n>6 && n<11) ? 3 : 4;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :("
"n>6 && n<11) ? 3 : 4;\n"
"X-Generator: Weblate 5.11.4\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -742,6 +743,8 @@ msgid ""
"Converts strings to different hash digests. Available functions: md5, "
"sha1, sha224, sha256, sha384, sha512."
msgstr ""
"Tiontaíonn sé teaghráin go díleácha haise éagsúla. Feidhmeanna atá ar fáil: "
"md5, sha1, sha224, sha256, sha384, sha512."
#: searx/plugins/hash_plugin.py:64
msgid "hash digest"
@@ -1874,4 +1877,3 @@ msgstr "físeán a cheilt"
#~ msgid "Converts strings to different hash digests."
#~ msgstr "Athraíonn sé teaghráin go díleá hash éagsúla."

View File

@@ -13,18 +13,19 @@
# ghose <ghose@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: 2025-06-13 02:39+0000\n"
"PO-Revision-Date: 2025-06-12 16:32+0000\n"
"PO-Revision-Date: 2025-06-14 08:58+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 5.11.4\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -748,6 +749,8 @@ msgid ""
"Converts strings to different hash digests. Available functions: md5, "
"sha1, sha224, sha256, sha384, sha512."
msgstr ""
"Crea a suma de comprobación dunha cadea de texto . Funcións dispoñibles: "
"md5, sha1, sha224, sha256, sha384, sha512."
#: searx/plugins/hash_plugin.py:64
msgid "hash digest"
@@ -2329,4 +2332,3 @@ msgstr "agochar vídeo"
#~ msgid "Converts strings to different hash digests."
#~ msgstr "Converte o escrito usando diferentes funcións hash."

View File

@@ -23,15 +23,16 @@ msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-06-13 02:39+0000\n"
"PO-Revision-Date: 2025-06-12 16:32+0000\n"
"PO-Revision-Date: 2025-06-18 10:58+0000\n"
"Last-Translator: Linerly <linerly@noreply.codeberg.org>\n"
"Language-Team: Indonesian <https://translate.codeberg.org/projects/searxng/"
"searxng/id/>\n"
"Language: id\n"
"Language-Team: Indonesian "
"<https://translate.codeberg.org/projects/searxng/searxng/id/>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.11.4\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -756,6 +757,8 @@ msgid ""
"Converts strings to different hash digests. Available functions: md5, "
"sha1, sha224, sha256, sha384, sha512."
msgstr ""
"Mengubah string ke keluaran hash. Fungsi tersedia: md5, sha1, sha224, "
"sha256, sha384, sha512."
#: searx/plugins/hash_plugin.py:64
msgid "hash digest"
@@ -2215,4 +2218,3 @@ msgstr "sembunyikan video"
#~ msgstr ""
#~ "Mengubah untaian (string) menjadi pilah "
#~ "digest (hash digest) yang berbeda."

View File

@@ -38,18 +38,19 @@
# artens <artens@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: 2025-06-13 02:39+0000\n"
"PO-Revision-Date: 2025-06-02 14:58+0000\n"
"PO-Revision-Date: 2025-06-17 06:58+0000\n"
"Last-Translator: artens <artens@noreply.codeberg.org>\n"
"Language-Team: Dutch <https://translate.codeberg.org/projects/searxng/"
"searxng/nl/>\n"
"Language: nl\n"
"Language-Team: Dutch "
"<https://translate.codeberg.org/projects/searxng/searxng/nl/>\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 5.11.4\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -774,6 +775,8 @@ msgid ""
"Converts strings to different hash digests. Available functions: md5, "
"sha1, sha224, sha256, sha384, sha512."
msgstr ""
"Zet inhoud om naar hash-waarden. Beschikbare functies: md5, sha1, sha224, "
"sha256, sha384, sha512."
#: searx/plugins/hash_plugin.py:64
msgid "hash digest"
@@ -1365,7 +1368,7 @@ msgstr "Auto-aanvullen"
#: searx/templates/simple/preferences/autocomplete.html:15
msgid "Show possible queries as you type"
msgstr ""
msgstr "Toon mogelijke zoekopdrachten tijdens het intypen"
#: searx/templates/simple/preferences/center_alignment.html:2
msgid "Center Alignment"
@@ -1451,6 +1454,8 @@ msgid ""
"This tab does not exist in the user interface, but you can search with "
"these engines via !bangs."
msgstr ""
"Dit tabblad bestaat niet in de gebruikersomgeving, maar je kunt met deze "
"machines zoeken via !bangs."
#: searx/templates/simple/preferences/engines.html:15
msgid "Enable all"
@@ -1578,11 +1583,11 @@ msgstr ""
#: searx/templates/simple/preferences/results_on_new_tab.html:2
msgid "Results in new tabs"
msgstr ""
msgstr "Resultaten in nieuwe tabbladen"
#: searx/templates/simple/preferences/results_on_new_tab.html:14
msgid "Open result links in new browser tabs"
msgstr ""
msgstr "Open link zoekresultaat in nieuw tabblad"
#: searx/templates/simple/preferences/safesearch.html:20
msgid "Filter content"
@@ -1670,7 +1675,7 @@ msgstr "verberg media"
#: searx/templates/simple/result_templates/default.html:14
#: searx/templates/simple/result_templates/videos.html:14
msgid "This site did not provide any description."
msgstr "Deze site is niet voorzien van een beschrijving."
msgstr "Deze site heeft geen beschrijving gegeven."
#: searx/templates/simple/result_templates/files.html:38
#: searx/templates/simple/result_templates/images.html:22
@@ -1685,7 +1690,7 @@ msgstr "Datum"
#: searx/templates/simple/result_templates/files.html:42
#: searx/templates/simple/result_templates/paper.html:24
msgid "Type"
msgstr "type"
msgstr "Type"
#: searx/templates/simple/result_templates/images.html:20
msgid "Resolution"
@@ -1705,7 +1710,7 @@ msgstr "Bekijk bron"
#: searx/templates/simple/result_templates/map.html:12
msgid "address"
msgstr "Adres"
msgstr "adres"
#: searx/templates/simple/result_templates/map.html:43
msgid "show map"
@@ -1730,7 +1735,7 @@ msgstr "Bijgewerkt op"
#: searx/templates/simple/result_templates/packages.html:30
#: searx/templates/simple/result_templates/paper.html:25
msgid "Tags"
msgstr "labels"
msgstr "Labels"
#: searx/templates/simple/result_templates/packages.html:36
msgid "Popularity"
@@ -1750,11 +1755,11 @@ msgstr "Projectpagina"
#: searx/templates/simple/result_templates/paper.html:5
msgid "Published date"
msgstr "publicatie datum"
msgstr "Publicatie datum"
#: searx/templates/simple/result_templates/paper.html:9
msgid "Journal"
msgstr "dagboek"
msgstr "Dagboek"
#: searx/templates/simple/result_templates/paper.html:22
msgid "Editor"
@@ -2364,4 +2369,3 @@ msgstr "verberg video"
#~ msgstr ""
#~ "Zet tekstwaarden om naar verschillende "
#~ "soorten validatiewaarden (hashes)."

View File

@@ -30,22 +30,24 @@
# return42 <return42@noreply.codeberg.org>, 2025.
# polskiecus <polskiecus@noreply.codeberg.org>, 2025.
# ziutek <ziutek@noreply.codeberg.org>, 2025.
# Adiker <adiker@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: 2025-06-13 02:39+0000\n"
"PO-Revision-Date: 2025-06-09 20:58+0000\n"
"Last-Translator: ziutek <ziutek@noreply.codeberg.org>\n"
"PO-Revision-Date: 2025-06-19 12:36+0000\n"
"Last-Translator: Adiker <adiker@noreply.codeberg.org>\n"
"Language-Team: Polish <https://translate.codeberg.org/projects/searxng/"
"searxng/pl/>\n"
"Language: pl\n"
"Language-Team: Polish "
"<https://translate.codeberg.org/projects/searxng/searxng/pl/>\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && "
"(n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && "
"n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
"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 ? 0 : (n%10>=2 && n%10<=4) && ("
"n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && "
"n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
"X-Generator: Weblate 5.11.4\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -771,6 +773,8 @@ msgid ""
"Converts strings to different hash digests. Available functions: md5, "
"sha1, sha224, sha256, sha384, sha512."
msgstr ""
"Konwertuje ciągi znaków do różnych funkcji hashujących. Dostępne algorytmy: "
"md5, sha1, sha224, sha256, sha384, sha512."
#: searx/plugins/hash_plugin.py:64
msgid "hash digest"
@@ -1360,7 +1364,7 @@ msgstr "Autouzupełnienie"
#: searx/templates/simple/preferences/autocomplete.html:15
msgid "Show possible queries as you type"
msgstr ""
msgstr "Pokaż prawdopodobne zapytania podczas pisania"
#: searx/templates/simple/preferences/center_alignment.html:2
msgid "Center Alignment"
@@ -1444,6 +1448,8 @@ msgid ""
"This tab does not exist in the user interface, but you can search with "
"these engines via !bangs."
msgstr ""
"Ta karta nie istnieje w interfejsie użytkownika, ale możesz wyszukać za "
"pomocą tych silników przy użyciu !bangs."
#: searx/templates/simple/preferences/engines.html:15
msgid "Enable all"
@@ -1572,11 +1578,11 @@ msgstr ""
#: searx/templates/simple/preferences/results_on_new_tab.html:2
msgid "Results in new tabs"
msgstr ""
msgstr "Wyniki w nowych kartach"
#: searx/templates/simple/preferences/results_on_new_tab.html:14
msgid "Open result links in new browser tabs"
msgstr ""
msgstr "Otwórz wyniki z linkami w nowych kartach przeglądarki"
#: searx/templates/simple/preferences/safesearch.html:20
msgid "Filter content"
@@ -2343,4 +2349,3 @@ msgstr "ukryj wideo"
#~ msgid "Converts strings to different hash digests."
#~ msgstr "Konwertuje tekst na różne skróty hash."

View File

@@ -45,18 +45,19 @@
# bdcdo <bdcdo@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: 2025-06-13 02:39+0000\n"
"PO-Revision-Date: 2025-06-12 16:32+0000\n"
"Last-Translator: bdcdo <bdcdo@noreply.codeberg.org>\n"
"PO-Revision-Date: 2025-06-17 06:58+0000\n"
"Last-Translator: Juno Takano <jutty@noreply.codeberg.org>\n"
"Language-Team: Portuguese (Brazil) <https://translate.codeberg.org/projects/"
"searxng/searxng/pt_BR/>\n"
"Language: pt_BR\n"
"Language-Team: Portuguese (Brazil) "
"<https://translate.codeberg.org/projects/searxng/searxng/pt_BR/>\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 5.11.4\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -781,6 +782,8 @@ msgid ""
"Converts strings to different hash digests. Available functions: md5, "
"sha1, sha224, sha256, sha384, sha512."
msgstr ""
"Converte strings para diferentes formatos de saída de hashs. Funções "
"disponíveis: md5, sha1, sha224, sha256, sha384, sha512."
#: searx/plugins/hash_plugin.py:64
msgid "hash digest"
@@ -2371,4 +2374,3 @@ msgstr "ocultar vídeo"
#~ msgid "Converts strings to different hash digests."
#~ msgstr "Converte as sequências em diferentes resultados de hash."

View File

@@ -25,21 +25,23 @@
# 2025.
# dauiau <dauiau@users.noreply.translate.codeberg.org>, 2025.
# return42 <return42@noreply.codeberg.org>, 2025.
# itsmrxyz <itsmrxyz@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: 2025-06-13 02:39+0000\n"
"PO-Revision-Date: 2025-04-30 15:18+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"PO-Revision-Date: 2025-06-20 01:27+0000\n"
"Last-Translator: itsmrxyz <itsmrxyz@noreply.codeberg.org>\n"
"Language-Team: Romanian <https://translate.codeberg.org/projects/searxng/"
"searxng/ro/>\n"
"Language: ro\n"
"Language-Team: Romanian "
"<https://translate.codeberg.org/projects/searxng/searxng/ro/>\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 "
"< 20)) ? 1 : 2;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2;\n"
"X-Generator: Weblate 5.11.4\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -302,207 +304,207 @@ msgstr "Vânt"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Clear sky"
msgstr ""
msgstr "Cer senin"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Cloudy"
msgstr ""
msgstr "Înnorat"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Fair"
msgstr ""
msgstr "Vreme frumoasă"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Fog"
msgstr ""
msgstr "Ceață"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy rain and thunder"
msgstr ""
msgstr "Ploaie torențială și tunete"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy rain showers and thunder"
msgstr ""
msgstr "Averse puternice de ploaie și tunete"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy rain showers"
msgstr ""
msgstr "Averse puternice de ploaie"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy rain"
msgstr ""
msgstr "Ploaie torențială"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy sleet and thunder"
msgstr ""
msgstr "Lapoviță puternică și tunete"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy sleet showers and thunder"
msgstr ""
msgstr "Averse puternice de lapoviță și tunete"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy sleet showers"
msgstr ""
msgstr "Averse puternice de lapoviță"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy sleet"
msgstr ""
msgstr "Lapoviță puternică"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy snow and thunder"
msgstr ""
msgstr "Ninsoare puternică și tunete"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy snow showers and thunder"
msgstr ""
msgstr "Averse puternice de ninsoare și tunete"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy snow showers"
msgstr ""
msgstr "Averse puternice de ninsoare"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy snow"
msgstr ""
msgstr "Ninsoare abundentă"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain and thunder"
msgstr ""
msgstr "Ploaie ușoară și tunete"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain showers and thunder"
msgstr ""
msgstr "Averse ușoare de ploaie și tunete"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain showers"
msgstr ""
msgstr "Averse ușoare de ploaie"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain"
msgstr ""
msgstr "Ploaie ușoară"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light sleet and thunder"
msgstr ""
msgstr "Lapoviță ușoară și tunete"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light sleet showers and thunder"
msgstr ""
msgstr "Averse ușoare de lapoviță și tunete"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light sleet showers"
msgstr ""
msgstr "Averse ușoare de lapoviță"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light sleet"
msgstr ""
msgstr "Lapoviță ușoară"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light snow and thunder"
msgstr ""
msgstr "Ninsoare ușoară și tunete"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light snow showers and thunder"
msgstr ""
msgstr "Averse ușoare de ninsoare și tunete"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light snow showers"
msgstr ""
msgstr "Averse ușoare de ninsoare"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light snow"
msgstr ""
msgstr "Ninsoare ușoară"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Partly cloudy"
msgstr ""
msgstr "Parțial înnorat"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain and thunder"
msgstr ""
msgstr "Ploaie și tunete"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain showers and thunder"
msgstr ""
msgstr "Averse de ploaie și tunete"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain showers"
msgstr ""
msgstr "Averse de ploaie"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain"
msgstr ""
msgstr "Ploaie"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Sleet and thunder"
msgstr ""
msgstr "Lapoviță și tunete"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Sleet showers and thunder"
msgstr ""
msgstr "Averse de lapoviță și tunete"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Sleet showers"
msgstr ""
msgstr "Averse de lapoviță"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Sleet"
msgstr ""
msgstr "Lapoviță"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Snow and thunder"
msgstr ""
msgstr "Ninsoare și tunete"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Snow showers and thunder"
msgstr ""
msgstr "Averse de ninsoare și tunete"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Snow showers"
msgstr ""
msgstr "Averse de ninsoare"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Snow"
msgstr ""
msgstr "Ninsoare"
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
#: searx/engines/lemmy.py:85 searx/searxng.msg
@@ -740,11 +742,11 @@ msgstr "Calitatea fișierului"
#: searx/plugins/ahmia_filter.py:32
msgid "Ahmia blacklist"
msgstr ""
msgstr "Blacklist Ahmia"
#: searx/plugins/ahmia_filter.py:33
msgid "Filter out onion results that appear in Ahmia's blacklist."
msgstr ""
msgstr "Filtrarea rezultatelor .onion care apar în lista neagră a Ahmia"
#: searx/plugins/calculator.py:38
msgid "Basic Calculator"
@@ -763,6 +765,8 @@ msgid ""
"Converts strings to different hash digests. Available functions: md5, "
"sha1, sha224, sha256, sha384, sha512."
msgstr ""
"Convertește șiruri de caractere în diferite digeste hash. Funcții "
"disponibile: md5, sha1, sha224, sha256, sha384, sha512"
#: searx/plugins/hash_plugin.py:64
msgid "hash digest"
@@ -845,7 +849,7 @@ msgstr "Elimină argumentele urmăritorului din URL-ul returnat"
#: searx/plugins/unit_converter.py:49
msgid "Unit converter plugin"
msgstr ""
msgstr "Plugin de conversie a unităților"
#: searx/plugins/unit_converter.py:50
msgid "Convert between units"
@@ -854,7 +858,7 @@ msgstr "Convertiți între unități"
#: searx/result_types/answer.py:224
#, python-brace-format
msgid "{location}: {temperature}, {condition}"
msgstr ""
msgstr "{locație}: {temperatură}, {condiție}"
#: searx/templates/simple/404.html:4
msgid "Page not found"
@@ -1178,7 +1182,7 @@ msgstr "Sinonime"
#: searx/templates/simple/answer/weather.html:19
msgid "Feels Like"
msgstr ""
msgstr "Temperatură resimțită"
#: searx/templates/simple/elements/answers.html:2
msgid "Answers"
@@ -1358,7 +1362,7 @@ msgstr "Completare automată"
#: searx/templates/simple/preferences/autocomplete.html:15
msgid "Show possible queries as you type"
msgstr ""
msgstr "Afișează sugestii de căutare pe măsură ce tastezi"
#: searx/templates/simple/preferences/center_alignment.html:2
msgid "Center Alignment"
@@ -1410,6 +1414,8 @@ msgid ""
"A URL containing your preferences. This URL can be used to restore your "
"settings on a different device."
msgstr ""
"Un URL care conține preferințele tale. Acest URL poate fi folosit pentru a-"
"ți restaura setările pe un alt dispozitiv"
#: searx/templates/simple/preferences/cookies.html:46
msgid "Copy preferences hash"
@@ -1440,6 +1446,8 @@ msgid ""
"This tab does not exist in the user interface, but you can search with "
"these engines via !bangs."
msgstr ""
"Fila respectivă nu există în interfață, dar poți folosi comenzile !bang "
"pentru a căuta cu aceste motoare"
#: searx/templates/simple/preferences/engines.html:15
msgid "Enable all"
@@ -1566,11 +1574,11 @@ msgstr ""
#: searx/templates/simple/preferences/results_on_new_tab.html:2
msgid "Results in new tabs"
msgstr ""
msgstr "Rezultatele se deschid în file noi"
#: searx/templates/simple/preferences/results_on_new_tab.html:14
msgid "Open result links in new browser tabs"
msgstr ""
msgstr "Deschide linkurile rezultatelor în file noi ale browserului"
#: searx/templates/simple/preferences/safesearch.html:20
msgid "Filter content"
@@ -2346,4 +2354,3 @@ msgstr "ascunde video"
#~ msgid "Converts strings to different hash digests."
#~ msgstr "Convertește șirurile în diferite rezumate hash."

View File

@@ -33,18 +33,19 @@
# AndersNordh <andersnordh@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: 2025-06-13 02:39+0000\n"
"PO-Revision-Date: 2025-06-12 16:32+0000\n"
"PO-Revision-Date: 2025-06-14 08:58+0000\n"
"Last-Translator: AndersNordh <andersnordh@noreply.codeberg.org>\n"
"Language-Team: Swedish <https://translate.codeberg.org/projects/searxng/"
"searxng/sv/>\n"
"Language: sv\n"
"Language-Team: Swedish "
"<https://translate.codeberg.org/projects/searxng/searxng/sv/>\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 5.11.4\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -769,6 +770,8 @@ msgid ""
"Converts strings to different hash digests. Available functions: md5, "
"sha1, sha224, sha256, sha384, sha512."
msgstr ""
"Konverterar strängar till olika hash-digester. Tillgängliga funktioner: md5, "
"sha1, sha224, sha256, sha384, sha512."
#: searx/plugins/hash_plugin.py:64
msgid "hash digest"
@@ -2336,4 +2339,3 @@ msgstr "göm video"
#~ msgid "Converts strings to different hash digests."
#~ msgstr "Konverterar strängar till olika hashvärden."

View File

@@ -20,21 +20,22 @@
# SomeTr <sometr@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: 2025-06-13 02:39+0000\n"
"PO-Revision-Date: 2025-06-12 16:32+0000\n"
"PO-Revision-Date: 2025-06-14 08:58+0000\n"
"Last-Translator: SomeTr <sometr@noreply.codeberg.org>\n"
"Language-Team: Ukrainian <https://translate.codeberg.org/projects/searxng/"
"searxng/uk/>\n"
"Language: uk\n"
"Language-Team: Ukrainian "
"<https://translate.codeberg.org/projects/searxng/searxng/uk/>\n"
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 !="
" 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n "
"% 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9)"
" || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
"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 == 0 && n % 10 == 1 && n % 100 != 11 "
"? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > "
"14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % "
"100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
"X-Generator: Weblate 5.11.4\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -758,6 +759,8 @@ msgid ""
"Converts strings to different hash digests. Available functions: md5, "
"sha1, sha224, sha256, sha384, sha512."
msgstr ""
"Конвертує рядки у різні хеш-дайджести. Доступні функції: md5, sha1, sha224, "
"sha256, sha384, sha512."
#: searx/plugins/hash_plugin.py:64
msgid "hash digest"
@@ -2303,4 +2306,3 @@ msgstr "приховати відео"
#~ msgid "Converts strings to different hash digests."
#~ msgstr "Конвертує рядки в різні геш-послідовності."

View File

@@ -40,18 +40,19 @@
# pochinki <pochinki@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: 2025-06-13 02:39+0000\n"
"PO-Revision-Date: 2025-06-02 14:58+0000\n"
"PO-Revision-Date: 2025-06-17 06:58+0000\n"
"Last-Translator: Shihfu Juan <xlion@xlion.tw>\n"
"Language-Team: Chinese (Traditional Han script) <https://"
"translate.codeberg.org/projects/searxng/searxng/zh_Hant/>\n"
"Language: zh_Hant_TW\n"
"Language-Team: Chinese (Traditional Han script) "
"<https://translate.codeberg.org/projects/searxng/searxng/zh_Hant/>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.11.4\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -769,7 +770,8 @@ msgstr "雜湊 (Hash) 外掛"
msgid ""
"Converts strings to different hash digests. Available functions: md5, "
"sha1, sha224, sha256, sha384, sha512."
msgstr ""
msgstr "將字串轉換為不同的雜湊值。 可用的函數有md5, sha1, sha224, sha256, sha384, "
"sha512。"
#: searx/plugins/hash_plugin.py:64
msgid "hash digest"
@@ -1348,7 +1350,7 @@ msgstr "自動完成"
#: searx/templates/simple/preferences/autocomplete.html:15
msgid "Show possible queries as you type"
msgstr ""
msgstr "輸入時顯示可能的查詢項目"
#: searx/templates/simple/preferences/center_alignment.html:2
msgid "Center Alignment"
@@ -1424,7 +1426,8 @@ msgstr "選擇 DOI 重寫所使用的服務"
msgid ""
"This tab does not exist in the user interface, but you can search with "
"these engines via !bangs."
msgstr ""
msgstr "此分頁在使用者介面中不存在,但您可以透過 !bangs "
"指令使用這些搜尋引擎進行搜尋。"
#: searx/templates/simple/preferences/engines.html:15
msgid "Enable all"
@@ -1540,11 +1543,11 @@ msgstr "啟用時,結果頁的標題將包含您的查詢關鍵字。您的瀏
#: searx/templates/simple/preferences/results_on_new_tab.html:2
msgid "Results in new tabs"
msgstr ""
msgstr "在新分頁顯示結果"
#: searx/templates/simple/preferences/results_on_new_tab.html:14
msgid "Open result links in new browser tabs"
msgstr ""
msgstr "在新的瀏覽器分頁中開啟搜尋結果連結"
#: searx/templates/simple/preferences/safesearch.html:20
msgid "Filter content"
@@ -2252,4 +2255,3 @@ msgstr "隱藏影片"
#~ msgid "Converts strings to different hash digests."
#~ msgstr "將字串轉換為不同的雜湊摘要值。"

View File

@@ -51,7 +51,6 @@ engines:
doi_resolvers:
oadoi.org: 'https://oadoi.org/'
doi.org: 'https://doi.org/'
doai.io: 'https://dissem.in/'
sci-hub.se: 'https://sci-hub.se/'
sci-hub.st: 'https://sci-hub.st/'
sci-hub.ru: 'https://sci-hub.ru/'