diff --git a/.github/workflows/cli.yml b/.github/workflows/cli.yml
index da383c3e2d..e3b2d68435 100644
--- a/.github/workflows/cli.yml
+++ b/.github/workflows/cli.yml
@@ -59,7 +59,7 @@ jobs:
uses: docker/setup-qemu-action@v3.2.0
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3.7.1
+ uses: docker/setup-buildx-action@v3.8.0
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index 7ec0cc0947..2fac92c4e8 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -125,7 +125,7 @@ jobs:
uses: docker/setup-qemu-action@v3.2.0
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3.7.1
+ uses: docker/setup-buildx-action@v3.8.0
- name: Login to Docker Hub
# Only push to Docker Hub when making a release
@@ -216,7 +216,7 @@ jobs:
uses: docker/setup-qemu-action@v3.2.0
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3.7.1
+ uses: docker/setup-buildx-action@v3.8.0
- name: Login to Docker Hub
# Only push to Docker Hub when making a release
diff --git a/.github/workflows/pr-label-validation.yml b/.github/workflows/pr-label-validation.yml
index 754d409613..0abbc01afd 100644
--- a/.github/workflows/pr-label-validation.yml
+++ b/.github/workflows/pr-label-validation.yml
@@ -19,3 +19,4 @@ jobs:
use_regex: true
labels: "changelog:.*"
add_comment: true
+ message: "Label error. Requires {{errorString}} {{count}} of: {{ provided }}. Found: {{ applied }}. A maintainer will add the required label."
diff --git a/cli/package-lock.json b/cli/package-lock.json
index 95145e9b20..fe0351fb65 100644
--- a/cli/package-lock.json
+++ b/cli/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@immich/cli",
- "version": "2.2.37",
+ "version": "2.2.38",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@immich/cli",
- "version": "2.2.37",
+ "version": "2.2.38",
"license": "GNU Affero General Public License version 3",
"dependencies": {
"fast-glob": "^3.3.2",
@@ -34,7 +34,7 @@
"eslint": "^9.14.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.3",
- "eslint-plugin-unicorn": "^55.0.0",
+ "eslint-plugin-unicorn": "^56.0.1",
"globals": "^15.9.0",
"mock-fs": "^5.2.0",
"prettier": "^3.2.5",
@@ -52,7 +52,7 @@
},
"../open-api/typescript-sdk": {
"name": "@immich/sdk",
- "version": "1.123.0",
+ "version": "1.124.0",
"dev": true,
"license": "GNU Affero General Public License version 3",
"dependencies": {
@@ -1876,9 +1876,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.23.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
- "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
+ "version": "4.24.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz",
+ "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==",
"dev": true,
"funding": [
{
@@ -1894,11 +1894,12 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "caniuse-lite": "^1.0.30001587",
- "electron-to-chromium": "^1.4.668",
- "node-releases": "^2.0.14",
- "update-browserslist-db": "^1.0.13"
+ "caniuse-lite": "^1.0.30001688",
+ "electron-to-chromium": "^1.5.73",
+ "node-releases": "^2.0.19",
+ "update-browserslist-db": "^1.1.1"
},
"bin": {
"browserslist": "cli.js"
@@ -1949,9 +1950,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001597",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz",
- "integrity": "sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==",
+ "version": "1.0.30001689",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001689.tgz",
+ "integrity": "sha512-CmeR2VBycfa+5/jOfnp/NpWPGd06nf1XYiefUvhXFfZE4GkRc9jv+eGPS4nT558WS/8lYCzV8SlANCIPvbWP1g==",
"dev": true,
"funding": [
{
@@ -1966,7 +1967,8 @@
"type": "github",
"url": "https://github.com/sponsors/ai"
}
- ]
+ ],
+ "license": "CC-BY-4.0"
},
"node_modules/chai": {
"version": "5.1.2",
@@ -2095,12 +2097,13 @@
"license": "MIT"
},
"node_modules/core-js-compat": {
- "version": "3.37.1",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz",
- "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==",
+ "version": "3.39.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz",
+ "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "browserslist": "^4.23.0"
+ "browserslist": "^4.24.2"
},
"funding": {
"type": "opencollective",
@@ -2163,10 +2166,11 @@
"dev": true
},
"node_modules/electron-to-chromium": {
- "version": "1.4.705",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.705.tgz",
- "integrity": "sha512-LKqhpwJCLhYId2VVwEzFXWrqQI5n5zBppz1W9ehhTlfYU8CUUW6kClbN8LHF/v7flMgRdETS772nqywJ+ckVAw==",
- "dev": true
+ "version": "1.5.74",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.74.tgz",
+ "integrity": "sha512-ck3//9RC+6oss/1Bh9tiAVFy5vfSKbRHAFh7Z3/eTRkEqJeWgymloShB17Vg3Z4nmDNp35vAd1BZ6CMW4Wt6Iw==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/emoji-regex": {
"version": "8.0.0",
@@ -2230,10 +2234,11 @@
}
},
"node_modules/escalade": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
- "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -2355,19 +2360,19 @@
}
},
"node_modules/eslint-plugin-unicorn": {
- "version": "55.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-55.0.0.tgz",
- "integrity": "sha512-n3AKiVpY2/uDcGrS3+QsYDkjPfaOrNrsfQxU9nt5nitd9KuvVXrfAvgCO9DYPSfap+Gqjw9EOrXIsBp5tlHZjA==",
+ "version": "56.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-56.0.1.tgz",
+ "integrity": "sha512-FwVV0Uwf8XPfVnKSGpMg7NtlZh0G0gBarCaFcMUOoqPxXryxdYxTRRv4kH6B9TFCVIrjRXG+emcxIk2ayZilog==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.24.5",
+ "@babel/helper-validator-identifier": "^7.24.7",
"@eslint-community/eslint-utils": "^4.4.0",
"ci-info": "^4.0.0",
"clean-regexp": "^1.0.0",
- "core-js-compat": "^3.37.0",
- "esquery": "^1.5.0",
- "globals": "^15.7.0",
+ "core-js-compat": "^3.38.1",
+ "esquery": "^1.6.0",
+ "globals": "^15.9.0",
"indent-string": "^4.0.0",
"is-builtin-module": "^3.2.1",
"jsesc": "^3.0.2",
@@ -2375,7 +2380,7 @@
"read-pkg-up": "^7.0.1",
"regexp-tree": "^0.1.27",
"regjsparser": "^0.10.0",
- "semver": "^7.6.1",
+ "semver": "^7.6.3",
"strip-indent": "^3.0.0"
},
"engines": {
@@ -2503,10 +2508,11 @@
}
},
"node_modules/esquery": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"estraverse": "^5.1.0"
},
@@ -3253,10 +3259,11 @@
"dev": true
},
"node_modules/node-releases": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
- "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
- "dev": true
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
+ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/normalize-package-data": {
"version": "2.5.0",
@@ -3792,10 +3799,11 @@
}
},
"node_modules/semver": {
- "version": "7.6.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
- "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -4163,9 +4171,9 @@
"license": "MIT"
},
"node_modules/update-browserslist-db": {
- "version": "1.0.13",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
- "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
+ "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
"dev": true,
"funding": [
{
@@ -4181,9 +4189,10 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.0"
},
"bin": {
"update-browserslist-db": "cli.js"
diff --git a/cli/package.json b/cli/package.json
index d9b217e126..822604fb7b 100644
--- a/cli/package.json
+++ b/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@immich/cli",
- "version": "2.2.37",
+ "version": "2.2.38",
"description": "Command Line Interface (CLI) for Immich",
"type": "module",
"exports": "./dist/index.js",
@@ -30,7 +30,7 @@
"eslint": "^9.14.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.3",
- "eslint-plugin-unicorn": "^55.0.0",
+ "eslint-plugin-unicorn": "^56.0.1",
"globals": "^15.9.0",
"mock-fs": "^5.2.0",
"prettier": "^3.2.5",
diff --git a/docs/docs/FAQ.mdx b/docs/docs/FAQ.mdx
index b328d3a047..755698ba1d 100644
--- a/docs/docs/FAQ.mdx
+++ b/docs/docs/FAQ.mdx
@@ -49,6 +49,7 @@ The behaviors differ based on your device manufacturer and operating system, but
On iOS (iPhone and iPad), the operating system determines if a particular app can invoke background tasks based on multiple factors, most of which the Immich app has no control over. To increase the likelihood that the background backup task is run, follow the steps below:
- Enable Background App Refresh for Immich in the iOS settings at `Settings > General > Background App Refresh`.
+- Disable **Low Power Mode** when not needed, as this can prevent apps from running in the background.
- Disable Background App Refresh for apps that don't need background tasks to run. This will reduce the competition for background task invocation for Immich.
- Use the Immich app more often.
@@ -69,7 +70,8 @@ However, Immich will delete original files that have been trashed when the trash
### Why do my file names appear as a random string in the file manager?
-When Storage Template is off (default) Immich saves the file names in a random string (also known as random UUIDs) to prevent duplicate file names. To retrieve the original file names, you must enable the Storage Template and then run the STORAGE TEMPLATE MIGRATION job.
+When Storage Template is off (default) Immich saves the file names in a random string (also known as random UUIDs) to prevent duplicate file names.
+To retrieve the original file names, you must enable the Storage Template and then run the STORAGE TEMPLATE MIGRATION job.
It is recommended to read about [Storage Template](https://immich.app/docs/administration/storage-template) before activation.
### Can I add my existing photo library?
@@ -82,11 +84,20 @@ Template changes will only apply to _new_ assets. To retroactively apply the tem
### Why are only photos and not videos being uploaded to Immich?
-This often happens when using a reverse proxy (such as Nginx or Cloudflare tunnel) in front of Immich. Make sure to set your reverse proxy to allow large `POST` requests. In `nginx`, set `client_max_body_size 50000M;` or similar. Also, check the disk space of your reverse proxy. In some cases, proxies cache requests to disk before passing them on, and if disk space runs out, the request fails.
+This often happens when using a reverse proxy in front of Immich.
+Make sure to [set your reverse proxy](/docs/administration/reverse-proxy/) to allow large requests.
+Also, check the disk space of your reverse proxy.
+In some cases, proxies cache requests to disk before passing them on, and if disk space runs out, the request fails.
+
+If you are using Cloudflare Tunnel, please know that they set a maxiumum filesize of 100 MB that cannot be changed.
+At times, files larger than this may work, potentially up to 1 GB. However, the official limit is 100 MB.
+If you are having issues, we recommend switching to a different network deployment.
### Why are some photos stored in the file system with the wrong date?
-There are a few different scenarios that can lead to this situation. The solution is to rerun the storage migration job. The job is only automatically run once per asset after upload. If metadata extraction originally failed, the jobs were cleared/canceled, etc., the job may not have run automatically the first time.
+There are a few different scenarios that can lead to this situation. The solution is to rerun the storage migration job.
+The job is only automatically run once per asset after upload. If metadata extraction originally failed, the jobs were cleared/canceled, etc.,
+the job may not have run automatically the first time.
### How can I hide photos from the timeline?
@@ -116,7 +127,8 @@ Also, there are additional jobs for person (face) thumbnails.
### Why do files from WhatsApp not appear with the correct date?
-Files sent on WhatsApp are saved without metadata on the file. Therefore, Immich has no way of knowing the original date of the file when files are uploaded from WhatsApp, not the order of arrival on the device. [See #3527](https://github.com/immich-app/immich/issues/3527).
+Files sent on WhatsApp are saved without metadata on the file. Therefore, Immich has no way of knowing the original date of the file when files are uploaded from WhatsApp,
+not the order of arrival on the device. [See #9116](https://github.com/immich-app/immich/discussions/9116).
### What happens if an asset exists in more than one account?
@@ -191,7 +203,7 @@ Immich uses CLIP models. An ML model converts each image to an "embedding", whic
### How does facial recognition work?
-See [How Facial Recognition Works](/docs/features/facial-recognition#How-Facial-Recognition-Works) for details.
+See [How Facial Recognition Works](/docs/features/facial-recognition#how-facial-recognition-works) for details.
### How can I disable machine learning?
@@ -213,7 +225,7 @@ No, this is not supported. Only models listed in the [Hugging Face][huggingface]
### I want to be able to search in other languages besides English. How can I do that?
-You can change to a multilingual CLIP model. See [here](/docs/features/smart-search#CLIP-model) for instructions.
+You can change to a multilingual CLIP model. See [here](/docs/features/searching#clip-model) for instructions.
### Does Immich support Facial Recognition for videos?
@@ -224,7 +236,7 @@ Scanning the entire video for faces may be implemented in the future.
No.
:::tip
-You can use [Smart Search](/docs/features/smart-search.md) for this to some extent. For example, if you have a Golden Retriever and a Chihuahua, type these words in the smart search and watch the results.
+You can use [Smart Search](/docs/features/searching.md) for this to some extent. For example, if you have a Golden Retriever and a Chihuahua, type these words in the smart search and watch the results.
:::
### I'm getting a lot of "faces" that aren't faces, what can I do?
@@ -308,7 +320,7 @@ Do not exaggerate with the job concurrency because you're probably thoroughly ov
### My server shows Server Status Offline | Version Unknown. What can I do?
-You need to enable WebSockets on your reverse proxy.
+You need to [enable WebSockets](/docs/administration/reverse-proxy/) on your reverse proxy.
---
@@ -339,7 +351,7 @@ The non-root user/group needs read/write access to the volume mounts, including
The Docker Compose top level volume element does not support non-root access, all of the above volumes must be local volume mounts.
:::
-For a further hardened system, you can add the following block to every container except for `immich_postgres`.
+For a further hardened system, you can add the following block to every container.
docker-compose.yml
@@ -388,22 +400,21 @@ If the error says the worker is exiting, then this is normal. This is a feature
There are a few reasons why this can happen.
-If the error mentions SIGKILL or error code 137, it most likely means the service is running out of memory. Consider either increasing the server's RAM or moving the service to a server with more RAM.
+If the error mentions SIGKILL or error code 137, it most likely means the service is running out of memory.
+Consider either increasing the server's RAM or moving the service to a server with more RAM.
-If it mentions SIGILL (note the lack of a K) or error code 132, it most likely means your server's CPU is incompatible. This is unlikely to occur on version 1.92.0 or later. Consider upgrading if your version of Immich is below that.
-
-If your version of Immich is below 1.92.0 and the crash occurs after logs about tracing or exporting a model, consider either upgrading or disabling the Tag Objects job.
+If it mentions SIGILL (note the lack of a K) or error code 132, it most likely means your server's CPU is incompatible with Immich.
## Database
### Why am I getting database ownership errors?
If you get database errors such as `FATAL: data directory "/var/lib/postgresql/data" has wrong ownership` upon database startup, this is likely due to an issue with your filesystem.
-NTFS and ex/FAT/32 filesystems are not supported. See [here](/docs/install/environment-variables#supported-filesystems) for more details.
+NTFS and ex/FAT/32 filesystems are not supported. See [here](/docs/install/requirements#special-requirements-for-windows-users) for more details.
### How can I verify the integrity of my database?
-If you installed Immich using v1.104.0 or later, you likely have database checksums enabled by default. You can check this by running the following command.
+Database checksums are enabled by default for new installations since v1.104.0. You can check if they are enabled by running the following command.
A result of `on` means that checksums are enabled.
@@ -419,7 +430,7 @@ docker exec -it immich_postgres psql --dbname=immich --username= --
-If checksums are enabled, you can check the status of the database with the following command. A normal result is all zeroes.
+If checksums are enabled, you can check the status of the database with the following command. A normal result is all `0`s.
Check for database corruption
@@ -437,6 +448,24 @@ docker exec -it immich_postgres psql --dbname=immich --username= --
+You can also scan the Postgres database file structure for errors:
+
+
+Scan for file structure errors
+```bash
+docker exec -it immich_postgres pg_amcheck --username=postgres --heapallindexed --parent-check --rootdescend --progress --all --install-missing
+```
+
+A normal result will end something like this and return with an exit code of `0`:
+
+```bash
+7470/8832 relations (84%), 730829/734735 pages (99%)
+8425/8832 relations (95%), 734367/734735 pages (99%)
+8832/8832 relations (100%), 734735/734735 pages (100%)
+```
+
+
+
If corruption is detected, you should immediately make a backup before performing any other work in the database.
To do so, you may need to set the `zero_damaged_pages=on` flag for the database server to allow `pg_dumpall` to succeed.
After taking a backup, the recommended next step is to restore the database from a healthy backup before corruption was detected.
diff --git a/docs/docs/administration/backup-and-restore.md b/docs/docs/administration/backup-and-restore.md
index 1f8d489728..9fffdf103b 100644
--- a/docs/docs/administration/backup-and-restore.md
+++ b/docs/docs/administration/backup-and-restore.md
@@ -5,6 +5,10 @@ import TabItem from '@theme/TabItem';
A [3-2-1 backup strategy](https://www.backblaze.com/blog/the-3-2-1-backup-strategy/) is recommended to protect your data. You should keep copies of your uploaded photos/videos as well as the Immich database for a comprehensive backup solution. This page provides an overview on how to backup the database and the location of user-uploaded pictures and videos. A template bash script that can be run as a cron job is provided [here](/docs/guides/template-backup-script.md)
+:::danger
+The instructions on this page show you how to prepare your Immich instance to be backed up, and which files to take a backup of. You still need to take care of using an actual backup tool to make a backup yourself.
+:::
+
## Database
:::caution
@@ -21,7 +25,8 @@ It is not recommended to directly backup the `DB_DATA_LOCATION` folder. Doing so
### Automatic Database Backups
-Immich will automatically create database backups by default. The backups are stored in `UPLOAD_LOCATION/backups`.
+For convenience, Immich will automatically create database backups by default. The backups are stored in `UPLOAD_LOCATION/backups`.
+As mentioned above, you should make your own backup of these together with the asset folders as noted below.
You can adjust the schedule and amount of kept backups in the [admin settings](http://my.immich.app/admin/system-settings?isOpen=backup).
By default, Immich will keep the last 14 backups and create a new backup every day at 2:00 AM.
diff --git a/docs/docs/administration/email-notification.mdx b/docs/docs/administration/email-notification.mdx
index 2f244f3352..2ad4fba2be 100644
--- a/docs/docs/administration/email-notification.mdx
+++ b/docs/docs/administration/email-notification.mdx
@@ -18,10 +18,10 @@ You can use [this guide](/docs/guides/smtp-gmail) to use Gmail's SMTP server.
Users can manage their email notification settings from their account settings page on the web. They can choose to turn email notifications on or off for the following events:
-
+
## Notification templates
You can override the default notification text with custom templates in HTML format. You can use tags to show dynamic tags in your templates.
-
+
diff --git a/docs/docs/administration/img/admin-jobs-exif.png b/docs/docs/administration/img/admin-jobs-exif.png
deleted file mode 100644
index 6c3f0bfefb..0000000000
Binary files a/docs/docs/administration/img/admin-jobs-exif.png and /dev/null differ
diff --git a/docs/docs/administration/img/admin-jobs-objects.png b/docs/docs/administration/img/admin-jobs-objects.png
deleted file mode 100644
index d7dd678f98..0000000000
Binary files a/docs/docs/administration/img/admin-jobs-objects.png and /dev/null differ
diff --git a/docs/docs/administration/img/admin-jobs-template.png b/docs/docs/administration/img/admin-jobs-template.png
deleted file mode 100644
index b3fc087877..0000000000
Binary files a/docs/docs/administration/img/admin-jobs-template.png and /dev/null differ
diff --git a/docs/docs/administration/img/admin-jobs-thumbnails.png b/docs/docs/administration/img/admin-jobs-thumbnails.png
deleted file mode 100644
index a8cdc5df1b..0000000000
Binary files a/docs/docs/administration/img/admin-jobs-thumbnails.png and /dev/null differ
diff --git a/docs/docs/administration/img/admin-jobs.webp b/docs/docs/administration/img/admin-jobs.webp
index 15580c3c9c..2867e18adc 100644
Binary files a/docs/docs/administration/img/admin-jobs.webp and b/docs/docs/administration/img/admin-jobs.webp differ
diff --git a/docs/docs/administration/img/administration-panel.webp b/docs/docs/administration/img/administration-panel.webp
new file mode 100644
index 0000000000..f2f171914b
Binary files /dev/null and b/docs/docs/administration/img/administration-panel.webp differ
diff --git a/docs/docs/administration/img/authentik-redirect.png b/docs/docs/administration/img/authentik-redirect.png
deleted file mode 100644
index 6cae28bbfe..0000000000
Binary files a/docs/docs/administration/img/authentik-redirect.png and /dev/null differ
diff --git a/docs/docs/administration/img/authentik-redirect.webp b/docs/docs/administration/img/authentik-redirect.webp
new file mode 100644
index 0000000000..f3aa10fd23
Binary files /dev/null and b/docs/docs/administration/img/authentik-redirect.webp differ
diff --git a/docs/docs/administration/img/customize-delete-user.png b/docs/docs/administration/img/customize-delete-user.png
deleted file mode 100644
index e76212cd55..0000000000
Binary files a/docs/docs/administration/img/customize-delete-user.png and /dev/null differ
diff --git a/docs/docs/administration/img/customize-delete-user.webp b/docs/docs/administration/img/customize-delete-user.webp
new file mode 100644
index 0000000000..6f171b4bc2
Binary files /dev/null and b/docs/docs/administration/img/customize-delete-user.webp differ
diff --git a/docs/docs/administration/img/disable-password-login.png b/docs/docs/administration/img/disable-password-login.png
deleted file mode 100644
index e83059b763..0000000000
Binary files a/docs/docs/administration/img/disable-password-login.png and /dev/null differ
diff --git a/docs/docs/administration/img/disable-password-login.webp b/docs/docs/administration/img/disable-password-login.webp
new file mode 100644
index 0000000000..5e95177392
Binary files /dev/null and b/docs/docs/administration/img/disable-password-login.webp differ
diff --git a/docs/docs/administration/img/enable-password-login.png b/docs/docs/administration/img/enable-password-login.png
deleted file mode 100644
index e4827a2c9d..0000000000
Binary files a/docs/docs/administration/img/enable-password-login.png and /dev/null differ
diff --git a/docs/docs/administration/img/enable-password-login.webp b/docs/docs/administration/img/enable-password-login.webp
new file mode 100644
index 0000000000..d1401f2afe
Binary files /dev/null and b/docs/docs/administration/img/enable-password-login.webp differ
diff --git a/docs/docs/administration/img/immediately-remove-user.png b/docs/docs/administration/img/immediately-remove-user.png
deleted file mode 100644
index 8f558bf710..0000000000
Binary files a/docs/docs/administration/img/immediately-remove-user.png and /dev/null differ
diff --git a/docs/docs/administration/img/immediately-remove-user.webp b/docs/docs/administration/img/immediately-remove-user.webp
new file mode 100644
index 0000000000..8addeff14c
Binary files /dev/null and b/docs/docs/administration/img/immediately-remove-user.webp differ
diff --git a/docs/docs/administration/img/list-users.png b/docs/docs/administration/img/list-users.png
deleted file mode 100644
index 02c6d8faea..0000000000
Binary files a/docs/docs/administration/img/list-users.png and /dev/null differ
diff --git a/docs/docs/administration/img/list-users.webp b/docs/docs/administration/img/list-users.webp
new file mode 100644
index 0000000000..05b7fb3aa7
Binary files /dev/null and b/docs/docs/administration/img/list-users.webp differ
diff --git a/docs/docs/administration/img/password-login-settings.png b/docs/docs/administration/img/password-login-settings.png
deleted file mode 100644
index 2c87081db5..0000000000
Binary files a/docs/docs/administration/img/password-login-settings.png and /dev/null differ
diff --git a/docs/docs/administration/img/password-login-settings.webp b/docs/docs/administration/img/password-login-settings.webp
new file mode 100644
index 0000000000..fd61a18d03
Binary files /dev/null and b/docs/docs/administration/img/password-login-settings.webp differ
diff --git a/docs/docs/administration/img/repair-page-1.png b/docs/docs/administration/img/repair-page-1.png
deleted file mode 100644
index 4c6a1cdddb..0000000000
Binary files a/docs/docs/administration/img/repair-page-1.png and /dev/null differ
diff --git a/docs/docs/administration/img/repair-page.png b/docs/docs/administration/img/repair-page.png
deleted file mode 100644
index b6ae7e40b1..0000000000
Binary files a/docs/docs/administration/img/repair-page.png and /dev/null differ
diff --git a/docs/docs/administration/img/reset-admin-password.png b/docs/docs/administration/img/reset-admin-password.png
deleted file mode 100644
index 57ee230d34..0000000000
Binary files a/docs/docs/administration/img/reset-admin-password.png and /dev/null differ
diff --git a/docs/docs/administration/img/reset-admin-password.webp b/docs/docs/administration/img/reset-admin-password.webp
new file mode 100644
index 0000000000..5062d24a6b
Binary files /dev/null and b/docs/docs/administration/img/reset-admin-password.webp differ
diff --git a/docs/docs/administration/img/server-stats.png b/docs/docs/administration/img/server-stats.png
deleted file mode 100644
index 0d9adf2765..0000000000
Binary files a/docs/docs/administration/img/server-stats.png and /dev/null differ
diff --git a/docs/docs/administration/img/server-stats.webp b/docs/docs/administration/img/server-stats.webp
new file mode 100644
index 0000000000..3048c38b66
Binary files /dev/null and b/docs/docs/administration/img/server-stats.webp differ
diff --git a/docs/docs/administration/img/user-management-update.png b/docs/docs/administration/img/user-management-update.png
deleted file mode 100644
index f494750edc..0000000000
Binary files a/docs/docs/administration/img/user-management-update.png and /dev/null differ
diff --git a/docs/docs/administration/img/user-management-update.webp b/docs/docs/administration/img/user-management-update.webp
new file mode 100644
index 0000000000..00dda77ce3
Binary files /dev/null and b/docs/docs/administration/img/user-management-update.webp differ
diff --git a/docs/docs/administration/img/user-notifications-settings.png b/docs/docs/administration/img/user-notifications-settings.png
deleted file mode 100644
index d65e4730c7..0000000000
Binary files a/docs/docs/administration/img/user-notifications-settings.png and /dev/null differ
diff --git a/docs/docs/administration/img/user-notifications-settings.webp b/docs/docs/administration/img/user-notifications-settings.webp
new file mode 100644
index 0000000000..301dce7c6b
Binary files /dev/null and b/docs/docs/administration/img/user-notifications-settings.webp differ
diff --git a/docs/docs/administration/img/user-notifications-templates.png b/docs/docs/administration/img/user-notifications-templates.png
deleted file mode 100644
index 150d39b7a6..0000000000
Binary files a/docs/docs/administration/img/user-notifications-templates.png and /dev/null differ
diff --git a/docs/docs/administration/img/user-notifications-templates.webp b/docs/docs/administration/img/user-notifications-templates.webp
new file mode 100644
index 0000000000..a40bf82414
Binary files /dev/null and b/docs/docs/administration/img/user-notifications-templates.webp differ
diff --git a/docs/docs/administration/img/user-quota-size.png b/docs/docs/administration/img/user-quota-size.png
deleted file mode 100644
index bddaea716d..0000000000
Binary files a/docs/docs/administration/img/user-quota-size.png and /dev/null differ
diff --git a/docs/docs/administration/img/user-quota-size.webp b/docs/docs/administration/img/user-quota-size.webp
new file mode 100644
index 0000000000..9b5464ba3c
Binary files /dev/null and b/docs/docs/administration/img/user-quota-size.webp differ
diff --git a/docs/docs/administration/img/user-storage-label.png b/docs/docs/administration/img/user-storage-label.png
deleted file mode 100644
index 686793c641..0000000000
Binary files a/docs/docs/administration/img/user-storage-label.png and /dev/null differ
diff --git a/docs/docs/administration/img/user-storage-label.webp b/docs/docs/administration/img/user-storage-label.webp
new file mode 100644
index 0000000000..5d54e43899
Binary files /dev/null and b/docs/docs/administration/img/user-storage-label.webp differ
diff --git a/docs/docs/administration/jobs-workers.md b/docs/docs/administration/jobs-workers.md
index fde39a2e3a..75f97de982 100644
--- a/docs/docs/administration/jobs-workers.md
+++ b/docs/docs/administration/jobs-workers.md
@@ -48,8 +48,4 @@ When a new asset is uploaded it kicks off a series of jobs, which include metada
Additionally, some jobs run on a schedule, which is every night at midnight. This schedule, with the exception of [External Libraries](/docs/features/libraries) scanning, cannot be changed.
-:::info
-Storage Migration job can be run after changing the [Storage Template](/docs/administration/storage-template.mdx), in order to apply the change to the existing library.
-:::
-
diff --git a/docs/docs/administration/postgres-standalone.md b/docs/docs/administration/postgres-standalone.md
index 798555975f..9be69906ab 100644
--- a/docs/docs/administration/postgres-standalone.md
+++ b/docs/docs/administration/postgres-standalone.md
@@ -42,6 +42,10 @@ Typically Immich expects superuser permission in the database, which you can gra
This method is recommended for **advanced users only** and often requires manual intervention when updating Immich.
:::
+:::danger
+Currently, automated backups require superuser permission due to the usage of `pg_dumpall`.
+:::
+
Immich can run without superuser permissions by following the below instructions at the `psql` prompt to prepare the database.
```sql title="Set up Postgres for Immich"
diff --git a/docs/docs/administration/repair-page.md b/docs/docs/administration/repair-page.md
deleted file mode 100644
index 4246c7e39c..0000000000
--- a/docs/docs/administration/repair-page.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# Repair Page
-
-:::warning
-This feature is currently disabled and will be reworked in the near future.
-:::
-
-The repair page is designed to give information to the system administrator about files that are not tracked, or offline paths.
-
-## Natural State
-
-In this situation, everything is in its place and there is no problem that the system administrator should be aware of.
-
-
-
-## Any Other Situation
-
-:::note RAM Usage
-Several users report a situation where the page fails to load. In order to solve this problem you should try to allocate more RAM to Immich, if the problem continues, you should stop using the reverse proxy while loading the page.
-:::
-
-In any other situation, there are 3 different options that can appear:
-
-- MATCHES - These files are matched by their checksums.
-
-- OFFLINE PATHS - These files are the result of manually deleting files from immich or a failed file move in the past (losing track of a file).
-
-- UNTRACKED FILES - These files are not tracked by the application. They can be the result of failed moves, interrupted uploads, or left behind due to a bug.
-
-In addition, you can download the information from a page, mark everything (in order to check hashing) and correct the problem if a match is found in the hashing.
-
-
diff --git a/docs/docs/administration/reverse-proxy.md b/docs/docs/administration/reverse-proxy.md
index 25762ad7f1..06fe3ee5bb 100644
--- a/docs/docs/administration/reverse-proxy.md
+++ b/docs/docs/administration/reverse-proxy.md
@@ -6,6 +6,10 @@ Users can deploy a custom reverse proxy that forwards requests to Immich. This w
The Repair page can take a long time to load. To avoid server timeouts or errors, we recommend specifying a timeout of at least 10 minutes on your proxy server.
:::
+:::caution
+Immich does not support being served on a sub-path such as `location /immich {`. It has to be served on the root path of a (sub)domain.
+:::
+
### Nginx example config
Below is an example config for nginx. Make sure to set `public_url` to the front-facing URL of your instance, and `backend_url` to the path of the Immich server.
diff --git a/docs/docs/administration/server-stats.md b/docs/docs/administration/server-stats.md
index eb5f72a41d..245056e2ea 100644
--- a/docs/docs/administration/server-stats.md
+++ b/docs/docs/administration/server-stats.md
@@ -1,13 +1,9 @@
# Server Stats
-Server statistics to show the total number of videos, photos, and usage per user.
-
-:::info
-If a storage quota has been defined for the user, the usage number will be displayed as a percentage of the total storage quota allocated to them.
-:::
+Server statistics to show the total number of videos, photos, usage and quota per user.
:::info External library
-External libraries are not included in the storage quota.
+External libraries are not included in the storage quota due to custom mount points.
:::
-
+
diff --git a/docs/docs/administration/system-settings.md b/docs/docs/administration/system-settings.md
index d6c219a168..92b910a01b 100644
--- a/docs/docs/administration/system-settings.md
+++ b/docs/docs/administration/system-settings.md
@@ -1,10 +1,6 @@
# System Settings
-On the system settings page, the administrator can manage global settings for the Immich instance.
-
-:::note
-Viewing and modifying the system settings is restricted to the Administrator.
-:::
+The admin user can manage settings for the Immich instance here.
:::tip
You can always return to the default settings by clicking the `Reset to default` button.
@@ -104,8 +100,7 @@ You can choose to disable a certain type of machine learning, for example smart
### Smart Search
-The [smart search](/docs/features/smart-search) settings are designed to allow the search tool to be used using [CLIP](https://openai.com/research/clip) models that [can be changed](/docs/FAQ#can-i-use-a-custom-clip-model), different models will necessarily give better results but may consume more processing power, when changing a model it is mandatory to re-run the
-Smart Search job on all images to fully apply the change.
+The [smart search](/docs/features/searching) settings allow you to change the [CLIP model](https://openai.com/research/clip). Larger models will typically provide [more accurate search results](https://github.com/immich-app/immich/discussions/11862) but consume more processing power and RAM. When [changing the CLIP model](/docs/FAQ#can-i-use-a-custom-clip-model) it is mandatory to re-run the Smart Search job on all images to fully apply the change.
:::info Internet connection
Changing models requires a connection to the Internet to download the model.
diff --git a/docs/docs/administration/user-management.mdx b/docs/docs/administration/user-management.mdx
index c6fb7d5058..9375730f1e 100644
--- a/docs/docs/administration/user-management.mdx
+++ b/docs/docs/administration/user-management.mdx
@@ -41,7 +41,7 @@ The system administrator can see the usage quota percentage of all users in Serv
External libraries don't take up space from the storage quota.
:::
-
+
## Set Storage Label For User
@@ -51,13 +51,13 @@ To apply a storage template, go to the Administration page -> click on the penci
To apply the Storage Label to previously uploaded assets, run the Storage Migration Job.
:::
-
+
## Password Reset
To reset a user's password, click the pencil icon to edit a user, then click "Reset Password". The user's password will be reset to random password and they have to change it next time the sign in.
-
+
## Delete a User
@@ -72,7 +72,7 @@ You can customize the time of the deletion of the users from the Administration
The user deletion job runs at midnight to check for users that are ready for deletion. Changes to this setting will be evaluated at the next execution.
:::
-
+
### Immediately Remove User
@@ -80,4 +80,4 @@ You can choose to delete a user immediately by checking the box
`Queue user and assets for immediate deletion` in the deletion process, this will immediately remove the user and all assets.
This cannot be undone and the files cannot be recovered.
-
+
diff --git a/docs/docs/developer/architecture.mdx b/docs/docs/developer/architecture.mdx
index 7b5debef4c..2910f4db56 100644
--- a/docs/docs/developer/architecture.mdx
+++ b/docs/docs/developer/architecture.mdx
@@ -2,7 +2,7 @@
sidebar_position: 1
---
-import AppArchitecture from './img/app-architecture.png';
+import AppArchitecture from './img/app-architecture.webp';
import MobileArchitecture from './img/immich_mobile_architecture.svg';
# Architecture
diff --git a/docs/docs/developer/img/app-architecture.png b/docs/docs/developer/img/app-architecture.png
deleted file mode 100644
index 68f20633c5..0000000000
Binary files a/docs/docs/developer/img/app-architecture.png and /dev/null differ
diff --git a/docs/docs/developer/img/app-architecture.webp b/docs/docs/developer/img/app-architecture.webp
new file mode 100644
index 0000000000..365369c62d
Binary files /dev/null and b/docs/docs/developer/img/app-architecture.webp differ
diff --git a/docs/docs/features/automatic-backup.md b/docs/docs/features/automatic-backup.md
index 81444d9f37..8fcbedaa6e 100644
--- a/docs/docs/features/automatic-backup.md
+++ b/docs/docs/features/automatic-backup.md
@@ -1,8 +1,14 @@
# Automatic Backup
-A guide on how the foreground and background automatic backup works.
+Immich supports uploading photos and videos from your mobile device to the server automatically.
-
+---
+
+You can enable the settings by accessing the upload options from the upload page
+
+
+
+
## Foreground backup
@@ -10,9 +16,9 @@ If foreground backup is enabled: whenever the app is opened or resumed, it will
## Background backup
-Background backup is available thanks to the contribution effort of [@fyfrey](https://github.com/fyfrey) and [@martyfuhry](https://github.com/martyfuhry).
+This feature is intended for everyday use. For initial bulk uploading, please use the foreground upload feature. For more information on why background upload is not working as expected, please refer to the [FAQ](/docs/FAQ#why-does-foreground-backup-stop-when-i-navigate-away-from-the-app-shouldnt-it-transfer-the-job-to-background-backup).
-If background backup is enabled. The app will periodically check if there are any new photos or videos in the selected album(s) to be uploaded to the cloud. If there are, it will upload them to the cloud in the background.
+If background backup is enabled. The app will periodically check if there are any new photos or videos in the selected album(s) to be uploaded to the server. If there are, it will upload them to the cloud in the background.
:::info Note
@@ -30,7 +36,7 @@ If background backup is enabled. The app will periodically check if there are an
- You must enable **Background App Refresh** for the app to work in the background. You can enable it in the Settings app under General > Background App Refresh.
-
+
:::
diff --git a/docs/docs/features/command-line-interface.md b/docs/docs/features/command-line-interface.md
index d616f77e8f..f249d6809f 100644
--- a/docs/docs/features/command-line-interface.md
+++ b/docs/docs/features/command-line-interface.md
@@ -170,4 +170,4 @@ immich upload --include-hidden --recursive directory/
The API key can be obtained in the user setting panel on the web interface.
-![Obtain Api Key](./img/obtain-api-key.png)
+![Obtain Api Key](./img/obtain-api-key.webp)
diff --git a/docs/docs/features/facial-recognition.md b/docs/docs/features/facial-recognition.md
index de408829ed..32ca6c87ba 100644
--- a/docs/docs/features/facial-recognition.md
+++ b/docs/docs/features/facial-recognition.md
@@ -6,15 +6,15 @@ Immich recognizes faces in your photos and videos and groups them together into
The list of people is shown in the Explore page.
-
+
Upon clicking on a person, a list of assets that contain their face will be shown.
-
+
The asset detail view will also show the faces that are recognized in the asset.
-
+
## Actions
@@ -28,7 +28,7 @@ Additional actions you can do include:
It can be found from the app bar when you access the detail view of a person.
-
+
## How Face Detection Works
@@ -77,7 +77,7 @@ There are a few different models available; the default is typically considered
### Minimum detection score
-This setting affects whether a result from the face detecton model is filtered out as a false positive. It may seem tempting to set this low to detect more faces, but it can lead to false positives that are difficult to deal with and can harm facial recognition. It is strongly recommended not to go below 0.5 for this setting. Setting it to a very high number like 0.9 is also not recommended: the default is already biased toward precision, so a threshold that high leads to many undetected faces.
+This setting affects whether a result from the face detection model is filtered out as a false positive. It may seem tempting to set this low to detect more faces, but it can lead to false positives that are difficult to deal with and can harm facial recognition. It is strongly recommended not to go below 0.5 for this setting. Setting it to a very high number like 0.9 is also not recommended: the default is already biased toward precision, so a threshold that high leads to many undetected faces.
After changing this setting, it will only apply to new face detection jobs. To apply the new setting to all assets, you need to re-run face detection for all assets.
diff --git a/docs/docs/features/folder-view.md b/docs/docs/features/folder-view.md
new file mode 100644
index 0000000000..3534a22081
--- /dev/null
+++ b/docs/docs/features/folder-view.md
@@ -0,0 +1,17 @@
+# Folder View
+
+Folder view provides an additional view besides the timeline that is similar to a file explorer. It allows you to navigate through the folders and files in the library. This feature is handy for a highly curated and customized external library or a nicely configured storage template.
+
+You can enable this feature under [`Account Settings > Features > Folder View`](https://my.immich.app/user-settings?isOpen=feature+folders)
+
+## Enable folder view
+
+
+
+## Usage
+
+You can then navigate to the view from the sidebar to explore the folders and files in your library.
+
+
+
+
diff --git a/docs/docs/features/hardware-transcoding.md b/docs/docs/features/hardware-transcoding.md
index a561bafa80..18c7f6b298 100644
--- a/docs/docs/features/hardware-transcoding.md
+++ b/docs/docs/features/hardware-transcoding.md
@@ -1,4 +1,4 @@
-# Hardware Transcoding [Experimental]
+# Hardware Transcoding
This feature allows you to use a GPU to accelerate transcoding and reduce CPU load.
Note that hardware transcoding produces significantly larger videos than software transcoding with similar settings, typically with lower quality. Using slow presets and preferring more efficient codecs can narrow this gap.
diff --git a/docs/docs/features/img/background-app-refresh.png b/docs/docs/features/img/background-app-refresh.png
deleted file mode 100644
index c96f748f23..0000000000
Binary files a/docs/docs/features/img/background-app-refresh.png and /dev/null differ
diff --git a/docs/docs/features/img/background-app-refresh.webp b/docs/docs/features/img/background-app-refresh.webp
new file mode 100644
index 0000000000..d98e922d60
Binary files /dev/null and b/docs/docs/features/img/background-app-refresh.webp differ
diff --git a/docs/docs/features/img/background-foreground-backup.png b/docs/docs/features/img/background-foreground-backup.png
deleted file mode 100644
index 72a64aeba4..0000000000
Binary files a/docs/docs/features/img/background-foreground-backup.png and /dev/null differ
diff --git a/docs/docs/features/img/background-foreground-backup.webp b/docs/docs/features/img/background-foreground-backup.webp
new file mode 100644
index 0000000000..dddef137d2
Binary files /dev/null and b/docs/docs/features/img/background-foreground-backup.webp differ
diff --git a/docs/docs/features/img/backup-settings-access.webp b/docs/docs/features/img/backup-settings-access.webp
new file mode 100644
index 0000000000..06243af799
Binary files /dev/null and b/docs/docs/features/img/backup-settings-access.webp differ
diff --git a/docs/docs/features/img/facial-recognition-1.png b/docs/docs/features/img/facial-recognition-1.png
deleted file mode 100644
index c6b6000541..0000000000
Binary files a/docs/docs/features/img/facial-recognition-1.png and /dev/null differ
diff --git a/docs/docs/features/img/facial-recognition-1.webp b/docs/docs/features/img/facial-recognition-1.webp
new file mode 100644
index 0000000000..dd96393b06
Binary files /dev/null and b/docs/docs/features/img/facial-recognition-1.webp differ
diff --git a/docs/docs/features/img/facial-recognition-2.png b/docs/docs/features/img/facial-recognition-2.png
deleted file mode 100644
index f339380d30..0000000000
Binary files a/docs/docs/features/img/facial-recognition-2.png and /dev/null differ
diff --git a/docs/docs/features/img/facial-recognition-2.webp b/docs/docs/features/img/facial-recognition-2.webp
new file mode 100644
index 0000000000..3c910fd315
Binary files /dev/null and b/docs/docs/features/img/facial-recognition-2.webp differ
diff --git a/docs/docs/features/img/facial-recognition-3.png b/docs/docs/features/img/facial-recognition-3.png
deleted file mode 100644
index 73ab7dc894..0000000000
Binary files a/docs/docs/features/img/facial-recognition-3.png and /dev/null differ
diff --git a/docs/docs/features/img/facial-recognition-3.webp b/docs/docs/features/img/facial-recognition-3.webp
new file mode 100644
index 0000000000..fd0180ac66
Binary files /dev/null and b/docs/docs/features/img/facial-recognition-3.webp differ
diff --git a/docs/docs/features/img/facial-recognition-4.png b/docs/docs/features/img/facial-recognition-4.png
deleted file mode 100644
index 718ee6d450..0000000000
Binary files a/docs/docs/features/img/facial-recognition-4.png and /dev/null differ
diff --git a/docs/docs/features/img/facial-recognition-4.webp b/docs/docs/features/img/facial-recognition-4.webp
new file mode 100644
index 0000000000..07dd378e9e
Binary files /dev/null and b/docs/docs/features/img/facial-recognition-4.webp differ
diff --git a/docs/docs/features/img/folder-access.webp b/docs/docs/features/img/folder-access.webp
new file mode 100644
index 0000000000..aad9443559
Binary files /dev/null and b/docs/docs/features/img/folder-access.webp differ
diff --git a/docs/docs/features/img/folder-view-1.webp b/docs/docs/features/img/folder-view-1.webp
new file mode 100644
index 0000000000..be4a55873d
Binary files /dev/null and b/docs/docs/features/img/folder-view-1.webp differ
diff --git a/docs/docs/features/img/folder-view-enable.webp b/docs/docs/features/img/folder-view-enable.webp
new file mode 100644
index 0000000000..784ecffc73
Binary files /dev/null and b/docs/docs/features/img/folder-view-enable.webp differ
diff --git a/docs/docs/features/img/folder-view.png b/docs/docs/features/img/folder-view.png
deleted file mode 100644
index 8193b10ed9..0000000000
Binary files a/docs/docs/features/img/folder-view.png and /dev/null differ
diff --git a/docs/docs/features/img/library-custom-scan-interval.png b/docs/docs/features/img/library-custom-scan-interval.png
deleted file mode 100644
index 3d2e8d3dbd..0000000000
Binary files a/docs/docs/features/img/library-custom-scan-interval.png and /dev/null differ
diff --git a/docs/docs/features/img/library-custom-scan-interval.webp b/docs/docs/features/img/library-custom-scan-interval.webp
new file mode 100644
index 0000000000..d9861ada97
Binary files /dev/null and b/docs/docs/features/img/library-custom-scan-interval.webp differ
diff --git a/docs/docs/features/img/me.png b/docs/docs/features/img/me.png
deleted file mode 100644
index 8aa92ad385..0000000000
Binary files a/docs/docs/features/img/me.png and /dev/null differ
diff --git a/docs/docs/features/img/me.webp b/docs/docs/features/img/me.webp
new file mode 100644
index 0000000000..a177086ec2
Binary files /dev/null and b/docs/docs/features/img/me.webp differ
diff --git a/docs/docs/features/img/mobile-upload-open-photo.png b/docs/docs/features/img/mobile-upload-open-photo.png
deleted file mode 100644
index 4e51826fd7..0000000000
Binary files a/docs/docs/features/img/mobile-upload-open-photo.png and /dev/null differ
diff --git a/docs/docs/features/img/mobile-upload-open-photo.webp b/docs/docs/features/img/mobile-upload-open-photo.webp
new file mode 100644
index 0000000000..fafa4c9048
Binary files /dev/null and b/docs/docs/features/img/mobile-upload-open-photo.webp differ
diff --git a/docs/docs/features/img/mobile-upload-selected-photos.png b/docs/docs/features/img/mobile-upload-selected-photos.png
deleted file mode 100644
index 61360842c3..0000000000
Binary files a/docs/docs/features/img/mobile-upload-selected-photos.png and /dev/null differ
diff --git a/docs/docs/features/img/mobile-upload-selected-photos.webp b/docs/docs/features/img/mobile-upload-selected-photos.webp
new file mode 100644
index 0000000000..3c69d0c459
Binary files /dev/null and b/docs/docs/features/img/mobile-upload-selected-photos.webp differ
diff --git a/docs/docs/features/img/my-wife.png b/docs/docs/features/img/my-wife.png
deleted file mode 100644
index 45fda8d407..0000000000
Binary files a/docs/docs/features/img/my-wife.png and /dev/null differ
diff --git a/docs/docs/features/img/my-wife.webp b/docs/docs/features/img/my-wife.webp
new file mode 100644
index 0000000000..cac17c1a37
Binary files /dev/null and b/docs/docs/features/img/my-wife.webp differ
diff --git a/docs/docs/features/img/obtain-api-key.png b/docs/docs/features/img/obtain-api-key.png
deleted file mode 100644
index 9821e74814..0000000000
Binary files a/docs/docs/features/img/obtain-api-key.png and /dev/null differ
diff --git a/docs/docs/features/img/obtain-api-key.webp b/docs/docs/features/img/obtain-api-key.webp
new file mode 100644
index 0000000000..5706d39524
Binary files /dev/null and b/docs/docs/features/img/obtain-api-key.webp differ
diff --git a/docs/docs/features/img/partner-sharing-1.png b/docs/docs/features/img/partner-sharing-1.png
deleted file mode 100644
index 48785a353c..0000000000
Binary files a/docs/docs/features/img/partner-sharing-1.png and /dev/null differ
diff --git a/docs/docs/features/img/partner-sharing-1.webp b/docs/docs/features/img/partner-sharing-1.webp
new file mode 100644
index 0000000000..489cfa9a70
Binary files /dev/null and b/docs/docs/features/img/partner-sharing-1.webp differ
diff --git a/docs/docs/features/img/partner-sharing-2.png b/docs/docs/features/img/partner-sharing-2.png
deleted file mode 100644
index 086795b232..0000000000
Binary files a/docs/docs/features/img/partner-sharing-2.png and /dev/null differ
diff --git a/docs/docs/features/img/partner-sharing-2.webp b/docs/docs/features/img/partner-sharing-2.webp
new file mode 100644
index 0000000000..d1d9b4df5f
Binary files /dev/null and b/docs/docs/features/img/partner-sharing-2.webp differ
diff --git a/docs/docs/features/img/partner-sharing-3.png b/docs/docs/features/img/partner-sharing-3.png
deleted file mode 100644
index a8627cf859..0000000000
Binary files a/docs/docs/features/img/partner-sharing-3.png and /dev/null differ
diff --git a/docs/docs/features/img/partner-sharing-3.webp b/docs/docs/features/img/partner-sharing-3.webp
new file mode 100644
index 0000000000..47bb89d072
Binary files /dev/null and b/docs/docs/features/img/partner-sharing-3.webp differ
diff --git a/docs/docs/features/img/partner-sharing-4.png b/docs/docs/features/img/partner-sharing-4.png
deleted file mode 100644
index eca121ff78..0000000000
Binary files a/docs/docs/features/img/partner-sharing-4.png and /dev/null differ
diff --git a/docs/docs/features/img/partner-sharing-4.webp b/docs/docs/features/img/partner-sharing-4.webp
new file mode 100644
index 0000000000..4bdf9263e7
Binary files /dev/null and b/docs/docs/features/img/partner-sharing-4.webp differ
diff --git a/docs/docs/features/img/partner-sharing-5.png b/docs/docs/features/img/partner-sharing-5.png
deleted file mode 100644
index 3759e13d9a..0000000000
Binary files a/docs/docs/features/img/partner-sharing-5.png and /dev/null differ
diff --git a/docs/docs/features/img/partner-sharing-5.webp b/docs/docs/features/img/partner-sharing-5.webp
new file mode 100644
index 0000000000..80ab5da037
Binary files /dev/null and b/docs/docs/features/img/partner-sharing-5.webp differ
diff --git a/docs/docs/features/img/partner-sharing-6.png b/docs/docs/features/img/partner-sharing-6.png
deleted file mode 100644
index b9aee5143a..0000000000
Binary files a/docs/docs/features/img/partner-sharing-6.png and /dev/null differ
diff --git a/docs/docs/features/img/partner-sharing-6.webp b/docs/docs/features/img/partner-sharing-6.webp
new file mode 100644
index 0000000000..6b1f12d577
Binary files /dev/null and b/docs/docs/features/img/partner-sharing-6.webp differ
diff --git a/docs/docs/features/img/partner-sharing-7.png b/docs/docs/features/img/partner-sharing-7.png
deleted file mode 100644
index 4cd4be60b5..0000000000
Binary files a/docs/docs/features/img/partner-sharing-7.png and /dev/null differ
diff --git a/docs/docs/features/img/partner-sharing-7.webp b/docs/docs/features/img/partner-sharing-7.webp
new file mode 100644
index 0000000000..7a71107f4e
Binary files /dev/null and b/docs/docs/features/img/partner-sharing-7.webp differ
diff --git a/docs/docs/features/img/partner-sharing-8.webp b/docs/docs/features/img/partner-sharing-8.webp
new file mode 100644
index 0000000000..d3f37ecc26
Binary files /dev/null and b/docs/docs/features/img/partner-sharing-8.webp differ
diff --git a/docs/docs/features/img/public-shared-link-album.webp b/docs/docs/features/img/public-shared-link-album.webp
new file mode 100644
index 0000000000..1b68cb0869
Binary files /dev/null and b/docs/docs/features/img/public-shared-link-album.webp differ
diff --git a/docs/docs/features/img/public-shared-link-form.webp b/docs/docs/features/img/public-shared-link-form.webp
new file mode 100644
index 0000000000..1f2a791691
Binary files /dev/null and b/docs/docs/features/img/public-shared-link-form.webp differ
diff --git a/docs/docs/features/img/public-shared-link-individual.webp b/docs/docs/features/img/public-shared-link-individual.webp
new file mode 100644
index 0000000000..63ddb04668
Binary files /dev/null and b/docs/docs/features/img/public-shared-link-individual.webp differ
diff --git a/docs/docs/features/img/reverse-geocoding-mobile1.png b/docs/docs/features/img/reverse-geocoding-mobile1.png
deleted file mode 100644
index 54ffad3f96..0000000000
Binary files a/docs/docs/features/img/reverse-geocoding-mobile1.png and /dev/null differ
diff --git a/docs/docs/features/img/reverse-geocoding-mobile1.webp b/docs/docs/features/img/reverse-geocoding-mobile1.webp
new file mode 100644
index 0000000000..8df3a0dd6e
Binary files /dev/null and b/docs/docs/features/img/reverse-geocoding-mobile1.webp differ
diff --git a/docs/docs/features/img/reverse-geocoding-mobile2.png b/docs/docs/features/img/reverse-geocoding-mobile2.png
deleted file mode 100644
index f6858c50c4..0000000000
Binary files a/docs/docs/features/img/reverse-geocoding-mobile2.png and /dev/null differ
diff --git a/docs/docs/features/img/reverse-geocoding-mobile2.webp b/docs/docs/features/img/reverse-geocoding-mobile2.webp
new file mode 100644
index 0000000000..d0c4c3e39d
Binary files /dev/null and b/docs/docs/features/img/reverse-geocoding-mobile2.webp differ
diff --git a/docs/docs/features/img/reverse-geocoding-mobile3.webp b/docs/docs/features/img/reverse-geocoding-mobile3.webp
new file mode 100644
index 0000000000..542ac678ac
Binary files /dev/null and b/docs/docs/features/img/reverse-geocoding-mobile3.webp differ
diff --git a/docs/docs/features/img/search-ex-1.png b/docs/docs/features/img/search-ex-1.png
deleted file mode 100644
index fa943d31b1..0000000000
Binary files a/docs/docs/features/img/search-ex-1.png and /dev/null differ
diff --git a/docs/docs/features/img/search-ex-1.webp b/docs/docs/features/img/search-ex-1.webp
new file mode 100644
index 0000000000..f441fc4789
Binary files /dev/null and b/docs/docs/features/img/search-ex-1.webp differ
diff --git a/docs/docs/features/img/shared-album-mobile.webp b/docs/docs/features/img/shared-album-mobile.webp
new file mode 100644
index 0000000000..13c4ac24f9
Binary files /dev/null and b/docs/docs/features/img/shared-album-mobile.webp differ
diff --git a/docs/docs/features/img/shared-album-user-selection.webp b/docs/docs/features/img/shared-album-user-selection.webp
new file mode 100644
index 0000000000..5852233bd3
Binary files /dev/null and b/docs/docs/features/img/shared-album-user-selection.webp differ
diff --git a/docs/docs/features/img/shared-album.webp b/docs/docs/features/img/shared-album.webp
new file mode 100644
index 0000000000..dcd03c6b75
Binary files /dev/null and b/docs/docs/features/img/shared-album.webp differ
diff --git a/docs/docs/features/img/sidecar-jobs.png b/docs/docs/features/img/sidecar-jobs.png
deleted file mode 100644
index efa8bce82b..0000000000
Binary files a/docs/docs/features/img/sidecar-jobs.png and /dev/null differ
diff --git a/docs/docs/features/img/sidecar-jobs.webp b/docs/docs/features/img/sidecar-jobs.webp
new file mode 100644
index 0000000000..fd369b06cf
Binary files /dev/null and b/docs/docs/features/img/sidecar-jobs.webp differ
diff --git a/docs/docs/features/img/tag-creation.webp b/docs/docs/features/img/tag-creation.webp
new file mode 100644
index 0000000000..9fe5aaffd4
Binary files /dev/null and b/docs/docs/features/img/tag-creation.webp differ
diff --git a/docs/docs/features/img/tag-enable.webp b/docs/docs/features/img/tag-enable.webp
new file mode 100644
index 0000000000..523d5fc1ec
Binary files /dev/null and b/docs/docs/features/img/tag-enable.webp differ
diff --git a/docs/docs/features/img/tag-form.webp b/docs/docs/features/img/tag-form.webp
new file mode 100644
index 0000000000..c73c59dd6f
Binary files /dev/null and b/docs/docs/features/img/tag-form.webp differ
diff --git a/docs/docs/features/img/tag-view.webp b/docs/docs/features/img/tag-view.webp
new file mode 100644
index 0000000000..25f842b879
Binary files /dev/null and b/docs/docs/features/img/tag-view.webp differ
diff --git a/docs/docs/features/img/user-change-password.png b/docs/docs/features/img/user-change-password.png
deleted file mode 100644
index 66741168af..0000000000
Binary files a/docs/docs/features/img/user-change-password.png and /dev/null differ
diff --git a/docs/docs/features/img/user-change-password.webp b/docs/docs/features/img/user-change-password.webp
new file mode 100644
index 0000000000..a5d36ea2d9
Binary files /dev/null and b/docs/docs/features/img/user-change-password.webp differ
diff --git a/docs/docs/features/img/user-popup.png b/docs/docs/features/img/user-popup.png
deleted file mode 100644
index dc090f09c2..0000000000
Binary files a/docs/docs/features/img/user-popup.png and /dev/null differ
diff --git a/docs/docs/features/img/user-popup.webp b/docs/docs/features/img/user-popup.webp
new file mode 100644
index 0000000000..f3d3c08e5f
Binary files /dev/null and b/docs/docs/features/img/user-popup.webp differ
diff --git a/docs/docs/features/img/user-profile.png b/docs/docs/features/img/user-profile.png
deleted file mode 100644
index bf7bc78865..0000000000
Binary files a/docs/docs/features/img/user-profile.png and /dev/null differ
diff --git a/docs/docs/features/img/user-profile.webp b/docs/docs/features/img/user-profile.webp
new file mode 100644
index 0000000000..bba9499557
Binary files /dev/null and b/docs/docs/features/img/user-profile.webp differ
diff --git a/docs/docs/features/img/user-settings-1.webp b/docs/docs/features/img/user-settings-1.webp
new file mode 100644
index 0000000000..0bbaab1415
Binary files /dev/null and b/docs/docs/features/img/user-settings-1.webp differ
diff --git a/docs/docs/features/img/user-settings-2.webp b/docs/docs/features/img/user-settings-2.webp
new file mode 100644
index 0000000000..a806b71c60
Binary files /dev/null and b/docs/docs/features/img/user-settings-2.webp differ
diff --git a/docs/docs/features/img/user-settings-3.webp b/docs/docs/features/img/user-settings-3.webp
new file mode 100644
index 0000000000..8f866eca0a
Binary files /dev/null and b/docs/docs/features/img/user-settings-3.webp differ
diff --git a/docs/docs/features/img/xmp-sidecars.png b/docs/docs/features/img/xmp-sidecars.png
deleted file mode 100644
index c19697c62b..0000000000
Binary files a/docs/docs/features/img/xmp-sidecars.png and /dev/null differ
diff --git a/docs/docs/features/img/xmp-sidecars.webp b/docs/docs/features/img/xmp-sidecars.webp
new file mode 100644
index 0000000000..f00b32c730
Binary files /dev/null and b/docs/docs/features/img/xmp-sidecars.webp differ
diff --git a/docs/docs/features/libraries.md b/docs/docs/features/libraries.md
index 1d6028935f..6a1dba9eba 100644
--- a/docs/docs/features/libraries.md
+++ b/docs/docs/features/libraries.md
@@ -151,19 +151,13 @@ Within seconds, the assets from the old-pics and videos folders should show up i
### Folder view
-:::info
-This feature also exists for assets uploaded other than through external libraries.
-:::tip
-You can use the storage template migration feature for the best experience with uploaded assets in this view.
-:::
+Folder view provides an additional view besides the timeline that is similar to a file explorer. It allows you to navigate through the folders and files in the library. This feature is handy for a highly curated and customized external library or a nicely configured storage template.
-You can browse your photos and videos by folder like in a file explorer.
-
-Enable this feature from the Users Settings > Features > Folders.
+You can enable this feature under [`Account Settings > Features > Folder View`](https://my.immich.app/user-settings?isOpen=feature+folders)
The UI is currently only available for the web; mobile will come in a subsequent release.
-
+
### Set Custom Scan Interval
@@ -174,4 +168,4 @@ Only an admin can do this.
You can define a custom interval for the trigger external library rescan under Administration -> Settings -> Library.
You can set the scanning interval using the preset or cron format. For more information you can refer to [Crontab Guru](https://crontab.guru/).
-
+
diff --git a/docs/docs/features/ml-hardware-acceleration.md b/docs/docs/features/ml-hardware-acceleration.md
index ca1cb8edb1..fdf6149ed9 100644
--- a/docs/docs/features/ml-hardware-acceleration.md
+++ b/docs/docs/features/ml-hardware-acceleration.md
@@ -1,4 +1,4 @@
-# Hardware-Accelerated Machine Learning [Experimental]
+# Hardware-Accelerated Machine Learning
This feature allows you to use a GPU to accelerate machine learning tasks, such as Smart Search and Facial Recognition, while reducing CPU load.
As this is a new feature, it is still experimental and may not work on all systems.
diff --git a/docs/docs/features/mobile-app.mdx b/docs/docs/features/mobile-app.mdx
index 3b7f2bb9e2..423e66d9ee 100644
--- a/docs/docs/features/mobile-app.mdx
+++ b/docs/docs/features/mobile-app.mdx
@@ -45,12 +45,12 @@ This will enable a small cloud icon on the bottom right corner of the asset tile
Now make sure that the local album is selected in the backup screen (steps 1-2 above). You can find these albums listed in **Library -> On this device**. To selectively upload photos from these albums, simply select the local-only photos and tap on "Upload" button in the dynamic bottom menu.
diff --git a/docs/docs/features/monitoring.md b/docs/docs/features/monitoring.md
index 184394abd0..c7ce817e71 100644
--- a/docs/docs/features/monitoring.md
+++ b/docs/docs/features/monitoring.md
@@ -66,7 +66,9 @@ The provided file is just a starting point. There are a ton of ways to configure
After bringing down the containers with `docker compose down` and back up with `docker compose up -d`, a Prometheus instance will now collect metrics from the immich server and microservices containers. Note that we didn't need to expose any new ports for these containers - the communication is handled in the internal Docker network.
:::note
-To see exactly what metrics are made available, you can additionally add `8081:8081` to the server container's ports and `8082:8082` to the microservices container's ports. Visiting the `/metrics` endpoint for these services will show the same raw data that Prometheus collects.
+To see exactly what metrics are made available, you can additionally add `8081:8081` to the server container's ports and `8082:8082` to the microservices container's ports.
+Visiting the `/metrics` endpoint for these services will show the same raw data that Prometheus collects.
+To configure these ports see [`IMMICH_API_METRICS_PORT` & `IMMICH_MICROSERVICES_METRICS_PORT`](../install/environment-variables/#general).
:::
### Usage
diff --git a/docs/docs/features/partner-sharing.md b/docs/docs/features/partner-sharing.md
index c80ff384f3..1934344d01 100644
--- a/docs/docs/features/partner-sharing.md
+++ b/docs/docs/features/partner-sharing.md
@@ -1,57 +1,60 @@
# Partner Sharing
-:::tip Sharing specific assets
-For sharing a specific set of assets, you can use the shared album feature of Immich.
-:::
-
Immich allows you to share your library with other users. They can then view your library and download the assets. You can manage Partner Sharing from the [User Settings](docs/features/user-settings.md) page on the web.
-Partner Sharing includes:
+Partner sharing includes:
- Access to all non-archived and trashed photos and videos.
- Access to all metadata, including GPS information.
- Access to share assets via shared links, albums, etc.
-:::info
-Partner sharing is one-way. To view your partner's assets, they must also share them with you.
+Partner sharing does _not_ include:
+
+- Already existing partner albums
+- If an asset is favorited
+- People and facial recognition data
+
+:::note
+
+- Partner sharing is one-way. To view your partner's assets, they must also share them with you.
+- Partner sharing may result in displaying duplicate assets on the main timeline, as duplicates are only detected on a per-user basis.
+
:::
## Sharing with a Partner
-:::note Duplicates
-Partner sharing may result in displaying duplicate assets on the main timeline.
-:::
+
-
+
-
-
-
+
## Viewing Partner Assets
Access partner assets via the Sharing page.
-
+
## Timeline Integration
Partner shared photos can be displayed in the main timeline. This feature can be enabled on a per-partner basis and can be viewed and updated on both the web and mobile app.
-### Web:
+### Web
-Account Settings -> Sharing -> Show in timeline
+The option can be found at [`Account Settings > Partner Sharing > Show in timeline`](https://my.immich.app/user-settings?isOpen=partner-sharing)
-
+
-### Mobile App:
+### Mobile App
-From the partner’s view, on the top right corner of the app bar
+From the partner’s view, toggle the button
-
+
+
+
## Removing Access
-In order to remove a partner, you can go to User -> Account Settings -> Sharing and click on the X button.
+In order to remove a partner, you can go to `User > Account Settings > Sharing` and click on the X button.
-
+
diff --git a/docs/docs/features/reverse-geocoding.md b/docs/docs/features/reverse-geocoding.md
index 108a6ea1b1..399bdd9b48 100644
--- a/docs/docs/features/reverse-geocoding.md
+++ b/docs/docs/features/reverse-geocoding.md
@@ -1,6 +1,6 @@
# Reverse Geocoding
-Immich supports [Reverse Geocoding](https://en.wikipedia.org/wiki/Reverse_geocoding) using data from the [GeoNames](https://www.geonames.org/) geographical database.
+Immich supports local [Reverse Geocoding](https://en.wikipedia.org/wiki/Reverse_geocoding) using data from the [GeoNames](https://www.geonames.org/) geographical database. This data is loaded into the Postgres database on each minor version upgrade, allowing all queries to be run on your own server.
## Extraction
@@ -8,7 +8,8 @@ During Exif Extraction, assets with latitudes and longitudes are reverse geocode
## Usage
-Data from a reverse geocode is displayed in the image details, and used in [Smart Search](/docs/features/smart-search.md).
+Data from a reverse geocode is displayed in the image details, and used in [Smart Search](/docs/features/searching.md).
-
-
+
+
+
diff --git a/docs/docs/features/smart-search.md b/docs/docs/features/searching.md
similarity index 85%
rename from docs/docs/features/smart-search.md
rename to docs/docs/features/searching.md
index dcbed4f3b4..13547f6bac 100644
--- a/docs/docs/features/smart-search.md
+++ b/docs/docs/features/searching.md
@@ -1,11 +1,11 @@
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-# Smart Search
+# Searching
-Immich uses Postgres as its search database for both metadata and smart search.
+Immich uses Postgres as its search database for both metadata and contextual CLIP search.
-Smart search is powered by the [pgvecto.rs](https://github.com/tensorchord/pgvecto.rs) extension, utilizing machine learning models like [CLIP](https://openai.com/research/clip) to provide relevant search results. This allows for freeform searches without requiring specific keywords in the image or video metadata.
+Contextual CLIP search is powered by the [pgvecto.rs](https://github.com/tensorchord/pgvecto.rs) extension, utilizing machine learning models like [CLIP](https://openai.com/research/clip) to provide relevant search results. This allows for freeform searches without requiring specific keywords in the image or video metadata.
## Advanced Search Filters
@@ -39,7 +39,7 @@ Some search examples:
-
+
diff --git a/docs/docs/features/shared-albums.md b/docs/docs/features/shared-albums.md
deleted file mode 100644
index dcf884bc9b..0000000000
--- a/docs/docs/features/shared-albums.md
+++ /dev/null
@@ -1,252 +0,0 @@
-# Shared Albums & Assets
-
-## Shared Albums
-
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-Album sharing allows you to share assets with other users or with people from around the world via a link or invitation (for system users).
-
-When sharing shared albums, whats shared is:
-
-- The selected assets.
-- Metadata of the assets (Can be removed by sharing via link).
-
-## Shared Album Features
-
-- Download all assets as zip file (Web only).
- :::info Archive size limited.
- If the size of the album exceeds 4GB, the archive files will by default be divided into 4GB each. This can be changed on the user settings page.
- :::
-- Add a description to the album (Web only).
-- Slideshow view (Web only).
-- Add or remove photos to an album.
-- Comment on the album (for system users only).
-
-:::info
-When you create an album and it is not shared with anyone, it will be added to the Albums category.
-:::
-
-
-
-
-### Create a Shared Album
-
-1. Select the assets (Shift can be used for multiple selection).
-2. Click on the + on the top right -> add to a shared album.
-3. Name the new album and add the album.
-
-## Sharing Between Users
-
-### Shared Album Options
-
-- Add or remove users from the album.
- :::info remove user(s)
- When a user is removed from the album, the photos he uploaded will still appear in the album.
- :::
-- Enable or disable comments & likes.
-- Replace the album cover.
-- Display order (newest first / oldest first).
-
-To change these settings click on the 3 dots on the right -> options.
-
-:::info Known bug
-Currently it is not possible to remove people through the options.
-This is a [known problem and it has a temporary solution](https://github.com/immich-app/immich/issues/7954)
-:::
-
-## Share Album via Link
-
-:::info
-When wanting to share with people outside the home network via a link, Immich needs to be exposed to the world wide web, read more to [learn the ways to do this](/docs/guides/remote-access.md).
-:::
-
-1. Enter the shared album.
-2. Click on the share icon.
-3. Click on Create link.
-
-You can edit the link properties, options include;
-
-- **Description -** adding a description to the album (optional)
-- **Password -** adding a password to the album (optional), it is required to activate Require password.
-- **Show metadata -** whether to show metadata to whoever the link will be shared with (optional).
-- **Allow public user to download -** whether to allow whoever has the link to download all the images or a certain image (optional).
-- **Allow public user to upload -** whether to allow whoever has the link to upload assets to the album (optional).
- :::info
- Whoever has the link and have uploaded files cannot delete them.
- :::
-- **Expire after -** adding an expiration date to the link (optional).
-
-## Share Specific Assets
-
-A user can share specific assets without linking them to a specific album.
-In order to do this:
-
-1. Go to the timeline
-2. Select the assets (Shift can be used for multiple selection)
-3. Click the share button
-
-:::info
-Assets shared in this way will not be displayed in the Sharing category, in order to expect to remove or change the link settings of assets shared in this way, you must use the Manage generated links option.
-:::
-
-:::tip
-For temporary sharing, you can add an expiration date to assets shared this way.
-:::
-
-## Manage generated links
-
-A user can copy, delete and change the link settings he created for specific albums or assets, in order to do so;
-
-1. Go to the Immich home page.
-2. Select the Sharing category.
-3. On the top right, select Shared links.
-
-:::info remove links/users.
-When making a shared album private, the added photos will **still** be saved in the album.
-:::
-
-## Activity
-
-:::info
-Activity is not visible when sharing an album via external link.
-New users added to the album will be able to see previous activity.
-:::
-
-### Add a Comment or Like to the Album
-
-1. Enter the shared album.
-2. From the bottom right you can add comment(s) or delete old comments.
-3. To add a like (heart) to the album, click the heart button to the left of the "say something" button.
-
-#### Add a Comment or Like to a Specific Photo
-
-:::info Activity
-Activity of a comment or heart on a specific photo will appear in the general activity of the album.
-:::
-
-1. Enter the shared album.
-2. Enter the picture.
-3. From the bottom right you can add comment(s) or delete old comments.
-4. To add a like (heart) to the album, click the heart button to the left of the "say something" button.
-
-### Viewing Activity in the Album
-
-To view album activity on comments or likes
-
-1. Enter the shared album
-2. On the bottom right click on the message icon
-
-
-
-
-:::note mobile app
-Some of the features are not available on mobile, to understand what the full features of shared albums are, it is recommended to additionally read the explanation for the computer version.
-:::
-
-### Create a Shared Album
-
-1. Select the assets.
-2. Swipe up and click on Create new album.
-3. Name the new album and add the album.
-
-## Sharing Between Users
-
-#### Add or remove users from the album
-
-:::info remove user(s)
-When a user is removed from the album, the photos he uploaded will still appear in the album.
-:::
-
-After creating the album, click the Add User button and select the user you want to share with.
-
-### Shared Album Options
-
-- Enable or disable comments & likes.
-- Add or remove users
-
-To change these settings click on the 3 dots on the top right -> options.
-
-## Share Album via Link
-
-:::info
-When wanting to share with people outside the home network via a link, Immich needs to be exposed to the world wide web, read more to [learn the ways to do this](/docs/guides/remote-access.md).
-:::
-
-1. Enter the shared album.
-2. Click 3 dots on the top right.
-3. Click on Share.
-
-You can edit the link properties, options include;
-
-- **Description -** adding a description to the album (optional)
-- **Password -** adding a password to the album (optional)
-- **Show metadata -** whether to show metadata to whoever the link will be shared with (optional).
-- **Allow public user to download -** whether to allow whoever has the link to download all the images or a certain image (optional).
-- **Allow public user to upload -** whether to allow whoever has the link to upload assets to the album (optional).
- ::: info
- whoever has the link and have uploaded files cannot delete them.
- :::
-- **Expire after -** adding an expiration date to the link (optional).
-
-## Share Specific Assets
-
-A user can share specific assets without linking them to a specific album.
-in order to do so;
-
-1. Go to the timeline
-2. Select the assets.
-3. Click the share button
-
-:::info
-Assets shared in this way will not be displayed in the Sharing category, in order to expect to remove or change the link settings of assets shared in this way, you must use the Manage generated links option.
-:::
-
-:::tip
-For temporary sharing, you can add an expiration date to assets shared this way.
-:::
-
-## Manage generated links
-
-A user can copy, delete and change the link settings he created for specific albums or assets, in order to do so;
-
-1. Go to Sharing category.
-2. Select Shared links at the top right.
-
-:::info remove links/users.
-When making a shared album private, the added photos will **still** be saved in the album.
-:::
-
-## Activity
-
-:::info
-Activity is not visible when sharing an album via external link.
-New users added to the album will be able to see previous activity.
-:::
-
-### Add a Comment or Like to the Album
-
-1. Enter the shared album.
-2. From the top right you can add comment(s) or delete old comments.
-3. To add a like (heart) to the album, click the heart button to the right of the "say something" button.
-
-#### Add a Comment or Like to a Specific Photo
-
-:::info Activity
-Activity of a comment or heart on a specific photo will appear in the general activity of the album.
-:::
-
-1. Enter the shared album.
-2. Enter the picture.
-3. From the top right you can add comment(s) or delete old comments.
-4. To add a like (heart) to the album, click the heart button to the right of the "say something" button.
-
-### Viewing Activity in the Album
-
-To view album activity on comments or likes
-
-1. Enter the shared album
-2. On the top right click on the message icon
-
-
-
diff --git a/docs/docs/features/sharing.md b/docs/docs/features/sharing.md
new file mode 100644
index 0000000000..ff0a03beea
--- /dev/null
+++ b/docs/docs/features/sharing.md
@@ -0,0 +1,51 @@
+# Sharing
+
+Immich supports local sharing, with users on the same Immich instance, and public sharing via public links.
+
+## Local sharing
+
+### Albums
+
+Albums can be shared between users on the same Immich instance. The shared users can view and add their own photos and videos to the shared album.
+
+After creating an album, you can access the sharing options by clicking on the share icon. When sharing an album, you can select the users you want to share the album with and assign them permissions either as editors (read-write) or viewers (read-only).
+
+#### Web
+
+
+
+
+
+#### Mobile App
+
+
+
+### Partners
+
+Partner sharing allows you to share your _entire_ library with other users of your choice. They can then view your library and download the assets.
+
+You can read this guide to learn more about [partner sharing](/docs/features/partner-sharing).
+
+## Public sharing
+
+You can create a public link to share a group of photos or videos, or an album, with anyone. The public link can be shared via email, social media, or any other method. There are a varierity of options to customize the public link, such as setting an expiration date, password protection, and more. Public shared link is handy when you want to share a group of photos or videos with someone who doesn't have an Immich account and allow the shared user to upload their photos or videos to your account.
+
+The public shared link is generated with a random URL, which acts as as a secret to avoid the link being guessed by unwanted parties, for instance.
+
+```
+https://immich.yourdomain.com/share/JUckRMxlgpo7F9BpyqGk_cZEwDzaU_U5LU5_oNZp1ETIBa9dpQ0b5ghNm_22QVJfn3k
+```
+
+### Creating a public share link
+
+You can create a public share link by selecting the photos or videos, or from the share icon on an album.
+
+
+
+
+
+### Customizing the public share link
+
+You can customize the public share link by setting an expiration date, password protection, allow what actions can be performed on the shared assets, and more.
+
+
diff --git a/docs/docs/features/supported-formats.md b/docs/docs/features/supported-formats.md
index ce3736db62..bb6d00a100 100644
--- a/docs/docs/features/supported-formats.md
+++ b/docs/docs/features/supported-formats.md
@@ -1,4 +1,4 @@
-# Supported formats
+# Supported Media Formats
Immich supports a number of image and video formats, the most common of which are outlined here.
@@ -15,9 +15,9 @@ For the full list, refer to the [Immich source code](https://github.com/immich-a
| `GIF` | `.gif` | :white_check_mark: | |
| `HEIC` | `.heic` | :white_check_mark: | |
| `HEIF` | `.heif` | :white_check_mark: | |
-| `JPEG` | `.jpeg` `.jpg` `.jpe` `.insp` | :white_check_mark: | |
+| `JPEG` | `.webp` `.jpg` `.jpe` `.insp` | :white_check_mark: | |
| `JPEG XL` | `.jxl` | :white_check_mark: | |
-| `PNG` | `.png` | :white_check_mark: | |
+| `PNG` | `.webp` | :white_check_mark: | |
| `PSD` | `.psd` | :white_check_mark: | Adobe Photoshop |
| `RAW` | `.raw` | :white_check_mark: | |
| `RW2` | `.rw2` | :white_check_mark: | |
@@ -34,7 +34,7 @@ For the full list, refer to the [Immich source code](https://github.com/immich-a
| `FLV` | `.flv` | :white_check_mark: | |
| `M4V` | `.m4v` | :white_check_mark: | |
| `MATROSKA` | `.mkv` | :white_check_mark: | |
-| `MP2T` | `.mts` `.m2ts` | :white_check_mark: | |
+| `MP2T` | `.mts` `.m2ts` `.m2t` | :white_check_mark: | |
| `MP4` | `.mp4` `.insv` | :white_check_mark: | |
| `MPEG` | `.mpg` `.mpe` `.mpeg` | :white_check_mark: | |
| `QUICKTIME` | `.mov` | :white_check_mark: | |
diff --git a/docs/docs/features/tags.md b/docs/docs/features/tags.md
new file mode 100644
index 0000000000..ca663e9edd
--- /dev/null
+++ b/docs/docs/features/tags.md
@@ -0,0 +1,25 @@
+# Tags
+
+Immich supports hierarchical tags, with the ability to read existing tags from the `TagList` and `Keywords` EXIF properties. Any changes to tags made through Immich are also written back to a [sidecar](/docs/features/xmp-sidecars) file. You can re-run the metadata extraction jobs for all assets to import your existing tags.
+
+## Enable tags feature
+
+You can enable this feature from the [`Account Settings > Features > Tags`](https://my.immich.app/user-settings?isOpen=feature+tags).
+
+
+
+## Creating tags
+
+Tags can be created and added to a photo or a video by clicking on the `+ Add` button at the bottom of the info panel.
+
+
+
+The tag prompt will appear, and you find and select a tag, or type in a new tag to create it.
+
+
+
+## Viewing tags
+
+You can navigate to the `Tags` view from the side navigation bar or by clicking on the tag in the info panel.
+
+
diff --git a/docs/docs/features/user-settings.md b/docs/docs/features/user-settings.md
index 77c94280ad..a2d0308541 100644
--- a/docs/docs/features/user-settings.md
+++ b/docs/docs/features/user-settings.md
@@ -1,21 +1,21 @@
# User Settings
-![User Modal](./img/user-popup.png)
+Immich gives each user the ability to manage their own settings. This includes being able to update their profile, toggle certain feature, generate API keys, manage the logged in devices, a view of account usage statistics, and more.
-## User Profile
+
-View your User ID and email, and update your first and last name.
+You can access the [user settings](https://my.immich.app/user-settings) by clicking on the user icon on the top right corner of the screen and selecting the `Account Settings` option.
-![User Profile](./img/user-profile.png)
+
-## Change Password
+
-Users can change their own passwords.
+
-![Change Password](./img/user-change-password.png)
+---
:::tip Reset Password
-The admin can reset a password through the [User Management](/docs/administration/user-management.mdx) screen.
+The admin can reset a user password through the [User Management](/docs/administration/user-management.mdx) screen.
:::
:::tip Reset Admin Password
diff --git a/docs/docs/features/xmp-sidecars.md b/docs/docs/features/xmp-sidecars.md
index 371547aa73..98ce8782e6 100644
--- a/docs/docs/features/xmp-sidecars.md
+++ b/docs/docs/features/xmp-sidecars.md
@@ -2,7 +2,7 @@
Immich can ingest XMP sidecars on file upload (via the CLI) as well as detect new sidecars that are placed in the filesystem for existing images.
-
+
XMP sidecars are external XML files that contain metadata related to media files. Many applications read and write these files either exclusively or in addition to the metadata written to image files. They can be a powerful tool for editing and storing metadata of a media file without modifying the media file itself. When Immich receives or detects an XMP sidecar for a media file, it will attempt to extract the metadata from both the sidecar as well as the media file. It will prioritize the metadata for fields in the sidecar but will fall back and use the metadata in the media file if necessary.
@@ -10,4 +10,4 @@ When importing files via the CLI bulk uploader or parsing photo metadata for ext
There are 2 administrator jobs associated with sidecar files: `SYNC` and `DISCOVER`. The sync job will re-scan all media with existing sidecar files and queue them for a metadata refresh. This is a great use case when third-party applications are used to modify the metadata of media. The discover job will attempt to scan the filesystem for new sidecar files for all media that does not currently have a sidecar file associated with it.
-
+
diff --git a/docs/docs/guides/custom-map-styles.md b/docs/docs/guides/custom-map-styles.md
index 9da9a34822..3f52937432 100644
--- a/docs/docs/guides/custom-map-styles.md
+++ b/docs/docs/guides/custom-map-styles.md
@@ -22,6 +22,6 @@ Customizing the map style can be done easily using Maptiler, if you do not want
2. Once logged in, you can either create a brand new map by clicking on **New Map**, selecting a starter map, and then clicking **Customize**, OR by selecting a **Standard Map** and customizing it from there.
3. The **editor** interface is self-explanatory. You can change colors, remove visible layers, or add optional layers (e.g., administrative, topo, hydro, etc.) in the composer.
4. Once you have your map composed, click on **Save** at the top right. Give it a unique name to save it to your account.
-5. Next, **Publish** your style using the **Publish** button at the top right. This will deploy it to production, which means it is able to be exposed over the Internet. Maptiler will present an interactive side-by-side map with the original and your changes prior to publication. ![Maptiler Publication Settings](img/immich_map_styles_publish.png)
+5. Next, **Publish** your style using the **Publish** button at the top right. This will deploy it to production, which means it is able to be exposed over the Internet. Maptiler will present an interactive side-by-side map with the original and your changes prior to publication. ![Maptiler Publication Settings](img/immich_map_styles_publish.webp)
6. Maptiler will warn you that changing the map will change it across all apps using the map. Since no apps are using the map yet, this is okay.
7. Clicking on the name of your new map at the top left will bring you to the item's **details** page. From here, copy the link to the JSON style under **Use vector style**. This link will automatically contain your personal API key to Maptiler.
diff --git a/docs/docs/guides/database-gui.md b/docs/docs/guides/database-gui.md
index e0d6da1cbf..67b658f838 100644
--- a/docs/docs/guides/database-gui.md
+++ b/docs/docs/guides/database-gui.md
@@ -36,7 +36,7 @@ Open [localhost:8888](http://localhost:8888) and login with the default credenti
Right click on `Servers` and click on `Register >> Server..` then enter the values below in the `Connection` tab.
-
+
:::note
The parameters used here match those specified in the example `.env` file. If you have changed your `.env` file, you'll need to adjust accordingly.
diff --git a/docs/docs/guides/external-library.md b/docs/docs/guides/external-library.md
index b44949818c..2ac917f930 100644
--- a/docs/docs/guides/external-library.md
+++ b/docs/docs/guides/external-library.md
@@ -1,6 +1,6 @@
# External Library
-This guide walks you through adding an [External Library](/docs/features/libraries#external-libraries).
+This guide walks you through adding an [External Library](/docs/features/libraries).
This guide assumes you are running Immich in Docker and that the files you wish to access are stored
in a directory on the same machine.
@@ -24,40 +24,40 @@ Restart Immich by running `docker compose up -d`.
In the Immich web UI:
- click the **Administration** link in the upper right corner.
-
+
- Select the **External Libraries** tab
-
+
- Click the **Create Library** button
-
+
- In the dialog, select which user should own the new library
-
+
- Click the three-dots menu and select **Edit Import Paths**
-
+
- Click Add path
-
+
- Enter **/usr/src/app/external** as the path and click Add
-
+
- Save the new path
-
+
- Click the three-dots menu and select **Scan New Library Files**
-
+
# Confirm stuff is happening
- Click **Administration**
-
+
- Select the **Jobs** tab
-
+
- You should see non-zero Active jobs for
Library, Generate Thumbnails, and Extract Metadata.
-
+
diff --git a/docs/docs/guides/img/add-path-button.png b/docs/docs/guides/img/add-path-button.png
deleted file mode 100644
index ba4ef758fb..0000000000
Binary files a/docs/docs/guides/img/add-path-button.png and /dev/null differ
diff --git a/docs/docs/guides/img/add-path-button.webp b/docs/docs/guides/img/add-path-button.webp
new file mode 100644
index 0000000000..014999069f
Binary files /dev/null and b/docs/docs/guides/img/add-path-button.webp differ
diff --git a/docs/docs/guides/img/add-path-field.png b/docs/docs/guides/img/add-path-field.png
deleted file mode 100644
index d11970fcff..0000000000
Binary files a/docs/docs/guides/img/add-path-field.png and /dev/null differ
diff --git a/docs/docs/guides/img/add-path-field.webp b/docs/docs/guides/img/add-path-field.webp
new file mode 100644
index 0000000000..6ac5a33e30
Binary files /dev/null and b/docs/docs/guides/img/add-path-field.webp differ
diff --git a/docs/docs/guides/img/administration-link.png b/docs/docs/guides/img/administration-link.png
deleted file mode 100644
index 09cdea3429..0000000000
Binary files a/docs/docs/guides/img/administration-link.png and /dev/null differ
diff --git a/docs/docs/guides/img/administration-link.webp b/docs/docs/guides/img/administration-link.webp
new file mode 100644
index 0000000000..cbed69782a
Binary files /dev/null and b/docs/docs/guides/img/administration-link.webp differ
diff --git a/docs/docs/guides/img/create-external-library.png b/docs/docs/guides/img/create-external-library.png
deleted file mode 100644
index 7ccd53aed4..0000000000
Binary files a/docs/docs/guides/img/create-external-library.png and /dev/null differ
diff --git a/docs/docs/guides/img/create-external-library.webp b/docs/docs/guides/img/create-external-library.webp
new file mode 100644
index 0000000000..595d699829
Binary files /dev/null and b/docs/docs/guides/img/create-external-library.webp differ
diff --git a/docs/docs/guides/img/edit-import-paths.png b/docs/docs/guides/img/edit-import-paths.png
deleted file mode 100644
index c38419e927..0000000000
Binary files a/docs/docs/guides/img/edit-import-paths.png and /dev/null differ
diff --git a/docs/docs/guides/img/edit-import-paths.webp b/docs/docs/guides/img/edit-import-paths.webp
new file mode 100644
index 0000000000..70cc1cf7cf
Binary files /dev/null and b/docs/docs/guides/img/edit-import-paths.webp differ
diff --git a/docs/docs/guides/img/email-settings.png b/docs/docs/guides/img/email-settings.png
deleted file mode 100644
index a0d7135426..0000000000
Binary files a/docs/docs/guides/img/email-settings.png and /dev/null differ
diff --git a/docs/docs/guides/img/email-settings.webp b/docs/docs/guides/img/email-settings.webp
new file mode 100644
index 0000000000..6911d6efc3
Binary files /dev/null and b/docs/docs/guides/img/email-settings.webp differ
diff --git a/docs/docs/guides/img/external-libraries.png b/docs/docs/guides/img/external-libraries.png
deleted file mode 100644
index 0d0f5d2372..0000000000
Binary files a/docs/docs/guides/img/external-libraries.png and /dev/null differ
diff --git a/docs/docs/guides/img/external-libraries.webp b/docs/docs/guides/img/external-libraries.webp
new file mode 100644
index 0000000000..b257ac3def
Binary files /dev/null and b/docs/docs/guides/img/external-libraries.webp differ
diff --git a/docs/docs/guides/img/immich_map_styles_publish.png b/docs/docs/guides/img/immich_map_styles_publish.png
deleted file mode 100644
index 2ca4483709..0000000000
Binary files a/docs/docs/guides/img/immich_map_styles_publish.png and /dev/null differ
diff --git a/docs/docs/guides/img/immich_map_styles_publish.webp b/docs/docs/guides/img/immich_map_styles_publish.webp
new file mode 100644
index 0000000000..52d4cd175f
Binary files /dev/null and b/docs/docs/guides/img/immich_map_styles_publish.webp differ
diff --git a/docs/docs/guides/img/job-status.png b/docs/docs/guides/img/job-status.png
deleted file mode 100644
index 396feaef4f..0000000000
Binary files a/docs/docs/guides/img/job-status.png and /dev/null differ
diff --git a/docs/docs/guides/img/job-status.webp b/docs/docs/guides/img/job-status.webp
new file mode 100644
index 0000000000..2ec8709859
Binary files /dev/null and b/docs/docs/guides/img/job-status.webp differ
diff --git a/docs/docs/guides/img/jobs-tab.png b/docs/docs/guides/img/jobs-tab.png
deleted file mode 100644
index 70d2967983..0000000000
Binary files a/docs/docs/guides/img/jobs-tab.png and /dev/null differ
diff --git a/docs/docs/guides/img/jobs-tab.webp b/docs/docs/guides/img/jobs-tab.webp
new file mode 100644
index 0000000000..b8f45494b9
Binary files /dev/null and b/docs/docs/guides/img/jobs-tab.webp differ
diff --git a/docs/docs/guides/img/libraries-dropdown.png b/docs/docs/guides/img/libraries-dropdown.png
deleted file mode 100644
index 5ccb66aa8d..0000000000
Binary files a/docs/docs/guides/img/libraries-dropdown.png and /dev/null differ
diff --git a/docs/docs/guides/img/libraries-dropdown.webp b/docs/docs/guides/img/libraries-dropdown.webp
new file mode 100644
index 0000000000..fe9d1fcf47
Binary files /dev/null and b/docs/docs/guides/img/libraries-dropdown.webp differ
diff --git a/docs/docs/guides/img/library-owner.png b/docs/docs/guides/img/library-owner.png
deleted file mode 100644
index de630b51b7..0000000000
Binary files a/docs/docs/guides/img/library-owner.png and /dev/null differ
diff --git a/docs/docs/guides/img/library-owner.webp b/docs/docs/guides/img/library-owner.webp
new file mode 100644
index 0000000000..f92342f205
Binary files /dev/null and b/docs/docs/guides/img/library-owner.webp differ
diff --git a/docs/docs/guides/img/path-save.png b/docs/docs/guides/img/path-save.png
deleted file mode 100644
index ffce66eb41..0000000000
Binary files a/docs/docs/guides/img/path-save.png and /dev/null differ
diff --git a/docs/docs/guides/img/path-save.webp b/docs/docs/guides/img/path-save.webp
new file mode 100644
index 0000000000..df0256a3df
Binary files /dev/null and b/docs/docs/guides/img/path-save.webp differ
diff --git a/docs/docs/guides/img/pgadmin-add-new-server.png b/docs/docs/guides/img/pgadmin-add-new-server.png
deleted file mode 100644
index 978602e04d..0000000000
Binary files a/docs/docs/guides/img/pgadmin-add-new-server.png and /dev/null differ
diff --git a/docs/docs/guides/img/pgadmin-add-new-server.webp b/docs/docs/guides/img/pgadmin-add-new-server.webp
new file mode 100644
index 0000000000..25aa33478a
Binary files /dev/null and b/docs/docs/guides/img/pgadmin-add-new-server.webp differ
diff --git a/docs/docs/guides/img/scan-new-library-files.png b/docs/docs/guides/img/scan-new-library-files.png
deleted file mode 100644
index 1ff2f75114..0000000000
Binary files a/docs/docs/guides/img/scan-new-library-files.png and /dev/null differ
diff --git a/docs/docs/guides/img/scan-new-library-files.webp b/docs/docs/guides/img/scan-new-library-files.webp
new file mode 100644
index 0000000000..815cc594cd
Binary files /dev/null and b/docs/docs/guides/img/scan-new-library-files.webp differ
diff --git a/docs/docs/guides/img/user-avatar.png b/docs/docs/guides/img/user-avatar.png
deleted file mode 100644
index 4fed1a7d2e..0000000000
Binary files a/docs/docs/guides/img/user-avatar.png and /dev/null differ
diff --git a/docs/docs/guides/img/user-avatar.webp b/docs/docs/guides/img/user-avatar.webp
new file mode 100644
index 0000000000..78a8fd9270
Binary files /dev/null and b/docs/docs/guides/img/user-avatar.webp differ
diff --git a/docs/docs/guides/smtp-gmail.md b/docs/docs/guides/smtp-gmail.md
index de015dfe47..58c598c308 100644
--- a/docs/docs/guides/smtp-gmail.md
+++ b/docs/docs/guides/smtp-gmail.md
@@ -17,4 +17,4 @@ At the end of creating your app passwords, a password will be displayed; save it
Entering your credential in Immich's email notification settings at `Administration -> Settings -> Notification Settings`
-
+
diff --git a/docs/docs/install/config-file.md b/docs/docs/install/config-file.md
index d3d7133254..f5d2680658 100644
--- a/docs/docs/install/config-file.md
+++ b/docs/docs/install/config-file.md
@@ -83,7 +83,7 @@ The default configuration looks like this:
},
"machineLearning": {
"enabled": true,
- "url": ["http://immich-machine-learning:3003"],
+ "urls": ["http://immich-machine-learning:3003"],
"clip": {
"enabled": true,
"modelName": "ViT-B-32__openai"
diff --git a/docs/docs/install/docker-compose.mdx b/docs/docs/install/docker-compose.mdx
index e3d5dd6864..3593cf19ee 100644
--- a/docs/docs/install/docker-compose.mdx
+++ b/docs/docs/install/docker-compose.mdx
@@ -30,27 +30,11 @@ wget -O .env https://github.com/immich-app/immich/releases/latest/download/examp
You can alternatively download these two files from your browser and move them to the directory that you created, in which case ensure that you rename `example.env` to `.env`.
-:::info Optional Features
-If you intend to use hardware acceleration for transcoding or machine learning (ML), you can download now the config files you'll need, in the same way:
-
-```bash title="(Optional) Get hwaccel.transcoding.yml file"
-wget -O hwaccel.transcoding.yml https://github.com/immich-app/immich/releases/latest/download/hwaccel.transcoding.yml
-```
-
-```bash title="(Optional) Get hwaccel.ml.yml file"
-wget -O hwaccel.ml.yml https://github.com/immich-app/immich/releases/latest/download/hwaccel.ml.yml
-```
-
-:::
-
## Step 2 - Populate the .env file with custom values
-
-
- Example .env content
-
- {ExampleEnv}
-
+
+ {ExampleEnv}
+
- Populate `UPLOAD_LOCATION` with your preferred location for storing backup assets. It should be a new directory on the server with enough free space.
- Consider changing `DB_PASSWORD` to a custom value. Postgres is not publically exposed, so this password is only used for local authentication.
@@ -58,22 +42,16 @@ wget -O hwaccel.ml.yml https://github.com/immich-app/immich/releases/latest/down
- Set your timezone by uncommenting the `TZ=` line.
- Populate custom database information if necessary.
-:::info Optional Features
-You can edit `docker-compose.yml` to add external libraries or enable hardware acceleration now by following [their guides](#setting-up-optional-features).
-:::
-
## Step 3 - Start the containers
-From the directory you created in Step 1 (which should now contain your customized `docker-compose.yml` and `.env` files), run this command:
+From the directory you created in Step 1 (which should now contain your customized `docker-compose.yml` and `.env` files), run the following command to start Immich as a background service:
-```bash title="Start the containers using docker compose command"
+```bash title="Start the containers"
docker compose up -d
```
-This starts immich as a background service (per the `-d` flag), ensuring it restarts after system reboots or crashes (per the `restart` fields in `docker-compose.yml`).
-
:::info Docker version
-If you get an error `unknown shorthand flag: 'd' in -d`, you are probably running the wrong Docker version. (This happens, for example, with the docker.io package in Ubuntu 22.04.3 LTS.) You can correct the problem by following the complete [Docker Engine install](https://docs.docker.com/engine/install/) procedure for your distribution, crucially the "Uninstall old versions" and "Install using the apt/rpm repository" sections. These replace the distro's Docker packages with Docker's official ones.
+If you get an error such as `unknown shorthand flag: 'd' in -d` or `open : permission denied`, you are probably running the wrong Docker version. (This happens, for example, with the docker.io package in Ubuntu 22.04.3 LTS.) You can correct the problem by following the complete [Docker Engine install](https://docs.docker.com/engine/install/) procedure for your distribution, crucially the "Uninstall old versions" and "Install using the apt/rpm repository" sections. These replace the distro's Docker packages with Docker's official ones.
Note that the correct command really is `docker compose`, not `docker-compose`. If you try the latter on vanilla Ubuntu 22.04, it will fail in a different way:
@@ -89,28 +67,22 @@ See the previous paragraph about installing from the official Docker repository.
If you get an error `can't set healthcheck.start_interval as feature require Docker Engine v25 or later`, it helps to comment out the line for `start_interval` in the `database` section of the `docker-compose.yml` file.
:::
-:::tip
-For more information on how to use the application, please refer to the [Post Installation](/docs/install/post-install.mdx) guide.
-:::
-
-:::note GitHub Authentication
-Downloading container images might require you to authenticate to the GitHub Container Registry ([steps here][container-auth]).
-:::
-
## Next Steps
-### Setting Up Optional Features
+Read the [Post Installation](/docs/install/post-install.mdx) steps or setup optional features below.
-You can set up the following now:
+### Setting up optional features
-- [External Libraries](/docs/features/libraries.md)
-- [Hardware Transcoding](/docs/features/hardware-transcoding.md)
-- [Hardware-Accelerated Machine Learning](/docs/features/ml-hardware-acceleration.md)
+- [External Libraries](/docs/features/libraries.md): Adding your existing photo library to Immich
+- [Hardware Transcoding](/docs/features/hardware-transcoding.md): Speeding up video transcoding
+- [Hardware-Accelerated Machine Learning](/docs/features/ml-hardware-acceleration.md): Speeding up various machine learning tasks in Immich
### Upgrading
-:::danger Breaking Changes
-It is important to follow breaking updates to avoid problems. You can see versions that had breaking changes [here][breaking].
+:::danger Read the release notes
+Immich is currently under heavy development, which means you can expect [breaking changes][breaking] and bugs. Therefore, we recommend reading the release notes prior to updating and to take special care when using automated tools like [Watchtower][watchtower].
+
+You can see versions that had breaking changes [here][breaking].
:::
If `IMMICH_VERSION` is set, it will need to be updated to the latest or desired version.
@@ -123,14 +95,10 @@ docker compose pull && docker compose up -d
To clean up disk space, the old version's obsolete container images can be deleted with the following command:
-```bash title="Delete all obsolete container images"
+```bash title="Clean up unused Docker images"
docker image prune
```
-:::caution Automatic Updates
-Immich is currently under heavy development, which means you can expect [breaking changes][breaking] and bugs. Therefore, we recommend reading the release notes prior to updating and to take special care when using automated tools like [Watchtower][watchtower].
-:::
-
[compose-file]: https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
[env-file]: https://github.com/immich-app/immich/releases/latest/download/example.env
[watchtower]: https://containrrr.dev/watchtower/
diff --git a/docs/docs/install/img/dot-env.png b/docs/docs/install/img/dot-env.png
deleted file mode 100644
index e47310f36d..0000000000
Binary files a/docs/docs/install/img/dot-env.png and /dev/null differ
diff --git a/docs/docs/install/img/dot-env.webp b/docs/docs/install/img/dot-env.webp
new file mode 100644
index 0000000000..d8e34358a0
Binary files /dev/null and b/docs/docs/install/img/dot-env.webp differ
diff --git a/docs/docs/install/img/env-1.png b/docs/docs/install/img/env-1.png
deleted file mode 100644
index aef15af84b..0000000000
Binary files a/docs/docs/install/img/env-1.png and /dev/null differ
diff --git a/docs/docs/install/img/env-1.webp b/docs/docs/install/img/env-1.webp
new file mode 100644
index 0000000000..bd2035136f
Binary files /dev/null and b/docs/docs/install/img/env-1.webp differ
diff --git a/docs/docs/install/img/env-2.png b/docs/docs/install/img/env-2.png
deleted file mode 100644
index ba6b6027a3..0000000000
Binary files a/docs/docs/install/img/env-2.png and /dev/null differ
diff --git a/docs/docs/install/img/env-2.webp b/docs/docs/install/img/env-2.webp
new file mode 100644
index 0000000000..86bbff0629
Binary files /dev/null and b/docs/docs/install/img/env-2.webp differ
diff --git a/docs/docs/install/img/truenas01.png b/docs/docs/install/img/truenas01.png
deleted file mode 100644
index e648ab3734..0000000000
Binary files a/docs/docs/install/img/truenas01.png and /dev/null differ
diff --git a/docs/docs/install/img/truenas01.webp b/docs/docs/install/img/truenas01.webp
new file mode 100644
index 0000000000..f299ef8e14
Binary files /dev/null and b/docs/docs/install/img/truenas01.webp differ
diff --git a/docs/docs/install/img/truenas02.png b/docs/docs/install/img/truenas02.png
deleted file mode 100644
index 66f0dec7fa..0000000000
Binary files a/docs/docs/install/img/truenas02.png and /dev/null differ
diff --git a/docs/docs/install/img/truenas02.webp b/docs/docs/install/img/truenas02.webp
new file mode 100644
index 0000000000..cbcac69082
Binary files /dev/null and b/docs/docs/install/img/truenas02.webp differ
diff --git a/docs/docs/install/img/truenas03.png b/docs/docs/install/img/truenas03.png
deleted file mode 100644
index d9970f5aeb..0000000000
Binary files a/docs/docs/install/img/truenas03.png and /dev/null differ
diff --git a/docs/docs/install/img/truenas03.webp b/docs/docs/install/img/truenas03.webp
new file mode 100644
index 0000000000..2870fb90b6
Binary files /dev/null and b/docs/docs/install/img/truenas03.webp differ
diff --git a/docs/docs/install/img/truenas04.png b/docs/docs/install/img/truenas04.png
deleted file mode 100644
index 45fa87e5e5..0000000000
Binary files a/docs/docs/install/img/truenas04.png and /dev/null differ
diff --git a/docs/docs/install/img/truenas04.webp b/docs/docs/install/img/truenas04.webp
new file mode 100644
index 0000000000..a44a2b33d6
Binary files /dev/null and b/docs/docs/install/img/truenas04.webp differ
diff --git a/docs/docs/install/img/truenas05.png b/docs/docs/install/img/truenas05.png
deleted file mode 100644
index 0f9d6a835a..0000000000
Binary files a/docs/docs/install/img/truenas05.png and /dev/null differ
diff --git a/docs/docs/install/img/truenas05.webp b/docs/docs/install/img/truenas05.webp
new file mode 100644
index 0000000000..c5e451770f
Binary files /dev/null and b/docs/docs/install/img/truenas05.webp differ
diff --git a/docs/docs/install/img/truenas06.png b/docs/docs/install/img/truenas06.png
deleted file mode 100644
index 3daf250e36..0000000000
Binary files a/docs/docs/install/img/truenas06.png and /dev/null differ
diff --git a/docs/docs/install/img/truenas06.webp b/docs/docs/install/img/truenas06.webp
new file mode 100644
index 0000000000..b7c7c51aa4
Binary files /dev/null and b/docs/docs/install/img/truenas06.webp differ
diff --git a/docs/docs/install/img/truenas07.png b/docs/docs/install/img/truenas07.png
deleted file mode 100644
index 946c1401ac..0000000000
Binary files a/docs/docs/install/img/truenas07.png and /dev/null differ
diff --git a/docs/docs/install/img/truenas07.webp b/docs/docs/install/img/truenas07.webp
new file mode 100644
index 0000000000..c08e2bdd9c
Binary files /dev/null and b/docs/docs/install/img/truenas07.webp differ
diff --git a/docs/docs/install/img/truenas08.png b/docs/docs/install/img/truenas08.png
deleted file mode 100644
index 4ace8b49ca..0000000000
Binary files a/docs/docs/install/img/truenas08.png and /dev/null differ
diff --git a/docs/docs/install/img/truenas08.webp b/docs/docs/install/img/truenas08.webp
new file mode 100644
index 0000000000..c5a3a87b47
Binary files /dev/null and b/docs/docs/install/img/truenas08.webp differ
diff --git a/docs/docs/install/img/truenas09.png b/docs/docs/install/img/truenas09.png
deleted file mode 100644
index 41830fe9e6..0000000000
Binary files a/docs/docs/install/img/truenas09.png and /dev/null differ
diff --git a/docs/docs/install/img/truenas09.webp b/docs/docs/install/img/truenas09.webp
new file mode 100644
index 0000000000..2fd202c6d2
Binary files /dev/null and b/docs/docs/install/img/truenas09.webp differ
diff --git a/docs/docs/install/img/truenas10.png b/docs/docs/install/img/truenas10.png
deleted file mode 100644
index 730685c309..0000000000
Binary files a/docs/docs/install/img/truenas10.png and /dev/null differ
diff --git a/docs/docs/install/img/truenas10.webp b/docs/docs/install/img/truenas10.webp
new file mode 100644
index 0000000000..21668cfccd
Binary files /dev/null and b/docs/docs/install/img/truenas10.webp differ
diff --git a/docs/docs/install/img/truenas11.png b/docs/docs/install/img/truenas11.png
deleted file mode 100644
index 88c166aed3..0000000000
Binary files a/docs/docs/install/img/truenas11.png and /dev/null differ
diff --git a/docs/docs/install/img/truenas11.webp b/docs/docs/install/img/truenas11.webp
new file mode 100644
index 0000000000..a4dceee100
Binary files /dev/null and b/docs/docs/install/img/truenas11.webp differ
diff --git a/docs/docs/install/img/truenas12.png b/docs/docs/install/img/truenas12.png
deleted file mode 100644
index a107a85f24..0000000000
Binary files a/docs/docs/install/img/truenas12.png and /dev/null differ
diff --git a/docs/docs/install/img/truenas12.webp b/docs/docs/install/img/truenas12.webp
new file mode 100644
index 0000000000..1ed1e54c46
Binary files /dev/null and b/docs/docs/install/img/truenas12.webp differ
diff --git a/docs/docs/install/img/unraid02.png b/docs/docs/install/img/unraid02.png
deleted file mode 100644
index 32e76fd251..0000000000
Binary files a/docs/docs/install/img/unraid02.png and /dev/null differ
diff --git a/docs/docs/install/img/unraid02.webp b/docs/docs/install/img/unraid02.webp
new file mode 100644
index 0000000000..a5a3b2c573
Binary files /dev/null and b/docs/docs/install/img/unraid02.webp differ
diff --git a/docs/docs/install/img/unraid03.png b/docs/docs/install/img/unraid03.png
deleted file mode 100644
index 795a503db1..0000000000
Binary files a/docs/docs/install/img/unraid03.png and /dev/null differ
diff --git a/docs/docs/install/img/unraid03.webp b/docs/docs/install/img/unraid03.webp
new file mode 100644
index 0000000000..6532905749
Binary files /dev/null and b/docs/docs/install/img/unraid03.webp differ
diff --git a/docs/docs/install/img/unraid04.png b/docs/docs/install/img/unraid04.png
deleted file mode 100644
index a32c5b26f2..0000000000
Binary files a/docs/docs/install/img/unraid04.png and /dev/null differ
diff --git a/docs/docs/install/img/unraid04.webp b/docs/docs/install/img/unraid04.webp
new file mode 100644
index 0000000000..3b6992ce05
Binary files /dev/null and b/docs/docs/install/img/unraid04.webp differ
diff --git a/docs/docs/install/img/unraid09.png b/docs/docs/install/img/unraid09.png
deleted file mode 100644
index b0803b87b3..0000000000
Binary files a/docs/docs/install/img/unraid09.png and /dev/null differ
diff --git a/docs/docs/install/img/unraid09.webp b/docs/docs/install/img/unraid09.webp
new file mode 100644
index 0000000000..8b5a48b360
Binary files /dev/null and b/docs/docs/install/img/unraid09.webp differ
diff --git a/docs/docs/install/img/unraid10.png b/docs/docs/install/img/unraid10.png
deleted file mode 100644
index 148ba00250..0000000000
Binary files a/docs/docs/install/img/unraid10.png and /dev/null differ
diff --git a/docs/docs/install/img/unraid10.webp b/docs/docs/install/img/unraid10.webp
new file mode 100644
index 0000000000..65496c90ad
Binary files /dev/null and b/docs/docs/install/img/unraid10.webp differ
diff --git a/docs/docs/install/img/unraid11.png b/docs/docs/install/img/unraid11.png
deleted file mode 100644
index c6c377ad55..0000000000
Binary files a/docs/docs/install/img/unraid11.png and /dev/null differ
diff --git a/docs/docs/install/img/unraid11.webp b/docs/docs/install/img/unraid11.webp
new file mode 100644
index 0000000000..ce7671f1a3
Binary files /dev/null and b/docs/docs/install/img/unraid11.webp differ
diff --git a/docs/docs/install/img/unraid12.png b/docs/docs/install/img/unraid12.png
deleted file mode 100644
index f45d7344c4..0000000000
Binary files a/docs/docs/install/img/unraid12.png and /dev/null differ
diff --git a/docs/docs/install/img/unraid12.webp b/docs/docs/install/img/unraid12.webp
new file mode 100644
index 0000000000..1c9d68a370
Binary files /dev/null and b/docs/docs/install/img/unraid12.webp differ
diff --git a/docs/docs/install/portainer.md b/docs/docs/install/portainer.md
index 35fa7d67e4..5ff324e282 100644
--- a/docs/docs/install/portainer.md
+++ b/docs/docs/install/portainer.md
@@ -13,7 +13,7 @@ Install Immich using Portainer's Stack feature.
5. Replace `.env` with `stack.env` for all containers that need to use environment variables in the web editor.
-## Step 2 - Create a New User (optional)
+## Step 2 - Create a new user (optional)
-## Step 3 - Update the Storage Template
+## Step 3 - Update the storage template
diff --git a/docs/docs/install/requirements.md b/docs/docs/install/requirements.md
index ffb89c5c13..2e3fef07d6 100644
--- a/docs/docs/install/requirements.md
+++ b/docs/docs/install/requirements.md
@@ -6,27 +6,17 @@ sidebar_position: 10
Hardware and software requirements for Immich:
-## Software
-
-Immich requires [**Docker**](https://docs.docker.com/get-started/get-docker/) with the **Docker Compose plugin**:
-
-- **Docker Engine**: This CLI variant is suitable for Linux servers (or Windows via WSL2).
-- **Docker Desktop**: This GUI variant is suitable for Linux desktop (or Windows or macOS).
-
-The Compose plugin will be installed by both Docker Engine and Desktop by following the linked installation guides; it can also be [separately installed](https://docs.docker.com/compose/install/).
-
-:::note
-Immich requires the command `docker compose`; the similarly named `docker-compose` is [deprecated](https://docs.docker.com/compose/migrate/) and is no longer supported by Immich.
-:::
-
## Hardware
-- **OS**: Recommended Linux operating system (Ubuntu, Debian, etc).
+- **OS**: Recommended Linux or \*nix operating system (Ubuntu, Debian, etc).
- Non-Linux OSes tend to provide a poor Docker experience and are strongly discouraged.
Our ability to assist with setup or troubleshooting on non-Linux OSes will be severely reduced.
If you still want to try to use a non-Linux OS, you can set it up as follows:
- Windows: [Docker Desktop on Windows](https://docs.docker.com/desktop/install/windows-install/) or [WSL 2](https://docs.docker.com/desktop/wsl/).
- macOS: [Docker Desktop on Mac](https://docs.docker.com/desktop/install/mac-install/).
+ - Immich runs well in a virtualized environment when running in a full virtual machine.
+ The use of Docker in LXC containers is [not recommended](https://pve.proxmox.com/wiki/Linux_Container), but may be possible for advanced users.
+ If you have issues, we recommend that you switch to a supported VM deployment.
- **RAM**: Minimum 4GB, recommended 6GB.
- **CPU**: Minimum 2 cores, recommended 4 cores.
- **Storage**: Recommended Unix-compatible filesystem (EXT4, ZFS, APFS, etc.) with support for user/group ownership and permissions.
@@ -40,6 +30,19 @@ Additionally, if Docker resource limits are used, the Postgres database requires
Windows users may run into issues with non-Unix-compatible filesystems, see below for more details.
:::
+## Software
+
+Immich requires [**Docker**](https://docs.docker.com/get-started/get-docker/) with the **Docker Compose plugin**:
+
+- **Docker Engine**: This CLI variant is designed for Linux servers (or Windows via WSL2).
+- **Docker Desktop**: This GUI variant is **not recommended** for Linux, but is available for Windows or macOS.
+
+The Compose plugin will be installed by both Docker Engine and Desktop by following the linked installation guides; it can also be [separately installed](https://docs.docker.com/compose/install/).
+
+:::note
+Immich requires the command `docker compose`; the similarly named `docker-compose` is [deprecated](https://docs.docker.com/compose/migrate/) and is no longer supported by Immich.
+:::
+
### Special requirements for Windows users
diff --git a/docs/docs/install/script.md b/docs/docs/install/script.md
index 82c3f687b1..a515f2b628 100644
--- a/docs/docs/install/script.md
+++ b/docs/docs/install/script.md
@@ -2,15 +2,19 @@
sidebar_position: 20
---
-# Install Script [Experimental]
+# Install script [Experimental]
:::caution
This method is experimental and not currently recommended for production use. For production, please refer to installing with [Docker Compose](/docs/install/docker-compose.mdx).
:::
-:::note
+## Requirements
+
+Follow the [requirements page](/docs/install/requirements) to get started.
+
The install script only supports Linux operating systems and requires Docker to be already installed on the system.
-:::
+
+## Steps
In the shell, from a directory of your choice, run the following command:
diff --git a/docs/docs/install/truenas.md b/docs/docs/install/truenas.md
index f35e9aa37a..c56eaf21b2 100644
--- a/docs/docs/install/truenas.md
+++ b/docs/docs/install/truenas.md
@@ -32,7 +32,7 @@ Immich requires seven datasets: `library`, `upload`, `thumbs`, `profile`, `video
You can organize these as one parent with seven child datasets, for example `/mnt/tank/immich/library`, `/mnt/tank/immich/upload`, and so on.
Comment out the database service
Comment out the database dependency for each service(example in screenshot below only shows 2 of the services - ensure you do this for all services)
Comment out the volumes
@@ -111,7 +111,7 @@ alt="Go to Docker Tab and visit the address listed next to immich-web"
Using the FolderView plugin for organizing your Docker containers? Click me! Otherwise you're complete!
-
If you are using the FolderView plugin go the Docker tab and select "New Folder". Label it "Immich" and use this URL as the logo: https://raw.githubusercontent.com/immich-app/immich/main/design/immich-logo.png Then simply select all the Immich related containers before clicking "Submit"
+
If you are using the FolderView plugin go the Docker tab and select "New Folder". Label it "Immich" and use this URL as the logo: https://raw.githubusercontent.com/immich-app/immich/main/design/immich-logo.webp Then simply select all the Immich related containers before clicking "Submit"
You should ignore the "_update ready_" on the Unraid WebUI and update when you receive the notification within the Immich WebUI.
@@ -151,13 +151,13 @@ alt="Immich update notification"
> Note: **Do not** select Compose Down first, it is unnecessary.
3. Once complete you will see a "_Connection Closed_" message, select "**Done**".
4. Return back to the Immich WebUI and you will see the version has been updated to the latest
diff --git a/docs/docs/overview/Comparison.md b/docs/docs/overview/Comparison.md
deleted file mode 100644
index f900ebc7c9..0000000000
--- a/docs/docs/overview/Comparison.md
+++ /dev/null
@@ -1,12 +0,0 @@
----
-sidebar_position: 2
----
-
-# Comparison
-
-If you're new here and came from other photo self-hosting alternatives you might want to look at a comparison between Immich and your current self-hosting.
-Here you can see a [comparison between the various OpenSource Photo Libraries](https://meichthys.github.io/foss_photo_libraries/) including Immich.
-
-:::note
-It is important to remember, Immich is under very active development. Expect bugs and changes. Do not use it as the only way to store your photos and videos!
-:::
diff --git a/docs/docs/overview/comparison.md b/docs/docs/overview/comparison.md
new file mode 100644
index 0000000000..5d5e68f839
--- /dev/null
+++ b/docs/docs/overview/comparison.md
@@ -0,0 +1,8 @@
+---
+sidebar_position: 2
+---
+
+# Comparison
+
+If you're new here and came from other asset self-hosting alternatives you might want to look at a comparison between Immich and your current solution.
+Here you can see a [comparison between the various OpenSource Photo Libraries](https://meichthys.github.io/foss_photo_libraries/) including Immich.
diff --git a/docs/docs/overview/img/appicon.png b/docs/docs/overview/img/appicon.png
deleted file mode 100644
index a48b5af354..0000000000
Binary files a/docs/docs/overview/img/appicon.png and /dev/null differ
diff --git a/docs/docs/overview/img/appicon.webp b/docs/docs/overview/img/appicon.webp
new file mode 100644
index 0000000000..ffbfc1383d
Binary files /dev/null and b/docs/docs/overview/img/appicon.webp differ
diff --git a/docs/docs/overview/img/feature-panel.png b/docs/docs/overview/img/feature-panel.png
deleted file mode 100644
index 8c39fe0d40..0000000000
Binary files a/docs/docs/overview/img/feature-panel.png and /dev/null differ
diff --git a/docs/docs/overview/img/feature-panel.webp b/docs/docs/overview/img/feature-panel.webp
new file mode 100644
index 0000000000..5f10198ed3
Binary files /dev/null and b/docs/docs/overview/img/feature-panel.webp differ
diff --git a/docs/docs/overview/img/upload-button.png b/docs/docs/overview/img/upload-button.png
deleted file mode 100644
index 03b6c44bdb..0000000000
Binary files a/docs/docs/overview/img/upload-button.png and /dev/null differ
diff --git a/docs/docs/overview/img/upload-button.webp b/docs/docs/overview/img/upload-button.webp
new file mode 100644
index 0000000000..f40e9cba03
Binary files /dev/null and b/docs/docs/overview/img/upload-button.webp differ
diff --git a/docs/docs/overview/introduction.mdx b/docs/docs/overview/introduction.mdx
index 2a9ad5d126..e09aac6ebf 100644
--- a/docs/docs/overview/introduction.mdx
+++ b/docs/docs/overview/introduction.mdx
@@ -4,7 +4,7 @@ sidebar_position: 1
# Introduction
-
+
## Welcome!
diff --git a/docs/docs/overview/quick-start.mdx b/docs/docs/overview/quick-start.mdx
index 9c7ca8bd08..872c0a42a2 100644
--- a/docs/docs/overview/quick-start.mdx
+++ b/docs/docs/overview/quick-start.mdx
@@ -2,7 +2,7 @@
sidebar_position: 3
---
-# Quick Start
+# Quick start
Here is a quick, no-choices path to install Immich and take it for a test drive.
Once you've tried it, you might use one of the many other ways
@@ -12,11 +12,11 @@ to install and use it.
Check the [requirements page](/docs/install/requirements) to get started.
-## Install and Launch via Docker Compose
+## Set up the server
Follow the [Docker Compose (Recommended)](/docs/install/docker-compose) instructions to install the server.
-## Try the Web UI
+## Try the web app
import RegisterAdminUser from '/docs/partials/_register-admin.md';
@@ -24,9 +24,9 @@ import RegisterAdminUser from '/docs/partials/_register-admin.md';
Try uploading a picture from your browser.
-
+
-## Try the Mobile UI
+## Try the mobile app
### Download the Mobile App
@@ -54,29 +54,25 @@ To quickly get going, you can selectively upload few photos first, by following
You can select the **Jobs** tab to see Immich processing your photos.
-
+
-## Set up Your Backups
+## Review the database backup and restore process
-You may want to back up the content of your Immich instance
-along with other parts of your server; be sure to read about
-[database backup](/docs/administration/backup-and-restore).
+Immich has built-in database backups. You can refer to the
+[database backup](/docs/administration/backup-and-restore) for more information.
-## Where to Go From Here
+:::danger
+The database only contains metadata and user information. You must setup manual backups of the images and videos stored in `UPLOAD_LOCATION`.
+:::
-You may decide you'd like to install the server a different way;
-the Install category on the left menu provides many options.
+## Where to go from here?
-You may decide you'd like to add the _rest_ of your photos from Google Photos,
-even those not on your mobile device, via Google Takeout.
-You can use [immich-go](https://github.com/simulot/immich-go) for this.
+You may decide you'd like to install the server a different way; the Install category on the left menu provides many options.
-You may want to
-[upload photos from your own archive](/docs/features/command-line-interface).
+You may decide you'd like to add the _rest_ of your photos from Google Photos, even those not on your mobile device, via Google Takeout. You can use [immich-go](https://github.com/simulot/immich-go) for this.
-You may want to incorporate an immutable archive of photos from an
-[External Library](/docs/features/libraries#external-libraries);
-there's a [Guide](/docs/guides/external-library) for that.
+You may want to [upload photos from your own archive](/docs/features/command-line-interface).
-You may want your mobile device to
-[back photos up to your server automatically](/docs/features/automatic-backup).
+You may want to incorporate a pre-existing archive of photos from an [External Library](/docs/features/libraries); there's a [guide](/docs/guides/external-library) for that.
+
+You may want your mobile device to [back photos up to your server automatically](/docs/features/automatic-backup).
diff --git a/docs/docs/partials/_mobile-app-backup.md b/docs/docs/partials/_mobile-app-backup.md
index 059f594754..67c43e83b7 100644
--- a/docs/docs/partials/_mobile-app-backup.md
+++ b/docs/docs/partials/_mobile-app-backup.md
@@ -1,9 +1,9 @@
1. Navigate to the backup screen by clicking on the cloud icon in the top right corner of the screen.
-
+
2. You can select which album(s) you want to back up to the Immich server from the backup screen.
-
+
3. Scroll down to the bottom and press "**Start Backup**" to start the backup process. This will upload all the assets in the selected albums.
diff --git a/docs/docs/partials/_mobile-app-login.md b/docs/docs/partials/_mobile-app-login.md
index b17c055921..bfd15ac5d0 100644
--- a/docs/docs/partials/_mobile-app-login.md
+++ b/docs/docs/partials/_mobile-app-login.md
@@ -1,3 +1,3 @@
Login to the mobile app with the server endpoint URL at `http://:2283/api`
-
+
diff --git a/docs/docs/partials/_register-admin.md b/docs/docs/partials/_register-admin.md
index d79830c437..b20542e12a 100644
--- a/docs/docs/partials/_register-admin.md
+++ b/docs/docs/partials/_register-admin.md
@@ -2,6 +2,6 @@ The first user to register will be the admin user. The admin user will be able t
To register for the admin user, access the web application at `http://:2283` and click on the **Getting Started** button.
-
+
Follow the prompts to register as the admin user and log in to the application.
diff --git a/docs/docs/partials/_storage-template.md b/docs/docs/partials/_storage-template.md
index 0c668d0a3e..20e9caac43 100644
--- a/docs/docs/partials/_storage-template.md
+++ b/docs/docs/partials/_storage-template.md
@@ -1,9 +1,5 @@
Immich allows the admin user to set the uploaded filename pattern at the directory and filename level as well as the [storage label for a user](/docs/administration/user-management/#set-storage-label-for-user).
-:::note new version
-On new machines running version 1.92.0 storage template engine is off by default, for [more info](https://github.com/immich-app/immich/releases/tag/v1.92.0#:~:text=the%20partner%E2%80%99s%20assets.-,Hardening%20storage%20template,-We%20have%20further).
-:::
-
:::tip
You can read more about the differences between storage template engine on and off [here](/docs/administration/backup-and-restore#asset-types-and-storage-locations)
:::
@@ -16,11 +12,18 @@ Year/Year-Month-Day/Filename.Extension
If you want to change the storage template during the initial setup, first enable the feature.
-
+
Then, customize your storage template.
-
+
+
+:::info
+The `Storage Template Migration` job can be run after enabling this feature or changing the template, in order to apply the changes to the existing library.
+
+
+
+:::
:::tip
If an asset is in multiple albums, `{{album}}` will be set to the name of the album which was most recently created. By default, special characters will be converted to an HTML entity (for example, `&` -> `&`). To prevent this, wrap the variable in an extra set of braces (for example, `{{{album}}}`). You can learn more about this [here](https://handlebarsjs.com/guide/expressions.html#html-escaping) and [here](https://github.com/immich-app/immich/issues/4917).
diff --git a/docs/docs/partials/_user-create.md b/docs/docs/partials/_user-create.md
index a8c1c69b9f..5c5e1fd6f9 100644
--- a/docs/docs/partials/_user-create.md
+++ b/docs/docs/partials/_user-create.md
@@ -1,9 +1,7 @@
If you have friends or family members who want to use the application as well, you can create additional accounts for them.
-
+
In the Administration panel, you can click on the **Create user** button, and you'll be presented with the following dialog:
-
-
-You can then set an initial password. If you'd like, you can use an easy password like `password`, and keep the setting **Require user to change password on first login** active. This will prompt the user to change their password on first login, to a password that they choose.
+
diff --git a/docs/docs/partials/img/admin-registration-form.png b/docs/docs/partials/img/admin-registration-form.png
deleted file mode 100644
index dd2c2caf14..0000000000
Binary files a/docs/docs/partials/img/admin-registration-form.png and /dev/null differ
diff --git a/docs/docs/partials/img/admin-registration-form.webp b/docs/docs/partials/img/admin-registration-form.webp
new file mode 100644
index 0000000000..eac5da94d0
Binary files /dev/null and b/docs/docs/partials/img/admin-registration-form.webp differ
diff --git a/docs/docs/partials/img/album-selection.png b/docs/docs/partials/img/album-selection.png
deleted file mode 100644
index e872120b8e..0000000000
Binary files a/docs/docs/partials/img/album-selection.png and /dev/null differ
diff --git a/docs/docs/partials/img/album-selection.webp b/docs/docs/partials/img/album-selection.webp
new file mode 100644
index 0000000000..fc7faf2150
Binary files /dev/null and b/docs/docs/partials/img/album-selection.webp differ
diff --git a/docs/docs/partials/img/backup-header.png b/docs/docs/partials/img/backup-header.png
deleted file mode 100644
index 629f13c8a8..0000000000
Binary files a/docs/docs/partials/img/backup-header.png and /dev/null differ
diff --git a/docs/docs/partials/img/backup-header.webp b/docs/docs/partials/img/backup-header.webp
new file mode 100644
index 0000000000..dcc4357807
Binary files /dev/null and b/docs/docs/partials/img/backup-header.webp differ
diff --git a/docs/docs/partials/img/create-new-user-dialog.png b/docs/docs/partials/img/create-new-user-dialog.png
deleted file mode 100644
index 9d472b9f7c..0000000000
Binary files a/docs/docs/partials/img/create-new-user-dialog.png and /dev/null differ
diff --git a/docs/docs/partials/img/create-new-user-dialog.webp b/docs/docs/partials/img/create-new-user-dialog.webp
new file mode 100644
index 0000000000..47d50f8b04
Binary files /dev/null and b/docs/docs/partials/img/create-new-user-dialog.webp differ
diff --git a/docs/docs/partials/img/create-new-user.png b/docs/docs/partials/img/create-new-user.png
deleted file mode 100644
index 8d00154d50..0000000000
Binary files a/docs/docs/partials/img/create-new-user.png and /dev/null differ
diff --git a/docs/docs/partials/img/create-new-user.webp b/docs/docs/partials/img/create-new-user.webp
new file mode 100644
index 0000000000..e3cdb796a3
Binary files /dev/null and b/docs/docs/partials/img/create-new-user.webp differ
diff --git a/docs/docs/partials/img/enable-storage-template.png b/docs/docs/partials/img/enable-storage-template.png
deleted file mode 100644
index 0c4ca44c43..0000000000
Binary files a/docs/docs/partials/img/enable-storage-template.png and /dev/null differ
diff --git a/docs/docs/partials/img/enable-storage-template.webp b/docs/docs/partials/img/enable-storage-template.webp
new file mode 100644
index 0000000000..809bf09adf
Binary files /dev/null and b/docs/docs/partials/img/enable-storage-template.webp differ
diff --git a/docs/docs/partials/img/sign-in-phone.jpeg b/docs/docs/partials/img/sign-in-phone.jpeg
deleted file mode 100644
index 03af588a10..0000000000
Binary files a/docs/docs/partials/img/sign-in-phone.jpeg and /dev/null differ
diff --git a/docs/docs/partials/img/sign-in-phone.webp b/docs/docs/partials/img/sign-in-phone.webp
new file mode 100644
index 0000000000..2af8163af3
Binary files /dev/null and b/docs/docs/partials/img/sign-in-phone.webp differ
diff --git a/docs/docs/partials/img/storage-template-migration-job.webp b/docs/docs/partials/img/storage-template-migration-job.webp
new file mode 100644
index 0000000000..7d4c62cfbe
Binary files /dev/null and b/docs/docs/partials/img/storage-template-migration-job.webp differ
diff --git a/docs/docs/partials/img/storage-template.png b/docs/docs/partials/img/storage-template.png
deleted file mode 100644
index e920f29b1f..0000000000
Binary files a/docs/docs/partials/img/storage-template.png and /dev/null differ
diff --git a/docs/docs/partials/img/storage-template.webp b/docs/docs/partials/img/storage-template.webp
new file mode 100644
index 0000000000..e2f9401a70
Binary files /dev/null and b/docs/docs/partials/img/storage-template.webp differ
diff --git a/docs/package-lock.json b/docs/package-lock.json
index ca80d15fd0..c9ae86bec9 100644
--- a/docs/package-lock.json
+++ b/docs/package-lock.json
@@ -28,7 +28,6 @@
},
"devDependencies": {
"@docusaurus/module-type-aliases": "~3.5.2",
- "@tsconfig/docusaurus": "^2.0.2",
"prettier": "^3.2.4",
"typescript": "^5.1.6"
},
@@ -3458,12 +3457,6 @@
"node": ">=10.13.0"
}
},
- "node_modules/@tsconfig/docusaurus": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/docusaurus/-/docusaurus-2.0.3.tgz",
- "integrity": "sha512-3l1L5PzWVa7l0691TjnsZ0yOIEwG9DziSqu5IPZPlI5Dowi7z42cEym8Y35GHbgHvPcBfNxfrbxm7Cncn4nByQ==",
- "dev": true
- },
"node_modules/@types/acorn": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz",
diff --git a/docs/package.json b/docs/package.json
index 498a0c4d7c..e739cd68c7 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -36,7 +36,6 @@
},
"devDependencies": {
"@docusaurus/module-type-aliases": "~3.5.2",
- "@tsconfig/docusaurus": "^2.0.2",
"prettier": "^3.2.4",
"typescript": "^5.1.6"
},
diff --git a/docs/src/components/community-projects.tsx b/docs/src/components/community-projects.tsx
index 2dbab979f2..dc64214d1e 100644
--- a/docs/src/components/community-projects.tsx
+++ b/docs/src/components/community-projects.tsx
@@ -94,6 +94,11 @@ const projects: CommunityProjectProps[] = [
description: 'Unofficial Kodi plugin for Immich.',
url: 'https://github.com/vladd11/immich-kodi',
},
+ {
+ title: 'Immich Downloader',
+ description: 'Downloads a configurable number of random photos based on people or album ID.',
+ url: 'https://github.com/jon6fingrs/immich-dl',
+ },
];
function CommunityProject({ title, description, url }: CommunityProjectProps): JSX.Element {
diff --git a/docs/src/css/custom.css b/docs/src/css/custom.css
index f693ce701b..dc3ff4e9ef 100644
--- a/docs/src/css/custom.css
+++ b/docs/src/css/custom.css
@@ -9,10 +9,18 @@
@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
-html,
-button {
- font-family: 'Be Vietnam Pro', sans-serif;
+body {
+ font-family: 'Be Vietnam Pro', serif;
font-optical-sizing: auto;
+ /* font-size: 1.125rem;
+ ascent-override: 106.25%;
+ size-adjust: 106.25%; */
+}
+
+.breadcrumbs__link {
+ font-weight: 500;
+ font-size: 0.875rem;
+ padding: 8px 16px 8px 16px;
}
img {
@@ -53,13 +61,18 @@ div[class^='announcementBar_'] {
.menu__link {
padding: 10px;
padding-left: 16px;
- border-radius: 10px;
- font-size: 15px;
+ border-radius: 24px;
+ margin-right: 16px;
}
.menu__list-item-collapsible {
border-radius: 10px;
- font-size: 15px;
+ margin-right: 16px;
+ border-radius: 24px;
+}
+
+.menu__link--active {
+ font-weight: 500;
}
code {
diff --git a/docs/src/pages/roadmap.tsx b/docs/src/pages/roadmap.tsx
index 7de51f7513..46997fdfb7 100644
--- a/docs/src/pages/roadmap.tsx
+++ b/docs/src/pages/roadmap.tsx
@@ -75,12 +75,15 @@ import {
mdiVideo,
mdiWeb,
mdiDatabaseOutline,
+ mdiLinkEdit,
+ mdiMovieOpenPlayOutline,
} from '@mdi/js';
import Layout from '@theme/Layout';
import React from 'react';
import { Item, Timeline } from '../components/timeline';
const releases = {
+ 'v1.122.0': new Date(2024, 11, 5),
'v1.120.0': new Date(2024, 10, 6),
'v1.114.0': new Date(2024, 8, 6),
'v1.113.0': new Date(2024, 7, 30),
@@ -218,7 +221,7 @@ const roadmap: Item[] = [
iconColor: 'sandybrown',
title: 'Private/locked photos',
description: 'Private assets with extra protections',
- getDateLabel: () => 'Planned for 2024',
+ getDateLabel: () => 'Planned for 2025',
},
{
done: false,
@@ -226,7 +229,7 @@ const roadmap: Item[] = [
iconColor: 'cornflowerblue',
title: 'Better background backups',
description: 'Rework background backups to be more reliable',
- getDateLabel: () => 'Planned for 2024',
+ getDateLabel: () => 'Planned for 2025',
},
{
done: false,
@@ -234,11 +237,25 @@ const roadmap: Item[] = [
iconColor: 'rebeccapurple',
title: 'Auto stacking',
description: 'Auto stack burst photos',
- getDateLabel: () => 'Planned for 2024',
+ getDateLabel: () => 'Planned for 2025',
},
];
const milestones: Item[] = [
+ withRelease({
+ icon: mdiLinkEdit,
+ iconColor: 'crimson',
+ title: 'Automatic URL switching',
+ description: 'The mobile app now supports automatic switching between different server URLs',
+ release: 'v1.122.0',
+ }),
+ withRelease({
+ icon: mdiMovieOpenPlayOutline,
+ iconColor: 'darksalmon',
+ title: 'Native video player',
+ description: 'HDR videos are now fully supported using the Immich native video player',
+ release: 'v1.122.0',
+ }),
withRelease({
icon: mdiDatabaseOutline,
iconColor: 'brown',
diff --git a/docs/static/_redirects b/docs/static/_redirects
index df45fc95e8..889b4e6961 100644
--- a/docs/static/_redirects
+++ b/docs/static/_redirects
@@ -1,31 +1,32 @@
-/docs /docs/overview/introduction 301
-/docs/mobile-app-beta-program /docs/features/mobile-app 301
-/docs/contribution-guidelines /docs/overview/support-the-project#contributing 301
-/docs/install /docs/install/docker-compose 301
-/docs/installation/one-step-installation /docs/install/script 301
-/docs/installation/portainer-installation /docs/install/portainer 301
-/docs/installation/recommended-installation /docs/install/docker-compose 301
-/docs/installation/unraid /docs/install/unraid 301
-/docs/installation/requirements /docs/install/requirements 301
-/docs/overview/logo-meaning /docs/overview/logo 301
-/docs/overview/technology-stack /docs/developer/architecture 301
-/docs/usage/automatic-backup /docs/features/automatic-backup 301
-/docs/usage/bulk-upload /docs/features/command-line-interface 301
-/docs/features/bulk-upload /docs/features/command-line-interface 301
-/docs/usage/oauth /docs/administration/oauth 301
-/docs/usage/post-installation /docs/install/post-install 301
-/docs/usage/update /docs/install/docker-compose#step-4---upgrading 301
-/docs/usage/server-commands /docs/administration/server-commands 301
-/docs/features/jobs /docs/administration/jobs 301
-/docs/features/oauth /docs/administration/oauth 301
-/docs/features/password-login /docs/administration/password-login 301
-/docs/features/server-commands /docs/administration/server-commands 301
-/docs/features/storage-template /docs/administration/storage-template 301
-/docs/features/user-management /docs/administration/user-management 301
-/docs/developer/contributing /docs/developer/pr-checklist 301
-/docs/guides/machine-learning /docs/guides/remote-machine-learning 301
-/docs/administration/password-login /docs/administration/system-settings 301
-/docs/features/search /docs/features/smart-search 301
-/docs/guides/api-album-sync /docs/community-projects 301
-/docs/guides/remove-offline-files /docs/community-projects 301
-/milestones /roadmap 301
+/docs /docs/overview/introduction 307
+/docs/mobile-app-beta-program /docs/features/mobile-app 307
+/docs/contribution-guidelines /docs/overview/support-the-project#contributing 307
+/docs/install /docs/install/docker-compose 307
+/docs/installation/one-step-installation /docs/install/script 307
+/docs/installation/portainer-installation /docs/install/portainer 307
+/docs/installation/recommended-installation /docs/install/docker-compose 307
+/docs/installation/unraid /docs/install/unraid 307
+/docs/installation/requirements /docs/install/requirements 307
+/docs/overview/logo-meaning /docs/overview/logo 307
+/docs/overview/technology-stack /docs/developer/architecture 307
+/docs/usage/automatic-backup /docs/features/automatic-backup 307
+/docs/usage/bulk-upload /docs/features/command-line-interface 307
+/docs/features/bulk-upload /docs/features/command-line-interface 307
+/docs/usage/oauth /docs/administration/oauth 307
+/docs/usage/post-installation /docs/install/post-install 307
+/docs/usage/update /docs/install/docker-compose#step-4---upgrading 307
+/docs/usage/server-commands /docs/administration/server-commands 307
+/docs/features/jobs /docs/administration/jobs 307
+/docs/features/oauth /docs/administration/oauth 307
+/docs/features/password-login /docs/administration/password-login 307
+/docs/features/server-commands /docs/administration/server-commands 307
+/docs/features/storage-template /docs/administration/storage-template 307
+/docs/features/user-management /docs/administration/user-management 307
+/docs/developer/contributing /docs/developer/pr-checklist 307
+/docs/guides/machine-learning /docs/guides/remote-machine-learning 307
+/docs/administration/password-login /docs/administration/system-settings 307
+/docs/features/search /docs/features/searching 307
+/docs/features/smart-search /docs/features/searching 307
+/docs/guides/api-album-sync /docs/community-projects 307
+/docs/guides/remove-offline-files /docs/community-projects 307
+/milestones /roadmap 307
diff --git a/docs/static/archived-versions.json b/docs/static/archived-versions.json
index 562098f76f..3d286d0afa 100644
--- a/docs/static/archived-versions.json
+++ b/docs/static/archived-versions.json
@@ -1,4 +1,8 @@
[
+ {
+ "label": "v1.124.0",
+ "url": "https://v1.124.0.archive.immich.app"
+ },
{
"label": "v1.123.0",
"url": "https://v1.123.0.archive.immich.app"
diff --git a/e2e/package-lock.json b/e2e/package-lock.json
index 06877fea69..8af99c994a 100644
--- a/e2e/package-lock.json
+++ b/e2e/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "immich-e2e",
- "version": "1.123.0",
+ "version": "1.124.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "immich-e2e",
- "version": "1.123.0",
+ "version": "1.124.0",
"license": "GNU Affero General Public License version 3",
"devDependencies": {
"@eslint/eslintrc": "^3.1.0",
@@ -26,7 +26,7 @@
"eslint": "^9.14.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.3",
- "eslint-plugin-unicorn": "^55.0.0",
+ "eslint-plugin-unicorn": "^56.0.1",
"exiftool-vendored": "^28.3.1",
"globals": "^15.9.0",
"jose": "^5.6.3",
@@ -45,7 +45,7 @@
},
"../cli": {
"name": "@immich/cli",
- "version": "2.2.37",
+ "version": "2.2.38",
"dev": true,
"license": "GNU Affero General Public License version 3",
"dependencies": {
@@ -74,7 +74,7 @@
"eslint": "^9.14.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.3",
- "eslint-plugin-unicorn": "^55.0.0",
+ "eslint-plugin-unicorn": "^56.0.1",
"globals": "^15.9.0",
"mock-fs": "^5.2.0",
"prettier": "^3.2.5",
@@ -92,7 +92,7 @@
},
"../open-api/typescript-sdk": {
"name": "@immich/sdk",
- "version": "1.123.0",
+ "version": "1.124.0",
"dev": true,
"license": "GNU Affero General Public License version 3",
"dependencies": {
@@ -2381,9 +2381,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.23.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
- "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
+ "version": "4.24.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz",
+ "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==",
"dev": true,
"funding": [
{
@@ -2399,11 +2399,12 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "caniuse-lite": "^1.0.30001587",
- "electron-to-chromium": "^1.4.668",
- "node-releases": "^2.0.14",
- "update-browserslist-db": "^1.0.13"
+ "caniuse-lite": "^1.0.30001688",
+ "electron-to-chromium": "^1.5.73",
+ "node-releases": "^2.0.19",
+ "update-browserslist-db": "^1.1.1"
},
"bin": {
"browserslist": "cli.js"
@@ -2524,9 +2525,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001591",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz",
- "integrity": "sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==",
+ "version": "1.0.30001689",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001689.tgz",
+ "integrity": "sha512-CmeR2VBycfa+5/jOfnp/NpWPGd06nf1XYiefUvhXFfZE4GkRc9jv+eGPS4nT558WS/8lYCzV8SlANCIPvbWP1g==",
"dev": true,
"funding": [
{
@@ -2541,7 +2542,8 @@
"type": "github",
"url": "https://github.com/sponsors/ai"
}
- ]
+ ],
+ "license": "CC-BY-4.0"
},
"node_modules/chai": {
"version": "5.1.2",
@@ -2757,12 +2759,13 @@
}
},
"node_modules/core-js-compat": {
- "version": "3.37.1",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz",
- "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==",
+ "version": "3.39.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz",
+ "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "browserslist": "^4.23.0"
+ "browserslist": "^4.24.2"
},
"funding": {
"type": "opencollective",
@@ -2943,10 +2946,11 @@
"dev": true
},
"node_modules/electron-to-chromium": {
- "version": "1.4.687",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.687.tgz",
- "integrity": "sha512-Ic85cOuXSP6h7KM0AIJ2hpJ98Bo4hyTUjc4yjMbkvD+8yTxEhfK9+8exT2KKYsSjnCn2tGsKVSZwE7ZgTORQCw==",
- "dev": true
+ "version": "1.5.74",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.74.tgz",
+ "integrity": "sha512-ck3//9RC+6oss/1Bh9tiAVFy5vfSKbRHAFh7Z3/eTRkEqJeWgymloShB17Vg3Z4nmDNp35vAd1BZ6CMW4Wt6Iw==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/emoji-regex": {
"version": "8.0.0",
@@ -3063,10 +3067,11 @@
}
},
"node_modules/escalade": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
- "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -3194,19 +3199,19 @@
}
},
"node_modules/eslint-plugin-unicorn": {
- "version": "55.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-55.0.0.tgz",
- "integrity": "sha512-n3AKiVpY2/uDcGrS3+QsYDkjPfaOrNrsfQxU9nt5nitd9KuvVXrfAvgCO9DYPSfap+Gqjw9EOrXIsBp5tlHZjA==",
+ "version": "56.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-56.0.1.tgz",
+ "integrity": "sha512-FwVV0Uwf8XPfVnKSGpMg7NtlZh0G0gBarCaFcMUOoqPxXryxdYxTRRv4kH6B9TFCVIrjRXG+emcxIk2ayZilog==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.24.5",
+ "@babel/helper-validator-identifier": "^7.24.7",
"@eslint-community/eslint-utils": "^4.4.0",
"ci-info": "^4.0.0",
"clean-regexp": "^1.0.0",
- "core-js-compat": "^3.37.0",
- "esquery": "^1.5.0",
- "globals": "^15.7.0",
+ "core-js-compat": "^3.38.1",
+ "esquery": "^1.6.0",
+ "globals": "^15.9.0",
"indent-string": "^4.0.0",
"is-builtin-module": "^3.2.1",
"jsesc": "^3.0.2",
@@ -3214,7 +3219,7 @@
"read-pkg-up": "^7.0.1",
"regexp-tree": "^0.1.27",
"regjsparser": "^0.10.0",
- "semver": "^7.6.1",
+ "semver": "^7.6.3",
"strip-indent": "^3.0.0"
},
"engines": {
@@ -3311,10 +3316,11 @@
}
},
"node_modules/esquery": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"estraverse": "^5.1.0"
},
@@ -3377,9 +3383,9 @@
}
},
"node_modules/exiftool-vendored": {
- "version": "28.7.0",
- "resolved": "https://registry.npmjs.org/exiftool-vendored/-/exiftool-vendored-28.7.0.tgz",
- "integrity": "sha512-0zoq6kBS1yPjzJs+p0qZDinWEA72PTKoRk5ETYKfmeRcZAkhv83Y3HCpbb/LdgJJywfm8BcIJGezrBHvL7dVnQ==",
+ "version": "28.8.0",
+ "resolved": "https://registry.npmjs.org/exiftool-vendored/-/exiftool-vendored-28.8.0.tgz",
+ "integrity": "sha512-R7tirJLr9fWuH9JS/KFFLB+O7jNGKuPXGxREc6YybYangEudGb+X8ERsYXk9AifMiAWh/2agNfbgkbcQcF+MxA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3390,14 +3396,14 @@
"luxon": "^3.5.0"
},
"optionalDependencies": {
- "exiftool-vendored.exe": "12.99.0",
- "exiftool-vendored.pl": "12.99.0"
+ "exiftool-vendored.exe": "13.0.0",
+ "exiftool-vendored.pl": "13.0.1"
}
},
"node_modules/exiftool-vendored.exe": {
- "version": "12.99.0",
- "resolved": "https://registry.npmjs.org/exiftool-vendored.exe/-/exiftool-vendored.exe-12.99.0.tgz",
- "integrity": "sha512-ffpJHCzC9OYJqw4JlPNtCwRy02jwhmnSJEF/QqEjpuIWDEnlRBQP/yWRh1Nw21K1R4FB4yG5PlCgEDu09VQz/w==",
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/exiftool-vendored.exe/-/exiftool-vendored.exe-13.0.0.tgz",
+ "integrity": "sha512-4zAMuFGgxZkOoyQIzZMHv1HlvgyJK3AkNqjAgm8A8V0UmOZO7yv3pH49cDV1OduzFJqgs6yQ6eG4OGydhKtxlg==",
"dev": true,
"license": "MIT",
"optional": true,
@@ -3406,9 +3412,9 @@
]
},
"node_modules/exiftool-vendored.pl": {
- "version": "12.99.0",
- "resolved": "https://registry.npmjs.org/exiftool-vendored.pl/-/exiftool-vendored.pl-12.99.0.tgz",
- "integrity": "sha512-qRVEPQxtoerXF+izJ0O7jGAr5o0Uyvnyu7ao5DTKzF+V7Fv3SurE0l43oCeZPFKo/Ld4V7vEylhFCm4IHVZKWA==",
+ "version": "13.0.1",
+ "resolved": "https://registry.npmjs.org/exiftool-vendored.pl/-/exiftool-vendored.pl-13.0.1.tgz",
+ "integrity": "sha512-+BRRzjselpWudKR0ltAW5SUt9T82D+gzQN8DdOQUgnSVWWp7oLCeTGBRptbQz+436Ihn/mPzmo/xnf0cv/Qw1A==",
"dev": true,
"license": "MIT",
"optional": true,
@@ -4765,10 +4771,11 @@
}
},
"node_modules/node-releases": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
- "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
- "dev": true
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
+ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/nopt": {
"version": "5.0.0",
@@ -5819,10 +5826,11 @@
"license": "MIT"
},
"node_modules/semver": {
- "version": "7.6.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
- "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -6425,9 +6433,9 @@
}
},
"node_modules/update-browserslist-db": {
- "version": "1.0.13",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
- "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
+ "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
"dev": true,
"funding": [
{
@@ -6443,9 +6451,10 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.0"
},
"bin": {
"update-browserslist-db": "cli.js"
diff --git a/e2e/package.json b/e2e/package.json
index 03a9417e2e..c73abd9f1e 100644
--- a/e2e/package.json
+++ b/e2e/package.json
@@ -1,6 +1,6 @@
{
"name": "immich-e2e",
- "version": "1.123.0",
+ "version": "1.124.0",
"description": "",
"main": "index.js",
"type": "module",
@@ -36,7 +36,7 @@
"eslint": "^9.14.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.3",
- "eslint-plugin-unicorn": "^55.0.0",
+ "eslint-plugin-unicorn": "^56.0.1",
"exiftool-vendored": "^28.3.1",
"globals": "^15.9.0",
"jose": "^5.6.3",
diff --git a/e2e/src/api/specs/asset.e2e-spec.ts b/e2e/src/api/specs/asset.e2e-spec.ts
index a0c429a82e..b4a298edf3 100644
--- a/e2e/src/api/specs/asset.e2e-spec.ts
+++ b/e2e/src/api/specs/asset.e2e-spec.ts
@@ -766,7 +766,7 @@ describe('/asset', () => {
expect(body).toEqual(errorDto.badRequest('Not found or no asset.delete access'));
});
- it('should move an asset to the trash', async () => {
+ it('should move an asset to trash', async () => {
const { id: assetId } = await utils.createAsset(admin.accessToken);
const before = await utils.getAssetInfo(admin.accessToken, assetId);
@@ -782,6 +782,38 @@ describe('/asset', () => {
expect(after.isTrashed).toBe(true);
});
+ it('should permanently delete an asset from trash', async () => {
+ const { id: assetId } = await utils.createAsset(admin.accessToken);
+
+ {
+ const { status } = await request(app)
+ .delete('/assets')
+ .send({ ids: [assetId] })
+ .set('Authorization', `Bearer ${admin.accessToken}`);
+ expect(status).toBe(204);
+ }
+
+ const trashed = await utils.getAssetInfo(admin.accessToken, assetId);
+ expect(trashed.isTrashed).toBe(true);
+
+ {
+ const { status } = await request(app)
+ .delete('/assets')
+ .send({ ids: [assetId], force: true })
+ .set('Authorization', `Bearer ${admin.accessToken}`);
+ expect(status).toBe(204);
+ }
+
+ await utils.waitForWebsocketEvent({ event: 'assetDelete', id: assetId });
+
+ {
+ const { status } = await request(app)
+ .get(`/assets/${assetId}`)
+ .set('Authorization', `Bearer ${admin.accessToken}`);
+ expect(status).toBe(400);
+ }
+ });
+
it('should clean up live photos', async () => {
const { id: motionId } = await utils.createAsset(admin.accessToken, {
assetData: { filename: 'test.mp4', bytes: makeRandomImage() },
diff --git a/e2e/src/api/specs/library.e2e-spec.ts b/e2e/src/api/specs/library.e2e-spec.ts
index 1959a230ad..3525296fef 100644
--- a/e2e/src/api/specs/library.e2e-spec.ts
+++ b/e2e/src/api/specs/library.e2e-spec.ts
@@ -1,5 +1,5 @@
import { LibraryResponseDto, LoginResponseDto, getAllLibraries, scanLibrary } from '@immich/sdk';
-import { cpSync, existsSync } from 'node:fs';
+import { cpSync, existsSync, rmSync, unlinkSync } from 'node:fs';
import { Socket } from 'socket.io-client';
import { userDto, uuidDto } from 'src/fixtures';
import { errorDto } from 'src/responses';
@@ -403,20 +403,45 @@ describe('/libraries', () => {
utils.removeImageFile(`${testAssetDir}/temp/folder} b/assetB.png`);
});
- it('should reimport a modified file', async () => {
+ const annoyingChars = [
+ "'",
+ '"',
+ '`',
+ '*',
+ '{',
+ '}',
+ ',',
+ '(',
+ ')',
+ '[',
+ ']',
+ '?',
+ '!',
+ '@',
+ '#',
+ '$',
+ '%',
+ '^',
+ '&',
+ '=',
+ '+',
+ '~',
+ '|',
+ '<',
+ '>',
+ ';',
+ ':',
+ '/', // We never got backslashes to work
+ ];
+
+ it.each(annoyingChars)('should scan multiple import paths with %s', async (char) => {
const library = await utils.createLibrary(admin.accessToken, {
ownerId: admin.userId,
- importPaths: [`${testAssetDirInternal}/temp`],
+ importPaths: [`${testAssetDirInternal}/temp/folder${char}1`, `${testAssetDirInternal}/temp/folder${char}2`],
});
- utils.createImageFile(`${testAssetDir}/temp/directoryA/assetB.jpg`);
- await utimes(`${testAssetDir}/temp/directoryA/assetB.jpg`, 447_775_200_000);
-
- await scan(admin.accessToken, library.id);
- await utils.waitForQueueFinish(admin.accessToken, 'library');
-
- cpSync(`${testAssetDir}/albums/nature/tanners_ridge.jpg`, `${testAssetDir}/temp/directoryA/assetB.jpg`);
- await utimes(`${testAssetDir}/temp/directoryA/assetB.jpg`, 447_775_200_001);
+ utils.createImageFile(`${testAssetDir}/temp/folder${char}1/asset1.png`);
+ utils.createImageFile(`${testAssetDir}/temp/folder${char}2/asset2.png`);
const { status } = await request(app)
.post(`/libraries/${library.id}/scan`)
@@ -425,30 +450,81 @@ describe('/libraries', () => {
expect(status).toBe(204);
await utils.waitForQueueFinish(admin.accessToken, 'library');
+
+ const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
+
+ expect(assets.items).toEqual(
+ expect.arrayContaining([
+ expect.objectContaining({ originalPath: expect.stringContaining(`folder${char}1/asset1.png`) }),
+ expect.objectContaining({ originalPath: expect.stringContaining(`folder${char}2/asset2.png`) }),
+ ]),
+ );
+
+ utils.removeImageFile(`${testAssetDir}/temp/folder${char}1/asset1.png`);
+ utils.removeImageFile(`${testAssetDir}/temp/folder${char}2/asset2.png`);
+ });
+
+ it('should reimport a modified file', async () => {
+ const library = await utils.createLibrary(admin.accessToken, {
+ ownerId: admin.userId,
+ importPaths: [`${testAssetDirInternal}/temp/reimport`],
+ });
+
+ utils.createImageFile(`${testAssetDir}/temp/reimport/asset.jpg`);
+ await utimes(`${testAssetDir}/temp/reimport/asset.jpg`, 447_775_200_000);
+
+ await scan(admin.accessToken, library.id);
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+ await utils.waitForQueueFinish(admin.accessToken, 'sidecar');
+ await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
+
+ cpSync(`${testAssetDir}/albums/nature/tanners_ridge.jpg`, `${testAssetDir}/temp/reimport/asset.jpg`);
+ await utimes(`${testAssetDir}/temp/reimport/asset.jpg`, 447_775_200_001);
+
+ const { status } = await request(app)
+ .post(`/libraries/${library.id}/scan`)
+ .set('Authorization', `Bearer ${admin.accessToken}`)
+ .send();
+ expect(status).toBe(204);
+
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+ await utils.waitForQueueFinish(admin.accessToken, 'sidecar');
await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
- utils.removeImageFile(`${testAssetDir}/temp/directoryA/assetB.jpg`);
const { assets } = await utils.searchAssets(admin.accessToken, {
libraryId: library.id,
- model: 'NIKON D750',
});
- expect(assets.count).toBe(1);
+
+ expect(assets.count).toEqual(1);
+
+ const asset = await utils.getAssetInfo(admin.accessToken, assets.items[0].id);
+
+ expect(asset).toEqual(
+ expect.objectContaining({
+ originalFileName: 'asset.jpg',
+ exifInfo: expect.objectContaining({
+ model: 'NIKON D750',
+ }),
+ }),
+ );
+
+ utils.removeImageFile(`${testAssetDir}/temp/reimport/asset.jpg`);
});
it('should not reimport unmodified files', async () => {
const library = await utils.createLibrary(admin.accessToken, {
ownerId: admin.userId,
- importPaths: [`${testAssetDirInternal}/temp`],
+ importPaths: [`${testAssetDirInternal}/temp/reimport`],
});
- utils.createImageFile(`${testAssetDir}/temp/directoryA/assetB.jpg`);
- await utimes(`${testAssetDir}/temp/directoryA/assetB.jpg`, 447_775_200_000);
+ utils.createImageFile(`${testAssetDir}/temp/reimport/asset.jpg`);
+ await utimes(`${testAssetDir}/temp/reimport/asset.jpg`, 447_775_200_000);
await scan(admin.accessToken, library.id);
await utils.waitForQueueFinish(admin.accessToken, 'library');
- cpSync(`${testAssetDir}/albums/nature/tanners_ridge.jpg`, `${testAssetDir}/temp/directoryA/assetB.jpg`);
- await utimes(`${testAssetDir}/temp/directoryA/assetB.jpg`, 447_775_200_000);
+ cpSync(`${testAssetDir}/albums/nature/tanners_ridge.jpg`, `${testAssetDir}/temp/reimport/asset.jpg`);
+ await utimes(`${testAssetDir}/temp/reimport/asset.jpg`, 447_775_200_000);
const { status } = await request(app)
.post(`/libraries/${library.id}/scan`)
@@ -457,14 +533,27 @@ describe('/libraries', () => {
expect(status).toBe(204);
await utils.waitForQueueFinish(admin.accessToken, 'library');
+ await utils.waitForQueueFinish(admin.accessToken, 'sidecar');
await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
- utils.removeImageFile(`${testAssetDir}/temp/directoryA/assetB.jpg`);
const { assets } = await utils.searchAssets(admin.accessToken, {
libraryId: library.id,
- model: 'NIKON D750',
});
- expect(assets.count).toBe(0);
+
+ expect(assets.count).toEqual(1);
+
+ const asset = await utils.getAssetInfo(admin.accessToken, assets.items[0].id);
+
+ expect(asset).toEqual(
+ expect.objectContaining({
+ originalFileName: 'asset.jpg',
+ exifInfo: expect.not.objectContaining({
+ model: 'NIKON D750',
+ }),
+ }),
+ );
+
+ utils.removeImageFile(`${testAssetDir}/temp/reimport/asset.jpg`);
});
it('should set an asset offline if its file is missing', async () => {
@@ -515,10 +604,9 @@ describe('/libraries', () => {
utils.createDirectory(`${testAssetDir}/temp/another-path/`);
- await request(app)
- .put(`/libraries/${library.id}`)
- .set('Authorization', `Bearer ${admin.accessToken}`)
- .send({ importPaths: [`${testAssetDirInternal}/temp/another-path/`] });
+ await utils.updateLibrary(admin.accessToken, library.id, {
+ importPaths: [`${testAssetDirInternal}/temp/another-path/`],
+ });
const { status } = await request(app)
.post(`/libraries/${library.id}/scan`)
@@ -555,10 +643,7 @@ describe('/libraries', () => {
});
expect(assets.count).toBe(1);
- await request(app)
- .put(`/libraries/${library.id}`)
- .set('Authorization', `Bearer ${admin.accessToken}`)
- .send({ exclusionPatterns: ['**/directoryB/**'] });
+ await utils.updateLibrary(admin.accessToken, library.id, { exclusionPatterns: ['**/directoryB/**'] });
await scan(admin.accessToken, library.id);
await utils.waitForQueueFinish(admin.accessToken, 'library');
@@ -602,6 +687,298 @@ describe('/libraries', () => {
expect(assets).toEqual(assetsBefore);
});
+ describe('xmp metadata', async () => {
+ it('should import metadata from file.xmp', async () => {
+ const library = await utils.createLibrary(admin.accessToken, {
+ ownerId: admin.userId,
+ importPaths: [`${testAssetDirInternal}/temp/xmp`],
+ });
+
+ cpSync(`${testAssetDir}/metadata/xmp/dates/2000.xmp`, `${testAssetDir}/temp/xmp/glarus.xmp`);
+ cpSync(`${testAssetDir}/formats/raw/Nikon/D80/glarus.nef`, `${testAssetDir}/temp/xmp/glarus.nef`);
+
+ await scan(admin.accessToken, library.id);
+
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+ await utils.waitForQueueFinish(admin.accessToken, 'sidecar');
+ await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
+
+ const { assets: newAssets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
+
+ expect(newAssets.items).toEqual([
+ expect.objectContaining({
+ originalFileName: 'glarus.nef',
+ fileCreatedAt: '2000-09-27T12:35:33.000Z',
+ }),
+ ]);
+
+ rmSync(`${testAssetDir}/temp/xmp`, { recursive: true, force: true });
+ });
+
+ it('should import metadata from file.ext.xmp', async () => {
+ const library = await utils.createLibrary(admin.accessToken, {
+ ownerId: admin.userId,
+ importPaths: [`${testAssetDirInternal}/temp/xmp`],
+ });
+
+ cpSync(`${testAssetDir}/metadata/xmp/dates/2000.xmp`, `${testAssetDir}/temp/xmp/glarus.nef.xmp`);
+ cpSync(`${testAssetDir}/formats/raw/Nikon/D80/glarus.nef`, `${testAssetDir}/temp/xmp/glarus.nef`);
+
+ await scan(admin.accessToken, library.id);
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+ await utils.waitForQueueFinish(admin.accessToken, 'sidecar');
+ await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
+
+ const { assets: newAssets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
+
+ expect(newAssets.items).toEqual([
+ expect.objectContaining({
+ originalFileName: 'glarus.nef',
+ fileCreatedAt: '2000-09-27T12:35:33.000Z',
+ }),
+ ]);
+
+ rmSync(`${testAssetDir}/temp/xmp`, { recursive: true, force: true });
+ });
+
+ it('should import metadata in file.ext.xmp before file.xmp if both exist', async () => {
+ const library = await utils.createLibrary(admin.accessToken, {
+ ownerId: admin.userId,
+ importPaths: [`${testAssetDirInternal}/temp/xmp`],
+ });
+
+ cpSync(`${testAssetDir}/metadata/xmp/dates/2000.xmp`, `${testAssetDir}/temp/xmp/glarus.nef.xmp`);
+ cpSync(`${testAssetDir}/metadata/xmp/dates/2010.xmp`, `${testAssetDir}/temp/xmp/glarus.xmp`);
+ cpSync(`${testAssetDir}/formats/raw/Nikon/D80/glarus.nef`, `${testAssetDir}/temp/xmp/glarus.nef`);
+
+ await scan(admin.accessToken, library.id);
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+ await utils.waitForQueueFinish(admin.accessToken, 'sidecar');
+ await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
+
+ const { assets: newAssets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
+
+ expect(newAssets.items).toEqual([
+ expect.objectContaining({
+ originalFileName: 'glarus.nef',
+ fileCreatedAt: '2000-09-27T12:35:33.000Z',
+ }),
+ ]);
+
+ rmSync(`${testAssetDir}/temp/xmp`, { recursive: true, force: true });
+ });
+
+ it('should switch from using file.xmp to file.ext.xmp when asset refreshes', async () => {
+ const library = await utils.createLibrary(admin.accessToken, {
+ ownerId: admin.userId,
+ importPaths: [`${testAssetDirInternal}/temp/xmp`],
+ });
+
+ cpSync(`${testAssetDir}/metadata/xmp/dates/2000.xmp`, `${testAssetDir}/temp/xmp/glarus.xmp`);
+ cpSync(`${testAssetDir}/formats/raw/Nikon/D80/glarus.nef`, `${testAssetDir}/temp/xmp/glarus.nef`);
+ await utimes(`${testAssetDir}/temp/xmp/glarus.nef`, 447_775_200_000);
+
+ await scan(admin.accessToken, library.id);
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+ await utils.waitForQueueFinish(admin.accessToken, 'sidecar');
+ await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
+
+ cpSync(`${testAssetDir}/metadata/xmp/dates/2010.xmp`, `${testAssetDir}/temp/xmp/glarus.nef.xmp`);
+ unlinkSync(`${testAssetDir}/temp/xmp/glarus.xmp`);
+ await utimes(`${testAssetDir}/temp/xmp/glarus.nef`, 447_775_200_001);
+
+ await scan(admin.accessToken, library.id);
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+ await utils.waitForQueueFinish(admin.accessToken, 'sidecar');
+ await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
+
+ const { assets: newAssets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
+
+ expect(newAssets.items).toEqual([
+ expect.objectContaining({
+ originalFileName: 'glarus.nef',
+ fileCreatedAt: '2010-09-27T12:35:33.000Z',
+ }),
+ ]);
+
+ rmSync(`${testAssetDir}/temp/xmp`, { recursive: true, force: true });
+ });
+
+ it('should switch from using file metadata to file.xmp metadata when asset refreshes', async () => {
+ const library = await utils.createLibrary(admin.accessToken, {
+ ownerId: admin.userId,
+ importPaths: [`${testAssetDirInternal}/temp/xmp`],
+ });
+
+ cpSync(`${testAssetDir}/formats/raw/Nikon/D80/glarus.nef`, `${testAssetDir}/temp/xmp/glarus.nef`);
+ await utimes(`${testAssetDir}/temp/xmp/glarus.nef`, 447_775_200_000);
+
+ await scan(admin.accessToken, library.id);
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+ await utils.waitForQueueFinish(admin.accessToken, 'sidecar');
+ await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
+
+ cpSync(`${testAssetDir}/metadata/xmp/dates/2000.xmp`, `${testAssetDir}/temp/xmp/glarus.xmp`);
+ await utimes(`${testAssetDir}/temp/xmp/glarus.nef`, 447_775_200_001);
+
+ await scan(admin.accessToken, library.id);
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+ await utils.waitForQueueFinish(admin.accessToken, 'sidecar');
+ await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
+
+ const { assets: newAssets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
+
+ expect(newAssets.items).toEqual([
+ expect.objectContaining({
+ originalFileName: 'glarus.nef',
+ fileCreatedAt: '2000-09-27T12:35:33.000Z',
+ }),
+ ]);
+
+ rmSync(`${testAssetDir}/temp/xmp`, { recursive: true, force: true });
+ });
+
+ it('should switch from using file metadata to file.xmp metadata when asset refreshes', async () => {
+ const library = await utils.createLibrary(admin.accessToken, {
+ ownerId: admin.userId,
+ importPaths: [`${testAssetDirInternal}/temp/xmp`],
+ });
+
+ cpSync(`${testAssetDir}/formats/raw/Nikon/D80/glarus.nef`, `${testAssetDir}/temp/xmp/glarus.nef`);
+ await utimes(`${testAssetDir}/temp/xmp/glarus.nef`, 447_775_200_000);
+
+ await scan(admin.accessToken, library.id);
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+ await utils.waitForQueueFinish(admin.accessToken, 'sidecar');
+ await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
+
+ cpSync(`${testAssetDir}/metadata/xmp/dates/2000.xmp`, `${testAssetDir}/temp/xmp/glarus.nef.xmp`);
+ await utimes(`${testAssetDir}/temp/xmp/glarus.nef`, 447_775_200_001);
+
+ await scan(admin.accessToken, library.id);
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+ await utils.waitForQueueFinish(admin.accessToken, 'sidecar');
+ await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
+
+ const { assets: newAssets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
+
+ expect(newAssets.items).toEqual([
+ expect.objectContaining({
+ originalFileName: 'glarus.nef',
+ fileCreatedAt: '2000-09-27T12:35:33.000Z',
+ }),
+ ]);
+
+ rmSync(`${testAssetDir}/temp/xmp`, { recursive: true, force: true });
+ });
+
+ it('should switch from using file.ext.xmp to file.xmp when asset refreshes', async () => {
+ const library = await utils.createLibrary(admin.accessToken, {
+ ownerId: admin.userId,
+ importPaths: [`${testAssetDirInternal}/temp/xmp`],
+ });
+
+ cpSync(`${testAssetDir}/metadata/xmp/dates/2000.xmp`, `${testAssetDir}/temp/xmp/glarus.nef.xmp`);
+ cpSync(`${testAssetDir}/formats/raw/Nikon/D80/glarus.nef`, `${testAssetDir}/temp/xmp/glarus.nef`);
+ await utimes(`${testAssetDir}/temp/xmp/glarus.nef`, 447_775_200_000);
+
+ await scan(admin.accessToken, library.id);
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+ await utils.waitForQueueFinish(admin.accessToken, 'sidecar');
+ await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
+
+ cpSync(`${testAssetDir}/metadata/xmp/dates/2010.xmp`, `${testAssetDir}/temp/xmp/glarus.xmp`);
+ unlinkSync(`${testAssetDir}/temp/xmp/glarus.nef.xmp`);
+ await utimes(`${testAssetDir}/temp/xmp/glarus.nef`, 447_775_200_001);
+
+ await scan(admin.accessToken, library.id);
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+ await utils.waitForQueueFinish(admin.accessToken, 'sidecar');
+ await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
+
+ const { assets: newAssets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
+
+ expect(newAssets.items).toEqual([
+ expect.objectContaining({
+ originalFileName: 'glarus.nef',
+ fileCreatedAt: '2010-09-27T12:35:33.000Z',
+ }),
+ ]);
+
+ rmSync(`${testAssetDir}/temp/xmp`, { recursive: true, force: true });
+ });
+
+ it('should switch from using file.ext.xmp to file metadata', async () => {
+ const library = await utils.createLibrary(admin.accessToken, {
+ ownerId: admin.userId,
+ importPaths: [`${testAssetDirInternal}/temp/xmp`],
+ });
+
+ cpSync(`${testAssetDir}/metadata/xmp/dates/2000.xmp`, `${testAssetDir}/temp/xmp/glarus.nef.xmp`);
+ cpSync(`${testAssetDir}/formats/raw/Nikon/D80/glarus.nef`, `${testAssetDir}/temp/xmp/glarus.nef`);
+ await utimes(`${testAssetDir}/temp/xmp/glarus.nef`, 447_775_200_000);
+
+ await scan(admin.accessToken, library.id);
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+ await utils.waitForQueueFinish(admin.accessToken, 'sidecar');
+ await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
+
+ unlinkSync(`${testAssetDir}/temp/xmp/glarus.nef.xmp`);
+ await utimes(`${testAssetDir}/temp/xmp/glarus.nef`, 447_775_200_001);
+
+ await scan(admin.accessToken, library.id);
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+ await utils.waitForQueueFinish(admin.accessToken, 'sidecar');
+ await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
+
+ const { assets: newAssets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
+
+ expect(newAssets.items).toEqual([
+ expect.objectContaining({
+ originalFileName: 'glarus.nef',
+ fileCreatedAt: '2010-07-20T17:27:12.000Z',
+ }),
+ ]);
+
+ rmSync(`${testAssetDir}/temp/xmp`, { recursive: true, force: true });
+ });
+
+ it('should switch from using file.xmp to file metadata', async () => {
+ const library = await utils.createLibrary(admin.accessToken, {
+ ownerId: admin.userId,
+ importPaths: [`${testAssetDirInternal}/temp/xmp`],
+ });
+
+ cpSync(`${testAssetDir}/metadata/xmp/dates/2000.xmp`, `${testAssetDir}/temp/xmp/glarus.xmp`);
+ cpSync(`${testAssetDir}/formats/raw/Nikon/D80/glarus.nef`, `${testAssetDir}/temp/xmp/glarus.nef`);
+ await utimes(`${testAssetDir}/temp/xmp/glarus.nef`, 447_775_200_000);
+
+ await scan(admin.accessToken, library.id);
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+ await utils.waitForQueueFinish(admin.accessToken, 'sidecar');
+ await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
+
+ unlinkSync(`${testAssetDir}/temp/xmp/glarus.xmp`);
+ await utimes(`${testAssetDir}/temp/xmp/glarus.nef`, 447_775_200_001);
+
+ await scan(admin.accessToken, library.id);
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+ await utils.waitForQueueFinish(admin.accessToken, 'sidecar');
+ await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
+
+ const { assets: newAssets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
+
+ expect(newAssets.items).toEqual([
+ expect.objectContaining({
+ originalFileName: 'glarus.nef',
+ fileCreatedAt: '2010-07-20T17:27:12.000Z',
+ }),
+ ]);
+
+ rmSync(`${testAssetDir}/temp/xmp`, { recursive: true, force: true });
+ });
+ });
+
it('should set an offline asset to online if its file exists, is in an import path, and not covered by an exclusion pattern', async () => {
utils.createImageFile(`${testAssetDir}/temp/offline/offline.png`);
diff --git a/e2e/src/api/specs/trash.e2e-spec.ts b/e2e/src/api/specs/trash.e2e-spec.ts
index f86f38ab61..15b915ef2a 100644
--- a/e2e/src/api/specs/trash.e2e-spec.ts
+++ b/e2e/src/api/specs/trash.e2e-spec.ts
@@ -73,7 +73,7 @@ describe('/trash', () => {
expect(existsSync(before.originalPath)).toBe(false);
});
- it('should not delete offline-trashed assets from disk', async () => {
+ it('should remove offline assets', async () => {
const library = await utils.createLibrary(admin.accessToken, {
ownerId: admin.userId,
importPaths: [`${testAssetDirInternal}/temp/offline`],
@@ -88,7 +88,7 @@ describe('/trash', () => {
expect(assets.items.length).toBe(1);
const asset = assets.items[0];
- utils.removeImageFile(`${testAssetDir}/temp/offline/offline.png`);
+ await utils.updateLibrary(admin.accessToken, library.id, { exclusionPatterns: ['**/offline/**'] });
await scan(admin.accessToken, library.id);
await utils.waitForQueueFinish(admin.accessToken, 'library');
@@ -105,6 +105,41 @@ describe('/trash', () => {
const assetAfter = await utils.getAssetInfo(admin.accessToken, asset.id);
expect(assetAfter).toMatchObject({ isTrashed: true, isOffline: true });
+ });
+
+ it.skip('should not delete offline assets from disk', async () => {
+ // Can't be tested at the moment due to no mechanism to forward time
+ const library = await utils.createLibrary(admin.accessToken, {
+ ownerId: admin.userId,
+ importPaths: [`${testAssetDirInternal}/temp/offline`],
+ });
+
+ utils.createImageFile(`${testAssetDir}/temp/offline/offline.png`);
+
+ await scan(admin.accessToken, library.id);
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+
+ const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
+ expect(assets.items.length).toBe(1);
+ const asset = assets.items[0];
+
+ await utils.updateLibrary(admin.accessToken, library.id, { exclusionPatterns: ['**/offline/**'] });
+
+ await scan(admin.accessToken, library.id);
+ await utils.waitForQueueFinish(admin.accessToken, 'library');
+
+ const assetBefore = await utils.getAssetInfo(admin.accessToken, asset.id);
+ expect(assetBefore).toMatchObject({ isTrashed: true, isOffline: true });
+
+ utils.createImageFile(`${testAssetDir}/temp/offline/offline.png`);
+
+ const { status } = await request(app).post('/trash/empty').set('Authorization', `Bearer ${admin.accessToken}`);
+ expect(status).toBe(200);
+
+ await utils.waitForQueueFinish(admin.accessToken, 'backgroundTask');
+
+ const after = await getAssetStatistics({ isTrashed: true }, { headers: asBearerAuth(admin.accessToken) });
+ expect(after.total).toBe(0);
expect(existsSync(`${testAssetDir}/temp/offline/offline.png`)).toBe(true);
@@ -137,7 +172,7 @@ describe('/trash', () => {
expect(after).toStrictEqual(expect.objectContaining({ id: assetId, isTrashed: false }));
});
- it('should not restore offline-trashed assets', async () => {
+ it('should not restore offline assets', async () => {
const library = await utils.createLibrary(admin.accessToken, {
ownerId: admin.userId,
importPaths: [`${testAssetDirInternal}/temp/offline`],
@@ -152,7 +187,7 @@ describe('/trash', () => {
expect(assets.count).toBe(1);
const assetId = assets.items[0].id;
- utils.removeImageFile(`${testAssetDir}/temp/offline/offline.png`);
+ await utils.updateLibrary(admin.accessToken, library.id, { exclusionPatterns: ['**/offline/**'] });
await scan(admin.accessToken, library.id);
@@ -195,7 +230,7 @@ describe('/trash', () => {
expect(after.isTrashed).toBe(false);
});
- it('should not restore an offline-trashed asset', async () => {
+ it('should not restore an offline asset', async () => {
const library = await utils.createLibrary(admin.accessToken, {
ownerId: admin.userId,
importPaths: [`${testAssetDirInternal}/temp/offline`],
@@ -210,7 +245,7 @@ describe('/trash', () => {
expect(assets.count).toBe(1);
const assetId = assets.items[0].id;
- utils.removeImageFile(`${testAssetDir}/temp/offline/offline.png`);
+ await utils.updateLibrary(admin.accessToken, library.id, { exclusionPatterns: ['**/offline/**'] });
await scan(admin.accessToken, library.id);
await utils.waitForQueueFinish(admin.accessToken, 'library');
diff --git a/e2e/src/utils.ts b/e2e/src/utils.ts
index b00c3c0b6d..7b96b712f0 100644
--- a/e2e/src/utils.ts
+++ b/e2e/src/utils.ts
@@ -460,6 +460,9 @@ export const utils = {
validateLibrary: (accessToken: string, id: string, dto: ValidateLibraryDto) =>
validate({ id, validateLibraryDto: dto }, { headers: asBearerAuth(accessToken) }),
+ updateLibrary: (accessToken: string, id: string, dto: UpdateLibraryDto) =>
+ updateLibrary({ id, updateLibraryDto: dto }, { headers: asBearerAuth(accessToken) }),
+
createPartner: (accessToken: string, id: string) => createPartner({ id }, { headers: asBearerAuth(accessToken) }),
updateMyPreferences: (accessToken: string, userPreferencesUpdateDto: UserPreferencesUpdateDto) =>
diff --git a/e2e/test-assets b/e2e/test-assets
index c4a0575c3e..9e3b964b08 160000
--- a/e2e/test-assets
+++ b/e2e/test-assets
@@ -1 +1 @@
-Subproject commit c4a0575c3e89a755b951ae6d91e7307cd34c606f
+Subproject commit 9e3b964b080dca6f035b29b86e66454ae8aeda78
diff --git a/i18n/af.json b/i18n/af.json
index ede1a745eb..fb4ae82741 100644
--- a/i18n/af.json
+++ b/i18n/af.json
@@ -23,6 +23,7 @@
"add_to": "Voeg na...",
"add_to_album": "Voeg na album",
"add_to_shared_album": "Voeg na gedeelde album",
+ "add_url": "Voeg URL by",
"added_to_archive": "By argief gevoeg",
"added_to_favorites": "By gunstelinge gevoeg",
"added_to_favorites_count": "Het {count, number} by gunstelinge gevoeg",
@@ -52,6 +53,10 @@
"cron_expression_description": "Stel die skanderingsinterval in met die cron-formaat. Vir meer inligting verwys asseblief na bv. Crontab Guru",
"cron_expression_presets": "Cron uitdrukking voorafinstellings",
"disable_login": "Deaktiveer aanmelding",
- "duplicate_detection_job_description": "Begin masjienleer op bates om soortgelyke beelde op te spoor. Maak staat op Smart Search"
+ "duplicate_detection_job_description": "Begin masjienleer op bates om soortgelyke beelde op te spoor. Maak staat op Smart Search",
+ "exclusion_pattern_description": "Met uitsluitingspatrone kan jy lêers en vouers ignoreer wanneer jy jou biblioteek skandeer. Dit is nuttig as jy vouers het wat lêers bevat wat jy nie wil invoer nie, soos RAW-lêers.",
+ "external_library_created_at": "Eksterne biblioteek (geskep op {date})",
+ "external_library_management": "Eksterne Biblioteek-opsies",
+ "face_detection": "Gesigsopsporing"
}
}
diff --git a/i18n/ar.json b/i18n/ar.json
index 7e1805ca34..f99f23fa6f 100644
--- a/i18n/ar.json
+++ b/i18n/ar.json
@@ -1,5 +1,5 @@
{
- "about": "تحديث",
+ "about": "حول",
"account": "الحساب",
"account_settings": "إعدادات الحساب",
"acknowledge": "أُدرك ذلك",
@@ -23,6 +23,7 @@
"add_to": "إضافة إلى…",
"add_to_album": "إضافة إلى ألبوم",
"add_to_shared_album": "إضافة إلى ألبوم مشترك",
+ "add_url": "إضافة رابط",
"added_to_archive": "أُضيفت للأرشيف",
"added_to_favorites": "أُضيفت للمفضلات",
"added_to_favorites_count": "تم إضافة {count, number} إلى المفضلات",
@@ -130,7 +131,7 @@
"machine_learning_smart_search_description": "البحث عن الصور بشكل دلالي باستخدام تضمينات CLIP",
"machine_learning_smart_search_enabled": "تفعيل البحث الذكي",
"machine_learning_smart_search_enabled_description": "إذا تم تعطيله، فلن يتم ترميز الصور للبحث الذكي.",
- "machine_learning_url_description": "عنوان URL لخادم التعلم الآلي",
+ "machine_learning_url_description": "عنوان URL لخادم التعلم الآلي. إذا تم توفير أكثر من عنوان URL، فسيتم محاولة الوصول إلى كل خادم على حدة حتى يستجيب أحد الخوادم بنجاح، بالترتيب من الأول إلى الأخير.",
"manage_concurrency": "إدارة التزامن",
"manage_log_settings": "إدارة إعدادات السجلات",
"map_dark_style": "النمط الداكن",
@@ -249,6 +250,8 @@
"storage_template_user_label": "{label} هو تسمية التخزين الخاصة بالمستخدم",
"system_settings": "إعدادات النظام",
"tag_cleanup_job": "تنظيف العلامة",
+ "template_email_preview": "عرض مسبق",
+ "template_email_settings": "نماذج البريد الالكتروني",
"theme_custom_css_settings": "CSS مخصص",
"theme_custom_css_settings_description": "أوراق الأنماط المتتالية تسمح بتخصيص تصميم Immich.",
"theme_settings": "إعدادات السمة",
diff --git a/i18n/az.json b/i18n/az.json
index 7848462414..fe53041b69 100644
--- a/i18n/az.json
+++ b/i18n/az.json
@@ -1,5 +1,5 @@
{
- "about": "Yenilə",
+ "about": "Haqqinda",
"account": "Hesab",
"account_settings": "Hesab parametrləri",
"acknowledge": "Təsdiq et",
diff --git a/i18n/bg.json b/i18n/bg.json
index b0ab195289..6d66f0901c 100644
--- a/i18n/bg.json
+++ b/i18n/bg.json
@@ -6,8 +6,8 @@
"action": "Действие",
"actions": "Действия",
"active": "Активни",
- "activity": "Дейности",
- "activity_changed": "Дейността е {enabled, select, true {enabled} other {disabled}}",
+ "activity": "Дейност",
+ "activity_changed": "Дейността е {enabled, select, true {включена} other {изключена}}",
"add": "Добави",
"add_a_description": "Добави описание",
"add_a_location": "Добави местоположение",
@@ -33,7 +33,7 @@
"authentication_settings": "Настройки за удостоверяване",
"authentication_settings_description": "Управление на парола, OAuth и други настройки за удостоверяване",
"authentication_settings_disable_all": "Сигурни ли сте, че искате да деактивирате всички методи за вписване? Вписването ще бъде напълно деактивирано.",
- "authentication_settings_reenable": "За да реактивирате, изполвайте Server Command.",
+ "authentication_settings_reenable": "За да реактивирате, използвайте Server Command.",
"background_task_job": "Процеси на заден фон",
"backup_database": "Резервна База данни",
"backup_database_enable_description": "Разрешаване на резервни копия на базата данни",
@@ -44,7 +44,7 @@
"cleared_jobs": "Изчистени задачи от тип: {job}",
"config_set_by_file": "Конфигурацията е зададена от файл",
"confirm_delete_library": "Сигурни ли сте че искате да изтриете библиотеката - {library} ?",
- "confirm_delete_library_assets": "Сигурни ли сте че искате да изтриете тази библиотека? Това ще изтрие {count, plural, one {# contained asset} other {all # contained assets}} от Immich и е необратимо. Файловете остават на диска.",
+ "confirm_delete_library_assets": "Сигурни ли сте че искате да изтриете тази библиотека? Това ще изтрие {count, plural, one {# съдържания елемент} other {всички # съдържани елементи}} от Immich и е необратимо. Файловете остават на диска.",
"confirm_email_below": "За потвърждение, моля въведете \"{email}\" отдолу",
"confirm_reprocess_all_faces": "Сигурни ли сте, че искате да се обработят лицата отново? Това ще изчисти всички именувани хора.",
"confirm_user_password_reset": "Сигурни ли сте, че искате да нулирате паролата на {user}?",
@@ -53,15 +53,15 @@
"cron_expression_description": "Настрой интервала на сканиране използвайки cron формата. За повече информация Crontab Guru",
"cron_expression_presets": "Примерни Cron изрази",
"disable_login": "Изключете вписването",
- "duplicate_detection_job_description": "Стартиране машинно обучение на ресурси, за откриване на подобни изображения. Разчита на Интелигентно Търсене",
+ "duplicate_detection_job_description": "Стартиране машинно обучение върху елементи, за откриване на подобни изображения. Разчита на Интелигентно Търсене",
"exclusion_pattern_description": "Модели за изключване позволяват да игнорирате файлове и папки, когато сканирате вашата библиотека. Това е потребно, ако имате папки, които съдържат файлове, които не искате да импортирате. Примерно - RAW файлове.",
"external_library_created_at": "Външна библиотека (създадена на {date})",
"external_library_management": "Управление на външните библиотеки",
"face_detection": "Откриване на лица",
- "face_detection_description": "Да се разпознават лица в ресурси чрез машинно обучение. За видеата се използва само миниатюрата. \"Всички\" обработва отново всички ресурси. \"Липсващи\" зарежда за обработка расурси, които на се обработени все още. Откритите лица ще бъдат подредени в опашка за разпознаване на лица след завършване на функцията за откриване на лица, като се групират в съществуващи или нови хора.",
- "facial_recognition_job_description": "Групирай откритите лица в хора. Тази стъпка се извършва след завършване на функцията за откриване на лица. \"Всички\" пре-/групира всички лица. \"Липсващи\" подрежда в опашка за разпознаване всички лица, за които няма назначен човек.",
+ "face_detection_description": "Да се разпознават лица в елементи чрез машинно обучение. За видеата се използва само миниатюрата. \"Всички\" обработва отново всички елементи. \"Липсващи\" зарежда за обработка елементи, които на се обработени все още. Откритите лица ще бъдат подредени в опашка за разпознаване на лица след завършване на функцията за откриване на лица, като се групират в съществуващи или нови хора.",
+ "facial_recognition_job_description": "Групирайте откритите лица в хора. Тази стъпка се изпълнява след завършване на разпознаването на лица. „Нулиране“ прегрупира всички лица. „Липсващи“ поставя в опашка лицата, които нямат назначен човек.",
"failed_job_command": "Командата {command} е неуспешна за задача: {job}",
- "force_delete_user_warning": "ВНИМАНИЕ: Това веднага ще изтрие потребителя и всичките му ресурси. Действието е необратимо и файловете не могат да бъдат възстановени.",
+ "force_delete_user_warning": "ВНИМАНИЕ: Това веднага ще изтрие потребителя и всичките му елементи. Действието е необратимо и файловете не могат да бъдат възстановени.",
"forcing_refresh_library_files": "Принуждаване обновяване на всички файлове в библиотеката",
"image_format": "Формат",
"image_format_description": "WebP създава по-малки файлове от JPEG, но ги кодира по-бавно.",
@@ -71,7 +71,7 @@
"image_prefer_wide_gamut_setting_description": "Използване на Display P3 за миниатюри. Това запазва по-добре жизнеността на изображенията с широки цветови пространства, но изображенията може да изглеждат по различен начин на стари устройства със стара версия на браузъра. sRGB изображенията се запазват като sRGB, за да се избегнат цветови промени.",
"image_preview_description": "Среден размер на изображението с премахнати метаданни, използвано при преглед на един актив и за машинно обучение",
"image_preview_quality_description": "Качество на предварителния преглед от 1 до 100. По-високата стойност е по-добра, но води до по-големи файлове и може да намали бързодействието на приложението. Задаването на ниска стойност може да повлияе на качеството на машинното обучение.",
- "image_preview_title": "Настойки на прегледа",
+ "image_preview_title": "Настройки на прегледа",
"image_quality": "Качество",
"image_resolution": "Резолюция",
"image_resolution_description": "По-високите резолюции могат да запазят повече детайли, но изискват повече време за кодиране, имат по-големи размери на файловете и могат да намалят бързодействието на приложението.",
@@ -86,8 +86,8 @@
"job_settings": "Настройки за задачите",
"job_settings_description": "Управление на паралелността на задачите",
"job_status": "Статус на задачата",
- "jobs_delayed": "{jobCount, plural, other {# delayed}}",
- "jobs_failed": "{jobCount, plural, other {# failed}}",
+ "jobs_delayed": "{jobCount, plural, other {# забавени}}",
+ "jobs_failed": "{jobCount, plural, other {# неуспешни}}",
"library_created": "Създадена библиотека: {library}",
"library_deleted": "Библиотека е изтрита",
"library_import_path_description": "Посочете папка за импортиране. Тази папка, включително подпапките, ще бъдат сканирани за изображения и видеоклипове.",
@@ -107,7 +107,7 @@
"machine_learning_clip_model_description": "Името на CLIP модела, посочен тук. Имайте предвид, че при промяна на модела трябва да стартирате отново задачата \"Интелигентно Търсене\" за всички изображения.",
"machine_learning_duplicate_detection": "Откриване на дубликати",
"machine_learning_duplicate_detection_enabled": "Включване на откриването на дубликати",
- "machine_learning_duplicate_detection_enabled_description": "Напълно идентични ресурси ще бъдат дедублирани дори когато е изключено.",
+ "machine_learning_duplicate_detection_enabled_description": "Напълно идентични елементи ще бъдат дедублирани дори когато е изключено.",
"machine_learning_duplicate_detection_setting_description": "Използване на CLIP вграждания за откриване на вероятни дублирания",
"machine_learning_enabled": "Включване на машинното обучение",
"machine_learning_enabled_description": "Ако е изключено, всички функции на машинно обучение ще бъдат деактивирани, независимо от посочените по-долу настройки.",
@@ -131,7 +131,7 @@
"machine_learning_smart_search_description": "Семантично търсене на изображения с помощта на CLIP вграждания",
"machine_learning_smart_search_enabled": "Включване на Интелигентно Търсене",
"machine_learning_smart_search_enabled_description": "Ако е деактивирано, изображенията няма да бъдат кодирани за Интелигентно Търсене.",
- "machine_learning_url_description": "URL на сървъра за машинно обучение. Ако са предоставени повече от един URL, всеки сървър ще бъде опитан един по един, докато един не отговори успешно, в реда от първия до последния",
+ "machine_learning_url_description": "URL на сървъра за машинно обучение. Ако са предоставени повече от един URL, всеки сървър ще бъде опитан един по един, докато един не отговори успешно, в реда от първия до последния.",
"manage_concurrency": "Управление на паралелност",
"manage_log_settings": "Управление на настройките на записване",
"map_dark_style": "Тъмен стил",
@@ -148,13 +148,13 @@
"map_settings_description": "Управление на настройките на картата",
"map_style_description": "URL адрес към файл \"style.json\" за задаване на стил на картата",
"metadata_extraction_job": "Извличане на метаданни",
- "metadata_extraction_job_description": "Извличане на метаданни от всеки от ресурсите, като GPS локация, лица и резолюция на файловете",
+ "metadata_extraction_job_description": "Извличане на метаданни от всеки от елемент, като GPS локация, лица и резолюция на файловете",
"metadata_faces_import_setting": "Включи импорт на лице",
"metadata_faces_import_setting_description": "Импортирай лица от EXIF данни и помощни файлове",
"metadata_settings": "Опции за метаданни",
"metadata_settings_description": "Управление на настройките за метаданни",
"migration_job": "Миграция",
- "migration_job_description": "Мигриране на миниатюрите за ресурси и лица към най-новата структура на папките",
+ "migration_job_description": "Мигриране на миниатюрите за елементи и лица към най-новата структура на папките",
"no_paths_added": "Няма добавени пътища",
"no_pattern_added": "Няма добавен модел",
"note_apply_storage_label_previous_assets": "Забележка: За да приложите етикета за съхранение към предварително качени файлове, стартирайте",
@@ -163,19 +163,19 @@
"notification_email_from_address": "От адрес",
"notification_email_from_address_description": "Електронна поща на изпращача, например: \"Immich Photo Server \"",
"notification_email_host_description": "Хост на сървъра за електронна поща (например: smtp.immich.app)",
- "notification_email_ignore_certificate_errors": "Игорнорирайте сертификационни грешки",
+ "notification_email_ignore_certificate_errors": "Игнорирайте сертификационни грешки",
"notification_email_ignore_certificate_errors_description": "Игнорирай грешки свързани с валидация на TLS сертификат (не се препоръчва)",
- "notification_email_password_description": "Парола използвана за аутентикация със сървъра за електронна поща",
+ "notification_email_password_description": "Парола използвана за идентификация със сървъра за електронна поща",
"notification_email_port_description": "Порт на сървъра за електронна поща (например 25, 465 или 587)",
"notification_email_sent_test_email_button": "Изпрати тестов имейл и запази",
"notification_email_setting_description": "Настройки за изпращане на имейл известия",
"notification_email_test_email": "Изпрати тестов имейл",
"notification_email_test_email_failed": "Неуспешно изпращане на тестови имейл, проверете променливите",
"notification_email_test_email_sent": "Тестов имейл беше изпратен на {email}. Проверете входящата си пощa.",
- "notification_email_username_description": "Потребителско име за аутентикация с имейл сървъра",
+ "notification_email_username_description": "Потребителско име за идентификация с имейл сървъра",
"notification_enable_email_notifications": "Включване на имейл известията",
"notification_settings": "Настройки на известията",
- "notification_settings_description": "Управление на настойките за известия, вкл. имейл",
+ "notification_settings_description": "Управление на настройките за известия, вкл. имейл",
"oauth_auto_launch": "Автоматично стартиране",
"oauth_auto_launch_description": "Автоматично стартиране на вход чрез OAuth, когато се отвори страницата за вход",
"oauth_auto_register": "Автоматична регистрация",
@@ -189,11 +189,11 @@
"oauth_mobile_redirect_uri_override": "URI пренасочване за мобилни устройства",
"oauth_mobile_redirect_uri_override_description": "Разреши когато доставчика за OAuth удостоверяване не позволява за мобилни URI идентификатори, като '{callback}'",
"oauth_profile_signing_algorithm": "Алгоритъм за създаване на профили",
- "oauth_profile_signing_algorithm_description": "Алгоритъм излпозлван за вписване на потребителски профил.",
+ "oauth_profile_signing_algorithm_description": "Алгоритъм използван за вписване на потребителски профил.",
"oauth_scope": "Област/обхват на приложение",
"oauth_settings": "OAuth",
"oauth_settings_description": "Управление на настройките за вход с OAuth",
- "oauth_settings_more_details": "За повече информация за функционалността, се порърсете в docs.",
+ "oauth_settings_more_details": "За повече информация за функционалността, се потърсете в docs.",
"oauth_signing_algorithm": "Алгоритъм за вписване",
"oauth_storage_label_claim": "Заявка за етикет за съхранение",
"oauth_storage_label_claim_description": "Автоматично задайте етикета за съхранение на потребителя със стойността от тази заявка.",
@@ -232,15 +232,15 @@
"sidecar_job": "Метаданни от свързани (sidecar) файлове",
"sidecar_job_description": "Откриване или синхронизиране на странични (sidecar) метаданни от файловата система",
"slideshow_duration_description": "Брой секунди за показване на всяко изображение",
- "smart_search_job_description": "Извършване на машинно обучение върху ресурси за подпомагане на Интелигентното Търсене",
+ "smart_search_job_description": "Извършване на машинно обучение върху елементи за подпомагане на Интелигентното Търсене",
"storage_template_date_time_description": "Времевата марка на създаване на файла се използва за информация за дата и час",
"storage_template_date_time_sample": "Време на проба {date}",
"storage_template_enable_description": "Активиране на механизма за шаблони за съхранение",
"storage_template_hash_verification_enabled": "Разрешена проверка с хеш",
"storage_template_hash_verification_enabled_description": "Активиране на проверката на хеш, не деактивирайте тази опция, освен ако не сте сигурни в последствията",
"storage_template_migration": "Миграция на шаблона за съхранение",
- "storage_template_migration_description": "Прилагане на текучия {template} към предишно качените файлове",
- "storage_template_migration_info": "Промените в шаблоните ще се прилагат само за нови ресурси. За да приложите шаблона със задна дата към предварително качени активи, изпълнете {job}.",
+ "storage_template_migration_description": "Прилагане на текущия {template} към предишно качените файлове",
+ "storage_template_migration_info": "Промените в шаблоните ще се прилагат само за нови елементи. За да приложите шаблона със задна дата към предварително качени елементи, изпълнете {job}.",
"storage_template_migration_job": "Задача за миграция на шаблона за съхранение",
"storage_template_more_details": "За повече подробности относно тази функция се обърнете към шаблона Storage Template и неговите последствия ",
"storage_template_onboarding_description": "Когато е активирана, тази функция ще организира автоматично файлове въз основа на дефиниран от потребителя шаблон. Поради проблеми със стабилността, функцията е изключена по подразбиране. За повече информация, моля, вижте документацията.",
@@ -283,40 +283,44 @@
"transcoding_audio_codec": "Аудио кодек",
"transcoding_audio_codec_description": "Opus е опцията с най-високо качество, но има по-ниска съвместимост със стари устройства или софтуер.",
"transcoding_bitrate_description": "Видеоклипове с по-висок от максималния битрейт или не в приет формат",
- "transcoding_codecs_learn_more": "За да научите повече за използваната терминология, вижте документацията на FFmpeg за кодек H.264, кодек HEVC и VP9 кодек.",
+ "transcoding_codecs_learn_more": "За да научите повече за използваната терминология, вижте документацията на FFmpeg за кодек H.264, кодек HEVC и VP9 кодек.",
"transcoding_constant_quality_mode": "Режим на постоянно качество",
"transcoding_constant_quality_mode_description": "ICQ е по-добър от CQP, но някои устройства за хардуерно ускоряване не поддържат този режим. С задаването на тази опция ще предпочете посочения режим при използване на базирано на качество кодиране. Игнорирано от NVENC, тъй като не поддържа ICQ.",
"transcoding_constant_rate_factor": "Коефициент на постоянна скорост (-crf)",
"transcoding_constant_rate_factor_description": "Ниво на качество на видеото. Типичните стойности са 23 за H.264, 28 за HEVC, 31 за VP9 и 35 за AV1. По-ниското е по-добро, но създава по-големи файлове.",
"transcoding_disabled_description": "Не разкодирай видеоклиповете, може да наруши възпроизвеждането на някои клиенти",
+ "transcoding_encoding_options": "Опции за кодиране",
+ "transcoding_encoding_options_description": "Задайте кодеци, резолюция, качество и други опции за кодираните видеоклипове",
"transcoding_hardware_acceleration": "Хардуерно ускорение",
"transcoding_hardware_acceleration_description": "Експериментално; много по-бързо, но с по-ниско качество при същия битрейт",
"transcoding_hardware_decoding": "Хардуерно декодиране",
"transcoding_hardware_decoding_setting_description": "Прилага се само за NVENC, QSV и RKMPP. Активира ускорение от край до край, вместо само да ускорява кодирането. Може да не работи с всички видеоклипове.",
"transcoding_hevc_codec": "HEVC кодек",
"transcoding_max_b_frames": "Максимални B-фрейма",
- "transcoding_max_b_frames_description": "По-високите стойности подобряват ефективността на компресията, но забавят разкодирането. Може да не е съвместим с хардуерното ускорение на по-стари устройства. 0 деактивира B-фрейма, докато -1 задава тази стойност автоматично.",
+ "transcoding_max_b_frames_description": "По-високите стойности подобряват ефективността на компресията, но забавят разкодирането. Може да не е съвместим с хардуерното ускорение на по-стари устройства. 0 деактивира B-фрейма, докато -1 задава тази стойност автоматично.",
"transcoding_max_bitrate": "Максимален битрейт",
"transcoding_max_bitrate_description": "Задаването на максимален битрейт може да направи размерите на файловете по-предвидими при незначителни разлики за качеството. При 720p типичните стойности са 2600k за VP9 или HEVC или 4500k за H.264. Деактивирано, ако е зададено на 0.",
"transcoding_max_keyframe_interval": "Максимален интервал между ключовите кадри",
"transcoding_max_keyframe_interval_description": "Задава максималното разстояние между ключовите кадри. По-ниските стойности влошават ефективността на компресията, но подобряват времето за търсене и могат да подобрят качеството в сцени с бързо движение. 0 задава тази стойност автоматично.",
"transcoding_optimal_description": "Видеоклипове с по-висока от целевата разделителна способност или не в приетия формат",
+ "transcoding_policy": "Политика за транскодиране",
+ "transcoding_policy_description": "Задайте кога видеоклипът ще бъде транскодиран",
"transcoding_preferred_hardware_device": "Предпочитано хардуерно устройство",
"transcoding_preferred_hardware_device_description": "Прилага се само за VAAPI и QSV. Задава dri възела, използван за хардуерно транскодиране.",
"transcoding_preset_preset": "Предварително зададени(-preset)",
"transcoding_preset_preset_description": "Скорост на компресия. По-бавните предварително зададени настройки създават по-малки файлове и повишават качеството при насочване към определен битрейт. VP9 игнорира скорости над „по-бързо“.",
- "transcoding_reference_frames": "Референтни фреймове",
+ "transcoding_reference_frames": "Референтни кадри",
"transcoding_reference_frames_description": "Броят кадри за препратка при компресиране на даден кадър. По-високите стойности подобряват ефективността на компресията, но забавят кодирането. 0 задава тази стойност автоматично.",
"transcoding_required_description": "Само видеа, които не са в приет формат",
"transcoding_settings": "Настройки за транскодиране на видеоклипове",
- "transcoding_settings_description": "Управление на информацията за разделителната способност и кодирането на видеофайловете",
+ "transcoding_settings_description": "Управлявайте кои видеоклипове да бъдат транскодирани и как да бъдат обработени",
"transcoding_target_resolution": "Целева резолюция",
"transcoding_target_resolution_description": "По-високите разделителни способности могат да представят повече детайли, но отнемат повече време за разкодиране, имат по-големи размери на файловете и могат да намалят отзивчивостта на приложението.",
"transcoding_temporal_aq": "Темпорален AQ",
"transcoding_temporal_aq_description": "Само за NVENC. Повишава качеството на сцени с висока детайлност и ниско ниво на движение. Може да не е съвместимо с по-стари устройства.",
"transcoding_threads": "Нишки",
"transcoding_threads_description": "По-високите стойности водят до по-бързо разкодиране, но оставят по-малко място за сървъра да обработва други задачи, докато е активен. Тази стойност не трябва да надвишава броя на процесорните ядра. Увеличава максимално използването, ако е зададено на 0.",
- "transcoding_tone_mapping": "Tone-mapping",
+ "transcoding_tone_mapping": "Тонално картографиране",
"transcoding_tone_mapping_description": "Опитва се да запази външния вид на HDR видеоклипове, когато се преобразува в SDR. Всеки алгоритъм прави различни компромиси за цвят, детайлност и яркост. Hable запазва детайлите, Mobius запазва цвета, а Reinhard запазва яркостта.",
"transcoding_transcode_policy": "Правила за транскодиране",
"transcoding_transcode_policy_description": "Правила за това кога видеоклипът трябва да бъде транскодиран. HDR видеоклиповете винаги ще бъдат транскодирани (освен ако транскодирането е деактивирано).",
@@ -356,9 +360,9 @@
"admin_password": "Администраторска парола",
"administration": "Администрация",
"advanced": "Разширено",
- "age_months": "Възраст {months, plural, one {# month} other {# months}}",
- "age_year_months": "Възраст 1 година, {months, plural, one {# month} other {# months}}",
- "age_years": "{years, plural, other {Age #}}",
+ "age_months": "Възраст {months, plural, one {# месец} other {# месеци}}",
+ "age_year_months": "Възраст 1 година, {months, plural, one {# месец} other {# месеци}}",
+ "age_years": "{years, plural, other {Година #}}",
"album_added": "Албумът е добавен",
"album_added_notification_setting_description": "Получавайте известие по имейл, когато бъдете добавени към споделен албум",
"album_cover_updated": "Обложката на албума е актуализирана",
@@ -378,7 +382,7 @@
"album_user_removed": "Премахнат {user}",
"album_with_link_access": "Нека всеки с линк вижда снимки и хора в този албум.",
"albums": "Албуми",
- "albums_count": "{count, plural, one {{count, number} Album} other {{count, number} Albums}}",
+ "albums_count": "{count, plural, one {{count, number} Албум} other {{count, number} Албуми}}",
"all": "Всички",
"all_albums": "Всички албуми",
"all_people": "Всички хора",
@@ -398,22 +402,22 @@
"archive_or_unarchive_photo": "Архивиране или деархивиране на снимка",
"archive_size": "Размер на архива",
"archive_size_description": "Конфигурирайте размера на архива за изтегляния (в GiB)",
- "archived_count": "{count, plural, other {Archived #}}",
+ "archived_count": "{count, plural, other {Архивирани #}}",
"are_these_the_same_person": "Това едно и също лице ли е?",
"are_you_sure_to_do_this": "Сигурни ли сте, че искате да направите това?",
"asset_added_to_album": "Добавено в албум",
"asset_adding_to_album": "Добавяне в албум...",
- "asset_description_updated": "Описание на актива е обновено",
+ "asset_description_updated": "Описанието на елемента е обновено",
"asset_filename_is_offline": "Активът {filename} е офлайн",
- "asset_has_unassigned_faces": "Активът има неразпределени лица",
+ "asset_has_unassigned_faces": "Елементът има незададени лица",
"asset_hashing": "Хеширане...",
- "asset_offline": "Ресурсът е офлайн",
+ "asset_offline": "Елементът е офлайн",
"asset_offline_description": "Този външен актив вече не се намира на диска. Моля, свържете се с администратора на Immich за помощ.",
"asset_skipped": "Пропуснато",
"asset_skipped_in_trash": "В кошчето",
"asset_uploaded": "Качено",
"asset_uploading": "Качване...",
- "assets": "Ресурси",
+ "assets": "Елементи",
"assets_added_count": "Добавено {count, plural, one {# asset} other {# assets}}",
"assets_added_to_album_count": "Добавен(и) са {count, plural, one {# актив} other {# актива}} в албума",
"assets_added_to_name_count": "Добавен(и) са {count, plural, one {# актив} other {# актива}} към {hasName, select, true {{name}} other {нов албум}}",
@@ -433,8 +437,8 @@
"birthdate_set_description": "Датата на раждане се използва за изчисляване на възрастта на този човек към момента на снимката.",
"blurred_background": "Замъглен заден фон",
"bugs_and_feature_requests": "Бъгове и заявки за функции",
- "build": "Build",
- "build_image": "Build Image",
+ "build": "Създаване",
+ "build_image": "Създаване на изображение",
"bulk_delete_duplicates_confirmation": "Сигурни ли сте, че искате да изтриете масово {count, plural, one {# дублиран файл} other {# дублирани файла}}? Това ще запази най-големия файл от всяка група и ще изтрие трайно всички други дубликати. Не можете да отмените това действие!",
"bulk_keep_duplicates_confirmation": "Сигурни ли сте, че искате да запазите {count, plural, one {# дублиран файл} other {# дублирани файла}}? Това ще потвърди всички групи дубликати, без да изтрива нищо.",
"bulk_trash_duplicates_confirmation": "Сигурни ли сте, че искате да преместите в кошчето масово {count, plural, one {# дублиран файл} other {# дублирани файла}}? Това ще запази най-големия файл от всяка група и ще премести в кошчето всички други дубликати.",
@@ -493,7 +497,7 @@
"copy_password": "Копиране на парола",
"copy_to_clipboard": "Копиране в клипборда",
"country": "Държава",
- "cover": "Cover",
+ "cover": "Покрий",
"covers": "Обложка",
"create": "Създай",
"create_album": "Създай албум",
@@ -597,12 +601,12 @@
"errors": {
"cannot_navigate_next_asset": "Не можете да преминете към следващия файл",
"cannot_navigate_previous_asset": "Не можете да преминете към предишния актив",
- "cant_apply_changes": "Не могат да се приложат промение",
+ "cant_apply_changes": "Не могат да се приложат промените",
"cant_change_activity": "Не може {enabled, select, true {да се деактивира} other {да се активира}} дейността",
"cant_change_asset_favorite": "Не може да промени любими за файл",
"cant_change_metadata_assets_count": "Не може да се промени метаданните на {count, plural, one {# обект} other {# обекта}}",
"cant_get_faces": "Не мога да намеря лица",
- "cant_get_number_of_comments": "Не може да получи броя на коментарите",
+ "cant_get_number_of_comments": "Не може да се получи броят на коментарите",
"cant_search_people": "Не може да търси хора",
"cant_search_places": "Не може да търси места",
"cleared_jobs": "Изчистени задачи за: {job}",
@@ -646,7 +650,7 @@
"unable_to_change_favorite": "Не може да промени фаворит за актив",
"unable_to_change_location": "Не може да се промени местоположението",
"unable_to_change_password": "Не може да се промени паролата",
- "unable_to_change_visibility": "Не може да се промени видимостта за {count, plural, one {# person} other {# people}}",
+ "unable_to_change_visibility": "Не може да се промени видимостта за {count, plural, one {# човек} other {# човека}}",
"unable_to_complete_oauth_login": "Не може да се завърши OAuth влизане",
"unable_to_connect": "Не може да се свърже",
"unable_to_connect_to_server": "Не може да се свърже със сървъра",
@@ -677,36 +681,48 @@
"unable_to_load_asset_activity": "Неуспешно зареждане на активност на обект",
"unable_to_load_items": "Неуспешно зареждане на обекти",
"unable_to_load_liked_status": "Неуспешно зареждане на статус на харесване",
- "unable_to_play_video": "",
- "unable_to_refresh_user": "",
- "unable_to_remove_album_users": "",
- "unable_to_remove_api_key": "",
- "unable_to_remove_deleted_assets": "",
- "unable_to_remove_library": "",
- "unable_to_remove_partner": "",
- "unable_to_remove_reaction": "",
- "unable_to_repair_items": "",
- "unable_to_reset_password": "",
- "unable_to_resolve_duplicate": "",
- "unable_to_restore_assets": "",
- "unable_to_restore_trash": "",
- "unable_to_restore_user": "",
- "unable_to_save_album": "",
- "unable_to_save_api_key": "",
- "unable_to_save_name": "",
- "unable_to_save_profile": "",
- "unable_to_save_settings": "",
- "unable_to_scan_libraries": "",
- "unable_to_scan_library": "",
- "unable_to_set_profile_picture": "",
- "unable_to_submit_job": "",
- "unable_to_trash_asset": "",
- "unable_to_unlink_account": "",
- "unable_to_update_library": "",
- "unable_to_update_location": "",
- "unable_to_update_settings": "",
+ "unable_to_log_out_all_devices": "Неуспешно излизане от всички устройства",
+ "unable_to_log_out_device": "Неуспешно излизане от устройството",
+ "unable_to_login_with_oauth": "Неуспешно влизане с OAuth",
+ "unable_to_play_video": "Неуспешно възпроизвеждане на видеото",
+ "unable_to_reassign_assets_existing_person": "Неуспешно пренасочване на елементи към {name, select, null {съществуващо лице} other {{name}}}",
+ "unable_to_reassign_assets_new_person": "Неуспешно пренасочване на елементи към нов човек",
+ "unable_to_refresh_user": "Неуспешно обновяване на потребителя",
+ "unable_to_remove_album_users": "Неуспешно премахване на потребители от албума",
+ "unable_to_remove_api_key": "Неуспешно премахване на API Key",
+ "unable_to_remove_assets_from_shared_link": "Неуспешно премахване на елементи от споделената връзка",
+ "unable_to_remove_deleted_assets": "Неуспешно премахване на офлайн файлове",
+ "unable_to_remove_library": "Неуспешно премахване на библиотеката",
+ "unable_to_remove_partner": "Неуспешно премахване на партньор",
+ "unable_to_remove_reaction": "Неуспешно премахване на реакцията",
+ "unable_to_repair_items": "Неуспешно поправяне на файловете",
+ "unable_to_reset_password": "Неуспешно смяна на паролата",
+ "unable_to_resolve_duplicate": "Неуспешно справяне с дублирането",
+ "unable_to_restore_assets": "Неуспешно възстановяване на елементи",
+ "unable_to_restore_trash": "Неуспешно възстановяване от кошчето",
+ "unable_to_restore_user": "Неуспешно възстановяване на потребителя",
+ "unable_to_save_album": "Неуспешно запаметяване на албума",
+ "unable_to_save_api_key": "Неуспешно запаметяване на API Key",
+ "unable_to_save_date_of_birth": "Неуспешно запаметяване на датата на раждане",
+ "unable_to_save_name": "Неуспешна промяна на името",
+ "unable_to_save_profile": "Неуспешно запаметяване на профила",
+ "unable_to_save_settings": "Неуспешно запаметяване на настройките",
+ "unable_to_scan_libraries": "Неуспешно сканиране на библиотеките",
+ "unable_to_scan_library": "Неуспешно сканиране на библиотеката",
+ "unable_to_set_feature_photo": "Неуспешно задаване на представителна снимка",
+ "unable_to_set_profile_picture": "Неуспешно задаване на профилна снимка",
+ "unable_to_submit_job": "Неуспешно задаване на задача",
+ "unable_to_trash_asset": "Неуспешно премахване на файла",
+ "unable_to_unlink_account": "Неуспешно отделяне на акаунта",
+ "unable_to_unlink_motion_video": "Неуспешно отделяне на видеото",
+ "unable_to_update_album_cover": "Неуспешно обновяване на корицата на албума",
+ "unable_to_update_album_info": "Неуспешно обновяване на информацията за албума",
+ "unable_to_update_library": "Неуспешно обновяване на библиотеката",
+ "unable_to_update_location": "Неуспешно обновяване на локацията",
+ "unable_to_update_settings": "Неуспешно обновяване на настройките",
"unable_to_update_timeline_display_status": "Невъзможно е актуализирането на състоянието на дисплея на времевата линия",
- "unable_to_update_user": ""
+ "unable_to_update_user": "Неуспешно обновяване на потребителя",
+ "unable_to_upload_file": "Неуспешно качване на файл"
},
"exif": "Exif",
"exit_slideshow": "Изход от слайдшоуто",
@@ -715,33 +731,41 @@
"expired": "Изтекло",
"expires_date": "Изтича {date}",
"explore": "Разгледай",
+ "explorer": "Преглед",
"export": "Експорт",
"export_as_json": "Експортиране като JSON",
"extension": "Разширение",
"external": "Външно",
"external_libraries": "Външни библиотеки",
"face_unassigned": "Незададено",
+ "failed_to_load_assets": "Неуспешно зареждане на елементи",
"favorite": "Любим",
- "favorite_or_unfavorite_photo": "",
+ "favorite_or_unfavorite_photo": "Добави или премахни снимка от Любими",
"favorites": "Любими",
- "feature_photo_updated": "",
- "file_name": "",
- "file_name_or_extension": "",
+ "feature_photo_updated": "Представителната снимка е променена",
+ "features": "Функции",
+ "features_setting_description": "Управление на функциите на приложението",
+ "file_name": "Име на файла",
+ "file_name_or_extension": "Име на файл или разширение",
"filename": "Име на файл",
"filetype": "Тип на файл",
"filter_people": "Филтриране на хора",
"find_them_fast": "Намерете ги бързо по име с търсене",
"fix_incorrect_match": "Поправяне на неправилно съвпадение",
+ "folders": "Папки",
+ "folders_feature_description": "Преглеждане на папката за снимките и видеоклиповете в файловата система",
"forward": "Напред",
"general": "Общи",
"get_help": "Помощ",
- "getting_started": "",
+ "getting_started": "Как да започнем",
"go_back": "Връщане назад",
+ "go_to_folder": "Отиди в папката",
"go_to_search": "Преминаване към търсене",
"group_albums_by": "Групирай албум по...",
+ "group_no": "Няма група",
"group_owner": "Групиране по собственик",
"group_year": "Групиране по година",
- "has_quota": "",
+ "has_quota": "Има лимит",
"hi_user": "Здравей, {name} {email}",
"hide_all_people": "Скрий всички хора",
"hide_gallery": "Скрий галерия",
@@ -749,80 +773,102 @@
"hide_password": "Скрий парола",
"hide_person": "Скрий човек",
"hide_unnamed_people": "Скрий неназовани хора",
- "host": "",
+ "host": "Хост",
"hour": "Час",
"image": "Изображение",
- "image_alt_text_date": "на {date}",
+ "image_alt_text_date": "{isVideo, select, true {Видео} other {Снимка}} заснето на {date}",
+ "image_alt_text_date_1_person": "{isVideo, select, true {Видео} other {Снимка}} заснето с {person1} на {date}",
+ "image_alt_text_date_2_people": "{isVideo, select, true {Видео} other {Снимка}} заснето с {person1} и {person2} на {date}",
+ "image_alt_text_date_3_people": "{isVideo, select, true {Видео} other {Снимка}} заснето с {person1}, {person2}, и {person3} на {date}",
+ "image_alt_text_date_4_or_more_people": "{isVideo, select, true {Видео} other {Снимка}} заснето с {person1}, {person2}, и {additionalCount, number} други на {date}",
+ "image_alt_text_date_place": "{isVideo, select, true {Видео} other {Снимка}} заснето в {city}, {country} на {date}",
+ "image_alt_text_date_place_1_person": "{isVideo, select, true {Видео} other {Снимка}} заснето в {city}, {country} с {person1} на {date}",
+ "image_alt_text_date_place_2_people": "{isVideo, select, true {Видео} other {Снимка}} заснето в {city}, {country} с {person1} и {person2} на {date}",
+ "image_alt_text_date_place_3_people": "{isVideo, select, true {Видео} other {Снимка}} заснето с {city}, {country} и {person1}, {person2}, и {person3} на {date}",
+ "image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Видео} other {Снимка}} заснето в {city}, {country} с {person1}, {person2}, и {additionalCount, number} други на{date}",
"immich_logo": "Immich лого",
- "immich_web_interface": "",
+ "immich_web_interface": "Уеб интерфейс на Immich",
"import_from_json": "Импортиране от JSON",
"import_path": "Път за импортиране",
- "in_albums": "",
+ "in_albums": "В {count, plural, one {# албум} other {# албума}}",
"in_archive": "В архив",
"include_archived": "Включване на архивирани",
"include_shared_albums": "Включване на споделени албуми",
- "include_shared_partner_assets": "",
+ "include_shared_partner_assets": "Включване на споделените с партньор елементи",
"individual_share": "Индивидуално споделяне",
"info": "Информация",
"interval": {
"day_at_onepm": "Всеки ден в 13:00",
- "hours": "",
+ "hours": "Всеки {hours, plural, one {час} other {{hours, number} часа}}",
"night_at_midnight": "Всяка вечер в полунощ",
"night_at_twoam": "Всяка нощ в 2 часа сутринта"
},
"invite_people": "Покани хора",
"invite_to_album": "Покани в албум",
+ "items_count": "{count, plural, one {# елемент} other {# елементи}}",
"jobs": "Задачи",
"keep": "Задръж",
"keep_all": "Задръж всички",
+ "keep_this_delete_others": "Запази това, изтрий другите",
+ "kept_this_deleted_others": "Запази този елемент и другите изтрити {count, plural, one {# елемент} other {# елемента}}",
"keyboard_shortcuts": "Бързи клавишни комбинации",
"language": "Език",
"language_setting_description": "Изберете предпочитан език",
"last_seen": "Последно видяно",
"latest_version": "Последна версия",
+ "latitude": "Ширина",
"leave": "Излез",
"let_others_respond": "Позволете на другите да отговорят",
"level": "Ниво",
"library": "Библиотека",
"library_options": "Опции на библиотеката",
"light": "Светло",
+ "like_deleted": "Като изтрит",
+ "link_motion_video": "Линк към видео",
"link_options": "Опции на линк за споделяне",
- "link_to_oauth": "",
- "linked_oauth_account": "",
+ "link_to_oauth": "Линк към OAuth",
+ "linked_oauth_account": "Свързан OAuth акаунт",
"list": "Лист",
"loading": "Зареждане",
"loading_search_results_failed": "Зареждането на резултатите от търсенето е неуспешно",
"log_out": "Излизане",
"log_out_all_devices": "Излизане с всички устройства",
+ "logged_out_all_devices": "Успешно излизане от всички устройства",
+ "logged_out_device": "Успешно излизане от устройство",
"login": "Вписване",
"login_has_been_disabled": "Влизането е деактивирано.",
"logout_all_device_confirmation": "Сигурни ли сте, че искате да излезете от всички устройства?",
"logout_this_device_confirmation": "Сигурни ли сте, че искате да излезете от това устройство?",
+ "longitude": "Дължина",
"look": "Изглед",
- "loop_videos": "",
- "loop_videos_description": "",
+ "loop_videos": "Повтаряне на видеата",
+ "loop_videos_description": "Позволи автоматично повтаряне на видеото в изгледа на детайлите.",
+ "main_branch_warning": "Използвате версия за разработчици, силно препоръчваме да използвате официална версия!",
"make": "Марка",
"manage_shared_links": "Управление на споделени връзки",
- "manage_sharing_with_partners": "",
+ "manage_sharing_with_partners": "Управление на споделянето с партньори",
"manage_the_app_settings": "Управление на настройките на приложението",
"manage_your_account": "Управление на профила ви",
"manage_your_api_keys": "Управление на вашите API ключове",
"manage_your_devices": "Управление на влезлите в системата устройства",
- "manage_your_oauth_connection": "",
+ "manage_your_oauth_connection": "Управление на OAuth връзката",
"map": "Карта",
+ "map_marker_for_images": "Маркери на картата за снимки направени в {city}, {country}",
"map_marker_with_image": "Маркер на картата с изображение",
"map_settings": "Настройки на картата",
"matches": "Съвпадения",
- "media_type": "",
+ "media_type": "Вид медия",
"memories": "Спомени",
- "memories_setting_description": "",
+ "memories_setting_description": "Управление на това, което виждате в спомени",
"memory": "Памет",
+ "memory_lane_title": "Спомени за {title}",
"menu": "Меню",
"merge": "Обединяване",
"merge_people": "Сливане на хора",
"merge_people_limit": "Можете да обединявате само до 5 лица в даден момент",
"merge_people_prompt": "Искате ли да слеете тези хора? Това действие е необратимо.",
"merge_people_successfully": "Успешно сливане на хора",
+ "merged_people_count": "Слят {count, plural, one {# човек} other {# човека}}",
"minimize": "Минимизиране",
"minute": "Минута",
"missing": "Липсващи",
@@ -834,6 +880,7 @@
"name": "Име",
"name_or_nickname": "Име или прякор",
"never": "Никога",
+ "new_album": "Нов Албум",
"new_api_key": "Нов API ключ",
"new_password": "Нова парола",
"new_person": "Нов човек",
@@ -849,16 +896,16 @@
"no_archived_assets_message": "Архивирайте снимки и видеоклипове, за да ги скриете от изгледа на Снимки",
"no_assets_message": "КЛИКНЕТЕ, ЗА ДА КАЧИТЕ ПЪРВАТА СИ СНИМКА",
"no_duplicates_found": "Не бяха открити дубликати.",
- "no_exif_info_available": "",
+ "no_exif_info_available": "Няма exif информация",
"no_explore_results_message": "Качете още снимки, за да разгледате колекцията си.",
"no_favorites_message": "Добавяне на любими, за да намерите бързо най-добрите си снимки и видеоклипове",
"no_libraries_message": "Създаване на външна библиотека за разглеждане на снимки и видеоклипове",
- "no_name": "",
- "no_places": "",
+ "no_name": "Без име",
+ "no_places": "Няма места",
"no_results": "Няма резултати",
"no_results_description": "Опитайте със синоним или по-обща ключова дума",
- "no_shared_albums_message": "",
- "not_in_any_album": "",
+ "no_shared_albums_message": "Създайте албум, за да споделяте снимки и видеоклипове с хората в мрежата си",
+ "not_in_any_album": "Не е в никой албум",
"note_apply_storage_label_to_previously_uploaded assets": "Забележка: За да приложите етикета за съхранение към предварително качени активи, стартирайте",
"note_unlimited_quota": "Забележка: Въведете 0 за неограничена квота",
"notes": "Бележки",
@@ -866,16 +913,21 @@
"notifications": "Известия",
"notifications_setting_description": "Управление на известията",
"oauth": "OAuth",
+ "official_immich_resources": "Официална информация за Immich",
"offline": "Офлайн",
- "offline_paths": "",
+ "offline_paths": "Офлайн пътища",
"offline_paths_description": "Тези резултати може да се дължат на ръчно изтриване на файлове, които не са част от външна библиотека.",
"ok": "Добре",
"oldest_first": "Най-старите първи",
+ "onboarding": "Въвеждане",
+ "onboarding_privacy_description": "Следните (незадължителни) функции разчитат на външни услуги и могат да бъдат деактивирани по всяко време в настройките за администриране.",
"onboarding_theme_description": "Изберете цветова тема за вашия пример. Можете да я промените по-късно в настройките си.",
"onboarding_welcome_description": "Нека настроим вашата инстанция с някои общи настройки.",
"onboarding_welcome_user": "Добре дошъл, {user}",
"online": "Онлайн",
"only_favorites": "Само любими",
+ "open_in_map_view": "Отвори в изглед на картата",
+ "open_in_openstreetmap": "Отвори в OpenStreetMap",
"open_the_search_filters": "Отваряне на филтрите за търсене",
"options": "Настройки",
"or": "или",
@@ -890,121 +942,202 @@
"partner_can_access": "{partner} има достъп",
"partner_can_access_assets": "Всички ваши снимки и видеоклипове, с изключение на тези в Архивирани и Изтрити",
"partner_can_access_location": "Мястото, където са направени снимките ви",
- "partner_sharing": "",
+ "partner_sharing": "Споделяне с партньори",
"partners": "Партньори",
"password": "Парола",
"password_does_not_match": "Паролата не съвпада",
"password_required": "Изисква се парола",
"password_reset_success": "Успешно възстановяване на паролата",
"past_durations": {
- "days": "",
- "hours": "",
- "years": ""
+ "days": "Преди {days, plural, one {ден} other {# дни}}",
+ "hours": "Преди {hours, plural, one {час} other {# часа}}",
+ "years": "Преди {years, plural, one {година} other {# години}}"
},
"path": "Път",
- "pattern": "",
+ "pattern": "Шаблон",
"pause": "Пауза",
"pause_memories": "Паузиране на спомените",
"paused": "Паузирано",
"pending": "В изчакване",
"people": "Хора",
+ "people_edits_count": "Промени {count, plural, one {# човек} other {# човека}}",
+ "people_feature_description": "Преглеждане на снимки и видеоклипове, групирани по хора",
"people_sidebar_description": "Показване на връзка към хората в страничната лента",
"permanent_deletion_warning": "Предупреждение за трайно изтриване",
"permanent_deletion_warning_setting_description": "Показване на предупреждение при трайно изтриване на активи",
"permanently_delete": "Трайно изтриване",
- "permanently_deleted_asset": "",
+ "permanently_delete_assets_count": "Изтрий завинаги {count, plural, one {елемент} other {елемента}}",
+ "permanently_delete_assets_prompt": "Сигурни ли сте, че искате да изтриете завинаги {count, plural, one {този елемент?} other {тези # елементи?}} Това ще премахне {count, plural, one {от неговия} other {от техните}} албум(и).",
+ "permanently_deleted_asset": "Изтрит завинаги елемент",
+ "permanently_deleted_assets_count": "Изтрит(и) завинаги{count, plural, one {# елемент} other {# елемента}}",
"person": "Човек",
+ "person_hidden": "{name}{hidden, select, true { (скрит)} other {}}",
+ "photo_shared_all_users": "Изглежда, че сте споделили снимките си с всички потребители или нямате потребители, с които да споделяте.",
"photos": "Снимки",
- "photos_count": "",
- "photos_from_previous_years": "",
- "pick_a_location": "",
+ "photos_and_videos": "Снимки и Видеа",
+ "photos_count": "{count, plural, one {{count, number} Снимка} other {{count, number} Снимки}}",
+ "photos_from_previous_years": "Снимки от предходни години",
+ "pick_a_location": "Избери локация",
"place": "Местоположение",
"places": "Местоположения",
- "play": "Пускане",
- "play_memories": "",
- "play_motion_photo": "",
- "play_or_pause_video": "",
+ "play": "Възпроизвеждане",
+ "play_memories": "Възпроизвеждане на спомени",
+ "play_motion_photo": "Възпроизведи Motion Photo",
+ "play_or_pause_video": "Възпроизвеждане или пауза на видео",
"port": "Порт",
- "preset": "",
+ "preset": "Шаблон",
"preview": "Прегледи",
"previous": "Предишно",
- "previous_memory": "",
- "previous_or_next_photo": "",
+ "previous_memory": "Предходен спомен",
+ "previous_or_next_photo": "Предходна или следваща снимка",
"primary": "Основно",
- "profile_picture_set": "",
- "public_share": "",
- "reaction_options": "",
- "read_changelog": "",
+ "privacy": "Поверителност",
+ "profile_image_of_user": "Профилна снимка на {user}",
+ "profile_picture_set": "Профилната снимка е сложена.",
+ "public_album": "Публичен албум",
+ "public_share": "Публично споделяне",
+ "purchase_account_info": "Поддръжник",
+ "purchase_activated_subtitle": "Благодарим ви, че подкрепяте Immich и софтуера с отворен код",
+ "purchase_activated_time": "Активиран на {date, date}",
+ "purchase_activated_title": "Вашият ключ беше успешно активиран",
+ "purchase_button_activate": "Активирай",
+ "purchase_button_buy": "Купи",
+ "purchase_button_buy_immich": "Купи Immich",
+ "purchase_button_never_show_again": "Не показвай повече",
+ "purchase_button_reminder": "Припомни ми след 30 дни",
+ "purchase_button_remove_key": "Махни ключа",
+ "purchase_button_select": "Избери",
+ "purchase_failed_activation": "Неуспешна активация! Моля, проверете имейла си за правилния продуктов ключ!",
+ "purchase_individual_description_1": "За индивидуален потребител",
+ "purchase_individual_description_2": "Поддръжнически статус",
+ "purchase_individual_title": "Индивидуален",
+ "purchase_input_suggestion": "Имате продуктов ключ? Въведете ключа по-долу",
+ "purchase_license_subtitle": "Закупете Immich, за да подкрепите продължаващото развитие на услугата",
+ "purchase_lifetime_description": "Покупка за цял живот",
+ "purchase_option_title": "ОПЦИИ ЗА ЗАКУПУВАНЕ",
+ "purchase_panel_info_1": "Създаването на Immich отнема много време и усилия, и имаме инженери на пълно работно време, които работят по него, за да го направим възможно най-добро. Нашата мисия е софтуерът с отворен код и етичните бизнес практики да се превърнат в устойчив източник на доходи за разработчиците и да създадем екосистема, която уважава личната неприкосновеност и предлага истински алтернативи на експлоататорските облачни услуги.",
+ "purchase_panel_info_2": "Тъй като сме ангажирани да не добавяме платени стени, тази покупка няма да ви предостави допълнителни функции в Immich. Ние разчитаме на потребители като вас, за да подкрепяте продължаващото развитие на Immich.",
+ "purchase_panel_title": "Поддържайте проекта",
+ "purchase_per_server": "на сървър",
+ "purchase_per_user": "на потребител",
+ "purchase_remove_product_key": "Премахни Продуктовият Ключ",
+ "purchase_remove_product_key_prompt": "Сигурни ли сте, че искате да премахнете продуктовия ключ?",
+ "purchase_remove_server_product_key": "Премахни продуктовия ключ на сървъра",
+ "purchase_remove_server_product_key_prompt": "Сигурни ли сте, че искате да премахнете продуктовия ключ на сървъра?",
+ "purchase_server_description_1": "За целият сървър",
+ "purchase_server_description_2": "Статус на поддръжника",
+ "purchase_server_title": "Сървър",
+ "purchase_settings_server_activated": "Продуктовият ключ на сървъра се управлява от администратора",
+ "rating": "Оценка със звезди",
+ "rating_clear": "Изчисти оценката",
+ "rating_count": "{count, plural, one {# звезда} other {# звезди}}",
+ "rating_description": "Покажи EXIF оценката в панела с информация",
+ "reaction_options": "Избор на реакция",
+ "read_changelog": "Прочети промените",
"reassign": "Преназначаване",
+ "reassigned_assets_to_existing_person": "Преназначени {count, plural, one {# елемент} other {# елемента}} на {name, select, null {съществуващ човек} other {{name}}}",
+ "reassigned_assets_to_new_person": "Преназначени {count, plural, one {# елемент} other {# елемента}} на нов човек",
+ "reassing_hint": "Назначи избраните елементи на съществуващо лице",
"recent": "Скорошни",
- "recent_searches": "",
+ "recent-albums": "Скорошни Албуми",
+ "recent_searches": "Скорошни търсения",
"refresh": "Опресняване",
+ "refresh_encoded_videos": "Опресни кодирани видеоклипове",
+ "refresh_faces": "Опресни лицата",
+ "refresh_metadata": "Опресни метаданните",
+ "refresh_thumbnails": "Опресни миниатюрите",
"refreshed": "Опреснено",
- "refreshes_every_file": "",
+ "refreshes_every_file": "Прочита отново всички съществуващи и нови файлове",
+ "refreshing_encoded_video": "Опресняване на кодираното видео",
+ "refreshing_faces": "Опресняване на лицата",
+ "refreshing_metadata": "Опресняване на метаданните",
+ "regenerating_thumbnails": "Пресъздаване на миниатюрите",
"remove": "Премахни",
- "remove_deleted_assets": "",
- "remove_from_album": "",
- "remove_from_favorites": "",
- "remove_from_shared_link": "",
- "removed_api_key": "",
+ "remove_assets_album_confirmation": "Сигурни ли сте, че искате да премахнете {count, plural, one {# елемент} other {# елемента}} от албума?",
+ "remove_assets_shared_link_confirmation": "Сигурни ли сте, че искате да премахнете {count, plural, one {# елемент} other {# елемента}} от този споеделен линк?",
+ "remove_assets_title": "Премахване на елементите?",
+ "remove_custom_date_range": "Премахни зададения диапазон от дати",
+ "remove_deleted_assets": "Премахни Изтритите Елементи",
+ "remove_from_album": "Премахни от албума",
+ "remove_from_favorites": "Премахни от Любими",
+ "remove_from_shared_link": "Премахни от споделения линк",
+ "remove_url": "Премахни URL",
+ "remove_user": "Премахни потребителя",
+ "removed_api_key": "Премахни API Key: {name}",
+ "removed_from_archive": "Премахни от Архива",
+ "removed_from_favorites": "Премахнато от Любими",
+ "removed_from_favorites_count": "{count, plural, other {Премахнати #}} от Любими",
+ "removed_tagged_assets": "Премахнат е етикетът от {count, plural, one {# елемент} other {# елемента}}",
"rename": "Преименувай",
"repair": "Поправи",
- "repair_no_results_message": "",
- "replace_with_upload": "",
+ "repair_no_results_message": "Неследените и липсващи файлове ще се покажат тук",
+ "replace_with_upload": "Смени с каченото",
"repository": "Хранилище",
- "require_password": "",
- "require_user_to_change_password_on_first_login": "",
+ "require_password": "Изискай парола",
+ "require_user_to_change_password_on_first_login": "Изисквай потребителят да промени паролата си при първото влизане",
"reset": "Нулиране",
- "reset_password": "",
- "reset_people_visibility": "",
- "resolved_all_duplicates": "",
+ "reset_password": "Нулиране на паролата",
+ "reset_people_visibility": "Нулиране на видимостта на хората",
+ "reset_to_default": "Връщане на фабрични настройки",
+ "resolve_duplicates": "Реши дубликатите",
+ "resolved_all_duplicates": "Всички дубликати са решени",
"restore": "Възстановяване",
- "restore_all": "",
- "restore_user": "",
+ "restore_all": "Възстанови всички",
+ "restore_user": "Възстанови потребител",
+ "restored_asset": "Възстановен елемент",
"resume": "Продължаване",
- "retry_upload": "",
- "review_duplicates": "",
+ "retry_upload": "Опитай качването отново",
+ "review_duplicates": "Разгледай дубликатите",
"role": "Роля",
"role_editor": "Редактор",
"role_viewer": "Зрител",
"save": "Запази",
- "saved_api_key": "",
- "saved_profile": "",
- "saved_settings": "",
- "say_something": "",
- "scan_all_libraries": "",
- "scan_settings": "",
- "scanning_for_album": "",
+ "saved_api_key": "Запазен API Key",
+ "saved_profile": "Запазен профил",
+ "saved_settings": "Запазени настройки",
+ "say_something": "Кажи нещо",
+ "scan_all_libraries": "Сканирай всички библиотеки",
+ "scan_library": "Сканирай",
+ "scan_settings": "Сканирай настройките",
+ "scanning_for_album": "Сканирай за албум...",
"search": "Търсене",
- "search_albums": "",
- "search_by_context": "",
- "search_camera_make": "",
- "search_camera_model": "",
- "search_city": "",
- "search_country": "",
- "search_for_existing_person": "",
+ "search_albums": "Търси албуми",
+ "search_by_context": "Търси по контекст",
+ "search_by_filename": "Търси по име на файла или разширение",
+ "search_by_filename_example": "например IMG_1234.JPG или PNG",
+ "search_camera_make": "Търси производител на камерата...",
+ "search_camera_model": "Търси модел на камерата...",
+ "search_city": "Търси град...",
+ "search_country": "Търси държава...",
+ "search_for_existing_person": "Търси съществуващ човек",
+ "search_no_people": "Няма хора",
+ "search_no_people_named": "Няма хора на име \"{name}\"",
+ "search_options": "Опции за търсене",
"search_people": "Търсете на хора",
"search_places": "Търсене на места",
- "search_state": "",
+ "search_settings": "Търсене на настройки",
+ "search_state": "Търсене на щат...",
"search_tags": "Търсене на етикети...",
"search_timezone": "Търсене на часова зона...",
"search_type": "Тип на търсене",
"search_your_photos": "Търсете вашите снимки",
- "searching_locales": "",
+ "searching_locales": "Търсене на локали...",
"second": "Секунда",
"see_all_people": "Вижте всички хора",
"select_album_cover": "Изберете обложка на албум",
"select_all": "Изберете всички",
+ "select_all_duplicates": "Избери всички дубликати",
"select_avatar_color": "Изберете цвят на аватара",
"select_face": "Изберете лице",
- "select_featured_photo": "",
+ "select_featured_photo": "Избери представителна снимка",
"select_from_computer": "Изберете от компютъра",
- "select_keep_all": "",
+ "select_keep_all": "Избери \"задръж всички\"",
"select_library_owner": "Изберете собственик на библиотека",
"select_new_face": "Изберете ново лице",
"select_photos": "Изберете снимки",
"select_trash_all": "Изберете всичко за кошчето",
"selected": "Избрано",
+ "selected_count": "{count, plural, other {# избрани}}",
"send_message": "Изпратете съобщение",
"send_welcome_email": "Изпратете имейл за добре дошли",
"server_offline": "Сървър офлайн",
@@ -1013,6 +1146,7 @@
"server_version": "Версия на сървъра",
"set": "Задай",
"set_as_album_cover": "Задаване като обложка на албум",
+ "set_as_featured_photo": "Задай като представителна снимка",
"set_as_profile_picture": "Задаване като профилна снимка",
"set_date_of_birth": "Задайте дата на раждане",
"set_profile_picture": "Задайте профилна снимка",
@@ -1027,11 +1161,12 @@
"shared_from_partner": "Снимки от {partner}",
"shared_link_options": "Опции за споделена връзка",
"shared_links": "Споделени връзки",
- "shared_photos_and_videos_count": "",
+ "shared_photos_and_videos_count": "{assetCount, plural, other {# споделени снимки и видеа.}}",
"shared_with_partner": "Споделено с {partner}",
"sharing": "Споделени",
"sharing_enter_password": "Моля, въведете паролата, за да видите тази страница.",
"sharing_sidebar_description": "Покажи връзка към Споделяне в страничната лента",
+ "shift_to_permanent_delete": "Натиснете ⇧, за да изтриете завинаги елемента",
"show_album_options": "Показване опции за албум",
"show_albums": "Покажи албуми",
"show_all_people": "Покажи всички хора",
@@ -1048,6 +1183,7 @@
"show_person_options": "Показване на опции за лица",
"show_progress_bar": "Показване на прогрес бара",
"show_search_options": "Показване на опциите за търсене",
+ "show_slideshow_transition": "Покажи прехода на слайдшоуто",
"show_supporter_badge": "Значка поддръжник",
"show_supporter_badge_description": "Покажи значка поддръжник",
"shuffle": "Разбъркване",
@@ -1066,18 +1202,21 @@
"sort_items": "Брой елементи",
"sort_modified": "Дата на промяна",
"sort_oldest": "Най-старата снимка",
+ "sort_people_by_similarity": "Сортиране на хора по прилика",
"sort_recent": "Най-новата снимка",
"sort_title": "Заглавие",
"source": "Източник",
- "stack": "",
+ "stack": "Събери",
"stack_duplicates": "Подреждане на дубликати",
+ "stack_select_one_photo": "Избери една главна снимка за събраните снимки",
"stack_selected_photos": "Подреждане на избрани снимки",
- "stacktrace": "",
+ "stacked_assets_count": "Събрани {count, plural, one {# елемент} other {# елементи}}",
+ "stacktrace": "Следа на събраните",
"start": "Старт",
"start_date": "Начална дата",
- "state": "",
+ "state": "Щат",
"status": "Статус",
- "stop_motion_photo": "",
+ "stop_motion_photo": "Снимка със стоп кадър",
"stop_photo_sharing": "Да спра ли споделянето на вашите снимки?",
"stop_photo_sharing_description": "{partner} вече няма достъп до вашите снимки.",
"stop_sharing_photos_with_user": "Прекратете споделянето на снимки с този потребител",
@@ -1087,65 +1226,82 @@
"submit": "Изпращане",
"suggestions": "Предложения",
"sunrise_on_the_beach": "Изгрев на плажа",
+ "support": "Поддръжка",
+ "support_and_feedback": "Поддръжка и обратна връзка",
+ "support_third_party_description": "Вашата инсталация на Immich е пакетирана от трета страна. Проблемите, които изпитвате, може да са причинени от този пакет, затова моля, първо подавайте проблемите си към тях чрез линковете по-долу.",
"swap_merge_direction": "Размяна посоката на сливане",
"sync": "Синхронизиране",
"tag": "Таг",
+ "tag_assets": "Тагни елементи",
"tag_created": "Създаден етикет: {tag}",
"tag_feature_description": "Разглеждане на снимки и видеоклипове, групирани по теми с логически тагове",
"tag_not_found_question": "Не можете да намерите етикет? Създайте такъв тук",
"tag_updated": "Актуализиран етикет: {tag}",
+ "tagged_assets": "Тагнати {count, plural, one {# елемент} other {# елементи}}",
"tags": "Етикет",
"template": "Шаблон",
"theme": "Тема",
"theme_selection": "Избор на тема",
"theme_selection_description": "Автоматично задаване на светла или тъмна тема въз основа на системните предпочитания на вашия браузър",
"they_will_be_merged_together": "Те ще бъдат обединени",
+ "third_party_resources": "Ресурси от трети страни",
"time_based_memories": "Спомени, базирани на времето",
+ "timeline": "Хронология",
"timezone": "Часова зона",
"to_archive": "Архивирай",
"to_change_password": "Промяна на паролата",
"to_favorite": "Любим",
"to_login": "Вписване",
+ "to_parent": "Отиди към родителския елемент",
"to_trash": "Кошче",
"toggle_settings": "Превключване на настройките",
"toggle_theme": "Превключване на тема",
+ "total": "Общо",
"total_usage": "Общо използвано",
"trash": "кошче",
"trash_all": "Изхвърли всички",
"trash_count": "Кошче {count, number}",
+ "trash_delete_asset": "Вкарай в Кошчето/Изтрий елемент",
"trash_no_results_message": "Изтритите снимки и видеоклипове ще се показват тук.",
- "trashed_items_will_be_permanently_deleted_after": "Изхвърлените в кошчето елементи ще бъдат изтрити за постоянно след {days, plural, one {# day} other {# days}}.",
+ "trashed_items_will_be_permanently_deleted_after": "Изхвърлените в кошчето елементи ще бъдат изтрити за постоянно след {days, plural, one {# ден} other {# дни}}.",
"type": "Тип",
"unarchive": "Разархивирай",
+ "unarchived_count": "{count, plural, other {Неархивирани #}}",
"unfavorite": "Премахване от любимите",
- "unhide_person": "",
+ "unhide_person": "Покажи отново човека",
"unknown": "Неизвестно",
"unknown_year": "Неизвестна година",
"unlimited": "Неограничено",
- "unlink_oauth": "",
- "unlinked_oauth_account": "",
+ "unlink_motion_video": "Премахни връзката с видео",
+ "unlink_oauth": "Премахни OAuth",
+ "unlinked_oauth_account": "Премахни OAuth акаунт",
"unnamed_album": "Албум без име",
"unnamed_album_delete_confirmation": "Сигурни ли сте, че искате да изтриете този албум?",
"unnamed_share": "Споделяне без име",
"unsaved_change": "Незапазена промяна",
"unselect_all": "Деселектирайте всички",
"unselect_all_duplicates": "От маркирай всички дубликати",
- "unstack": "",
+ "unstack": "Разкачи",
+ "unstacked_assets_count": "Разкачени {count, plural, one {# елемент} other {# елементи}}",
"untracked_files": "Непознати файлове",
"untracked_files_decription": "Тези файлове са не разпознати от приложението. Те могат да бъдат резултат от неуспешни прехвърля ния, прекъснати качвания или незавършени поради грешка",
"up_next": "Следващ",
"updated_password": "Паролата е актуализирана",
"upload": "Качване",
- "upload_concurrency": "",
+ "upload_concurrency": "Успоредни качвания",
+ "upload_errors": "Качването е завъшено с {count, plural, one {# грешка} other {# грешки}}, обновете страницата за да видите новите елементи.",
"upload_progress": "Остават {remaining, number} - Обработени {processed, number}/{total, number}",
+ "upload_skipped_duplicates": "Прескочени {count, plural, one {# дублиран елемент} other {# дублирани елементи}}",
"upload_status_duplicates": "Дубликати",
"upload_status_errors": "Грешки",
"upload_status_uploaded": "Качено",
"upload_success": "Качването е успешно, опреснете страницата, за да видите новите файлове.",
"url": "URL",
"usage": "Потребление",
+ "use_custom_date_range": "Използвайте собствен диапазон от дати вместо това",
"user": "Потребител",
"user_id": "Потребител ИД",
+ "user_liked": "{user} хареса {type, select, photo {тази снимка} video {това видео} asset {този елемент} other {}}",
"user_purchase_settings": "Покупка",
"user_purchase_settings_description": "Управлявай покупката си",
"user_role_set": "Задай {user} като {role}",
@@ -1159,7 +1315,9 @@
"variables": "Променливи",
"version": "Версия",
"version_announcement_closing": "Твой приятел, Алекс",
- "version_announcement_message": "Здравей, има нова версия на приложението. Моля, отдели малко време, за да разгледаш новости те за версията и да се увериш, че docker-compose.yml и .env е актуална, за да се предотвратят неправилни конфигурации, особено ако използвате WatchTower или друг механизъм, който управлява автоматичното актуализиране на вашето приложение.",
+ "version_announcement_message": "Здравейте! Налична е нова версия на Immich. Моля, отделете време да прочетете бележките за изданието, за да се уверите, че настройката ви е актуална и да предотвратите всякакви неправилни конфигурации, особено ако използвате WatchTower или друг механизъм за автоматично обновяване на вашата инстанция на Immich.",
+ "version_history": "История на версиите",
+ "version_history_item": "Инсталирана {version} на {date}",
"video": "Видеоклип",
"video_hover_setting": "Възпроизвеждане на видеоклип при посочване с мишката",
"video_hover_setting_description": "Възпроизвеждане на видеоклипа, когато мишката се движи над елемента. Дори когато е деактивирано, възпроизвеждането може да бъде стартирано чрез задържане на курсора на мишката върху иконата за възпроизвеждане.",
@@ -1171,16 +1329,18 @@
"view_all_users": "Преглед на всички потребители",
"view_in_timeline": "Покажи във времева линия",
"view_links": "Преглед на връзките",
+ "view_name": "Прегледай",
"view_next_asset": "Преглед на следващия файл",
"view_previous_asset": "Преглед на предишния файл",
"view_stack": "Покажи в стек",
- "visibility_changed": "Видимостта е променена за {count, plural, one {# person} other {# people}}",
+ "visibility_changed": "Видимостта е променена за {count, plural, one {# човек} other {# човека}}",
"waiting": "в изчакване",
"warning": "Внимание",
"week": "Седмица",
"welcome": "Добре дошли",
"welcome_to_immich": "Добре дошли в Immich",
"year": "Година",
+ "years_ago": "преди {years, plural, one {# година} other {# години}}",
"yes": "Да",
"you_dont_have_any_shared_links": "Нямате споделени връзки",
"zoom_image": "Увеличаване на изображението"
diff --git a/i18n/ca.json b/i18n/ca.json
index a38e9e4743..160a6cac8a 100644
--- a/i18n/ca.json
+++ b/i18n/ca.json
@@ -2,7 +2,7 @@
"about": "Sobre",
"account": "Compte",
"account_settings": "Configuració del compte",
- "acknowledge": "Confirmar",
+ "acknowledge": "D'acord",
"action": "Acció",
"actions": "Accions",
"active": "Actiu",
@@ -131,7 +131,7 @@
"machine_learning_smart_search_description": "Cerca imatges semànticament emprant incrustacions CLIP",
"machine_learning_smart_search_enabled": "Activa la cerca intel·ligent",
"machine_learning_smart_search_enabled_description": "Si està deshabilitat les imatges no es codificaran per la cerca intel·ligent.",
- "machine_learning_url_description": "URL del servidor d'aprenentatge automàtic",
+ "machine_learning_url_description": "La URL del servidor d'aprenentatge automàtic. Si es proporciona més d'una URL, s'intentarà accedir a cada servidor en ordre fins que un d'ells respongui correctament.",
"manage_concurrency": "Gestiona la concurrència",
"manage_log_settings": "Gestiona la configuració del registre",
"map_dark_style": "Tema fosc",
@@ -223,6 +223,8 @@
"send_welcome_email": "Enviar correu electrònic de benvinguda",
"server_external_domain_settings": "Domini extern",
"server_external_domain_settings_description": "Domini per enllaços públics compartits, incloent http(s)://",
+ "server_public_users": "Usuaris públics",
+ "server_public_users_description": "Tots els usuaris (nom i correu electrònic) apareixen a la llista a l'afegir un usuari als àlbums compartits. Si es desactiva, la llista només serà disponible pels usuaris administradors.",
"server_settings": "Configuració del servidor",
"server_settings_description": "Gestiona la configuració del servidor",
"server_welcome_message": "Missatge de benvinguda",
@@ -248,6 +250,16 @@
"storage_template_user_label": "{label} és l'etiqueta d'emmagatzematge de l'usuari",
"system_settings": "Configuració del sistema",
"tag_cleanup_job": "Neteja d'etiqueta",
+ "template_email_available_tags": "Pots fer servir les següents variables a la teva plantilla: {tags}",
+ "template_email_if_empty": "Si la plantilla està buida, es farà servir el correu electrònic predeterminat.",
+ "template_email_invite_album": "Plantilla per l'àlbum d'invitacions",
+ "template_email_preview": "Vista prèvia",
+ "template_email_settings": "Plantilles de correu electrònic",
+ "template_email_settings_description": "Gestionar les plantilles de notificació per correu electrònic personalitzades",
+ "template_email_update_album": "Actualitzar la plantilla de l'àlbum",
+ "template_email_welcome": "Plantilla del correu de benvinguda",
+ "template_settings": "Plantilles de notificació",
+ "template_settings_description": "Gestiona les plantilles personalitzades per les notificacions.",
"theme_custom_css_settings": "CSS personalitzat",
"theme_custom_css_settings_description": "Els Fulls d'Estil en Cascada permeten personalitzar el disseny d'Immich.",
"theme_settings": "Configuració del tema",
@@ -277,6 +289,8 @@
"transcoding_constant_rate_factor": "Factor de taxa constant (-crf)",
"transcoding_constant_rate_factor_description": "Nivell de qualitat del vídeo. Els valors típics són 23 per a H.264, 28 per a HEVC, 31 per a VP9 i 35 per a AV1. Més baix és millor, però produeix fitxers més grans.",
"transcoding_disabled_description": "No transcodifiqueu cap vídeo, pot interrompre la reproducció en alguns clients",
+ "transcoding_encoding_options": "Opcions de codificació",
+ "transcoding_encoding_options_description": "Establiu còdecs, resolució, qualitat i altres opcions per als vídeos codificats",
"transcoding_hardware_acceleration": "Acceleració de maquinari",
"transcoding_hardware_acceleration_description": "Experimental. Molt més ràpid, però tindrà una qualitat més baixa amb la mateixa taxa de bits",
"transcoding_hardware_decoding": "Descodificació de maquinari",
@@ -289,6 +303,8 @@
"transcoding_max_keyframe_interval": "Interval màxim de fotogrames clau",
"transcoding_max_keyframe_interval_description": "Estableix la distància màxima entre fotogrames clau. Els valors més baixos empitjoren l'eficiència de la compressió, però milloren els temps de cerca i poden millorar la qualitat en escenes amb moviment ràpid. 0 estableix aquest valor automàticament.",
"transcoding_optimal_description": "Vídeos superiors a la resolució objectiu o que no tenen un format acceptat",
+ "transcoding_policy": "Política de transcodificació",
+ "transcoding_policy_description": "Estableix quan es transcodificarà un vídeo",
"transcoding_preferred_hardware_device": "Dispositiu de maquinari preferit",
"transcoding_preferred_hardware_device_description": "S'aplica només a VAAPI i QSV. Estableix el node dri utilitzat per a la transcodificació de maquinari.",
"transcoding_preset_preset": "Preestablert (-preset)",
@@ -297,7 +313,7 @@
"transcoding_reference_frames_description": "El nombre de fotogrames a fer referència en comprimir un fotograma determinat. Els valors més alts milloren l'eficiència de la compressió, però alenteixen la codificació. 0 estableix aquest valor automàticament.",
"transcoding_required_description": "Només vídeos que no tenen un format acceptat",
"transcoding_settings": "Configuració de transcodificació de vídeo",
- "transcoding_settings_description": "Gestiona la resolució i codificació dels fitxers de vídeo",
+ "transcoding_settings_description": "Gestionar quins vídeos transcodificar i com processar-los",
"transcoding_target_resolution": "Resolució objectiu",
"transcoding_target_resolution_description": "Les resolucions més altes poden conservar més detalls, però triguen més temps a codificar-se, tenen mides de fitxer més grans i poden reduir la capacitat de resposta de l'aplicació.",
"transcoding_temporal_aq": "AQ temporal",
@@ -722,6 +738,7 @@
"external": "Extern",
"external_libraries": "Llibreries externes",
"face_unassigned": "Sense assignar",
+ "failed_to_load_assets": "Error carregant recursos",
"favorite": "Preferit",
"favorite_or_unfavorite_photo": "Foto preferida o no preferida",
"favorites": "Preferits",
@@ -742,6 +759,7 @@
"get_help": "Aconseguir ajuda",
"getting_started": "Començant",
"go_back": "Torna",
+ "go_to_folder": "Anar al directori",
"go_to_search": "Vés a cercar",
"group_albums_by": "Agrupa àlbums per...",
"group_no": "Cap agrupació",
@@ -1021,6 +1039,7 @@
"reassigned_assets_to_new_person": "{count, plural, one {S'ha reassignat # recurs} other {S'han reassignat # recursos}} a una persona nova",
"reassing_hint": "Assignar els elements seleccionats a una persona existent",
"recent": "Recent",
+ "recent-albums": "Àlbums recents",
"recent_searches": "Cerques recents",
"refresh": "Actualitzar",
"refresh_encoded_videos": "Actualitza vídeos codificats",
@@ -1042,6 +1061,7 @@
"remove_from_album": "Treu de l'àlbum",
"remove_from_favorites": "Eliminar dels preferits",
"remove_from_shared_link": "Eliminar de l'enllaç compartit",
+ "remove_url": "Eliminar URL",
"remove_user": "Eliminar l'usuari",
"removed_api_key": "Eliminada la clau d'API: {name}",
"removed_from_archive": "Eliminat de l'arxiu",
@@ -1126,6 +1146,7 @@
"server_version": "Versió del servidor",
"set": "Establir",
"set_as_album_cover": "Establir com a portada de l'àlbum",
+ "set_as_featured_photo": "Estableix com a foto destacada",
"set_as_profile_picture": "Establir com a imatge de perfil",
"set_date_of_birth": "Establir data de naixement",
"set_profile_picture": "Establir imatge de perfil",
@@ -1181,11 +1202,12 @@
"sort_items": "Nombre d'elements",
"sort_modified": "Data de modificació",
"sort_oldest": "Foto més antiga",
+ "sort_people_by_similarity": "Ordenar personar per semblança",
"sort_recent": "Foto més recent",
"sort_title": "Títol",
"source": "Font",
"stack": "Apila",
- "stack_duplicates": "Aplicar duplicats",
+ "stack_duplicates": "Aplica duplicats",
"stack_select_one_photo": "Selecciona una imatge principal per la pila",
"stack_selected_photos": "Apila les fotos seleccionades",
"stacked_assets_count": "Apilats {count, plural, one {# element} other {# elements}}",
@@ -1224,6 +1246,7 @@
"they_will_be_merged_together": "Es combinaran",
"third_party_resources": "Recursos de tercers",
"time_based_memories": "Records basats en el temps",
+ "timeline": "Cronologia",
"timezone": "Fus horari",
"to_archive": "Arxivar",
"to_change_password": "Canviar la contrasenya",
@@ -1233,6 +1256,7 @@
"to_trash": "Paperera",
"toggle_settings": "Canvia configuració",
"toggle_theme": "Alternar tema",
+ "total": "Total",
"total_usage": "Ús total",
"trash": "Paperera",
"trash_all": "Envia-ho tot a la paperera",
@@ -1305,6 +1329,7 @@
"view_all_users": "Mostra tot els usuaris",
"view_in_timeline": "Mostrar a la línia de temps",
"view_links": "Mostra enllaços",
+ "view_name": "Veure",
"view_next_asset": "Mostra el següent element",
"view_previous_asset": "Mostra l'element anterior",
"view_stack": "Veure la pila",
diff --git a/i18n/cs.json b/i18n/cs.json
index a762f26b9a..edb9c3c105 100644
--- a/i18n/cs.json
+++ b/i18n/cs.json
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Faktor konstantní rychlosti (-crf)",
"transcoding_constant_rate_factor_description": "Úroveň kvality videa. Typické hodnoty jsou 23 pro H.264, 28 pro HEVC, 31 pro VP9 a 35 pro AV1. Nižší je lepší, ale vytváří větší soubory.",
"transcoding_disabled_description": "Nepřekódovávejte žádná videa, u některých klientů může dojít k znemožnění přehrávání",
+ "transcoding_encoding_options": "Možnosti kódování",
+ "transcoding_encoding_options_description": "Nastavte kodeky, rozlišení, kvalitu a další možnosti pro kódovaná videa",
"transcoding_hardware_acceleration": "Hardwarová akcelerace",
"transcoding_hardware_acceleration_description": "Experimentální; mnohem rychlejší, ale při stejném datovém toku bude mít nižší kvalitu",
"transcoding_hardware_decoding": "Hardwarové dekódování",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Maximální interval klíčových snímků",
"transcoding_max_keyframe_interval_description": "Nastavuje maximální vzdálenost mezi klíčovými snímky. Nižší hodnoty zhoršují účinnost komprese, ale zlepšují rychlost při přeskakování a mohou zlepšit kvalitu ve scénách s rychlým pohybem. Hodnota 0 nastavuje tuto hodnotu automaticky.",
"transcoding_optimal_description": "Videa s vyšším než cílovým rozlišením nebo videa, která nejsou v akceptovaném formátu",
+ "transcoding_policy": "Politika překódovávání",
+ "transcoding_policy_description": "Nastavte po překódování videa",
"transcoding_preferred_hardware_device": "Preferované hardwarové zařízení",
"transcoding_preferred_hardware_device_description": "Platí pouze pro VAAPI a QSV. Nastaví dri uzel použitý pro hardwarové překódování.",
"transcoding_preset_preset": "Preset (-preset)",
@@ -309,7 +313,7 @@
"transcoding_reference_frames_description": "Počet referenčních snímků při kompresi daného snímku. Vyšší hodnoty zvyšují účinnost komprese, ale zpomalují kódování. Hodnota 0 toto nastavuje automaticky.",
"transcoding_required_description": "Pouze videa, která nejsou v akceptovaném formátu",
"transcoding_settings": "Překódování videa",
- "transcoding_settings_description": "Správa informací o rozlišení a kódování videosouborů",
+ "transcoding_settings_description": "Správa rozlišení a kódování videosouborů",
"transcoding_target_resolution": "Cílové rozlišení",
"transcoding_target_resolution_description": "Vyšší rozlišení mohou zachovat více detailů, ale jejich kódování trvá déle, mají větší velikost souboru a mohou snížit odezvu aplikace.",
"transcoding_temporal_aq": "Temporal AQ",
@@ -755,6 +759,7 @@
"get_help": "Získat pomoc",
"getting_started": "Začínáme",
"go_back": "Přejít zpět",
+ "go_to_folder": "Přejít do složky",
"go_to_search": "Přejít na vyhledávání",
"group_albums_by": "Seskupit alba podle...",
"group_no": "Neseskupovat",
@@ -1141,6 +1146,7 @@
"server_version": "Verze serveru",
"set": "Nastavit",
"set_as_album_cover": "Nastavit jako obal alba",
+ "set_as_featured_photo": "Nastavit jako hlavní fotografii",
"set_as_profile_picture": "Nastavit jako profilový obrázek",
"set_date_of_birth": "Nastavit datum narození",
"set_profile_picture": "Nastavit profilový obrázek",
@@ -1196,6 +1202,7 @@
"sort_items": "Počet položek",
"sort_modified": "Datum modifikace",
"sort_oldest": "Nejstarší fotka",
+ "sort_people_by_similarity": "Seřadit lidi podle podobnosti",
"sort_recent": "Nejnovější fotka",
"sort_title": "Název",
"source": "Zdroj",
diff --git a/i18n/cv.json b/i18n/cv.json
index 61dcb12b8d..5b71434ef8 100644
--- a/i18n/cv.json
+++ b/i18n/cv.json
@@ -45,8 +45,29 @@
"image_preview_quality_description": "1-100 таран малтанхи пахалӑх. Ҫӳллӗреххи лайӑхрах, анчах та пысӑкрах файлсем туса кӑларать тата приложенисен хуравлӑхне чакарма пултарать. Пӗчӗк хак лартни машинӑллӑ вӗренӳ пахалӑхне витӗм кӳме пултарать.",
"image_preview_title": "Малтанлӑха пӑхмалли ӗнерлевсем",
"image_quality": "Пахалӑх",
- "image_resolution": "Виҫе"
+ "image_resolution": "Виҫе",
+ "map_gps_settings": "Карттӑ тата GPS ĕнерленĕвĕ",
+ "map_gps_settings_description": "Карттӑпа GPS (каялла геоюмлани) ӗнерленисене йӗркелесе тӑрӑр",
+ "map_settings": "Карттӑ"
},
+ "explore": "Тишкер",
+ "explorer": "Тишкерӳҫӗ",
+ "manage_sharing_with_partners": "Партнерсемпе пайланассине йӗркелесе пырӑр",
+ "map": "Карттӑ",
+ "map_marker_for_images": "{city}, {country} ҫинче ӳкернӗ ӳкерчӗксем валли карттӑ маркерӗ",
+ "map_marker_with_image": "Карттӑ маркерӗ ӳкерчӗкпе",
+ "map_settings": "Карттӑ ĕнерленĕвĕ",
+ "no_explore_results_message": "Хӑвӑр коллекципе киленмешкӗн сӑнӳкерчӗксем ытларах тийӗр.",
+ "open_in_openstreetmap": "OpenStreetMap-па уҫ",
+ "partner_sharing": "Партнер пайланӑвӗ",
+ "photos": "Сӑнӳкерчӗксем",
+ "photos_and_videos": "Сӑнӳкерчӗксем тете Видеосем",
+ "photos_count": "{count, plural, one {{count, number} Сӑнӳкерчӗк} other {{count, number} Сӑнӳкерчӗксем}}",
+ "photos_from_previous_years": "Иртнӗ ҫулсенчи сӑнӳкерчӗксем",
+ "search_your_photos": "Сӑнӳкерчӗксене шырӑр",
+ "select_photos": "Сӑнӳкерчӗксем суйлӑр",
+ "sharing": "Пайлани",
+ "sharing_enter_password": "Ку питне курма пароль кӗртӗр.",
"user_usage_stats": "Шута ҫырни усӑ курмалли статистика",
"user_usage_stats_description": "Шута ҫырни усӑ курмалли статистикӑна пӑхасси"
}
diff --git a/i18n/da.json b/i18n/da.json
index e455c4d567..fea3eb78ab 100644
--- a/i18n/da.json
+++ b/i18n/da.json
@@ -7,7 +7,7 @@
"actions": "Handlinger",
"active": "Aktive",
"activity": "Aktivitet",
- "activity_changed": "Aktivitet er {aktiveret, valg, sand {aktiveret} andet {deaktiveret}}",
+ "activity_changed": "Aktivitet er {aktiveret, vælg, sandt {aktiveret} andet {deaktiveret}}",
"add": "Tilføj",
"add_a_description": "Tilføj en beskrivelse",
"add_a_location": "Tilføj en placering",
@@ -51,6 +51,7 @@
"create_job": "Opret job",
"cron_expression": "Cron formel",
"cron_expression_description": "Indstil skannings intervallet i cron format. For mere information se: Crontab Guru",
+ "cron_expression_presets": "cron predefinerede indstillinger",
"disable_login": "Deaktiver login",
"duplicate_detection_job_description": "Kør maskinlæring på mediefiler for at opdage lignende billeder. Er afhængig af Smart Søgning",
"exclusion_pattern_description": "Ekskluderingsmønstre lader dig ignorere filer og mapper, når du scanner dit bibliotek. Dette er nyttigt, hvis du har mapper, der indeholder filer, du ikke vil importere, såsom RAW-filer.",
@@ -69,14 +70,18 @@
"image_prefer_wide_gamut": "Foretrækker bred farveskala",
"image_prefer_wide_gamut_setting_description": "Brug Display P3 til miniaturebilleder. Dette bevarer billeder med brede farveskalaers dynamik bedre, men billeder kan komme til at se anderledes ud på gamle enheder med en gammel browserversion. sRGB-billeder bliver beholdt som sRGB for at undgå farveskift.",
"image_preview_description": "Mellemstørrelse billede med fjernet metadata, der bruges, når du ser en enkelt mediefil og til machine learning",
- "image_preview_quality_description": "Kvalitet af forhåndsvisning fra 1-100. Højere er bedre, men producerer større filer og kan reducere apprespons. Valg af en lav værdi kan påvirke kvaliteten af machine learning.",
+ "image_preview_quality_description": "Kvalitet af forhåndsvisning fra 1-100. Højere er bedre, men producerer større filer og kan reducere apprespons. Valg af en lav værdi kan påvirke kvaliteten af maskin læring.",
"image_preview_title": "Indstillinger for forhåndsvisning",
"image_quality": "Kvalitet",
"image_resolution": "Opløsning",
+ "image_resolution_description": "højere opløsning indeholder flere detaljer, men tager længere tid at processerer, giver større filer og sænker svartiderne i applikationen.",
"image_settings": "Billedindstillinger",
"image_settings_description": "Administrer kvaliteten og opløsningen af genererede billeder",
+ "image_thumbnail_description": "Små miniaturer uden metadata, bruges når der ses samlinger eller den primære tidslinie",
+ "image_thumbnail_quality_description": "Miniaturer kvaliteten indstilles fra 1 til 100. Nu højre, nu bedre kvalitet. Men giver større filer og påvirker programmets svartider.",
"image_thumbnail_title": "Thumbnail-indstillinger",
"job_concurrency": "{job} samtidighed",
+ "job_created": "opgaven er skabt",
"job_not_concurrency_safe": "Denne opgave er ikke sikker at køre samtidigt med andre.",
"job_settings": "Jobindstillinger",
"job_settings_description": "Administrér samtidige opgaver",
@@ -126,7 +131,7 @@
"machine_learning_smart_search_description": "Søg semantisk efter billeder ved hjælp af CLIP-indlejringer",
"machine_learning_smart_search_enabled": "Aktiver smart søgning",
"machine_learning_smart_search_enabled_description": "Hvis deaktiveret, vil billeder ikke blive kodet til smart søgning.",
- "machine_learning_url_description": "URL på maskinlæringsserveren",
+ "machine_learning_url_description": "URL på maskinlæringsserveren. Hvis der er angivet mere end én URL, hver server vil blive forsøgt en ad gangen, indtil en reagerer med succes, i rækkefølge fra første til sidste.",
"manage_concurrency": "Administrer antallet af samtidige opgaver",
"manage_log_settings": "Administrer logindstillinger",
"map_dark_style": "Mørk tema",
@@ -214,9 +219,12 @@
"reset_settings_to_default": "Nulstil indstillingerne til standard",
"reset_settings_to_recent_saved": "Nulstil indstillinger til de senest gemte indstillinger",
"scanning_library": "Scanner bibliotek",
+ "search_jobs": "søg opgaver ..",
"send_welcome_email": "Send velkomst-email",
"server_external_domain_settings": "Eksternt domæne",
"server_external_domain_settings_description": "Domæne til offentligt delte links, inklusiv http(s)://",
+ "server_public_users": "Offentlige brugere",
+ "server_public_users_description": "Alle brugere (navn og e-mail) vises, når en bruger tilføjes til delte album. Når den er deaktiveret, vil brugerlisten kun være tilgængelig for administratorbrugere.",
"server_settings": "Serverindstillinger",
"server_settings_description": "Administrér serverindstillinger",
"server_welcome_message": "Velkomstbesked",
@@ -233,7 +241,7 @@
"storage_template_migration": "Lagringsskabelonmigration",
"storage_template_migration_description": "Anvend den nuværende {template} på tidligere uploadede mediefiler",
"storage_template_migration_info": "Skabelonændringer vil kun gælde for nye mediefiler. For at anvende skabelonen retroaktivt på tidligere uploadede mediefiler skal du køre {job}.",
- "storage_template_migration_job": "Lager Skabelon Migrationsjob",
+ "storage_template_migration_job": "Lager Skabelon Migreringsjob",
"storage_template_more_details": "For flere detaljer om denne funktion, referer til Lager Skabelonen og dens implikationer",
"storage_template_onboarding_description": "Når denne funktion er aktiveret, vil den automatisk organisere filer baseret på en brugerdefineret skabelon. På grund af stabilitetsproblemer er funktionen som standard slået fra. For mere information, se dokumentation.",
"storage_template_path_length": "Anslået sti-længde begrænsning {length, number}/{limit, number}",
@@ -241,6 +249,17 @@
"storage_template_settings_description": "Administrer mappestrukturen og filnavnet for den uploadede mediefil",
"storage_template_user_label": "{label} er brugerens Lagringsmærkat",
"system_settings": "Systemindstillinger",
+ "tag_cleanup_job": "\"Tag\" cleanup",
+ "template_email_available_tags": "Du kan bruge følgende variabler i din skabelon: {tags}",
+ "template_email_if_empty": "Hvis skabelonen er tom, vil standard-e-mailen blive brugt.",
+ "template_email_invite_album": "Inviterings albumskabelon",
+ "template_email_preview": "Forhåndsvisning",
+ "template_email_settings": "Email skabeloner",
+ "template_email_settings_description": "Administrer tilpassede e-mailmeddelelsesskabeloner",
+ "template_email_update_album": "Opdater albumskabelon",
+ "template_email_welcome": "Velkomst e-mail skabelon",
+ "template_settings": "Notifikations skabeloner",
+ "template_settings_description": "Administrer tilpassede skabeloner for notifikationer.",
"theme_custom_css_settings": "Brugerdefineret CSS",
"theme_custom_css_settings_description": "Cascading Style Sheets tillader at give Immich et brugerdefineret look.",
"theme_settings": "Temaindstillinger",
@@ -270,6 +289,8 @@
"transcoding_constant_rate_factor": "Konstant ratefaktor (-crf)",
"transcoding_constant_rate_factor_description": "Videokvalitetsniveau. Typiske værdier er 23 for H.264, 28 for HEVC, 31 for VP9 og 35 for AV1. Lavere er bedre, men producerer større filer.",
"transcoding_disabled_description": "Lad være med at transkode nogen videoer, kan ødelægge playback hos nogle clients",
+ "transcoding_encoding_options": "Kodningsmuligheder",
+ "transcoding_encoding_options_description": "Indstil codecs, opløsning, kvalitet og andre muligheder for de kodede videoer",
"transcoding_hardware_acceleration": "Hardwareacceleration",
"transcoding_hardware_acceleration_description": "Eksperimentel; meget hurtigere, men vil have lavere kvalitet ved samme bitrate",
"transcoding_hardware_decoding": "Hardware-afkodning",
@@ -282,15 +303,17 @@
"transcoding_max_keyframe_interval": "Maksimal keyframe-interval",
"transcoding_max_keyframe_interval_description": "Sætter den maksimale frameafstand mellem keyframes. Lavere værdier forringer kompressionseffektiviteten, men forbedrer søgetider og kan forbedre kvaliteten i scener med hurtig bevægelse. 0 sætter denne værdi automatisk.",
"transcoding_optimal_description": "Videoer højere end målopløsningen eller ikke i et godkendt format",
+ "transcoding_policy": "Omkodningspolitik",
+ "transcoding_policy_description": "Indstil, hvornår en video skal omkodes",
"transcoding_preferred_hardware_device": "Foretrukne hardwareenhed",
"transcoding_preferred_hardware_device_description": "Gælder kun VAAPI og QSV. Sætter dri node'n som bruges til hardware-transkodning.",
"transcoding_preset_preset": "Forudindstilling (-preset)",
"transcoding_preset_preset_description": "Kompressionshastighed. Langsommere forudindstillinger producerer mindre filer, og øger kvalitet når der gås efter en specifik bitrate. VP9 ignorerer hastigheder hurtigere end \"hurtigere\".",
- "transcoding_reference_frames": "Referenceframes",
+ "transcoding_reference_frames": "Referencerammer",
"transcoding_reference_frames_description": "Antallet af frames, der skal refereres til, når en given frame komprimeres. Højere værdier forbedrer kompressionseffektiviteten, men gør indkodning langsommere. 0 sætter denne værdi automatisk.",
"transcoding_required_description": "Kun videoer ikke i et godkendt format",
"transcoding_settings": "Videotranskodningsindstillinger",
- "transcoding_settings_description": "Administrér videofilernes opløsning- og indkodningsinformation",
+ "transcoding_settings_description": "Administrer, hvilke videoer der skal omkodes, og hvordan de behandles",
"transcoding_target_resolution": "Målopløsning",
"transcoding_target_resolution_description": "Højere opløsninger kan bevare flere detaljer, men tager længere tid at indkode, har større filstørrelser og kan gøre appen mere sløv.",
"transcoding_temporal_aq": "Tidsmæssig AQ",
@@ -310,7 +333,7 @@
"trash_number_of_days_description": "Antal dage aktiver i skraldespanden skal beholdes inden de fjernes permanent",
"trash_settings": "Skraldeindstillinger",
"trash_settings_description": "Administrér skraldeindstillinger",
- "untracked_files": "Utrackede filer",
+ "untracked_files": "Usporede filer",
"untracked_files_description": "Applikationen holder ikke styr på disse filer. De kan være resultatet af mislykkede flytninger, afbrudte uploads eller være efterladt på grund af en fejl",
"user_cleanup_job": "Bruger-oprydning",
"user_delete_delay": "{user}'s konto og mediefiler vil blive planlagt til permanent sletning om {delay, plural, one {# dag} other {# dage}}.",
@@ -328,8 +351,8 @@
"user_successfully_removed": "Bruger {email} er blevet fjernet med succes.",
"version_check_enabled_description": "Aktivér versionstjek",
"version_check_implications": "Funktionen til versionstjek er afhængig af periodisk kommunikation med github.com",
- "version_check_settings": "Versiontjek",
- "version_check_settings_description": "Aktiver/deaktier notifikation for den nye version",
+ "version_check_settings": "Versionstjek",
+ "version_check_settings_description": "Aktiver/deaktiverer notifikation for den nye version",
"video_conversion_job": "Transkod videoer",
"video_conversion_job_description": "Transkod videoer for bredere kompatibilitet med browsere og enheder"
},
@@ -338,8 +361,8 @@
"administration": "Administration",
"advanced": "Avanceret",
"age_months": "Alder {months, plural, one {# month} other {# months}}",
- "age_year_months": "Alder 1 år, {months, plural, one {# måned} other {# måneder}}",
- "age_years": "{years, plural, other {Alder #}}",
+ "age_year_months": "Alder 1 år, {måneder, flertal, en {# måned} flere {# months}}",
+ "age_years": "{år, år, andre {Alder #}}",
"album_added": "Album tilføjet",
"album_added_notification_setting_description": "Modtag en emailnotifikation når du bliver tilføjet til en delt album",
"album_cover_updated": "Albumcover opdateret",
@@ -379,27 +402,46 @@
"archive_or_unarchive_photo": "Arkivér eller dearkivér billede",
"archive_size": "Arkiv størelse",
"archive_size_description": "Konfigurer arkivstørrelsen for downloads (i GiB)",
+ "archived_count": "{antal, flertal, andet {Arkiveret #}}",
"are_these_the_same_person": "Er disse den samme person?",
"are_you_sure_to_do_this": "Er du sikker på, at du vil gøre det her?",
"asset_added_to_album": "Tilføjet til album",
"asset_adding_to_album": "Tilføjer til album...",
"asset_description_updated": "Mediefilsbeskrivelse er blevet opdateret",
"asset_filename_is_offline": "Mediefil {filename} er offline",
+ "asset_has_unassigned_faces": "Aktivet har ikke-tildelte ansigter",
+ "asset_hashing": "Hashing...",
"asset_offline": "Mediefil offline",
"asset_offline_description": "Denne eksterne mediefil kan ikke længere findes på drevet. Kontakt venligst din Immich-administrator for hjælp.",
"asset_skipped": "Sprunget over",
+ "asset_skipped_in_trash": "I skraldespand",
"asset_uploaded": "Uploaded",
"asset_uploading": "Uploader...",
"assets": "elementer",
+ "assets_added_count": "Tilføjet {count, plural, one {# mediefil} other {# mediefiler}}",
+ "assets_added_to_album_count": "Tilføjet {count, plural, one {# mediefil} other {# mediefiler}} til albummet",
+ "assets_added_to_name_count": "Tilføjet {count, plural, one {# mediefil} other {# mediefiler}} til {hasName, select, true {{name}} other {nyt album}}",
+ "assets_count": "{count, plural, one {# mediefil} other {# mediefiler}}",
+ "assets_moved_to_trash_count": "Flyttede {count, plural, one {# mediefil} other {# mediefiler}} til papirkurven",
+ "assets_permanently_deleted_count": "Slettet permanent {count, plural, one {# mediefil} other {# mediefiler}}",
+ "assets_removed_count": "Fjernede {count, plural, one {# mediefil} other {# mediefiler}}",
+ "assets_restore_confirmation": "Er du sikker på, at du vil gendanne alle dine aktiver i papirkurven? Du kan ikke fortryde denne handling! Bemærk, at offline mediefiler ikke kan gendannes på denne måde.",
+ "assets_restored_count": "Gendannet {count, plural, one {# mediefil} other {# mediefiler}}",
+ "assets_trashed_count": "Smidt {count, plural, one {# mediefil} other {# mediefiler}} i papirkurven",
+ "assets_were_part_of_album_count": "{count, plural, one {Asset was} other {Assets were}} er allerede en del af albummet",
"authorized_devices": "Tilladte enheder",
"back": "Tilbage",
+ "back_close_deselect": "Tilbage, luk eller fravælg",
"backward": "Baglæns",
+ "birthdate_saved": "Fødselsdatoen blev gemt",
+ "birthdate_set_description": "Fødselsdato bruges til at beregne alderen på denne person på tidspunktet for et billede.",
"blurred_background": "Sløret baggrund",
"bugs_and_feature_requests": "Fejl & forbedringsønsker",
"build": "Byg",
"build_image": "Byggefil",
"bulk_delete_duplicates_confirmation": "Er du sikker på, at du vil slette alle {count, plural, one {# duplicate asset} other {# duplicate assets}}? Dette vil beholde den største fil i hver gruppe og slette alle dubletter. Denne handling kan ikke fortrydes!",
"bulk_keep_duplicates_confirmation": "Er du sikker på, at du vil beholde {count, plural, one {# duplicate asset} other {# duplicate assets}}? Dette vil løse alle dubletgrupper uden at slette noget.",
+ "bulk_trash_duplicates_confirmation": "Er du sikker på, at du vil masseslette {count, plural, one {# duplicate asset} other {# duplicate assets}}? Dette vil beholde det største aktiv i hver gruppe og smide alle andre dubletter.",
"buy": "Køb Immich",
"camera": "Kamera",
"camera_brand": "Kameramærke",
@@ -440,6 +482,7 @@
"confirm": "Bekræft",
"confirm_admin_password": "Bekræft administratoradgangskode",
"confirm_delete_shared_link": "Er du sikker på, at du vil slette dette delte link?",
+ "confirm_keep_this_delete_others": "Alle andre aktiver i stakken vil blive slettet undtagen dette aktiv. Er du sikker på, at du vil fortsætte?",
"confirm_password": "Bekræft adgangskode",
"contain": "Inddæm",
"context": "Kontekst",
@@ -463,7 +506,10 @@
"create_link_to_share": "Opret link for at dele",
"create_link_to_share_description": "Lad alle med linket se de(t) valgte billede(r)",
"create_new_person": "Opret ny person",
+ "create_new_person_hint": "Tildel valgte aktiver til en ny person",
"create_new_user": "Opret ny bruger",
+ "create_tag": "Opret tag",
+ "create_tag_description": "Opret et nyt tag. For indlejrede tags skal du indtaste den fulde sti til tagget inklusive skråstreger.",
"create_user": "Opret bruger",
"created": "Oprettet",
"current_device": "Nuværende enhed",
@@ -473,19 +519,26 @@
"date_after": "Dato efter",
"date_and_time": "Dato og klokkeslæt",
"date_before": "Dato før",
+ "date_of_birth_saved": "Fødselsdatoen blev gemt",
"date_range": "Datointerval",
"day": "Dag",
- "default_locale": "Standardlokale",
+ "deduplicate_all": "Dedupliker alle",
+ "default_locale": "Standardlokalitet",
"default_locale_description": "Formatér datoer og tal",
"delete": "Slet",
"delete_album": "Slet album",
"delete_api_key_prompt": "Er du sikker på, at du vil slette denne API-nøgle?",
+ "delete_duplicates_confirmation": "Er du sikker på, at du vil slette disse dubletter permanent?",
"delete_key": "Slet nøgle",
"delete_library": "Slet bibliotek",
"delete_link": "Slet link",
+ "delete_others": "Slet andre",
"delete_shared_link": "Slet delt link",
+ "delete_tag": "Slet tag",
+ "delete_tag_confirmation_prompt": "Er du sikker på, at du vil slette {tagName}-tagget?",
"delete_user": "Slet bruger",
"deleted_shared_link": "Slettede delt link",
+ "deletes_missing_assets": "Sletter aktiver, der mangler fra disken",
"description": "Beskrivelse",
"details": "DETALJER",
"direction": "Retning",
@@ -500,12 +553,18 @@
"display_original_photos": "Vis originale billeder",
"display_original_photos_setting_description": "Foretræk at vise det originale billede frem for miniaturebilleder når den originale fil er web-kompatibelt. Dette kan gøre billedvisning langsommere.",
"do_not_show_again": "Vis ikke denne besked igen",
+ "documentation": "Dokumentation",
"done": "Færdig",
"download": "Hent",
+ "download_include_embedded_motion_videos": "Indlejrede videoer",
+ "download_include_embedded_motion_videos_description": "Inkluder videoer indlejret i levende billeder som en separat fil",
"download_settings": "Download",
"download_settings_description": "Administrer indstillinger relateret til mediefil-downloads",
"downloading": "Downloader",
+ "downloading_asset_filename": "Downloader aktiv {filename}",
+ "drop_files_to_upload": "Slip filer hvor som helst for at uploade dem",
"duplicates": "Duplikater",
+ "duplicates_description": "Løs hver gruppe ved at angive, hvilke, hvis nogen, er dubletter",
"duration": "Varighed",
"edit": "Rediger",
"edit_album": "Redigér album",
@@ -521,15 +580,18 @@
"edit_location": "Rediger placering",
"edit_name": "Rediger navn",
"edit_people": "Redigér personer",
+ "edit_tag": "Rediger tag",
"edit_title": "Redigér titel",
"edit_user": "Redigér bruger",
"edited": "Redigeret",
"editor": "Redaktør",
"editor_close_without_save_prompt": "Ændringerne vil ikke blive gemt",
"editor_close_without_save_title": "Luk editor?",
+ "editor_crop_tool_h2_aspect_ratios": "Størrelsesforhold",
"editor_crop_tool_h2_rotation": "Rotation",
"email": "E-mail",
"empty_trash": "Tøm papirkurv",
+ "empty_trash_confirmation": "Er du sikker på, at du vil tømme papirkurven? Dette vil fjerne alle aktiver i papirkurven permanent fra Immich.\nDu kan ikke fortryde denne handling!",
"enable": "Aktivér",
"enabled": "Aktiveret",
"end_date": "Slutdato",
@@ -539,6 +601,14 @@
"errors": {
"cannot_navigate_next_asset": "Kan ikke navigere til næste mediefil",
"cannot_navigate_previous_asset": "Kan ikke navigere til forrige mediefil",
+ "cant_apply_changes": "Ændringerne kan ikke anvendes",
+ "cant_change_activity": "Kan ikke {enabled, select, true {disable} other {enable}} aktivitet",
+ "cant_change_asset_favorite": "Kan ikke ændre favorit til aktiv",
+ "cant_change_metadata_assets_count": "Kan ikke ændre metadata for {count, plural, one {# asset} other {# assets}}",
+ "cant_get_faces": "Kan ikke hente ansigter",
+ "cant_get_number_of_comments": "Kan ikke få antallet af kommentarer",
+ "cant_search_people": "Kan ikke søge efter folk",
+ "cant_search_places": "Kan ikke søge efter steder",
"cleared_jobs": "Ryddede opgaver for: {job}",
"error_adding_assets_to_album": "Fejl i tilføjelse af mediefiler til album",
"error_adding_users_to_album": "Fejl i tilføjelse af brugere til album",
@@ -546,15 +616,20 @@
"error_downloading": "Fejl i download af {filename}",
"error_hiding_buy_button": "Fejl i skjulning af køb-knap",
"error_removing_assets_from_album": "Fejl i fjernelse af mediefiler fra album. Tjek konsol for flere detaljer",
+ "error_selecting_all_assets": "Fejl ved valg af alle aktiver",
"exclusion_pattern_already_exists": "Denne udelukkelsesmønster findes allerede.",
"failed_job_command": "Kommando {command} slog fejl for opgave: {job}",
"failed_to_create_album": "Oprettelse af album mislykkedes",
"failed_to_create_shared_link": "Oprettelse af delt link mislykkedes",
"failed_to_edit_shared_link": "Redigering af delt link mislykkedes",
+ "failed_to_get_people": "Det lykkedes ikke at hente folk",
+ "failed_to_keep_this_delete_others": "Kunne ikke beholde dette aktiv og slette de andre aktiver",
"failed_to_load_asset": "Indlæsning af mediefil mislykkedes",
"failed_to_load_assets": "Indlæsning af mediefiler mislykkedes",
"failed_to_load_people": "Indlæsning af personer mislykkedes",
"failed_to_remove_product_key": "Fjernelse af produktnøgle mislykkedes",
+ "failed_to_stack_assets": "Det lykkedes ikke at stable aktiver",
+ "failed_to_unstack_assets": "Det lykkedes ikke at fjerne stablen af aktiver",
"import_path_already_exists": "Denne importsti findes allerede.",
"incorrect_email_or_password": "Forkert email eller kodeord",
"paths_validation_failed": "{paths, plural, one {# sti} other {# stier}} slog fejl ved validering",
@@ -562,16 +637,24 @@
"quota_higher_than_disk_size": "Du har sat en kvote der er større end disken",
"repair_unable_to_check_items": "Kunne ikke tjekke {count, select, one {element} other {elementer}}",
"unable_to_add_album_users": "Ikke i stand til at tilføje brugere til album",
+ "unable_to_add_assets_to_shared_link": "Kan ikke tilføje aktiver til delt link",
"unable_to_add_comment": "Ikke i stand til at tilføje kommentar",
"unable_to_add_exclusion_pattern": "Kunne ikke tilføje udelukkelsesmønster",
"unable_to_add_import_path": "Kunne ikke tilføje importsti",
"unable_to_add_partners": "Ikke i stand til at tilføje partnere",
+ "unable_to_add_remove_archive": "Kan Ikke {archived, select, true {fjerne aktiv fra} other {tilføje aktiv til}} Arkiv",
+ "unable_to_add_remove_favorites": "Kan ikke {favorite, select, true {tilføje aktiv til} other {fjerne aktiv fra}} favoritter",
"unable_to_change_album_user_role": "Ikke i stand til at ændre albumbrugerens rolle",
"unable_to_change_date": "Ikke i stand til at ændre dato",
+ "unable_to_change_favorite": "Kan ikke ændre favorit for aktiv",
"unable_to_change_location": "Ikke i stand til at ændre sted",
"unable_to_change_password": "Kunne ikke ændre adgangskode",
+ "unable_to_change_visibility": "Kan ikke ændre synligheden for {count, plural, one {# person} other {# personer}}",
+ "unable_to_complete_oauth_login": "Kan ikke fuldføre OAuth-login",
+ "unable_to_connect": "Kan ikke oprette forbindelse",
+ "unable_to_connect_to_server": "Kan ikke oprette forbindelse til serveren",
"unable_to_copy_to_clipboard": "Kan ikke kopiere til udklipsholder, sørg for at du tilgår siden gennem https",
- "unable_to_create_admin_account": "",
+ "unable_to_create_admin_account": "Kan ikke oprette en administratorkonto",
"unable_to_create_api_key": "Kunne ikke oprette ny API-nøgle",
"unable_to_create_library": "Ikke i stand til at oprette bibliotek",
"unable_to_create_user": "Ikke i stand til at oprette bruger",
@@ -582,21 +665,31 @@
"unable_to_delete_import_path": "Kunne ikke slette importsti",
"unable_to_delete_shared_link": "Kunne ikke slette delt link",
"unable_to_delete_user": "Ikke i stand til at slette bruger",
+ "unable_to_download_files": "Kan ikke downloade filer",
"unable_to_edit_exclusion_pattern": "Kunne ikke redigere udelukkelsesmønster",
"unable_to_edit_import_path": "Kunne ikke redigere importsti",
"unable_to_empty_trash": "Ikke i stand til at tømme skraldespand",
"unable_to_enter_fullscreen": "Kan ikke aktivere fuldskærmstilstand",
"unable_to_exit_fullscreen": "Kan ikke forlade fuldskærmstilstand",
+ "unable_to_get_comments_number": "Kan ikke få antallet af kommentarer",
+ "unable_to_get_shared_link": "Kunne ikke hente delt link",
"unable_to_hide_person": "Ikke i stand til at gemme person",
+ "unable_to_link_motion_video": "Kan ikke linke bevægelsesvideo",
"unable_to_link_oauth_account": "Kunne ikke tilkoble OAuth-konto",
"unable_to_load_album": "Ikke i stand til hente album",
"unable_to_load_asset_activity": "Kunne ikke hente aktivitet for mediet",
"unable_to_load_items": "Ikke i stand til at hente ting",
"unable_to_load_liked_status": "Ikke i stand til hente synes-om-status",
+ "unable_to_log_out_all_devices": "Kan ikke logge af alle enheder",
+ "unable_to_log_out_device": "Enheden kunne ikke logges af",
+ "unable_to_login_with_oauth": "Kan ikke logge på med OAuth",
"unable_to_play_video": "Ikke i stand til at afspille video",
+ "unable_to_reassign_assets_existing_person": "Kan ikke gentildele aktiver til {navn, vælg, null {en eksisterende person} anden {{name}}}",
+ "unable_to_reassign_assets_new_person": "Kan ikke omfordele aktiver til en ny person",
"unable_to_refresh_user": "Ikke i stand til at genopfriske bruger",
"unable_to_remove_album_users": "Ikke i stand til at fjerne brugere fra album",
"unable_to_remove_api_key": "Kunne ikke fjerne API-nøgle",
+ "unable_to_remove_assets_from_shared_link": "Kan ikke fjerne aktiver fra delt link",
"unable_to_remove_deleted_assets": "Kunne ikke fjerne offlinefiler",
"unable_to_remove_library": "Ikke i stand til at fjerne bibliotek",
"unable_to_remove_partner": "Ikke i stand til at fjerne partner",
@@ -609,20 +702,26 @@
"unable_to_restore_user": "Ikke i stand til at genoprette bruger",
"unable_to_save_album": "Ikke i stand til at gemme album",
"unable_to_save_api_key": "Kunne ikke gemme API-nøgle",
+ "unable_to_save_date_of_birth": "Kan ikke gemme fødselsdatoen",
"unable_to_save_name": "Ikke i stand til at gemme navn",
"unable_to_save_profile": "Ikke i stand til at gemme profil",
"unable_to_save_settings": "Ikke i stand til at gemme indstillinger",
"unable_to_scan_libraries": "Ikke i stand til at skanne biblioteker",
"unable_to_scan_library": "Ikke i stand til at skanne bibliotek",
+ "unable_to_set_feature_photo": "Det var ikke muligt at indstille et fremhævet billede",
"unable_to_set_profile_picture": "Ikke i stand til at sætte profilbillede",
"unable_to_submit_job": "Ikke i stand til at indsende opgave",
"unable_to_trash_asset": "Kunne ikke slette medie",
"unable_to_unlink_account": "Ikke i stand til at frakoble konto",
+ "unable_to_unlink_motion_video": "Kunne ikke fjerne linket til bevægelsesvideo",
+ "unable_to_update_album_cover": "Albumomslaget kunne ikke opdateres",
+ "unable_to_update_album_info": "Albumoplysningerne kunne ikke opdateres",
"unable_to_update_library": "Ikke i stand til at opdatere bibliotek",
"unable_to_update_location": "Ikke i stand til at opdatere sted",
"unable_to_update_settings": "Ikke i stand til at opdatere indstillinger",
"unable_to_update_timeline_display_status": "Kunne ikke opdate status for tidslinjevisning",
- "unable_to_update_user": "Ikke i stand til at opdatere bruger"
+ "unable_to_update_user": "Ikke i stand til at opdatere bruger",
+ "unable_to_upload_file": "Filen kunne ikke uploades"
},
"exif": "Exif",
"exit_slideshow": "Forlad slideshow",
@@ -636,6 +735,8 @@
"extension": "Udvidelse",
"external": "Ekstern",
"external_libraries": "Eksterne biblioteker",
+ "face_unassigned": "Ikke tildelt",
+ "failed_to_load_assets": "Kunne ikke indlæse aktiver",
"favorite": "Favorit",
"favorite_or_unfavorite_photo": "Tilføj eller fjern fra yndlingsbilleder",
"favorites": "Favoritter",
@@ -650,14 +751,18 @@
"find_them_fast": "Find dem hurtigt med søgning via navn",
"fix_incorrect_match": "Fix forkert match",
"folders": "Mapper",
+ "folders_feature_description": "Gennemse mappevisningen efter fotos og videoer på filsystemet",
"forward": "Fremad",
"general": "Generel",
"get_help": "Få hjælp",
"getting_started": "Kom godt i gang",
"go_back": "Gå tilbage",
+ "go_to_folder": "Gå til mappe",
"go_to_search": "Gå til søgning",
"group_albums_by": "Gruppér albummer efter...",
"group_no": "Ingen gruppering",
+ "group_owner": "Grupper efter ejer",
+ "group_year": "Grupper efter år",
"has_quota": "Har kvote",
"hi_user": "Hej {name} ({email})",
"hide_all_people": "Skjul alle personer",
@@ -669,10 +774,21 @@
"host": "Host",
"hour": "Time",
"image": "Billede",
+ "image_alt_text_date": "{isVideo, select, true {Video} other {Image}} taget den {date}",
+ "image_alt_text_date_1_person": "{isVideo, select, true {Video} other {Image}} taget med {person1} den {date}",
+ "image_alt_text_date_2_people": "{isVideo, select, true {Video} other {Image}} taget med {person1} og {person2} den {date}",
+ "image_alt_text_date_3_people": "{isVideo, select, true {Video} other {Image}} taget med {person1}, {person2}, og {person3} den {date}",
+ "image_alt_text_date_4_or_more_people": "{isVideo, select, true {Video} other {Image}} taget med {person1}, {person2}, og {additionalCount, number} andre den {date}",
+ "image_alt_text_date_place": "{isVideo, select, true {Video} other {Image}} taget i {city}, {country} den {date}",
+ "image_alt_text_date_place_1_person": "{isVideo, select, true {Video} other {Image}} taget i {city}, {country} med {person1} den {date}",
+ "image_alt_text_date_place_2_people": "{isVideo, select, true {Video} other {Image}} taget i {city}, {country} med {person1} og {person2} den {date}",
+ "image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} taget i {city}, {country} med {person1}, {person2}, og {person3} den {date}",
+ "image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} taget i {city}, {country} med {person1}, {person2}, og {additionalCount, number} andre den {date}",
"immich_logo": "Immich logo",
"immich_web_interface": "Immich webinterface",
"import_from_json": "Importér fra JSON",
"import_path": "Import-sti",
+ "in_albums": "I {count, plural, one {# album} other {# albummer}}",
"in_archive": "I arkiv",
"include_archived": "Inkluder arkiveret",
"include_shared_albums": "Inkludér delte albummer",
@@ -687,20 +803,26 @@
},
"invite_people": "Inviter personer",
"invite_to_album": "Inviter til album",
+ "items_count": "{count, plural, one {# genstand} other {# genstande}}",
"jobs": "Opgaver",
"keep": "Behold",
"keep_all": "Behold alle",
+ "keep_this_delete_others": "Behold dette, slet andre",
+ "kept_this_deleted_others": "Beholdt dette aktiv og slettede {count, plural, one {# aktiv} other {# aktiver}}",
"keyboard_shortcuts": "Tastaturgenveje",
"language": "Sprog",
"language_setting_description": "Vælg dit foretrukne sprog",
"last_seen": "Sidst set",
"latest_version": "Seneste version",
+ "latitude": "Breddegrad",
"leave": "Forlad",
"let_others_respond": "Lad andre svare",
"level": "Niveau",
"library": "Bibliotek",
"library_options": "Biblioteksindstillinger",
"light": "Lys",
+ "like_deleted": "Ligesom slettet",
+ "link_motion_video": "Link bevægelses video",
"link_options": "Link-indstillinger",
"link_to_oauth": "Link til OAuth",
"linked_oauth_account": "Tilsluttet OAuth-konto",
@@ -715,9 +837,11 @@
"login_has_been_disabled": "Login er blevet deaktiveret.",
"logout_all_device_confirmation": "Er du sikker på, at du vil logge ud af alle enheder?",
"logout_this_device_confirmation": "Er du sikker på, at du vil logge denne enhed ud?",
+ "longitude": "Længde",
"look": "Kig",
"loop_videos": "Gentag videoer",
"loop_videos_description": "Aktivér for at genafspille videoer automatisk i detaljeret visning.",
+ "main_branch_warning": "Du bruger en udviklingsversion; vi anbefaler kraftigt at bruge en udgivelsesversion!",
"make": "Producent",
"manage_shared_links": "Håndter delte links",
"manage_sharing_with_partners": "Administrér deling med partnere",
@@ -727,23 +851,29 @@
"manage_your_devices": "Administrér dine enheder der er logget ind",
"manage_your_oauth_connection": "Administrér din OAuth-tilslutning",
"map": "Kort",
+ "map_marker_for_images": "Kortmarkør for billeder taget i {city}, {country}",
"map_marker_with_image": "Kortmarkør med billede",
"map_settings": "Kortindstillinger",
"matches": "Parringer",
"media_type": "Medietype",
"memories": "Minder",
"memories_setting_description": "Administrér hvad du ser i dine minder",
+ "memory": "Hukommelse",
+ "memory_lane_title": "Minder {title}",
"menu": "Menu",
"merge": "Sammenflet",
"merge_people": "Sammenflet personer",
+ "merge_people_limit": "Du kan kun flette op til 5 ansigter ad gangen",
+ "merge_people_prompt": "Vil du slå disse mennesker sammen? Denne handling er uigenkaldelig.",
"merge_people_successfully": "Personer sammenflettet med succes",
+ "merged_people_count": "Slået sammen {count, plural, one {# person} other {# people}}",
"minimize": "Minimér",
"minute": "Minut",
"missing": "Mangler",
"model": "Model",
"month": "Måned",
"more": "Mere",
- "moved_to_trash": "Flyttet til skrald",
+ "moved_to_trash": "Flyttet til skraldespand",
"my_albums": "Mine albummer",
"name": "Navn",
"name_or_nickname": "Navn eller kælenavn",
@@ -788,6 +918,8 @@
"ok": "Ok",
"oldest_first": "Ældste først",
"onboarding_privacy_description": "Følgende (valgfrie) funktioner er afhængige af eksterne tjenester, og kan til enhver tid deaktiveres i administrationsindstillingerne.",
+ "onboarding_theme_description": "Vælg et farvetema til din forekomst. Du kan ændre dette senere i dine indstillinger.",
+ "onboarding_welcome_description": "Lad os få din instans sat op med nogle almindelige indstillinger.",
"onboarding_welcome_user": "Velkommen, {user}",
"online": "Online",
"only_favorites": "Kun favoritter",
@@ -803,6 +935,7 @@
"other_variables": "Andre variable",
"owned": "Ejet",
"owner": "Ejer",
+ "partner": "Partner",
"partner_can_access": "{partner} kan tilgå",
"partner_can_access_assets": "Alle dine billeder og videoer, bortset fra dem i Arkiveret og Slettet",
"partner_can_access_location": "Stedet, hvor dine billeder blev taget",
@@ -824,13 +957,21 @@
"paused": "Sat på pause",
"pending": "Afventer",
"people": "Personer",
+ "people_edits_count": "Redigeret {count, plural, one {# person} other {# people}}",
+ "people_feature_description": "Gennemse billeder og videoer grupperet efter personer",
"people_sidebar_description": "Vis et link til Personer i sidepanelet",
"permanent_deletion_warning": "Advarsel om permanent sletning",
"permanent_deletion_warning_setting_description": "Vis en advarsel, når medier slettes permanent",
"permanently_delete": "Slet permanent",
+ "permanently_delete_assets_count": "Slet permanent {count, plural, one {asset} other {assets}}",
+ "permanently_delete_assets_prompt": "Er du sikker på, at du permanent vil slette {count, plural, one {dette aktiv?} other {disse # aktiver?}} Dette vil også fjerne {count, plural, one {det fra dets} other {dem fra deres}} album(er).",
"permanently_deleted_asset": "Permanent slettet medie",
+ "permanently_deleted_assets_count": "Slettet permanent {count, plural, one {# aktiv} other {# aktiver}}",
"person": "Person",
+ "person_hidden": "{name}{hidden, select, true { (skjult)} other {}}",
+ "photo_shared_all_users": "Det ser ud til, at du har delt dine billeder med alle brugere, eller også har du ikke nogen bruger at dele med.",
"photos": "Billeder",
+ "photos_and_videos": "Billeder og videoer",
"photos_count": "{count, plural, one {{count, number} Billede} other {{count, number} Billeder}}",
"photos_from_previous_years": "Billeder fra tidligere år",
"pick_a_location": "Vælg et sted",
@@ -847,78 +988,164 @@
"previous_memory": "Forrige minde",
"previous_or_next_photo": "Forrige eller næste billede",
"primary": "Primære",
- "profile_picture_set": "Profilbillede sat.",
+ "privacy": "Privatliv",
+ "profile_image_of_user": "Profilbillede af {user}",
+ "profile_picture_set": "Profilbillede indstillet.",
+ "public_album": "Offentligt album",
"public_share": "Offentlig deling",
+ "purchase_account_info": "Supporter",
+ "purchase_activated_subtitle": "Tak fordi du støtter Immich og open source-software",
+ "purchase_activated_time": "Aktiveret den {date, date}",
+ "purchase_activated_title": "Din nøgle er blevet aktiveret",
+ "purchase_button_activate": "Aktiver",
+ "purchase_button_buy": "Køb",
+ "purchase_button_buy_immich": "Køb Immich",
+ "purchase_button_never_show_again": "Vis aldrig igen",
+ "purchase_button_reminder": "Påmind mig om 30 dage",
+ "purchase_button_remove_key": "Fjern nøgle",
+ "purchase_button_select": "Vælg",
+ "purchase_failed_activation": "Kunne ikke aktiveres! Tjek venligst din e-mail for den korrekte produktnøgle!",
+ "purchase_individual_description_1": "For en enkeltperson",
+ "purchase_individual_description_2": "Supporterstatus",
+ "purchase_individual_title": "Individuel",
+ "purchase_input_suggestion": "Har du en produktnøgle? Indtast nøglen nedenfor",
+ "purchase_license_subtitle": "Køb Immich for at understøtte den fortsatte udvikling af tjenesten",
+ "purchase_lifetime_description": "Livsvarigt køb",
+ "purchase_option_title": "KØBEMULIGHEDER",
+ "purchase_panel_info_1": "At bygge Immich tager meget tid og kræfter, og vi har fuldtidsingeniører, der arbejder på det for at gøre det så godt, som vi overhovedet kan. Vores mission er, at open source-software og etisk forretningspraksis bliver en bæredygtig indtægtskilde for udviklere og at skabe et privatlivsrespekterende økosystem med reelle alternativer til udnyttende cloud-tjenester.",
+ "purchase_panel_info_2": "Da vi er forpligtet til ikke at tilføje betalingsvægge, vil dette køb ikke give dig yderligere funktioner i Immich. Vi er afhængige af, at brugere som dig støtter Immichs løbende udvikling.",
+ "purchase_panel_title": "Støt projektet",
+ "purchase_per_server": "Per server",
+ "purchase_per_user": "Per bruger",
+ "purchase_remove_product_key": "Fjern produktnøgle",
+ "purchase_remove_product_key_prompt": "Er du sikker på, at du vil fjerne produktnøglen?",
+ "purchase_remove_server_product_key": "Fjern serverens produktnøgle",
+ "purchase_remove_server_product_key_prompt": "Er du sikker på, at du vil fjerne serverproduktnøglen?",
+ "purchase_server_description_1": "For hele serveren",
+ "purchase_server_description_2": "Supporter status",
+ "purchase_server_title": "Server",
+ "purchase_settings_server_activated": "Serverens produktnøgle administreres af administratoren",
+ "rating": "Stjernebedømmelse",
+ "rating_clear": "Nulstil vurdering",
+ "rating_count": "{count, plural, one {# stjerne} other {# stjerner}}",
+ "rating_description": "Vis EXIF-klassificeringen i infopanelet",
"reaction_options": "Reaktionsindstillinger",
"read_changelog": "Læs ændringslog",
+ "reassign": "Gentildel",
+ "reassigned_assets_to_existing_person": "Gentildelt {count, plural, one {# aktiv} other {# aktiver}} til {name, select, null {en eksisterende person} other {{navne}}}",
+ "reassigned_assets_to_new_person": "Gentildelt {count, plural, one {# aktiv} other {# aktiver}} til en ny person",
+ "reassing_hint": "Tildel valgte aktiver til en eksisterende person",
"recent": "For nylig",
+ "recent-albums": "Seneste albums",
"recent_searches": "Seneste søgninger",
"refresh": "Opdatér",
+ "refresh_encoded_videos": "Opdater kodede videoer",
+ "refresh_faces": "Opdater ansigter",
+ "refresh_metadata": "Opdater metadata",
+ "refresh_thumbnails": "Opdater forhåndsvisning",
"refreshed": "Opdateret",
"refreshes_every_file": "Opdaterer alle filer",
+ "refreshing_encoded_video": "Opdaterer kodet video",
+ "refreshing_faces": "Opdaterer ansigter",
+ "refreshing_metadata": "Opdaterer metadata",
+ "regenerating_thumbnails": "Regenererer forhåndsvisninger",
"remove": "Fjern",
+ "remove_assets_album_confirmation": "Er du sikker på, at du vil fjerne {count, plural, one {# aktiv} other {# aktiver}} fra albummet?",
+ "remove_assets_shared_link_confirmation": "Er du sikker på, at du vil fjerne {count, plural, one {# aktiv} other {# aktiver}} fra dette delte link?",
+ "remove_assets_title": "Fjern aktiver?",
+ "remove_custom_date_range": "Fjern tilpasset datointerval",
"remove_deleted_assets": "Fjern fra offlinefiler",
"remove_from_album": "Fjern fra album",
"remove_from_favorites": "Fjern fra favoritter",
"remove_from_shared_link": "Fjern fra delt link",
+ "remove_url": "Fjern URL",
+ "remove_user": "Fjern bruger",
"removed_api_key": "Fjernede API-nøgle: {name}",
+ "removed_from_archive": "Fjernet fra arkiv",
+ "removed_from_favorites": "Fjernet fra favoritter",
+ "removed_from_favorites_count": "{count, plural, other {Fjernede #}} fra favoritter",
+ "removed_tagged_assets": "Fjernede tag fra {count, plural, one {# aktiv} other {# aktiver}}",
"rename": "Omdøb",
"repair": "Reparér",
"repair_no_results_message": "Utrackede og manglende filer vil blive vist her",
"replace_with_upload": "Erstat med upload",
+ "repository": "Depot",
"require_password": "Kræv adgangskode",
"require_user_to_change_password_on_first_login": "Kræv at bruger skifter adgangskode ved første login",
"reset": "Nulstil",
"reset_password": "Nulstil adgangskode",
"reset_people_visibility": "Nulstil personsynlighed",
+ "reset_to_default": "Nulstil til standard",
+ "resolve_duplicates": "Løs dubletter",
+ "resolved_all_duplicates": "Løste alle dubletter",
"restore": "Gendan",
"restore_all": "Gendan alle",
"restore_user": "Gendan bruger",
+ "restored_asset": "Gendannet aktiv",
"resume": "Genoptag",
"retry_upload": "Forsøg upload igen",
- "review_duplicates": "Review duplikater",
+ "review_duplicates": "Gennemgå dubletter",
"role": "Rolle",
+ "role_editor": "Editor",
+ "role_viewer": "Seer",
"save": "Gem",
"saved_api_key": "Gemt API-nøgle",
"saved_profile": "Gemte profil",
"saved_settings": "Gemte indstillinger",
"say_something": "Skriv noget",
"scan_all_libraries": "Skan gennem alle biblioteker",
+ "scan_library": "Skan",
"scan_settings": "Skanningsindstillinger",
+ "scanning_for_album": "Skanner efter albummer...",
"search": "Søg",
"search_albums": "Søg i albummer",
"search_by_context": "Søg efter kontekst",
+ "search_by_filename": "Søg efter filnavn eller filtypenavn",
+ "search_by_filename_example": "dvs. IMG_1234.JPG eller PNG",
"search_camera_make": "Søg efter kameraproducent...",
"search_camera_model": "Søg efter kameramodel...",
"search_city": "Søg efter by...",
"search_country": "Søg efter land...",
"search_for_existing_person": "Søg efter eksisterende person",
+ "search_no_people": "Ingen personer",
+ "search_no_people_named": "Ingen personer med navnet \"{name}\"",
+ "search_options": "Søgemuligheder",
"search_people": "Søg i personer",
"search_places": "Søg i steder",
+ "search_settings": "søgeindstillinger",
"search_state": "Søg efter stat...",
+ "search_tags": "Søg tags...",
"search_timezone": "Søg i tidszone...",
"search_type": "Søg efter type",
"search_your_photos": "Søg i dine billeder",
"searching_locales": "Søger lokaler...",
"second": "Sekund",
+ "see_all_people": "Se alle personer",
"select_album_cover": "Vælg albumcover",
"select_all": "Vælg alle",
+ "select_all_duplicates": "Vælg alle dubletter",
"select_avatar_color": "Vælg avatarfarve",
"select_face": "Vælg ansigt",
"select_featured_photo": "Vælg forsidebillede",
+ "select_from_computer": "Vælg fra computer",
"select_keep_all": "Vælg gem alle",
"select_library_owner": "Vælg biblioteksejer",
"select_new_face": "Vælg nyt ansigt",
"select_photos": "Vælg billeder",
"select_trash_all": "Vælg smid alle ud",
"selected": "Valgt",
+ "selected_count": "{count, plural, other {# valgt}}",
"send_message": "Send besked",
"send_welcome_email": "Send velkomstemail",
+ "server_offline": "Server Offline",
+ "server_online": "Server Online",
"server_stats": "Serverstatus",
- "set": "Sæt",
- "set_as_album_cover": "Sæt som albumcover",
- "set_as_profile_picture": "Sæt som profilbillede",
- "set_date_of_birth": "Sæt fødselsdato",
+ "server_version": "Server Version",
+ "set": "Indstil",
+ "set_as_album_cover": "Indstil som albumcover",
+ "set_as_featured_photo": "Indstil som fremhævet billede",
+ "set_as_profile_picture": "Indstil som profilbillede",
+ "set_date_of_birth": "Indstil fødselsdato",
"set_profile_picture": "Indstil profilbillede",
"set_slideshow_to_fullscreen": "Sæt diasshow til fuldskærmsvisning",
"settings": "Indstillinger",
@@ -926,14 +1153,20 @@
"share": "Del",
"shared": "Delt",
"shared_by": "Delt af",
+ "shared_by_user": "Delt af {user}",
"shared_by_you": "Delt af dig",
"shared_from_partner": "Billeder fra {partner}",
+ "shared_link_options": "Muligheder for delt link",
"shared_links": "Delte links",
"shared_photos_and_videos_count": "{assetCount, plural, other {# delte billeder & videoer.}}",
"shared_with_partner": "Delt med {partner}",
"sharing": "Delte",
+ "sharing_enter_password": "Indtast venligst adgangskoden for at se denne side.",
"sharing_sidebar_description": "Vis et link til deling i sidemenuen",
+ "shift_to_permanent_delete": "tryk på ⇧ for at slette aktiv permanent",
"show_album_options": "Vis albumindstillinger",
+ "show_albums": "Vis albummer",
+ "show_all_people": "Vis alle personer",
"show_and_hide_people": "Vis & gem personer",
"show_file_location": "Vis filplacering",
"show_gallery": "Vis galleri",
@@ -947,17 +1180,35 @@
"show_person_options": "Vis personindstillinger",
"show_progress_bar": "Vis statuslinje",
"show_search_options": "Vis søgeindstillinger",
+ "show_slideshow_transition": "Vis overgang til diasshow",
+ "show_supporter_badge": "Supportermærke",
+ "show_supporter_badge_description": "Vis et supportermærke",
"shuffle": "Bland",
+ "sidebar": "Sidebjælke",
+ "sidebar_display_description": "Vis et link til visningen i sidebjælken",
"sign_out": "Log af",
"sign_up": "Tilmeld",
"size": "Størrelse",
"skip_to_content": "Spring frem til indhold",
+ "skip_to_folders": "Spring til mapper",
+ "skip_to_tags": "Spring til tags",
"slideshow": "Diasshow",
"slideshow_settings": "Diasshowindstillinger",
"sort_albums_by": "Sortér albummer efter...",
+ "sort_created": "Dato oprettet",
+ "sort_items": "Antal genstande",
+ "sort_modified": "Ændret dato",
+ "sort_oldest": "Ældste foto",
+ "sort_people_by_similarity": "Sorter folk efter lighed",
+ "sort_recent": "Seneste foto",
+ "sort_title": "Titel",
+ "source": "Kilde",
"stack": "Stak",
- "stack_selected_photos": "Stabl valgte billeder",
- "stacktrace": "Stakspor",
+ "stack_duplicates": "Stak dubletter",
+ "stack_select_one_photo": "Vælg ét hovedbillede til stakken",
+ "stack_selected_photos": "Stak valgte billeder",
+ "stacked_assets_count": "Stablet {count, plural, one {# aktiv} other {# aktiver}}",
+ "stacktrace": "Stacktrace",
"start": "Start",
"start_date": "Startdato",
"state": "Stat",
@@ -972,44 +1223,84 @@
"submit": "Indsend",
"suggestions": "Anbefalinger",
"sunrise_on_the_beach": "Solopgang på stranden",
+ "support": "Support",
+ "support_and_feedback": "Support & Feedback",
+ "support_third_party_description": "Din Immich-installation blev pakket af en tredjepart. Problemer, du oplever, kan være forårsaget af denne pakke, så rejs venligst problemer med dem i første omgang ved at bruge nedenstående links.",
"swap_merge_direction": "Byt retning for sammenfletning",
"sync": "Synkronisér",
+ "tag": "Tag",
+ "tag_assets": "Tag aktiver",
+ "tag_created": "Oprettet tag: {tag}",
+ "tag_feature_description": "Gennemse billeder og videoer grupperet efter logiske tag-emner",
+ "tag_not_found_question": "Kan du ikke finde et tag? Opret et nyt tag.",
+ "tag_updated": "Opdateret tag: {tag}",
+ "tagged_assets": "Tagget {count, plural, one {# aktiv} other {# aktiver}}",
+ "tags": "Tags",
"template": "Skabelon",
"theme": "Tema",
"theme_selection": "Temavalg",
"theme_selection_description": "Indstil automatisk temaet til lyst eller mørkt baseret på din browsers systempræference",
+ "they_will_be_merged_together": "De vil blive slået sammen",
+ "third_party_resources": "Tredjepartsressourcer",
"time_based_memories": "Tidsbaserede minder",
+ "timeline": "Tidslinje",
"timezone": "Tidszone",
"to_archive": "Arkivér",
+ "to_change_password": "Skift adgangskode",
"to_favorite": "Gør til favorit",
+ "to_login": "Login",
+ "to_trash": "Papirkurv",
"toggle_settings": "Slå indstillinger til eller fra",
"toggle_theme": "Slå mørkt tema til eller fra",
+ "total": "Total",
"total_usage": "Samlet forbrug",
"trash": "Papirkurv",
"trash_all": "Smid alle ud",
+ "trash_count": "Skrald {count, number}",
+ "trash_delete_asset": "Papirkurv/slet aktiv",
"trash_no_results_message": "Udsmidte billeder og videoer vil kunne findes her.",
"trashed_items_will_be_permanently_deleted_after": "Mediefiler i skraldespanden vil blive slettet permanent efter {days, plural, one {# dag} other {# dage}}.",
"type": "Type",
"unarchive": "Afakivér",
+ "unarchived_count": "{count, plural, other {Uarkiveret #}}",
"unfavorite": "Fjern favorit",
"unhide_person": "Hold op med at gemme person væk",
"unknown": "Ukendt",
"unknown_year": "Ukendt år",
"unlimited": "Ubegrænset",
+ "unlink_motion_video": "Fjern link til bevægelsesvideo",
"unlink_oauth": "Frakobl OAuth",
"unlinked_oauth_account": "Frakoblede OAuth-konto",
+ "unnamed_album": "Unavngivet album",
+ "unnamed_album_delete_confirmation": "Er du sikker på, at du vil slette dette album?",
+ "unnamed_share": "Unavngivet deling",
+ "unsaved_change": "Ændring, der ikke er gemt",
"unselect_all": "Fravælg alle",
+ "unselect_all_duplicates": "Fjern markeringen af alle dubletter",
"unstack": "Fjern fra stak",
- "untracked_files": "Utrackede filer",
+ "unstacked_assets_count": "Ikke-stablet {count, plural, one {# aktiv} other {# aktiver}}",
+ "untracked_files": "Usporede filer",
"untracked_files_decription": "Disse filer bliver ikke sporet af applikationen. De kan være resultatet af mislykkede flytninger, afbrudte uploads eller efterladt på grund af en fejl",
"up_next": "Næste",
"updated_password": "Opdaterede adgangskode",
"upload": "Upload",
"upload_concurrency": "Uploadsamtidighed",
+ "upload_errors": "Upload afsluttet med {count, plural, one {# fejl} other {# fejl}}. Opdater siden for at se nye uploadaktiver.",
+ "upload_progress": "Resterende {remaining, number} - Behandlet {processed, number}/{total, number}",
+ "upload_skipped_duplicates": "Sprang over {count, plural, one {# duplet aktiv} other {# duplikerede aktiver}}",
+ "upload_status_duplicates": "Dubletter",
+ "upload_status_errors": "Fejl",
+ "upload_status_uploaded": "Uploaded",
+ "upload_success": "Upload gennemført. Opdater siden for at se nye uploadaktiver.",
"url": "URL",
"usage": "Forbrug",
+ "use_custom_date_range": "Brug tilpasset datointerval i stedet",
"user": "Bruger",
"user_id": "Bruger-ID",
+ "user_liked": "{user} kunne lide {type, select, photo {dette billede} video {denne video} asset {dette aktiv} other {det}}",
+ "user_purchase_settings": "Køb",
+ "user_purchase_settings_description": "Administrer dit køb",
+ "user_role_set": "Indstil {user} som {role}",
"user_usage_detail": "Detaljer om brugers forbrug",
"user_usage_stats": "Konto anvendelsesstatistik",
"user_usage_stats_description": "Vis konto anvendelsesstatistik",
@@ -1019,21 +1310,33 @@
"validate": "Validér",
"variables": "Variabler",
"version": "Version",
+ "version_announcement_closing": "Din ven, Alex",
+ "version_announcement_message": "Hej! En ny version af Immich er tilgængelig. Brug venligst lidt tid på at læse udgivelsesbemærkningerne for at sikre, at din opsætning er opdateret for at forhindre fejlkonfigurationer, især hvis du bruger WatchTower eller en mekanisme, der håndterer automatisk opdatering af din Immich-instans.",
+ "version_history": "Versionshistorik",
+ "version_history_item": "Installerede {version} den {date}",
"video": "Video",
"video_hover_setting": "Afspil miniaturevisning af video når musemarkøren er over den",
"video_hover_setting_description": "Afspil miniaturevisning for videoer når musemarkøren holdes over elementet. Selv når det er deaktiveret, kan afspilning startes ved at holde musen over afspilningsikonet.",
"videos": "Videoer",
"videos_count": "{count, plural, one {# Video} other {# Videoer}}",
+ "view": "Se",
+ "view_album": "Se album",
"view_all": "Se alle",
"view_all_users": "Se alle brugere",
+ "view_in_timeline": "Se på tidslinjen",
"view_links": "Vis links",
+ "view_name": "Se",
"view_next_asset": "Se næste medie",
"view_previous_asset": "Se forrige medie",
+ "view_stack": "Vis stak",
+ "visibility_changed": "Synlighed ændret for {count, plural, one {# person} other {# personer}}",
"waiting": "Venter",
+ "warning": "Advarsel",
"week": "Uge",
"welcome": "Velkommen",
"welcome_to_immich": "Velkommen til immich",
"year": "År",
+ "years_ago": "{years, plural, one {# år} other {# år}} siden",
"yes": "Ja",
"you_dont_have_any_shared_links": "Du har ikke nogen delte links",
"zoom_image": "Zoom billede"
diff --git a/i18n/de.json b/i18n/de.json
index 7d6bffba91..89eea9fd49 100644
--- a/i18n/de.json
+++ b/i18n/de.json
@@ -254,12 +254,12 @@
"template_email_if_empty": "Wenn die Vorlage leer ist, wird die Standard-E-Mail verwendet.",
"template_email_invite_album": "E-Mail-Vorlage: Einladung zu Album",
"template_email_preview": "Vorschau",
- "template_email_settings": "E-Mail Vorlagen",
- "template_email_settings_description": "Benutzerdefinierte E-Mail Benachrichtigungsvorlagen verwalten",
- "template_email_update_album": "Album Vorlage aktualisieren",
- "template_email_welcome": "Willkommen bei den E-Mail Vorlagen",
+ "template_email_settings": "E-Mail-Vorlagen",
+ "template_email_settings_description": "Benutzerdefinierte E-Mail-Benachrichtigungsvorlagen verwalten",
+ "template_email_update_album": "Album-Vorlage aktualisieren",
+ "template_email_welcome": "Willkommen bei den E-Mail-Vorlagen",
"template_settings": "Benachrichtigungsvorlagen",
- "template_settings_description": "Benutzerdefinierte Vorlagen für Benachrichtigungen verwalten",
+ "template_settings_description": "Benutzerdefinierte Vorlagen für Benachrichtigungen verwalten.",
"theme_custom_css_settings": "Benutzerdefiniertes CSS",
"theme_custom_css_settings_description": "Mit Cascading Style Sheets (CSS) kann das Design von Immich angepasst werden.",
"theme_settings": "Theme-Einstellungen",
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Faktor der konstanten Rate (-crf)",
"transcoding_constant_rate_factor_description": "Video-Qualitätsstufe. Typische Werte sind 23 für H.264, 28 für HEVC, 31 für VP9 und 35 für AV1. Ein niedrigerer Wert ist besser, erzeugt aber größere Dateien.",
"transcoding_disabled_description": "Videos nicht transkodieren, dies kann die Wiedergabe auf manchen Geräten beeinträchtigen",
+ "transcoding_encoding_options": "Kodierungsoptionen",
+ "transcoding_encoding_options_description": "Setze Codec, Auflösung, Qualität und andere Optionen für Kodierte Videos",
"transcoding_hardware_acceleration": "Hardware-Beschleunigung",
"transcoding_hardware_acceleration_description": "Experimentell; viel schneller, aber bei gleicher Bitrate mit geringerer Qualität",
"transcoding_hardware_decoding": "Hardware-Dekodierung",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Maximales Keyframe-Intervall",
"transcoding_max_keyframe_interval_description": "Legt den maximalen Frame-Abstand zwischen Keyframes fest. Niedrigere Werte verschlechtern die Komprimierungseffizienz, verbessern aber die Suchzeiten und können die Qualität in Szenen mit schnellen Bewegungen verbessern. Bei 0 wird dieser Wert automatisch eingestellt.",
"transcoding_optimal_description": "Videos mit einer höheren Auflösung als der Zielauflösung oder in einem nicht akzeptierten Format",
+ "transcoding_policy": "Transkodierungsrichtlinie",
+ "transcoding_policy_description": "Bestimme, wann ein Video Transkodiert wird",
"transcoding_preferred_hardware_device": "Bevorzugtes Hardwaregerät",
"transcoding_preferred_hardware_device_description": "Gilt nur für VAAPI und QSV. Legt den für die Hardware-Transkodierung verwendeten dri-Node fest.",
"transcoding_preset_preset": "Voreinstellung (-preset)",
@@ -519,6 +523,10 @@
"date_range": "Datumsbereich",
"day": "Tag",
"deduplicate_all": "Alle Duplikate entfernen",
+ "deduplication_info": "Deduplizierungsinformationen",
+ "deduplication_info_description": "Für die automatische Datei-Vorauswahl und das Deduplizieren aller Dateien berücksichtigen wir:",
+ "deduplication_criteria_1": "Bildgröße in Bytes",
+ "deduplication_criteria_2": "Anzahl der EXIF-Daten",
"default_locale": "Standard-Sprache",
"default_locale_description": "Datumsangaben und Zahlen basierend auf dem Gebietsschema des Browsers formatieren",
"delete": "Löschen",
@@ -755,6 +763,7 @@
"get_help": "Hilfe erhalten",
"getting_started": "Erste Schritte",
"go_back": "Zurück",
+ "go_to_folder": "Gehe zu Ordner",
"go_to_search": "Zur Suche gehen",
"group_albums_by": "Alben gruppieren nach...",
"group_no": "Keine Gruppierung",
@@ -1141,6 +1150,7 @@
"server_version": "Server-Version",
"set": "Speichern",
"set_as_album_cover": "Als Albumcover festlegen",
+ "set_as_featured_photo": "Als Anzeigebild setzen",
"set_as_profile_picture": "Als Profilbild festlegen",
"set_date_of_birth": "Geburtsdatum festlegen",
"set_profile_picture": "Profilbild einstellen",
@@ -1196,6 +1206,7 @@
"sort_items": "Anzahl der Einträge",
"sort_modified": "Änderungsdatum",
"sort_oldest": "Ältestes Foto",
+ "sort_people_by_similarity": "Personen nach Ähnlichkeit sortieren",
"sort_recent": "Neustes Foto",
"sort_title": "Titel",
"source": "Quellcode",
diff --git a/i18n/el.json b/i18n/el.json
index daad424022..6c0bcdf6b9 100644
--- a/i18n/el.json
+++ b/i18n/el.json
@@ -1141,6 +1141,7 @@
"server_version": "Έκδοση Διακομιστή",
"set": "Ορισμός",
"set_as_album_cover": "Ορισμός ως εξώφυλλο άλμπουμ",
+ "set_as_featured_photo": "Ορισμός ως χαρακτηριστική φωτογραφία",
"set_as_profile_picture": "Ορισμός ως εικόνα προφίλ",
"set_date_of_birth": "Ορισμός ημερομηνίας γέννησης",
"set_profile_picture": "Ορισμός εικόνας προφίλ",
@@ -1196,6 +1197,7 @@
"sort_items": "Αριθμός αντικειμένων",
"sort_modified": "Ημερομηνία τροποποίησης",
"sort_oldest": "Η πιο παλιά φωτογραφία",
+ "sort_people_by_similarity": "Ταξινόμηση ατόμων κατά ομοιότητα",
"sort_recent": "Η πιο πρόσφατη φωτογραφία",
"sort_title": "Τίτλος",
"source": "Πηγή",
@@ -1281,7 +1283,7 @@
"up_next": "Ακολουθεί",
"updated_password": "Ο κωδικός πρόσβασης ενημερώθηκε",
"upload": "Μεταφόρτωση",
- "upload_concurrency": "Συγχρονισμός μεταφόρτωσης",
+ "upload_concurrency": "Ταυτόχρονη μεταφόρτωση",
"upload_errors": "Η μεταφόρτωση ολοκληρώθηκε με {count, plural, one {# σφάλμα} other {# σφάλματα}}, ανανεώστε τη σελίδα για να δείτε νέα στοιχεία μεταφόρτωσης.",
"upload_progress": "Απομένουν {remaining, number} - Ολοκληρώθηκαν {processed, number}/{total, number}",
"upload_skipped_duplicates": "Παραλείφθηκαν {count, plural, one {# διπλότυπο στοιχείο} other {# διπλότυπα στοιχεία}}",
diff --git a/i18n/en.json b/i18n/en.json
index 5b14cd1803..737ec2704d 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Constant rate factor (-crf)",
"transcoding_constant_rate_factor_description": "Video quality level. Typical values are 23 for H.264, 28 for HEVC, 31 for VP9, and 35 for AV1. Lower is better, but produces larger files.",
"transcoding_disabled_description": "Don't transcode any videos, may break playback on some clients",
+ "transcoding_encoding_options": "Encoding Options",
+ "transcoding_encoding_options_description": "Set codecs, resolution, quality and other options for the encoded videos",
"transcoding_hardware_acceleration": "Hardware Acceleration",
"transcoding_hardware_acceleration_description": "Experimental; much faster, but will have lower quality at the same bitrate",
"transcoding_hardware_decoding": "Hardware decoding",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Maximum keyframe interval",
"transcoding_max_keyframe_interval_description": "Sets the maximum frame distance between keyframes. Lower values worsen compression efficiency, but improve seek times and may improve quality in scenes with fast movement. 0 sets this value automatically.",
"transcoding_optimal_description": "Videos higher than target resolution or not in an accepted format",
+ "transcoding_policy": "Transcode Policy",
+ "transcoding_policy_description": "Set when a video will be transcoded",
"transcoding_preferred_hardware_device": "Preferred hardware device",
"transcoding_preferred_hardware_device_description": "Applies only to VAAPI and QSV. Sets the dri node used for hardware transcoding.",
"transcoding_preset_preset": "Preset (-preset)",
@@ -309,7 +313,7 @@
"transcoding_reference_frames_description": "The number of frames to reference when compressing a given frame. Higher values improve compression efficiency, but slow down encoding. 0 sets this value automatically.",
"transcoding_required_description": "Only videos not in an accepted format",
"transcoding_settings": "Video Transcoding Settings",
- "transcoding_settings_description": "Manage the resolution and encoding information of the video files",
+ "transcoding_settings_description": "Manage which videos to transcode and how to process them",
"transcoding_target_resolution": "Target resolution",
"transcoding_target_resolution_description": "Higher resolutions can preserve more detail but take longer to encode, have larger file sizes, and can reduce app responsiveness.",
"transcoding_temporal_aq": "Temporal AQ",
@@ -322,7 +326,7 @@
"transcoding_transcode_policy_description": "Policy for when a video should be transcoded. HDR videos will always be transcoded (except if transcoding is disabled).",
"transcoding_two_pass_encoding": "Two-pass encoding",
"transcoding_two_pass_encoding_setting_description": "Transcode in two passes to produce better encoded videos. When max bitrate is enabled (required for it to work with H.264 and HEVC), this mode uses a bitrate range based on the max bitrate and ignores CRF. For VP9, CRF can be used if max bitrate is disabled.",
- "transcoding_video_codec": "Video Codec",
+ "transcoding_video_codec": "Video codec",
"transcoding_video_codec_description": "VP9 has high efficiency and web compatibility, but takes longer to transcode. HEVC performs similarly, but has lower web compatibility. H.264 is widely compatible and quick to transcode, but produces much larger files. AV1 is the most efficient codec but lacks support on older devices.",
"trash_enabled_description": "Enable Trash features",
"trash_number_of_days": "Number of days",
@@ -519,6 +523,10 @@
"date_range": "Date range",
"day": "Day",
"deduplicate_all": "Deduplicate All",
+ "deduplication_info": "Deduplication Info",
+ "deduplication_info_description": "To automatically preselect assets and remove duplicates in bulk, we look at:",
+ "deduplication_criteria_1": "Image size in bytes",
+ "deduplication_criteria_2": "Count of EXIF data",
"default_locale": "Default Locale",
"default_locale_description": "Format dates and numbers based on your browser locale",
"delete": "Delete",
@@ -756,6 +764,7 @@
"getting_started": "Getting Started",
"go_back": "Go back",
"go_to_search": "Go to search",
+ "go_to_folder": "Go to folder",
"group_albums_by": "Group albums by...",
"group_no": "No grouping",
"group_owner": "Group by owner",
@@ -1142,6 +1151,7 @@
"set": "Set",
"set_as_album_cover": "Set as album cover",
"set_as_profile_picture": "Set as profile picture",
+ "set_as_featured_photo": "Set as featured photo",
"set_date_of_birth": "Set date of birth",
"set_profile_picture": "Set profile picture",
"set_slideshow_to_fullscreen": "Set Slideshow to fullscreen",
@@ -1196,6 +1206,7 @@
"sort_items": "Number of items",
"sort_modified": "Date modified",
"sort_oldest": "Oldest photo",
+ "sort_people_by_similarity": "Sort people by similarity",
"sort_recent": "Most recent photo",
"sort_title": "Title",
"source": "Source",
@@ -1337,4 +1348,4 @@
"yes": "Yes",
"you_dont_have_any_shared_links": "You don't have any shared links",
"zoom_image": "Zoom Image"
-}
+}
\ No newline at end of file
diff --git a/i18n/es.json b/i18n/es.json
index 10a0085f25..02b9b2fad7 100644
--- a/i18n/es.json
+++ b/i18n/es.json
@@ -1,5 +1,5 @@
{
- "about": "Acercade",
+ "about": "Acerca de",
"account": "Cuenta",
"account_settings": "Ajustes de la cuenta",
"acknowledge": "De acuerdo",
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Factor de tasa constante (-crf)",
"transcoding_constant_rate_factor_description": "Nivel de calidad del vídeo. Los valores típicos son 23 para H.264, 28 para HEVC, 31 para VP9 y 35 para AV1. Cuanto más bajo es mejor, pero produce archivos más grandes.",
"transcoding_disabled_description": "No transcodifique ningún vídeo; puede interrumpir la reproducción en algunos clientes",
+ "transcoding_encoding_options": "Opciones de codificación",
+ "transcoding_encoding_options_description": "Establecer códecs, resolución, calidad y otras opciones para los vídeos codificados",
"transcoding_hardware_acceleration": "Aceleración por Hardware",
"transcoding_hardware_acceleration_description": "Experimental; mucho más rápido, pero tendrá menor calidad con la misma tasa de bits",
"transcoding_hardware_decoding": "Decodificación por hardware",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Intervalo máximo de fotogramas clave",
"transcoding_max_keyframe_interval_description": "Establece la distancia máxima de fotograma entre fotogramas clave. Los valores más bajos empeoran la eficiencia de la compresión, pero mejoran los tiempos de búsqueda y pueden mejorar la calidad en escenas con movimientos rápidos. 0 establece este valor automáticamente.",
"transcoding_optimal_description": "Vídeos con una resolución superior a la fijada o que no están en un formato aceptado",
+ "transcoding_policy": "Política de transcodificación",
+ "transcoding_policy_description": "Establecer cuándo se transcodificará un vídeo",
"transcoding_preferred_hardware_device": "Dispositivo de hardware preferido",
"transcoding_preferred_hardware_device_description": "Se aplica únicamente a VAAPI y QSV. Establece el nodo dri utilizado para la transcodificación de hardware.",
"transcoding_preset_preset": "Configuración predefinida (-preset)",
@@ -309,7 +313,7 @@
"transcoding_reference_frames_description": "El número de fotogramas a los que hacer referencia al comprimir un fotograma determinado. Los valores más altos mejoran la eficiencia de la compresión, pero ralentizan la codificación. 0 establece este valor automáticamente.",
"transcoding_required_description": "Sólo vídeos que no estén en un formato soportado",
"transcoding_settings": "Configuración de Transcodificación de Vídeo",
- "transcoding_settings_description": "Administrar la resolución y la información de codificación de los archivos de video",
+ "transcoding_settings_description": "Administrar qué vídeos transcodificar y cómo procesarlos",
"transcoding_target_resolution": "Resolución deseada",
"transcoding_target_resolution_description": "Las resoluciones más altas pueden conservar más detalles, pero la codificación tarda más, tienen tamaños de archivo más grandes y pueden reducir la capacidad de respuesta de la aplicación.",
"transcoding_temporal_aq": "AQ temporal",
@@ -755,6 +759,7 @@
"get_help": "Solicitar ayuda",
"getting_started": "Comenzamos",
"go_back": "Volver atrás",
+ "go_to_folder": "Ir al directorio",
"go_to_search": "Ir a búsqueda",
"group_albums_by": "Agrupar albums por...",
"group_no": "Sin agrupación",
@@ -1141,6 +1146,7 @@
"server_version": "Versión del servidor",
"set": "Establecer",
"set_as_album_cover": "Establecer portada del álbum",
+ "set_as_featured_photo": "Establecer como foto destacada",
"set_as_profile_picture": "Seleccionar como foto de perfil",
"set_date_of_birth": "Establecer fecha de nacimiento",
"set_profile_picture": "Establecer foto de perfil",
@@ -1196,6 +1202,7 @@
"sort_items": "Número de archivos",
"sort_modified": "Fecha de modificación",
"sort_oldest": "Foto más antigua",
+ "sort_people_by_similarity": "Ordenar personas por similitud",
"sort_recent": "Foto más reciente",
"sort_title": "Título",
"source": "Origen",
diff --git a/i18n/et.json b/i18n/et.json
index fc2cc3de93..4d64da159c 100644
--- a/i18n/et.json
+++ b/i18n/et.json
@@ -1,5 +1,5 @@
{
- "about": "Värskenda",
+ "about": "Teave",
"account": "Konto",
"account_settings": "Konto seaded",
"acknowledge": "Sain aru",
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Püsiv kiirusefaktor (-crf)",
"transcoding_constant_rate_factor_description": "Video kvaliteeditase. Tüüpilised väärtused on 23 (H.264), 28 (HEVC), 31 (VP9) ning 35 (AV1). Madal on parem, aga tulemuseks on suuremad failid.",
"transcoding_disabled_description": "Ära transkodeeri videosid. Võib takistada taasesitamist mõnedes seadmetes",
+ "transcoding_encoding_options": "Kodeerimise valikud",
+ "transcoding_encoding_options_description": "Määra kodeeritud videote koodek, resolutsioon, kvaliteet ja muud valikud",
"transcoding_hardware_acceleration": "Riistvaraline kiirendus",
"transcoding_hardware_acceleration_description": "Eksperimentaalne; palju kiirem, aga sama bitisageduse juures madalam kvaliteet",
"transcoding_hardware_decoding": "Riistvaraline dekodeerimine",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Maksimaalne võtmekaadri intervall",
"transcoding_max_keyframe_interval_description": "Määrab maksimaalse kauguse võtmekaadrite vahel. Madalamad väärtused vähendavad pakkimise efektiivsust, aga parandavad otsimiskiirust ning võivad tõsta kiire liikumisega stseenide kvaliteeti. 0 määrab väärtuse automaatselt.",
"transcoding_optimal_description": "Kõrgema kui lubatud resolutsiooniga või mittelubatud formaadis videod",
+ "transcoding_policy": "Transkodeerimise reegel",
+ "transcoding_policy_description": "Määra, millal video transkodeeritakse",
"transcoding_preferred_hardware_device": "Eelistatud riistvaraseade",
"transcoding_preferred_hardware_device_description": "Rakendub ainult VAAPI ja QSV puhul. Määrab dri seadme, mida kasutatakse riistvaraliseks transkodeerimiseks.",
"transcoding_preset_preset": "Eelseadistus (-preset)",
@@ -309,7 +313,7 @@
"transcoding_reference_frames_description": "Kaadrite arv, millele viidata jooksva kaadri pakkimisel. Suuremad väärtused parandavad pakkimise tõhusust, aga muudavad kodeerimise aeglasemaks. 0 määrab väärtuse automaatselt.",
"transcoding_required_description": "Ainult mittelubatud formaadis videod",
"transcoding_settings": "Video transkodeerimise seaded",
- "transcoding_settings_description": "Halda videofailide resolutsiooni ja kodeerimist",
+ "transcoding_settings_description": "Määra, millised videod transkodeerida ja kuidas neid töödelda",
"transcoding_target_resolution": "Sihtresolutsioon",
"transcoding_target_resolution_description": "Kõrgemad resolutsioonid säilitavad rohkem detaile, aga kodeerimine võtab kauem aega, tekitab suuremaid faile ning võib mõjutada rakenduse töökiirust.",
"transcoding_temporal_aq": "Temporal AQ",
@@ -1129,6 +1133,7 @@
"server_version": "Serveri versioon",
"set": "Määra",
"set_as_album_cover": "Sea albumi kaanepildiks",
+ "set_as_featured_photo": "Sea esiletõstetud fotoks",
"set_as_profile_picture": "Sea profiilipildiks",
"set_date_of_birth": "Määra sünnikuupäev",
"set_profile_picture": "Sea profiilipilt",
diff --git a/i18n/fi.json b/i18n/fi.json
index aa9f029cd8..1ae71f6c81 100644
--- a/i18n/fi.json
+++ b/i18n/fi.json
@@ -1,5 +1,5 @@
{
- "about": "Päivitä",
+ "about": "Tietoja",
"account": "Tili",
"account_settings": "Tilin asetukset",
"acknowledge": "Tiedostan",
@@ -131,7 +131,7 @@
"machine_learning_smart_search_description": "Etsi kuvia merkityksellisemmin käyttäen CLIP-upotuksia",
"machine_learning_smart_search_enabled": "Ota käyttöön älykäs haku",
"machine_learning_smart_search_enabled_description": "Jos ei käytössä, kuvia ei koodata älykkäälle etsinnälle.",
- "machine_learning_url_description": "Koneoppimispalvelimen URL",
+ "machine_learning_url_description": "Koneoppimispalvelimen URL. MIkäli URL:liä on useampi kuin yksi, järjestelmä yrittää ottaa yhteyden jokaiseen erikseen järjestyksessä ensimmäisestä viimeiseen, kunnes pyyntöön vastataan onnistuneesti.",
"manage_concurrency": "Hallitse yhtäaikaisia toimintoja",
"manage_log_settings": "Hallitse lokien asetuksia",
"map_dark_style": "Tumma teema",
@@ -250,7 +250,16 @@
"storage_template_user_label": "{label} on käyttäjän Tallennustilan Tunniste",
"system_settings": "Järjestelmäasetukset",
"tag_cleanup_job": "Merkintäpuhdistus",
+ "template_email_available_tags": "Voit käyttää seuraavia muuttujia mallissasi: {tags}",
+ "template_email_if_empty": "Jos malli on tyhjä, käytetään oletussähköpostia.",
+ "template_email_invite_album": "Albumikutsun malli",
"template_email_preview": "Esikatselu",
+ "template_email_settings": "Sähköpostimalli",
+ "template_email_settings_description": "Hallitse yksilöllisten sähköposti-ilmoitusten malleja",
+ "template_email_update_album": "Albumipäivityksen malli",
+ "template_email_welcome": "Tervetulosähköpostin malli",
+ "template_settings": "Ilmoitusmallit",
+ "template_settings_description": "Hallitse yksilöllisten ilmoitusten malleja.",
"theme_custom_css_settings": "Mukautettu CSS",
"theme_custom_css_settings_description": "Mukauta Immichin ulkoasua CSS:llä.",
"theme_settings": "Teeman asetukset",
@@ -725,6 +734,7 @@
"external": "Ulkoisesta",
"external_libraries": "Ulkoiset kirjastot",
"face_unassigned": "Ei määritelty",
+ "failed_to_load_assets": "Kohteiden lataus epäonnistui",
"favorite": "Suosikki",
"favorite_or_unfavorite_photo": "Suosikki- tai ei-suosikkikuva",
"favorites": "Suosikit",
@@ -1024,6 +1034,7 @@
"reassigned_assets_to_new_person": "Määritetty {count, plural, one {# media} other {# mediaa}} uudelle henkilölle",
"reassing_hint": "Määritä valitut mediat käyttäjälle",
"recent": "Viimeisin",
+ "recent-albums": "Viimeisimmät albumit",
"recent_searches": "Edelliset haut",
"refresh": "Päivitä",
"refresh_encoded_videos": "Päivitä enkoodatut videot",
@@ -1045,6 +1056,7 @@
"remove_from_album": "Poista albumista",
"remove_from_favorites": "Poista suosikeista",
"remove_from_shared_link": "Poista jakolinkistä",
+ "remove_url": "Poista URL",
"remove_user": "Poista käyttäjä",
"removed_api_key": "API-avain {name} poistettu",
"removed_from_archive": "Poistettu arkistosta",
diff --git a/i18n/fil.json b/i18n/fil.json
index c296e59dd1..ca2e1fadd0 100644
--- a/i18n/fil.json
+++ b/i18n/fil.json
@@ -21,5 +21,24 @@
"add_to_shared_album": "Idagdag sa shared album",
"added_to_archive": "Idinagdag sa archive",
"added_to_favorites": "Idinagdag sa mga paborito",
- "added_to_favorites_count": "Idinagdag ang {count, number} sa mga paborito"
+ "added_to_favorites_count": "Idinagdag ang {count, number} sa mga paborito",
+ "admin": {
+ "asset_offline_description": "Ang external library asset na ito ay hindi na makikita sa disk at nailipat na sa trash. Kung ang file ay nailipat sa loob ng library, tignan ang iyong timeline para sa kaukulang asset. Para maibalik ang asset na ito, siguraduhin na ang file path ay maa-access ng Immich para iscan ang library.",
+ "authentication_settings_reenable": "Para i-enable ulit, gamitin ang Server Command.",
+ "disable_login": "I-disable ang login",
+ "force_delete_user_warning": "BABALA:",
+ "library_import_path_description": "Tukuyin ang folder na i-import. Ang folder na ito, kasama ang subfolders, ay mag sa-scan para sa mga imahe at mga videos.",
+ "note_cannot_be_changed_later": "TANDAAN: Hindi na ito pwede baguhin sa susunod!",
+ "repair_all": "Ayusin lahat",
+ "server_welcome_message_description": "Mensahe na ipapakita sa login page.",
+ "user_restore_description": "Ang account ni {user} ay maibabalik."
+ },
+ "album_user_left": "Umalis sa {album}",
+ "all_albums": "Lahat ng albums",
+ "anti_clockwise": "",
+ "api_key_description": "Isang beses lamang na ipapakita itong value. Siguraduhin na ikopya itong value bago iclose ang window na ito.",
+ "are_these_the_same_person": "Itong tao na ito ay parehas?",
+ "asset_adding_to_album": "Dinadagdag sa album...",
+ "asset_filename_is_offline": "Offline ang asset {filename}",
+ "asset_uploading": "Ina-upload..."
}
diff --git a/i18n/fr.json b/i18n/fr.json
index ad141208c6..c4bab44ee3 100644
--- a/i18n/fr.json
+++ b/i18n/fr.json
@@ -58,8 +58,8 @@
"external_library_created_at": "Bibliothèque externe (créée le {date})",
"external_library_management": "Gestion de la bibliothèque externe",
"face_detection": "Détection des visages",
- "face_detection_description": "Détection des visages dans les médias à l'aide de l'apprentissage automatique. Pour les vidéos, seule la miniature est prise en compte. « Actualiser » (re)traite tous les médias. « Réinitialiser » efface en plus toutes les données actuelles de visages. « Manquants » Les visages détectés seront mis en file d'attente pour la reconnaissance faciale. Une fois la détection des visages terminée, les regroupant en personnes existantes ou nouvelles.",
- "facial_recognition_job_description": "Regrouper les visages détectés en personnes. Cette étape est exécutée une fois la détection des visages terminée. « Rafraichir» (re)regroupe tous les visages. « Manquant» met en file d'attente les visages auxquels aucune personne n'a été attribuée.",
+ "face_detection_description": "Détection des visages dans les médias à l'aide de l'apprentissage automatique. Pour les vidéos, seule la miniature est prise en compte. « Actualiser » (re)traite tous les médias. « Réinitialiser » retraite tous les médias en repartant de zéro. « Manquant » met en file d'attente les médias qui n'ont pas encore été pris en compte. Lorsque la détection est terminée, tous les visages détectés sont ensuite mis en file d'attente pour la reconnaissance faciale.",
+ "facial_recognition_job_description": "Regrouper les visages détectés en personnes. Cette étape est exécutée une fois la détection des visages terminée. « Rafraichir » (re)regroupe tous les visages. « Manquant » met en file d'attente les visages auxquels aucune personne n'a été attribuée.",
"failed_job_command": "La commande {command} a échoué pour la tâche : {job}",
"force_delete_user_warning": "ATTENTION : Cette opération entraîne la suppression immédiate de l'utilisateur et de tous ses médias. Cette opération ne peut être annulée et les fichiers ne peuvent être récupérés.",
"forcing_refresh_library_files": "Forcer le rafraîchissement de tous les fichiers de la bibliothèque",
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Facteur de taux constant (-crf)",
"transcoding_constant_rate_factor_description": "Niveau de qualité vidéo. Les valeurs typiques sont 23 pour H.264, 28 pour HEVC, 31 pour VP9 et 35 pour AV1. Plus la valeur est basse, meilleure est la qualité, mais les fichiers produits sont plus grands.",
"transcoding_disabled_description": "Ne pas transcoder les vidéos. Cela peut perturber la lecture sur certains logiciels ou appareils",
+ "transcoding_encoding_options": "Options d'encodage",
+ "transcoding_encoding_options_description": "Configure codecs, résolution, qualité et autres options pour les vidéos encodées",
"transcoding_hardware_acceleration": "Accélération matérielle",
"transcoding_hardware_acceleration_description": "Expérimental ; beaucoup plus rapide, mais aura une qualité inférieure pour un même débit binaire",
"transcoding_hardware_decoding": "Décodage matériel",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Intervalle maximal entre les images clés",
"transcoding_max_keyframe_interval_description": "Définit la distance maximale de trames entre les images clés. Les valeurs plus basses diminuent l'efficacité de la compression, mais améliorent les temps de recherche et peuvent améliorer la qualité dans les scènes avec des mouvements rapides. Une valeur de 0 définit automatiquement ce paramètre.",
"transcoding_optimal_description": "Les vidéos dont la résolution est supérieure à celle attendue ou celles qui ne sont pas dans un format accepté",
+ "transcoding_policy": "Politique de transcodage",
+ "transcoding_policy_description": "Configure quand une vidéo va être transcodée",
"transcoding_preferred_hardware_device": "Matériel préféré",
"transcoding_preferred_hardware_device_description": "S'applique uniquement à VAAPI et QSV. Définit le nœud DRI utilisé pour le transcodage matériel.",
"transcoding_preset_preset": "Présélection (-preset)",
@@ -309,7 +313,7 @@
"transcoding_reference_frames_description": "Le nombre d'images à prendre en référence lors de la compression d'une image donnée. Des valeurs élevées améliorent l'efficacité de la compression, mais ralentissent l'encodage. 0 fixe cette valeur automatiquement.",
"transcoding_required_description": "Seulement les vidéos dans un format non accepté",
"transcoding_settings": "Paramètres de transcodage vidéo",
- "transcoding_settings_description": "Gérer les informations de résolution et d'encodage des fichiers vidéo",
+ "transcoding_settings_description": "Gère quelles vidéos transcoder et comment les traiter",
"transcoding_target_resolution": "Résolution cible",
"transcoding_target_resolution_description": "Des résolutions plus élevées peuvent préserver plus de détails, mais prennent plus de temps à encoder, ont de plus grandes tailles de fichiers, et peuvent réduire la réactivité de l'application.",
"transcoding_temporal_aq": "Quantification adaptative temporelle (temporal AQ)",
@@ -322,7 +326,7 @@
"transcoding_transcode_policy_description": "Politique indiquant quand une vidéo doit être transcodée. Les vidéos HDR seront toujours transcodées (sauf si le transcodage est désactivé).",
"transcoding_two_pass_encoding": "Encodage en deux passes",
"transcoding_two_pass_encoding_setting_description": "Transcoder en deux passes pour produire des vidéos mieux encodées. Lorsque le débit binaire maximum est activé (obligatoire pour qu'il fonctionne avec H.264 et HEVC), ce mode utilise une plage de débit binaire basée sur le débit binaire maximum et ignore le CRF. Pour VP9, CRF peut être utilisé si le débit binaire maximum est désactivé.",
- "transcoding_video_codec": "Codec Vidéo",
+ "transcoding_video_codec": "Codec vidéo",
"transcoding_video_codec_description": "Le codec vidéo VP9 est très efficace et compatible avec le web, mais son transcodage est plus long. HEVC a des performances similaires, mais sa compatibilité web est plus faible. H.264 est largement compatible et rapide à transcoder, mais produit des fichiers beaucoup plus volumineux. AV1 est le codec le plus efficace, mais il n'est pas pris en charge par les anciens appareils.",
"trash_enabled_description": "Activer la corbeille",
"trash_number_of_days": "Nombre de jours",
@@ -429,7 +433,7 @@
"back": "Retour",
"back_close_deselect": "Retournez en arrière, fermez ou désélectionnez",
"backward": "Arrière",
- "birthdate_saved": "Date de naissance sauvée avec succès",
+ "birthdate_saved": "Date de naissance enregistrée avec succès",
"birthdate_set_description": "La date de naissance est utilisée pour calculer l'âge de cette personne au moment où la photo a été prise.",
"blurred_background": "Arrière-plan flouté",
"bugs_and_feature_requests": "Bugs & demandes d'évolutions",
@@ -450,7 +454,7 @@
"change_date": "Changer la date",
"change_expiration_time": "Modifier le délai d'expiration",
"change_location": "Changer la localisation",
- "change_name": "Modifier/Définir le nom",
+ "change_name": "Changer le nom",
"change_name_successfully": "Nouveau nom enregistré",
"change_password": "Modifier le mot de passe",
"change_password_description": "C'est la première fois que vous vous connectez ou une demande a été faite pour changer votre mot de passe. Veuillez entrer le nouveau mot de passe ci-dessous.",
@@ -755,6 +759,7 @@
"get_help": "Obtenir de l'aide",
"getting_started": "Commencer",
"go_back": "Retour",
+ "go_to_folder": "Dossier",
"go_to_search": "Faire une recherche",
"group_albums_by": "Grouper les albums par...",
"group_no": "Pas de groupe",
@@ -1141,8 +1146,9 @@
"server_version": "Version du serveur",
"set": "Définir",
"set_as_album_cover": "Définir comme couverture d'album",
+ "set_as_featured_photo": "Définir comme photo mise en avant",
"set_as_profile_picture": "Définir comme photo de profil",
- "set_date_of_birth": "Définir la date de naissance",
+ "set_date_of_birth": "Changer la date de naissance",
"set_profile_picture": "Définir la photo de profil",
"set_slideshow_to_fullscreen": "Afficher le diaporama en plein écran",
"settings": "Paramètres",
@@ -1196,6 +1202,7 @@
"sort_items": "Nombre d'éléments",
"sort_modified": "Date de modification",
"sort_oldest": "Photo la plus ancienne",
+ "sort_people_by_similarity": "Trier les personnes par similitude",
"sort_recent": "Photo la plus récente",
"sort_title": "Titre",
"source": "Source",
diff --git a/i18n/he.json b/i18n/he.json
index 71b6ab3c91..6026a0b4b3 100644
--- a/i18n/he.json
+++ b/i18n/he.json
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "גורם קצב קבוע (-crf)",
"transcoding_constant_rate_factor_description": "רמת איכות וידאו. ערכים אופייניים הם הערך 23 עבור H.264, הערך 28 עבור HEVC, הערך 31 עבור VP9, והערך 35 עבור AV1. נמוך יותר הוא טוב יותר, אבל מייצר קבצים גדולים יותר.",
"transcoding_disabled_description": "אין להמיר את הקידוד של שום סרטון, עלול לגרום לכך שהניגון לא יפעל במכשירים מסוימים",
+ "transcoding_encoding_options": "אפשרויות הקידוד",
+ "transcoding_encoding_options_description": "הגדר מקודדים, רזולוציה, איכות ואפשרויות נוספות עבור הסרטונים המקודדים",
"transcoding_hardware_acceleration": "האצת חומרה",
"transcoding_hardware_acceleration_description": "ניסיוני; המרה הרבה יותר מהירה, אבל תהיה באיכות נמוכה יותר באותו קצב סיביות",
"transcoding_hardware_decoding": "פענוח חומרה",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "מרווח תמונת מפתח מרבי",
"transcoding_max_keyframe_interval_description": "מגדיר את מרחק הפריימים המרבי בין תמונות מפתח. ערכים נמוכים גורעים את יעילות הדחיסה, אך משפרים את זמני החיפוש ועשויים לשפר את האיכות בסצנות עם תנועה מהירה. 0 מגדיר ערך זה באופן אוטומטי.",
"transcoding_optimal_description": "סרטונים גבוהים מרזולוציית היעד או לא בפורמט מקובל",
+ "transcoding_policy": "מדיניות המרה",
+ "transcoding_policy_description": "הגדר מתי וידאו יעבור המרה",
"transcoding_preferred_hardware_device": "מכשיר חומרה מועדף",
"transcoding_preferred_hardware_device_description": "חל רק על VAAPI ו-QSV. מגדיר את צומת ה-dri המשמש להמרת קידוד של חומרה.",
"transcoding_preset_preset": "הגדרות קבועות מראש (-preset)",
@@ -309,7 +313,7 @@
"transcoding_reference_frames_description": "מספר הפריימים לייחוס בעת דחיסה של פריים נתון. ערכים גבוהים יותר משפרים את יעילות הדחיסה, אך מאטים את הקידוד. 0 מגדיר את הערך זה באופן אוטומטי.",
"transcoding_required_description": "רק סרטונים שאינם בפורמט מקובל",
"transcoding_settings": "הגדרות המרת קידוד סרטונים",
- "transcoding_settings_description": "נהל את הרזולוציה ומידע הקידוד של קבצי הסרטונים",
+ "transcoding_settings_description": "נהל אילו סרטונים לעבד וכיצד לעבד אותם",
"transcoding_target_resolution": "רזולוציה יעד",
"transcoding_target_resolution_description": "רזולוציות גבוהות יותר יכולות לשמר פרטים רבים יותר אך לוקחות זמן רב יותר לקידוד, יש להן גדלי קבצים גדולים יותר, ויכולות להפחית את תגובתיות היישום.",
"transcoding_temporal_aq": "Temporal AQ",
@@ -322,7 +326,7 @@
"transcoding_transcode_policy_description": "מדיניות לגבי מתי יש להמיר קידוד של סרטון. תמיד יומר הקידוד של סרטוני HDR (למעט אם המרת קידוד מושבתת).",
"transcoding_two_pass_encoding": "קידוד בשני מעברים",
"transcoding_two_pass_encoding_setting_description": "המר קידוד בשני מעברים כדי לייצר סרטונים מקודדים טוב יותר. כאשר קצב סיביות מרבי מופעל (נדרש כדי שזה יעבוד עם H.264 ו-HEVC), מצב זה משתמש בטווח קצב סיביות המבוסס על קצב הסיביות המרבי ומתעלם מ-CRF. עבור VP9, ניתן להשתמש ב-CRF אם קצב סיביות מרבי מושבת.",
- "transcoding_video_codec": "קידוד סרטון",
+ "transcoding_video_codec": "מקודדי וידאו",
"transcoding_video_codec_description": "ל-VP9 יש יעילות גבוהה ותאימות רשת, אבל לוקח יותר זמן להמיר את הקידוד עבורו. HEVC מתפקד באופן דומה, אך בעל תאימות רשת נמוכה יותר. H.264 תואם באופן נרחב ומהיר להמיר את קידודו, אבל הוא מייצר קבצים גדולים בהרבה. AV1 הוא הקידוד היעיל ביותר אך לוקה בתמיכה במכשירים ישנים יותר.",
"trash_enabled_description": "הפעל את תכונות האשפה",
"trash_number_of_days": "מספר הימים",
@@ -434,7 +438,7 @@
"blurred_background": "רקע מטושטש",
"bugs_and_feature_requests": "באגים & בקשות לתכונות",
"build": "Build",
- "build_image": "Build Image",
+ "build_image": "גרסת תוכנה",
"bulk_delete_duplicates_confirmation": "האם את/ה בטוח/ה שברצונך למחוק בכמות גדולה {count, plural, one {נכס # כפול} other {# נכסים כפולים}}? זה ישמור על הנכס הכי גדול של כל קבוצה וימחק לצמיתות את כל שאר הכפילויות. את/ה לא יכול/ה לבטל את הפעולה הזו!",
"bulk_keep_duplicates_confirmation": "האם את/ה בטוח/ה שברצונך להשאיר {count, plural, one {נכס # כפול} other {# נכסים כפולים}}? זה יפתור את כל הקבוצות הכפולות מבלי למחוק דבר.",
"bulk_trash_duplicates_confirmation": "האם את/ה בטוח/ה שברצונך להעביר לאשפה בכמות גדולה {count, plural, one {נכס # כפול} other {# נכסים כפולים}}? זה ישמור על הנכס הגדול ביותר של כל קבוצה ויעביר לאשפה את כל שאר הכפילויות.",
@@ -755,6 +759,7 @@
"get_help": "קבל עזרה",
"getting_started": "תחילת העבודה",
"go_back": "חזור",
+ "go_to_folder": "עבור לתיקיה",
"go_to_search": "עבור לחיפוש",
"group_albums_by": "קבץ אלבומים לפי..",
"group_no": "אין קיבוץ",
@@ -1141,6 +1146,7 @@
"server_version": "גרסת שרת",
"set": "הגדר",
"set_as_album_cover": "הגדר כעטיפת האלבום",
+ "set_as_featured_photo": "הגדר כתמונה מוצגת",
"set_as_profile_picture": "הגדר כתמונת פרופיל",
"set_date_of_birth": "הגדר תאריך לידה",
"set_profile_picture": "הגדר תמונת פרופיל",
@@ -1196,6 +1202,7 @@
"sort_items": "מספר פריטים",
"sort_modified": "תאריך שינוי",
"sort_oldest": "תמונה הכי ישנה",
+ "sort_people_by_similarity": "מיין אנשים לפי דמיון",
"sort_recent": "תמונה אחרונה ביותר",
"sort_title": "כותרת",
"source": "מקור",
diff --git a/i18n/hi.json b/i18n/hi.json
index 5df14e7296..fdc79c15eb 100644
--- a/i18n/hi.json
+++ b/i18n/hi.json
@@ -1076,6 +1076,7 @@
"user_purchase_settings": "खरीदना",
"user_purchase_settings_description": "अपनी खरीदारी प्रबंधित करें",
"user_usage_detail": "उपयोगकर्ता उपयोग विवरण",
+ "user_usage_stats_description": "खाता उपयोग सांख्यिकी देखें",
"username": "उपयोगकर्ता नाम",
"users": "उपयोगकर्ताओं",
"utilities": "उपयोगिताओं",
diff --git a/i18n/hr.json b/i18n/hr.json
index d4273b8741..b6d9c97748 100644
--- a/i18n/hr.json
+++ b/i18n/hr.json
@@ -23,6 +23,7 @@
"add_to": "Dodaj u...",
"add_to_album": "Dodaj u album",
"add_to_shared_album": "Dodaj u dijeljeni album",
+ "add_url": "Dodaj URL",
"added_to_archive": "Dodano u arhivu",
"added_to_favorites": "Dodano u omiljeno",
"added_to_favorites_count": "Dodano {count, number} u omiljeno",
@@ -130,7 +131,7 @@
"machine_learning_smart_search_description": "Pretražujte slike semantički koristeći CLIP ugradnje",
"machine_learning_smart_search_enabled": "Omogući pametno pretraživanje",
"machine_learning_smart_search_enabled_description": "Ako je onemogućeno, slike neće biti kodirane za pametno pretraživanje.",
- "machine_learning_url_description": "URL poslužitelja strojnog učenja",
+ "machine_learning_url_description": "URL poslužitelja strojnog učenja. Ako ste dodali više od jednog URLa, svaki server će biti kontaktiraj jedanput dok jedan ne odgovori uspješno, u redu od prvog do zadnjeg.",
"manage_concurrency": "Upravljanje Istovremenošću",
"manage_log_settings": "Upravljanje postavkama zapisivanje",
"map_dark_style": "Tamni stil",
@@ -249,6 +250,7 @@
"storage_template_user_label": "{label} je korisnička oznaka za pohranu",
"system_settings": "Postavke Sustava",
"tag_cleanup_job": "Čišćenje oznaka",
+ "template_email_available_tags": "Možete koristiti sljedeće varijable u vašem predlošku:{tags}",
"theme_custom_css_settings": "Prilagođeni CSS",
"theme_custom_css_settings_description": "Kaskadni listovi stilova (CSS) omogućuju prilagođavanje dizajna Immicha.",
"theme_settings": "Postavke tema",
diff --git a/i18n/hu.json b/i18n/hu.json
index b6e9617993..f8de5bac25 100644
--- a/i18n/hu.json
+++ b/i18n/hu.json
@@ -1,5 +1,5 @@
{
- "about": "Frissítés",
+ "about": "Az Immich-ről",
"account": "Fiók",
"account_settings": "Fiók Beállítások",
"acknowledge": "Megértettem",
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Állandó ráta tényező (-crf)",
"transcoding_constant_rate_factor_description": "Videó minőségi szint. Tipikus értékek kodekenként: H.264: 23, HEVC: 28, VP9: 31, AV1: 35. Minél alacsonyabb, annál jobb minőséget eredményez, viszont nagyobb fájlmérettel is jár.",
"transcoding_disabled_description": "Ne kódolja át a videókat. Néhány kliensnél nem lejátszható videókhoz vezethet",
+ "transcoding_encoding_options": "Enkódolás beállítások",
+ "transcoding_encoding_options_description": "Beállíthatod az enkódolt videók kódolási algoritmusát, felbontását, minőségét és egyéb beállításait",
"transcoding_hardware_acceleration": "Hardveres Gyorsítás",
"transcoding_hardware_acceleration_description": "Kísérleti funkció. Sokkal gyorsabb, viszont azonos bitrátán is alacsonyabb minőséghez vezet",
"transcoding_hardware_decoding": "Hardveres dekódolás",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Maximum kulcskocka intervallum",
"transcoding_max_keyframe_interval_description": "Beállítja a kulcskockák közötti legnagyobb lehetséges távolságot. Alacsony érték csökkenti a tömörítési hatékonyságot, de lejátszás közben az előre- és hátratekerés gyorsabb, valamint javíthatja a gyorsan mozgó jelenetek képminőségét. 0 esetén a szoftver magának állítja be az értéket.",
"transcoding_optimal_description": "A célfelbontásnál nagyobb vagy a nem elfogadott formátumú videókat",
+ "transcoding_policy": "Átkódolási irányelvek",
+ "transcoding_policy_description": "Beállíthatod, hogy egy videó mikor legyen átkódolva",
"transcoding_preferred_hardware_device": "Átkódoláshoz preferált hardver eszköz",
"transcoding_preferred_hardware_device_description": "Csak VAAPI vagy QSV esetén. Beállítja a hardveres átkódoláshoz használt DRI node-ot.",
"transcoding_preset_preset": "Előre Beállított (-preset)",
@@ -309,7 +313,7 @@
"transcoding_reference_frames_description": "A hivatkozott képkockák száma egy képkocka tömörítéséhez. Magasabb értékek növelik a tömörítési hatékonyságot, de lelassítják a kódolási folyamatot. 0 esetén a szoftver magának állítja be az értéket.",
"transcoding_required_description": "Csak az el nem fogadott formátumú videókat",
"transcoding_settings": "Videó Átkódolási Beállítások",
- "transcoding_settings_description": "Videófájlok felbontásának és kódolásának kezelése",
+ "transcoding_settings_description": "Beállíthatod, hogy mely videókat kell átkódolni és hogyan kell feldolgozni őket",
"transcoding_target_resolution": "Célfelbontás",
"transcoding_target_resolution_description": "A magasabb felbontás jobb minőségben őrzi meg a részleteket, de tovább tart létrehozni, nagyobb fájlmérethez vezet és belassíthatja az alkalmazást.",
"transcoding_temporal_aq": "Időbeli (Temporal) AQ",
@@ -322,7 +326,7 @@
"transcoding_transcode_policy_description": "Videó átkódolási szabályzat . HDR videók mindig átkódolásra kerülnek (kivéve, ha az átkódolás ki van kapcsolva).",
"transcoding_two_pass_encoding": "Átkódolás két menetben",
"transcoding_two_pass_encoding_setting_description": "A két menetben átkódolt videók jobb minőségűek lesznek. Ha engedélyezve van a bitráta maximalizálása (amely szükséges a H.264 és a HEVC használatakor), ez a funkció figyelmen kívül hagyja a CRF-et. VP9 használata esetén a CRF használható, ha a bitráta nincs maximalizálva (azaz ki van kapcsolva).",
- "transcoding_video_codec": "Videó Kodek",
+ "transcoding_video_codec": "Videó kodek",
"transcoding_video_codec_description": "VP9 hatékonyabb és kompatibilisebb webre, de tovább tart az átkódolás. HEVC hasonló teljesítményű, de több web kompatibilitási problémát okozhat. H.264 széles körben kompatibilis és gyors az átkódolása, de sokkal nagyobb fájlokat készít. AV1 a leghatékonyabb kodek, de régebbi eszközök nem támogatják.",
"trash_enabled_description": "Lomtár engedélyezése",
"trash_number_of_days": "Napok száma",
@@ -755,6 +759,7 @@
"get_help": "Segítségkérés",
"getting_started": "Kezdő Lépések",
"go_back": "Visszalépés",
+ "go_to_folder": "Ugrás a mappához",
"go_to_search": "Ugrás a kereséshez",
"group_albums_by": "Albumok csoportosítása...",
"group_no": "Nincs csoportosítás",
@@ -1141,6 +1146,7 @@
"server_version": "Szerver Verzió",
"set": "Beállít",
"set_as_album_cover": "Beállítás albumborítóként",
+ "set_as_featured_photo": "Beállítás kiemelt fotónak",
"set_as_profile_picture": "Beállítás profilképként",
"set_date_of_birth": "Születési dátum beállítása",
"set_profile_picture": "Profilkép beállítása",
@@ -1196,6 +1202,7 @@
"sort_items": "Elemek száma",
"sort_modified": "Módosítás dátuma",
"sort_oldest": "Legrégebbi fénykép",
+ "sort_people_by_similarity": "Emberek hasonlóság szerinti rendezése",
"sort_recent": "Legújabb fénykép",
"sort_title": "Cím",
"source": "Forrás",
diff --git a/i18n/id.json b/i18n/id.json
index f44bcf8905..b76dc95e24 100644
--- a/i18n/id.json
+++ b/i18n/id.json
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Faktor kecepatan konstan (-crf)",
"transcoding_constant_rate_factor_description": "Tingkat kualitas video. Nilai umum adalah 23 untuk H.264, 28 untuk HEVC, 31 untuk VP9, dan 35 untuk AV1. Lebih rendah lebih baik, tetapi menghasilkan berkas yang lebih besar.",
"transcoding_disabled_description": "Jangan transkode video apa pun, dapat merusak pemutaran pada beberapa klien",
+ "transcoding_encoding_options": "Opsi Pengodean",
+ "transcoding_encoding_options_description": "Atur kodek, resolusi, kualitas dan opsi lainnya untuk video terenkode",
"transcoding_hardware_acceleration": "Akselerasi Perangkat Keras",
"transcoding_hardware_acceleration_description": "Uji coba; lebih cepat, tetapi akan memiliki kualitas lebih rendah pada kecepatan bit yang sama",
"transcoding_hardware_decoding": "Dekode perangkat keras",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Interval bingkai kunci maksimum",
"transcoding_max_keyframe_interval_description": "Menetapkan jarak bingkai maksimum antara bingkai kunci. Nilai yang lebih rendah membuat efisiensi kompresi lebih buruk, tetapi meningkatkan waktu pencarian dan dapat meningkatkan kualitas dalam adegan dengan gerakan cepat. 0 menetapkan nilai ini secara otomatis.",
"transcoding_optimal_description": "Video lebih tinggi dari resolusi sasaran atau tidak dalam format yang diterima",
+ "transcoding_policy": "Kebijakan Transkode",
+ "transcoding_policy_description": "Atur kapan video ditranskode",
"transcoding_preferred_hardware_device": "Perangkat keras yang lebih disukai",
"transcoding_preferred_hardware_device_description": "Hanya diterapkan pada VAAPI dan QSV. Menetapkan node dri yang digunakan untuk transkode perangkat keras.",
"transcoding_preset_preset": "Prasetel (-preset)",
@@ -309,7 +313,7 @@
"transcoding_reference_frames_description": "Jumlah bingkai untuk direferensikan ketika mengompres bingkai tertentu. Nilai lebih tinggi meningkatkan efisiensi kompresi, tetapi membuat pengodean lambat. 0 menetapkan nilai ini secara otomatis.",
"transcoding_required_description": "Hanya video dalam format yang tidak diterima",
"transcoding_settings": "Pengaturan Transkode Video",
- "transcoding_settings_description": "Kelola resolusi dan informasi pengodean dari berkas video",
+ "transcoding_settings_description": "Kelola video mana saja untuk dienkode dan cara memprosesnya",
"transcoding_target_resolution": "Resolusi sasaran",
"transcoding_target_resolution_description": "Resolusi yang lebih tinggi dapat menjaga lebih banyak detail tetapi memerlukan waktu lebih lama untuk dienkode, memiliki ukuran berkas yang lebih besar, dan dapat mengurangi respons aplikasi.",
"transcoding_temporal_aq": "AQ Temporal",
@@ -322,7 +326,7 @@
"transcoding_transcode_policy_description": "Kebijakan untuk kapan sebuah video harus ditranskode. Video HDR akan selalu ditranskode (kecuali jika transkode dinonaktifkan).",
"transcoding_two_pass_encoding": "Pengodean dua arah",
"transcoding_two_pass_encoding_setting_description": "Transkode dalam dua arah untuk menghasilkan video yang ditranskode dengan lebih baik. Ketika kecepatan bit maksimum diaktifkan (diperlukan supaya bekerja dengan H.264 dan HEVC), mode ini menggunakan jangka kecepatan bit berdasarkan kecepatan bit maksimum dan mengabaikan CRF. Untuk VP9, CRF dapat digunakan jika kecepatan bit maksimum dinonaktifkan.",
- "transcoding_video_codec": "Kodek Video",
+ "transcoding_video_codec": "Kodek video",
"transcoding_video_codec_description": "VP9 memiliki efisiensi dan kompatibilitas web tinggi, tetapi memerlukan waktu yang lebih lama untuk ditranskode. HEVC berkinerja serupa, tetapi memiliki kompatibilitas web yang lebih rendah. H.264 sangat kompatibel dan cepat untuk ditranskode, tetapi menghasilkan berkas yang lebih besar. AV1 adalah kodek yang paling efisien tetapi tidak didukung pada perangkat lawas.",
"trash_enabled_description": "Aktifkan fitur Sampah",
"trash_number_of_days": "Jumlah hari",
@@ -755,6 +759,7 @@
"get_help": "Dapatkan Bantuan",
"getting_started": "Memulai",
"go_back": "Kembali",
+ "go_to_folder": "Pergi ke folder",
"go_to_search": "Pergi ke pencarian",
"group_albums_by": "Kelompokkan album berdasarkan...",
"group_no": "Tidak ada pengelompokan",
@@ -1141,6 +1146,7 @@
"server_version": "Versi Server",
"set": "Atur",
"set_as_album_cover": "Atur sebagai kover album",
+ "set_as_featured_photo": "Tetapkan sebagai foto unggulan",
"set_as_profile_picture": "Atur sebagai foto profil",
"set_date_of_birth": "Atur tanggal lahir",
"set_profile_picture": "Tetapkan foto profil",
@@ -1196,6 +1202,7 @@
"sort_items": "Jumlah item",
"sort_modified": "Tanggal diubah",
"sort_oldest": "Foto terlawas",
+ "sort_people_by_similarity": "Urutkan orang berdasarkan kemiripan",
"sort_recent": "Foto paling terkini",
"sort_title": "Judul",
"source": "Sumber",
diff --git a/i18n/it.json b/i18n/it.json
index 57e6fc1ab7..11e86c4a85 100644
--- a/i18n/it.json
+++ b/i18n/it.json
@@ -1141,6 +1141,7 @@
"server_version": "Versione Server",
"set": "Imposta",
"set_as_album_cover": "Imposta come copertina album",
+ "set_as_featured_photo": "Imposta come immagine in primo piano",
"set_as_profile_picture": "Imposta come foto profilo",
"set_date_of_birth": "Imposta data di nascita",
"set_profile_picture": "Imposta foto profilo",
@@ -1196,6 +1197,7 @@
"sort_items": "Numero di elementi",
"sort_modified": "Data modifica",
"sort_oldest": "Foto più vecchia",
+ "sort_people_by_similarity": "Ordina persone per somiglianza",
"sort_recent": "Foto più recente",
"sort_title": "Titolo",
"source": "Fonte",
diff --git a/i18n/ja.json b/i18n/ja.json
index 0eb2c880f1..98054f14ca 100644
--- a/i18n/ja.json
+++ b/i18n/ja.json
@@ -1145,7 +1145,7 @@
"stop_photo_sharing": "写真の共有を無効化しますか?",
"stop_photo_sharing_description": "{partner} はあなたの写真にアクセスできなくなります。",
"stop_sharing_photos_with_user": "このユーザーとの写真の共有をやめる",
- "storage": "ストレージの空き容量",
+ "storage": "ストレージ使用量",
"storage_label": "ストレージラベル",
"storage_usage": "{available} 中 {used} 使用中",
"submit": "送信",
@@ -1222,6 +1222,8 @@
"user_purchase_settings_description": "購入を管理",
"user_role_set": "{user} を{role}に設定しました",
"user_usage_detail": "ユーザー使用状況の詳細",
+ "user_usage_stats": "アカウント利用状況統計",
+ "user_usage_stats_description": "アカウント利用状況統計を表示",
"username": "ユーザー名",
"users": "ユーザー",
"utilities": "ユーティリティ",
diff --git a/i18n/ko.json b/i18n/ko.json
index a58e20244a..b19d85246d 100644
--- a/i18n/ko.json
+++ b/i18n/ko.json
@@ -23,6 +23,7 @@
"add_to": "앨범에 추가...",
"add_to_album": "앨범에 추가",
"add_to_shared_album": "공유 앨범에 추가",
+ "add_url": "URL 추가",
"added_to_archive": "보관함에 추가되었습니다.",
"added_to_favorites": "즐겨찾기에 추가되었습니다.",
"added_to_favorites_count": "즐겨찾기에 항목 {count, number}개 추가됨",
@@ -222,6 +223,8 @@
"send_welcome_email": "환영 이메일 전송",
"server_external_domain_settings": "외부 도메인",
"server_external_domain_settings_description": "공개 공유 링크에 사용할 도메인 (http(s):// 포함)",
+ "server_public_users": "공공 사용자",
+ "server_public_users_description": "공유 앨범에 사용자를 추가할 경우 모든 사용자(이름, 이메일)가 나열됩니다. 비활성화 할 경우, 관리자만이 사용자 목록을 사용할 수 있습니다.",
"server_settings": "서버 설정",
"server_settings_description": "서버 설정 관리",
"server_welcome_message": "환영 메시지",
diff --git a/i18n/ms.json b/i18n/ms.json
index f45f8e1c9f..d35b8ce98c 100644
--- a/i18n/ms.json
+++ b/i18n/ms.json
@@ -44,7 +44,7 @@
"cleared_jobs": "Kerja telah dibersihkan untuk: {job}",
"config_set_by_file": "Konfigurasi kini ditetapkan oleh fail konfigurasi",
"confirm_delete_library": "Adakah anda pasti mahu memadamkan {library}?",
- "confirm_delete_library_assets": "Adakah anda pasti mahu memadamkan pustaka ini? Ini akan memadam {count, plural, one {# aset yang terkandung} other {semua # aset yang terkandung}} daripada Immich dan tidak boleh dibuat asal. Fail akan kekal pada disk.",
+ "confirm_delete_library_assets": "Adakah anda pasti mahu memadamkan pustaka ini? Ini akan memadam {count, plural, one {# aset yang terkandung} other {semua # aset yang terkandung}} daripada Immich dan tidak boleh dibuat asal. Fail akan kekal pada cakera.",
"confirm_email_below": "Untuk mengesahkan, sila taip \"{email}\" dibawah",
"confirm_reprocess_all_faces": "Adakah anda pasti mahu memproses semula semua wajah? Ini juga akan membersihkan orang bernama.",
"confirm_user_password_reset": "Adakah anda pasti mahu menetapkan semula kata laluan {user}?",
@@ -126,30 +126,45 @@
"machine_learning_min_recognized_faces": "Minimum mengenali wajah",
"machine_learning_min_recognized_faces_description": "Bilangan minima wajah yang dikenali untuk seseorang dicipta. Peningkatan ini menjadikan Pengecaman Wajah lebih tepat atas kos meningkatkan peluang wajah tidak diberikan kepada seseorang.",
"machine_learning_settings": "Tetapan Pembelajaran Mesin",
+ "machine_learning_settings_description": "Urus ciri dan tetapan pembelajaran mesin",
+ "machine_learning_smart_search": "Carian Pintar",
+ "machine_learning_smart_search_description": "Cari imej secara semantik menggunakan pembenaman CLIP",
+ "machine_learning_smart_search_enabled": "Dayakan carian pintar",
"machine_learning_smart_search_enabled_description": "Jika ditutup, gambar-gambar tidak akan dikodkan untuk carian pintar.",
+ "machine_learning_url_description": "URL pelayan pembelajaran mesin. Jika lebih daripada satu URL disediakan, setiap pelayan akan dicuba satu demi satu sehingga satu menjawab dengan jayanya, mengikut urutan dari pertama hingga terakhir.",
+ "manage_concurrency": "Urus Concurrency",
+ "manage_log_settings": "Urus tetapan log",
"map_dark_style": "Tema gelap",
"map_enable_description": "Aktifkan ciri peta",
"map_gps_settings": "Tetapan Peta & GPS",
+ "map_gps_settings_description": "Urus Tetapan Peta & GPS (Geokod Terbalik)",
+ "map_implications": "Ciri peta bergantung pada perkhidmatan jubin luaran (tiles.immich.cloud)",
"map_light_style": "Tema terang",
+ "map_manage_reverse_geocoding_settings": "Urus tetapan Geocoding Songsang",
+ "map_reverse_geocoding": "Geocoding Terbalik",
"map_reverse_geocoding_enable_description": "Dayakan pengekodan geo terbalik",
"map_reverse_geocoding_settings": "Tetapan Pengekodan Geo Terbalik",
"map_settings": "Peta",
"map_settings_description": "Urus tetapan peta",
+ "map_style_description": "URL ke tema peta style.json",
"metadata_extraction_job": "Sari metadata",
"metadata_extraction_job_description": "Sari maklumat metadata dari setiap aset, seperti GPS, muka-muka, dan pelaraian",
"metadata_faces_import_setting": "Dayakan import muka",
+ "metadata_faces_import_setting_description": "Import muka daripada data EXIF imej dan fail sidecar",
"metadata_settings": "Tetapan Metadata",
"metadata_settings_description": "Urus tetapan metadata",
"migration_job": "Migrasi",
"migration_job_description": "Pindahkan imej kecil untuk aset-aset dan muka-muka kepada struktur folder terkini",
"no_paths_added": "Tiada laluan yang ditambah",
"no_pattern_added": "Tiada corak ditambah",
+ "note_apply_storage_label_previous_assets": "Nota: Untuk menggunakan Label Storan pada aset yang dimuat naik sebelum ini, jalankan",
"note_cannot_be_changed_later": "NOTA: Ini tidak boleh diubah kemudian!",
"note_unlimited_quota": "Nota: Masukkan 0 untuk kuota tanpa had",
"notification_email_from_address": "Dari alamat",
"notification_email_from_address_description": "Alamat e-mel penghantar, sebagai contoh: \"Immich Photo Server \"",
"notification_email_host_description": "Hos e-mel pelayan (cth. smtp.immich.app)",
"notification_email_ignore_certificate_errors": "Abaikan ralat-ralat sijil",
+ "notification_email_ignore_certificate_errors_description": "Abaikan ralat pengesahan sijil TLS (tidak disyorkan)",
"notification_email_password_description": "Kata laluan untuk digunakan semasa membuat pengesahan dengan pelayan e-mel",
"notification_email_port_description": "Port pelayan e-mel (cth 25, 465 atau 587)",
"notification_email_sent_test_email_button": "Hantar e-mel ujian dan simpan",
@@ -162,6 +177,7 @@
"notification_settings": "Tetapan Pemberitahuan",
"notification_settings_description": "Urus tetapan-tetapan notifikasi, termasuk e-mel",
"oauth_auto_launch": "Pelancaran automatik",
+ "oauth_auto_launch_description": "Mulakan aliran log masuk OAuth secara automatik apabila menavigasi ke halaman log masuk",
"oauth_auto_register": "Daftar secara automatik",
"oauth_auto_register_description": "Daftar secara automatik pengguna-pengguna baharu selepas mendaftar masuk dengan OAuth",
"oauth_button_text": "Teks butang",
@@ -170,22 +186,50 @@
"oauth_enable_description": "Log masuk dengan OAuth",
"oauth_issuer_url": "URL Pengeluar",
"oauth_mobile_redirect_uri": "URI ubah hala mudah alih",
+ "oauth_mobile_redirect_uri_override": "Penggantian URI ubah hala mudah alih",
+ "oauth_mobile_redirect_uri_override_description": "Aktifkan apabila pembekal OAuth tidak membenarkan URI mudah alih, seperti '{callback}'",
+ "oauth_profile_signing_algorithm": "Algoritma tandatangan profil",
+ "oauth_profile_signing_algorithm_description": "Algoritma digunakan untuk menandatangani profil pengguna.",
"oauth_scope": "Skop",
"oauth_settings": "OAuth",
"oauth_settings_description": "Urus tetapan-tetapan log masuk OAuth",
"oauth_settings_more_details": "Untuk maklumat lanjut tentang ciri ini, rujuk ke dokumen.",
+ "oauth_signing_algorithm": "Tandatangan algoritma",
+ "oauth_storage_label_claim": "Tuntutan label storan",
+ "oauth_storage_label_claim_description": "Tetapkan label storan pengguna secara automatik kepada nilai tuntutan ini.",
+ "oauth_storage_quota_claim": "Tuntutan kuota storan",
+ "oauth_storage_quota_claim_description": "Tetapkan kuota storan pengguna secara automatik kepada nilai tuntutan ini.",
"oauth_storage_quota_default": "Kuota storan lalai (GiB)",
+ "oauth_storage_quota_default_description": "Kuota dalam GiB untuk digunakan apabila tiada tuntutan disediakan (Masukkan 0 untuk kuota tanpa had).",
+ "offline_paths": "Laluan Luar Talian",
+ "offline_paths_description": "Keputusan ini mungkin disebabkan oleh pemadaman manual fail yang bukan sebahagian daripada pustaka luaran.",
"password_enable_description": "Log masuk dengan e-mel dan kata laluan",
"password_settings": "Kata Laluan Log Masuk",
"password_settings_description": "Urus tetapan-tetapan kata laluan log masuk",
"paths_validated_successfully": "Semua laluan berjaya disahkan",
+ "person_cleanup_job": "Pembersihan orang",
"quota_size_gib": "Saiz Kuota (GiB)",
- "registration": "Pendaftaran Admin",
+ "refreshing_all_libraries": "Menyegarkan semua perpustakaan",
+ "registration": "Pendaftaran Pentadbir",
"registration_description": "Memandangkan anda adalah pengguna pertama pada sistem, anda akan ditugaskan sebagai Admin dan bertanggungjawab untuk tugas pentadbiran, serta pengguna tambahan yang akan anda tambah.",
"repair_all": "Baiki Semua",
+ "repair_matched_items": "Memadankan {count, plural, one {# item} other {# items}}",
+ "repaired_items": "Dibaiki {count, plural, one {# item} other {# items}}",
"require_password_change_on_login": "Perlukan pengguna menukar kata laluan ketika log masuk pertama",
"reset_settings_to_default": "Tetapkan semula tetapan kepada lalai",
- "reset_settings_to_recent_saved": "Tetapkan semula tetapan kepada tetapan yang disimpan baru-baru ini"
+ "reset_settings_to_recent_saved": "Tetapkan semula tetapan kepada tetapan yang disimpan baru-baru ini",
+ "scanning_library": "Mengimbas perpustakaan",
+ "search_jobs": "Cari kerja...",
+ "send_welcome_email": "Hantar e-mel alu-aluan",
+ "server_external_domain_settings": "Domain luaran",
+ "server_external_domain_settings_description": "Domain untuk pautan kongsi awam, termasuk http(s)://",
+ "server_public_users": "Pengguna Awam",
+ "server_public_users_description": "Semua pengguna (nama dan e-mel) disenaraikan apabila menambahkan pengguna pada album kongsi. Apabila dilumpuhkan, senarai pengguna hanya akan tersedia kepada pengguna pentadbir.",
+ "server_settings": "Tetapan Pelayan",
+ "server_settings_description": "Urus tetapan pelayan",
+ "server_welcome_message": "Mesej alu-aluan",
+ "server_welcome_message_description": "Mesej yang dipaparkan pada halaman log masuk.",
+ "sidecar_job": "Metadata kereta sisi"
},
"timeline": "Garis masa",
"total": "Jumlah",
diff --git a/i18n/nb_NO.json b/i18n/nb_NO.json
index 2d78ea414a..9bd4340fc8 100644
--- a/i18n/nb_NO.json
+++ b/i18n/nb_NO.json
@@ -23,11 +23,13 @@
"add_to": "Legg til...",
"add_to_album": "Legg til album",
"add_to_shared_album": "Legg til delt album",
+ "add_url": "Legg til URL",
"added_to_archive": "Lagt til i arkiv",
"added_to_favorites": "Lagt til i favoritter",
"added_to_favorites_count": "Lagt til {count, number} i favoritter",
"admin": {
"add_exclusion_pattern_description": "Legg til ekskluderingsmønstre. Globbing med *, ** og ? støttes. For å ignorere alle filer i en hvilken som helst mappe som heter \"Raw\", bruk \"**/Raw/**\". For å ignorere alle filer som slutter på \".tif\", bruk \"**/*.tif\". For å ignorere en absolutt filplassering, bruk \"/filbane/til/ignorer/**\".",
+ "asset_offline_description": "Denne eksterne bibliotekressursen finnes ikke lenger på disk og har blitt flyttet til papirkurven. Hvis filen ble flyttet innad i biblioteket, sjekk tidslinjen din for den tilsvarende ressursen. For å gjenopprette ressursen, vennligst sørg for at filstien under er tilgjengelig for Immich og skan biblioteket.",
"authentication_settings": "Autentiserings innstillinger",
"authentication_settings_description": "Administrer passord, OAuth, og andre innstillinger for autentisering",
"authentication_settings_disable_all": "Er du sikker på at du ønsker å deaktivere alle innloggingsmetoder? Innlogging vil bli fullstendig deaktivert.",
@@ -47,6 +49,7 @@
"confirm_reprocess_all_faces": "Er du sikker på at du vil behandle alle ansikter på nytt? Dette vil også fjerne navngitte personer.",
"confirm_user_password_reset": "Er du sikker på at du vil tilbakestille passordet til {user}?",
"create_job": "Lag jobb",
+ "cron_expression": "Cron uttrykk",
"disable_login": "Deaktiver innlogging",
"duplicate_detection_job_description": "Kjør maskinlæring på filer for å oppdage lignende bilder. Krever bruk av Smart Search",
"exclusion_pattern_description": "Ekskluderingsmønstre lar deg ignorere filer og mapper når du skanner biblioteket ditt. Dette er nyttig hvis du har mapper som inneholder filer du ikke vil importere, for eksempel RAW-filer.",
diff --git a/i18n/nl.json b/i18n/nl.json
index de88cba9da..0627795079 100644
--- a/i18n/nl.json
+++ b/i18n/nl.json
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Constant rate factor (-crf)",
"transcoding_constant_rate_factor_description": "Niveau voor videokwaliteit. Typische waarden zijn 23 voor H.264, 28 voor HEVC, 31 voor VP9 en 35 voor AV1. Lager is beter, maar produceert grotere bestanden.",
"transcoding_disabled_description": "Transcodeer geen video's. Het afspelen kan op sommige clients niet meer werken",
+ "transcoding_encoding_options": "Coderings Opties",
+ "transcoding_encoding_options_description": "Stel codecs, resolutie, kwaliteit en andere opties in voor de gecodeerde video's",
"transcoding_hardware_acceleration": "Hardware acceleratie",
"transcoding_hardware_acceleration_description": "Experimenteel; veel sneller, maar zal een lagere kwaliteit hebben bij dezelfde bitrate",
"transcoding_hardware_decoding": "Hardware decodering",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Maximum keyframe interval",
"transcoding_max_keyframe_interval_description": "Stelt de maximale frameafstand tussen keyframes in. Lagere waarden verslechteren de compressie efficiëntie, maar verbeteren de zoektijden en kunnen de kwaliteit verbeteren in scènes met snelle bewegingen. 0 stelt deze waarde automatisch in.",
"transcoding_optimal_description": "Video's met een hogere resolutie dan de doelresolutie of niet in een geaccepteerd formaat",
+ "transcoding_policy": "Transcode beleid",
+ "transcoding_policy_description": "Stel in wanneer een video wordt getranscodeerd",
"transcoding_preferred_hardware_device": "Voorkeur hardwareapparaat",
"transcoding_preferred_hardware_device_description": "Geldt alleen voor VAAPI en QSV. Stelt de dri node in die wordt gebruikt voor hardwaretranscodering.",
"transcoding_preset_preset": "Preset (-preset)",
@@ -309,7 +313,7 @@
"transcoding_reference_frames_description": "Het aantal frames om naar te verwijzen bij het comprimeren van een bepaald frame. Hogere waarden verbeteren de compressie-efficiëntie, maar vertragen de codering. Bij 0 wordt deze waarde automatisch ingesteld.",
"transcoding_required_description": "Alleen video's die geen geaccepteerd formaat hebben",
"transcoding_settings": "Instellingen voor videotranscodering",
- "transcoding_settings_description": "Beheer de resolutie en coderingsgegevens van de videobestanden",
+ "transcoding_settings_description": "Beheer welke videos worden getranscodeerd en hoe ze worden verwerkt",
"transcoding_target_resolution": "Target resolutie",
"transcoding_target_resolution_description": "Hogere resoluties kunnen meer details behouden, maar het coderen ervan duurt langer, de bestandsgrootte is groter en de app reageert mogelijk minder snel.",
"transcoding_temporal_aq": "Temporal AQ",
@@ -322,7 +326,7 @@
"transcoding_transcode_policy_description": "Beleid voor wanneer een video getranscodeerd moet worden. HDR-video's worden altijd getranscodeerd (behalve als transcodering is uitgeschakeld).",
"transcoding_two_pass_encoding": "Two-pass encodering",
"transcoding_two_pass_encoding_setting_description": "Transcodeer in twee passes om beter gecodeerde video's te produceren. Wanneer de maximale bitrate is ingeschakeld (vereist om te werken met H.264 en HEVC), gebruikt deze modus een bitraterange op basis van de maximale bitrate en negeert CRF. Voor VP9 kan CRF worden gebruikt als de maximale bitrate is uitgeschakeld.",
- "transcoding_video_codec": "Video codec",
+ "transcoding_video_codec": "Video Codec",
"transcoding_video_codec_description": "VP9 heeft een hoge efficiëntie en webcompatibiliteit, maar duurt langer om te transcoderen. HEVC presteert vergelijkbaar, maar heeft een lagere webcompatibiliteit. H.264 is breed compatibel en snel om te transcoderen, maar produceert veel grotere bestanden. AV1 is de meest efficiënte codec, maar mist ondersteuning op oudere apparaten.",
"trash_enabled_description": "Prullenbakfuncties inschakelen",
"trash_number_of_days": "Aantal dagen",
@@ -755,6 +759,7 @@
"get_help": "Krijg hulp",
"getting_started": "Aan de slag",
"go_back": "Ga terug",
+ "go_to_folder": "Ga naar map",
"go_to_search": "Ga naar zoeken",
"group_albums_by": "Groepeer albums op...",
"group_no": "Niet groeperen",
@@ -1141,6 +1146,7 @@
"server_version": "Server versie",
"set": "Instellen",
"set_as_album_cover": "Stel in als album cover",
+ "set_as_featured_photo": "Instellen als uitgelichte foto",
"set_as_profile_picture": "Instellen als profielfoto",
"set_date_of_birth": "Geboortedatum instellen",
"set_profile_picture": "Profielfoto instellen",
@@ -1196,6 +1202,7 @@
"sort_items": "Aantal items",
"sort_modified": "Datum aangepast",
"sort_oldest": "Oudste foto",
+ "sort_people_by_similarity": "Sorteer personen op gelijkenis",
"sort_recent": "Meest recente foto",
"sort_title": "Titel",
"source": "Bron",
diff --git a/i18n/pl.json b/i18n/pl.json
index 5aa732327e..d118a130d1 100644
--- a/i18n/pl.json
+++ b/i18n/pl.json
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Stały współczynnik szybkości (-crf)",
"transcoding_constant_rate_factor_description": "Poziom jakości wideo. Typowe wartości to 23 dla H.264, 28 dla HEVC, 31 dla VP9 i 35 dla AV1. Niższa jakość jest lepsza, ale tworzy większe pliki.",
"transcoding_disabled_description": "Nie transkoduj żadnych filmów, może to spowodować przerwanie odtwarzania na niektórych klientach",
+ "transcoding_encoding_options": "Opcje kodowania",
+ "transcoding_encoding_options_description": "Ustawia kodeki, rozdzielczość, jakość oraz inne opcje dla kodowanych filmów",
"transcoding_hardware_acceleration": "Przyspieszenie Sprzętowe",
"transcoding_hardware_acceleration_description": "Eksperymentalny; znacznie szybszy, ale będzie miał niższą jakość przy tej samej szybkości transmisji",
"transcoding_hardware_decoding": "Dekodowanie sprzętowe",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Maksymalny interwał klatek kluczowych",
"transcoding_max_keyframe_interval_description": "Ustawia maksymalny dystans między klatkami kluczowymi. Niższe wartości przyspieszają przeszukiwanie filmów i mogą poprawić jakość w scenach z dużą ilością ruchu, kosztem gorszej efektywności kompresji. 0 ustawia tą wartość automatycznie.",
"transcoding_optimal_description": "Filmy w rozdzielczości wyższej niż docelowa lub w nieakceptowanym formacie",
+ "transcoding_policy": "Polityka transkodowania",
+ "transcoding_policy_description": "Ustaw kiedy film będzie transkodowany",
"transcoding_preferred_hardware_device": "Preferowane urządzenie sprzętowe",
"transcoding_preferred_hardware_device_description": "Dotyczy tylko VAAPI i QSV. Ustawia węzeł dri używany do transkodowania sprzętowego.",
"transcoding_preset_preset": "Ustawienie wstępne (-preset)",
@@ -309,7 +313,7 @@
"transcoding_reference_frames_description": "Liczba klatek używana do odnoszenia się podczas kompresowania danej klatki. Wyższe wartości poprawiają efektywność kompresji, ale spowalniają kodowanie. 0 ustawia tą wartość automatycznie.",
"transcoding_required_description": "Tylko filmy w nieakceptowanym formacie",
"transcoding_settings": "Ustawienia Transkodowania Wideo",
- "transcoding_settings_description": "Zarządzaj rozdzielczością i kodowaniem plików wideo",
+ "transcoding_settings_description": "Wybierz które filmy transkodować i jak je przetwarzać",
"transcoding_target_resolution": "Docelowa rozdzielczość",
"transcoding_target_resolution_description": "Wyższe rozdzielczości pozwalają zachować więcej szczegółów, ale kodowanie zajmuje więcej czasu, powoduje większe rozmiary plików i może zmniejszyć płynność aplikacji.",
"transcoding_temporal_aq": "Tymczasowe (Temporal) AQ",
@@ -755,6 +759,7 @@
"get_help": "Pomoc",
"getting_started": "Pierwsze kroki",
"go_back": "Wstecz",
+ "go_to_folder": "Idź do folderu",
"go_to_search": "Przejdź do wyszukiwania",
"group_albums_by": "Grupuj albumy...",
"group_no": "Brak grupowania",
@@ -1141,6 +1146,7 @@
"server_version": "Wersja serwera",
"set": "Ustaw",
"set_as_album_cover": "Ustaw jako okładkę albumu",
+ "set_as_featured_photo": "Ustaw jako wyróżnione zdjęcie",
"set_as_profile_picture": "Ustaw jako zdjęcie profilowe",
"set_date_of_birth": "Ustaw datę urodzenia",
"set_profile_picture": "Ustaw zdjęcie profilowe",
@@ -1196,6 +1202,7 @@
"sort_items": "Liczba rzeczy",
"sort_modified": "Data modyfikacji",
"sort_oldest": "Najstarsze zdjęcie",
+ "sort_people_by_similarity": "Sortuj twarze według cech podobnych",
"sort_recent": "Najnowsze zdjęcie",
"sort_title": "Tytuł",
"source": "Źródło",
diff --git a/i18n/pt.json b/i18n/pt.json
index d34e0424bc..0738c64780 100644
--- a/i18n/pt.json
+++ b/i18n/pt.json
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Fator de taxa constante (-crf)",
"transcoding_constant_rate_factor_description": "Nível de qualidade do vídeo. Os valores típicos são 23 para H.264, 28 para HEVC, 31 para VP9 e 35 para AV1. Menor é melhor, mas produz ficheiros maiores.",
"transcoding_disabled_description": "Não transcodificar nenhum vídeo, no entanto pode causar erros de reprodução em alguns clientes",
+ "transcoding_encoding_options": "Definições de codificação de vídeo",
+ "transcoding_encoding_options_description": "Definir codecs, resolução, qualidade e outras opções para videos codificados",
"transcoding_hardware_acceleration": "Aceleração de hardware",
"transcoding_hardware_acceleration_description": "Experimental; muito mais rápido, mas terá qualidade inferior com a mesma taxa de bits",
"transcoding_hardware_decoding": "Decodificação de hardware",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Intervalo máximo de quadro-chave",
"transcoding_max_keyframe_interval_description": "Define a distância máxima do quadro entre os quadros-chave. Valores mais baixos pioram a eficiência da compressão, mas melhoram os tempos de procura e podem melhorar a qualidade em cenas com movimento rápido. 0 define esse valor automaticamente.",
"transcoding_optimal_description": "Vídeos com resolução superior à desejada ou num formato não aceite",
+ "transcoding_policy": "Política de Transcodificação",
+ "transcoding_policy_description": "Definir quando um vídeo será transcodificado",
"transcoding_preferred_hardware_device": "Dispositivo de hardware preferido",
"transcoding_preferred_hardware_device_description": "Aplica-se apenas a VAAPI e QSV. Define o nó dri usado para transcodificação de hardware.",
"transcoding_preset_preset": "Predefinição (-preset)",
@@ -309,7 +313,7 @@
"transcoding_reference_frames_description": "O número de quadros a serem referenciados ao comprimir um determinado quadro. Valores mais altos melhoram a eficiência da compressão, mas tornam a codificação mais lenta. 0 define esse valor automaticamente.",
"transcoding_required_description": "Apenas vídeos que não estejam num formato aceite",
"transcoding_settings": "Definições de transcodificação de vídeo",
- "transcoding_settings_description": "Gerir as informações de resolução e codificação dos ficheiros de vídeo",
+ "transcoding_settings_description": "Gerir quais os videos a transcodificar e como os processar",
"transcoding_target_resolution": "Resolução desejada",
"transcoding_target_resolution_description": "Resoluções mais altas podem preservar mais detalhes, mas demoram mais para codificar, têm tamanhos de ficheiro maiores e podem reduzir a capacidade de resposta da aplicação.",
"transcoding_temporal_aq": "QA temporal",
@@ -322,7 +326,7 @@
"transcoding_transcode_policy_description": "Política para quando um vídeo deve ser transcodificado. Os vídeos HDR serão sempre transcodificados (exceto se a transcodificação estiver desativada).",
"transcoding_two_pass_encoding": "Codificação em duas passagens",
"transcoding_two_pass_encoding_setting_description": "Transcodificar em duas passagens para produzir vídeos melhor codificados. Quando a taxa de bits máxima está ativada (necessário para funcionar com H.264 e HEVC), este modo usa um intervalo de taxa de bits baseado na taxa de bits máxima e ignora o CRF. Para VP9, o CRF pode ser usado se a taxa de bits máxima estiver desativada.",
- "transcoding_video_codec": "Codec de vídeo",
+ "transcoding_video_codec": "Codificador de Vídeo",
"transcoding_video_codec_description": "O VP9 tem alta eficiência e compatibilidade com a web, mas leva mais tempo para transcodificar. HEVC tem desempenho semelhante, mas tem menor compatibilidade com a web. H.264 é amplamente compatível e rápido de transcodificar, mas produz ficheiros muito maiores. AV1 é o codec mais eficiente, mas não possui suporte em dispositivos mais antigos.",
"trash_enabled_description": "Ativar funcionalidade da Reciclagem",
"trash_number_of_days": "Número de dias",
@@ -755,6 +759,7 @@
"get_help": "Obter Ajuda",
"getting_started": "Primeiros Passos",
"go_back": "Regressar",
+ "go_to_folder": "Ir para a pasta",
"go_to_search": "Ir para a pesquisa",
"group_albums_by": "Agrupar álbuns por...",
"group_no": "Sem agrupamento",
@@ -1141,6 +1146,7 @@
"server_version": "Versão do servidor",
"set": "Definir",
"set_as_album_cover": "Definir como capa do álbum",
+ "set_as_featured_photo": "Definir como foto principal",
"set_as_profile_picture": "Definir como foto de perfil",
"set_date_of_birth": "Definir data de nascimento",
"set_profile_picture": "Definir foto de perfil",
@@ -1196,6 +1202,7 @@
"sort_items": "Número de itens",
"sort_modified": "Data de modificação",
"sort_oldest": "Foto mais antiga",
+ "sort_people_by_similarity": "Ordenar pessoas por semelhança",
"sort_recent": "Foto mais recente",
"sort_title": "Título",
"source": "Fonte",
diff --git a/i18n/pt_BR.json b/i18n/pt_BR.json
index ccddd1cd3b..8e7c6b5273 100644
--- a/i18n/pt_BR.json
+++ b/i18n/pt_BR.json
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Fator de taxa constante (-crf)",
"transcoding_constant_rate_factor_description": "Nível de qualidade do vídeo. Os valores típicos são 23 para H.264, 28 para HEVC, 31 para VP9 e 35 para AV1. Menor é melhor, mas produz arquivos maiores.",
"transcoding_disabled_description": "Não transcodifique nenhum vídeo, pois pode interromper a reprodução em alguns clientes",
+ "transcoding_encoding_options": "Opções de codificação de vídeo",
+ "transcoding_encoding_options_description": "Defina codecs, resolução, qualidade e outras opções para vídeos codificados",
"transcoding_hardware_acceleration": "Aceleração de hardware",
"transcoding_hardware_acceleration_description": "Experimental; muito mais rápido, mas terá qualidade inferior com a mesma taxa de bits",
"transcoding_hardware_decoding": "Decodificação de hardware",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Intervalo máximo de quadro-chave",
"transcoding_max_keyframe_interval_description": "Define a distância máxima do quadro entre os quadros-chave. Valores mais baixos pioram a eficiência da compressão, mas melhoram os tempos de busca e podem melhorar a qualidade em cenas com movimento rápido. 0 define esse valor automaticamente.",
"transcoding_optimal_description": "Vídeos com resolução superior à desejada ou em formato não aceito",
+ "transcoding_policy": "Política de Transcodificação",
+ "transcoding_policy_description": "Defina quando um vídeo será transcodificado",
"transcoding_preferred_hardware_device": "Dispositivo de hardware preferido",
"transcoding_preferred_hardware_device_description": "Aplica-se apenas a VAAPI e QSV. Define o nó dri usado para transcodificação de hardware.",
"transcoding_preset_preset": "Predefinido (-preset)",
@@ -309,7 +313,7 @@
"transcoding_reference_frames_description": "O número de quadros a serem referenciados ao compactar um determinado quadro. Valores mais altos melhoram a eficiência da compactação, mas retardam a codificação. 0 define esse valor automaticamente.",
"transcoding_required_description": "Somente vídeos que não estejam em um formato aceito",
"transcoding_settings": "Configurações de transcodificação de vídeo",
- "transcoding_settings_description": "Gerencie as informações de resolução e codificação dos arquivos de vídeo",
+ "transcoding_settings_description": "Defina quais vídeos transcodificar e como serão processados",
"transcoding_target_resolution": "Resolução desejada",
"transcoding_target_resolution_description": "Resoluções mais altas podem preservar mais detalhes, mas demoram mais para codificar, têm tamanhos de arquivo maiores e podem reduzir a capacidade de resposta do aplicativo.",
"transcoding_temporal_aq": "QA temporal",
@@ -755,6 +759,7 @@
"get_help": "Obter Ajuda",
"getting_started": "Primeiros passos",
"go_back": "Voltar",
+ "go_to_folder": "Ir para a pasta",
"go_to_search": "Ir para a pesquisa",
"group_albums_by": "Agrupar álbuns por...",
"group_no": "Sem agrupamento",
@@ -1141,6 +1146,7 @@
"server_version": "Versão do servidor",
"set": "Definir",
"set_as_album_cover": "Definir como capa do álbum",
+ "set_as_featured_photo": "Definir como foto principal",
"set_as_profile_picture": "Definir como foto de perfil",
"set_date_of_birth": "Definir data de nascimento",
"set_profile_picture": "Definir foto de perfil",
@@ -1196,6 +1202,7 @@
"sort_items": "Número de itens",
"sort_modified": "Data de modificação",
"sort_oldest": "Foto mais antiga",
+ "sort_people_by_similarity": "Ordenar pessoas por semelhança",
"sort_recent": "Foto mais recente",
"sort_title": "Título",
"source": "Fonte",
diff --git a/i18n/ro.json b/i18n/ro.json
index 878bf9dd67..1d4a598b52 100644
--- a/i18n/ro.json
+++ b/i18n/ro.json
@@ -1141,6 +1141,7 @@
"server_version": "Versiune Server",
"set": "Setați",
"set_as_album_cover": "Setați ca și copertă a albumului",
+ "set_as_featured_photo": "Setează că poză prezentată",
"set_as_profile_picture": "Setați ca imagine de profil",
"set_date_of_birth": "Setați data nașterii",
"set_profile_picture": "Setați poza de profil",
@@ -1196,6 +1197,7 @@
"sort_items": "Numărul de articole",
"sort_modified": "Data modificării",
"sort_oldest": "Cea mai veche fotografie",
+ "sort_people_by_similarity": "Sortează oameni după asemanare",
"sort_recent": "Cea mai recentă fotografie",
"sort_title": "Titlu",
"source": "Sursă",
diff --git a/i18n/ru.json b/i18n/ru.json
index 520a84406c..2beb59de60 100644
--- a/i18n/ru.json
+++ b/i18n/ru.json
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Коэффициент постоянной скорости (-crf)",
"transcoding_constant_rate_factor_description": "Уровень качества видео. Типичные значения: 23 для H.264, 28 для HEVC, 31 для VP9 и 35 для AV1. Чем ниже, тем лучше, но при этом создаются файлы большего размера.",
"transcoding_disabled_description": "Не перекодировать видео, это может привести к сбою воспроизведения на некоторых клиентах",
+ "transcoding_encoding_options": "Параметры кодирования",
+ "transcoding_encoding_options_description": "Установите кодеки, разрешение, качество и другие параметры для кодированного видео",
"transcoding_hardware_acceleration": "Аппаратное ускорение",
"transcoding_hardware_acceleration_description": "Экспериментальный; намного быстрее, но будет иметь более низкое качество при том же битрейте",
"transcoding_hardware_decoding": "Аппаратное декодирование",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Максимальный интервал ключевых кадров",
"transcoding_max_keyframe_interval_description": "Устанавливает максимальное расстояние между ключевыми кадрами. Более низкие значения ухудшают эффективность сжатия, но сокращают время поиска и могут улучшить качество в сценах с быстрым движением. 0 устанавливает это значение автоматически.",
"transcoding_optimal_description": "Видео с разрешением выше целевого или не в принятом формате",
+ "transcoding_policy": "Политика перекодировки",
+ "transcoding_policy_description": "Установите, когда видео будет перекодировано",
"transcoding_preferred_hardware_device": "Предпочитаемое аппаратное устройство",
"transcoding_preferred_hardware_device_description": "Применяется только к VAAPI и QSV. Устанавливает dri-узел, используемый для аппаратного перекодирования.",
"transcoding_preset_preset": "Предустановка",
@@ -309,7 +313,7 @@
"transcoding_reference_frames_description": "Количество кадров, на которые следует ссылаться при сжатии данного кадра. Более высокие значения повышают эффективность сжатия, но замедляют кодирование. 0 устанавливает это значение автоматически.",
"transcoding_required_description": "Только видео в нестандартном формате",
"transcoding_settings": "Настройки транскодирования видео",
- "transcoding_settings_description": "Управление разрешением и кодированием видеофайлов",
+ "transcoding_settings_description": "Управляйте тем, какие видео нужно перекодировать и как их обрабатывать",
"transcoding_target_resolution": "Целевое разрешение",
"transcoding_target_resolution_description": "Более высокие разрешения позволяют сохранить больше деталей, но требуют больше времени для кодирования, имеют больший размер файлов и могут снизить скорость отклика приложения.",
"transcoding_temporal_aq": "Временной AQ",
@@ -755,6 +759,7 @@
"get_help": "Получить помощь",
"getting_started": "Приступая к работе",
"go_back": "Назад",
+ "go_to_folder": "Перейти в папку",
"go_to_search": "Перейти к поиску",
"group_albums_by": "Группировать альбомы по...",
"group_no": "Без группировки",
@@ -1141,6 +1146,7 @@
"server_version": "Версия Сервера",
"set": "Установить",
"set_as_album_cover": "Установить в качестве обложки альбома",
+ "set_as_featured_photo": "Установить как основное фото",
"set_as_profile_picture": "Установить как фото профиля",
"set_date_of_birth": "Установить дату рождения",
"set_profile_picture": "Установить изображение профиля",
@@ -1196,6 +1202,7 @@
"sort_items": "Количество элементов",
"sort_modified": "Дата изменения",
"sort_oldest": "Старые фото",
+ "sort_people_by_similarity": "Сортировать людей по сходству",
"sort_recent": "Недавние фото",
"sort_title": "Заголовок",
"source": "Исходный код",
diff --git a/i18n/sk.json b/i18n/sk.json
index bf67b8ab12..f3610acd8e 100644
--- a/i18n/sk.json
+++ b/i18n/sk.json
@@ -1,5 +1,5 @@
{
- "about": "Obnoviť",
+ "about": "O Immich",
"account": "Účet",
"account_settings": "Nastavenia účtu",
"acknowledge": "Rozumiem",
@@ -7,7 +7,7 @@
"actions": "Akcie",
"active": "Aktívny",
"activity": "Aktivita",
- "activity_changed": "Aktivita je {enabled, select, true{povolená} other {vypnutá}}",
+ "activity_changed": "Aktivita je {enabled, select, true{povolená} other {zakázaná}}",
"add": "Pridať",
"add_a_description": "Pridať popis",
"add_a_location": "Pridať polohu",
@@ -30,7 +30,7 @@
"admin": {
"add_exclusion_pattern_description": "Pridávanie vzorov na vylúčenie. Globovanie pomocou *, ** a ? je podporované. Ak chcete ignorovať všetky súbory v akomkoľvek adresári s názvom \"Raw\", použite \"**/Raw/**\". Ak chcete ignorovať všetky súbory končiace na \".tif\", použite \"**/*.tif\". Ak chcete ignorovať absolútnu cestu, použite príkaz \"/cesta/k/ignorovanym/**\".",
"asset_offline_description": "Táto položka externej knižnice sa už na disku nenachádza a bola presunutá do koša. Pokiaľ bol súbor presunutý v rámci knižnice, skontrolujte časovú os a vyhľadajte nové odpovedajúce položky. Ak chcete túto položku obnoviť, uistite sa, že je cesta k nižšie uvedenému súboru prístupná pre aplikáciu Immich a prehľadajte knižnicu.",
- "authentication_settings": "Nastavenia overovania",
+ "authentication_settings": "Overovanie a prihlásenie",
"authentication_settings_description": "Spravovať heslo, protokol OAuth a ďalšie nastavenia overenia",
"authentication_settings_disable_all": "Naozaj chcete zakázať všetky spôsoby prihlásenia? Prihlásenie bude úplne zakázané.",
"authentication_settings_reenable": "Pre opätovné povolenie použite Serverový príkaz.",
@@ -71,19 +71,19 @@
"image_prefer_wide_gamut_setting_description": "Použiť Display P3 pre miniatúry. Toto lepšie zachováva živosť obrázkov so širokým farebným rozsahom. Obrázky sa môžu zobraziť odlišne na starších zariadeniach so starou verziou prehliadača. sRGB obrázky zostávajú sRGB, aby sa zabránilo farebným posunom.",
"image_preview_description": "Stredne veľký obrázok s odstránenými metadátami, používaný pri prezeraní jednej položky a na strojové učenie",
"image_preview_quality_description": "Kvalita náhľadu v stupnici od 1 do 100. Vyššia hodnota znamená lepšiu kvalitu, ale produkuje väčšie súbory a môže znížiť odozvu aplikácie. Nastavenie nižšej hodnoty môže ovplyvniť kvalitu strojového učenia.",
- "image_preview_title": "Nastavenia Náhľadov",
+ "image_preview_title": "Náhľady",
"image_quality": "Kvalita",
"image_resolution": "Rozlíšenie",
"image_resolution_description": "Vyššie rozlíšenie môže zachovať viac detailov, ale kódovanie trvá dlhšie, súbory sú väčšie a môže to znížiť rýchlosť odozvy aplikácie.",
- "image_settings": "Nastavenia Obrázkov",
+ "image_settings": "Obrázky",
"image_settings_description": "Spravovať kvalitu a rozlíšenie generovaných obrázkov",
"image_thumbnail_description": "Malá miniatúra s odstránenými metadátami, používané pri zobrazovaní skupín fotiek ako na hlavnej časovej osi",
"image_thumbnail_quality_description": "Kvalita miniatúry v stupnici od 1 do 100. Vyššia hodnota znamená lepšiu kvalitu, ale produkuje väčšie súbory a môže znížiť odozvu aplikácie.",
- "image_thumbnail_title": "Nastavenia miniatúr",
+ "image_thumbnail_title": "Miniatúry",
"job_concurrency": "Súbežnosť úlohy - {job}",
"job_created": "Úloha bola vytvorená",
"job_not_concurrency_safe": "Táto úloha nie je bezpečná pre súbežné spracovanie.",
- "job_settings": "Nastavenia Úloh",
+ "job_settings": "Úlohy",
"job_settings_description": "Spravovať súbežnosť úloh",
"job_status": "Stav Úloh",
"jobs_delayed": "{jobCount, plural, one {# oneskorený} few {# oneskorené} other {# oneskorených}}",
@@ -125,7 +125,7 @@
"machine_learning_min_detection_score_description": "Minimálne skóre dôveryhodnosti pre detekciu tváre v rozsahu od 0 do 1. Nižšie hodnoty odhalia viac tvárí, ale môžu viesť k falošným pozitivním výsledkom.",
"machine_learning_min_recognized_faces": "Minimum rozpoznaných tvárí",
"machine_learning_min_recognized_faces_description": "Minimálny počet rozpoznaných tvárí potrebných na vytvorenie osoby. Zvýšením tejto hodnoty sa zvyšuje presnosť rozpoznávania tvárí, ale tiež sa zvyšuje pravdepodobnosť, že tvár nebude priradená osobe.",
- "machine_learning_settings": "Nastavenia strojového učenia",
+ "machine_learning_settings": "Strojové učenie",
"machine_learning_settings_description": "Spravovať funkcie a nastavenia strojového učenia",
"machine_learning_smart_search": "Inteligentné vyhľadávanie",
"machine_learning_smart_search_description": "Významové vyhľadávanie v obrázkoch pomocou CLIP vzorov",
@@ -136,14 +136,14 @@
"manage_log_settings": "Spravovať nastavenia logovania",
"map_dark_style": "Tmavý štýl",
"map_enable_description": "Povoliť funkcie mapy",
- "map_gps_settings": "Nastavenia Mapy & GPS",
+ "map_gps_settings": "Mapa & GPS",
"map_gps_settings_description": "Správa nastavení máp a GPS reverzného geokódovania",
"map_implications": "Táto funkčnosť sa spolieha na externý servis spracovania mapových dlaždíc (tiles.immich.cloud)",
"map_light_style": "Svetlý štýl",
"map_manage_reverse_geocoding_settings": "Správa nastavení Reverzného geokódovania",
"map_reverse_geocoding": "Reverzné Geokódovanie",
"map_reverse_geocoding_enable_description": "Povoliť reverzné geokódovanie",
- "map_reverse_geocoding_settings": "Nastavenia reverzného geokódovania",
+ "map_reverse_geocoding_settings": "Reverzné geokódovanie",
"map_settings": "Mapa",
"map_settings_description": "Spravovať nastavenia mapy",
"map_style_description": "URL na motív style.json",
@@ -151,7 +151,7 @@
"metadata_extraction_job_description": "Získaj informácie metadátach z každej položky, ako napríklad GPS, tváre a rozlíšenie",
"metadata_faces_import_setting": "Povoliť import tváre",
"metadata_faces_import_setting_description": "Importuj tváre z EXIF dát obrázkov a sidecar súborov",
- "metadata_settings": "Nastavenia metadát",
+ "metadata_settings": "Metadáta",
"metadata_settings_description": "Spravovať nastavenia metadát",
"migration_job": "Migrácia",
"migration_job_description": "Migrácia miniatúr položiek a tvárí na najnovšiu štruktúru priečinkov",
@@ -174,7 +174,7 @@
"notification_email_test_email_sent": "Testovací e-mail bol odoslaný na adresu {email}. Prosím skontrolujte si Doručenú poštu.",
"notification_email_username_description": "Používateľské meno, ktoré sa má použiť pri overovaní s e-mailovým serverom",
"notification_enable_email_notifications": "Povoliť e-mailové upozornenia",
- "notification_settings": "Nastavenia upozornení",
+ "notification_settings": "Upozornenia",
"notification_settings_description": "Spravovať nastavenia upozornení, vrátane emailu",
"oauth_auto_launch": "Automatické spustenie",
"oauth_auto_launch_description": "Automatické spustenie OAuth prihlasovacieho toku pri otvorení prihlasovacej stránky",
@@ -225,7 +225,7 @@
"server_external_domain_settings_description": "Verejná doména pre zdieľané odkazy, vrátane http(s)://",
"server_public_users": "Verejní užívatelia",
"server_public_users_description": "Všetci užívatelia (meno a email) sú uvedení pri pridávaní užívateľa do zdieľaných albumov. Ak je táto funkcia vypnutá, zoznam užívateľov bude dostupný iba správcom.",
- "server_settings": "Nastavenia servera",
+ "server_settings": "Server",
"server_settings_description": "Spravovať nastavenia servera",
"server_welcome_message": "Uvítacia správa",
"server_welcome_message_description": "Správa, ktorá sa zobrazí na prihlasovacej stránke.",
@@ -250,7 +250,7 @@
"storage_template_user_label": "{label} je Štítok úložiska používateľa",
"system_settings": "Nastavenia systému",
"tag_cleanup_job": "Premazanie značiek",
- "template_email_available_tags": "V šablóne môžeš použiť nasledujúce premenné: {tags}",
+ "template_email_available_tags": "V šablóne môžeš použiť nasledujúce stítky: {tags}",
"template_email_if_empty": "Ak nie je zadaná žiadna šablóna, bude použitá predvolená šablóna.",
"template_email_invite_album": "Šablóna pre Pozvánka do albumu",
"template_email_preview": "Ukážka",
@@ -262,7 +262,7 @@
"template_settings_description": "Spravovanie vlastných šablón upozornení.",
"theme_custom_css_settings": "Vlastné CSS",
"theme_custom_css_settings_description": "CSS štýly umožňujú prispôsobiť dizajn Immich.",
- "theme_settings": "Nastavenia témovania",
+ "theme_settings": "Motívy",
"theme_settings_description": "Spravovať prispôsobenie webového rozhrania Immich",
"these_files_matched_by_checksum": "Tieto súbory zodpovedajú kontrolným súčtom",
"thumbnail_generation_job": "Generovať Miniatúry",
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Faktor konštantnej rýchlosti (-crf)",
"transcoding_constant_rate_factor_description": "Úroveň kvality videa. Typické hodnoty sú 23 pre H.264, 28 pre HEVC, 31 pre VP9 a 35 pre AV1. Nižšie je lepšie, ale vytvára väčšie súbory.",
"transcoding_disabled_description": "Neprekódujte žiadne videá, na niektorých klientoch môže prerušiť prehrávanie",
+ "transcoding_encoding_options": "Možnosti kódovania",
+ "transcoding_encoding_options_description": "Nastavte kodeky, rozlíšenie, kvalitu a ďalšie možnosti pre kódované videá",
"transcoding_hardware_acceleration": "Hardvérová akcelerácia",
"transcoding_hardware_acceleration_description": "Experimentálne; oveľa rýchlejšie, ale bude mať nižšiu kvalitu pri rovnakej bitovej rýchlosti",
"transcoding_hardware_decoding": "Hardvérové dekódovanie",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Maximálny interval medzi kľúčovými snímkami",
"transcoding_max_keyframe_interval_description": "Nastavuje maximálnu vzdialenosť medzi kľúčovými snímkami. Nižšie hodnoty zhoršujú účinnosť kompresie, ale zlepšujú časy vyhľadávania a môžu zlepšiť kvalitu v scénach s rýchlym pohybom. Hodnota 0 nastavuje túto hodnotu automaticky.",
"transcoding_optimal_description": "Videá s vyšším ako cieľovým rozlíšením alebo videá, ktoré nie sú v prijateľnom formáte",
+ "transcoding_policy": "Politika prekódovania",
+ "transcoding_policy_description": "Nastavte, kedy bude video prekódované",
"transcoding_preferred_hardware_device": "Uprednostňované hardvérové zariadenie",
"transcoding_preferred_hardware_device_description": "Platí len pre VAAPI a QSV. Nastavuje uzol dri, ktorý sa používa na hardvérové prekódovanie.",
"transcoding_preset_preset": "Prednastavenie (-preset)",
@@ -308,8 +312,8 @@
"transcoding_reference_frames": "Referenčné snímky",
"transcoding_reference_frames_description": "Počet snímok, na ktoré sa má odkazovať pri kompresii daného snímku. Vyššie hodnoty zvyšujú účinnosť kompresie, ale spomaľujú kódovanie. Hodnota 0 sa nastavuje automaticky.",
"transcoding_required_description": "Iba videá, ktoré nie sú v prijatom formáte",
- "transcoding_settings": "Nastavenia video transkódovania",
- "transcoding_settings_description": "Správa informácií o rozlíšení a kódovaní videosúborov",
+ "transcoding_settings": "Transkódovania videa",
+ "transcoding_settings_description": "Spravujte, ktoré videá sa majú prekódovať a ako ich spracovať",
"transcoding_target_resolution": "Cieľové rozlíšenie",
"transcoding_target_resolution_description": "Vyššie rozlíšenia môžu zachovať viac detailov, ale ich kódovanie trvá dlhšie, majú väčšiu veľkosť súborov a môžu znížiť odozvu aplikácie.",
"transcoding_temporal_aq": "Časové AQ",
@@ -327,7 +331,7 @@
"trash_enabled_description": "Povoliť funkcie koša",
"trash_number_of_days": "Počet dní",
"trash_number_of_days_description": "Počet dní, počas ktorých sa má majetok ponechať v koši pred jeho trvalým odstránením",
- "trash_settings": "Nastavenia koša",
+ "trash_settings": "Kôš",
"trash_settings_description": "Spravovať nastavenia koša",
"untracked_files": "Nesledované súbory",
"untracked_files_description": "Tieto súbory aplikácia nesleduje. Môžu byť výsledkom neúspešných presunov, prerušeného odosielania alebo môžu zostať v dôsledku chyby",
@@ -342,7 +346,7 @@
"user_password_reset_description": "Poskytnite používateľovi dočasné heslo a informujte ho, že si ho bude musieť zmeniť pri ďalšom prihlásení.",
"user_restore_description": "{user} bude účet obnovený.",
"user_restore_scheduled_removal": "Obnoviť používateľa - plánované odstránenie na {date, date, long}",
- "user_settings": "Nastavenia používateľa",
+ "user_settings": "Používateľ",
"user_settings_description": "Spravovať používateľské nastavenia",
"user_successfully_removed": "Používateľ {email} bol úspešne odstránený.",
"version_check_enabled_description": "Povoliť kontrolu verzie",
@@ -480,7 +484,7 @@
"confirm_delete_shared_link": "Ste si istý, že chcete odstrániť tento zdieľaný odkaz?",
"confirm_keep_this_delete_others": "Všetky ostatné položky v zásobníku budú odstránené okrem tejto položky. Naozaj chcete pokračovať?",
"confirm_password": "Potvrdiť heslo",
- "contain": "",
+ "contain": "Obsiahnúť",
"context": "Kontext",
"continue": "Pokračovať",
"copied_image_to_clipboard": "Obrázok skopírovaný do schránky.",
@@ -502,208 +506,333 @@
"create_link_to_share": "Vytvoriť odkaz na zdieľanie",
"create_link_to_share_description": "Umožniť každému kto má odkaz zobraziť vybrané fotografie",
"create_new_person": "Vytvoriť novú osobu",
+ "create_new_person_hint": "Priradiť vybrané položky novej osobe",
"create_new_user": "Vytvorenie nového používateľa",
"create_tag": "Vytvoriť značku",
+ "create_tag_description": "Vytvorenie nového štítku. Pre Vnorené štítky, prosím, zadaj celú cestu štítku, vrátane lomítok vpred.",
"create_user": "Vytvoriť používateľa",
"created": "Vytvorené",
- "current_device": "Aktuálne zariadenie",
- "custom_locale": "",
- "custom_locale_description": "",
+ "current_device": "Súčasné zariadenie",
+ "custom_locale": "Vlastná Lokalizácia",
+ "custom_locale_description": "Formátovanie dátumov a čísel podľa jazyka a regiónu",
"dark": "Tmavý",
"date_after": "Dátum po",
- "date_and_time": "Dátum a čas",
+ "date_and_time": "Dátum a Čas",
"date_before": "Dátum pred",
- "date_of_birth_saved": "Dátum narodenia uložený",
+ "date_of_birth_saved": "Dátum narodenia úspešne uložený",
"date_range": "Rozsah dátumu",
"day": "Deň",
- "default_locale": "",
- "default_locale_description": "",
+ "deduplicate_all": "Deduplikovať všetko",
+ "default_locale": "Predvolená Lokalizácia",
+ "default_locale_description": "Formátovanie dátumu a čísel podľa lokalizácie vášho prehliadača",
"delete": "Vymazať",
"delete_album": "Odstrániť album",
"delete_api_key_prompt": "Naozaj chcete odstrániť tento API kľúč?",
- "delete_key": "Vymazať kľúč",
- "delete_library": "Odstrániť knižnicu",
- "delete_link": "Odstrániť link",
+ "delete_duplicates_confirmation": "Naozaj chcete nenávratne odstrániť tieto duplikáty?",
+ "delete_key": "Odstrániť kľúč",
+ "delete_library": "Vymazať knižnicu",
+ "delete_link": "Odstrániť odkaz",
+ "delete_others": "Vymazať ostatné",
"delete_shared_link": "Odstrániť zdieľaný odkaz",
"delete_tag": "Odstrániť označenie",
- "delete_user": "Odstrániť používateľa",
- "deleted_shared_link": "",
+ "delete_tag_confirmation_prompt": "Naozaj chcete odstrániť štítok menom {tagName}?",
+ "delete_user": "Vymazať používateľa",
+ "deleted_shared_link": "Vymazaný zdieľaný odkaz",
+ "deletes_missing_assets": "Chýbajú vymazané položky z disku",
"description": "Popis",
- "details": "PODROBNOSTI",
+ "details": "Podrobnosti",
"direction": "Smer",
"disabled": "Vypnuté",
- "disallow_edits": "",
+ "disallow_edits": "Zakázať editovanie",
"discord": "Discord",
- "discover": "Preskúmať",
- "dismiss_all_errors": "",
- "dismiss_error": "",
+ "discover": "Objaviť",
+ "dismiss_all_errors": "Zamietnuť všetky chyby",
+ "dismiss_error": "Zamietnuť chybu",
"display_options": "Zobraziť možnosti",
- "display_order": "",
- "display_original_photos": "Zobraziť pôvodné fotografie",
- "display_original_photos_setting_description": "",
+ "display_order": "Poradie zobrazenia",
+ "display_original_photos": "Zobraziť pôvodné fotky",
+ "display_original_photos_setting_description": "Uprednostniť zobrazenie pôvodnej fotky, pri prezeraní položky, namiesto miniatúry, ak je pôvodná položka kompatibilná s webom. To môže mať za následok nižšiu rýchlosť zobrazenia fotografií.",
"do_not_show_again": "Túto správu znova nezobrazovať",
"documentation": "Dokumentácia",
"done": "Hotovo",
"download": "Stiahnuť",
+ "download_include_embedded_motion_videos": "Vložené videá",
+ "download_include_embedded_motion_videos_description": "Zahrnúť videá vložené do pohyblivých fotiek ako samostatné súbory",
"download_settings": "Stiahnuť",
- "downloading": "Sťahovanie",
- "downloading_asset_filename": "Stahovanie súboru {filename}",
+ "download_settings_description": "Spravovať nastavenia súvisiace so sťahovaním položiek",
+ "downloading": "Sťahuje sa",
+ "downloading_asset_filename": "Sťahuje sa položka {filename}",
+ "drop_files_to_upload": "Hoď súbory kdekoľvek, nahrajú sa",
"duplicates": "Duplikáty",
+ "duplicates_description": "Vysporiadať sa s každou skupinou tak, že sa duplicitné označia ako duplicitné",
"duration": "Trvanie",
"edit": "Upraviť",
"edit_album": "Upraviť album",
- "edit_avatar": "Upraviť postavu",
+ "edit_avatar": "Upraviť avatar",
"edit_date": "Upraviť dátum",
"edit_date_and_time": "Upraviť dátum a čas",
- "edit_exclusion_pattern": "",
+ "edit_exclusion_pattern": "Upraviť vzor vylúčenia",
"edit_faces": "Upraviť tváre",
- "edit_import_path": "",
- "edit_import_paths": "",
+ "edit_import_path": "Upraviť cestu importu",
+ "edit_import_paths": "Upraviť cesty importu",
"edit_key": "Upraviť kľúč",
"edit_link": "Upraviť odkaz",
"edit_location": "Upraviť polohu",
"edit_name": "Upraviť meno",
- "edit_people": "Upraviť ľudí",
+ "edit_people": "Upraviť osoby",
"edit_tag": "Upraiť značku",
"edit_title": "Upraviť názov",
"edit_user": "Upraviť používateľa",
"edited": "Upravené",
- "editor": "",
+ "editor": "Editor",
"editor_close_without_save_prompt": "Úpravy nebudú uložené",
+ "editor_close_without_save_title": "Zavrieť editor?",
"editor_crop_tool_h2_aspect_ratios": "Pomer strán",
- "editor_crop_tool_h2_rotation": "Rotácia",
+ "editor_crop_tool_h2_rotation": "Rotovanie",
"email": "E-mail",
"empty_trash": "Vyprázdniť kôš",
+ "empty_trash_confirmation": "Naozaj chcete vyprázdniť kôš? Nenávratne sa vymažú všetky položky z Immich.\nTáto akcia sa nedá vrátiť!",
"enable": "Aktivovať",
"enabled": "Aktivovaný",
- "end_date": "",
+ "end_date": "Koncový dátum",
"error": "Chyba",
- "error_loading_image": "Chyba pri načítaní obrázku",
+ "error_loading_image": "Nepodarilo sa načítať obrázok",
"error_title": "Chyba - niečo sa pokazilo",
"errors": {
- "unable_to_add_album_users": "",
- "unable_to_add_comment": "",
- "unable_to_add_partners": "",
- "unable_to_change_album_user_role": "",
- "unable_to_change_date": "",
- "unable_to_change_location": "",
- "unable_to_create_admin_account": "",
- "unable_to_create_library": "",
- "unable_to_create_user": "",
- "unable_to_delete_album": "",
- "unable_to_delete_asset": "",
- "unable_to_delete_user": "",
- "unable_to_empty_trash": "",
- "unable_to_enter_fullscreen": "",
- "unable_to_exit_fullscreen": "",
- "unable_to_hide_person": "",
- "unable_to_load_album": "",
- "unable_to_load_asset_activity": "",
- "unable_to_load_items": "",
- "unable_to_load_liked_status": "",
- "unable_to_play_video": "",
- "unable_to_refresh_user": "",
- "unable_to_remove_album_users": "",
- "unable_to_remove_library": "",
- "unable_to_remove_partner": "",
- "unable_to_remove_reaction": "",
- "unable_to_repair_items": "",
- "unable_to_reset_password": "",
- "unable_to_resolve_duplicate": "",
- "unable_to_restore_assets": "",
- "unable_to_restore_trash": "",
- "unable_to_restore_user": "",
- "unable_to_save_album": "",
- "unable_to_save_name": "",
- "unable_to_save_profile": "",
- "unable_to_save_settings": "",
- "unable_to_scan_libraries": "",
- "unable_to_scan_library": "",
- "unable_to_set_profile_picture": "",
- "unable_to_submit_job": "",
- "unable_to_trash_asset": "",
- "unable_to_unlink_account": "",
- "unable_to_update_library": "",
- "unable_to_update_location": "",
- "unable_to_update_settings": "",
- "unable_to_update_user": ""
+ "cannot_navigate_next_asset": "Nedokážem prejsť na ďaľšiu položku",
+ "cannot_navigate_previous_asset": "Nedokážem prejsť na predošlú položku",
+ "cant_apply_changes": "Nedokážem aplikovať zmeny",
+ "cant_change_activity": "Nodokážem {enabled, select, true {zakázať} other {povoliť}} aktivitu",
+ "cant_change_asset_favorite": "Nedokážem zmeniť obľúbenosť pre položku",
+ "cant_change_metadata_assets_count": "Nedokážem zmeniť metadáta pre {count, plural, one {# túto položku} other {# tieto položky}}",
+ "cant_get_faces": "Nedokážem získať tváre",
+ "cant_get_number_of_comments": "Nedokážem získať počet komentárov",
+ "cant_search_people": "Nedokážem hľadať osoby",
+ "cant_search_places": "Nedokážem hľadať miesta",
+ "cleared_jobs": "Vyčistené práce pre: {job}",
+ "error_adding_assets_to_album": "Nepodarilo sa pridať položky do albumu",
+ "error_adding_users_to_album": "Nepodarilo sa pridať užívateľov do albumu",
+ "error_deleting_shared_user": "Nepodarilo sa odstrániť zdieľaného používateľa",
+ "error_downloading": "Nepodarilo sa stiahnuť {filename}",
+ "error_hiding_buy_button": "Nepodarilo sa skryť tlačidlo kúpiť",
+ "error_removing_assets_from_album": "Nepodarilo sa odstrániť položku z albumu, podrobnejšie informácie nájdete v konzole",
+ "error_selecting_all_assets": "Nepodarilo sa vybrať položky",
+ "exclusion_pattern_already_exists": "Tento vzor vylúčenia už existuje.",
+ "failed_job_command": "Príkaz {command} zlyhal pre prácu: {job}",
+ "failed_to_create_album": "Nepodarilo sa vytvoriť album",
+ "failed_to_create_shared_link": "Nepodarilo sa vytvoriť zdieľaný odkaz",
+ "failed_to_edit_shared_link": "Nepodarilo sa editovať zdieľaný odkaz",
+ "failed_to_get_people": "Nepodarilo sa získať osoby",
+ "failed_to_keep_this_delete_others": "Nepodarilo sa ponechať túto položku a vymazať tie ostatné položky",
+ "failed_to_load_asset": "Nepodarilo sa načítať položku",
+ "failed_to_load_assets": "Nepodarilo sa načítať položky",
+ "failed_to_load_people": "Nepodarilo sa načítať ľudí",
+ "failed_to_remove_product_key": "Nepodarilo sa odstrániť produktový kľúč",
+ "failed_to_stack_assets": "Nepodarilo sa zoskupiť položky",
+ "failed_to_unstack_assets": "Nepodarilo sa rozdeliť položky",
+ "import_path_already_exists": "Táto cesta importu už existuje.",
+ "incorrect_email_or_password": "Nesprávny e-mail alebo heslo",
+ "paths_validation_failed": "{paths, plural, one {# cesta zlyhala} few {# cesty zlyhali} other {# ciest zlyhalo}} pri validácii",
+ "profile_picture_transparent_pixels": "Profilové obrázky nemôžu mať priehľadné pixely. Prosím priblížte a/alebo posuňte obrázok.",
+ "quota_higher_than_disk_size": "Nastavili ste kvótu vyššiu ako je veľkosť disku",
+ "repair_unable_to_check_items": "Nepodarilo sa skontrolovať {count, select, one {položku} other {položky}}",
+ "unable_to_add_album_users": "Nie je možné pridať používateľov do albumu",
+ "unable_to_add_assets_to_shared_link": "Nie je možné pridať položky k zdieľanému odkazu",
+ "unable_to_add_comment": "Nie je možné pridať komentár",
+ "unable_to_add_exclusion_pattern": "Nie je možné pridať vzor vylúčenia",
+ "unable_to_add_import_path": "Nie je možné pridať cestu importu",
+ "unable_to_add_partners": "Nie je možné pridať partnerov",
+ "unable_to_add_remove_archive": "Nie je možné {archived, select, true {odstrániť položku z} other {pridať položku do}} archívu",
+ "unable_to_change_album_user_role": "Nie je možné zmeniť rolu používateľa pre album",
+ "unable_to_change_date": "Nie je možné zmeniť dátum",
+ "unable_to_change_favorite": "Nie je možné zmeniť obľúbené pre položku",
+ "unable_to_change_location": "Nie je možné zmeniť polohu",
+ "unable_to_change_password": "Nie je možné zmeniť heslo",
+ "unable_to_change_visibility": "Nie je možné zmeniť viditeľnosť pre {count, plural, one {# osobu} other {# ľudí}}",
+ "unable_to_complete_oauth_login": "Nemožno dokončiť prihlásenie cez OAuth",
+ "unable_to_connect": "Nie je možné sa pripojiť",
+ "unable_to_connect_to_server": "Nie je možné sa pripojiť k serveru",
+ "unable_to_copy_to_clipboard": "Nie je možné kopírovať do schránky, overte si, že stránku navštevujete cez https",
+ "unable_to_create_admin_account": "Nie je možné vytvoriť admin účet",
+ "unable_to_create_api_key": "Nie je možné vytvoriť nový API Klúč",
+ "unable_to_create_library": "Nie je možné vytvoriť knihovňu",
+ "unable_to_create_user": "Nie je možné vytvoriť uživateľa",
+ "unable_to_delete_album": "Nie je možné vymazať album",
+ "unable_to_delete_asset": "Nie je možné vymazať položku",
+ "unable_to_delete_assets": "Chyba pri odstraňovaní položiek",
+ "unable_to_delete_exclusion_pattern": "Nie je možné vymazať vylučovací vzor",
+ "unable_to_delete_import_path": "Nie je možné odstrániť cestu importu",
+ "unable_to_delete_shared_link": "Nie je možné vymazať zdieľaný odkaz",
+ "unable_to_delete_user": "Nie je možné vymazať uživateľa",
+ "unable_to_download_files": "Nie je možné stiahnuť súbory",
+ "unable_to_edit_exclusion_pattern": "Nie je možné upravit vzorec vylúčenia",
+ "unable_to_edit_import_path": "Nie je možné upraviť cestu importu",
+ "unable_to_empty_trash": "Nie je možné vyprázdniť kôš",
+ "unable_to_enter_fullscreen": "Nie je možné prejsť do režimu celej obrazovky",
+ "unable_to_exit_fullscreen": "Nie je možné opustiť režim celej obrazovky",
+ "unable_to_get_comments_number": "Nie je možné získať počet komentárov",
+ "unable_to_get_shared_link": "Nepodarilo sa získať odkaz na zdieľanie",
+ "unable_to_hide_person": "Nie je možné skryť osobu",
+ "unable_to_link_motion_video": "Nie je možné prepojiť pohyblivé video",
+ "unable_to_link_oauth_account": "Nie je možné prepojiť účet OAuth",
+ "unable_to_load_album": "Nie je možné načítať album",
+ "unable_to_load_asset_activity": "Nie je možné načítať aktivitu položky",
+ "unable_to_load_items": "Nie je možné načítať položky",
+ "unable_to_load_liked_status": "Nie je možné načítať stav obľúbenosti",
+ "unable_to_log_out_all_devices": "Nie je možné odhlásiť všetky zariadenia",
+ "unable_to_log_out_device": "Nie je možné odhlásiť zariadenie",
+ "unable_to_login_with_oauth": "Nie je možné prihlásiť sa cez OAuth",
+ "unable_to_play_video": "Nie je možné prehrať video",
+ "unable_to_reassign_assets_new_person": "Nie je možné priradiť položky novej osobe",
+ "unable_to_refresh_user": "Nie je možné aktualizovať používateľa",
+ "unable_to_remove_album_users": "Nie je možné odstrániť používateľov z albumu",
+ "unable_to_remove_api_key": "Nie je možné odstrániť kľúč API",
+ "unable_to_remove_assets_from_shared_link": "Nie je možné odstrániť položky zo zdieľaného odkazu",
+ "unable_to_remove_deleted_assets": "Nie je možné odstrániť offline súbory",
+ "unable_to_remove_library": "Nie je možné odstrániť knižnicu",
+ "unable_to_remove_partner": "Nie je možné odstrániť partnera",
+ "unable_to_remove_reaction": "Nie je možné odstrániť reakciu",
+ "unable_to_repair_items": "Nie je možné opraviť položky",
+ "unable_to_reset_password": "Nie je možné resetovať heslo",
+ "unable_to_resolve_duplicate": "Nie je možné vyriešiť duplikát",
+ "unable_to_restore_assets": "Nie je možné obnoviť položky",
+ "unable_to_restore_trash": "Nie je možné obnoviť kôš",
+ "unable_to_restore_user": "Nie je možné obnoviť používateľa",
+ "unable_to_save_album": "Nie je možné uložiť album",
+ "unable_to_save_api_key": "Nie je možné uložiť API kľúč",
+ "unable_to_save_date_of_birth": "Nie je možné uložiť dátum narodenia",
+ "unable_to_save_name": "Nie je možné uložiť meno",
+ "unable_to_save_profile": "Nie je možné uložiť profil",
+ "unable_to_save_settings": "Nie je možné uložiť nastavenia",
+ "unable_to_scan_libraries": "Nie je možné prehľadať knižnice",
+ "unable_to_scan_library": "Nie je možné prehľadať knižnicu",
+ "unable_to_set_feature_photo": "Nie je možné nastaviť hlavný obrázok",
+ "unable_to_set_profile_picture": "Nie je možné nastaviť profilový obrázok",
+ "unable_to_submit_job": "Nie je možné odoslať úlohu",
+ "unable_to_trash_asset": "Nie je možné presunúť položku do koša",
+ "unable_to_unlink_account": "Nie je možné odpojiť účet",
+ "unable_to_unlink_motion_video": "Nie je možné zrušiť prepojenie pohyblivého videa",
+ "unable_to_update_album_cover": "Nie je možné aktualizovať obal albumu",
+ "unable_to_update_album_info": "Nie je možné aktualizovať informácie o albume",
+ "unable_to_update_library": "Nie je možné aktualizovať knižnicu",
+ "unable_to_update_location": "Nie je možné aktualizovať lokalitu",
+ "unable_to_update_settings": "Nie je možné aktualizovať nastavenia",
+ "unable_to_update_timeline_display_status": "Nie je možné aktualizovať stav zobrazenia časovej osi",
+ "unable_to_update_user": "Nie je možné aktualizovať používateľa",
+ "unable_to_upload_file": "Nie je možné nahrať súbor"
},
"exif": "Exif",
"exit_slideshow": "Opustiť Slideshow",
- "expand_all": "",
+ "expand_all": "Rozbaliť všetko",
"expire_after": "Expiruje po",
"expired": "Vypršalo",
+ "expires_date": "Expiruje {date}",
"explore": "Preskúmať",
"explorer": "Prieskumník",
"export": "Exportovať",
- "export_as_json": "Exportovať ako JSON",
+ "export_as_json": "Exportovať do JSON",
"extension": "Rozšírenie",
"external": "Externý",
- "external_libraries": "",
+ "external_libraries": "Externé knižnice",
+ "face_unassigned": "Nepriradená",
+ "failed_to_load_assets": "Nepodarilo sa načítať položky",
"favorite": "Obľúbené",
- "favorite_or_unfavorite_photo": "",
+ "favorite_or_unfavorite_photo": "Označiť fotku ako obľúbenú alebo neobľúbenú",
"favorites": "Obľúbené",
- "feature_photo_updated": "",
+ "feature_photo_updated": "Hlavný obrázok bol aktualizovaný",
"features": "Funkcie",
+ "features_setting_description": "Spravovať funkcie aplikácie",
"file_name": "Meno súboru",
- "file_name_or_extension": "",
+ "file_name_or_extension": "Názov alebo prípona súboru",
"filename": "Meno súboru",
"filetype": "Typ súboru",
"filter_people": "Filtrovať ľudí",
"find_them_fast": "Nájdite ich rýchlejšie podľa mena",
- "fix_incorrect_match": "",
- "forward": "",
+ "fix_incorrect_match": "Opraviť nesprávnu zhodu",
+ "folders": "Priečinky",
+ "folders_feature_description": "Prehliadanie zobrazenia priečinka s fotografiami a videami na súborovom systéme",
+ "forward": "Dopredu",
"general": "Všeobecné",
- "get_help": "",
- "getting_started": "",
- "go_back": "",
- "go_to_search": "",
- "group_albums_by": "",
- "has_quota": "",
- "hide_gallery": "",
- "hide_password": "",
- "hide_person": "",
- "host": "",
- "hour": "",
- "image": "",
- "immich_logo": "",
- "import_path": "",
- "in_archive": "",
+ "get_help": "Získať pomoc",
+ "getting_started": "Začíname",
+ "go_back": "Vrátiť sa späť",
+ "go_to_folder": "Prejsť do priečinka",
+ "go_to_search": "Prejsť na vyhľadávanie",
+ "group_albums_by": "Zoskupiť albumy podľa...",
+ "group_no": "Nezoskupovať",
+ "group_owner": "Zoskupiť podľa vlastníka",
+ "group_year": "Zoskupiť podľa roku",
+ "has_quota": "Má kvótu",
+ "hi_user": "Ahoj {name} ({email})",
+ "hide_all_people": "Skryť všetky osoby",
+ "hide_gallery": "Skryť galériu",
+ "hide_named_person": "Skryť osobu {name}",
+ "hide_password": "Skryť heslo",
+ "hide_person": "Skryť osobu",
+ "hide_unnamed_people": "Skryť osoby bez mena",
+ "host": "Hostiteľ",
+ "hour": "Hodina",
+ "image": "Obrázok",
+ "image_alt_text_date": "{isVideo, select, true {Video} other {Image}} nasnímané {date}",
+ "image_alt_text_date_1_person": "{isVideo, select, true {Video} other {Image}} nasnímané s {person1} dňa {date}",
+ "image_alt_text_date_2_people": "{isVideo, select, true {Video} other {Image}} nasnímané s {person1} a {person2} dňa {date}",
+ "image_alt_text_date_3_people": "{isVideo, select, true {Video} other {Image}} nasnímané s {person1}, {person2} a {person3} dňa {date}",
+ "image_alt_text_date_4_or_more_people": "{isVideo, select, true {Video} other {Image}} nasnímané s {person1}, {person2} a {additionalCount, number} inými dňa {date}",
+ "image_alt_text_date_place": "{isVideo, select, true {Video} other {Image}} nasnímané v {city}, {country} dňa {date}",
+ "image_alt_text_date_place_1_person": "{isVideo, select, true {Video} other {Image}} nasnímané v {city}, {country} s {person1} dňa {date}",
+ "image_alt_text_date_place_2_people": "{isVideo, select, true {Video} other {Image}} nasnímané v {city}, {country} s {person1} a {person2} dňa {date}",
+ "image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} nasnímané v {city}, {country} s {person1}, {person2} a {person3} dňa {date}",
+ "image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} nasnímané v {city}, {country} s {person1}, {person2} a {additionalCount, number} inými dňa {date}",
+ "immich_logo": "Logo Immich",
+ "immich_web_interface": "Webové rozhranie Immich",
+ "import_from_json": "Importovať z JSON",
+ "import_path": "Cesta na import",
+ "in_albums": "V {count, plural, one {# albume} other {# albumoch}}",
+ "in_archive": "V archíve",
"include_archived": "Zahrnúť archivované",
- "include_shared_albums": "",
- "include_shared_partner_assets": "",
- "individual_share": "",
- "info": "",
+ "include_shared_albums": "Zahrnúť zdieľané albumy",
+ "include_shared_partner_assets": "Vrátane zdieľaných položiek partnera",
+ "individual_share": "Zdieľanie jednotlivých položiek",
+ "info": "Informácie",
"interval": {
- "day_at_onepm": "",
- "hours": "",
- "night_at_midnight": "",
- "night_at_twoam": ""
+ "day_at_onepm": "Každý deň v 13:00",
+ "hours": "{hours, plural, one {Každú hodinu} few {Každé {hours, number} hodiny} other {Každých {hours, number} hodín}}",
+ "night_at_midnight": "Každý deň o polnoci",
+ "night_at_twoam": "Každú noc o 2:00"
},
- "invite_people": "",
+ "invite_people": "Pozvať ľudí",
"invite_to_album": "Pozvať do albumu",
- "jobs": "",
- "keep": "",
+ "items_count": "{count, plural, one {# položka} few {# položky} other {# položiek}}",
+ "jobs": "Úlohy",
+ "keep": "Ponechať",
+ "keep_all": "Ponechať všetko",
"keyboard_shortcuts": "",
- "language": "",
- "language_setting_description": "",
- "last_seen": "",
- "leave": "",
+ "language": "Jazyk",
+ "language_setting_description": "Vyberte preferovaný jazyk",
+ "last_seen": "Naposledy videné",
+ "latest_version": "Najnovšia verzia",
+ "latitude": "Zemepisná šírka",
+ "leave": "Opustiť",
"let_others_respond": "Nechajte ostatných reagovať",
- "level": "",
+ "level": "Level",
"library": "Knižnica",
- "library_options": "",
- "light": "",
- "link_options": "",
- "link_to_oauth": "",
- "linked_oauth_account": "",
- "list": "",
- "loading": "",
+ "library_options": "Možnosti knižnice",
+ "light": "Svetlý",
+ "link_motion_video": "Pripojiť pohyblivé video",
+ "link_options": "Možnosti odkazu",
+ "link_to_oauth": "Prepojiť s OAuth",
+ "linked_oauth_account": "Pripojený OAuth účet",
+ "list": "Zoznam",
+ "loading": "Načítavanie",
"loading_search_results_failed": "",
"log_out": "Odhlásiť sa",
- "log_out_all_devices": "",
+ "log_out_all_devices": "Odhlásiť všetky zariadenia",
+ "logged_out_all_devices": "Všetky zariadenia odhlásené",
+ "logged_out_device": "Zariadenie odhlásené",
+ "login": "Prihlásenie",
"login_has_been_disabled": "Prihlásenie bolo vypnuté.",
- "look": "",
+ "longitude": "Zemepisná dĺžka",
+ "look": "Zobrazenie",
"loop_videos": "",
"loop_videos_description": "",
"make": "",
@@ -720,7 +849,7 @@
"media_type": "",
"memories": "",
"memories_setting_description": "",
- "menu": "",
+ "menu": "Menu",
"merge": "",
"merge_people": "",
"merge_people_successfully": "",
@@ -846,66 +975,91 @@
"reset": "Resetovať",
"reset_password": "Obnoviť heslo",
"reset_people_visibility": "",
- "restore": "Obnoviť",
- "restore_user": "Obnoviť používateľa",
+ "restore": "Navrátiť",
+ "restore_all": "Navrátit všetko",
+ "restore_user": "Navrátiť používateľa",
+ "restored_asset": "Navrátené položky",
"resume": "Pokračovať",
- "retry_upload": "",
- "review_duplicates": "Skontrolovať duplikáty",
- "role": "",
+ "retry_upload": "Zopakovať nahrávanie",
+ "review_duplicates": "Prezrieť duplikáty",
+ "role": "Rola",
+ "role_editor": "Editor",
+ "role_viewer": "Divák",
"save": "Uložiť",
- "saved_profile": "",
- "saved_settings": "",
+ "saved_api_key": "Uložený API Kľúč",
+ "saved_profile": "Uložený profil",
+ "saved_settings": "Uložené nastavenia",
"say_something": "Napíšte niečo",
- "scan_all_libraries": "",
+ "scan_all_libraries": "Preskenovať všetky knižnice",
+ "scan_library": "Skenovať",
"scan_settings": "Nastavenia skenovania",
- "search": "Vyhľadávanie",
+ "scanning_for_album": "Skenujem pre album...",
+ "search": "Hľadať",
"search_albums": "Hľadať albumy",
- "search_by_context": "",
+ "search_by_context": "Hľadať s kontextom",
+ "search_by_filename": "Hľadať s názvom alebo príponou súboru",
"search_by_filename_example": "napr. IMG_1234.JPG alebo PNG",
- "search_camera_make": "",
- "search_camera_model": "",
- "search_city": "",
- "search_country": "",
- "search_for_existing_person": "",
- "search_people": "",
- "search_places": "",
- "search_settings": "Hladať v nastaveniach",
- "search_state": "",
- "search_timezone": "Vyhľadať časovú zónu...",
- "search_type": "",
- "search_your_photos": "Prehľadajte svoje obrázky",
- "searching_locales": "",
- "second": "",
- "select_album_cover": "",
- "select_all": "",
- "select_avatar_color": "",
- "select_face": "",
- "select_featured_photo": "",
- "select_library_owner": "Vybraťi vlastníka knižnice",
- "select_new_face": "",
- "select_photos": "Vybrať fotografie",
- "selected": "Vybraté",
+ "search_camera_make": "Hľadať značku fotoaparátu...",
+ "search_camera_model": "Hľadať model fotoaparátu...",
+ "search_city": "Hľadať mesto...",
+ "search_country": "Hľadať krajinu...",
+ "search_for_existing_person": "Hľadať existujúcu osobu",
+ "search_no_people": "Žiadne osoby",
+ "search_no_people_named": "Žiadne osoby menom \"{name}\"",
+ "search_options": "Možnosti hľadania",
+ "search_people": "Hľadať osoby",
+ "search_places": "Hľadať miesta",
+ "search_settings": "Hľadať v nastaveniach",
+ "search_state": "Hľadať štáty...",
+ "search_tags": "Hľadať štítky...",
+ "search_timezone": "Hľadať časovú zónu...",
+ "search_type": "Typ hľadania",
+ "search_your_photos": "Hľadajte svoje fotky",
+ "searching_locales": "Hľadám lokality...",
+ "second": "Sekundy",
+ "see_all_people": "Vydieť všetky osoby",
+ "select_album_cover": "Vyberte obal albumu",
+ "select_all": "Vybrať všetko",
+ "select_all_duplicates": "Vybrať všetky duplikáty",
+ "select_avatar_color": "Vyberte farbu avatara",
+ "select_face": "Vyberte tvár",
+ "select_featured_photo": "Vyberte náhľadovú fotku",
+ "select_from_computer": "Vybrať z počítača",
+ "select_keep_all": "Vybrať ponechať všetky",
+ "select_library_owner": "Vybrať vlastníka knižnice",
+ "select_new_face": "Vybrať novú tvár",
+ "select_photos": "Vybrať fotky",
+ "select_trash_all": "Vybrať zahodiť všetky",
+ "selected": "Vybrané",
+ "selected_count": "{count, plural, other {# vybrané}}",
"send_message": "Odoslať správu",
"send_welcome_email": "Odoslať uvítací e-mail",
- "server_stats": "Štatistiky servera",
- "server_version": "Verzia servera",
+ "server_offline": "Server je Offline",
+ "server_online": "Server je Online",
+ "server_stats": "Serverové Štatistiky",
+ "server_version": "Verzia Servera",
"set": "Nastaviť",
- "set_as_album_cover": "",
+ "set_as_album_cover": "Nastaviť ako obal albumu",
"set_as_profile_picture": "Nastaviť ako profilový obrázok",
"set_date_of_birth": "Nastaviť dátum narodenia",
"set_profile_picture": "Nastaviť profilový obrázok",
- "set_slideshow_to_fullscreen": "",
+ "set_slideshow_to_fullscreen": "Nastaviť prezentáciu na celú obrazovku",
"settings": "Nastavenia",
"settings_saved": "Nastavenia boli uložené",
"share": "Zdieľať",
"shared": "Zdieľané",
- "shared_by": "",
- "shared_by_you": "",
- "shared_from_partner": "Fotografie od {partner}",
+ "shared_by": "Zdieľa",
+ "shared_by_user": "Zdieľa {user}",
+ "shared_by_you": "Zdieľané vami",
+ "shared_from_partner": "Fotky od {partner}",
+ "shared_link_options": "Možnosti zdieľaných odkazov",
"shared_links": "Zdieľané odkazy",
- "shared_with_partner": "Zďielané s {partner}",
+ "shared_photos_and_videos_count": "{assetCount, plural, other {# zdieľané fotky a videá.}}",
+ "shared_with_partner": "Zdieľané s {partner}",
"sharing": "Zdieľanie",
- "sharing_sidebar_description": "",
+ "sharing_enter_password": "Ak chcete zobraziť túto stránku, prosím, zadajte heslo.",
+ "sharing_sidebar_description": "Zobraziť odkaz na Zdieľanie v bočnom paneli",
+ "shift_to_permanent_delete": "stlačte ⇧ pre nemenné zmazanie pložiek",
"show_album_options": "Zobraziť možnosti albumu",
"show_albums": "Zobraziť albumy",
"show_file_location": "",
@@ -925,6 +1079,7 @@
"sign_up": "",
"size": "Veľkosť",
"skip_to_content": "",
+ "skip_to_tags": "Preskočiť ku štítkom",
"slideshow": "",
"slideshow_settings": "",
"sort_albums_by": "Zoradiť albumy podľa...",
@@ -938,7 +1093,7 @@
"stack": "Zoskupenie",
"stack_selected_photos": "",
"stacktrace": "",
- "start_date": "",
+ "start_date": "Začiatočný dátum",
"state": "",
"status": "",
"stop_motion_photo": "",
@@ -950,7 +1105,7 @@
"sunrise_on_the_beach": "",
"swap_merge_direction": "",
"sync": "",
- "tags": "Značky",
+ "tags": "Štítky",
"template": "",
"theme": "Téma",
"theme_selection": "",
diff --git a/i18n/sl.json b/i18n/sl.json
index b9a1d24d53..6f26af2563 100644
--- a/i18n/sl.json
+++ b/i18n/sl.json
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Faktor konstantne stopnje (-crf)",
"transcoding_constant_rate_factor_description": "Raven kakovosti videa. Tipične vrednosti so 23 za H.264, 28 za HEVC, 31 za VP9 in 35 za AV1. Nižje je boljše, vendar ustvarja večje datoteke.",
"transcoding_disabled_description": "Ne prekodirajte nobenih videoposnetkov, lahko prekine predvajanje na nekaterih odjemalcih",
+ "transcoding_encoding_options": "Možnosti kodiranja",
+ "transcoding_encoding_options_description": "Nastavite kodeke, ločljivost, kakovost in druge možnosti za kodirane videoposnetke",
"transcoding_hardware_acceleration": "Strojno pospeševanje",
"transcoding_hardware_acceleration_description": "Eksperimentalno; veliko hitreje, vendar bo imel slabšo kakovost pri isti bitni hitrosti",
"transcoding_hardware_decoding": "Strojno dekodiranje",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Največji interval ključnih sličic",
"transcoding_max_keyframe_interval_description": "Nastavi največjo razdaljo med ključnimi slikami. Nižje vrednosti poslabšajo učinkovitost stiskanja, vendar izboljšajo čas iskanja in lahko izboljšajo kakovost prizorov s hitrim gibanjem. 0 samodejno nastavi to vrednost.",
"transcoding_optimal_description": "Videoposnetki, ki so višji od ciljne ločljivosti ali niso v sprejemljivem formatu",
+ "transcoding_policy": "Politika prekodiranja",
+ "transcoding_policy_description": "Nastavite kdaj bo videoposnetek prekodiran",
"transcoding_preferred_hardware_device": "Prednostna strojna naprava",
"transcoding_preferred_hardware_device_description": "Velja samo za VAAPI in QSV. Nastavi dri vozlišče, ki se uporablja za strojno prekodiranje.",
"transcoding_preset_preset": "Prednastavitev (-preset)",
@@ -309,7 +313,7 @@
"transcoding_reference_frames_description": "Število okvirjev, na katere se sklicujete pri stiskanju danega okvira. Višje vrednosti izboljšajo učinkovitost stiskanja, vendar upočasnijo kodiranje. 0 samodejno nastavi to vrednost.",
"transcoding_required_description": "Samo videoposnetki, ki niso v sprejemljivi obliki",
"transcoding_settings": "Nastavitve video transkodiranja",
- "transcoding_settings_description": "Upravljajte podatke o ločljivosti in kodiranju video datotek",
+ "transcoding_settings_description": "Upravljajte katere videoposnetke želite prekodirati in kako jih obdelati",
"transcoding_target_resolution": "Ciljna ločljivost",
"transcoding_target_resolution_description": "Višje ločljivosti lahko ohranijo več podrobnosti, vendar kodiranje traja dlje, imajo večje velikosti datotek in lahko zmanjšajo odzivnost aplikacije.",
"transcoding_temporal_aq": "Časovni AQ",
@@ -755,6 +759,7 @@
"get_help": "Poiščite pomoč",
"getting_started": "Začetek",
"go_back": "Pojdi nazaj",
+ "go_to_folder": "Pojdi na mapo",
"go_to_search": "Pojdi na iskanje",
"group_albums_by": "Združi albume po ...",
"group_no": "Brez združevanja",
@@ -1141,6 +1146,7 @@
"server_version": "Različica strežnika",
"set": "Nastavi",
"set_as_album_cover": "Nastavi kot naslovnico albuma",
+ "set_as_featured_photo": "Nastavi kot glavno fotografijo",
"set_as_profile_picture": "Nastavi kot profilno sliko",
"set_date_of_birth": "Nastavi datum rojstva",
"set_profile_picture": "Nastavi profilno sliko",
@@ -1196,6 +1202,7 @@
"sort_items": "Število predmetov",
"sort_modified": "Datum spremembe",
"sort_oldest": "Najstarejša fotografija",
+ "sort_people_by_similarity": "Razvrsti ljudi po podobnosti",
"sort_recent": "Najnovejša fotografija",
"sort_title": "Naslov",
"source": "Vir",
diff --git a/i18n/sr_Cyrl.json b/i18n/sr_Cyrl.json
index e80ea46335..6d7ba24a24 100644
--- a/i18n/sr_Cyrl.json
+++ b/i18n/sr_Cyrl.json
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Фактор константне стопе (-црф)",
"transcoding_constant_rate_factor_description": "Ниво квалитета видеа. Типичне вредности су 23 за Х.264, 28 за ХЕВЦ, 31 за ВП9 и 35 за АВ1. Ниже је боље, али производи веће датотеке.",
"transcoding_disabled_description": "Немојте транскодирати ниједан видео, може прекинути репродукцију на неким клијентима",
+ "transcoding_encoding_options": "Опције Кодирања",
+ "transcoding_encoding_options_description": "Подесите кодеке, резолуцију, квалитет и друге опције за кодиране видео записе",
"transcoding_hardware_acceleration": "Хардверско убрзање",
"transcoding_hardware_acceleration_description": "Екпериментално; много брже, али ће имати нижи квалитет при истој брзини преноса",
"transcoding_hardware_decoding": "Хардверско декодирање",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Максимални интервал keyframe-a",
"transcoding_max_keyframe_interval_description": "Поставља максималну удаљеност кадрова између кључних кадрова. Ниже вредности погоршавају ефикасност компресије, али побољшавају време тражења и могу побољшати квалитет сцена са брзим кретањем. 0 аутоматски поставља ову вредност.",
"transcoding_optimal_description": "Видео снимци већи од циљне резолуције или нису у прихваћеном формату",
+ "transcoding_policy": "Услови Транскодирања",
+ "transcoding_policy_description": "Одреди кад да се транскодира видео",
"transcoding_preferred_hardware_device": "Жељени хардверски уређај",
"transcoding_preferred_hardware_device_description": "Односи се само на ВААПИ и QSV. Поставља дри ноде који се користи за хардверско транскодирање.",
"transcoding_preset_preset": "Унапред подешена подешавања (-пресет)",
@@ -309,7 +313,7 @@
"transcoding_reference_frames_description": "Број оквира (фрамес) за референцу приликом компресије датог оквира. Више вредности побољшавају ефикасност компресије, али успоравају кодирање. 0 аутоматски поставља ову вредност.",
"transcoding_required_description": "Само видео снимци који нису у прихваћеном формату",
"transcoding_settings": "Подешавања видео транскодирања",
- "transcoding_settings_description": "Управљајте резолуцијом и информацијама о кодирању видео датотека",
+ "transcoding_settings_description": "Управљајте које видео снимке желите да транскодујете и како их обрадити",
"transcoding_target_resolution": "Циљана резолуција",
"transcoding_target_resolution_description": "Веће резолуције могу да сачувају више детаља, али им је потребно више времена за кодирање, имају веће величине датотека и могу да смање брзину апликације.",
"transcoding_temporal_aq": "Временски (Темпорал) AQ",
@@ -755,6 +759,7 @@
"get_help": "Нађи помоћ",
"getting_started": "Почињем",
"go_back": "Врати се",
+ "go_to_folder": "Иди у фасциклу",
"go_to_search": "Иди на претрагу",
"group_albums_by": "Групни албуми по...",
"group_no": "Без груписања",
@@ -1141,6 +1146,7 @@
"server_version": "Верзија сервера",
"set": "Постави",
"set_as_album_cover": "Постави као омот албума",
+ "set_as_featured_photo": "Постави као истакнуту фотографију",
"set_as_profile_picture": "Постави као профилну слику",
"set_date_of_birth": "Подесите датум рођења",
"set_profile_picture": "Постави профилну слику",
@@ -1196,6 +1202,7 @@
"sort_items": "Број ставки",
"sort_modified": "Датум измене",
"sort_oldest": "Најстарија фотографија",
+ "sort_people_by_similarity": "Сортирајте особе по сличности",
"sort_recent": "Најновија фотографија",
"sort_title": "Наслов",
"source": "Извор",
diff --git a/i18n/sr_Latn.json b/i18n/sr_Latn.json
index 09baf5ff9d..13bc7f1177 100644
--- a/i18n/sr_Latn.json
+++ b/i18n/sr_Latn.json
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Faktor konstantne stope (-crf)",
"transcoding_constant_rate_factor_description": "Nivo kvaliteta videa. Tipične vrednosti su 23 za H.264, 28 za HEVC, 31 za VP9 i 35 za AV1. Niže je bolje, ali proizvodi veće datoteke.",
"transcoding_disabled_description": "Nemojte transkodirati nijedan video, može prekinuti reprodukciju na nekim klijentima",
+ "transcoding_encoding_options": "Opcije Kodiranja",
+ "transcoding_encoding_options_description": "Podesite kodeke, rezoluciju, kvalitet i druge opcije za kodirane video zapise",
"transcoding_hardware_acceleration": "Hardversko ubrzanje",
"transcoding_hardware_acceleration_description": "Ekperimentalno; mnogo brže, ali će imati niži kvalitet pri istoj brzini prenosa",
"transcoding_hardware_decoding": "Hardversko dekodiranje",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Maksimalni interval keyframe-a",
"transcoding_max_keyframe_interval_description": "Postavlja maksimalnu udaljenost kadrova između ključnih kadrova. Niže vrednosti pogoršavaju efikasnost kompresije, ali poboljšavaju vreme traženja i mogu poboljšati kvalitet scena sa brzim kretanjem. 0 automatski postavlja ovu vrednost.",
"transcoding_optimal_description": "Video snimci veći od ciljne rezolucije ili nisu u prihvaćenom formatu",
+ "transcoding_policy": "Uslovi Transkodiranja",
+ "transcoding_policy_description": "Odredi kad da se transkodira video",
"transcoding_preferred_hardware_device": "Željeni hardverski uređaj",
"transcoding_preferred_hardware_device_description": "Odnosi se samo na VAAPI i QSV. Postavlja dri node koji se koristi za hardversko transkodiranje.",
"transcoding_preset_preset": "Unapred podešena podešavanja (-preset)",
@@ -309,7 +313,7 @@
"transcoding_reference_frames_description": "Broj okvira (frames) za referencu prilikom kompresije datog okvira. Više vrednosti poboljšavaju efikasnost kompresije, ali usporavaju kodiranje. 0 automatski postavlja ovu vrednost.",
"transcoding_required_description": "Samo video snimci koji nisu u prihvaćenom formatu",
"transcoding_settings": "Podešavanja video transkodiranja",
- "transcoding_settings_description": "Upravljajte rezolucijom i informacijama o kodiranju video datoteka",
+ "transcoding_settings_description": "Upravljajte koje video snimke želite da transkodujete i kako ih obraditi",
"transcoding_target_resolution": "Ciljana rezolucija",
"transcoding_target_resolution_description": "Veće rezolucije mogu da sačuvaju više detalja, ali im je potrebno više vremena za kodiranje, imaju veće veličine datoteka i mogu da smanje brzinu aplikacije.",
"transcoding_temporal_aq": "Vremenski (Temporal) AQ",
@@ -755,6 +759,7 @@
"get_help": "Nađi pomoć",
"getting_started": "Počinjem",
"go_back": "Vrati se",
+ "go_to_folder": "Idi u fasciklu",
"go_to_search": "Idi na pretragu",
"group_albums_by": "Grupni albumi po...",
"group_no": "Bez grupisanja",
@@ -1141,6 +1146,7 @@
"server_version": "Verzija servera",
"set": "Postavi",
"set_as_album_cover": "Postavi kao omot albuma",
+ "set_as_featured_photo": "Postavi kao istaknutu fotografiju",
"set_as_profile_picture": "Postavi kao profilnu sliku",
"set_date_of_birth": "Podesite datum rođenja",
"set_profile_picture": "Postavi profilnu sliku",
@@ -1196,6 +1202,7 @@
"sort_items": "Broj stavki",
"sort_modified": "Datum izmene",
"sort_oldest": "Najstarija fotografija",
+ "sort_people_by_similarity": "Sortirajte osobe po sličnosti",
"sort_recent": "Najnovija fotografija",
"sort_title": "Naslov",
"source": "Izvor",
diff --git a/i18n/sv.json b/i18n/sv.json
index f774f3a01d..6910fa9589 100644
--- a/i18n/sv.json
+++ b/i18n/sv.json
@@ -1,5 +1,5 @@
{
- "about": "Uppdatera",
+ "about": "Om",
"account": "Konto",
"account_settings": "Kontoinställningar",
"acknowledge": "Bekräfta",
@@ -255,13 +255,13 @@
"template_email_invite_album": "Inbjudan Album Mall",
"template_email_preview": "Förhandsgranskning",
"template_email_settings": "E-post mall",
- "template_email_settings_description": "Hantera anpassad e-postavisering mall.",
+ "template_email_settings_description": "Hantera skräddarsydda e-postaviseringsmallar",
"template_email_update_album": "Uppdatera Album Mall",
"template_email_welcome": "Välkommen e-post mall",
"template_settings": "Notifikations Mall",
"template_settings_description": "Hantera anpassade mallar för notifikationer.",
"theme_custom_css_settings": "Anpassad CSS",
- "theme_custom_css_settings_description": "Cascading Style Sheets möjliggör designanpassningar av Immich",
+ "theme_custom_css_settings_description": "Cascading Style Sheets möjliggör designanpassningar av Immich.",
"theme_settings": "Temainställningar",
"theme_settings_description": "Hantera anpassningar av webbgränssnittet för Immich",
"these_files_matched_by_checksum": "Dessa filer matchas av deras kontrollsummor",
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Konstant hastighetsfaktor (-crf)",
"transcoding_constant_rate_factor_description": "Nivå på videokvalitet. Typiska värden är 23 för H.264, 28 för HEVC, 31 för VP9 och 35 för AV1. Lägre är bättre, men producerar större filer.",
"transcoding_disabled_description": "Omkoda inte videofiler, detta kan störa uppspelning på vissa klienter",
+ "transcoding_encoding_options": "Kodningsval",
+ "transcoding_encoding_options_description": "Välj codec, upplösning, kvalitet och andra val för kodade videor",
"transcoding_hardware_acceleration": "Hardvaruacceleration",
"transcoding_hardware_acceleration_description": "Forskningsmässig; betydligt snabbare men med lägre kvalitet vid samma biträtta",
"transcoding_hardware_decoding": "Hårdvaruavkodning",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Max nyckelbildruteintervall",
"transcoding_max_keyframe_interval_description": "Sätter det maximala bildruteavståndet mellan nyckelbildrutor. Lägre värden försämrar kompressionseffektiviteten, men förbättrar söktiderna och kan förbättra kvaliteten i scener med snabb rörelse. 0 ställer in detta värde automatiskt.",
"transcoding_optimal_description": "Videor som är högre än mållösning eller inte i ett accepterat format",
+ "transcoding_policy": "Omkodningspolicy",
+ "transcoding_policy_description": "Välj när en video ska omkodas",
"transcoding_preferred_hardware_device": "Föredragen hårdvaruenhet",
"transcoding_preferred_hardware_device_description": "Gäller enbart VAAPI och QSV. Ställer in dri-läget som används för hårdvaruomkodning.",
"transcoding_preset_preset": "Förinställning (-preset)",
@@ -309,7 +313,7 @@
"transcoding_reference_frames_description": "Antalet bildrutor som tas i beaktande när en given bildruta ska komprimeras. Högre värden ger effektivare kompression på bekostnad av långsammare kodning. 0 ställer in detta värde automatiskt.",
"transcoding_required_description": "Enbart videos som inte är ett accepterat format",
"transcoding_settings": "Inställningar för omkodning av video",
- "transcoding_settings_description": "Hantera upplösningen och kodningen av videofiler",
+ "transcoding_settings_description": "Hantera vilka videor som ska omkodas och hur de ska behandlas",
"transcoding_target_resolution": "Förväntad upplösning",
"transcoding_target_resolution_description": "En högre upplösning kan bevara fler detaljer men kan ta längre tid at koda, ha större fil storlek och kan försämra appens svarstid.",
"transcoding_temporal_aq": "Temporär AQ",
@@ -322,7 +326,7 @@
"transcoding_transcode_policy_description": "Policy för när en video ska omkodas. HDR-videor kommer alltid att omkodas (förutom om omkodning är inaktiverad).",
"transcoding_two_pass_encoding": "Två-pass kodning",
"transcoding_two_pass_encoding_setting_description": "Koda om i två omgångar för att producera bättre kodade videor. När max bitrate är aktiverat (krävs för att det ska fungera med H.264 och HEVC), använder det här läget ett bithastighetsområde baserat på max bitrate och ignorerar CRF. För VP9 kan CRF användas om max bitrate är inaktiverat.",
- "transcoding_video_codec": "Video Codec",
+ "transcoding_video_codec": "Video codec",
"transcoding_video_codec_description": "VP9 har hög effektivitet och webbkompatibilitet, men tar längre tid att omkoda. HEVC fungerar på liknande sätt, men har lägre webbkompatibilitet. H.264 är allmänt kompatibel och snabb att omkoda, men producerar mycket större filer. AV1 är den mest effektiva codec men saknar stöd på äldre enheter.",
"trash_enabled_description": "Aktivera papperskorgen",
"trash_number_of_days": "Antal dagar",
@@ -478,7 +482,7 @@
"confirm": "Bekräfta",
"confirm_admin_password": "Bekräfta administratörslösenord",
"confirm_delete_shared_link": "Är du säker på att du vill ta bort den här delade länken?",
- "confirm_keep_this_delete_others": "Alla andra tillgångar i stacken tas bort förutom den här tillgången. Är du säker på att du vill fortsätta.",
+ "confirm_keep_this_delete_others": "Alla tillgångar förutom den här tas bort från stacken. Är du säker på att du vill fortsätta?",
"confirm_password": "Bekräfta lösenord",
"contain": "Anpassa",
"context": "Sammanhang",
@@ -755,6 +759,7 @@
"get_help": "Få hjälp",
"getting_started": "Komma igång",
"go_back": "Gå tillbaka",
+ "go_to_folder": "Gå till mapp",
"go_to_search": "Gå till sök",
"group_albums_by": "Gruppera album efter...",
"group_no": "Ingen gruppering",
@@ -795,7 +800,7 @@
"interval": {
"day_at_onepm": "Alla dagar vid kl 13.00",
"hours": "Vid varje {hours, plural, one {hour} other {{hours, number} hours}}",
- "night_at_midnight": "Varje natt vid midnatt.",
+ "night_at_midnight": "Varje natt vid midnatt",
"night_at_twoam": "Varje natt vid kl 02.00"
},
"invite_people": "Bjud in personer",
@@ -842,120 +847,188 @@
"make": "Tillverkare",
"manage_shared_links": "Hantera Delade länkar",
"manage_sharing_with_partners": "Hantera delning med partner",
- "manage_the_app_settings": "",
+ "manage_the_app_settings": "Hantera appinställningarna",
"manage_your_account": "Hantera ditt konto",
- "manage_your_api_keys": "",
- "manage_your_devices": "",
- "manage_your_oauth_connection": "",
+ "manage_your_api_keys": "Hantera dina API-nycklar",
+ "manage_your_devices": "Hantera dina inloggade enheter",
+ "manage_your_oauth_connection": "Hantera din OAuth-anslutning",
"map": "Karta",
- "map_marker_with_image": "",
+ "map_marker_for_images": "Kartmarkering för bilder tagna i {city}, {country}",
+ "map_marker_with_image": "Kartmarkör med bild",
"map_settings": "Kartinställningar",
+ "matches": "Matchar",
"media_type": "Mediatyp",
- "memories": "",
- "memories_setting_description": "",
- "menu": "",
- "merge": "",
- "merge_people": "",
- "merge_people_successfully": "",
- "minimize": "",
- "minute": "",
+ "memories": "Minnen",
+ "memories_setting_description": "Hantera det du ser i dina minnen",
+ "memory": "Minne",
+ "memory_lane_title": "Återupplev {title}",
+ "menu": "Meny",
+ "merge": "Sammanfoga",
+ "merge_people": "Sammanfoga personer",
+ "merge_people_limit": "Du kan maximalt sammanfoga 5 ansikten på samma gång",
+ "merge_people_prompt": "Vill du sammanfoga dessa personer? Denna handling är oåterkallelig.",
+ "merge_people_successfully": "Personer sammanfogades framgångsrikt",
+ "merged_people_count": "Sammanfogat {count, plural, one {# person} other {# people}}",
+ "minimize": "Minimera",
+ "minute": "Minut",
"missing": "Saknade",
"model": "Modell",
"month": "Månad",
- "more": "",
- "moved_to_trash": "",
- "my_albums": "",
+ "more": "Mer",
+ "moved_to_trash": "Flyttad till papperskorgen",
+ "my_albums": "Mina album",
"name": "Namn",
- "name_or_nickname": "",
+ "name_or_nickname": "Namn eller smeknamn",
"never": "aldrig",
- "new_api_key": "",
+ "new_album": "Nytt album",
+ "new_api_key": "Ny API-nyckel",
"new_password": "Nytt lösenord",
- "new_person": "",
- "new_user_created": "",
- "newest_first": "",
+ "new_person": "Ny person",
+ "new_user_created": "Ny användare skapad",
+ "new_version_available": "NY VERSION TILLGÄNGLIG",
+ "newest_first": "Nyast först",
"next": "Nästa",
- "next_memory": "",
- "no": "",
- "no_albums_message": "",
- "no_archived_assets_message": "",
- "no_assets_message": "",
- "no_exif_info_available": "",
- "no_explore_results_message": "",
- "no_favorites_message": "",
- "no_libraries_message": "",
- "no_name": "",
- "no_places": "",
- "no_results": "",
- "no_shared_albums_message": "",
+ "next_memory": "Nästa minne",
+ "no": "Nej",
+ "no_albums_message": "Skapa ett album för att organisera dina foton och videor",
+ "no_albums_with_name_yet": "Du verkar inte ha några album med det här namnet ännu.",
+ "no_albums_yet": "Det ser ut som att du inte har några album ännu.",
+ "no_archived_assets_message": "Arkivera bilder och videor för att dölja dem från bild-vyn",
+ "no_assets_message": "KLICKA FÖR ATT LADDA UPP DIN FÖRSTA BILD",
+ "no_duplicates_found": "Inga dubbletter hittades.",
+ "no_exif_info_available": "EXIF-information ej tillgänglig",
+ "no_explore_results_message": "Ladda upp fler bilder för att utforska din samling.",
+ "no_favorites_message": "Lägg till favoriter för att snabbt hitta dina bästa bilder och videor",
+ "no_libraries_message": "Skapa ett externt bibliotek för att se dina bilder och videor",
+ "no_name": "Inget namn",
+ "no_places": "Inga platser",
+ "no_results": "Inga resultat",
+ "no_results_description": "Pröva en synonym eller ett annat mer allmänt sökord",
+ "no_shared_albums_message": "Skapa ett album för att dela bilder och videor med andra personer",
"not_in_any_album": "Inte i något album",
- "notes": "",
- "notification_toggle_setting_description": "",
+ "note_unlimited_quota": "Notera: Ange 0 för obegränsad mängd",
+ "notes": "Notera",
+ "notification_toggle_setting_description": "Aktivera e-postaviseringar",
"notifications": "Notifikationer",
- "notifications_setting_description": "",
- "oauth": "",
- "offline": "",
- "ok": "",
- "oldest_first": "",
- "online": "",
- "only_favorites": "",
- "open_the_search_filters": "",
+ "notifications_setting_description": "Hantera aviseringar",
+ "oauth": "OAuth",
+ "offline": "Frånkopplad",
+ "offline_paths_description": "Dessa resultat kan bero på att filer som ej ingår i ett externt bibliotek har tagits bort manuellt.",
+ "ok": "OK",
+ "oldest_first": "Äldst först",
+ "onboarding": "Introduktion",
+ "onboarding_privacy_description": "Följande (valfria) funktioner är beroende av externa tjänster och kan när som helst avaktiveras i administratörsinställningarna.",
+ "onboarding_theme_description": "Välj en färg för din instans. Du kan ändra detta senare via inställningarna.",
+ "onboarding_welcome_description": "Vi börjar med att ställa in din instans med några vanliga inställningar.",
+ "onboarding_welcome_user": "Välkommen, {user}",
+ "online": "Ansluten",
+ "only_favorites": "Endast favoriter",
+ "open_in_map_view": "Öppna kartvy",
+ "open_in_openstreetmap": "Öppna med OpenStreetMap",
+ "open_the_search_filters": "Öppna sökfilter",
"options": "Val",
+ "or": "eller",
"organize_your_library": "Organisera ditt bibliotek",
- "other": "",
- "other_devices": "",
- "other_variables": "",
+ "original": "original",
+ "other": "Övrigt",
+ "other_devices": "Andra enheter",
+ "other_variables": "Andra variabler",
"owned": "Ägd",
"owner": "Ägare",
- "partner_sharing": "",
- "partners": "",
+ "partner": "Partner",
+ "partner_can_access": "{partner} har åtkomst",
+ "partner_can_access_location": "Platsen där dina foton togs",
+ "partner_sharing": "Partnerdelning",
+ "partners": "Partners",
"password": "Lösenord",
"password_does_not_match": "",
- "password_required": "",
- "password_reset_success": "",
+ "password_required": "Lösenord krävs",
+ "password_reset_success": "Lösenord återställt",
"past_durations": {
- "days": "",
- "hours": "",
- "years": ""
+ "days": "Senaste {days, plural, one {day} other {# days}}",
+ "hours": "Senaste {hours, plural, one {hour} other {# hours}}",
+ "years": "Senaste {years, plural, one {year} other {# years}}"
},
- "path": "",
- "pattern": "",
- "pause": "",
- "pause_memories": "",
- "paused": "",
- "pending": "",
+ "path": "Sökväg",
+ "pattern": "Mönster",
+ "pause": "Pause",
+ "pause_memories": "Pausa minnen",
+ "paused": "Pausad",
+ "pending": "Väntande",
"people": "Personer",
- "people_sidebar_description": "",
- "permanent_deletion_warning": "",
- "permanent_deletion_warning_setting_description": "",
- "permanently_delete": "",
+ "people_edits_count": "Redigerad {count, plural, one {# person} other {# people}}",
+ "people_feature_description": "Visar foton och videor grupperade per personer",
+ "people_sidebar_description": "Visa en länk till Personer i sidopanelen",
+ "permanent_deletion_warning": "Varning om permanent radering",
+ "permanent_deletion_warning_setting_description": "Visa en varning när tillgångar raderas permanent",
+ "permanently_delete": "Radera permanent",
+ "permanently_delete_assets_count": "Radera {count, plural, one {asset} other {assets}} permanent",
"permanently_deleted_asset": "",
+ "person": "Person",
"photos": "Foton",
+ "photos_and_videos": "Foton & videor",
"photos_count": "{count, plural, one {{count, number} Foto} other {{count, number} Foton}}",
"photos_from_previous_years": "Foton från tidigare år",
- "pick_a_location": "",
+ "pick_a_location": "Välj en plats",
"place": "Plats",
"places": "Platser",
- "play": "",
- "play_memories": "",
- "play_motion_photo": "",
- "play_or_pause_video": "",
- "port": "",
- "preset": "",
- "preview": "",
- "previous": "",
- "previous_memory": "",
- "previous_or_next_photo": "",
- "primary": "",
- "profile_picture_set": "",
+ "play": "Spela upp",
+ "play_memories": "Spela upp minnen",
+ "play_motion_photo": "Spela upp rörligt foto",
+ "play_or_pause_video": "Spela upp eller pausa video",
+ "port": "Port",
+ "preset": "Förinställt värde",
+ "preview": "Förhandsvisning",
+ "previous": "Föregående",
+ "previous_memory": "Föregående minne",
+ "previous_or_next_photo": "Föregående eller nästa foto",
+ "primary": "Primär",
+ "profile_image_of_user": "{user} profilbild",
+ "profile_picture_set": "Profilbild vald.",
+ "public_album": "Publikt album",
"public_share": "",
+ "purchase_account_info": "Supporter",
+ "purchase_activated_subtitle": "Tack för att du stödjer Immich och open source-mjukvara",
+ "purchase_activated_time": "Aktiverad {date, date}",
+ "purchase_activated_title": "Aktiveringan av din nyckel lyckades",
+ "purchase_button_activate": "Aktivera",
+ "purchase_button_buy": "Köp",
+ "purchase_button_buy_immich": "Köp Immich",
+ "purchase_button_never_show_again": "Visa aldrig igen",
+ "purchase_button_reminder": "Påminn mig om 30 dagar",
+ "purchase_button_remove_key": "Ta bort nyckel",
+ "purchase_button_select": "Välj",
+ "purchase_failed_activation": "Aktivering misslyckades! Vänligen kontrollera din e-post för att hitta rätt produktnyckel!",
+ "purchase_individual_description_1": "För en individ",
+ "purchase_individual_description_2": "Supporterstatus",
+ "purchase_individual_title": "Individuell",
+ "purchase_input_suggestion": "Har du en produktnyckel? Ange nyckeln nedan",
+ "purchase_license_subtitle": "Köp Immich för att stödja den fortsatta utvecklingen av tjänsten",
+ "purchase_lifetime_description": "Livstidsköp",
+ "purchase_option_title": "KÖPALTERNATIV",
+ "purchase_panel_info_1": "Att bygga Immich kräver mycket tid och engagemang och våra tekniker jobbar heltid för att göra det så bra som vi möjligt kan. Vårt mål är att open source-mjukvara och etiska affärsmetoder ska bli en hållbar inkomstkälla för utvecklare och att skapa ett ekosystem som repekterar personlig integritet med verkliga alternativ till exploaterande molntjänster.",
+ "purchase_panel_info_2": "Då vi åtagit oss att inte ha betalväggar kommer detta köp inte att ge dig några utökade funktioner i Immich. Vi sätter vår tillit till användare som du som stödjer Immichs fortsatta utveckling.",
+ "purchase_panel_title": "Stöd projektet",
+ "purchase_remove_product_key": "Ta bort produktnyckel",
+ "purchase_remove_product_key_prompt": "Vill du verkligen ta bort produktnyckeln?",
+ "purchase_server_description_2": "Supporterstatus",
+ "purchase_server_title": "Server",
+ "purchase_settings_server_activated": "Produktnyckeln för servern hanteras av administratören",
"reaction_options": "",
- "read_changelog": "",
+ "read_changelog": "Läs ändringslogg",
"recent": "",
"recent_searches": "",
- "refresh": "",
- "refreshed": "",
- "refreshes_every_file": "",
- "remove": "",
+ "refresh": "Ladda om",
+ "refresh_encoded_videos": "Ladda om kodade videor",
+ "refresh_faces": "Ladda om ansikten",
+ "refresh_metadata": "Ladda om metadata",
+ "refreshed": "Omladdad",
+ "refreshes_every_file": "Läser in alla existerande och nya filer på nytt",
+ "refreshing_encoded_video": "Återladdar kodad video",
+ "refreshing_faces": "Återladdar ansikten",
+ "refreshing_metadata": "Återladdar metadata",
+ "remove": "Ta bort",
+ "remove_assets_title": "Ta bort filer?",
"remove_deleted_assets": "",
"remove_from_album": "Ta bort från album",
"remove_from_favorites": "",
@@ -1129,7 +1202,7 @@
"warning": "Varning",
"week": "Vecka",
"welcome": "Välkommen",
- "welcome_to_immich": "Välkommen till immich",
+ "welcome_to_immich": "Välkommen till Immich",
"year": "År",
"years_ago": "{years, plural, one {# år} other {# år}} sedan",
"yes": "Ja",
diff --git a/i18n/ta.json b/i18n/ta.json
index 8525308e33..f3ed200b24 100644
--- a/i18n/ta.json
+++ b/i18n/ta.json
@@ -23,16 +23,23 @@
"add_to": "சேர்க்க...",
"add_to_album": "ஆல்பமில் சேர்க்க",
"add_to_shared_album": "பகிரப்பட்ட ஆல்பமில் சேர்க்க",
+ "add_url": "URL ஐச் சேர்க்கவும்",
"added_to_archive": "காப்பகத்தில் சேர்க்கப்பட்டது",
"added_to_favorites": "விருப்பங்களில் (பேவரிட்ஸ்) சேர்க்கப்பட்டது",
"added_to_favorites_count": "விருப்பங்களில் (பேவரிட்ஸ்) {count} சேர்க்கப்பட்டது",
"admin": {
"add_exclusion_pattern_description": "விலக்கு வடிவங்களைச் சேர்க்கவும். *, **, மற்றும் ? ஆதரிக்கப்படுகிறது. \"Raw\" என்ற பெயரிடப்பட்ட எந்த கோப்பகத்திலும் உள்ள எல்லா கோப்புகளையும் புறக்கணிக்க, \"**/Raw/**\" ஐப் பயன்படுத்தவும். \".tif\" இல் முடியும் எல்லா கோப்புகளையும் புறக்கணிக்க, \"**/*.tif\" ஐப் பயன்படுத்தவும். ஒரு முழுமையான பாதையை புறக்கணிக்க, \"/path/to/ignore/**\" ஐப் பயன்படுத்தவும்.",
+ "asset_offline_description": "இந்த வெளிப்புற நூலக சொத்து இனி வட்டில் காணப்படவில்லை மற்றும் குப்பைக்கு நகர்த்தப்பட்டுள்ளது. கோப்பு நூலகத்திற்குள் நகர்த்தப்பட்டிருந்தால், புதிய தொடர்புடைய சொத்துக்கான உங்கள் காலவரிசையை சரிபார்க்கவும். இந்த சொத்தை மீட்டெடுக்க, கீழேயுள்ள கோப்பு பாதையை இம்மிச் மூலம் அணுகலாம் மற்றும் நூலகத்தை ச்கேன் செய்ய முடியும் என்பதை உறுதிப்படுத்தவும்.",
"authentication_settings": "அடையாள உறுதிப்படுத்தல் அமைப்புகள் (செட்டிங்ஸ்)",
"authentication_settings_description": "கடவுச்சொல், OAuth, மற்றும் பிற அடையாள அமைப்புகள்",
"authentication_settings_disable_all": "எல்லா உள்நுழைவு முறைகளையும் நிச்சயமாக முடக்க விரும்புகிறீர்களா? உள்நுழைவு முற்றிலும் முடக்கப்படும்.",
"authentication_settings_reenable": "மீண்டும் இயக்க, சர்வர் கட்டளை பயன்படுத்தவும்.",
"background_task_job": "பின்னணி பணிகள்",
+ "backup_database": "காப்பு தரவுத்தளம்",
+ "backup_database_enable_description": "தரவுத்தள காப்புப்பிரதிகளை இயக்கவும்",
+ "backup_keep_last_amount": "வைத்திருக்க முந்தைய காப்புப்பிரதிகளின் அளவு",
+ "backup_settings": "காப்பு அமைப்புகள்",
+ "backup_settings_description": "தரவுத்தள காப்புப்பிரதி அமைப்புகளை நிர்வகிக்கவும்",
"check_all": "அனைத்தையும் தேர்ந்தெடு",
"cleared_jobs": "முடித்த வேலைகள்: {job}",
"config_set_by_file": "config தற்போது ஒரு config கோப்பு மூலம் அமைக்கப்பட்டுள்ளது",
@@ -42,6 +49,9 @@
"confirm_reprocess_all_faces": "எல்லா முகங்களையும் மீண்டும் செயலாக்க விரும்புகிறீர்களா? இது பெயரிடப்பட்ட நபர்களையும் அழிக்கும்.",
"confirm_user_password_reset": "{user} இன் கடவுச்சொல்லை நிச்சயமாக மீட்டமைக்க விரும்புகிறீர்களா?",
"create_job": "வேலையை உருவாக்கு",
+ "cron_expression": "க்ரோன் வெளிப்பாடு",
+ "cron_expression_description": "CRON வடிவமைப்பைப் பயன்படுத்தி ச்கேனிங் இடைவெளியை அமைக்கவும். மேலும் தகவலுக்கு எ.கா. <இணைப்பு> க்ரோன்டாப் குரு இணைப்பு>",
+ "cron_expression_presets": "க்ரோன் வெளிப்பாடு முன்னமைவுகள்",
"disable_login": "உள்நுழைவை முடக்கு",
"duplicate_detection_job_description": "ஒத்த படங்களைக் கண்டறிய, சொத்துக்களில் இயந்திரக் கற்றலை இயக்கவும். ஸ்மார்ட் தேடலை நம்பியுள்ளது",
"exclusion_pattern_description": "உங்கள் நூலகத்தை ஸ்கேன் செய்யும் போது கோப்புகளையும் கோப்புறைகளையும் புறக்கணிக்க விலக்கு வடிவங்கள் உங்களை அனுமதிக்கின்றன. RAW கோப்புகள் போன்ற நீங்கள் இறக்குமதி செய்ய விரும்பாத கோப்புகளைக் கொண்ட கோப்புறைகள் உங்களிடம் இருந்தால் இது பயனுள்ளதாக இருக்கும்.",
@@ -53,21 +63,31 @@
"failed_job_command": "பணிக்கான கட்டளை {command} தோல்வியடைந்தது: {job}",
"force_delete_user_warning": "எச்சரிக்கை: இது பயனரையும் அனைத்து புகைப்பட சொத்துகளையும் உடனடியாக அகற்றும். இதை செயல்தவிர்க்க முடியாது மற்றும் புகைப்படங்களை மீட்டெடுக்க முடியாது.",
"forcing_refresh_library_files": "அனைத்து லைப்ரரி புகைப்படங்களையும் கட்டாயப்படுத்தி புதுப்பிக்கவும்",
+ "image_format": "வடிவம்",
"image_format_description": "WebP, JPEG ஐ விட சிறிய கோப்புகளை உருவாக்குகிறது, ஆனால் குறியாக்கம் செய்ய மெதுவாக உள்ளது.",
"image_prefer_embedded_preview": "உட்பொதிந்த படத்தை முன்னிடு",
- "image_prefer_embedded_preview_setting_description": "",
+ "image_prefer_embedded_preview_setting_description": "கிடைக்கும்போது பட செயலாக்கத்திற்கான உள்ளீடாக மூல புகைப்படங்களில் உட்பொதிக்கப்பட்ட மாதிரிக்காட்சிகளைப் பயன்படுத்தவும். இது சில படங்களுக்கு மிகவும் துல்லியமான வண்ணங்களை உருவாக்க முடியும், ஆனால் முன்னோட்டத்தின் தகுதி கேமரா சார்ந்தது மற்றும் படத்தில் அதிக சுருக்க கலைப்பொருட்கள் இருக்கலாம்.",
"image_prefer_wide_gamut": "அகன்ற வண்ணவரம்பு தேர்வு",
- "image_prefer_wide_gamut_setting_description": "",
+ "image_prefer_wide_gamut_setting_description": "சிறு உருவங்களுக்கு காட்சி பி 3 ஐப் பயன்படுத்தவும். இது பரந்த வண்ணங்களைக் கொண்ட படங்களின் அதிர்வுகளை சிறப்பாக பாதுகாக்கிறது, ஆனால் பழைய உலாவி பதிப்பைக் கொண்ட பழைய சாதனங்களில் படங்கள் வித்தியாசமாக தோன்றக்கூடும். வண்ண மாற்றங்களைத் தவிர்க்க SRGB படங்கள் SRGB ஆக வைக்கப்படுகின்றன.",
+ "image_preview_description": "அகற்றப்பட்ட மெட்டாடேட்டாவுடன் நடுத்தர அளவிலான படம், ஒற்றை சொத்தைப் பார்க்கும்போது மற்றும் இயந்திர கற்றலுக்காகப் பயன்படுத்தப்படுகிறது",
+ "image_preview_quality_description": "1-100 முதல் தரத்தை முன்னோட்டமிடுங்கள். உயர்ந்தது சிறந்தது, ஆனால் பெரிய கோப்புகளை உருவாக்குகிறது மற்றும் பயன்பாட்டு மறுமொழியைக் குறைக்கும். குறைந்த மதிப்பை அமைப்பது இயந்திர கற்றல் தரத்தை பாதிக்கலாம்.",
+ "image_preview_title": "அமைப்புகள் முன்னோட்டம்",
"image_quality": "தரம்",
+ "image_resolution": "பகுத்தல்",
+ "image_resolution_description": "அதிக தீர்மானங்கள் அதிக விவரங்களை பாதுகாக்க முடியும், ஆனால் குறியாக்க அதிக நேரம் எடுக்கும், பெரிய கோப்பு அளவுகளைக் கொண்டிருக்கலாம் மற்றும் பயன்பாட்டு மறுமொழியைக் குறைக்கலாம்.",
"image_settings": "பட அமைப்புகள்",
"image_settings_description": "உருவாக்கப்பட்ட படங்களின் தரம் மற்றும் தெளிவுத்திறனை நிர்வகிக்கவும்",
+ "image_thumbnail_description": "அகற்றப்பட்ட மெட்டாடேட்டாவுடன் சிறிய சிறுபடம், முதன்மையான காலவரிசை போன்ற புகைப்படங்களின் குழுக்களைப் பார்க்கும்போது பயன்படுத்தப்படுகிறது",
+ "image_thumbnail_quality_description": "1-100 முதல் சிறு தகுதி. உயர்ந்தது சிறந்தது, ஆனால் பெரிய கோப்புகளை உருவாக்குகிறது மற்றும் பயன்பாட்டு மறுமொழியைக் குறைக்கும்.",
+ "image_thumbnail_title": "சிறு அமைப்புகள்",
"job_concurrency": "{job} ஒத்திசைவு",
+ "job_created": "உருவாக்கப்பட்டது",
"job_not_concurrency_safe": "இந்த வேலை ஒரே நேரத்தில் பாதுகாப்பானது அல்ல.",
- "job_settings": "",
- "job_settings_description": "",
+ "job_settings": "வேலை அமைப்புகள்",
+ "job_settings_description": "வேலை ஒத்திசைவை நிர்வகிக்கவும்",
"job_status": "வேலை நிலை",
- "jobs_delayed": "",
- "jobs_failed": "",
+ "jobs_delayed": "{JobCount, பன்மை, பிற {# தாமதமானது}}",
+ "jobs_failed": "{JobCount, பன்மை, பிற {# தோல்வியுற்றது}}",
"library_created": "உருவாக்கப்பட்ட புகைப்பட நூலகம்: {library}",
"library_deleted": "புகைப்பட நூலகம் நீக்கப்பட்டது",
"library_import_path_description": "இறக்குமதி செய்ய ஒரு கோப்புறையைக் குறிப்பிடவும். துணைக் கோப்புறைகள் உட்பட இந்தக் கோப்புறை படங்கள் மற்றும் வீடியோக்களுக்காக ஸ்கேன் செய்யப்படும்.",
@@ -76,9 +96,9 @@
"library_scanning_enable_description": "நியமிக்கப்பட்ட புகைப்பட நூலக ஸ்கேனிங்கை இயக்கு",
"library_settings": "வெளிப்புற புகைப்பட நூலகம்",
"library_settings_description": "வெளிப்புற புகைப்பட நூலக அமைப்புகளை மேலாண்மை செய்யவும்",
- "library_tasks_description": "",
- "library_watching_enable_description": "",
- "library_watching_settings": "",
+ "library_tasks_description": "நூலக பணிகளைச் செய்யுங்கள்",
+ "library_watching_enable_description": "கோப்பு மாற்றங்களுக்கு வெளிப்புற நூலகங்களைப் பாருங்கள்",
+ "library_watching_settings": "நூலகப் பார்ப்பது (சோதனை)",
"library_watching_settings_description": "மாற்றப்பட்ட புகைப்படங்களைத் தானாகவே பார்க்கவும்",
"logging_enable_description": "பதிவு செய்வதை இயக்கு",
"logging_level_description": "இயக்கப்பட்டால், எந்தப் பதிவு நிலை பயன்படுத்த வேண்டும்.",
@@ -99,11 +119,11 @@
"machine_learning_facial_recognition_setting_description": "முடக்கப்பட்டிருந்தால், முக அங்கீகாரத்திற்காக படங்கள் குறியாக்கம் செய்யப்படாது மற்றும் ஆய்வுப் பக்கத்தில் உள்ள மக்கள் பிரிவில் நிரப்பப்படாது.",
"machine_learning_max_detection_distance": "அதிகபட்ச கண்டறிதல் தூரம்",
"machine_learning_max_detection_distance_description": "0.001-0.1 வரையிலான இரண்டு படங்களுக்கு இடையே உள்ள அதிகபட்ச தூரம் நகல்களாகக் கருதப்படும். அதிக மதிப்புகள் அதிக நகல்களைக் கண்டறியும், ஆனால் தவறான நேர்மறைகளை ஏற்படுத்தலாம்.",
- "machine_learning_max_recognition_distance": "",
- "machine_learning_max_recognition_distance_description": "",
- "machine_learning_min_detection_score": "",
- "machine_learning_min_detection_score_description": "",
- "machine_learning_min_recognized_faces": "",
+ "machine_learning_max_recognition_distance": "அதிகபட்ச அங்கீகார தூரம்",
+ "machine_learning_max_recognition_distance_description": "0-2 முதல் ஒரே நபராகக் கருதப்பட வேண்டிய இரண்டு முகங்களுக்கிடையில் அதிகபட்ச தூரம். இதைக் குறைப்பது இரண்டு நபர்களை ஒரே நபராக முத்திரை குத்துவதைத் தடுக்கலாம், அதே நேரத்தில் அதை உயர்த்துவது ஒரே நபரை இரண்டு வெவ்வேறு நபர்களாக பெயரிடுவதைத் தடுக்கலாம். ஒரு நபரை இரண்டாகப் பிரிப்பதை விட இரண்டு நபர்களை ஒன்றிணைப்பது எளிது என்பதை நினைவில் கொள்க, எனவே முடிந்தவரை குறைந்த வாசலின் பக்கத்தில் தவறு செய்யுங்கள்.",
+ "machine_learning_min_detection_score": "குறைந்தபட்ச கண்டறிதல் மதிப்பெண்",
+ "machine_learning_min_detection_score_description": "ஒரு முகம் 0-1 முதல் கண்டறியப்படுவதற்கு குறைந்தபட்ச நம்பிக்கை மதிப்பெண். குறைந்த மதிப்புகள் அதிக முகங்களைக் கண்டறியும், ஆனால் தவறான நேர்மறைகளை ஏற்படுத்தக்கூடும்.",
+ "machine_learning_min_recognized_faces": "குறைந்தபட்ச அங்கீகரிக்கப்பட்ட முகங்கள்",
"machine_learning_min_recognized_faces_description": "ஒரு நபருக்கு உருவாக்கப்பட வேண்டிய அங்கீகரிக்கப்பட்ட முகங்களின் குறைந்தபட்ச எண்ணிக்கை. இதை அதிகரிப்பது, ஒரு நபருக்கு முகம் ஒதுக்கப்படாமல் போகும் வாய்ப்பை அதிகரிக்கும் செலவில், முக அங்கீகாரத்தை மிகவும் துல்லியமாக்குகிறது.",
"machine_learning_settings": "இயந்திர கற்றல் அமைப்புகள்",
"machine_learning_settings_description": "இயந்திர கற்றல் அம்சங்கள் மற்றும் அமைப்புகளை நிர்வகிக்கவும்",
@@ -111,11 +131,14 @@
"machine_learning_smart_search_description": "CLIP மாடெலைப் பயன்படுத்தி சொற்பொருளில் படங்களைத் தேடுங்கள்",
"machine_learning_smart_search_enabled": "ஸ்மார்ட் தேடலை இயக்கு",
"machine_learning_smart_search_enabled_description": "முடக்கப்பட்டிருந்தால், ஸ்மார்ட் தேடலுக்காக படங்கள் குறியாக்கம் செய்யப்படாது.",
- "machine_learning_url_description": "இயந்திர கற்றல் சேவையகத்தின் URL",
+ "machine_learning_url_description": "இயந்திர கற்றல் சேவையகத்தின் முகவரி. ஒன்றுக்கு மேற்பட்ட முகவரி வழங்கப்பட்டால், ஒவ்வொரு சேவையகமும் வெற்றிகரமாக பதிலளிக்கும் வரை, முதல் முதல் கடைசி வரை முயற்சிக்கும்.",
"manage_concurrency": "ஒத்திசைவை நிர்வகிக்கவும்",
"manage_log_settings": "பதிவு அமைப்புகளை நிர்வகிக்கவும்",
"map_dark_style": "இருண்ட தீம்",
"map_enable_description": "மேப்பிங் அம்சங்களை இயக்கவும்",
+ "map_gps_settings": "வரைபடம் & சி.பி.எச் அமைப்புகள்",
+ "map_gps_settings_description": "வரைபடம் & சி.பி.எச் (தலைகீழ் சியோகோடிங்) அமைப்புகளை நிர்வகிக்கவும்",
+ "map_implications": "வரைபட நற்பொருத்தம் வெளிப்புற ஓடு சேவையை நம்பியுள்ளது (diles.immich.cloud)",
"map_light_style": "வெள்ளை தீம்",
"map_manage_reverse_geocoding_settings": "ரிவர்ஸ் ஜியோகோடிங் அமைப்புகளை நிர்வகிக்கவும்",
"map_reverse_geocoding": "புவி இருப்பிடத்தை தீர்மானித்தல்",
@@ -126,6 +149,10 @@
"map_style_description": "style.json மேப் தீமுக்கான URL",
"metadata_extraction_job": "மெட்டாடேட்டாவைப் பிரித்தெடுக்கவும்",
"metadata_extraction_job_description": "ஜிபிஎஸ் மற்றும் தெளிவுத்திறன் போன்ற ஒவ்வொரு சொத்திலிருந்தும் மெட்டாடேட்டா தகவலைப் பிரித்தெடுக்கவும்",
+ "metadata_faces_import_setting": "முக இறக்குமதியை இயக்கவும்",
+ "metadata_faces_import_setting_description": "பட EXIF தரவு மற்றும் பக்கவாட்டு கோப்புகளிலிருந்து முகங்களை இறக்குமதி செய்யுங்கள்",
+ "metadata_settings": "மேனிலை தரவு அமைப்புகள்",
+ "metadata_settings_description": "மேனிலை தரவு அமைப்புகளை நிர்வகிக்கவும்",
"migration_job": "இடம்பெயர்தல்",
"migration_job_description": "புகைப்படங்கள் மற்றும் முகங்களுக்கான சிறுபடங்களை (தம்ப்னெயில்) சமீபத்திய கோப்புறை அமைப்பிற்கு மாற்றவும்",
"no_paths_added": "ஃபோல்ட்டர் பாதைகள் சேர்க்கப்படவில்லை",
@@ -161,8 +188,10 @@
"oauth_mobile_redirect_uri": "மொபைல் வழிமாற்று URI",
"oauth_mobile_redirect_uri_override": "மொபைல் வழிமாற்று URI மேலெழுதுதல்",
"oauth_mobile_redirect_uri_override_description": "'app.immich:/' தவறான வழிமாற்று URI ஆக இருக்கும்போது இயக்கவும்.",
+ "oauth_profile_signing_algorithm": "சுயவிவர கையொப்பமிடும் வழிமுறை",
+ "oauth_profile_signing_algorithm_description": "பயனர் சுயவிவரத்தில் கையொப்பமிட பயன்படுத்தப்படும் வழிமுறை.",
"oauth_scope": "வாய்ப்பு",
- "oauth_settings": "OAuth",
+ "oauth_settings": "Oauth",
"oauth_settings_description": "OAuth உள்நுழைவு அமைப்புகளை நிர்வகிக்கவும்",
"oauth_settings_more_details": "இந்த அம்சத்தைப் பற்றிய கூடுதல் விவரங்களுக்கு, டாக்ஸ் ஐப் பார்க்கவும்.",
"oauth_signing_algorithm": "கையொப்பமிடும் வழிமுறை",
@@ -178,6 +207,7 @@
"password_settings": "கடவுச்சொல் உள்நுழைவு",
"password_settings_description": "கடவுச்சொல் உள்நுழைவு அமைப்புகளை நிர்வகிக்கவும்",
"paths_validated_successfully": "அனைத்து பாதைகளும் வெற்றிகரமாக சரிபார்க்கப்பட்டன",
+ "person_cleanup_job": "நபர் தூய்மைப்படுத்துதல்",
"quota_size_gib": "ஒதுக்கீடு அளவு (GiB)",
"refreshing_all_libraries": "அனைத்து நூலகங்களையும் புதுப்பிக்கிறது",
"registration": "நிர்வாக பதிவு",
@@ -186,19 +216,23 @@
"repair_matched_items": "பொருந்தியது {count, plural, one {# உருப்படி} other {# உருப்படிகள்}}",
"repaired_items": "பழுதுபார்க்கப்பட்டது {count, plural, one {# உருப்படி} other {# உருப்படிகள்}}",
"require_password_change_on_login": "முதல் உள்நுழைவில் பயனர் கடவுச்சொல்லை மாற்ற வேண்டும்",
- "reset_settings_to_default": "",
- "reset_settings_to_recent_saved": "",
- "send_welcome_email": "",
- "server_external_domain_settings": "",
- "server_external_domain_settings_description": "",
- "server_settings": "",
- "server_settings_description": "",
- "server_welcome_message": "",
+ "reset_settings_to_default": "அமைப்புகளை இயல்புநிலைக்கு மீட்டமைக்கவும்",
+ "reset_settings_to_recent_saved": "அண்மையில் சேமிக்கப்பட்ட அமைப்புகளுக்கு அமைப்புகளை மீட்டமைக்கவும்",
+ "scanning_library": "ச்கேனிங் நூலகம்",
+ "search_jobs": "வேலைகளைத் தேடுங்கள் ...",
+ "send_welcome_email": "வரவேற்பு மின்னஞ்சலை அனுப்பவும்",
+ "server_external_domain_settings": "வெளிப்புற களம்",
+ "server_external_domain_settings_description": "HTTP (கள்) உட்பட பொது பகிரப்பட்ட இணைப்புகளுக்கான டொமைன்: //",
+ "server_public_users": "பொது பயனர்கள்",
+ "server_public_users_description": "பகிரப்பட்ட ஆல்பங்களில் பயனரைச் சேர்க்கும்போது அனைத்து பயனர்களும் (பெயர் மற்றும் மின்னஞ்சல்) பட்டியலிடப்பட்டுள்ளன. முடக்கப்பட்டால், பயனர் பட்டியல் நிர்வாக பயனர்களுக்கு மட்டுமே கிடைக்கும்.",
+ "server_settings": "சேவையக அமைப்புகள்",
+ "server_settings_description": "சேவையக அமைப்புகளை நிர்வகிக்கவும்",
+ "server_welcome_message": "வரவேற்பு செய்தி",
"server_welcome_message_description": "உள்நுழைவு (லோகின்) பக்கத்தில் காட்டப்படும் ஒரு செய்தி.",
"sidecar_job": "சைட்கார் மெட்டாடேட்டா",
"sidecar_job_description": "ஃபைல்ஸிலிருந்து சைட்கார் மெட்டாடேட்டாவைக் கண்டறியவும் அல்லது ஒத்திசைக்கவும்",
"slideshow_duration_description": "ஒவ்வொரு படத்தையும் காட்ட வேண்டிய வினாடிகளின் எண்ணிக்கை",
- "smart_search_job_description": "",
+ "smart_search_job_description": "அறிவுள்ள தேடலை ஆதரிக்க சொத்துக்களில் இயந்திர கற்றலை இயக்கவும்",
"storage_template_date_time_description": "ஸ்மார்ட் தேடலை ஆதரிக்க சொத்துகளில் இயந்திர கற்றலை இயக்கவும்",
"storage_template_date_time_sample": "மாதிரி நேரம் {date}",
"storage_template_enable_description": "ஸ்டோரேஜ் டெம்ப்ளேட் இயந்திரத்தை இயக்கவும்",
@@ -215,708 +249,1094 @@
"storage_template_settings_description": "பதிவேற்ற புகைப்படங்களின் கோப்புறை அமைப்பு மற்றும் கோப்பு பெயரை நிர்வகிக்கவும்",
"storage_template_user_label": "{label} என்பது பயனரின் சேமிப்பக லேபிள்",
"system_settings": "அமைப்புகள்",
+ "tag_cleanup_job": "குறிச்சொல் தூய்மைப்படுத்துதல்",
+ "template_email_available_tags": "உங்கள் வார்ப்புருவில் பின்வரும் மாறிகளைப் பயன்படுத்தலாம்: {tags}",
+ "template_email_if_empty": "வார்ப்புரு காலியாக இருந்தால், இயல்புநிலை மின்னஞ்சல் பயன்படுத்தப்படும்.",
+ "template_email_invite_album": "ஆல்பம் வார்ப்புருவை அழைக்கவும்",
+ "template_email_preview": "முன்னோட்டம்",
+ "template_email_settings": "மின்னஞ்சல் வார்ப்புருக்கள்",
+ "template_email_settings_description": "தனிப்பயன் மின்னஞ்சல் அறிவிப்பு வார்ப்புருக்களை நிர்வகிக்கவும்",
+ "template_email_update_album": "ஆல்பம் வார்ப்புருவைப் புதுப்பிக்கவும்",
+ "template_email_welcome": "மின்னஞ்சல் வார்ப்புருவை வரவேற்கிறோம்",
+ "template_settings": "அறிவிப்பு வார்ப்புருக்கள்",
+ "template_settings_description": "அறிவிப்புகளுக்கு தனிப்பயன் வார்ப்புருக்கள் நிர்வகிக்கவும்.",
"theme_custom_css_settings": "தனிப்பயன் CSS",
"theme_custom_css_settings_description": "CSS அம்சம் Immich வடிவமைப்பை தனிப்பயனாக்க அனுமதிக்கிறது.",
"theme_settings": "தீம் அமைப்புகள்",
- "theme_settings_description": "",
+ "theme_settings_description": "இம்மிச் வலை இடைமுகத்தின் தனிப்பயனாக்கத்தை நிர்வகிக்கவும்",
"these_files_matched_by_checksum": "இந்தக் கோப்புகள் அவற்றின் செக்சம்களுடன் பொருந்துகின்றன",
"thumbnail_generation_job": "சிறுபடங்களை உருவாக்கவும்",
- "thumbnail_generation_job_description": "",
- "transcoding_acceleration_api": "",
- "transcoding_acceleration_api_description": "",
- "transcoding_acceleration_nvenc": "",
- "transcoding_acceleration_qsv": "",
- "transcoding_acceleration_rkmpp": "",
- "transcoding_acceleration_vaapi": "",
- "transcoding_accepted_audio_codecs": "",
- "transcoding_accepted_audio_codecs_description": "",
- "transcoding_accepted_video_codecs": "",
- "transcoding_accepted_video_codecs_description": "",
- "transcoding_advanced_options_description": "",
- "transcoding_audio_codec": "",
- "transcoding_audio_codec_description": "",
- "transcoding_bitrate_description": "",
- "transcoding_codecs_learn_more": "",
- "transcoding_constant_quality_mode": "",
- "transcoding_constant_quality_mode_description": "",
- "transcoding_constant_rate_factor": "",
- "transcoding_constant_rate_factor_description": "",
- "transcoding_disabled_description": "",
- "transcoding_hardware_acceleration": "",
- "transcoding_hardware_acceleration_description": "",
- "transcoding_hardware_decoding": "",
- "transcoding_hardware_decoding_setting_description": "",
- "transcoding_hevc_codec": "",
- "transcoding_max_b_frames": "",
- "transcoding_max_b_frames_description": "",
- "transcoding_max_bitrate": "",
- "transcoding_max_bitrate_description": "",
- "transcoding_max_keyframe_interval": "",
- "transcoding_max_keyframe_interval_description": "",
- "transcoding_optimal_description": "",
- "transcoding_preferred_hardware_device": "",
- "transcoding_preferred_hardware_device_description": "",
- "transcoding_preset_preset": "",
- "transcoding_preset_preset_description": "",
- "transcoding_reference_frames": "",
- "transcoding_reference_frames_description": "",
- "transcoding_required_description": "",
- "transcoding_settings": "",
+ "thumbnail_generation_job_description": "ஒவ்வொரு சொத்துக்கும் பெரிய, சிறிய மற்றும் மங்கலான சிறு உருவங்களையும், ஒவ்வொரு நபருக்கும் சிறு உருவங்களையும் உருவாக்குங்கள்",
+ "transcoding_acceleration_api": "முடுக்கம் பநிஇ",
+ "transcoding_acceleration_api_description": "டிரான்ச்கோடிங்கை துரிதப்படுத்த உங்கள் சாதனத்துடன் தொடர்பு கொள்ளும் பநிஇ. இந்த அமைப்பு 'சிறந்த முயற்சி': இது தோல்வியின் மீதான மென்பொருள் டிரான்ச்கோடிங்கிற்கு குறைகிறது. உங்கள் வன்பொருளைப் பொறுத்து VP9 வேலை செய்யலாம் அல்லது இல்லாமல் இருக்கலாம்.",
+ "transcoding_acceleration_nvenc": "NVENC (என்விடியா சி.பீ.யூ தேவை)",
+ "transcoding_acceleration_qsv": "விரைவான ஒத்திசைவு (7 வது சென் இன்டெல் சிபியு அல்லது அதற்குப் பிறகு தேவைப்படுகிறது)",
+ "transcoding_acceleration_rkmpp": "ஆர்.கே.எம்.பி.பி (ராக்சிப் சொக்சில் மட்டுமே)",
+ "transcoding_acceleration_vaapi": "ஆண்",
+ "transcoding_accepted_audio_codecs": "ஏற்றுக்கொள்ளப்பட்ட ஆடியோ கோடெக்குகள்",
+ "transcoding_accepted_audio_codecs_description": "எந்த ஆடியோ கோடெக்குகளை மாற்ற வேண்டிய அவசியமில்லை என்பதைத் தேர்ந்தெடுக்கவும். சில டிரான்ச்கோட் கொள்கைகளுக்கு மட்டுமே பயன்படுத்தப்படுகிறது.",
+ "transcoding_accepted_containers": "ஏற்றுக்கொள்ளப்பட்ட கொள்கலன்கள்",
+ "transcoding_accepted_containers_description": "எந்த கொள்கலன் வடிவங்களை MP4 க்கு மறுபரிசீலனை செய்ய தேவையில்லை என்பதைத் தேர்ந்தெடுக்கவும். சில டிரான்ச்கோட் கொள்கைகளுக்கு மட்டுமே பயன்படுத்தப்படுகிறது.",
+ "transcoding_accepted_video_codecs": "ஏற்றுக்கொள்ளப்பட்ட வீடியோ கோடெக்குகள்",
+ "transcoding_accepted_video_codecs_description": "எந்த வீடியோ கோடெக்குகளை மாற்ற வேண்டிய அவசியமில்லை என்பதைத் தேர்ந்தெடுக்கவும். சில டிரான்ச்கோட் கொள்கைகளுக்கு மட்டுமே பயன்படுத்தப்படுகிறது.",
+ "transcoding_advanced_options_description": "விருப்பங்கள் பெரும்பாலான பயனர்கள் மாற்ற தேவையில்லை",
+ "transcoding_audio_codec": "ஆடியோ கோடெக்",
+ "transcoding_audio_codec_description": "ஓபச் மிக உயர்ந்த தரமான விருப்பமாகும், ஆனால் பழைய சாதனங்கள் அல்லது மென்பொருளுடன் குறைந்த பொருந்தக்கூடிய தன்மையைக் கொண்டுள்ளது.",
+ "transcoding_bitrate_description": "மேக்ச் பிட்ரேட்டை விட அதிகமான வீடியோக்கள் அல்லது ஏற்றுக்கொள்ளப்பட்ட வடிவத்தில் இல்லை",
+ "transcoding_codecs_learn_more": "இங்கே பயன்படுத்தப்படும் சொற்களைப் பற்றி மேலும் அறிய, H.264 கோடெக் , HEVC கோடெக் மற்றும் VP9 க்கான FFMPEG ஆவணங்களைப் பார்க்கவும் கோடெக் .",
+ "transcoding_constant_quality_mode": "நிலையான தர முறை",
+ "transcoding_constant_quality_mode_description": "CQP ஐ விட ICQ சிறந்தது, ஆனால் சில வன்பொருள் முடுக்கம் சாதனங்கள் இந்த பயன்முறையை ஆதரிக்கவில்லை. இந்த விருப்பத்தை அமைப்பது தர அடிப்படையிலான குறியாக்கத்தைப் பயன்படுத்தும் போது குறிப்பிட்ட பயன்முறையை விரும்புகிறது. NVENC ஆல் புறக்கணிக்கப்பட்டது, ஏனெனில் இது ICQ ஐ ஆதரிக்காது.",
+ "transcoding_constant_rate_factor": "நிலையான வீத காரணி (-crf)",
+ "transcoding_constant_rate_factor_description": "வீடியோ தர நிலை. வழக்கமான மதிப்புகள் H.264 க்கு 23, HEVC க்கு 28, VP9 க்கு 31, மற்றும் AV1 க்கு 35 ஆகும். குறைவானது சிறந்தது, ஆனால் பெரிய கோப்புகளை உருவாக்குகிறது.",
+ "transcoding_disabled_description": "எந்த வீடியோக்களையும் டிரான்ச்கோட் செய்யாதீர்கள், சில வாடிக்கையாளர்களின் பிளேபேக்கை உடைக்கலாம்",
+ "transcoding_hardware_acceleration": "வன்பொருள் முடுக்கம்",
+ "transcoding_hardware_acceleration_description": "சோதனை; மிக வேகமாக, ஆனால் அதே பிட்ரேட்டில் குறைந்த தகுதி இருக்கும்",
+ "transcoding_hardware_decoding": "வன்பொருள் டிகோடிங்",
+ "transcoding_hardware_decoding_setting_description": "குறியாக்கத்தை விரைவுபடுத்துவதற்கு பதிலாக இறுதி முதல் இறுதி முடுக்கம் ஆகியவற்றை செயல்படுத்துகிறது. எல்லா வீடியோக்களிலும் வேலை செய்யக்கூடாது.",
+ "transcoding_hevc_codec": "HEVC கோடெக்",
+ "transcoding_max_b_frames": "அதிகபட்ச பி-பிரேம்கள்",
+ "transcoding_max_b_frames_description": "அதிக மதிப்புகள் சுருக்க செயல்திறனை மேம்படுத்துகின்றன, ஆனால் குறியாக்கத்தை மெதுவாக்குகின்றன. பழைய சாதனங்களில் வன்பொருள் முடுக்கம் உடன் பொருந்தாது. 0 பி -பிரேம்களை முடக்குகிறது, அதே நேரத்தில் -1 இந்த மதிப்பை தானாக அமைக்கிறது.",
+ "transcoding_max_bitrate": "அதிகபட்ச பிட்ரேட்",
+ "transcoding_max_bitrate_description": "அதிகபட்ச பிட்ரேட்டை அமைப்பது கோப்பு அளவுகளை ஒரு சிறிய செலவில் தரத்திற்கு கணிக்கக்கூடியதாக மாற்றும். 720p இல், வழக்கமான மதிப்புகள் VP9 அல்லது HEVC க்கு 2600K அல்லது H.264 க்கு 4500K ஆகும். 0 என அமைக்கப்பட்டால் முடக்கப்பட்டது.",
+ "transcoding_max_keyframe_interval": "அதிகபட்ச கீஃப்ரேம் இடைவெளி",
+ "transcoding_max_keyframe_interval_description": "கீஃப்ரேம்களுக்கு இடையில் அதிகபட்ச பிரேம் தூரத்தை அமைக்கிறது. குறைந்த மதிப்புகள் சுருக்க செயல்திறனை மோசமாக்குகின்றன, ஆனால் தேடல் நேரங்களை மேம்படுத்துகின்றன, மேலும் வேகமான இயக்கத்துடன் காட்சிகளில் தரத்தை மேம்படுத்தலாம். 0 இந்த மதிப்பை தானாக அமைக்கிறது.",
+ "transcoding_optimal_description": "இலக்கு தீர்மானத்தை விட உயர்ந்த வீடியோக்கள் அல்லது ஏற்றுக்கொள்ளப்பட்ட வடிவத்தில் இல்லை",
+ "transcoding_preferred_hardware_device": "விருப்பமான வன்பொருள் சாதனம்",
+ "transcoding_preferred_hardware_device_description": "VAAPI மற்றும் QSV க்கு மட்டுமே பொருந்தும். வன்பொருள் டிரான்ச்கோடிங்கிற்கு பயன்படுத்தப்படும் ட்ரை முனையை அமைக்கிறது.",
+ "transcoding_preset_preset": "முன்னமைக்கப்பட்ட (-பிரசெட்)",
+ "transcoding_preset_preset_description": "சுருக்க விரைவு. மெதுவான முன்னமைவுகள் சிறிய கோப்புகளை உருவாக்குகின்றன, மேலும் ஒரு குறிப்பிட்ட பிட்ரேட்டை குறிவைக்கும் போது தரத்தை அதிகரிக்கின்றன. VP9 'வேகமாக' மேலே உள்ள வேகத்தை புறக்கணிக்கிறது.",
+ "transcoding_reference_frames": "குறிப்பு பிரேம்கள்",
+ "transcoding_reference_frames_description": "கொடுக்கப்பட்ட சட்டகத்தை சுருக்கும்போது குறிப்பிட வேண்டிய பிரேம்களின் எண்ணிக்கை. அதிக மதிப்புகள் சுருக்க செயல்திறனை மேம்படுத்துகின்றன, ஆனால் குறியாக்கத்தை மெதுவாக்குகின்றன. 0 இந்த மதிப்பை தானாக அமைக்கிறது.",
+ "transcoding_required_description": "ஏற்றுக்கொள்ளப்பட்ட வடிவத்தில் இல்லாத வீடியோக்கள் மட்டுமே",
+ "transcoding_settings": "வீடியோ டிரான்ச்கோடிங் அமைப்புகள்",
"transcoding_settings_description": "",
- "transcoding_target_resolution": "",
- "transcoding_target_resolution_description": "",
- "transcoding_temporal_aq": "",
- "transcoding_temporal_aq_description": "",
- "transcoding_threads": "",
- "transcoding_threads_description": "",
- "transcoding_tone_mapping": "",
- "transcoding_tone_mapping_description": "",
- "transcoding_transcode_policy": "",
- "transcoding_transcode_policy_description": "",
- "transcoding_two_pass_encoding": "",
- "transcoding_two_pass_encoding_setting_description": "",
+ "transcoding_target_resolution": "இலக்கு தீர்மானம்",
+ "transcoding_target_resolution_description": "அதிக தீர்மானங்கள் அதிக விவரங்களை பாதுகாக்க முடியும், ஆனால் குறியாக்க அதிக நேரம் எடுக்கும், பெரிய கோப்பு அளவுகளைக் கொண்டிருக்கலாம், மேலும் பயன்பாட்டு மறுமொழியைக் குறைக்கலாம்.",
+ "transcoding_temporal_aq": "தம்போர்ல்",
+ "transcoding_temporal_aq_description": "NVENC க்கு மட்டுமே பொருந்தும். உயர்-விவரம், குறைந்த இயக்க காட்சிகளின் தரத்தை அதிகரிக்கிறது. பழைய சாதனங்களுடன் பொருந்தாது.",
+ "transcoding_threads": "நூல்கள்",
+ "transcoding_threads_description": "அதிக மதிப்புகள் விரைவான குறியாக்கத்திற்கு வழிவகுக்கும், ஆனால் செயலில் இருக்கும்போது மற்ற பணிகளைச் செயலாக்க சேவையகத்திற்கு குறைந்த இடத்தை விட்டு விடுங்கள். இந்த மதிப்பு சிபியு கோர்களின் எண்ணிக்கையை விட அதிகமாக இருக்கக்கூடாது. 0 என அமைக்கப்பட்டால் பயன்பாட்டை அதிகரிக்கிறது.",
+ "transcoding_tone_mapping": "தொனி-மேப்பிங்",
+ "transcoding_tone_mapping_description": "எச்.டி.ஆராக மாற்றப்படும்போது எச்.டி.ஆர் வீடியோக்களின் தோற்றத்தை பாதுகாக்க முயற்சிகள். ஒவ்வொரு வழிமுறையும் வண்ணம், விவரம் மற்றும் பிரகாசத்திற்கு வெவ்வேறு பரிமாற்றங்களை உருவாக்குகிறது. அபிள் விவரங்களை பாதுகாக்கிறார், மொபியச் நிறத்தை பாதுகாக்கிறார், மற்றும் ரெய்ன்ஆர்ட் பிரகாசத்தை பாதுகாக்கிறார்.",
+ "transcoding_transcode_policy": "டிரான்ச்கோட் கொள்கை",
+ "transcoding_transcode_policy_description": "ஒரு வீடியோ எப்போது மாற்றப்பட வேண்டும் என்பதற்கான கொள்கை. எச்.டி.ஆர் வீடியோக்கள் எப்போதும் டிரான்ச்கோட் செய்யப்படும் (டிரான்ச்கோடிங் முடக்கப்பட்டிருந்தால் தவிர).",
+ "transcoding_two_pass_encoding": "இரண்டு-பாச் குறியாக்கம்",
+ "transcoding_two_pass_encoding_setting_description": "சிறந்த குறியாக்கப்பட்ட வீடியோக்களை உருவாக்க இரண்டு பாச்களில் டிரான்ச்கோட். மேக்ச் பிட்ரேட் இயக்கப்பட்டிருக்கும்போது (H.264 மற்றும் HEVC உடன் வேலை செய்ய இது தேவைப்படுகிறது), இந்த பயன்முறை அதிகபட்ச பிட்ரேட்டை அடிப்படையாகக் கொண்ட பிட்ரேட் வரம்பைப் பயன்படுத்துகிறது மற்றும் CRF ஐ புறக்கணிக்கிறது. VP9 ஐப் பொறுத்தவரை, அதிகபட்ச பிட்ரேட் முடக்கப்பட்டிருந்தால் CRF ஐப் பயன்படுத்தலாம்.",
"transcoding_video_codec": "",
- "transcoding_video_codec_description": "",
- "trash_enabled_description": "",
- "trash_number_of_days": "",
- "trash_number_of_days_description": "",
- "trash_settings": "",
- "trash_settings_description": "",
- "untracked_files": "",
- "untracked_files_description": "",
- "user_delete_delay": "",
- "user_delete_delay_settings": "",
- "user_delete_delay_settings_description": "",
- "user_delete_immediately": "",
- "user_management": "",
- "user_password_has_been_reset": "",
- "user_password_reset_description": "",
- "user_restore_description": "",
- "user_settings": "",
- "user_settings_description": "",
- "user_successfully_removed": "",
- "version_check_enabled_description": "",
- "version_check_settings": "",
- "version_check_settings_description": "",
- "video_conversion_job": "",
- "video_conversion_job_description": ""
+ "transcoding_video_codec_description": "VP9 அதிக செயல்திறன் மற்றும் வலை பொருந்தக்கூடிய தன்மையைக் கொண்டுள்ளது, ஆனால் டிரான்ச்கோடிற்கு அதிக நேரம் எடுக்கும். HEVC இதேபோல் செயல்படுகிறது, ஆனால் குறைந்த வலை பொருந்தக்கூடிய தன்மையைக் கொண்டுள்ளது. H.264 பரவலாக இணக்கமானது மற்றும் டிரான்ச்கோடு விரைவானது, ஆனால் மிகப் பெரிய கோப்புகளை உருவாக்குகிறது. ஏ.வி 1 மிகவும் திறமையான கோடெக் ஆனால் பழைய சாதனங்களில் உதவி இல்லை.",
+ "trash_enabled_description": "குப்பை அம்சங்களை இயக்கவும்",
+ "trash_number_of_days": "நாட்களின் எண்ணிக்கை",
+ "trash_number_of_days_description": "சொத்துக்களை நிரந்தரமாக அகற்றுவதற்கு முன் குப்பைத்தொட்டியில் வைத்திருக்க நாட்கள் எண்ணிக்கை",
+ "trash_settings": "குப்பை அமைப்புகள்",
+ "trash_settings_description": "குப்பை அமைப்புகளை நிர்வகிக்கவும்",
+ "untracked_files": "கட்டுப்படுத்தப்படாத கோப்புகள்",
+ "untracked_files_description": "இந்த கோப்புகள் பயன்பாட்டால் கண்காணிக்கப்படவில்லை. அவை தோல்வியுற்ற நகர்வுகள், குறுக்கிடப்பட்ட பதிவேற்றங்கள் அல்லது ஒரு பிழையின் காரணமாக விட்டுச்செல்லும் முடிவுகளாக இருக்கலாம்",
+ "user_cleanup_job": "பயனர் தூய்மைப்படுத்துதல்",
+ "user_delete_delay": " {user} இன் கணக்கு மற்றும் சொத்துக்கள் {தாமதம், பன்மை, ஒன்று {# நாள்} மற்ற {# நாட்கள்}} இல் நிரந்தர நீக்க திட்டமிடப்படும்.",
+ "user_delete_delay_settings": "தாமதத்தை நீக்கு",
+ "user_delete_delay_settings_description": "எண் of days after நீக்கும் பெறுநர் permanently நீக்கு a user's account and assets. நீக்குவதற்கு தயாராக இருக்கும் பயனர்களைச் சரிபார்க்க பயனர் நீக்குதல் வேலை நள்ளிரவில் இயங்குகிறது. இந்த அமைப்பில் மாற்றங்கள் அடுத்த மரணதண்டனையில் மதிப்பீடு செய்யப்படும்.",
+ "user_delete_immediately": " {user} இன் கணக்கு மற்றும் சொத்துக்கள் நிரந்தர நீக்குதலுக்காக வரிசையில் நிற்கப்படும் உடனடியாக .",
+ "user_delete_immediately_checkbox": "உடனடியாக நீக்க பயனர் மற்றும் சொத்துக்கள்",
+ "user_management": "பயனர் மேலாண்மை",
+ "user_password_has_been_reset": "பயனரின் கடவுச்சொல் மீட்டமைக்கப்பட்டுள்ளது:",
+ "user_password_reset_description": "தயவுசெய்து தற்காலிக கடவுச்சொல்லை பயனருக்கு வழங்கவும், அவர்களின் அடுத்த உள்நுழைவில் கடவுச்சொல்லை மாற்ற வேண்டும் என்று அவர்களுக்குத் தெரிவிக்கவும்.",
+ "user_restore_description": " {user} இன் கணக்கு மீட்டெடுக்கப்படும்.",
+ "user_restore_scheduled_removal": "பயனரை மீட்டமை - {தேதி, தேதி, நீண்ட} இல் திட்டமிடப்பட்ட நீக்குதல்",
+ "user_settings": "பயனர் அமைப்புகள்",
+ "user_settings_description": "பயனர் அமைப்புகளை நிர்வகிக்கவும்",
+ "user_successfully_removed": "பயனர் {email} வெற்றிகரமாக அகற்றப்பட்டது.",
+ "version_check_enabled_description": "பதிப்பு காசோலையை இயக்கவும்",
+ "version_check_implications": "பதிப்பு சோதனை நற்பொருத்தம் Kithub.com உடன் அவ்வப்போது தகவல்தொடர்புகளை நம்பியுள்ளது",
+ "version_check_settings": "பதிப்பு சோதனை",
+ "version_check_settings_description": "புதிய பதிப்பு அறிவிப்பை இயக்கவும்/முடக்கவும்",
+ "video_conversion_job": "டிரான்ச்கோட் வீடியோக்கள்",
+ "video_conversion_job_description": "உலாவிகள் மற்றும் சாதனங்களுடன் பரந்த பொருந்தக்கூடிய டிரான்ச்கோட் வீடியோக்கள்"
},
- "admin_email": "",
- "admin_password": "",
- "administration": "",
- "advanced": "",
- "album_added": "",
- "album_added_notification_setting_description": "",
- "album_cover_updated": "",
- "album_info_updated": "",
- "album_name": "",
- "album_options": "",
- "album_updated": "",
- "album_updated_setting_description": "",
- "albums": "",
- "albums_count": "",
- "all": "",
- "all_people": "",
- "allow_dark_mode": "",
- "allow_edits": "",
- "api_key": "",
- "api_keys": "",
- "app_settings": "",
- "appears_in": "",
- "archive": "",
- "archive_or_unarchive_photo": "",
- "archive_size": "",
- "archive_size_description": "",
- "asset_offline": "",
- "assets": "",
- "authorized_devices": "",
- "back": "",
- "backward": "",
- "blurred_background": "",
- "bulk_delete_duplicates_confirmation": "",
- "bulk_keep_duplicates_confirmation": "",
- "bulk_trash_duplicates_confirmation": "",
- "camera": "",
- "camera_brand": "",
- "camera_model": "",
- "cancel": "",
- "cancel_search": "",
- "cannot_merge_people": "",
- "cannot_update_the_description": "",
- "change_date": "",
- "change_expiration_time": "",
- "change_location": "",
- "change_name": "",
- "change_name_successfully": "",
- "change_password": "",
- "change_your_password": "",
- "changed_visibility_successfully": "",
- "check_all": "",
- "check_logs": "",
- "choose_matching_people_to_merge": "",
- "city": "",
- "clear": "",
- "clear_all": "",
- "clear_message": "",
- "clear_value": "",
- "close": "",
- "collapse_all": "",
- "color_theme": "",
- "comment_options": "",
- "comments_are_disabled": "",
- "confirm": "",
- "confirm_admin_password": "",
- "confirm_delete_shared_link": "",
- "confirm_password": "",
- "contain": "",
- "context": "",
- "continue": "",
- "copied_image_to_clipboard": "",
- "copied_to_clipboard": "",
- "copy_error": "",
- "copy_file_path": "",
- "copy_image": "",
- "copy_link": "",
- "copy_link_to_clipboard": "",
- "copy_password": "",
- "copy_to_clipboard": "",
- "country": "",
- "cover": "",
- "covers": "",
- "create": "",
- "create_album": "",
- "create_library": "",
- "create_link": "",
- "create_link_to_share": "",
- "create_new_person": "",
- "create_new_user": "",
- "create_user": "",
- "created": "",
- "current_device": "",
- "custom_locale": "",
- "custom_locale_description": "",
- "dark": "",
- "date_after": "",
- "date_and_time": "",
- "date_before": "",
- "date_range": "",
- "day": "",
- "deduplicate_all": "",
- "default_locale": "",
- "default_locale_description": "",
- "delete": "",
- "delete_album": "",
- "delete_api_key_prompt": "",
- "delete_duplicates_confirmation": "",
- "delete_key": "",
- "delete_library": "",
- "delete_link": "",
- "delete_shared_link": "",
- "delete_user": "",
- "deleted_shared_link": "",
- "description": "",
- "details": "",
- "direction": "",
- "disabled": "",
- "disallow_edits": "",
- "discover": "",
- "dismiss_all_errors": "",
- "dismiss_error": "",
- "display_options": "",
- "display_order": "",
- "display_original_photos": "",
- "display_original_photos_setting_description": "",
- "done": "",
- "download": "",
- "download_settings": "",
- "download_settings_description": "",
- "downloading": "",
- "duplicates": "",
- "duplicates_description": "",
- "duration": "",
- "edit_album": "",
- "edit_avatar": "",
- "edit_date": "",
- "edit_date_and_time": "",
- "edit_exclusion_pattern": "",
- "edit_faces": "",
- "edit_import_path": "",
- "edit_import_paths": "",
- "edit_key": "",
- "edit_link": "",
- "edit_location": "",
- "edit_name": "",
- "edit_people": "",
- "edit_title": "",
- "edit_user": "",
- "edited": "",
- "editor": "",
- "email": "",
- "empty_trash": "",
- "end_date": "",
- "error": "",
- "error_loading_image": "",
+ "admin_email": "நிர்வாக மின்னஞ்சல்",
+ "admin_password": "நிர்வாகி கடவுச்சொல்",
+ "administration": "நிர்வாகம்",
+ "advanced": "மேம்பட்ட",
+ "age_months": "அகவை {மாதங்கள், பன்மை, ஒன்று {# மாதம்} மற்ற {# மாதங்கள்}}",
+ "age_year_months": "அகவை 1 அகவை, {மாதங்கள், பன்மை, ஒன்று {# மாதம்} மற்ற {# மாதங்கள்}}",
+ "age_years": "{ஆண்டுகள், பன்மை, பிற {வயது #}}",
+ "album_added": "ஆல்பம் சேர்க்கப்பட்டது",
+ "album_added_notification_setting_description": "பகிரப்பட்ட ஆல்பத்தில் நீங்கள் சேர்க்கப்படும்போது மின்னஞ்சல் அறிவிப்பைப் பெறுங்கள்",
+ "album_cover_updated": "ஆல்பம் கவர் புதுப்பிக்கப்பட்டது",
+ "album_delete_confirmation": "{album} ஆல்பத்தை நீக்க விரும்புகிறீர்களா?",
+ "album_delete_confirmation_description": "இந்த ஆல்பம் பகிரப்பட்டால், மற்ற பயனர்களால் இதை அணுக முடியாது.",
+ "album_info_updated": "ஆல்பம் செய்தி புதுப்பிக்கப்பட்டது",
+ "album_leave": "ஆல்பத்தை விடுங்கள்?",
+ "album_leave_confirmation": "நீங்கள் நிச்சயமாக {ஆல்பத்தை விட்டு வெளியேற விரும்புகிறீர்களா?",
+ "album_name": "ஆல்பத்தின் பெயர்",
+ "album_options": "ஆல்பம் விருப்பங்கள்",
+ "album_remove_user": "பயனரை அகற்றவா?",
+ "album_remove_user_confirmation": "{user} ஐ அகற்ற விரும்புகிறீர்களா?",
+ "album_share_no_users": "இந்த ஆல்பத்தை நீங்கள் எல்லா பயனர்களுடனும் பகிர்ந்து கொண்டதாகத் தெரிகிறது அல்லது பகிர்வதற்கு உங்களிடம் எந்த பயனரும் இல்லை.",
+ "album_updated": "ஆல்பம் புதுப்பிக்கப்பட்டது",
+ "album_updated_setting_description": "பகிரப்பட்ட ஆல்பத்தில் புதிய சொத்துக்கள் இருக்கும்போது மின்னஞ்சல் அறிவிப்பைப் பெறுங்கள்",
+ "album_user_left": "இடது {album}",
+ "album_user_removed": "அகற்றப்பட்டது {user}",
+ "album_with_link_access": "இணைப்பு உள்ள எவரும் இந்த ஆல்பத்தில் புகைப்படங்களையும் நபர்களையும் பார்க்கட்டும்.",
+ "albums": "ஆல்பம்",
+ "albums_count": "{எண்ணிக்கை, பன்மை, ஒன்று {{எண்ணிக்கை, எண்} ஆல்பம்} பிற {{எண்ணிக்கை, எண்} ஆல்பங்கள்}}",
+ "all": "அனைத்தும்",
+ "all_albums": "அனைத்து ஆல்பங்களும்",
+ "all_people": "அனைத்து மக்களும்",
+ "all_videos": "அனைத்து வீடியோக்களும்",
+ "allow_dark_mode": "இருண்ட பயன்முறையை அனுமதிக்கவும்",
+ "allow_edits": "திருத்தங்களை அனுமதிக்கவும்",
+ "allow_public_user_to_download": "பொது பயனரை பதிவிறக்கம் செய்ய அனுமதிக்கவும்",
+ "allow_public_user_to_upload": "பொது பயனரை பதிவேற்ற அனுமதிக்கவும்",
+ "anti_clockwise": "கடிகார எதிர்ப்பு",
+ "api_key": "பநிஇ விசை",
+ "api_key_description": "இந்த மதிப்பு ஒரு முறை மட்டுமே காண்பிக்கப்படும். சாளரத்தை மூடுவதற்கு முன் அதை நகலெடுக்க மறக்காதீர்கள்.",
+ "api_key_empty": "உங்கள் பநிஇ விசை பெயர் காலியாக இருக்கக்கூடாது",
+ "api_keys": "பநிஇ விசைகள்",
+ "app_settings": "பயன்பாட்டு அமைப்புகள்",
+ "appears_in": "தோன்றும்",
+ "archive": "காப்பகம்",
+ "archive_or_unarchive_photo": "காப்பகம் அல்லது செயலற்ற புகைப்படம்",
+ "archive_size": "காப்பக அளவு",
+ "archive_size_description": "பதிவிறக்கங்களுக்கான காப்பக அளவை உள்ளமைக்கவும் (கிபில்)",
+ "archived_count": "{எண்ணிக்கை, பன்மை, பிற {காப்பகப்படுத்தப்பட்ட #}}",
+ "are_these_the_same_person": "இவர்கள் ஒரே நபரா?",
+ "are_you_sure_to_do_this": "இதை நீங்கள் செய்ய விரும்புகிறீர்களா?",
+ "asset_added_to_album": "ஆல்பத்தில் சேர்க்கப்பட்டது",
+ "asset_adding_to_album": "ஆல்பத்தில் சேர்க்கிறது ...",
+ "asset_description_updated": "சொத்து விளக்கம் புதுப்பிக்கப்பட்டுள்ளது",
+ "asset_filename_is_offline": "சொத்து {filename} ஆஃப்லைனில் உள்ளது",
+ "asset_has_unassigned_faces": "சொத்து ஒதுக்கப்படாத முகங்களைக் கொண்டுள்ளது",
+ "asset_hashing": "ஏசிங் ...",
+ "asset_offline": "சொத்து ஆஃப்லைனில்",
+ "asset_offline_description": "இந்த வெளிப்புற சொத்து இனி வட்டில் காணப்படவில்லை. உதவிக்கு உங்கள் இம்மிச் நிர்வாகியை தொடர்பு கொள்ளவும்.",
+ "asset_skipped": "தவிர்க்கப்பட்டது",
+ "asset_skipped_in_trash": "குப்பையில்",
+ "asset_uploaded": "பதிவேற்றப்பட்டது",
+ "asset_uploading": "பதிவேற்றுதல் ...",
+ "assets": "சொத்துக்கள்",
+ "assets_added_count": "சேர்க்கப்பட்டது {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} மற்ற {# சொத்துக்கள்}}",
+ "assets_added_to_album_count": "ஆல்பத்தில் {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} மற்ற {# சொத்துக்கள்}}",
+ "assets_added_to_name_count": "சேர்க்கப்பட்டது {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} மற்ற {# சொத்துக்கள்}} {hasname, தேர்ந்தெடுக்கவும், உண்மை { {name} } பிற {new album}}",
+ "assets_count": "{எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} மற்ற {# சொத்துக்கள்}}",
+ "assets_moved_to_trash_count": "நகர்த்தப்பட்டது {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} மற்ற {# சொத்துக்கள்}}}",
+ "assets_permanently_deleted_count": "நிரந்தரமாக நீக்கப்பட்டது {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} பிற {# சொத்துக்கள்}}",
+ "assets_removed_count": "அகற்றப்பட்டது {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} மற்ற {# சொத்துக்கள்}}",
+ "assets_restore_confirmation": "உங்கள் குப்பைத் தொட்டிகள் அனைத்தையும் மீட்டெடுக்க விரும்புகிறீர்களா? இந்த செயலை நீங்கள் செயல்தவிர்க்க முடியாது! எந்தவொரு இணைப்பில்லாத சொத்துக்களையும் இந்த வழியில் மீட்டெடுக்க முடியாது என்பதை நினைவில் கொள்க.",
+ "assets_restored_count": "மீட்டெடுக்கப்பட்டது {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} மற்ற {# சொத்துக்கள்}}",
+ "assets_trashed_count": "குப்பைத்தொட்டியான {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} மற்ற {# சொத்துக்கள்}}",
+ "assets_were_part_of_album_count": "{எண்ணிக்கை, பன்மை, ஒரு {Asset was} மற்ற {Assets were}} ஏற்கனவே ஆல்பத்தின் ஒரு பகுதி",
+ "authorized_devices": "அங்கீகரிக்கப்பட்ட சாதனங்கள்",
+ "back": "பின்",
+ "back_close_deselect": "பின், மூடு அல்லது தேர்வுநீக்கம்",
+ "backward": "பின்னோக்கு",
+ "birthdate_saved": "பிறந்த தேதி வெற்றிகரமாக சேமிக்கப்பட்டது",
+ "birthdate_set_description": "ஒரு புகைப்படத்தின் போது இந்த நபரின் வயதைக் கணக்கிட பிறந்த தேதி பயன்படுத்தப்படுகிறது.",
+ "blurred_background": "மங்கலான பின்னணி",
+ "bugs_and_feature_requests": "பிழைகள் மற்றும் அம்ச கோரிக்கைகள்",
+ "build": "உருவாக்கு",
+ "build_image": "படத்தை உருவாக்குங்கள்",
+ "bulk_delete_duplicates_confirmation": "{எண்ணிக்கை, பன்மை, ஒன்று {# நகல் சொத்து} பிற {# நகல் சொத்துக்கள்}}}}}}}}} {{# நகல் சொத்து ஆகியவற்றை மொத்தமாக நீக்க விரும்புகிறீர்களா? இது ஒவ்வொரு குழுவின் மிகப்பெரிய சொத்தை வைத்திருக்கும் மற்றும் மற்ற அனைத்து நகல்களையும் நிரந்தரமாக நீக்குகிறது. இந்த செயலை நீங்கள் செயல்தவிர்க்க முடியாது!",
+ "bulk_keep_duplicates_confirmation": "நீங்கள் {எண்ணிக்கை, பன்மை, ஒன்று {# நகல் சொத்து} பிற {# நகல் சொத்துக்கள்} be வைக்க விரும்புகிறீர்களா? இது எதையும் நீக்காமல் அனைத்து நகல் குழுக்களையும் தீர்க்கும்.",
+ "bulk_trash_duplicates_confirmation": "நீங்கள் மொத்தமாக குப்பை {எண்ணிக்கை, பன்மை, ஒன்று {# நகல் சொத்து} பிற {# நகல் சொத்துக்கள்}}}} செய்ய விரும்புகிறீர்களா? இது ஒவ்வொரு குழுவின் மிகப்பெரிய சொத்தை வைத்திருக்கும் மற்றும் மற்ற அனைத்து நகல்களையும் குப்பைத் தொட்டியாக இருக்கும்.",
+ "buy": "இம்மியை வாங்கவும்",
+ "camera": "கேமரா",
+ "camera_brand": "கேமரா சூட்டுக்குறி",
+ "camera_model": "கேமரா மாதிரி",
+ "cancel": "ரத்துசெய்",
+ "cancel_search": "தேடலை ரத்துசெய்",
+ "cannot_merge_people": "மக்களை ஒன்றிணைக்க முடியாது",
+ "cannot_undo_this_action": "இந்த செயலை நீங்கள் செயல்தவிர்க்க முடியாது!",
+ "cannot_update_the_description": "விளக்கத்தை புதுப்பிக்க முடியாது",
+ "change_date": "தேதியை மாற்றவும்",
+ "change_expiration_time": "காலாவதி நேரத்தை மாற்றவும்",
+ "change_location": "இருப்பிடத்தை மாற்றவும்",
+ "change_name": "பெயரை மாற்றவும்",
+ "change_name_successfully": "பெயரை வெற்றிகரமாக மாற்றவும்",
+ "change_password": "கடவுச்சொல்லை மாற்றவும்",
+ "change_password_description": "நீங்கள் கணினியில் கையொப்பமிடுவது இதுவே முதல் முறை அல்லது உங்கள் கடவுச்சொல்லை மாற்றுவதற்கான கோரிக்கை செய்யப்பட்டுள்ளது. கீழே புதிய கடவுச்சொல்லை உள்ளிடவும்.",
+ "change_your_password": "உங்கள் கடவுச்சொல்லை மாற்றவும்",
+ "changed_visibility_successfully": "தெரிவுநிலை வெற்றிகரமாக மாற்றப்பட்டது",
+ "check_all": "அனைத்தையும் சரிபார்க்கவும்",
+ "check_logs": "பதிவுகளை சரிபார்க்கவும்",
+ "choose_matching_people_to_merge": "ஒன்றிணைக்க பொருந்தக்கூடிய நபர்களைத் தேர்வுசெய்க",
+ "city": "நகரம்",
+ "clear": "தெளிவான",
+ "clear_all": "அனைத்தையும் அழிக்கவும்",
+ "clear_all_recent_searches": "அண்மைக் கால அனைத்து தேடல்களையும் அழிக்கவும்",
+ "clear_message": "தெளிவான செய்தி",
+ "clear_value": "தெளிவான மதிப்பு",
+ "clockwise": "Locklowsy",
+ "close": "மூடு",
+ "collapse": "சரிவு",
+ "collapse_all": "அனைத்தையும் சரக்கு",
+ "color": "நிறம்",
+ "color_theme": "வண்ண கருப்பொருள்",
+ "comment_deleted": "கருத்து நீக்கப்பட்டது",
+ "comment_options": "கருத்து விருப்பங்கள்",
+ "comments_and_likes": "கருத்துகள் மற்றும் விருப்பங்கள்",
+ "comments_are_disabled": "கருத்துகள் முடக்கப்பட்டுள்ளன",
+ "confirm": "உறுதிப்படுத்தவும்",
+ "confirm_admin_password": "நிர்வாகி கடவுச்சொல்லை உறுதிப்படுத்தவும்",
+ "confirm_delete_shared_link": "இந்த பகிரப்பட்ட இணைப்பை நீக்க விரும்புகிறீர்களா?",
+ "confirm_keep_this_delete_others": "இந்த சொத்தைத் தவிர அடுக்கில் உள்ள மற்ற அனைத்து சொத்துகளும் நீக்கப்படும். நீங்கள் தொடர விரும்புகிறீர்களா?",
+ "confirm_password": "கடவுச்சொல்லை உறுதிப்படுத்தவும்",
+ "contain": "கட்டுப்படுத்தவும்",
+ "context": "சூழல்",
+ "continue": "தொடரவும்",
+ "copied_image_to_clipboard": "இடைநிலைப்பலகைக்கு படத்தை நகலெடுத்தது.",
+ "copied_to_clipboard": "இடைநிலைப்பலகைக்கு நகலெடுக்கப்பட்டது!",
+ "copy_error": "நகல் பிழை",
+ "copy_file_path": "கோப்பு பாதையை நகலெடுக்கவும்",
+ "copy_image": "படத்தை நகலெடுக்கவும்",
+ "copy_link": "இணைப்பை நகலெடுக்கவும்",
+ "copy_link_to_clipboard": "இடைநிலைப்பலகைக்கு இணைப்பை நகலெடுக்கவும்",
+ "copy_password": "கடவுச்சொல்லை நகலெடுக்கவும்",
+ "copy_to_clipboard": "இடைநிலைப்பலகைக்கு நகலெடுக்கவும்",
+ "country": "நாடு",
+ "cover": "கவர்",
+ "covers": "மறையம்",
+ "create": "உருவாக்கு",
+ "create_album": "ஆல்பத்தை உருவாக்கவும்",
+ "create_library": "நூலகத்தை உருவாக்கவும்",
+ "create_link": "இணைப்பை உருவாக்கவும்",
+ "create_link_to_share": "பகிர்வுக்கு இணைப்பை உருவாக்கவும்",
+ "create_link_to_share_description": "இணைப்பு உள்ள எவரும் தேர்ந்தெடுக்கப்பட்ட புகைப்படங்களைக் காணட்டும்)",
+ "create_new_person": "புதிய நபரை உருவாக்கவும்",
+ "create_new_person_hint": "தேர்ந்தெடுக்கப்பட்ட சொத்துக்களை புதிய நபருக்கு ஒதுக்கவும்",
+ "create_new_user": "புதிய பயனரை உருவாக்கவும்",
+ "create_tag": "குறிச்சொல்லை உருவாக்கவும்",
+ "create_tag_description": "புதிய குறிச்சொல்லை உருவாக்கவும். உள்ளமைக்கப்பட்ட குறிச்சொற்களுக்கு, முன்னோக்கி ச்லாச்கள் உட்பட குறிச்சொல்லின் முழு பாதையையும் உள்ளிடவும்.",
+ "create_user": "பயனரை உருவாக்கு",
+ "created": "உருவாக்கப்பட்டது",
+ "current_device": "தற்போதைய சாதனம்",
+ "custom_locale": "தனிப்பயன் இடம்",
+ "custom_locale_description": "மொழி மற்றும் பிராந்தியத்தின் அடிப்படையில் வடிவமைப்பு தேதிகள் மற்றும் எண்கள்",
+ "dark": "இருண்ட",
+ "date_after": "தேதி",
+ "date_and_time": "தேதி மற்றும் நேரம்",
+ "date_before": "முன் தேதி",
+ "date_of_birth_saved": "பிறந்த தேதி வெற்றிகரமாக சேமிக்கப்பட்டது",
+ "date_range": "தேதி வரம்பு",
+ "day": "நாள்",
+ "deduplicate_all": "அனைத்தையும் கழித்தல்",
+ "default_locale": "இயல்புநிலை இடம்",
+ "default_locale_description": "உங்கள் உலாவி இருப்பிடத்தின் அடிப்படையில் வடிவமைப்பு தேதிகள் மற்றும் எண்கள்",
+ "delete": "நீக்கு",
+ "delete_album": "ஆல்பத்தை நீக்கு",
+ "delete_api_key_prompt": "இந்த பநிஇ விசையை நீக்க விரும்புகிறீர்களா?",
+ "delete_duplicates_confirmation": "இந்த நகல்களை நிரந்தரமாக நீக்க விரும்புகிறீர்களா?",
+ "delete_key": "விசையை நீக்கு",
+ "delete_library": "நூலகத்தை நீக்கு",
+ "delete_link": "இணைப்பை நீக்கு",
+ "delete_others": "மற்றவர்களை நீக்கு",
+ "delete_shared_link": "பகிரப்பட்ட இணைப்பை நீக்கு",
+ "delete_tag": "குறிச்சொல்லை நீக்கு",
+ "delete_tag_confirmation_prompt": "{tagName} குறிச்சொல்லை நீக்க விரும்புகிறீர்களா?",
+ "delete_user": "பயனரை நீக்கு",
+ "deleted_shared_link": "பகிரப்பட்ட இணைப்பை நீக்கியது",
+ "deletes_missing_assets": "வட்டில் இருந்து காணாமல் போன சொத்துக்களை நீக்குகிறது",
+ "description": "விவரம்",
+ "details": "விவரங்கள்",
+ "direction": "திசை",
+ "disabled": "முடக்கப்பட்டது",
+ "disallow_edits": "திருத்தங்களை அனுமதிக்கவும்",
+ "discord": "முரண்பாடு",
+ "discover": "கண்டுபிடி",
+ "dismiss_all_errors": "அனைத்து பிழைகளையும் நிராகரிக்கவும்",
+ "dismiss_error": "பிழையை நிராகரிக்கவும்",
+ "display_options": "காட்சி விருப்பங்கள்",
+ "display_order": "காட்சி வரிசை",
+ "display_original_photos": "அசல் புகைப்படங்களைக் காண்பி",
+ "display_original_photos_setting_description": "அசல் சொத்து வலை-இணக்கமாக இருக்கும்போது சிறுபடங்களை விட ஒரு சொத்தைப் பார்க்கும்போது அசல் புகைப்படத்தைக் காண்பிக்க விரும்புகிறேன். இது மெதுவான புகைப்பட காட்சி வேகத்தை ஏற்படுத்தக்கூடும்.",
+ "do_not_show_again": "இந்த செய்தியை மீண்டும் காட்ட வேண்டாம்",
+ "documentation": "ஆவணப்படுத்துதல்",
+ "done": "முடிந்தது",
+ "download": "பதிவிறக்கம்",
+ "download_include_embedded_motion_videos": "உட்பொதிக்கப்பட்ட வீடியோக்கள்",
+ "download_include_embedded_motion_videos_description": "மோசன் புகைப்படங்களில் உட்பொதிக்கப்பட்ட வீடியோக்களை தனி கோப்பாக சேர்க்கவும்",
+ "download_settings": "பதிவிறக்கம்",
+ "download_settings_description": "சொத்து பதிவிறக்கம் தொடர்பான அமைப்புகளை நிர்வகிக்கவும்",
+ "downloading": "பதிவிறக்குகிறது",
+ "downloading_asset_filename": "சொத்து பதிவிறக்கம் {filename}",
+ "drop_files_to_upload": "பதிவேற்ற எங்கும் கோப்புகளை விடுங்கள்",
+ "duplicates": "நகல்கள்",
+ "duplicates_description": "ஒவ்வொரு குழுவையும் எந்த நகல்களிலும் குறிப்பிடுவதன் மூலம் தீர்க்கவும்",
+ "duration": "காலம்",
+ "edit": "தொகு",
+ "edit_album": "ஆல்பத்தைத் திருத்து",
+ "edit_avatar": "அவதாரத்தைத் திருத்து",
+ "edit_date": "தேதியைத் திருத்து",
+ "edit_date_and_time": "தேதி மற்றும் நேரத்தைத் திருத்தவும்",
+ "edit_exclusion_pattern": "விலக்கு முறையைத் திருத்தவும்",
+ "edit_faces": "முகங்களைத் திருத்தவும்",
+ "edit_import_path": "இறக்குமதி பாதையைத் திருத்து",
+ "edit_import_paths": "இறக்குமதி பாதைகளைத் திருத்தவும்",
+ "edit_key": "திறனைத் திருத்து",
+ "edit_link": "இணைப்பைத் திருத்து",
+ "edit_location": "இருப்பிடத்தைத் திருத்தவும்",
+ "edit_name": "பெயரைத் திருத்து",
+ "edit_people": "மக்களைத் திருத்தவும்",
+ "edit_tag": "குறிச்சொல்லைத் திருத்து",
+ "edit_title": "தலைப்பைத் திருத்து",
+ "edit_user": "பயனரைத் திருத்து",
+ "edited": "திருத்தப்பட்டது",
+ "editor": "திருத்தி",
+ "editor_close_without_save_prompt": "மாற்றங்கள் சேமிக்கப்படாது",
+ "editor_close_without_save_title": "மூடு ஆசிரியர்?",
+ "editor_crop_tool_h2_aspect_ratios": "அம்ச விகிதங்கள்",
+ "editor_crop_tool_h2_rotation": "சுழற்சி",
+ "email": "மின்னஞ்சல்",
+ "empty_trash": "வெற்று குப்பை",
+ "empty_trash_confirmation": "நீங்கள் குப்பைகளை வெறுமை செய்ய விரும்புகிறீர்களா? இது குப்பையில் உள்ள அனைத்து சொத்துக்களையும் நிரந்தரமாக இம்மிச்சிலிருந்து அகற்றும்.\n இந்த செயலை நீங்கள் செயல்தவிர்க்க முடியாது!",
+ "enable": "இயக்கு",
+ "enabled": "இயக்கப்பட்டது",
+ "end_date": "இறுதி தேதி",
+ "error": "பிழை",
+ "error_loading_image": "படத்தை ஏற்றுவதில் பிழை",
+ "error_title": "பிழை - ஏதோ தவறு நடந்தது",
"errors": {
- "exclusion_pattern_already_exists": "",
- "import_path_already_exists": "",
- "paths_validation_failed": "",
- "quota_higher_than_disk_size": "",
- "repair_unable_to_check_items": "",
- "unable_to_add_album_users": "",
- "unable_to_add_comment": "",
- "unable_to_add_exclusion_pattern": "",
- "unable_to_add_import_path": "",
- "unable_to_add_partners": "",
- "unable_to_change_album_user_role": "",
- "unable_to_change_date": "",
- "unable_to_change_location": "",
- "unable_to_change_password": "",
- "unable_to_copy_to_clipboard": "",
- "unable_to_create_api_key": "",
- "unable_to_create_library": "",
- "unable_to_create_user": "",
- "unable_to_delete_album": "",
- "unable_to_delete_asset": "",
- "unable_to_delete_exclusion_pattern": "",
- "unable_to_delete_import_path": "",
- "unable_to_delete_shared_link": "",
- "unable_to_delete_user": "",
- "unable_to_edit_exclusion_pattern": "",
- "unable_to_edit_import_path": "",
- "unable_to_empty_trash": "",
- "unable_to_enter_fullscreen": "",
- "unable_to_exit_fullscreen": "",
- "unable_to_hide_person": "",
- "unable_to_link_oauth_account": "",
- "unable_to_load_album": "",
- "unable_to_load_asset_activity": "",
- "unable_to_load_items": "",
- "unable_to_load_liked_status": "",
- "unable_to_play_video": "",
- "unable_to_refresh_user": "",
- "unable_to_remove_album_users": "",
- "unable_to_remove_api_key": "",
- "unable_to_remove_deleted_assets": "",
- "unable_to_remove_library": "",
- "unable_to_remove_partner": "",
- "unable_to_remove_reaction": "",
- "unable_to_repair_items": "",
- "unable_to_reset_password": "",
- "unable_to_resolve_duplicate": "",
- "unable_to_restore_assets": "",
- "unable_to_restore_trash": "",
- "unable_to_restore_user": "",
- "unable_to_save_album": "",
- "unable_to_save_api_key": "",
- "unable_to_save_name": "",
- "unable_to_save_profile": "",
- "unable_to_save_settings": "",
- "unable_to_scan_libraries": "",
- "unable_to_scan_library": "",
- "unable_to_set_profile_picture": "",
- "unable_to_submit_job": "",
- "unable_to_trash_asset": "",
- "unable_to_unlink_account": "",
- "unable_to_update_library": "",
- "unable_to_update_location": "",
- "unable_to_update_settings": "",
- "unable_to_update_timeline_display_status": "",
- "unable_to_update_user": ""
+ "cannot_navigate_next_asset": "அடுத்த சொத்துக்கு செல்ல முடியாது",
+ "cannot_navigate_previous_asset": "முந்தைய சொத்துக்கு செல்ல முடியாது",
+ "cant_apply_changes": "மாற்றங்களைப் பயன்படுத்த முடியாது",
+ "cant_change_activity": "{செயல்படுத்த முடியாது, தேர்ந்தெடுக்கவும், உண்மை {disable} பிற {enable}} செயல்பாடு",
+ "cant_change_asset_favorite": "சொத்துக்கு பிடித்ததை மாற்ற முடியாது",
+ "cant_change_metadata_assets_count": "{எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} பிற {# சொத்துக்கள்}} இன் மெட்டாடேட்டாவை மாற்ற முடியாது",
+ "cant_get_faces": "முகங்களைப் பெற முடியாது",
+ "cant_get_number_of_comments": "கருத்துகளின் எண்ணிக்கையைப் பெற முடியாது",
+ "cant_search_people": "மக்களைத் தேட முடியாது",
+ "cant_search_places": "இடங்களைத் தேட முடியாது",
+ "cleared_jobs": "இதற்கான அழிக்கப்பட்ட வேலைகள்: {job}",
+ "error_adding_assets_to_album": "ஆல்பத்தில் சொத்துக்களைச் சேர்ப்பதில் பிழை",
+ "error_adding_users_to_album": "ஆல்பத்தில் பயனர்களைச் சேர்ப்பதில் பிழை",
+ "error_deleting_shared_user": "பகிரப்பட்ட பயனரை நீக்குவதில் பிழை",
+ "error_downloading": "பதிவிறக்குவதில் பிழை {filename}",
+ "error_hiding_buy_button": "பிழை மறைப்பது வாங்க பொத்தானை",
+ "error_removing_assets_from_album": "ஆல்பத்திலிருந்து சொத்துக்களை அகற்றுவதில் பிழை, மேலும் விவரங்களுக்கு கன்சோலை சரிபார்க்கவும்",
+ "error_selecting_all_assets": "அனைத்து சொத்துக்களையும் தேர்ந்தெடுப்பதில் பிழை",
+ "exclusion_pattern_already_exists": "இந்த விலக்கு முறை ஏற்கனவே உள்ளது.",
+ "failed_job_command": "கட்டளை {கட்டளை the வேலைக்கு தோல்வியுற்றது: {command}",
+ "failed_to_create_album": "ஆல்பத்தை உருவாக்கத் தவறிவிட்டது",
+ "failed_to_create_shared_link": "பகிரப்பட்ட இணைப்பை உருவாக்கத் தவறிவிட்டது",
+ "failed_to_edit_shared_link": "பகிரப்பட்ட இணைப்பைத் திருத்தத் தவறிவிட்டது",
+ "failed_to_get_people": "மக்களைப் பெறுவதில் தோல்வி",
+ "failed_to_keep_this_delete_others": "இந்த சொத்தை வைத்து மற்ற சொத்துக்களை நீக்குவதில் தோல்வி",
+ "failed_to_load_asset": "சொத்தை ஏற்றுவதில் தோல்வி",
+ "failed_to_load_assets": "சொத்துக்களை ஏற்றுவதில் தோல்வி",
+ "failed_to_load_people": "மக்களை ஏற்றுவதில் தோல்வி",
+ "failed_to_remove_product_key": "தயாரிப்பு விசையை அகற்றுவதில் தோல்வி",
+ "failed_to_stack_assets": "சொத்துக்களை அடுக்கி வைப்பதில் தோல்வி",
+ "failed_to_unstack_assets": "அன்-ச்டாக் சொத்துக்களில் தோல்வியுற்றது",
+ "import_path_already_exists": "இந்த இறக்குமதி பாதை ஏற்கனவே உள்ளது.",
+ "incorrect_email_or_password": "தவறான மின்னஞ்சல் அல்லது கடவுச்சொல்",
+ "paths_validation_failed": "{பாதைகள், பன்மை, ஒன்று {# பாதை} மற்ற {# பாதைகள்}} தோல்வியுற்ற சரிபார்ப்பு",
+ "profile_picture_transparent_pixels": "சுயவிவரப் படங்களுக்கு வெளிப்படையான படப்புள்ளிகள் இருக்க முடியாது. தயவுசெய்து பெரிதாக்கவும்/அல்லது படத்தை நகர்த்தவும்.",
+ "quota_higher_than_disk_size": "வட்டு அளவை விட அதிகமாக ஒதுக்கீட்டை அமைத்துள்ளீர்கள்",
+ "repair_unable_to_check_items": "சரிபார்க்க முடியவில்லை {எண்ணிக்கை, தேர்ந்தெடுக்கவும், ஒன்று {item} மற்ற {items}}",
+ "unable_to_add_album_users": "ஆல்பத்தில் பயனர்களைச் சேர்க்க முடியவில்லை",
+ "unable_to_add_assets_to_shared_link": "பகிரப்பட்ட இணைப்புக்கு சொத்துக்களைச் சேர்க்க முடியவில்லை",
+ "unable_to_add_comment": "கருத்து சேர்க்க முடியவில்லை",
+ "unable_to_add_exclusion_pattern": "விலக்கு முறையைச் சேர்க்க முடியவில்லை",
+ "unable_to_add_import_path": "இறக்குமதி பாதையைச் சேர்க்க முடியவில்லை",
+ "unable_to_add_partners": "கூட்டாளர்களைச் சேர்க்க முடியவில்லை",
+ "unable_to_add_remove_archive": "{காப்பகப்படுத்த முடியவில்லை, தேர்ந்தெடுக்கவும், உண்மையாகவும்} பிற {remove asset from}}} காப்பகத்திற்குச் சேர்க்கவும்",
+ "unable_to_add_remove_favorites": "{பிடித்த, தேர்ந்தெடுக்கவும், உண்மையாகவும்}}} பிடித்தவைகளிலிருந்து சொத்தை அகற்று",
+ "unable_to_archive_unarchive": "{காப்பகப்படுத்த முடியவில்லை, தேர்ந்தெடுக்க முடியவில்லை, உண்மை {archive} பிற {unarchive}}",
+ "unable_to_change_album_user_role": "ஆல்பத்தின் பயனரின் பாத்திரத்தை மாற்ற முடியவில்லை",
+ "unable_to_change_date": "தேதியை மாற்ற முடியவில்லை",
+ "unable_to_change_favorite": "சொத்துக்கு பிடித்ததை மாற்ற முடியவில்லை",
+ "unable_to_change_location": "இருப்பிடத்தை மாற்ற முடியவில்லை",
+ "unable_to_change_password": "கடவுச்சொல்லை மாற்ற முடியவில்லை",
+ "unable_to_change_visibility": "{எண்ணிக்கை, பன்மை, ஒன்று {# நபர்} பிற {# மக்கள்}} க்கான தெரிவுநிலையை மாற்ற முடியவில்லை",
+ "unable_to_complete_oauth_login": "OAuth உள்நுழைவை முடிக்க முடியவில்லை",
+ "unable_to_connect": "இணைக்க முடியவில்லை",
+ "unable_to_connect_to_server": "சேவையகத்துடன் இணைக்க முடியவில்லை",
+ "unable_to_copy_to_clipboard": "இடைநிலைப்பலகைக்கு நகலெடுக்க முடியாது, நீங்கள் HTTPS மூலம் பக்கத்தை அணுகுகிறீர்கள் என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள்",
+ "unable_to_create_admin_account": "நிர்வாக கணக்கை உருவாக்க முடியவில்லை",
+ "unable_to_create_api_key": "புதிய பநிஇ விசையை உருவாக்க முடியவில்லை",
+ "unable_to_create_library": "நூலகத்தை உருவாக்க முடியவில்லை",
+ "unable_to_create_user": "பயனரை உருவாக்க முடியவில்லை",
+ "unable_to_delete_album": "ஆல்பத்தை நீக்க முடியவில்லை",
+ "unable_to_delete_asset": "சொத்தை நீக்க முடியவில்லை",
+ "unable_to_delete_assets": "சொத்துக்களை நீக்குவதில் பிழை",
+ "unable_to_delete_exclusion_pattern": "விலக்கு முறையை நீக்க முடியவில்லை",
+ "unable_to_delete_import_path": "இறக்குமதி பாதையை நீக்க முடியவில்லை",
+ "unable_to_delete_shared_link": "பகிரப்பட்ட இணைப்பை நீக்க முடியவில்லை",
+ "unable_to_delete_user": "பயனரை நீக்க முடியவில்லை",
+ "unable_to_download_files": "கோப்புகளைப் பதிவிறக்க முடியவில்லை",
+ "unable_to_edit_exclusion_pattern": "விலக்கு முறையைத் திருத்த முடியவில்லை",
+ "unable_to_edit_import_path": "இறக்குமதி பாதையைத் திருத்த முடியவில்லை",
+ "unable_to_empty_trash": "குப்பைகளை வெற்று செய்ய முடியவில்லை",
+ "unable_to_enter_fullscreen": "முழுத் திரையில் நுழைய முடியவில்லை",
+ "unable_to_exit_fullscreen": "முழுத்திரை வெளியேற முடியவில்லை",
+ "unable_to_get_comments_number": "கருத்துகளின் எண்ணிக்கையைப் பெற முடியவில்லை",
+ "unable_to_get_shared_link": "பகிரப்பட்ட இணைப்பைப் பெறுவதில் தோல்வி",
+ "unable_to_hide_person": "நபரை மறைக்க முடியவில்லை",
+ "unable_to_link_motion_video": "இயக்க வீடியோவை இணைக்க முடியவில்லை",
+ "unable_to_link_oauth_account": "OAuth கணக்கை இணைக்க முடியவில்லை",
+ "unable_to_load_album": "ஆல்பத்தை ஏற்ற முடியவில்லை",
+ "unable_to_load_asset_activity": "சொத்து செயல்பாட்டை ஏற்ற முடியவில்லை",
+ "unable_to_load_items": "உருப்படிகளை ஏற்ற முடியவில்லை",
+ "unable_to_load_liked_status": "விரும்பிய நிலையை ஏற்ற முடியவில்லை",
+ "unable_to_log_out_all_devices": "எல்லா சாதனங்களையும் வெளியேற்ற முடியவில்லை",
+ "unable_to_log_out_device": "சாதனத்தை விட்டு வெளியேற முடியவில்லை",
+ "unable_to_login_with_oauth": "OAUTH உடன் உள்நுழைய முடியவில்லை",
+ "unable_to_play_video": "வீடியோவை இயக்க முடியவில்லை",
+ "unable_to_reassign_assets_existing_person": "சொத்துக்களை {பெயருக்கு மறுசீரமைக்க முடியவில்லை, தேர்ந்தெடுக்கவும், சுழிய {an existing person} பிற {{name}}}",
+ "unable_to_reassign_assets_new_person": "ஒரு புதிய நபருக்கு சொத்துக்களை மறுசீரமைக்க முடியவில்லை",
+ "unable_to_refresh_user": "பயனரைப் புதுப்பிக்க முடியவில்லை",
+ "unable_to_remove_album_users": "ஆல்பத்திலிருந்து பயனர்களை அகற்ற முடியவில்லை",
+ "unable_to_remove_api_key": "பநிஇ விசையை அகற்ற முடியவில்லை",
+ "unable_to_remove_assets_from_shared_link": "பகிரப்பட்ட இணைப்பிலிருந்து சொத்துக்களை அகற்ற முடியவில்லை",
+ "unable_to_remove_deleted_assets": "இணைப்பில்லாத கோப்புகளை அகற்ற முடியவில்லை",
+ "unable_to_remove_library": "நூலகத்தை அகற்ற முடியவில்லை",
+ "unable_to_remove_partner": "கூட்டாளரை அகற்ற முடியவில்லை",
+ "unable_to_remove_reaction": "எதிர்வினையை அகற்ற முடியவில்லை",
+ "unable_to_repair_items": "உருப்படிகளை சரிசெய்ய முடியவில்லை",
+ "unable_to_reset_password": "கடவுச்சொல்லை மீட்டமைக்க முடியவில்லை",
+ "unable_to_resolve_duplicate": "நகல் தீர்க்க முடியவில்லை",
+ "unable_to_restore_assets": "சொத்துக்களை மீட்டெடுக்க முடியவில்லை",
+ "unable_to_restore_trash": "குப்பைகளை மீட்டெடுக்க முடியவில்லை",
+ "unable_to_restore_user": "பயனரை மீட்டெடுக்க முடியவில்லை",
+ "unable_to_save_album": "ஆல்பத்தை சேமிக்க முடியவில்லை",
+ "unable_to_save_api_key": "பநிஇ விசையை சேமிக்க முடியவில்லை",
+ "unable_to_save_date_of_birth": "பிறந்த தேதியை சேமிக்க முடியவில்லை",
+ "unable_to_save_name": "பெயரை சேமிக்க முடியவில்லை",
+ "unable_to_save_profile": "சுயவிவரத்தை சேமிக்க முடியவில்லை",
+ "unable_to_save_settings": "அமைப்புகளைச் சேமிக்க முடியவில்லை",
+ "unable_to_scan_libraries": "நூலகங்களை ச்கேன் செய்ய முடியவில்லை",
+ "unable_to_scan_library": "நூலகத்தை ச்கேன் செய்ய முடியவில்லை",
+ "unable_to_set_feature_photo": "அம்ச புகைப்படத்தை அமைக்க முடியவில்லை",
+ "unable_to_set_profile_picture": "சுயவிவரப் படத்தை அமைக்க முடியவில்லை",
+ "unable_to_submit_job": "வேலையைச் சமர்ப்பிக்க முடியவில்லை",
+ "unable_to_trash_asset": "சொத்தை குப்பை செய்ய முடியவில்லை",
+ "unable_to_unlink_account": "கணக்கை இணைக்க முடியவில்லை",
+ "unable_to_unlink_motion_video": "மோசன் வீடியோவை இணைக்க முடியவில்லை",
+ "unable_to_update_album_cover": "ஆல்பம் அட்டையை புதுப்பிக்க முடியவில்லை",
+ "unable_to_update_album_info": "ஆல்பம் தகவலைப் புதுப்பிக்க முடியவில்லை",
+ "unable_to_update_library": "நூலகத்தைப் புதுப்பிக்க முடியவில்லை",
+ "unable_to_update_location": "இருப்பிடத்தைப் புதுப்பிக்க முடியவில்லை",
+ "unable_to_update_settings": "அமைப்புகளை புதுப்பிக்க முடியவில்லை",
+ "unable_to_update_timeline_display_status": "காலவரிசை காட்சி நிலையை புதுப்பிக்க முடியவில்லை",
+ "unable_to_update_user": "பயனரைப் புதுப்பிக்க முடியவில்லை",
+ "unable_to_upload_file": "கோப்பைப் பதிவேற்ற முடியவில்லை"
},
- "exit_slideshow": "",
- "expand_all": "",
- "expire_after": "",
- "expired": "",
- "explore": "",
- "export": "",
- "export_as_json": "",
- "extension": "",
- "external": "",
- "external_libraries": "",
- "favorite": "",
- "favorite_or_unfavorite_photo": "",
- "favorites": "",
- "feature_photo_updated": "",
- "file_name": "",
- "file_name_or_extension": "",
- "filename": "",
- "filetype": "",
- "filter_people": "",
- "find_them_fast": "",
- "fix_incorrect_match": "",
- "forward": "",
- "general": "",
- "get_help": "",
- "getting_started": "",
- "go_back": "",
- "go_to_search": "",
- "group_albums_by": "",
- "has_quota": "",
- "hide_gallery": "",
- "hide_password": "",
- "hide_person": "",
- "host": "",
- "hour": "",
- "image": "",
- "immich_logo": "",
- "immich_web_interface": "",
- "import_from_json": "",
- "import_path": "",
- "in_albums": "",
- "in_archive": "",
- "include_archived": "",
- "include_shared_albums": "",
- "include_shared_partner_assets": "",
- "individual_share": "",
- "info": "",
+ "exif": "Exif",
+ "exit_slideshow": "ச்லைடுசோவிலிருந்து வெளியேறவும்",
+ "expand_all": "அனைத்தையும் விரிவாக்குங்கள்",
+ "expire_after": "பின்னர் காலாவதியாகுங்கள்",
+ "expired": "காலாவதியான",
+ "expires_date": "{date} காலாவதியாகிறது",
+ "explore": "ஆராயுங்கள்",
+ "explorer": "எக்ச்ப்ளோரர்",
+ "export": "ஏற்றுமதி",
+ "export_as_json": "சாதொபொகு ஆக ஏற்றுமதி",
+ "extension": "நீட்டிப்பு",
+ "external": "வெளிப்புறம்",
+ "external_libraries": "வெளிப்புற நூலகங்கள்",
+ "face_unassigned": "ஒதுக்கப்படாதது",
+ "failed_to_load_assets": "சொத்துக்களை ஏற்றுவதில் தோல்வி",
+ "favorite": "பிடித்த",
+ "favorite_or_unfavorite_photo": "பிடித்த அல்லது சாதகமற்ற புகைப்படம்",
+ "favorites": "பிடித்தவை",
+ "feature_photo_updated": "அம்ச புகைப்படம் புதுப்பிக்கப்பட்டது",
+ "features": "நற்பொருத்தங்கள்",
+ "features_setting_description": "பயன்பாட்டு அம்சங்களை நிர்வகிக்கவும்",
+ "file_name": "கோப்பு பெயர்",
+ "file_name_or_extension": "கோப்பு பெயர் அல்லது நீட்டிப்பு",
+ "filename": "கோப்புப்பெயர்",
+ "filetype": "பைல்டைப்",
+ "filter_people": "மக்களை வடிகட்டவும்",
+ "find_them_fast": "தேடலுடன் பெயரால் வேகமாக அவற்றைக் கண்டறியவும்",
+ "fix_incorrect_match": "தவறான போட்டியை சரிசெய்யவும்",
+ "folders": "கோப்புறைகள்",
+ "folders_feature_description": "கோப்பு முறைமையில் உள்ள புகைப்படங்கள் மற்றும் வீடியோக்களுக்கான கோப்புறை காட்சியை உலாவுதல்",
+ "forward": "முன்னோக்கி",
+ "general": "பொது",
+ "get_help": "உதவி பெறு",
+ "getting_started": "தொடங்குதல்",
+ "go_back": "திரும்பிச் செல்லுங்கள்",
+ "go_to_search": "தேடச் செல்லவும்",
+ "group_albums_by": "குழு ஆல்பங்கள் வழங்கியவர் ...",
+ "group_no": "குழு இல்லை",
+ "group_owner": "உரிமையாளரால் குழு",
+ "group_year": "ஆண்டுக்கு குழு",
+ "has_quota": "ஒதுக்கீடு உள்ளது",
+ "hi_user": "ஆய் {name} ({email})",
+ "hide_all_people": "எல்லா மக்களையும் மறைக்கவும்",
+ "hide_gallery": "கேலரியை மறைக்கவும்",
+ "hide_named_person": "நபரை மறைக்க {name}",
+ "hide_password": "கடவுச்சொல்லை மறைக்கவும்",
+ "hide_person": "நபரை மறைக்க",
+ "hide_unnamed_people": "பெயரிடப்படாதவர்களை மறைக்கவும்",
+ "host": "விருந்தோம்பி",
+ "hour": "மணி",
+ "image": "படம்",
+ "image_alt_text_date": "{isvideo, தேர்ந்தெடு, உண்மை {Video} பிற {Image}} {date} இல் எடுக்கப்பட்டது",
+ "image_alt_text_date_1_person": "{isvideo, தேர்ந்தெடு, உண்மை {Video} பிற {Image}} {{person1} இல் {date}",
+ "image_alt_text_date_2_people": "{isvideo, தேர்ந்தெடுக்கவும், உண்மை {Video} பிற {Image}} {{person1} மற்றும் {person2} {date} இல் எடுக்கப்பட்டது",
+ "image_alt_text_date_3_people": "{isvideo, தேர்ந்தெடு, உண்மை {Video} பிற {Image} the {person1}, {person2}, மற்றும் {person3} இல் எடுக்கப்பட்டது {date}",
+ "image_alt_text_date_4_or_more_people": "{isvideo, தேர்ந்தெடு, உண்மை {Video} பிற {Image} the {person1}, {person2}, மற்றும் {கூடுதல் COUNT, எண்} மற்றவர்கள் {date}",
+ "image_alt_text_date_place": "{isvideo, தேர்ந்தெடு, உண்மை {Video} பிற {Image}} {city}, {country} இல் எடுக்கப்பட்டது {date}",
+ "image_alt_text_date_place_1_person": "{isvideo, தேர்ந்தெடு, உண்மை {Video} பிற {Image}} {city}, {country} {person1} உடன் {date}",
+ "image_alt_text_date_place_2_people": "{isvideo, தேர்ந்தெடு, உண்மை {Video} பிற {Image}} {city}, {country} உடன் {person1} மற்றும் {person2} {date}",
+ "image_alt_text_date_place_3_people": "{isvideo, தேர்ந்தெடு, உண்மை {Video} பிற {Image}} {city}, {country} {person1}, {person2}, மற்றும் {person3} இல் எடுக்கப்பட்டது {date}",
+ "image_alt_text_date_place_4_or_more_people": "{isvideo, தேர்ந்தெடு, உண்மை {Video} பிற {Image}} {city}, {country} {person1}, {person2}, மற்றும் {கூடுதல் கவுன்ட், எண்} மற்றவர்கள் {date}",
+ "immich_logo": "இம்மிச் லோகோ",
+ "immich_web_interface": "இம்ரிச் வலை இடைமுகம்",
+ "import_from_json": "சாதொபொகு இலிருந்து இறக்குமதி",
+ "import_path": "இறக்குமதி பாதை",
+ "in_albums": "{எண்ணிக்கையில், பன்மை, ஒன்று {# ஆல்பம்} மற்ற {# ஆல்பங்கள்}}",
+ "in_archive": "காப்பகத்தில்",
+ "include_archived": "காப்பகப்படுத்தப்பட்டவர்",
+ "include_shared_albums": "பகிரப்பட்ட ஆல்பங்களைச் சேர்க்கவும்",
+ "include_shared_partner_assets": "பகிரப்பட்ட கூட்டாளர் சொத்துக்களைச் சேர்க்கவும்",
+ "individual_share": "தனிப்பட்ட பங்கு",
+ "info": "தகவல்",
"interval": {
- "day_at_onepm": "",
- "hours": "",
- "night_at_midnight": "",
- "night_at_twoam": ""
+ "day_at_onepm": "ஒவ்வொரு நாளும் மதியம் 1 மணிக்கு",
+ "hours": "ஒவ்வொரு {மணிநேரம், பன்மை, ஒரு {hour} மற்ற {{மணிநேரம், எண்} மணிநேரம்}}",
+ "night_at_midnight": "ஒவ்வொரு இரவும் நள்ளிரவில்",
+ "night_at_twoam": "ஒவ்வொரு இரவும் அதிகாலை 2 மணிக்கு"
},
- "invite_people": "",
- "invite_to_album": "",
- "jobs": "",
- "keep": "",
- "keep_all": "",
- "keyboard_shortcuts": "",
- "language": "",
- "language_setting_description": "",
- "last_seen": "",
- "leave": "",
- "let_others_respond": "",
- "level": "",
- "library": "",
- "library_options": "",
- "light": "",
- "link_options": "",
- "link_to_oauth": "",
- "linked_oauth_account": "",
- "list": "",
- "loading": "",
- "loading_search_results_failed": "",
- "log_out": "",
- "log_out_all_devices": "",
- "login_has_been_disabled": "",
- "look": "",
- "loop_videos": "",
- "loop_videos_description": "",
- "make": "",
- "manage_shared_links": "",
- "manage_sharing_with_partners": "",
- "manage_the_app_settings": "",
- "manage_your_account": "",
- "manage_your_api_keys": "",
- "manage_your_devices": "",
- "manage_your_oauth_connection": "",
- "map": "",
- "map_marker_with_image": "",
- "map_settings": "",
- "matches": "",
- "media_type": "",
- "memories": "",
- "memories_setting_description": "",
- "memory": "",
- "menu": "",
- "merge": "",
- "merge_people": "",
- "merge_people_limit": "",
- "merge_people_prompt": "",
- "merge_people_successfully": "",
- "minimize": "",
- "minute": "",
- "missing": "",
- "model": "",
- "month": "",
- "more": "",
- "moved_to_trash": "",
- "my_albums": "",
- "name": "",
- "name_or_nickname": "",
- "never": "",
- "new_api_key": "",
- "new_password": "",
- "new_person": "",
- "new_user_created": "",
- "newest_first": "",
- "next": "",
- "next_memory": "",
- "no": "",
- "no_albums_message": "",
- "no_archived_assets_message": "",
- "no_assets_message": "",
- "no_duplicates_found": "",
- "no_exif_info_available": "",
- "no_explore_results_message": "",
- "no_favorites_message": "",
- "no_libraries_message": "",
- "no_name": "",
- "no_places": "",
- "no_results": "",
- "no_shared_albums_message": "",
- "not_in_any_album": "",
- "note_apply_storage_label_to_previously_uploaded assets": "",
- "note_unlimited_quota": "",
- "notes": "",
- "notification_toggle_setting_description": "",
- "notifications": "",
- "notifications_setting_description": "",
- "oauth": "",
- "offline": "",
- "offline_paths": "",
- "offline_paths_description": "",
- "ok": "",
- "oldest_first": "",
- "online": "",
- "only_favorites": "",
- "open_the_search_filters": "",
- "options": "",
- "organize_your_library": "",
- "other": "",
- "other_devices": "",
- "other_variables": "",
- "owned": "",
- "owner": "",
- "partner": "",
- "partner_can_access": "",
- "partner_can_access_assets": "",
- "partner_can_access_location": "",
- "partner_sharing": "",
- "partners": "",
- "password": "",
- "password_does_not_match": "",
- "password_required": "",
- "password_reset_success": "",
+ "invite_people": "மக்களை அழைக்கவும்",
+ "invite_to_album": "ஆல்பத்திற்கு அழைக்கவும்",
+ "items_count": "{எண்ணிக்கை, பன்மை, ஒன்று {# உருப்படி} பிற {# உருப்படிகள்}}",
+ "jobs": "வேலைகள்",
+ "keep": "வைத்திருங்கள்",
+ "keep_all": "அனைத்தையும் வைத்திருங்கள்",
+ "keep_this_delete_others": "இதை வைத்திருங்கள், மற்றவர்களை நீக்கு",
+ "kept_this_deleted_others": "இந்த சொத்தை வைத்து நீக்கப்பட்டது {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} பிற {# சொத்துக்கள்}}",
+ "keyboard_shortcuts": "விசைப்பலகை குறுக்குவழிகள்",
+ "language": "மொழி",
+ "language_setting_description": "உங்களுக்கு விருப்பமான மொழியைத் தேர்ந்தெடுக்கவும்",
+ "last_seen": "கடைசியாக பார்த்தேன்",
+ "latest_version": "அண்மைக் கால பதிப்பு",
+ "latitude": "அகலாங்கு",
+ "leave": "விடுப்பு",
+ "let_others_respond": "மற்றவர்கள் பதிலளிக்கட்டும்",
+ "level": "நிலை",
+ "library": "நூலகம்",
+ "library_options": "நூலக விருப்பங்கள்",
+ "light": "ஒளி",
+ "like_deleted": "நீக்கப்பட்டதைப் போல",
+ "link_motion_video": "இணைப்பு இயக்க வீடியோ",
+ "link_options": "இணைப்பு விருப்பங்கள்",
+ "link_to_oauth": "OAUTH உடன் இணைப்பு",
+ "linked_oauth_account": "இணைக்கப்பட்ட OAUTH கணக்கு",
+ "list": "பட்டியல்",
+ "loading": "ஏற்றுகிறது",
+ "loading_search_results_failed": "தேடல் முடிவுகளை ஏற்றுவது தோல்வியடைந்தது",
+ "log_out": "விடுபதிகை",
+ "log_out_all_devices": "எல்லா சாதனங்களையும் விட்டு வெளியேறவும்",
+ "logged_out_all_devices": "எல்லா சாதனங்களையும் வெளியேற்றினேன்",
+ "logged_out_device": "உள்நுழைந்த சாதனம்",
+ "login": "புகுபதிவு",
+ "login_has_been_disabled": "உள்நுழைவு முடக்கப்பட்டுள்ளது.",
+ "logout_all_device_confirmation": "எல்லா சாதனங்களையும் விட்டு வெளியேற விரும்புகிறீர்களா?",
+ "logout_this_device_confirmation": "இந்த சாதனத்தை விட்டு வெளியேற விரும்புகிறீர்களா?",
+ "longitude": "நெட்டாங்கு",
+ "look": "பார்",
+ "loop_videos": "லூப் வீடியோக்கள்",
+ "loop_videos_description": "விரிவான பார்வையாளரில் ஒரு வீடியோவை தானாக வளையப்படுத்தவும்.",
+ "main_branch_warning": "நீங்கள் மேம்பாட்டு பதிப்பைப் பயன்படுத்துகிறீர்கள்; வெளியீட்டு பதிப்பைப் பயன்படுத்த நாங்கள் கடுமையாக பரிந்துரைக்கிறோம்!",
+ "make": "உருவாக்கு",
+ "manage_shared_links": "பகிரப்பட்ட இணைப்புகளை நிர்வகிக்கவும்",
+ "manage_sharing_with_partners": "கூட்டாளர்களுடன் பகிர்வை நிர்வகிக்கவும்",
+ "manage_the_app_settings": "பயன்பாட்டு அமைப்புகளை நிர்வகிக்கவும்",
+ "manage_your_account": "உங்கள் கணக்கை நிர்வகிக்கவும்",
+ "manage_your_api_keys": "உங்கள் பநிஇ விசைகளை நிர்வகிக்கவும்",
+ "manage_your_devices": "உங்கள் உள்நுழைந்த சாதனங்களை நிர்வகிக்கவும்",
+ "manage_your_oauth_connection": "உங்கள் OAuth இணைப்பை நிர்வகிக்கவும்",
+ "map": "வரைபடம்",
+ "map_marker_for_images": "{city}, {country}",
+ "map_marker_with_image": "படத்துடன் வரைபட மார்க்கர்",
+ "map_settings": "வரைபட அமைப்புகள்",
+ "matches": "போட்டிகள்",
+ "media_type": "ஊடக வகை",
+ "memories": "நினைவுகள்",
+ "memories_setting_description": "உங்கள் நினைவுகளில் நீங்கள் பார்ப்பதை நிர்வகிக்கவும்",
+ "memory": "நினைவகம்",
+ "memory_lane_title": "நினைவக லேன் {title}",
+ "menu": "பட்டியல்",
+ "merge": "ஒன்றிணைக்கவும்",
+ "merge_people": "மக்களை ஒன்றிணைக்கவும்",
+ "merge_people_limit": "நீங்கள் ஒரு நேரத்தில் 5 முகங்கள் வரை மட்டுமே ஒன்றிணைக்க முடியும்",
+ "merge_people_prompt": "இந்த மக்களை ஒன்றிணைக்க விரும்புகிறீர்களா? இந்த நடவடிக்கை மாற்ற முடியாதது.",
+ "merge_people_successfully": "மக்களை வெற்றிகரமாக ஒன்றிணைக்கவும்",
+ "merged_people_count": "ஒன்றிணைக்கப்பட்ட {எண்ணிக்கை, பன்மை, ஒன்று {# நபர்} மற்ற {# மக்கள்}}",
+ "minimize": "குறைக்கவும்",
+ "minute": "நிமிடங்கள்",
+ "missing": "இல்லை",
+ "model": "மாதிரியுரு",
+ "month": "மாதம்",
+ "more": "மேலும்",
+ "moved_to_trash": "குப்பைக்கு நகர்த்தப்பட்டது",
+ "my_albums": "எனது ஆல்பங்கள்",
+ "name": "பெயர்",
+ "name_or_nickname": "பெயர் அல்லது புனைப்பெயர்",
+ "never": "ஒருபோதும்",
+ "new_album": "புதிய ஆல்பம்",
+ "new_api_key": "புதிய பநிஇ விசை",
+ "new_password": "புதிய கடவுச்சொல்",
+ "new_person": "புதிய நபர்",
+ "new_user_created": "புதிய பயனர் உருவாக்கப்பட்டது",
+ "new_version_available": "புதிய பதிப்பு கிடைக்கிறது",
+ "newest_first": "புதிய முதல்",
+ "next": "அடுத்தது",
+ "next_memory": "அடுத்த நினைவகம்",
+ "no": "இல்லை",
+ "no_albums_message": "உங்கள் புகைப்படங்கள் மற்றும் வீடியோக்களை ஒழுங்கமைக்க ஒரு ஆல்பத்தை உருவாக்கவும்",
+ "no_albums_with_name_yet": "இந்த பெயருடன் இன்னும் ஆல்பங்கள் எதுவும் இல்லை என்று தெரிகிறது.",
+ "no_albums_yet": "உங்களிடம் இதுவரை எந்த ஆல்பங்களும் இல்லை என்று தெரிகிறது.",
+ "no_archived_assets_message": "உங்கள் புகைப்படக் காட்சியில் இருந்து அவற்றை மறைக்க புகைப்படங்கள் மற்றும் வீடியோக்களை காப்பகப்படுத்தவும்",
+ "no_assets_message": "உங்கள் முதல் புகைப்படத்தை பதிவேற்ற சொடுக்கு செய்க",
+ "no_duplicates_found": "நகல்கள் எதுவும் காணப்படவில்லை.",
+ "no_exif_info_available": "EXIF செய்தி எதுவும் கிடைக்கவில்லை",
+ "no_explore_results_message": "உங்கள் தொகுப்பை ஆராய கூடுதல் புகைப்படங்களை பதிவேற்றவும்.",
+ "no_favorites_message": "உங்கள் சிறந்த படங்கள் மற்றும் வீடியோக்களை விரைவாகக் கண்டுபிடிக்க பிடித்தவைகளைச் சேர்க்கவும்",
+ "no_libraries_message": "உங்கள் புகைப்படங்கள் மற்றும் வீடியோக்களைக் காண வெளிப்புற நூலகத்தை உருவாக்கவும்",
+ "no_name": "பெயர் இல்லை",
+ "no_places": "இடங்கள் இல்லை",
+ "no_results": "முடிவுகள் இல்லை",
+ "no_results_description": "ஒரு ஒத்த அல்லது பொதுவான முக்கிய சொல்லை முயற்சிக்கவும்",
+ "no_shared_albums_message": "உங்கள் நெட்வொர்க்கில் உள்ளவர்களுடன் புகைப்படங்களையும் வீடியோக்களையும் பகிர்ந்து கொள்ள ஒரு ஆல்பத்தை உருவாக்கவும்",
+ "not_in_any_album": "எந்த ஆல்பத்திலும் இல்லை",
+ "note_apply_storage_label_to_previously_uploaded assets": "குறிப்பு: முன்னர் பதிவேற்றப்பட்ட சொத்துக்களுக்கு சேமிப்பக லேபிளை பயன்படுத்த, இயக்கவும்",
+ "note_unlimited_quota": "குறிப்பு: வரம்பற்ற ஒதுக்கீட்டிற்கு 0 ஐ உள்ளிடவும்",
+ "notes": "குறிப்புகள்",
+ "notification_toggle_setting_description": "மின்னஞ்சல் அறிவிப்புகளை இயக்கவும்",
+ "notifications": "அறிவிப்புகள்",
+ "notifications_setting_description": "அறிவிப்புகளை நிர்வகிக்கவும்",
+ "oauth": "Oauth",
+ "official_immich_resources": "உத்தியோகபூர்வ இம்மா வளங்கள்",
+ "offline": "இணையமில்லாமல்",
+ "offline_paths": "இணைப்பில்லாத பாதைகள்",
+ "offline_paths_description": "இந்த முடிவுகள் வெளிப்புற நூலகத்தின் பகுதியாக இல்லாத கோப்புகளை கையேடு நீக்குவதன் காரணமாக இருக்கலாம்.",
+ "ok": "சரி",
+ "oldest_first": "முதலில் பழமையானது",
+ "onboarding": "ஆன் போர்டிங்",
+ "onboarding_privacy_description": "பின்வரும் (விரும்பினால்) நற்பொருத்தங்கள் வெளிப்புற சேவைகளை நம்பியுள்ளன, மேலும் நிர்வாக அமைப்புகளில் எந்த நேரத்திலும் முடக்கப்படலாம்.",
+ "onboarding_theme_description": "உங்கள் உதாரணத்திற்கு வண்ண கருப்பொருளைத் தேர்வுசெய்க. இதை உங்கள் அமைப்புகளில் பின்னர் மாற்றலாம்.",
+ "onboarding_welcome_description": "சில பொதுவான அமைப்புகளுடன் உங்கள் நிகழ்வை அமைப்போம்.",
+ "onboarding_welcome_user": "வரவேற்கிறோம், {user}",
+ "online": "ஆன்லைனில்",
+ "only_favorites": "பிடித்தவை மட்டுமே",
+ "open_in_map_view": "வரைபடக் காட்சியில் திறந்திருக்கும்",
+ "open_in_openstreetmap": "OpenStreetMap இல் திறந்திருக்கும்",
+ "open_the_search_filters": "தேடல் வடிப்பான்களைத் திறக்கவும்",
+ "options": "விருப்பங்கள்",
+ "or": "அல்லது",
+ "organize_your_library": "உங்கள் நூலகத்தை ஒழுங்கமைக்கவும்",
+ "original": "அசல்",
+ "other": "மற்றொன்று",
+ "other_devices": "பிற சாதனங்கள்",
+ "other_variables": "பிற மாறிகள்",
+ "owned": "சொந்தமானது",
+ "owner": "உரிமையாளர்",
+ "partner": "கூட்டாளர்",
+ "partner_can_access": "{partner} அணுகலாம்",
+ "partner_can_access_assets": "காப்பகப்படுத்தப்பட்ட மற்றும் நீக்கப்பட்டவை தவிர உங்கள் புகைப்படங்கள் மற்றும் வீடியோக்கள் அனைத்தும்",
+ "partner_can_access_location": "உங்கள் புகைப்படங்கள் எடுக்கப்பட்ட இடம்",
+ "partner_sharing": "கூட்டாளர் பகிர்வு",
+ "partners": "கூட்டாளர்கள்",
+ "password": "கடவுச்சொல்",
+ "password_does_not_match": "கடவுச்சொல் பொருந்தவில்லை",
+ "password_required": "கடவுச்சொல் தேவை",
+ "password_reset_success": "கடவுச்சொல் மீட்டமை செய்",
"past_durations": {
- "days": "",
- "hours": "",
- "years": ""
+ "days": "கடந்த {நாட்கள், பன்மை, ஒரு {day} மற்ற {# நாட்கள்}}",
+ "hours": "கடந்த {மணிநேரம், பன்மை, ஒரு {hour} மற்ற {# மணிநேரம்}}",
+ "years": "கடந்த {ஆண்டுகள், பன்மை, ஒன்று {year} மற்ற {# ஆண்டுகள்}}"
},
- "path": "",
- "pattern": "",
- "pause": "",
- "pause_memories": "",
- "paused": "",
- "pending": "",
- "people": "",
- "people_sidebar_description": "",
- "permanent_deletion_warning": "",
- "permanent_deletion_warning_setting_description": "",
- "permanently_delete": "",
- "permanently_deleted_asset": "",
- "person": "",
- "photos": "",
- "photos_count": "",
- "photos_from_previous_years": "",
- "pick_a_location": "",
- "place": "",
- "places": "",
- "play": "",
- "play_memories": "",
- "play_motion_photo": "",
- "play_or_pause_video": "",
- "port": "",
- "preset": "",
- "preview": "",
- "previous": "",
- "previous_memory": "",
- "previous_or_next_photo": "",
- "primary": "",
- "profile_picture_set": "",
- "public_share": "",
- "reaction_options": "",
- "read_changelog": "",
- "recent": "",
- "recent_searches": "",
- "refresh": "",
- "refreshed": "",
- "refreshes_every_file": "",
- "remove": "",
- "remove_deleted_assets": "",
- "remove_from_album": "",
- "remove_from_favorites": "",
- "remove_from_shared_link": "",
- "removed_api_key": "",
- "rename": "",
- "repair": "",
- "repair_no_results_message": "",
- "replace_with_upload": "",
- "require_password": "",
- "require_user_to_change_password_on_first_login": "",
- "reset": "",
- "reset_password": "",
- "reset_people_visibility": "",
- "resolved_all_duplicates": "",
- "restore": "",
- "restore_all": "",
- "restore_user": "",
- "resume": "",
- "retry_upload": "",
- "review_duplicates": "",
- "role": "",
- "save": "",
- "saved_api_key": "",
- "saved_profile": "",
- "saved_settings": "",
- "say_something": "",
- "scan_all_libraries": "",
- "scan_settings": "",
- "scanning_for_album": "",
- "search": "",
- "search_albums": "",
- "search_by_context": "",
- "search_camera_make": "",
- "search_camera_model": "",
- "search_city": "",
- "search_country": "",
- "search_for_existing_person": "",
- "search_people": "",
- "search_places": "",
- "search_state": "",
- "search_timezone": "",
- "search_type": "",
- "search_your_photos": "",
- "searching_locales": "",
- "second": "",
- "select_album_cover": "",
- "select_all": "",
- "select_avatar_color": "",
- "select_face": "",
- "select_featured_photo": "",
- "select_keep_all": "",
- "select_library_owner": "",
- "select_new_face": "",
- "select_photos": "",
- "select_trash_all": "",
- "selected": "",
- "send_message": "",
- "send_welcome_email": "",
- "server_stats": "",
- "set": "",
- "set_as_album_cover": "",
- "set_as_profile_picture": "",
- "set_date_of_birth": "",
- "set_profile_picture": "",
- "set_slideshow_to_fullscreen": "",
- "settings": "",
- "settings_saved": "",
- "share": "",
- "shared": "",
- "shared_by": "",
- "shared_by_you": "",
- "shared_from_partner": "",
- "shared_links": "",
- "shared_photos_and_videos_count": "",
- "shared_with_partner": "",
- "sharing": "",
- "sharing_sidebar_description": "",
- "show_album_options": "",
- "show_and_hide_people": "",
- "show_file_location": "",
- "show_gallery": "",
- "show_hidden_people": "",
- "show_in_timeline": "",
- "show_in_timeline_setting_description": "",
- "show_keyboard_shortcuts": "",
- "show_metadata": "",
- "show_or_hide_info": "",
- "show_password": "",
- "show_person_options": "",
- "show_progress_bar": "",
- "show_search_options": "",
- "shuffle": "",
- "sign_out": "",
- "sign_up": "",
- "size": "",
- "skip_to_content": "",
- "slideshow": "",
- "slideshow_settings": "",
- "sort_albums_by": "",
- "stack": "",
- "stack_selected_photos": "",
- "stacktrace": "",
- "start": "",
- "start_date": "",
- "state": "",
- "status": "",
- "stop_motion_photo": "",
- "stop_photo_sharing": "",
- "stop_photo_sharing_description": "",
- "stop_sharing_photos_with_user": "",
- "storage": "",
- "storage_label": "",
- "storage_usage": "",
- "submit": "",
- "suggestions": "",
- "sunrise_on_the_beach": "",
- "swap_merge_direction": "",
- "sync": "",
- "template": "",
- "theme": "",
- "theme_selection": "",
- "theme_selection_description": "",
- "time_based_memories": "",
- "timezone": "",
- "to_archive": "",
- "to_favorite": "",
- "to_trash": "",
- "toggle_settings": "",
- "toggle_theme": "",
- "total_usage": "",
- "trash": "",
- "trash_all": "",
- "trash_count": "",
- "trash_no_results_message": "",
- "trashed_items_will_be_permanently_deleted_after": "",
- "type": "",
- "unarchive": "",
- "unfavorite": "",
- "unhide_person": "",
- "unknown": "",
- "unknown_year": "",
- "unlimited": "",
- "unlink_oauth": "",
- "unlinked_oauth_account": "",
- "unnamed_album": "",
- "unnamed_share": "",
- "unselect_all": "",
- "unstack": "",
- "untracked_files": "",
- "untracked_files_decription": "",
- "up_next": "",
- "updated_password": "",
- "upload": "",
- "upload_concurrency": "",
- "url": "",
- "usage": "",
- "user": "",
- "user_id": "",
- "user_usage_detail": "",
- "username": "",
- "users": "",
- "utilities": "",
- "validate": "",
- "variables": "",
- "version": "",
- "version_announcement_message": "",
- "video": "",
- "video_hover_setting": "",
- "video_hover_setting_description": "",
- "videos": "",
- "videos_count": "",
- "view": "",
- "view_all": "",
- "view_all_users": "",
- "view_links": "",
- "view_next_asset": "",
- "view_previous_asset": "",
- "waiting": "",
- "week": "",
- "welcome": "",
- "welcome_to_immich": "",
- "year": "",
- "yes": "",
- "you_dont_have_any_shared_links": "",
- "zoom_image": ""
+ "path": "பாதை",
+ "pattern": "முறை",
+ "pause": "இடைநிறுத்தம்",
+ "pause_memories": "இடைநிறுத்த நினைவுகள்",
+ "paused": "இடைநிறுத்தப்பட்டது",
+ "pending": "நிலுவையில் உள்ளது",
+ "people": "மக்கள்",
+ "people_edits_count": "திருத்தப்பட்டது {எண்ணிக்கை, பன்மை, ஒன்று {# நபர்} மற்ற {# மக்கள்}}",
+ "people_feature_description": "மக்கள் தொகுத்த புகைப்படங்கள் மற்றும் வீடியோக்களை உலாவுதல்",
+ "people_sidebar_description": "பக்கப்பட்டியில் உள்ளவர்களுக்கு ஒரு இணைப்பைக் காண்பி",
+ "permanent_deletion_warning": "நிரந்தர நீக்குதல் எச்சரிக்கை",
+ "permanent_deletion_warning_setting_description": "சொத்துக்களை நிரந்தரமாக நீக்கும்போது ஒரு எச்சரிக்கையைக் காட்டுங்கள்",
+ "permanently_delete": "நிரந்தரமாக நீக்கு",
+ "permanently_delete_assets_count": "நிரந்தரமாக நீக்கு {எண்ணிக்கை, பன்மை, ஒன்று {asset} மற்ற {assets}}",
+ "permanently_delete_assets_prompt": "நீங்கள் நிச்சயமாக {எண்ணிக்கை, பன்மை, ஒன்று {இந்த சொத்து?} மற்ற {இந்த # சொத்துக்கள்? } அவர்களின்}} ஆல்பம் (கள்) இலிருந்து.",
+ "permanently_deleted_asset": "நிரந்தரமாக நீக்கப்பட்ட சொத்து",
+ "permanently_deleted_assets_count": "நிரந்தரமாக நீக்கப்பட்டது {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} பிற {# சொத்துக்கள்}}",
+ "person": "ஆள்",
+ "person_hidden": "{name} {மறைக்கப்பட்ட, தேர்ந்தெடு, உண்மை {(மறைக்கப்பட்ட)} பிற {}}",
+ "photo_shared_all_users": "உங்கள் புகைப்படங்களை எல்லா பயனர்களுடனும் பகிர்ந்து கொண்டதாகத் தெரிகிறது அல்லது பகிர்வதற்கு உங்களிடம் எந்த பயனரும் இல்லை.",
+ "photos": "புகைப்படங்கள்",
+ "photos_and_videos": "புகைப்படங்கள் & வீடியோக்கள்",
+ "photos_count": "{எண்ணிக்கை, பன்மை, ஒன்று {{எண்ணிக்கை, எண்} புகைப்படம்} பிற {{எண்ணிக்கை, எண்} புகைப்படங்கள்}}",
+ "photos_from_previous_years": "முந்தைய ஆண்டுகளின் புகைப்படங்கள்",
+ "pick_a_location": "ஒரு இடத்தைத் தேர்ந்தெடுங்கள்",
+ "place": "இடம்",
+ "places": "இடங்கள்",
+ "play": "விளையாடுங்கள்",
+ "play_memories": "பிளேமெமரிகள்",
+ "play_motion_photo": "இயக்க புகைப்படத்தை விளையாடுங்கள்",
+ "play_or_pause_video": "வீடியோவை இயக்கவும் அல்லது இடைநிறுத்தவும்",
+ "port": "துறைமுகம்",
+ "preset": "முன்னமைவு",
+ "preview": "முன்னோட்டம்",
+ "previous": "முந்தைய",
+ "previous_memory": "முந்தைய நினைவகம்",
+ "previous_or_next_photo": "முந்தைய அல்லது அடுத்த புகைப்படம்",
+ "primary": "முதன்மை",
+ "privacy": "தனியுரிமை",
+ "profile_image_of_user": "{பயனரின் சுயவிவரப் படம்",
+ "profile_picture_set": "சுயவிவரப் பட தொகுப்பு.",
+ "public_album": "பொது ஆல்பம்",
+ "public_share": "பொது பங்கு",
+ "purchase_account_info": "ஆதரவாளர்",
+ "purchase_activated_subtitle": "இம்மிச் மற்றும் திறந்த மூல மென்பொருளை ஆதரித்ததற்கு நன்றி",
+ "purchase_activated_time": "{தேதி, தேதி} இல் செயல்படுத்தப்பட்டது",
+ "purchase_activated_title": "உங்கள் திறவுகோல் வெற்றிகரமாக செயல்படுத்தப்பட்டுள்ளது",
+ "purchase_button_activate": "செயல்படுத்து",
+ "purchase_button_buy": "வாங்க",
+ "purchase_button_buy_immich": "இம்மியை வாங்கவும்",
+ "purchase_button_never_show_again": "மீண்டும் ஒருபோதும் காட்ட வேண்டாம்",
+ "purchase_button_reminder": "30 நாட்களில் எனக்கு நினைவூட்டுங்கள்",
+ "purchase_button_remove_key": "விசையை அகற்று",
+ "purchase_button_select": "தேர்ந்தெடு",
+ "purchase_failed_activation": "செயல்படுத்தத் தவறிவிட்டது! சரியான தயாரிப்பு விசைக்கு உங்கள் மின்னஞ்சலை சரிபார்க்கவும்!",
+ "purchase_individual_description_1": "ஒரு தனிநபருக்கு",
+ "purchase_individual_description_2": "ஆதரவாளர் நிலை",
+ "purchase_individual_title": "தனிப்பட்ட",
+ "purchase_input_suggestion": "தயாரிப்பு விசை உள்ளதா? கீழே உள்ள விசையை உள்ளிடவும்",
+ "purchase_license_subtitle": "சேவையின் தொடர்ச்சியான வளர்ச்சியை ஆதரிக்க இம்மியை வாங்கவும்",
+ "purchase_lifetime_description": "வாழ்நாள் கொள்முதல்",
+ "purchase_option_title": "விருப்பங்களை வாங்கவும்",
+ "purchase_panel_info_1": "இம்மியை உருவாக்குவதற்கு நிறைய நேரமும் முயற்சியும் தேவைப்படுகிறது, மேலும் முழுநேர பொறியியலாளர்கள் அதை எங்களால் முடிந்தவரை சிறப்பாகச் செய்ய வேலை செய்கிறார்கள். எங்கள் நோக்கம் திறந்த மூல மென்பொருள் மற்றும் நெறிமுறை வணிக நடைமுறைகள் டெவலப்பர்களுக்கான நிலையான வருமான ஆதாரமாக மாறுவதும், சுரண்டல் முகில் சேவைகளுக்கு உண்மையான மாற்றுகளுடன் தனியுரிமை-மரியாதைக்குரிய சுற்றுச்சூழல் அமைப்பை உருவாக்குவதும் ஆகும்.",
+ "purchase_panel_info_2": "பேவால்களைச் சேர்க்காமல் இருப்பதில் நாங்கள் கடமைப்பட்டுள்ளதால், இந்த கொள்முதல் இம்மிச்சில் கூடுதல் அம்சங்களை உங்களுக்கு வழங்காது. இம்மிச்சின் தற்போதைய வளர்ச்சியை ஆதரிக்க உங்களைப் போன்ற பயனர்களை நாங்கள் நம்பியுள்ளோம்.",
+ "purchase_panel_title": "திட்டத்தை ஆதரிக்கவும்",
+ "purchase_per_server": "ஒரு சேவையகத்திற்கு",
+ "purchase_per_user": "ஒரு பயனருக்கு",
+ "purchase_remove_product_key": "தயாரிப்பு விசையை அகற்று",
+ "purchase_remove_product_key_prompt": "தயாரிப்பு விசையை அகற்ற விரும்புகிறீர்களா?",
+ "purchase_remove_server_product_key": "சேவையக தயாரிப்பு விசையை அகற்று",
+ "purchase_remove_server_product_key_prompt": "சேவையக தயாரிப்பு விசையை அகற்ற விரும்புகிறீர்களா?",
+ "purchase_server_description_1": "முழு சேவையகத்திற்கும்",
+ "purchase_server_description_2": "ஆதரவாளர் நிலை",
+ "purchase_server_title": "சேவையகம்",
+ "purchase_settings_server_activated": "சேவையக தயாரிப்பு விசை நிர்வாகியால் நிர்வகிக்கப்படுகிறது",
+ "rating": "நட்சத்திர மதிப்பீடு",
+ "rating_clear": "தெளிவான மதிப்பீடு",
+ "rating_count": "{எண்ணிக்கை, பன்மை, ஒன்று {# நட்சத்திரம்} மற்ற {# நட்சத்திரங்கள்}}",
+ "rating_description": "செய்தி குழுவில் EXIF மதிப்பீட்டைக் காண்பி",
+ "reaction_options": "எதிர்வினை விருப்பங்கள்",
+ "read_changelog": "சேஞ்ச்லாக் படிக்கவும்",
+ "reassign": "மீண்டும் இணைக்கவும்",
+ "reassigned_assets_to_existing_person": "மீண்டும் ஒதுக்கப்பட்ட {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} பிற {# சொத்துக்கள்}} பெறுநர் {பெயருக்கு, தேர்ந்தெடுக்கவும், சுழிய {an existing person} பிற {{name}}}",
+ "reassigned_assets_to_new_person": "மீண்டும் ஒதுக்கப்பட்ட {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} பிற {# சொத்துக்கள்}} ஒரு புதிய நபருக்கு",
+ "reassing_hint": "தேர்ந்தெடுக்கப்பட்ட சொத்துக்களை ஏற்கனவே இருக்கும் நபருக்கு ஒதுக்குங்கள்",
+ "recent": "அண்மைக் கால",
+ "recent-albums": "அண்மைக் கால ஆல்பங்கள்",
+ "recent_searches": "அண்மைக் கால தேடல்கள்",
+ "refresh": "புதுப்பிப்பு",
+ "refresh_encoded_videos": "குறியிடப்பட்ட வீடியோக்களை புதுப்பிக்கவும்",
+ "refresh_faces": "முகங்களைப் புதுப்பிக்கவும்",
+ "refresh_metadata": "மெட்டாடேட்டாவை புதுப்பிக்கவும்",
+ "refresh_thumbnails": "சிறு உருவங்களை புதுப்பிக்கவும்",
+ "refreshed": "புத்துணர்ச்சி",
+ "refreshes_every_file": "ஏற்கனவே உள்ள மற்றும் புதிய கோப்புகளை மீண்டும் படிக்கிறது",
+ "refreshing_encoded_video": "புத்துணர்ச்சியூட்டும் குறியாக்கப்பட்ட வீடியோ",
+ "refreshing_faces": "புத்துணர்ச்சியூட்டும் முகங்கள்",
+ "refreshing_metadata": "புத்துணர்ச்சியூட்டும் மேனிலை தரவு",
+ "regenerating_thumbnails": "சிறுபடங்களை மீண்டும் உருவாக்குகிறது",
+ "remove": "அகற்று",
+ "remove_assets_album_confirmation": "ஆல்பத்திலிருந்து {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} பிற {# சொத்துக்கள்} your ஐ அகற்ற விரும்புகிறீர்களா?",
+ "remove_assets_shared_link_confirmation": "இந்த பகிரப்பட்ட இணைப்பிலிருந்து {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} பிற {# சொத்துக்கள்} your ஐ அகற்ற விரும்புகிறீர்களா?",
+ "remove_assets_title": "சொத்துக்களை அகற்றவா?",
+ "remove_custom_date_range": "தனிப்பயன் தேதி வரம்பை அகற்று",
+ "remove_deleted_assets": "நீக்கப்பட்ட சொத்துக்களை அகற்றவும்",
+ "remove_from_album": "ஆல்பத்திலிருந்து அகற்று",
+ "remove_from_favorites": "பிடித்தவைகளிலிருந்து அகற்று",
+ "remove_from_shared_link": "பகிரப்பட்ட இணைப்பிலிருந்து அகற்று",
+ "remove_url": "முகவரி ஐ அகற்று",
+ "remove_user": "பயனரை அகற்று",
+ "removed_api_key": "அகற்றப்பட்ட பநிஇ விசை: {name}",
+ "removed_from_archive": "காப்பகத்திலிருந்து அகற்றப்பட்டது",
+ "removed_from_favorites": "பிடித்தவைகளிலிருந்து அகற்றப்பட்டது",
+ "removed_from_favorites_count": "{எண்ணிக்கை, பன்மை, பிற {பிடித்தவைகளிலிருந்து #}} அகற்றப்பட்டது",
+ "removed_tagged_assets": "{எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} பிற {# சொத்துக்கள்} இருந்து இலிருந்து அகற்றப்பட்ட குறிச்சொல்",
+ "rename": "மறுபெயரிடுங்கள்",
+ "repair": "பழுது",
+ "repair_no_results_message": "கட்டுப்படுத்தப்படாத மற்றும் காணாமல் போன கோப்புகள் இங்கே காண்பிக்கப்படும்",
+ "replace_with_upload": "பதிவேற்றத்துடன் மாற்றவும்",
+ "repository": "களஞ்சியம்",
+ "require_password": "கடவுச்சொல் தேவை",
+ "require_user_to_change_password_on_first_login": "முதல் உள்நுழைவில் கடவுச்சொல்லை மாற்ற பயனர் தேவை",
+ "reset": "மீட்டமை",
+ "reset_password": "கடவுச்சொல்லை மீட்டமைக்கவும்",
+ "reset_people_visibility": "மக்களின் தெரிவுநிலையை மீட்டமைக்கவும்",
+ "reset_to_default": "இயல்புநிலைக்கு மீட்டமைக்கவும்",
+ "resolve_duplicates": "நகல்களைத் தீர்க்கவும்",
+ "resolved_all_duplicates": "அனைத்து நகல்களையும் தீர்க்கும்",
+ "restore": "மீட்டமை",
+ "restore_all": "அனைத்தையும் மீட்டெடுக்கவும்",
+ "restore_user": "பயனரை மீட்டமைக்கவும்",
+ "restored_asset": "மீட்டெடுக்கப்பட்ட சொத்து",
+ "resume": "மீண்டும் தொடங்குங்கள்",
+ "retry_upload": "பதிவேற்ற முயற்சிக்கவும்",
+ "review_duplicates": "நகல்களை மதிப்பாய்வு செய்யவும்",
+ "role": "பங்கு",
+ "role_editor": "திருத்தி",
+ "role_viewer": "பார்வையாளர்",
+ "save": "சேமி",
+ "saved_api_key": "சேமித்த பநிஇ விசை",
+ "saved_profile": "சேமித்த சுயவிவரம்",
+ "saved_settings": "சேமித்த அமைப்புகள்",
+ "say_something": "ஏதாவது சொல்லுங்கள்",
+ "scan_all_libraries": "அனைத்து நூலகங்களையும் ச்கேன் செய்யுங்கள்",
+ "scan_library": "ச்கேன்",
+ "scan_settings": "அமைப்புகளை ச்கேன் செய்யுங்கள்",
+ "scanning_for_album": "ஆல்பத்திற்கு ச்கேனிங் ...",
+ "search": "தேடல்",
+ "search_albums": "ஆல்பங்களைத் தேடுங்கள்",
+ "search_by_context": "சூழலால் தேடுங்கள்",
+ "search_by_filename": "கோப்பு பெயர் அல்லது நீட்டிப்பு மூலம் தேடுங்கள்",
+ "search_by_filename_example": "I.E. IMG_1234.JPG அல்லது PNG",
+ "search_camera_make": "தேடல் கேமரா செய்யுங்கள் ...",
+ "search_camera_model": "கேமரா மாதிரியைத் தேடுங்கள் ...",
+ "search_city": "தேடல் நகரம் ...",
+ "search_country": "தேடல் நாடு ...",
+ "search_for_existing_person": "இருக்கும் நபரைத் தேடுங்கள்",
+ "search_no_people": "மக்கள் இல்லை",
+ "search_no_people_named": "\"{name}\" என்று பெயரிடப்பட்டவர்கள் யாரும் இல்லை",
+ "search_options": "தேடல் விருப்பங்கள்",
+ "search_people": "மக்களைத் தேடுங்கள்",
+ "search_places": "இடங்களைத் தேடுங்கள்",
+ "search_settings": "அமைப்புகளைத் தேடுங்கள்",
+ "search_state": "தேடல் நிலை ...",
+ "search_tags": "குறிச்சொற்களைத் தேடுங்கள் ...",
+ "search_timezone": "நேர மண்டலத்தைத் தேடுங்கள் ...",
+ "search_type": "தேடல் வகை",
+ "search_your_photos": "உங்கள் புகைப்படங்களைத் தேடுங்கள்",
+ "searching_locales": "இடங்களைத் தேடுகிறது ...",
+ "second": "இரண்டாவது",
+ "see_all_people": "எல்லா மக்களையும் பாருங்கள்",
+ "select_album_cover": "ஆல்பம் அட்டையைத் தேர்ந்தெடுக்கவும்",
+ "select_all": "அனைத்தையும் தெரிவுசெய்",
+ "select_all_duplicates": "அனைத்து நகல்களையும் தேர்ந்தெடுக்கவும்",
+ "select_avatar_color": "அவதார் நிறத்தைத் தேர்ந்தெடுக்கவும்",
+ "select_face": "முகத்தைத் தேர்ந்தெடுக்கவும்",
+ "select_featured_photo": "பிரத்யேக புகைப்படத்தைத் தேர்ந்தெடுக்கவும்",
+ "select_from_computer": "கணினியிலிருந்து தேர்ந்தெடுக்கவும்",
+ "select_keep_all": "அனைத்தையும் வைத்திருங்கள் என்பதைத் தேர்ந்தெடுக்கவும்",
+ "select_library_owner": "நூலக உரிமையாளரைத் தேர்ந்தெடுக்கவும்",
+ "select_new_face": "புதிய முகத்தைத் தேர்ந்தெடுக்கவும்",
+ "select_photos": "புகைப்படங்களைத் தேர்ந்தெடுக்கவும்",
+ "select_trash_all": "குப்பைத் தொட்டியைத் தேர்ந்தெடுக்கவும்",
+ "selected": "தேர்ந்தெடுக்கப்பட்டது",
+ "selected_count": "{எண்ணிக்கை, பன்மை, பிற {# தேர்ந்தெடுக்கப்பட்ட}}",
+ "send_message": "செய்தி அனுப்பவும்",
+ "send_welcome_email": "வரவேற்பு மின்னஞ்சலை அனுப்பவும்",
+ "server_offline": "சேவையகம் இணைப்பில்லாத",
+ "server_online": "ஆன்லைனில் சேவையகம்",
+ "server_stats": "சேவையக புள்ளிவிவரங்கள்",
+ "server_version": "சேவையக பதிப்பு",
+ "set": "கணம்",
+ "set_as_album_cover": "ஆல்பம் அட்டையாக அமைக்கவும்",
+ "set_as_featured_photo": "சிறப்பு புகைப்படமாக அமைக்கவும்",
+ "set_as_profile_picture": "சுயவிவரப் படமாக அமைக்கவும்",
+ "set_date_of_birth": "பிறந்த தேதியை அமைக்கவும்",
+ "set_profile_picture": "சுயவிவரப் படத்தை அமைக்கவும்",
+ "set_slideshow_to_fullscreen": "ச்லைடுசோவை முழுமைக்கு அமைக்கவும்",
+ "settings": "அமைப்புகள்",
+ "settings_saved": "அமைப்புகள் சேமிக்கப்பட்டன",
+ "share": "பங்கு",
+ "shared": "பகிரப்பட்டது",
+ "shared_by": "பகிரப்பட்டது",
+ "shared_by_user": "{பயனரால் பகிரப்பட்டது",
+ "shared_by_you": "நீங்கள் பகிர்ந்து கொண்டார்",
+ "shared_from_partner": "{partner} இலிருந்து புகைப்படங்கள்",
+ "shared_link_options": "பகிரப்பட்ட இணைப்பு விருப்பங்கள்",
+ "shared_links": "பகிரப்பட்ட இணைப்புகள்",
+ "shared_photos_and_videos_count": "{ASSETCOUNT, பன்மை, பிற {# பகிரப்பட்ட புகைப்படங்கள் மற்றும் வீடியோக்கள்.}}",
+ "shared_with_partner": "{கூட்டாளர் with உடன் பகிரப்பட்டது",
+ "sharing": "பகிர்வு",
+ "sharing_enter_password": "இந்த பக்கத்தைக் காண கடவுச்சொல்லை உள்ளிடவும்.",
+ "sharing_sidebar_description": "பக்கப்பட்டியில் பகிர்வதற்கான இணைப்பைக் காண்பி",
+ "shift_to_permanent_delete": "சொத்தை நிரந்தரமாக நீக்க ⇧ ஐ அழுத்தவும்",
+ "show_album_options": "ஆல்பம் விருப்பங்களைக் காட்டு",
+ "show_albums": "ஆல்பங்களைக் காட்டு",
+ "show_all_people": "எல்லா மக்களையும் காட்டு",
+ "show_and_hide_people": "மக்களைக் காட்டு மற்றும் மறைக்க",
+ "show_file_location": "கோப்பு இருப்பிடத்தைக் காட்டு",
+ "show_gallery": "கேலரியைக் காட்டு",
+ "show_hidden_people": "மறைக்கப்பட்ட நபர்களைக் காட்டு",
+ "show_in_timeline": "காலவரிசையில் காட்டு",
+ "show_in_timeline_setting_description": "உங்கள் காலவரிசையில் இந்த பயனரின் புகைப்படங்கள் மற்றும் வீடியோக்களைக் காட்டு",
+ "show_keyboard_shortcuts": "விசைப்பலகை குறுக்குவழிகளைக் காட்டு",
+ "show_metadata": "மெட்டாடேட்டாவைக் காட்டு",
+ "show_or_hide_info": "தகவலைக் காட்டு அல்லது மறைக்கவும்",
+ "show_password": "கடவுச்சொல்லைக் காட்டு",
+ "show_person_options": "நபர் விருப்பங்களைக் காட்டு",
+ "show_progress_bar": "முன்னேற்றப் பட்டியைக் காட்டு",
+ "show_search_options": "தேடல் விருப்பங்களைக் காட்டு",
+ "show_slideshow_transition": "ச்லைடுசோ மாற்றத்தைக் காட்டு",
+ "show_supporter_badge": "ஆதரவாளர் ஒட்டு",
+ "show_supporter_badge_description": "ஒரு ஆதரவாளர் பேட்சைக் காட்டு",
+ "shuffle": "கலக்கு",
+ "sidebar": "பக்கப்பட்டி",
+ "sidebar_display_description": "பக்கப்பட்டியில் பார்வைக்கு ஒரு இணைப்பைக் காண்பி",
+ "sign_out": "விடுபதிகை",
+ "sign_up": "பதிவு செய்க",
+ "size": "அளவு",
+ "skip_to_content": "உள்ளடக்கத்தைத் தவிர்க்கவும்",
+ "skip_to_folders": "கோப்புறைகளுக்குச் செல்லுங்கள்",
+ "skip_to_tags": "குறிச்சொற்களைத் தவிர்க்கவும்",
+ "slideshow": "ச்லைடுசோ",
+ "slideshow_settings": "ச்லைடுசோ அமைப்புகள்",
+ "sort_albums_by": "ஆல்பங்களை வரிசைப்படுத்துங்கள் ...",
+ "sort_created": "தேதி உருவாக்கப்பட்டது",
+ "sort_items": "பொருட்களின் எண்ணிக்கை",
+ "sort_modified": "தேதி மாற்றியமைக்கப்பட்டது",
+ "sort_oldest": "பழமையான புகைப்படம்",
+ "sort_people_by_similarity": "ஒற்றுமையால் மக்களை வரிசைப்படுத்துங்கள்",
+ "sort_recent": "மிக அண்மைக் கால புகைப்படம்",
+ "sort_title": "தலைப்பு",
+ "source": "மூலம்",
+ "stack": "அடுக்கு",
+ "stack_duplicates": "அடுக்கு நகல்கள்",
+ "stack_select_one_photo": "அடுக்குக்கு ஒரு முக்கிய புகைப்படத்தைத் தேர்ந்தெடுக்கவும்",
+ "stack_selected_photos": "தேர்ந்தெடுக்கப்பட்ட புகைப்படங்களை அடுக்கி வைக்கவும்",
+ "stacked_assets_count": "அடுக்கப்பட்ட {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} மற்ற {# சொத்துக்கள்}}",
+ "stacktrace": "ச்டாக் ட்ரேச்",
+ "start": "தொடங்கு",
+ "start_date": "தொடக்க தேதி",
+ "state": "மாநிலம்",
+ "status": "நிலை",
+ "stop_motion_photo": "இயக்க புகைப்படத்தை நிறுத்து",
+ "stop_photo_sharing": "உங்கள் புகைப்படங்களைப் பகிர்வதை நிறுத்தவா?",
+ "stop_photo_sharing_description": "{கூட்டாளர் your இனி உங்கள் புகைப்படங்களை அணுக முடியாது.",
+ "stop_sharing_photos_with_user": "இந்த பயனருடன் உங்கள் புகைப்படங்களைப் பகிர்வதை நிறுத்துங்கள்",
+ "storage": "சேமிப்பக இடம்",
+ "storage_label": "சேமிப்பக சிட்டை",
+ "storage_usage": "{used} பயன்படுத்தப்படுகிறது",
+ "submit": "சமர்ப்பிக்கவும்",
+ "suggestions": "பரிந்துரைகள்",
+ "sunrise_on_the_beach": "கடற்கரையில் சூரிய தோன்றுகை",
+ "support": "உதவி",
+ "support_and_feedback": "உதவி மற்றும் கருத்து",
+ "support_third_party_description": "உங்கள் இம்மிச் நிறுவல் மூன்றாம் தரப்பினரால் தொகுக்கப்பட்டது. நீங்கள் அனுபவிக்கும் சிக்கல்கள் அந்த தொகுப்பால் ஏற்படலாம், எனவே கீழேயுள்ள இணைப்புகளைப் பயன்படுத்தி முதல் சந்தர்ப்பத்தில் அவர்களுடன் சிக்கல்களை எழுப்புங்கள்.",
+ "swap_merge_direction": "ஒன்றிணைக்கும் திசையை மாற்றவும்",
+ "sync": "ஒத்திசைவு",
+ "tag": "குறிச்சொல்",
+ "tag_assets": "குறிச்சொல் சொத்துக்கள்",
+ "tag_created": "உருவாக்கப்பட்ட குறிச்சொல்: {tag}",
+ "tag_feature_description": "தர்க்கரீதியான குறிச்சொல் தலைப்புகளால் தொகுக்கப்பட்ட புகைப்படங்கள் மற்றும் வீடியோக்களை உலாவுதல்",
+ "tag_not_found_question": "குறிச்சொல்லைக் கண்டுபிடிக்க முடியவில்லையா? <இணைப்பு> புதிய குறிச்சொல்லை உருவாக்கவும். இணைப்பு>",
+ "tag_updated": "புதுப்பிக்கப்பட்ட குறிச்சொல்: {tag}",
+ "tagged_assets": "குறித்துள்ளார் {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} மற்ற {# சொத்துக்கள்}}",
+ "tags": "குறிச்சொற்கள்",
+ "template": "வார்ப்புரு",
+ "theme": "கருப்பொருள்",
+ "theme_selection": "கருப்பொருள் தேர்வு",
+ "theme_selection_description": "உங்கள் உலாவியின் கணினி விருப்பத்தின் அடிப்படையில் தானாகவே கருப்பொருள் ஒளி அல்லது இருட்டாக அமைக்கவும்",
+ "they_will_be_merged_together": "அவர்கள் ஒன்றாக இணைக்கப்படுவார்கள்",
+ "third_party_resources": "மூன்றாம் தரப்பு வளங்கள்",
+ "time_based_memories": "நேர அடிப்படையிலான நினைவுகள்",
+ "timeline": "காலவரிசை",
+ "timezone": "நேர மண்டலம்",
+ "to_archive": "காப்பகம்",
+ "to_change_password": "கடவுச்சொல்லை மாற்றவும்",
+ "to_favorite": "பிடித்த",
+ "to_login": "புகுபதிவு",
+ "to_parent": "பெற்றோரிடம் செல்லுங்கள்",
+ "to_trash": "குப்பை",
+ "toggle_settings": "அமைப்புகளை மாற்றவும்",
+ "toggle_theme": "இருண்ட கருப்பொருளை மாற்றவும்",
+ "total": "மொத்தம்",
+ "total_usage": "மொத்த பயன்பாடு",
+ "trash": "குப்பை",
+ "trash_all": "அனைத்தையும் குப்பை",
+ "trash_count": "குப்பை {எண்ணிக்கை, எண்}",
+ "trash_delete_asset": "குப்பை/சொத்தை நீக்கு",
+ "trash_no_results_message": "குப்பைத் தொட்டிகள் மற்றும் வீடியோக்கள் இங்கே காண்பிக்கப்படும்.",
+ "trashed_items_will_be_permanently_deleted_after": "{நாட்கள், பன்மை, ஒன்று {# நாள்} பிற {# நாட்கள்}} க்குப் பிறகு குப்பைத் தொட்டிகள் நிரந்தரமாக நீக்கப்படும்.",
+ "type": "வகை",
+ "unarchive": "அன்கான்",
+ "unarchived_count": "{எண்ணிக்கை, பன்மை, பிற {அல்லாத #}}",
+ "unfavorite": "மாறாத",
+ "unhide_person": "அருவருப்பான நபர்",
+ "unknown": "தெரியவில்லை",
+ "unknown_year": "தெரியாத ஆண்டு",
+ "unlimited": "வரம்பற்றது",
+ "unlink_motion_video": "இயக்க வீடியோவை இணைக்கவும்",
+ "unlink_oauth": "OAUTH ஐ இணைக்கவும்",
+ "unlinked_oauth_account": "இணைக்கப்படாத OAUTH கணக்கு",
+ "unnamed_album": "பெயரிடப்படாத ஆல்பம்",
+ "unnamed_album_delete_confirmation": "இந்த ஆல்பத்தை நீக்க விரும்புகிறீர்களா?",
+ "unnamed_share": "பெயரிடப்படாத பங்கு",
+ "unsaved_change": "சேமிக்கப்படாத மாற்றம்",
+ "unselect_all": "அனைத்தையும் தேர்வு செய்யுங்கள்",
+ "unselect_all_duplicates": "அனைத்து நகல்களையும் தேர்ந்தெடுக்கவும்",
+ "unstack": "அன்-ச்டாக்",
+ "unstacked_assets_count": "அன்-ச்டாக் {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} பிற {# சொத்துக்கள்}}",
+ "untracked_files": "கட்டுப்படுத்தப்படாத கோப்புகள்",
+ "untracked_files_decription": "இந்த கோப்புகள் பயன்பாட்டால் கண்காணிக்கப்படவில்லை. அவை தோல்வியுற்ற நகர்வுகள், குறுக்கிடப்பட்ட பதிவேற்றங்கள் அல்லது ஒரு பிழையின் காரணமாக விட்டுச்செல்லும் முடிவுகளாக இருக்கலாம்",
+ "up_next": "அடுத்து",
+ "updated_password": "புதுப்பிக்கப்பட்ட கடவுச்சொல்",
+ "upload": "பதிவேற்றும்",
+ "upload_concurrency": "ஒத்திசைவைப் பதிவேற்றவும்",
+ "upload_errors": "பதிவேற்றம் {எண்ணிக்கை, பன்மை, ஒன்று {# பிழை} மற்ற {# பிழைகள்}} உடன் முடிக்கப்பட்டது, புதிய பதிவேற்ற சொத்துக்களைக் காண பக்கத்தைப் புதுப்பிக்கவும்.",
+ "upload_progress": "மீதமுள்ள {மீதமுள்ள, எண்} - செயலாக்கப்பட்ட {செயலாக்கப்பட்டது, எண்}/{மொத்தம், எண்}",
+ "upload_skipped_duplicates": "{எண்ணிக்கை, பன்மை, ஒன்று {# நகல் சொத்து} பிற {# நகல் சொத்துக்கள்}}",
+ "upload_status_duplicates": "நகல்கள்",
+ "upload_status_errors": "பிழைகள்",
+ "upload_status_uploaded": "பதிவேற்றப்பட்டது",
+ "upload_success": "வெற்றியைப் பதிவேற்றவும், புதிய பதிவேற்ற சொத்துக்களைக் காண பக்கத்தைப் புதுப்பிக்கவும்.",
+ "url": "முகவரி",
+ "usage": "பயன்பாடு",
+ "use_custom_date_range": "அதற்கு பதிலாக தனிப்பயன் தேதி வரம்பைப் பயன்படுத்தவும்",
+ "user": "பயனர்",
+ "user_id": "பயனர் ஐடி",
+ "user_liked": "{user} விரும்பினார் {வகை, தேர்ந்தெடு, புகைப்படம் {this photo} வீடியோ {this video} சொத்து {this asset} பிற {it}}",
+ "user_purchase_settings": "வாங்க",
+ "user_purchase_settings_description": "உங்கள் வாங்குதலை நிர்வகிக்கவும்",
+ "user_role_set": "{user} {பாத்திரமாக அமைக்கவும்",
+ "user_usage_detail": "பயனர் பயன்பாட்டு விவரம்",
+ "user_usage_stats": "கணக்கு பயன்பாட்டு புள்ளிவிவரங்கள்",
+ "user_usage_stats_description": "கணக்கு உபயோகப் புள்ளிவிவரங்களைப் பார்க்க",
+ "username": "பயனர்பெயர்",
+ "users": "பயனர்கள்",
+ "utilities": "பயன்பாடுகள்",
+ "validate": "சரிபார்க்கவும்",
+ "variables": "மாறிகள்",
+ "version": "பதிப்பு",
+ "version_announcement_closing": "உங்கள் நண்பர், அலெக்ச்",
+ "version_announcement_message": "ஆய்! இம்மியின் புதிய பதிப்பு கிடைக்கிறது. எந்தவொரு தவறான கருத்துக்களையும் தடுக்க உங்கள் அமைப்பு புதுப்பித்த நிலையில் இருப்பதை உறுதிசெய்ய <இணைப்பு> வெளியீட்டுக் குறிப்புகள் இணைப்பு> ஐப் படிக்க சிறிது நேரம் ஒதுக்குங்கள், குறிப்பாக நீங்கள் காவற்கோபுரத்தைப் பயன்படுத்தினால் அல்லது உங்கள் இம்மிச் நிகழ்வை தானாகவே புதுப்பிப்பதைக் கையாளும் எந்தவொரு பொறிமுறையையும் பயன்படுத்தினால்.",
+ "version_history": "பதிப்பு வரலாறு",
+ "version_history_item": "{version} இல் {date} நிறுவப்பட்டது",
+ "video": "ஒளிதோற்றம்",
+ "video_hover_setting": "ஓவரில் வீடியோ சிறு உருவத்தை இயக்கவும்",
+ "video_hover_setting_description": "மவுச் உருப்படியைக் கொண்டு செல்லும்போது வீடியோ சிறு உருவத்தை இயக்கவும். முடக்கப்பட்டாலும் கூட, பிளே ஐகானுக்கு மேல் சுற்றுவதன் மூலம் பிளேபேக்கைத் தொடங்கலாம்.",
+ "videos": "வீடியோக்கள்",
+ "videos_count": "{எண்ணிக்கை, பன்மை, ஒன்று {# வீடியோ} மற்ற {# வீடியோக்கள்}}",
+ "view": "பார்வை",
+ "view_album": "ஆல்பத்தைக் காண்க",
+ "view_all": "அனைத்தையும் காண்க",
+ "view_all_users": "அனைத்து பயனர்களையும் காண்க",
+ "view_in_timeline": "காலவரிசையில் காண்க",
+ "view_links": "இணைப்புகளைக் காண்க",
+ "view_name": "பார்வை",
+ "view_next_asset": "அடுத்த சொத்தை காண்க",
+ "view_previous_asset": "முந்தைய சொத்தைப் பார்க்கவும்",
+ "view_stack": "காண்க அடுக்கு",
+ "visibility_changed": "{எண்ணிக்கை, பன்மை, ஒன்று {# நபர்} மற்ற {# நபர்கள்} க்கு க்கு தெரிவுநிலை மாற்றப்பட்டது",
+ "waiting": "காத்திருக்கிறது",
+ "warning": "எச்சரிக்கை",
+ "week": "வாரம்",
+ "welcome": "வரவேற்கிறோம்",
+ "welcome_to_immich": "இம்மிச்சிற்கு வருக",
+ "year": "ஆண்டு",
+ "years_ago": "{ஆண்டுகள், பன்மை, ஒன்று {# ஆண்டு} மற்ற {# ஆண்டுகள்}}} முன்பு",
+ "yes": "ஆம்",
+ "you_dont_have_any_shared_links": "உங்களிடம் பகிரப்பட்ட இணைப்புகள் எதுவும் இல்லை",
+ "zoom_image": "பெரிதாக்க படம்"
}
diff --git a/i18n/th.json b/i18n/th.json
index 0abeb549dc..8843db3850 100644
--- a/i18n/th.json
+++ b/i18n/th.json
@@ -1,5 +1,5 @@
{
- "about": "รีเฟรช",
+ "about": "เกี่ยวกับ",
"account": "บัญชี",
"account_settings": "การตั้งค่าบัญชี",
"acknowledge": "รับทราบ",
@@ -69,13 +69,14 @@
"image_prefer_embedded_preview_setting_description": "ใช้พรีวิวฝังตัวในรูปภาพ RAW ในการวิเคราะห์รูปภาพถ้ามี แต่คุณภาพรูปภาพขึ้นอยู่กับกล้อง และอาจจะมีสิ่งตกค้างจากการย่อขนาดไฟล์",
"image_prefer_wide_gamut": "ใช้ช่วงสีกว้าง",
"image_prefer_wide_gamut_setting_description": "ใช้การแสดงผลแบบ P3 สําหรับภาพตัวอย่าง คงความเข้มและความกว้างขอบเขตสี แต่ภาพอาจดูแตกต่างกันในอุปกรณ์เก่าที่มีเว็บเบราว์เซอร์รุ่นเก่า ภาพ sRGB จะถูกเก็บในรูปแบบ sRGB เพื่อลดการเคลื่อนของสี",
- "image_preview_quality_description": "คุณภาพการแสดงตัวอย่างตั้งแต่ 1-100 ยิ่งสูงก็ยิ่งดี แต่จะทำให้ไฟล์มีขนาดใหญ่ขึ้นและอาจทำให้แอปตอบสนองช้าลง การตั้งค่าต่ำอาจส่งผลต่อคุณภาพ Machine Learning",
+ "image_preview_quality_description": "คุณภาพการแสดงตัวอย่างตั้งแต่ 1-100 ยิ่งสูงยิ่งดี แต่จะทำให้ไฟล์มีขนาดใหญ่ขึ้นและอาจทำให้แอปตอบสนองช้าลง การตั้งค่าต่ำอาจส่งผลต่อคุณภาพ Machine Learning",
"image_preview_title": "ตั้งค่าพรีวิว",
"image_quality": "คุณภาพ",
"image_resolution": "ความละเอียด",
"image_resolution_description": "ความละเอียดสูกว่าสามารถเก็บรายละเอียดได้มากกว่าแต่ใช้เวลา encode นานกว่า ไฟล์ใหญ่กว่า และลดความตอบสนองของแอป",
"image_settings": "การตั้งค่ารูปภาพ",
"image_settings_description": "จัดการคุณภาพและความคมชัดของภาพที่สร้างขึ้น",
+ "image_thumbnail_quality_description": "คุณภาพของภาพขนาดย่อตั้งแต่ 1-100 ยิ่งสูงยิ่งดี แต่จะทำให้ไฟล์มีขนาดใหญ่ขึ้นและอาจทำให้แอปตอบสนองช้าลง",
"image_thumbnail_title": "ตั้งค่า Thumbnail",
"job_concurrency": "{job} งานพร้อมกัน",
"job_created": "สร้างงานเรียบร้อย",
@@ -214,7 +215,7 @@
"require_password_change_on_login": "บังคับผู้ใช้งานให้เปลี่ยนรหัสผ่านเมื่อเข้าสู่ระบบครั้งแรก",
"reset_settings_to_default": "ตั้งค่าการตั้งค่าเป็นค่าเริ่มต้น",
"reset_settings_to_recent_saved": "ตั้งค่าการตั้งค่าเป็นค่าล่าสุด",
- "scanning_library": "แสกนคลัง",
+ "scanning_library": "กำลังสแกนคลัง",
"search_jobs": "ค้นหางาน",
"send_welcome_email": "ส่งอีเมลต้อนรับ",
"server_external_domain_settings": "โดเมนภายนอก",
@@ -236,9 +237,11 @@
"storage_template_migration": "การย้ายเทมเพลตที่เก็บข้อมูล",
"storage_template_migration_description": "ใช้{template}ปัจจุบันกับสื่อที่อัพโหลดก่อนหน้านี้",
"storage_template_migration_job": "",
+ "storage_template_path_length": "ขีดจำกัดของความยาวพาธโดยประมาณ: {length, number}/{limit, number}",
"storage_template_settings": "เทมเพลตการจัดเก็บข้อมูล",
- "storage_template_settings_description": "จัดการโครงสร้างโฟลเดอร์และชื่อไฟล์ที่อัพโหลด",
+ "storage_template_settings_description": "จัดการโครงสร้างโฟลเดอร์และชื่อไฟล์ที่อัปโหลด",
"system_settings": "การตั้งค่าระบบ",
+ "template_email_preview": "ตัวอย่าง",
"theme_custom_css_settings": "CSS กําหนดเอง",
"theme_custom_css_settings_description": "Cascading Style Sheets ช่วยให้ปรับแต่งเค้าโครง Immich ได้",
"theme_settings": "การตั้งค่าธีม",
@@ -279,17 +282,17 @@
"transcoding_optimal_description": "วีดิโอมีความคมชัดสูงกว่าเป้าหมายหรืออยู่ในรูปแบบที่รับไม่ได้",
"transcoding_preferred_hardware_device": "",
"transcoding_preferred_hardware_device_description": "",
- "transcoding_preset_preset": "",
+ "transcoding_preset_preset": "พรีเซ็ต (-preset)",
"transcoding_preset_preset_description": "",
"transcoding_reference_frames": "",
"transcoding_reference_frames_description": "",
"transcoding_required_description": "",
- "transcoding_settings": "",
+ "transcoding_settings": "การตั้งค่าการแปลงไฟล์วิดีโอ",
"transcoding_settings_description": "จัดการข้อมูลความคมชัดและแบบไฟล์วิดีโอ",
"transcoding_target_resolution": "เป้าหมายความคมชัด",
"transcoding_target_resolution_description": "ความคมชัดที่สูงกว่าจะเก็บรายละเอียดดีกว่าแต่ใช้เวลาแปลงไฟล์นานกว่า ขนาดไฟล์ใหญ่กว่า และลดการตอบสนองของแอป",
"transcoding_temporal_aq": "",
- "transcoding_temporal_aq_description": "",
+ "transcoding_temporal_aq_description": "เฉพาะ NVENC เท่านั้น เพิ่มคุณภาพของฉากที่มีรายละเอียดสูงและการเคลื่อนไหวต่ำ อาจไม่รองรับอุปกรณ์ที่เก่ากว่า",
"transcoding_threads": "เธรด",
"transcoding_threads_description": "ค่ายิ่งเยอะจะแปลงไฟล์เร็วกว่า แต่จะเหลือพื้นที่ให้เซิร์ฟเวอร์ประมวลผลงานอื่นน้อยลงเมื่อทํางานนี้ ค่านี้ไม่ควรมากกว่าจํานวน CPU core จะประมวลผลเต็มที่เมื่อตั้งเป็น 0",
"transcoding_tone_mapping": "การฉายโทนสี",
@@ -304,8 +307,11 @@
"trash_number_of_days_description": "จํานวนวันที่เก็บสื่อไว้ในถังขยะก่อนที่จะลบถาวร",
"trash_settings": "การตั้งค่าถังขยะ",
"trash_settings_description": "จัดการการตั้งค่าถังขยะ",
+ "user_cleanup_job": "ล้างผู้ใช้",
+ "user_delete_delay": "บัญชีและสื่อของ {user} จะถูกตั้งเวลาสำหรับการลบถาวรใน {delay, plural, one {# วัน} other {# วัน}}",
"user_delete_delay_settings": "ลบการถ่วงเวลา",
"user_delete_delay_settings_description": "จํานวนวันหลังจากที่เอาออกเพื่อลบบัญชีผู้ใช้และสื่อถาวร งานลบบัญชีผู้ใช้ทํางานทุกเที่ยงคืนเพื่อตรวจสอบผู้ใช้ที่พร้อมที่จะถูกลบข้อมูลแล้ว การตั้งค่าครั้งนี้จะมีผลครั้งต่อไป",
+ "user_delete_immediately": "บัญชีและสื่อของ {user} จะอยู่ในคิวสำหรับการลบถาวร โดยทันที",
"user_settings": "การตั้งค่าผู้ใช้",
"user_settings_description": "จัดการการตั้งค่าผู้ใช้",
"version_check_enabled_description": "เช็ค GitHub เป็นระยะ ๆ เพื่อตรวจสอบรุ่นใหม่",
@@ -328,13 +334,19 @@
"album_options": "ตัวเลือกอัลบั้ม",
"album_updated": "อัพเดทอัลบั้มแล้ว",
"album_updated_setting_description": "แจ้งเตือนอีเมลเมื่ออัลบั้มที่แชร์กันมีสื่อใหม่",
+ "album_user_left": "ออกจาก {album}",
+ "album_with_link_access": "อนุญาตให้ทุกคนที่มีลิงก์สามารถดูรูปภาพและผู้คนที่อยู่ในอัลบั้มนี้",
"albums": "อัลบั้ม",
+ "albums_count": "{count, plural, one {{count, number} อัลบั้ม} other {{count, number} อัลบั้ม}}",
"all": "ทั้งหมด",
"all_albums": "อัลบั้มทั้งหมด",
"all_people": "ทุกคน",
"all_videos": "วิดีโอทั้งหมด",
"allow_dark_mode": "อนุญาตโหมดมืด",
"allow_edits": "อนุญาตให้แก้ไขได้",
+ "allow_public_user_to_download": "อนุญาตให้ผู้ใช้สาธารณะดาวน์โหลดได้",
+ "allow_public_user_to_upload": "อนุญาตให้ผู้ใช้สาธารณะอัปโหลดได้",
+ "anti_clockwise": "ทวนเข็มนาฬิกา",
"api_key": "กุญแจ API",
"api_keys": "กุญแจ API",
"app_settings": "การตั้งค่าแอป",
@@ -342,8 +354,12 @@
"archive": "เก็บถาวร",
"archive_or_unarchive_photo": "เก็บ/ไม่เก็บภาพถาวร",
"are_these_the_same_person": "เป็นคนเดียวกันหรือไม่?",
+ "are_you_sure_to_do_this": "คุณแน่ใจว่าต้องการทำสิ่งนี้หรือไม่?",
+ "asset_added_to_album": "เพิ่มไปยังอัลบั้มแล้ว",
+ "asset_adding_to_album": "กำลังเพิ่มไปยังอัลบั้ม...",
"asset_offline": "สื่อออฟไลน์",
"asset_skipped": "ข้ามแล้ว",
+ "asset_skipped_in_trash": "ในถังขยะ",
"asset_uploaded": "อัปโหลดแล้ว",
"asset_uploading": "กำลังอัปโหลด...",
"assets": "สื่อ",
@@ -373,10 +389,14 @@
"clear_message": "",
"clear_value": "",
"close": "ปิด",
- "collapse_all": "",
+ "collapse": "ย่อ",
+ "collapse_all": "ย่อทั้งหมด",
+ "color": "สี",
"color_theme": "",
+ "comment_deleted": "ลบความคิดเห็นแล้ว",
"comment_options": "",
- "comments_are_disabled": "",
+ "comments_and_likes": "ความคิดเห็นและการถูกใจ",
+ "comments_are_disabled": "ความคิดเห็นถูกปิดใช้งาน",
"confirm": "ยืนยัน",
"confirm_admin_password": "ยืนยันรหัสผ่านผู้ดูแลระบบ",
"confirm_password": "ยืนยันรหัสผ่าน",
@@ -384,6 +404,7 @@
"context": "บริบท",
"continue": "ต่อไป",
"copied_image_to_clipboard": "คัดลอกภาพไปยังคลิปบอร์ดแล้ว",
+ "copied_to_clipboard": "คัดลอกไปยังคลิปบอร์ดแล้ว!",
"copy_error": "คัดลอกข้อผิดพลาด",
"copy_file_path": "คัดลอกพาธของไฟล์",
"copy_image": "คัดลอกภาพ",
diff --git a/i18n/tr.json b/i18n/tr.json
index b1e918afef..7c667901c2 100644
--- a/i18n/tr.json
+++ b/i18n/tr.json
@@ -1,5 +1,5 @@
{
- "about": "Yenile",
+ "about": "Hakkında",
"account": "Hesap",
"account_settings": "Hesap Ayarları",
"acknowledge": "Onayla",
@@ -28,7 +28,7 @@
"added_to_favorites": "Favorilere eklendi",
"added_to_favorites_count": "{count, number} fotoğraf favorilere eklendi",
"admin": {
- "add_exclusion_pattern_description": "Dışlama desenleri ekleyin. *, ** ve ? kullanılarak Globbing (temsili yer doldurucu karakter) desteklenir. Farzedelim \"Raw\" adlı bir dizininiz var, içinde ki tüm dosyaları yoksaymak için \"**/Raw/**\" şeklinde yazabilirsiniz. \".tif\" ile biten tüm dosyaları yoksaymak için \"**/*.tif\" yazabilirsiniz. Mutlak yolu yoksaymak için \"/yoksayılacak/olan/yol/**\" şeklinde yazabilirsiniz.",
+ "add_exclusion_pattern_description": "Hariç tutma desenleri ekleyin. *, ** ve ? kullanılarak Globbing (temsili yer doldurucu karakter) desteklenir. Farzedelim \"Raw\" adlı bir dizininiz var, içinde ki tüm dosyaları yoksaymak için \"**/Raw/**\" şeklinde yazabilirsiniz. \".tif\" ile biten tüm dosyaları yoksaymak için \"**/*.tif\" yazabilirsiniz. Mutlak yolu yoksaymak için \"/yoksayılacak/olan/yol/**\" şeklinde yazabilirsiniz.",
"asset_offline_description": "Bu harici kütüphane varlığı artık diskte bulunmuyor ve çöp kutusuna taşındı. Dosya kütüphane içinde taşındıysa, yeni karşılık gelen varlık için zaman çizelgenizi kontrol edin. Bu varlığı geri yüklemek için lütfen aşağıdaki dosya yolunun Immich tarafından erişilebilir olduğundan emin olun ve kütüphaneyi tarayın.",
"authentication_settings": "Yetkilendirme Ayarları",
"authentication_settings_description": "Şifre, OAuth, ve diğer yetkilendirme ayarlarını yönet",
@@ -131,7 +131,7 @@
"machine_learning_smart_search_description": "Fotoğrafları CLIP kullanarak semantik olarak ara",
"machine_learning_smart_search_enabled": "Akıllı aramayı etkinleştir",
"machine_learning_smart_search_enabled_description": "Eğer devre dışı bırakılırsa fotoğraflar akıllı arama için işlenmeyecek.",
- "machine_learning_url_description": "Makine öğrenmesi sunucusunun URL'si",
+ "machine_learning_url_description": "Makine öğrenimi sunucusunun URL'si. Birden fazla URL sağlanırsa, ilkinden sonuna doğru, biri başarılı bir şekilde yanıt verene kadar her sunucu tek tek denenir.",
"manage_concurrency": "Aynı anda çalışmayı yönet",
"manage_log_settings": "Günlük ayarlarını yönet",
"map_dark_style": "Koyu mod",
@@ -252,10 +252,12 @@
"tag_cleanup_job": "Etiket temizleme",
"template_email_available_tags": "Şablonunuzda şu değişkenler kullanılabilir: {tags}",
"template_email_if_empty": "Şablon boş ise, varsayılan e-posta kullanılacak.",
+ "template_email_invite_album": "Albüm Daveti Şablonu",
"template_email_preview": "Ön izleme",
"template_email_settings": "Eposta Taslakları",
"template_email_settings_description": "Özel e-posta bildirim şablonlarını yönet",
"template_email_update_album": "Albüm Şablonunu Güncelle",
+ "template_email_welcome": "Hoş geldiniz e-posta şablonu",
"template_settings": "Bildirim Şablonları",
"template_settings_description": "Bildirim şablonlarını yönet.",
"theme_custom_css_settings": "Özel CSS",
@@ -1139,6 +1141,7 @@
"server_version": "Sunucu versiyonu",
"set": "Ayarla",
"set_as_album_cover": "Albüm resmi olarak ayarla",
+ "set_as_featured_photo": "Öne çıkan fotoğraf olarak ayarla",
"set_as_profile_picture": "Profil resmi olarak ayarla",
"set_date_of_birth": "Doğum tarihini ayarla",
"set_profile_picture": "Profil resmini ayarla",
@@ -1194,6 +1197,7 @@
"sort_items": "Öğe sayısı",
"sort_modified": "Değişiklik tarihi",
"sort_oldest": "En eski fotoğraf",
+ "sort_people_by_similarity": "İnsanları benzerliğe göre sırala",
"sort_recent": "En yeni fotoğraf",
"sort_title": "Başlık",
"source": "Kaynak",
diff --git a/i18n/uk.json b/i18n/uk.json
index 806ae394f8..dbc14f2e2c 100644
--- a/i18n/uk.json
+++ b/i18n/uk.json
@@ -289,6 +289,8 @@
"transcoding_constant_rate_factor": "Коефіцієнт постійної ставки (-crf)",
"transcoding_constant_rate_factor_description": "Рівень якості відео. Зазвичай значення для H.264 - 23, HEVC - 28, VP9 - 31, AV1 - 35. Нижче значення краще, але створює більші файли.",
"transcoding_disabled_description": "Не транскодуйте відео, це може призвести до проблем з відтворенням на деяких клієнтах",
+ "transcoding_encoding_options": "Параметри кодування",
+ "transcoding_encoding_options_description": "Налаштуйте кодеки, роздільну здатність, якість та інші параметри для закодованих відео",
"transcoding_hardware_acceleration": "Апаратне прискорення",
"transcoding_hardware_acceleration_description": "Експериментальний режим: значно швидший, але при однаковому бітрейті може мати меншу якість",
"transcoding_hardware_decoding": "Апаратне декодування",
@@ -301,6 +303,8 @@
"transcoding_max_keyframe_interval": "Максимальний інтервал ключових кадрів",
"transcoding_max_keyframe_interval_description": "Встановлює максимальну відстань між ключовими кадрами. Нижчі значення погіршують ефективність стиснення, але покращують час пошуку і можуть покращити якість в сценах з швидкими рухами. Значення 0 автоматично встановлює це значення.",
"transcoding_optimal_description": "Відео з роздільною здатністю вище цільової або не в прийнятому форматі",
+ "transcoding_policy": "Політика транскодування",
+ "transcoding_policy_description": "Встановіть, коли відео буде транскодовано",
"transcoding_preferred_hardware_device": "Переважний апаратний пристрій",
"transcoding_preferred_hardware_device_description": "Застосовується тільки до VAAPI і QSV. Встановлює вузол DRI, який використовується для апаратного транскодування.",
"transcoding_preset_preset": "Параметр (-preset)",
@@ -309,7 +313,7 @@
"transcoding_reference_frames_description": "Кількість кадрів, на які посилається при стисненні даного кадру. Вищі значення покращують ефективність стиснення, але збільшують час кодування. Значення 0 автоматично налаштовує це значення.",
"transcoding_required_description": "Лише відео, що не у прийнятому форматі",
"transcoding_settings": "Налаштування транскодування відео",
- "transcoding_settings_description": "Керування роздільною здатністю та кодуванням відеофайлів",
+ "transcoding_settings_description": "Керування які відео транскодувати і як їх обробляти",
"transcoding_target_resolution": "Роздільна здатність",
"transcoding_target_resolution_description": "Вищі роздільні здатності можуть зберігати більше деталей, але займають більше часу на кодування, мають більші розміри файлів і можуть зменшити швидкість роботи додатку.",
"transcoding_temporal_aq": "Тимчасове AQ",
@@ -755,6 +759,7 @@
"get_help": "Отримати допомогу",
"getting_started": "Початок",
"go_back": "Повернутися назад",
+ "go_to_folder": "Перейти до папки",
"go_to_search": "Перейти до пошуку",
"group_albums_by": "Групувати альбоми за...",
"group_no": "Без групування",
@@ -1141,6 +1146,7 @@
"server_version": "Версія сервера",
"set": "Встановіть",
"set_as_album_cover": "Встановити як обкладинку альбому",
+ "set_as_featured_photo": "Встановити як основне фото",
"set_as_profile_picture": "Встановити як зображення профілю",
"set_date_of_birth": "Встановити дату народження",
"set_profile_picture": "Встановити зображення профілю",
@@ -1196,6 +1202,7 @@
"sort_items": "Кількість елементів",
"sort_modified": "Дата зміни",
"sort_oldest": "Старі фото",
+ "sort_people_by_similarity": "Сортувати людей за схожістю",
"sort_recent": "Нещодавні",
"sort_title": "Заголовок",
"source": "Вихідний код",
diff --git a/i18n/vi.json b/i18n/vi.json
index 9c30ea2935..ca393b2b25 100644
--- a/i18n/vi.json
+++ b/i18n/vi.json
@@ -1287,7 +1287,7 @@
"variables": "Các tham số",
"version": "Phiên bản",
"version_announcement_closing": "Bạn của bạn, Alex",
- "version_announcement_message": "Chào bạn! Một phiên bản mới của Immich đã phát hành. Vui lòng dành thời gian để xem danh sách thay đổi để đảm bảo cấu hình của bạn được cập nhật để tránh lỗi cấu hình sai, đặc biệt nếu bạn sử dụng WatchTower hoặc bất kỳ cơ chế tự động cập nhật Immich của bạn.",
+ "version_announcement_message": "Chào bạn! Một phiên bản mới của Immich đã phát hành. Vui lòng dành thời gian để xem danh sách thay đổi để đảm bảo cấu hình của bạn được cập nhật để tránh lỗi cấu hình sai, đặc biệt nếu bạn sử dụng WatchTower hoặc bất kỳ cơ chế tự động cập nhật Immich của bạn.",
"version_history": "Lịch sử phiên bản",
"version_history_item": "Đã cài đặt {version} vào {date}",
"video": "Video",
diff --git a/i18n/zh_Hant.json b/i18n/zh_Hant.json
index d343f89544..0cdbb09216 100644
--- a/i18n/zh_Hant.json
+++ b/i18n/zh_Hant.json
@@ -1,5 +1,5 @@
{
- "about": "重新整理",
+ "about": "關於",
"account": "帳號",
"account_settings": "帳號設定",
"acknowledge": "收到",
@@ -250,6 +250,8 @@
"storage_template_user_label": "{label} 是使用者的儲存標籤",
"system_settings": "系統設定",
"tag_cleanup_job": "清理標記",
+ "template_email_available_tags": "您可以在您的範本中使用以下變數:{tags}",
+ "template_email_if_empty": "如果範本為空,將使用預設電子郵件。",
"template_email_invite_album": "邀請項目範本",
"template_email_preview": "預覽",
"template_email_settings": "Email範本",
@@ -257,6 +259,7 @@
"template_email_update_album": "更新向本範本",
"template_email_welcome": "歡迎Email範本",
"template_settings": "通知範本",
+ "template_settings_description": "管理通知自訂範本。",
"theme_custom_css_settings": "自訂 CSS",
"theme_custom_css_settings_description": "可以用層疊樣式表(CSS)來自訂 Immich 的設計。",
"theme_settings": "主題",
@@ -731,6 +734,7 @@
"external": "外部",
"external_libraries": "外部圖庫",
"face_unassigned": "未指定",
+ "failed_to_load_assets": "無法加載檔案",
"favorite": "收藏",
"favorite_or_unfavorite_photo": "收藏或取消收藏照片",
"favorites": "收藏",
@@ -1030,6 +1034,7 @@
"reassigned_assets_to_new_person": "已將 {count, plural, other {# 個檔案}}重新指定給一位新人物",
"reassing_hint": "將選定的檔案分配給己存在的人物",
"recent": "最近",
+ "recent-albums": "最近相簿",
"recent_searches": "最近搜尋項目",
"refresh": "重新整理",
"refresh_encoded_videos": "重新整理已編碼的影片",
@@ -1051,6 +1056,7 @@
"remove_from_album": "從相簿中移除",
"remove_from_favorites": "從收藏中移除",
"remove_from_shared_link": "從共享連結中移除",
+ "remove_url": "移除 URL",
"remove_user": "移除用戶",
"removed_api_key": "已移除 API 金鑰:{name}",
"removed_from_archive": "從封存中移除",
@@ -1190,6 +1196,7 @@
"sort_items": "項目數量",
"sort_modified": "日期已修改",
"sort_oldest": "最舊的照片",
+ "sort_people_by_similarity": "按相似度排序人員",
"sort_recent": "最新的照片",
"sort_title": "標題",
"source": "來源",
diff --git a/i18n/zh_SIMPLIFIED.json b/i18n/zh_SIMPLIFIED.json
index d2f7a3b90c..12599f385a 100644
--- a/i18n/zh_SIMPLIFIED.json
+++ b/i18n/zh_SIMPLIFIED.json
@@ -37,24 +37,24 @@
"background_task_job": "后台任务",
"backup_database": "备份数据库",
"backup_database_enable_description": "启用数据库备份",
- "backup_keep_last_amount": "要保留的先前备份数量",
+ "backup_keep_last_amount": "要保留的历史备份数量",
"backup_settings": "备份设置",
"backup_settings_description": "管理数据库备份设置",
"check_all": "检查全部",
"cleared_jobs": "已清理任务:{job}",
"config_set_by_file": "当前配置已通过配置文件设置",
"confirm_delete_library": "确定要删除图库“{library}”吗?",
- "confirm_delete_library_assets": "确定要删除该图库吗?这将删除所有包含在Immich中的{count, plural, one {#个项目} other {#个项目}},且无法撤销。但文件仍将保留在磁盘中。",
- "confirm_email_below": "输入“{email}”来确认",
+ "confirm_delete_library_assets": "确定要删除该图库吗?这将删除所有包含在 Immich 中的{count, plural, one {#个项目} other {#个项目}},且无法撤销。但文件仍将保留在磁盘中。",
+ "confirm_email_below": "请输入“{email}”以进行确认",
"confirm_reprocess_all_faces": "确定要对全部照片重新进行面部识别吗?这将同时清除所有已命名人物。",
"confirm_user_password_reset": "确定要重置用户“{user}”的密码吗?",
"create_job": "创建任务",
- "cron_expression": "Cron表达式",
- "cron_expression_description": "使用 cron 格式设置扫描间隔。更多详细信息请参阅 Crontab Guru",
+ "cron_expression": "Cron 表达式",
+ "cron_expression_description": "使用 Cron 格式设置扫描间隔。更多详细信息请参阅 Crontab Guru",
"cron_expression_presets": "Cron 表达式预设",
"disable_login": "禁用登录",
"duplicate_detection_job_description": "对照片进行机器学习处理来检测相似项目,依赖于智能搜索",
- "exclusion_pattern_description": "排除规则允许在扫描图库时忽略文件和文件夹。如果有包含不想导入的文件的文件夹,例如RAW文件,排除规则将非常有用。",
+ "exclusion_pattern_description": "排除规则允许在扫描图库时忽略文件和文件夹。如果有包含不想导入的文件的文件夹,例如 RAW 文件,排除规则将非常有用。",
"external_library_created_at": "外部图库(创建于{date})",
"external_library_management": "外部图库管理",
"face_detection": "人脸检测",
@@ -64,12 +64,12 @@
"force_delete_user_warning": "警告:这将立即移除用户以及其所有项目。该操作无法撤销且文件无法恢复。",
"forcing_refresh_library_files": "强制刷新所有图库文件",
"image_format": "格式",
- "image_format_description": "WebP 文件比 JPEG 文件小,但编码速度较慢。",
+ "image_format_description": "WebP 文件体积较 JPEG 文件更小,但编码速度较慢。",
"image_prefer_embedded_preview": "嵌入式预览",
- "image_prefer_embedded_preview_setting_description": "在可用时,使用 RAW 照片的嵌入式预览作为图像处理的输入。这可能为某些图像产生更准确的颜色,但预览的质量取决于相机,图像可能具有更多的压缩失真。",
+ "image_prefer_embedded_preview_setting_description": "优先使用 RAW 照片的嵌入式预览作为图像处理的输入。可以提升某些影像的颜色准确度,但嵌入式预览的质量取决于相机,图像可能压缩失真更严重。",
"image_prefer_wide_gamut": "广色域",
- "image_prefer_wide_gamut_setting_description": "对缩略图使用 Display P3。这可以更好地保留宽色域图像的鲜艳度,但在旧设备和旧版浏览器上图像可能会显得不同。sRGB 图像保持为 sRGB 以避免颜色偏移。",
- "image_preview_description": "去除元数据的中尺寸图像,用于单一项目查看和机器学习",
+ "image_prefer_wide_gamut_setting_description": "对缩略图使用 Display P3。这可以更好地保留宽色域图像的鲜艳度,但在旧设备和旧版浏览器上图像可能会显得不同。sRGB 图像应保存为 sRGB 以避免颜色偏移。",
+ "image_preview_description": "剥离元数据的中尺寸图像,用于单一项目查看和机器学习",
"image_preview_quality_description": "预览质量从 1 到 100。越高越好,但会产生更大的文件,并且会降低系统的响应能力。设置较低的值可能会影响机器学习的质量。",
"image_preview_title": "预览设置",
"image_quality": "质量",
@@ -77,7 +77,7 @@
"image_resolution_description": "更高的分辨率可以保留更多细节,但编码时间更长,文件体积更大,而且会降低系统的响应速度。",
"image_settings": "图片设置",
"image_settings_description": "管理生成图像的质量和分辨率",
- "image_thumbnail_description": "去除元数据的小缩略图,用于浏览主时间线等照片组",
+ "image_thumbnail_description": "剥离元数据的小缩略图,用于浏览主时间线等照片组",
"image_thumbnail_quality_description": "缩略图质量从 1 到 100。越高越好,但会产生更大的文件,并且会降低系统的响应能力。",
"image_thumbnail_title": "缩略图设置",
"job_concurrency": "{job}并发",
@@ -103,12 +103,12 @@
"logging_enable_description": "启用日志记录",
"logging_level_description": "启用的日志级别。",
"logging_settings": "日志",
- "machine_learning_clip_model": "CLIP模型",
- "machine_learning_clip_model_description": "支持的CLIP模型名称见 此处。注意,更换模型后需要对所有图片重新运行“智能检索”任务。",
+ "machine_learning_clip_model": "CLIP 模型",
+ "machine_learning_clip_model_description": "请于 此处查看支持的 CLIP 模型名称。注意,更换模型后需要对所有图片重新运行“智能搜索”任务。",
"machine_learning_duplicate_detection": "重复项检测",
"machine_learning_duplicate_detection_enabled": "启用重复检测",
"machine_learning_duplicate_detection_enabled_description": "如果禁用此功能,完全相同的项目仍将被去重。",
- "machine_learning_duplicate_detection_setting_description": "使用CLIP向量匹配(关键词相似度)来查找可能的重复项",
+ "machine_learning_duplicate_detection_setting_description": "使用 CLIP 向量匹配(关键词相似度)来查找可能的重复项",
"machine_learning_enabled": "启用机器学习",
"machine_learning_enabled_description": "如果禁用,无论以下如何设置,所有机器学习功能将被禁用。",
"machine_learning_facial_recognition": "人脸识别",
@@ -128,7 +128,7 @@
"machine_learning_settings": "机器学习设置",
"machine_learning_settings_description": "管理机器学习功能和设置",
"machine_learning_smart_search": "智能搜索",
- "machine_learning_smart_search_description": "使用CLIP以文搜图、智能搜图",
+ "machine_learning_smart_search_description": "使用 CLIP 以文搜图、智能搜图",
"machine_learning_smart_search_enabled": "启用智能搜索",
"machine_learning_smart_search_enabled_description": "如果禁用,则不会对图像编码以用于智能搜索。",
"machine_learning_url_description": "机器学习服务器的 URL。如果提供多个 URL,则将按依次尝试连接每个服务器,直到有一个服务器成功响应为止。",
@@ -136,9 +136,9 @@
"manage_log_settings": "管理日志设置",
"map_dark_style": "深色模式",
"map_enable_description": "启用地图功能",
- "map_gps_settings": "地图与GPS设置",
- "map_gps_settings_description": "管理地图与GPS(反向地理编码)设置",
- "map_implications": "地图功能依赖于外部瓦片服务(tiles.immich.cloud)",
+ "map_gps_settings": "地图与 GPS 设置",
+ "map_gps_settings_description": "管理地图与 GPS(反向地理编码)设置",
+ "map_implications": "地图功能依赖于外部地形贴图服务(tiles.immich.cloud)",
"map_light_style": "浅色模式",
"map_manage_reverse_geocoding_settings": "管理反向地理编码设置",
"map_reverse_geocoding": "反向地理编码",
@@ -148,9 +148,9 @@
"map_settings_description": "管理地图设置",
"map_style_description": "地图主题 style.json 的 URL",
"metadata_extraction_job": "提取元数据",
- "metadata_extraction_job_description": "从每个项目中提取元数据信息,如GPS、人脸和分辨率",
+ "metadata_extraction_job_description": "从每个项目中提取元数据信息,如 GPS、人脸和分辨率",
"metadata_faces_import_setting": "启用人脸导入",
- "metadata_faces_import_setting_description": "从图片的EXIF和辅助元数据中导入人脸",
+ "metadata_faces_import_setting_description": "从图片的 EXIF 和辅助元数据中导入人脸",
"metadata_settings": "元数据设置",
"metadata_settings_description": "管理元数据设置",
"migration_job": "迁移",
@@ -159,32 +159,32 @@
"no_pattern_added": "无已添加规则",
"note_apply_storage_label_previous_assets": "提示:要将存储标签应用于之前上传的项目,需要运行",
"note_cannot_be_changed_later": "注意:此项一旦设定,以后无法更改!",
- "note_unlimited_quota": "提示:输入0表示无限制",
+ "note_unlimited_quota": "提示:输入 0 表示无限配额",
"notification_email_from_address": "发件人地址",
- "notification_email_from_address_description": "发件人邮箱,例如:“张三 <12345@qq.com>”",
+ "notification_email_from_address_description": "发件人邮箱,例如:“张三<12345@qq.com>”",
"notification_email_host_description": "服务器地址(例如:smtp.qq.com)",
"notification_email_ignore_certificate_errors": "忽略证书错误",
- "notification_email_ignore_certificate_errors_description": "忽略TLS证书验证错误(不建议)",
+ "notification_email_ignore_certificate_errors_description": "忽略 TLS 证书验证错误(不建议)",
"notification_email_password_description": "与邮件服务器进行身份验证时使用的密码",
"notification_email_port_description": "邮件服务器端口(例如25、465或587)",
"notification_email_sent_test_email_button": "发送测试邮件并保存",
"notification_email_setting_description": "发送邮件通知设置",
"notification_email_test_email": "发送测试邮件",
"notification_email_test_email_failed": "发送测试邮件失败,请检查你输入的信息",
- "notification_email_test_email_sent": "已向{email}发送了一封测试邮件,请注意查收。",
+ "notification_email_test_email_sent": "已向 {email} 发送了一封测试邮件,请注意查收。",
"notification_email_username_description": "与邮件服务器进行身份验证时使用的用户名",
"notification_enable_email_notifications": "启用邮件通知",
"notification_settings": "通知设置",
"notification_settings_description": "管理通知设置,包括邮件",
"oauth_auto_launch": "自动启动",
- "oauth_auto_launch_description": "在登录页面自动启动OAuth登录",
+ "oauth_auto_launch_description": "在登录页面自动启动 OAuth 登录",
"oauth_auto_register": "自动注册",
- "oauth_auto_register_description": "使用OAuth登录后自动注册新用户",
- "oauth_button_text": "按钮名称",
- "oauth_client_id": "客户端ID",
+ "oauth_auto_register_description": "使用 OAuth 登录后自动注册为新用户",
+ "oauth_button_text": "按钮文本",
+ "oauth_client_id": "客户端 ID",
"oauth_client_secret": "客户端密钥",
- "oauth_enable_description": "使用OAuth登录",
- "oauth_issuer_url": "发行方网址",
+ "oauth_enable_description": "使用 OAuth 登录",
+ "oauth_issuer_url": "提供方 URL",
"oauth_mobile_redirect_uri": "移动端重定向 URI",
"oauth_mobile_redirect_uri_override": "移动端重定向 URI 覆盖",
"oauth_mobile_redirect_uri_override_description": "当 OAuth 提供商不允许使用移动 URI 时启用,如“'{callback}'”",
@@ -192,7 +192,7 @@
"oauth_profile_signing_algorithm_description": "用于签署用户配置文件的算法。",
"oauth_scope": "范围",
"oauth_settings": "OAuth",
- "oauth_settings_description": "管理OAuth登录设置",
+ "oauth_settings_description": "管理 OAuth 登录设置",
"oauth_settings_more_details": "关于此功能的更多详细信息,请查看相关文档。",
"oauth_signing_algorithm": "签名算法",
"oauth_storage_label_claim": "存储标签声明",
@@ -200,7 +200,7 @@
"oauth_storage_quota_claim": "存储配额声明",
"oauth_storage_quota_claim_description": "自动将用户的存储配额设置为此项的值。",
"oauth_storage_quota_default": "默认存储配额(GB)",
- "oauth_storage_quota_default_description": "没有提供声明时,要使用的配额大小(GB)(输入0表示无限制)。",
+ "oauth_storage_quota_default_description": "未提供声明时使用的配额(GB)(0表示无限制)。",
"offline_paths": "离线文件",
"offline_paths_description": "这可能是由于手动删除了不属于外部图库的文件。",
"password_enable_description": "使用邮箱和密码登录",
@@ -234,7 +234,7 @@
"slideshow_duration_description": "显示每张图像的秒数",
"smart_search_job_description": "对项目进行机器学习处理以用于智能搜索",
"storage_template_date_time_description": "使用项目的创建时间戳作为日期时间信息",
- "storage_template_date_time_sample": "采样时间{date}",
+ "storage_template_date_time_sample": "采样时间 {date}",
"storage_template_enable_description": "启用存储模板",
"storage_template_hash_verification_enabled": "哈希校验已启用",
"storage_template_hash_verification_enabled_description": "启用哈希校验,如果您不知道此项的作用请不要禁用此功能",
@@ -260,17 +260,17 @@
"template_email_welcome": "欢迎邮件模板",
"template_settings": "通知模板",
"template_settings_description": "管理自定义通知模板。",
- "theme_custom_css_settings": "自定义CSS",
- "theme_custom_css_settings_description": "可以通过CSS自定义Immich外观。",
+ "theme_custom_css_settings": "自定义 CSS",
+ "theme_custom_css_settings_description": "可以通过 CSS 自定义 Immich 外观。",
"theme_settings": "主题设置",
- "theme_settings_description": "管理Immich web界面的定制",
+ "theme_settings_description": "自定义 Immich Web 界面",
"these_files_matched_by_checksum": "这些文件与校验匹配",
"thumbnail_generation_job": "生成缩略图",
"thumbnail_generation_job_description": "为每个项目生成不同尺寸的缩略图,并为每个人物生成缩略图",
- "transcoding_acceleration_api": "加速器API",
- "transcoding_acceleration_api_description": "这个API将与您的设备交互,以加速转码过程。此设置为“尽力而为”——如果转码失败,将回到软件转码。VP9是否工作取决于您的硬件配置。",
+ "transcoding_acceleration_api": "加速器 API",
+ "transcoding_acceleration_api_description": "这个 API 将会与你的设备进行交互,以加速转码过程。此设置为“尽力而为”——如果转码失败,将会回退到软件转码。VP9 是否工作取决于你的硬件配置。",
"transcoding_acceleration_nvenc": "NVENC(需要 NVIDIA GPU)",
- "transcoding_acceleration_qsv": "Quick Sync(需要Intel 7代及以上的 CPU)",
+ "transcoding_acceleration_qsv": "Quick Sync(需要 Intel 7代及以上的 CPU)",
"transcoding_acceleration_rkmpp": "RKMPP(仅适用于 Rockchip SOCs)",
"transcoding_acceleration_vaapi": "VAAPI",
"transcoding_accepted_audio_codecs": "支持的音频编解码器",
@@ -281,14 +281,16 @@
"transcoding_accepted_video_codecs_description": "选择不需要转码的视频编解码器。仅用于特定的转码策略。",
"transcoding_advanced_options_description": "大多数用户不需要更改的选项",
"transcoding_audio_codec": "音频编解码器",
- "transcoding_audio_codec_description": "Opus是最高质量的选择,但与旧设备或软件的兼容性较低。",
+ "transcoding_audio_codec_description": "Opus 是最高质量的选择,但与旧设备或软件的兼容性较低。",
"transcoding_bitrate_description": "视频超过最大码率或格式不兼容",
- "transcoding_codecs_learn_more": "要了解此处使用的术语详情,请参见FFmpeg文档H.264编解码、HEVC编解码 和 VP9编解码。",
+ "transcoding_codecs_learn_more": "要了解此处使用的术语详情,请参见 FFmpeg 文档:H.264 编解码、HEVC 编解码 和 VP9 编解码。",
"transcoding_constant_quality_mode": "恒定质量模式",
- "transcoding_constant_quality_mode_description": "ICQ比CQP更好,但一些硬件加速设备不支持这种模式。当使用基于质量的编码时,此选项将为首选指定的模式。使用NVENC时忽略此选项,因为NVENC不支持ICQ。",
+ "transcoding_constant_quality_mode_description": "ICQ 比 CQP 更好,但部分硬件加速设备不支持这种模式。当使用基于质量的编码时,此选项将为首选指定的模式。由于 NVENC 不支持 ICQ,选择 NVENC 时将忽略此选项。",
"transcoding_constant_rate_factor": "恒定码率系数(-crf)",
- "transcoding_constant_rate_factor_description": "视频质量水平。H.264的典型值为23,HEVC为28,VP9为31,AV1为35。越低画面质量越好,但产生的文件越大。",
+ "transcoding_constant_rate_factor_description": "视频质量级别。H.264下普遍将其设为 23,HEVC 为 28,VP9 为 31,AV1 为 35。数值越低,则画面质量越好,但产生的文件体积更大。",
"transcoding_disabled_description": "不要对任何视频进行转码,在某些客户端上可能会无法播放",
+ "transcoding_encoding_options": "编码选项",
+ "transcoding_encoding_options_description": "设置编码视频的编解码器、分辨率、质量和其他选项",
"transcoding_hardware_acceleration": "硬件加速",
"transcoding_hardware_acceleration_description": "(实验性功能)速度更快,但在相同码率下质量会降低",
"transcoding_hardware_decoding": "硬件解码",
@@ -297,36 +299,38 @@
"transcoding_max_b_frames": "最大B帧数",
"transcoding_max_b_frames_description": "较高的值可以提高压缩效率,但会减慢编码速度。可能与旧设备上的硬件加速不兼容。0表示将禁用B帧,-1表示将自动设置此参数。",
"transcoding_max_bitrate": "最高码率",
- "transcoding_max_bitrate_description": "设置最大比特率可以使文件大小更可控,而对质量的影响很小。在720p时,VP9或HEVC的典型值为2600k,而H.264的典型值则为4500k。如果此项设置为0,则不限制最大比特率。",
+ "transcoding_max_bitrate_description": "设置最大比特率可在对输出质量影响较小的情况下,使文件体积更为可控。720p 下,VP9 或 HEVC 普遍将其设为 2600K,H.264 则为 4500K。如果此项设置为 0,则不限制最大比特率。",
"transcoding_max_keyframe_interval": "最大关键帧间隔",
- "transcoding_max_keyframe_interval_description": "设置关键帧之间的最大帧距离。较低的值会降低压缩效率,但可以提高搜索速度,并且可能在快速运动的场景中提高画质。0表示将自动设置此参数。",
+ "transcoding_max_keyframe_interval_description": "设置关键帧之间的最大帧距离。较低的值会降低压缩效率,但可以提高搜索速度,并且可能在快速运动的场景中提高画质。0 表示将自动设置此参数。",
"transcoding_optimal_description": "视频超过目标分辨率或格式不支持",
+ "transcoding_policy": "转码策略",
+ "transcoding_policy_description": "设置视频转码时机",
"transcoding_preferred_hardware_device": "首选硬件设备",
- "transcoding_preferred_hardware_device_description": "仅适用于VAAPI和QSV。设置用于硬件转码的dri节点。",
+ "transcoding_preferred_hardware_device_description": "仅适用于 VAAPI 和 QSV。设置用于硬件转码的 dri 节点。",
"transcoding_preset_preset": "预设(-preset)",
"transcoding_preset_preset_description": "压缩速度。较慢的预设会产生更小的文件,并在目标特定比特率时提高质量。VP9请忽略faster以上的速度。",
"transcoding_reference_frames": "参考帧",
- "transcoding_reference_frames_description": "在压缩给定帧时参考的帧数。较高的值可以提高压缩效率,但会减慢编码速度。0表示将自动设置此参数。",
+ "transcoding_reference_frames_description": "在压缩给定帧时参考的帧数。较高的值可以提高压缩效率,但会减慢编码速度。0 表示将自动设置此参数。",
"transcoding_required_description": "仅限不兼容格式的视频",
"transcoding_settings": "视频转码设置",
- "transcoding_settings_description": "管理视频文件的分辨率和编码信息",
+ "transcoding_settings_description": "管理要转码的视频和处理方式",
"transcoding_target_resolution": "目标分辨率",
"transcoding_target_resolution_description": "更高的分辨率可以保留更多细节,但编码时间更长,文件体积更大,且可能降低应用程序的响应速度。",
"transcoding_temporal_aq": "时间自适应量化",
- "transcoding_temporal_aq_description": "仅适用于NVENC。提高高细节、低动态场景的质量。可能与旧设备不兼容。",
+ "transcoding_temporal_aq_description": "仅适用于 NVENC。提高高细节、低动态场景的质量。可能与旧设备不兼容。",
"transcoding_threads": "线程数",
- "transcoding_threads_description": "设定值越高,编码速度越快,留给其它任务(Docker外宿主机的任务等)的计算能力越少。此值不应大于CPU核心的数量。0表示最大限度地提高利用率。",
+ "transcoding_threads_description": "设定值越高,编码速度越快,留给其它任务(Docker 外宿主机的任务等)的计算能力越少。此值不应大于 CPU 核心的数量。0 表示最大限度地提高利用率。",
"transcoding_tone_mapping": "色调映射",
- "transcoding_tone_mapping_description": "在将HDR视频转换为SDR时,尝试保持其外观。每种算法在颜色、细节和亮度方面做出了不同的权衡。Hable算法保留细节,Mobius算法保留颜色,而Reinhard算法保留亮度。",
+ "transcoding_tone_mapping_description": "在将 HDR 视频转换为 SDR 时,软件会尝试尽可能保持其观感。每种算法在颜色、细节和亮度方面做出了不同的权衡。Hable 算法保留细节,Mobius 算法保留颜色,而 Reinhard 算法保留亮度。",
"transcoding_transcode_policy": "转码策略",
- "transcoding_transcode_policy_description": "视频转码策略。HDR视频将始终进行转码(除非禁用了转码功能)。",
+ "transcoding_transcode_policy_description": "视频转码策略。HDR 视频将始终进行转码(除非禁用了转码功能)。",
"transcoding_two_pass_encoding": "二次编码",
- "transcoding_two_pass_encoding_setting_description": "分两次进行转码,以生成更好的编码视频。当启用最大比特率(与H.264和HEVC一起工作所需)时,此模式使用基于最大比特率的比特率范围,并忽略CRF。对于VP9,如果禁用了最大比特率,则可以使用CRF(注:CRF,全称为constant rate factor,是指保证“一定质量”,智能分配码率,包括同一帧内分配码率、帧间分配码率)。",
+ "transcoding_two_pass_encoding_setting_description": "分两次进行转码,以生成更好的编码视频。当启用最大比特率(与 H.264 和 HEVC 协同处理时所需)时,此模式使用基于最大比特率的比特率范围,并忽略 CRF。对于 VP9,如果禁用了最大比特率,则可以使用 CRF(注:CRF,全称为constant rate factor,是指保证“一定质量”,智能分配码率,包括同一帧内分配码率、帧间分配码率)。",
"transcoding_video_codec": "视频编解码器",
- "transcoding_video_codec_description": "VP9具有很高的效率和网络兼容性,但转码需要更长的时间。HEVC的性能相似,但网络兼容性较低。H.264转码快速且具有广泛的兼容性,但产生的文件要大得多。AV1是最高效的编解码器,但在较旧的设备上缺乏支持。",
+ "transcoding_video_codec_description": "VP9 具有较高的效率和网络兼容性,但需要更长的时间进行转码。HEVC 性能与之相似,但网络兼容性较低。H.264 转码快速且具有广泛的兼容性,但产生的文件体积较大。AV1 是最高效的编解码器,但在较旧的设备上兼容性较差。",
"trash_enabled_description": "启用回收站",
"trash_number_of_days": "天数",
- "trash_number_of_days_description": "回收站中项目永久删除的天数",
+ "trash_number_of_days_description": "被永久删除之前,项目在回收站中保留的天数",
"trash_settings": "回收站设置",
"trash_settings_description": "管理回收站设置",
"untracked_files": "未被扫描的文件",
@@ -334,7 +338,7 @@
"user_cleanup_job": "清理用户",
"user_delete_delay": "{user}的账户及项目将在{delay, plural, one {#天} other {#天}}后自动永久删除。",
"user_delete_delay_settings": "延期删除",
- "user_delete_delay_settings_description": "删除用户后永久删除账户及其所有项目的天数。用户删除作业在午夜运行,检查是否有用户可以删除。对该设置的更改将在下次执行时开始计算。",
+ "user_delete_delay_settings_description": "永久删除账户及其所有项目之前所保留的天数。用户删除作业会在午夜检查是否有用户可以删除。对该设置的更改将在下次执行时生效。",
"user_delete_immediately": "{user}的账户及项目将立即永久删除。",
"user_delete_immediately_checkbox": "立即删除检索到的用户及项目",
"user_management": "用户管理",
@@ -354,12 +358,12 @@
},
"admin_email": "管理员邮箱",
"admin_password": "管理员密码",
- "administration": "管理",
+ "administration": "系统管理",
"advanced": "高级",
"age_months": "{months, plural, one {#个月} other {#个月}}",
"age_year_months": "1岁{months, plural, one {#个月} other {#个月}}",
"age_years": "{years, plural, other {#岁}}",
- "album_added": "相册已添加",
+ "album_added": "被添加到相册",
"album_added_notification_setting_description": "当您被添加到共享相册时,接收邮箱通知",
"album_cover_updated": "相册封面已更新",
"album_delete_confirmation": "确定要删除相册“{album}”吗?",
@@ -372,7 +376,7 @@
"album_remove_user": "移除用户?",
"album_remove_user_confirmation": "你确定要移除“{user}”吗?",
"album_share_no_users": "看起来您已与所有用户共享了此相册,或者您根本没有任何用户可共享。",
- "album_updated": "相册已更新",
+ "album_updated": "相册有更新",
"album_updated_setting_description": "当共享相册有新项目时接收邮件通知",
"album_user_left": "离开“{album}”",
"album_user_removed": "已移除“{user}”",
@@ -390,7 +394,7 @@
"anti_clockwise": "逆时针",
"api_key": "API 密钥",
"api_key_description": "该应用密钥只会显示一次。请确保在关闭窗口前复制下来。",
- "api_key_empty": "API Key的名称不可以为空",
+ "api_key_empty": "API Key 的名称不可以为空",
"api_keys": "API 密钥",
"app_settings": "应用设置",
"appears_in": "出现于",
@@ -399,7 +403,7 @@
"archive_size": "归档大小",
"archive_size_description": "配置下载归档大小(GB)",
"archived_count": "{count, plural, other {已归档 # 项}}",
- "are_these_the_same_person": "是同一个人吗?",
+ "are_these_the_same_person": "他们是同一位人吗?",
"are_you_sure_to_do_this": "确定要这样做吗?",
"asset_added_to_album": "已添加至相册",
"asset_adding_to_album": "正在添加至相册...",
@@ -407,7 +411,7 @@
"asset_filename_is_offline": "项目“{filename}”已离线",
"asset_has_unassigned_faces": "项目中有未分配的人脸",
"asset_hashing": "哈希校验中...",
- "asset_offline": "项目离线",
+ "asset_offline": "项目脱机",
"asset_offline_description": "磁盘上已找不到该外部项目。请联系您的 Immich 管理员寻求帮助。",
"asset_skipped": "已跳过",
"asset_skipped_in_trash": "已回收",
@@ -432,13 +436,13 @@
"birthdate_saved": "出生日期保存成功",
"birthdate_set_description": "出生日期用于计算照片中该人物在拍照时的年龄。",
"blurred_background": "背景模糊",
- "bugs_and_feature_requests": "Bug和特性要求",
+ "bugs_and_feature_requests": "Bug 与功能请求",
"build": "构建版本",
"build_image": "镜像版本",
"bulk_delete_duplicates_confirmation": "您确定要批量删除{count, plural, one {#个重复项目} other {#个重复项目}}吗?这将保留每个组中最大的项目并永久删除所有其它重复项目。注意:该操作无法被撤消!",
"bulk_keep_duplicates_confirmation": "您确定要保留{count, plural, one {#个重复项目} other {#个重复项目}}吗?这将清空所有重复记录,但不会删除任何内容。",
"bulk_trash_duplicates_confirmation": "您确定要批量删除{count, plural, one {#个重复项目} other {#个重复项目}}吗?这将保留每组中最大的项目并删除所有其它重复项目。",
- "buy": "购买Immich",
+ "buy": "购买 Immich",
"camera": "相机",
"camera_brand": "相机品牌",
"camera_model": "相机型号",
@@ -453,8 +457,8 @@
"change_name": "更改名称",
"change_name_successfully": "更改名称成功",
"change_password": "修改密码",
- "change_password_description": "这是您第一次登录系统或有人要求更改您的密码。请在下面输入新密码。",
- "change_your_password": "修改您的密码",
+ "change_password_description": "这是你的第一次登录亦或有人要求更改你的密码。请在下面输入新密码。",
+ "change_your_password": "修改你的密码",
"changed_visibility_successfully": "更改可见性成功",
"check_all": "检查所有",
"check_logs": "检查日志",
@@ -477,21 +481,21 @@
"comments_are_disabled": "评论已禁用",
"confirm": "确认",
"confirm_admin_password": "确认管理员密码",
- "confirm_delete_shared_link": "您确定要删除此共享链接吗?",
- "confirm_keep_this_delete_others": "除此项目外,堆叠中的所有其它项目都将被删除。您确定要继续吗?",
+ "confirm_delete_shared_link": "你确定要删除此共享链接吗?",
+ "confirm_keep_this_delete_others": "除此项目外,堆叠中的所有其它项目都将被删除。你确定要继续吗?",
"confirm_password": "确认密码",
"contain": "包含",
"context": "以文搜图",
"continue": "继续",
- "copied_image_to_clipboard": "已复制图片至剪贴板。",
+ "copied_image_to_clipboard": "已复制图片至剪切板。",
"copied_to_clipboard": "已复制到剪切板!",
"copy_error": "复制出错",
"copy_file_path": "复制文件路径",
"copy_image": "复制图片",
"copy_link": "复制链接",
- "copy_link_to_clipboard": "复制链接到剪贴板",
+ "copy_link_to_clipboard": "复制链接到剪切板",
"copy_password": "复制密码",
- "copy_to_clipboard": "复制到剪贴板",
+ "copy_to_clipboard": "复制到剪切板",
"country": "国家",
"cover": "封面",
"covers": "封面",
@@ -540,7 +544,7 @@
"direction": "方向",
"disabled": "已禁用",
"disallow_edits": "不允许编辑",
- "discord": "Discord聊天",
+ "discord": "Discord 社区",
"discover": "发现",
"dismiss_all_errors": "忽略所有错误",
"dismiss_error": "忽略错误",
@@ -549,7 +553,7 @@
"display_original_photos": "显示原始照片",
"display_original_photos_setting_description": "在网络与原始格式兼容的情况下,查看图片或视频时优先显示原始文件而不是缩略图。这可能导致照片显示速度变慢。",
"do_not_show_again": "不再显示该信息",
- "documentation": "文档",
+ "documentation": "帮助文档",
"done": "完成",
"download": "下载",
"download_include_embedded_motion_videos": "内嵌视频",
@@ -647,12 +651,12 @@
"unable_to_change_location": "无法更改位置",
"unable_to_change_password": "无法修改密码",
"unable_to_change_visibility": "无法修改{count, plural, one {#个人} other {#个人}}的可见性",
- "unable_to_complete_oauth_login": "无法完成OAuth登录",
+ "unable_to_complete_oauth_login": "无法完成 OAuth 登录",
"unable_to_connect": "无法连接",
"unable_to_connect_to_server": "无法连接至服务器",
- "unable_to_copy_to_clipboard": "无法复制到剪切板,确保你在使用https访问网页",
+ "unable_to_copy_to_clipboard": "无法复制到剪切板,请确保你在使用https访问本页",
"unable_to_create_admin_account": "无法创建管理员账户",
- "unable_to_create_api_key": "无法创建新的API Key",
+ "unable_to_create_api_key": "无法创建新的 API Key",
"unable_to_create_library": "无法创建图库",
"unable_to_create_user": "无法创建用户",
"unable_to_delete_album": "无法删除相册",
@@ -672,20 +676,20 @@
"unable_to_get_shared_link": "获取共享链接失败",
"unable_to_hide_person": "无法隐藏人物",
"unable_to_link_motion_video": "无法链接到动态视频",
- "unable_to_link_oauth_account": "无法关联OAuth账户",
+ "unable_to_link_oauth_account": "无法关联 OAuth 账户",
"unable_to_load_album": "无法加载相册",
"unable_to_load_asset_activity": "无法加载项目活动",
"unable_to_load_items": "无法加载项目",
"unable_to_load_liked_status": "无法加载点赞状态",
"unable_to_log_out_all_devices": "无法从所有设备登出",
"unable_to_log_out_device": "无法从设备登出",
- "unable_to_login_with_oauth": "无法使用OAuth登录",
+ "unable_to_login_with_oauth": "无法使用 OAuth 进行登录",
"unable_to_play_video": "无法播放视频",
"unable_to_reassign_assets_existing_person": "无法将项目指派给{name, select, null {已存在的人物} other {{name}}}",
"unable_to_reassign_assets_new_person": "无法重新指派项目给新的人物",
"unable_to_refresh_user": "无法刷新用户",
"unable_to_remove_album_users": "无法从相册中移除用户",
- "unable_to_remove_api_key": "无法移除API Key",
+ "unable_to_remove_api_key": "无法移除 API Key",
"unable_to_remove_assets_from_shared_link": "无法从共享链接中移除项目",
"unable_to_remove_deleted_assets": "无法移除离线文件",
"unable_to_remove_library": "无法移除图库",
@@ -698,7 +702,7 @@
"unable_to_restore_trash": "无法恢复回收站",
"unable_to_restore_user": "无法恢复用户",
"unable_to_save_album": "无法保存相册",
- "unable_to_save_api_key": "无法保存API Key",
+ "unable_to_save_api_key": "无法保存 API Key",
"unable_to_save_date_of_birth": "无法保存出生日期",
"unable_to_save_name": "无法保存名称",
"unable_to_save_profile": "无法保存配置文件",
@@ -720,16 +724,16 @@
"unable_to_update_user": "无法更新用户",
"unable_to_upload_file": "无法上传文件"
},
- "exif": "Exif信息",
+ "exif": "Exif 信息",
"exit_slideshow": "退出幻灯片放映",
"expand_all": "全部展开",
"expire_after": "有效期至",
"expired": "已过期",
- "expires_date": "{date}过期",
+ "expires_date": "过期于 {date}",
"explore": "探索",
"explorer": "资源管理器",
"export": "导出",
- "export_as_json": "导出为JSON",
+ "export_as_json": "导出为 JSON",
"extension": "扩展",
"external": "外部的",
"external_libraries": "外部图库",
@@ -740,7 +744,7 @@
"favorites": "收藏夹",
"feature_photo_updated": "人物头像已更新",
"features": "功能",
- "features_setting_description": "管理App功能",
+ "features_setting_description": "管理 App 功能",
"file_name": "文件名",
"file_name_or_extension": "文件名",
"filename": "文件名",
@@ -755,6 +759,7 @@
"get_help": "获取帮助",
"getting_started": "入门",
"go_back": "返回",
+ "go_to_folder": "进入文件夹",
"go_to_search": "前往搜索",
"group_albums_by": "相册分组依据...",
"group_no": "未分组",
@@ -782,8 +787,8 @@
"image_alt_text_date_place_3_people": "{date}在{country}{city}拍摄的包含{person1}、{person2}和{person3}的{isVideo, select, true {视频} other {照片}}",
"image_alt_text_date_place_4_or_more_people": "{date}在{country}{city}拍摄的包含{person1}、{person2}及其他{additionalCount, number}个人物的{isVideo, select, true {视频} other {照片}}",
"immich_logo": "Immich Logo",
- "immich_web_interface": "Immich Web界面",
- "import_from_json": "从JSON导入",
+ "immich_web_interface": "Immich Web 界面",
+ "import_from_json": "从 JSON 导入",
"import_path": "导入路径",
"in_albums": "在{count, plural, one {#个相册} other {#个相册}}中",
"in_archive": "在归档中",
@@ -793,10 +798,10 @@
"individual_share": "个人分享",
"info": "信息",
"interval": {
- "day_at_onepm": "每天下午1点",
+ "day_at_onepm": "每天下午 1 点",
"hours": "每 {hours, plural, one {小时} other {{hours, number} 小时}}",
- "night_at_midnight": "每晚0点",
- "night_at_twoam": "每晚凌晨2点"
+ "night_at_midnight": "每晚 0 点",
+ "night_at_twoam": "每晚凌晨 2 点"
},
"invite_people": "邀请人员",
"invite_to_album": "邀请加入相册",
@@ -809,7 +814,7 @@
"keyboard_shortcuts": "键盘快捷键",
"language": "语言",
"language_setting_description": "选择您的语言偏好",
- "last_seen": "最后查看",
+ "last_seen": "最后上线于",
"latest_version": "最新版本",
"latitude": "纬度",
"leave": "离开",
@@ -821,8 +826,8 @@
"like_deleted": "已删除的收藏",
"link_motion_video": "链接动态视频",
"link_options": "链接选项",
- "link_to_oauth": "链接到OAuth",
- "linked_oauth_account": "绑定OAuth账户",
+ "link_to_oauth": "绑定 OAuth",
+ "linked_oauth_account": "已绑定 OAuth 账户",
"list": "列表",
"loading": "加载中",
"loading_search_results_failed": "加载搜索结果失败",
@@ -846,7 +851,7 @@
"manage_your_account": "管理你的账户",
"manage_your_api_keys": "管理你的 API 密钥",
"manage_your_devices": "管理已登录设备",
- "manage_your_oauth_connection": "管理你的 OAuth 连接",
+ "manage_your_oauth_connection": "管理你的 OAuth 绑定",
"map": "地图",
"map_marker_for_images": "{country} {city}的图像地图标记",
"map_marker_with_image": "带图像的地图标记",
@@ -872,11 +877,11 @@
"more": "更多",
"moved_to_trash": "已放入回收站",
"my_albums": "我的相册",
- "name": "名称",
+ "name": "姓名",
"name_or_nickname": "名称或昵称",
"never": "永不过期",
"new_album": "新相册",
- "new_api_key": "新API Key",
+ "new_api_key": "新增 API Key",
"new_password": "新密码",
"new_person": "新人物",
"new_user_created": "已创建新用户",
@@ -891,7 +896,7 @@
"no_archived_assets_message": "归档照片和视频以便在照片视图中隐藏它们",
"no_assets_message": "点击上传您的第一张照片",
"no_duplicates_found": "未发现重复项。",
- "no_exif_info_available": "没有可用的EXIF信息",
+ "no_exif_info_available": "没有可用的 EXIF 信息",
"no_explore_results_message": "上传更多照片来探索。",
"no_favorites_message": "添加到收藏夹,快速查找最佳图片和视频",
"no_libraries_message": "创建外部图库来查看你的照片和视频",
@@ -922,7 +927,7 @@
"online": "在线",
"only_favorites": "仅显示已收藏",
"open_in_map_view": "在地图视图中打开",
- "open_in_openstreetmap": "在OpenStreetMap中打开",
+ "open_in_openstreetmap": "在 OpenStreetMap 中打开",
"open_the_search_filters": "打开搜索过滤器",
"options": "选项",
"or": "或",
@@ -931,7 +936,7 @@
"other": "其它",
"other_devices": "其它设备",
"other_variables": "其它变量",
- "owned": "已拥有",
+ "owned": "我的",
"owner": "所有者",
"partner": "同伴",
"partner_can_access": "{partner}可以访问",
@@ -971,7 +976,7 @@
"photos": "照片",
"photos_and_videos": "照片 & 视频",
"photos_count": "{count, plural, one {{count, number}张照片} other {{count, number}张照片}}",
- "photos_from_previous_years": "前几年的照片",
+ "photos_from_previous_years": "过往的今昔瞬间",
"pick_a_location": "选择位置",
"place": "地点",
"places": "地点",
@@ -999,7 +1004,7 @@
"purchase_button_buy": "购买",
"purchase_button_buy_immich": "购买 Immich",
"purchase_button_never_show_again": "不再显示",
- "purchase_button_reminder": "30天内不再显示",
+ "purchase_button_reminder": "30 天内不再显示",
"purchase_button_remove_key": "移除密钥",
"purchase_button_select": "选择",
"purchase_failed_activation": "激活失败!请检查您的邮箱以获取正确的产品密钥!",
@@ -1026,7 +1031,7 @@
"rating": "星级",
"rating_clear": "删除星级",
"rating_count": "{count, plural, one {#星} other {#星}}",
- "rating_description": "在信息面板中展示EXIF星级",
+ "rating_description": "在信息面板中展示 EXIF 星级",
"reaction_options": "回应选项",
"read_changelog": "阅读更新日志",
"reassign": "重新指派",
@@ -1056,9 +1061,9 @@
"remove_from_album": "从相册中移除",
"remove_from_favorites": "移出收藏",
"remove_from_shared_link": "从共享链接中移除",
- "remove_url": "移除URL",
+ "remove_url": "移除 URL",
"remove_user": "移除用户",
- "removed_api_key": "移除的API Key:{name}",
+ "removed_api_key": "已移除 API Key:{name}",
"removed_from_archive": "从归档中移除",
"removed_from_favorites": "从收藏中移除",
"removed_from_favorites_count": "从收藏中移除{count, plural, other {#项}}",
@@ -1087,7 +1092,7 @@
"role_editor": "编辑者",
"role_viewer": "查看者",
"save": "保存",
- "saved_api_key": "已保存的API Key",
+ "saved_api_key": "已保存的 API Key",
"saved_profile": "已保存资料",
"saved_settings": "已保存设置",
"say_something": "说点什么",
@@ -1141,6 +1146,7 @@
"server_version": "服务器版本",
"set": "设置",
"set_as_album_cover": "设为相册封面",
+ "set_as_featured_photo": "设置为特色照片",
"set_as_profile_picture": "设为个人资料图片",
"set_date_of_birth": "设置出生日期",
"set_profile_picture": "设置个人资料图片",
@@ -1160,7 +1166,7 @@
"sharing": "共享",
"sharing_enter_password": "请输入密码后查看此页面。",
"sharing_sidebar_description": "在侧边栏中显示“共享”链接",
- "shift_to_permanent_delete": "按住Shift键永久删除项目",
+ "shift_to_permanent_delete": "按住 ⇧ Shift 键永久删除项目",
"show_album_options": "显示相册选项",
"show_albums": "显示相册",
"show_all_people": "显示所有人物",
@@ -1196,9 +1202,10 @@
"sort_items": "项目数量",
"sort_modified": "修改日期",
"sort_oldest": "最早的照片",
+ "sort_people_by_similarity": "按相似性对人物进行排序",
"sort_recent": "最新的照片",
"sort_title": "标题",
- "source": "源",
+ "source": "GitHub 源代码",
"stack": "堆叠",
"stack_duplicates": "堆叠重复项目",
"stack_select_one_photo": "为堆叠选择一张展示图",
@@ -1221,13 +1228,13 @@
"sunrise_on_the_beach": "海滩上的日出",
"support": "支持",
"support_and_feedback": "支持和反馈",
- "support_third_party_description": "您的 Immich 安装程序是由第三方打包的。您遇到的问题可能是由软件包引起的,所以首先请使用下面的链接提出问题或BUG。",
+ "support_third_party_description": "您的 Immich 安装程序是由第三方打包的。您遇到的问题可能是由软件包引起的,因此请优先使用下面的链接提出Issue或Bug。",
"swap_merge_direction": "互换合并方向",
"sync": "同步",
"tag": "标签",
"tag_assets": "标记项目",
"tag_created": "已创建标签:{tag}",
- "tag_feature_description": "按逻辑标签主题分组进行浏览照片和视频",
+ "tag_feature_description": "按逻辑标签分组并浏览照片和视频",
"tag_not_found_question": "找不到标签吗?创建新标签",
"tag_updated": "已更新标签:{tag}",
"tagged_assets": "{count, plural, one {# 个项目} other {# 个项目}}被加上标签",
@@ -1238,7 +1245,7 @@
"theme_selection_description": "跟随浏览器自动设置主题颜色",
"they_will_be_merged_together": "项目将会合并到一起",
"third_party_resources": "第三方资源",
- "time_based_memories": "基于时间的回忆",
+ "time_based_memories": "那年今日",
"timeline": "时间线",
"timezone": "时区",
"to_archive": "归档",
@@ -1257,7 +1264,7 @@
"trash_delete_asset": "将项目放入回收站/删除",
"trash_no_results_message": "删除的照片和视频将在此处展示。",
"trashed_items_will_be_permanently_deleted_after": "回收站中的项目将在{days, plural, one {#天} other {#天}}后被永久删除。",
- "type": "种类",
+ "type": "类型",
"unarchive": "取消归档",
"unarchived_count": "{count, plural, other {取消归档 # 项}}",
"unfavorite": "取消收藏",
@@ -1266,8 +1273,8 @@
"unknown_year": "未知年份",
"unlimited": "无限制",
"unlink_motion_video": "取消链接动态视频",
- "unlink_oauth": "解绑OAuth",
- "unlinked_oauth_account": "解绑OAuth账户",
+ "unlink_oauth": "解绑 OAuth",
+ "unlinked_oauth_account": "解绑 OAuth 账户",
"unnamed_album": "未命名相册",
"unnamed_album_delete_confirmation": "您确定要删除该相册吗?",
"unnamed_share": "未命名共享",
@@ -1293,7 +1300,7 @@
"usage": "用量",
"use_custom_date_range": "自定义日期范围",
"user": "用户",
- "user_id": "用户ID",
+ "user_id": "用户 ID",
"user_liked": "“{user}”点赞了{type, select, photo {该照片} video {该视频} asset {该项目} other {它}}",
"user_purchase_settings": "购买",
"user_purchase_settings_description": "管理购买订单",
@@ -1313,7 +1320,7 @@
"version_history_item": "在 {date} 安装 {version} 版本",
"video": "视频",
"video_hover_setting": "鼠标悬停时播放视频缩略图",
- "video_hover_setting_description": "当鼠标悬停在项目上时播放视频缩略图。即使禁用了这个功能,也可以通过将鼠标悬停在播放图标上来开始播放。",
+ "video_hover_setting_description": "当鼠标悬停在项目上时播放视频缩略图。即使禁用了此功能,也可以通过将鼠标悬停在播放图标上来开始播放。",
"videos": "视频",
"videos_count": "{count, plural, one {#个视频} other {#个视频}}",
"view": "查看",
diff --git a/localizely.yml b/localizely.yml
index 5d119fe9d8..2a9b95464f 100644
--- a/localizely.yml
+++ b/localizely.yml
@@ -30,8 +30,6 @@ download:
locale_code: pl-PL
- file: mobile/assets/i18n/fi-FI.json
locale_code: fi-FI
- - file: mobile/assets/i18n/pt-BR.json
- locale_code: pt-BR
- file: mobile/assets/i18n/pt-PT.json
locale_code: pt-PT
- file: mobile/assets/i18n/pt-BR.json
@@ -96,3 +94,11 @@ download:
locale_code: he-IL
- file: mobile/assets/i18n/ro-RO.json
locale_code: ro-RO
+ - file: mobile/assets/i18n/id-ID.json
+ locale_code: id-ID
+ - file: mobile/assets/i18n/gl.json
+ locale_code: gl-ES
+ - file: mobile/assets/i18n/ga.json
+ locale_code: ga-IE
+ - file: mobile/assets/i18n/tr-TR.json
+ locale_code: tr-TR
diff --git a/machine-learning/poetry.lock b/machine-learning/poetry.lock
index bfed9fab8d..eb8fe31dff 100644
--- a/machine-learning/poetry.lock
+++ b/machine-learning/poetry.lock
@@ -1331,13 +1331,13 @@ zstd = ["zstandard (>=0.18.0)"]
[[package]]
name = "huggingface-hub"
-version = "0.26.5"
+version = "0.27.0"
description = "Client library to download and publish models, datasets and other repos on the huggingface.co hub"
optional = false
python-versions = ">=3.8.0"
files = [
- {file = "huggingface_hub-0.26.5-py3-none-any.whl", hash = "sha256:fb7386090bbe892072e64b85f7c4479fd2d65eea5f2543327c970d5169e83924"},
- {file = "huggingface_hub-0.26.5.tar.gz", hash = "sha256:1008bd18f60bfb65e8dbc0a97249beeeaa8c99d3c2fa649354df9fa5a13ed83b"},
+ {file = "huggingface_hub-0.27.0-py3-none-any.whl", hash = "sha256:8f2e834517f1f1ddf1ecc716f91b120d7333011b7485f665a9a412eacb1a2a81"},
+ {file = "huggingface_hub-0.27.0.tar.gz", hash = "sha256:902cce1a1be5739f5589e560198a65a8edcfd3b830b1666f36e4b961f0454fac"},
]
[package.dependencies]
@@ -2492,18 +2492,18 @@ files = [
[[package]]
name = "pydantic"
-version = "2.10.3"
+version = "2.10.4"
description = "Data validation using Python type hints"
optional = false
python-versions = ">=3.8"
files = [
- {file = "pydantic-2.10.3-py3-none-any.whl", hash = "sha256:be04d85bbc7b65651c5f8e6b9976ed9c6f41782a55524cef079a34a0bb82144d"},
- {file = "pydantic-2.10.3.tar.gz", hash = "sha256:cb5ac360ce894ceacd69c403187900a02c4b20b693a9dd1d643e1effab9eadf9"},
+ {file = "pydantic-2.10.4-py3-none-any.whl", hash = "sha256:597e135ea68be3a37552fb524bc7d0d66dcf93d395acd93a00682f1efcb8ee3d"},
+ {file = "pydantic-2.10.4.tar.gz", hash = "sha256:82f12e9723da6de4fe2ba888b5971157b3be7ad914267dea8f05f82b28254f06"},
]
[package.dependencies]
annotated-types = ">=0.6.0"
-pydantic-core = "2.27.1"
+pydantic-core = "2.27.2"
typing-extensions = ">=4.12.2"
[package.extras]
@@ -2512,111 +2512,111 @@ timezone = ["tzdata"]
[[package]]
name = "pydantic-core"
-version = "2.27.1"
+version = "2.27.2"
description = "Core functionality for Pydantic validation and serialization"
optional = false
python-versions = ">=3.8"
files = [
- {file = "pydantic_core-2.27.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:71a5e35c75c021aaf400ac048dacc855f000bdfed91614b4a726f7432f1f3d6a"},
- {file = "pydantic_core-2.27.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f82d068a2d6ecfc6e054726080af69a6764a10015467d7d7b9f66d6ed5afa23b"},
- {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:121ceb0e822f79163dd4699e4c54f5ad38b157084d97b34de8b232bcaad70278"},
- {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4603137322c18eaf2e06a4495f426aa8d8388940f3c457e7548145011bb68e05"},
- {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a33cd6ad9017bbeaa9ed78a2e0752c5e250eafb9534f308e7a5f7849b0b1bfb4"},
- {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15cc53a3179ba0fcefe1e3ae50beb2784dede4003ad2dfd24f81bba4b23a454f"},
- {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45d9c5eb9273aa50999ad6adc6be5e0ecea7e09dbd0d31bd0c65a55a2592ca08"},
- {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8bf7b66ce12a2ac52d16f776b31d16d91033150266eb796967a7e4621707e4f6"},
- {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:655d7dd86f26cb15ce8a431036f66ce0318648f8853d709b4167786ec2fa4807"},
- {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:5556470f1a2157031e676f776c2bc20acd34c1990ca5f7e56f1ebf938b9ab57c"},
- {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f69ed81ab24d5a3bd93861c8c4436f54afdf8e8cc421562b0c7504cf3be58206"},
- {file = "pydantic_core-2.27.1-cp310-none-win32.whl", hash = "sha256:f5a823165e6d04ccea61a9f0576f345f8ce40ed533013580e087bd4d7442b52c"},
- {file = "pydantic_core-2.27.1-cp310-none-win_amd64.whl", hash = "sha256:57866a76e0b3823e0b56692d1a0bf722bffb324839bb5b7226a7dbd6c9a40b17"},
- {file = "pydantic_core-2.27.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac3b20653bdbe160febbea8aa6c079d3df19310d50ac314911ed8cc4eb7f8cb8"},
- {file = "pydantic_core-2.27.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a5a8e19d7c707c4cadb8c18f5f60c843052ae83c20fa7d44f41594c644a1d330"},
- {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f7059ca8d64fea7f238994c97d91f75965216bcbe5f695bb44f354893f11d52"},
- {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bed0f8a0eeea9fb72937ba118f9db0cb7e90773462af7962d382445f3005e5a4"},
- {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a3cb37038123447cf0f3ea4c74751f6a9d7afef0eb71aa07bf5f652b5e6a132c"},
- {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84286494f6c5d05243456e04223d5a9417d7f443c3b76065e75001beb26f88de"},
- {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acc07b2cfc5b835444b44a9956846b578d27beeacd4b52e45489e93276241025"},
- {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4fefee876e07a6e9aad7a8c8c9f85b0cdbe7df52b8a9552307b09050f7512c7e"},
- {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:258c57abf1188926c774a4c94dd29237e77eda19462e5bb901d88adcab6af919"},
- {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:35c14ac45fcfdf7167ca76cc80b2001205a8d5d16d80524e13508371fb8cdd9c"},
- {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d1b26e1dff225c31897696cab7d4f0a315d4c0d9e8666dbffdb28216f3b17fdc"},
- {file = "pydantic_core-2.27.1-cp311-none-win32.whl", hash = "sha256:2cdf7d86886bc6982354862204ae3b2f7f96f21a3eb0ba5ca0ac42c7b38598b9"},
- {file = "pydantic_core-2.27.1-cp311-none-win_amd64.whl", hash = "sha256:3af385b0cee8df3746c3f406f38bcbfdc9041b5c2d5ce3e5fc6637256e60bbc5"},
- {file = "pydantic_core-2.27.1-cp311-none-win_arm64.whl", hash = "sha256:81f2ec23ddc1b476ff96563f2e8d723830b06dceae348ce02914a37cb4e74b89"},
- {file = "pydantic_core-2.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9cbd94fc661d2bab2bc702cddd2d3370bbdcc4cd0f8f57488a81bcce90c7a54f"},
- {file = "pydantic_core-2.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f8c4718cd44ec1580e180cb739713ecda2bdee1341084c1467802a417fe0f02"},
- {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15aae984e46de8d376df515f00450d1522077254ef6b7ce189b38ecee7c9677c"},
- {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ba5e3963344ff25fc8c40da90f44b0afca8cfd89d12964feb79ac1411a260ac"},
- {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:992cea5f4f3b29d6b4f7f1726ed8ee46c8331c6b4eed6db5b40134c6fe1768bb"},
- {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0325336f348dbee6550d129b1627cb8f5351a9dc91aad141ffb96d4937bd9529"},
- {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7597c07fbd11515f654d6ece3d0e4e5093edc30a436c63142d9a4b8e22f19c35"},
- {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3bbd5d8cc692616d5ef6fbbbd50dbec142c7e6ad9beb66b78a96e9c16729b089"},
- {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:dc61505e73298a84a2f317255fcc72b710b72980f3a1f670447a21efc88f8381"},
- {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:e1f735dc43da318cad19b4173dd1ffce1d84aafd6c9b782b3abc04a0d5a6f5bb"},
- {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f4e5658dbffe8843a0f12366a4c2d1c316dbe09bb4dfbdc9d2d9cd6031de8aae"},
- {file = "pydantic_core-2.27.1-cp312-none-win32.whl", hash = "sha256:672ebbe820bb37988c4d136eca2652ee114992d5d41c7e4858cdd90ea94ffe5c"},
- {file = "pydantic_core-2.27.1-cp312-none-win_amd64.whl", hash = "sha256:66ff044fd0bb1768688aecbe28b6190f6e799349221fb0de0e6f4048eca14c16"},
- {file = "pydantic_core-2.27.1-cp312-none-win_arm64.whl", hash = "sha256:9a3b0793b1bbfd4146304e23d90045f2a9b5fd5823aa682665fbdaf2a6c28f3e"},
- {file = "pydantic_core-2.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f216dbce0e60e4d03e0c4353c7023b202d95cbaeff12e5fd2e82ea0a66905073"},
- {file = "pydantic_core-2.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a2e02889071850bbfd36b56fd6bc98945e23670773bc7a76657e90e6b6603c08"},
- {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42b0e23f119b2b456d07ca91b307ae167cc3f6c846a7b169fca5326e32fdc6cf"},
- {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:764be71193f87d460a03f1f7385a82e226639732214b402f9aa61f0d025f0737"},
- {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c00666a3bd2f84920a4e94434f5974d7bbc57e461318d6bb34ce9cdbbc1f6b2"},
- {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ccaa88b24eebc0f849ce0a4d09e8a408ec5a94afff395eb69baf868f5183107"},
- {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c65af9088ac534313e1963443d0ec360bb2b9cba6c2909478d22c2e363d98a51"},
- {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:206b5cf6f0c513baffaeae7bd817717140770c74528f3e4c3e1cec7871ddd61a"},
- {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:062f60e512fc7fff8b8a9d680ff0ddaaef0193dba9fa83e679c0c5f5fbd018bc"},
- {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:a0697803ed7d4af5e4c1adf1670af078f8fcab7a86350e969f454daf598c4960"},
- {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:58ca98a950171f3151c603aeea9303ef6c235f692fe555e883591103da709b23"},
- {file = "pydantic_core-2.27.1-cp313-none-win32.whl", hash = "sha256:8065914ff79f7eab1599bd80406681f0ad08f8e47c880f17b416c9f8f7a26d05"},
- {file = "pydantic_core-2.27.1-cp313-none-win_amd64.whl", hash = "sha256:ba630d5e3db74c79300d9a5bdaaf6200172b107f263c98a0539eeecb857b2337"},
- {file = "pydantic_core-2.27.1-cp313-none-win_arm64.whl", hash = "sha256:45cf8588c066860b623cd11c4ba687f8d7175d5f7ef65f7129df8a394c502de5"},
- {file = "pydantic_core-2.27.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:5897bec80a09b4084aee23f9b73a9477a46c3304ad1d2d07acca19723fb1de62"},
- {file = "pydantic_core-2.27.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d0165ab2914379bd56908c02294ed8405c252250668ebcb438a55494c69f44ab"},
- {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b9af86e1d8e4cfc82c2022bfaa6f459381a50b94a29e95dcdda8442d6d83864"},
- {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f6c8a66741c5f5447e047ab0ba7a1c61d1e95580d64bce852e3df1f895c4067"},
- {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a42d6a8156ff78981f8aa56eb6394114e0dedb217cf8b729f438f643608cbcd"},
- {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64c65f40b4cd8b0e049a8edde07e38b476da7e3aaebe63287c899d2cff253fa5"},
- {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdcf339322a3fae5cbd504edcefddd5a50d9ee00d968696846f089b4432cf78"},
- {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bf99c8404f008750c846cb4ac4667b798a9f7de673ff719d705d9b2d6de49c5f"},
- {file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8f1edcea27918d748c7e5e4d917297b2a0ab80cad10f86631e488b7cddf76a36"},
- {file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:159cac0a3d096f79ab6a44d77a961917219707e2a130739c64d4dd46281f5c2a"},
- {file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:029d9757eb621cc6e1848fa0b0310310de7301057f623985698ed7ebb014391b"},
- {file = "pydantic_core-2.27.1-cp38-none-win32.whl", hash = "sha256:a28af0695a45f7060e6f9b7092558a928a28553366519f64083c63a44f70e618"},
- {file = "pydantic_core-2.27.1-cp38-none-win_amd64.whl", hash = "sha256:2d4567c850905d5eaaed2f7a404e61012a51caf288292e016360aa2b96ff38d4"},
- {file = "pydantic_core-2.27.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e9386266798d64eeb19dd3677051f5705bf873e98e15897ddb7d76f477131967"},
- {file = "pydantic_core-2.27.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4228b5b646caa73f119b1ae756216b59cc6e2267201c27d3912b592c5e323b60"},
- {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b3dfe500de26c52abe0477dde16192ac39c98f05bf2d80e76102d394bd13854"},
- {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aee66be87825cdf72ac64cb03ad4c15ffef4143dbf5c113f64a5ff4f81477bf9"},
- {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b748c44bb9f53031c8cbc99a8a061bc181c1000c60a30f55393b6e9c45cc5bd"},
- {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ca038c7f6a0afd0b2448941b6ef9d5e1949e999f9e5517692eb6da58e9d44be"},
- {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e0bd57539da59a3e4671b90a502da9a28c72322a4f17866ba3ac63a82c4498e"},
- {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ac6c2c45c847bbf8f91930d88716a0fb924b51e0c6dad329b793d670ec5db792"},
- {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b94d4ba43739bbe8b0ce4262bcc3b7b9f31459ad120fb595627eaeb7f9b9ca01"},
- {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:00e6424f4b26fe82d44577b4c842d7df97c20be6439e8e685d0d715feceb9fb9"},
- {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:38de0a70160dd97540335b7ad3a74571b24f1dc3ed33f815f0880682e6880131"},
- {file = "pydantic_core-2.27.1-cp39-none-win32.whl", hash = "sha256:7ccebf51efc61634f6c2344da73e366c75e735960b5654b63d7e6f69a5885fa3"},
- {file = "pydantic_core-2.27.1-cp39-none-win_amd64.whl", hash = "sha256:a57847b090d7892f123726202b7daa20df6694cbd583b67a592e856bff603d6c"},
- {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3fa80ac2bd5856580e242dbc202db873c60a01b20309c8319b5c5986fbe53ce6"},
- {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d950caa237bb1954f1b8c9227b5065ba6875ac9771bb8ec790d956a699b78676"},
- {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e4216e64d203e39c62df627aa882f02a2438d18a5f21d7f721621f7a5d3611d"},
- {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02a3d637bd387c41d46b002f0e49c52642281edacd2740e5a42f7017feea3f2c"},
- {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:161c27ccce13b6b0c8689418da3885d3220ed2eae2ea5e9b2f7f3d48f1d52c27"},
- {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:19910754e4cc9c63bc1c7f6d73aa1cfee82f42007e407c0f413695c2f7ed777f"},
- {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:e173486019cc283dc9778315fa29a363579372fe67045e971e89b6365cc035ed"},
- {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:af52d26579b308921b73b956153066481f064875140ccd1dfd4e77db89dbb12f"},
- {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:981fb88516bd1ae8b0cbbd2034678a39dedc98752f264ac9bc5839d3923fa04c"},
- {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5fde892e6c697ce3e30c61b239330fc5d569a71fefd4eb6512fc6caec9dd9e2f"},
- {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:816f5aa087094099fff7edabb5e01cc370eb21aa1a1d44fe2d2aefdfb5599b31"},
- {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c10c309e18e443ddb108f0ef64e8729363adbfd92d6d57beec680f6261556f3"},
- {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98476c98b02c8e9b2eec76ac4156fd006628b1b2d0ef27e548ffa978393fd154"},
- {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c3027001c28434e7ca5a6e1e527487051136aa81803ac812be51802150d880dd"},
- {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:7699b1df36a48169cdebda7ab5a2bac265204003f153b4bd17276153d997670a"},
- {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:1c39b07d90be6b48968ddc8c19e7585052088fd7ec8d568bb31ff64c70ae3c97"},
- {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:46ccfe3032b3915586e469d4972973f893c0a2bb65669194a5bdea9bacc088c2"},
- {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:62ba45e21cf6571d7f716d903b5b7b6d2617e2d5d67c0923dc47b9d41369f840"},
- {file = "pydantic_core-2.27.1.tar.gz", hash = "sha256:62a763352879b84aa31058fc931884055fd75089cccbd9d58bb6afd01141b235"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"},
+ {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"},
]
[package.dependencies]
@@ -2624,13 +2624,13 @@ typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0"
[[package]]
name = "pydantic-settings"
-version = "2.6.1"
+version = "2.7.0"
description = "Settings management using Pydantic"
optional = false
python-versions = ">=3.8"
files = [
- {file = "pydantic_settings-2.6.1-py3-none-any.whl", hash = "sha256:7fb0637c786a558d3103436278a7c4f1cfd29ba8973238a50c5bb9a55387da87"},
- {file = "pydantic_settings-2.6.1.tar.gz", hash = "sha256:e0f92546d8a9923cb8941689abf85d6601a8c19a23e97a34b2964a2e3f813ca0"},
+ {file = "pydantic_settings-2.7.0-py3-none-any.whl", hash = "sha256:e00c05d5fa6cbbb227c84bd7487c5c1065084119b750df7c8c1a554aed236eb5"},
+ {file = "pydantic_settings-2.7.0.tar.gz", hash = "sha256:ac4bfd4a36831a48dbf8b2d9325425b549a0a6f18cea118436d728eb4f1c4d66"},
]
[package.dependencies]
@@ -2706,20 +2706,20 @@ dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments
[[package]]
name = "pytest-asyncio"
-version = "0.24.0"
+version = "0.25.0"
description = "Pytest support for asyncio"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
files = [
- {file = "pytest_asyncio-0.24.0-py3-none-any.whl", hash = "sha256:a811296ed596b69bf0b6f3dc40f83bcaf341b155a269052d82efa2b25ac7037b"},
- {file = "pytest_asyncio-0.24.0.tar.gz", hash = "sha256:d081d828e576d85f875399194281e92bf8a68d60d72d1a2faf2feddb6c46b276"},
+ {file = "pytest_asyncio-0.25.0-py3-none-any.whl", hash = "sha256:db5432d18eac6b7e28b46dcd9b69921b55c3b1086e85febfe04e70b18d9e81b3"},
+ {file = "pytest_asyncio-0.25.0.tar.gz", hash = "sha256:8c0610303c9e0442a5db8604505fc0f545456ba1528824842b37b4a626cbf609"},
]
[package.dependencies]
pytest = ">=8.2,<9"
[package.extras]
-docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1.0)"]
+docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1)"]
testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"]
[[package]]
@@ -2787,13 +2787,13 @@ cli = ["click (>=5.0)"]
[[package]]
name = "python-multipart"
-version = "0.0.19"
+version = "0.0.20"
description = "A streaming multipart parser for Python"
optional = false
python-versions = ">=3.8"
files = [
- {file = "python_multipart-0.0.19-py3-none-any.whl", hash = "sha256:f8d5b0b9c618575bf9df01c684ded1d94a338839bdd8223838afacfb4bb2082d"},
- {file = "python_multipart-0.0.19.tar.gz", hash = "sha256:905502ef39050557b7a6af411f454bc19526529ca46ae6831508438890ce12cc"},
+ {file = "python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104"},
+ {file = "python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13"},
]
[[package]]
@@ -3393,13 +3393,13 @@ zstd = ["zstandard (>=0.18.0)"]
[[package]]
name = "uvicorn"
-version = "0.32.1"
+version = "0.34.0"
description = "The lightning-fast ASGI server."
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
files = [
- {file = "uvicorn-0.32.1-py3-none-any.whl", hash = "sha256:82ad92fd58da0d12af7482ecdb5f2470a04c9c9a53ced65b9bbb4a205377602e"},
- {file = "uvicorn-0.32.1.tar.gz", hash = "sha256:ee9519c246a72b1c084cea8d3b44ed6026e78a4a309cbedae9c37e4cb9fbb175"},
+ {file = "uvicorn-0.34.0-py3-none-any.whl", hash = "sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4"},
+ {file = "uvicorn-0.34.0.tar.gz", hash = "sha256:404051050cd7e905de2c9a7e61790943440b3416f49cb409f965d9dcd0fa73e9"},
]
[package.dependencies]
diff --git a/machine-learning/pyproject.toml b/machine-learning/pyproject.toml
index 785c7ba8ac..0d6f0794ed 100644
--- a/machine-learning/pyproject.toml
+++ b/machine-learning/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "machine-learning"
-version = "1.123.0"
+version = "1.124.0"
description = ""
authors = ["Hau Tran "]
readme = "README.md"
diff --git a/mobile/analysis_options.yaml b/mobile/analysis_options.yaml
index 9327780f1d..629c71a92d 100644
--- a/mobile/analysis_options.yaml
+++ b/mobile/analysis_options.yaml
@@ -106,6 +106,8 @@ custom_lint:
- lib/widgets/search/search_filter/{camera_picker,location_picker,people_picker}.dart
- lib/services/auth.service.dart # on ApiException
- test/services/auth.service_test.dart # on ApiException
+ # allow import from test
+ - test/**.dart
dart_code_metrics:
metrics:
diff --git a/mobile/android/fastlane/Fastfile b/mobile/android/fastlane/Fastfile
index 45212a76a8..58b408fc5c 100644
--- a/mobile/android/fastlane/Fastfile
+++ b/mobile/android/fastlane/Fastfile
@@ -35,8 +35,8 @@ platform :android do
task: 'bundle',
build_type: 'Release',
properties: {
- "android.injected.version.code" => 172,
- "android.injected.version.name" => "1.123.0",
+ "android.injected.version.code" => 173,
+ "android.injected.version.name" => "1.124.0",
}
)
upload_to_play_store(skip_upload_apk: true, skip_upload_images: true, skip_upload_screenshots: true, aab: '../build/app/outputs/bundle/release/app-release.aab')
diff --git a/mobile/assets/i18n/ar-JO.json b/mobile/assets/i18n/ar-JO.json
index ec65d9ac9e..7b0673b110 100644
--- a/mobile/assets/i18n/ar-JO.json
+++ b/mobile/assets/i18n/ar-JO.json
@@ -527,6 +527,8 @@
"settings_require_restart": "يرجى إعادة تشغيل لتطبيق هذا الإعداد",
"setting_video_viewer_looping_subtitle": "تمكين تكرار مقطع فيديو تلقائيًا في عارض التفاصيل.",
"setting_video_viewer_looping_title": "تكرار مقطع فيديو تلقائيًا",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "أشرطة فيديو",
"share_add": "يضيف",
"share_add_photos": "إضافة الصور",
diff --git a/mobile/assets/i18n/cs-CZ.json b/mobile/assets/i18n/cs-CZ.json
index 1c2eda1de5..89f1ac9d9c 100644
--- a/mobile/assets/i18n/cs-CZ.json
+++ b/mobile/assets/i18n/cs-CZ.json
@@ -58,7 +58,7 @@
"asset_list_layout_settings_group_by_month_day": "Měsíc + den",
"asset_list_layout_sub_title": "Rozložení",
"asset_list_settings_subtitle": "Nastavení rozložení mřížky fotografií",
- "asset_list_settings_title": "Fotografická mřížka",
+ "asset_list_settings_title": "Mřížka fotografií",
"asset_restored_successfully": "Položka úspěšně obnovena",
"assets_deleted_permanently": "{} položek trvale odstraněno",
"assets_deleted_permanently_from_server": "{} položek trvale odstraněno z Immich serveru",
@@ -382,7 +382,7 @@
"memories_start_over": "Začít znovu",
"memories_swipe_to_close": "Přejetím nahoru zavřete",
"memories_year_ago": "Před rokem",
- "memories_years_ago": "Před {} roky",
+ "memories_years_ago": "Před {} lety",
"monthly_title_text_date_format": "LLLL y",
"motion_photos_page_title": "Pohyblivé fotky",
"multiselect_grid_edit_date_time_err_read_only": "Nelze upravit datum položek pouze pro čtení, přeskakuji",
@@ -527,6 +527,8 @@
"settings_require_restart": "Pro použití tohoto nastavení restartujte Immich",
"setting_video_viewer_looping_subtitle": "Povolení automatické smyčky videa v prohlížeči detailů.",
"setting_video_viewer_looping_title": "Smyčka",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videa",
"share_add": "Přidat",
"share_add_photos": "Přidat fotografie",
diff --git a/mobile/assets/i18n/da-DK.json b/mobile/assets/i18n/da-DK.json
index ce2f284e51..a0c5c1bf9e 100644
--- a/mobile/assets/i18n/da-DK.json
+++ b/mobile/assets/i18n/da-DK.json
@@ -7,7 +7,7 @@
"action_common_select": "Select",
"action_common_update": "Opdater",
"add_a_name": "Tilføj navn",
- "add_endpoint": "Add endpoint",
+ "add_endpoint": "Tilføj endepunkt",
"add_to_album_bottom_sheet_added": "Tilføjet til {album}",
"add_to_album_bottom_sheet_already_exists": "Allerede i {album}",
"advanced_settings_log_level_title": "Logniveau: {}",
@@ -66,12 +66,12 @@
"assets_restored_successfully": "{} element(er) blev gendannet succesfuldt",
"assets_trashed": "{} element(er) blev smidt i papirkurven",
"assets_trashed_from_server": "{} element(er) blev smidt i serverens papirkurv",
- "asset_viewer_settings_subtitle": "Manage your gallery viewer settings",
+ "asset_viewer_settings_subtitle": "Administrer indstillinger for gallerifremviser",
"asset_viewer_settings_title": "Billedviser",
- "automatic_endpoint_switching_subtitle": "Connect locally over designated Wi-Fi when available and use alternative connections elsewhere",
- "automatic_endpoint_switching_title": "Automatic URL switching",
- "background_location_permission": "Background location permission",
- "background_location_permission_content": "In order to switch networks when running in the background, Immich must *always* have precise location access so the app can read the Wi-Fi network's name",
+ "automatic_endpoint_switching_subtitle": "Forbind lokalt over det anviste WiFi, når det er tilgængeligt og brug alternative forbindelser andre stæder",
+ "automatic_endpoint_switching_title": "Automatisk skift af URL",
+ "background_location_permission": "Tilladelse til baggrundsplacering",
+ "background_location_permission_content": "For at skifte netværk, når appen kører i baggrunden, skal Immich *altid* have præcis placeringsadgang, så appen kan læse WiFi-netværkets navn",
"backup_album_selection_page_albums_device": "Albummer på enhed ({})",
"backup_album_selection_page_albums_tap": "Tryk en gang for at inkludere, tryk to gange for at ekskludere",
"backup_album_selection_page_assets_scatter": "Elementer kan være spredt på tværs af flere albummer. Albummer kan således inkluderes eller udelukkes under sikkerhedskopieringsprocessen.",
@@ -137,7 +137,7 @@
"backup_manual_success": "Succes",
"backup_manual_title": "Uploadstatus",
"backup_options_page_title": "Backupindstillinger",
- "backup_setting_subtitle": "Manage background and foreground upload settings",
+ "backup_setting_subtitle": "Administrer indstillnger for upload i forgrund og baggrund",
"cache_settings_album_thumbnails": "Biblioteksminiaturebilleder ({} elementer)",
"cache_settings_clear_cache_button": "Fjern cache",
"cache_settings_clear_cache_button_title": "Fjern appens cache. Dette vil i stor grad påvirke appens ydeevne indtil cachen er genopbygget.",
@@ -156,16 +156,16 @@
"cache_settings_tile_subtitle": "Kontroller den lokale lagerplads",
"cache_settings_tile_title": "Lokal lagerplads",
"cache_settings_title": "Cache-indstillinger",
- "cancel": "Cancel",
- "change_display_order": "Change display order",
+ "cancel": "Annuller",
+ "change_display_order": "Ændrer visningsrækkefølge",
"change_password_form_confirm_password": "Bekræft kodeord",
"change_password_form_description": "Hej {name},\n\nDette er enten første gang du logger ind eller også er der lavet en anmodning om at ændre dit kodeord. Indtast venligst et nyt kodeord nedenfor.",
"change_password_form_new_password": "Nyt kodeord",
"change_password_form_password_mismatch": "Kodeord er ikke ens",
"change_password_form_reenter_new_password": "Gentag nyt kodeord",
- "check_corrupt_asset_backup": "Check for corrupt asset backups",
- "check_corrupt_asset_backup_button": "Perform check",
- "check_corrupt_asset_backup_description": "Run this check only over Wi-Fi and once all assets have been backed-up. The procedure might take a few minutes.",
+ "check_corrupt_asset_backup": "Tjek for korrupte sikkerhedskopier af elementer",
+ "check_corrupt_asset_backup_button": "Foretag kontrol",
+ "check_corrupt_asset_backup_description": "Kør kun denne kontrol via Wi-Fi, og når alle elementer er blevet sikkerhedskopieret. Proceduren kan tage et par minutter.",
"client_cert_dialog_msg_confirm": "OK",
"client_cert_enter_password": "Enter Password",
"client_cert_import": "Import",
@@ -211,7 +211,7 @@
"crop": "Beskær",
"curated_location_page_title": "Steder",
"curated_object_page_title": "Ting",
- "current_server_address": "Current server address",
+ "current_server_address": "Nuværende serveraddresse",
"daily_title_text_date": "E, dd MMM",
"daily_title_text_date_year": "E, dd MMM, yyyy",
"date_format": "E d. LLL y • hh:mm",
@@ -248,8 +248,8 @@
"edit_date_time_dialog_timezone": "Tidszone",
"edit_image_title": "Rediger",
"edit_location_dialog_title": "Placering",
- "enter_wifi_name": "Enter WiFi name",
- "error_change_sort_album": "Failed to change album sort order",
+ "enter_wifi_name": "Indtast WiFi-navn",
+ "error_change_sort_album": "Ændring af sorteringsrækkefølgen mislykkedes",
"error_saving_image": "Fejl: {}",
"exif_bottom_sheet_description": "Tilføj beskrivelse...",
"exif_bottom_sheet_details": "DETALJER",
@@ -261,15 +261,15 @@
"experimental_settings_new_asset_list_title": "Aktiver eksperimentelt fotogitter",
"experimental_settings_subtitle": "Brug på eget ansvar!",
"experimental_settings_title": "Eksperimentelle",
- "external_network": "External network",
- "external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
+ "external_network": "Eksternt netværk",
+ "external_network_sheet_info": "Nå der er ikke er forbundet til det foretrukne WiFi-netværk, vil appen forbinde til den første URL, den kan forbinde til, på listen nedenfor. Startende med i toppen",
"favorites": "Favoritter",
"favorites_page_no_favorites": "Ingen favoritter blev fundet",
"favorites_page_title": "Favoritter",
"filename_search": "File name or extension",
"filter": "Filter",
- "get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
- "grant_permission": "Grant permission",
+ "get_wifiname_error": "Kunne ikke hente Wi-Fi-navn. Sørg for, at du har givet de nødvendige tilladelser og er forbundet til et Wi-Fi-netværk",
+ "grant_permission": "Giv tilladelse",
"haptic_feedback_switch": "Slå haptisk feedback til",
"haptic_feedback_title": "Haptisk feedback",
"header_settings_add_header_tip": "Add Header",
@@ -315,10 +315,10 @@
"library_page_sort_most_oldest_photo": "Ældste billede",
"library_page_sort_most_recent_photo": "Seneste billede",
"library_page_sort_title": "Albumtitel",
- "local_network": "Local network",
- "local_network_sheet_info": "The app will connect to the server through this URL when using the specified Wi-Fi network",
- "location_permission": "Location permission",
- "location_permission_content": "In order to use the auto-switching feature, Immich needs precise location permission so it can read the current WiFi network's name",
+ "local_network": "Lokalt netværk",
+ "local_network_sheet_info": "Appen vil oprette forbindelse til serveren via denne URL, når du bruger det angivne WiFi-netværk",
+ "location_permission": "Tilladelse til placering",
+ "location_permission_content": "For automatisk at skifte netværk, skal Immich *altid* have præcis placeringsadgang, så appen kan læse WiFi-netværkets navn",
"location_picker_choose_on_map": "Vælg på kort",
"location_picker_latitude": "Breddegrad",
"location_picker_latitude_error": "Indtast en gyldig breddegrad",
@@ -388,8 +388,8 @@
"multiselect_grid_edit_date_time_err_read_only": "Kan ikke redigere datoen på kun læselige elementer. Springer over",
"multiselect_grid_edit_gps_err_read_only": "Kan ikke redigere lokation af kun læselige elementer. Springer over",
"my_albums": "Mine albummer",
- "networking_settings": "Networking",
- "networking_subtitle": "Manage the server endpoint settings",
+ "networking_settings": "Netværk",
+ "networking_subtitle": "Administrer serverens endepunktindstillinger",
"no_assets_to_show": "Ingen elementer at vise",
"no_name": "Intet navn",
"notification_permission_dialog_cancel": "Annuller",
@@ -423,7 +423,7 @@
"permission_onboarding_permission_limited": "Tilladelse begrænset. For at lade Immich lave sikkerhedskopi og styre hele dit galleri, skal der gives tilladelse til billeder og videoer i indstillinger.",
"permission_onboarding_request": "Immich kræver tilliadelse til at se dine billeder og videoer.",
"places": "Placeringer",
- "preferences_settings_subtitle": "Manage the app's preferences",
+ "preferences_settings_subtitle": "Administrer app-præferencer",
"preferences_settings_title": "Præferencer",
"profile_drawer_app_logs": "Log",
"profile_drawer_client_out_of_date_major": "Mobilapp er forældet. Opdater venligst til den nyeste større version",
@@ -438,7 +438,7 @@
"profile_drawer_trash": "Papirkurv",
"recently_added": "Senest tilføjet",
"recently_added_page_title": "Nyligt tilføjet",
- "save": "Save",
+ "save": "Gem",
"save_to_gallery": "Gem til galleri",
"scaffold_body_error_occurred": "Der opstod en fejl",
"search_albums": "Søg i albummer",
@@ -484,7 +484,7 @@
"search_page_places": "Steder",
"search_page_recently_added": "Nyligt tilføjet",
"search_page_screenshots": "Skærmbilleder",
- "search_page_search_photos_videos": "Search for your photos and videos",
+ "search_page_search_photos_videos": "Søg i dine billeder og videoer",
"search_page_selfies": "Selfier",
"search_page_things": "Ting",
"search_page_videos": "Videoer",
@@ -497,7 +497,7 @@
"select_additional_user_for_sharing_page_suggestions": "Anbefalinger",
"select_user_for_sharing_page_err_album": "Fejlede i at oprette et nyt album",
"select_user_for_sharing_page_share_suggestions": "Anbefalinger",
- "server_endpoint": "Server Endpoint",
+ "server_endpoint": "Server endepunkt",
"server_info_box_app_version": "Applikationsversion",
"server_info_box_latest_release": "Seneste version",
"server_info_box_server_url": "Server URL",
@@ -509,7 +509,7 @@
"setting_image_viewer_preview_title": "Indlæs forhåndsvisning af billedet",
"setting_image_viewer_title": "Images",
"setting_languages_apply": "Anvend",
- "setting_languages_subtitle": "Change the app's language",
+ "setting_languages_subtitle": "Ændrer app-sprog",
"setting_languages_title": "Sprog",
"setting_notifications_notify_failures_grace_period": "Giv besked om fejl med sikkerhedskopiering i baggrunden: {}",
"setting_notifications_notify_hours": "{} timer",
@@ -527,6 +527,8 @@
"settings_require_restart": "Genstart venligst Immich for at anvende denne ændring",
"setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.",
"setting_video_viewer_looping_title": "Looping",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videos",
"share_add": "Tilføj",
"share_add_photos": "Tilføj billeder",
@@ -642,8 +644,8 @@
"upload_dialog_info": "Vil du sikkerhedskopiere de(t) valgte element(er) til serveren?",
"upload_dialog_ok": "Upload",
"upload_dialog_title": "Upload element",
- "use_current_connection": "use current connection",
- "validate_endpoint_error": "Please enter a valid URL",
+ "use_current_connection": "brug nuværende forbindelse",
+ "validate_endpoint_error": "Indtast en gyldig URL",
"version_announcement_overlay_ack": "Accepter",
"version_announcement_overlay_release_notes": "udgivelsesnoterne",
"version_announcement_overlay_text_1": "Hej ven, der er en ny version af",
@@ -654,6 +656,6 @@
"viewer_remove_from_stack": "Fjern fra stak",
"viewer_stack_use_as_main_asset": "Brug som hovedelement",
"viewer_unstack": "Fjern fra stak",
- "wifi_name": "WiFi Name",
- "your_wifi_name": "Your WiFi name"
+ "wifi_name": "WiFi-navn",
+ "your_wifi_name": "Dit WiFi-navn"
}
\ No newline at end of file
diff --git a/mobile/assets/i18n/de-DE.json b/mobile/assets/i18n/de-DE.json
index 20c4baa5c0..98b931ed54 100644
--- a/mobile/assets/i18n/de-DE.json
+++ b/mobile/assets/i18n/de-DE.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Bitte starte Immich neu, um diese Einstellung anzuwenden.",
"setting_video_viewer_looping_subtitle": "Aktiviere diese Option, um ein Video in der Detailansicht automatisch in einer Schleife anzuzeigen.",
"setting_video_viewer_looping_title": "Schleife / Looping",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videos",
"share_add": "Hinzufügen",
"share_add_photos": "Fotos hinzufügen",
diff --git a/mobile/assets/i18n/el-GR.json b/mobile/assets/i18n/el-GR.json
index 47e945c1a9..083c760109 100644
--- a/mobile/assets/i18n/el-GR.json
+++ b/mobile/assets/i18n/el-GR.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Επανεκκινήστε το Immich για να εφαρμόσετε αυτήν τη ρύθμιση",
"setting_video_viewer_looping_subtitle": "Ενεργοποιήστε για το αυτόματη συνεχής επανάληψη βίντεο στο πρόγραμμα προβολής λεπτομερειών.",
"setting_video_viewer_looping_title": "Συνεχής Επανάληψη",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Βίντεο",
"share_add": "Πρόσθεση",
"share_add_photos": "Προσθήκη φωτογραφιών",
diff --git a/mobile/assets/i18n/en-US.json b/mobile/assets/i18n/en-US.json
index a7f31f8440..1ff40b3566 100644
--- a/mobile/assets/i18n/en-US.json
+++ b/mobile/assets/i18n/en-US.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Please restart Immich to apply this setting",
"setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.",
"setting_video_viewer_looping_title": "Looping",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videos",
"share_add": "Add",
"share_add_photos": "Add photos",
diff --git a/mobile/assets/i18n/es-ES.json b/mobile/assets/i18n/es-ES.json
index d7ddb03fd2..a205bf7a63 100644
--- a/mobile/assets/i18n/es-ES.json
+++ b/mobile/assets/i18n/es-ES.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Por favor, reinicia Immich para aplicar este ajuste",
"setting_video_viewer_looping_subtitle": "Habilitar reproducción en bucle del video en la vista detallada",
"setting_video_viewer_looping_title": "Bucle",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Vídeos",
"share_add": "Agregar",
"share_add_photos": "Agregar fotos",
diff --git a/mobile/assets/i18n/es-MX.json b/mobile/assets/i18n/es-MX.json
index bcd25a556a..94fbadb374 100644
--- a/mobile/assets/i18n/es-MX.json
+++ b/mobile/assets/i18n/es-MX.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Por favor, reinicia Immich para aplicar este ajuste",
"setting_video_viewer_looping_subtitle": "Habilitar reproducción en bucle del video en la vista detallada",
"setting_video_viewer_looping_title": "Bucle",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videos",
"share_add": "Agregar",
"share_add_photos": "Agregar fotos",
diff --git a/mobile/assets/i18n/es-PE.json b/mobile/assets/i18n/es-PE.json
index 3e62730ef2..48bf648f6c 100644
--- a/mobile/assets/i18n/es-PE.json
+++ b/mobile/assets/i18n/es-PE.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Por favor, reinicia Immich para aplicar este ajuste",
"setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.",
"setting_video_viewer_looping_title": "Looping",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videos",
"share_add": "Agregar",
"share_add_photos": "Agregar fotos",
diff --git a/mobile/assets/i18n/es-US.json b/mobile/assets/i18n/es-US.json
index 489232eb50..dc35a0cd84 100644
--- a/mobile/assets/i18n/es-US.json
+++ b/mobile/assets/i18n/es-US.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Por favor, reinicia Immich para aplicar este ajuste",
"setting_video_viewer_looping_subtitle": "Habilitar reproducción en bucle del video en la vista detallada",
"setting_video_viewer_looping_title": "Bucle",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videos",
"share_add": "Agregar",
"share_add_photos": "Agregar fotos",
diff --git a/mobile/assets/i18n/fi-FI.json b/mobile/assets/i18n/fi-FI.json
index 8c5b1d74fe..b48fd3d6ee 100644
--- a/mobile/assets/i18n/fi-FI.json
+++ b/mobile/assets/i18n/fi-FI.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Käynnistä Immich uudelleen ottaaksesti tämän asetuksen käyttöön",
"setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.",
"setting_video_viewer_looping_title": "Looping",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videot",
"share_add": "Lisää",
"share_add_photos": "Lisää kuvia",
diff --git a/mobile/assets/i18n/fr-CA.json b/mobile/assets/i18n/fr-CA.json
index 056f3c7ae8..d0ef7fb76a 100644
--- a/mobile/assets/i18n/fr-CA.json
+++ b/mobile/assets/i18n/fr-CA.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Veuillez redémarrer Immich pour appliquer ce paramètre",
"setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.",
"setting_video_viewer_looping_title": "Looping",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videos",
"share_add": "Ajouter",
"share_add_photos": "Ajouter des photos",
diff --git a/mobile/assets/i18n/fr-FR.json b/mobile/assets/i18n/fr-FR.json
index bc46840f5f..d905abb209 100644
--- a/mobile/assets/i18n/fr-FR.json
+++ b/mobile/assets/i18n/fr-FR.json
@@ -262,7 +262,7 @@
"experimental_settings_subtitle": "Utilisez à vos dépends !",
"experimental_settings_title": "Expérimental",
"external_network": "Réseau externe",
- "external_network_sheet_info": "Quand vous n'êtes pas connecté à votre réseau préféré, l'application va tenter de se connecter aux adresses ci-dessous, en commencant par le haut",
+ "external_network_sheet_info": "Quand vous n'êtes pas connecté à votre réseau préféré, l'application va tenter de se connecter aux adresses ci-dessous, en commençant par la première",
"favorites": "Favoris",
"favorites_page_no_favorites": "Aucun élément favori n'a été trouvé",
"favorites_page_title": "Favoris",
@@ -316,7 +316,7 @@
"library_page_sort_most_recent_photo": "Photo la plus récente",
"library_page_sort_title": "Titre de l'album",
"local_network": "Réseau local",
- "local_network_sheet_info": "L'application va connecter au serveur via cette URL quand l'appareil est connecté au réseau Wi-Fi spécifié",
+ "local_network_sheet_info": "L'application va se connecter au serveur via cette URL quand l'appareil est connecté à ce réseau Wi-Fi",
"location_permission": "Autorisation de localisation ",
"location_permission_content": "Afin de pouvoir changer d'adresse automatiquement, Immich doit avoir accès à la localisation précise, afin d'accéder au le nom du réseau Wi-Fi utilisé",
"location_picker_choose_on_map": "Sélectionner sur la carte",
@@ -527,6 +527,8 @@
"settings_require_restart": "Veuillez redémarrer Immich pour appliquer ce paramètre",
"setting_video_viewer_looping_subtitle": "Activer pour voir les vidéos en boucle dans le lecteur détaillé",
"setting_video_viewer_looping_title": "Boucle",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Vidéos",
"share_add": "Ajouter",
"share_add_photos": "Ajouter des photos",
diff --git a/mobile/assets/i18n/he-IL.json b/mobile/assets/i18n/he-IL.json
index a77e5eb796..fe5d69ef9e 100644
--- a/mobile/assets/i18n/he-IL.json
+++ b/mobile/assets/i18n/he-IL.json
@@ -157,7 +157,7 @@
"cache_settings_tile_title": "אחסון מקומי",
"cache_settings_title": "הגדרות שמירת מטמון",
"cancel": "ביטול",
- "change_display_order": "Change display order",
+ "change_display_order": "שנה סדר תצוגה",
"change_password_form_confirm_password": "אשר סיסמה",
"change_password_form_description": "הי {name},\n\nזאת או הפעם הראשונה שאת/ה מתחבר/ת למערכת או שנעשתה בקשה לשינוי הסיסמה שלך. נא להזין את הסיסמה החדשה למטה.",
"change_password_form_new_password": "סיסמה חדשה",
@@ -249,7 +249,7 @@
"edit_image_title": "ערוך",
"edit_location_dialog_title": "מיקום",
"enter_wifi_name": "הזן שם אינטרנט אלחוטי",
- "error_change_sort_album": "Failed to change album sort order",
+ "error_change_sort_album": "שינוי סדר מיון אלבום נכשל",
"error_saving_image": "שגיאה: {}",
"exif_bottom_sheet_description": "הוסף תיאור...",
"exif_bottom_sheet_details": "פרטים",
@@ -527,6 +527,8 @@
"settings_require_restart": "אנא הפעל מחדש את היישום כדי להחיל הגדרה זו",
"setting_video_viewer_looping_subtitle": "אפשר הפעלה חוזרת אוטומטית של סרטון במציג הפרטים",
"setting_video_viewer_looping_title": "הפעלה חוזרת",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "סרטונים",
"share_add": "הוסף",
"share_add_photos": "הוסף תמונות",
diff --git a/mobile/assets/i18n/hi-IN.json b/mobile/assets/i18n/hi-IN.json
index af4b6b37d9..8872ef33d3 100644
--- a/mobile/assets/i18n/hi-IN.json
+++ b/mobile/assets/i18n/hi-IN.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Please restart Immich to apply this setting",
"setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.",
"setting_video_viewer_looping_title": "Looping",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videos",
"share_add": "Add",
"share_add_photos": "Add photos",
diff --git a/mobile/assets/i18n/hu-HU.json b/mobile/assets/i18n/hu-HU.json
index ee17a2d174..c55f33a979 100644
--- a/mobile/assets/i18n/hu-HU.json
+++ b/mobile/assets/i18n/hu-HU.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Ennek a beállításnak az érvénybe lépéséhez indítsd újra az Immich-et",
"setting_video_viewer_looping_subtitle": "Engedélyezi a videók folyamatosan ismételt lejátszását az elem megjelenítőben",
"setting_video_viewer_looping_title": "Ismétlés",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videók",
"share_add": "Hozzáadás",
"share_add_photos": "Fotók hozzáadása",
diff --git a/mobile/assets/i18n/id-ID.json b/mobile/assets/i18n/id-ID.json
new file mode 100644
index 0000000000..8fefa31163
--- /dev/null
+++ b/mobile/assets/i18n/id-ID.json
@@ -0,0 +1,661 @@
+{
+ "action_common_back": "Kembali",
+ "action_common_cancel": "Batal",
+ "action_common_clear": "Bersihkan",
+ "action_common_confirm": "Konfirmasi",
+ "action_common_save": "Save",
+ "action_common_select": "Select",
+ "action_common_update": "Perbarui",
+ "add_a_name": "Add a name",
+ "add_endpoint": "Add endpoint",
+ "add_to_album_bottom_sheet_added": "Added to {album}",
+ "add_to_album_bottom_sheet_already_exists": "Already in {album}",
+ "advanced_settings_log_level_title": "Log level: {}",
+ "advanced_settings_prefer_remote_subtitle": "Beberapa perangkat tidak dapat memuat thumbnail dengan cepat.\nMenyalakan ini akan memuat thumbnail dari server.",
+ "advanced_settings_prefer_remote_title": "Prefer remote images",
+ "advanced_settings_proxy_headers_subtitle": "Define proxy headers Immich should send with each network request",
+ "advanced_settings_proxy_headers_title": "Proxy Headers",
+ "advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
+ "advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
+ "advanced_settings_tile_subtitle": "Advanced user's settings",
+ "advanced_settings_tile_title": "Lanjutan",
+ "advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
+ "advanced_settings_troubleshooting_title": "Troubleshooting",
+ "album_info_card_backup_album_excluded": "Dikecualikan",
+ "album_info_card_backup_album_included": "Terpilih",
+ "albums": "Albums",
+ "album_thumbnail_card_item": "1 item",
+ "album_thumbnail_card_items": "{} item",
+ "album_thumbnail_card_shared": " · Dibagikan",
+ "album_thumbnail_owned": "Dimiliki",
+ "album_thumbnail_shared_by": "Dibagikan oleh {}",
+ "album_viewer_appbar_delete_confirm": "Hapus album ini dari akun anda?",
+ "album_viewer_appbar_share_delete": "Hapus album",
+ "album_viewer_appbar_share_err_delete": "Gagal menghapus album",
+ "album_viewer_appbar_share_err_leave": "Gagal keluar album",
+ "album_viewer_appbar_share_err_remove": "Gagal menghapus aset dari album",
+ "album_viewer_appbar_share_err_title": "Gagal mengubah judul album",
+ "album_viewer_appbar_share_leave": "Keluar dari album",
+ "album_viewer_appbar_share_remove": "Hapus dari album",
+ "album_viewer_appbar_share_to": "Bagikan Ke",
+ "album_viewer_page_share_add_users": "Tambah pengguna",
+ "all": "All",
+ "all_people_page_title": "Orang",
+ "all_videos_page_title": "Video",
+ "app_bar_signout_dialog_content": "Apakah kamu yakin ingin keluar akun?",
+ "app_bar_signout_dialog_ok": "Ya",
+ "app_bar_signout_dialog_title": "Keluar akun",
+ "archived": "Archived",
+ "archive_page_no_archived_assets": "Tidak ada aset diarsipkan",
+ "archive_page_title": "Arsip ({})",
+ "asset_action_delete_err_read_only": "Cannot delete read only asset(s), skipping",
+ "asset_action_share_err_offline": "Cannot fetch offline asset(s), skipping",
+ "asset_list_group_by_sub_title": "Group by",
+ "asset_list_layout_settings_dynamic_layout_title": "Tata dinamis",
+ "asset_list_layout_settings_group_automatically": "Otomatis",
+ "asset_list_layout_settings_group_by": "Kelompokkan aset berdasarkan",
+ "asset_list_layout_settings_group_by_month": "Bulan",
+ "asset_list_layout_settings_group_by_month_day": "Bulan + tanggal",
+ "asset_list_layout_sub_title": "Penataan",
+ "asset_list_settings_subtitle": "Setelan grid foto",
+ "asset_list_settings_title": "Grid Foto",
+ "asset_restored_successfully": "Asset restored successfully",
+ "assets_deleted_permanently": "{} asset(s) deleted permanently",
+ "assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
+ "assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
+ "assets_restored_successfully": "{} asset(s) restored successfully",
+ "assets_trashed": "{} asset(s) trashed",
+ "assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
+ "asset_viewer_settings_subtitle": "Manage your gallery viewer settings",
+ "asset_viewer_settings_title": "Penampil Aset",
+ "automatic_endpoint_switching_subtitle": "Connect locally over designated Wi-Fi when available and use alternative connections elsewhere",
+ "automatic_endpoint_switching_title": "Automatic URL switching",
+ "background_location_permission": "Background location permission",
+ "background_location_permission_content": "In order to switch networks when running in the background, Immich must *always* have precise location access so the app can read the Wi-Fi network's name",
+ "backup_album_selection_page_albums_device": "Album perangkat ({})",
+ "backup_album_selection_page_albums_tap": "Sentuh untuk memilih, sentuh 2x untuk mengecualikan",
+ "backup_album_selection_page_assets_scatter": "Aset dapat tersebar dalam banyak album. Sehingga album dapat dipilih atau dikecualikan saat proses pencadangan.",
+ "backup_album_selection_page_select_albums": "Pilih album",
+ "backup_album_selection_page_selection_info": "Album terpilih: ",
+ "backup_album_selection_page_total_assets": "Total aset unik",
+ "backup_all": "Semua",
+ "backup_background_service_backup_failed_message": "Gagal mencadangkan aset. Mencoba lagi...",
+ "backup_background_service_connection_failed_message": "Koneksi ke server gagal. Mencoba ulang...",
+ "backup_background_service_current_upload_notification": "Mengunggah {}",
+ "backup_background_service_default_notification": "Memeriksa aset baru...",
+ "backup_background_service_error_title": "Backup error",
+ "backup_background_service_in_progress_notification": "Mencadangkan asetmu...",
+ "backup_background_service_upload_failure_notification": "Gagal unggah {}",
+ "backup_controller_page_albums": "Cadangkan album",
+ "backup_controller_page_background_app_refresh_disabled_content": "Enable background app refresh in Settings > General > Background App Refresh in order to use background backup.",
+ "backup_controller_page_background_app_refresh_disabled_title": "Background app refresh disabled",
+ "backup_controller_page_background_app_refresh_enable_button_text": "Ke setelan",
+ "backup_controller_page_background_battery_info_link": "Show me how",
+ "backup_controller_page_background_battery_info_message": "For the best background backup experience, please disable any battery optimizations restricting background activity for Immich.\n\nSince this is device-specific, please lookup the required information for your device manufacturer.",
+ "backup_controller_page_background_battery_info_ok": "OK",
+ "backup_controller_page_background_battery_info_title": "Optimisasi baterai",
+ "backup_controller_page_background_charging": "Hanya saat mengisi daya",
+ "backup_controller_page_background_configure_error": "Gagal mengatur layanan latar belakang",
+ "backup_controller_page_background_delay": "Tunda cadangkan aset baru: {}",
+ "backup_controller_page_background_description": "Aktifkan layanan latar belakang untuk mencadangkan aset baru secara otomatis tanpa perlu membuka app",
+ "backup_controller_page_background_is_off": "Pencadangan otomatis di latar belakang nonaktif",
+ "backup_controller_page_background_is_on": "Pencadangan otomatis di latar belakang aktif",
+ "backup_controller_page_background_turn_off": "Matikan layanan latar belakang",
+ "backup_controller_page_background_turn_on": "Nyalakan layanan latar belakang",
+ "backup_controller_page_background_wifi": "Hanya melalui WiFi",
+ "backup_controller_page_backup": "Cadangkan",
+ "backup_controller_page_backup_selected": "Terpilih:",
+ "backup_controller_page_backup_sub": "Foto dan video yang dicadangkan",
+ "backup_controller_page_cancel": "Batal",
+ "backup_controller_page_created": "Dibuat pada: {}",
+ "backup_controller_page_desc_backup": "Aktifkan pencadangan di latar depan untuk mengunggah otomatis aset baru ke server secara otomatis saat aplikasi terbuka.",
+ "backup_controller_page_excluded": "Dikecualikan:",
+ "backup_controller_page_failed": "Gagal ({})",
+ "backup_controller_page_filename": "Nama file: {} [{}]",
+ "backup_controller_page_id": "ID: {}",
+ "backup_controller_page_info": "Informasi Cadangan",
+ "backup_controller_page_none_selected": "Tidak ada dipilih",
+ "backup_controller_page_remainder": "Sisa",
+ "backup_controller_page_remainder_sub": "Sisa foto dan video untuk dicadangkan",
+ "backup_controller_page_select": "Pilih",
+ "backup_controller_page_server_storage": "Penyimpanan Server",
+ "backup_controller_page_start_backup": "Mulai Cadangkan",
+ "backup_controller_page_status_off": "Pencadangan otomatis di latar depan nonaktif",
+ "backup_controller_page_status_on": "Pencadangan otomatis di latar depan aktif",
+ "backup_controller_page_storage_format": "{} dari {} terpakai",
+ "backup_controller_page_to_backup": "Album untuk dicadangkan",
+ "backup_controller_page_total": "Jumlah",
+ "backup_controller_page_total_sub": "Semua foto dan video unik dari album terpilih",
+ "backup_controller_page_turn_off": "Nonaktifkan pencadangan latar depan",
+ "backup_controller_page_turn_on": "Aktifkan pencadangan latar depan",
+ "backup_controller_page_uploading_file_info": "Mengunggah info file",
+ "backup_err_only_album": "Tidak dapat menghapus album",
+ "backup_info_card_assets": "aset",
+ "backup_manual_cancelled": "Dibatalkan",
+ "backup_manual_failed": "Gagal",
+ "backup_manual_in_progress": "Dalam proses unggah. Coba lagi nanti",
+ "backup_manual_success": "Sukses",
+ "backup_manual_title": "Status unggah",
+ "backup_options_page_title": "Setelan cadangan",
+ "backup_setting_subtitle": "Manage background and foreground upload settings",
+ "cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
+ "cache_settings_clear_cache_button": "Hapus cache",
+ "cache_settings_clear_cache_button_title": "Membersihkan cache aplikasi. Performa aplikasi akan terpengaruh hingga cache dibuat kembali.",
+ "cache_settings_duplicated_assets_clear_button": "BERSIHKAN",
+ "cache_settings_duplicated_assets_subtitle": "Photos and videos that are black listed by the app",
+ "cache_settings_duplicated_assets_title": "Aset Ganda ({})",
+ "cache_settings_image_cache_size": "Image cache size ({} assets)",
+ "cache_settings_statistics_album": "Pustaka thumbnail",
+ "cache_settings_statistics_assets": "{} aset ({})",
+ "cache_settings_statistics_full": "Full images",
+ "cache_settings_statistics_shared": "Thumbnail album berbagi",
+ "cache_settings_statistics_thumbnail": "Thumbnail",
+ "cache_settings_statistics_title": "Penggunaan cache",
+ "cache_settings_subtitle": "Menyetel proses cache aplikasi Immich",
+ "cache_settings_thumbnail_size": "Ukuran cache thumbnail ({} aset)",
+ "cache_settings_tile_subtitle": "Control the local storage behaviour",
+ "cache_settings_tile_title": "Penyimpanan Lokal",
+ "cache_settings_title": "Setelan Cache",
+ "cancel": "Cancel",
+ "change_display_order": "Change display order",
+ "change_password_form_confirm_password": "Konfirmasi Sandi",
+ "change_password_form_description": "Halo {},\n\nIni pertama kali anda masuk ke dalam sistem atau terdapat permintaan penggantian password.\nHarap masukkan password baru.",
+ "change_password_form_new_password": "Sandi Baru",
+ "change_password_form_password_mismatch": "Sandi tidak cocok",
+ "change_password_form_reenter_new_password": "Masukkan Ulang Sandi Baru",
+ "check_corrupt_asset_backup": "Check for corrupt asset backups",
+ "check_corrupt_asset_backup_button": "Perform check",
+ "check_corrupt_asset_backup_description": "Run this check only over Wi-Fi and once all assets have been backed-up. The procedure might take a few minutes.",
+ "client_cert_dialog_msg_confirm": "OK",
+ "client_cert_enter_password": "Enter Password",
+ "client_cert_import": "Import",
+ "client_cert_import_success_msg": "Client certificate is imported",
+ "client_cert_invalid_msg": "Invalid certificate file or wrong password",
+ "client_cert_remove": "Remove",
+ "client_cert_remove_msg": "Client certificate is removed",
+ "client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
+ "client_cert_title": "SSL Client Certificate",
+ "common_add_to_album": "Tambah ke album",
+ "common_change_password": "Ubah Sandi",
+ "common_create_new_album": "Buat album baru",
+ "common_server_error": "Koneksi gagal, pastikan server dapat diakses dan memiliki versi yang kompatibel.",
+ "common_shared": "Dibagikan",
+ "contextual_search": "Sunrise on the beach",
+ "control_bottom_app_bar_add_to_album": "Tambah ke album",
+ "control_bottom_app_bar_album_info": "{} item",
+ "control_bottom_app_bar_album_info_shared": "{} item · Dibagikan",
+ "control_bottom_app_bar_archive": "Arsipkan",
+ "control_bottom_app_bar_create_new_album": "Buat album baru",
+ "control_bottom_app_bar_delete": "Hapus",
+ "control_bottom_app_bar_delete_from_immich": "Hapus dari Immich",
+ "control_bottom_app_bar_delete_from_local": "Hapus dari perangkat",
+ "control_bottom_app_bar_download": "Download",
+ "control_bottom_app_bar_edit": "Edit",
+ "control_bottom_app_bar_edit_location": "Edit Lokasi",
+ "control_bottom_app_bar_edit_time": "Edit Tanggal & Waktu",
+ "control_bottom_app_bar_favorite": "Favorit",
+ "control_bottom_app_bar_share": "Bagikan",
+ "control_bottom_app_bar_share_to": "Bagikan Ke",
+ "control_bottom_app_bar_stack": "Tumpuk",
+ "control_bottom_app_bar_trash_from_immich": "Pindah ke Sampah",
+ "control_bottom_app_bar_unarchive": "Hapus dari arsip",
+ "control_bottom_app_bar_unfavorite": "Unfavorite",
+ "control_bottom_app_bar_upload": "Unggah",
+ "create_album": "Create album",
+ "create_album_page_untitled": "Tak berjudul",
+ "create_new": "CREATE NEW",
+ "create_shared_album_page_create": "Buat",
+ "create_shared_album_page_share": "Bagikan",
+ "create_shared_album_page_share_add_assets": "TAMBAHKAN ASET",
+ "create_shared_album_page_share_select_photos": "Pilih Foto",
+ "crop": "Crop",
+ "curated_location_page_title": "Tempat",
+ "curated_object_page_title": "Benda",
+ "current_server_address": "Current server address",
+ "daily_title_text_date": "E, dd MMM",
+ "daily_title_text_date_year": "E, dd MMM yyyy",
+ "date_format": "E, d LLL y • HH:mm",
+ "delete_dialog_alert": "Item ini akan dihapus permanen dari Immich dan perangkat",
+ "delete_dialog_alert_local": "Item ini akan dihapus secara permanen dari perangkatmu, namun masih akan tersedia di server Immich",
+ "delete_dialog_alert_local_non_backed_up": "Beberapa item belum dicadangkan ke Immich dan akan dihapus secara permanen dari perangkatmu",
+ "delete_dialog_alert_remote": "Item ini akan dihapus secara permanen dari server Immich",
+ "delete_dialog_cancel": "Batal",
+ "delete_dialog_ok": "Hapus",
+ "delete_dialog_ok_force": "Delete Anyway",
+ "delete_dialog_title": "Hapus Permanen",
+ "delete_local_dialog_ok_backed_up_only": "Delete Backed Up Only",
+ "delete_local_dialog_ok_force": "Delete Anyway",
+ "delete_shared_link_dialog_content": "Apa kamu yakin ingin menghapus link berbagi ini?",
+ "delete_shared_link_dialog_title": "Hapus Link Berbagi",
+ "description_input_hint_text": "Tambah deskripsi...",
+ "description_input_submit_error": "Error updating description, check the log for more details",
+ "download_canceled": "Download canceled",
+ "download_complete": "Download complete",
+ "download_enqueue": "Download enqueued",
+ "download_error": "Download Error",
+ "download_failed": "Download failed",
+ "download_filename": "file: {}",
+ "download_finished": "Download finished",
+ "downloading": "Downloading...",
+ "downloading_media": "Downloading media",
+ "download_notfound": "Download not found",
+ "download_paused": "Download paused",
+ "download_started": "Download started",
+ "download_sucess": "Download success",
+ "download_sucess_android": "The media has been downloaded to DCIM/Immich",
+ "download_waiting_to_retry": "Waiting to retry",
+ "edit_date_time_dialog_date_time": "Tanggal dan Waktu",
+ "edit_date_time_dialog_timezone": "Zona Waktu",
+ "edit_image_title": "Edit",
+ "edit_location_dialog_title": "Lokasi",
+ "enter_wifi_name": "Enter WiFi name",
+ "error_change_sort_album": "Failed to change album sort order",
+ "error_saving_image": "Error: {}",
+ "exif_bottom_sheet_description": "Tambahkan Deskripsi...",
+ "exif_bottom_sheet_details": "RINCIAN",
+ "exif_bottom_sheet_location": "LOKASI",
+ "exif_bottom_sheet_location_add": "Tambah lokasi",
+ "exif_bottom_sheet_people": "ORANG",
+ "exif_bottom_sheet_person_add_person": "Tambah nama",
+ "experimental_settings_new_asset_list_subtitle": "Memproses",
+ "experimental_settings_new_asset_list_title": "Nyalakan grid foto eksperimental",
+ "experimental_settings_subtitle": "Gunakan atas risiko anda sendiri!",
+ "experimental_settings_title": "Eksperimental",
+ "external_network": "External network",
+ "external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
+ "favorites": "Favorites",
+ "favorites_page_no_favorites": "Tidak ada aset favorit",
+ "favorites_page_title": "Favorit",
+ "filename_search": "File name or extension",
+ "filter": "Filter",
+ "get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
+ "grant_permission": "Grant permission",
+ "haptic_feedback_switch": "Nyalakan getar",
+ "haptic_feedback_title": "Getar",
+ "header_settings_add_header_tip": "Add Header",
+ "header_settings_field_validator_msg": "Value cannot be empty",
+ "header_settings_header_name_input": "Header name",
+ "header_settings_header_value_input": "Header value",
+ "header_settings_page_title": "Proxy Headers",
+ "headers_settings_tile_subtitle": "Define proxy headers the app should send with each network request",
+ "headers_settings_tile_title": "Custom proxy headers",
+ "home_page_add_to_album_conflicts": "Aset {added} telah ditambahkan ke album {album}. Aset {failed} sudah ada dalam album.",
+ "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
+ "home_page_add_to_album_success": "Aset {added} telah ditambahkan ke {album}.",
+ "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
+ "home_page_archive_err_local": "Can not archive local assets yet, skipping",
+ "home_page_archive_err_partner": "Can not archive partner assets, skipping",
+ "home_page_building_timeline": "Memuat linimasa",
+ "home_page_delete_err_partner": "Can not delete partner assets, skipping",
+ "home_page_delete_remote_err_local": "Local assets in delete remote selection, skipping",
+ "home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
+ "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
+ "home_page_first_time_notice": "Jika ini pertama kali Anda menggunakan aplikasi, pastikan untuk memilik album untuk dicadangkan agar linimasa anda terisi oleh foto dan video dalam album.",
+ "home_page_share_err_local": "Can not share local assets via link, skipping",
+ "home_page_upload_err_limit": "Hanya dapat mengunggah maksimal 30 aset dalam satu waktu, melewatkan",
+ "ignore_icloud_photos": "Ignore iCloud photos",
+ "ignore_icloud_photos_description": "Photos that are stored on iCloud will not be uploaded to the Immich server",
+ "image_saved_successfully": "Image saved",
+ "image_viewer_page_state_provider_download_error": "Gagal Mengunduh",
+ "image_viewer_page_state_provider_download_started": "Unduh dimulai",
+ "image_viewer_page_state_provider_download_success": "Unduh Sukses",
+ "image_viewer_page_state_provider_share_error": "Share Error",
+ "invalid_date": "Invalid date",
+ "invalid_date_format": "Invalid date format",
+ "library": "Library",
+ "library_page_albums": "Album",
+ "library_page_archive": "Arsip",
+ "library_page_device_albums": "Album pada Perangkat",
+ "library_page_favorites": "Favorit",
+ "library_page_new_album": "Album baru",
+ "library_page_sharing": "Sharing",
+ "library_page_sort_asset_count": "Jumlah aset",
+ "library_page_sort_created": "Tanggal dibuat",
+ "library_page_sort_last_modified": "Terakhir diubah",
+ "library_page_sort_most_oldest_photo": "Foto terlama",
+ "library_page_sort_most_recent_photo": "Foto terbaru",
+ "library_page_sort_title": "Judul album",
+ "local_network": "Local network",
+ "local_network_sheet_info": "The app will connect to the server through this URL when using the specified Wi-Fi network",
+ "location_permission": "Location permission",
+ "location_permission_content": "In order to use the auto-switching feature, Immich needs precise location permission so it can read the current WiFi network's name",
+ "location_picker_choose_on_map": "Pilih di peta",
+ "location_picker_latitude": "Lintang",
+ "location_picker_latitude_error": "Masukkan lintang yang sah",
+ "location_picker_latitude_hint": "Masukkan lintang di sini",
+ "location_picker_longitude": "Bujur",
+ "location_picker_longitude_error": "Masukkan bujur yang sah",
+ "location_picker_longitude_hint": "Masukkan bujur di sini",
+ "login_disabled": "Login telah dimatikan",
+ "login_form_api_exception": "Kesalahan API. Harap periksa URL server dan coba lagi.",
+ "login_form_back_button_text": "Kembali",
+ "login_form_button_text": "Masuk",
+ "login_form_email_hint": "emailmu@email.com",
+ "login_form_endpoint_hint": "http://ip-server-anda:port/api",
+ "login_form_endpoint_url": "URL Endpoint Server",
+ "login_form_err_http": "Harap tentukan http:// atau https://",
+ "login_form_err_invalid_email": "Email Tidak Valid",
+ "login_form_err_invalid_url": "URL Tidak Valid",
+ "login_form_err_leading_whitespace": "Leading whitespace",
+ "login_form_err_trailing_whitespace": "Trailing whitespace",
+ "login_form_failed_get_oauth_server_config": "Gagal logging menggunakan OAuth, periksa URL server",
+ "login_form_failed_get_oauth_server_disable": "Fitur OAuth tidak tersedia di server ini",
+ "login_form_failed_login": "Login gagal. Periksa URL server, email dan password.",
+ "login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
+ "login_form_label_email": "Email",
+ "login_form_label_password": "Sandi",
+ "login_form_next_button": "Lanjut",
+ "login_form_password_hint": "sandi",
+ "login_form_save_login": "Ingat saya",
+ "login_form_server_empty": "Masukkan URL server.",
+ "login_form_server_error": "Tidak dapat menghubungi server.",
+ "login_password_changed_error": "Terdapat kesalahan mengganti password",
+ "login_password_changed_success": "Sandi berhasil diperbarui",
+ "map_assets_in_bound": "{} foto",
+ "map_assets_in_bounds": "{} foto",
+ "map_cannot_get_user_location": "Tidak dapat memeroleh lokasi pengguna",
+ "map_location_dialog_cancel": "Batal",
+ "map_location_dialog_yes": "Ya",
+ "map_location_picker_page_use_location": "Gunakan lokasi ini",
+ "map_location_service_disabled_content": "Layanan lokasi perlu diaktifkan untuk menampilkan aset yang terletak di lokasi kamu saat ini. Apakah kamu ingin mengaktifkan layanan tersebut sekarang?",
+ "map_location_service_disabled_title": "Layanan Lokasi nonaktif",
+ "map_no_assets_in_bounds": "Tidak ada foto di area ini",
+ "map_no_location_permission_content": "Izin lokasi diperlukan untuk menampilkan aset yang terletak di lokasi kamu. Apakah kamu ingin mengizinkan sekarang?",
+ "map_no_location_permission_title": "Izin Lokasi ditolak",
+ "map_settings_dark_mode": "Mode gelap",
+ "map_settings_date_range_option_all": "Semua",
+ "map_settings_date_range_option_day": "24 jam terakhir",
+ "map_settings_date_range_option_days": "{} hari terakhir",
+ "map_settings_date_range_option_year": "1 tahun terakhir",
+ "map_settings_date_range_option_years": "{} tahun terakhir",
+ "map_settings_dialog_cancel": "Batal",
+ "map_settings_dialog_save": "Simpan",
+ "map_settings_dialog_title": "Pengaturan Peta",
+ "map_settings_include_show_archived": "Include Archived",
+ "map_settings_include_show_partners": "Include Partners",
+ "map_settings_only_relative_range": "Rentang waktu",
+ "map_settings_only_show_favorites": "Tampilkan Hanya Favorit",
+ "map_settings_theme_settings": "Tema Peta",
+ "map_zoom_to_see_photos": "Perkecil untuk lihat foto",
+ "memories_all_caught_up": "Semua telah dilihat",
+ "memories_check_back_tomorrow": "Lihat lagi besok untuk kenangan lainnya",
+ "memories_start_over": "Ulang Dari Awal",
+ "memories_swipe_to_close": "Geser ke atas untuk menutup",
+ "memories_year_ago": "Satu tahun lalu",
+ "memories_years_ago": "{} tahun lalu",
+ "monthly_title_text_date_format": "MMMM y",
+ "motion_photos_page_title": "Foto Bergerak",
+ "multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
+ "multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
+ "my_albums": "My albums",
+ "networking_settings": "Networking",
+ "networking_subtitle": "Manage the server endpoint settings",
+ "no_assets_to_show": "Tidak ada aset",
+ "no_name": "No name",
+ "notification_permission_dialog_cancel": "Batal",
+ "notification_permission_dialog_content": "Untuk mengaktifkan notifikasi, buka Pengaturan lalu berikan izin.",
+ "notification_permission_dialog_settings": "Pengaturan",
+ "notification_permission_list_tile_content": "Berikan izin untuk mengaktifkan notifikasi.",
+ "notification_permission_list_tile_enable_button": "Aktifkan Notifikasi",
+ "notification_permission_list_tile_title": "Izin Notifikasi",
+ "on_this_device": "On this device",
+ "partner_list_user_photos": "Foto {user}",
+ "partner_list_view_all": "Lihat semua",
+ "partner_page_add_partner": "Tambah partner",
+ "partner_page_empty_message": "Foto anda tidak dibagikan dengan partner manapun.",
+ "partner_page_no_more_users": "Tidak ada pengguna lain yang bisa ditambahkan",
+ "partner_page_partner_add_failed": "Gagal menambahkan partner",
+ "partner_page_select_partner": "Pilih partner",
+ "partner_page_shared_to_title": "Dibagikan dengan",
+ "partner_page_stop_sharing_content": "{} tidak akan bisa mengakses foto kamu lagi.",
+ "partner_page_stop_sharing_title": "Berhenti membagikan fotomu?",
+ "partner_page_title": "Partner",
+ "partners": "Partners",
+ "people": "People",
+ "permission_onboarding_back": "Kembali",
+ "permission_onboarding_continue_anyway": "Lanjutkan saja",
+ "permission_onboarding_get_started": "Get started",
+ "permission_onboarding_go_to_settings": "Buka setelan",
+ "permission_onboarding_grant_permission": "Berikan izin",
+ "permission_onboarding_log_out": "Keluar",
+ "permission_onboarding_permission_denied": "Izin ditolak. Untuk menggunakan Immich, berikan izin akses foto dan video di Setelan.",
+ "permission_onboarding_permission_granted": "Izin diberikan! Semua sudah siap.",
+ "permission_onboarding_permission_limited": "Izin dibatasi. Agai Immich dapat mencadangkan dan mengatur seluruh koleksi galeri, izinkan akses foto dan video pada Setelan.",
+ "permission_onboarding_request": "Immich memerlukan izin untuk melihat foto dan video kamu.",
+ "places": "Places",
+ "preferences_settings_subtitle": "Manage the app's preferences",
+ "preferences_settings_title": "Preferensi",
+ "profile_drawer_app_logs": "Log",
+ "profile_drawer_client_out_of_date_major": "Versi app seluler ini sudah kedaluwarsa. Silakan perbarui ke versi major terbaru.",
+ "profile_drawer_client_out_of_date_minor": "Versi app seluler ini sudah kedaluwarsa. Silakan perbarui ke versi minor terbaru.",
+ "profile_drawer_client_server_up_to_date": "Klien dan server menjalankan versi terbaru",
+ "profile_drawer_documentation": "Dokumentasi",
+ "profile_drawer_github": "GitHub",
+ "profile_drawer_server_out_of_date_major": "Versi server ini telah kedaluwarsa. Silakan perbarui ke versi major terbaru.",
+ "profile_drawer_server_out_of_date_minor": "Versi server ini telah kedaluwarsa. Silakan perbarui ke versi minor terbaru.",
+ "profile_drawer_settings": "Pengaturan",
+ "profile_drawer_sign_out": "Keluar Akun",
+ "profile_drawer_trash": "Sampah",
+ "recently_added": "Recently added",
+ "recently_added_page_title": "Baru Ditambahkan",
+ "save": "Save",
+ "save_to_gallery": "Save to gallery",
+ "scaffold_body_error_occurred": "Terjadi kesalahan",
+ "search_albums": "Search albums",
+ "search_bar_hint": "Telusuri fotomu",
+ "search_filter_apply": "Terapkan filter",
+ "search_filter_camera": "Camera",
+ "search_filter_camera_make": "Merek",
+ "search_filter_camera_model": "Model",
+ "search_filter_camera_title": "Select camera type",
+ "search_filter_date": "Date",
+ "search_filter_date_interval": "{start} to {end}",
+ "search_filter_date_title": "Select a date range",
+ "search_filter_display_option_archive": "Diarsipkan",
+ "search_filter_display_option_favorite": "Favorit",
+ "search_filter_display_option_not_in_album": "Tidak dalam album",
+ "search_filter_display_options": "Display Options",
+ "search_filter_display_options_title": "Display options",
+ "search_filter_location": "Location",
+ "search_filter_location_city": "Kota",
+ "search_filter_location_country": "Negara",
+ "search_filter_location_state": "Provinsi",
+ "search_filter_location_title": "Select location",
+ "search_filter_media_type": "Media Type",
+ "search_filter_media_type_all": "Semua",
+ "search_filter_media_type_image": "Gambar",
+ "search_filter_media_type_title": "Select media type",
+ "search_filter_media_type_video": "Video",
+ "search_filter_people": "People",
+ "search_filter_people_title": "Select people",
+ "search_page_categories": "Kategori",
+ "search_page_favorites": "Favorit",
+ "search_page_motion_photos": "Foto Bergerak",
+ "search_page_no_objects": "Tidak Ada Info Objek",
+ "search_page_no_places": "Tidak Ada Info Lokasi",
+ "search_page_people": "Orang",
+ "search_page_person_add_name_dialog_cancel": "Batal",
+ "search_page_person_add_name_dialog_hint": "Nama",
+ "search_page_person_add_name_dialog_save": "Simpan",
+ "search_page_person_add_name_dialog_title": "Tambahkan nama",
+ "search_page_person_add_name_subtitle": "Temukan dia lebih cepat dengan namanya",
+ "search_page_person_add_name_title": "Tambahkan nama",
+ "search_page_person_edit_name": "Edit nama",
+ "search_page_places": "Lokasi",
+ "search_page_recently_added": "Baru ditambahkan",
+ "search_page_screenshots": "Tangkapan Layar",
+ "search_page_search_photos_videos": "Search for your photos and videos",
+ "search_page_selfies": "Swafoto",
+ "search_page_things": "Things",
+ "search_page_videos": "Video",
+ "search_page_view_all_button": "Lihat semua",
+ "search_page_your_activity": "Aktivitasmu",
+ "search_page_your_map": "Peta Anda",
+ "search_result_page_new_search_hint": "Pencarian Baru",
+ "search_suggestion_list_smart_search_hint_1": "Penelusuran cerdas aktif secara bawaan. Untuk menelusuri metadata, gunakan sintaks",
+ "search_suggestion_list_smart_search_hint_2": "m:penelusuran-kamu",
+ "select_additional_user_for_sharing_page_suggestions": "Saran",
+ "select_user_for_sharing_page_err_album": "Gagal membuat album",
+ "select_user_for_sharing_page_share_suggestions": "Saran",
+ "server_endpoint": "Server Endpoint",
+ "server_info_box_app_version": "Versi App",
+ "server_info_box_latest_release": "Versi Terbaru",
+ "server_info_box_server_url": "URL Server",
+ "server_info_box_server_version": "Versi Server",
+ "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
+ "setting_image_viewer_original_subtitle": "Aktifkan untuk memuat gambar asli dengan resolusi penuh (berukuran besar!). Nonaktifkan untuk mengurangi penggunaan data (baik jaringan maupun cache perangkat).",
+ "setting_image_viewer_original_title": "Muat gambar kualitas asli",
+ "setting_image_viewer_preview_subtitle": "Aktifkan untuk memuat gambar dengan resolusi sedang. Nonaktifkan jika ingin langsung memuat gambar asli atau hanya ingin memuat thumbnail.",
+ "setting_image_viewer_preview_title": "Muat gambar preview",
+ "setting_image_viewer_title": "Foto",
+ "setting_languages_apply": "Terapkan",
+ "setting_languages_subtitle": "Change the app's language",
+ "setting_languages_title": "Bahasa",
+ "setting_notifications_notify_failures_grace_period": "Notify background backup failures: {}",
+ "setting_notifications_notify_hours": "{} jam",
+ "setting_notifications_notify_immediately": "segera",
+ "setting_notifications_notify_minutes": "{} menit",
+ "setting_notifications_notify_never": "Jangan pernah",
+ "setting_notifications_notify_seconds": "{} detik",
+ "setting_notifications_single_progress_subtitle": "Rincian info proses unggah setiap asset",
+ "setting_notifications_single_progress_title": "Tampilkan rincian proses cadangkan latar belakang",
+ "setting_notifications_subtitle": "Atur setelan notifikasi",
+ "setting_notifications_title": "Notifikasi",
+ "setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)",
+ "setting_notifications_total_progress_title": "Show background backup total progress",
+ "setting_pages_app_bar_settings": "Pengaturan",
+ "settings_require_restart": "Harap mulai ulang Immich untuk menerapkan pengaturan ini",
+ "setting_video_viewer_looping_subtitle": "Nyalakan untuk mengulangi otomatis video",
+ "setting_video_viewer_looping_title": "Ulangi",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
+ "setting_video_viewer_title": "Video",
+ "share_add": "Tambahkan",
+ "share_add_photos": "Tambah foto",
+ "share_add_title": "Tambahkan judul",
+ "share_assets_selected": "{} terpilih",
+ "share_create_album": "Buat album",
+ "shared_album_activities_input_disable": "Comment is disabled",
+ "shared_album_activities_input_hint": "Katakan sesuatu",
+ "shared_album_activity_remove_content": "Do you want to delete this activity?",
+ "shared_album_activity_remove_title": "Hapus Aktivitas",
+ "shared_album_activity_setting_subtitle": "Izinkan orang lain memberikan tanggapan",
+ "shared_album_activity_setting_title": "Komentar & suka",
+ "shared_album_section_people_action_error": "Gagal menghapus dari album",
+ "shared_album_section_people_action_leave": "Hapus pengguna dari album",
+ "shared_album_section_people_action_remove_user": "Hapus pengguna dari album",
+ "shared_album_section_people_owner_label": "Pemilik",
+ "shared_album_section_people_title": "ORANG",
+ "share_dialog_preparing": "Menyiapkan...",
+ "shared_link_app_bar_title": "Link Berbagi",
+ "shared_link_clipboard_copied_massage": "Tersalin ke papan klip",
+ "shared_link_clipboard_text": "Link: {}\nSandi: {}",
+ "shared_link_create_app_bar_title": "Buat link untuk berbagi",
+ "shared_link_create_error": "Terjadi kesalahan saat membuat link berbagi",
+ "shared_link_create_info": "Izinkan siapa pun yang memiliki link ini untuk melihat foto yang dipilih",
+ "shared_link_create_submit_button": "Buat link",
+ "shared_link_edit_allow_download": "Izinkan pengguna publik untuk mengunggah",
+ "shared_link_edit_allow_upload": "Izinkan pengguna publik untuk mengunduh",
+ "shared_link_edit_app_bar_title": "Edit link",
+ "shared_link_edit_change_expiry": "Ubah waktu kedaluwarsa",
+ "shared_link_edit_description": "Deskripsi",
+ "shared_link_edit_description_hint": "Masukkan deskripsi link",
+ "shared_link_edit_expire_after": "Kedaluwarsa setelah",
+ "shared_link_edit_expire_after_option_day": "1 hari",
+ "shared_link_edit_expire_after_option_days": "{} hari",
+ "shared_link_edit_expire_after_option_hour": "1 jam",
+ "shared_link_edit_expire_after_option_hours": "{} jam",
+ "shared_link_edit_expire_after_option_minute": "1 menit",
+ "shared_link_edit_expire_after_option_minutes": "{} menit",
+ "shared_link_edit_expire_after_option_months": "{} bulan",
+ "shared_link_edit_expire_after_option_never": "Tidak pernah",
+ "shared_link_edit_expire_after_option_year": "{} tahun",
+ "shared_link_edit_password": "Sandi",
+ "shared_link_edit_password_hint": "Masukkan sandi link",
+ "shared_link_edit_show_meta": "Tampilkan metadata",
+ "shared_link_edit_submit_button": "Perbarui link",
+ "shared_link_empty": "Kamu tidak punya link berbagi",
+ "shared_link_error_server_url_fetch": "Tidak dapat memuat url server",
+ "shared_link_expired": "Telah kedaluwarsa",
+ "shared_link_expires_day": "Kedaluwarsa dalam {} hari",
+ "shared_link_expires_days": "Kedaluwarsa dalam {} hari",
+ "shared_link_expires_hour": "Kedaluwarsa dalam {} jam",
+ "shared_link_expires_hours": "Kedaluwarsa dalam {} jam",
+ "shared_link_expires_minute": "Kedaluwarsa dalam {} menit",
+ "shared_link_expires_minutes": "Kedaluwarsa dalam {} menit",
+ "shared_link_expires_never": "Tidak akan kedaluwarsa",
+ "shared_link_expires_second": "Kedaluwarsa dalam {} detik",
+ "shared_link_expires_seconds": "Kedaluwarsa dalam {} detik",
+ "shared_link_individual_shared": "Individual shared",
+ "shared_link_info_chip_download": "Unduh",
+ "shared_link_info_chip_metadata": "EXIF",
+ "shared_link_info_chip_upload": "Unggah",
+ "shared_link_manage_links": "Atur link berbagi",
+ "shared_link_public_album": "Album publik",
+ "shared_links": "Shared links",
+ "share_done": "Selesai",
+ "shared_with_me": "Shared with me",
+ "share_invite": "Undang ke album",
+ "sharing_page_album": "Album berbagi",
+ "sharing_page_description": "Buat album berbagi untuk berbagi foto dan video dengan pengguna di dalam jaringan.",
+ "sharing_page_empty_list": "DAFTAR KOSONG",
+ "sharing_silver_appbar_create_shared_album": "Buat album berbagi",
+ "sharing_silver_appbar_shared_links": "Shared links",
+ "sharing_silver_appbar_share_partner": "Berbagi dengan partner",
+ "sync": "Sync",
+ "sync_albums": "Sync albums",
+ "sync_albums_manual_subtitle": "Sync all uploaded videos and photos to the selected backup albums",
+ "sync_upload_album_setting_subtitle": "Create and upload your photos and videos to the selected albums on Immich",
+ "tab_controller_nav_library": "Pustaka",
+ "tab_controller_nav_photos": "Foto",
+ "tab_controller_nav_search": "Cari",
+ "tab_controller_nav_sharing": "Berbagi",
+ "theme_setting_asset_list_storage_indicator_title": "Tampilkan sisa penyimpanan",
+ "theme_setting_asset_list_tiles_per_row_title": "Jumlah aset per baris",
+ "theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
+ "theme_setting_colorful_interface_title": "Colorful interface",
+ "theme_setting_dark_mode_switch": "Mode gelap",
+ "theme_setting_image_viewer_quality_subtitle": "Atur kualitas dari penampil gambar",
+ "theme_setting_image_viewer_quality_title": "Kualitas penampil gambar",
+ "theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
+ "theme_setting_primary_color_title": "Primary color",
+ "theme_setting_system_primary_color_title": "Use system color",
+ "theme_setting_system_theme_switch": "Otomatis (Ikuti pengaturan sistem)",
+ "theme_setting_theme_subtitle": "Pilih setelan tema aplikasi",
+ "theme_setting_theme_title": "Tema",
+ "theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
+ "theme_setting_three_stage_loading_title": "Enable three-stage loading",
+ "translated_text_options": "Setelan",
+ "trash": "Trash",
+ "trash_emptied": "Emptied trash",
+ "trash_page_delete": "Hapus",
+ "trash_page_delete_all": "Hapus Semua",
+ "trash_page_empty_trash_btn": "Kosongkan sampah",
+ "trash_page_empty_trash_dialog_content": "Apakah kamu ingin menghapus semua aset di sampah? Item tersebut akan dihapus secara permanen dari Immich",
+ "trash_page_empty_trash_dialog_ok": "Ok",
+ "trash_page_info": "Item yang dipindahkan ke sampah akan terhapus secara permanen setelah {} hari",
+ "trash_page_no_assets": "Tidak ada aset di sampah",
+ "trash_page_restore": "Pulihkan",
+ "trash_page_restore_all": "Pulihkan Semua",
+ "trash_page_select_assets_btn": "Pilih aset",
+ "trash_page_select_btn": "Pilih",
+ "trash_page_title": "Sampah ({})",
+ "upload_dialog_cancel": "Batal",
+ "upload_dialog_info": "Apakah akan mencadangkan aset terpilih ke server?",
+ "upload_dialog_ok": "Unggah",
+ "upload_dialog_title": "Unggah Aset",
+ "use_current_connection": "use current connection",
+ "validate_endpoint_error": "Please enter a valid URL",
+ "version_announcement_overlay_ack": "Acknowledge",
+ "version_announcement_overlay_release_notes": "release notes",
+ "version_announcement_overlay_text_1": "Hi friend, there is a new release of",
+ "version_announcement_overlay_text_2": "please take your time to visit the ",
+ "version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
+ "version_announcement_overlay_title": "Server Versi Baru Tersedia \uD83C\uDF89",
+ "videos": "Videos",
+ "viewer_remove_from_stack": "Keluarkan dari Tumpukan",
+ "viewer_stack_use_as_main_asset": "Gunakan sebagai aset utama",
+ "viewer_unstack": "Un-Stack",
+ "wifi_name": "WiFi Name",
+ "your_wifi_name": "Your WiFi name"
+}
\ No newline at end of file
diff --git a/mobile/assets/i18n/it-IT.json b/mobile/assets/i18n/it-IT.json
index 4be66e3b03..63fa51b145 100644
--- a/mobile/assets/i18n/it-IT.json
+++ b/mobile/assets/i18n/it-IT.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Si prega di riavviare Immich perché vengano applicate le impostazioni",
"setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.",
"setting_video_viewer_looping_title": "Looping",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videos",
"share_add": "Aggiungi",
"share_add_photos": "Aggiungi foto",
diff --git a/mobile/assets/i18n/ja-JP.json b/mobile/assets/i18n/ja-JP.json
index aa034f0699..5fc88ed872 100644
--- a/mobile/assets/i18n/ja-JP.json
+++ b/mobile/assets/i18n/ja-JP.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Immichを再起動して設定を適用してください",
"setting_video_viewer_looping_subtitle": "有効にすると詳細表示で動画がループします",
"setting_video_viewer_looping_title": "ループ中",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "ビデオ",
"share_add": "追加",
"share_add_photos": "写真を追加",
diff --git a/mobile/assets/i18n/ko-KR.json b/mobile/assets/i18n/ko-KR.json
index 788368b131..85a4e10a1d 100644
--- a/mobile/assets/i18n/ko-KR.json
+++ b/mobile/assets/i18n/ko-KR.json
@@ -527,6 +527,8 @@
"settings_require_restart": "설정을 적용하려면 Immich를 다시 시작하세요.",
"setting_video_viewer_looping_subtitle": "상세 보기에서 동영상을 자동으로 반복합니다.",
"setting_video_viewer_looping_title": "반복",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "동영상",
"share_add": "추가",
"share_add_photos": "사진 추가",
diff --git a/mobile/assets/i18n/lt-LT.json b/mobile/assets/i18n/lt-LT.json
index a7f31f8440..1ff40b3566 100644
--- a/mobile/assets/i18n/lt-LT.json
+++ b/mobile/assets/i18n/lt-LT.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Please restart Immich to apply this setting",
"setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.",
"setting_video_viewer_looping_title": "Looping",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videos",
"share_add": "Add",
"share_add_photos": "Add photos",
diff --git a/mobile/assets/i18n/lv-LV.json b/mobile/assets/i18n/lv-LV.json
index fb9eaac8bf..fdfbcc9664 100644
--- a/mobile/assets/i18n/lv-LV.json
+++ b/mobile/assets/i18n/lv-LV.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Lūdzu, restartējiet Immich, lai lietotu šo iestatījumu",
"setting_video_viewer_looping_subtitle": "Iespējot, lai automātiski videoklips tiktu cikliski palaists detaļu skatītājā.",
"setting_video_viewer_looping_title": "Cikliski",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videoklipi",
"share_add": "Pievienot",
"share_add_photos": "Pievienot fotoattēlus",
diff --git a/mobile/assets/i18n/mn-MN.json b/mobile/assets/i18n/mn-MN.json
index a2128380e0..9f64debc4a 100644
--- a/mobile/assets/i18n/mn-MN.json
+++ b/mobile/assets/i18n/mn-MN.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Please restart Immich to apply this setting",
"setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.",
"setting_video_viewer_looping_title": "Looping",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videos",
"share_add": "Add",
"share_add_photos": "Add photos",
diff --git a/mobile/assets/i18n/nb-NO.json b/mobile/assets/i18n/nb-NO.json
index 8dce0381e8..2e97f2533e 100644
--- a/mobile/assets/i18n/nb-NO.json
+++ b/mobile/assets/i18n/nb-NO.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Vennligst restart Immich for å aktivere denne innstillingen",
"setting_video_viewer_looping_subtitle": "Aktiver for å automatisk loope en video i detaljeviseren.",
"setting_video_viewer_looping_title": "Looping",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videoer",
"share_add": "Legg til",
"share_add_photos": "Legg til bilder",
diff --git a/mobile/assets/i18n/nl-NL.json b/mobile/assets/i18n/nl-NL.json
index ae7afef89e..8fb3797c84 100644
--- a/mobile/assets/i18n/nl-NL.json
+++ b/mobile/assets/i18n/nl-NL.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Start Immich opnieuw op om deze instelling toe te passen",
"setting_video_viewer_looping_subtitle": "Schakel in om video's automatisch te herhalen in de detailweergave.",
"setting_video_viewer_looping_title": "Herhalen",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Video's",
"share_add": "Toevoegen",
"share_add_photos": "Foto's toevoegen",
diff --git a/mobile/assets/i18n/pl-PL.json b/mobile/assets/i18n/pl-PL.json
index d2a15c2c5a..6dbf5daa08 100644
--- a/mobile/assets/i18n/pl-PL.json
+++ b/mobile/assets/i18n/pl-PL.json
@@ -157,7 +157,7 @@
"cache_settings_tile_title": "Lokalny magazyn",
"cache_settings_title": "Ustawienia Buforowania",
"cancel": "Anuluj",
- "change_display_order": "Change display order",
+ "change_display_order": "Zmień kolejność wyświetlania",
"change_password_form_confirm_password": "Potwierdź Hasło",
"change_password_form_description": "Cześć {name},\n\nPierwszy raz logujesz się do systemu, albo złożono prośbę o zmianę hasła. Wpisz poniżej nowe hasło.",
"change_password_form_new_password": "Nowe Hasło",
@@ -249,7 +249,7 @@
"edit_image_title": "Edytuj",
"edit_location_dialog_title": "Lokalizacja",
"enter_wifi_name": "Wprowadź nazwę Wi-Fi",
- "error_change_sort_album": "Failed to change album sort order",
+ "error_change_sort_album": "Nie udało się zmienić kolejności sortowania albumów",
"error_saving_image": "Błąd: {}",
"exif_bottom_sheet_description": "Dodaj Opis...",
"exif_bottom_sheet_details": "SZCZEGÓŁY",
@@ -459,7 +459,7 @@
"search_filter_location": "Lokalizacja",
"search_filter_location_city": "Miasto",
"search_filter_location_country": "Kraj",
- "search_filter_location_state": "State",
+ "search_filter_location_state": "Państwo",
"search_filter_location_title": "Wybierz lokalizację",
"search_filter_media_type": "Typ multimediów",
"search_filter_media_type_all": "Wszystko",
@@ -527,6 +527,8 @@
"settings_require_restart": "Aby zastosować to ustawienie, uruchom ponownie Immich",
"setting_video_viewer_looping_subtitle": "Włącz automatyczne zapętlanie wideo w przeglądarce szczegółów.",
"setting_video_viewer_looping_title": "Zapętlenie",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Filmy",
"share_add": "Dodaj",
"share_add_photos": "Dodaj zdjęcia",
@@ -584,7 +586,7 @@
"shared_link_expires_never": "Wygasa ∞",
"shared_link_expires_second": "Wygasa za {} sekund",
"shared_link_expires_seconds": "Wygasa za {} sekund",
- "shared_link_individual_shared": "Individual shared",
+ "shared_link_individual_shared": "Indywidualnie udostępnione",
"shared_link_info_chip_download": "Pobierz",
"shared_link_info_chip_metadata": "EXIF",
"shared_link_info_chip_upload": "Wgraj",
diff --git a/mobile/assets/i18n/pt-PT.json b/mobile/assets/i18n/pt-PT.json
index 2411edb2f5..fdc09859a1 100644
--- a/mobile/assets/i18n/pt-PT.json
+++ b/mobile/assets/i18n/pt-PT.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Reinicie o Immich para aplicar essa configuração",
"setting_video_viewer_looping_subtitle": "Ative para repetir o vídeo automaticamente.",
"setting_video_viewer_looping_title": "Repetir",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Vídeos",
"share_add": "Adicionar",
"share_add_photos": "Adicionar fotos",
diff --git a/mobile/assets/i18n/ro-RO.json b/mobile/assets/i18n/ro-RO.json
index 571956e4d8..fef0ecebbb 100644
--- a/mobile/assets/i18n/ro-RO.json
+++ b/mobile/assets/i18n/ro-RO.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Te rugăm să repornești Immich pentru a aplica această setare",
"setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.",
"setting_video_viewer_looping_title": "Looping",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videos",
"share_add": "Adaugă",
"share_add_photos": "Adaugă fotografii",
diff --git a/mobile/assets/i18n/ru-RU.json b/mobile/assets/i18n/ru-RU.json
index 92d24b6a41..4a12a696f0 100644
--- a/mobile/assets/i18n/ru-RU.json
+++ b/mobile/assets/i18n/ru-RU.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Пожалуйста, перезапустите приложение, чтобы изменения вступили в силу",
"setting_video_viewer_looping_subtitle": "Включить циклическое воспроизведение видео",
"setting_video_viewer_looping_title": "Циклическое воспроизведение",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Видео",
"share_add": "Добавить",
"share_add_photos": "Добавить фото",
diff --git a/mobile/assets/i18n/sk-SK.json b/mobile/assets/i18n/sk-SK.json
index 14d0e04524..60809142d8 100644
--- a/mobile/assets/i18n/sk-SK.json
+++ b/mobile/assets/i18n/sk-SK.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Na použitie tohto nastavenia reštartujte Immich",
"setting_video_viewer_looping_subtitle": "Povoľte pre automatické opakovanie videa v detaili zobrazovača",
"setting_video_viewer_looping_title": "Opakovanie",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videá",
"share_add": "Pridať",
"share_add_photos": "Pridať fotografie",
diff --git a/mobile/assets/i18n/sl-SI.json b/mobile/assets/i18n/sl-SI.json
index 54b4dd5f71..4b491fb484 100644
--- a/mobile/assets/i18n/sl-SI.json
+++ b/mobile/assets/i18n/sl-SI.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Znova zaženite Immich, da uporabite to nastavitev",
"setting_video_viewer_looping_subtitle": "Omogočite samodejno ponavljanje videoposnetka v pregledovalniku podrobnosti.",
"setting_video_viewer_looping_title": "V zanki",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videoposnetki",
"share_add": "Dodaj",
"share_add_photos": "Dodaj fotografije",
diff --git a/mobile/assets/i18n/sr-Cyrl.json b/mobile/assets/i18n/sr-Cyrl.json
index a7f31f8440..1ff40b3566 100644
--- a/mobile/assets/i18n/sr-Cyrl.json
+++ b/mobile/assets/i18n/sr-Cyrl.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Please restart Immich to apply this setting",
"setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.",
"setting_video_viewer_looping_title": "Looping",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videos",
"share_add": "Add",
"share_add_photos": "Add photos",
diff --git a/mobile/assets/i18n/sr-Latn.json b/mobile/assets/i18n/sr-Latn.json
index 9042a27713..6595be71bb 100644
--- a/mobile/assets/i18n/sr-Latn.json
+++ b/mobile/assets/i18n/sr-Latn.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Restartujte Immich da primenite ovu promenu",
"setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.",
"setting_video_viewer_looping_title": "Looping",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videos",
"share_add": "Dodaj",
"share_add_photos": "Dodaj fotografije",
diff --git a/mobile/assets/i18n/sv-FI.json b/mobile/assets/i18n/sv-FI.json
index a7f31f8440..1ff40b3566 100644
--- a/mobile/assets/i18n/sv-FI.json
+++ b/mobile/assets/i18n/sv-FI.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Please restart Immich to apply this setting",
"setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.",
"setting_video_viewer_looping_title": "Looping",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videos",
"share_add": "Add",
"share_add_photos": "Add photos",
diff --git a/mobile/assets/i18n/sv-SE.json b/mobile/assets/i18n/sv-SE.json
index 26ecd8cbe3..2e126a0b5c 100644
--- a/mobile/assets/i18n/sv-SE.json
+++ b/mobile/assets/i18n/sv-SE.json
@@ -68,10 +68,10 @@
"assets_trashed_from_server": "{} objekt raderade från Immich-servern",
"asset_viewer_settings_subtitle": "Hantera inställningar för gallerivisare",
"asset_viewer_settings_title": "Objektvisare",
- "automatic_endpoint_switching_subtitle": "Connect locally over designated Wi-Fi when available and use alternative connections elsewhere",
+ "automatic_endpoint_switching_subtitle": "Anslut lokalt via det angivna Wi-Fi-nätverket när det är tillgängligt och använd alternativa anslutningar på andra platser",
"automatic_endpoint_switching_title": "Automatisk URL-växling",
"background_location_permission": "Tillåtelse för bakgrundsplats",
- "background_location_permission_content": "In order to switch networks when running in the background, Immich must *always* have precise location access so the app can read the Wi-Fi network's name",
+ "background_location_permission_content": "För att kunna byta nätverk när appen körs i bakgrunden måste Immich *alltid* ha åtkomst till exakt plats så att appen kan läsa av Wi-Fi-nätverkets namn",
"backup_album_selection_page_albums_device": "Album på enhet ({})",
"backup_album_selection_page_albums_tap": "Tryck en gång för att inkludera, tryck två gånger för att exkludera",
"backup_album_selection_page_assets_scatter": "Objekt kan vara utspridda över flera album. Därför kan album inkluderas eller exkluderas under säkerhetskopieringsprocessen",
@@ -163,7 +163,7 @@
"change_password_form_new_password": "Nytt lösenord",
"change_password_form_password_mismatch": "Lösenorden matchar inte",
"change_password_form_reenter_new_password": "Ange Nytt Lösenord Igen",
- "check_corrupt_asset_backup": "Check for corrupt asset backups",
+ "check_corrupt_asset_backup": "Kontrollera om det finns korrupta säkerhetskopior av objekt",
"check_corrupt_asset_backup_button": "Kontrollera",
"check_corrupt_asset_backup_description": "Kör kontrollen endast över Wi-Fi och när alla resurser har säkerhetskopierats. Det kan ta några minuter.",
"client_cert_dialog_msg_confirm": "OK",
@@ -262,7 +262,7 @@
"experimental_settings_subtitle": "Använd på egen risk!",
"experimental_settings_title": "Experimentellt",
"external_network": "Externt nätverk",
- "external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
+ "external_network_sheet_info": "När appen inte är ansluten till det föredragna WiFi-nätverket, kommer den att ansluta till servern via den första av följande URL:er den kan nå, från toppen till botten",
"favorites": "Favoriter",
"favorites_page_no_favorites": "Inga favoritobjekt hittades",
"favorites_page_title": "Favoriter",
@@ -318,7 +318,7 @@
"local_network": "Lokalt nätverk",
"local_network_sheet_info": "Appen kommer ansluta till servern via denna URL när det specificerade WiFi-nätverket används",
"location_permission": "Plats-rättighet",
- "location_permission_content": "In order to use the auto-switching feature, Immich needs precise location permission so it can read the current WiFi network's name",
+ "location_permission_content": "För att använda funktionen för automatisk växling behöver Immich behörighet till exakt plats så att appen kan läsa av det aktuella Wi-Fi-nätverkets namn",
"location_picker_choose_on_map": "Välj på karta",
"location_picker_latitude": "Latitud",
"location_picker_latitude_error": "Ange en giltig latitud",
@@ -527,6 +527,8 @@
"settings_require_restart": "Starta om Immich för att tillämpa den här inställningen",
"setting_video_viewer_looping_subtitle": "Aktivera för att automatiskt loopa en video i detaljvisaren.",
"setting_video_viewer_looping_title": "Loopar",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Videor",
"share_add": "Lägg till",
"share_add_photos": "Lägg till foton",
diff --git a/mobile/assets/i18n/th-TH.json b/mobile/assets/i18n/th-TH.json
index d9ad20f50c..b0b115c86f 100644
--- a/mobile/assets/i18n/th-TH.json
+++ b/mobile/assets/i18n/th-TH.json
@@ -527,6 +527,8 @@
"settings_require_restart": "กรุณารีสตาร์ท Immmich เพื่อใช้การตั้งค่า",
"setting_video_viewer_looping_subtitle": "เปิดเพื่อให้วิดีโอวนลูปในที่ดูรายละเอียด",
"setting_video_viewer_looping_title": "วนลูป",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "วิดีโอ",
"share_add": "เพิ่ม",
"share_add_photos": "เพิ่มรูปภาพ",
diff --git a/mobile/assets/i18n/tr-TR.json b/mobile/assets/i18n/tr-TR.json
new file mode 100644
index 0000000000..42f1082c4a
--- /dev/null
+++ b/mobile/assets/i18n/tr-TR.json
@@ -0,0 +1,661 @@
+{
+ "action_common_back": "Geri",
+ "action_common_cancel": "İptal",
+ "action_common_clear": "Temizle",
+ "action_common_confirm": "Onayla",
+ "action_common_save": "Kaydet",
+ "action_common_select": "Seç",
+ "action_common_update": "Güncelle",
+ "add_a_name": "İsim ekle",
+ "add_endpoint": "Uç nokta ekle",
+ "add_to_album_bottom_sheet_added": "{album} albümüne eklendi",
+ "add_to_album_bottom_sheet_already_exists": "Zaten {album} albümüne ekli",
+ "advanced_settings_log_level_title": "Günlük düzeyi: {}",
+ "advanced_settings_prefer_remote_subtitle": "Bazı cihazlar, cihazdaki öğelerin küçük resimlerini göstermekte çok yavaştır. Bunun yerine sunucudaki küçük resimleri göstermek için bu ayarı etkinleştirin.",
+ "advanced_settings_prefer_remote_title": "Uzak görüntüleri tercih et",
+ "advanced_settings_proxy_headers_subtitle": "Immich'in her ağ isteğiyle birlikte göndermesi gereken proxy header'ları tanımlayın",
+ "advanced_settings_proxy_headers_title": "Proxy Header'lar",
+ "advanced_settings_self_signed_ssl_subtitle": "Sunucu uç noktası için SSL sertifika doğrulamasını atlar. Kendinden imzalı sertifikalar için gereklidir.",
+ "advanced_settings_self_signed_ssl_title": "Kendi kendine imzalanmış SSL sertifikalarına izin ver",
+ "advanced_settings_tile_subtitle": "Gelişmiş kullanıcı ayarları",
+ "advanced_settings_tile_title": "Gelişmiş",
+ "advanced_settings_troubleshooting_subtitle": "Sorun giderme için ek özellikleri etkinleştirin",
+ "advanced_settings_troubleshooting_title": "Sorun Giderme",
+ "album_info_card_backup_album_excluded": "HARİÇ",
+ "album_info_card_backup_album_included": "DAHİL",
+ "albums": "Albümler",
+ "album_thumbnail_card_item": "1 öğe",
+ "album_thumbnail_card_items": "{} öğe",
+ "album_thumbnail_card_shared": " · Paylaşıldı",
+ "album_thumbnail_owned": "Sahipli",
+ "album_thumbnail_shared_by": "{} tarafından paylaşıldı",
+ "album_viewer_appbar_delete_confirm": "Bu albümü hesabınızdan silmek istediğinizden emin misiniz?",
+ "album_viewer_appbar_share_delete": "Albümü sil",
+ "album_viewer_appbar_share_err_delete": "Albüm silinemedi",
+ "album_viewer_appbar_share_err_leave": "Albümden çıkılamadı",
+ "album_viewer_appbar_share_err_remove": "Albümden öğeleri kaldırmada sorunlar var",
+ "album_viewer_appbar_share_err_title": "Albüm başlığı değiştirilemedi",
+ "album_viewer_appbar_share_leave": "Albümden çık",
+ "album_viewer_appbar_share_remove": "Albümden sil",
+ "album_viewer_appbar_share_to": "Paylaş:",
+ "album_viewer_page_share_add_users": "Kullanıcı ekle",
+ "all": "Tümü",
+ "all_people_page_title": "Kişiler",
+ "all_videos_page_title": "Videolar",
+ "app_bar_signout_dialog_content": "Çıkış yapmak istediğinize emin misiniz?",
+ "app_bar_signout_dialog_ok": "Evet",
+ "app_bar_signout_dialog_title": "Çıkış",
+ "archived": "Arşivlenen",
+ "archive_page_no_archived_assets": "Arşivlenmiş öğe bulunamadı",
+ "archive_page_title": "Arşiv ({})",
+ "asset_action_delete_err_read_only": "Salt okunur öğeler silinemez, atlanıyor",
+ "asset_action_share_err_offline": "Çevrimdışı öğeler alınamıyor, atlanıyor",
+ "asset_list_group_by_sub_title": "Grupla",
+ "asset_list_layout_settings_dynamic_layout_title": "Dinamik düzen",
+ "asset_list_layout_settings_group_automatically": "Otomatik",
+ "asset_list_layout_settings_group_by": "Öğeleri grupla",
+ "asset_list_layout_settings_group_by_month": "Ay",
+ "asset_list_layout_settings_group_by_month_day": "Ay + gün",
+ "asset_list_layout_sub_title": "Düzen",
+ "asset_list_settings_subtitle": "Fotoğraf ızgara düzeni ayarları",
+ "asset_list_settings_title": "Fotoğraf Izgarası",
+ "asset_restored_successfully": "Öğe başarıyla geri yüklendi",
+ "assets_deleted_permanently": "{} öğe kalıcı olarak silindi",
+ "assets_deleted_permanently_from_server": "{} öğe kalıcı olarak Immich sunucusundan silindi",
+ "assets_removed_permanently_from_device": "{} öğe cihazınızdan kalıcı olarak silindi",
+ "assets_restored_successfully": "{} öğe geri yüklendi",
+ "assets_trashed": "{} öğe çöpe atıldı",
+ "assets_trashed_from_server": "{} öğe Immich sunucusunda çöpe atıldı",
+ "asset_viewer_settings_subtitle": "Galeri görüntüleyici ayarlarını düzenle",
+ "asset_viewer_settings_title": "İçerik Görüntüleyici",
+ "automatic_endpoint_switching_subtitle": "Belirlenmiş Wi-Fi ağına bağlıyken yerel olarak bağlanıp başka yerlerde alternatif bağlantıyı kullan",
+ "automatic_endpoint_switching_title": "Otomatik URL değiştirme",
+ "background_location_permission": "Arka plan konum izni",
+ "background_location_permission_content": "Arka planda çalışırken ağ değiştirmek için Immich'in *her zaman* tam konum erişimine sahip olması gerekir, böylece uygulama Wi-Fi ağının adını okuyabilir",
+ "backup_album_selection_page_albums_device": "Cihazdaki albümler ({})",
+ "backup_album_selection_page_albums_tap": "Seçmek için dokunun, hariç tutmak için çift dokunun",
+ "backup_album_selection_page_assets_scatter": "Varlıklar birden fazla albüme dağılabilir. Bu nedenle, yedekleme işlemi sırasında albümler dahil edilebilir veya hariç tutulabilir.",
+ "backup_album_selection_page_select_albums": "Albüm seç",
+ "backup_album_selection_page_selection_info": "Seçim Bilgileri",
+ "backup_album_selection_page_total_assets": "Toplam eşsiz öğeler",
+ "backup_all": "Tümü",
+ "backup_background_service_backup_failed_message": "Yedekleme başarısız. Tekrar deneniyor...",
+ "backup_background_service_connection_failed_message": "Sunucuya bağlanılamadı. Tekrar deneniyor...",
+ "backup_background_service_current_upload_notification": "{} yükleniyor",
+ "backup_background_service_default_notification": "Yeni öğeler kontrol ediliyor…",
+ "backup_background_service_error_title": "Yedekleme hatası",
+ "backup_background_service_in_progress_notification": "Öğeleriniz yedekleniyor...",
+ "backup_background_service_upload_failure_notification": "{} yüklemesi başarısız oldu",
+ "backup_controller_page_albums": "Yedekleme Albümleri",
+ "backup_controller_page_background_app_refresh_disabled_content": "Arka planda yedeklemeyi kullanabilmek için Ayarlar > Genel > Arka Planda Uygulama Yenileme bölümünden arka planda uygulama yenilemeyi etkinleştirin.",
+ "backup_controller_page_background_app_refresh_disabled_title": "Arka planda uygulama yenileme devre dışı bırakıldı",
+ "backup_controller_page_background_app_refresh_enable_button_text": "Ayarlara git",
+ "backup_controller_page_background_battery_info_link": "Bana nasıl olduğunu göster",
+ "backup_controller_page_background_battery_info_message": "En iyi arka plan yedekleme deneyimi için lütfen Immich'in arka plan etkinliğini kısıtlayabilecek tüm pil optimizasyonlarını devre dışı bırakın.\n\nBu ayarın yeri cihaz modeline göre değişiklik gösterdiğinden cihazınızda nerede olduğunu lütfen araştırın.",
+ "backup_controller_page_background_battery_info_ok": "Tamam",
+ "backup_controller_page_background_battery_info_title": "Pil optimizasyonları",
+ "backup_controller_page_background_charging": "Sadece şarjda",
+ "backup_controller_page_background_configure_error": "Arka plan hizmeti yapılandırılamadı",
+ "backup_controller_page_background_delay": "Yeni öğelerin yedeklemesini geciktir: {}",
+ "backup_controller_page_background_description": "Uygulamayı açmaya gerek kalmadan yeni öğeleri otomatik olarak yedeklemek için arka plan hizmetini açın",
+ "backup_controller_page_background_is_off": "Otomatik arka planda yedekleme kapalı",
+ "backup_controller_page_background_is_on": "Otomatik arka planda yedekleme açık",
+ "backup_controller_page_background_turn_off": "Arka plan hizmetini kapat",
+ "backup_controller_page_background_turn_on": "Arka plan hizmetini aç",
+ "backup_controller_page_background_wifi": "Sadece Wi-Fi",
+ "backup_controller_page_backup": "Yedekle",
+ "backup_controller_page_backup_selected": "Seçili:",
+ "backup_controller_page_backup_sub": "Yedeklenen öğeler",
+ "backup_controller_page_cancel": "İptal",
+ "backup_controller_page_created": "Oluşturma tarihi: {}",
+ "backup_controller_page_desc_backup": "Uygulamayı açtığınızda yeni öğelerin sunucuya otomatik olarak yüklenmesi için ön planda yedeklemeyi açın.",
+ "backup_controller_page_excluded": "Hariç tutuldu:",
+ "backup_controller_page_failed": "Başarısız ({})",
+ "backup_controller_page_filename": "Dosya adı: {} [{}]",
+ "backup_controller_page_id": "ID: {}",
+ "backup_controller_page_info": "Yedekleme bilgileri",
+ "backup_controller_page_none_selected": "Hiçbiri seçilmedi",
+ "backup_controller_page_remainder": "Kalan",
+ "backup_controller_page_remainder_sub": "Seçili albümlerden yedeklenecek kalan öğeler",
+ "backup_controller_page_select": "Seç",
+ "backup_controller_page_server_storage": "Sunucu Depolama Alanı",
+ "backup_controller_page_start_backup": "Yedeklemeye Başla",
+ "backup_controller_page_status_off": "Otomatik ön planda yedekleme kapalı",
+ "backup_controller_page_status_on": "Otomatik ön planda yedekleme açık",
+ "backup_controller_page_storage_format": "{}/{} kullanılıyor",
+ "backup_controller_page_to_backup": "Yedeklenecek albümler",
+ "backup_controller_page_total": "Toplam",
+ "backup_controller_page_total_sub": "Seçili albümlerden tüm benzersiz öğeler",
+ "backup_controller_page_turn_off": "Ön planda yedeklemeyi kapat",
+ "backup_controller_page_turn_on": "Ön planda yedeklemeyi aç",
+ "backup_controller_page_uploading_file_info": "Dosya bilgisi yükleniyor",
+ "backup_err_only_album": "Tek albüm kaldırılamaz",
+ "backup_info_card_assets": "öğeler",
+ "backup_manual_cancelled": "İptal Edildi",
+ "backup_manual_failed": "Başarısız",
+ "backup_manual_in_progress": "Yükleme halihazırda devam ediyor. Bir süre sonra deneyin",
+ "backup_manual_success": "Başarılı",
+ "backup_manual_title": "Yükleme durumu",
+ "backup_options_page_title": "Yedekleme seçenekleri",
+ "backup_setting_subtitle": "Arka planda ve ön planda yükleme ayarlarını düzenle",
+ "cache_settings_album_thumbnails": "Kütüphane sayfası küçük resimleri ({} öğe)",
+ "cache_settings_clear_cache_button": "Önbelleği temizle",
+ "cache_settings_clear_cache_button_title": "Uygulamanın önbelleğini temizleyin. Önbellek yeniden oluşturulana kadar uygulamanın performansını önemli ölçüde etkileyecektir.",
+ "cache_settings_duplicated_assets_clear_button": "TEMİZLE",
+ "cache_settings_duplicated_assets_subtitle": "Uygulama tarafından kara listeye alınan öğeler",
+ "cache_settings_duplicated_assets_title": "Yinelenen Öğeler ({})",
+ "cache_settings_image_cache_size": "Görüntü önbellek boyutu ({} öğe)",
+ "cache_settings_statistics_album": "Kütüphane küçük resimleri",
+ "cache_settings_statistics_assets": "{} öğe ({})",
+ "cache_settings_statistics_full": "Tam çözünürlükte resimler",
+ "cache_settings_statistics_shared": "Paylaşılan albüm küçük resimleri",
+ "cache_settings_statistics_thumbnail": "Küçük resimler",
+ "cache_settings_statistics_title": "Önbellek kullanımı",
+ "cache_settings_subtitle": "Immich mobil uygulamasının önbelleğe alma davranışını kontrol edin",
+ "cache_settings_thumbnail_size": "Küçük resim önbellek boyutu ({} öğe)",
+ "cache_settings_tile_subtitle": "Yerel depolama davranışını kontrol et",
+ "cache_settings_tile_title": "Yerel Depolama",
+ "cache_settings_title": "Önbellek Ayarları",
+ "cancel": "İptal",
+ "change_display_order": "Görüntüleme sırasını değiştir",
+ "change_password_form_confirm_password": "Parola Onayı",
+ "change_password_form_description": "Merhaba {name},\n\nBu sisteme ilk kez giriş yaptınız veya parolanızı değiştirmeniz için bir talepte bulunuldu. Lütfen aşağıya yeni parolanızı girin.",
+ "change_password_form_new_password": "Yeni Parola",
+ "change_password_form_password_mismatch": "Parolalar eşleşmiyor",
+ "change_password_form_reenter_new_password": "Tekrar Yeni Parola",
+ "check_corrupt_asset_backup": "Bozuk yedek dosyalarını kontrol et",
+ "check_corrupt_asset_backup_button": "Kontrol et",
+ "check_corrupt_asset_backup_description": "Bu kontrolü yalnızca Wi-Fi üzerinden ve tüm dosyalar yedeklendikten sonra çalıştırın. İşlem birkaç dakika sürebilir.",
+ "client_cert_dialog_msg_confirm": "Tamam",
+ "client_cert_enter_password": "Parola Gir",
+ "client_cert_import": "İçe Aktar",
+ "client_cert_import_success_msg": "İstemci sertifikası içe aktarıldı",
+ "client_cert_invalid_msg": "Geçersiz sertifika dosyası veya yanlış parola",
+ "client_cert_remove": "Kaldır",
+ "client_cert_remove_msg": "İstemci sertifikası kaldırıldı",
+ "client_cert_subtitle": "Yalnızca PKCS12 (.p12, .pfx) biçimini destekler. Sertifika İçe Aktarma/Kaldırma yalnızca oturum açmadan önce kullanılabilir",
+ "client_cert_title": "SSL İstemci Sertifikası",
+ "common_add_to_album": "Albüme ekle",
+ "common_change_password": "Parola Değiştir",
+ "common_create_new_album": "Yeni Albüm",
+ "common_server_error": "Lütfen ağ bağlantınızı kontrol edin, sunucunun erişilebilir olduğundan ve uygulama/sunucu sürümlerinin uyumlu olduğundan emin olun.",
+ "common_shared": "Paylaşılan",
+ "contextual_search": "Sahilde gün doğuşu",
+ "control_bottom_app_bar_add_to_album": "Albüme ekle",
+ "control_bottom_app_bar_album_info": "{} öğe",
+ "control_bottom_app_bar_album_info_shared": "{} öğe · Paylaşılan",
+ "control_bottom_app_bar_archive": "Arşiv",
+ "control_bottom_app_bar_create_new_album": "Yeni albüm",
+ "control_bottom_app_bar_delete": "Sil",
+ "control_bottom_app_bar_delete_from_immich": "Immich'ten sil",
+ "control_bottom_app_bar_delete_from_local": "Cihazdan sil",
+ "control_bottom_app_bar_download": "İndir",
+ "control_bottom_app_bar_edit": "Düzenle",
+ "control_bottom_app_bar_edit_location": "Konumu Düzenle",
+ "control_bottom_app_bar_edit_time": "Tarih ve Saati Düzenle",
+ "control_bottom_app_bar_favorite": "Favori",
+ "control_bottom_app_bar_share": "Paylaş",
+ "control_bottom_app_bar_share_to": "Paylaş:",
+ "control_bottom_app_bar_stack": "İstifle",
+ "control_bottom_app_bar_trash_from_immich": "Çöp Kutusuna At",
+ "control_bottom_app_bar_unarchive": "Arşivden çıkar",
+ "control_bottom_app_bar_unfavorite": "Favorilerden Çıkar",
+ "control_bottom_app_bar_upload": "Yükle",
+ "create_album": "Albüm oluştur",
+ "create_album_page_untitled": "Başlıksız",
+ "create_new": "YENİ OLUŞTUR",
+ "create_shared_album_page_create": "Oluştur",
+ "create_shared_album_page_share": "Paylaş",
+ "create_shared_album_page_share_add_assets": "İÇERİK EKLE",
+ "create_shared_album_page_share_select_photos": "Fotoğrafları Seç",
+ "crop": "Kes",
+ "curated_location_page_title": "Konumlar",
+ "curated_object_page_title": "Nesneler",
+ "current_server_address": "Mevcut sunucu adresi",
+ "daily_title_text_date": "dd MMM E",
+ "daily_title_text_date_year": "dd MMM yyyy E",
+ "date_format": "LLL d, y E • H:mm",
+ "delete_dialog_alert": "Bu öğeler cihazınızdan ve Immich'ten kalıcı olarak silinecektir",
+ "delete_dialog_alert_local": "Bu öğeler cihazınızdan kalıcı olarak silinecek ancak Immich sunucusunda mevcut kalacaklardır",
+ "delete_dialog_alert_local_non_backed_up": "Bazı öğeler Immich'e yedeklenmemiş ve cihazınızdan kalıcı olarak silinecek",
+ "delete_dialog_alert_remote": "Bu öğeler Immich sunucusundan kalıcı olarak silinecektir",
+ "delete_dialog_cancel": "İptal",
+ "delete_dialog_ok": "Sil",
+ "delete_dialog_ok_force": "Yine de Sil",
+ "delete_dialog_title": "Kalıcı Olarak Sil",
+ "delete_local_dialog_ok_backed_up_only": "Sadece Yedeklenmişleri Sil",
+ "delete_local_dialog_ok_force": "Yine de Sil",
+ "delete_shared_link_dialog_content": "Bu paylaşılan bağlantıyı silmek istediğinizden emin misiniz?",
+ "delete_shared_link_dialog_title": "Paylaşılan Bağlantı Sil",
+ "description_input_hint_text": "Açıklama ekle...",
+ "description_input_submit_error": "Açıklama güncellenirken hata oluştu, daha fazla ayrıntı için günlüğü kontrol edin",
+ "download_canceled": "İndirme iptal edildi",
+ "download_complete": "İndirme tamamlandı",
+ "download_enqueue": "İndirme sıraya alındı",
+ "download_error": "İndirme Hatası",
+ "download_failed": "İndirme başarısız oldu",
+ "download_filename": "dosya: {}",
+ "download_finished": "İndirme tamamlandı",
+ "downloading": "İndiriliyor...",
+ "downloading_media": "Medya indiriliyor",
+ "download_notfound": "İndirme bulunamadı",
+ "download_paused": "İndirme duraklatıldı",
+ "download_started": "İndirme başladı",
+ "download_sucess": "İndirme başarılı",
+ "download_sucess_android": "Medya DCIM/Immich klasörüne indirildi",
+ "download_waiting_to_retry": "Yeniden denemek için bekleniyor",
+ "edit_date_time_dialog_date_time": "Tarih ve Saat",
+ "edit_date_time_dialog_timezone": "Zaman Dilimi",
+ "edit_image_title": "Düzenle",
+ "edit_location_dialog_title": "Konum",
+ "enter_wifi_name": "Wi-Fi adını girin",
+ "error_change_sort_album": "Albüm sıralama düzeni değiştirilemedi",
+ "error_saving_image": "Hata: {}",
+ "exif_bottom_sheet_description": "Açıklama Ekle...",
+ "exif_bottom_sheet_details": "DETAYLAR",
+ "exif_bottom_sheet_location": "KONUM",
+ "exif_bottom_sheet_location_add": "Konum ekle",
+ "exif_bottom_sheet_people": "KİŞİLER",
+ "exif_bottom_sheet_person_add_person": "İsim ekle",
+ "experimental_settings_new_asset_list_subtitle": "Çalışmalar devam ediyor",
+ "experimental_settings_new_asset_list_title": "Deneysel fotoğraf ızgarasını etkinleştir",
+ "experimental_settings_subtitle": "Riskleri kabul ederek kullanın!",
+ "experimental_settings_title": "Deneysel",
+ "external_network": "Harici ağlar",
+ "external_network_sheet_info": "Belirlenmiş WiFi ağına bağlı olmadığında uygulama, yukarıdan aşağıya doğru ulaşabileceği aşağıdaki URL'lerden ilki aracılığıyla sunucuya bağlanacaktır",
+ "favorites": "Favoriler",
+ "favorites_page_no_favorites": "Favori öğe bulunamadı",
+ "favorites_page_title": "Favoriler",
+ "filename_search": "Dosya adı veya uzantısı",
+ "filter": "Filtre",
+ "get_wifiname_error": "Wi-Fi adı alınamadı. Gerekli izinleri verdiğinizden ve bir Wi-Fi ağına bağlı olduğunuzdan emin olun",
+ "grant_permission": "İzin ver",
+ "haptic_feedback_switch": "Dokunsal geri bildirimi aç",
+ "haptic_feedback_title": "Dokunsal Geri Bildirim (Haptic Feedback)",
+ "header_settings_add_header_tip": "Header Ekle",
+ "header_settings_field_validator_msg": "Değer boş olamaz",
+ "header_settings_header_name_input": "Header adı",
+ "header_settings_header_value_input": "Header değeri",
+ "header_settings_page_title": "Proxy Header'lar",
+ "headers_settings_tile_subtitle": "Uygulamanın her ağ isteğiyle birlikte göndermesi gereken proxy header'ları tanımlayın",
+ "headers_settings_tile_title": "Özel proxy headers",
+ "home_page_add_to_album_conflicts": "{album} albümüne {added} öğe eklendi. {failed} varlık zaten albümdeydi.",
+ "home_page_add_to_album_err_local": "Yerel öğeler henüz albümlere eklenemiyor, atlanıyor",
+ "home_page_add_to_album_success": "{album} albümüne {added} öğe eklendi.",
+ "home_page_album_err_partner": "Partner öğeleri henüz bir albüme eklenemiyor, atlanıyor",
+ "home_page_archive_err_local": "Yerel öğeler henüz arşivlenemiyor, atlanıyor",
+ "home_page_archive_err_partner": "Partner öğeleri henüz arşivlenemiyor, atlanıyor",
+ "home_page_building_timeline": "Zaman çizelgesi oluşturuluyor",
+ "home_page_delete_err_partner": "Partner öğeleri silinemez, atlanıyor",
+ "home_page_delete_remote_err_local": "Uzaktan silme seçimindeki yerel öğeler atlanıyor",
+ "home_page_favorite_err_local": "Yerel öğeler henüz favorilere eklenemiyor, atlanıyor",
+ "home_page_favorite_err_partner": "Partner öğeleri henüz favorilere eklenemiyor, atlanıyor",
+ "home_page_first_time_notice": "Uygulamayı ilk kez kullanıyorsanız, zaman çizelgesinin albümlerdeki fotoğraf ve videolar ile oluşturulabilmesi için lütfen yedekleme için albüm(ler) seçtiğinizden emin olun.",
+ "home_page_share_err_local": "Yerel öğeler bağlantı ile paylaşılamaz, atlanıyor",
+ "home_page_upload_err_limit": "Aynı anda en fazla 30 öğe yüklenebilir, atlanabilir",
+ "ignore_icloud_photos": "iCloud Fotoğraflarını Yok Say",
+ "ignore_icloud_photos_description": "iCloud'a yüklenmiş fotoğraflar Immich sunucusuna yüklenmesin",
+ "image_saved_successfully": "Resim kaydedildi",
+ "image_viewer_page_state_provider_download_error": "İndirme Hatası",
+ "image_viewer_page_state_provider_download_started": "İndirme Başladı",
+ "image_viewer_page_state_provider_download_success": "İndirme Başarılı",
+ "image_viewer_page_state_provider_share_error": "Paylaşım Hatası",
+ "invalid_date": "Geçersiz tarih",
+ "invalid_date_format": "Geçersiz tarih formatı",
+ "library": "Kütüphane",
+ "library_page_albums": "Albümler",
+ "library_page_archive": "Arşiv",
+ "library_page_device_albums": "Cihazdaki Albümler",
+ "library_page_favorites": "Favoriler",
+ "library_page_new_album": "Yeni albüm",
+ "library_page_sharing": "Paylaşım",
+ "library_page_sort_asset_count": "Öğe sayısı",
+ "library_page_sort_created": "Oluşturma tarihi",
+ "library_page_sort_last_modified": "Son düzenleme",
+ "library_page_sort_most_oldest_photo": "En eski fotoğraf",
+ "library_page_sort_most_recent_photo": "Son fotoğraf",
+ "library_page_sort_title": "Albüm başlığı",
+ "local_network": "Yerel Wi-Fi",
+ "local_network_sheet_info": "Uygulama belirlenmiş Wi-Fi ağını kullanırken bu URL üzerinden sunucuya bağlanacaktır",
+ "location_permission": "Konum izni",
+ "location_permission_content": "Otomatik geçiş özelliğinin çalışabilmesi için Immich'in mevcut Wi-Fi ağının adını bilmesi, bunu sağlamak için de tam konum iznine ihtiyacı vardır.",
+ "location_picker_choose_on_map": "Haritada seç",
+ "location_picker_latitude": "Enlem",
+ "location_picker_latitude_error": "Geçerli bir enlem yazın",
+ "location_picker_latitude_hint": "Buraya enlem yazın",
+ "location_picker_longitude": "Boylam",
+ "location_picker_longitude_error": "Geçerli bir boylam yazın",
+ "location_picker_longitude_hint": "Buraya boylam yazın",
+ "login_disabled": "Giriş devre dışı bırakıldı",
+ "login_form_api_exception": "API hatası. Lütfen sunucu URL'sini kontrol edin ve tekrar deneyin.",
+ "login_form_back_button_text": "Geri",
+ "login_form_button_text": "Giriş",
+ "login_form_email_hint": "mail@adresiniz.com",
+ "login_form_endpoint_hint": "http://sunucu-ip:port/api",
+ "login_form_endpoint_url": "Sunucu Uç Nokta URL",
+ "login_form_err_http": "Lütfen http:// veya https:// olarak belirtin",
+ "login_form_err_invalid_email": "Geçersiz E-posta",
+ "login_form_err_invalid_url": "Geçersiz URL",
+ "login_form_err_leading_whitespace": "Baştaki boşluk",
+ "login_form_err_trailing_whitespace": "Sondaki boşluk",
+ "login_form_failed_get_oauth_server_config": "OAuth kullanırken bir hata oluştu, sunucu URL'sini kontrol edin",
+ "login_form_failed_get_oauth_server_disable": "OAuth özelliği bu sunucuda mevcut değil",
+ "login_form_failed_login": "Giriş yaparken hata oluştu, sunucu URL'sini, e-postayı ve parolayı kontrol edin",
+ "login_form_handshake_exception": "Sunucuda bir El Sıkışma İstisnası vardı. Kendi kendine imzalanmış bir sertifika kullanıyorsanız, ayarlar menüsünden kendi kendine imzalanmış sertifikalara izin verin.",
+ "login_form_label_email": "E-posta",
+ "login_form_label_password": "Parola",
+ "login_form_next_button": "Sonraki",
+ "login_form_password_hint": "parola",
+ "login_form_save_login": "Oturum açık kalsın",
+ "login_form_server_empty": "Sunucu URL'si girin",
+ "login_form_server_error": "Sunucuya bağlanılamadı.",
+ "login_password_changed_error": "Parola güncellenirken bir hata oluştu.",
+ "login_password_changed_success": "Parola güncellendi",
+ "map_assets_in_bound": "{} fotoğraf",
+ "map_assets_in_bounds": "{} fotoğraf",
+ "map_cannot_get_user_location": "Kullanıcının konumu alınamıyor",
+ "map_location_dialog_cancel": "İptal",
+ "map_location_dialog_yes": "Evet",
+ "map_location_picker_page_use_location": "Bu konumu kullan",
+ "map_location_service_disabled_content": "Mevcut konumunuzdan öğeleri görüntülemek için konum hizmetinin etkinleştirilmesi gerekiyor. Şimdi etkinleştirmek istiyor musunuz?",
+ "map_location_service_disabled_title": "Konum hizmeti devre dışı bırakıldı",
+ "map_no_assets_in_bounds": "Bu alanda fotoğraf yok",
+ "map_no_location_permission_content": "Mevcut konumunuzdan öğeleri görüntülemek için konum iznine ihtiyaç var. Şimdi izin vermek istiyor musunuz?",
+ "map_no_location_permission_title": "Konum izni reddedildi",
+ "map_settings_dark_mode": "Koyu tema",
+ "map_settings_date_range_option_all": "Tümü",
+ "map_settings_date_range_option_day": "Son 24 saat",
+ "map_settings_date_range_option_days": "Son {} gün",
+ "map_settings_date_range_option_year": "Son yıl",
+ "map_settings_date_range_option_years": "Son {} yıl",
+ "map_settings_dialog_cancel": "İptal",
+ "map_settings_dialog_save": "Kaydet",
+ "map_settings_dialog_title": "Harita Ayarları",
+ "map_settings_include_show_archived": "Arşivdekileri dahil et",
+ "map_settings_include_show_partners": "Partnerleri Dahil Et",
+ "map_settings_only_relative_range": "Tarih aralığı",
+ "map_settings_only_show_favorites": "Sadece Favorileri Göster",
+ "map_settings_theme_settings": "Harita Teması",
+ "map_zoom_to_see_photos": "Fotoğrafları görmek için uzaklaştırın",
+ "memories_all_caught_up": "Tümü görüldü",
+ "memories_check_back_tomorrow": "Daha fazla anı için yarın tekrar ziyaret edin",
+ "memories_start_over": "Baştan Başla",
+ "memories_swipe_to_close": "Kapatmak için yukarı kaydırın",
+ "memories_year_ago": "Bir yıl önce",
+ "memories_years_ago": "{} yıl önce",
+ "monthly_title_text_date_format": "MMMM y",
+ "motion_photos_page_title": "Canlı Fotoğraflar",
+ "multiselect_grid_edit_date_time_err_read_only": "Salt okunur öğelerin tarihi düzenlenemedi, atlanıyor",
+ "multiselect_grid_edit_gps_err_read_only": "Salt okunur öğelerin konumu düzenlenemedi, atlanıyor",
+ "my_albums": "Albümlerim",
+ "networking_settings": "Ağ Ayarları",
+ "networking_subtitle": "Sunucu uç nokta ayarlarını düzenle",
+ "no_assets_to_show": "Gösterilecek öğe yok",
+ "no_name": "İsimsiz",
+ "notification_permission_dialog_cancel": "İptal",
+ "notification_permission_dialog_content": "Bildirimleri etkinleştirmek için cihaz ayarlarına gidin ve izin verin.",
+ "notification_permission_dialog_settings": "Ayarlar",
+ "notification_permission_list_tile_content": "Bildirimleri etkinleştirmek için izin verin.",
+ "notification_permission_list_tile_enable_button": "Bildirimleri Etkinleştir",
+ "notification_permission_list_tile_title": "Bildirim İzni",
+ "on_this_device": "Bu cihazda",
+ "partner_list_user_photos": "{user} fotoğrafları",
+ "partner_list_view_all": "Tümünü gör",
+ "partner_page_add_partner": "Partner ekle",
+ "partner_page_empty_message": "Fotoğraflarınız henüz hiçbir partnerle paylaşılmadı.",
+ "partner_page_no_more_users": "Eklenecek başka kullanıcı yok",
+ "partner_page_partner_add_failed": "Partner eklenemedi",
+ "partner_page_select_partner": "Partner seç",
+ "partner_page_shared_to_title": "Paylaşıldı:",
+ "partner_page_stop_sharing_content": "{} artık fotoğraflarınıza erişemeyecek.",
+ "partner_page_stop_sharing_title": "Fotoğrafları paylaşmayı durdur?",
+ "partner_page_title": "Partner",
+ "partners": "Partnerler",
+ "people": "Kişiler",
+ "permission_onboarding_back": "Geri",
+ "permission_onboarding_continue_anyway": "Yine de devam et",
+ "permission_onboarding_get_started": "Haydi başlayalım",
+ "permission_onboarding_go_to_settings": "Ayarlara git",
+ "permission_onboarding_grant_permission": "İzin ver",
+ "permission_onboarding_log_out": "Çıkış",
+ "permission_onboarding_permission_denied": "İzin reddedildi. Immich'i kullanmak için Ayarlar'da fotoğraf ve video izinlerini verin.",
+ "permission_onboarding_permission_granted": "İzin verildi. Artık hazırsınız!",
+ "permission_onboarding_permission_limited": "Sınırlı izin. Immich'in tüm fotoğrav ve videolarınızı yedeklemesine ve yönetmesine izin vermek için Ayarlar'da fotoğraf ve video izinlerini verin.",
+ "permission_onboarding_request": "Immich'in fotoğraflarınızı ve videolarınızı görüntüleyebilmesi için izne ihtiyacı var.",
+ "places": "Konumlar",
+ "preferences_settings_subtitle": "Uygulama tercihlerini düzenle",
+ "preferences_settings_title": "Tercihler",
+ "profile_drawer_app_logs": "Günlükler",
+ "profile_drawer_client_out_of_date_major": "Mobil uygulama güncel değil. Lütfen en son ana sürüme güncelleyin.",
+ "profile_drawer_client_out_of_date_minor": "Mobil uygulama güncel değil. Lütfen en son sürüme güncelleyin.",
+ "profile_drawer_client_server_up_to_date": "Uygulama ve sunucu güncel",
+ "profile_drawer_documentation": "Dökümantasyon",
+ "profile_drawer_github": "GitHub",
+ "profile_drawer_server_out_of_date_major": "Sunucu güncel değil. Lütfen en son ana sürüme güncelleyin.",
+ "profile_drawer_server_out_of_date_minor": "Sunucu güncel değil. Lütfen en son sürüme güncelleyin.",
+ "profile_drawer_settings": "Ayarlar",
+ "profile_drawer_sign_out": "Çıkış",
+ "profile_drawer_trash": "Çöp Kutusu",
+ "recently_added": "Son eklenenler",
+ "recently_added_page_title": "Son Eklenenler",
+ "save": "Kaydet",
+ "save_to_gallery": "Fotoğraflar'a kaydet",
+ "scaffold_body_error_occurred": "Bir hata meydana geldi",
+ "search_albums": "Albüm ara",
+ "search_bar_hint": "Fotoğraflarda ara",
+ "search_filter_apply": "Filtreyi uygula",
+ "search_filter_camera": "Kamera",
+ "search_filter_camera_make": "Marka",
+ "search_filter_camera_model": "Model",
+ "search_filter_camera_title": "Kamera tipi seç",
+ "search_filter_date": "Tarih",
+ "search_filter_date_interval": "{start} -> {end}",
+ "search_filter_date_title": "Tarih aralığı seç",
+ "search_filter_display_option_archive": "Arşiv",
+ "search_filter_display_option_favorite": "Favori",
+ "search_filter_display_option_not_in_album": "Albümde değil",
+ "search_filter_display_options": "Görüntü Seçenekleri",
+ "search_filter_display_options_title": "Görüntü seçenekleri",
+ "search_filter_location": "Konum",
+ "search_filter_location_city": "Şehir",
+ "search_filter_location_country": "Ülke",
+ "search_filter_location_state": "Eyalet",
+ "search_filter_location_title": "Konum seç",
+ "search_filter_media_type": "Medya Türü",
+ "search_filter_media_type_all": "Tümü",
+ "search_filter_media_type_image": "Fotoğraf",
+ "search_filter_media_type_title": "Medya türü seç",
+ "search_filter_media_type_video": "Video",
+ "search_filter_people": "Kişiler",
+ "search_filter_people_title": "Kişi seç",
+ "search_page_categories": "Kategoriler",
+ "search_page_favorites": "Favoriler",
+ "search_page_motion_photos": "Canlı Fotoğraflar",
+ "search_page_no_objects": "Hiçbir Nesne Bilgisi Mevcut Değil",
+ "search_page_no_places": "Konum Bilgisi Bulunamadı",
+ "search_page_people": "Kişiler",
+ "search_page_person_add_name_dialog_cancel": "İptal",
+ "search_page_person_add_name_dialog_hint": "İsim",
+ "search_page_person_add_name_dialog_save": "Kaydet",
+ "search_page_person_add_name_dialog_title": "İsim ekle",
+ "search_page_person_add_name_subtitle": "İsimle arama ile hızlıca bulun",
+ "search_page_person_add_name_title": "İsim ekle",
+ "search_page_person_edit_name": "İsmi düzenle",
+ "search_page_places": "Konumlar",
+ "search_page_recently_added": "Son eklenenler",
+ "search_page_screenshots": "Ekran görüntüleri",
+ "search_page_search_photos_videos": "Fotoğraf ve videolarda ara",
+ "search_page_selfies": "Selfie'ler",
+ "search_page_things": "Nesneler",
+ "search_page_videos": "Videolar",
+ "search_page_view_all_button": "Tümü",
+ "search_page_your_activity": "Etkinliğiniz",
+ "search_page_your_map": "Haritanız",
+ "search_result_page_new_search_hint": "Yeni Arama",
+ "search_suggestion_list_smart_search_hint_1": "Akıllı arama varsayılan olarak etkindir, meta verileri aramak için syntax kullanın",
+ "search_suggestion_list_smart_search_hint_2": "m:meta-veri-araması",
+ "select_additional_user_for_sharing_page_suggestions": "Öneriler",
+ "select_user_for_sharing_page_err_album": "Albüm oluşturulamadı",
+ "select_user_for_sharing_page_share_suggestions": "Öneriler",
+ "server_endpoint": "Sunucu Uç Noktası",
+ "server_info_box_app_version": "Uygulama Sürümü",
+ "server_info_box_latest_release": "Son Sürüm",
+ "server_info_box_server_url": "Sunucu URL",
+ "server_info_box_server_version": "Sunucu Sürümü",
+ "setting_image_viewer_help": "Görüntüleyici önce küçük resmi gösterir, ardından orta boy önizlemeyi (etkinleştirilmişse) ve son olarak orijinali (etkinleştirilmişse) gösterir.",
+ "setting_image_viewer_original_subtitle": "Orijinal tam çözünürlüklü görüntüyü göstermek için etkinleştirin. Veri kullanımını azaltmak için devre dışı bırakın (hem ağ hem de cihaz önbelleği).",
+ "setting_image_viewer_original_title": "Orijinal görüntüyü göster",
+ "setting_image_viewer_preview_subtitle": "Orta çözünürlüklü bir görüntü göstermek için etkinleştirin. Orijinali doğrudan göstermek veya yalnızca küçük resmi kullanmak için devre dışı bırakın.",
+ "setting_image_viewer_preview_title": "Önizleme görüntüsü göster",
+ "setting_image_viewer_title": "Resimler",
+ "setting_languages_apply": "Uygula",
+ "setting_languages_subtitle": "Uygulama dilini değiştir",
+ "setting_languages_title": "Diller",
+ "setting_notifications_notify_failures_grace_period": "Arka plan yedekleme hatalarını bildir: {}",
+ "setting_notifications_notify_hours": "{} saat",
+ "setting_notifications_notify_immediately": "hemen",
+ "setting_notifications_notify_minutes": "{} dakika",
+ "setting_notifications_notify_never": "hiçbir zaman",
+ "setting_notifications_notify_seconds": "{} saniye",
+ "setting_notifications_single_progress_subtitle": "Öğe başına ayrıntılı yükleme ilerleme bilgisi",
+ "setting_notifications_single_progress_title": "Arkaplan yedeklemesi ayrıntılı ilerlemesini göster",
+ "setting_notifications_subtitle": "Bildirim tercihlerinizi düzenleyin",
+ "setting_notifications_title": "Bildirimler",
+ "setting_notifications_total_progress_subtitle": "Toplam yükleme ilerlemesi (tamamlanan/toplam)",
+ "setting_notifications_total_progress_title": "Arkaplan yedeklemesi toplam ilerlemesini göster",
+ "setting_pages_app_bar_settings": "Ayarlar",
+ "settings_require_restart": "Bu ayarı uygulamak için lütfen Immich'i yeniden başlatın",
+ "setting_video_viewer_looping_subtitle": "Videoları otomatik olarak döngüye almak için etkinleştirin.",
+ "setting_video_viewer_looping_title": "Döngü",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
+ "setting_video_viewer_title": "Videolar",
+ "share_add": "Ekle",
+ "share_add_photos": "Fotoğraf ekle",
+ "share_add_title": "Başlık ekle",
+ "share_assets_selected": "{} seçili",
+ "share_create_album": "Albüm oluştur",
+ "shared_album_activities_input_disable": "Yoruma kapalı",
+ "shared_album_activities_input_hint": "Bir şeyler yazın",
+ "shared_album_activity_remove_content": "Bu etkinliği silmek istiyor musunuz?",
+ "shared_album_activity_remove_title": "Etkinlik Sil",
+ "shared_album_activity_setting_subtitle": "Başkalarının cevap vermesine izin ver",
+ "shared_album_activity_setting_title": "Yorumlar & beğeniler",
+ "shared_album_section_people_action_error": "Albümden ayrılırken/kaldırılırken hata oluştu",
+ "shared_album_section_people_action_leave": "Kullanıcıyı albümden kaldır",
+ "shared_album_section_people_action_remove_user": "Kullanıcıyı albümden kaldır",
+ "shared_album_section_people_owner_label": "Sahip",
+ "shared_album_section_people_title": "KİŞİLER",
+ "share_dialog_preparing": "Hazırlanıyor...",
+ "shared_link_app_bar_title": "Paylaşılan Bağlantılar",
+ "shared_link_clipboard_copied_massage": "Panoya kopyalandı",
+ "shared_link_clipboard_text": "Bağlantı: {}\nParola: {}",
+ "shared_link_create_app_bar_title": "Paylaşmak için bağlantı oluştur",
+ "shared_link_create_error": "Paylaşım bağlantısı oluşturulurken hata oluştu",
+ "shared_link_create_info": "Bağlantıya sahip olan herkesin seçili fotoğrafları görmesine izin ver",
+ "shared_link_create_submit_button": "Bağlantı oluştur",
+ "shared_link_edit_allow_download": "Herhangi birinin indirmesine izin ver",
+ "shared_link_edit_allow_upload": "Herhangi birinin yükleme yapmasına izin ver",
+ "shared_link_edit_app_bar_title": "Bağlantıyı düzenle",
+ "shared_link_edit_change_expiry": "Son kullanma tarihini değiştir",
+ "shared_link_edit_description": "Açıklama",
+ "shared_link_edit_description_hint": "Açıklama yazın",
+ "shared_link_edit_expire_after": "Son kullanım tarihi:",
+ "shared_link_edit_expire_after_option_day": "1 gün",
+ "shared_link_edit_expire_after_option_days": "{} gün",
+ "shared_link_edit_expire_after_option_hour": "1 saat",
+ "shared_link_edit_expire_after_option_hours": "{} saat",
+ "shared_link_edit_expire_after_option_minute": "1 dakika",
+ "shared_link_edit_expire_after_option_minutes": "{} dakika",
+ "shared_link_edit_expire_after_option_months": "{} ay",
+ "shared_link_edit_expire_after_option_never": "Hiçbir zaman",
+ "shared_link_edit_expire_after_option_year": "{} yıl",
+ "shared_link_edit_password": "Parola",
+ "shared_link_edit_password_hint": "Paylaşım parolasını girin",
+ "shared_link_edit_show_meta": "Meta verileri göster",
+ "shared_link_edit_submit_button": "Bağlantıyı güncelle",
+ "shared_link_empty": "Paylaşılan bağlantınız yok",
+ "shared_link_error_server_url_fetch": "Sunucu URL'si alınamadı",
+ "shared_link_expired": "Süresi Doldu",
+ "shared_link_expires_day": "Süresi {} gün içinde doluyor",
+ "shared_link_expires_days": "Süresi {} gün içinde doluyor",
+ "shared_link_expires_hour": "Süresi {} saat içinde doluyor",
+ "shared_link_expires_hours": "Süresi {} saat içinde doluyor",
+ "shared_link_expires_minute": "Süresi {} dakika içinde doluyor",
+ "shared_link_expires_minutes": "{} dakika içinde süresi doluyor",
+ "shared_link_expires_never": "Süresiz",
+ "shared_link_expires_second": "Süresi {} saniye içinde doluyor",
+ "shared_link_expires_seconds": "{} sanyei içinde süresi doluyor",
+ "shared_link_individual_shared": "Bireysel paylaşımlı",
+ "shared_link_info_chip_download": "İndir",
+ "shared_link_info_chip_metadata": "EXIF",
+ "shared_link_info_chip_upload": "Yükle",
+ "shared_link_manage_links": "Paylaşılan Bağlantıları Yönet",
+ "shared_link_public_album": "Herkese açık albüm",
+ "shared_links": "Paylaşılan bağlantılar",
+ "share_done": "Tamamlandı",
+ "shared_with_me": "Benimle paylaşılanlar",
+ "share_invite": "Albüme davet et",
+ "sharing_page_album": "Paylaşılan albümler",
+ "sharing_page_description": "Ağınızdaki kişilerle fotoğraf ve video paylaşmak için paylaşımlı albümler oluşturun.",
+ "sharing_page_empty_list": "LİSTEYİ BOŞALT",
+ "sharing_silver_appbar_create_shared_album": "Yeni paylaşılan albüm",
+ "sharing_silver_appbar_shared_links": "Paylaşılan bağlantılar",
+ "sharing_silver_appbar_share_partner": "Partnerle paylaş",
+ "sync": "Eşzamanla",
+ "sync_albums": "Albümleri eşzamanla",
+ "sync_albums_manual_subtitle": "Yüklenmiş fotoğraf ve videoları yedekleme için seçili albümler ile eşzamanlayın",
+ "sync_upload_album_setting_subtitle": "Seçili albümleri Immich'te oluşturun ve içindekileri Immich'e yükleyin.",
+ "tab_controller_nav_library": "Kütüphane",
+ "tab_controller_nav_photos": "Fotoğraflar",
+ "tab_controller_nav_search": "Ara",
+ "tab_controller_nav_sharing": "Paylaşım",
+ "theme_setting_asset_list_storage_indicator_title": "Öğelerin küçük resimlerinde depolama göstergesini göster",
+ "theme_setting_asset_list_tiles_per_row_title": "Satır başına öğe sayısı ({})",
+ "theme_setting_colorful_interface_subtitle": "Birincil rengi arka plan yüzeylerine uygulayın.",
+ "theme_setting_colorful_interface_title": "Renkli arayüz",
+ "theme_setting_dark_mode_switch": "Koyu tema",
+ "theme_setting_image_viewer_quality_subtitle": "Ayrıntılı görüntüleyicinin kalitesini ayarla",
+ "theme_setting_image_viewer_quality_title": "Fotoğraf görüntüleyici kalite ayarı",
+ "theme_setting_primary_color_subtitle": "Birincil eylemler ve vurgular için bir renk seçin.",
+ "theme_setting_primary_color_title": "Ana renk",
+ "theme_setting_system_primary_color_title": "Sistem rengini kullan",
+ "theme_setting_system_theme_switch": "Otomatik (sistem ayarına göre)",
+ "theme_setting_theme_subtitle": "Uygulama teması seç",
+ "theme_setting_theme_title": "Tema",
+ "theme_setting_three_stage_loading_subtitle": "Üç aşamalı yükleme yükleme performansını artırabilir ancak önemli ölçüde daha yüksek ağ yüküne sebep olur.",
+ "theme_setting_three_stage_loading_title": "Üç aşamalı yüklemeyi etkinleştir",
+ "translated_text_options": "Seçenekler",
+ "trash": "Çöp Kutusu",
+ "trash_emptied": "Çöp kutusu temizlendi",
+ "trash_page_delete": "Sil",
+ "trash_page_delete_all": "Tümünü Sil",
+ "trash_page_empty_trash_btn": "Çöp Kutusunu Temizle",
+ "trash_page_empty_trash_dialog_content": "Çöp kutusuna atılmış öğeleri silmek istediğinize emin misiniz? Bu öğeler Immich'ten kalıcı olarak silinecek",
+ "trash_page_empty_trash_dialog_ok": "Tamam",
+ "trash_page_info": "Çöp kutusuna atılan öğeler {} gün sonra kalıcı olarak silinecektir",
+ "trash_page_no_assets": "Çöp kutusu boş",
+ "trash_page_restore": "Geri yükle",
+ "trash_page_restore_all": "Tümünü geri yükle",
+ "trash_page_select_assets_btn": "İçerik seç",
+ "trash_page_select_btn": "Seç",
+ "trash_page_title": "Çöp Kutusu ({})",
+ "upload_dialog_cancel": "İptal",
+ "upload_dialog_info": "Seçili öğeleri sunucuya yedeklemek istiyor musunuz?",
+ "upload_dialog_ok": "Yükle",
+ "upload_dialog_title": "Öğe Yükle",
+ "use_current_connection": "mevcut bağlantıyı kullan",
+ "validate_endpoint_error": "Lütfen geçerli bir URL girin",
+ "version_announcement_overlay_ack": "Anladım",
+ "version_announcement_overlay_release_notes": "sürüm notları",
+ "version_announcement_overlay_text_1": "Merhaba arkadaşım, yeni bir sürüm mevcut",
+ "version_announcement_overlay_text_2": "lütfen biraz zaman ayırın ve inceleyin:",
+ "version_announcement_overlay_text_3": "ve özellikle WatchTower veya sunucu uygulamanızı otomatik olarak güncelleyen herhangi bir mekanizma kullanıyorsanız, herhangi bir yanlış yapılandırmayı önlemek için docker-compose ve .env kurulumunuzun güncel olduğundan emin olun.",
+ "version_announcement_overlay_title": "Yeni Sunucu Sürümü Mevcut \uD83C\uDF89",
+ "videos": "Videolar",
+ "viewer_remove_from_stack": "Yığından Kaldır",
+ "viewer_stack_use_as_main_asset": "Ana fotoğraf olarak kullan",
+ "viewer_unstack": "Yığını Kaldır",
+ "wifi_name": "Wi-Fi Adı",
+ "your_wifi_name": "Wi-Fi Adınız"
+}
\ No newline at end of file
diff --git a/mobile/assets/i18n/uk-UA.json b/mobile/assets/i18n/uk-UA.json
index 3c4303e6a7..34a8a1d5c2 100644
--- a/mobile/assets/i18n/uk-UA.json
+++ b/mobile/assets/i18n/uk-UA.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Перезавантажте програму для застосування цього налаштування",
"setting_video_viewer_looping_subtitle": "Увімкнути циклічне відтворення відео",
"setting_video_viewer_looping_title": "Циклічне відтворення",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Відео",
"share_add": "Додати",
"share_add_photos": "Додати знімки",
diff --git a/mobile/assets/i18n/vi-VN.json b/mobile/assets/i18n/vi-VN.json
index 6990d1f266..da6e2aa2f3 100644
--- a/mobile/assets/i18n/vi-VN.json
+++ b/mobile/assets/i18n/vi-VN.json
@@ -527,6 +527,8 @@
"settings_require_restart": "Vui lòng khởi động lại Immich để áp dụng cài đặt này",
"setting_video_viewer_looping_subtitle": "Bật chế độ lặp lại tự động cho video trong chế độ xem chi tiết.",
"setting_video_viewer_looping_title": "Lặp lại",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "Video",
"share_add": "Thêm",
"share_add_photos": "Thêm ảnh",
diff --git a/mobile/assets/i18n/zh-CN.json b/mobile/assets/i18n/zh-CN.json
index 36481f6bb6..f34fd5da33 100644
--- a/mobile/assets/i18n/zh-CN.json
+++ b/mobile/assets/i18n/zh-CN.json
@@ -157,7 +157,7 @@
"cache_settings_tile_title": "本地存储",
"cache_settings_title": "缓存设置",
"cancel": "取消",
- "change_display_order": "Change display order",
+ "change_display_order": "更改显示顺序",
"change_password_form_confirm_password": "确认密码",
"change_password_form_description": "{name} 您好,\n\n这是您首次登录系统,或被管理员要求更改密码。\n请在下方输入新密码。",
"change_password_form_new_password": "新密码",
@@ -249,7 +249,7 @@
"edit_image_title": "编辑",
"edit_location_dialog_title": "位置",
"enter_wifi_name": "输入 Wi-Fi 名称",
- "error_change_sort_album": "Failed to change album sort order",
+ "error_change_sort_album": "更改相册排序失败",
"error_saving_image": "错误:{}",
"exif_bottom_sheet_description": "添加描述...",
"exif_bottom_sheet_details": "详情",
@@ -527,6 +527,8 @@
"settings_require_restart": "请重启 Immich 以使设置生效",
"setting_video_viewer_looping_subtitle": "对播放窗口中的视频开启循环播放。",
"setting_video_viewer_looping_title": "循环播放",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "视频",
"share_add": "添加",
"share_add_photos": "添加项目",
diff --git a/mobile/assets/i18n/zh-Hans.json b/mobile/assets/i18n/zh-Hans.json
index c6f361a756..72bbac5f36 100644
--- a/mobile/assets/i18n/zh-Hans.json
+++ b/mobile/assets/i18n/zh-Hans.json
@@ -157,7 +157,7 @@
"cache_settings_tile_title": "本地存储",
"cache_settings_title": "缓存设置",
"cancel": "取消",
- "change_display_order": "Change display order",
+ "change_display_order": "更改显示顺序",
"change_password_form_confirm_password": "确认密码",
"change_password_form_description": "{name} 您好,\n\n这是您首次登录系统,或被管理员要求更改密码。\n请在下方输入新密码。",
"change_password_form_new_password": "新密码",
@@ -249,7 +249,7 @@
"edit_image_title": "编辑",
"edit_location_dialog_title": "位置",
"enter_wifi_name": "输入 Wi-Fi 名称",
- "error_change_sort_album": "Failed to change album sort order",
+ "error_change_sort_album": "更改相册排序失败",
"error_saving_image": "错误:{}",
"exif_bottom_sheet_description": "添加描述...",
"exif_bottom_sheet_details": "详情",
@@ -527,6 +527,8 @@
"settings_require_restart": "请重启 Immich 以使设置生效",
"setting_video_viewer_looping_subtitle": "对播放窗口中的视频开启循环播放。",
"setting_video_viewer_looping_title": "循环播放",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "视频",
"share_add": "添加",
"share_add_photos": "添加项目",
diff --git a/mobile/assets/i18n/zh-TW.json b/mobile/assets/i18n/zh-TW.json
index 88d1d48aec..bc40829a4c 100644
--- a/mobile/assets/i18n/zh-TW.json
+++ b/mobile/assets/i18n/zh-TW.json
@@ -527,6 +527,8 @@
"settings_require_restart": "請重啓 Immich 以使設定生效",
"setting_video_viewer_looping_subtitle": "對播放窗口中的短片開啓循環播放。",
"setting_video_viewer_looping_title": "循環播放",
+ "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
+ "setting_video_viewer_original_video_title": "Force original video",
"setting_video_viewer_title": "短片",
"share_add": "新增",
"share_add_photos": "新增項目",
diff --git a/mobile/ios/fastlane/Fastfile b/mobile/ios/fastlane/Fastfile
index b22a983015..3679c15549 100644
--- a/mobile/ios/fastlane/Fastfile
+++ b/mobile/ios/fastlane/Fastfile
@@ -19,7 +19,7 @@ platform :ios do
desc "iOS Release"
lane :release do
increment_version_number(
- version_number: "1.123.0"
+ version_number: "1.124.0"
)
increment_build_number(
build_number: latest_testflight_build_number + 1,
diff --git a/mobile/lib/constants/locales.dart b/mobile/lib/constants/locales.dart
index 5c928c124e..e4e01f5b53 100644
--- a/mobile/lib/constants/locales.dart
+++ b/mobile/lib/constants/locales.dart
@@ -15,12 +15,15 @@ const Map locales = {
'Finnish (fi_FI)': Locale('fi', 'FI'),
'French (fr_CA)': Locale('fr', 'CA'),
'French (fr_FR)': Locale('fr', 'FR'),
+ 'Galician (gl_ES)': Locale('gl', 'ES'),
'German (de_DE)': Locale('de', 'DE'),
'Greek (el_GR)': Locale('el', 'GR'),
'Hebrew (he_IL)': Locale('he', 'IL'),
'Hindi (hi_IN)': Locale('hi', 'IN'),
'Hungarian (hu_HU)': Locale('hu', 'HU'),
+ 'Indonesian (id_ID)': Locale('id', 'ID'),
'Italian (it_IT)': Locale('it', 'IT'),
+ 'Irish (ga_IE)': Locale('ga', 'IE'),
'Japanese (ja_JP)': Locale('ja', 'JP'),
'Korean (ko_KR)': Locale('ko', 'KR'),
'Latvian (lv_LV)': Locale('lv', 'LV'),
@@ -28,7 +31,6 @@ const Map locales = {
'Mongolian (mn_MN)': Locale('mn', 'MN'),
'Norwegian Bokmål (nb_NO)': Locale('nb', 'NO'),
'Polish (pl_PL)': Locale('pl', 'PL'),
- 'Brazilian Portuguese (pt_BR)': Locale('pt', 'BR'),
'Portuguese (pt_PT)': Locale('pt', 'PT'),
'Romanian (ro_RO)': Locale('ro', 'RO'),
'Russian (ru_RU)': Locale('ru', 'RU'),
@@ -43,6 +45,7 @@ const Map locales = {
'Swedish (sv_FI)': Locale('sv', 'FI'),
'Swedish (sv_SE)': Locale('sv', 'SE'),
'Thai (th_TH)': Locale('th', 'TH'),
+ 'Turkish (tr_TR)': Locale('tr', 'TR'),
'Ukrainian (uk_UA)': Locale('uk', 'UA'),
'Vietnamese (vi_VN)': Locale('vi', 'VN'),
};
diff --git a/mobile/lib/entities/store.entity.dart b/mobile/lib/entities/store.entity.dart
index 316859b064..a7f2db78d0 100644
--- a/mobile/lib/entities/store.entity.dart
+++ b/mobile/lib/entities/store.entity.dart
@@ -242,6 +242,9 @@ enum StoreKey {
preferredWifiName(133, type: String),
localEndpoint(134, type: String),
externalEndpointList(135, type: String),
+
+ // Video settings
+ loadOriginalVideo(136, type: bool),
;
const StoreKey(
diff --git a/mobile/lib/models/search/search_filter.model.dart b/mobile/lib/models/search/search_filter.model.dart
index 47baf356b7..297a819b6a 100644
--- a/mobile/lib/models/search/search_filter.model.dart
+++ b/mobile/lib/models/search/search_filter.model.dart
@@ -266,8 +266,8 @@ class SearchFilter {
AssetType? mediaType,
}) {
return SearchFilter(
- context: context,
- filename: filename,
+ context: context ?? this.context,
+ filename: filename ?? this.filename,
people: people ?? this.people,
location: location ?? this.location,
camera: camera ?? this.camera,
diff --git a/mobile/lib/pages/albums/albums.page.dart b/mobile/lib/pages/albums/albums.page.dart
index 6f7d99b727..ac6bd2f2fb 100644
--- a/mobile/lib/pages/albums/albums.page.dart
+++ b/mobile/lib/pages/albums/albums.page.dart
@@ -255,9 +255,13 @@ class AlbumsPage extends HookConsumerWidget {
fontWeight: FontWeight.w600,
),
),
- subtitle: sorted[index].ownerId == userId
+ subtitle: sorted[index].ownerId != null
? Text(
- '${sorted[index].assetCount} items',
+ '${(sorted[index].assetCount == 1 ? 'album_thumbnail_card_item'.tr(
+ args: ['${sorted[index].assetCount}'],
+ ) : 'album_thumbnail_card_items'.tr(
+ args: ['${sorted[index].assetCount}'],
+ ))} • ${sorted[index].ownerId != userId ? 'album_thumbnail_shared_by'.tr(args: [sorted[index].ownerName!]) : 'album_thumbnail_owned'.tr()}',
overflow: TextOverflow.ellipsis,
style:
context.textTheme.bodyMedium?.copyWith(
@@ -265,21 +269,7 @@ class AlbumsPage extends HookConsumerWidget {
.colorScheme.onSurfaceSecondary,
),
)
- : sorted[index].ownerName != null
- ? Text(
- '${sorted[index].assetCount} items • ${'album_thumbnail_shared_by'.tr(
- args: [
- sorted[index].ownerName!,
- ],
- )}',
- overflow: TextOverflow.ellipsis,
- style: context.textTheme.bodyMedium
- ?.copyWith(
- color: context
- .colorScheme.onSurfaceSecondary,
- ),
- )
- : null,
+ : null,
onTap: () => context.pushRoute(
AlbumViewerRoute(albumId: sorted[index].id),
),
diff --git a/mobile/lib/pages/common/gallery_viewer.page.dart b/mobile/lib/pages/common/gallery_viewer.page.dart
index 5f77f28d8e..7e47c1d087 100644
--- a/mobile/lib/pages/common/gallery_viewer.page.dart
+++ b/mobile/lib/pages/common/gallery_viewer.page.dart
@@ -127,18 +127,29 @@ class GalleryViewerPage extends HookConsumerWidget {
context: context,
useSafeArea: true,
builder: (context) {
- return FractionallySizedBox(
- heightFactor: 0.75,
- child: Padding(
- padding: EdgeInsets.only(
- bottom: context.viewInsets.bottom,
- ),
- child: ref
- .watch(appSettingsServiceProvider)
- .getSetting(AppSettingsEnum.advancedTroubleshooting)
- ? AdvancedBottomSheet(assetDetail: asset)
- : DetailPanel(asset: asset),
- ),
+ return DraggableScrollableSheet(
+ minChildSize: 0.5,
+ maxChildSize: 1,
+ initialChildSize: 0.75,
+ expand: false,
+ builder: (context, scrollController) {
+ return Padding(
+ padding: EdgeInsets.only(
+ bottom: context.viewInsets.bottom,
+ ),
+ child: ref.watch(appSettingsServiceProvider).getSetting(
+ AppSettingsEnum.advancedTroubleshooting,
+ )
+ ? AdvancedBottomSheet(
+ assetDetail: asset,
+ scrollController: scrollController,
+ )
+ : DetailPanel(
+ asset: asset,
+ scrollController: scrollController,
+ ),
+ );
+ },
);
},
);
@@ -275,7 +286,7 @@ class GalleryViewerPage extends HookConsumerWidget {
body: Stack(
children: [
PhotoViewGallery.builder(
- key: ValueKey(isPlayingMotionVideo),
+ key: const ValueKey('gallery'),
scaleStateChangedCallback: (state) {
final asset = ref.read(currentAssetProvider);
if (asset == null) {
diff --git a/mobile/lib/pages/common/native_video_viewer.page.dart b/mobile/lib/pages/common/native_video_viewer.page.dart
index 9c50f49dbb..ad9d53b1bb 100644
--- a/mobile/lib/pages/common/native_video_viewer.page.dart
+++ b/mobile/lib/pages/common/native_video_viewer.page.dart
@@ -75,9 +75,14 @@ class NativeVideoViewerPage extends HookConsumerWidget {
// Use a network URL for the video player controller
final serverEndpoint = Store.get(StoreKey.serverEndpoint);
+ final isOriginalVideo = ref
+ .read(appSettingsServiceProvider)
+ .getSetting(AppSettingsEnum.loadOriginalVideo);
+ final String postfixUrl =
+ isOriginalVideo ? 'original' : 'video/playback';
final String videoUrl = asset.livePhotoVideoId != null
- ? '$serverEndpoint/assets/${asset.livePhotoVideoId}/video/playback'
- : '$serverEndpoint/assets/${asset.remoteId}/video/playback';
+ ? '$serverEndpoint/assets/${asset.livePhotoVideoId}/$postfixUrl'
+ : '$serverEndpoint/assets/${asset.remoteId}/$postfixUrl';
final source = await VideoSource.init(
path: videoUrl,
diff --git a/mobile/lib/pages/search/search.page.dart b/mobile/lib/pages/search/search.page.dart
index 01119485cf..9aca7fc118 100644
--- a/mobile/lib/pages/search/search.page.dart
+++ b/mobile/lib/pages/search/search.page.dart
@@ -441,19 +441,15 @@ class SearchPage extends HookConsumerWidget {
}
handleTextSubmitted(String value) {
- if (value.isEmpty) {
- return;
- }
-
if (isContextualSearch.value) {
filter.value = filter.value.copyWith(
- filename: null,
+ filename: '',
context: value,
);
} else {
filter.value = filter.value.copyWith(
filename: value,
- context: null,
+ context: '',
);
}
@@ -468,6 +464,7 @@ class SearchPage extends HookConsumerWidget {
Padding(
padding: const EdgeInsets.only(right: 14.0),
child: IconButton(
+ key: const Key('contextual_search_button'),
icon: isContextualSearch.value
? const Icon(Icons.abc_rounded)
: const Icon(Icons.image_search_rounded),
@@ -496,6 +493,7 @@ class SearchPage extends HookConsumerWidget {
),
),
child: TextField(
+ key: const Key('search_text_field'),
controller: textSearchController,
decoration: InputDecoration(
contentPadding: prefilter != null
@@ -551,6 +549,7 @@ class SearchPage extends HookConsumerWidget {
child: SizedBox(
height: 50,
child: ListView(
+ key: const Key('search_filter_chip_list'),
shrinkWrap: true,
scrollDirection: Axis.horizontal,
padding: const EdgeInsets.symmetric(horizontal: 16),
@@ -580,6 +579,7 @@ class SearchPage extends HookConsumerWidget {
currentFilter: dateRangeCurrentFilterWidget.value,
),
SearchFilterChip(
+ key: const Key('media_type_chip'),
icon: Icons.video_collection_outlined,
onTap: showMediaTypePicker,
label: 'search_filter_media_type'.tr(),
diff --git a/mobile/lib/repositories/album_media.repository.dart b/mobile/lib/repositories/album_media.repository.dart
index c3795f75df..dac9ccd4da 100644
--- a/mobile/lib/repositories/album_media.repository.dart
+++ b/mobile/lib/repositories/album_media.repository.dart
@@ -14,7 +14,6 @@ class AlbumMediaRepository implements IAlbumMediaRepository {
final List assetPathEntities =
await PhotoManager.getAssetPathList(
hasAll: true,
- filterOption: FilterOptionGroup(containsPathModified: true),
);
return assetPathEntities.map(_toAlbum).toList();
}
diff --git a/mobile/lib/services/app_settings.service.dart b/mobile/lib/services/app_settings.service.dart
index c3fde894d5..19e7093faf 100644
--- a/mobile/lib/services/app_settings.service.dart
+++ b/mobile/lib/services/app_settings.service.dart
@@ -63,6 +63,11 @@ enum AppSettingsEnum {
logLevel(StoreKey.logLevel, null, 5), // Level.INFO = 5
preferRemoteImage(StoreKey.preferRemoteImage, null, false),
loopVideo(StoreKey.loopVideo, "loopVideo", true),
+ loadOriginalVideo(
+ StoreKey.loadOriginalVideo,
+ "loadOriginalVideo",
+ false,
+ ),
mapThemeMode(StoreKey.mapThemeMode, null, 0),
mapShowFavoriteOnly(StoreKey.mapShowFavoriteOnly, null, false),
mapIncludeArchived(StoreKey.mapIncludeArchived, null, false),
diff --git a/mobile/lib/services/background.service.dart b/mobile/lib/services/background.service.dart
index 27be2c046d..c059f48f0e 100644
--- a/mobile/lib/services/background.service.dart
+++ b/mobile/lib/services/background.service.dart
@@ -372,7 +372,6 @@ class BackgroundService {
HttpOverrides.global = HttpSSLCertOverride();
ApiService apiService = ApiService();
apiService.setAccessToken(Store.get(StoreKey.accessToken));
- AppSettingsService settingService = AppSettingsService();
AppSettingsService settingsService = AppSettingsService();
AlbumRepository albumRepository = AlbumRepository(db);
AssetRepository assetRepository = AssetRepository(db);
@@ -422,7 +421,7 @@ class BackgroundService {
);
BackupService backupService = BackupService(
apiService,
- settingService,
+ settingsService,
albumService,
albumMediaRepository,
fileMediaRepository,
diff --git a/mobile/lib/services/backup.service.dart b/mobile/lib/services/backup.service.dart
index a0b6bf16c2..7bce1047e2 100644
--- a/mobile/lib/services/backup.service.dart
+++ b/mobile/lib/services/backup.service.dart
@@ -313,15 +313,12 @@ class BackupService {
);
}
} else {
- if (asset.type == AssetType.video) {
- file = await asset.local!.originFile;
- } else {
- file = await asset.local!.originFile
+ file =
+ await asset.local!.originFile.timeout(const Duration(seconds: 5));
+
+ if (asset.local!.isLivePhoto) {
+ livePhotoFile = await asset.local!.originFileWithSubtype
.timeout(const Duration(seconds: 5));
- if (asset.local!.isLivePhoto) {
- livePhotoFile = await asset.local!.originFileWithSubtype
- .timeout(const Duration(seconds: 5));
- }
}
}
diff --git a/mobile/lib/widgets/asset_viewer/advanced_bottom_sheet.dart b/mobile/lib/widgets/asset_viewer/advanced_bottom_sheet.dart
index 367519fead..1e6aba2bda 100644
--- a/mobile/lib/widgets/asset_viewer/advanced_bottom_sheet.dart
+++ b/mobile/lib/widgets/asset_viewer/advanced_bottom_sheet.dart
@@ -6,12 +6,18 @@ import 'package:immich_mobile/entities/asset.entity.dart';
class AdvancedBottomSheet extends HookConsumerWidget {
final Asset assetDetail;
+ final ScrollController? scrollController;
- const AdvancedBottomSheet({super.key, required this.assetDetail});
+ const AdvancedBottomSheet({
+ super.key,
+ required this.assetDetail,
+ this.scrollController,
+ });
@override
Widget build(BuildContext context, WidgetRef ref) {
return SingleChildScrollView(
+ controller: scrollController,
child: Container(
margin: const EdgeInsets.symmetric(horizontal: 8.0),
child: LayoutBuilder(
diff --git a/mobile/lib/widgets/asset_viewer/detail_panel/detail_panel.dart b/mobile/lib/widgets/asset_viewer/detail_panel/detail_panel.dart
index db9dafebcb..8ad2cdc687 100644
--- a/mobile/lib/widgets/asset_viewer/detail_panel/detail_panel.dart
+++ b/mobile/lib/widgets/asset_viewer/detail_panel/detail_panel.dart
@@ -9,12 +9,14 @@ import 'package:immich_mobile/entities/asset.entity.dart';
class DetailPanel extends HookConsumerWidget {
final Asset asset;
+ final ScrollController? scrollController;
- const DetailPanel({super.key, required this.asset});
+ const DetailPanel({super.key, required this.asset, this.scrollController});
@override
Widget build(BuildContext context, WidgetRef ref) {
return ListView(
+ controller: scrollController,
shrinkWrap: true,
children: [
Padding(
diff --git a/mobile/lib/widgets/asset_viewer/detail_panel/file_info.dart b/mobile/lib/widgets/asset_viewer/detail_panel/file_info.dart
index 0dd3305302..4af9846cf6 100644
--- a/mobile/lib/widgets/asset_viewer/detail_panel/file_info.dart
+++ b/mobile/lib/widgets/asset_viewer/detail_panel/file_info.dart
@@ -18,7 +18,7 @@ class FileInfo extends StatelessWidget {
final height = asset.orientatedHeight ?? asset.height;
final width = asset.orientatedWidth ?? asset.width;
String resolution =
- height != null && width != null ? "$height x $width " : "";
+ height != null && width != null ? "$width x $height " : "";
String fileSize = asset.exifInfo?.fileSize != null
? formatBytes(asset.exifInfo!.fileSize!)
: "";
diff --git a/mobile/lib/widgets/search/search_filter/filter_bottom_sheet_scaffold.dart b/mobile/lib/widgets/search/search_filter/filter_bottom_sheet_scaffold.dart
index bda9335c77..fe938e16ed 100644
--- a/mobile/lib/widgets/search/search_filter/filter_bottom_sheet_scaffold.dart
+++ b/mobile/lib/widgets/search/search_filter/filter_bottom_sheet_scaffold.dart
@@ -53,6 +53,7 @@ class FilterBottomSheetScaffold extends StatelessWidget {
),
const SizedBox(width: 8),
ElevatedButton(
+ key: const Key('search_filter_apply'),
onPressed: () {
onSearch();
context.pop();
diff --git a/mobile/lib/widgets/search/search_filter/media_type_picker.dart b/mobile/lib/widgets/search/search_filter/media_type_picker.dart
index 350fce155d..495f4d007e 100644
--- a/mobile/lib/widgets/search/search_filter/media_type_picker.dart
+++ b/mobile/lib/widgets/search/search_filter/media_type_picker.dart
@@ -17,6 +17,7 @@ class MediaTypePicker extends HookWidget {
shrinkWrap: true,
children: [
RadioListTile(
+ key: const Key("search_filter_media_type_all"),
title: const Text("search_filter_media_type_all").tr(),
value: AssetType.other,
onChanged: (value) {
@@ -26,6 +27,7 @@ class MediaTypePicker extends HookWidget {
groupValue: selectedMediaType.value,
),
RadioListTile(
+ key: const Key("search_filter_media_type_image"),
title: const Text("search_filter_media_type_image").tr(),
value: AssetType.image,
onChanged: (value) {
@@ -35,6 +37,7 @@ class MediaTypePicker extends HookWidget {
groupValue: selectedMediaType.value,
),
RadioListTile(
+ key: const Key("search_filter_media_type_video"),
title: const Text("search_filter_media_type_video").tr(),
value: AssetType.video,
onChanged: (value) {
diff --git a/mobile/lib/widgets/settings/asset_viewer_settings/video_viewer_settings.dart b/mobile/lib/widgets/settings/asset_viewer_settings/video_viewer_settings.dart
index e21c49bb06..ef99c79a7b 100644
--- a/mobile/lib/widgets/settings/asset_viewer_settings/video_viewer_settings.dart
+++ b/mobile/lib/widgets/settings/asset_viewer_settings/video_viewer_settings.dart
@@ -15,6 +15,8 @@ class VideoViewerSettings extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final useLoopVideo = useAppSettingsState(AppSettingsEnum.loopVideo);
+ final useOriginalVideo =
+ useAppSettingsState(AppSettingsEnum.loadOriginalVideo);
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
@@ -26,6 +28,12 @@ class VideoViewerSettings extends HookConsumerWidget {
subtitle: "setting_video_viewer_looping_subtitle".tr(),
onChanged: (_) => ref.invalidate(appSettingsServiceProvider),
),
+ SettingsSwitchListTile(
+ valueNotifier: useOriginalVideo,
+ title: "setting_video_viewer_original_video_title".tr(),
+ subtitle: "setting_video_viewer_original_video_subtitle".tr(),
+ onChanged: (_) => ref.invalidate(appSettingsServiceProvider),
+ ),
],
);
}
diff --git a/mobile/openapi/README.md b/mobile/openapi/README.md
index e03f4dac77..f46dd4e93b 100644
--- a/mobile/openapi/README.md
+++ b/mobile/openapi/README.md
@@ -3,7 +3,7 @@ Immich API
This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
-- API version: 1.123.0
+- API version: 1.124.0
- Generator version: 7.8.0
- Build package: org.openapitools.codegen.languages.DartClientCodegen
diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml
index beabbd89b6..dde3f6309a 100644
--- a/mobile/pubspec.yaml
+++ b/mobile/pubspec.yaml
@@ -2,7 +2,7 @@ name: immich_mobile
description: Immich - selfhosted backup media file on mobile phone
publish_to: 'none'
-version: 1.123.0+172
+version: 1.124.0+173
environment:
sdk: '>=3.3.0 <4.0.0'
diff --git a/mobile/test/dto.mocks.dart b/mobile/test/dto.mocks.dart
new file mode 100644
index 0000000000..ed53fcdc90
--- /dev/null
+++ b/mobile/test/dto.mocks.dart
@@ -0,0 +1,6 @@
+import 'package:mocktail/mocktail.dart';
+import 'package:openapi/api.dart';
+
+class MockSmartSearchDto extends Mock implements SmartSearchDto {}
+
+class MockMetadataSearchDto extends Mock implements MetadataSearchDto {}
diff --git a/mobile/test/pages/search/search.page_test.dart b/mobile/test/pages/search/search.page_test.dart
new file mode 100644
index 0000000000..8cdf610433
--- /dev/null
+++ b/mobile/test/pages/search/search.page_test.dart
@@ -0,0 +1,189 @@
+import 'package:flutter/material.dart';
+import 'package:flutter_test/flutter_test.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:immich_mobile/entities/store.entity.dart';
+import 'package:immich_mobile/pages/search/search.page.dart';
+import 'package:immich_mobile/providers/api.provider.dart';
+import 'package:immich_mobile/providers/db.provider.dart';
+import 'package:immich_mobile/providers/search/paginated_search.provider.dart';
+import 'package:immich_mobile/widgets/asset_grid/asset_grid_data_structure.dart';
+import 'package:isar/isar.dart';
+import 'package:mocktail/mocktail.dart';
+import 'package:openapi/api.dart';
+
+import '../../dto.mocks.dart';
+import '../../service.mocks.dart';
+import '../../test_utils.dart';
+import '../../widget_tester_extensions.dart';
+
+void main() {
+ late List overrides;
+ late Isar db;
+ late MockApiService mockApiService;
+ late MockSearchApi mockSearchApi;
+
+ setUpAll(() async {
+ TestUtils.init();
+ db = await TestUtils.initIsar();
+ Store.init(db);
+ mockApiService = MockApiService();
+ mockSearchApi = MockSearchApi();
+ when(() => mockApiService.searchApi).thenReturn(mockSearchApi);
+ registerFallbackValue(MockSmartSearchDto());
+ registerFallbackValue(MockMetadataSearchDto());
+ overrides = [
+ paginatedSearchRenderListProvider
+ .overrideWithValue(AsyncValue.data(RenderList.empty())),
+ dbProvider.overrideWithValue(db),
+ apiServiceProvider.overrideWithValue(mockApiService),
+ ];
+ });
+
+ final emptyTextSearch = isA()
+ .having((s) => s.originalFileName, 'originalFileName', null);
+
+ testWidgets('contextual search with/without text', (tester) async {
+ await tester.pumpConsumerWidget(
+ const SearchPage(),
+ overrides: overrides,
+ );
+
+ await tester.pumpAndSettle();
+
+ expect(
+ find.byIcon(Icons.abc_rounded),
+ findsOneWidget,
+ reason: 'Should have contextual search icon',
+ );
+
+ final searchField = find.byKey(const Key('search_text_field'));
+ expect(searchField, findsOneWidget);
+
+ await tester.enterText(searchField, 'test');
+ await tester.testTextInput.receiveAction(TextInputAction.search);
+
+ var captured = verify(
+ () => mockSearchApi.searchSmart(captureAny()),
+ ).captured;
+
+ expect(
+ captured.first,
+ isA().having((s) => s.query, 'query', 'test'),
+ );
+
+ await tester.enterText(searchField, '');
+ await tester.testTextInput.receiveAction(TextInputAction.search);
+
+ captured = verify(() => mockSearchApi.searchAssets(captureAny())).captured;
+ expect(captured.first, emptyTextSearch);
+ });
+
+ testWidgets('not contextual search with/without text', (tester) async {
+ await tester.pumpConsumerWidget(
+ const SearchPage(),
+ overrides: overrides,
+ );
+
+ await tester.pumpAndSettle();
+
+ await tester.tap(find.byKey(const Key('contextual_search_button')));
+
+ await tester.pumpAndSettle();
+
+ expect(
+ find.byIcon(Icons.image_search_rounded),
+ findsOneWidget,
+ reason: 'Should not have contextual search icon',
+ );
+
+ final searchField = find.byKey(const Key('search_text_field'));
+ expect(searchField, findsOneWidget);
+
+ await tester.enterText(searchField, 'test');
+ await tester.testTextInput.receiveAction(TextInputAction.search);
+
+ var captured = verify(
+ () => mockSearchApi.searchAssets(captureAny()),
+ ).captured;
+
+ expect(
+ captured.first,
+ isA()
+ .having((s) => s.originalFileName, 'originalFileName', 'test'),
+ );
+
+ await tester.enterText(searchField, '');
+ await tester.testTextInput.receiveAction(TextInputAction.search);
+
+ captured = verify(() => mockSearchApi.searchAssets(captureAny())).captured;
+ expect(captured.first, emptyTextSearch);
+ });
+
+ // COME BACK LATER
+ // testWidgets('contextual search with text combined with media type',
+ // (tester) async {
+ // await tester.pumpConsumerWidget(
+ // const SearchPage(),
+ // overrides: overrides,
+ // );
+
+ // await tester.pumpAndSettle();
+
+ // expect(
+ // find.byIcon(Icons.abc_rounded),
+ // findsOneWidget,
+ // reason: 'Should have contextual search icon',
+ // );
+
+ // final searchField = find.byKey(const Key('search_text_field'));
+ // expect(searchField, findsOneWidget);
+
+ // await tester.enterText(searchField, 'test');
+ // await tester.testTextInput.receiveAction(TextInputAction.search);
+
+ // var captured = verify(
+ // () => mockSearchApi.searchSmart(captureAny()),
+ // ).captured;
+
+ // expect(
+ // captured.first,
+ // isA().having((s) => s.query, 'query', 'test'),
+ // );
+
+ // await tester.dragUntilVisible(
+ // find.byKey(const Key('media_type_chip')),
+ // find.byKey(const Key('search_filter_chip_list')),
+ // const Offset(-100, 0),
+ // );
+ // await tester.pumpAndSettle();
+
+ // await tester.tap(find.byKey(const Key('media_type_chip')));
+ // await tester.pumpAndSettle();
+
+ // await tester.tap(find.byKey(const Key('search_filter_media_type_image')));
+ // await tester.pumpAndSettle();
+
+ // await tester.tap(find.byKey(const Key('search_filter_apply')));
+ // await tester.pumpAndSettle();
+
+ // captured = verify(() => mockSearchApi.searchSmart(captureAny())).captured;
+
+ // expect(
+ // captured.first,
+ // isA()
+ // .having((s) => s.query, 'query', 'test')
+ // .having((s) => s.type, 'type', AssetTypeEnum.IMAGE),
+ // );
+
+ // await tester.enterText(searchField, '');
+ // await tester.testTextInput.receiveAction(TextInputAction.search);
+
+ // captured = verify(() => mockSearchApi.searchAssets(captureAny())).captured;
+ // expect(
+ // captured.first,
+ // isA()
+ // .having((s) => s.originalFileName, 'originalFileName', null)
+ // .having((s) => s.type, 'type', AssetTypeEnum.IMAGE),
+ // );
+ // });
+}
diff --git a/mobile/test/service.mocks.dart b/mobile/test/service.mocks.dart
index 507b4f281b..cc9d657e9e 100644
--- a/mobile/test/service.mocks.dart
+++ b/mobile/test/service.mocks.dart
@@ -5,6 +5,7 @@ import 'package:immich_mobile/services/network.service.dart';
import 'package:immich_mobile/services/sync.service.dart';
import 'package:immich_mobile/services/user.service.dart';
import 'package:mocktail/mocktail.dart';
+import 'package:openapi/api.dart';
class MockApiService extends Mock implements ApiService {}
@@ -17,3 +18,5 @@ class MockHashService extends Mock implements HashService {}
class MockEntityService extends Mock implements EntityService {}
class MockNetworkService extends Mock implements NetworkService {}
+
+class MockSearchApi extends Mock implements SearchApi {}
diff --git a/open-api/immich-openapi-specs.json b/open-api/immich-openapi-specs.json
index 554fed25d6..13ee7a30c7 100644
--- a/open-api/immich-openapi-specs.json
+++ b/open-api/immich-openapi-specs.json
@@ -7454,7 +7454,7 @@
"info": {
"title": "Immich",
"description": "Immich API",
- "version": "1.123.0",
+ "version": "1.124.0",
"contact": {}
},
"tags": [],
diff --git a/open-api/typescript-sdk/package-lock.json b/open-api/typescript-sdk/package-lock.json
index bef7d9d690..80a3fd7b4f 100644
--- a/open-api/typescript-sdk/package-lock.json
+++ b/open-api/typescript-sdk/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@immich/sdk",
- "version": "1.123.0",
+ "version": "1.124.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@immich/sdk",
- "version": "1.123.0",
+ "version": "1.124.0",
"license": "GNU Affero General Public License version 3",
"dependencies": {
"@oazapfts/runtime": "^1.0.2"
diff --git a/open-api/typescript-sdk/package.json b/open-api/typescript-sdk/package.json
index 01a7543a69..cc17c7f7b3 100644
--- a/open-api/typescript-sdk/package.json
+++ b/open-api/typescript-sdk/package.json
@@ -1,6 +1,6 @@
{
"name": "@immich/sdk",
- "version": "1.123.0",
+ "version": "1.124.0",
"description": "Auto-generated TypeScript SDK for the Immich API",
"type": "module",
"main": "./build/index.js",
diff --git a/open-api/typescript-sdk/src/fetch-client.ts b/open-api/typescript-sdk/src/fetch-client.ts
index f441f47fc5..68909d2df8 100644
--- a/open-api/typescript-sdk/src/fetch-client.ts
+++ b/open-api/typescript-sdk/src/fetch-client.ts
@@ -1,6 +1,6 @@
/**
* Immich
- * 1.123.0
+ * 1.124.0
* DO NOT MODIFY - This file has been generated using oazapfts.
* See https://www.npmjs.com/package/oazapfts
*/
diff --git a/readme_i18n/README_es_ES.md b/readme_i18n/README_es_ES.md
index 0b0dbf919d..052c18d4e4 100644
--- a/readme_i18n/README_es_ES.md
+++ b/readme_i18n/README_es_ES.md
@@ -60,10 +60,10 @@ Puedes encontrar la documentación oficial, incluidas las guías de instalación
Puedes acceder a la demostración web en
-Para la aplicación móvil, puedes usar `https://demo.immich.app/api` en la `URL de la terminal del servidor`.
+Para la aplicación móvil, puedes usar `https://demo.immich.app/api` en la `URL del servidor`.
```bash title="Credenciales de la demo"
-Las Credenciales
+Credenciales
correo: demo@immich.app
contraseña: demo
```
@@ -102,12 +102,18 @@ Especificaciones: Una VM de nivel gratuito de Oracle - Ámsterdam - CPU ARM64 de
| Soporte sin conexión | Sí | No |
| Galería de solo lectura | Sí | Sí |
-## Contribuidores
+## Traducciones
-
-
+Lea mas acerca de las traducciones [acá](https://immich.app/docs/developer/translations).
+
+
+
+## Actividad del repositorio
+
+![Activities](https://repobeats.axiom.co/api/embed/9e86d9dc3ddd137161f2f6d2e758d7863b1789cb.svg "Repobeats analytics image")
+
## Historial de Estrellas
@@ -117,3 +123,9 @@ Especificaciones: Una VM de nivel gratuito de Oracle - Ámsterdam - CPU ARM64 de
+
+## Contribuidores
+
+
+
+
diff --git a/readme_i18n/README_zh_CN.md b/readme_i18n/README_zh_CN.md
index 380dc25992..463e8aca9f 100644
--- a/readme_i18n/README_zh_CN.md
+++ b/readme_i18n/README_zh_CN.md
@@ -36,6 +36,7 @@
Português BrasileiroSvenskaالعربية
+ Tiếng Việtภาษาไทย